Как ОС Linux может быть «основана» на другой ОС Linux?

38

В последнее время я просматривал множество дистрибутивов Linux, чтобы понять, что происходит, и одна фраза, которая продолжает появляться, состоит в том, что «[эта ОС] основана на [другой ОС]». Например:

  • Fedora основана на Red Hat
  • Ubuntu основана на Debian
  • Linux Mint основан на Ubuntu

Для кого-то из среды Mac я понимаю, как «OS X основана на Darwin», однако, когда я смотрю на дистрибутивы Linux, я спрашиваю себя: «Разве они все не основаны на Linux ..?»

В этом контексте, что конкретно означает, что одна ОС Linux основана на другой ОС Linux?

однодневка
источник
17
и Дарвин основан на BSD. Вы могли бы бросить ОС NeXT inbetwixt этих двух ...: D
Келтари
12
«Red Hat основана на Fedora», что довольно неточно. Больше похоже на Fedora - это бета-тестирование элементов, которые позже использовались в RedHat.
vartec
В основном вы берете основные компоненты дистрибутива, меняете то, что хотите, (программное обеспечение, логотипы, имена, что угодно ...), и теперь у вас есть «вкус» или дистрибутив, основанный на другом «дистрибутиве»
TheXed
2
Самый простой способ - взять именно тот дистрибутив Linux, который вам нравится, и изменить одну строку, где-то, может быть, просто /etc/motd, и вуаля, у вас есть свой новый дистрибутив Linux. Как ОС Linux не может быть основана на существующей. Это сложный вопрос.
Уоррен П
4
Я думаю, что ваш ответ уже дан ответ. Тем не менее, вот хорошее графическое представление истории всех дистрибутивов Linux, которые находятся вокруг: upload.wikimedia.org/wikipedia/commons/1/1b/…
Dohn Joe

Ответы:

59

Linux - это ядро , Debian - это дистрибутив этого ядра и набор программного обеспечения для реального взаимодействия с системой.

Теперь я могу взять Debian и изменить логотип на экране загрузки на свой собственный логотип, и тогда мой дистрибутив основан на Debian (очень примитивно). Обычно корректировки, сделанные в производном распределении, являются более существенными.

Дело в том, что если вы хотите что-то изменить в дистрибутиве, вы можете просто взять его, изменить по своему вкусу, а затем опубликовать свой собственный дистрибутив на основе существующего (при условии соблюдения всех лицензий).

Der Hochstapler
источник
10
Точный, но, возможно, слишком упрощенный?
Остин Т Френч
... конечно, на практике производное распределение вносит некоторые важные видимые для пользователя изменения, обычно в конкретной области. Например, Ubuntu фокусируется на полировке рабочего стола. Но все же большинство пакетов в Ubuntu просто копируются из Debian.
Ян Худек
2
@AthomSfere: Извините, я был на моем телефоне, когда писал сообщение. Я бы улучшил это сейчас, но похоже, что другие ответы охватили все детали.
Der Hochstapler
8
@OliverSalzburg Вы разговаривали по телефону? Вы очень зависимы :-D
Люк М
9
@AthomSfere KISS также можно применять к ответам!
Jsedano
32

Linux - это ядро - (сложная) часть программного обеспечения, которая работает с оборудованием и экспортирует определенный интерфейс прикладного программирования (API) и бинарные соглашения о том, как точно его использовать (Application Binary Interface, ABI), доступный для космические "приложения.

Debian , RedHat и другие - это операционные системы - полные программные среды, состоящие из ядра и набора программ пользовательского пространства, которые делают компьютер полезным при выполнении разумных задач (отправка / получение почты, позволяя просматривать Интернет, управлять робот и т. д.).

Теперь каждая такая ОС, хотя и предоставляет в основном одно и то же программное обеспечение (например, существует не так много бесплатных почтовых серверных программ, интернет-браузеров или сред рабочего стола), различается подходами к этому, а также их заявленными целями и циклами выпуска.

Как правило, эти ОС называются «дистрибутивами». Это, IMO, несколько неправильный термин, вытекающий из того факта, что вы технически способны собрать все необходимое программное обеспечение вручную и установить его на целевой машине, поэтому эти ОС распространяют упакованное программное обеспечение, так что вам не нужно собирать это (Debian, RedHat) или они облегчают такое построение (Gentoo). Они также обычно предоставляют установщик, который помогает установить ОС на целевой компьютер.

