GoboLinux

GoboLinux
GoboLinux
GoboLinux.png
GoboLinux
Семейство ОС

Linux

Последняя версия

014.01 — 28 сентября 2008

Тип ядра

Монолитное ядро (Linux)

Лицензия

GNU General Public License

Состояние

неактивное[1]

Веб-сайт

http://gobolinux.org/

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

Содержание

Общая информация

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

Если быть точным, набор управляющих программ для пакетов в GoboLinux всё же есть, но они, скорее, играют роль «упрощающих скриптов» (даже написаны они на bash) — все те же операции над файлами можно проделать и вручную, что резко повышает «ремонтируемость» системы и гибкость управления.

Корневая иерархия каталогов в GoboLinux также подверглась модернизации — взамен разбросанных каталогов bin, lib, local, shared, в системе имеется центральный каталог, под которым собраны все файлы по типам. Например, все исполняемые файлы собраны в директории /System/Links/Executables (вернее, их символические ссылки, ведущие в персональный bin каталог программы). Этот единообразный подход резко упрощает управление всей системой — становится маловероятно встретить ошибку «программа не найдена» или изменить неправильный конфигурационный файл — для всех них определено одно и только одно место.

Несмотря на радикальные различия, GoboLinux не нарушает работы плохо спроектированных программ, жёстко завязанных на иерархии каталогов: в системе по прежнему есть физические каталоги /usr, /lib и т. д., но для более удобного обращения с системой, они скрываются от пользователя модулем ядра GoboHide.

GoboLinux отличается и другими нововведениями, такими как новая система запуска, отличная от SysV или BSD. Готовится к выпуску и новая система управления пакетами, которая будет включать управление не только классическим набором линукс-программ, но и модулями из таких гетерогенных систем как CPAN из Perl или RubyGems из Ruby — установка модулей из этих репозиториев станет такой же прозрачной, как и для любой обычной программы.

Иерархия файловой системы

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

  • /Programs/ — Эта директория содержит по одной директории на каждую установленную программу. Каждая из них, в свою очередь, содержит одну или больше директорий для разделения версий и, опционально, директории Settings и Variable. Примеры путей — /Programs/Bash/3.0/bin/bash, /Programs/Xorg-Server/Settings/X11/xorg.conf.
  • /Users/ — Эта директория содержит домашние директории пользователей. Например, для пользователя harley домашней директорией будет /Users/harley.
  • /System/ — Важные системные файлы. Большинство управляются системными утилитами (например, /System/Settings/passwd) и скриптами GoboLinux (например, /System/Links).
    • Links/ — Содержит директории с симлинками на файлы из /Programs.
      • Environment/ — Ссылки на файлы окружения. Эти файлы собираются вместе в один файл, который потом загружается шеллом, позволяя программам устанавливать переменные окружения.
      • Executables/ — Содержит ссылки на файлы из директорий bin и sbin каждого пакета.
      • Headers/ — Эта директория содержит ссылки на файлы из директории include каждого пакета.
      • Libraries/ — Ссылки на файлы из директории lib каждого пакета.
      • Manuals/ — Содержимое man и info.
      • Shared/ — Ссылки на файлы из директории share каждого пакета.
      • Tasks/ — Ссылки на файлы из директории Resources/Tasks каждого пакета.
    • Settings/ — Конфигурационные файлы и ссылки на файлы из директории Settings каждого пакета.
      • BootScripts/ — Скрипты, используемые при загрузке системы. Это симлинк на директорию Settings/BootScripts/, находящуюся в /Programs/BootScripts.
    • Variable/ — Различные логи, временные файлы и файлы очередей.
      • tmp/ — Временные файлы.
    • Kernel/ — Директории, относящиеся к ядру.
      • Boot/ — Программы и файлы конфигурации, используемые во время загрузки системы. Здесь находятся ядро и конфигурационные файлы загрузчика.
      • Devices/ — Файлы устройств (этой директорией управляет udev).
      • Modules/ — Содержит модули ядра, упорядоченные по версии ядра.
      • Objects/ — Предоставляет доступ к информации об устройствах и настройки ядра (появилось в качестве виртуальной файловой системы sysfs в ядре Linux 2.6).
      • Status/ — Предоставляет доступ к информации о процессах (виртуальная файловая система proc).
  • /Files/ — Хранит используемые программами данные, которые не являются частью этих программ. Файлы в данной директории обычно самодостаточные, например, шрифты, кодеки, плагины и тому подобные, которые не требуют управления со стороны менеджера пакетов. Программы могут создавать здесь свои поддиректории, чтобы хранить данные, относящиеся к системе, в которой они установлены. Например, Compile — сборщик пакетов в GoboLinux — использует эту возможность.
  • /Mount/ — Содержит точки монтирования для подключения дополнительных локальных и удалённых файловых систем. Содержит такие точки монтирования, как CD-ROM, Floppy и Zip.
  • /Depot/ — Хранилище пользовательских файлов. Это хранилище пользователи могут организовывать так, как им надо. Никакие поддиректории /Depot/ не входят в стандартную иерархию GoboLinux.

