هسته یونیکس در رایانه شامل چه مجموعه ای است؟
معماری یونیکس
هسته یونیکس - اجزاء کلیدی یا هسته سیستم عامل - شامل بسیاری از زیرسیستم‌ها مانند مدیریت فرایند، زمان‌بندی، مدیریت فایل، مدیریت دستگاه، مدیریت شبکه، مدیریت حافظه، مدیریت وقفه و مدیریت سخت‌افزارها می‌باشد.
منفذ هسته‌ای
منفذ هسته‌ای بخشی از مجتمع پروتئینی است که به مجتمع منفذ هسته‌ای شناخته شده و از درون پوشش هسته‌ای (که یک جفت غشای دوتایی است که هسته سلول های یوکاریوتی را در بر می گیرد) عبور می کند. در حدود ۱۰۰۰ مجتمع منفذ هسته‌ای (NPCها) در پوشش هسته‌ای سلول‌های مهره دارن وجود دارد، که البته تعدادشان بسته به نوع سلول و این که در چه مرحله ای از چرخه زندگی قرار دارد، متغیر است. مجتمع منفذ هسته‌ای انسانی (hNPC) یک سازه ۱۱۰ مگادالتونی (MDa) است. پروتئین‌های که مجتمع منفذ هسته‌ای را شکل می دهند به ناکلئوپورین معروفند؛ هر کدام از NPC ها شامل حداقل ۴۵۶ ملکول مجزای پروتئینی اند به گونه ای که هر کدام از این NPC ها شامل ۳۴ ناکلئوپورین مجزا می باشند. هسته (سیستم‌عامل)
بسیاری از هسته ها اجرای "قابلیت ها" ، یعنی اشیایی را که به کد کاربر ارائه می شود امکان دسترسی محدود به یک شیء اساسی را که توسط هسته کنترل می شود فراهم می کنند. مثال متداول ، دست زدن به پرونده است: یک پرونده بازنمایی اطلاعات ذخیره شده در یک دستگاه ذخیره سازی دائمی است. هسته ممکن است قادر به انجام بسیاری از عملیات های مختلف ، از جمله خواندن ، نوشتن ، حذف یا اجرای آن باشد ، اما یک برنامه در سطح کاربر فقط ممکن است مجاز به انجام برخی از این عملیات ها باشد (به عنوان مثال ، فقط خواندن پرونده مجاز است). اجرای مشترک این امر این است که کرنل یک شیء را برای برنامه ارائه دهد (معمولاً به اصطلاح "دسته پرونده" نامیده می شود) و سپس برنامه می تواند عملیات را فراخوانی کند ، اعتبار آن در زمان درخواست عملیات هسته را بررسی می کند. چنین سیستمی ممکن است گسترش یابد تا تمام اشیاء هسته را مدیریت کند ، و در واقع به اشیاء ارائه شده توسط برنامه های کاربردی کاربر دیگر باشد. تاریخچه یونیکس
شرکت AT&T یونیکس را تحت گواهی‌نامه‌هایی، برای دانشگاه‌ها، شرکت‌های بازرگانی و همین‌طور دولت ایالات متحده در دسترس ساخت. این گواهینامه‌ها شامل کل کد منبع یونیکس از جمله بخش‌هایی از هسته سیستم‌عامل که وابسته به ماشین بودند و با زبان اسمبلی PDP-11 نوشته شده بودند، می‌شدند. در اواخر دهه ۱۹۷۰ میلادی، کپی‌هایی از کدهای منبع یونیکس به صورت زیرنویس‌شده و به همراه توضیحات، در قالب کتابی از جان لیونز به نام تفسیری بر ویرایش ۶ یونیکس توسط لیونز، به همراه کد منبع دست به دست می‌چرخید. این کتاب نقش قابل توجهی در استفاده از یونیکس به عنوان یک منبع آموزشی شد. یونیکس فایل سیستم
سیستم فایل یونیکس یا (UFS) یک سیستم فایل است که توسط بیشتر سیستم عامل‌های یونیکس و شبه یونیکس استفاده می‌شود. این سیستم فایل همچنین سیستم فایل سریع برکلی، سیستم فایل سریع بی‌اس‌دی یا FFS نامیده می‌شود. رایانه
در رایانه‌های معاصر واحد محاسبه و منطق را به همراه واحد کنترل در یک مدار مجتمع که واحد پردازشی مرکزی (CPU) نامیده می‌شود، جمع نموده‌اند. عموماً، حافظه رایانه روی یک مدار مجتمع کوچک نزدیک CPU قرار گرفته. اکثریت قاطع بخش‌های رایانه تشکیل شده‌اند از سامانه‌های فرعی (به عنوان نمونه، منبع تغذیه رایانه) یا دستگاه‌های ورودی/خروجی. هسته سلول
هسته سلولی شامل کلیه ژنوم سلول، به جز بخش کوچکی از DNA میتوکندری، به عنوان مولکول‌های مولکولی DNA چند خطی طولانی در یک مجموعه با انواع زیادی از پروتئین‌ها، مانند هیستون‌ها، برای تشکیل کروموزوم‌ها سازمان یافته‌است. ژنهای موجود در این کروموزومها به گونه ای برای ارتقاء عملکرد سلول ساخته می‌شوند. این هسته یکپارچگی ژنها را حفظ می‌کند و فعالیت سلول را با تنظیم بیان ژن کنترل می‌کند - بنابراین هسته مرکزی مرکز کنترل سلول است. ساختارهای اصلی تشکیل دهنده هسته شامل پاکت هسته ای است، یک غشای مضاعف که کل اندامک را محصور می‌کند و محتویات آن را از سیتوپلاسم سلولی جدا می‌کند، و ماتریس هسته ای، شبکه ای در هسته است که می‌افزاید که دقیقاً مانند سیتوسکلت از کل سلول پشتیبانی می‌کند. Cat (یونیکس)
برنامه cat یک ابزار استاندارد یونیکس و یکی از دستورهای پایه‌ای و اصلی در سیستم‌عامل‌های شبه یونیکس می‌باشد که از آن می‌توان برای الحاق و چاپ کردن محتوای یک پرونده در خروجی استاندارد استفاده کرد. نام این دستور از واژهٔ catenate به معنای متصل کردن به هم گرفته شده‌است. این دستور فایلی را به صورت ترتیبی می‌خواند و سپس آن را به همان صورت در خروجی استاندارد چاپ می‌کند. همچنین می‌توان چند فایل را در خط فرمان مشخص کرد که در این صورت همه آن‌ها به ترتیب از چپ به راست خوانده شده و در خروجی استاندارد نوشته می‌شوند. اگر در خط فرمان فایلی مشخص نشده باشد یا یک (-) نوشته شده باشد، cat فایل را از ورودی استاندارد می‌خواند. اگر فایل مورد یک سوکت باشد، cat به آن متصل شده و آن را تا رسیدن به کاراکتر EOF می‌خواند. هسته لینوکس
نسخه ۲٫۴٫۰، در ۴ ژانویه ۲۰۰۱ منتشر شد، شامل پشتیبانی از کارت‌های ISA Plug and Play , USB و PC است. این برنامه همچنین شامل پشتیبانی از پردازنده PA-RISC از Hewlett-Packard است. توسعه برای 2.4.x کمی تغییر کرده‌است که ویژگی‌های بیشتری در طول مدت سریال از جمله پشتیبانی از بلوتوث، Logical Volume Manager (LVM) نسخه ۱، پشتیبانی RAID , InterMezzo و سیستم‌های پرونده ext3 در دسترس قرار گرفته‌است. خط لوله (نرم‌افزار)
خطوط لوله CMS درگاه ورودی ایده خط لوله به ماشین مجازی / سیستم مدیریت محتوا و سیستم‌های MVS است. که ساختارهای خط لوله پیچیده بیشتری از بدنه ساختار یونیکس را با گرفتن چندین جریان ورودی و تولید چندین جریان خروجی پشتیبانی می‌کند. (چنین قابلیت‌هایی توسط هسته یونیکس پشتیبانی می‌شوند اما برنامه‌های کمی از آن استفاده می‌کنند تا از آن برای ترکیبات نحوی پیچیده و حالات مسدود آماده سازد اگر چه بدنه برخی از ساختارها از طریق تخصیص فایل توصیف‌گر به‌طور اختیاری آن را پشتیبانی می‌کنند). با توجه به ماهیت متفاوت سیستم عامل‌های رایانه‌های بزرگ IBM، مراحل بسیاری را در داخل خط لوله‌های CMS انجام می‌دهند، که در یونیکس برنامه‌های خارجی جدا از هم هستند اما می‌توانند به‌طور جداگانه برنامه‌های خارجی را برای عملکردشان صدا بزنند. ، به دلیل ماهیت فایل‌های ضبط گرا در رایانه‌های بزرگ IBM، خط لوله در ضبط گرا سریعتر از شیوه جریان گرا فعالیت می‌کند. شبه خط لوله در سیستم عامل‌ها تک وظیفه‌ای فرایندهای خط لوله باید یک به یک به‌طور سری اجرا شوند، بنابراین خروجی هر فرایند باید در یک فایل موقت ذخیره شود که پس از آن توسط فرایند بعدی خوانده شود. از آنجا که هیچ گونه موازی‌سازی یا تعویض پردازنده وجود ندارد این نسخه " شبه خط " لوله نامیده می‌شود. به عنوان مثال، دستور مترجم خط از سیستم عامل داس ('COMMAND.COM') شبه خط لوله را با یک ترکیب ظاهری شبیه به خط لوله یونیکس فراهم می‌کند. فرمان "دیر | مرتب کردن | بیشتر" باید در آینده شبیه این اجرا شود (ولو پیچیده تر از نام فایل‌های موقت) به این ترتیب، شبه لوله مانند لوله‌های واقعی با بافر لوله را در اندازه نامحدود عمل می‌کند. (با وجود فضای محدود دیسک) با این محدودیت مهم که یک فرایند دریافت می‌کند نمی‌تواند هیچ داده‌ای را از روی بافر لوله تا زمانی که فرایند به‌طور کامل فرستاده نشده بخواند. علاوه بر ایجاد ترافیک دیسک اگر حافظه پنهان یک دیسک سخت مانند SMARTDRV نصب نشود می‌تواند تحت سیستم‌های چند وظیفه‌ای غیرضروری باشد. این اجرا همچنین لوله‌هایی می‌سازد که برای کاربردهایی که به پاسخ بلادرنگ نیاز دارند متناسب نیستند، برای مثال اهداف تعاملی ساخته شده (که در آن کاربر دستورهای را وارد می‌کند که فرایند اولین بار از طریق خط لوله ورودی آن‌ها را دریافت، وفرایند آخرین بار در خط لوله خروجی خود را از طریق خروجی به کاربر ارائه می‌کند) هسته لینوکس
جامعه توسعه دهندگان مشارکت کننده در لینوکس این مهم را تصور کرده‌اند که هسته ای که Torvalds برای رایانه‌های شخصی Intel نوشته بود از معماری مجموعه‌های مختلف دستورالعمل (ISA) پشتیبانی می‌کند. با شروع نسخه ۲٫۰، لینوکس شامل کلیه مؤلفه‌ها برای پیکربندی هسته قبل از تهیه آن برای اهداف سخت‌افزاری خاص است. هسته لینوکس
اگرچه در اصل برای قابل حمل طراحی نشده بود، اکنون لینوکس یکی از هسته‌های بسیار گسترده سیستم عامل است که در سیستم‌های متنوعی از معماری ARM گرفته تا رایانه‌های اصلی IBM z / Architecture اجرا می‌شود. اولین درگاه فراتر از معماری اصلی ۳۸۶ لینوکس بر روی پلت فرم موتورولا ۶۸۰۰۰ توسط کاربران آمیگا انجام شد که این کار را با جایگزینی بخش‌های اصلی هسته انجام داد. تغییرات در هسته آنقدر اساسی بود که توروالدز نسخه موتورولا را به عنوان یک چنگال و یک سیستم عامل شبیه به لینوکس مشاهده کرد و نه به عنوان یک درگاه واقعی. با این وجود انگیزه ای بود که Torvalds برای بازگرداندن عمده کد هسته به منظور تسهیل در انتقال به معماری‌های محاسباتی رقیب، نیاز به بازسازی عمده ای از هسته داشت. اولین درگاه مورد تأیید لینوکس به پلتفرم ۶۴ بیتی DEC Alpha AXP بود که در ماه مه ۱۹۹۵ در DECUS نشان داده شد، از ۳۸۶ و Alpha در یک درخت منفرد پشتیبانی کرد. DEC مسئول تأمین سخت‌افزار لازم برای Torvalds بود تا در همان سال بتواند درگاه لینوکس را به ۶۴ بیت برساند. ماژول هسته قابل بارگیری
اکثر سیستم های مشابه یونیکس و مایکروسافت ویندوز از ماژول های هسته قابل بارگذاری تحت نام های مختلف پشتیبانی می کنند ، مانند ماژول قابل بارگیری هسته (kld) در FreeBSD ، پسوند هسته (kext) در macOS (اکنون منسوخ شده است) ماژول داخلی هسته در AIX ، درایور حالت هسته در Windows NT و ماژول هسته قابل بارگیری (DKM) در VxWorks. آنها همچنین به عنوان ماژول های قابل بارگذاری هسته (یا KLM) و به بیانی ساده تر به عنوان ماژول های هسته (KMOD) شناخته می شوند. هنر برنامه‌نویسی یونیکس
هنر برنامه‌نویسی یونیکس کتابی نوشته اریک ریموند است که به بررسی تاریخچه و فرهنگ برنامه‌نویسی تحت سیستم‌عامل یونیکس، از سال‌های آغازین پیدایش این سیستم‌عامل از ۱۹۶۹ تا زمان انتشار کتاب در سال ۲۰۰۳ می‌پردازد و هم سیستم‌های مبتنی بر یونیکس که مستقیماً از خود این سیستم مشتق شدند، مثل بی‌اس‌دی و هم سیستم‌هایی مثل لینوکس که از ابتدا نوشته شدند، اما تلاش می‌کنند تا با یونیکس سازگار باشند را مورد پوشش قرار می‌دهد. نویسنده سعی کرده در این کتاب مفاهیم را با مقایسه کردن یونیکس با دیگر سیستم‌عامل‌ها، هم سیستم‌عامل‌های میزکارمحور و هم سیستم‌عامل‌های تحقیقاتی از جمله پلان ۹ از آزمایشگاه‌های بل توضیح دهد. اشخاص زیادی در نوشتن این کتاب مشارکت کردند و کتاب حاوی تعداد زیادی اظهار نظر و نقل و قول است. هسته لینوکس
مجموعه کامپایلر GNU (GCC یا GNU cc) کامپایلر پیش فرض برای منبع اصلی هسته لینوکس است و توسط یک ابزار بنام make ساخته می‌شود. سپس GNU Assembler (که اغلب به آن GAS یا GNU گفته می‌شود) برای تولید پرونده‌های شیء از مونتاژ تولید شده GCC استفاده می‌شود. سپس GNU Linker (GNU ld) برای تولید یک پرونده هسته اجرایی لینوکس قابل اجرا به نام vmlinux استفاده می‌شود. as و ld بخشی از بسته‌ای به نام GNU binutils است. ابزارهای فوق به صورت جمعی به عنوان ابزار GNU شناخته می‌شوند. هسته لینوکس
لینوکس به‌طور معمول از حافظه و حافظه مجازی استفاده می‌کند و همچنین می‌تواند به حافظه غیر یکنواخت دسترسی داشته باشد، با این حال این پروژه μClinux را جذب کرده‌است که باعث می‌شود لینوکس را بر روی میکروکنترلرها بدون حافظه مجازی نیز اجرا کنید. پوسته یونیکس
پوسته یونیکس یک مفسر خط فرمان یا شل (رایانه) است که یک واسط کاربر سنتی را برای سیستم عامل های یونیکس و شبه-یونیکس مهیا می‌کند. هسته سلول
درون هسته یک یا دو هستک وجود دارند که اطراف آن‌ها را نوکلئوپلاسم احاطه کرده‌است. نوکلئوپلاسم مایعی ژلاتینی است که مواد بسیاری را از جمله آنزیم، نوکلئوتید تری‌فسفات، پروتئین و… در خود حل می‌کند. اطلاعات ژنتیکی نیز در هسته و به‌صورت کروماتین وجود دارد. درون کروماتین رشته‌های کوچکی به نام دی ان ای (DNA) وجود دارد که مانند رمزوارهٔ سلول می‌ماند. در داخل هسته مولکولهای RNA از روی مولکولهای DNA ساخته می‌شوند. اکس‌باکس ۳۶۰
این پردازنده متشکل شده از ۳ هسته مستقل ولی متقارن که بر روی یک چیپ جاسازی شدن و هر هسته دو رشته متقارن سخت‌افزاری دارد که مجموعاً می‌شوند ۶ رشته برای کل پردازنده و در هر رشته ۱۲۸ دستورالعمل رجیستر ۱۲۸ بیتی دارد. واحد پردازش مرکزی
کارایی پردازش کامپیوترها، با استفاده از پردازنده‌های چند هسته ای که اساساً اتصال دو یا بیش از دو پردازندهٔ مجزا (با نام هسته‌ها، در این زمینه) در یک مدار مجتمع است، افزایش می‌یابد. به‌طور ایده‌آل، یک پردازندهٔ دو هسته ای تقریباً قدرت معادل دو برابر یک پردازنده تک هسته‌ای دارد، اما در واقعیت، افزایش کارایی بسیار کمتر از این است و حدود تقریباً ۵۰٪ است که دلیل آن، الگوریتم‌های نرم‌افزاری و پیاده‌سازی‌های ناکامل است. افزایش تعداد هسته‌ها در یک پردازنده (یعنی دو هسته ای، چهار هسته ای و …) موجب افزایش میزان بار کاری قابل انجام توسط پردازنده می‌شود. این بدان معنی است که این پردازنده‌ها می‌توانند وقایع ناهمگام، وقفه‌ها و … را که در حجم زیاد می‌توانند اثرات مخربی روی عملکرد پردازنده داشته باشند، مدیریت کنند. این هسته‌ها را می‌توان به شکل طبقات مختلف در یک ساختمان پردازش در نظر گرفت که هر طبقه یک وظیفهٔ متفاوت را انجام می‌دهد. گاهی این هسته‌ها، در زمانی که یک هسته به تنهایی برای مدیریت اطلاعات کافی نباشد، می‌توانند کاری مشابه با هسته‌های مجاور خود انجام دهند. ایدا (زبان برنامه‌نویسی)
یک برنامهٔ ایدا از یک یا بیش از یک واحد تشکیل شده‌است. واحدهای برنامه ممکن است زیربرنامه‌ها (که الگوریتم‌های قابل اجرا را تعریف می‌کنند)، پکیج‌ها (که مجموعه‌ای از موجودیت‌ها را تعریف می‌کنند)، واحدهای وظیفه (که محاسبات هم‌زمان را تعریف می‌کنند)، واحدهای حفاظت شده (که عملیاتی برای اشتراک هماهنگ داده‌ها بین وظیفه‌ها را تعریف می‌کنند)، یا واحدهای عمومی (که فرم‌های پارامتردار پکیج‌ها و زیربرنامه‌ها را تعریف می‌کنند) باشند. هر واحد برنامه معمولاً شامل دوبخش است: یکی بخش ذکر خصوصیات، شامل اطلاعاتی که باید برای واحدهای دیگر آشکار باشند؛ و دیگری بخش بدنهٔ برنامه، شامل پیاده‌سازی جزئیاتی که لازم نیست برای واحدهای دیگر قابل رؤیت باشد. بیشتر واحدهای برنامه می‌توانند به‌طور جداگانه کامپایل شوند. هسته لینوکس
Torvalds نسخه ۰ را به هسته اختصاص داد تا نشان دهد که این عمدتاً برای آزمایش بوده و برای کاربردی در نظر گرفته نشده‌است. در دسامبر ۱۹۹۱، هسته هسته لینوکس ۰٫۱۱ منتشر شد. این نسخه اولین نسخهٔ خود میزبان (self-hosted) لینوکس ۰٫۱۱ می‌توانست توسط یک کامپیوتر در حال اجرای لینوکس ۰٫۱۱ کامپایل شود. هسته لینوکس
هسته رسمی، یعنی شعبه git Linus در مخزن kernel.org، هیچ نوع کد اختصاصی ندارد؛ با این وجود لینوکس می‌تواند سیستم‌های فایل را برای یافتن سیستم عامل اختصاصی، درایورها و سایر ماژول‌های اجرایی جستجو کند، سپس می‌تواند آنها را به فضای هسته بارگذاری و پیوند دهد. هرگاه ماژول‌های اختصاصی به لینوکس بارگذاری می‌شوند، هسته خود را «لکه دار» می‌کند و بنابراین گزارش‌های مربوط به اشکالات هسته‌های رنگی اغلب توسط توسعه دهندگان نادیده گرفته می‌شوند. نسل هفتم کنسول‌های بازی ویدئویی
واحد پردازشگر گرافیکی این دستگاه پکیج یا بسته‌ای است که از دو بخش مجزا تشکیل گردیده مشتمل بر یک Chip طراحی شده توسط ATI به نام Xenos و یک daughter die ساخت کمپانی NEC که ۱۰ مگابایت حافظه جاسازی شده (eDRAM) دارد.این پردازشگر مجموعاً از ۳۳۷ میلیون ترانزیستور ساخته شده و در کلاک ۵۰۰ مگاهرتز کار می‌کند.به شکرانه این معماری و daughter die واحد پردازشگر گرافیکی توانایی اعمال Anti Aliasing 4X و Motion Blur را بدون کمترین هدر دهی توان پردازشی دارد. همچنین Xenos اولین پردازشگر گرافیکی بوده که از قابلیت Unified shader model یا مدل سایه‌زنی یکپارچه استفاده کرده به طوری که قابلیتی شبیه به اون تا یک سال و نیم بعد یعنی در January ۳۰، ۲۰۰۷ که برای اولین بار در GPUهای کامپیوترهای شخصی مورد استفاده قرار گرفت منحصراً در اختیار Xenos بوده. تاریخچه یونیکس
تا این لحظه، آزمایشگاه‌های بل از این پروژه حمایت مالی نمی‌کرد. وقتی که گروه تحقیقاتی علوم رایانه خواست از یونیکس بر روی ماشینی بزرگ‌تر از یک PDP-7 استفاده کند، تامسون و ریچی موفق شدند تا در ازای افزودن قابلیت‌هایی برای پردازش متن به یونیکس، یک ماشین PDP-11/20 را مبادله کنند. این کار باعث شد تا آزمایش‌گاه‌های بل تا اندازه‌ای از یونیکس حمایت مالی کند. در سال ۱۹۷۰، برای اولین بار، سیستم‌عامل یونیکس به‌طور رسمی نام‌گذاری شد و بر روی یک رایانه PDP-11/20 به اجرا درآمد. یک برنامه قالب‌بندی متن به نام roff و یک ویرایشگر متن به یونیکس اضافه شده بود. تمام این سه، به زبان اسمبلی PDP-11/20 نوشته شده بودند. آزمایشگاه‌های بل از این سیستم پردازش متن اولیه، که از یونیکس، roff و آن ویرایشگر متن تشکیل می‌شد، به منظور پردازش متن تقاضاهای پتنت استفاده می‌کرد. خیلی زود نسخه پیشرفته‌تری از برنامه roff تحت عنوان troff به وجود آمد که اولین برنامه انتشار الکترونیکی با قابلیت حروف‌چینی تمام و کمال بود. «راهنمای برنامه‌نویسان یونیکس» هم در ۳ نوامبر ۱۹۷۱ منتشر شد. Toor (یونیکس)
در یونیکس، رسم است که فایل‌سیستم ریشه، (/) تا حد امکان کوچک نگه داشته شود و برنامه‌های بزرگ و داده‌هایی که به سرعت در حال تغییر هستند، به دیگر قسمت‌های سیستم مانند /sur منتقل شوند. به این ترتیب، در صورت به وجود آمدن یک اشکال برای سیستم، احتمال اینکه کل سیستم غیرقابل استفاده شود، پایین می‌آید. همینطور وقتی که سیستمی دچار مشکل می‌شود، در حداقل‌ترین حالت کاربر ریشه باید قادر باشد به سیستم وارد شده و اشکالات آن را حل کند. حساب کاربری ریشه نباید به چیزهایی که در بیرون از فایل‌سیستم ریشه قرار دارند، وابسته باشد. چرا که در صورتی که برای مثال، پوسته این حساب کاربری در سیستم‌فایل /usr قرار داشته باشد و این سیستم‌فایل هم بر اثر ایجاد یک اشکال غیرقابل دسترس باشد، کاربر ریشه نمی‌تواند به سیستم وارد شود، چرا که پوسته آن در سیستم‌فایلی قرار گرفته که هم‌اکنون غیرقابل دسترس است. برای حل این مشکل، معمولاً یک پوسته کوچک، کارا و قابل اطمینان به این حساب کاربری اختصاص داده می‌شود که در همان سیستم‌فایل ریشه (/) قرار دارد. اما این پوسته ساده، برای انجام کارهای عادی و روزمره خیلی مناسب نیست، چرا که اکثر قابلیت‌ها در آن گنجانده نشده‌است و کاربران در هنگام کار با آن احساس راحتی نمی‌کنند. محیط میزکار اشتراکی
محیط میزکار اشتراکی یا به اختصار CDE یک محیط میزکار برای سیستم‌عامل‌های یونیکس و اپن‌وی‌ام‌اس است. سی‌دی‌ای بر اساس ابزار ویجت موتیف نوشته و طراحی شده است. سی‌دی‌ای برای یک مدت طولانی، میزکار «سنتی» یونیکس‌های تجاری محسوب می‌شد. این میزکار مدت زمان زیادی به صورت یک نرم‌افزار انحصاری توسعه داده می‌شد اما در تاریخ ۶ آگوست ۲۰۱۲ به صورت یک نرم‌افزار آزاد منتشر شد. سی‌دی‌ای اکنون تحت پروانه ال‌جی‌پی‌ال منتشر می‌شود؛ اما توسعه دهنگان قصد دارند در آینده علاوه بر ال‌جی‌پی‌ال، از پروانه ام‌آی‌تی نیز استفاده کنند و سی‌دی‌ای را به صورت دو-پروانه‌ای عرضه کنند. هسته یکپارچه
ویکی‌پدیا انگلیسی Dd (یونیکس)
ساختار کلی این فرمان با بیشتر فرمان‌های یونیکس متفاوت است. این تفاوت از این نظراست که معمولاً در یونیکس شما پارامترها یا سوئیچ‌های دستور را مستقیماً وارد می‌کنید و برنامه مرتبط با آن دستور، خود متوجه می‌شود که سوئیچ مربوطه باید چه تغییری را در روند اجرای عادی برنامه اعمال کند. در حالیکه فرمان dd سوئیچ‌ها و پارامترهایش را به صورت ترکیب «متغیر = مقدار» دریافت می‌نماید. به صورت پیش فرض، درگاه ورودی این فرمان STDIN و درگاه خروجی آن، STDOUT است، اما توسط سوئیچ‌های if و of می‌توان آن‌ها را تغییر داد. dd if=FILE of=FILE ibs=BYTES obs=BYTES bs=BYTES cbs=BYTES skip=BLOCKS seek=BLOCKS count=BLOCKS status=noxfer توضیحات: سیستم‌عامل
هر برنامه در حال اجرا یک پروسه است، چه در پیش‌زمینه چه در پس‌زمینه، هستهٔ سیستم عامل وظیفهٔ مدیریت پروسه‌ها را دارد. هستهٔ سیستم عامل به هر پروسه یک شناسهٔ پروسه یا PID می‌دهد، منابع و حافظهٔ پروسه را کنترل می‌کند و آن‌ها را به ترتیب خاصی اجرا می‌کند تا زمانی که پروسه به پایان برسد و پروسهٔ والد (پروسه‌ای که پروسهٔ کنونی از آن نشعت گرفته (دارای یک PPID هست هر پروسهٔ والد) به پایان رسیدن آن را تأیید کند یا مطلع شود. هر پروسه یک برنامه است، هر برنامه به مقداری حافظه و منابعی نیاز دارد، هسته وظیفهٔ این را دارد تا همهٔ این‌ها را تهیه کند، و در انتهای پروسه حافظه و منابع گرفته یا اشغال شده را خالی یا آزاد کند. در سیستم عامل‌های شبه‌یونیکس پروسهٔ مادر یا init که در هنگام راه‌اندازی سیستم عامل اجرا می‌شود نیز مادر همهٔ پروسه‌هاست؛ یعنی اگر پروسهٔ مادر از بین برود همهٔ پروسه‌های دیگر نیز از بین می‌روند. هستهٔ سیستم عامل با قابلیت حافظهٔ مجازی وظیفهٔ تأمین امنیت پروسه‌های اشغال‌شده در مموری را دارد، یعنی باید از دسترسی برنامه‌ها یا پروسه‌ها به منابع و حافظهٔ اشغال‌شده توسط پروسه‌های دیگر جلوگیری کند. به‌طور کلی اگر سیستم عامل قابلیت حافظهٔ مجازی داشته باشد، فضایی برای آدرس‌های پروسه‌ها و برنامه‌های در حال اجرا که آدرس مجازی نامیده می‌شود تا برنامهٔ دیگری نتواند به آن بخش از حافظه دسترسی یابد. هستهٔ سیستم عامل وظیفهٔ مدیریت و گرفتن آدرس‌های مجازی را دارد. Init
جدای از سطوح اجرایی ۰ و ۱ و ۶ هر سیستم یونیکس و مبتنی بر یونیکسی با سطوح اجرایی اندکی متفاوت برخورد می‌کند. حداقل مشترک در همهٔ این سیستم‌ها فایل /etc/inittab است؛ که تعیین می‌کند هر سطح اجرایی چه کاری انجام می‌دهد (اگر اصلاً آن سطح اجرایی کاری انجام دهد). سوکت دامنه یونیکس
سوکت‌های دامنه یونیکس از فایل‌سیستم به عنوان فضای نام آدرس‌دهی خود استفاده می‌کنند. پروسه‌ها از طریق i-nodeها به این سوکت‌ها دسترسی دارند. به این ترتیب دو پروسه می‌توانند یک سوکت یکسان را باز کرده و به مبادله داده‌ها بپردازند. با این حال، این ارتباط تماماً در هسته سیستم‌عامل انجام می‌شود. اویونیک ماجولار یکپارچه
یک سیستم IMA از تعدادی محفظه تشکیل شده که هر کدام از این محفظه‌ها شامل تجهیزاتی برای اجرای بیشتر پردازش‌ها و ارسال تمام ورودی/خروجی‌های محلی به سنسورها، عملگرها و شاخص‌ها است. ارتباط بین این محفظه‌ها و همچنین عملگرها و سنسورها از طریق باس داده ARINC 629 برقرار می‌شود؛ بنابراین معماری IMA را می‌توان به محفظه‌ها (ماجول‌ها)، گذرگاه داده و متمرکزکننده داده تقسیم‌بندی نمود. ماجول‌ها در واقع شامل تمامی عملگرها، حسگرها و واحدهای پردازش می‌شوند. ساختار داخلی یک ماجول IMA بر اساس استاندارد ARINC 653 در شکل ۶ نشان داده شده‌است. در لایهٔ کاربری‌های نرم‌افزاری، کاربری‌ها و نیازهای اویونیکی به صورت نرم‌افزاری تعیین می‌شوند که از طریق واسط APEX به لایهٔ هستهٔ نرم‌افزاری که شامل یک سیستم عامل real time است، متصل می‌شود. در این سیستم عامل تمام پردازش‌های مربوط به یک بخش در یک پردازنده انجام می‌شوند. استاندارد ARINC 664 مربوط به شبکه داده‌های هواپیما است که شامل چندین بخش است. در بخش ۱ از این استاندارد، به بررسی اجمالی و مفاهیم سیستم‌ها پرداخته شده و بخش ۲ تا ۶ شامل مشخصه‌های پروتکل اینترنت و اترنت است. بخش ۷ از استاندارد ARINC 664، “شبکه AFDX”، یک روش زمان- قطعی معین را مشخص می‌کند که برای کنترل و فرمان‌های مهم – ایمنی و بلادرنگ قابل کاربرد است. بخش ۸ از این استاندارد به سرویس‌های لایه بالاتر می‌پردازد. حلقه حفاظتی
حلقه‌های چندگانه حفاظت در میان مفاهیم انقلابی معرفی شده توسط سیستم عامل Multics بود، یک پیشگام بسیار امن از خانواده سیستم عامل‌های یونیکس امروزی است. رایانه GE 645 دارای کنترل دسترسی سخت‌افزاری بود، اما برای پشتیبانی کامل از حلقه‌ها در سخت‌افزار کافی نبود، به همین دلیل Multics آنها را با گیر انداختن درخواست‌های انتقال حلقه‌ها در نرم‌افزار کامل کرد. جانشین آن، Honeywell 6180، آنها را در سخت‌افزار، با پشتیبانی از هشت حلقه اجرا کرد. با این حال، اکثر سیستم‌ها از دو حلقه استفاده می‌کنند، حتی اگر سخت‌افزارهایی که در آنها اجرا می‌شوند، حالت‌های CPU بیشتری را از آن ارائه می‌دهند. به عنوان مثال، ویندوز ۷ و ویندوز سرور ۲۰۰۸ (و پیشینیان آنها) تنها از دو حلقه استفاده می‌کنند، حلقه ۰ مربوط به حالت هسته و حلقه ۳ به حالت کاربر زیرا نسخه‌های قبلی ویندوز در پردازنده‌هایی که فقط دو سطح حفاظت را پشتیبانی می‌کردند اجرا می‌شد. معماری یونیکس
هسته خدمات گفته شده بالا و بسیاری دیگر از خدمات را فراهم می‌کند: وقفه و مدیریت تله (Trap)، حفظ فاصله میان کاریر و فضای سیستم، تماس با سامانه (System Call)، مدیریت تایمر و ساعت، مدیریت توصیف‌گر پرونده. ریزهسته
یونیکس (بی‌اس‌دی) برکلی، دوران هسته‌های بزرگ را آغاز کرد. افزون بر اداره‌کردن یک سیستمِ پایهٔ متشکل از سی‌پی‌یو، دیسک‌ها و چاپگرها، بی‌اس‌دی فایل‌سیستم‌های دیگری را به کار گرفت، از جمله یک سیستم شبکهٔ تی‌سی‌پی/آی‌پی کامل، و شماری از قطعات مجازی که اجازه می‌داد برنامه‌های موجود به صورت پنهان در شبکه اجرا شوند. این بزرگ‌شدن برای سال‌ها ادامه یافت و منجر به هسته‌هایی با میلیون‌ها خط دستور در سورس‌شان شد. در نتیجهٔ این رشد، هسته‌ها بیشتر در معرض باگ‌ها قرار گرفتند و نگهداری آنها به شدت سخت گشت. پوسته یونیکس
http://en.wikipedia.org/wiki/Unix_shell مک‌اواس
هسته این سیستم‌عامل نوعی یونیکس بر اساس بی‌اس‌دی بوده که توانایی اجرای نسخه‌های بازنویسی‌شده از نرم‌افزارهای متن باز را دارد و به نام «داروین» شناخته می‌شود. این سیستم‌عامل همچنین از رابط گرافیکی پیشرفته‌ای بنام آکوا (Aqua) بهره می‌برد. گنو هرد
برخلاف اکثر هسته‌های شبه-یونیکس، هرد از معماری کارخواه-کارساز که در ریزهسته است استفاده می‌کند که مسئولیت ارائه اکثر سرویس‌های هسته - هماهنگی دسترسی به سخت‌افزار رایانه: واحد پردازش مرکزی (از طریق مدیریت فرایند، زمان‌بندی)، حافظه (از طریق مدیریت حافظه)، و دیگر دستگاه‌های ورودی/خروجی دیگر (از طریق زمان‌بند ورودی/خروجی) برای صدا، گرافیک، ذخیره‌سازی انبوه و غیره را فراهم می‌کند. در تئوری ریزهسته باید به همه راه‌اندازهای دستگاه‌ها اجازه دهد تا به صورت سرور در فضای کاربر ساخته شوند. اما امروزه اغلب راه‌اندازها از این نوع همچنان در فضای هسته ماخ هستند. دلیل این است که در ابتدا، راه‌اندازهای فضای کاربر به دلیل سربار ارتباطات بین فرایندی در هسته ماک عملکرد مناسبی نخواهند داشت. با کمک عملکرد ماشین‌های امروزی، ممکن است که این سربار باعث مشکل قابل توجهی نشود. ماژول هسته قابل بارگیری
Linux اجازه غیرفعال کردن بارگیری ماژول را از طریق گزینه sysctl / proc / sys / kernel / modules_disabled می دهد. یک سیستم initramfs ممکن است ماژول های خاصی را که برای دستگاه در هنگام راه اندازی لازم است بارگیری کند و سپس بارگیری ماژول را غیرفعال کند. این امر امنیت را بسیار شبیه به هسته یکپارچه می کند. اگر یک مهاجم بتواند initramf ها را تغییر دهد ، می تواند باینری هسته را تغییر دهد. هسته لینوکس
لینوکس، توسط شرکت‌کنندگان جهانی توسعه یافته‌است، که یک مثال برجسته از نرم‌افزارهای آزاد و متن باز است. کد خودتغییردهنده
سنتز هسته ارائه شده در دکتری پایان‌نامه هنری Massalin، یک کرنل Unix کوچک است که رویکرد ساختار یافته یا حتی شی گرا را به کد خود تغییر می‌دهد، جایی که کد برای تک تک quajectsها مانند filehandles ایجاد می‌شود؛ تولید کد برای کارهای خاص اجازه می‌دهد که هسته Synthesis به (به عنوان مترجم JIT ممکن است) تعدادی از بهینه‌سازی‌ها را اعمال کند مانند حذف ثابت ثابت یا مشترک زیر بیان. هسته لینوکس
لینوکس به سرعت بعنوان هسته سیستم عامل GNU پذیرفته شد، که به عنوان یک نرم‌افزار متن باز و نرم‌افزار آزاد ایجاد شده بود، و براساس UNIX بعنوان محصول فرعی از جنگ یونیکس‌ها استفاده شد. از آن زمان، تعداد گسترده‌ای از توزیع سیستم عامل، که معمولاً به آن لینوکس نیز گفته می‌شود، ایجاد شده‌است، اگرچه، به‌طور رسمی، اصطلاح «لینوکس» فقط به هسته اشاره دارد. بحث نام‌گذاری گنو/لینوکس
درک عادی یک «سیستم‌عامل» شامل هسته − یک زیرسیستم خاص که واسطی مستقیم برای تعامل با سخت‌افزار است − و نرم‌افزارهای سطح کاربر است که به وسیلهٔ کاربر و نرم‌افزارهای کاربردی به کار گرفته می‌شوند تا رایانه را کنترل کنند. علاوه بر این، هم نام «گنو» و هم نام «لینوکس» با نام «یونیکس» مرتبط هستند و یونیکس همیشه به صورت مفهومی شامل کتابخانه‌های سی، ابزار سطح کاربر و همچنین هسته بوده‌است. در یادداشت‌های انتشار سال ۱۹۹۱ نسخه‌های ۰٫۰۱ تا ۰٫۱۱ هستهٔ لینوکس (که تا نسخهٔ ۰٫۱۲ براساس اجازه‌نامهٔ جی‌پی‌ال منتشر نشده‌بود) تروالدز نوشت: «متأسفانه، یک هسته به خودی خود شما را به هیچ‌جایی نمی‌برد [...] اکثر ابزارهایی که در لینوکس استفاده شده‌است نرم‌افزارهای گنو هستند.» همچنین تروالدز در جریان بحث تننبام-تروالدز سال ۱۹۹۲ نوشت: «از آن‌جایی که نوشته شده‌است (نه فقط به وسیلهٔ من)، هستهٔ لینوکس یک قسمت خیلی کوچک از یک سیستم کامل است.» هسته (سیستم‌عامل)
دستگاه های I / O شامل موارد جانبی مانند صفحه کلید ، ماوس ، درایو دیسک ، چاپگر ، دستگاه های USB ، آداپتورهای شبکه و دستگاه های صفحه نمایش هستند. کرنل درخواست های برنامه ها را برای انجام I / O به یک دستگاه مناسب اختصاص می دهد و روش های مناسبی را برای استفاده از دستگاه فراهم می کند (به طور معمول در جایی خلاصه می شود که برنامه نیازی به دانستن جزئیات اجرای دستگاه نداشته باشد). فهرست ابزارهای یونیکس
این فهرستی از ابزارهای یونیکس مشخص شده توسط IEEE Std 1003.1-2008، که قسمتی از Single UNIX Specification] (SUS)] است. این ابزارهای می‌توانند بر سیستم‌ عامل‌ های یونیکس و اکثر سیستم‌ عامل‌ های شبه‌ یونیکس یافت شوند. هسته لینوکس
چندین API داخلی هسته وجود دارد که بین زیر سیستم‌های مختلف مورد استفاده قرار می‌گیرد. برخی از آنها فقط در زیر سیستم‌های هسته موجود است، در حالی که مجموعه ای محدود از نمادهای درون هسته (به عنوان مثال متغیرها، ساختار داده‌ها و عملکردها) در معرض ماژول‌های بارگذاری پویا نیز قرار می‌گیرند. با ماکروهای ()EXPORT_SYMBOL و ()EXPORT_SYMBOL_GPL (آخرین مورد مربوط به ماژول‌های منتشر شده تحت مجوز سازگار با GPL است). یونیکس
داستان از سال ۱۹۶۰ آغاز می‌شود. در این زمان فکر سامانه‌های اشتراک زمان مطرح بود و نخستین سیستم‌عامل چند کاربره طراحی شد که به عنوان کارگزار(Server) می‌توانست با نصب شدن بر روی یک رایانه به چند رایانه دیگر سرویس دهد. این سیستم‌عامل که CTSS نام داشت و می‌توانست ۲۰ کاربر را با یک رایانه IBM ۷۰۹۰ به خوبی اداره کند به شدت مورد توجه و مفید واقع شد و همه دریافتند که بخش عظیمی از رایانه‌های آینده از این فناوری بهره خواهند گرفت. به‌طوری‌که در سال ۱۹۶۵ سه شرکت از برجسته‌ترین نقش آفرینان رایانه در جهان، مؤسسه فناوری ماساچوست، آزمایشگاه‌های بل و جنرال الکتریک، یک سیستم‌عامل اشتراک زمان آزمایشی برای مین‌فریم جی‌ای-۶۴۵ طراحی کردند که مولتیکس نامیده می‌شد. تاریخچه توسعه هسته
در مرحلهٔ طراحی یونیکس، برنامه نویسان چون اعتقاد داشتند منظور از محاسبات، انتقال داده‌ها است، تصمیم گرفتند تا هر دستگاه سطح بالا را به عنوان یک فایل مدل سازی کنند. به عنوان مثال، چاپگرها به عنوان یک” فایل” موجود در یک مکان شناخته شده ارائه می‌شوند. با کپی کردن داده‌ها در یک فایل، خروجی آن چاپ می‌شود. سیستم‌های دیگر قابلیت مشابه‌ای را ارائه می‌کنند که تمایل به مجازی سازی دستگاه‌ها را در یک سطح پایین‌تر دارند؛ بنابراین هر دو دستگاه و فایل‌ها بیانگر مفهوم سطح پایین‌تری می‌باشند. مجازی سازی سیستم در سطح فایل به کاربران اجازه می‌دهد تا کاربر کل سیستم را با استفاده از مفهوم‌ها و کاربرد پذیری مدیریت فایل موجود به‌طور ساده دستکاری نماید. به عنوان توسعه همان دیاگرام، یونیکس به برنامه نویسان اجازه می‌دهد که با به‌کارگیری از یک سری برنامه‌های کوچک و استفاده از مفهوم «لوله‌ها»، فایل‌ها را دست کاری کنند تا آن‌ها را قادر سازد که مراحل بهره‌برداری را با تغذیه فایل، از طریق زنجیره‌ای از ابزارهای تک منظوره کامل کنند. اگرچه نتیجهٔ پایانی مشابه بود، استفاده از برنامه‌های کوچکتر در این روش به‌طور قابل توجهی انعطاف‌پذیری و سهولت توسعه در استفاده از آن را افزایش داد. این کار به کاربر اجازه می‌دهد که جریان کار خود را با اضافه کردن یا حذف یک برنامه از زنجیره اصلاح کند. در مدل یونیکس، سیستم عامل شامل دو قسمت است. اول، مجموعهٔ عظیمی از برنامه‌های نرم‌افزاری که اغلب عملیات را راه اندازی می‌کند و دیگری هسته است که برنامه‌ها را اجراء می‌کند تحت یونیکس، از نقطه نظر برنامه‌نویسی اختلاف دو مورد ذکر شده بسیار ناچیز است. هسته یک برنامه است که در مقام سوپروایزر عمل می‌کند که در نقش بارگذاری و سوپروایزری، برای استفادهٔ برنامه‌های کوچک، باقی‌مانده فعالیت سیستم را جبران می‌کند. این‌گونه برنامه‌ها بمنظور ارائه خدمات قفل کردن و خدمات ورودی-خروجی استفاده می‌شود. فراتر از این بحث، هسته در فضای کاربر دخالتی ندارد. طی گذشت سالیان مدل محاسباتی تغییر کرد، تلقی یونیکس در هر چیز به عنوان یک فایل یا جریان بایت، دیگر کاربرد جهانی مثل سابق را نداشت. اگرچه یک ترمینال می‌توانست به عنوان یک فایل یا جریان بایت تلقی گردد که می‌تواند چاپ یا خوانده شود، لیکن به نظر نمی‌رسید که برای رابط کار گرافیکی صدق کند. هسته پیوندی
XNU هسته ای است که شرکت اپل برای استفاده در سیستم عامل‌های macOS , iOS , watchOS و tvOS به دست آورد و توسعه داد و به عنوان نرم‌افزار رایگان و منبع باز به عنوان بخشی از سیستم عامل داروین عرضه کرد. XNU مخفف اختصاری X is Unix نیست. هسته لینوکس
توسعه دهنده ای که می‌خواهد هسته لینوکس را تغییر دهد، با توسعه و آزمایش آن تغییر شروع می‌کند. بسته به اینکه چقدر تغییر قابل توجه است و چند سیستم فرعی آن را تغییر می‌دهد، این تغییر یا به صورت یک پچ منفرد یا در تکه‌های مختلف کد منبع ارائه می‌شود. در صورت وجود سیستم فرعی منفرد که توسط یک نگهدارنده منفرد نگهداری می‌شود، این لک‌ها به صورت ایمیل به نگهدارنده زیر سیستم با لیست پستی مناسب در سی سی ارسال می‌شوند. نگهدارنده و خوانندگان لیست پستی، تکه‌ها را مرور کرده و بازخورد را ارائه می‌دهند. پس از اتمام روند بررسی، نگهدارنده سیستم فرعی تکه‌های موجود در درخت هسته Git مربوط را می‌پذیرد. اگر تغییرات در هسته لینوکس رفع اشکال باشد که به اندازه کافی مهم تلقی می‌شوند، درخواست برداشت برای وصله‌ها طی چند روز به Torvalds ارسال می‌شود. در غیر اینصورت، یک درخواست کشش در پنجره ادغام بعدی به Torvalds ارسال می‌شود. پنجره ادغام معمولاً دو هفته طول می‌کشد و بلافاصله پس از انتشار نسخه هسته قبلی شروع می‌شود. درخت منبع هسته Git از همه برنامه نویسان که در دایرکتوری Credits به هسته لینوکس کمک کرده‌اند نام می‌برد و تمام نگهدارنده‌های سیستم‌های زیر سیستم در Maintainers ذکر شده‌اند. یونیکس
در سال ۱۹۷۴ دانشجویان دانشگاه برکلی آغاز به برنامه‌نویسی برای یونیکس می‌کردند و آن را برای دانشگاه‌های دیگر و ای‌تی‌اندتی فرستادند وبا ادامهٔ این کار یونیکس در سال ۱۹۷۷ به یک سیستم‌عامل کامل تبدیل می‌شود. در می ۱۹۷۵، دارپا مزایای سیستم اشتراک زمانی یونیکس که «چند قابلیت جالب ارائه کرده بود» را در RFC 681 مستند کرد. در ۱۹۷۸، یونیکس/۳۲وی برای وی‌ای‌اکس، سیستم جدید DEC عرضه شد. در آن هنگام، یونیکس به اَشکال مختلفی بر روی ۶۰۰ ماشین اجرا می‌شد. آخرین نسخه تحقیقاتی از یونیکس، یعنی نسخه ۷ یونیکس، در سال ۱۹۷۹ منشتر شد. نسخه‌های ۸، ۹ و ۱۰ هم در دهه ۱۹۸۰ نوشته شدند اما فقط در بین چند دانشگاه منتشر شدند. دانشگاه‌های دیگر نیز مانند ام‌آی‌تی، Purdue، استنفورد و... کارهای بسیاری برای یونیکس کردند. با نوشتن برنامه‌های اینترنتی برای یونیکس در سال ۱۹۸۰ به وسیلهٔ دانشگاه برکلی یونیکس در سازمان‌های دولتی و شرکت‌های شبکه و کارگزارها(Servers) به گستردگی به کار گرفته شد. پردازنده چندهسته‌ای
پردازندهٔ چند هسته‌ای از اجزای رایانشی و محاسباتی است که دو یا چند پردازنده مستقل واقعی (به نام «هسته») دارد، که واحدهایی برای خواندن و اجرای دستورالعمل‌های برنامه هستند. این دستورالعمل‌ها عموماً دستورالعمل‌های معمولی CPU از قبیل اضافه کردن، انتقال داده‌ها، و انشعاب هستند، اما هسته‌های متعدد می‌توانند در همان زمان دستورالعمل‌های بیشتری را اجرا کنند که موجب افزایش سرعت کلی برای برنامه‌های تابع رایانش موازی می‌شود. تولیدکنندگان معمولاً هسته‌ها را بر روی یک قطعه مدار مجتمع (IC) ادغام می‌کنند، یا بر روی چند قطعه در یک بسته تراشه عرضه می‌کنند. پردازنده‌هایی که امروزه در کامپیوترهای شخصی استفاده می‌شوند همگی چند هسته ای هستند. هسته لینوکس
انواع خاصی از هسته لینوکس وجود دارد که قابلیت‌های اضافی را ارائه می‌دهند اما به خط اصلی هسته لینوکس تعلق ندارند. چنین انواع هسته لینوکس شامل Linux-libre , Compute Node Linux , Cooperative Linux , Longene , grsecurance , INK , L4Linux , MkLinux, RTLinux و User-Mode Linux (UML) است. برخی از این انواع تا حدی در خط اصلی ادغام شده‌اند. برخی از سیستم عامل‌های توسعه یافته برای تلفن‌های همراه در ابتدا از نسخه‌های بسیار تغییر یافته هسته لینوکس استفاده می‌کردند، از جمله Google Android , Firefox OS , HP webOS , Nokia Maemo و Jolla Sailfish OS. در سال ۲۰۱۰، جامعه هسته لینوکس از Google به دلیل شروع مؤثر درخت هسته خود انتقاد کرد:این بدان معنی است که هر درایوری که برای سیستم عامل‌های سخت‌افزاری اندرویدی نوشته شده‌است، نمی‌تواند در درخت اصلی هسته ادغام شود، زیرا آنها به کدی وابسته هستند که فقط در درخت هسته گوگل زندگی می‌کند، و باعث عدم موفقیت آن در ساخت درخت kernel.org می‌شود. به همین دلیل، گوگل اکنون مانع از ادغام تعداد زیادی از درایورهای سخت‌افزاری و کد پلتفرم در درخت اصلی هسته شده‌است. به‌طور مؤثر ایجاد یک شاخه هسته که تعدادی از فروشندگان مختلف اکنون به آن اعتماد دارند. واحد پردازش مرکزی
در داخل مدار پردازندهٔ اصلی، مجموعه‌ای از عملیات اساسی شش میخ (hardwired) شده‌است که مجموعهٔ دستورالعمل نام دارد. چنین عملیاتی ممکن است شامل مثلاً: جمع کردن یا تفریق کردن دو عدد، مقایسهٔ دو عدد، یا پرش به بخش دیگری از یک برنامه باشد. هر عملیات اساسی توسط ترکیب خاصی از بیت‌ها با نام آپ کد زبان ماشین نمایش داده می‌شود. پردازندهٔ اصلی در زمان اجرای دستورالعمل‌ها در یک برنامه زبان ماشین، تصمیم می‌گیرد که چه عملیاتی را با کد گشایی آپ کد مورد نظر انجام دهد. یک دستورالعمل زبان ماشین کامل حاوی یک آپ کد، و در بسیاری موارد بیت‌های دیگری است که آرگومان‌های خاصی را برای عملیات مذکور مشخص می‌کنند (برای مثال اعدادی که باید با هم جمع شوند، در یک عملیات جمع). یک برنامهٔ زبان ماشین، مجموعه ای از دستورالعمل‌های زبان ماشین است که پردازنده اجرا می‌کند. عملیات ریاضی واقعی برای هر دستورالعمل، توسط یک مدار منطقی ترکیبی در داخل پردازنده CPU به نام واحد محاسبه و منطق یا همان ALU انجام می‌گیرد. به‌طور کلی، یک پردازنده برای انجام یک دستورالعمل مراحل زیر را انجام می‌دهد: ابتدا آن را از حافظه واکشی می‌کند، سپس برای انجام یک عملیات از ALU استفاده می‌کند، و در نهایت نتیجه را در حافظه ذخیره می‌کند. علاوه بر دستورالعمل‌های ریاضیاتی اعداد صحیح و عملیات منطقی، دستورالعمل‌های ماشین مختلف دیگری وجود دارد، نظیر: دستورالعمل‌های مربوط به بارگیری داده از حافظه و ذخیره‌سازی آن در حافظه، عملیات انشعاب و عملیات ریاضی روی اعداد ممیز شناور که توسط واحد ممیز شناور (FPU) در CPU انجام می‌شود. هسته یکپارچه
هسته‌های یونیکس نسخه ۸ یونیکس
ویرایش ۸ یونیکس یا نسخه ۸ یونیکس یکی از نسخه‌های سیستم‌عامل یونیکس تحقیقاتی بود که در آزمایشگاه‌های بل و چند دانشگاه دیگر به صورت داخلی توسعه داده شده و استفاده می‌شد. این نسخه در فوریه ۱۹۸۵ منتشر شد و بر روی سخت‌افزار وکس اجرا می‌شد. این نسخه در اصل یکی از گونه‌های ۴٫۱سی‌بی‌اس‌دی بود و همچنین برخی از ویژگی‌های خود (بویژه پوسته) را هم از سیستم ۵ گرفته بود. از این نسخه بیشتر به خاطر کتابخانه عبارات باقاعده‌اش یاد می‌شود که بعدها توسط هنری اسپنسر بازنویسی شد و از طریق یوزنت توزیع شد. تا قبل از توسعه استاندارد پازیکس، نسخه ۸ به صورت استاندارد دوفاکتو برای سینتکس عبارات باقاعده و همچنین رابط‌های برنامه‌نویسی سی درآمده بود. همچنین مکانیسم ورودی/خروجی مبتنی بر جریان، سیستم فایل /proc، پشتیبانی از دایرکتیوهای مفسر در هسته و چند ویژگی دیگر هم در این نسخه معرفی شد. واسط کاربری پیشفرض در نسخه‌های قبل از ۸ ترمینال‌های متنی ساده بودند، اما واسط کاربری اصلی در نسخه ۸ ترمینال گرافیکی بلیت بود. از این نسخه همچنین یک سیستم فایل شبکه داشت که دسترسی به کل فایل سیستم‌های ماشین‌های راه دور را ممکن می‌ساخت و امکان اشتراک گذاری فایل‌ها در شبکه فراهم شد. کتاب محیط برنامه‌نویسی یونیکس بر روی یک ماشین VAX-11/750 تهیه شد که نسخه ۸ بر روی آن اجرا می‌شد. یوسی‌لینوکس
علیرغم اینکه یو سی لینوکس در ابتدا نسخه ۲٫۰ از هسته لبنوکس را برای خود برگزید، هم‌اکنون با نسخه‌های ۲٫۴ و ۲٫۶ هسته لینوکس کار می‌کند. در تاریخچه این توزیع، هرگز تلاشی برای استفاده از هسته لینوکس نسخه ۲٫۲ نشده‌است. هسته (نظریه بازی‌ها)
یک ائتلاف، زیر مجموعه‌ای از مجموعه‌ای از بازیکنان است که استراتژی‌ها را هماهنگ می‌کنند و در مورد نحوهٔ تقسیم بازپرداخت کل در میان اعضا توافق می‌کنند. به‌طور کلی در یک بازی با N بازیکن 2 ائتلاف وجود دارد. لینوکس
یک توزیع همه-منظورهٔ معمولی شامل هسته لینوکس، کتابخانه‌ها و ابزارهای گنو، پوسته‌های خط فرمان و انبوه بی‌شماری از نرم‌افزارهای کاربردی از مجموعه‌های اداری و سیستم پنجره‌ای اِکس گرفته تا مفسرها، ویرایشگرهای متن و ابزارهای علمی است. هسته لینوکس
از سال ۲۰۲۱، نسخه ۵٫۱۲ هسته لینوکس حدود ۳۰٫۵۵ میلیون خط کد داشت، تقریباً ۱۴٪ کد بخشی از «هسته» است در حالی که ۶۰٪ درایور هستند. بسته کدک جامعه مشترک
بستهٔ کدک جامعهٔ مشترک که عموماً با عنوان سی‌سی‌سی‌پی شناخته می‌شود، یک بایگانی از کدک‌ها (فیلترهای فشرده‌سازی تصویر) است که برای ویندوز مایکروسافت بسته‌بندی شده است. در اصل این بسته برای اجرای انیمه‌های فن‌ساب‌شده طراحی شده بود. سی‌سی‌سی‌پی را گروه‌های فن‌ساب‌کنندهٔ متعددی توسعه و نگه‌داری می‌کنند. نکتهٔ جالب در عنوان این بسته این است که یواس‌اس‌آر در زبان روسی به صورت سی‌سی‌سی‌پی است. هسته لینوکس
لینوکس به عنوان سیستم عامل اصلی در نشست IBM و همه سریعترین رایانه‌های رایانه ای، از جمله Sunway TaihuLight طراحی شده و ساخت چینی، که قبلاً سریعترین آنهاست، اجرا می‌شود. از اکتبر سال ۲۰۱۹، همه ۵۰۰ سریعترین رایانه در جهان انواع مختلفی از لینوکس را اجرا می‌کنند، یک تغییر بزرگ از سال ۱۹۹۸ که اولین ابر رایانه لینوکس به لیست اضافه شد و سپس به رتبه ۱۱۳ رسید. یونیکس قبلاً در لیست حاکم بود. در حدود ۲۰۰۳ تقریباً بین یونیکس و لینوکس تقسیم شده‌است. سی‌ام‌اس-۲ (زبان برنامه‌نویسی)
جدول‌ها مجموعه‌های مرتب اطلاعات ساخت یافته یکسان را نگه می‌دارد. واحد متداول داده‌ها در یک جدول یک آیتم است. آیتم‌ها ممکن است به فیلدها تقسیم شوند که کوچکترین قسمت یک جدول هستند. نوع داده‌های مجاز در فیلدها عبارتند از اینتیجر، اعداد ثابت، اعداد ممیز شناور، رشته‌های حروف Hollerith، وضعیت یا بولی. یک آرایه یک توسعه از مفهوم جدول است. واحد ساختاری اصلی یک آرایه، آیتم است. آیتم‌های آرایه شامل فیلدهایی است که با برنامه‌نویس تعریف می‌شوند. هسته پیوندی
طراحی ویندوز NT شامل بسیاری از اهداف مشابه ماک (هسته)، سیستم میکروکرنلی نمونه اولیه می‌باشد که یکی از مهمترین آنها ساختار آن به عنوان مجموعه ای از ماژول‌هایی است که از طریق رابط‌های شناخته شده ارتباط برقرار می‌کنند، با یک میکروکرن کوچک محدود به کارکردهای اصلی مانند رسیدگی به وقفه سطح اول، برنامه‌ریزی موضوع و ابتدایی همگام سازی موضوع. این امکان استفاده از مکالمات مستقیم یا ارتباط بین پردازش (IPC) را برای برقراری ارتباط بین ماژول‌ها فراهم می‌کند، و از این رو برای موقعیت بالقوه ماژول‌ها در فضاهای مختلف آدرس (به عنوان مثال در فضای هسته یا فرایندهای سرور) استفاده می‌کند. سایر اهداف طراحی شده با Mach شامل پشتیبانی از معماریهای متنوع، هسته ای با انتزاع به اندازه کافی کلی است که اجازه می‌دهد چندین شخصیت سیستم عامل در بالای آن و یک سازمان شی گرا اجرا شود. هسته لینوکس
پروژه هسته لینوکس کدهای جدید را به صورت غلتان ادغام می‌کند. نرم‌افزار بررسی شده در پروژه باید بدون خطا کار کرده و کامپایل شود. برای هر زیر سیستم هسته نگهدارنده ای وجود دارد که وظیفه بازنگری تکه‌های موجود در برابر استانداردهای کد هسته را بر عهده دارد و صف تکه‌هایی را که می‌تواند در یک پنجره ادغام چند هفته به لینوس توروالدز ارسال شود، نگه می‌دارد. تکه‌ها توسط Torvalds در کد منبع انتشار هسته پایدار لینوکس ادغام می‌شوند، و نامزدی برای انتشار -rc را برای هسته پایدار بعدی ایجاد می‌کنند. پس از بسته شدن پنجره ادغام، فقط رفع کد جدید در نسخه توسعه پذیرفته می‌شود. نسخه هسته توسعه هسته از آزمایش‌ها رگرسیون عبور می‌کند و به محض اینکه ثبات توسط Torvalds قضاوت شود و سیستم‌های نگهباننده زیر سیستم هسته یک هسته جدید لینوکس منتشر می‌شود و روند توسعه دوباره از سر گرفته می‌شود. یونیکس
تا آن زمان، هیچ حمایت مالی از طرف آزمایشگاه‌های بل وجود نداشت. وقتی که گروه تحقیقات علوم رایانه می‌خواست از یونیکس بر روی یک رایانه بزرگ‌تر از پی‌دی‌پی-۷ استفاده کند، تامسون و ریچی قول دادند که برای ماشین پی‌دی‌پی۱۱/۲۰، قابلیت‌های پردازش متن را به یونیکس اضافه کنند. این کار باعث حمایت مالی آزمایشگاه بل شد. برای اولین بار در سال ۱۹۷۰، سیستم‌عامل یونیکس رسماً نامگذاری و بر روی یک پی‌دی‌پی۱۱/۲۰ اجرا شد. یک برنامه قالب‌بندی متن به نام roff و یک ویرایشگر متن هم اضافه شدند. تمام این سه جزء (یونیکس، roff و ویرایشگر متن) به زبان اسمبلی ماشین پی‌دی‌پی۱۱/۲۰ نوشته شده بودند. آزمایشگاه‌های بل از این سیستمِ پردازش متن اولیه که از یونیکس، roff و ویرایشگر تشکیل شده بود، برای پردازش متن برنامه‌های پتنت شده‌استفاده کرد. roff به زودی به troff، اولین برنامه چاپ و نشر الکترونیکی با قابلیت کامل حروف‌چینی تبدیل شد. کتاب راهنمای برنامه‌نویسان یونیکس هم در سوم نوامبر ۱۹۷۱ چاپ شد. معماری یونیکس
معماری یونیکس یک معماری سیستم برای سیستم‌عامل کامپیوتر است که از فلسفه یونیکس پیروی می‌کند. این معماری ممکن است به استانداردهایی مانند (SUS) یا مشابه آن استاندارد پازیکس از مؤسسه مهندسان برق و الکترونیک پایبند باشد. هیچ مقاله منتشر شده‌ای نمی‌تواند تمام مطالب سیستم عامل‌ها با معماری یونیکس را توصیف کند و این مسئله تا حدی تبعات جنگ یونیکس‌ها می‌باشد. هسته لینوکس
درایورهای دستگاه و پسوندهای هسته در فضای هسته (حلقه ۰ در بسیاری از معماری‌های CPU) اجرا می‌شوند، با دسترسی کامل به سخت‌افزار، اگرچه برخی از استثنائات در فضای کاربر وجود دارد، به عنوان مثال، سیستم‌های پرونده ای مبتنی بر FUSE / CUSE و بخش‌هایی از UIO. سیستم گرافیکی که اکثر افراد از لینوکس استفاده می‌کنند در هسته کار نمی‌کند. بر خلاف هسته‌های یکپارچه استاندارد، درایورهای دستگاه به راحتی به عنوان ماژول پیکربندی می‌شوند و در حین کار سیستم بارگیری یا تخلیه می‌شود. همچنین، بر خلاف هسته‌های یکپارچه استاندارد، درایورهای دستگاه تحت شرایط خاص می‌توانند از پیش ساخته شوند. این ویژگی برای کنترل صحیح وقفه‌های سخت‌افزاری و پشتیبانی بهتر از پردازش متقارن اضافه شده‌است. به دلخواه، هسته لینوکس هیچ رابط کاربری باینری برنامه پایدار درایور دستگاه ندارد. پروژه ژوپیتر
برای ساده کردن تجسم دفتر یادداشت ژوپیتری بر روی شبکه، کتابخانهٔ nbconvert به عنوان یک سرویس تحت NbViewer ارائه شده‌است که می‌تواند یک آدرس شبکه‌ای را به یک دفتر یادداشت به فرمت HTML تبدیل کرده و در دسترس عموم قرار دهد. یک هستهٔ ژوپیتر برنامه‌ای است که مسئول مدیریت و پاسخگویی به انواع درخواست (اجرای کد، تکمیل کد، بررسی) می‌باشد. هسته با دیگر اجزای ژوپیتر با استفاده از ZeroMQ بر روی شبکه ارتباط برقرار می‌کند و در نتیجه می‌تواند بر روی ماشین استفاده‌کننده یا ماشینی دیگر قرار داشته باشد. بر خلاف بسیاری دیگر از رابطه‌های دفتریادداشت‌مانند، در ژوپیتر، هسته از اینکه به مدرک خاصی متصل است آگاه نیست و می‌تواند با مراجعین متعددی به‌طور همزمان در ارتباط باشد. معمولاً هسته‌ها تحت یک زبان خاص ایجاد شده و توانایی اجرایی در زبانی خاص را دارند، ولی استثناهایی هم در این مورد وجود دارد. سامانه فایل‌بندی
سامانه‌های پرونده‌ای معمولاً دارای فهرست‌های راهنما هستند — که پوشه نیز گفته می‌شوند — و کاربر را برای گروه‌بندی کردن پرونده در مجموعه‌های جداگانه مجاز می‌سازد. این موضوع ممکن است با ارتباط نام پرونده با یک نمایه در یک جدول محتوا یا یک گروه اطلاعاتی در سامانه پروندهٔ مشابه یونیکس (Unix-like) اجرا شود. ساختارهای فهرست راهنما ممکن است مسطح (خطی) باشند، یا سلسله مراتب‌ها را جایی که فهرست‌های راهنما امکان دارد شامل زیرفهرست‌ها شوند، مجاز سازد. اولین سامانه پرونده‌ای برای پشتیبانی سلسله‌مراتب دلخواه در سامانه‌عامل مولتیکس (Multics) استفاده شد.سامانه‌های پرونده‌ای محلی سامانه‌های شبیه یونیکس نیز سلسله‌مراتب فهرست راهنمای دلخواه را پشتیبانی می‌کنند؛ برای مثال، سامانه پرونده‌ای سلسله‌مراتبی اپل (Apple) و HFS+ بعدی در سامانه‌عامل کلاسیک مک (HFS+ هنوز در سامانه‌عامل مک استفاده می‌شود)، سامانه پرونده‌ای FAT در سامانه‌عامل داس (MS-DOS 2.0) و نگارش‌های بعدی MS-DOS و در ویندوز، سامانه پرونده‌ای NTFS در ویندوز NT خانوادهٔ سامانه‌عامل‌ها، و ODS-2 و مراحل بالاتر سامانه پرونده‌ای Files-11 در OpenVMS. معماری هسته مجازی
معماری هسته مجازی (به انگلیسی: vkernel) یک نمونه از مجازی سازی سیستم عامل است که می‌توان کد هسته را برای اجرا در فضای کاربر کامپایل کرد، به عنوان مثال برای سهولت در اشکال زدایی از اجزای مختلف سطح هسته، علاوه بر این برای مجازی سازی عمومی و تقسیم‌بندی منابع سیستم. از زمان DragonFly 1.7 توسط DragonFly BSD در اجرای vkernel استفاده می‌شود، که اولین بار در ظاهر شد، و اولین بار با DragonFly 1.8 در در شاخه پایدار آزاد شد. هدف بلند مدت، علاوه بر کاهش توسعه هسته، آسان‌تر کردن پشتیبانی از خوشه‌های رایانه ای متصل به اینترنت بدون به خطر انداختن امنیت محلی است. مفاهیم مشابهی در سیستم عامل‌های دیگر نیز وجود دارد. در لینوکس، یک مفهوم مجازی سازی مشابه به عنوان لینوکس حالت کاربر شناخته می‌شود. در حالی که در NetBSD از تابستان ۲۰۰۷، کانون اصلی زیرساخت ریپ کردن هسته بوده‌است. هسته لینوکس
برخی از APIهای هسته لینوکس در چندین نسخه ثابت نگه داشته شده‌اند، برخی دیگر اینگونه نیستند. هیچ تضمینی در مورد APIهای هسته وجود ندارد. نگهبانان و مشارکت کنندگان می‌توانند هر زمان که بخواهند تقویت کنند یا آنها را تغییر دهند. با این وجود، APIهای درون هسته وجود دارند که ساختار داده‌ها را دستکاری می‌کنند (به عنوان مثال، لیست‌ها، درختان، صف‌ها) یا کارهای روزمره را انجام می‌دهند (به عنوان مثال کپی کردن داده‌ها از و به فضای کاربر، اختصاص حافظه، خطوط چاپی به سیستم سیستم و غیره) که حداقل از نسخه ۲٫۶ لینوکس پایدار مانده‌اند. نمونه‌هایی از APIهای درون هسته شامل کتابخانه‌های خدمات مشترک سطح پایین است که توسط درایور دستگاه‌ها استفاده می‌شود: ویتکس (سیستم عامل)
هسته پیمانه‌ای Whitix تحت پروانه عمومی همگانی گنو، مجوز دارد و یک هسته چندکاره کاملاً پیشگیرانه چند رشته‌ای است. از تعدادی از فایل سیستم‌ها، از جمله خانواده فایل سیستم‌های جدول تخصیص فایل (با فایل سیستم ژورنالی) و ایزو ۹۶۶۰ پشتیبانی می‌کند. ویتیکس به عنوان یک سی دی لایو برای دانلود در دسترس است و می‌توان آن را روی هارد دیسک نصب کرد که با نسخه ۰٫۲ شروع می‌شود. یک (کامپایلر)
یَک، یکی از برنامه‌های کامپیوتری است که در سیستم عامل یونیکس به کار می‌رود. کلمهٔ یَک، از عبارت Yet AnotherCompiler Compiler گرفته شده‌است. این برنامه، توسط S.C.Johnson در آزمایشگاه Bell توسعه پیدا کرد. دستگاه غشایی درونی
منافذ هسته‌ای از نظر انتخابی اجازه عبور مواد از هسته را می‌دهند و از هسته بسیار کارآمدتر هستند، زیرا پوشش هسته‌ای میزان رفت‌وآمد قابل توجهی دارد. آران‌ای و زیرواحدهای ریبوزوم باید به‌طور پیوسته از هسته به سیتوپلاسم منتقل شوند. هیستون‌ها، پروتئین‌های تنظیم کننده ژن، دی‌ان‌ای پلیمراز و آران‌ای پلی‌مراز و سایر مواد ضروری برای فعالیت‌های هسته‌ای باید از سیتوپلاسم به هسته وارد شوند. پوشش هسته‌ای یک یاختهٔ پستاندار معمولی شامل ۳۰۰۰ تا ۴۰۰۰ مجموعهٔ منفذی است. اگر یاخته در حال ساخت دی‌ان‌ای باشد، هر مجموعه منفذی نیاز به انتقال حدود ۱۰۰ مولکول هیستون در دقیقه دارد. اگر یاخته به سرعت در حال رشد باشد، هر مجموعه باید حدود ۶ زیرواحد ریبوزومی بزرگ و کوچک تازه جمع شده در هر دقیقه را از هسته به سیتوزول - جایی که برای ساخت پروتئین‌ها استفاده می‌شوند - منتقل کند. توزیع لینوکس
یک توزیع معمول لینوکس از قسمت‌هایی شامل هسته لینوکس، کتاب‌خانه‌ها و ابزارهای GNU، نرم‌افزارهای اضافی، مستندات، سیستم پنجره، مدیر پنجره و یک محیط دسکتاپ تشکیل شده‌است. بیشتر نرم‌افزارهای شامل شده، به‌صورت نرم‌افزار آزاد/متن باز موجود هستند که توسط نگهدارندگانشان به‌صورت باینری کامپایل شده و هم به‌صورت سورس توزیع می‌شوند، که به کاربران امکان می‌دهد که کد منبع را در صورت تمایل، کامپایل کنند. نرم‌افزارهای دیگری که در برخی توزیع‌های موجود هستند ممکن است به‌صورت انحصاری باشند و ممکن است به‌صورت متن باز موجود نباشد. مدل هسته‌ای وحدت یافته
مدل هسته‌ای وحدت یافته () در فیزیک هسته‌ای مدلی از هسته اتم است که طبق معادله شرودینگر برای وحدت تمام اجزای تشکیل دهنده نوکلئون و نیروهای بین آنها مطرح شده‌است. مدل هسته ای تا به امروز وحدت یافته قادر به توصیف عناصری با جرم اتمی نزدیک به ۳۰ همچون نیکل می‌باشد. در حال حاضر در مقایسه با مدل پوسته‌ای هسته جامع تر است. هسته لینوکس
نسخه ۱٫۰ هسته لینوکس در ۱۴ مارس ۱۹۹۴ منتشر شد. این نسخه از هسته لینوکس تنها از سیستم‌های رایانه ای مبتنی بر تک پردازنده i386 پشتیبانی می‌کند. قابلیت حمل و نقل دغدغه ای شد و به همین ترتیب نسخه ۱٫۲ (منتشر شده در ۷ مارس ۱۹۹۵) پشتیبانی از سیستم‌های رایانه ای با استفاده از پردازنده‌های مبتنی بر معماری Alpha , SPARC و MIPS را بدست آورد. لینوکس
در اصل، لینوکس پایین ‌ترین سطح اجزای نرم‌ افزاری یک سیستم به‌شمار می‌رود و اگر این بخش آسیب ببیند بقیه نرم‌افزارها هم قادر به استفاده نخواهند بود. از وظایف هسته، آن است که منابع سیستم را به برنامه‌های دیگر موجود در سیستم متصل می‌کند. لینوکس بیشتر برای کارهای امنیتی و نفوذ استفاده می شود. رایانه
رایانه‌های امروزی از واحد پردازش مرکزی (CPU)، نوعی حافظه و دستگاه‌های جانبی تشکیل شده‌اند. واحد پردازش، وظیفهٔ انجام عملیات‌های محاسباتی و منطقی را بر عهده دارد. دستگاه‌های جانبی شامل دستگاه‌های ورودی (مانند صفحه‌کلید و موشی (یا همان موشواره و ماوس))، دستگاه‌های خروجی (مانند نمایشگر (مانیتور) و هدفون) و ورودی/خروجی (مانند صفحه لمسی) می‌توانند برای نمایش و ارسال اطلاعات در رایانه مورد استفاده قرار گیرند. رایانه‌ها از لحاظ کارکرد به‌صورت مکانیکی، الکترومکانیکی و الکترونیکی، از لحاظ محاسبات به‌صورت قیاسی (Analog) و رقمی (Digital)؛ و از لحاظ اندازه به ریزرایانهها، رایانه‌های کوچک، رایانه‌های بزرگ و ابررایانهها تقسیم می‌شوند. رایانه‌های شخصی رایج‌ترین نوع رایانه در میان انواع رایانه هستند هسته لینوکس
با پیش گویی کاربر، برنامه‌ریز هسته می‌تواند فرایند فعلی را با اجرای یک سوئیچ زمینه به جایگزین دیگری تبدیل کند که از این رو منابع محاسباتی را برای اجرا (CPU، حافظه و موارد دیگر) به دست می‌آورد. آن را مطابق الگوریتم CFS (به ویژه آنکه از متغیری به نام vruntime برای مرتب‌سازی فرایندها استفاده می‌کند)، به سیاست برنامه زمانبندی فعال و اولویت‌های نسبی پردازش‌ها تبدیل می‌کند. با پیشگیری هسته، هسته می‌تواند خود را در هنگام بازگشت یک دستگیرنده وقفه، وقتی وظایف هسته بسته می‌شود، مقدم کند، و هر زمان که یک سیستم فرعی صریحاً برنامه () را فراخوانی کند. هسته لینوکس
امنیت رایانه موضوعی است که بسیار گسترده در رابطه با هسته لینوکس است زیرا بخش بزرگی از اشکالات هسته دارای نقص امنیتی احتمالی است. به عنوان مثال، آنها ممکن است امکان افزایش امتیاز را داشته باشند یا بردارهای حمله ای برای انکار خدمات ایجاد کنند. با گذشت سالها، بسیاری از این نقص‌ها در هسته لینوکس یافت و حل شد. ویژگی‌های امنیتی جدید اغلب برای بهبود امنیت هسته لینوکس پیاده‌سازی می‌شوند. تاریخچه توسعه هسته
در دههٔ قبل از یونیکس، کامپیوترها با قدرت رشد فوق‌العاده ایی به سمت نقطه‌ای که اپراتورهای کامپیوتر در جستجوی راه جدید برای مردم جهت استفادهٔ اوقات فراغت شان از کامپیوتر بودند. یکی از توسعه‌های اصلی در آن دوران، اشتراک زمان بود که به موجب آن تعدادی از کاربران زمان کوتاهی از کامپیوتر می‌گرفتند. در حالی که به نظر می‌رسید که هر یک از آن‌ها به کامپیوتر آهسته‌تر خود متصل بودند. توسعه سیستم‌های اشتراک زمانی، منجر به بروز مشکلاتی شد. یکی از مشکلات این بود که کاربران به‌خصوص در دانشگاه‌ها درجایی که سیستم‌ها در حال توسعه بودند، بنظر می‌رسید که می‌خواستند سیستم‌ها را هک کنند تا از زمان بیشتر CPU استفاده کنند. به این دلیل در سال ۱۹۶۵ ایمنی و کنترل دسترسی تمرکز اصلی پروژه مولتیکس شد. یکی دیگر از مشکلات مداوم، درست استفاده کردن از منابع محاسباتی بود: کاربران به‌جای استفاده از منابع کامپیوتر، بیشتر وقت شان را صرف بالا آمدن صفحه نمایش و فکر کردن سپری می‌کردند. در حالی که سیستم اشتراک زمان می‌بایست در خلال این مدت زمان CPU را به یک کاربر فعال می‌داد. نهایتاً، سیستم‌ها به‌طور معمول یک سلسله مراتب حافظهٔ عمیق چند لایه‌ای را ارائه می‌دادند و پارتیشن‌بندی این منبع گران‌قیمت، منجر به توسعه سیستم‌های حافظهٔ مجازی شد. تاریخچه یونیکس
در سال ۱۹۷۰، Peter Neumann نام UNICS را برای پروژه انتخاب کرد که برگرفته از عبارت UNiplexed Information and Computing Service به معنای «سرویس رایانشی و اطلاعاتی یونیپلکس‌شده» است. این نام، یک جور بازی با نام Multics است. (خود کلمه Multics از عبارت Multiplexed Information and Computer Services به معنای «سرویس رایانه‌ای و اطلاعاتی تسهیم‌شده» گرفته شده‌است) کلمه Uniplexed تنها یک بازی با کلمه Multiplexed است و معنای خاصی ندارد. این نام به این خاطر انتخاب شد که یونیکس، همان مولتیکس اما به صورت عقیم‌شده بود. هسته لینوکس
لینوکس یک کلون از UNIX است، بنابراین به دنبال انطباق POSIX و Single UNIX (SUSv3) است. بعلاوه، از آنجا که لینوکس یونیکس نیست، هسته مکالمه‌های اضافی سیستم و رابط‌های دیگر که مخصوص لینوکس هستند فراهم می‌کند. برای درج در هسته رسمی، کد باید با مجموعه ای از قوانین صدور مجوز تعریف شده کاملاً مطابقت داشته باشد. ساختار دایرکتوری
سیستم عامل‌های یونیکس و شبه یونیکس از استاندارد سلسله‌مراتب سیستم‌فایل (FHS) به عنوان فرم رایج برای ساختار دایرکتوری‌های خود استفاده می‌کنند. تمامی فایل‌ها و دایرکتوری‌ها در زیر دیرکتوریِ ریشه (root directory) codice_1 حضور دارند (حتی اگر آن دیرکتوری و فایل‌ها روی دستگاه‌های فیزیکی و مجازی دیگری (نسبت به دیرکتوری ریشه) ذخیره شده باشند). هسته (نظریه بازی‌ها)
هسته شامل یک مجموعه است که در آن بازیکنان که لنگهٔ چپ کفش (کمیاب) را دارند ۱۰ تومان و بازیکنان با لنگهٔ راست صفر تومان می‌گیرند هیچ تقسیم‌بندی دیگری هم نمی‌تواند این تقسیم‌بندی را مغلوب کند زیرا هیچ بازیکنی که لنگ چپ کفش را دارد زیر ۱۰ تومان را قبول نمی‌کند و هر تقسیم‌بندی که مقدار مثبتی به هر بازیکن با لنگهٔ راست بدهد باید کمتر از ۱۰۰۰۰ تومان به سایر بازیکنان بدهد که همان بازیکنان به‌طور جدا می‌توانند ۱۰۰۰۰ تومان بدست آورند. پس فقط یک تقسیم‌بندی در هسته وجود دارد. بی‌اس‌دی
در سال ۱۹۷۸ یک رایانه VAX در برکلی نصب شد، اما پورتی از یونیکس که مخصوص این رایانه بود و UNIX/32V نام داشت، نمی‌توانست از توانایی‌های حاظه مجازی این معماری بهره ببرد. هسته 32V به طرز قابل توجهی توسط دانشجویان برکلی بازنویسی شد تا قابلیت حافظه مجازی در آن پیاده‌سازی شود. در اواخر سال ۱۹۷۹، یک سیستم‌عامل کامل حاوی این هسته جدید، پورت‌هایی از برنامه‌های 2BSD برای معماری وکس، و همچنین برنامه‌هایی از 32V، تحت عنوان 3BSD منتشر شد. 3BSD همچنین Virtual VAX/UNIX یا VMUNIX هم نامیده می‌شود که اشاره به پیاده‌سازی شدن قابلیت حافظه مجازی در این سیستم دارد. همچنین تا نسخه 4.4BSD، هسته‌های BSD معمولاً /vmunix نامیده می‌شدند. معماری هسته مجازی
مفهوم "هسته مجازی" تقریباً مخالف مفهوم "unikernel" است - با "هسته مجازی"، اجزای هسته برای ایجاد سهولت در توسعه هسته و رفع اشکال در فضای کاربر اجرا می‌شوند و توسط هسته سیستم عامل معمولی پشتیبانی می‌شوند. در حالی که با "unikernel"، اجزای سطح کاربر برای عملکرد بیشتر مستقیماً در فضای هسته اجرا می‌شوند، پشتیبانی شده توسط سخت‌افزار baremetal یا پشته مجازی سازی سخت‌افزار. با این حال، از vkernels و unikernels می‌توان برای کارهای مشابه استفاده کرد، به عنوان مثال، برای قرنطینه و تست نرم‌افزار در یک محیط مجازی با هزینه کم. در حقیقت، ریپ کردن هسته NetBSD، در اصل با تمرکز بر اجرای اجزای هسته در فضای کاربر، از آن زمان به فضای یک هسته نیز تغییر مکان داده‌است (برای پشتیبانی از هر دو نمونه به دنبال "مانیتور Anykernel است"). سامبا (نرم‌افزار)
سامبا اجازه اشتراک فایل و چاپ بین رایانه‌های با سیستم‌عامل ویندوز و رایانه‌های یونیکس را می‌دهد. این یک پیاده‌سازی از ده‌ها سرویس و پروتکل شامل موارد این موارد است: همه این پروتکل‌ها و سرویس‌ها اغلب به اشتباه تنها به عنوان نت بایوس یا SMB نامیده می‌شوند. پروتکل نت‌بایوس و WINS بروی ویندوز توصیه می‌شوند. سامبا اشتراک گذاری تحت شبکه را برای دایرکتوری یونیکس انتخاب شده (از جمله تمام زیرشاخه‌های موجود) برپا می‌کند. این دایرکتوری‌ها برای کاربران ویندوز مایکروسافت به عنوان یک پوشه ویندوز عادی به اشتراک گذاشته شده تحت شبکه به نظر می‌آید. کاربران یونیکس می‌توانند پوشه‌های به اشتراک گذاشته شده(shared) را به‌طور مستقیم به عنوان بخشی از ساختار فایل خودشان با استفاده از دستور smbmount مونت کنند یا به‌طور جایگزین با ابزار smbclient (libsmb) نصب شده با سامبا، پوشه و فایل‌های به اشتراک گذاشته شده را با یک واسط شبیه برنامه استاندارد خط فرمان اف‌تی‌پی بخوانند. هر دایرکتوری می‌تواند حق دسترسی متفاوتی داشته باشد. برای مثال دایرکتوری خانه (home) باید دسترسی خواندن/نوشتن برای همه کاربران شناخته شده داشته باشد و به هر کدام اجازه دسترسی به فایل‌های خودشان را بدهد. با این حال همچنان نباید به فایل‌های دیگران دسترسی داشته باشند مگر اینکه به‌طور معمول اجازه وجود داشته باشد. توجه داشته باشید اشتراک گذاری netlogon (به‌طور معمول به عنوان اشتراک گذاری فقط خواندنی از /etc/samba/netlogon توزیع شده‌است) دایرکتوری لاگین برای اسکریپت‌های لاگین کاربر است. سرویس‌های سامبا در دو دایمن انجام شده‌است: سامبا با ویرایش یک فایل (به‌طور معمول /etc/smb.conf یا /etc/samba/smb.conf) پیکربندی می‌شود. سامبا همچنین می‌تواند اسکریپت اجرای لاگین و خط‌مشی‌های گروه را از طریق poledit ارائه کند. سامبا در اکثر توزیع‌های لینوکس گنجانده شده‌است و در طول فرایند بوت لود می‌شود. در ردهت، به عنوان مثال، /etc/rc.d/init.d/smb در زمان بوت اجرا می‌شود و هر دو دایمن را اجرا می‌کند. سامبا در سولاریس گنجانده نشده‌است اما یک نسخه سازگار با سولاریس ۸ از سایت سامبا در دسترس است. سامبا یک ابزار مدیریت تحت وب به نام ابزار مدیریت تحت وب سامبا (SWAT) دارد. واحد پردازش مرکزی
واحد کنترل (control unit)، جزئی از CPU است که عملیات پردازنده را هدایت می‌کند. این واحد به حافظهٔ کامپیوتر، واحد محاسبه و منطق، و ابزارهای ورودی و خروجی می‌گوید که چگونه به دستورالعمل‌هایی که به پردازنده فرستاده شده‌اند، پاسخ دهند. این واحد با فراهم کردن سیگنال‌های زمانبندی و کنترل، عملیات سایر واحدها را هدایت می‌کند. بیشتر منابع کامپیوتر، توسط واحد کنترل مدیریت می‌شود. واحد کنترل، جریان داده را بین CPU و سایر ابزارها هدایت می‌کند. جان فون نویمن واحد کنترل را به عنوان بخشی از معماری فون نویمناضافه کرد. در طراحی‌های کامپیوتری جدید، واحد کنترل معمولاً یک بخش داخلی از CPU است که نقش و عملیات کلی آن، از اول تغییری نکرده‌است. پوشش هسته‌ای
پوشش هسته ای شامل دو لایه غشای دولایه لیپیدی است که یکی غشاء درون-هسته‌ای و دیگری غشاء برون-هسته‌ای می باشند. فضای مابین غشاها را فضای پیرا-هسته ای نامند. این فضا در حدود ۲۰-۴۰ نانوموتر عرض دارد. غشای برون-هسته‌ای پیوسته بوده و غشای آن مجهز به شبکه آندوپلاسمی می باشد. پوشش هشته ای دارای منافذ هسته‌ای متعددی است که امکان عبور مواد بین سیتوزول و هسته را فراهم می آورد. رشته‌های پروتئینی بینابینی به نام لامین روی سمت داخل غشای هسته‌ای تشکیل ساختاری به نام لامینای هسته‌ای داده که از ساختار هسته با ایجاد چارچوب‌هایی پشتیبانی می کند. هسته لینوکس
پشتیبانی از سیستم‌های مختلف پرونده نیز در اولویت قرار داشته‌است. هسته می‌تواند چندین سیستم پرونده ای را کار کند، برخی از آنها برای لینوکس و برخی دیگر بومی سایر سیستم عامل‌ها مانند Minix , Xenix , Irix , Solaris , System V، Windows و MS-DOS طراحی شده‌اند. Tee (یونیکس)
tee یکی از دستورهای خط فرمان یونیکس است. نام آن از حرف T انگلیسی گرفته شده است. این فرمان اطلاعات خود را از ورودی استاندارد می‌خواند و آنها را هم در یک فایل و هم در خروجی استاندار چاپ می‌کند. ls | tee list.txt در مثال بالا ابتدا دستور ls لسیت تمام فایلهای موجود در دایرکتوری جاری را چاپ می‌کند. سپس خروجی خود را به فرمان tee ارسال می‌کند. فرمان tee هم خروجی دریافت شده هم در خروجی استاندارد (در اینجا صفحه نمایش) و هم در فایلی به نام list.txt ذخیره می‌کند. اگر فایل list.txt از قبل وجود داشته باشد بر روی آن بازنویسی خواهد شد. اچ‌پی-یواکس
اچ‌پی-یواکس (برگرفته از عبارت Hewlett-Packard UniX) یک سیستم‌عامل انحصاری است که توسط شرکت هیولت-پکرد توسعه می‌یابد. این سیستم‌عامل مبتنی بر سیستم پنج یونیکس است و از جمله چهار سیستم‌عامل انحصاری است که از اوپن‌گروپ گواهی سازگاری با استاندارد UNIX 03 دریافت کرده‌است و قانوناً می‌تواند یک «یونیکس» نامیده شود. اولین نسخه این سیستم‌عامل در سال ۱۹۸۴ منتشر شد و توسعه آن همچنان ادامه دارد. نسخه‌های اخیر این سیستم‌عامل از سری سیستم‌های رایانه‌ای HP 9000 که مبتنی بر معماری PA-RISC و همینطور از سیستم‌های HP Integrity که مبتنی بر معماری ایتانیوم شرکت اینتل هستند پشتیبانی می‌کند. HP-UX اولین سیستم‌عاملی بوده که از لیست‌های کنترل دسترسی برای کنترل دسترسی به فایل‌ها و دایرکتوری‌ها در عوض مجوزهای سنتی یونیکس پشتیبانی می‌کرد. همچنین در بین سیستم‌عامل‌های یونیکسی و شبه یونیکسی، HP-UX اولین سیستم‌عاملی بود که یک logical volume manager توکار داشت. HP شراکت طولانی‌مدتی با وریتاس سافتور داشت و سیستم‌فایل VxFS را به عنوان سیستم‌فایل اصلی در HP-UX گنجانده است. یو وین
بیشتر پیاده‌سازی Unix API توسط POSIX.DLL به صورت پویا در کتابخانه مشترک بارگذاری شده‌است. برنامه‌های مرتبط با POSIX.DLL به جای سیستم POSIX، توسط سیستم Win32 اجرا می‌شوند، بنابراین برنامه‌ها می‌توانند صدا زدن کتابخانه Unix و Win32 را آزادانه با یکدیگر مخلوط کنند. یک دستور (cc(1 برای کامپایل و پیوند برنامه‌ها برای UWIN روی ویندوز با استفاده از ابزارهای سنتی ساخت یونیکس مانند (make(1 ارائه شده‌است. دستور (cc(1 یک قسمت جلویی کامپایلر اصلی است که کامپایل و پیوند واقعی را انجام می‌دهد؛ که توسط کامپایلر Digital Mars C/C++ , Visual C/C++ 7.X , Visual C/C++ 6.X ,Microsoft Visual C/C++ 5.X Borland C/C++ و MinGW قایل استفاده است. کامپایلر GNU و ابزارهای توسعه هم برای دانلود برای UWIN در دسترس اند. هسته لینوکس
هسته لینوکس (به انگلیسی: Linux kernel) یک هسته سیستم‌عامل است که با کمک توسعه‌دهندگان در سراسر جهان پیشرفت داده شد است هسته لینوکس، آزاد و متن باز یکپارچه، ماژولار (modular) و شبه یونیکس و بسیار قابل تنظیم است. هسته لینوکس بر روی طیف گسترده‌ای از سیستم‌های محاسباتی، مانند سیستم‌های توکار، دستگاه‌های تلفن همراه (از جمله استفاده از آن در سیستم عامل اندروید)، رایانه‌های شخصی، سرورها، حافظه‌های اصلی و ابر رایانه‌ها مستقر شده‌است. هسته لینوکس در سال ۱۹۹۱ توسط لینوس توروالدز برای رایانه شخصی خود طراحی و ساخته شد، اما از آن زمان به طیف گسترده‌ای از معماری‌های رایانه منتقل شده‌است. با وجود این، هسته لینوکس با استفاده از دستورالعمل‌های خاص معماری (ISA) بسیار بهینه شده‌است، بنابراین قابلیت حمل آن به آسانی مانند سایر هسته‌ها آسان نیست (به عنوان مثال، با NetBSD، که از سال ۲۰۱۹ از ۵۹ پلتفرم سخت‌افزاری پشتیبانی می‌کند). بارگنج‌های لینوکس
هستهٔ لینوکس قابلیت cgroups را فراهم می‌کند که اجازه می‌دهد تا محدودیت و اولویت بندی منابع (CPU, memory, بلوک، I/O, شبکه، و غیره) بدون نیاز به روشن کردن هیچ ماشین مجازی ای و همچنین قابلیت فضای نام ایزوله که اجازهٔ انزوای کامل یک برنامهٔ کاربردی، نمایی از محیط اجرایی شامل درخت‌های فرایند، شبکه، مشخصه‌های کاربر و سیستم فایل‌های سوارشده است. تاریخچه یونیکس
تاریخجه یونیکس به اواسط دهه ۱۹۶۰ برمی‌گردد، وقتی که Massachusetts Institute of Technology، آزمایشگاه‌های بل AT&T و ژنرال الکتریک یک سیستم‌عامل اشتراک زمانی آزمایشی به نام مولتیکس را برای رایانه مین‌فریم GE-645 توسعه می‌دادند. هسته لینوکس
در ۱۹ ژانویه ۱۹۹۲، اولین پست به گروه جدید اخبار alt.os.linux ارسال شد. در تاریخ ۳۱ مارس ۱۹۹۲، گروه خبری به comp.os.linux تغییر نام داد. این واقعیت که لینوکس یک هسته یکپارچه است و نه یک ریزگرد، موضوع بحث و گفتگو بین اندرو S. Tanenbaum، خالق MINIX و Torvalds بود. این بحث به عنوان بحث Tanenbaum-Torvalds شناخته می‌شود و در سال ۱۹۹۲ در گروه بحث Usenet comp.os.minix به عنوان یک بحث کلی در مورد لینوکس و معماری هسته آغاز شد.