تاریخچه توسعه هسته

از ویکی‌پدیا، دانشنامهٔ آزاد

هسته‌های سیستم عامل اولیه

عنوان اصلی: تاریخچه سیستم‌های عامل

صرفاً، یک سیستم عامل (و در نتیجه، یک هسته) لازمهٔ راه اندازی کامپیوتر نمی‌باشد. برنامه‌ها می‌توانند مستقیماً روی دستگاه" سیستم بدون برنامه" که توسط برنامه نویسان ارائه شده‌است و بدون در نظر گرفتن کیفیت سخت‌افزار یا پشتیبانی سیستم عامل بارگذاری و اجرا شوند. بیشتر کامپیوترها در خلال سال ۱۹۵۰ و اوایل ۱۹۶۰ بدین روش راه اندازی می‌شدند که تنظیم و بارگذاری بین اجرای برنامه‌های گوناگون صورت می‌گرفت. تدریجاً، برنامه‌های فرعی مانند:برنامه بارگذاری و اشکال زدایی در حافظهٔ ROM باقی می‌ماندند. همان‌طور که این موارد توسعه پیدا می‌کردند، اساس هسته‌های سیستم عامل شکل می‌گرفت. امروز رویکرد "فلز لخت" هنوز در بعضی از کنسول‌های بازی ویدئویی و سیستم‌های جاسازی شده‌استفاده می‌شود. اما به‌طور کلی، کامپیوترهای جدیدتر، از هسته‌ها و سیستم‌های عامل مدرن استفاده می‌کنند. در سال ۱۹۶۹ سیستم برنامهٔ چند منظوره Rc 4000، فلسفه طراحی سیستم هسته‌های کوچک را معرفی نمود" که سیستم‌های عامل برای اهداف گوناگون می‌توانستند به‌طور منظم ساخته شوند" که رویکرد میکروکرنل نامگذاری شد".

سیستم‌های عامل اشتراک زمانی[ویرایش]

عنوان اصلی: اشتراک زمان

در دههٔ قبل از یونیکس، کامپیوترها با قدرت رشد فوق‌العاده ایی به سمت نقطه‌ای که اپراتورهای کامپیوتر در جستجوی راه جدید برای مردم جهت استفادهٔ اوقات فراغت شان از کامپیوتر بودند. یکی از توسعه‌های اصلی در آن دوران، اشتراک زمان بود که به موجب آن تعدادی از کاربران زمان کوتاهی از کامپیوتر می‌گرفتند. در حالی که به نظر می‌رسید که هر یک از آن‌ها به کامپیوتر آهسته‌تر خود متصل بودند. توسعه سیستم‌های اشتراک زمانی، منجر به بروز مشکلاتی شد. یکی از مشکلات این بود که کاربران به‌خصوص در دانشگاه‌ها درجایی که سیستم‌ها در حال توسعه بودند، بنظر می‌رسید که می‌خواستند سیستم‌ها را هک کنند تا از زمان بیشتر CPU استفاده کنند. به این دلیل در سال ۱۹۶۵ ایمنی و کنترل دسترسی تمرکز اصلی پروژه مولتیکس شد. یکی دیگر از مشکلات مداوم، درست استفاده کردن از منابع محاسباتی بود: کاربران به‌جای استفاده از منابع کامپیوتر، بیشتر وقت شان را صرف بالا آمدن صفحه نمایش و فکر کردن سپری می‌کردند. در حالی که سیستم اشتراک زمان می‌بایست در خلال این مدت زمان CPU را به یک کاربر فعال می‌داد. نهایتاً، سیستم‌ها به‌طور معمول یک سلسله مراتب حافظهٔ عمیق چند لایه‌ای را ارائه می‌دادند و پارتیشن‌بندی این منبع گران‌قیمت، منجر به توسعه سیستم‌های حافظهٔ مجازی شد.

آمیگا (Amiga)[ویرایش]

عنوان اصلی: سیستم عامل amiga

در سال ۱۹۸۵ آمیگا کمدور به بازار آمد و در میان اولین و مطمئناً از موفق‌ترین کامپیوترهای خانگی با ویژگی معماری هسته پیشرفته بود. جزء اجرایی هستهٔ سیستم عامل آمیگا، کتابخانه اجراء(exec.library)، از یک طرح عبور پیام میکروکرنل استفاده می‌کند. اما اجزاء دیگر هستند مانند: کتابخانه گرافیک(graphics.library)وجود دارد که مستقیماً به سخت‌افزار دسترسی دارد. حافظت حافظه وجود ندارد و هسته تقریباً همیشه در وضعیت کاربر در حال اجرا است. فقط فعالیت‌های به‌خصوص در وضعیت هسته اجراء می‌شوند و برنامه‌های حالت کاربر، می‌تواند از سیستم عامل در خواست کنند تا کدها در وضعیت هسته اجراء شوند.

