Знайомство з операційною системою Linux¶
У цьому розділі ви дізнаєтеся про дистрибутиви GNU/Linux.
Цілі: В цьому розділі ви дізнаєтеся як:
Описати особливості та можливі архітектури операційної системи.
Перерахувати історію UNIX та GNU/Linux.
Обрати вірний дистрибутив Linux, який відповідає вашим вимогам.
Пояснити філософію безкоштовного програмного забезпечення та забезпечення з відкритим кодом.
Знайти корисніть оболонки.
Загальні положення, linux, дистрибутиви
Знання:
Складність:
Час для читання: 10 хвилин
Що таке операційна система?¶
Linux, UNIX, BSD, Windows і MacOS є операційними системами.
анотація
Операційна система це набір програм, який керує доступними ресурсами комп'ютера.
У рамках цього управління ресурсами операційна система повинна:
-
Керувати фізичною або віртуальною пам'яттю.
-
Фізична пам'ять складається з панелей оперативної пам'яті та кеш-пам'яті процесора, які використовуються для виконання програм.
-
Віртуальна пам’ять – це місце на жорсткому диску (розділ swap), яке дозволяє розвантажувати фізичну пам'ять та зберігати поточний стан системи під час електричного вимкнення комп'ютера.
-
-
Перехоплювати доступ до периферійних пристроїв. Програмне забезпечення рідко має прямий доступ до обладнання (за винятком відеокарт для дуже специфічних потреб).
-
Надавати програмам належне керування завданнями. Операційна система відповідає за планування процесів, які займають процесор.
-
Захищати файли від несанкціонованого доступу.
-
Збирати інформацію про програми, які використовуються або виконуються.
Загальні положення UNIX - GNU/Linux¶
Історія¶
UNIX¶
-
1964 — 1968: MULTICS (MULTiplexed Information and Computing Service) розроблено для MIT, Bell Labs (AT&T) і General Electric.
-
1969 — 1971: Після усунення Bell (1969), а потім General Electric з проекту, два розробники, Кен Томпсон і Денніс Річі (до яких пізніше приєднався Брайан Керніган), вважаючи MULTICS надто складним, почали розробку UNIX (UNiplexed Information and Computing Service). Хоча спочатку вона була написана на асемблері, розробники UNIX з часом розробили мову B, а потім мову C (1971) і повністю переписали UNIX. Тому що вона була розроблена у 1970, датою відліку (епохи) для початку часу систем UNIX/Linux встановлено 1 січня 1970 року.
Сьогодні мова C залишається однією з найпопулярніших мов програмування. Мова низького рівня, близька до апаратного забезпечення, дозволяє адаптувати операційну систему до будь-якої архітектури машини, що має компілятор C.
UNIX — це відкрита операційна система, яка розвивається, і відіграла важливу роль в історії комп’ютерної техніки. Вона є основою для багатьох інших систем, таких як Linux, BSD, macOS тощо.
UNIX актуальна й сьогодні (HP-UX, AIX, Solaris тощо).
Проект GNU¶
-
1984: Річард Метью Столман запустив проект GNU (GNU не Unix), метою якого є створення безкоштовної та відкритої системи Unix, у якій важливіші інструменти: компілятор gcc, оболонка bash, редактор Emacs тощо. GNU - це Unix-подібна операційна система. Розробка GNU, розпочата в січні 1984 року, відома як проект GNU. Багато програм у GNU випускаються під егідою Проект GNU; ті, які ми називаємо пакетами GNU.
-
1990: власне ядро GNU, GNU Hurd, було запущено в 1990 році (ще до появи Linux).
MINIX¶
- 1987: Ендрю С. Таненбаум розробляє MINIX, спрощену UNIX, для простого навчання операційним системам. Пан Таненбаум надає вихідний код своєї операційної системи.
Linux¶
-
1991: Фінський студент, Лінус Торвальдс, створює операційну систему, яка працює на його персональному комп’ютері, і називає її Linux. Він публікує свою першу версію під назвою 0.02 на дискусійному форумі Usenet та інші розробники допомагають йому вдосконалювати систему. Термін Linux - це гра слів між ім'ям засновника, Лінусом, і UNIX.
-
1993: Створено дистрибутив Debian. Debian - це некомерційний дистрибутив спільноти. Розроблений для використання на серверах, він добре підходить для цієї ролі; однак це універсальна система, яку можна використовувати також на персональному комп'ютері. Debian є основою для багатьох інших дистрибутивів, таких як Mint або Ubuntu.
-
1994: Компанією Red Hat, яка сьогодні є провідним розповсюджувачем операційної системи GNU/Linux, створено комерційний дистрибутив Red Hat. Red Hat підтримує версію спільноти Fedora і донедавна безкоштовний дистрибутив CentOS.
-
1997: Створено робоче середовище KDE. Він заснований на бібліотеці компонентів Qt і мові розробки C++.
-
1999: Створено робоче середовище GNOME. Воно засноване на бібліотеці компонентів GTK+.
-
2002: Створено дистрибутив Arch. Його відмінною рисою є те, що він пропонує безперервний випуск (постійне оновлення).
-
2004: Компанія Canonical (Марк Шаттлворт) створила Ubuntu. Заснована на Debian, але містить безкоштовне та пропрієтарне програмне забезпечення.
-
2021: Створено Rocky Linux на основі дистрибутива Red Hat.
інформація
Суперечка щодо назви: хоча люди звикли називати операційну систему Linux словесно, Linux є виключно ядром. Ми не повинні забувати про розвиток і внесок проекту GNU у справу відкритого коду, отже! Я вважаю за краще називати це операційною системою GNU/Linux.
Частка ринку¶
Незважаючи на свою поширеність, Linux залишається відносно невідомою системою для широкої громадськості. Linux прихований у смартфонах, телевізорах, інтернет-блоках тощо. Майже 70% веб-сайтів у світі розміщено на серверах Linux або UNIX!
Операційною системою Linux оснащено десь ** 3% персональних комп’ютерів та більш ніж ** 82% смартфонів . Наприклад, операційна система Android використовує ядро Linux.
З 2018 року Linux оснащено 100% із 500 найкращих суперкомп’ютерів. Суперкомп’ютер — це комп’ютер, розроблений для досягнення максимально можливої продуктивності за допомогою технологій, відомих під час його проектування, особливо щодо швидкості обчислення.
Архітектурний дизайн¶
-
Ядро - це перший програмний компонент.
- Це серце операційної системи Linux.
- Воно керує апаратними ресурсами системи.
- Інші компоненти програмного забезпечення повинні пройти через нього, щоб отримати доступ до обладнання.
-
Оболонка - це утиліта, яка інтерпретує команди користувача та забезпечує їх виконання.
- Основні оболонки: оболонка Bourne, оболонка C, оболонка Korn і оболонка Bourne-Again (bash).
-
Програми – це програми користувача, які включають до себе, але не обмежуються:
- Інтернет браузерами
- Текстовими процесорами
- Електронними таблицями
Багатозадачність¶
Linux належить до сімейства операційних систем із розподілом часу. Він розподіляє час обробки між кількома програмами, прозоро перемикаючись від однієї до іншої для користувача. Це означає:
- Одночасне виконання декількох програм.
- Розподіл процесорного часу планувальником.
- Зменшення проблем, викликаних невдалою програмою.
- Зниження продуктивності у разі запущеної занадто великої кількості програм.
Багатокористувацький¶
Мета MULTICS полягала в тому, щоб дозволити кільком користувачам працювати з кількох терміналів (екран і клавіатура) з одного комп’ютера (на той час це було дуже дорого). Linux, натхненний цією операційною системою, зберіг цю можливість працювати з декількома користувачами одночасно і незалежно, кожен з яких має власний обліковий запис користувача з простором пам'яті та правами доступу до файлів і програмного забезпечення.
Багатопроцесорність¶
Linux може працювати з багатопроцесорними комп'ютерами або з багатоядерними процесорами.
Мультиплатформенність¶
Linux написаний на мові високого рівня, який під час компіляції можна адаптувати до різних платформ. Це дозволяє йому працювати на:
- Домашніх комп'ютерах (ПК і ноутбук)
- Серверах (дані та програми)
- Портативних комп'ютерах (смартфони та планшети)
- Вбудованих системах (автомобільні комп'ютери)
- Активних елементах мережі (маршрутизатори та комутатори)
- Побутовій техніці (телевізори та холодильники)
Відкритість¶
Linux базується на визнаних стандартах, таких як POSIX, TCP/IP, NFS і Samba, які дозволяють обмінюватися даними та послугами з іншими прикладними системами.
Філософія UNIX/Linux¶
- Розглядати все як файл.
- Переносимість вартості.
- Робити одну справу та робити це добре.
- KISS: Keep It Simple Stupid (Бути найпростішим).
- «UNIX в основному проста операційна система, але ви повинні бути генієм, щоб зрозуміти її простоту» (Dennis Ritchie)
- «Unix зручний для користувача. Він просто не вибагливий щодо того, з якими користувачами він дружній» (Steven King)
Дистрибутиви GNU/Linux¶
Дистрибутив Linux — це послідовний набір програмного забезпечення, зібраного навколо ядра Linux, готового до встановлення разом із необхідними компонентами для керування (встановлення, видалення, налаштування). Існують асоціативні або загальні дистрибутиви (Debian, Rocky) та комерційні дистрибутиви (Red Hat, Ubuntu).
Кожен дистрибутив пропонує одне або кілька декстопних середовищ і надає набір попередньо встановленого програмного забезпечення та бібліотеку додаткового програмного забезпечення. Параметри конфігурації (наприклад, параметри ядра або служб) є специфічними для кожного дистрибутива.
Цей принцип дозволяє адаптувати дистрибутиви для початківців (Ubuntu, Linux Mint...) або повністю налаштувати для досвідчених користувачів (Gentoo, Arch); дистрибутиви також можуть бути більш спритними з серверами (Debian, Red Hat) або робочими станціями (Fedora).
Робочі середовища¶
Існує багато графічних середовищ, таких як GNOME, KDE, LXDE, XFCE тощо. Кожен знайде щось для себе, а їхня ергономіка не поступається системам Microsoft чи Apple.
Чому ж так мало ентузіазму щодо Linux, коли в цій системі практично без вірусів? Чи може це бути тому, що багато редакторів (Adobe) і виробників (Nvidia) не грають у безкоштовну гру та не надають версії свого програмного забезпечення чи драйверів для GNU/Linux? Можливо, це страх змін, або труднощі з пошуком, де купити комп'ютер Linux, або занадто мало ігор, що поширюються під Linux. Принаймні це останнє виправдання не повинно бути істиною довго, з появою ігрового движка Steam для Linux.
У робочому середовищі GNOME 3 більше не використовується концепція робочого столу, а оболонка GNOME (не плутати з оболонкою командного рядка). Він служить робочим столом, інформаційною панеллю, областю сповіщень і віконним вибором. Середовище робочого столу GNOME базується на бібліотеці компонентів GTK+.
Робоче середовище KDE базується на бібліотеці компонентів Qt. Традиційно рекомендується користувачам, знайомим із середовищем Windows.
Безкоштовний / з відкритим кодом¶
Користувач операційної системи Microsoft або Mac повинен придбати ліцензію на використання операційної системи. Ця ліцензія має вартість, хоча зазвичай вона прозора (ціна ліцензії включена у вартість комп’ютера).
У світі GNU/Linux рух вільного програмного забезпечення надає переважно безкоштовні розповсюдження.
Безкоштовно не означає безкоштовно!
Відкритий вихідний код: вихідний код доступний, тому його можна переглянути та змінити за певних умов.
Безкоштовне програмне забезпечення обов’язково має відкритий код, але навпаки не вірно, оскільки програмне забезпечення з відкритим кодом відрізняється від свободи, яку пропонує ліцензія GPL.
GNU GPL (Загальна публічна ліцензія GNU)¶
GPL гарантує автору програмного забезпечення його інтелектуальну власність, але дозволяє модифікувати, розповсюджувати чи перепродавати програмне забезпечення третіми особами за умови, що вихідний код включено до програмного забезпечення. GPL — це ліцензія, яка виникла в рамках проекту GNU (GNU — це не UNIX), який відіграв важливу роль у створенні Linux.
Це означає:
- Свободу запускати програму з будь-якою метою.
- Свободу у вивченні роботи програми та адаптації її до своїх потреб.
- Свободу розповсюдження копій.
- Свободу у покращенні програми та публікації цих покращень на благо всієї спільноти.
З іншого боку, навіть продукти, ліцензовані під GPL, можуть мати вартість. Це стосується не самого продукту, а гарантії того, що команда розробників продовжуватиме працювати над ним, щоб розвивати його та усувати помилки, або навіть надавати підтримку користувачам.
Сфери використання¶
Дистрибутив Linux відмінно підходить для:
- Серверів: HTTP, електронна пошта, групове програмне забезпечення, обмін файлами тощо.
- Безпеки: шлюз, брандмауер, маршрутизатор, проксі-сервер тощо.
- Центральних комп’ютерів: банки, страхування, промисловість тощо.
- Вбудованих систем: маршрутизатори, Інтернет-приставки, SmartTV тощо.
Linux є вірним вибором для розміщення баз даних чи веб-сайтів, або як поштовий сервер, DNS чи брандмауер. Коротше кажучи, Linux може робити майже все, що пояснює кількість конкретних дистрибутивів.
Оболонка¶
Загальні положення¶
Оболонка, відома як командний інтерфейс, дозволяє користувачам надсилати команди до операційної системи. Сьогодні вона менш помітна після впровадження графічних інтерфейсів, але залишається привілейованим засобом у системах Linux, які не всі мають графічні інтерфейси та чиї служби не завжди мають інтерфейс налаштування.
Вона пропонує справжню мову програмування, включаючи класичні структури (цикли, альтернативи) і загальні складові (змінні, передача параметрів і підпрограми). Вона дозволяє створювати сценарії для автоматизації певних дій (резервне копіювання, створення користувачів, моніторинг системи тощо).
Існує кілька типів оболонок, які можна налаштувати на платформі або відповідно до уподобань користувача. Ось кілька прикладів:
- sh, стандартна оболонка POSIX
- csh, командно-орієнтована оболонка в C
- bash, Bourne-Again Shell, оболонка Linux
Функціонал¶
- Виконання команди (перевіряє подану команду та виконує її).
- Перенаправлення вводу/виводу (повертає дані у файл замість запису на екрані).
- Процес підключення (керує підключенням користувача).
- Інтерпретована мова програмування (дозволяє створювати скрипти).
- Змінні середовища (доступ до інформації, характерної для системи під час роботи).
Положення¶
Перевірте свої знання¶
Операційна система - це набір програм для управління доступними ресурсами комп'ютера:
- Так
- Ні
Операційна система необхідна для:
- Керування фізичною та віртуальною пам’яттю
- Прямого доступу до периферійних пристроїв
- Передачі процесору субпідряду для керування завданнями
- Збору інформації про програми, які використовуються
Серед цих особистостей, хто брав участь у розробці UNIX:
- Лінус Торвальдс
- Кен Томпсон
- Лайонел Річі
- Браян Керніган
- Ендрю Стюарт Таненбаум
Громадянство Лінуса Торвальдса, творця ядра Linux:
- Швецьке
- Фінське
- Норвезьке
- Фламандське
- Французьке
Який із наведених дистрибутивів є найстарішим:
- Debian
- Slackware
- Red Hat
- Arch
Ядро Linux:
- Багатозадачне
- Багатокористувацьке
- Багатопроцесорне
- Багатоядерне
- Для різних платформ
- Відкрите
Чи обов’язково вільне програмне забезпечення має відкритий код?
- Так
- Ні
Чи обов’язково програмне забезпечення з відкритим кодом є безкоштовним?
- Так
- Ні
Що з наведеного не є оболонкою:
- Jason
- Jason-Bourne shell (jbsh)
- Bourne-Again shell (bash)
- C shell (csh)
- Korn shell (ksh)