Программа «Compile»

Compile — утилита, позволяющая скачать исходники указанной программы, распаковать их, скомпилировать и установить в систему одной командой (например, «Compile foo», чтобы установить программу foo из исходников). Compile использует простые сценарии компиляции, называемые «рецептами» (англ. «recipes»)[2].

Compile в чём-то схожа[3] с системой Portage в Gentoo, которая основана на FreeBSD Ports и выполняет установку, руководствуясь «ebuild'ами». Но система Portage создана для работы в традиционной файловой иерархии, совместимой с FHS, а система Compile расширяет возможности файловой иерархии в GoboLinux до сферы управления пакетами. Так, в GoboLinux файловая система служит менеджером пакетов, (см. «The Ideas Behind Compile»[4]).

Система Compile появилась в GoboLinux версии 011. До этого велись разговоры о портировании системы Portage из Gentoo в GoboLinux в качестве проекта GoboPortage на Sourceforge.net.[5][6]

Другие особенности Compile:

  • Скачивает исходники пакетов из первоисточника: хранилище дистрибутива (или одно из его зеркал) содержит только рецепты. Рецепты могут скачиваться налету либо заранее все сразу.
  • Использует минималистичные и декларативные сценарии компиляции: обычная последовательность «configure; make; make install» может быть записана в виде двухстрочного рецепта, что очень облегчает поддержку рецептов в актуальном состоянии.
  • Поддерживает зависимости в стиле GoboLinux: программы, скомпилированные пользователем «вручную» тоже учитываются при учёте зависимостей пакетов.
  • Не зависит от путей: может работать в так называемом режиме «Rootless»[7] — установке GoboLinux, например, в директорию $HOME внутри другого дистрибутива.

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

Файловая иерархия

В иерархии GoboLinux файлы сгруппированы по функциональному назначению в категории с использованием индексации, основанной на симлинках. Индекс хранится в директории /System/Links/: все исполняемые файлы доступны в /System/Links/Executables/, все библиотеки — в /System/Links/Libraries, и так далее. Такой подход устраняет традиционные, характерные для FHS различия между несущественными файлами, находящимися в /usr, и критически необходимыми файлами, которые находятся в корне /. Разработчики других дистрибутивов стараются этого придерживаться, потому что такие различия были когда-то полезны, но сегодня, в совершенно другой, современной среде, они не являются необходимостью.

Симлинки

Существуют символические ссылки, обозначающие обычные директории Unix, но указывающие во структуру директорий GoboLinux. Поэтому можно найти директории /etc, /var/log и usr/bin на старых местах. Эти симлинки указывают на эквивалентные директории в /System/Links/, так что ключевые пути, такие как /bin/sh или /etc/passwd, остаются корректными. Такие ссылки совместимости скрываются из виду с помощью модуля GoboHide для ядра. Этот модуль, который реализует сокрытие файлов в Linux, используется чисто из эстетических соображений и вовсе не обязателен.

Суперпользователь

Суперпользователь, традиционно известный как «root» с UID равным 0, может иметь любое другое имя в GoboLinux, выбираемое при установке. В отличие от других дистрибутивов, в GoboLinux домашняя директория суперпользователя вовсе не /root, а /User/NAME — как и у других пользователей. Согласно статье hisham’а, так было решено, потому что ему никогда не нравилось понятие обособленного суперпользователя.

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

GoboLinux использует собственную процедуру запуска, в отличие от других дистрибутивов Linux, в которых применяются системы запуска в стиле BSD и System V. В директории /System/Settings/BootScripts лежат несколько файлов, которые полностью управляют процессом загрузки: BootUp и ShutDown выполняются, соответственно, во время запуска и остановки системы. В дополнение к ним можно создавать скрипты для различных «уровней запуска» (англ. «runlevel»), чтобы управлять способами, которыми может быть загружена система (например, создать скрипт Single для однопользовательского режима, Multi — для многопользовательского, Graphical — для графического режима, и так далее). Файл /System/Settings/BootOptions отделяет настройки системы от других скриптов. Скрипты для запуска или останова демонов и применения настроек находятся в /System/Links/Tasks и могут быть запущены скриптами загрузки.

Релизы

