Вернуться в раздел "Документы" >>>

Frenzy LiveCD. Записки разработчика

Статья из журнала "Мой компьютер" N52(275)/29.12.2003

Автор: Сергей МОЖАЙСКИЙ

С чего все начиналось

Мысль о создании собственного LiveCD именно на базе FreeBSD возникла у меня достаточно давно. Дистрибутивы на базе Linux (в частности Blin) меня не во всем устраивали, поскольку я привык работать именно с FreeBSD, и самостоятельное создание нового линуксового дистрибутива - сложное занятие для фришника (впрочем, верно и обратное :-)).

Останавливали меня две вещи. Первое - мне хотелось уменьшить размер системы до минимума и уместить ее на 3-дюймовый CD (чтобы удобнее было с собой носить), а как это сделать с FreeBSD, я не знал. Второй задачей было создание загрузочного CD, но этот вопрос слабо документирован, а анализ Makefile'ов так и не дал результатов.

Но произошло событие, которое стало толчком к созданию Frenzy. В конце июля я прочел статью, в которой ее автор рассказывал как ему удалось уместить FreeBSD в 20 мегабайт. Попробовал сам - получилось. Первое препятствие было преодолено.

Следующей задачей было сделать загрузку с CD. После долгой борьбы с конфигами (корневая файловая система упорно желала монтироваться с винчестера) это тоже удалось. Попутно узнал, что есть аналогичные проекты, более того, они есть в портах FreeBSD. Дальнейшая работа заключалась в правке загрузочных скриптов (очень помогли материалы проекта FreeSBIE) и уменьшении размеров пакаджей (XFree удалось урезать до 30 Мб).

Почему система была названа Frenzy? Ну, во-первых, название созвучно с FreeBSD. Кроме того, поначалу это действительно была безумная идея (frenzy idea), ведь LiveCD-дистрибутивы в основном делаются на базе Linux :-).

Изначально я не планировал распространять получившуюся систему. Однако результат показался довольно удачным не только мне, поэтому 5 августа я все же объявил выход Frenzy 0.1. Анонс появился на nixp.ru, через пару дней об этом написали на opennet.ru. Пошли первые письма и добавления в список контактов ICQ.

Frenzy вышла в свет

Итак, прочитав о возможностях Frenzy, люди, естественно, желали опробовать ее в работе. Увы, все, что я смог сделать на тот момент - выложить сборочные скрипты, поскольку неожиданно для меня возникла проблема с размещением iso-имиджа. Как выяснилось, 60 мегабайт (именно столько весит iso-имидж Frenzy, упакованный bzip2) - довольно большой трафик для нашего города... Договориться о временном размещении или даже однократной закачке файла удалось не сразу. И вот 8 августа исошник разошелся по нескольким FTP-серверам, предоставленным добровольцами. Началось :-).

После того, как сама Frenzy и информация о ней распространилась по Сети, мне оставалось ждать отзывов и смотреть за реакцией интернет-сообщества.

Отзывы были самыми разными. В первой версии, конечно, не обошлось без багов. Проблемы возникали с устройствами, поддержку которых мне негде было проверить (USB-мыши, wavelan). Многострадальный скрипт автомонтирования переписывался несколько раз из-за ошибок в работе с extended-разделами. Однако благодаря помощи пользователей системы баги удалось найти и устранить. На основе пожеланий пользователей в версии 0.2 был изменен список программ - я далеко не "мастер не все руки" и о существовании некоторых интересных программ просто не знал.

Новости о Frenzy появлялись на разных ресурсах, ссылки на мой сайт я находил в разных форумах и обсуждениях статей. Был весьма удивлен, увидев инфу о Frenzy на молдавском новостном сайте о Linux, но это не идет ни в какое сравнение с шоком, который я испытал при виде нескольких строчек на словацком сайте, посвященном FreeBSD: "Поскольку описания на английском языке я не нашел, а русский язык я учил очень давно в школе, смотрите сами - скачайте Frenzy тут" :-).

Что может Frenzy

Итак, что же можно сделать с помощью этого "инструмента системного администратора"? Начнем с того, что это полноценная операционная система, в которой вполне можно работать в случае, если с винчестера компьютер не загружается. С помощью Frenzy можно быстро превратить компьютер в тестовый маршрутизатор, файерволл, NAT, DNS, NFS-сервер. Можно работать не только с локальными, но и с сетевыми дисками NFS или SMB.

