От редакции: Удивительно, но факт. Не успели мы запустить в производственный процесс статью Сергея А. ЯРЕМЧУКА «Из грязи во фрязи» (МК № 50 (273)) о дистрибутиве Frenzy, как совершенно случайно к нам пришла статья от его создателя Сергея МОЖАЙСКОГО. В ней автор рассказывает об идее создания проекта и его функциональных возможностях. Не пустить такой материал в печать, на наш взгляд, было бы большой ошибкой, ведь не так часто удается выйти на прямой контакт с разработчиком. Интерес к теме подогревает и то, что Frenzy пополняет список отечественных дистрибутивов FreeBSD. Но поскольку мы совершенно на рассчитывали на данный материал, он местами может перекликаться со статьей Сергея А. ЯРЕМЧУКА — тем интереснее будет читателю сравнить взгляды на один и тот же продукт его создателя и независимого пользователя.
С чего все начиналось
Мысль о создании собственного 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.
