Gentoo - это пингвин?

Gentoo

Просмотреть полностью

Gentoo Linux (дже́нту) — один из дистрибутивов GNU/Linux, созданный Даниэлом Роббинсом на основе разработок дистрибутива Enoch.

Название

Gentoo (произносится «дженту») — это английское название вида пингвинов Pygoscelis papua (русские варианты названия: пингвин хинду, субантарктический пингвин, папуанский пингвин, ослиный пингвин). Согласно Книге рекордов Гиннеса 98 этому виду пингвинов принадлежит рекорд скорости плавания (27 км/ч).
История

Gentoo появился на основе разработок собственного дистрибутива Даниэла Роббинса под названием Enoch Linux. Уже тогда основной целью дистрибутива являлась собственная сборка (подобная Linux from Scratch), оптимизированная под конкретное аппаратное обеспечение и содержащее минимальный, необходимый пользователю, набор программ.

Эксперименты над сборками GCC показали, что производительность получаемого пакета увеличивалась (в зависимости от аппаратного обеспечения) от 10 до 200 % по сравнению с бинарными сборками gcc, поставляемыми другими дистрибутивами. Наработки, увеличивающие производительность, были включены в официальный релиз gcc 2.95, благодаря чему другие дистрибутивы также получили дополнительный прирост в производительности. Начиная с этого момента, Enoch начал приобретать репутацию «быстрого» дистрибутива, после чего было принято решение сменить название на Gentoo Linux.

После ряда проблем разработки Даниэл приостановил разработку Gentoo и переключился на FreeBSD, из которой позднее были привнесена идеология портов — система управления пакетами с помощью сценариев сборки (ebuild), позднее названная Portage.

31 марта 2002 года вышла первая версия дистрибутива.

Предупреждение для новичков

Хотя основной мотив использования Gentoo Linux — увеличение скорости работы системы за счет оптимизации под конкретное аппаратное обеспечение, прирост производительности более ощутим на современных компьютерах. При этом компиляция системы на старом процессоре может занять до недели чистого машинного времени. Это имеет простое объяснение: чем старше процессор — тем ближе его набор инструкций к стандартному минимальному, а выигрыш в производительности достигается в основном за счет использования более мощных инструкций новых процессоров. Для старых процессоров может быть разумнее устанавливать кросс-компилированные пакеты, т. е. бинарные пакеты, предварительно скомпилированные на более мощной системе. Также возможно использовать распределённую компиляцию (distcc), а также ускорение процесса компиляции за счет использования кеша (ccache).

Гораздо больше Gentoo Linux приспособлена для максимального использования возможностей новейших процессоров, для установления рекордов производительности.

Основные особенности

  • Мощная и гибкая технология Portage, совмещающая в себе возможности конфигурирования, настройки, а так же автоматизированную систему управления пакетами. Последняя создавалась под влиянием системы управления пакетами в ОС FreeBSD, называемой портами.
  • Многоплатформенность — на данный момент Gentoo портирована на x86, x86-64, PowerPC, PowerPC 970 (PowerPC G5), SPARC, MIPS, DEC Alpha, PA-RISC, IBM/390, SuperH и 68k. Доступны также сборки под ядра OpenBSD, FreeBSD, NetBSD, Darwin. Система Portage портирована на платформы MacOS X, Windows 5.x
  • Оптимизация системы под конкретное аппаратное обеспечение и нужды пользователя. Это достигается посредством сборки программ из исходных текстов с использованием так называемых USE-флагов оптимизации и подключением/отключением необходимых модулей. Для удобства все опции могут быть внесены в конфигурационные файлы как для системы в целом (/etc/make.conf), так и для конкретных программ (/etc/portage/package.use). В случае необходимости изменения флагов, например, в случае подключения поддержки системы печати (cups) или потребности в дополнительных функциях (kerberos, pda), они будут учтены при следующем обновлении, и все программы, где используются эти флаги, включая все зависимости, — автоматически пересобраны. Таким образом, любое обновление программ или системы осуществляется очень просто, например для всей системы в целом обычно используют emerge -vDNu world, обновление только системных программ emerge -vDNu system.
  • Собственная init-система, расширенная и удобная система инициализационных файлов, в частности, вместо числовых используются именованные уровни запуска (runlevels), при этом с указанием зависимости от прочих сценариев. Для управления используется команда rc-update.
  • Маски́рование (masking) — возможность использовать как стабильные (по умолчанию), так и экспериментальные, но более свежие/функциональные версии программ. При этом сохраняется возможность откатиться на любую из старых версий.


