Linux debian что это

Обновлено: 06.07.2024

Debian (ˈdɛbiən) — операционная система, состоящая из свободного ПО с открытым исходным кодом. В настоящее время Debian GNU/Linux — один из самых популярных и важных дистрибутивов GNU/Linux [Источник 1] , в первичной форме оказавший значительное влияние на развитие этого типа ОС в целом. Также существуют проекты на основе других ядер: Debian GNU/Hurd, Debian GNU/kFreeBSD и Debian GNU/kNetBSD. Debian может использоваться в качестве операционной системы как для серверов, так и для рабочих станций.

Debian имеет наибольшее среди всех дистрибутивов хранилище пакетов — готовых к использованию программ и библиотек, — и если даже не по их числу, то по числу поддерживаемых архитектур: начиная с ARM, используемой во встраиваемых устройствах, наиболее популярных x86 и PowerPC, новых 64-разрядных AMD, и заканчивая IBM S/390, используемой в мейнфреймах. Для работы с хранилищем разработаны разные средства, самое популярное из которых — Advanced Packaging Tool (APT).

Название «Debian» составлено из имён основателя проекта Яна Мёрдока (Ian Murdock) и его подруги (впоследствии — жены, ныне — бывшей) Дебры Линн (Debra Lynn).

Содержание

История

Создание Debian было начато в августе 1993 года Яном Мёрдоком. Он руководствовался желанием создать дистрибутив, процесс рождения которого будет, с одной стороны, открытым и свободным в духе GNU/Linux, и одновременно исключительно тщательным и добросовестным. Сначала над проектом работала небольшая сплочённая группа хакеров мира свободного ПО, которая постепенно разрасталась, став большим организованным сообществом разработчиков и пользователей [Источник 2] .

Особенности

Debian отличается широким спектром возможностей. В текущую стабильную версию включено свыше тридцати семи тысяч пакетов программ для десяти архитектур на основе ядра Linux (от Intel/AMD 32-bit/64-bit, широко применяемых в персональных компьютерах, до ARM, обычно используемых во встраиваемых системах и мейнфреймах IBM System z) и также двух архитектур на основе ядра FreeBSD (kfreebsd-i386 and kfreebsd-amd64).

Отличительными чертами Debian являются: система управления пакетами Advanced Packaging Tool (APT), жёсткая политика по отношению к пакетам, репозитории с огромным их количеством, а также высокое качество выпускаемых версий. Это сделало возможным простое обновление между версиями, а также автоматическую установку и удаление пакетов. Именно в Дебиане впервые был введён как единый стандарт механизм выбора предпочтительного ПО среди нескольких вариантов — Alternatives.

При стандартной установке Debian используется среда рабочего стола GNOME, куда включён набор популярных программ, таких как LibreOffice, Firefox, почтовая программа Evolution, программы для записи CD/DVD, проигрыватели музыки и видео, программы для просмотра и редактирования изображений и программы для просмотра документов в формате PDF. Также есть образы Live-CD, собранные с KDE, Xfce и LXDE. Установочные диски — в количестве пяти (Lenny) или восьми (Squeeze) DVD или более тридцати CD — содержат все доступные и не обязательно необходимые для стандартной установки пакеты. Для метода установки по сети используется CD, который меньше обычного установочного CD/DVD. Он содержит только то, что необходимо для запуска установщика и скачивания пакетов, выбранных в процессе установки посредством APT. Образы CD/DVD можно свободно скачать через BitTorrent, jigdo или купить у одного из поставщиков компакт-дисков Debian [Источник 3] . Также возможна установка с USB-накопителя. Существуют специальные наборы программ Debian Pure Blend, ориентированные на группы пользователей с различным практическим опытом и интересами: Debian Junior для детей от 1 до 99, Skolelinux для школ, Debian Science с группировкой по наукам, Debian-Med для практического и научного использования в сфере здравоохранения и другие.

Выпуски

Выпуски Debian разделены на пять веток:

  • oldstable (oldstable), содержащую пакеты предыдущего стабильного дистрибутива; может одновременно являться неофициальным LTS;
  • стабильную (stable), содержащую пакеты, вошедшие в последний официальный дистрибутив (обновление пакетов в нём происходит только для устранения уязвимостей);
  • тестируемую (testing), из которой будет формироваться следующий стабильный дистрибутив;
  • нестабильную (unstable, sid), содержащую новые версии пакетов, которые готовятся к помещению в тестируемую ветку;
  • экспериментальную (experimental), не являющуюся полноценной веткой — в ней находятся пакеты, требующие тщательного тестирования или которые повлекут серьёзные изменения в дистрибутиве.

Стабильные и тестируемая версии операционной системы Debian называются именами персонажей мультфильма «История игрушек». Нестабильная версия дистрибутива Debian постоянно носит кодовое имя Сид (sid), по имени отрицательного персонажа из мультфильма, который ломал игрушки.

История выпусков Debian:

