GoboLinux - GoboLinux

GoboLinux
GoboLinux 016 рабочий стол
Семейство ОСUnix-подобный
Рабочее состояниеАктивный[1]
Исходная модельОткрытый исходный код
изначальный выпуск2003; 17 лет назад (2003)
Последний релиз017/24 мая 2020 г.; 6 месяцев назад (2020-05-24)
Доступно вНемецкий, Английский, Венгерский, португальский, испанский
Платформыx86-64
Ядро типМонолитный (Linux )
Дефолт пользовательский интерфейсПотрясающие
ЛицензияСтандартная общественная лицензия GNU
Официальный веб-сайтгоболинукс.org

GoboLinux является Открытый исходный код Операционная система наиболее характерной чертой которого является реорганизация традиционных Linux файловая система. Вместо того, чтобы следовать Стандарт иерархии файловой системы как большинство Unix-подобный систем, каждая программа в системе GoboLinux имеет свой собственный подкаталог дерево, где могут быть найдены все его файлы (включая настройки, специфичные для этой программы). Таким образом, программа "Foo" имеет все свои конкретные файлы и библиотеки в / Программы / Foo, под соответствующей версией данной программы. Например, широко известный набор компиляторов GCC версии 8.1.0 будет находиться в каталоге /Programs/GCC/8.1.0.

По словам разработчиков GoboLinux, в результате система становится чище.[2]

Обзор

В GoboLinux иерархия представляет собой радикальный отход от иерархии файловой системы, традиционно используемой большинством UNIX-подобные операционные системы где файлы определенных типов хранятся вместе в общих стандартных подкаталогах (например, / bin для исполняемых файлов и /так далее для файлов конфигурации) и где менеджеры пакетов используются для отслеживания того, какой файл какой программе принадлежит. В GoboLinux файлы из каждой программы помещаются в отдельный выделенный подкаталог соответствующей программы. Создатели GoboLinux заявили, что «файловая система - это менеджер пакетов», а система пакетов GoboLinux использует саму файловую систему в качестве базы данных пакетов.[3] Говорят, что это создает более простое и менее загроможденное дерево каталогов. GoboLinux использует символические ссылки и необязательный модуль ядра называется GoboСкрыть для достижения всего этого при сохранении полной совместимости с традиционной иерархией файловой системы Linux.

Создатели GoboLinux заявили, что в их дизайне есть другие «модернизмы», такие как устранение некоторых различий между аналогичными традиционными каталогами (например, расположение исполняемых файлов / bin, / usr / bin, и / USR / местные / бен). Разработчики GoboLinux заявили, что это приводит к сценарии оболочки ломается реже, чем с другими дистрибутивами Linux. Это изменение, внесенное GoboLinux в 2003 году, было принято другими дистрибутивами намного позже: Fedora объединены / bin и / usr / bin в 2012 году;[4] Debian включил слияние / usr по умолчанию в 2016 году.[5]

GoboLinux также позволяет пользователю одновременно устанавливать разные версии одной и той же программы (и даже запускать их одновременно). Более того, утверждалось, что индекс управления пакетами никогда не может стать несинхронизированным с файловой системой, потому что ссылки на несуществующие файлы просто становятся неработающими ссылками и, таким образом, становятся неактивными. Изменения файловой системы GoboLinux также допускают другие инновации, такие как совершенно новая система загрузки, которая не использует Система V или же BSD системы инициализации стиля.

Иерархия файлов

Скриншот иерархии файлов

