موضوع مقاله: تاریخچه توسعه هسته | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # تاریخچه توسعه هسته | مقدمه: هسته‌های سیستم عامل اولیه عنوان اصلی: تاریخچه سیستم‌های عامل صرفاً، یک سیستم عامل (و در نتیجه، یک هسته) لازمهٔ راه اندازی کامپیوتر نمی‌باشد. | ## بخش 1: تاریخچه توسعه هسته | برنامه‌ها می‌توانند مستقیماً روی دستگاه" سیستم بدون برنامه" که توسط برنامه نویسان ارائه شده‌است و بدون در نظر گرفتن کیفیت سخت‌افزار یا پشتیبانی سیستم عامل بارگذاری و اجرا شوند. بیشتر کامپیوترها در خلال سال ۱۹۵۰ و اوایل ۱۹۶۰ بدین روش راه اندازی می‌شدند که تنظیم و بارگذاری بین اجرای برنامه‌های گوناگون صورت می‌گرفت. تدریجاً، برنامه‌های فرعی مانند:برنامه بارگذاری و اشکال زدایی در حافظهٔ ROM باقی می‌ماندند. همان‌طور که این موارد توسعه پیدا می‌کردند، اساس هسته‌های سیستم عامل شکل می‌گرفت. امروز رویکرد "فلز لخت" هنوز در بعضی از کنسول‌های بازی ویدئویی و سیستم‌های جاسازی شده‌استفاده می‌شود. اما به‌طور کلی، کامپیوترهای جدیدتر، از هسته‌ها و سیستم‌های عامل مدرن استفاده می‌کنند. در سال ۱۹۶۹ سیستم برنامهٔ چند منظوره Rc 4000، فلسفه طراحی سیستم هسته‌های کوچک را معرفی نمود" که سیستم‌های عامل برای اهداف گوناگون می‌توانستند به‌طور منظم ساخته شوند" که رویکرد میکروکرنل نامگذاری شد". سیستم‌های عامل اشتراک زمانی عنوان اصلی: اشتراک زمان در دههٔ قبل از یونیکس، کامپیوترها با قدرت رشد فوق‌العاده ایی به سمت نقطه‌ای که اپراتورهای کامپیوتر در جستجوی راه جدید برای مردم جهت استفادهٔ اوقات فراغت شان از کامپیوتر بودند. یکی از توسعه‌های اصلی در آن دوران، اشتراک زمان بود که به موجب آن تعدادی از کاربران زمان کوتاهی از کامپیوتر می‌گرفتند. در حالی که به نظر می‌رسید که هر یک از آن‌ها به کامپیوتر آهسته‌تر خود متصل بودند. یکی از مشکلات این بود که کاربران به‌خصوص در دانشگاه‌ها درجایی که سیستم‌ها در حال توسعه بودند، بنظر می‌رسید که می‌خواستند سیستم‌ها را هک کنند تا از زمان بیشتر CPU استفاده کنند. در حالی که سیستم اشتراک زمان می‌بایست در خلال این مدت زمان CPU را به یک کاربر فعال می‌داد. | ## بخش 2: تاریخچه توسعه هسته | نهایتاً، سیستم‌ها به‌طور معمول یک سلسله مراتب حافظهٔ عمیق چند لایه‌ای را ارائه می‌دادند و پارتیشن‌بندی این منبع گران‌قیمت، منجر به توسعه سیستم‌های حافظهٔ مجازی شد. آمیگا (Amiga) عنوان اصلی: سیستم عامل amiga در سال ۱۹۸۵ آمیگا کمدور به بازار آمد و در میان اولین و مطمئناً از موفق‌ترین کامپیوترهای خانگی با ویژگی معماری هسته پیشرفته بود. فقط فعالیت‌های به‌خصوص در وضعیت هسته اجراء می‌شوند و برنامه‌های حالت کاربر، می‌تواند از سیستم عامل در خواست کنند تا کدها در وضعیت هسته اجراء شوند. یونیکس عنوان اصلی یونیکس در مرحلهٔ طراحی یونیکس، برنامه نویسان چون اعتقاد داشتند منظور از محاسبات، انتقال داده‌ها است، تصمیم گرفتند تا هر دستگاه سطح بالا را به عنوان یک فایل مدل سازی کنند. به عنوان مثال، چاپگرها به عنوان یک” فایل” موجود در یک مکان شناخته شده ارائه می‌شوند. سیستم‌های دیگر قابلیت مشابه‌ای را ارائه می‌کنند که تمایل به مجازی سازی دستگاه‌ها را در یک سطح پایین‌تر دارند؛ بنابراین هر دو دستگاه و فایل‌ها بیانگر مفهوم سطح پایین‌تری می‌باشند. مجازی سازی سیستم در سطح فایل به کاربران اجازه می‌دهد تا کاربر کل سیستم را با استفاده از مفهوم‌ها و کاربرد پذیری مدیریت فایل موجود به‌طور ساده دستکاری نماید. به عنوان توسعه همان دیاگرام، یونیکس به برنامه نویسان اجازه می‌دهد که با به‌کارگیری از یک سری برنامه‌های کوچک و استفاده از مفهوم «لوله‌ها»، فایل‌ها را دست کاری کنند تا آن‌ها را قادر سازد که مراحل بهره‌برداری را با تغذیه فایل، از طریق زنجیره‌ای از ابزارهای تک منظوره کامل کنند. اگرچه نتیجهٔ پایانی مشابه بود، استفاده از برنامه‌های کوچکتر در این روش به‌طور قابل توجهی انعطاف‌پذیری و سهولت توسعه در استفاده از آن را افزایش داد. این کار به کاربر اجازه می‌دهد که جریان کار خود را با اضافه کردن یا حذف یک برنامه از زنجیره اصلاح کند. اول، مجموعهٔ عظیمی از برنامه‌های نرم‌افزاری که اغلب عملیات را راه اندازی می‌کند و دیگری هسته است که برنامه‌ها را اجراء می‌کند تحت یونیکس، از نقطه نظر برنامه‌نویسی اختلاف دو مورد ذکر شده بسیار ناچیز است. هسته یک برنامه است که در مقام سوپروایزر عمل می‌کند که در نقش بارگذاری و سوپروایزری، برای استفادهٔ برنامه‌های کوچک، باقی‌مانده فعالیت سیستم را جبران می‌کند. | ## بخش 3: تاریخچه توسعه هسته | این‌گونه برنامه‌ها بمنظور ارائه خدمات قفل کردن و خدمات ورودی-خروجی استفاده می‌شود. طی گذشت سالیان مدل محاسباتی تغییر کرد، تلقی یونیکس در هر چیز به عنوان یک فایل یا جریان بایت، دیگر کاربرد جهانی مثل سابق را نداشت. اگرچه یک ترمینال می‌توانست به عنوان یک فایل یا جریان بایت تلقی گردد که می‌تواند چاپ یا خوانده شود، لیکن به نظر نمی‌رسید که برای رابط کار گرافیکی صدق کند. اگرچه ارتباط شبکه با دسترسی فایل قابل مقایسه است، لیکن معماری سطح پایین بسته گرا تعامل با کل فایل‌ها را نداشته، بلکه بیشتر با قطعات مجزای داده‌ها در عمل است. همان‌طور که قابلیت کامپیوترها رشد می‌کند، هستهٔ یونیکس با افزایش کدها دچار بهم ریختگی می‌شود. هسته‌ها ممکن است دارای ۱۰٫۰۰۰ خط کد باشند، در حالی که در دهه ۷۰ و ۸۰ هسته‌های مدرن جانشین یونیکس مانند: لینوکس به بیش از ۱۳ میلیون خط رسیدند. مشتقات یونیکس مدرن به‌طور کلی بر مبنای مدل مقیاس بارگذاری هسته‌های یکپارچه می‌باشند. به غیر از این گزینه‌ها، توسعه دهندگان تازه‌کار (آماتور)، جامعهٔ توسعه سیستم عامل را به صورت فعال حفظ می‌کنند. معماری هسته Windows NT به عنوان هسته هایبرد تلقی می‌شود، برای اینکه هسته به خودی خود دربرگیرنده کارهایی مانند: مدیریت پنجره و مدیران IPC با مشتری/ لایه سرور مدل زیر سیستم است. خانواده میکروکرنل L4 (در اصل هستهL3 و L4) بدین منظور ساخته شدند تا نشان داده شود که میکروکرنل لزوماً کند نیستند. | ## جمع‌بندی | علاوه برآن، QNX یک میکرو کرنل است که اصولاً در سیستم‌های جاسازی شده‌استفاده می‌گردد.