9 Переход на OpenBSD

За дополнительной информацией обратитесь к http://sites.inka.de/mips/unix/bsdlinux.html.


9.1 - Подсказки для пользователей других Unix-подобных ОС



В то время как OpenBSD является весьма консервативной Unix-подобной операционной системой и будет понятной для использовавших ранее другие Unix-подобные системы, существуют важные отличия. Новички в OpenBSD должны смотреть на свои собственные впечатления: если ваши знания Unix основаны на опыте работы с одним из вариантов Linux, OpenBSD может вам показаться "странным". По мнению большинства, Linux выглядит очень странно для кого угодно, кто начинал с OpenBSD. Вы должны научиться понимать разницу между "стандартом" и вашим собственным опытом пользования системой.

Если вы изучали Unix по одной из хороших книг по Unix в общем, понимаете "Философию Unix" и после этого расширяете свои знания на конкретной платформе, OpenBSD будет для вас очень "правильным" и знакомым Unix. Если вы учили Unix по методу "наберите это, чтобы сделать то" или по такой книге как "Изучение PinkBeenie v.8.3 за 31.4 часа" и считаете, что вы "знаете Unix", скорее всего OpenBSD вы найдёте сильно отличающейся.

Важное отличие OpenBSD и множества других операционных систем - документация. Разработчики OpenBSD уделяют большое внимание системным страницам руководств (man). Страницы man являются авторитетным источником документации по OpenBSD -- не это ЧаВО, ни сторонние независимо поддерживаемые страницы, ни "HOWTO" и т.д. Когда разработчик меняет что-то в системе, ожидается что вместе с изменением кода произойдёт изменение соответствующей man страницы, ни "позже" или "когда дойдут до этого", или "пока кто-то не пожалуется". Страница руководства существует практически для каждой программы, утилиты, драйвера, конфигурационного файла и так далее в базовой системе. Ожидается, что пользователь будет искать ответ на свой вопрос на странице руководства, прежде чем обратиться за помощью в списки рассылки.

