После года активной разработки выпущена 5.0-alpha1 версия Bering-uClibc ветки LEAF — дистрибутива для встраиваемых систем, в первую очередь предназначенного для создания сервисов, не требующих для своей работы постоянного хранилища данных, примонтированного в режиме записи, например, для работы на маршрутизаторах и брасах. Для загрузки подготовлено 6 iso-образов, а также архив с входящими в состав дистрибутива src-пакетами.
LEAF (в далеком прошлом — Linux Router Project, окончательно отпочковавшийся в проект LEAF в 2001 году в связи с превращением мэйнтейнером официального сайта linuxrouter.org в площадку выражения личного политического протеста) — многофункциональный embedded-дистрибутив (а точнее — несколько веток, из которых на данный момент активно разрабатывается лишь Bering-uClibc) на современном ядре для архитектуры x86 с поддержкой SMP (или без SMP — для i486/geode ядер), с экспериментальной поддержкой x86_64 и заложенной возможностью портирования на другие архитектуры, с uClibc в качестве библиотеки libc и busybox в качестве shell-оболочки и базового окружения.
Для своей работы дистрибутив требует минимум памяти (способен в минимальном наборе запуститься на i486 с 16 МБ памяти, для браса на 500+ абонентов и шейпингом загружаемых данных htb+hash на 2к адресов хватает 512 МБ памяти); работает с RAM-диска, на который при старте подгружает указанные в файле конфигурации пакеты, оформленные в формате ".lrp" (архивы .tgz с присутствующими служебными файлами для менеджера пакетов). Запускается с устройства с FAT/FAT32/ISO9660 ФС, используя в качестве загрузчика syslinux/isolinux — с CD-привода (с конфигурацией на внешнем накопителе), IDE/SATA-диска или DOM-модуля, либо с USB Flash. Конфигурация хранится в упакованном tar-архиве. Имеется иерархический CLI для упрощения конфигурирования, с группировкой конфиг-файлов по пакетам.
Дистрибутив подгружает только необходимые для работы устройств модули ядра; по умолчанию в moddb.lrp включены драйверы наиболее популярных сетевых карт; имеется архив со всеми модулями ядра и механизм автоматического поиска/загрузки требуемых модулей из этого архива (своеобразный plug'n'play, для запуска требует наличия минимум 64 МБ оперативной памяти на машине). Реализована также подгрузка требуемых пакетов с накопителя по зависимостям.
Статус альфа-выпуска для данного релиза присвоен в связи с тем, что пока нет рабочего образа под какую-либо embedded-платформу, только отдельные разработки-концепты, в связи с чем может быть дальнейшая серьезная модификация системы сборки и скриптов — в то время как бета-стадия подразумевает более-менее устоявшиеся основные пакеты/скрипты. В остальном, альфа вполне стабильная и пригодная к использованию.
Ключевые отличия 5.0 от 4-й ветки:
- Переработан инструментарий сборки и сборочные файлы. Теперь возможна кросс-компиляция под любую платформу (в качестве эксперимента — собирались образы под ARM, + есть вполне работоспособный порт под x86_64), возможна компиляция пакета прямо из его каталога в source простым вызовом make, не требуется наличие ld-uClibc.so в /lib для сборки; также компиляция проходит намного быстрее, так как большинство пакетов собираются с распараллеливанием средствами make (исключения — где-то с десяток пакетов, где разработчики не озаботились зависимостями между целями make);
- Разделены окончательно ядро и initrd, из-за чего родился пакет initmod — второй cpio.gz рамдиск, несущий модули, необходимые для доступа к хранилищу пакетов. Теперь ничего не мешает использовать несколько веток ядра в рамках одного и того же релиза;
- Обновлены ядро Linux до ветки 3.2.x , uClibc до 0.9.33.2, GCC до 4.6.3;
- Модули теперь хранятся в упакованном (.gz) виде — для экономии памяти;
- Добавлена поддержка zram со свопом на zram диске — включается указанием размера свопа zswap в leaf.cfg, по умолчанию отключена (-1);
- Добавлен accel-ppp.
|