Дети мои, сегодня мы поговорим о... мегатруЪ FreeBSD-based LiveCD для сисадминов Frenzy, который создан и развивается усилиями одного человека - Сергея Витальевича Можайского (ник techniX). Живёт он в Мелитополе, Украина.
Досье:
Системный администратор (FreeBSD)
Веб-дизайнер, веб-программист.
А также любитель demoscene и трекерной музыки.
Пока мы не забыли - его электронные счета:
WebMoney
WMID: 787997569138
Кошельки:
Z160863056584
R030806916003
E769987310799
U338032981175
Yandex.Деньги
Номер счета: 4100152761183
RuPay
Номер счета:
RU76862769
e-gold
Номер счета:
2348167


Статья построена на материалах авторства самого Сегрея, которые перемежаются с беседой в ICQ.

...С чего все начиналось
Мысль о создании собственного 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. Я хотел бы тебя немножко проинтервьюировать для ещё не вышедшего в свет журнала "Сверхновая Реальность".
- Ну давай.
- В качестве статьи о русских народных умельцах в нашем веке. Скажи что-нибудь о патриотизме...
- Кхм...
- ...Я от русских патриотов...
- Проблема в том что я живу не в России... И родился не там :)
- Но всё равно кацап ведь?
- Да, для меня русский язык родной и думаю я на нем. У меня мать родом из России, бабушка там живет, но о русском патриотизме я вряд ли что-то осмысленное сказать могу. Честно - я даже не знаю о чем и говорить. Никогда не задумывался об этом - наверное, я не особо патриотичный человек. И вопросы политики меня мало волнуют.
- А вопросы демографии и выживания? (Немного перебрал пафоса)
- ?
- Я имел в виду превращение молодёжи в "дебилов с полифоническими телефонами" и т. п.
- Да уж, это больная тема. А по поводу отупения - тут мне есть что сказать.
- О, ну тогда скажи. Отожги. Это то, чего и надобно.
- Я довольно тесно общался со студентами, и мои наблюдения весьма неутешительны. Интерес к знаниям у людей отсутствует совершенно, учатся только ради "бумажки". В итоге среди выпускников только нескольких человек можно назвать специалистами. Почему так случилось? У меня есть несколько объяснений этому.
Первое объяснение - навязывание других жизненных приоритетов. Основной приоритет современной молодежи - "бабло", "тачки" и прочая мишура. И это в принципе понятно - такими людьми легче управлять, манипулировать. В этом преуспело и наше TV с бесконечными клипами рэперов, увешанных золотыми бирюльками и разъезжающих на сверкающих тачках. Жуть. Про кино я вообще молчу - редко когда попадается фильм, после просмотра которого хочется обсудить идеи, в нем высказанные...
Второе - "самая дружественная к пользователю операционная система", которая наиболее распространена в нашей стране, не особенно способствует развитию мышления. Выучил, какие кнопки нажимать - уже пользователь, научился на форме компоненты мышкой накидать - уже программист. В итоге имеем массу кодеров-обезьянок, которые пишут глючные проги для пользователей - таких же обезьянок, которые при пропадании ярлыка с рабочего стола впадают в ступор. "Зачем думать - вот компьютер, он умный, пусть он думает..."
Ну и последнее - знания мало ценятся в современном мире. Сравните на досуге зарплаты, например, менеджеров с бухгалтерами и программистов с сисадминами. И какой смысл приобретать все эти знания, если можно получать намного больше, при этом не особо напрягаясь?
Вот пожалуй и всё. Выводы делать не буду, здравомыслящие люди способны сделать их самостоятельно.
- Браво. И как всегда частокол вместо вывода. А как ты относишься к РПЦ?
- Не отношусь. И не сталкивался.
- Атеист?
- "Атеизм - тоже религия". Скорее агностик.
- Агностик - это "не знаю о Боге ничего конкретного"?
- Типа того.

