📆 День -01 | Огляд Linux, історія та архітектура
Що таке Linux? Історія та дистрибутиви
Огляд архітектури Linux
Linux — це безкоштовна та відкрита операційна система (ОС), заснована на архітектурі Unix. Вона була створена для того, щоб забезпечити надійну, безпечну та ефективну операційну систему для комп’ютерів, серверів, мобільних пристроїв і вбудованих систем. Linux широко використовується завдяки своїй гнучкості, стабільності та безпеці, що робить її популярним вибором серед розробників, бізнесів і технічних ентузіастів.
- Ядро: В основі Linux лежить ядро, яке є серцем ОС. Воно керує системними ресурсами та взаємодією з апаратним забезпеченням.
- Відкритий код: Код доступний для всіх, що дозволяє змінювати, поширювати та використовувати систему за потребою.
- Багатоплатформність: Linux працює на різноманітному обладнанні — від персональних комп’ютерів до суперкомп’ютерів і пристроїв IoT.
Історія Linux
➣ Вихід з Unix (1969):
Unix був розроблений у Bell Labs як багатокористувацька, багатозадачна операційна система. Його принципи проектування мали великий вплив на Linux.
➣ MINIX (1987):
Ендрю С. Таненбаум розробив MINIX, спрощену систему, схожу на Unix, для навчальних цілей. Це надихнуло Лінуса Торвальдса створити Linux.
➣ Народження Linux (1991):
- Лінус Торвальдс, студент інформатики з Фінляндії, почав писати нове ядро ОС як особистий проект. Він анонсував його 25 серпня 1991 року.
- Перша версія (0.01) була випущена 17 вересня 1991 року.
- Торвальдс випустив її під GNU General Public License (GPL), об’єднавши своє ядро з утилітами GNU для створення повноцінної ОС.
➣ Зростання та впровадження (1990-ті - 2000-ні):
- Завдяки внеску розробників з усього світу, Linux стрімко покращувався.
- Корпорації та спільноти почали використовувати Linux для серверів, робочих столів і вбудованих систем.
➣ Сучасна ера:
- Linux підтримує 90% хмарної інфраструктури, 100% з топ-500 суперкомп’ютерів та операційну систему Android.
Популярні дистрибутиви Linux
Дистрибутив Linux (distro) — це пакет, що об’єднує ядро Linux, інструменти GNU, бібліотеки, середовище робочого столу та інше програмне забезпечення. Існує сотні дистрибутивів, орієнтованих на різні цілі.
➣ Debian-based:
- Debian: Відомий своєю стабільністю та великими репозиторіями програм.
- Ubuntu: Легкий у використанні, підходить як для початківців, так і для професіоналів.
- Linux Mint: Заснований на Ubuntu, акцент на простоту та зручність використання.
➣ Red Hat-based:
Red Hat Enterprise Linux (RHEL): Стабільний і безпечний дистрибутив для підприємств.
Fedora: Орієнтований на новітні технології, підтримується спільнотою.
CentOS: Безкоштовна альтернатива RHEL (недавно замінена на CentOS Stream).
➣ Arch-based:
- Arch Linux: Мінімалістичний та дуже налаштовуваний, для досвідчених користувачів.
- Manjaro: Дистрибутив на базі Arch, зручний для початківців, з попередньо налаштованими параметрами.
➣ Інші:
- OpenSUSE: Стабільний і зручний для користувачів, ідеальний для розробників.
- Kali Linux: Спеціалізований для пентестингу та етичного хакінгу.
- Alpine Linux: Легкий і орієнтований на безпеку, ідеальний для контейнерів.
Основні особливості Linux
- Відкритий код: Налаштовуваний і вигідний.
- Безпека: Потужні вбудовані механізми безпеки.
- Мультизадачність: Ефективне управління кількома процесами одночасно.
- Підтримка спільноти: Активні глобальні спільноти та форуми.
- Масштабованість: Підходить для систем будь-якого розміру, від вбудованих пристроїв до дата-центрів.
➤ Огляд архітектури Linux
Архітектура Linux — це шарова структура операційної системи Linux. Вона має модульний дизайн і організована в компоненти, які працюють разом, щоб надавати функціональність користувачам. Ось розбір архітектури:
1. Шари архітектури Linux
1.1.
Шар апаратного забезпечення
- Шар апаратного забезпечення включає фізичні компоненти системи (ЦП, пам'ять, зберігання, пристрої вводу/виводу).
- Він взаємодіє з ядром Linux, яке безпосередньо спілкується з апаратним забезпеченням через драйвери пристроїв.
1.2. Ядро
- Ядро Linux — це основний компонент ОС, який відповідає за управління системними ресурсами та комунікацію з апаратним забезпеченням.
- Основні функції:
- Управління процесами: Керує створенням, плануванням та завершенням процесів.
- Управління пам'яттю: Виділяє та звільняє пам'ять для процесів та керує віртуальною пам'яттю.
- Драйвери пристроїв: Інтерфейсує з апаратними пристроями, такими як диски, клавіатури та принтери.
- Управління файловою системою: Надає доступ та організовує дані у файлах і каталогах.
- Мережеві можливості: Обробляє комунікацію між системами через мережу.
1.3. Оболонка
- Оболонка виступає як інтерфейс між користувачем і ядром.
- Вона інтерпретує команди користувача та передає їх до ядра для виконання.
Типи оболонок:
- Bash (Bourne Again Shell): Найпоширеніша та зручна оболонка.
- Zsh (Z Shell): Розширена функціональність з покращеними можливостями сценаріїв.
- C Shell (csh): Синтаксис, подібний до мови програмування C.
- Korn Shell (ksh): Поєднує функції оболонок C та Bourne.
1.4. Системні бібліотеки
- Бібліотеки надають багаторазово використовуваний код для загальних функцій, таких як робота з файлами, управління пам'яттю чи операції з GUI.
- GNU C Library (glibc) — важлива бібліотека в Linux.
1.5. Системні утиліти
- Це інструменти та утиліти на рівні користувача, які дозволяють виконувати завдання, такі як управління файлами, редагування текстів та моніторинг процесів.
- Приклади:
ls
(перелік файлів та каталогів)cp
(копіювання файлів)ps
(статус процесів)
Архітектура Linux
Перекладено з: Day 1 -Introduction to Linux