Смесь бульдога с носорогом, или Debian GNU/kFreeBSD

Алексей Федорчук
8 апреля 2009 г

Поводом для данной заметки послужило сообщение о том, что в рамках проекта Debian обрёл официальный статус субпроект Debian/kFreeBSD, ранее развивавшийся сам по себе. Правда, от признания официальности нового установочного диска на debian.org/CD не появилось (пока?). Но была доступна недавняя, январская (то есть ещё до-официальная) версия — в вариантах для архитектур i386 и AMD64. Она была у меня скачана практически в момент появления, и в виде образа для AMD64 поджидала своего часа. Каковой и наступил тогда, когда я ознакомился с соответствующей новостью.

Однако сначала немного истории. То, что FreeBSD оказала значительное влияние на развитие многих дистрибутивов Linux’а — общеизвестно. Универсальный инсталлятор и конфигуратор её, sysinstall, повлиял на установочную программу Slackware и его многочисленных прямых наследников и идейных преемников. Под влиянием системы портов FreeBSD были созданы ports дистрибутива CRUX, ABS Archlinux’а, портежи Gentoo. Были и попытки прямого перенесения системы портов (и разработанной по их образу и подобию pkgsrc) на дистрибутивы Linux’а, в первую очередь Slackware.

Менее известны примеры обратного воздействия отдельных дистрибутивов Linux’а на Free- и другие BSD. Тем не менее, таковым тоже насчитывается не мало лет. В частности, во время максимума имперских амбиций Debian’а, было создано сразу три таких проекта:

Debian GNU/NetBSD — как легко понять из названия, перенос механизма apt и сопряжённой с ним инфраструктуры на ядро NetBSD, славящееся своей мультиплатформенностью;

Debian GNU/FreeBSD — система, образованная ядром и юзерландом FreeBSD, базирующимися на общесистемной библиотеке BSD libc, надстроенная тем же комплексом apt, собираемым посредством той же BSD libc;

Debian GNU/kFreeBSD — буква k в имени её, видимо, призвана подчеркнуть, что от FreeBSD в этом проекте было взято только ядро, а большая часть родного юзерланда заменена GNU-аналогами, да и вся система в целом собирается при посредстве библиотеки glibc (сиречь GNU Libc).

Интересна также попытка перенесения системы портежей Gentoo на ядро FreeBSD (а также и OpenBSD).

Судьба этих проектов была различна. Проект Debian GNU/NetBSD тихо, мирно и незаметно развивается себе на протяжении ряда лет. Судя по всему, основная его цель, как и NetBSD вообще — всеохватность. Что подчеркивается девизом проекта:

Because we can
Потому что мы можем

Проект Gentoo/FreeBSD развивается на протяжении ряда лет с переменным успехом, то замирая (в частности, по лицензионным соображениям), то восставая из пепла. Хотя ныне и он в рамках Gentoo имеет статус официального.

Debian GNU/FreeBSD прекратил своё развитие, и похоже, что навсегда — в том числе и потому, что физически погиб сервер проекта. Хотя из всех перечисленных он выглядел наиболее логичным, представляя собой, в сущности, FreeBSD Distributions, в котором место традиционных портов заняла инфраструктура apt.

Наконец, предмет нынешней заметки — Debian GNU/kFreeBSD. Последний вариант этого дистрибутива — iso-образ размером чуть больше 100 Мбайт. После чего оставалось его только сболванить и попытаться инсталлировать.

Забегая вперёд, отмечу, что такого гибрида мне ещё видеть не доводилось — ни с точки зрения инсталляции, ни в уже установленном виде. Так что начну с самого начала.

А начинается дело вот как: грузится ядро FreeBSD и BSD Loader, что завершается появлением меню последнего в почти традиционном виде, за одним исключением:

  1. Boot Debian (defaults)
  2. Boot Debian withot ACPI
  3. Boot Debian in Safe mode
  4. Boot Debian in single user mode
  5. Boot Debian with verbose logged
  6. Escape to loader prompt
  7. Boot Debian with USB keyboard
  8. Reboot

Можно видеть, что меню практически ничем не отличается от нормального Free’шного — возникает только резонный вопрос: а при чём здесь Debian? Ведь окромя ядра FreeBSD, у нас пока ничего не загружено. Но оставим это на совести разработчиков…