На дизайн GoboLinux повлияли более ранние системы, такие как Следующий шаг, AtheOS, и BeOS, все они заимствовали оригинальные структуры файловой системы, сохраняя при этом значительную степень совместимости с Unix. В корне дерева GoboLinux есть шесть каталогов: Programs, Users, System, Files, Mount и Depot. Содержание каждого из них описано ниже.

  • / Программы / - Этот каталог содержит по одному каталогу для каждой программы, установленной в системе. Каталог каждой программы, в свою очередь, содержит один или несколько каталогов версий и, необязательно, подкаталоги Settings и Variable. Примеры путей под программами: /Programs/Bash/3.0/bin/bash и /Programs/Xorg-Server/Settings/X11/xorg.conf.
  • / Пользователи / - Этот каталог содержит домашний каталог каждого пользователя; у пользователя "harley" есть / Пользователи / harley как домашний каталог.
  • /Система/ - Важные системные файлы. Большинство из них управляются системными приложениями (например, / Система / Настройки / пароль) и скрипты GoboLinux (например, / Система / Указатель).
    • /Индекс/ - Индекс файловой системы: содержит каталоги с символическими ссылками на файлы из / Программы записи, такие как:
      • bin / - Содержит ссылки на файлы из каждой программы мусорное ведро каталоги.
      • включают/ - Этот каталог содержит ссылки на файлы из каждой программы включают каталог.
      • lib / - Ссылки на файлы из каждой программы lib каталог.
      • Поделиться/ - Ссылки на файлы из каждой программы Поделиться каталог.
    • Среда/ - Ссылки на файлы окружения. Они компилируются в файл кэша и загружаются оболочкой, позволяя каждой программе регистрировать свои собственные переменные среды.
    • Задачи/ - Ссылки на задачи загрузки каждой программы из ее Ресурсы / Задачи каталог.
    • Настройки/ - Файлы конфигурации и ссылки на файлы из каждой программы Настройки каталог.
      • BootScripts / - Скрипты, используемые при загрузке системы. Это символическая ссылка в каталог Настройки / BootScripts под / Программы / BootScripts.
    • Переменная/ - Многоцелевые файлы журнала, временные, временные и буферные файлы.
      • tmp / - Временные файлы.
    • Ядро / - Каталоги, относящиеся к ядру.
      • Ботинок/ - Программы и файлы конфигурации, используемые при загрузке операционной системы. Здесь находятся образ ядра и файлы конфигурации загрузчика.
      • Устройства / - Файлы устройства (под управлением Udev).
      • Модули / - Содержит различные модули ядра, упорядоченные по выпуску ядра.
      • Объекты/ - Предоставляет представление дерева устройств ядра (введено с файловой системой sysfs в серии ядра 2.6).
      • Положение дел/ - Файлы состояния ядра (управляемые proc файловая система ).
  • / Файлы / - Файлы содержат структурированные данные, которые используются программами, но не являются частью самих программ. Эти файлы обычно представляют собой автономные объекты, такие как шрифты, кодеки и плагины (и, как таковые, предположительно не требуют управления пакетами). Кроме того, каждая программа может определять собственные подкаталоги для хранения специфичных для сайта данных; например, Компилировать (интерфейсный инструмент компиляции пакетов GoboLinux) делает это.
  • /Устанавливать/ - точка монтирования дополнительных локальных или удаленных файловых систем. Общие подкаталоги CD-ROM и Телефон.

Программа "Скомпилировать"

Компилировать это программа, которая скачивает, распаковывает, компилирует исходный код архивы, и устанавливает полученный исполняемый код с помощью одной команды (например, Скомпилировать foo) с помощью простых сценариев компиляции, известных как «рецепты».[6]

Система компиляции чем-то похожа на систему Gentoo. Portage система,[7] который основан на Порты FreeBSD коллекция. Однако Portage создан для традиционной иерархии файловой системы, совместимой с Стандарт иерархии файловой системы, в то время как Compile расширяет возможности отличительной иерархии файловой системы GoboLinux в область управления пакетами. Таким образом, в GoboLinux сама файловая система естественным образом служит своего рода базой данных диспетчера пакетов.[8]

Программа Compile была представлена ​​в GoboLinux версии 011. До этого были дискуссии о переносе системы Gentoo Portage на GoboLinux и разработке порта как проекта SourceForge.net под названием GoboPortage.[9][10]

Среди других функций компиляции:

Использование собственного сайта загрузки каждой программы
Репозиторий дистрибутива (или одно из его зеркал) используется только для загрузки рецептов. Рецепты можно скачивать «на лету» или пакетно.
Минималистичные и декларативно-ориентированные скрипты компиляции
Типичное программное обеспечение «configure; make; make install» может быть написано в двух строках, что значительно упрощает обслуживание.
Поддержка зависимостей в стиле GoboLinux
Программное обеспечение, скомпилированное «вручную» пользователем, учитывается механизмом обнаружения.
Путь-агностицизм
Он также работает в установке GoboLinux без root (то есть внутри домашний каталог любого другого дистрибутива).[11]

Отличия от традиционных дистрибутивов

Иерархия файлов

