Что есть в операционной системе, отличной от ядра
Насколько я понимаю, ядро делает все взаимодействие с оборудованием и управляет памятью, устройствами ввода / вывода и т. Д. Итак, ядро все делает, но это всего лишь часть операционной системы. Так что же еще в ОС? Просто приложения, которые поставляются вместе с ним? Например, что у Ubuntu есть не ядро? Gnome Desktop и несколько других приложений?
Раковина, конечно.
Первоначальная метафора, которая завела нам слово «ядро» для этого, в первую очередь, слишком часто забывается. Метафора состоит в том, что операционная система – это семена или орех. «Ядро» семян является ядром операционной системы, предоставляя операционные системы приложениям программ, которые окружены «оболочкой» семени, которую пользователи видят снаружи.
Некоторые люди хотят связать «ядро» (и, действительно, «оболочку»), чтобы быть более конкретным, чем это. Но на самом деле в операционных системах множество изменений. Не в последнюю очередь эти вариации представляют собой «оболочку» (которая может варьироваться от Solaris до промежуточного интерпретатора командной строки Netware с рабочей средой рабочего стола OS / 2 и проводником Windows NT), но также существует большая разница между одной операционной системой и другой В том, что является и не является частью «ядра» (например, который может включать или не включать дисковый ввод-вывод). Лучше всего помнить, что эти термины являются метафорами .
Существуют и другие термины. В терминологии мэйнфрейма IBM «ядро» в метафоре семян / орехов называется программой управления . Другие имена включают супервизора , монитора , ядро и исполнительную власть . Ядро – еще одна довольно очевидная биологическая метафора. Интересно, что это тоже другое имя. Харви М. Дейтель в своих операционных системах называет контрольную программу ядром и говорит
Ядро обычно представляет собой небольшую часть кода того, что обычно считается всей операционной системой […]
Слово «ядро» происходит от латинского ядра и означает ядро ореха (лат. Nux , что означает «орех»). Поэтому даже вызов программы управления «ядро» на самом деле делает эту ту же аналогию с операционной системой, как и орех. Это аналогия, которая используется не только для операционных систем. Например, если вы знакомы с химией, вы узнаете, что атомное ядро окружено электронами в оболочках .
То, о new123456
пишет ниже псевдоним new123456
иллюстрирует ошибки, проистекающие из забыли о происхождении этих метафор в той мере, в какой один из них ошибочно принимает участие в целом и ошибается ядро для всей операционной системы. Будучи программой «пользовательской» программы, она не делает оболочку чем-то снаружи операционной системы и не делает ее меньше, чем оболочку ядра. Более того, это далеко не единственная идея DOS, которая не относится к Unix за пределами версии 7, эта идея широко распространена и актуальна в мире Unix.
( new123456
заключается в том, что new123456
ошибочно принимает это за DOSism. Метафора ядра / оболочки была довольно чужда DOS в первые годы ее существования, что благоприятствовало процессору команд и тому подобное, от CP / M. Как и CP / M, перед ним MS-DOS была (BDOS), базовая система ввода-вывода (BIOS – не системная прошивка, примечание), командный процессор и служебные утилиты . Этот код фактически был доведен до файлов таким образом. Другой пример, на самом деле, о том, как метафора ядра / оболочки на самом деле не покрывает или полностью совпадает с фактическими подразделениями во многих операционных системах.)
new123456
забывает, что Deitel написал о том, что ядро является частью общей операционной системы. Операционная система – это как ядро, так и оболочка. Это, в конце концов, метафора. Дейтель тоже не одинок. В 1980-х годах были выпущены книги Unix, объясняющие метафору Unix-as-a-nut. Я рекомендую, чтобы Urban's и Tiemann научили вас FreeBSD за 24 часа (SAMS, ISBN 9780672324246) по той простой причине, что на стр. 54 он имеет диаграмму, иллюстрирующую метафору операционной системы как семена, и – удивительно – является одним из Для этого мало книг.
Название «ядро», вероятно, является более старым именем; Безусловно, предшествовавший Unix, который поддерживает терминологию ядра / оболочки, которая сегодня – возможно, в немалой степени благодаря Unix – является более распространенной. Вот что написано в книге Алана К. Шоу 1974 года . Логический дизайн операционных систем (Prentice-Hall, ISBN 9780135401125), например:
Эта часть системы, которая постоянно находится в основном хранилище, исторически называлась ядром . Ядро обычно состоит из минимального набора примитивов и процессов для управления процессами, ресурсами и ввода-вывода.
У Шоу также есть диаграмма. ☺
Другие части операционной системы включают драйверы, которые взаимодействуют с ядром, существует несколько уровней вспомогательных программ, которые касаются пользовательского интерфейса, сети и других основных частей ОС, которые находятся между ядром и фактическим приложением.
Чтобы привести пример, я показал структуру OS X , поскольку вы можете видеть поверх ядра (светло-голубой), располагая несколькими слоями «основных» функциональных возможностей, системных инструментов, сервисов и API (Application Programming Interface) перед вами Даже получить в GUI, что вы обычно работаете в самих реальных приложениях.
Большинство операционных систем имеют сходную структуру, но есть широкие возможности для различий в отношении того, насколько на самом деле является частью ядра. См. Статью Википедии о микроядрах для сравнения.
EDIT – ответить на ваш комментарий (мой комментарий немного затянулся)
Вы могли бы загружать только ядро linux, но вы не смогли бы реально добиться многого, это все те вспомогательные приложения, которые предоставляют весь интерфейс, который вы видите и используете.
Как только ядро загружается (и инициализируется аппаратное обеспечение), оно будет пытаться передать другим частям операционной системы GNU / Linux, которые предоставляют функциональные возможности для запуска служб (например, UDEV, который заполняет /dev
с помощью необработанных интерфейсов устройства для использования программ Такие как жесткие диски и последовательные порты и т. Д.) И программы для настройки сети ( dhcpcd ) и API-интерфейсов, таких как X.org, чтобы приложения могли показывать окна и значки, хотя диспетчер окон, такой как GNOME или KDE .
Но да, вы могли бы просто загрузить само ядро, он просто сидел бы там с «Я загрузил, что теперь?» незамедлительный.