LinuxShop.ru   PrefNews.Ru  |  DotStyle.Ru  |  HotStuff.Ru  |  Hurd.ru  








 
НОВОСТИ МАГАЗИН БИБЛИОТЕКА LINUXBEGIN GENTOO.RU REDHAT UNIX4ALL ФОРУМ  
Logo
LinuxBegin (en) Руководства Проекты Обратная связь
Все разделы
Рассылка (архив в HTML, архив в RAR)
Лучшие ссылки
Список всех статей (big)
Все комментарии

Знакомство с Linux
Linux Navigator
Что делать, если вы установили GNU/Linux
Введение в Linux
LNAG на русском языке

Обзор новостей (New!)
Ссылки на статьи (New!)
Таблица аналогов (en)
LinuxHumor / Linux Wallpapers (en)
Linux Tips & Tricks (old)

Форумы
Регистрация (fixed)
Ваш аккаунт
Добавить статью

Обратная связь / Email
My homepage (old)

Разделы

Что такое Linux
Некоторые возможности Linux
Дистрибутивы
Переход с Windows на Linux (Nowindows)
Руководства, HOWTO, FAQ
Hardware и драйвера
Программное обеспечение
Запуск Windows-программ в Linux. Эмуляторы.
Все разделы >>


Поиск по сайту

Подписка
OS Linux для начинающих.
Linux Tips & Tricks. [временно не выходит]

Top 10
Замечательный Мир Linux 2.6 - часть 1 (5) 3649
Джентельменский набор пингвинятника (4) 2959
Замечательный Мир Linux 2.6 - часть 2 (1) 1950
А нафига нам вообще такие ОС? (56) 1752
Заврались уже, дальше некуда (18) 1687
Сравнение почтовых программ в Windows и Linux v1.1... (31) 1679
Джентльменский набор пингвинятника 2 (0) 1621
Знакомство с Linux. Часть 18 (1) 1598
Ещё про Linux в офисе (из личной переписки) (5) 1297
Пингвин в офисе (5) 1234

Лучшие ссылки
Rus-linux.net.
*nix project.
Atmsk.ru.
~t-alex.
Все ссылки >>

Открывай ворота! (full)
(Другие *NIX-системы)


- Сергей А.ЯРЕМЧУК, 13.10.2003, Мой Компьютер Weekly -

На мой взгляд, основная причина того, почему пользователи игнорируют BSD-системы, - отсутствие информации об их преимуществах в сравнении с Windows. Подобного рода информации, ориентированной на рядового пользователя, как говорится, кот наплакал. Попробуем обратить внимание пользователей на основные возможности BSD-систем.

Найти подходящее приложение под Windows не составляет труда, а вот пользовательские программы под Unix только начинают набирать обороты. Насущная задача обозревателя - разобраться во всем их многообразии, определить лидеров и, конечно, донести об этом пользователю. Частично в этом нелегком деле могут помочь статьи Петра ?Roxton? СЕМИЛЕТОВА "Джентльменский набор пингвинятника" (МК ?39, 41 (262, 264)). У меня, например, на сегодняшний день собрано 2.5 Гб еще не опробованного софта, не говоря уже о здоровенном списке интересных ссылок. В общем, не могу я сразу обо всем интересном рассказать.

