Що є в Операційній системі, крім ядра


43

Як я розумію, ядро ​​здійснює всю взаємодію з обладнанням, а також керує пам'яттю, пристроями вводу-виводу тощо. Отже, ядро ​​робить все, але це лише частина операційної системи. То що ще є в ОС? Просто додатки, які постачаються в комплекті? Наприклад, що таке Ubuntu, крім ядра? Gnome Desktop та кілька інших програм?

Відповіді:


54

Раковина, звичайно.

Оригінальна метафора, яка отримала нам для цього слово «ядро», в першу чергу занадто часто забувається. Метафора полягає в тому, що операційна система - це насіння або горіх. «Ядро» насіння - це ядро ​​операційної системи, що надає послуги операційної системи прикладним програмам, яке оточене «оболонкою» насіння, що бачать користувачі ззовні.

Деякі люди хочуть пов'язати "ядро" (і, справді, "оболонку"), щоб бути більш конкретним, ніж це. Але насправді існує велика кількість варіацій між операційними системами. Не в останню чергу ці варіанти є тим, що являє собою "оболонку" (яка може варіюватися від Solaris ' shчерез Інтерпретатор командної консолі Netware до оболонки Workplace Shell OS / 2 та Провідник Windows NT), але також існує велика кількість варіацій від однієї операційної системи до іншої в що є, а ні, є частиною "ядра" (яке може включати або не включати дискові введення / виведення, наприклад). Найкраще пам’ятати, що ці терміни є метафорами .

Є й інші термінології. У термінології мейнфрейму IBM, «ядро» в метафорі «начало / гайка» називається програмою управління . Інші назви включають керівника , монітора , ядра та виконавчого апарату . Ядро - ще одна досить очевидна біологічна метафора. Цікаво, що так теж інша назва. Харві М. Дейтель у своїй операційній системі називає програму управління ядром і каже

Ядро, як правило, являє собою невелику частину коду того, що прийнято вважати всією операційною системою [...]

Слово "ядро" походить від латинського ядра і означає ядро ​​горіха (пор. Лат. Nux , що означає "горіх"). Таким чином, навіть називати програму управління «ядром» насправді робить цю саму аналогію операційної системи «як-горіх». Це аналогія, яка використовується для більш ніж просто операційних систем. Наприклад, якщо ви знайомі з хімією, ви знаєте, що атомне ядро оточене електронами в оболонках .

Те, що псевдонім new123456пише внизу, ілюструє помилки, що виникають внаслідок забуття джерел цих метафор, настільки, що можна помилити частину в цілому і помилитися ядром для всієї операційної системи. Будучи програмою "userland", програма не робить оболонку менш зовнішньою частиною операційної системи, а також не робить її меншою, ніж та, яка закриває ядро. Більше того, далеко не лише DOS-ідея, яка не застосовується до Unix за межами версії 7, ця ідея є широко поширеною та актуальною у світі Unix.

(Іронічно, що new123456помиляється на DOSism. Метафора ядра / оболонки була досить чужою для DOS в ранні роки, яка віддала перевагу командному процесору і подібним - від CP / M. Як і CP / M до цього, MS-DOS був розділений в основну дискову операційну систему (BDOS), основну систему вводу-виводу (BIOS - не системна прошивка, примітка), командний процесор та утиліти для обслуговування . Код насправді розбився на файли таким чином. Це ще один наприклад, як метафора ядра / оболонки насправді не покриває або повністю відповідає фактичним поділам у багатьох операційних системах.)

new123456забуває те, що писав Deitel про ядро, що є частиною загальної операційної системи. Операційна система - це і ядро, і оболонка. Це, зрештою, метафора. І Deitel не один. Існують нитки книг Unix, що пояснюють метафору Unix як-a-nut, починаючи з 1980-х років. Я рекомендую Urban's and Tiemann's Teach Yourself FreeBSD за 24 години (SAMS, ISBN 9780672324246) з тієї простої причини, що на сторінці 54 є схема, що ілюструє метафору операційної системи як насіння, і, що дивно, є однією з кілька книг для цього.

Назва "ядро" - це, мабуть, старша назва; Безумовно, що передує Unix, що надає перевагу термінології ядра / оболонки, яка сьогодні - напевно, не малою мірою завдяки Unix - є більш поширеною. Ось, що, наприклад, у книзі Алана Шоу 1974 р . Логічний дизайн операційних систем (Prentice-Hall, ISBN 9780135401125), наприклад:

