سیستم عامل

operating system

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

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

 

چرا به سیستم‌عامل نیاز داریم؟ سفری به دنیای قبل از سیستم‌عامل‌ها

به دوران اولیه کنسول‌های بازی برگردیم. تصور کنید که فقط یک جایگاه برای قرار دادن بازی وجود دارد. وقتی یک بازی را در آن قرار می‌دادید، اجرا می‌شد. اما زمانی که کنسول روشن بود و هیچ بازی‌ای در آن قرار نداشت، چه اتفاقی می‌افتاد؟ هیچ چیز! این دقیقاً نمونه‌ای از یک سخت‌افزار بدون سیستم‌عامل است، جایی که نرم‌افزار به طور مستقیم با سخت‌افزار تعامل دارد.

در چنین حالتی، اگر می‌خواستید برنامه دیگری اجرا کنید، مجبور بودید برنامه قبلی را خارج کرده و برنامه جدید را جایگزین کنید. بدون سیستم‌عامل، یک کامپیوتر فقط می‌توانست یک برنامه را در یک زمان اجرا کند.

علاوه بر این، فقدان سیستم‌عامل چالش‌های دیگری را نیز به همراه داشت:

  • نیاز به تسلط کامل بر سخت‌افزار: برنامه‌نویسان برای نوشتن برنامه، باید دانش عمیقی از نحوه عملکرد سخت‌افزار کامپیوتر داشته باشند و به طور مستقیم با آن تعامل برقرار کنند.
  • عدم سازگاری: برنامه‌هایی که برای یک کامپیوتر نوشته می‌شدند، به دلیل تنوع سخت‌افزاری، ممکن بود در کامپیوترهای دیگر قابل اجرا نباشند.

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

game-console-cartridge
نمونه ای از کنسول های بازی قدیمی

سیستم عامل چیست ؟

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

وظایف اصلی سیستم‌عامل:

  • مدیریت منابع : سیستم‌عامل وظیفه‌ی تخصیص و مدیریت کارآمد منابع سیستم مانند CPU، حافظه، فضای ذخیره‌سازی و دستگاه‌های جانبی را بر عهده دارد.
  • ارائه رابط کاربری:  چه از طریق رابط گرافیکی (GUI) و یا رابط خط فرمان (CLI)، سیستم‌عامل محیطی تعاملی را برای کاربر فراهم می‌کند تا بتواند به راحتی با کامپیوتر کار کند.
  • اجرای برنامه‌ها:  بارگذاری، اجرا و مدیریت برنامه‌های مختلف از جمله وظایف کلیدی سیستم‌عامل است.
  • سازگاری:  یکی از مهم‌ترین مزایای سیستم‌عامل، ایجاد بستری استاندارد برای اجرای برنامه‌ها است، فارغ از تنوع سخت‌افزاری کامپیوترها.

سیستم عامل پچیدگی‌های کار با سخت‌افزار را در پشت خود پنهان می‌کند. تصور کنید که بدون سیستم‌عامل، برای اجرای هر برنامه، باید با جزئیات پیچیده‌ی سخت‌افزار سر و کله می‌زدید. این امر نه تنها طاقت‌فرسا بود، بلکه عملاً غیرممکن می‌شد. چرا که تنوع سخت‌افزارها به قدری زیاد است که نوشتن برنامه برای هر کدام به طور جداگانه، کاری غیرقابل انجام بود . سیستم‌عامل با ایجاد یک لایه انتزاعی بین سخت‌افزار و نرم‌افزار، این مشکل را به طور کامل حل می‌کند. این لایه انتزاعی مانند یک مترجم عمل می‌کند و دستورات برنامه‌ها را به زبان قابل فهم برای سخت‌افزار تبدیل می‌کند. به این ترتیب، برنامه‌نویسان می‌توانند بدون نیاز به دانش عمیق از سخت‌افزار، بر روی منطق برنامه و کارکرد اصلی آن تمرکز کنند.

 

اجزای سیستم عامل

به طور کلی سیستم عامل شامل دو بخش اصلی هست.

  • هسته سیستم عامل (کرنل)
  • باقی برنامه های همراه با سیستم عامل
  1. هسته سیستم عامل (کرنل):

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

  1.  رابط کاربری (Shell):

    رابط کاربری، واسطه‌ای است که به کاربر اجازه می‌دهد با کرنل سیستم عامل تعامل داشته باشد. این رابط می‌تواند به دو صورت دستوری (CLI) یا گرافیکی (GUI) باشد.

    • رابط کاربری دستوری (CLI): در این نوع رابط، کاربر از طریق دستورات متنی با کرنل سیستم عامل ارتباط برقرار می‌کند. این روش برای کاربران باتجربه‌تر مناسب است و به آنها کنترل دقیق‌تری بر سیستم می‌دهد.
    • رابط کاربری گرافیکی (GUI): در این نوع رابط، کاربر با استفاده از آیکون‌ها، منو‌ها و عناصر گرافیکی با کرنل سیستم عامل تعامل دارد. این روش برای اکثر کاربران، به خصوص کاربران مبتدی، آسان‌تر و کاربرپسندتر است.

     

  2.  کتابخانه های سیستم عامل (OS library)

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

  3. درایورها(Drivers):

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

  4. برنامه های کاربردی(utilities):

    بسیاری از سیستم‌های عامل به همراه مجموعه‌ای از برنامه‌های کاربردی پیش‌فرض ارائه می‌شوند که به کاربران امکان می‌دهند وظایف رایج را بدون نیاز به نصب نرم‌افزار اضافی انجام دهند. این برنامه‌ها که به عنوان ” utilities” نیز شناخته می‌شوند، طیف وسیعی از عملکردها را از جمله مرور وب، ویرایش متن، مدیریت فایل و سرگرمی را ارائه می‌دهند.

