Яким чином одна ОС Linux «заснована на» Інша ОС Linux?
Переглядаючи різні смаки Linux, ви часто зустрінете фрази, такі як "Ubuntu заснований на Debian", але що саме це означає?
Сьогоднішня сесія запитань та відповідей приходить до нас люб'язно SuperUser - підрозділ Stack Exchange, групування веб-сайтів із запитаннями та відповідями на рівні спільноти..
Питання
Читач SuperUser PLPiper намагається розібратися в тому, як працюють варіанти Linux:
Нещодавно я переглядав безліч дистрибутивів Linux, щоб отримати уявлення про те, що навколо, і одна фраза, що постійно виникає, полягає в тому, що "[ця ОС] базується на [іншій ОС]". Наприклад:
- Fedora заснована на Red Hat
- Ubuntu базується на Debian
- Linux Mint базується на Ubuntu
Для когось із середовища Mac я розумію, що “OS X базується на Дарвіні”, однак, коли я дивлюся на дистрибутив Linux, я запитую: “Чи не всі вони базуються на Linux…?”
У цьому контексті, що саме означає для однієї ОС Linux на основі інша ОС Linux?
Отже, що ж це означає, коли ми говоримо про одну версію Linux, засновану на іншій версії?
Відповідь
Співробітник SuperUser kostix пропонує надійний огляд всієї системи:
Linux - це ядро - (складний) програмний продукт, який працює з апаратним забезпеченням і експортує певний інтерфейс прикладного програмування (API), а також бінарні правила щодо того, як точно використовувати його (бінарний інтерфейс додатків, ABI), доступний для програм "користувацького простору".
Debian, RedHat та інші операційні системи - повні програмні середовища, що складаються з ядра і набору програм для простору користувачів, які роблять комп'ютер корисним при виконанні розумних завдань (відправлення / отримання пошти, дозволяючи переглядати Інтернет, керувати роботом тощо).
Тепер кожна така ОС, поки надання в основному це ж програмне забезпечення (наприклад, не так багато безкоштовних програм поштового сервера або інтернет-браузерів або середовищ для робочого столу), які відрізняються підходами до цього, а також у їхніх цілях і циклах випуску.
Ці операційні системи звичайно називаються «дистрибутивами». Це, IMO, дещо неправильний термін, що випливає з того факту, що ви технічно в змозі побудувати все необхідне програмне забезпечення вручну і встановити його на цільовій машині, так що ці операційні системи поширювати пакетне програмне забезпечення, так що вам не потрібно збирати його (Debian, RedHat), або ж вони сприяють такому будівництву (Gentoo). Вони також зазвичай надають інсталятор, який допомагає встановити ОС на цільову машину.
Створення та підтримка ОС є дуже складне завдання, яке вимагає складної та складної інфраструктури (черги завантаження, створення серверів, трекер помилок, сервери архівів, програмне забезпечення списків розсилки тощо тощо) та персонал. Це, очевидно, викликає високий бар'єр для створення нової ОС з нуля. Наприклад, Debian надає ca. 37k пакетів для деяких п'яти апаратних архітектур - подивіться, скільки роботи вкладено в підтримку цього матеріалу.
Тим не менш, якщо хтось думає, що вони необхідності щоб створити нову ОС з будь-якої причини, може бути гарною ідеєю використовувати існуючих фундамент для розбудови. І саме тут операційні системи на основі на інших ОС. Наприклад, Ubuntu базується на Debian, просто імпортуючи з нього більшість пакетів і перепакувавши лише невелику частину пакунків, а також упаковуючи власні, забезпечуючи власні ілюстрації, параметри за замовчуванням, документацію тощо..
Зверніть увагу, що існують варіанти цього "заснованого на" речі. Наприклад, Debian сприяє створенню “чистих сумішей” сам по собі: дистрибутиви, які використовують Debian досить безпосередньо, і просто додають купу пакетів та інших речей, корисних лише для невеликих груп користувачів, наприклад, тих, хто працює в освіті, медицині або музиці. промисловість тощо.
Інший поворот полягає в тому, що ні все ці ОС базуються на Linux. Наприклад, Debian також надає ядра FreeBSD і Hurd. Вони мають досить маленькі групи користувачів, але так чи інакше.
Маєте щось додати до пояснення? Звучить в коментарях. Хочете прочитати більше відповідей від інших технологічних користувачів Stack Exchange? Перегляньте повний потік обговорення тут.