K2-302
- 1 year ago
- 0
- 0
GoboLinux — свободная операционная система семейства Linux , выделяющаяся отходом от принятых в этом семействе стандартов ( Filesystem Hierarchy Standard ) в пользу упрощения управления и использования системы. Ключевые решения — это изменённая иерархия файлов, способ загрузки системы и управление пакетами, отчасти схожее с решениями Gentoo .
Файловая система в GoboLinux в корне меняет и упорядочивает исторически сложившуюся модель остальных Linux -систем — здесь она является не только хранилищем файлов, но и своеобразной системой управления пакетами . Так, каждая программа, со всеми настройками, библиотеками и прочими файлами, хранится в своём отдельном каталоге. Более того — в нём же могут располагаться и одновременно использоваться сразу несколько версий этой программы (каждая в своём подкаталоге с номером версии). Благодаря такой схеме управление программами упрощается до тривиальных файловых операций, взамен ограниченной системы команд типичных пакетных менеджеров .
Если быть точным, набор управляющих программ для пакетов в GoboLinux всё же есть, но они, скорее, играют роль «упрощающих скриптов» (даже написаны они на bash ) — все те же операции над файлами можно проделать и вручную, что резко повышает «ремонтируемость» системы и гибкость управления.
Корневая иерархия каталогов в GoboLinux также подверглась модернизации — взамен разбросанных каталогов bin, lib, local, shared в системе имеется центральный каталог, под которым собраны все файлы по типам. Например, все исполняемые файлы (вернее, их символические ссылки, ведущие в персональный bin-каталог программы) собраны в каталоге /System/Links/Executables . Этот единообразный подход резко упрощает управление всей системой — становится маловероятно встретить ошибку «программа не найдена» или изменить неправильный конфигурационный файл — для всех них определено одно и только одно место. Fedora слили /bin и /usr/bin в 2012 году , а Debian включил слияние /usr по умолчанию в 2016 году .
Несмотря на радикальные различия, GoboLinux не нарушает работы существующих программ, жёстко завязанных на иерархии каталогов: в системе по-прежнему есть физические каталоги /usr , /lib и т. д., но для более удобного обращения с системой они скрываются от пользователя модулем ядра GoboHide .
GoboLinux отличается и другими нововведениями, такими как новая система запуска , отличная от SysV или BSD. Готовится к выпуску и новая система управления пакетами, которая будет включать управление не только классическим набором линукс-программ, но и модулями из таких гетерогенных систем как CPAN из Perl или RubyGems из Ruby — установка модулей из этих репозиториев станет такой же прозрачной, как и для любой обычной программы.
На структуру GoboLinux повлияли ранние системы, такие как NeXTSTEP , AtheOS и BeOS , которые использовали собственную структуру файловой системы, сохраняя заметную совместимость с Unix. В корне GoboLinux лежат 6 каталогов: Programs, Users, System, Files, Mount и Depot. Содержимое каждого из них описано ниже.
— утилита, позволяющая скачать
исходники
указанной программы, распаковать их, скомпилировать и установить в систему одной командой (например,
Compile foo
, чтобы установить программу foo из исходников). Compile использует простые сценарии компиляции, называемые «рецептами» (
англ.
«recipes»
)
.
Compile в чём-то схожа с системой Portage в Gentoo , которая основана на FreeBSD Ports и выполняет установку, руководствуясь « ebuild 'ами». Но система Portage создана для работы в традиционной файловой иерархии, совместимой с FHS , а система Compile расширяет возможности файловой иерархии в GoboLinux до сферы управления пакетами. Так, в GoboLinux файловая система служит менеджером пакетов (см. «The Ideas Behind Compile » ).
Система Compile появилась в GoboLinux версии 011. До этого велись разговоры о портировании системы Portage из Gentoo в GoboLinux в качестве проекта GoboPortage на Sourceforge.net .
Другие особенности Compile:
В иерархии GoboLinux файлы сгруппированы по функциональному назначению в категории с использованием индексации, основанной на симлинках . Индекс хранится в каталоге /System/Links/ : все исполняемые файлы доступны в /System/Links/Executables/ , все библиотеки — в /System/Links/Libraries , и так далее. Такой подход устраняет традиционные, характерные для FHS различия между несущественными файлами, находящимися в /usr , и критически необходимыми файлами, которые находятся в корне / . Разработчики других дистрибутивов стараются этого придерживаться, потому что такие различия были когда-то полезны, но сегодня, в совершенно другой, современной среде, они не являются необходимостью. [ источник не указан 3262 дня ]
Существуют символические ссылки , обозначающие обычные каталоги Unix, но указывающие на структуру каталогов GoboLinux. Поэтому можно найти каталоги /etc , /var/log и usr/bin на старых местах. Эти ссылки указывают на эквивалентные каталоги в /System/Links/ , так что ключевые пути, такие как /bin/sh или /etc/passwd , остаются корректными. Такие ссылки совместимости скрываются из виду с помощью модуля GoboHide для ядра. Этот модуль, который реализует сокрытие файлов в Linux, используется чисто из эстетических соображений и вовсе не обязателен.
Суперпользователь , традиционно известный как «root» с UID равным 0, может иметь любое другое имя в GoboLinux, выбираемое при установке. В отличие от других дистрибутивов, в GoboLinux домашний каталог суперпользователя вовсе не /root , а /User/NAME — как и у других пользователей. Согласно статье hisham [ источник не указан 2062 дня ] , так было решено, потому что ему никогда не нравилось понятие обособленного суперпользователя.
GoboLinux использует собственную процедуру запуска, в отличие от других дистрибутивов Linux, в которых применяются системы запуска systemd или System V. В каталоге /System/Settings/BootScripts лежат несколько файлов, которые полностью управляют процессом загрузки: BootUp и ShutDown выполняются, соответственно, во время запуска и остановки системы. В дополнение к ним можно создавать скрипты для различных «уровней запуска» ( англ. «runlevel» ), чтобы управлять способами, которыми может быть загружена система (например, создать скрипт Single для однопользовательского режима, Multi — для многопользовательского, Graphical — для графического режима, и так далее). Файл /System/Settings/BootOptions отделяет настройки системы от других скриптов. Скрипты для запуска или останова демонов и применения настроек находятся в /System/Links/Tasks и могут быть запущены скриптами загрузки.
Релизы нумеруются в восьмеричной системе счисления . Авторы говорят, что они выбрали её из-за нуля в первой цифре (в языке Си при записи чисел в восьмеричной системе в первой цифре ставится ноль), и является насмешкой над гонкой за версиями, происходившей среди дистрибутивов примерно в 1999 году. Если читать число как десятичное, то происходит предсказуемый «скачок» версии каждые 8 релизов. До версии 014 в GoboLinux не было минорных релизов, то есть версия состояла всего из одного числа, чтобы не вводить в заблуждение, что один релиз более стабилен, чем другой. Традиция была нарушена при выпуске релиза 014.01 — обновления, которое содержало, в основном, исправления ошибок релиза 014.
По данным на март 2006 года Gobolinux официально выпускается только под i686 , и портирование под i386 носит частный характер, а потому неполный. Однако в 2003 году Hisham Muhammad, главный разработчик в проекте GoboLinux, написал «Сляпанное наспех руководство по портированию» для тех, кто хотел портировать GoboLinux под платформу PowerPC и другие архитектуры. Он также занимался портированием сам. Были получены версии для встраиваемых систем , таких как ARM и SuperH , которые легко делались с помощью утилиты Bootstrap , специально созданной для автоматизации портирования.
LWN.net рассмотрел GoboLinux 010 в 2004 году .
Linux.com написал обзор на GoboLinux 013 .
Джесси Смит из DistroWatch Weekly рассмотрела GoboLinux 015 . Смит также рассмотрела версию 016 .