.

 

اجزا سیستم عامل
اجزا سیستم عامل

 

تاریخچه سیستم عامل‌ها

ظهور UNIX

دهه ۱۹۷۰ شاهد پیچیده‌تر شدن پردازش برنامه‌ها توسط کامپیوترها بود. در این راستا، نیاز به یک سیستم عامل متمرکز برای مدیریت فرآیندها و منابع سیستم به شدت احساس می‌شد. در همین دوران، سیستم عاملی به نام یونیکس (UNIX) توسط گروهی از محققان در آزمایشگاه‌های بل شرکت AT&T توسعه یافت. یونیکس به دلیل پایداری، انعطاف‌پذیری و قابلیت اطمینان بالا، به سرعت به عنوان یک سیستم عامل پیشرو در میان دانشگاه‌ها، مراکز تحقیقاتی و شرکت‌های بزرگ به رسمیت شناخته شد. تا به امروز، یونیکس پایه و اساس بسیاری از سیستم عامل‌های امروزی مانند لینوکس، macOS و iOS را تشکیل می‌دهد.

پیدایش سیستم عامل های شرکت ماکروسافت و اپل

دهه ۱۹۸۰ شاهد ظهور دو سیستم عامل برجسته دیگر بود: macOS و MS-DOS. در سال ۱۹۸۴، شرکت اپل سیستم عامل مکینتاش (macOS) را برای کامپیوترهای شخصی خود معرفی کرد. macOS که از نظر ظاهری و کاربری شباهت‌هایی به یونیکس داشت، به دلیل رابط گرافیکی کاربرپسند و مجموعه برنامه‌های کاربردی متنوع خود به محبوبیت بالایی دست یافت.

در سوی دیگر، شرکت مایکروسافت در سال ۱۹۸۱ سیستم عامل MS-DOS را برای کامپیوترهای IBM PC عرضه کرد. MS-DOS برخلاف macOS، از رابط کاربری مبتنی بر متن ساده‌ای استفاده می‌کرد و برای استفاده از آن نیاز به دانش دستورات بود. با وجود این، MS-DOS به دلیل سادگی و قیمت مناسب به طور گسترده‌ای در کامپیوترهای شخصی آن زمان مورد استفاده قرار گرفت.

پیدایش Linux

دهه ۱۹۹۰ دوران شکوفایی لینوکس بود. در سال ۱۹۹۱، لینوس توروالدز، دانشجوی فنلاندی، هسته (کرنل) یک سیستم عامل جدید را به نام لینوکس منتشر کرد. کرنل لینوکس  متن‌باز بود، به این معنی که کد منبع آن به طور آزادانه در دسترس بود و هر کسی می‌توانست آن را تغییر دهد و به اشتراک بگذارد. این ویژگی منحصر به فرد، به لینوکس انعطاف‌پذیری و پویایی بالایی می‌بخشید و به سرعت جامعه‌ای بزرگ از توسعه‌دهندگان و کاربران را در سراسر جهان به خود جلب کرد.

پیدایش سیتستم عامل جدید ماکروسافت

در سال ۱۹۹۳، شرکت مایکروسافت سیستم عامل Windows NT را به عنوان جایگزینی برای MS-DOS معرفی کرد. Windows NT از هسته جدیدی بهره می‌برد که پایداری و امنیت بالایی داشت و به مرور زمان به محبوب‌ترین سیستم عامل برای کامپیوترهای شخصی تبدیل شد.

پیدایش اندروید

در سال ۲۰۰۸، سیستم عامل اندروید برای تلفن‌های همراه هوشمند بر پایه هسته لینوکس منتشر شد. اندروید به دلیل متن‌باز بودن، انعطاف‌پذیری و قابلیت شخصی‌سازی بالا، به سرعت به محبوب‌ترین سیستم عامل برای گوشی‌های هوشمند تبدیل شد و سهم بزرگی از بازار را به خود اختصاص داد.

در صورتی که به این موضوع علاقه مند هستید و می خواهید اطلاعات بیشتری در این باره به دست آورید پیشنهاد می کنم این ویدیو را تماشا کنید.

‌ on سیستم عامل

ارسال دیدگاه