یونیکس[ویرایش]

عنوان اصلی یونیکس

در مرحلهٔ طراحی یونیکس، برنامه نویسان چون اعتقاد داشتند منظور از محاسبات، انتقال داده‌ها است، تصمیم گرفتند تا هر دستگاه سطح بالا را به عنوان یک فایل مدل سازی کنند. به عنوان مثال، چاپگرها به عنوان یک” فایل” موجود در یک مکان شناخته شده ارائه می‌شوند. با کپی کردن داده‌ها در یک فایل، خروجی آن چاپ می‌شود. سیستم‌های دیگر قابلیت مشابه‌ای را ارائه می‌کنند که تمایل به مجازی سازی دستگاه‌ها را در یک سطح پایین‌تر دارند؛ بنابراین هر دو دستگاه و فایل‌ها بیانگر مفهوم سطح پایین‌تری می‌باشند. مجازی سازی سیستم در سطح فایل به کاربران اجازه می‌دهد تا کاربر کل سیستم را با استفاده از مفهوم‌ها و کاربرد پذیری مدیریت فایل موجود به‌طور ساده دستکاری نماید. به عنوان توسعه همان دیاگرام، یونیکس به برنامه نویسان اجازه می‌دهد که با به‌کارگیری از یک سری برنامه‌های کوچک و استفاده از مفهوم «لوله‌ها»، فایل‌ها را دست کاری کنند تا آن‌ها را قادر سازد که مراحل بهره‌برداری را با تغذیه فایل، از طریق زنجیره‌ای از ابزارهای تک منظوره کامل کنند. اگرچه نتیجهٔ پایانی مشابه بود، استفاده از برنامه‌های کوچکتر در این روش به‌طور قابل توجهی انعطاف‌پذیری و سهولت توسعه در استفاده از آن را افزایش داد. این کار به کاربر اجازه می‌دهد که جریان کار خود را با اضافه کردن یا حذف یک برنامه از زنجیره اصلاح کند. در مدل یونیکس، سیستم عامل شامل دو قسمت است. اول، مجموعهٔ عظیمی از برنامه‌های نرم‌افزاری که اغلب عملیات را راه اندازی می‌کند و دیگری هسته است که برنامه‌ها را اجراء می‌کند تحت یونیکس، از نقطه نظر برنامه‌نویسی اختلاف دو مورد ذکر شده بسیار ناچیز است. هسته یک برنامه است که در مقام سوپروایزر عمل می‌کند که در نقش بارگذاری و سوپروایزری، برای استفادهٔ برنامه‌های کوچک، باقی‌مانده فعالیت سیستم را جبران می‌کند. این‌گونه برنامه‌ها بمنظور ارائه خدمات قفل کردن و خدمات ورودی-خروجی استفاده می‌شود. فراتر از این بحث، هسته در فضای کاربر دخالتی ندارد. طی گذشت سالیان مدل محاسباتی تغییر کرد، تلقی یونیکس در هر چیز به عنوان یک فایل یا جریان بایت، دیگر کاربرد جهانی مثل سابق را نداشت. اگرچه یک ترمینال می‌توانست به عنوان یک فایل یا جریان بایت تلقی گردد که می‌تواند چاپ یا خوانده شود، لیکن به نظر نمی‌رسید که برای رابط کار گرافیکی صدق کند.

