سیستم عامل ویندوز: نرمافزاری که دنیای رایانههای شخصی را متحول کرد
معماری ویندوز: هسته، پوسته و رابط کاربری گرافیکی
سیستم عامل ویندوز از دو بخش اصلی به نامهای هسته[1] و پوسته[2] تشکیل شده است. هسته قلب سیستم عامل است که مستقیماً با سختافزار ارتباط دارد و کارهایی مانند زمانبندی اجرای برنامهها، مدیریت حافظه و کنترل دستگاههای ورودی/خروجی را انجام میدهد. پوسته نیز بخشی است که کاربر با آن تعامل دارد؛ در ویندوز، پوسته به صورت گرافیکی و با کمک پنجرهها، آیکونها و منوها طراحی شده است.
برای مثال، هنگامی که روی آیکون یک پوشه دوبار کلیک میکنید، درخواست شما توسط پوسته دریافت شده و به هسته منتقل میشود. هسته دستور لازم را به سیستم فایل میدهد تا محتوای آن پوشه را از دیسک سخت بخواند و نتیجه را دوباره از طریق پوسته به صورت تصویری نمایش دهد. این فرایند در کسری از ثانیه انجام میشود.
مدیریت فرایندها و چندوظیفگی در ویندوز
یکی از قابلیتهای کلیدی ویندوز، چندوظیفگی است. یعنی میتوانید همزمان چند برنامه مثل مرورگر اینترنت، ویرایشگر متن و پخشکننده موسیقی را اجرا کنید. ویندوز این کار را با تقسیم زمان پردازنده بین فرایندهای مختلف انجام میدهد. هر فرایند[4] یک نمونه در حال اجرا از یک برنامه است.
زمانی که پردازنده تنها یک هسته داشته باشد، ویندوز به هر فرایند یک «قطعه زمانی»[5] مثلاً 20 میلیثانیه اختصاص میدهد. با جابجایی سریع بین فرایندها، حس همزمان بودن به کاربر القا میشود. در پردازندههای چند هستهای، واقعاً چند فرایند به طور همزمان اجرا میشوند. فرمول ساده زیر نشان میدهد که با افزایش هستهها، تعداد کارهای همزمان بیشتر میشود:
$ N_{parallel} \le N_{cores} $که در آن $ N_{parallel} $ تعداد فرایندهایی است که واقعاً همزمان اجرا میشوند و $ N_{cores} $ تعداد هستههای پردازنده است.
مدیریت حافظه و حافظه مجازی: فراتر از رم فیزیکی
ویندوز از تکنیکی به نام حافظه مجازی[6] استفاده میکند. وقتی رم فیزیکی پر میشود، ویندوز بخشی از دادههای کماستفاده را از رم به فایلی روی هارد دیسک به نام فایل صفحهبندی[7] منتقل میکند. این کار به برنامهها اجازه میدهد که حافظه بیشتری از آنچه فیزیکی وجود دارد، درخواست کنند. البته سرعت هارد دیسک بسیار کمتر از رم است، بنابراین استفاده زیاد از حافظه مجازی باعث کندی سیستم میشود.
فرض کنید رم کامپیوتر شما 4 گیگابایت است اما سه برنامه همزمان هر کدام 2 گیگابایت حافظه درخواست میکنند. مجموع درخواست 6 گیگابایت است. ویندوز 4 گیگابایت را در رم نگه میدارد و 2 گیگابایت را در فایل صفحهبندی روی دیسک قرار میدهد. این فرایند با فرمول زیر قابل بیان است:
$ V_m = R_p + S_f $که در آن $ V_m $ حافظه مجازی کل، $ R_p $ رم فیزیکی و $ S_f $ اندازه فایل صفحهبندی است.
| نوع حافظه | سرعت | ظرفیت معمول | کاربرد اصلی |
|---|---|---|---|
| ثبتهای پردازنده | بسیار بالا (پیکوثانیه) | چند صد بایت | نگهداری موقت داده در حال محاسبه |
| حافظه نهان (کش) | بالا (نانوثانیه) | چند مگابایت | ذخیره دادههای پرتکرار |
| رم (دسترسی تصادفی) | متوسط (چند ده نانوثانیه) | 4 تا 128 گیگابایت | اجرای برنامهها و دادههای جاری |
| فایل صفحهبندی روی هارد | پایین (میلیثانیه) | معادل 1.5 تا 4 برابر رم | افزایش حافظه مجازی در کمبود رم |
سیستم فایل انتیافاس: ساختار ذخیرهسازی اطلاعات
ویندوز مدرن از سیستم فایل انتیافاس[8] استفاده میکند. این سیستم فایل قابلیتهایی مانند مجوزهای دسترسی، رمزنگاری، فشردهسازی و ژورنالینگ (ثبت وقایع) را دارد. هر فایل در انتیافاس با یک رکورد در جدول اصلی فایل[9] مشخص میشود. این جدول شامل نام فایل، اندازه، زمان ایجاد و آدرس مکانهای فیزیکی داده روی دیسک است.
مثال عملی: فرض کنید یک فایل متنی به نام «گزارش.docx» با حجم 10 کیلوبایت دارید. انتیافاس این فایل را ممکن است در چند قطعه غیرمتوالی روی دیسک ذخیره کند. جدول اصلی فایل آدرس همه این قطعهها را نگه میدارد. وقتی فایل را باز میکنید، ویندوز به این جدول مراجعه کرده و قطعهها را از روی دیسک خوانده و کنار هم قرار میدهد.
کاربرد عملی: نصب یک نرمافزار و مدیریت درایورها
یکی از رایجترین کاربردهای روزمره ویندوز، نصب نرمافزارهای جدید است. فرایند نصب شامل کپی کردن فایلهای برنامه در پوشه «پروندههای برنامه»[10]، ثبت تنظیمات در پایگاه داده رجیستری[11] و ایجاد میانبر در منوی استارت یا دسکتاپ است. همچنین وقتی سختافزار جدیدی مثل چاپگر یا کارت گرافیک به رایانه متصل میشود، ویندوز به دنبال درایور[12] مناسب میگردد. درایورها نرمافزارهایی هستند که به سیستم عامل اجازه میدهند با سختافزار ارتباط برقرار کند.
برای مثال، اگر چاپگری را از طریق یواسبی وصل کنید، ویندوز مدل آن را تشخیص داده و سعی میکند درایور را از پایگاه داده خود یا اینترنت دانلود کند. پس از نصب درایور، هر نرمافزاری مانند واژهپرداز میتواند دستور چاپ را بدهد و ویندوز آن را از طریق درایور به چاپگر ارسال کند.
چالشهای مفهومی
سیستم عامل ۶۴ بیتی میتواند آدرسهای حافظه بزرگتری نسبت به نوع ۳۲ بیتی مدیریت کند. حداکثر رم قابل پشتیبانی در ویندوز ۳۲ بیتی حدود 4 گیگابایت است، در حالی که ویندوز ۶۴ بیتی از رم بسیار بیشتری (تا 16 اگزابایت تئوری) پشتیبانی میکند. فرمول ساده تعداد آدرسهای قابل دسترس به صورت $ 2^n $ است که در آن $ n $ بیتهای آدرسدهی است. برای $ n=32 $ عدد $ 2^{32} $ برابر 4.29 میلیارد آدرس (هر آدرس یک بایت) میشود که همان 4 گیگابایت است.
ویندوز از حفاظت از حافظه[13] استفاده میکند. هر برنامه در فضای آدرس خودش اجرا میشود و نمیتواند به حافظه برنامه دیگر یا هسته دسترسی مستقیم داشته باشد. اگر برنامهای دچار خطا شود (مثل دسترسی به آدرس حافظه اشتباه)، فقط همان فرایند از بین میرود و سیستم عامل به کار خود ادامه میدهد. این ویژگی شبیه به آن است که هر مسافر در اتاق جداگانهای در هتل باشد؛ خراب شدن یک اتاق کل هتل را نمیبندد.
در حالت خواب، ویندوز وضعیت فعلی را در رم نگه داشته و مصرف برق را به حداقل میرساند. با فشردن دکمه، سیستم بلافاصله بیدار میشود. در حالت هیبرنیشن، محتویات رم در فایلی روی هارد دیسک به نام hiberfil.sys ذخیره شده و سیستم کاملاً خاموش میشود. در روشن شدن مجدد، محتویات از هارد به رم بازگردانده میشود. خاموش کردن همه برنامهها را میبندد و هیچ وضعیتی ذخیره نمیشود. هیبرنیشن برای صرفهجویی در مصرف برق لپتاپ و حفظ کارهای ناتمام مفید است.
نسخههای گوناگون ویندوز و ویژگیهای شاخص
| نام نسخه | سال انتشار | نوآوری اصلی |
|---|---|---|
| ویندوز 95 | 1995 | منوی استارت و رابط گرافیکی کامل 32 بیتی |
| ویندوز اکسپی | 2001 | پایداری بالا و رابط کاربری بصری با تمهای رنگی |
| ویندوز 7 | 2009 | نوار وظیفه پیشرفته و کتابخانهها |
| ویندوز 10 | 2015 | یکپارچگی با دستگاههای لمسی و مرورگر لبه |
| ویندوز 11 | 2021 | منوی استارت وسطچین، پشتیبانی از برنامههای اندروید |
پاورقیها
[1] هسته (Kernel): قلب سیستم عامل که مدیریت منابع سختافزاری و زمانبندی فرایندها را بر عهده دارد.
[2] پوسته (Shell): رابط کاربری سیستم عامل که دستورات کاربر را دریافت و به هسته منتقل میکند. در ویندوز، پوسته گرافیکی Explorer.exe است.
[3] هسته ترکیبی (Hybrid Kernel): معماری هستهای که ویژگیهای هسته یکپارچه (سرعت) و ریزهسته (پایداری) را با هم دارد.
[4] فرایند (Process): یک نمونه در حال اجرا از یک برنامه که شامل کد، دادهها، دستههای فایل و فضای آدرس مخصوص خود است.
[5] قطعه زمانی (Time Slice or Quantum): مدت زمان حداکثری که یک فرایند اجازه اجرا روی پردازنده را قبل از جابجایی اجباری دارد.
[6] حافظه مجازی (Virtual Memory): تکنیکی که به هر فرایند یک فضای آدرس بزرگ و مجزا اختصاص میدهد و بخشی از آن روی دیسک ذخیره میشود.
[7] فایل صفحهبندی (Page File): فایلی روی دیسک سخت (معمولاً با نام pagefile.sys) که دادههای کماستفاده رم به آن منتقل میشود.
[8] انتیافاس (NTFS - New Technology File System): سیستم فایل پیشفرض ویندوز از نسخه انتی 3.1 به بعد که از مجوزهای امنیتی، ژورنالینگ و رمزنگاری پشتیبانی میکند.
[9] جدول اصلی فایل (MFT - Master File Table): یک پایگاه داده رابطهای در انتیافاس که ابرداده همه فایلها و پوشهها را ذخیره میکند.
[10] پروندههای برنامه (Program Files): پوشه پیشفرض در ویندوز برای نصب نرمافزارهای 64 بیتی (و همچنین پوشه Program Files (x86) برای نرمافزارهای 32 بیتی).
[11] پایگاه داده رجیستری (Registry): پایگاه داده سلسلهمراتبی در ویندوز که تنظیمات سیستم، نرمافزارها و سختافزارها را ذخیره میکند.
[12] درایور (Driver): نرمافزاری که سیستم عامل را قادر به ارتباط با یک دستگاه سختافزاری خاص (مانند چاپگر، کارت گرافیک یا کارت صدا) میکند.
[13] حفاظت از حافظه (Memory Protection): مکانیزمی که از دسترسی یک فرایند به حافظه اختصاصی فرایند دیگر یا هسته جلوگیری میکند.