Та частина системи, яка постійно проживає в основному сховищі, історично називалася ядром . Ядро, як правило, складається з мінімального набору примітивів і процесів для управління процесами, ресурсами та введення-виведення.
У Шоу теж є діаграма. ☺


7
Я думаю, що це геніальна відповідь, просто тому, що вона принесла мені на думку взаємозв'язок між метафорами «оболонка» та «ядро». Я знав обох, я ніколи їх не пов’язував. Я знав відповідь на питання, але все ж встиг щось дізнатися з цієї відповіді. Звідси виступ. Дякую!
Ендрю Дж. Брем

Я б не вагався сказати це, тому що оболонка UNIX була абстрагована від самого ядра з версії 7 і має програму для користування у будь-якому сенсі цього слова. Однак ви сказали, що це стосується DOS (що є особливо жахливим вибором дизайну).
new123456

Добре зіграно, сер. Однак, будь-ласка, залиште @десь, коли згадуєте моє ім’я користувача, щоб воно було розміщено у черзі відповідей.
new123456

Запропонований тим, що був такою вичерпною відповіддю з великою кількістю цікавої історії (я не знав ядра як комп’ютерного терміна - або його латинської етимології). Однак я думаю, що це було б набагато краще, як відповідь окремо, якби явно не посилався на відповідь іншого користувача (тепер видалено).
Ентоні Геогеган

45

Інші частини операційної системи включають драйвери, які взаємодіють з ядром, є кілька шарів допоміжних програм, які працюють з користувальницьким інтерфейсом, мережевими та іншими основними частинами ОС, які розташовані між ядром і фактичним додатком.

Для прикладу я показав структуру OS X , як ви бачите, що поверх ядра (світло-синього кольору) лежить кілька шарів "основної" функціональності, системні інструменти, сервіси та API (інтерфейс програмування прикладних програм) перед вами навіть дійти до графічного інтерфейсу, з чим ти зазвичай працюєш у власних програмах.

введіть тут опис зображення

Більшість операційних систем мають подібну структуру, але існує широка область розбіжностей щодо того, скільки насправді є частиною ядра. Для порівняння дивіться статтю Вікіпедії про Microkernels .

РЕДАКТУВАТИ - Щоб відповісти на ваш коментар (мій коментар трохи довший)

Ви можете завантажувати лише Linux ядро, але ви не зможете реально досягти багато чого, це всі ті допоміжні програми, які надають весь інтерфейс, який ви бачите та використовуєте.

Після завантаження ядра (та ініціалізації апаратного забезпечення) він спробує передати інші частини операційної системи GNU / Linux, які надають функціональні можливості для запуску сервісів (наприклад, UDEV, який заповнюється необмеженими/dev інтерфейсами пристроїв для програм для використання таких речей, як жорсткі диски та послідовні порти тощо) та програми для налаштування мережі ( dhcpcd ) та API-інтерфейсів, таких як X.org для додатків, які зможуть відображати вікна та піктограми за допомогою Менеджера вікон, таких як GNOME або KDE .

Але так, ви можете просто завантажувати саме ядро, воно просто сидітиме там із "Я завантажився, тепер що?" підказка.


тож чи можу я завантажувати лише ядро і жоден із додаткових матеріалів, якими зазвичай є ОС?
AnkurVj

У теорії, я думаю, але це не буде робити що - небудь без інших програм поверх нього. Є крихітні операційні системи, які люди створили для розваги, які є не що інше, як ядро, оболонку та, можливо, компілятор чи асемблер (я думаю, що Linux почав саме так).
користувач55325

@AnkurVj Я додав до своєї відповіді.
Mokubai

3
Я не думаю, що ви можете завантажувати лише ядро ​​Linux. Ядро досягає точки, де викликає init, і в цей час система переходить з режиму ядра в режим користувача. Якщо init недоступний (або підроблений init, як bash), ядро ​​панікує і виходить з ладу. Отже, повинен бути якийсь процес запуску init, щоб уникнути паніки, і тоді це насправді не просто ядро.
Joe Internet

1
Ви можете завантажувати оголене ядро, але без залишку ОС, користувач не матиме взаємодії з ним.
Keltari
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.