جداسازی میان حالت کاربر و حالت هسته، ستون فقرات مدل امنیتی ویندوز NT را تشکیل می‌دهد و در محافظت از سخت‌افزار، ایزوله‌سازی برنامه‌ها و اعمال سیاست‌های دسترسی نقش محوری دارد.

معماری لایه‌ای: مرزهای روشن بین حالت کاربر و حالت هسته

ویندوز NT بر پایهٔ معماری لایه‌ای طراحی شده که محیط‌های دارای امتیاز (حالت هسته) را از محیط‌های بدون امتیاز (حالت کاربر) جدا می‌کند. در حالت کاربر برنامه‌ها، زیربسامان‌های محیط و کتابخانه‌ها اجرا می‌شوند و به‌طور عمده از دسترسی مستقیم به منابع سخت‌افزاری منع شده‌اند. در مقابل، حالت هسته به حافظه و سخت‌افزار دسترسی کامل دارد و شامل هستهٔ سیستم، لایهٔ انتزاع سخت‌افزار (HAL)، درایورها و مجموعهٔ سرویس‌های سطح‌بالا به‌نام Executive می‌شود. این مرزبندی تضمین می‌کند که هرگونه عملیات حساس تنها از طریق روتین‌های مجاز هسته انجام شود.

زیربسامان‌های حالت کاربر و مسئولیت‌های آن‌ها

زیربسامان‌های محیط در حالت کاربر برای حفظ سازگاری برنامه‌ها و پیاده‌سازی ABIها طراحی شده‌اند. نمونه‌های اصلی عبارتند از:

  • Win32 — میزبان برنامه‌های 32 بیتی، مدیریت کنسول و پنجره‌ها و اجرای ماشین‌های مجازی DOS (VDM). بخشی از این زیربسامان، فرآیند csrss.exe را اجرا می‌کند که مدیریت پنجره و پردازش رویدادهای ورودی را برعهده دارد. (منبع)
  • OS/2 — پشتیبانی از برنامه‌های کاراکتری 16 بیتی OS/2 در نسخه‌های اولیهٔ NT (در نسخه‌های بعدی حذف شد).
  • POSIX — پشتیبانی از برنامه‌های سازگار با POSIX.1 که بعدها با زیرساخت‌های جدیدتر جایگزین گردید.

زیربسامان‌ها به‌طور مستقیم به سخت‌افزار دسترسی ندارند و تمامی عملیات دارای امتیاز را از طریق فراخوانی سرویس‌های Executive به هسته محول می‌کنند.

مؤلفه‌های هسته: هسته، HAL، Executive و درایورها

در حالت هسته چند جزء کلیدی با هم کار می‌کنند:

  • هسته — مدیریت زمان‌بندی نخ‌ها، همگام‌سازی در محیط‌های چندپردازنده‌ای، پردازش وقفه‌ها، تله‌ها و استثناها و بارگذاری درایورها در زمان بوت.
  • HAL (Hardware Abstraction Layer) — تفاوت‌های سخت‌افزاری را پنهان می‌کند تا قابلیت حمل بین معماری‌های مختلف فراهم شود. (منبع)
  • Executive — مجموعه‌ای از سرویس‌های سطح‌بالا که میان زیربسامان‌های حالت کاربر و امکانات هسته‌ای واسطه‌گری می‌کند؛ مدیریت I/O، اشیاء، امنیت و فرآیندها از جمله وظایف آن است.

درایورهای دستگاه برای برقراری ارتباط مستقیم با سخت‌افزار باید در حالت هسته اجرا شوند و معمولاً در سطوح مختلفی سازمان‌دهی می‌شوند؛ از درایورهای سطح بالا تا درایورهای سطح پایین و راننده‌های ویژهٔ باس‌های سخت‌افزاری.

مدل I/O مبتنی بر بسته‌ها و IRP

ویندوز NT از یک مدل I/O مبتنی بر بسته استفاده می‌کند که حول IRP (I/O Request Packet) شکل گرفته است. مدیر I/O درخواست‌های حالت کاربر را به صورت IRP به درایورهای مناسب تحویل می‌دهد و از I/O ناهمزمان پشتیبانی می‌کند. این مدل دو هدف مهم را دنبال می‌کند: متمرکز کردن منطق پردازش I/O در سرویس‌های هسته‌ای و جلوگیری از برخورد مستقیم کد حالت کاربر با سخت‌افزار.

تحول در عمل: درایورها، WDM و پیامدهای امنیتی

تفکیک کاربر و هسته از ابتدای طراحی NT نقش بسزایی در پایداری سیستم و طراحی درایورها داشت. چارچوب‌هایی مانند Windows Driver Model (WDM) سازگاری و ساختاردهی درایورها را تسهیل کردند، اما اجرای درایورها در فضای هسته نیازمند دقت بالایی در طراحی و اعتبارسنجی است. دو پیامد کلیدی این رویکرد عبارت‌اند از:

  • پایداری و قابلیت حمل — جداسازی منطق کاربر از منطق هسته سبب می‌شود خطاهای برنامه‌ها به کرش هسته منجر نشود و HAL حمل‌پذیری بین سخت‌افزارها را تسهیل کند.
  • افزایش سطح حمله و ملاحظات امنیتی — هر کدی که در حالت هسته اجرا می‌شود سطح حمله را افزایش می‌دهد؛ بنابراین قرارگیری اجزای حساس مثل مرجع امنیتی محلی (Local Security Authority) و کنترل دقیق دسترسی‌ها اهمیت زیادی دارد. (LSA)

پیامدها برای طراحی سیستم و چشم‌انداز

تا سال 2026 بنیان ویندوز بر معماری NT باقی مانده و جداسازی کاربر/هسته همچنان پایهٔ پایداری و امنیت است. توسعه‌دهندگان درایور و معماران سیستم باید همیشه بین نیاز به دسترسی سخت‌افزاری و ضرورت کاهش سطح حمله تعادل برقرار کنند. انتظار می‌رود تمرکز آینده بر بهبود چارچوب‌های درایور، کاهش کد اجراشونده در هسته و تقویت مکانیزم‌های مهار و اعتبارسنجی باشد.

پی‌نوشت فنی

برای مطالعهٔ بیشتر دربارهٔ معماری NT و اجزای مرتبط: Windows NT (Wikipedia).