Релизы нумеруются в восьмеричной системе счисления. Авторы говорят, что они выбрали её из-за нуля в первой цифре (в языке Си при записи чисел в восьмеричной системе в первой цифре ставится ноль), и является насмешкой над гонкой за версиями, происходившей среди дистрибутивов примерно в 1999 году. Если читать число как десятичное, то происходит предсказуемый «скачок» версии каждые 8 релизов. До версии 014 в GoboLinux не было минорных релизов, то есть версия состояла всего из одного числа, чтобы не вводить в заблуждение, что один релиз более стабилен, чем другой. Традиция была нарушена при выпуске релиза 014.01 — обновления, которое содержало, в основном, исправления багов релиза 014.

  • 014.01[8] — 30 марта 2008: обновление для релиза 014, содержащее исправления багов и несколько обновлений пакетов.
  • 014 — 31 декабря, 2007: новый стабильный релиз, включающий обновления пакетов, исправления багов и новые версии утилит управления GoboLinux'ом.
  • 013 — 2 ноября, 2006: добавлена утилита Listener', позволяющая следить за событиями в файловой системе и назначать действия, выполняемые автоматически.
  • 012 — 6 июня, 2005: добавлена утилита Manager для управления системой в графическом интерфейсе.
  • 011 — 7 июня, 2004: добавлена утилита Compile — инструмент сборки пакетов в GoboLinux.
  • 010 — 7 января, 2004: добавлен графический установщик, доступный в среде рабочего стола, запущенного с LiveCD.
  • 007 — 22 октября, 2003: добавлена директория Resources для хранения метаданных о пакетах.
  • 006 — 9 мая, 2003: добавлен модуль GoboHide, введено использование песочницы для установки пакетов.
  • 005—2003: первый публичный релиз в сети.
  • Релизы до 005 использовались только внутри группы разработчиков.

Портирование

По данным на март 2006 года Gobolinux официально выпускается только под i686, и портирование под i386 носит частный характер, а потому неполный. Однако в 2003 году Hisham Muhammad, главный разработчик в проекте GoboLinux, написал «Сляпанное наспех руководство по портированию»[9] для тех, кто хотел портировать GoboLinux под платформу PowerPC и другие архитектуры. Он также занимался портированием сам.[10] Были получены версии для встраиваемых систем, таких как ARM и SuperH, которые легко делались с помощью утилиты Bootstrap[11], специально созданной для автоматизации портирования.

См. также

Примечания

Ссылки




Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Полезное


Смотреть что такое "GoboLinux" в других словарях:

  • GoboLinux — Parte de la familia GNU/Linux Desarrollador ? …   Wikipedia Español

  • GoboLinux — Bildschirmfoto GoboLinux Basisdaten Entwickler …   Deutsch Wikipedia

  • Gobolinux — Bildschirmfoto GoboLinux Basisdaten Entwickler …   Deutsch Wikipedia

  • GoboLinux — Famille Linux États des sources Logiciel libre et Open Source Dernière version stable …   Wikipédia en Français

  • GoboLinux — Infobox OS name = GoboLinux caption = GoboLinux website = http://gobolinux.org/ developer = family = Linux source model = Free Software released = latest release version = 014.01 latest release date = release date|2008|03|30 latest test version …   Wikipedia

  • Comparison of Linux distributions — Technical variations of Linux distributions include support for different hardware devices and systems or software package configurations. Organizational differences may be motivated by historical reasons. Other criteria include security,… …   Wikipedia

  • Linux-Distributionen — Eine Linux Distribution ist eine Zusammenstellung von Software auf Basis des Linux Kernels. Inhaltsverzeichnis 1 Populäre Distributionen für Heimrechner 2 Weitere Distributionen für Heimrechner 2.1 Distributionen nach dem KISS Prinzip 2 …   Deutsch Wikipedia

  • Liste der Linux-Distributionen — Eine Linux Distribution ist eine Zusammenstellung von Software auf Basis des Linux Kernels. Inhaltsverzeichnis 1 Populäre Distributionen für Heimrechner 2 Weitere Distributionen für Heimrechner 2.1 Distributionen nach dem KISS Prinzip 2 …   Deutsch Wikipedia

  • ARM architecture — This article is about a computer processor architecture. For other uses, see ARM (disambiguation). Logo ARM Designer ARM Holdings Bits …   Wikipedia

  • Liste von Linux-Distributionen — Das Linux Maskottchen Tux Diese Liste enthält thematisch und alphabetisch geordnete, relevante Linux Distributionen. Eine stichwortartige Beschreibung gibt nur die wichtigsten Alleinstellungsmerkmale wieder. Mehr Informationen zu den einzelnen… …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»