Вот некоторые часто обнаруживаемые различия между OpenBSD и другими вариантами Unix:

    OpenBSD - практически чистая "BSD-подобная" Unix, близко следующая архитектуре 4.4BSD. Linux и SCO Unix являются системами стиля "System V". Некоторые Unix-подобные операционные системы (включая некоторые дистрибутивы Linux) смешивают много особенностей SysV и BSD. Часто запутанность возникает в связи с загрузочными скриптами, но в OpenBSD используется традиционный для 4.4BSD стиль загрузки с использованием rc(8).
    OpenBSD - самодостаточная полноценная система, рассчитанная на работу "вместе". Это не "ядро плюс утилиты", которые могу быть обновлены независимо друг от друга. Обновление системы (ядро, утилиты пользователя, приложения) порознь может привести к проблемам.
    Поскольку множество приложений не разработаны для непосредственной компиляции и исполнения в окружении OpenBSD, эта операционная система предоставляет дерево портов, систему, с помощью которой пользователи могут легко получить исходный код, модифицировать его под OpenBSD, установить зависимости, скомпилировать, установить и удалить приложения в стандартизированной и поддерживаемой форме. Прекомпилированные пакеты создаются и распространяются командой портов OpenBSD. Пользователям поощряется использование готовых пакетов вместо сборки своих собственных.
    OpenBSD использует CVS для отслеживания изменений исходного кода. OpenBSD первопроходец в использовании анонимного CVS для получения полного дерева исходных кодов любой версии OpenBSD (начиная с 2.0 до текущей плюс любые ревизии всех файлов между этими версиями) в любое времяю Вы можете получить доступ к самым последним изменениям в течении нескольких часов после их внесения. Так же существует удобный и простой для использования веб интерфейс к CVS.
    Очередной официальный релиз OpenBSD на CD или FTP выходит каждые 6 месяцев по расписанию. Снапшоты для всех поддерживаемых платформ делаются периодически и содержат текущий разрабатываемый код. Мы поставили себе цель хранить дерево в состоянии, постоянно актуальном и готовом для сборки. Поскольку в дерево вносятся изменения в связи с его развитием, иногда бывают проблемы со сборкой из исходников, но это экстраординарное событие, кратковременно и бысто исправляемое нами.
    OpenBSD включает в себя мощную систему шифрования, которая не может поставляться вместе с ОС в ряд стран.
    OpenBSD проходит тщательную и постоянную проверку на безопасность для гарантии качества (и таким образом, безопасности) кода.
    Ядро OpenBSD /bsd.
    Жесткие диски обозначаются /dev/wd (IDE) и /dev/sd (SCSI или эмулирующие SCSI диски устройства).
    /sbin/route без ключей в Linux выводит таблицу маршрутизации, в OpenBSD (и некоторых других ОС), вы нуждаетесть в параметре "show" или используйте "netstat -r".
    OpenBSD НЕ поддерживает журналируемых файловых систем, таких, как ReiserFS, IBMs JFS или SGIs XFS. Вместо этого используются Soft Updates чрезвычайно стабильной Unix Fast File System (FFS) для получения высокой производительности и надежности.
    OpenBSD имеет пакетный фильтр (PF), а не ipfw, ipchains, netfilter, iptables, или ipf. Это означает что трансляция адресов NAT (называемая в Linux IP-маскарадингом), фильтрация настраиваются с помощью pfctl (8), pf(4) и pf.conf(5). Ознакомьтесь с руководством PF User's Guide для получения детальной информации по настройке.
    Адреса интерфейсов размещаются в /etc/hostname.<interfacename>(к примеру, /etc/hostname.dc0 , NIC using the dc(4) driver). Здесь может содержаться имя (resolved in /etc/hosts) вместо IP адреса.
    Имя машины в /etc/myname.
    Шлюз по умолчанию в /etc/mygate.
    В OpenBSD по умолчанию используется оболочка /bin/ksh, что есть pdksh, the Public Domain Korn shell. Также имеются csh и sh. Оболочки bash и tcsh могут быть добавлены из пакетов или собраны из портов. Пользователям, знакомым с bash, желательно попробовать ksh(1) перед установкой bash в систему -- он можеть предложить вам  большинство функций bash.
    Управление паролями в OpenBSD отличается от других Unix-подобных операционных систем. Текущие пароли помещаются в файл master.passwd(5), доступный для чтения только администратору root. Файл должен редактироваться только с помощью vipw.
    Устройства именуются по драйверу, а не по типу. К примеру, нет устройств eth*. Будут ne0 для сетевой карты NE2000 или xl0 для 3Com Etherlink XL или для сетевого устройства Fast Etherlink XL, и так далее. Все эти драйвера имеют страницы руководств в секции 4. Так, для получения информации о драйвере 3c905, необходимо использовать "man 4 xl".    
    OpenBSD/i386 использует "двухуровневую" систему разбивки диска, где первый слой - fdisk, видимый из BIOS раздел, знакомая большинству пользователей IBM совместимых компьютеров. Второй слой - disklabel, традиционная разбивка для BSD систем. OpenBSD поддерживает до 15 disklabel разделов диска, одновременно находящихся в одном fdisk разделе. Это позволяет организовать сосуществование OpenBSD/i386 с другими ОС, включая другие Unix-подобные. OpenBSD должен быть на одном из четырех "primary" разделов.
    Некоторые другие ОС рекомендуют проводить тюнинг ядра системы. Пользователям OpenBSD рекомендуется использовать стандартное ядро GENERIC как качественно проверенное разработчиками. Пользователи, пытающиеся провести тюнинг ядра, могут столкнуться с рядом проблем, по которым помощь разработчиками не будет оказана.
    OpenBSD постоянно работает над строгим соблюдением лицензий и поддержанием безопасности проекта. Поэтому некоторые новые версии программного обеспечения, не соответствующие лицензии или не удовлетворяющие требованиям безопасности, никогда не будут включены в состав системы OpenBSD. Безопасность и следование лицензии всегда будут приоритетом перед "номером версии".



9.2 - Двойная загрузка Linux и OpenBSD



Да! Это возможно!

Прочитайте файл INSTALL.linux.