Имеется набор распространенных архиваторов (rar, zip, cabextract, unace). Для работы с DOS-дискетами без предварительного монтирования можно использовать пакет mtools и графический файловый менеджер MToolsFM. В системе имеются различные текстовые редакторы, в том числе ViM и biew, последний является к тому же шестнадцатеричным редактором и дизассемблером.

И какой же Unix без интернета? В качестве графического браузера предлагается Опера (она была выбрана в первую очередь из-за своего сравнительно небольшого размера), есть и текстовые браузеры lynx и links. Есть программы для работы с почтой и Usenet, общения в ICQ и IRC.

Мониторинг загрузки системы можно вести с помощью gkrellm. Утилиты disktype и gpart помогут в поиске "пропавших" разделов диска, а для восстановления данных могут пригодиться fatback (для FAT) и ffsrecov (для FFS, файловой системы FreeBSD). Кроме того, данные на дисках можно проверить с помощью антивирусной программы Drweb версии 4.30. А если вы подозреваете наличие rootkits - "закладок" в вашей UNIX-системе, проверить это можно с помощью chkrootkit и cops.

Из программ удаленного администрирования в наличии есть rdesktop для подключения к Windows Terminal Server и tightVNC - улучшенный вариант известной мультиплатформенной программы удаленного управления ПК.

Конечно же, не обошлось без программ для проверки безопасности сети. Присутствуют Nessus, nmap, snort и множество других, менее известных, но не менее полезных программ.

Процесс разработки

Создание первой версии Frenzy было достаточно сложным процессом. Я не пытался сразу добиться полностью автоматического рабочего процесса, поэтому "скомпилировать ядро и положить сюда, а модули скопировать туда", "руками разобрать пакадж и добавить симлинки" - это были еще самые простые задачи при создании релиза :-).

Я работал над Frenzy несколько иначе, чем это принято в аналогичных проектах - при сборке использовалась готовая установленная FreeBSD. Это не лучший путь, но по крайней мере он довольно быстрый (iso-имидж собирается за 5-7 минут). Тестовые сборки отлаживалась в VMware, после чего рабочая сборка (билд) записывалась на CD и проходила "боевое крещение" на реальных компьютерах.

Главной особенностью системы - уменьшенный размер пакетов. В Frenzy версии 0.1 эту операцию я проводил вручную, и ее описание достойно отдельной статьи :-). Но при сборке второй версии, прикинув объем работы, я все же решил автоматизировать этот процесс. Для сборки теперь используются стандартные пакаджи FreeBSD, с которыми после установки производятся следующие операции.

  1. Использование утилиты strip для всех динамических библиотек и удаление статических библиотек.
  2. Удаление неиспользуемых локализаций программ в соответствии со списком (зачем нам X-Chat на китайском или французском языке в русскоязычной системе?).
  3. Удаление include-файлов, info-файлов (все man-страницы остались).
  4. Применение индивидуальных патчей для некоторых пакетов. Например, удалив модули поддержки DRI из XFree, я сэкономил 14 Мб.

Благодаря всем этим действиям удалось уменьшить размер Frenzy с 330 до 196 мегабайт.

Правда, не все пакаджи так просто стали работать на read-only файловой системе. Дольше всего я боролся с drweb и nessus (сканер безопасности). Они упорно пытались записывать данные в те области файловой системы, куда на компакте записывать нельзя. Специально для них пришлось создавать хитрую структуру симлинков в /var.

Конечно же, для Frenzy пришлось написать несколько дополнительных скриптов для загрузки и конфигурации. При загрузке автоматически монтируются разделы жесткого диска, восстанавливается сохраненная конфигурация с дискеты, автоматически определяется тип мыши. X Window при первом запуске настраивается автоматически. Для упрощения настройки локальной сети и PPP-соединения тоже были написаны диалоговые скрипты. И наконец, для версии 0.2 наконец-то была написана краткая документация.

Будущее системы

Естественно, прогресс не стоит на месте, и система продолжает развиваться. Конечно же, следующие версии Frenzy будут уже на базе FreeBSD 5 (к тому времени, надеюсь, она уже станет STABLE). Приоритетным направлением развития является создание сжатой файловой системы, также планируется пополнить набор приложений новыми полезными утилитами. Дополнительную информацию о Frenzy можно прочитать на сайте проекта: http://frenzy.org.ua.

 http://frenzy.org.ua/ru/art/dev_notes.shtml  [ 07.09.07 10:13 ]

 
 

#StopWarInUkraine