کِرنِل سیستم‌عامل‌های مَک و گنو/لینوکس چه تفاوتی با یکدیگر دارند؟

کِرنِل سیستم‌عامل‌های مَک و گنو/لینوکس چه تفاوتی با یکدیگر دارند؟

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

تاریخچهٔ کِرنِل سیستم‌عامل مک
در سال ۱۹۸۵، Steve Jobs به علت مشاجره با John Sculley، مدیرعامل وقت شرکت اَپل، از این شرکت جدا شد و وی پس از جدایی از اَپل شرکت جدیدی با نام NeXT تأسیس کرد تا بتواند به سرعت یک کامپیوتر با سیستم‌عاملی جدید را به بازار عرضه کند.

تیم NeXT برای صرفه‌جویی در زمان توسعهٔ این او‌اس، از کِرنِل Mach که برای اهداف پژوهشی در رابطه با سیستم‌عامل‌ها توسط دانشگاه Carnegie Mellon توسعه داده شده بود به همراه بخش‌هایی از سورس‌کد BSD (سیستم‌عاملی شبیه یونیکس) استفاده کردند که در نهایت توانستند سیستم‌عامل مخصوص به خود را با نام NeXTSTEP عرضه کنند.

NeXT هرگز نتوانست از طریق این سیستم‌عامل سودآوری تجاری داشته باشد که یکی از دلایلش هم عادت استیو جابز در هزینه‌ کردن بی‌محابا برای پروژه‌ها بود! در این میان، اَپل نیز برای آپدیت سیستم‌عامل خود و همچنین شریک شدن با شرکت IBM، تلاش‌هایی را انجام داد اما در نهایت به موفقیت چندانی دست نیافت که در نتیجه این کمپانی در سال ۱۹۹۷، کمپانی NeXT را به مبلغ ۴۲۹ میلیون دلار خرید که این امر موجب شد تا هم استیو جابز به شرکت اَپل باز گردد و هم سیستم‌عامل NeXTSTEP به‌ عنوان پایه و اساس سیستم‌عامل‌های مک و آی‌او‌اِس مورد استفاده قرار گیرد.

تاریخچهٔ کِرنِل سیستم‌عامل گنو/لینوکس
برخلاف کِرنِل سیستم‌عامل مک، هدف از توسعهٔ لینوکس سودآوری و اهداف تجاری نبود. لینوکس توسط یک دانشجوی علوم کامپیوتر فنلاندی به‌ نام Linus Torvalds در سال ۱۹۹۱ توسعه داده شد. در واقع، #لینوس توروالدز در ابتدا برای اینکه بتواند از فواید پردازندهٔ ۸۰۳۸۶ جدید کامپیوتر خود بهره‌مند شود، کِرنِل لینوکس را مطابق با مشخصات فنی کامپیوتر خود نوشت و آن را در آگوست ۱۹۹۱ به یوزنِت ارسال کرد (یوزنِت سیستمی بود که در آن گروه‌ها می‌توانستند به بحث و گفتگو بپردازند.)

طولی نکشید که از سرتاسر جهان در توسعهٔ کِرنِل لینوکس مشارکت شد و فیچرهای جدیدی به آن افزوده گردید. در ادامه، Orest Zborowski، یکی از دولوپرهای مشارکت‌کننده در توسعهٔ کِرنِل لینوکس، X Window System را به لینوکس منتقل کرد که موجب شد تا کاربران بتوانند برای استفاده از لینوکس، علاوه بر کامندلاین، از GUI نیز بهره‌مند گردند؛ به عبارتی، از آن پس لینوکس از یک یوزِر اینترفِیس گرافیکی برخوردار شد.

در سال‌های بعد، لینوکس دیگر یک پروژهٔ کوچک دانشجویی نبود بلکه به آرامی رشد کرد و فیچرهای جدیدی به آن اضافه شد تا جایی که امروزه بر روی اغلب دیوایس‌های محاسباتی و سوپرکامپیوترهای دنیا در حال اجرا است (برای آشنایی بیشتر با گنو/لینوکس، می‌توانید به دورهٔ آموزش آنلاین و رایگان لینوکس در سکان آکادمی مراجعه نمایید.)

درآمدی بر فیچرهای کِرنِل سیستم‌عامل مک
کِرنِل مک به‌ صورت رسمی با نام XNU شناخته می‌شود که البته این نام، هیچ ارتباطی با کلمه UNIX ندارد. همان‌طور که در ریپازیتوری Darwin Kernel در گیت‌هاب بیان شده است، XNU یک کِرنِل ترکیبی است که شامل کِرنِل Mach، کامپونِنت‌هایی از FreeBSD (سیستم‌عاملی شبیه یونیکس) و یک API برای زبان ++C به منظور توسعهٔ درایورهای مختلف می‌شود (Driver برنامه‌ای برای کنترل دیوایس‌هایی مانند پرینتر، کارت گرافیک و غیره است.)

بخشی از ساب‌سیستم BSD اساساً به‌ عنوان فضایی برای برنامه‌های کاربردی و برخی از درایورها در سیستم‌های میکروکِرنِل پیاده‌سازی شده است که به‌ اصطلاح به آن User Space می‌گویند به طوری که وظیفهٔ میکروکِرنِلِ Mach انجام کارهای سطح‌ پایین مثل مدیریت حافظهٔ مجازی، محافظت از حافظه، پشتیبانی از اشکال‌زدایی کِرنِل، مالتی‌تَسکینگ یا انجام چند کار در آنِ واحد و عملیات به اصطلاح I/O است.

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

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

منبع


علی اسدی