سیستم عامل لینوکس چیست و چه ساختاری دارد ؟
سیستم عامل لینوکس
لینوکس مثل ویندوز شرکت مایکروسافت، iOS و Mac شرکت اپل، اندروید شرکت گوگل یک سیستم عامل است.
سیستم عامل در واقع نرم افزاری هستش که ارتباط بین سخت افزار وکاربر رایانه یا موبایل را فراهم می کنه.
سیستم عامل برای مدیریت منابع سیستم استفاده میشه.
بطور مثال سیستم عامل، از یک ابزار ورودی مثل کیبورد اطلاعات را دریافت و پس از ذخیره اون در RAM، برای CPU میفرسته تا پردازش کنه و سپس نتیجه را در یک ابزار خروجی مثل مانیتور یا نمایشگر نشون میده.
سیستم عامل تعداد زیادی از وظایف مهمه دیگر هم انجام میده که جای بحث اون فعلا در این آموزش نیست.
لینوکس تقریبا از اواسط ده 90 میلادی در قسمت های مختلف زندگی انسان ها حضور داشته.
الان در خیلی جاها استفاده میشه مثل ساعت مچی، ابر رایانه ها، تلفن ها، گوشی های همراه، لپ تاپ ها، کامپیوترهای شخصی، ماشین ها و حتی در یخچال ها. در ضمن بین توسعه دهندگان و کاربران عادی کامپیوتر هم بسیار محبوب و معروفه.
ساختار سیستم عامل لینوکس
یک سیستم عامل مجموعه ای از نرم افزار است، هر کدوم برای انجام کار خاصی طراحی شده.
سیستم عامل لینوکس از اجزاء زیر تشکل شده :
(۱) کرنل
کرنل بعنوان هسته سیستم عامل محسوب میشه.
وظیفه ایجاد ارتباط بین سخت افزار و نرم افزار و مدیریت منابع سیستم را داره.
اساسا کرنل ۴ تا وظیفه داره:
مدیریت ابزار : به یک سیستم سخت افزارهای زیادی مثل CPU ، RAM ، کارت های صدا، کارت های گرافیگ و … وصل شده. کرنل همه داده های مرتبط به این سخت افزارها را در درایور دستگاه ذخیره می کنه و بدون آن کرنل نمی تونه دستگاه ها را کنترل کنه بنابراین کرنل میدونه چه دستگاهی میتونه چه کاری را انجام بده و چگونه میتونه اون دستگاه را دستکاری کنه تا بهترین کارایی را از اون بدست بیاره. کرنل ارتباط ببین دستگاه ها را مدیریت می کنه و قوانین مخصوص خودش را داره که همه سخت افزارها ملزم به رعایت اون هستند.
مدیریت حافظه : کرنل حافظه استفاده شده و استفاده نشده را کنترل می کنه بنابراین مطمئن باشید که پروسه ها نمی تونند داده های هم دیگر را با استفاده از آدرس حافظه مجازی یا virtual memory address دستکاری کنند.
مدیریت فرایند : در مدیریت فرایند، کرنل زمان کافی و الویت ها را به فرایندها اختصاص میده.این مورد با اطلاعات امنیت و مالکیت نیز در ارتباط است.
بکارگیری فراخوانی های سیستمی : این وظیفه به این معناست که برنامه نویس می تونه یک کوئری بنویسه یا درخواست کنه تا کرنل یک وظیفه را انجام بده.
(۲) کتابخانه های سیستمی
کتابخانه های سیستمی برنامه های مخصوصی هستند که کمک می کنند تا به قابلیت های کرنل دسترسی پیدا کرد.
یک وظیفه زمانی انجام میشه که درخواست آن توسط برنامه های کاربردی (applications) برای کرنل ارسال بشه.
در واقع برنامه های کاربردی هستند که کرنل را وادار به شروع و انجام یک وظیفه می کنند
برنامه های کاربردی نیاز دارند بدونند چگونه فراخوانی سیستمی را انجام بدند چون هر کرنل یک مجموعه متفاوتی از فراخوانی های سیستمی را داره.
برنامه نویسان کتابخانه استانداردی از procedure ها را برای ارتباط با کرنل ایجاد کرده اند.
هر سیستم عامل این استانداردها را پشتیبانی می کنه و سپس این استانداردها به فراخوانی های سیستمی آن سیستم عامل منتقل می شوند.
در ضمن معروف ترین کتابخانه سیستمی برای لینوکس (glibc (GNU C library نامیده میشه.
(۳) ابزار های سیستمی
سیستم عامل لینوکس یک مجموعه از ابزارهای سودمند هستش که معمولا از دستورات ساده ای تشکیل میشه.
این سیستم عامل را پروژه گنو (GNU) نوشته و تحت مجوز متن باز (open source) خود منتشر کرده تا بطور آزاد در دسترس همه قرار بگیره.
با کمک این دستورات شما می تونید به فایل ها دسترسی داشته باشید و اون ها را ویرایش یا داده های داخل فولدرها یا فایل ها را دستکاری کنید یا محل فایل ها را به فولدر دیگری تغییر بدین و جابه جاشون کنید.
(۴) ابزار توسعه
سه مورد قبلی که معرفی شد باعث میشه سیستم عامل لینوکس در حال اجرا و کار کردن باشه.
سیستم برای بروزرسانی به ابزار ها و کتابخانه های دیگری هم نیاز داره که بهش زنجیره ابزار (tool chain) میگن.
زنجیره ابزار توسط برنامه نویسان نوشته میشه و توسعه دهندگان از اون برای تولید برنامه های کاربردی استفاده می کنند.
(5) ابزارهای کاربر نهایی
برای سیستم عامل ضروری نیستند ولی برای برای کاربر ضروری هستند چون باعث میشه تا کاربر یک سیستم اختصاصی و انحصاری برای خودش داشته باشه مثلا ابزارهای طراحی برای کارهای گرافیکی، بسته های office، مرورگرها،پخش کننده های چند رسانه ای یا همون پلیرهای موزیک و ویدئو و غیره .
سیستم عامل متن باز
سیستم عاملهایی که متن باز نیستند بصورت کامپایل شده اجرا میشوند که اصلاح این کد کامپایل شده کار سختی است.
در واقع کد منبع اصلی از طریق کامپایلر به زبانی که برای رایانه شناخته شده است ترجمه میشه.
اما برای سیستم عامل متن باز کاملا متفاوته بطوریکه کد منبع با نسخه ی کامپایل شده قرار داده میشه.
هر کسی که مقداری دانش در این زمینه داره میتونه کدها را اصلاح و تغییر بده.
این به ما آزادی میده تا برنامه را اجرا کنیم.
آزادی میده تا کد را بر اساس استفاده خود تغییر بدیم.
آزادی میده تا کپی های اون را مجدد توزیع کنیم.
آزادی میده تا کپی هایی که توسط ما اصلاح شده را هم بتونیم توزیع کنیم.
به طور خلاصه، لینوکس سیستم عاملی هستش که “برای مردم ، توسط مردم” است.
همه می تونند از اون استفاده کنند و در توسعه این سیستم عامل نقش داشته باشند.
برچسبها: kernel, linux, open source, کرنل, لینوکس, متن باز, هسته لینوکس