Как начать работать с OpenBSD

THE HOLY BIBLE - King James Version - БИБЛИЯ в Синодальном переводе
"Нас Атакуют!" Изобличи козни лукавого, запрети диаволу

Как начать работать с OpenBSD 5.1

Современные операционные системы постоянно растут в размерах, делая аудит кода фактически невозможным. Ключевые старые компоненты часто заменяются новыми разработками слишком быстро. Количество изменений в основных библиотеках и компиляторах затрудняет создание нового и поддержку старого программного обеспечения. Зачастую работа над системными компонентами ведётся хаотично и без учёта соображений безопасности. Обилие сходных по функциональным возможностям библиотек усложняет написание переносимого кода. Изучение работы ядра системы путем анализа исходного кода уже давно стало непосильной задачей.

В предлагаемой заметке я излагаю основные шаги по установке и началу работы с операционной системой Open BSD, имеющей исключительную репутацию в области безопасности, хорошо документированный и постоянно проверяемый на правильность исходный код. На мой взгляд, Open BSD является идеальной "площадкой" для изучения системного программирования на языке C. Цель заметки - предоставить удобное операционное "BSD - окружение" знакомому с ОС Linux читателю.

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



.................. == От Иоанна святое благовествование == .....................
=== Глава 10, Стих 14 ===
14 Я есмь пастырь добрый; и знаю Моих, и Мои знают Меня.
15 Как Отец знает Меня, так и Я знаю Отца; и жизнь Мою полагаю за овец.
16 Есть у Меня и другие овцы, которые не сего двора, и тех надлежит Мне
 привести: и они услышат голос Мой, и будет одно стадо и один Пастырь.

Лично для вас благая весть - Единородный Сын Божий Иисус Христос любит вас, Он взошёл на крест за ваши грехи, был распят и на третий день воскрес, сел одесную Бога и открыл нам дорогу в Царствие Небесное.

Иисус сказал, что знает своих, и в то же время упоминает "овец не сего двора", которых надлежит привести к покаянию и Божией милости. Он говорит именно о нас с вами, дорогой читатель. Мы те самые заблудшие овцы, ищущие своего доброго пастыря. Того, который знает каждого из нас в тайных помышлениях сердец наших, в ежедневной жизни, где мы грешим, падаем, искушаемся и поддаёмся проискам сатаны, не зная о той Божией благодати, которую принёс в мир Его сын Иисус.

Но благодать Божия рядом с каждым из нас - прямо сейчас, читая эти строки, задумайтесь о своем прошлом и настоящем. Как много постыдных моментов в жизни каждого из нас! Но Господь хочет простить нас, две тысячи лет назад Он сделал первый шаг навстречу, послав Своего Сына за нами, для примирения, в надежде что мы услышим голос зовущего нас доброго пастыря. И теперь наша очередь принимать решение. Многие, ожесточив своё сердце, не хотят слушать зовущий нас голос, продолжая грешить и совершать преступления, прельщаясь соблазнами мира сего. Но некоторые из нас услышат благую весть и пойдут на голос пастыря, спасая себя осознанием и исповеданием своих прошлых грехов.

Покайтесь, примите Иисуса как вашего Спасителя, ибо наступают последние времена и время близко - стоит Судья у ворот.

Пожалуйста, в своих каждодневных трудах, какими бы занятыми вы себе ни казались - находите время для Бога, Его заповедей и Библии.

На главной странице этого сайта вы найдете программу для чтения Библии в командной строке - буду очень рад если программа окажется полезной. Пожалуйста, читайте Библию, на экране или в печатном виде - вы будете искренне удивлены как много там сказано лично про вас и ваши обстоятельства.


Вернёмся к нашим техническим деталям.