Создание и поддержка ОС - это очень сложная задача, требующая сложной и сложной инфраструктуры (очереди загрузки, серверы сборки, системы отслеживания ошибок и архивирования, программное обеспечение для рассылки и т. Д. И т. Д.) И персонала. Это, очевидно, создает высокий барьер для создания новой, с нуля ОС. Например, Debian предоставляет ок. 37 тыс. Пакетов для пяти аппаратных архитектур - поймите, сколько работы потрачено на поддержку этих вещей.

Тем не менее, если кто-то считает, что по какой-либо причине ему необходимо создать новую ОС, может быть хорошей идеей использовать существующую основу для дальнейшего развития. И именно здесь появляются ОС на основе других ОС. Например, Ubuntu основывается на Debian, просто импортируя из него большинство пакетов и переупаковывая только небольшое их подмножество, а также упаковывая свои собственные, предоставляя свои собственные рисунки, настройки по умолчанию, документацию и т. Д.

Обратите внимание, что есть варианты этого «на основе» вещи. Например, Debian способствует созданию «чистых смесей»: дистрибутивов, которые используют Debian довольно напрямую, и просто добавляют набор пакетов и другой материал, полезный только для довольно небольших групп пользователей, например, работающих в сфере образования, медицины или музыки. промышленность и т. д.

Другой поворот заключается в том, что не все эти ОС основаны на Linux. Например, Debian также предоставляет ядра FreeBSD и Hurd. У них довольно крошечные группы пользователей, но в любом случае.

kostix
источник
8

Red Hat, Debian и т. Д. Являются дистрибутивами («дистрибутивами») Linux.

Имейте в виду, что технически Linux - это только ядро, которое является частью работающей и полезной системы.

Вам понадобятся базовые утилиты, решения о том, где что-то находится в системе, механизм установки и обновления программного обеспечения, а также соглашения / стандарты (например, каталог, куда идут программы), чтобы связать это вместе.

Большинство версий классических утилит GNU часто считаются базовыми во многих дистрибутивах, и поэтому Debian, например, называет это GNU / Linux. Хотя со всем остальным, есть много вариантов. А поскольку Linux, утилиты GNU и многие другие приложения, работающие под Linux, являются свободными программами, любой может создать новый дистрибутив в любое время. Включая производные от существующего дистрибутива, если этот дистрибутив не содержит ничего защищенного авторским правом или частной собственностью.

Изображения и логотипы часто являются товарными знаками / авторскими правами и, как правило, не могут напрямую использоваться в производном дистрибутиве, если вы не подчиняетесь положениям и условиям того, кто им владеет. Такое же программное обеспечение обычно может быть, если оно лицензировано по лицензии GPL или GPL.

Одна из основных особенностей дистрибутивов - это менеджер пакетов или метод, который поддерживает, тестирует и распространяет программное обеспечение. Производные дистрибутивы обычно совместимы с их «восходящими» менеджерами пакетов. Ничто не мешает вам вручную установить программу в любом дистрибутиве Linux.

Как правило, это означает, что вы будете устанавливать программное обеспечение одинаково, используя тот же менеджер пакетов, и расположение исполняемых файлов и файлов конфигурации будет в одном месте.

LawrenceC
источник
7

С Linux есть дистрибутивы или дистрибутивы. Буквально сотни из них.

Linux является открытым исходным кодом, поэтому любой (или любая группа или компания) может изменить любую часть ОС, которую он пожелает. Вот почему некоторые версии имеют разные установщики ( .debпротив RPM или просто tar) и разные команды ( apt-getпротив yum).

Большинство дистрибутивов выбирают целевое или специфическое использование и развиваются вокруг этого.

Например, Redhat и его родственники ориентированы на сервер. Большая часть ОС предназначена для стабильной или быстрой работы.

Предполагается, что Debian проще в использовании, поэтому он поддерживает .debфайлы, являющиеся простыми установочными пакетами.

Ubuntu взяла базу Debian и добавила код и пакеты, чтобы сделать ее хорошим первым дистрибутивом Linux.