9.3 - Преобразование вашего файла паролей из стиля Linux (или любого иного стиля Шестой Редакции) в BSD-стиль



Первым делом следует выяснить, разделён ли ваш файл паролей из Linux на теневой и обычный. Если так, то установите John the Ripper из пакетов или портов (security/john) и используйте утилиту unshadow из его комплекта для соединения файлов passwd и shadow в один файл стиля Шестой редакции.

В файл паролей Linux (назовём его linux_passwd) нужно добавить ::0:0 между четвёртым и седьмыми полями. awk(1) справляется с этим:


  # cat linux_passwd | awk -F : '{printf("%s:%s:%s:%s::0:0:%s:%s:%s\n", \
  > $1,$2,$3,$4,$5,$6,$7); }' > new_passwd


К этому моменту вам может захотеться отредактировать файл new_passwd и удалить из него пользователя root и другие системные записи, которые уже есть в вашем файле паролей OpenBSD или просто не применимы в OpenBSD. Так же убедитесь в отсутствии дубликатов имён пользователей и их идентификаторов между new_passwd и системным /etc/passwd. Проще всего это сделать, начав с нового /etc/passwd:


  # cat new_passwd >> /etc/master.passwd
  # pwd_mkdb -p /etc/master.passwd


На последнем шаге необходимо перестроить /etc/spwd.db и /etc/pwd.db с помощью утилиты pwd_mkdb. Так же она создаст файл паролей стиля Шестой Редакции (без зашифрованных паролей) в /etc/passwd для тех программ, которые его используют. OpenBSD использует более стойкое шифрование для паролей - алгоритм blowfish, который имеет мало шансов быть найденным в любой системе, которая использует файлы паролей стиля Шестой Редакции. Для перехода на более стойкое шифрование просто предложите пользователям запустить "passwd" и изменить свой пароль. Новый пароль будет зашифрован алгоритмом по умолчанию (обычно blowfish, если только вы не редактировали /etc/login.conf). Или вы можете запустить passwd username от имени root.


9.4 - Запуск бинарных программ для Linux в OpenBSD



OpenBSD/i386 позволяет запускать исполняемые файлы Linux, когда ядро собрано с опцией COMPAT_LINUX и с помощью sysctl установлено kern.emul.linux. Если Вы используете ядро GENERIC (а как правило это именно так), то опция COMPAT_LINUX включена, и т.о. всё, что Вам нужно сделать, это:


  # sysctl kern.emul.linux=1


Для того чтобы это происходило автоматически при каждой перезагрузке компьютера, уберите символ # (диез --- символ комментария) находящийся в начале строки


  #kern.emul.linux=1      # enable running Linux binaries


в файле /etc/sysctl.conf, чтобы в результате получилась строка


  kern.emul.linux=1       # enable running Linux binaries


и перезагрузите компьютер для вступления изменений в силу.

Для запуска любых не статически слинкованных исполняемых файлов Linux (их большинство) вам следует обратиться к инструкции на странице руководства compat_linux(8).

Простой путь получить большое количество полезных библиотек Linux - установить пакет redhat/base с ближайшего FTP зеркала. для получения дополнительной информации о пакетах и системе портов читайте FAQ 15 - Пакеты OpenBSD и система портов. Для установки вышеупомянутого пакета вам следует выполнить


# export PKG_PATH=ftp://your.ftp.mirror/pub/OpenBSD/4.3/packages/i386/
# pkg_add -i fedora_base


Имейте в виду, что pkg_add(1) автоматически запускает sysctl для установки kern.emul.linux в правильное значение во время установки этого пакета. однако он не изменяет /etc/sysctl.conf, так что если вы хотите иметь эмуляцию Linux включённой по умолчанию, вам следует изменить значение kern.emul.linux в этом файле.


9.5 - Доступ к Вашим Linux файлам из OpenBSD



OpenBSD поддерживает файловую сисему EXT2FS. За дальнейшей информацией обращайтесь к четырнадцатому разделу FAQ.

Перевод соответствует $OpenBSD: faq9.html,v 1.90 2008/04/30 21:24:58 nick Exp $