Я предполагаю, что читатель достаточно знаком с "unix-like" операционными системами (типа Линукс) и имеет навыки работы в командной строке. Нам предстоит выполнить следующие действия:

  • Установка ОС Open BSD
  • Отключение назойливого пискa системного динамика
  • Восстановление правильной работы клавиш (Home, End, Del)
  • Настройка оболочки пользователя (ksh)
  • Выбор и настройка диспетчера окон (cwm)
  • Подключение к беспроводной сети (WiFi Access Point)
  • Выбор "юникодного" эмулятора терминала для X-Window (urxvt)
  • Добавление в систему необходимых программ (packages)
  • Включение русской фонетической раскладки клавиатуры
  • Настройка работы редактора Vim
  • Выбор качественного anti-alias шрифта для эмулятора терминала
  • Пункты перечислены без определённого порядка и могут быть разбросаны между несколькими разделами. Итак, начнём с установки системы.

    Установка ОС Open BSD

    Я специально не хотел использовать "виртуализацию" и выбрал для установки устаревший лаптоп, вполне удовлетворяющий непритязательную Open BSD. Я убеждён что изучать саму операционную систему и системное программирование надо на физическом компьютере.

    Прежде чем продолжать - остановитесь и полностью прочтите Open BSD FAQ. Эта ОС отлично документирована и вы просто обязаны читать manpages и документацию полностью. Если вы надеетесь одолеть BSD "наскоком" - не тратьте время и установите что-либо другое. По-моему, основное достоинство этой ОС в том, что её изучение заставляет нас лучше понять внутреннюю работу компьютера (и английский язык).

    Удостоверьтесь что ваш компьютер имеет поддерживаемые Open BSD компоненты (после прочтения FAQ вы уже знаете как это сделать - list of supported hardware). Это особенно важно для беспроводных карт Broadcom и Intel Pro wireless, а также для видеокарт Nvidia. Для рабочей станции я рекомендую обзавестись wifi карточкой "Atheros" и видео картой "Radeon" модели 2-3 летней давности, подключенной к единственному большому монитору хорошего качества.

    Это ещё одно достоинство Open BSD - вместо постоянной покупки последних новейших (и дорогих) комплектующих для компьютера купите за эти деньги новый отличный монитор (и сэкономите на очках в будущем).

    Но даже если вам достались Nvidia, Broadcom или Intel Pro - не расстраивайтесь, эти карты тоже будут работать. Вам понадобится установить их самостоятельно, загрузив необходимое firmware (часть драйвера) с альтернативных сайтов в интернете.

    Я настоятельно рекомендую устанавливать 64-битную версию системы. Само собой это подразумевает что у вас имеется процессор нужной разрядности (если даже мой старый лаптоп имел 64-битный CPU, я уверен у вас он тоже есть).

    Загрузите ваш компьютер в BIOS и установите системные часы в часовой пояс UTC - это действительно необходимо для Open BSD (да и вообще хорошая привычка).

    Загрузите машину с CD с 64-битной Open BSD. Заметьте строку "disk: hd0 ... hdN cd0" - это понадобится позже при разметке диска. Вообще вся необходимая для работы системы информация появляется на экране при загрузке и дублируется в файле "/var/run/dmesg.boot" - вам не придётся выискивать название нужного устройства в трёх разных логах или с помощью специальных "ls..." программ.

    При появлении приглашения "boot >" не нажимайте никаких клавиш и дайте системе загрузить инсталляционное ядро. На экране появится много белого текста на голубом фоне - таким образом Open BSD выделяет сообщения ядра ОС. Появится приглашение "(I)nstall, (U)pgrade or (S)hell" - нажмите "I". Заметьте - если случайно вы ввели что-то неправильно, просто нажмите "Ctrl-C", введите в командной строке "install" и нажмите "Enter". Инсталляция начнётся заново, давая возможность сделать правильный выбор.

    Раскладку клавиатуры оставим по умолчанию, не выбирайте "ru" или что-либо другое.

    Выберите имя для вашей системы, у меня она названа "flash.open", но мы не указываем здесь полное доменное имя - только само имя сервера до первой точки.

    Система покажет список сетвых устройств: "Available network interfaces are: ath0, nfe0 ... nfeN vlan0". Я проверял hardware compatibility list и моя беспроводная карта ath0 (Atheros AR5212) может быть установлена автоматически инсталляционным скриптом. Но для большей наглядности я пропущу настройку WiFi и сделаю это вручную позже. Вы можете сконфигурировать wireless карту прямо сейчас.

    Для настройки WiFi непосредственно в процессе инсталляции вам понадобится:

  • Введите имя вашей станции доступа (Access Point), указав "?" вы увидите полный список всех окружающих вас беспроводных сетей
  • Укажите WPA-(P)SK как протокол безопасности - выбираем (P), это единственный приемлемый вариант на сегодня
  • Введите WPA passphrase для вашего WiFi роутера, фраза должна быть длиной 63 символа и включать символы всех возможных типов. Не имеет смысла устанавливать Open BSD, самую безопасную ОС в мире, если вы используете wifi пароль "1234"
  • Выберите DHCP как способ определения IP адреса
  • Продолжим инсталляцию - пропустив настройку сетевого соединения, я ввожу имя домена моей системы ("open" в моём примере). Введите имя сервера DNS, если вы его используете. Пароль для пользователя "root" должен быть длинным и сложным.

    Ответим "yes" на вопрос о запуске SSH, "no" для NTPD, "yes" для X Window, "no" для "xdm start". Не перенаправляйте консоль на последовательный порт, оставьте всё как есть.

    Создайте пользователя и всегда входите в систему только под этим именем, не злоупотребляйте основным администратором "root". Исходя из этих соображений, введите "yes" для запрета удалённого входа администратора root через SSH.

    Будьте внимательны, выбирая диск для установки, в моём случае это "sd0". Если вы сомневаетесь - отмените установку через "Ctrl-C", в командной строке введите "less /var/run/dmesg.boot" и найдите имя нужного диска. Введите команду "install" - лучше начать установку заново, чем удалить нужные данные.

    Ответьте "no" на вопрос об использовании DUID по умолчанию - мы хотим видеть в файле "/etc/fstab" действительные имена дисковых устройств.

    Приступая к "делению" диска, я выбираю "W", выделяя целый физический диск для Open BSD. Опять же, будьте внимательны с выбором диска.

    Я буду использовать другие физические диски для монтирования дополнительных файловых систем, поэтому мне понадобится изменить раскладку диска - выбираю "C".

    В программе "label editor" последовательность действий такая:

  • "Z" для удаления всех разделов
  • "P" для проверки - сейчас на диске должен быть виден только один раздел "c", представляющий весь диск целиком, этот раздел нельзя использовать
  • "А" для добавления раздела "a" - корневого раздела файловой системы. Используйте предлагаемое значение (offset) начала раздела, введите необходимое число 512-ти байтных секторов, выберите 4.2BSD как тип файловой системы и "/" как точку монтирования. Используйте для раздела "a" всё место на диске, за исключением 4-8Гб под swap
  • "P" для проверки - теперь вы должны увидеть всего два раздела "а" и "с"
  • "R" покажет вам сколько места осталось на диске - используем его под swap
  • "A" для создания нового раздела "b", вновь примите предлагаемое значение начала раздела, его размер и тип (swap)
  • "P" теперь покажет нам 3 раздела: a (root), b(swap) и c (неиспользуемый, представляющий диск целиком)
  • Заметьте что Open BSD использует блоки файловой системы размером 16 килобайт, смотрите значение "bsize"
  • Проверьте разделение диска ещё раз и нажмите "W" - эта команда перезапишет таблицу разделения диска, делая уже имеющиеся данные недоступными
  • введите "Q" для выхода из "label editor" и "done"
  • В качестве диска установки (sets location) введём "cd", имя диска - "cd0". Нажмите "Enter" в ответ на вопрос "Pathname to the sets". Мы хотим установить всю систему полностью, убедитесь что все компоненты (sets) отмечены знаком "X". Введите "done" чтобы начать инсталляцию.

    Процесс установки автоматически выберет тип ядра, соответствующий вашей системе. Если ваш процессор имеет несколько "ядер", будет выбрано ядро ОС с именем "bsd.mp". Ядро "bsd" использует только одно ядро процессора и "bsd.rd" используется для восстановления и обновления системы. Всегда храните файл с этим ядром в корне вашей файловой системы "/". Имя ядра можно ввести при загрузке системы, в ответ на самое первое приглашение "boot>". Но выбранное по умолчанию ядро будет подходить вашей системе лучше всего.

    Когда все компоненты (sets) будут установлены, введите "done". Выберите часовой пояс для системы - в нашем примере это "Europe/Moscow" - да, канадцы верят что мы живём в Европе, это один из редких случаев выражения оптимизма командой Open BSD.

    Примите поздравления от Open BSD, введите "reboot" и извлеките CD - только что установленная система должна загрузиться с диска после перезапуска компьютера.

    Установка вашей системы Open BSD закончена, но её интерфейс сейчас весьма далёк от совершенства, приступим к настройкам ОС.

    Первый вход в систему и маленькие изменения

    После перезагрузки войдите в систему с "консоли" (окно первого виртуального терминала) как обычный пользователь, не "root". Прочтите полностью email от Theo и сохраните его. Позже вы сможете вернуться к первому письму-приветствию с помощью "mail -f ~/mbox". Введите в командной строке "man afterboot" и внимательно прочтите документ. Не просто просматривайте, а всегда читайте внимательно и полностью manpages - люди, пользующиеся Open BSD, никогда и никуда не спешат.

    Я уверен, что после прочтения "afterboot" вы настроили свою систему и она работает исправно. Теперь я поясню изменения, понадобившиеся для моей системы, я надеюсь они помогут и вам.

    Моя система всегда загружается в режим текстовой "консоли", меня это устраивает. Также я буду использовать простой и эффективный диспетчер окон "Calm WM" - cwm, мы сконфигурируем его позже. Мне нравится использовать cwm потому, что я должен помнить только одну команду - "Ctrl+Alt+Enter".

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

    Отключение динамика - wscons

    Этот способ является наиболее правильным и надёжным, работающим почти везде. Используем команду "su - " чтобы получить права администратора "root", откроем в текстовом редакторе vi файл "/etc/wsconsctl.conf". Найдём и откомментируем строку "keyboard.bell.volume=0".

    Иногда ядро ОС "отслеживает" более одной клавиатуры, даже если в действительности имеется единственная клавиатура, подключенная через USB. Проверьте командой "wsconsctl | grep bell" - возможно вы увидите не только "keyboard", но и "keyboard1", что является полной неожиданностью. В этом случае мы добавим в файл "/etc/wsconsctl.conf" такую строку "keyboard1.bell.volume=0". Если система видит более двух клавиатур - проверьте внимательно что происходит, вероятнее всего необходимо обновить BIOS или материнская плата повреждена.

    Сохраните файл - после перезагрузки динамик должен замолчать. Используйте "wsconsctl keyboard.bell.volume=0" (и возможно "wsconsctl keyboard1.bell.volume=0") чтобы изменения вступили в силу немедленно. Нажмите "Tab" несколько раз подряд - если динамик замолчал, всё получилось и последующие шаги не понадобятся. Если писк не пропал - продолжаем.

    Отключение динамика - sound mixer

    Добавьте эти команды в файл "/etc/rc.local", a также выполните их в командной строке:

    mixerctl inputs.beep_mute=on
    mixerctl inputs.beep=0
    mixerctl outputs.master.mute=on
    

    Нажмите "Tab" несколько раз подряд - если динамик замолчал, всё получилось и последующие шаги не понадобятся. Если писк не пропал - продолжаем.

    Отключение динамика на уровне ядра системы

    Если вы дошли до этого пункта и динамик всё ещё не замолчал - вполне возможно что его не получится отключить программными средствами. Тем не менее, я приведу этот пример - он также демонстрирует как можно изменять установки ядра Open BSD.

    Мы попробуем исключить драйвер устройства "Speaker" из ядра системы. Скопируйте работающее ядро из файла /bsd" в "/bsd.old". Теперь мы будем использовать "User Kernel Config" интерфейс:

    # config -e -f /bsd
    ukc> find spkr0
    226 spkr0 at pcppi0 flags 0x0
    ukc> disable 226
    ukc> quit
    # reboot
    

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

    Работа клавиатуры

    Следующий шаг - настройка правильной работы клавиатуры (клавиши Home, End, Del) в консоли (виртуальном терминале VT220) Open BSD.

    В Open BSD стандартная "цепочка" прохождения (и трансформации) кода нажатой клавиши такова:

    -> keyboard (physical key code)
    -> physical keyboard driver
    -> platform independent wscons framework (wskbd driver), определяется файлом /etc/wsconsctl.conf
    -> virtual terminal emulation - чаще всего vt100, в виде vt220, описан в terminfo, в прошлом termcap
    -> в случае использования "bash" - библиотека readline (файл .inputrc) - в ksh НЕ используется!
    -> shell ksh (файл /etc/ksh.kshrc) или bash
    

    Здесь кроется типичная ошибка - многие советы из интернета связаны либо с системой X Window, о которой ещё нет и речи, либо с конфигурацией библиотеки readline, не используемой в ksh - стандартной оболочке Open BSD.

    Говоря о "подмене" стандартной оболочки ksh чем-нибудь другим, я хочу заметить:

    ~:$ file `which ksh`
    /bin/ksh: ELF 64-bit LSB executable, x86-64, version 1, for OpenBSD, statically linked, stripped
    ~:$
    

    Мне кажется, что стандартная оболочка Open BSD скомпонована статически неспроста. Соображения безопасности всегда имеют наивысший приоритет в этой ОС.

    Проверить тип используемого эмулятора терминала можно командой: "wsconsctl display.emulations". Если проследить внимательно путь кода клавиши, становится ясно что изменить его можно в нескольких местах:

  • полностью переопределить клавишу (поменять Caps Lock и Ctrl, например) в файле wsconsctl.conf
  • переопределить "действие" клавиши на уровне оболочки ksh (заставить Del удалять символ справа от курсора, Home перемещать курсор к началу строки)
  • Делается это просто, но при одном условии - вам понадобится версия Open BSD 5.2. Либо надо заменить файл "emacs.c" (src/bin/ksh/) на новый версии. 1.46 и перекомпилировать ksh (cd /usr/src/bin/ksh; make; make install).

    Добавим такие строки в /etc/ksh.kshrc

    # Задействуем клавиши Home,End,Del в вирт.терминале vt220.
    # Требуется файл "emacs.c" (src/bin/ksh/) v. 1.46 или выше.
    bind '^[[7~'=beginning-of-line
    bind '^[[8~'=end-of-line
    bind '^[[3~'=delete-char-forward
    

    Для нахождения ESC-последовательности нужной клавиши, например DEL, нажмите последовательно "Ctrl+V Del". Показанный ^[[3~ и будет нужным кодом - не копируйте его, набирайте на клавиатуре символ за символом.

    Беспроводное сетевое подключение

    Теперь мне пора подключиться к wireless сети. Начните с прочтения manpage для драйвера вашей wifi карты - в моём компьютере это "man ath". Вам может понадобиться "wpi" или "bwi" драйвер, и для них необходимо загрузить firmware. Ищите подробности в manpages, установленных на вашем компьютере (но не на сайте Open BSD).

    Создайте файл "/etc/hostname.ath0" (или hostname.wpi0) с таким содержимым:

    dhcp nwid MyAPName wpa wpakey xxx-long-63-chars-passwd
    

    Это всё. Вам не понадобится пробираться через дебри wpa-supplicant, Network Manager и прочих "умных" продуктов. Перезагрузите машину, ваша wireless сеть заработает. Используйте "lynx" для просмотра вебсайтов, но пока не делайте никаких изменений в (О)пциях - ещё рано устанавливать UTF-8 encoding. Open BSD консоль (wscons) по умолчанию использует набор символов "latin 1" и Unicode не будет выводиться правильно.

    Мелочи

    Задействуйте выключение машины через "Ctl+Alt+Del", для этого откройте в редакторе Vi файл "/etc/sysctl.conf", найдите и откомментируйте строку "machdep.kbdreset=1". Если вы используете лаптоп, откомментируйте и следующую строку "machdep.lidsuspend=1" - она определяет что произойдёт при закрывании крышки лаптопа.

    Отключите sendmail - создайте резервную копию файла "/etc/rc.conf" и установите "sendmail_flags=NO".

    Добавление программ

    Для добавления новых программ к вашей Open BSD я рекомендую использовать "packages" - бинарные установочные версии нужных файлов. Компиляция из так называемых "портов" занимает слишком долгое время.

    Для установки новых программ мы должны указать "зеркало" для загрузки - как "root", добавьте к файлу "/root/.profile" строку:

    export PKG_PATH=ftp://mirror.corbina.net/pub/OpenBSD/5.1/packages/amd64/
    

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

    # pkg_add xv
    xv-3.10ap11:jpeg-8c: ok
    xv-3.10ap11:jasper-1.900.1p1: ok
    xv-3.10ap11:png-1.5.6p0: ok
    xv-3.10ap11:tiff-3.9.5: ok
    xv-3.10ap11|**********************                                       | 37%
    

    Таким же образом добавьте пакет "rxvt-unicode", мы будем использовать "uxrvt" в качестве эмулятора терминала для X Window.

    Подготовка к запуску X Window

    Как я говорил ранее, мы будем использовать диспетчер окон "cwm". Как администратор "root" отредактируйте файл "/etc/X11/xinit/xinitrc", закомментировав строки в конце, запускающие xclock, xconsole, xterm и fvwm. Все необходимые программы будут запускаться из локального файла ".xinitrc" в домашней директории пользователя.

    Приглашение командной строки и сессия SSH

    В своей домашней директории (в моём случае "/home/u1") создайте файл ".kshrc" с такими строками:

    # Call system-wide ksh profile
    . /etc/ksh.kshrc
    # For russian keyboard - do not let ksh to use meta in 8's bit.
    set +o emacs-usemeta
    

    В вашей домашней директории найдите файл ".profile" и добавьте в его конец команду:

    export ENV=~/.kshrc
    

    Эта конфигурация задействует более информативное приглашение командной строки и позволяет видеть необходимую информацию о вашей системе в удалённых сессиях ssh на других компьютерах. Например, открыв Gnome terminal на Linux лаптопе и подключившись к вашей Open BSD, вы увидите как заголовок терминала изменится, показывая правильное имя вашей системы.

    Установим программу для чтения Библии в командной строке

    Прежде чем мы продолжим, я хотел бы напомнить читателю зачем эта программа нужна в системе Open BSD. Я глубоко уверен, что постоянная погоня за мирскими благами (деньгами, славой, властью) отвлекает нас от главной цели нашей жизни - покаяния и прихода к Господу Богу для примирения с Ним. Мы не живём по Божиим заповедям, делаем зло друг другу, завидуем, ненавидим, гордимся ... Чтение Библии помогает каждому человеку приблизиться к Богу, начать слушать Его слова и исполнять Его заповеди. Работая в ИТ, нам остаётся всё меньше и меньше времени на чтение Евангелия. Именно для этого и нужна эта программа, позволяющая нам прочитывать стих из Писания каждый раз при открытии терминальной сессии. Читайте и задумывайтесь, дорогой читатель - ваше спасение в ваших руках.

    Нам понадобятся две версии программы, использующие текст Библии на Русском и Английском языках. Скачаем эти два файла с сайта, на котором вы сейчас находитесь:
    Английская Библия
    Русская Библия

    Переименуем файлы, сделаем их исполняемыми и поместим их таким образом:

    ~:# ls -la /usr/local/bin/read_*
    -rwxr-xr-x  1 u1  u1  4312368 Oct  9 19:23 /usr/local/bin/read_and_think*
    -rwxr-xr-x  1 u1  u1  4418864 Oct  9 19:39 /usr/local/bin/read_and_think.kjv*
    ~:# file /usr/local/bin/read_*
    read_and_think:     ELF 64-bit LSB executable, x86-64, version 1, for OpenBSD, statically linked, stripped
    read_and_think.kjv: ELF 64-bit LSB executable, x86-64, version 1, for OpenBSD, statically linked, stripped
    ~:#
    

    Не волнуйтесь - никакого вредоносного кода в файлах нет. Теперь добавим такие строки в конец файла "/etc/ksh.kshrc", они будут вызывать английский или русский вариант программы в зависимости от используемого эмулятора терминала (и соответственно набора символов):

    export PS1="\W:\\$ "
    if [[ $TERM == "xterm" || $TERM == "rxvt-256color" ]]
    then /usr/local/bin/read_and_think
    else /usr/local/bin/read_and_think.kjv
    fi
    

    Теперь при каждом открытии терминала вас будет приветствовать стих из Библии. Читайте. Я гарантирую вам, что через несколько дней этот текст Слова Божия станет вам так же дорог и необходим, как глоток чистого горного воздуха в загазованном мегаполисе. В программе есть возможность передвигаться по тексту и прочесть всю книгу полностью - читайте и наслаждайтесь. Как красиво слово Божие! Чтение английского текста поначалу может быть затруднительно - не сдавайтесь, изучайте его - и воистину великий текст Короля Джеймса 400-летней давности однажды раскроется перед вами как прекрасная роза. Я не могу описать это ощущение - поймёте, когда это произойдёт с вами. Бог вам в помощь в изучении Библии!

    Запуск X

    После всех уже сделанных изменений надо выйти из системы и зайти снова. Создайте в своей домашней директории файл ".xinitrc" такого содержания. Переключение раскладок клавиатур производится нажатием обоих "shift"ов (а помните ли вы что такое "keyrus"? :-) ). Укажите имя желаемого графического файла в команде "xv", только подгоните размер файла (в пикселях) под разрешение монитора.

    # Russian phonetic keyboard "яверты", switch with both shifts.
    # Also requires the line "set +o emacs-usemeta" in /etc/ksh.kshrc
    export LC_CTYPE=en_US.UTF-8
    setxkbmap -layout 'us,ru(phonetic)' -option 'grp:shifts_toggle,grp_led:scroll'
    # Background on the desktop
    xv -root -quit /home/u1/Pictures/ozero1_1440x900.jpg
    # Window Manager - always last line
    cwm
    

    Копируйте содержимое файла через SSH, или просто удалите русские слова из комментариев. Теперь остаётся последняя мелочь - при запуске CWM ему потребуется конфигурационный файл. В той же самой вашей домашней директории создайте файл ".cwmrc":

    # If you want xterm: (I am sure you do not :-))
    #command term  "uxterm +sb -sl 5000 -bg black -fg green \
    # -fa DejaVu_Sans_Mono:style=Book -fs 15"
    #
    # For next lines, do "pkg_add rxvt-unicode".
    # For Unicode Rxvt, see also .Xdefaults -
    # I disabled there Perl and ISO character entry pop-ups.
    # Those nice Ctrl+Shift pop-ups are useful, but conflict with CWM.
    command term "urxvt +sb -sl 5000 -bg black -fg green \
    -fn \"xft:DejaVu Sans Mono:Book:size=15:antialias=true\" \
    "
    color activeborder green
    borderwidth 3
    # Conflicting with Firefox
    bind M-Left unmap
    bind M-Right unmap
    

    Этот параметр файл позволит нашему Calm WM прорисовывать текст качественным антиалиасным шрифтом. Не забудьте позже выбрать этот же шрифт в настройках Firefox для Western и Cyrillic контента.

    И последние два конфигурационных файла, которые должны быть в вашей домашней директории:

    # cat .Xresources
    
    XTerm*locale: utf8
    XTerm*VT100.Translations: #override \
    ShiftInsert: insert-selection(CLIPBOARD)
    
    #
    # cat .Xdefaults
    
    XTerm*loginShell:true
    URxvt.iso14755:false
    URxvt.perl-ext-common:""
    

    Последние две строки выключают в эмуляторе терминала URxvt некоторые ненужные расширения, к тому же использующие "горячие клавиши" нашего диспетчера окон, что раздражает во время работы. Всё готово - теперь в командной строке напечатайте "startx" и нажмите "Enter". Появится ваша картинка (см. выше команду "xv"). Нажмите комбинацию клавиш "Ctrl+Alt+Enter" - появится окно терминала. Напечатайте там "man cwm" и читайте. Несмотря на кажущийся примитивизм, Calm WM удивительный диспетчер окон - лаконичный, мощный, быстрый и загадочный :-)

    Текстовый редактор Vim

    Вы наверняка будете использовать именно этот "текстовый редактор для настоящих эстетов". Настроить его достаточно просто. Опять же, прочтите всё, что найдёте через команду редактора ":help".

    Нам понадобится добавить некоторые недостающие компоненты - вы уже знаете как:

    # pkg_add vim-7.3.154p2-gtk2
    vim-7.3.154p2-gtk2:libiconv-1.14: ok
    vim-7.3.154p2-gtk2:gettext-0.18.1p1: ok
    vim-7.3.154p2-gtk2:pcre-8.21: ok
    vim-7.3.154p2-gtk2:sqlite3-3.7.9p0: ok
    vim-7.3.154p2-gtk2:bzip2-1.0.6: ok
    vim-7.3.154p2-gtk2:libffi-3.0.9: ok
    vim-7.3.154p2-gtk2:python-2.7.1p12: ok
    vim-7.3.154p2-gtk2:glib2-2.30.2p5: ok
    vim-7.3.154p2-gtk2:atk-2.2.0: ok
    vim-7.3.154p2-gtk2:hicolor-icon-theme-0.12p2: ok
    vim-7.3.154p2-gtk2:gdk-pixbuf-2.24.1: ok
    vim-7.3.154p2-gtk2:gtk-update-icon-cache-2.24.9: ok
    vim-7.3.154p2-gtk2:libxml-2.7.8p4: ok
    vim-7.3.154p2-gtk2:shared-mime-info-0.91: ok
    vim-7.3.154p2-gtk2:cairo-1.10.2p3: ok
    vim-7.3.154p2-gtk2:pango-1.29.4: ok
    vim-7.3.154p2-gtk2:gtk+2-2.24.9|********************************************                       | 66%
    

    Для настроек редактора имеется свой конфигурационный файл:

    .............. == Послание к Галатам святого апостола Павла == .................
    === Глава 5, Стих 4 ===
    4 Вы, оправдывающие себя законом, остались  без  Христа,  отпали  от  благодати,
    5 а    мы    духом    ожидаем    и    надеемся    праведности    от        веры.
    
    (b+/b-, c+/c-, +/-, *) >
    
    ~:$ cat .vimrc
    be mswin
    colo ron
    set nocp tw=80 ruler
    syn on
    " Use Ctrl-K to enter special keys required for mapping
    set backspace=2
    map <BS> hx
    map <Esc>[3~ <Del>
    imap <Esc>[3~ <Del>
    map [7~ ^
    map [8~ $
    " This entry allows us to stay in Insert mode.
    imap <Esc>[7~ <Esc>^i
    imap <Esc>[8~ <Esc>$i
    

    Добавьте такую строчку в ваш ".kshrc":

    alias vi=vim
    

    Теперь у нас в распоряжении правильно работающий текстовый редактор, с функционирующими клавишами и удобным красивым шрифтом, пригодным для программирования.

    Текстовые документы и PDF файлы

    Для полного удобства нам понадобится редактор, пригодный для работы с Word документами и PDF-reader. Для этих целей установим AbiWord и Evince. Сделайте это сами, вы уже знаете как.

    После их установки, в X (cwm) нажмите комбинацию клавиш "Alt+Shift+?", в появившемся мини-приглашении "exec" начните печатать "abi..." - появится "abiword", нажмите "Enter". Перейдите в полноэкранный режим нажав "Ctrl+Alt+f". Нажмите одновременно два шифта и напечатайте русский текст. Нажмите два шифта ещё раз. Комбинация клавиш "Alt+F" откроет меню, выберите "Save As" и сохраните текст как PDF файл.

    Таким же образом откройте Evince и прочтите только что созданный PDF с русским текстом. На этом работа с "офисными" приложениями завершена.

    Что дальше?

    Теперь, когда ваша система Open BSD установлена и пригодна для привычной работы - начинайте её использовать! Из Open BSD получится отличный роутер, брандмауэр, вебсервер, сервер базы данных, ИДС, файл сервер. Эту систему можно использовать как платформу для разработки. На ней можно "вживую" изучать лучшие приёмы практического программирования, анализировать и исследовать код ядра.

    Читайте вебсайт Open BSD и исходный код, не ленитесь - предпочтите Open BSD компьютерным играм, и она ответит вам взаимностью! Удачи.

    Спасибо что зашли,

    Будьте благословенны!
    Денис