PDA

View Full Version : ساختار سیستم عامل ویندوز



HadiDelphi
چهارشنبه 27 بهمن 1389, 00:26 صبح
با عرض سلام
من چند مورد سوال در مورد درایور ها داشتم
اول اینکه آیا درایور نوشته شده برای سیستم عامل ویندوز در پایینترین سطح اجرا میشود ؟ ( یعنی بین ویندوز و سخت افزار )
اگر پاسخ سوال اولم بله هست ، فکر کنم اگر یک درایور برای سیستم عامل ویندوز نوشته شده باشد ، میشه از اون توی لینوکس یا مکینتاش یا هر سیستم عامل دیگری با حداقل تغییر استفاده کرد ، آیا این مورد درست هستش ؟

Mehdi Asgari
چهارشنبه 27 بهمن 1389, 10:33 صبح
جواب سوال اولت مثبت هست (درایور ها در پایین ترین سطح اجرا میشن، ولی همچنان برای دسترسی مستقیم به سخت افزار ، باید از HAL عبور کنن که این امر طبیعی هست)
جواب سوال دوم منفی هست چون درایور های سطح کرنل ویندوز به توابع کرنل ویندوز وابسته هستن (مثلا برای تخصیص حافظه باید از ExAllocatePoolWithTag استفاده کنن که این تابع مختص سیستم عامل ویندوز هست)

HadiDelphi
چهارشنبه 27 بهمن 1389, 13:34 عصر
با تشکر
اگر امکان دارد کمی در مورد HAL توضیحاتی بدین
و در مورد سوال دومم ، یعنی اگر تو همون درایور API های مختص هر سیستم عامل استفاده شود کار تمام است ؟ یا که نه به غیر از API ها موارد دیگری هم هست ؟

Mehdi Asgari
چهارشنبه 27 بهمن 1389, 13:43 عصر
HAL یا لایۀ تجرید سخت افزار، به سیستم عامل (و دیگر مصرف کننده ها) اجازه میده با یک اینترفیس مشخص با دستگاه های سخت افزاری مختلف و معماری های مختلف سخت افزاری ارتباط برقرار کنند.
http://en.wikipedia.org/wiki/Hardware_abstraction_layer
نخیر، باز هم نمیشه. اصولا مدل برنامه نویسی سطح کرنل، توابع استفاده شده، و کلا زیر سیستمی که کد درایور برای اجرا به اون وابسته هست، در سیستم عامل های مختلف، متفاوته

jeson_park
چهارشنبه 04 اسفند 1389, 17:07 عصر
با سلام
ساختار سيستم عمال ويندوز به طور كامل در كتاب windows internals گفته شده

Arman_1367
دوشنبه 23 اسفند 1389, 08:19 صبح
اینم ببینی بد نیست
React Operating System (http://www.reactos.org/en/index.html)

mahmood0197
سه شنبه 09 اسفند 1390, 10:08 صبح
یک سوال داشتم آیا با کد های یک درایور میشه فایل ایجاد کرد؟منظور دستورات user mode رو در kernel mode اجرا کرد؟

jeson_park
شنبه 27 اسفند 1390, 08:33 صبح
یک سوال داشتم آیا با کد های یک درایور میشه فایل ایجاد کرد؟منظور دستورات user mode رو در kernel mode اجرا کرد؟
بله برای ایجاد فایل از توابع native مثل ZwCreateFile (http://msdn.microsoft.com/en-us/library/windows/hardware/ff566424(v=vs.85).aspx)و برای نوشتن توی فایل از ZwWriteFile (http://msdn.microsoft.com/en-us/library/windows/hardware/ff567121(v=vs.85).aspx)استفاده میشه

یه مثال هم در اینجا (http://support.microsoft.com/kb/891805)به طور کامل تشریح شده
موفق باشید