شبکه مشکل دیگری را مطرح می‌کند. اگرچه ارتباط شبکه با دسترسی فایل قابل مقایسه است، لیکن معماری سطح پایین بسته گرا تعامل با کل فایل‌ها را نداشته، بلکه بیشتر با قطعات مجزای داده‌ها در عمل است. همان‌طور که قابلیت کامپیوترها رشد می‌کند، هستهٔ یونیکس با افزایش کدها دچار بهم ریختگی می‌شود. به علت گسترده بودن هسته، این بهم ریختگی قابل اندازه‌گیری است. هسته‌ها ممکن است دارای ۱۰٫۰۰۰ خط کد باشند، در حالی که در دهه ۷۰ و ۸۰ هسته‌های مدرن جانشین یونیکس مانند: لینوکس به بیش از ۱۳ میلیون خط رسیدند. مشتقات یونیکس مدرن به‌طور کلی بر مبنای مدل مقیاس بارگذاری هسته‌های یکپارچه می‌باشند. در این مورد می‌توان از مثال QNX، یک میکروکرنل در مالکیت Black Berry، هسته لینوکس در توزیع‌های زیاد مانند پخش نرم‌افزار Berkeley و انواع هسته‌ها مانند Mac OS ,Open BSD, Net BSD , Dragonfly BSD ,Free BSD نام برد. به غیر از این گزینه‌ها، توسعه دهندگان تازه‌کار (آماتور)، جامعهٔ توسعه سیستم عامل را به صورت فعال حفظ می‌کنند. اجتماعی که با سرگرمی نوشته‌های هسته خود، اغلب منجر به اشتراک گذاشتن بسیاری از ویژگی‌ها می‌شوند، مثلاً ایجاد سازگاری با برنامه‌های FreeBSd , Dragonfly BSd , Open BSd یا هسته‌های NetBSD

سیستم عامل MAc[ویرایش]

عنوان اصلی: سیستم عامل Mac

Apple برای اولین بار Mac OSکلاسیک را همراه با کامپیوتر شخصی مکین تاش در سال ۱۹۸۴ راه اندازی کرد. Apple به سمت طراحی غیرهسته‌ای Mac OS 8.6 حرکت کرد؛ که در این ورژن به طراحی Nano Kernel پرداخت. برخلاف این MacOS مدرن (در اصل Mac OSx) نامیده شد که مبنای آن Darwin است که در آن هسته هابرید که آن را XNU می‌نامند استفاده می‌شود؛ که با ترکیب هسته 4.3 BSDو هسته Mach به وجود آمد.

Microsoft windows[ویرایش]

عنوان اصلی: تاریخچه میکروسافت ویندوز

میکروسافت ویندوز به عنوان اضافه شدن به MS-DOS در سال ۱۹۸۵ به بازار آمد. به علت وابستگی آن به سیستم‌های عامل دیگر در ورود اولیه آن به بازار به عنوان Windows، قبل از Windows 95 یک محیط عملیاتی تلقی شد. (که با سیستم عامل اشتباه نشود) این خط تولید، ادامه تکامل دهه ۸۰ و ۹۰ بود. با به اوج رسیدن Windows 9x در بازار (ارتقا قابلیت سیستم از ۳۲ بیت با پرداختن به چند وظیفه پیشگیرانه) در اواسط دهه ۹۰ و خاتمه ورود به بازار Windows Me در سال ۲۰۰۰، میکروسافت همچنین Windows NT را به منظور یک سیستم عامل برای کاربران کسب و کار نهایی توسعه داد. شروع این خط در سال ۱۹۹۳ با ورود Windows NT 3.1 به بازار بود و در خلال سال‌های ۲۰۱۰ با Windows و Windows 2012 ادامه یافت. برای جایگزینی Windws 9x در اکتبر سال ۲۰۰۱، Windows xp با نسخه nt که یک سیستم عامل کاملاً متفاوت بود برای استفاده عموم به بازار عرضه شد. معماری هسته Windows NT به عنوان هسته هایبرد تلقی می‌شود، برای اینکه هسته به خودی خود دربرگیرنده کارهایی مانند: مدیریت پنجره و مدیران IPC با مشتری/ لایه سرور مدل زیر سیستم است.

توسعه میکرو هسته ها(Development of microckernel)[ویرایش]

ماخ(mach)از سال ۱۹۹۴–۱۹۸۵ در دانشگاه کارنگی ملون توسعه یافت که به عنوان بهترین میکروکرنل چند منظوره شناخته شده‌است. در حالی که سایر میکروکرنل‌ها بیشتر برای اهداف خاص توسعه یافته‌اند. خانواده میکروکرنل L4 (در اصل هستهL3 و L4) بدین منظور ساخته شدند تا نشان داده شود که میکروکرنل لزوماً کند نیستند. پیاده‌سازی جدیدتر مانند: Fias CD و Pistachio قادر هستند که لینوکس را در کنار فرایندهای L4 در فضاهای جداگانه دیگر راه اندازی می‌کنند. علاوه برآن، QNX یک میکرو کرنل است که اصولاً در سیستم‌های جاسازی شده‌استفاده می‌گردد.