Но давайте от слов перейдем к делу и начнем знакомиться с ОС OpenBSD. Так уж получилось, что мой плановый поход на сайт OpenBSD (http://www.openbsd.org) совпал с выходом следующей версии системы 3.3, установку которой я и буду рассматривать. Взять необходимые файлы абсолютно бесплатно можно, например, с официального сервера ftp://ftp.openbsd.org/pub/OpenBSD/3.3 или с любого другого зеркала, список которых можно найти на сайте (только не со штатовских - реэкспорт криптографии официально оттуда запрещен, так что пускай янки спят спокойно :-)). Хотя в продаже можно встретить и CD-ROM с системой, но скачать ISO-образ, чтобы потом спокойно загрузиться с него, увы, не получится - это единственная услуга, которая не поддерживается. Для Intel-совместимых платформ все необходимые для установки файлы находятся в директории i386, дополнительно в tools можно найти некоторые вспомогательные инструменты вроде rawrite. В каталоге i386 лежит множество файлов, для успешной установки и работы нашей системы хватит лишь некоторых (общий объем закачиваемых файлов колеблется от 35 - 200 Мб). Назначение их таково:

floppy33.fs - для настольных систем; поддерживает PCI и ISA, простые SCSI-адаптеры и отчасти PCMCIA;

floppyB33.fs - для серверов; поддерживает RAID и SCSI, но исключена поддержка некоторых устройств нижнего уровня, а также устаревших (например, EISA- и ISA-);

floppyC33.fs - для ноутбуков; поддерживает Cardbus- и PCMCIA-устройства, встречающиеся в этих компьютерах;

cdrom33.fs - комбинация всего вышеперечисленного; может быть использована для создания 2.88-Мб дискеты или загружаемого CD-ROM;

cd33.iso - готовый для записи на болванку образ cdrom33.fs.

Вышеперечисленные файлы предназначены для первоначальной загрузки и для проведения спасательных работ; по функциональности они идентичны, отличаются только поддерживаемым оборудованием, объем - 1.40 Мб (кроме последних двух по 2.87 Мб). Для установки на домашний компьютер необходим floppy33.fs при загрузке с флоппи-диска или cd33.iso - с загрузочного CD-ROM?а. Сама же система находится в tgz-архивах:

bsd - универсальное GENERIC i386 ядро

bsd.rd - сжатое RAMDISK-ядро; внедренная файловая система, содержит инсталляционные инструменты. Может использоваться для простой инсталляции;

base33.tgz - основные бинарники, библиотеки и скелет файловой системы, необходимые для минимальной работы (29.5 Мб);

comp33.tgz - утилиты и заголовочные файлы (/usr/include), необходимые для компилирования программ в С, С++ и fortran, плюс man-страницы по теме (15.8 Мб);

etc33.tgz - здесь содержатся конфигурационные файлы системы. При первой установке данный набор должен быть обязательно установлен; при модернизации все конфигурационные файлы необходимо обновлять вручную (1.43 Мб).

game33.tgz - очень важный набор приложений, позволяющий не умереть со скуки в свободное время (2.6 Мб);

man33.tgz - все man-страницы, не включенные в остальные комплекты. Хотя обилие документации под Unix сейчас уже даже считается недостатком (из-за занимаемого места и количества), установите обязательно: некоторые команды отличаются своими параметрами от Linux (5.78 Мб);

misc33.tgz - включает системные словари (/usr/share/dict) и некоторую документацию (1.78 Мб);

xbase33.tgz, xfont33.tgz, xserv33.tgz, xshare33.tgz - содержит программы, заголовочные файлы, серверы и библиотеки - в общем, все, что нужно Х-Window. Если компьютер, на который устанавливается OpenBSD - не сервер, и планируется использование графической оболочки, лучше забрать все (или взять прямо с сайта http://www.xfree86.org) - 8.84 Мб, 29.9 Мб, 14.5 Мб, 1.53 Мб.

Как видите, список немаленький. Если кому показалось много, то на первое время достаточно ограничиться обязательными base33.tgz, etc33.tgz и bsd (все вместе - 35.3 Мб), а также man33.tgz, где можно найти ответы на попутно возникающие вопросы. После того как пакеты будут скачаны, можно приступать к установке. Весь процесс довольно подробно описан в файле INSTALL_i386, который лежит здесь же на ftp, а также в OpenBSD 3.3 Installation Guide (http://www.openbsd.org/faq/faq4.html), перевод которого, правда, на момент написания статьи еще не полностью законченный, валяется на сайте поддержки русскоязычных пользователей системы - http://www.openbsd.ru. Для новой системы, конечно, желательно иметь еще один жесткий диск, но можно обойтись и одним - OpenBSD отлично уживается на одном диске со всеми популярными на сегодня операционными системами. Только всегда старайтесь использовать для создания и форматирования разделов средства, идущие в поставке вместе с устанавливаемой операционной системой, тогда проблем будет меньше. Для начала необходимо создать диск, с которого будем загружаться. Если на компьютере имеется дисковод, тогда под Windows при помощи программы rawrite.exe (или rawritewin.exe) записываем образ floppy33.fs на дискету. Под Linux можно воспользоваться командой dd:

Если кто уже расстался с этим раритетом, то запишите на болванку cd33.iso - для этого подойдет любая программа для записи, в том числе и под Windows (там есть опция записи iso-образов, ее и используйте). Теперь необходимо куда-то записать файлы с системой. Впрочем, можно все поименованные файлы (а также исходники системы - но о них ниже, давайте хоть это пока установим) записать на CD-ROM, сделать его загрузочным и в дальнейшем не ломать себе голову. Я не хотел особо утруждать себя - просто создал загрузочную дискету, а все остальное записал на отдельный CD-RW диск; при этом, чтобы затем меньше приходилось набирать в командной строке (лентяй я, что поделаешь), tgz- и bsd*-файлы я поместил в каталог /3.3/i386. После этих манипуляций - 5 минут релаксации (на всякий случай - нервы могут понадобиться), выставляем BIOS и загружаемся с дискеты (CD-ROM'a). Неважно, с помощью чего вы загружались - система ведет себя одинаково.

После появления приглашения >boot просто нажмите Enter (или help) - в память загружаются ядро и программы, необходимые во время инсталляции и спасательных работ (в т.ч. rescue). При этом будут выдаваться сообщения о найденном оборудовании (белые на синем фоне, dmesg) - постарайтесь проследить за ними, обращая внимание на failed и тому подобное; после остановки их можно полистать при помощи Shift+PgUp, а в дальнейшем просмотреть в /var/run/dmesg.boot. После система остановится, и появится такое сообщение:

Нам предлагают на выбор три варианта:

I - установка; при этом на указанных разделах будут уничтожены все данные;

U - апгрейд версии, при этом не будут запрошены файлы из etc33.tgz, которые можно затем обновить вручную, также данный тип инсталляции не предполагает пропуск релизов. Поэтому версию 3.1 сначала нужно проапгрейдить до 3.2, а затем уже до 3.3;

S - войти в командную оболочку для подготовительных или спасательных работ.

Еще хочу пару слов сказать о сложности установки - это то, чем обычно пугают пользователя. Да, хотя установка OpenBSD не блещет графическими красотами и от начала до конца проходит в командной строке, если делать все внимательно, никаких особых сложностей возникать не должно (вот настроить ее потом, это да - придется немножечко? почитать). К тому же система выдает вполне внятные подсказки. У меня на моем трехсотом Целероне на это уходит от 10 до 15 минут времени, в зависимости от настроения. При этом установку можно прервать в любом месте, нажав Ctrl+C, и начать заново, набрав install. После выбора варианта установки система поприветствует вас, чтобы приободрить:

И дальше будет задавать каверзные вопросы. При этом иногда выдается подсказка для дальнейших действий; набрав !, можно выйти в shell, а !command позволяет выполнить любую команду оболочки, не прерывая хода инсталляции. Ответы по умолчанию (подходящие в большинстве случаев) заключены в квадратные скобки - [done]. Предметом следующего вопроса будет используемый тип терминала:

Мы работаем за персональным компьютером, никаких излишеств, поэтому просто выбираем то, что нам подсовывают (жмем Enter). Следующим будет клавиатурный вопрос:

Если предлагают выбрать другую кодировку для клавиатуры, почему бы и не попробовать? Далее предлагают выбрать тип используемой клавиатуры:

последний вариант для тех, у кого USB?шный маус.

Затем следует вопрос об имени таблицы; в предлагаемых вариантах есть и ru с ua:

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

Когда система нас вдоволь попугает вопросами о необходимости сохранения данных на диске где-нибудь подальше (куда не доберется программа-инсталлятор), последует вопрос о продолжении инсталляции. Если еще не испугались (данные мы, конечно же, сохранили, и потому можем кромсать диск нещадно), отвечаем y (ответ по умолчанию остановит процесс):

Подготовка дисковых разделов в OpenBSD производится в два этапа.

Первым делом диск разбивается на slice при помощи fdisk, затем уже в slice определяются разделы с помощью disklabel. Терминология и обозначение разделов (а также их рекомендуемое количество) во FreeFSD и OpenBSD ничем не отличаются, поэтому, если чего будет неясно, посмотрите подробности в статье об установке FreeFSD - повторяться неохота.

Чтобы совсем уж нам не унывать, система опять подбадривает пользователя, готового нажать заветную комбинацию:

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

Думаю, ясно, что wd0 - первый диск в системе, wd1 - второй; SCSI-диски и устройства RAID будут обозначены как sd0, sd1 и далее. Если система не обнаружила какие-то диски, то скорее всего, они не поддерживаются (я, признаться, пока не сталкивался с такой ситуацией). Теперь, когда с диском определились, программа установки предлагает использовать весь диск как один слайс. Если больше не планируется систем на этом диске, или если данный компьютер - сервер, то такой вариант вполне подходит (отвечаем y). В остальных случаях выбираем предлагаемый по умолчанию вариант и готовимся резать вручную: сама система с дополнительными программами места больше 1 Гб вряд ли потянет - по сегодняшним меркам это не так уж и много, - а на соседнем слайсе можно приютить и FreeBSD. Что ж, жмем Enter.

После чего будет выведена текущая геометрия диска, и появится приглашение к вводу дальнейших команд. Для справки о назначении тех или иных параметров вводим help:

Из всего этого списка особого внимания требуют следующие:

r или reinit - очищает существующую таблицу разделов, создает один большой OpenBSD-раздел и отмечает его как активный. Аналогично ответу yes на вопрос use *all* of ...

p или print - показывает текущую таблицу в секторах: если ввести p m, то в мегабайтах, p g - в гигабайтах;

e или edit - редактирование или изменение записи таблицы;

f или flag - отмечает раздел как загрузочный, то есть тот, с которого будет производиться загрузка;

А также exit или quit. Заметим попутно, что последние имеют совершенно противоположное действие. Если exit позволяет выйти, не внося никаких изменений, в таблицу разделов (очень полезная опция, если хочется начать разбиение сначала), то quit перед выходом все изменения запишет.

Для редактирования вводим е со следующим свободным номером раздела:

После чего выведется таблица, содержащая не используемые unused-разделы. Следующим шагом будет вопрос об идентификаторе; для разделов OpenBSD используется a6:

Редактировать текущую таблицу можно в виде Cylinder/Heads/Sectors или напрямую в секторах. Какой вариант использовать - ваше дело; иногда наиболее удобный способ подсказывает информация о разделах (ничего, после пары exit'ов уже появятся навыки :-)):

Дальше необходимо вводить информацию о начальных и конечных значениях секторов, цилиндров - все, о чем спросят. Например, если до этого таблица разделов выглядела так:

то ответы будут такими:

Теперь проверяем при помощи p или лучше p m , что мы там такое натворили:

И проверяем, чтобы вновь образованный slice не залез на раздел с данными. А если что, делаем маленький exit и тренируемся. Обратите внимание - в приглашении появился знак *, указывающий на несохраненные данные. Если OpenBSD будет единственной системой, то нужно проверить наличие знака активности раздела - это опять же * возле его номера. При необходимости этот знак можно установить, использовав опцию f с указанием номера раздела:

Опять проверяем таблицу, и если все нормально, выходим:

Все, теперь на диске появился слайс OpenBSD. Далее необходимо нарезать на нем нужное количество разделов при помощи disklabel, которая запустится автоматически после выхода из fdisk.

Из всех выведенных опций нас интересует всего пять:

a [part] - добавление нового раздела;

d [part] - удаление раздела;

p - печать текущих разделов на экран (можно использовать модификаторы k, m или g для килобайт, мегабайт или гигабайт);

D - очищает все имеющиеся отметки и устанавливает отметку по умолчанию, которая затрагивает только текущий раздел;

m [part] - изменяет существующий раздел.

Для OpenBSD должны быть созданы как минимум два раздела - корневой а (/) и раздел подкачки b (буква с означает весь жесткий диск - даже не пытайтесь использовать или изменить его).

Для начала смотрим имеющиеся разделы.

После вывода информации о геометрии диска получаем что-то вроде

Здесь показано, что на диске объемом 19092.9 Mб (буква с), находятся два раздела MSDOS размером 1498.7 Mб, а также неиспользуемая область размером 17593.2 Mб (смещение offset 1498.7 Mб от начала).

Для начала удаляем все, что есть в unused-разделе а:

И создаем первый раздел в слайсе - это будет корневой, т.е. а; обратите внимание - размер можно указывать в мегабайтах, при этом он автоматически будет подогнан к ближайшему цилиндру.

Затем своп - буква b (при этом FS type swap будет предложен автоматически). Хочу отметить, что все BSD-системы используют своп немного иначе, чем Linux. Если Linux начинает сбрасывать туда данные только тогда, когда оперативная память практически заполнена (по наблюдениям, остается что-то около 10% свободной), то в *BSD условием сброса приложения в своп является отсутствие обращения к странице памяти в течение определенного времени, при этом ОЗУ может быть практически свободным. Поэтому, если есть место, то выделите под своп побольше (в разумных, конечно, пределах):

И далее, используя оставшиеся буквы, разбиваем на нужное количество разделов:

Покончив с разметкой, проверяем снова, что там получилось:

Если результат удовлетворяет, записываем изменения и выходим:

Но это еще не все. Чтобы иметь возможность исправить ошибки, программа установки на всякий случай запросит подтверждение точек монтирования, указывая при этом размер и название раздела - для всех, кроме корневого и свопа. Если все нормально, жмем Enter:

Далее опять явно подтверждаем свое желание искромсать диск:

Уф! После этого можно спокойно вздохнуть - все разделы будут отформатированы, и в случае ошибки все равно уже ничего нельзя будет восстановить.

Самое трудное осталось позади. Далее идут привычные вопросы об имени хоста (сохранится в файле /etc/myname), каковое будет использовано при генерации криптографических ключей для системы в процессе первой загрузки системы. Причем, эта операция будет произведена вне зависимости от того, были ли сконфигурированы сетевые параметры или нет:

Затем система попросит настроить сеть; если установка будет производиться при помощи ftp или NFS, то необходимо правильно ввести все параметры - от этого зависит успех дальнейших действий.

После чего система сама определит имеющиеся сетевые интерфейсы и по каждому задаст вопросы об IP-адресе (для модема подойдет в большинстве случаев dhcp), сетевой маске, DNS-имени и IP-адресе DNS-сервера, а также сетевой маршрут, используемый по умолчанию (IP-адрес провайдера). После чего представится возможность ручного редактирования файла /etc/hosts при помощи ed. Я обычно заношу в него наиболее посещаемые ресурсы с алиасами (для ускорения набора), а также ложные IP-адреса для баннерных сетей, что позволяет избавиться от последних без особых усилий, не прибегая к squid, firewall и т.п. Для этого в файл заношу такие строки (имена узла подставьте сами):

Файл /etc/resolv.conf, в котором описывается порядок поиска имен хостов, привожу к следующему виду (в результате данные сначала разыскиваются в локальном файле):

И в довершение вводим пароль root'a. После этих процедур все диски будут смонтированы и готовы к установке. Следующим этапом будет выбор носителя, с которого будет производиться инсталляция:

Если вы помните, все необходимые для установки файлы были записаны на СD-ROM, поэтому выбираем этот вариант. А так как все файлы находятся в каталоге 3.3/i386, выбираем папку по умолчанию. Приблизительно так.

И наконец пришел час выбора пакетов для инсталляции. Сначала система выдаст вариант по умолчанию и затем предложит убрать или добавить. Чтобы установить все, достаточно просто набрать all; если пакет не нужен, то в предлагаемом варианте ставим -имя_пакета (например, -x* удалит все пакеты X-Window).

Теперь вас опять попросят подтвердить свой выбор, после чего начнется собственно инсталляция. Чтобы в дальнейшем иметь возможность запускать Х-Window, ответьте утвердительно на вопрос (если, конечно, вам это нужно).

Это чтобы занести строку machdep.allowaperture=1 в файл /etc/sysctl.conf.

И теперь выбор временной зоны - для подсказки можно ввести знак вопроса: ?

Все. Установку системы можно считать законченной. После перезагрузки можно начинать эксплуатировать. Первым делом, чтобы знать, за что хвататься, советую прочитать man afterboot, где даны некоторые советы по первоначальной настройке системы. Хотя я и считаю, что компьютер с этой системой после настройки запихивается ногой под стол и дальнейшее конфигурирование осуществляется удаленно при помощи Secure SНell, поэтому необходимости в установке и настройке X-Window нет, а на домашнем компьютере BSD устанавливается скорее для души, которую не хочется омрачать графикой, - но почему бы и нет? Правда, перед запуском ее необходимо поначалу настроить - об этом я уже писал в отдельной статье, где все очень подробно изложил, так что особых проблем, думаю, быть не должно. Кстати, графическую утилиту настройки xf86cfg мне приходилось видеть работающей только в *BSD-системах - ни в одном Linux'e она почему-то нормально ни разу не запустилась. Интересно, что в версию 3.3 i386 включены сразу аж два XFree86 - 4.2.1 и 3.3.6, что обеспечивает поддержку любого набора микросхем.

Вдоволь наигравшись базовым набором утилит (разработчики задумали сделать систему маленькой, но безопасной, а потому многие инструменты в нее не включены по умолчанию), принимайтесь за установку системы портов (то, о чем речь пойдет ниже, в той или иной мере касается и всех остальных *BSD), все файлы которой доступны в архиве ports.tar.gz, который можно найти на ftp (ftp://ftp.openbsd.org/pub/OpenBSD/snapshots/ports.tar.gz, 5.81 Мб). Этот архив обновляется каждую ночь.

Теперь для установки выполняем следующие команды:

Еще можно получить наиболее свежую версию портов при помощи системы контроля версий CVS (concurrent versions system):

Или с любого другого сервера, список которых дан в документации на сайте. Причем, если вам удалось достать СD-ROM с OpenBSD, на нем можно найти дерево CVS - оно, конечно, старовато, но установив его, можно впредь скачивать только обновления, а не тянуть все заново. Теперь появилась возможность устанавливать недостающие программы аж двумя способами - при помощи системы портов и в виде пакаджей. Но важно помнить, что безопасен только базовый набор программ, который проходит полную ревизию защиты; все, что устанавливается дополнительно, уже может иметь баги (хотя разработчики и стараются из всех сил этого избежать), которые могут повлиять на общую стабильность системы. Так что если сисадмину стало известно о проблемах в какой либо программе, не стоит лелеять себя надеждой, что это не про нас - мол, OpenBSD security forever, - лучше тут же обновить ее, не дожидаясь неприятностей.

Пакаджами (которые являются некоторым аналогом rpm-пакетов из мира RedHat и выглядят как простые архивы .tgz) пользоваться проще всего. Достаточно указать утилите pkg_add путь, и пакет будет тут же установлен (например, чтобы не умереть со скуки во время изучения системы):

После чего можно спокойно слушать музыку.

Удалить пакет также просто: pkg_del имя_пакета; получить информацию об установленном пакете - pkg_info. Как видите, вместо непонятных с трудом запоминаемых ключей используются простые команды.

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

При этом программа забирается с сайта разработчика, проверяется на правильность закачки и контрольную сумму, архив распаковывается, добавляются патчи, приложение конфигурируется и компилируется, после чего создается пакадж, который затем устанавливается. Пользователь может при желании менять под свои нужды Makefile или устанавливать необходимые переменные в файле /etc/mk.conf (в качестве примера взяв /usr/share/mk/bsd.own.mk).

Настроив и немного поизучив систему, можно переходить к самому интересному этапу - пересборке всей системы. Хотя у новичков, пришедших из Windows, словосочетание "компиляция ядра" вызывают трепет, в их понимании это что-то из области шаманства и Вуду, но ничего в этом сложного и тем более таинственного на самом деле нет. Это обязательная для серверов и обычная для пользователя часть работы с системой, распространяющейся в открытом коде. Во всех *BSD-системах ситуация значительно облегчается тем, что они не имеют модульной структуры, присущей Linux'у, в котором необходимо обновлять отдельно ядро и отдельно каждую утилиту, входящую в состав дистрибутива. Все *BSD - это законченные системы, к тому же поддерживаемые одним составом разработчиков; поэтому все обновления как правило проходят без осложнений и требуют минимум усилий. Вы спросите, зачем это нужно - все и так ведь работает. Вот именно, что и так, но не хорошо. Во-первых, система собрана под i386-архитектуру, а это не оптимально. Хотя справедливости ради хочется отметить, что выше i686 архитектуры тоже не удастся прыгнуть. А все потому, что...

Как видите, в комплект входит еще старичок GCC 2.95.3, но это не свидетельствует об отсталости. Защита превыше всего, помните об этом - видимо, современные версии не подходят к требованиям разработчиков. К тому же в системный компилятор интегрирована технология защиты стека ProPolice. А так как переполнение стека - любимая лазейка хакера, есть надежда, что враг все-таки не пройдет. Кроме оптимизации, необходимо выкинуть весь ненужный багаж, присутствующий в исходном ядре, по умолчанию содержащем поддержку всех устройств, которые могут встретиться на компьютере, и позволяющем использовать систему на самых разных конфигурациях (опять же справедливости ради хочется отметить, что, используя config с параметрами -e, -u и -о, можно отключить неиспользуемые устройства на работающей системе). Ну скажите, зачем это вам? Кроме того, после выключения всех ненужностей система грузится и работает значительно быстрее. Вторая причина заключается в том, что развитие системы не стоит на месте, она постоянно обновляется и совершенствуется, на все обнаруженные баги и уязвимости появляются заплаты. Кроме того, чтобы получить могучий русский язык в консоли или настроить старую звуковую карту, ядро также необходимо перекомпилировать. Если заинтересовались, поехали дальше.

Обновление системы напрямую связано с тремя понятиями: Release, Stable и Сurrent. В чем их отличие? Release - это та система, которая появляется каждые шесть месяцев на CD-ROM; в настоящее время это 3.3. Stable - это то, что получается из Release в процессе его технического сопровождения, то есть латания обнаруженных дыр в безопасности и исправления ошибок. Сurrent представляет собой самую современную (читай: нестабильную) версию кода и предназначен скорее для разработчиков и для тех, кому срочно нужны новые функции. На основании Сurrent через некоторое время появляется очередной Release. Текущую Stable можно получить из "снимков" СVS или на ftp-серверах, немного устаревшую - на CD-ROM. При этом нам понадобятся два архива - sys.tar.gz (содержит исходные тексты ядра, 13.3 Мб) и src.tar.gz (вся остальная часть системы, 76.6 Мб); гурманы могут скачать еще исходники XFree последней версии, заточенной хакерами специально под OpenBSD - XF4.tar.gz, 61.5 Мб. Процедура обновления запускается следующим образом:

Это для получения Сurrent (при использовании оболочки ksh замените setenv на export). Для stable это будет выглядеть приблизительно так:

Если архив с системными сырцами был скачан по FTP, необходимо его распаковать:

Аналогично поступаем с исходниками ядра:

Во всех *BSD-системах нет графической утилиты, с помощью которой можно отконфигурировать ядро, - все шаманство происходит путем комментирования строк, соответствующих ненужным устройствам, прямо в файле, открытом в текстовом редакторе. Конечно, интерактивность make xconfig упрощает эту процедуру, к тому же в ней доступна подсказка по каждому пункту. Но если необходимо поддерживать сразу несколько разных конфигураций, то, сравнивая разные файлы при помощи утилит grep и diff, можно автоматизировать эту нудную работу. К тому же в текстовом файле сразу видны все опции, и их можно просто удалить (а кто сказал, что их нужно только комментировать?) Конфигурационные файлы ядра находятся в каталоге /usr/src/sys/arch/i386/conf, здесь есть и файлы, заготовленные в расчете на разные ситуации. Нас же интересует файл GENERIC, содержащий все опции, - его изменять не рекомендуется, поэтому просто создаем копию.

Теперь открываем его на редактирование.

В файле содержится более пятисот строк, поэтому вопрос, что отключать, стоит на первом месте. Всего, конечно, рассказать не получится, но пару советов дам (некоторые подробности можно найти в man config и man options). Так, в начале файла содержится набор инструкций вида:

Там же, в начале, удаляем лишние записи option *_CPU, оставляем только 686. Следующая, option GPL_MATH_EMULATE, указывает на эмуляцию математического сопроцессора - не нужно это нам, он уже имеется в аппаратном варианте. Также имеется ряд опций option COMPAT_*, включающий бинарную поддержку некоторых Unix-систем - я оставляю только Linux. Хочется отметить, что опция maxusers 32 означает не максимальное число пользователей, как кажется поначалу. Эта переменная отвечает за более тонкие настройки - например, максимальное число процессов, которое вычисляется по формуле, включающей и число maxusers. Далее идут записи о поддержке тех или иных устройств. Для того чтобы определить, что реально имеется в системе, в другой консоли, куда переходим по Ctrl+Alt+F# (да, здесь в консоли для перехода используется именно три клавиши, как и в Х-Window, что несколько непривычно), вводим:

И сверяемся с этой информацией. Особое внимание надо обратить на сообщения not found, означающие, что в "умолчательном" ядре это устройство не поддерживается.

Так, например, строкам из dmesg, указывающим на найденную звуковую карту -

- соответствуют такие строки в конфигурационном файле:

Советую также оставить как есть различные псевдо-девайсы.

Например, найденному устройству MTRR (Memory Type Range Register), определяющему тип кэширования участков памяти и позволяющему ускорить вывод видео -

- в файле соответствует такая строка:

Так что лучше не выключать то, о чем не имеете понятия. Но если точно знаете, что у вас нет SCSI-, PCMCIA- или ISA-шины, то почему бы не поотключать их? И еще маленький совет: лучше всего поначалу отключать не все сразу, а постепенно, проверяясь после каждого этапа при помощи утилиты config, которая производит синтаксический анализ файла и создает затем каталог с заголовочными файлами и правилом сборки ядра. Ее аргументом является имя созданного конфигурационного файла. Но перед этим для оптимизации кода (на всякий случай) в файле /usr/src/sys/arch/i386/conf/Makefile.i386 заменяем строку CMACHFLAGS= -march=i486 на CMACHFLAGS= -march=i686.

Теперь можно конфигурировать:

Если утилита отработала молча и не выдала ошибок, переходим в созданный каталог с именем будущего ядра:

или просто

Удаляем временные файлы, создаем зависимости и, наконец, компилируем ядро:

На случай, если не удастся загрузиться с новым ядром, сохраняем старое:

А теперь копируем новое ядро на свое законное место:

Перезагружаемся:

Если загрузка с новым ядром не удалась из-за возникшей ошибки, то не паникуем - старое ядро ведь сохранено; просто вводим в строке приглашения:

И повторяем все сначала, устранив возникшую ошибку. От себя хочу добавить: если в Linux'e я насмотрелся достаточно на Kernel Panic в новых ядрах, то несколько раз пересобрав ядро как во FreeBSD, так и в OpenBSD я НИ РАЗУ не видел этого сообщения (конечно, если внимательно подходить к процессу конфигурирования). Может, конечно, просто повезло.

Раз новое ядро уже собрано и работает вовсю, теперь необходимо для закрепления успеха пересобрать всю систему. Это нужно сделать еще и потому, что иногда происходит рассогласование версий библиотек с новым kernel'oм, в результате чего некоторые утилиты, такие как ps, top, who, просто откажутся работать. Но пересобрать систему еще проще. Просто заходим в каталог с исходниками:

Удаляем временные объектные файлы:

И собираем систему:

Дополнительно можно убрать некоторые ненужные в домашнем хозяйстве функции, на которые можно указать в уже упоминавшемся /etc/mk.conf. Например:

Процесс перекомпиляции системы займет времени намного больше, чем перекомпиляция ядра, но в итоге мы получим оптимизированный дистрибутив, заточенный под собственные нужды. На этом, честно говоря, я хотел закончить статью, но вдруг меня осенило: ну да, в итоге получилась самая безопасная система, потому как на ее целостность никто не будет посягать - выхода в Интернет-то ведь пока еще нет! А так как этот вопрос наверняка заинтересует читателя после установки системы, стоит сказать пару слов о том, как его настроить. Если у вас выделенная линия, то для настройки соединения хватит ответов на те вопросы, которые вам задавали во время установки системы, но для столь популярного в народе модемного соединения придется совершить еще пару действий. Во всех *BSD системах протокол РРР (Point to Point Protocol) реализован двумя способами: в виде pppd - демона, встроенного в ядро системы, и демона ppp, который запускается как пользовательская программа. Пользовательскую программу настроить легче, но она использует туннельное устройство tun, позволяющее пользовательским программам самостоятельно обрабатывать соответствующие пакеты, отчего этот метод несколько снижает скорость работы. Настройку пользовательского ррр мы и рассмотрим. Для этого нам должна быть известна следующая информация: телефонный номер провайдера, адрес сервера имен, шлюз, используемый по умолчанию (IP-провайдера), логин и пароль. Некоторые из этих параметров уже занесены в соответствующие файлы во время установки, но мы все равно проверим, на месте ли они. Для начала необходимо убедиться, что в файле при конфигурации ядра содержится такая строка (в "умолчательном" ядре это устройство имеется):

Так советуют разработчики. Но если модем один (а я думаю, так оно и есть), то думаю, хватит и одного устройства. Поэтому можно цифру 2 спокойно заменить на 1.

Теперь необходимо убедиться в наличии /dev/tun0:

Если его нет, создаем его:

Для начальных установок параметров user PPP используется файл /etc/ppp/ppp.conf, который получается на основе шаблонного /etc/ppp/ppp.conf.sample, довольно подробно комментированного:

Файл состоит из двух основных секций default, инструкции которых отрабатываются всегда по умолчанию, и секции(й), описывающей(их) конкретного провайдера.

Примерно так:

Иногда бывает полезным зафиксировать параметр MTU (Maximum Transfer Unit), указывающий на максимальный размер пакета. Если на маршрутизатор приходит пакет большего размера, он разделяется (фрагментируется) на несколько мелких частей, для выполнения требований данной физической сети. Соответственно, тратится время, и это приводит к падению скорости. Возможен и обратный процесс (дефрагментация), но он обычно не реализуется - хотя бы потому что пакеты гуляют по разным каналам. Для Ethernet его значение не превышает 1500, для РРР может быть и меньше (до 500), все зависит от настроек сервера провайдера. В общем, для фиксации MTU после директивы ifaddr прописываем set mtu 1500 или set mtu max 1492 для установления максимального размера блока данных.

Чтобы узнать число MTU, достаточно запустить утилиту ping примерно в таком виде:

Т.е. установлен размер блока данных в 1492 байта (+8 байт служебной информации = максимально возможные 1500 байт); -М hint устанавливает флаг DF (Don't Fragmetation), указывающий на запрет фрагментирования пакета; -v, как и в большинтсве Unix-утилит, выдает дополнительную информацию. Если пакет прошел, значит, MTU равно 1500, а если получено сообщение о недоступности узла, размер MTU и данных следует уменьшить и повторять так до победного. Пингуемый хост должен находиться сразу за сервером провайдера (например, его www- или ftp-сервер) - его можно определить при необходимости с помощью traseroute. Немного отвлеклись. Впрочем, маленькая оптимизация еще никому не вредила.

Чтобы пользователь мог запускать ррр, необходимо ему разрешить это в файле.

Для конкретного пользователя:

Или для всех сразу:

Еще один вариант - создать специального пользователя, входящего в группу network, от имени которого и будет устанавливаться соединение. В общем, сами разберетесь при необходимости.

Теперь добавляем в файл /etc/resolv.conf адрес DNS-сервера провайдера (желательно не менее двух, но и не более трех):

И для журналирования процессов - ррр в файл /etc/syslog.conf:

Все, теперь можно запускать. Программа имеет два основных режима работы: постоянное соединение -ddial, которое поддерживается 24 часа в сутки и при обрыве восстанавливается, и соединение по требованию -auto, устанавливаемое только при попытке выхода в Интернет и обрываемое в течение set timeout при бездействии. Вызывается программа с именем секции файла /etc/ppp/ppp.conf, описывающей провайдера. Например:

или

Теперь можно спокойно гулять по Интернету. Для этого, правда, из web-браузеров в комплекте имеется только lynx, но можно найти и dillo, и Mozilla, и Opera, и два Netscape (один работает через эмулятор BSDi, второй - Linux), выбирать есть из чего. Если вдруг возникли проблемы, то проверьте правильность соединения при помощи утилиты cu:

после чего выполняем команду ATZ. Если ОК, то при помощи ifconfig -a проверьте правильность установок.

При установке и обрыве соединения могут выполняться некоторые директивы, описанные в файлах /etc/ppp/ppp.linkup и /etc/ppp/ppp.linkdown, которые также имеют шаблоны с префиксом sample. Во FreeBSD используется аналогичная схема, только шаблонные файлы там хранятся в /usr/share/examples/ppp/.

На этом пока все. Надеюсь, мне удалось доказать, что не так страшен черт (точнее, демон - эмблема BSD), как его рисуют, после чего OpenBSD найдет место на жестком диске на чьего-то компьютера. Конечно, по сравнению со всем этим нарисованным адом настройка Linux кажется вообще делом пустяковым, но как видите, и особо сложного ничего в этом нет - при желании разобраться можно, к тому же вместе с дистрибутивом поставляется кипа документации, где можно найти ответ практически на любой вопрос.

Viva OpenSource!

На главную  |  Версия для печати  |  Отправить по почте  |  Просмотров: 512  |  Рейтинг статьи: 2.5 (Голосов: 2).
Помещено: Xoid26, 2003-11-01 17:24:57

Как вы оцениваете полезность и понятность этой статьи?
Плохо Нормально Хорошо Очень хорошо! Отлично!



5 последних поступлений в раздел Другие *NIX-системы:

01.11.03: Открывай ворота! (full) (На мой взгляд, основная причина того, почему пользователи игнорируют BSD-системы, - отсутствие информ...)
03.10.03: NetBSD установка и первоначальная настройка (Сегодня мы поговорим о NetBSD, которая является одной из разновидностей BSD-систем. Несмотря на то, ч...)
07.09.03: Запуск Linux-приложений из FreeBSD (Существует устоявшееся мнение о том, что применение FreeBSD в качестве настольной системы затрудняетс...)
07.09.03: Don't think different - Be different (В 1999 году молодая компания Be Inc выпустила на рынок новую операционную систему BeOS. Построенная н...)
07.06.03: Рождение патриарха (Я бы хотел, дорогие читатели, окунуться вместе с вами в атмосферу конца 60-х годов, во времена рожден...)

"Открывай ворота! (full)" | Логин/Создать Аккаунт | 0 Комментарии
Порог
Ваше имя: Anonymous [ Регистрация ]

Имя: Email:

Тема:


Комментарий:

Разрешенные HTML теги:
<b> <i> <a> <em> <br> <strong> <blockquote> <tt> <li> <ol> <ul>
Условия использования материалов | Добавить статью | Статистика | Центр управления проектом / TODO
© 2003 Valery V. Kachurov & LB Team. Hosted by Linux-online. Powered by PHP-Nuke.

Rambler's Top100