Интересен реликтовый пункт про загрузку с USB-клавиатурой — много сейчас можно найти машин с клавиатурой иной? Впрочем, умолчальный вариант загрузки поддерживает USB-клавиатуры ничуть не хуже (хотя и не лучше — родовая болезнь последних версий FreeBSD в виде периодического исчезновения устройств ввода с соответствующим интерфейсом имеет место и здесь), так что его можно смело проигнорировать.

А далее, по умолчанию или при выборе того или иного пункта меню, запускается обычный sysinstall — только существенно урезанный функционально (многие пункты его подменю просто не работают никак). Так что надо отправиться в пункт заказной установки (Custom), выполнить разметку диска — создать BSD-слайс и затем разделы на нём, а далее выбрать установку в минимальном объёме (Minimal). Попытка добавить к base system хотя бы страницы man-документации успехом не увенчается — таковых на дистрибутивном носителе просто нету. После этого через пункт Commit подтверждаем правильность выбора и ждём окончания процедуры дисковой разметки и установки базовой системы.

Заметим, что в основе последней сборки Debian GNU/kFreeBSD лежит ядро FreeBSD 7.1, казалось бы, гарантирующее поддержку ZFS. Однако, поскольку таковая в sysinstall не предусмотрена, то задействовать эту файловую систему на стадии установки не удастся ни в каком виде — а уж о размещении на ней корня файловой иерархии говорить не приходится (даже в том «костылеобразном виде, как это реализовано в PC-BSD). И это было первым основанием для грусти. И, увы, не последним…

Однако продолжим про установку. По завершении дисковой разметки и развёртывания базовой системы на экране появляется предложение переключиться на третью виртуальную консоль (посредством Alt+F3) для продолжения инсталляции. И здесь мы видим некие ошмётки уже от Debian Installer’а — в виде предложения выбрать регион (то есть, судя по некоторым косвенным данным, часовой пояс). Выбираем Europe -> Moscow — и, судя по экранным сообщениям, становимся свидетелями установки GNU-аналогов утилит BSD-юзерланда.

Далее предлагается включить службу автоматического реконфигурирования пакетов посредством dpkg-reconfigure. Ответ по умолчанию — NO, с чем я не замедлил согласиться.

Затем предлагается настроить сетевой интерфейс из списка доступных, данном в номенклатуре FreeBSD (то есть по именам чипов сетевых карт). Забегая вперёд, опять же замечу, что можно выбирать любой. Или не выбирать ничего — все равно сеть работать не будет.

Следом идёт выбор звуковой карты. Поскольку к тому времени мне стало совсем уже грустно, я наудачу ткнул в Intel ICH#, каковой и имел место быть в моей машине. Проверить правильность настройки мне всё равно не удалось — по причинам, которые скоро станут ясны.

Последний пункт этой псевдо-Debian’овской установки — выбор модулей для загрузки. В частности, именно здесь следует подключить модули поддержки ZFS — впрочем, пользы от таковой будет не много.

Всё. Происходит автоматический возврат на первую виртуальную консоль, в главное меню sysinstall, предваряемый предложением перезагрузиться, так как установка системы, по мнению её разработчиков, закончена.

Отметив про себя, что никаких более настроек (вроде ввода пароля администратора, создания пользовательских аккаунтов и прочего) выполнено не было, следую рекомендации. И после соответствующих сообщений оказываюсь перед предложением авторизоваться в системе. Чисто интуитивно понимаю, что авторизоваться надо root’ом — и действительно, после этого (без ввода пароля) оказываюсь в командной строке bash’а.

Для начала проверяю, насколько правильно настроилась сеть. И убеждаюсь, что она не настроилась никак: команда

# ifconfig are0

(это имя моего сетевого интерфеса) не даёт никаких сведений об IP-адресе. А команды ping не обнаруживается вовсе (опять же, забегая вперёд, замечу, что это далеко не всё, чего нет в системе).

Вспоминая свой Free’шный опыт, рассчитываю настроить сетевое соединение с помощью sysinstall. И зря: в установленной системе утилиты sysinstall нет как класса.

