Як працює ядро Linux? Пояснення анатомії ядра Linux

Ядро Linux схоже на міст, який забезпечує обчислювальний зв’язок між додатками та обладнанням та керує ресурсами системи. Лінус Торвальдс розробив ядро Linux на C і асемблері, і, таким чином, йому вдалося створити легке і переносне ядро, яке було випущене для публіки як відкритий вихідний код.

Використання обладнання в Linux

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

Інтерфейс програмування забезпечує рівень абстракції. Наприклад, якщо ви хочете поспілкуватися з друзями з відеозв’язку, вам знадобиться веб-камера. Рівень абстракції дозволяє програмному забезпеченню використовувати цю веб-камеру незалежно від її марки та моделі. Програмне забезпечення тут може використовувати лише інтерфейс, який існує для Linux. Ядро Linux переводить виклики функцій цього інтерфейсу на фактичні апаратні команди, необхідні веб-камері.Используя виртуальные файловые системы /proc и /sys, ядро Linux может экспортировать подробную информацию об обнаруженном оборудовании. Ниже вы можете увидеть несколько инструментов, используемых для этого, и какие устройства и карты они экспортируют:

  • lspci: для пристроїв PCI
  • lsusb: для USB-пристроїв
  • lspcmcia: для карт PCMCIA

Як бачите, дистрибутив Linux на скріншоті вище працює на VirtualBox. Однак у вас є можливість побачити багато інформації, такої як VGA, контролер USB, мости та контролер SATA.

Також можна використовувати параметр -v для отримання більш детальної інформації.

У ядрі Linux програми зазвичай отримують доступ до пристроїв через спеціальні файли, що знаходяться в каталозі/dev. Ці спеціальні файли є дисководи та інші фізичні пристрої. Прикладами таких спеціальних файлів є такі файли, як /dev/hda, /dev/sdc, /dev/sdc3, /dev/input/mouse0 і dev/snd/*.

Керування файловою системою Linux

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

Відправною точкою цієї ієрархії є кореневий каталог (/). Інші підкаталоги знаходяться у кореневому каталозі. Найчастіше використовуваним підкаталогом у розділі/ є/home|каталог. Цей підкаталог містить інші підкаталоги, і у кожному каталозі є файли, у яких зберігаються фактичні дані.

Наприклад, ви можете думати про текстовий файл на робочому столі. Якщо ви створюєте текстовий файл з ім’ям helloworld.txt на робочому столі, ви можете посилатися на нього як /home/muo/Desktop/helloworld.txt. Приклад/muo тут, звичайно, буде іншим. Тому що це ім’я підкаталогу залежить від вашого імені користувача. За допомогою цієї системи іменування ядро Linux виконує перетворення між фактичним та фізичним сховищем, що існує на диску.

Також ядро Linux може інтегрувати дані з кількох дисків. Тут у справу вступає система кріплення. Він використовує один із дисків у кореневій системі та монтує інші в існуючі каталоги в ієрархії. Потім інші диски розміщуються під точками монтування. Це дозволяє користувачам зберігати каталог /home на другому жорсткому диску, який містить інші підкаталоги.

Коли ви підключаєте диск до каталогу /home, можна отримати доступ до цих каталогів зі звичайних місць. Таким чином, такі шляхи, як /home/muo/Desktop/helloworld.txt, продовжують працювати.

Ви можете побачити точки монтування між файлами у системі за допомогою команди findmnt -A.

Завдяки безлічі форматів файлових систем, ви можете фізично зберігати дані на дисках. Найбільш широко відомими в Linux є формати файлових систем ext2, ext3 та ext4. Однак існує багато інших форматів файлових систем. У будь-якому випадку, ви повинні відформатувати файлову систему перед монтуванням. Для цього можна використовувати такі команди, як mkfs.ext3 (mkfs означає створення файлової системи, а ext3 – файлова система).

Ці команди приймають як параметр шлях до файлу пристрою, який ви хочете відформатувати. Це руйнівна операція, і ви повинні використовувати її обережно, якщо не хочете стерти або скинути файлову систему.

Крім того, є мережні файлові системи, такі як NFS, які використовує ядро Linux. NFS — це мережна файлова система, в якій дані не зберігаються на локальному диску. Під час використання NFS дані передаються через мережу на сервер, на якому вони зберігаються. Оскільки дані будуть на сервері, користувачам не доведеться постійно возитися з ними. Вони можуть також використовувати традиційну ієрархічну файлову систему Linux.as usual.

Операції із загальними функціями

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

Ви можете зберегти файл на жорсткому диску, розділити його між кількома жорсткими дисками або навіть зберігати на віддаленому сервері. У таких випадках важливими є функції обміну спільними файлами. Програми обмінюються даними незалежно від того, як переміщаються дані. Загальні функції комунікації призначені для здійснення такого обміну даними. Це переміщення може здійснюватися бездротовими мережами або навіть стаціонарної телефонної лінії.

Управління процесами в Linux

Активний екземпляр програми, що працює з даними або інформацією пам’яті, називається процесом. Завдання ядра Linux – генерувати та відстежувати ці області пам’яті. Ядро виділяє пам’ять для запущеної програми та завантажує виконуваний код у пам’ять із файлової системи. Відразу після цього ядро запускає код.

The Linux kernel supports multitasking. Це capable running численні процеси в той же час. Там є тільки одна трансакція в будь-який час часу, тому що. Хоча, Linux kernel splits time в короткі chunks і як результат, їх процедура так place sequentially.

Оскільки ці маленькі часові сегменти мають мілісекундні прирощення, вони активні лише у певний час і залишаються бездіяльними решту часу. Завдання ядра Linux тут у тому, щоб максимізувати продуктивність з допомогою одночасного запуску кількох процесів.

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

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

Права доступу до Linux

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

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

Ядро Linux керує всім

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

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

Поділіться своєю знахідкою

Залишити відповідь

0 комментариев
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x