...Frenzy вышла в свет
Итак, прочитав о возможностях Frenzy, люди, естественно, желали опробовать ее в работе. Увы, все, что я смог сделать на тот момент - выложить сборочные скрипты, поскольку неожиданно для меня возникла проблема с размещением iso-имиджа. Как выяснилось, 60 мегабайт (именно столько весит iso-имидж Frenzy, упакованный bzip2) - довольно большой трафик для нашего города... Договориться о временном размещении или даже однократной закачке файла удалось не сразу. И вот 8 августа исошник разошелся по нескольким FTP-серверам, предоставленным добровольцами. Началось :-).
После того, как сама Frenzy и информация о ней распространилась по Сети, мне оставалось ждать отзывов и смотреть за реакцией интернет-сообщества.
Отзывы были самыми разными. В первой версии, конечно, не обошлось без багов. Проблемы возникали с устройствами, поддержку которых мне негде было проверить (USB-мыши, wavelan). Многострадальный скрипт автомонтирования переписывался несколько раз из-за ошибок в работе с extended-разделами. Однако благодаря помощи пользователей системы баги удалось найти и устранить. На основе пожеланий пользователей в версии 0.2 был изменен список программ - я далеко не "мастер не все руки" и о существовании некоторых интересных программ просто не знал.
Новости о Frenzy появлялись на разных ресурсах, ссылки на мой сайт я находил в разных форумах и обсуждениях статей. Был весьма удивлен, увидев инфу о Frenzy на молдавском новостном сайте о Linux, но это не идет ни в какое сравнение с шоком, который я испытал при виде нескольких строчек на словацком сайте, посвященном FreeBSD: "Поскольку описания на английском языке я не нашел, а русский язык я учил очень давно в школе, смотрите сами - скачайте Frenzy тут" :-).


- На какой ОС сидишь больше всего?
- FreeBSD (на работе десктоп под ней).
- С какого возраста ты почувствовал тягу к ЭВМ?
- Наверное, лет так с 14, когда первый раз увидел компьютер у моего друга. До этого я ими не особо интересовался, хотя и знал, что они из себя представляют. А вот компьютер дома у меня появился аж через 7 лет...
- С каким именно железом и ПО ты поначалу имел дело?
- О, эти рассказы нынче как сказки воспринимаются :) Работал я и с Электроника-МС1501 (XT-совместимый ПК 3MHz/640Kb RAM/FDD, на нем работал DOS и софт под него), и с Хоббитами (это такие Спектрум-совместимые машинки советского производства, писал на них софт на бейсике). Потом добрался и до полноценных ПК - работал с всеми линейкой процессоров от Intel - 286, 386, 486, Pentium, P2 и дальше.
- А про Вектор-06Ц не слыхал?
- Нет, про Вектор даже не слышал. Работал еще с советскими компами "Импульс", забавные штуки.
- А когда ты познакомился с FreeBSD? Была ли перед ней винда?
- Винда перед ней была довольно долго :) с фрей я познакомился уже в универе, курсе так на втором.
- А эмблема проекта - это усечённые вилы?
- Да нет, не вилы. Скорее сочетание букв F и R
- Ну отожги что-нибудь ещё, жажду отжигов твоих аки живыя воды колодезныя.
- (смеётся)
- Нет, серьёзно, люблю почитать умного человека. Поэтому и Розанова люблю.
- Я не привык так много писать. Мне проще код писать чем статьи. Ты Громова читал? "Мягкая посадка" книга. О том, чем может закончиться процесс дебилизации общества.
- "А там, если повезёт, и ядерная война". Нет, ещё не читал.

...Что может Frenzy
Итак, что же можно сделать с помощью этого "инструмента системного администратора"? Начнем с того, что это полноценная операционная система, в которой вполне можно работать в случае, если с винчестера компьютер не загружается. С помощью Frenzy можно быстро превратить компьютер в тестовый маршрутизатор, файерволл, NAT, DNS, NFS-сервер. Можно работать не только с локальными, но и с сетевыми дисками NFS или SMB.
Имеется набор распространенных архиваторов (rar, zip (а также набирающий популярность 7zip - прим. K.), 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, с которыми после установки производятся следующие операции:
- Использование утилиты strip для всех динамических библиотек и удаление статических библиотек.
- Удаление неиспользуемых локализаций программ в соответствии со списком (зачем нам X-Chat на китайском или французском языке в русскоязычной системе?).
- Удаление include-файлов, info-файлов (все man-страницы остались).
- Применение индивидуальных патчей для некоторых пакетов. Например, удалив модули поддержки 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.