Затем Mint удалил часть кода Ubuntu, чтобы сделать более быструю операционную систему, похожую на Ubuntu, но более традиционную для настольных компьютеров, когда Ubuntu сменила менеджер рабочего стола на Unity.

Вот подробное семейное дерево GNU / Linux: http://upload.wikimedia.org/wikipedia/commons/9/9a/Gldt1009.svg

Остин Т Френч
источник
1
AFAIK, sudoиспользуется везде. yumэквивалентно apt-getилиaptitude
Иската
1
@Izkata Да, извини. Это было какое-то время, и кофе был слабым этим утром;)
Остин Т Френч
1
Вы путаете ядро ​​(Linux) с остальным программным обеспечением, объединенным в дистрибутивы.
Matteo Italia
2

Расширяя приведенные выше ответы. Linux - это просто ядро, большинство команд системного уровня (gcc, grep, bison) изначально были написаны проектом GNU, большинство приложений пользовательского уровня (XFCE, Apache, XMMS) написаны сторонними разработчиками.

Когда в первые дни обычно создавался дистрибутив, ядро ​​было связано с командами системного уровня и подмножеством пользовательских приложений и серверных компонентов. Это все еще актуально и сегодня, но многие из новых дистрибутивов не хотят повторять усилия, чтобы заставить все играть хорошо вместе, поэтому они используют базовый дистрибутив, такой как Debian, CentOS, Slackware, и добавляют или вычитают пользовательские приложения, такие как GNOME, KDE. , LXDE и т. Д. Они также могут создавать собственные меню и вставлять свои собственные логотипы и фоны в дистрибутив (SUSE, PCLinux и т. Д.). Они могут пойти дальше и создать специальные приложения для распространения, такие как менеджеры пакетов или пользовательские интерфейсы.

Поэтому, когда вы говорите, например, что Ubuntu основан на Debian, вы технически правы, но в наши дни было бы лучше сказать, особенно в случае с Ubuntu, что он является производным от Debian, поскольку изменения в Debian могут или не могут найти свой путь в Ubuntu.

Это должно помочь немного визуализировать то, о чем я говорю, это показывает, как несколько установленных дистрибутивов были разделены на другие. Хотя и не на 100% точный, он дает представление.

http://photos1.blogger.com/blogger/3370/2500/1600/GNULinuxupdatedw4.0.jpg

Насколько мне известно, это изображение на 100% точно и является временной шкалой всех дистрибутивов Linux и показывает, откуда они пришли. В наши дни существует всего несколько небольших, менее шести распределений, которые могут проследить свои корни до самого начала. Согласно этой карте есть только 2, Redhat и Debian, даже мой любимый Slackware не был оригиналом.

http://www.techjini.com/blog/wp-content/uploads/2011/10/linuxdistrotimeline-7.2.png

Мэтти
источник
1

Mac OS X основана на Darwin в том смысле, что она работает поверх Darwin. Это, так сказать, зависимость во время выполнения от Дарвина.

Ubuntu основана на Debian в том смысле, что это производная работа.

Если вы возьмете пакет и систему сборки Debian, пакеты и сценарии Debian и все такое, и создадите свой собственный дистрибутив, похожий на Debian, то у вас есть что-то, основанное на Debian.

Пользователи вашей системы обнаружат большое сходство с Debian (например, как система устанавливается, как обновляются пакеты или как конфигурация системы определяется /etc).

Debian также основан на Debian: последний выпуск Debian основан на предыдущем выпуске Debian.

Kaz
источник
0

Linux - это только основная часть, которая дает вам доступ к аппаратному обеспечению компьютера. В качестве слоя обычно используется библиотека GNU C, в которую входят все команды и программное обеспечение, которыми вы привыкли пользоваться (включая любой графический интерфейс пользователя).

Что происходит в мире, где программное обеспечение не заблокировано какой-либо компанией, разные группы собирают разные наборы программного обеспечения, основанные на двух основных компонентах: ядре Linux и GNU C Library. Эти два в значительной степени найдены в каждой системе.

В разговорной речи мы называем все эти операционные системы «Linux» или «на основе Linux», и все они очень похожи из-за соглашения по различным стандартам.

С другой стороны, ядро ​​Darwin в OS X на самом деле разработано на основе BSD (старше Linux).

Angelo
источник