Огорчившись ещё более, чем раньше, перезагружаюсь с установочного диска, отправляюсь в меню Configure, выбираю там пункт Networking (благо, он чуть ли не единственный, открываемый в этом меню) и в нём подпункт Interfaces (с поддержкой DHCP, каковая во всамделишней FreeBSD у меня всегда работала безотказно) — с тем же результатом. То есть без всякого результата.

Полный уже вселенской грусти, повторяю установку с нуля, только вместо немедленной перезагрузки по выходе из третьей консоли повторяю попытку конфигурирования сети. Результат по прежнему нулевой.

Грусть постепенно переходит в состояние озлобления монтёра Мечникова. Злорадно начинаю смотреть, а что же в системе таки есть? Оказывается, что в ней есть файл /etc/apt/source.list с указанием пары репозиториев проекта Debian. Правда, за отсутствием сети воспользоваться ими не удаётся.

А нет… Да много чего там нет. Кроме команды ping, нет, например, команды less — конфиги предлагается просматривать через more. Нет инструментария для работы с файловой системой ZFS — утилит zpool и zfs. Что сводит на нет её поддержку ядром, якобы подключённую (впрочем, следов этой поддержки не обнаруживается ни в файле /boot/loader.conf, ни в /etc/defaults/loader.conf…

Собственно, на этом можно и заканчивать описание. Ибо, за отсутствием самых необходимых утилит и приложений, и по невозможности установить их из сети, ничего в этой системе практически сделать нельзя. В общем, как сказал бы персонаж известной книжки, душераздирающее зрелище…

Начиная эту заметку, я хотел ещё немного потеоретизировать на тему целесообразности переноса GNU-юзерланда на ядро FreeBSD. Однако по мере приближения к концу желание это пропало — думаю, читатель сам сможет сделать выводы. Добавлю только, что по сравнению с Debian GNU/FreeBSD другая попытка портирования окружения Debian на ядро, отличное от Linux, а именно, Nextenta, производит впечатление законченности и доработанности (в чём можно убедиться здесь).

Грустно, девушки, как сказал бы Великий Комбинатор…

12 комментариев к “Смесь бульдога с носорогом, или Debian GNU/kFreeBSD

  1. Хм а настроить сеть через ifconfig, тоже не удается что ли, и нет dhclient?
    Скачать что ли посмотреть своими глазами :) кстати да по моему идея Debian GNU/FreeBSD как то более логична. А less не было и в Debian etch, в lenny вроде появилась, ну или мне всегда так «везло».

  2. 2 FAndrey
    Да руками-то завсегда всё можно сделать.
    Просто с настройкой моей сети на автомате без проблем справлялись и sysinstall, и Debian Installer по отдельности.
    А вот гибрид не справился :)

  3. >Можно видеть, что меню практически ничем не отличается от нормального Free’шного — возникает только резонный вопрос: а при чём здесь Debian? Ведь окромя ядра FreeBSD, у нас пока ничего не загружено.

    Ну вы же не ядро в конце-концов грузите, а операционную систему. А у Debian понятие операционной системы несколько другое. Ну не станут они называть систему по имени ядра, точно так же как не называют Debian Linux’ом. Debian != Linux.

    В Debian GNU/kFreeBSD не будет ZFS: http://www.linux.org.ru/jump-message.jsp?msgid=3610512&cid=3612203 Соответствующие модули удалены из-за несовместимости с лицензией на src/sys/compat/opensolaris.

    Не смогли настроить сеть через инсталлятор — так это проблема инсталлятора, а не системы. less в минимальной установке Debian вроде и не было никогда, всегда ставил вручную.

    >Собственно, на этом можно и заканчивать описание. Ибо, за отсутствием самых необходимых утилит и приложений, и по невозможности установить их из сети, ничего в этой системе практически сделать нельзя. В общем, как сказал бы персонаж известной книжки, душераздирающее зрелище…

    Я не увидел попытки ручной настройки сети, не видел попытки настроить сеть через /etc/network/interfaces, а потому выводы не претендуют на объективность. Попытка переустановки системы выглядит уж очень по-виндузячьи, это только там при повторении абсолютно тех же действий результат может оказаться другим, в Unix-системах результат, как правило, от количества повторов не зависит.

  4. 2 www2
    Видите ли, времена, когда мы должны были убедить себя, что данным дистрибутивом можно пользоваться, минули 10 лет как.
    Ныне разработчики любого нового дистрибутива должны убедить меня, что мне есть ради чего заниматься ручной настройкой. И вообще чем бы то ни было ещё.
    Разработчики _этой_системы меня не убедили :)

  5. По мне так, затея глупая. В обратную сторону — Linux/uFreeBSD — было бы интересней.

  6. Нельзя сажать пингвинятников за FreeBSD. После неудачной попытки настроить систему через графические утилиты, они делают вывод, что система гавно — ну конечно, виноват кто угодно, кроме меня. У сообщества пользователей Linux, по моим наблюдениям, серьезные проблемы со знанием матчасти.

  7. >Видите ли, времена, когда мы должны были убедить себя, что данным дистрибутивом можно пользоваться, минули 10 лет как.

    >Ныне разработчики любого нового дистрибутива должны убедить меня, что мне есть ради чего заниматься ручной настройкой. И вообще чем бы то ни было ещё.

    Вот так значит, да? ОНИ ВАС? Да кто вы такой, собственно? Сдался им пользователь с психологией убунтовода. А тем, кто займётся ручной настройкой, достоинства объяснять не нужно.

    >Разработчики _этой_системы меня не убедили :)

    Разработчики никого и не пытались убедить, что их поделием можно пользоваться. У них что-то начало неплохо получаться, они посчитали, что смогут довести проект до более потребного состояния и выложили то что есть в ветку unstable. unstable не для тех, кому нужно всё разжёванное, чтобы только проглотит осталось. Там как раз происходит процесс разжёвывания.

    >Ну, настроил я сеть через dhclient и что? GPG error.

    Объяснять что делать дальше я воздержусь. А то так можно вас за ручку вести, объясняя как поставить GPG-ключи от репозитория, как настроить X’ы с KDE. Потом даже если будет картинка, звук и сеть, вы всё ещё будете спрашивать: «и что?»

    Я же говорю: если не готовы жевать, не видите достоинств, не умеете отличать полуфабрикат от продукта — оно вам не нужно.

  8. >Нельзя сажать пингвинятников за FreeBSD. После неудачной попытки настроить систему через графические утилиты, они делают вывод, что система гавно — ну конечно, виноват кто угодно, кроме меня. У сообщества пользователей Linux, по моим наблюдениям, серьезные проблемы со знанием матчасти.

    Очень точная фраза. Только alv — приверженец FreeBSD, а потому вы описали ситуацию, обратную наблюдаемой.

  9. 2 www2
    > Да кто вы такой, собственно?
    _
    А сам я кто? Простой советский юзер
    Семейный добрый человек
    Живу, как ты, в двадцатый век
    (с) народное

    То есть тот самый юзер, ради которого всё это дело и затевалось.

    Разводить дискуссию в каментах мне лениво, поэтому подытожу в нескольких словах:
    Ребята из двух хороших продуктов сделали один. Плохой. Затратив на это благородное дело почти 10 лет.
    Вот и всё…

  10. >То есть тот самый юзер, ради которого всё это дело и затевалось.

    Ошибаетесь, не для вас это делалось, а для себя.

    >Разводить дискуссию в каментах мне лениво, поэтому подытожу в нескольких словах: Ребята из двух хороших продуктов сделали один. Плохой.

    Ещё не сделали, поэтому оценивать рано.

    > Затратив на это благородное дело почти 10 лет. Вот и всё…

    Ах, трагедия, их жизни прожиты зря! Они безусловно никчёмные неудачники и прожили свою жизнь зря. То ли дело, если бы Ваше Величие оценило бы их работу на отлично, вот бы они кипятком пИсать бы начали и поняли бы: жизнь прожита не зря, наш дорогой и уважаемый alv доволен нашей работой.

    (Извините, что пишу тут гадости — я просто развлекаюсь. Категоричность некоторых Ваших суждений и отсутствие весомых аргументов меня сильно забавляет. Особенно если учесть, что и сами-то Вы не сделали чего-либо такого, что бы иметь право судить других. А потому, буду чаще посещать ваш юмористический сайт.)

Обсуждение закрыто.

Перейти к верхней панели