В иерархии GoboLinux файлы сгруппированы по функциональным категориям в индексной структуре с использованием символических ссылок, расположенных в / Система / Указатель: Все исполняемые файлы доступны в / Система / Индекс / bin, все библиотеки доступны в / Система / Индекс / библиотекаи т. д. Это устраняет многие традиционные различия в Стандарт иерархии файловой системы, например, различие между несущественными файлами, хранящимися в / usr а также важные аварийные файлы, хранящиеся непосредственно в подкаталогах корневого каталога. Разработчики GoboLinux утверждали, что, хотя эти различия когда-то были очень полезны, они больше не нужны в схеме GoboLinux.

Символические ссылки

Существуют символические ссылки, связывающие большинство обычных каталогов Unix с деревом GoboLinux. Поэтому можно найти такие каталоги, как /так далее, / var / журнал, и / usr / bin в ожидаемых местах. Эти символические ссылки указывают на функциональный эквивалент в / Система / Указатель дерево; таким образом, традиционно важные имена путей (такие как / bin / sh и / etc / passwd) разрешены правильно. Эти каталоги совместимости скрыты от просмотра с помощью специальной модификации ядра, называемой GoboСкрыть, который реализует поддержку скрытых файлов в Linux; он используется только по эстетическим соображениям и, следовательно, является дополнительной функцией.

Система загрузки

GoboLinux использует собственную процедуру инициализации, в отличие от большинства дистрибутивов Linux, которые используют BSD или Система V процедура. В / Система / Настройки / BootScripts несколько файлов, управляющих всей процедурой загрузки: BootUp и Неисправность запускать при загрузке и выключении системы соответственно; кроме того, можно определить сценарии «уровня выполнения», чтобы указать различные способы инициализации системы (например, Одинокий для однопользовательского, Мульти для многопользовательской, Графический для загрузки в графический режим и так далее); этим можно управлять из меню загрузчика. В / Система / Настройки / BootOptions Файл отделяет специфичные для сайта настройки от остальных скриптов. Задачи для конкретных приложений можно найти на / Система / Задачи; они могут вызываться загрузочными скриптами.

Релизы

Релизы были пронумерованы с помощью восьмеричный базовая система. По словам авторов, эта схема была выбрана потому, что она сохраняет типичный ведущий ноль, который присутствует во многих бесплатно программное обеспечение номера версий (поскольку начальный ноль часто указывает на восьмеричное число), и это игра на "гонка номеров версий «это произошло в дистрибутивах Linux примерно в 1999 году. При чтении в виде десятичных чисел использование восьмеричных чисел вызывает детерминированный« скачок версии »каждые восемь выпусков. До версии 013 GoboLinux не выпускал« точечных выпусков », чтобы избежать последствий выпуски были более стабильными, чем другие. Эта традиция была нарушена с версией 014.01, обновление 014 сосредоточено на исправление ошибок.

  • 017 - 24 мая 2020 г.
  • 016 - 15 декабря 2016: Представлен Runner, новый инструмент для виртуализации файловой системы без контейнеров. Ядро Linux версии 4.8.2, Awesome WM desktop.
  • 015 - 7 мая 2014 г .: представляет / Система / Указатель иерархия. Ядро Linux версии 3.14.2, рабочий стол Enlightenment 18.
  • 015-beta - 4 марта 2014 г.
  • 015-альфа - 21 января 2014 г.
  • 014.01[12] - 30 марта 2008 г .: обновления 014 с исправлениями ошибок и некоторыми обновлениями пакетов.
  • 014 - 31 декабря 2007 г .: включает обновления пакетов, исправления ошибок и новые версии инструментов управления GoboLinux.
  • 013 - 2 ноября 2006 г .: вводит Слушатель, инструмент для прослушивания событий файловой системы и назначения действий, которые будут выполняться автоматически.
  • 012 - 6 июня 2005 г .: вводит Управляющий делами, графический инструмент управления системой.
  • 011 - 7 июня 2004 г .: вводит Компилировать, инструмент компиляции пакетов GoboLinux.
  • 010 - 7 января 2004 г .: Добавлен графический установщик, доступный через live CD среда рабочего стола.
  • 007 - 22 октября 2003 г .: Добавлен каталог метаданных для каждого пакета с именем Ресурсы.
  • 006 - 9 мая 2003 г .: представляет GoboСкрыть, и принимает в песочнице установка программ.
  • 005 - 2003: Представляет миру GoboLinux.
  • Релизы до версии 005 использовались только начальной группой разработчиков.

Порты

