Ця стаття є для тих, хто хотів дізнатися більше про Linux, але будь ласка, запитувати, або не думають про це. Для початку найбільшого розчарування не існує операційної системи Linux.
По-перше, ми розуміємо термінологію та як працює комп’ютер. У нас є програми. Надана операційною системою (OS). Операція операційної системи забезпечує ядро ОС. Ось лялька: ОС -> ОС -> Програми.
Великий секрет – «Я буду Linux» – це багато термінології. «Я отримую Debian GNU/Linux». й
Те, що Linux є універсальним ядром ОС. Він може працювати з будь-яким OS сумісним з ним. Коротко, Linux просто ядро.
Ми працюємо на наших серверах і настільних комп’ютерах. GNU сумісний з ядром Linux і це ця ОС, яка пари з цим ядром в більшості дистриб'юторів.
Що таке розподіл? Розповсюдження є готовим комплектом програми «Key + OS +». Кожна дистрибуція - це просто добре зібрана і дебугована головоломка з ядра Linux + GNU OS + набір програм. Наприклад, Debian GNU/Linux.
До речі, той же Debian є в варіанті з іншим ядром, будівельник має ключове слово kfreebsd - це Debian GNU з ядром FreeBSD.
В цілому немає Linux OS, є ядро, прохолодно гарне і універсальне. Це ядро робить ОС для основних кадрів (1 місце у світі), серверів (1 місце у світі), настільних комп'ютерах (3 місце у світі) та мережевого обладнання (наприклад, для домашніх маршрутизаторів).
Де це починається? На додаток до того, що ми вже встановили Debian GNU/Linux, він повинен запустити якось. Або, звичайно, хтось повинен запустити його. Разом з Debian є універсальний завантажувач OS - GRUB. Grub може запустити не тільки Linux, але і будь-яку ОС, яка підтримує протокол мультизавантаження - безкоштовні, netbsd, openbsd, будь-які Linux + GNU, або навіть без GNU. Крім того, Grub може запустити MacOS і Windows без багатозавантаження.
Як працює наш комп'ютер Linux?
По-перше, материнська плата та її вбудовані програми. Організувати доступ до коду BIOS і запустити процесор (CPU). Процесор розпочинає виконання коду BIOS.
Єдине завдання BIOS в цьому випадку полягає в пошуку і запуску завантажувача. Він знаходить завантажувача на одному з дисків. Що знайшов BIOS не сам GRUB, це завантаження завантажувача розміром 512 байтів. Це називається етап1. Цей маленький 512 byte bootloader, єдине, що він завантажує GRUB з того ж приводу.
Добре, GRUB завантажив і у нас є привітання на екрані з вибором опції завантаження OS і відліком для завантаження в режимі за замовчуванням. Ми чекаємо на три секунди...
Після цього GRUB виконує наступні дії.
Завантажує ядро Linux в пам'ять і так звані інтрамфи. initramfs - це мінімальний образ системи GNU, необхідний для завантаження самої системи. У цьому образі зібрані драйвери для роботи з праскою, і є налаштування, необхідні для запуску ОС.
Ядро і інтрамофи завантажуються і контроль передачі GRUB до точки входу в ядро. Використовуються. Запуски модулів, знаходить та реєструє обладнання, файлові системи, мережеві інтерфейси тощо. Коли ядро завершує свою прелюдію, вона працює /sbin/init від initramfs. Ця програма виконує одне завдання - підготовка до запуску ОС - складання RAID, LVM, монтаж файлових систем.
Коли /sbin /init зробив свою роботу, магічна операція називається Change Root. Ядро вбиває образи initramfs, завантажені в пам'ять і монтує кореневу файлову систему нашої ОС.
Після цього контроль передається в / sbin/init з нашої системи «real». Він також виконує тільки одне завдання - працює програми з списку запуску.
Запущені програми, мережа налаштована, графічна оболонка.
Ну, наша ОС завантажується.
Коротко про всі кроки завантаження GNU/Linux:
- BIOS - завантаження завантажувача
- Завантажувач 512 байтів - завантажує гру
- GRUB – завантаження ядер та інтрамфів
- Основні пошуки та запуск обладнання
- initramfs (/sbin/init) готує все для запуску ОС
- Зміна кореня в реальну систему
- /sbin/init цієї системи працює програми
- Ми бачимо підписку на привітання (одна з програм, що працюють на стадії 7, таких як gdm)
Чому так складно? Ні! Все просто здається складною - кожна окрема частина проста і виконує невелике завдання, кожна частина проста в якості корка. Чи не ви?
BIOS, який знаходить диск і завантажує 512 байтів для пам'яті, простий. Якщо я знав специфікацію для моєї материнської плати, я хотів би писати її протягом декількох годин.
Завантажувач, який завантажує GRUB, просто неможливий - він навіть важить тільки 512 байтів. Я написав її кілька разів – вірю мені, 40 хвилин достатньо для цього. Дуже просто.
Єдине, що GRUB може бути завантажено ОС. До речі, GRUB всередині зламаний на невеликі і прості шматки.
Ядро - єдине, що може працювати з апаратними та файловими системами. До речі, вона також розбивається на невеликі шматки всередині - модулі. Кожен модуль виконує тільки своє завдання.
Initramfs – простий до виходу – він містить файли з модулями ядра, необхідні для роботи з апаратними та файловими системами. І трохи /sbin/init, який написаний в bash і просто збирає RAID, як це говорить в конфігурації, який також досить простий.
Зміна кореня – операція, яка написана в коді ядра Linux, виглядає чарівно, але вірити мене – просто приховати – збити кілька сторінок пам'яті і використовувати вже запущені модулі для кріплення кореневих FS.
/sbin/init з поточного системи? Це просто для петлі, яка проходить через файли з /etc/rc*.d каталогів в правому порядку і працює кожен файл.
Не ускладнюється ОС. Складний. GNU/Linux простий і прозорий. Ядро відокремлюється від системи максимально можливо, завантажувач відокремлюється від усього іншого. Кожна людина має власну річ і результат є гнучкою і універсальною системою. Це приклад правильної і красивої архітектури ОС.
Ядер Linux не монолітний. Це буде занадто складним, і ніхто не любить його (крім індіанців «утрьох компаній»). Зламати модулі. Кожен модуль здатний працювати з одним - з однією апаратною або файловою системою або щось інше.
Я багато разів писав, і це дуже просто, адже більшість з них вже зроблено для вас, і ви просто повинні зробити вашу частину.
Як я гона влаштував для себе? Я не можу! Ви не повинні знати нічого. Установчі програми, такі ж Debian GNU / Linux будуть знаходити ваші диски і пропонують налаштувати FS. В цілому, налаштування FS є єдиною, що вам доведеться налаштувати при установці Linux. На цьому ФС і ваших приводах вона поставить ГРУБ і сам завантажувач, встановлюємо саму ОС і ядро, робимо зображення інтрамфів.
В кінці буде запропоновано викласти готові набори програм, наприклад, для настільного комп'ютера. Ви вже маєте готовий і налаштований комп'ютер для роботи.
Як ви керуєте цим пізніше? Не важко. Середній користувач від системи управління потребує лише двох команд:
Програма установки apt-get
apt-get видалити програму
Debian GNU/Linux так легко використовувати, що ви навіть не повинні шукати правильне програмне забезпечення – все вже було знайдено для вас, враховуючи назву і покласти в репозиторію.
Ви просто скажете ОС – “задати мені хрому” (забудьте хром) і в кілька секунд ви вже завантажили і встановили свій улюблений браузер.
Linux як ядро, GNU як OS, Debian як дистрибуція, повністю відкритий джерело. Будь-який може написати щось з себе, відкидати «на себе» або «на кішках» і відправити патч (або зараз модний витягування) до вкладників. Вони будуть виглядати на Вашому коді і ідея, і якщо це дійсно потрібно, вони будуть включати його в ядро, ОС або розподіл (в залежності від того, що вам було написано).
З яких історій про діаманти і «секс з Linux» подібні оповідання є багато і вони висловлюють їх занурення. І причина індикації проста – хочу налаштувати (Я адмін!), але не хочу читати документацію. У Linux і GNU все стандартизовано і описано. Якщо ви збочений і хочете запустити Linux на деякі дивні файлові системи, прочитайте, якщо GRUB може запустити його. Ви побачите, якщо GRUB може запустити вашу ОС (прочитати файл ядра та Initramfs). У тій самій документації, читати, можливо, GRUB буде потрібно додати спеціальний модуль для FS.
Друга причина тамбуринів полягає в тому, що вони не прочитають документацію, тільки до заліза. На ринку є багато заліза. Не всі апаратні засоби підтримуються всіма ОС. Чи не ви? Чи працює Windows всюди? Поставте Windows 7 на IBM System-Z і я сміхся. Це проблема деяких виробників заліза - відсутність відкритої документації і, в результаті, відсутність драйверів. Тепер Linux може працювати на будь-якому обладнанні. Однозначність виникає з нестандартним (або дуже рідкісним) обладнанням, зазвичай купується додатково з комп'ютера. Що таке веб-камери або графічні планшети більше не проблема для Linux — майже всі виробники апаратних засобів, які писали самі драйвери або відкрили документацію, і розробники Linux. Але перш ніж купити апаратне забезпечення, переконайтеся, що Linux знайомий з ним.
Все ідеально? Але є складнощі — тільки складність, яку я ще повинен обходити — формати офісних документів. На жаль, MS, як монополія ринку програмного забезпечення, побажала не розголошувати ці формати. Але я опинився з ситуації легко - Google Docs, це ще зручніше, ніж MS Office.
Система GNU, ядро Linux і численні розподіли прості. У цій статті я зміг швидко і коротко розповісти про одну з основних завдань системи - її завантаження. І ви отримаєте! Це говорить про те, що все не так складно і не потрібно боятися цього.
Успіхів Вам, початківця Linuxoid (і можливо, майбутній розробник цього красивого ядра і GNU OS).
Джерело: geektimes.ru/post/247134/