مدیریت حافظه سیستم توسط کرنل
این مقاله بخشی از کتاب لینوکس ما بوده و شما برای مطالعه کامل آن میتوانید به بخش محصولات مراجعه فرمایید.
زمان مطالعه: 7 دقیقه
لینوکس یکی از مهمترین پیشرفتهای تکنولوژیکی قرن بیست و یکم است. توسعه لینوکس فراتر از تأثیر آن بر رشد اینترنت و جایگاه آن به عنوان یک فناوری توانمند به الگویی تبدیل شده که نشان میدهد پروژههای مشارکتی چگونه میتوانند از کارهایی که افراد و شرکتها به تنهایی انجام میدهند، پیشی بگیرند. سیستم عامل لینوکس جهان را در برگرفته و کاربران میتوانند این نوع سیستم را تقریبا در همه جا پیدا کنند. سیستم عامل لینوکس را میتوان در تلفن، یخچال، کنسولهای بازی (PlayStation) و یا سرورهای لینوکس (که سایتهای معروف اینترنتی را اجرا میکنند) مشاهده کرد.
سیستم عامل متشکل از یک کرنل و یکسری ابزارهای مختلف است. بخشهای اصلی لینوکس از سه لایهی تشکیل شده که شامل موارد زیر میباشد و هر کدام کار خاصی را انجام میدهند.
- لایهی سختافزار
- لایهی کرنل (هسته)
- لایهی کاربر (شامل ابزارهای GNU، محیط دسکتاپ گرافیکی، برنامههای کاربردی مانند سرویس FTP و غیره است)
لایهی کرنل در سیستم عامل لینوکس
کرنل، هسته سیستم لینوکس بوده و کلیه سختافزارها و نرمافزارهای سیستم کامپیوتر را کنترل میکند. همچنین در صورت لزوم سختافزاری را برای فرآیندی اختصاص و همچنین نرمافزاری را هم اجرا میکند.
اگر دنیای لینوکس را دنبال کرده باشید بدون شک نام لینوس توروالد را شنیدهاید. توروالدز در دوران تحصیل در دانشگاه Helsiki اولین نرمافزار کرنل لینوکس را ایجاد کرد. او علاقهمند بود که این پروژه یک کپی از سیستم عامل یونیکس (در آن زمان یک سیستم عامل محبوب و گران قیمت در بسیاری از دانشگاهها بود) باشد. همچنین پس از توسعه کرنل لینوکس آن را در اینترنت منتشر کرد و برای بهبود آن پیشنهاداتی را خواستار شد. سپس بعد از مدتی پیشنهادهایی از دانشجویان و همچنین برنامهنویسان حرفهای از سراسر جهان دریافت کرد و او با در نظر گرفتن نظرات مختلف تغییراتی را در کد اصلی ایجاد میکرد تا به نسخه نهایی آن رسید. به طور کلی کرنل چهار وظیفه اصلی دارد که شامل موارد زیر است.
- مدیریت حافظه سیستم
- مدیریت پردازشهای سیستم
- مدیریت سخت افزارهای سیستم
- مدیریت فایل سیستم
مدیریت حافظه سیستم توسط کرنل
یکی از وظایف اصلی کرنل مدیریت حافظه (RAM) است. کرنل نه تنها حافظه فیزیکی بلکه حافظه مجازی را هم مدیریت میکند. اینکار با استفاده از فضای موجود بر روی دیسک انجام میشود که به آن فضای SWAP میگویند. اضافه شدن یک فضای SWAP باعث میشود که سیستم فکر کند حافظه بیشتری در دسترس دارد (شکل1).
سیستمها دو نوع حافظه دارد؛ یک حافظه از نوع HDD یا SSD که برای ذخیره دادهها همچون انواع فایلها، مستندات، موسیقی فیلم و غیره استفاده میشود و یک حافظه RAM که مخصوص ذخیرهسازی دادههای مورد استفاده در برنامهها است. در این میان، حافظه مجازی یا Virtual Memory(VM) یک قابلیت بسیار کاربردی است، به ویژه اگر سیستم شما کمبود حافظه دارد. زمانی که سیستم از حداکثر RAM موجود استفاده میکند و دیگر فضای بیشتری برای استفاده در دسترس نداشته باشد در اینصورت از VM که گاهی آن را فایل SWAP نیز مینامند به عنوان یک RAM موقتی استفاده میکند.
نکته) پارتیشن SWAP یک فضایی از هارد دیسک است که به عنوان SWAP در اختیار کرنل قرار میگیرد و زمانی که RAM سیستم کم بیاورد از آن استفاده میکند. بنابراین اگر سیستم با کمبود فضایRAM روبهرو شود در اینصورت فضای SWAP وارد بازی شده و برخی از دادههای موجود در RAM به این بخش منتقل میشود تا فضای کافی برای ذخیره دادههای سایر برنامهها ایجاد شود.