GoboLinux в настоящее время разработан для x86-64. Это было официально сделано для i686 только до выпуска 015, но в какой-то момент неполный перенос на i386 сделан. Порты также были сделаны для встроенных архитектур, таких как РУКА и SuperH; эти задачи были выполнены с помощью Bootstrap,[13] инструмент, разработанный специально для автоматизации создания портов.

Прием

LWN.net просмотрел GoboLinux 010 в 2004 году:[14]

Оказывается, проект GoboLinux делал именно это - реорганизовывал каталоги и файлы в новую структуру. Все началось с того, что один из разработчиков работал над системой, в которой у него не было привилегий суперпользователя, но все же он нуждался в компиляции программ. Чтобы избежать трудностей при обновлении, он поместил отдельные программы в их собственные каталоги и назвал их в соответствии с соответствующими именами программ, например ~ / Программы / AfterStep. Другие части программ помещались в аналогично идентифицированные каталоги, такие как ~ / Libraries, ~ / Headers и т. Д. Также были разработаны специальные сценарии для автоматической компиляции этих программ и правильного размещения отдельных компонентов.

Linux.com написал отзыв о GoboLinux 013:[15]

Излишне говорить, что этот тип иерархии помогает в управлении пакетами. Пользователи могут установить и использовать несколько версий одной и той же программы или системных библиотек. Фактически, когда GoboLinux переключился на сборник компиляторов GNU (GCC) версии 3, старые программы все еще продолжали работать, поскольку файловая система позволяет нескольким библиотекам спокойно существовать вместе. Кроме того, удаление - это просто удаление каталога программы.

Джесси Смит из DistroWatch Weekly сделал обзор GoboLinux 015:[16]

При загрузке с носителя GoboLinux отображается экран с текстовыми меню. Используя эти меню, нас просят выбрать предпочитаемый язык из списка и раскладку клавиатуры. Затем нам предоставляется текстовая консоль, в которой мы вошли в систему как пользователь «гобо». Инструкции на экране рассказывают нам, как вызвать графический интерфейс пользователя и как запустить установщик системы. Графическая среда оказывается оконным менеджером Enlightenment. На рабочем столе есть значки для запуска диспетчера разделов GParted и установщика системы. Внизу экрана мы находим меню приложений, переключатель задач и панель задач.

Смит также рассмотрел GoboLinux 016.[17]

Рекомендации

  1. ^ Distrowatch (27 марта 2020 г.). «Статус проекта указан как Активный по состоянию на пятницу, 27 марта 2020 года, 02:30 UTC». Получено 2020-03-27.
  2. ^ Хишам Мухаммад (9 мая 2003 г.). «Переосмысление дерева Unix: введение в GoboLinux». Получено 2008-03-17.
  3. ^ Марк Вайнем (13 марта 2008 г.). «Упрощенное управление пакетами в GoboLinux - интервью с Лукасом Вилла Реал». Получено 2008-03-31.
  4. ^ Проект Fedora (29 марта 2012 г.). "/ Usr Move". Получено 2016-12-30.
  5. ^ Debian (21 октября 2016 г.). "История изменений debootstrap 1.0.85". Получено 2016-12-30.
  6. ^ Маянк Шарма (14 февраля 2007 г.). «Рецепт GoboLinux для восхитительного управления пакетами». Linux.com. Архивировано из оригинал на 2008-09-17. Получено 2009-07-19.
  7. ^ "Компиляция GoboLinux - масштабируемый портеж?". Slashdot. 2004-06-05. Получено 2009-07-19.
  8. ^ "Идеи позади Компилировать". GoboLinux. Архивировано из оригинал на 2010-06-13. Получено 2009-07-19.
  9. ^ Форумы Gentoo: Просмотр темы - GoboGentoo
  10. ^ SourceForge.net: GoboPortage
  11. ^ Маянк Шарма (21 августа 2007 г.). "GoboLinux: Интервью с Лукасом Вилья Реал". Получено 2008-03-31.
  12. ^ Том Холверда (4 апреля 2008 г.). «Выпущен GoboLinux 014.01». Получено 2008-04-04.
  13. ^ Встроенный GoboLinux
  14. ^ GoboLinux - развлечение с иерархией файловой системы [LWN.net]
  15. ^ Рецепт восхитительного управления пакетами от GoboLinux | Linux.com | Источник информации о Linux
  16. ^ DistroWatch Weekly, выпуск 562, 9 июня 2014 г.
  17. ^ DistroWatch Weekly, выпуск 696, 23 января 2017 г.

внешняя ссылка