Версия Кодовое имя Количество поддерживаемых архитектур Количество пакетов Дата выхода Окончание срока поддержки Окончание срока длительной поддержки
Выпуск Текущая Оригинальное На русском
0.93R6 1 26 октября 1995 года
1.1 Buzz Базз 1 474 17 июня 1996 года 1996 год
1.2 Rex Рекс 1 848 12 декабря 1996 года 1996 год
1.3 Bo Бо 1 974 5 июня 1997 года 1997 год
2.0 Hamm Хэмм 2 ≈ 1500 24 июля 1998 года 1998 год
2.1 Slink Слинк 4 ≈ 2250 9 марта 1999 года декабрь 2000 года
2.2 Potato Потэйто 6 ≈ 3900 15 августа 2000 года апрель 2003 года
3.0 3.0_r6 Woody Вуди 11 ≈ 8500 19 июля 2002 года август 2006 года
3.1 3.1_r8 Sarge Сарж 11 ≈ 15400 6 июня 2005 года апрель 2008 года
4.0 4.0_r9 Etch Этч 11 ≈ 18000 8 апреля 2007 года февраль 2010 года
5.0 5.0.10 Lenny Ленни 12 ≈ 23000 14 февраля [[2009 года февраль 2012 года
6.0 6.0.10 Squeeze Сквиз 9+2 ≈ 29000 6 февраля 2011 года 31 мая 2014 года 29 февраля 2016 года
7.0 7.11 Wheezy Уизи 11+2 ≈ 37500 4 мая 2013 года февраль 2016 31 мая 2018 года
8.0 8.7.1 Jessie Джесси 10 > 43000 из ≈ 20100 исходных 25 апреля 2015 года май 2018 апрель/май 2020
9.0 Stretch Стрэтч 10 неизвестно будет объявлено позднее будет объявлено позднее будет объявлено позднее
10.0 Buster Бастер неизвестно неизвестно будет объявлено позднее будет объявлено позднее будет объявлено позднее
11.0 Bullseye Булзай неизвестно неизвестно будет объявлено позднее будет объявлено позднее будет объявлено позднее

657582c73ef1c145881fcbc9e3207dba.jpg

Поддерживаемые архитектуры


Текущая стабильная версия официально портирована на следующие архитектуры:
i386 — архитектура x86, разработана для Intel-совместимых 32-битных процессоров
amd64 — архитектура x86-64 разработана для Intel/AMD 64-битных процессоров
armel — архитектура ARM для Risc PC и различных встраиваемых систем
armhf — архитектура ARM седьмой версии
powerpc — архитектура PowerPC
ia64 — архитектура Intel Itanium (IA-64)
mipsel — архитектура MIPS с порядком байтов от младшего к старшему
mips — архитектура MIPS с порядком байтов от старшего к младшему
s390x — архитектура IBM System z
arm64 — архитектура ARM, 64-бита (AArch64)
ppc64el — архитектура Motorola/IBM PowerPC

Существуют также неофициальные версии для ряда других архитектур [Источник 4] , некоторые из которых активно разрабатываются, но пока являются лишь частью нестабильного выпуска.

Стадии разработки

Пакеты программного обеспечения (ПО), которые находятся в разработке, изначально попадают или в дистрибутив проекта под названием unstable (также известен как sid), или в репозиторий experimental. Версии ПО в unstable достаточно стабильны, чтобы увидеть свет по мнению их разработчиков, но они уже содержат специфичные изменения, внесённые в рамках проекта Debian, в том числе информацию для создания пакета дистрибутива. Эти изменения могут быть новыми и не тестированными. ПО, не готовое к выпуску, обычно размещается в experimental.

После того как версия ПО пробудет в unstable некоторое количество времени (в зависимости от критичности изменений), пакет автоматически переходит в дистрибутив testing. Переход происходит только если пакет не содержит критичных ошибок, и все остальные необходимые пакеты удовлетворяют условиям перехода в testing.

Так как обновления пакетов Debian между официальными выпусками не включают в себя новую функциональность, некоторые разработчики используют пакеты из unstable и experimental для новых версий своих продуктов. Однако эти дистрибутивы тестируются не так тщательно как stable и могут не получать вовремя важные исправления безопасности. Иногда такое обновление работающих пакетов из unstable может серьёзно нарушить работу ПО.

После того как пакеты в testing дозрели и цели, поставленные перед следующим выпуском, достигнуты, testing становится следующей стабильной версией. Последний стабильный выпуск Debian под названием «Jessie» получил порядковый номер 8.0 25 апреля 2015 года. Следующий выпуск 9.0 имеет кодовое имя «Stretch».

Условия

Общественный договор Debian, впервые ратифицированный в 1997 году и обновлённый в 2004, определяет базовые принципы существования проекта и осуществления разработки, а также включает в себя критерии Debian по определению свободного программного обеспечения. Он позволяет утверждать, что Debian GNU/Linux является одной из наиболее свободных из популярных операционных систем. Впоследствии критерии Debian по определению свободного программного обеспечения были использованы в качестве основы определения Open Source.

Конституция Debian, впервые принятая в 1998 году и обновлённая несколько раз (в настоящее время актуальна версия 1.5, принятая 9 января 2015 года) определяет статусы разработчиков, лидера проекта, технического комитета, секретаря, а также имущественные отношения проекта Debian и стандартную процедуру принятия решений.

В 2014 году принят Кодекс поведения Debian, описывающий стандарты взаимоотношений между участниками проекта. Кодекс предписывает быть уважительным, добросовестным, открытым, помогать остальным участникам проекта и пользователям.

Debian и FSF

Критерии Debian по определению свободности не полностью совпадают с критериями Фонда свободного ПО (Free Software Foundation, FSF). Например, в проекте Debian принято считать несвободными лицензию GNU FDL, если она используется с неизменяемыми разделами, и лицензию Free Art, которые FSF считает свободными лицензиями для документации и произведений искусства. В то же время Debian так же, как и OSI, считает свободной Artistic License 1.0, которую FSF считает неудачно написанной, и потому несвободной.

FSF не допускает значительной помощи в использовании собственнического ПО, а Debian предоставляет для пользователей несвободного ПО место на серверах, списки рассылки и др. В то же время FSF не требует полной свободы для нефункционального содержимого (например, графика в игре или политическая речь), а Debian помещает такое несвободное содержимое в раздел с остальными несвободными компонентами.

Иногда в Debian проводится голосование с целью решить, что делать с несвободными компонентами.

  • В 2004 году состоялось голосование о прекращении поддержки раздела с несвободным ПО к следующему выпуску, в результате раздел оставлен.
  • В 2006 году — о решении проблемы firmware без исходного кода (блоб) в ядре, и дате выпуска Etch — выпуск не отложен.
  • В 2008 году — о решении проблемы firmware без исходного кода и дате выпуска Lenny — считать блобы не нарушающими GPL, пока не доказано обратное.
  • В декабре 2010 года было объявлено, что firmware (отдельно под свободными и несвободными лицензиями) выделены из ядра в отдельные пакеты.

Из‐за этих различий некоторые приверженцы свободного ПО считают, что операционные системы Debian недостойны звания свободных и вместо них поддерживают gNewSense.

Дистрибутивы, основанные на Debian

Debian и дистрибутивы, основанные на нём (более 100), используют формат пакетов .deb и менеджер пакетов dpkg.

Ветвь разработки Дистрибутив
Stable TAILS, MEPIS Linux, Kanotix, CrunchBang Linux, Floppix, DoudouLinux, Linux Mint Debian Edition
Testing Ubuntu LTS, MEPIS Linux, antiX, Parsix GNU/Linux, SparkyLinux
Unstable Ubuntu, aptosid, Semplice Linux
Неизвестно Damn Small Linux, Xandros, Knoppix, BackTrack Linux (он же Kali Linux), Linspire, gnuLinEx, Vyatta и другие

Debian Live

Live CD с операционной системой Debian загружается со сменного носителя (CD, DVD, USB-накопитель и т. д.) или по сети c помощью технологии netboot без установки на жёсткий диск. Это позволяет пользователям ознакомиться с операционной системой перед её установкой или использовать в качестве загрузочного диска. Созданы LiveCD для восстановления после сбоев и стандартные с графическими оболочками GNOME, KDE Plasma Workspaces, Xfce и LXDE для нескольких архитектур. Debian LiveCD также предоставляют возможность установки на жёсткий диск. Большинство существующих стандартных ISO-образов для Squeeze не подходит для CD типа «700MB». С помощью технологии Debian Live были созданы различные, в том числе маленькие Live CD, со специфическими настройками и составом программного обеспечения.

Поговорим о Debian и Ubuntu. И там, и там можно использовать команды apt-get для управления приложениями. Оба дистрибутива поддерживают установку DEB-пакетов. Часто, читая статьи про Linux, можно видеть, что для Debian и Ubuntu подходят одни и те же инструкции по установке каких-то программ.

Чем же, при такой близости друг к другу, различаются эти дистрибутивы?



Для начала надо сказать, что Debian и Ubuntu принадлежат одном и тому же семейству Linux-дистрибутивов. А именно — Debian — это исходный дистрибутив, созданный в 1993 году Иэном Мёрдоком. А дистрибутив Ubuntu, основанный на Debian, создал в 2004 году Марк Шаттлворт.

«Дистрибутив Ubuntu основан на Debian», — что это значит?

Хотя и существуют сотни дистрибутивов Linux, лишь немногие из них являются независимыми, то есть, созданными с чистого листа. Среди крупнейших независимых дистрибутивов можно отметить Debian, Arch Linux, Red Hat.

Дистрибутив Ubuntu основан на Debian. Это значит, что Ubuntu использует тот же механизм работы с пакетами (APT), что и Debian, и то, что в Ubuntu применяется очень много пакетов и библиотек из репозиториев Debian. В качестве базы для Ubuntu используется инфраструктура Debian.


Базой для Ubuntu является Debian

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

Различия между Ubuntu и Debian

Итак, ОС Ubuntu построена на базе архитектуры и инфраструктуры Debian, она использует те же DEB-пакеты, что и Debian.

Значит ли это, что пользоваться Ubuntu — это то же самое, что и пользоваться Debian? Не совсем. Существует множество дополнительных факторов, которые отличают один дистрибутив от другого.

Обсудим эти факторы и, таким образом, сравним Ubuntu и Debian. Прежде чем мы начнём — прошу помнить о том, что некоторые сравнения применимы к настольному варианту ОС, а некоторые — к серверному.

▍1. Цикл выпуска

Существует два вида выпусков Ubuntu — LTS ( Long Term Support, «поддержка в течение длительного периода») и обычные. LTS-выпуски выходят каждые два года, они поддерживаются в течение 5 лет. При обновлении системы у пользователя есть возможность обновиться до следующего доступного LTS-выпуска. Такие выпуски считаются более стабильными, чем обычные.

Каждые шесть месяцев выходят обычные выпуски Ubuntu, не относящиеся к категории LTS. Их поддержка осуществляется лишь в течение девяти месяцев, но в них имеются более новые, в сравнении с последним LTS-выпуском, версии ПО и возможности. Когда заканчивается жизненный цикл используемого обычного выпуска — нужно обновиться до следующей версии Ubuntu.

В результате у того, кто пользуется Ubuntu, учитывая особенности выхода её выпусков, есть возможность выбирать между стабильностью и новыми возможностями.

А вот у Debian имеется три вида выпусков: стабильные (Stable), тестируемые (Testing) и нестабильные (Unstable). Нестабильные выпуски предназначены для «полевых» испытаний, для реальной работы ими лучше не пользоваться.

А тестируемые выпуски не так уж и нестабильны. Соответствующая ветка используется для подготовки следующего стабильного выпуска. Некоторые пользователи Debian выбирают именно Testing-выпуски для того чтобы быстрее других получить доступ к новым возможностям.

И наконец — скажем пару слов о стабильных выпусках Debian. Это — основные выпуски Debian. Они могут не отличаться наличием в них самого нового ПО или самых новых возможностей, но, если говорить о стабильности, то можно сказать, что они исключительно стабильны.

Новый стабильный выпуск выходит раз в два года. Такие выпуски поддерживаются в течение трёх лет. После этого нужно обновляться до нового стабильного выпуска.

▍2. Свежесть программного обеспечения


Команда apt-cache policy

Ориентированность ОС Debian на стабильность означает то, что разработчики системы не всегда стремятся к тому, чтобы включать в неё самые свежие версии программного обеспечения. Например, в самой свежей Debian 11 используется GNOME 3.38, а не последняя GNOME 3.40.

То же самое касается и другого ПО — вроде GIMP, LibreOffice и так далее. Это — тот компромисс, на который вынужден идти тот, кто выбирает Debian. Именно поэтому в сообществе Linux популярна шутка «Debian stable = Debian stale», намекающая на то, что стабильная Debian — это Debian не первой свежести.

Выпуски Ubuntu LTS тоже нацелены на стабильность. Но в них обычно используются более актуальные, чем в Debian, версии популярного ПО.

Стоит обратить внимание на то, что то же самое справедливо и для некоторых программ, устанавливаемых из репозиториев, поддерживаемых разработчиками ОС. В результате, например, если вам нужна самая последняя версия Docker — можно добавить репозиторий Docker и в Debian, и в Ubuntu.

В целом же можно отметить, что в стабильных выпусках Debian обычно используются более старые версии ПО, чем в сравнимых выпусках Ubuntu.

▍3. Доступность программного обеспечения

И Debian, и Ubuntu имеют огромные репозитории программного обеспечения. Но у Ubuntu есть ещё и PPA (Personal Package Archive). Благодаря PPA процедура установки более новых программ или свежих версий уже имеющихся программ немного облегчается.


Использование команды add-apt-repository

Использовать PPA можно и в Debian, но это не так удобно, как в Ubuntu. В Debian это обычно сопряжено с некоторыми проблемами.

▍4. Поддерживаемые платформы

Доступны варианты дистрибутива Ubuntu для 64-битных платформ x86 и ARM. В рамках проекта больше не выпускаются 32-битные образы ОС.

А Debian, с другой стороны, поддерживает и 32-битные и 64-битные архитектуры. Кроме того, Debian поддерживает ещё и 64-битную архитектуру ARM (arm64), и ARM EABI (armel), и ARMv7 (EABI hard-float ABI, armhf), и 32-битную архитектуру MIPS с обратным порядком байтов (mipsel), и 64-битную архитектуру MIPS с обратным порядком байтов (mips64el), и 64-битную архитектуру PowerPC с обратным порядком байтов (ppc64el), и IBM System z (s390x).

В результате — неудивительно то, что Debian называют «универсальной операционной системой».

▍5. Установка

Установка Ubuntu гораздо проще, чем установка Debian. И я, говоря это, не шучу. Установка Debian может вызвать сложности даже у пользователей Linux среднего уровня подготовки.

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

Есть и особые ISO, содержащие код подобных прошивок, но для того чтобы их найти — надо знать где искать. В результате тот, кто этого не знает, может столкнуться с неприятным сюрпризом.


Не самая дружелюбная процедура самостоятельной загрузки прошивки в Debian

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

Кроме того, установщик Debian выглядит устаревшим, чего не скажешь об установщике Ubuntu. Установщик Ubuntu, кроме того, распознаёт другие ОС, установленные на диске, и предлагает пользователю возможность установки Ubuntu совместно с уже установленными системами (с возможностью сформировать конфигурацию двойной загрузки). А вот исследуя установку Debian я ничего такого не заметил.


Установка Ubuntu проходит гораздо приятнее, чем установка Debian

▍6. Встроенная поддержка различного аппаратного обеспечения

ОС Debian, как уже было сказано, ориентирована, преимущественно на FOSS (Free and Open Source Software, свободное и открытое программное обеспечение). Это означает, что ядро, предоставляемое Debian, не содержит драйверов и прошивок с закрытым кодом.

Это не значит, что такие драйверы и прошивки нельзя заставить работать в Debian. Всё дело в том, что пользователю придётся самостоятельно добавлять или включать соответствующие репозитории и вручную устанавливать то, что ему нужно. Это может, особенно у новичков, отбить желание пользоваться Debian.

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

▍7. Выбор окружения рабочего стола

В Ubuntu, по умолчанию, используется специально настроенное окружение рабочего стола GNOME. Поверх него можно установить другое окружение, или выбрать какой-то вариант Ubuntu с другим окружением рабочего стола — вроде Kubuntu (там используется KDE) или Xubuntu (Xfce).

В Debian тоже, по умолчанию, устанавливается GNOME. Но установщик даёт пользователю возможность самому выбрать окружение рабочего стола.


Выбор окружения рабочего стола при установке Debian

С сайта Debian можно скачать образы, рассчитанные на установку определённого окружения рабочего стола.

▍8. Игры

В последнее время ситуация с играми в Linux, в целом, улучшилась, что произошло благодаря Steam и Proton. Но возможность запуска игр, конечно, сильно зависит и от аппаратного обеспечения.

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

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

▍9. Производительность

Если говорить о производительности, то чёткого ответа на вопрос о том, что быстрее — Ubuntu или Debian — нет. Причём, это справедливо и для настольных систем, и для серверов. И та и другая операционные системы популярны как на настольном, так и на серверном фронтах.

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

▍10. Сообщество и поддержка

Debian — это истинный продукт трудов сообщества разработчиков. Всё, что касается управления этим проектом, находится в ведении членов сообщества.

За Ubuntu стоит компания Canonical. Но это — не тот проект, который поддерживает исключительно некая корпорация. Вокруг Ubuntu тоже сформировалось сообщество разработчиков. Но окончательные решения по любым вопросам, касающимся Ubuntu, принимает именно Canonical.

Если же говорить о поддержке, то существуют специализированные форумы, на которых можно получить помощь и по Ubuntu, и по Debian.

Canonical, кроме того, предлагает профессиональную поддержку своим корпоративным клиентам. Разработчики Debian такой поддержки не предлагают.

Итоги

И Debian, и Ubuntu — это отличный выбор как для настольного компьютера, так и для сервера. Эти ОС используют менеджер пакетов apt и DEB-пакеты, и, в результате, дают своим пользователям очень похожие возможности.

Но для эффективного использования Debian нужен некоторый опыт. Особенно — если речь идёт о настольном варианте ОС. Если вы только начинаете осваивать мир Linux — то вам лучше будет остановить свой выбор на Ubuntu. Я полагаю, что новичкам, прежде чем перейти к Debian, нужно наработать некоторый опыт и познакомиться с Linux в целом.

Нельзя сказать, что знакомство с Linux нельзя начать с Debian, но такое начало, вероятнее всего, станет для новичка серьёзным испытанием.

Как вы выбираете дистрибутивы Linux для настольных компьютеров и для серверов?

1.2. Что такое Debian GNU/Linux?

Debian GNU/Linux — это один из дистрибутивов операционной системы Linux с большим количеством пакетов.

самодостаточен : сейчас в Debian входит более 58000 пакетов программ. Пользователи могут выбирать нужные пакеты для установки; для этого в Debian есть специальный инструмент. Список и описания входящих в Debian пакетов можно найти на любом из серверов-зеркал Debian.

свободен для использования и дальнейшего распространения : для участия в его распространении и разработке не требуется членства или оплаты. Все пакеты, которые формально являются частью Debian GNU/Linux, свободны для дальнейшего распространения обычно на условиях универсальной общественной лицензии GNU (GNU General Public License).

В FTP-архивах Debian содержится ещё приблизительно 930 пакетов программ (в разделах non-free и contrib ), которые распространяются на специальных условиях, определённых в каждом пакете.

динамичен : благодаря усилиям примерно 1343 добровольцев, постоянно работающих над улучшением существующего и над добавлением нового кода, Debian быстро развивается. FTP-архивы обновляются дважды в день.

Большинство пользователей Linux работают с одним из дистрибутивов Linux, таким же как и Debian GNU/Linux. В принципе, пользователь может взять ядро Linux из Интернет или ещё откуда-нибудь и собрать его сам. Таким же образом он может найти исходный код многих приложений, собрать программы и установить их на своей системе. В случае сложных приложений это не только может отнять много времени, но и чревато ошибками. Чтобы избежать этого, пользователи часто используют операционную систему и пакеты приложений, предлагаемые одним из распространителей Linux. Разные распространители (дистрибьюторы) Linux предлагают разный набор программного обеспечения (ПО), протоколы и методы упаковки, установки и сопровождения пакетов приложений в пользовательских системах, включая инструментарий для установки и управления, документацию и другие вещи.

Debian GNU/Linux — это результат усилий добровольцев по созданию свободной, высококачественной Unix-совместимой операционной системы с полным набором приложений. Идея свободной Unix-подобной системы исходит от проекта GNU, и многие приложения Debian GNU/Linux, сделавшие дистрибутив таким удобным, были разработаны в рамках проекта GNU.

В Debian термин свободное используется в значении GNU (см. Критерии Debian по определению Свободного ПО). Когда мы говорим о свободном ПО, мы имеем в виду свободу, а не цену. Свободное ПО предполагает, что у вас имеется свобода распространять копии свободного ПО, что вы получаете не только двоичные файлы, но и исходный код, либо можете получить его, если вам это нужно, что вы можете изменять ПО или использовать части этого ПО в новых свободных программах; и что вы знаете, что можете всё это делать.

Проект Debian был создан Иэном Мёрдоком (Ian Murdock) в 1993 году при спонсорском участии проекта GNU Free Software Foundation. Сегодня, разработчики Debian считают его прямым наследником проекта GNU.

Хотя Debian GNU/Linux и сам по себе является свободным ПО, на его основе можно строить и другие дистрибутивы Linux. Предлагая надёжную, самодостаточную основу системы, Debian предоставляет пользователям Linux улучшенную совместимость, и позволяет создателям дистрибутивов Linux избежать двойной работы и сфокусироваться на вещах, отличающих их собственные дистрибутивы от прочих. Подробности об этом см. в Раздел 14.3, «Я делаю специальный дистрибутив Linux для «вертикального маркетинга». Могу я использовать Debian GNU/Linux как основу этой системы и добавлять мои собственные приложения поверх него?».

1.3. Я понял, что такое Debian, а что такое Linux?!

В двух словах, Linux — это ядро Unix-подобной операционной системы. Исходно оно разрабатывалось для машин с процессорами 386 (и более новых), а сейчас может работать и на десятке других архитектур. Ядро Linux было написано Линусом Торвальдсом (Linus Torvalds) и многими компьютерщиками со всего мира.

Кроме ядра, в «Linux»-систему обычно входит:

разнообразные Unix-утилиты, многие из которых были разработаны проектом GNU и Free Software Foundation.

Ядро Linux, файловая система, утилиты GNU, FSF и другие разрабатываются в соответствии со стандартом POSIX (IEEE 1003.1), см. Раздел 4.4, «Насколько исходный код Debian совместим с другими системами Unix?».

Более подробную информацию о том, Что такое Linux, см. на сайте Linux Online.

1.4. Debian работает только с GNU/Linux?

В настоящий момент, Debian доступен только с ядром Linux, но мы уже начали предлагать ОС Debian на ядрах GNU/Hurd и BSD для разработки, серверов и рабочих станций. Однако, эти не-linux переносы пока официально не выпускались.

Первой попыткой переноса является Debian GNU/Hurd.

Hurd — это набор серверов, запущенных поверх микроядра GNU Mach. Эта комбинация составляет основу операционной системы GNU.

A second effort is the port to a BSD kernel. People are working with the FreeBSD kernel.

1.5. Чем Debian GNU/Linux отличается от других дистрибутивов Linux? Почему я должен отдать предпочтение Debian, а не какому-то другому дистрибутиву?

Вот ключевые возможности, отличающие Debian от других дистрибутивов Linux:

Как заявлено в общественном договоре, Debian всегда будет свободным на 100%. В Debian распространяется только действительно свободное программное обеспечение. Такое ПО должно отвечать критериям Debian по определению свободного ПО.

Система управления пакетами Debian

Система в целом или любая её часть может быть обновлена без переформатирования, без потери пользовательских настроек и (в большинстве случаев) без перезагрузки системы. В большинстве современных дистрибутивов Linux тоже есть свои системы управления пакетами; система управления пакетами Debian уникальна и хорошо продумана (см. Глава 7, Основы системы управления пакетами Debian).

Открытая модель разработки

Многие дистрибутивы Linux разрабатываются индивидами, небольшими закрытыми группами, либо коммерческими компаниями. Debian же представляет собой крупный дистрибутив Linux, который разрабатывается объединением индивидов, общей целью которых является создание свободной операционной системы в духе Linux и другого свободного ПО.

Универсальная операционная система

Debian поставляется с более чем 58000 пакетами и работает на 10 архитектурах. Это намного больше, чем доступно в любом другом дистрибутиве GNU/Linux. Обзор поставляемого ПО см. в Раздел 5.1, «Какие виды приложений и средств разработки программ доступны в Debian GNU/Linux?», а описание поддерживаемых платформ см. в Раздел 4.1, «На каких архитектурах/системах работает Debian GNU/Linux?».

Система отслеживания ошибок

В Debian есть всестороннее описание стандартов качества — политика Debian (Debian Policy). Этот документ определяет качества и стандарты, согласно которым мы разрабатываем пакеты Debian.

Дополнительную информацию об этом можно найти на странице причин выбора Debian.

1.6. Как соотносятся проект Debian и проект GNU Free Software Foundation?

Система Debian строится на основе идеалов свободного ПО, которые были предложены Фондом свободного ПО и в частности Ричардом Столлманом. Мощные инструменты системной разработки, утилиты и приложения Фонда свободного ПО являются ключевой частью системы Debian.

Проект Debian не является частью FSF, однако мы регулярно общаемся и совместно работаем над различными проектами. FSF попросила, чтобы мы называли нашу систему «Debian GNU/Linux», и мы счастливы были выполнить их просьбу.

Давняя цель FSF — разработка новой операционной системы, называемой GNU, на основе ядра Hurd. Debian работает вместе с FSF над этой системой, называемой Debian GNU/Hurd.

1.7. Как произносится слово Debian и что оно означает?

Имя проекта произносится как Дебиан, с коротким е и ударением на первом слоге. Это слово образовано из имён Debra и Ian Murdock, которые основали проект. (Кажется, словари дают несколько двусмысленную транскрипцию слова Ian (!), но Иэн предпочитает транскрипцию ee'-en.)


От переводчика: этот текст — перевод записи в личном блоге Михаэля Штапельберга (Michael Stapelberg) видного open source-разработчика (профиль GitHub), который внес значительный вклад в развитие Debian.


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

Debian был частью моей жизни на протяжении 10 лет.

Несколько недель назад, на посвященной Debian встрече, проходившей в Цюрихе, я встретился со своими старыми друзьями, которых не видел много лет. Когда я уже ехал домой на велосипеде, меня осенило, что все обсуждаемые нами темы так или иначе сводились к тому, что мы обсуждали с ними в прошлый раз. Мы дискутировали о достоинствах systemd, который вновь привлек внимание участников open source сообщества, затронули тему процессов в Debian. Кульминацией стало обсуждение демократии как таковой и соответствующие теоретические и практические ошибки. Но, на самом деле, это уже чисто швейцарская тема.

Это не обзор прошедшего митапа, я просто хочу объяснить, что побудило меня задуматься о своем текущем отношении к Debian и подходит ли он мне.

Итак, я принял решение, которое должен был принять давно: я сворачиваю свое участие в развитии Debian.

Что это значит?

В ближайшие недели произойдет следующее:

  • я передам важные пакеты maintained-команде;
  • удалю себя из Uploaders пакетов, в которых есть другие сопровождающие;
  • пакеты, в которых я был единственным сопровождающим, станут «сиротами».

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

Почему?

Когда я только присоединился к работе над Debian, я еще учился, то есть у меня было много свободного времени. Теперь, спустя пять лет работы фулл-тайм, я многому научился — как в плане того, как и что работает в крупных проектах по разработке программного обеспечения, так и в плане понимания своих личных предпочтений в компьютерных системах. Сейчас я четко отдаю себе отчет в том, на что я трачу ту небольшую часть свободного времени и что у меня остается в конце дня.

Каждый из следующих разделов будет посвящен вещам, причиняющим мне как разработчику боль. Список этот приводится в произвольном порядке. Некоторые из этих проблем влияют друг на друга, например — если бы изменения системы проводились качественнее, у нас был бы шанс на то, что пакеты будут легче обрабатываться машиной.

Процесс изменений в Debian

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

В Debian разработка пакетов направляется в нужное русло с помощью документа, который называется «Debian Policy», либо же его программным вариантом «Lintian».

Несмотря на то, что lint очень удобен для получения быстрого прямого или локального/автономного фидбека, еще лучше вообще не требовать пользоваться таким инструментом. Например, команда C++, которая вводит новый флаг защиты для всех пакетов, должна быть в состоянии сделать свою работу прозрачной и для меня (судя по профилю GitHub, основным языком Михаэля является Go, — прим. пер.).

Вместо этого сейчас все пакеты делаются «грязно» (ориг. — lint-unclean): все сопровождающие должны прочитать, что это за новая вещь, как она может сломаться, влияет ли она на их работу вообще и если да, то как именно. Потом надо вручную запустить некоторые тесты и, наконец, отказаться от изменений. Все это — множество накладных и выполняемых вручную механических операций между пакетами.

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

В Debian отсутствуют инструменты для внесения крупных изменений: программно сложно работать с раздробленными пакетами и репозиториями (об этом детальнее в разделе ниже). Наиболее близким событием к дефолтной «отправке изменения на ревью» является процесс открытия баг-репорта с прикрепленным к нему патчем. Мне казалось, что существующий процесс принятия баг-фикса слишком сложен, и я начал работать над мерж-ботом, но интерес к нему проявил только Гвидо и никто больше (по всей видимости, автор говорит о Гвидо agx Гюнтере, еще одном Debian-разработчике, — прим. пер.).

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

Любопытно отметить, но практика черепашьей онлайн-активности проецируется и на офлайн-культуру, а я не хочу обсуждать достоинства systemd спустя 10 лет после того, как впервые услышал о нем.

Ну и наконец, любые изменения могут быть застопорены несогласными, которые в итоге отказываются идти на сотрудничество. Мой каноничный пример подобной ситуации — rsync. Куратор отказался от моих патчей, добавляющих в пакет поддержку debhelper, исключительно из собственных убеждений.

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

Как бы все это выглядело в идеальном мире?

  1. Как проект, мы должны стремиться к унификации. Ведь унификация не исключает экспериментов, она просто меняет текущий компромисс между более простыми экспериментами и более сложной автоматизацией на компромисс между более сложными экспериментами и более простой автоматизацией.
  2. Наша культура разработки должна уйти от парадигмы «этот пакет — мое хозяйство, да как ты смеешь к нему прикасаться», к общему чувству сопричастности, при котором любой участник может легко вносить или проверять изменения, даже без вовлечения конкретных кураторов-сопровождающих.

Фрагментированный рабочий процесс и инфраструктура

Обычно Debian предпочитает децентрализованные подходы, а не централизованные. Например, отдельные пакеты хранятся в отдельных репозиториях, а каждый репозиторий может использовать любой SCM (обычно git и svn) или вообще не использовать. Плюс, каждый репозиторий может быть размещен на любом сайте. Конечно, и содержимое каждого репозитория также слегка различается от команды к команде, да даже и внутри команды.

На практике нестандартные варианты хостинга используются достаточно редко, так как они не оправдывают свою стоимость, но достаточно часто, чтобы причинять огромную боль при попытках автоматизировать процесс внесения изменений в пакеты. И вот вместо того, чтобы использовать API GitLab для создания запросов на мерж, вам надо разработать совершенно другую, более сложную систему, которая работает с периодически (или постоянно!) недоступными репозиториями, абстрагирует различия в доставляемых патчах (отчеты об ошибках, запросы на слияние, запросы на извлечение) и прочее, и прочее…

Радикально отличающиеся процессы разработки — это не просто проблема пустой траты рабочего времени. Я участвовал в долгих разговорах о различных процессах разработки git во времена DebConf 13 и понял, что и тогда велись подобные дискуссии.

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

Устаревшая инфраструктура: загрузка пакетов

Когда вы хотите сделать пакет доступным в Debian, вы загружаете файлы с подписью GPG через анонимный FTP. Существует несколько видов заданий (the queue daemon, unchecked, dinstall и другие), которые выполняются по фиксированному расписанию (например, dinstall выполняется в 01:52 UTC, 07:52 UTC, 13:52 UTC и 19:52 UTC).

Я подсчитал, что в зависимости от времени суток вы можете подождать более 7 часов (. ), прежде чем ваш пакет будет установлен.

Но хуже всего для меня то, что обратная связь асинхронна относительно загрузки. Мне нравится что-то сделать, покончить с этим и перейти к следующему заданию. Текущая настройка требует длительного ожидания и, по сути, дорогостоящего переключения между задачами без веских на то технических причин. Вы можете заметить, что несколько минут не имеют большого значения, но когда все время за день, которое я могу потратить на Debian, измеряется минутами, это имеет огромное значение для восприятия собственной производительности и удовлетворенности от проделанной работы.

Как бы все это выглядело в идеальном мире?

  1. Анонимный FTP был бы заменен веб-службой, которая принимает мой пакет и возвращает в своем ответе официальное решение о его принятии или отклонении.
  2. Для принятых пакетов есть страница, отображающая статус сборки и время, когда пакет будет доступен через сеть зеркал.
  3. Пакеты должны быть доступны в течение нескольких минут после завершения сборки.

Устаревшая инфраструктура: багтрекер

Я боюсь взаимодействовать с трекером ошибок Debian. Debbugs — это кусок кода прямиком из 1994 года, который сейчас используется только Debian и проектом GNU.

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

По каким-то причинам, которых я не понимаю, каждое взаимодействие с debbugs приводит к созданию множества цепочек писем.

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

Как бы все это выглядело в идеальном мире?

  1. Debian переключится с нестандартного способа отслеживания ошибок на (любой) уже устоявшийся.
  2. В Debian появляется автоматизация этих процессов. Основной интерфейс должен быть более удобным (например, веб-форма).

Устаревшая инфраструктура: архивы email-переписок

Меня сбивает с толку тот факт, что в 2019 году у нас по-прежнему нет удобного инструмента для просмотра архивных цепочек обсуждений в почте. Так широко, как в Debian, Email и цепочки писем нигде больше не используются, так что это даже несколько иронично. Использование Gmane вроде и решало эту проблему, но его доступность за последние несколько лет была, мягко говоря, урывистой (сейчас, на момент написания этого поста, он вообще не работает).

Я пытался создать многопоточный архив, но наши лист-мастеры не впечатлились и отказались поддерживать проект.

Машинам сложно работать с Debian

Хотя очевидно, что с пакетами Debian можно работать программно, этот опыт сложно назвать приятным. Все кажется медленным и громоздким. Я выбрал три небольших примера, чтобы проиллюстрировать мою позицию по этому вопросу.

debiman нуждается в помощи от piuparts в проведении анализа альтернативного механизма каждого пакета по отображению страниц документации, например, PSQL(1). Это потребовалось, так как сценарии модифицируют альтернативную базу через вызов shell-скриптов. Но без фактической установки пакета вы не узнаете, какие изменения он вносит.

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

Debian Code Search хочет как можно быстрее получать новые пакеты. Раньше использовался инстанс fedmsg, но его больше не существует. Неясно, откуда получать уведомления о новых пакетах и ​​где лучше всего их получать.

Сложный билд-стек

Тут можно просто почитать мой пост «Инструменты сборки пакетов Debian». Меня действительно беспокоит тот факт, что рост числа инструментов не считается проблемой.

Debian — это болезненный опыт для разработчика

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

У меня есть больше идей

Статья получилась достаточно объемной, но я надеюсь, вы получили приблизительное представление о моей мотивации.

Хотя выше я описал ряд конкретных недостатков, последний гвоздь в крышку гроба — это отсутствие позитивного прогноза на будущее. У меня есть другие идеи, которые кажутся мне действительно убедительными, но, исходя из того, как продвигались мои предыдущие проекты, я не думаю, что смогу реализовать что-либо из них в рамках проекта Debian.

Я намерен опубликовать еще несколько постов о конкретных способах по улучшению операционных систем в своем блоге. Так что заглядывайте.

Ну и наконец, я надеюсь, что этот пост вдохновит кого-нибудь, в идеале — группу людей, на то, чтобы сделать жизнь разработчиков Debian лучше.

Читайте также: