بیشتر دستگاههای هوشمند مثل کامپیوترها، تلفنهای هوشمند؛ تلویزیونها و ساعتهای هوشمند برای کار کردن به سیستم عامل نیاز دارند. به همین دلیل به صورت مداوم سیستم عاملهای جدید ساخته میشوند تا اهداف مختلف پلتفرمها را برآورده کنند.
اما آیا میدانستید که بیشتر سیستم عاملهای حال حاضر بر مبنای دو پلتفرم ساخته شدهاند: ویندوز NT و یونیکس؟ ویندوز برای ما بسیار شناخته شده است، اما سیستم عامل یونیکس (Unix OS) چیست؟ برای آشنایی با ساختار سیستم عامل یونیکس، با کار و تک همراه باشید. در این مقاله به بررسی مزایا و معایب سیستم عامل یونیکس میپردازیم.
در این قسمت به بررسی ماهیت سیستم عامل یونیکس میپردازیم. یونیکس یک سیستم عامل چندکاربره مبتنی بر پلتفرم C است که در دهههای 1970-1960 در همان زبان اسمبلی ساخته شد. این سیستم عامل به لطف مشخصه multitasking و چندکاربره بودن میتواند به صورت همزمان چند فرایند را اجرا کرده و چندین حساب کاربری بسازد. علاوه بر این، یونیکس یکی از سیستمهایی است که در استفاده از 64 بیت به جای 32 یا 16 بیت، پیشگام بود.
Unix به جای استفاده از خطوط دستوری ساده، یک رابط کاربری گرافیکی (GUI) در اختیار کاربران قرار میدهد؛ همین مسئله کار کردن با آن را آسانتر میکند.
هرچند بخاطر ساختار پیچیده، توسعهدهندگان نرم افزار برای استفاده از این سیستم باید دانش و مهارت زیادی داشته باشند. به همین دلیل هستهی لینوکس از محبوبیت کمتری برخوردار است و ما هم معمولاً فقط به نسخههایی دسترسی داریم که استفاده از آنها سادهتر باشد.
در این بخش به بررسی تاریخچهی سیستم عامل یونیکس (Unix OS) میپردازیم. در سال 1960 سه واحد مؤسسه فناوری ماساچوست، آزمایشگاه Bell و جنرال الکتریک، سیستم جدیدی برای سرور GE-645 ساختند. هر چند ترکیب این سه بخش، چندان موفقیت آمیز نبود و باعث شد بسیاری از محققان این مجموعه را ترک کنند؛ در نتیجه این برنامه متوقف شد.
خوشبختانه دو دانشمند به نامهای کِن تامپسون و دنیس ریتچی موفق شدند مجموعهای از پیشرفتهای این تحقیق شکست خورده را جمع آوری کنند. آنها برمبنای پروژهی قبلی یک مطالعه کوچکتر را آغاز کردند که نتیجه کار آنها منجر به ساخت سیستم یونیکس شد. مقاله Secure Boot چیست را مطالعه کنید.
در نهایت بعد از تغییرات فراوان، Unix از یک هستهی سیستم عامل تک وظیفهای با نواقص فراوان توسعه پیدا کرد و به انتخاب شماره یک بسیاری از دستگاهها در دههی 1990 تبدیل شد.
در این بخش به بررسی ساختار سیستم عامل یونیکس میپردازیم. تمامی نسخههای متفاوت یونیکس ساختار عملکردی یکسان با 4 مؤلفه اصلی دارند:
هسته عمیقترین بخش سیستم عامل یونیکس است: این بخش مسئول تعامل مستقیم با سیگنالهای سختافزاری به منظور اجرای تسکهای مختلف است؛ که از جملهی آنها میتوان به مدیریت حافظه، مدیریت فایل و پردازش ترتیب تسکها اشاره کرد. بنابراین افراد اغلب هسته را با قلب مقایسه میکنند که به جای خون رسانی، برای سایر کلاسهای اسکریپتهای پوسته اطلاعات فراهم میکند. ایا میدانید فرق ویندوز با لینوکس چیست ؟
پوسته لایهای در مجاورت هسته است. این بخش ابزارهای واسط را برای مدیریت درخواستهایی که میخواهید دستور انجام آنها را به سیستم عامل صادر صادر کنید، فراهم میکند.
هر زمان که ما یک دستور را درون ترمینال باکس تایپ میکنیم، برنامههای موجود در پوسته دستور را به کد ماشین کامپایل کرده و سپس آن را برای انجام کار تعیین شده ارسال میکنند. C Shell، Bourne Shell و Korn Shell شناخته شدهترین پوستههای موجود در بیشتر نسخههای یونیکس هستند.
دستورها ورودی کاربر، زبان اصلی ارتباط بین ما و سیستم عامل Unix است. به جای استفاده از کد ماشین یا زبانهای پیچیده، فقط باید دستورها را به خاطر بسپارید و تمامی سیستم عاملهای یونیکس را کنترل کنید. در مجموع 250 دستور و تعدادی دستور که متعلق به نرم افزارهای شخص ثالث هستند، وجود دارد. 8 مورد از تفاوت یونیکس و لینوکس را بخوانید.
در این بخش به بررسی فایلها و فولدرها در ساختار سیستم عامل لینوکس میپردازیم. یونیکس از فایلها برای ذخیرهی داده استفاده میکند. این فایلها در فولدرهای مختلفی قرار گرفتهاند. فولدرهای به هم متصل شده، یک سیستم راهنما برای سیستم عامل میسازند تا هر زمان که نیاز شد، به آنها دسترسی داشته باشد.
در این قسمت مزایا و معایب یونیکس را بررسی میکنیم.
1. ارائه multitasking کامل با مموری محافظت شده:
یونیکس میتواند با کنترل کاربران مختلف، multitasking را مدیریت کند. به عبارت دیگر، این سیستم عامل میتواند فرایندهایی را که به صورت موازی کار میکنند، بدون ایجاد مشکل در مفسر خط فرمان، هماهنگ کند. بنابراین امکان اشتباه یا عملکرد نادرست برای کاربران و تسکهایی با query مشابه کاهش مییابد.
2. از virtual memory به صورت بسیار مؤثر استفاده میکند:
Virtual memory مشخصهای است که تمامی سیستم عاملهای یونیکس برای کمک به کاهش بار روی حافظه فیزیکی و بهبود عملکرد برنامهها دارند. درحالیکه بسیاری از سیستم عاملهای مشابه یونیکس، layout حافظه بصری ضعیفی دارند، یونیکس در این زمینه بسیار عالی عمل میکند. بنابراین نیازی نیست در زمان اجرای فرایندهای سنگین یا انجام چندکار به صورت همزمان، نگران خراب شدن دستگاه باشید.
3. کنترل دستی و امنیت:
یونیکس مشخصههای امنیتی پیشرفته زیادی دارد تا از امنیت اطلاعات ما اطمینان حاصل کند. علاوه بر پسورد، سیستم میتواند اطلاعات را مجزا کند تا سایر کاربران نتوانند دربارهی محتوای شما اطلاعاتی داشته باشند.
4. به شما اجازه میدهد، ابزارها و دستورها را با هم در یک دسته قرار دهید:
در یونیکس ما میتوانیم از بسیاری از مشخصهها و کنترلهای مختلف در یک ترتیب مشخص استفاده کنیم. این کار با وصل کردن مشخصهها وکنترلها به یکدیگر در یک دسته امکانپذیر است. این قابلیت برای کاربران عمومی چندان کاربردی نیست، اما برای مدیران سیستم فوقالعاده است.
1. رابط کاربری گرافیکی آن چندان کاربر پسند نیست:
هرچند یک رابط کاربری گرافیکی برای پشتیبانی وجود دارد، اما یونیکس هنوز یک سیستم عامل است که برای استفاده، بیشتر دستور گراست. (command-oriented)
بنابراین خیلی تعجب آور نیست که رابط کاربری گرافیکی این سیستم، طراحی نامناسب و ضعیفی دارد و استفاده از آن چالش برانگیز است.
2. کاربران باید تمامی مشخصههای اصلی را بدانند:
برای استفاده از این سیستم عامل باید بدانید که دستورها ورودی کاربر چگونه کار میکنند. هر چند متد ارتباط با یونیکس چندان پیچیده نیست؛ اما این مسئله به این معنی نیست که همه به سرعت به آن دسترسی پیدا خواهند کرد.
پلتفرمی برای چند سیستم عامل فرعی:
سیستمهای یونیکس در کامپیوترها مثل هسته لینوکس و Mac OS X تا سیستمهای عامل برای موبایلها مثل اندروید، iOS، Chrome OS و حتی Orbis OS در پلی استیشن 4 به کار رفتهاند. بهعلاوه یونیکس اساس بسیاری از سیستم عاملهایی است که محبوبیت کمتری دارند.
توسعه و پیشرفت در سیستم راهنما (directory system):
مدل راهنمای فایل یونیکس مثالی از طراحی جاودانه با عملکرد استثنایی و قابلیت کنترل فوقالعاده است. سیستم یونیکس در تقسیم حافظهی دستگاهها پیشرو است.
کمک به توسعهدهندگان نرم افزار:
یونیکس در حرکت توسعه ماژول سازی گسترده که برنامهنویسی را آسانتر میکرد، نقش اساسی داشت. ما نمیتوانیم تأثیر یونیکس را بر مفسر خط دستور و محبوبیت پروتکل TCP/IP نادیده بگیریم.
جمع بندی:
در این مقاله سعی کردیم بطور کامل پاسخ سوال سیستم عامل یونیکس چیست را بدهیم و گفتیم که Unix یک سیستم عامل فوقالعاده با مزایای گسترده است که در توسعهی تکنولوژی نقش بزرگی ایفا میکند. یونیکس یک سیستم عامل ارزشمند برای استفاده و یادگیری است.