В последнее время для программ, требующих долгой компиляции, распространяются официальные бинарные сборки программ, например, openoffice-bin, mozilla-firefox-bin. Также есть много ресурсов с неофициальными сборками.

Философия Gentoo

"Я создал Gentoo, потому что не смог найти дистрибутива Linux, который мне бы понравился. В дистрибутивах Linux преобладала такая черта: «средства установки», управляющие всей системой, те самые, что должны были облегчить мне жизнь, в действительности требовали много внимания и лишь преграждали мне путь. Я пытался сказать им, что я хочу, а их больше интересовало то, как бы указать мне, что им от меня требуется.

Итак, я создал Gentoo Linux, и задумал систему сборки Portage такой, чтобы она стала совершеннее всех тех, что были до нее. С этой целью я создал ее достаточно гибкой, чтобы позволять мне делать то, что я хочу, и попытался сделать ее настолько гибкой, чтобы дать и другим возможность делать то, что, как я думал, они могли бы захотеть.

При желании выяснить, как происходит сборка пакета, они могли бы заглянуть в относительно понятный сборочный файл (ebuild) и все узнать из него. Желая подстроить процесс сборки, они применяли бы флаги использования (USE). При желании добавить пакет, они бы создавали новый сборочный файл, включаемый в общее дерево. При желании использовать пакет, они бы просто говорили: «Явись!» (emerge), — а все связанные с ним пакеты настраивались бы автоматически.

Людям понравилась концепция Portage, и Gentoo Linux стал быстро развиваться. Мы получили известность как дистрибутив «из исходников», но суть концепции Gentoo — не в этом. «Из исходников» — важный и ключевой аспект Gentoo, который был и останется необходимым, но не единственный и не главный. Основополагающая задача — создание технологии, позволяющей как нам, так и другим делать то, что хочется, без ограничений.

Чтобы подытожить суть Gentoo, представим себе пользователя, сидящего перед системой Linux. Чего он или она захочет сделать? Философия Gentoo — позволить этому пользователю делать то, что он или она пожелает, не вставая на его пути.

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

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

Философия Gentoo в одном абзаце такова. Каждому пользователю приходится выполнять определенную работу. Цель Gentoo — разработка инструментов и систем, позволяющих пользователю заниматься своим делом как можно эффективнее и в свое удовольствие, так, как он сочтет нужным. Наши инструменты должны приносить радость и помогать пользователю оценить по достоинству все богатство Linux и сообщества свободного программного обеспечения, а также гибкость свободных программ. Такое возможно только тогда, когда инструменты создаются, чтобы отражать и проводить волю пользователя, оставляя для него открытыми все возможности с самого начала (с исходного кода). Когда инструмент заставляет пользователя действовать определенным образом, инструмент работает против него, а не на него. Все мы сталкивались с ситуациями, когда инструменты стремились навязать нам свою собственную волю. Такой подход — полная противоположность, несовместимая с философией Gentoo.

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

Будущая задача Gentoo — продолжать борьбу за создание инструментов, близких к идеалу. Инструментов, удовлетворяющих нужды множества различных пользователей (каждого — со своими разнообразными целями) с простотой, идущей рука об руку с непревзойденной мощью. Разве вы не любите пользоваться инструментами, которые отлично подходят для ваших нужд? Разве это не великолепное ощущение? Наша цель — передать это чувство как можно большему числу людей."