Все о Linux. LinuxRSP.Ru


Cвежие новости Linux и BSD, анонсы статей и книг прямо в почтовый ящик!
Подписаться письмом


 Сегодняшние новости:

25 лет исполнилось ядру Linux

Релиз KDevelop 5.0

Oracle открывает код JDK9 для ARM

Выпущен Timewarrior 1.0.0

Релиз Android 7.0

Percona Memory Engine для MongoDB на базе WiredTiger

PowerShell открыт и доступен для Linux

Форк TrueCrypt: VeraCrypt 1.18

Релиз Snapcraft 2.14

Релиз Go 1.7

Стабильный выпуск рабочего стола Lumina

Вышла первая версия аналога OpenCV - DCV 0.1

Выпуск минималистичной программы для мониторинга jsonmon 3

В MIT разработали новый язык программирования

Первый релиз Qt5Gtk2

Godot 2.1 - новая версия открытого игрового движка

Свободная цифровая станция звукозаписи: Ardour 5.0

Обновление SkypeWeb Plugin for Pidgin

Вышла версия 3.0 Android File Transfer для Linux (и для OS X)

Программный аналог MIDI-контроллера для создания музыки: Launchpadd v1.3

Mozilla спонсирует поддержку Python 3.5 в PyPy

Ef 0.08 - программа для моделирования динамики заряженных частиц

Обновление текстового редактора TEA до версии 42.0.0

Релиз OpenOrienteering Mapper 0.6.4

Вышли Guix и GuixSD 0.11

Релиз Opera 39

Выпуск LibreOffice 5.2

В OpenSSH обнаружены и устранены некоторые уязвимости

Эмулятор FCEUX 2.2.3

Компания Билайн переходит на российскую СУБД с открытым исходным кодом Tarantool

Google

 Новые статьи :

Утилиты для восстановления потерянных данных в Linux

Лучшие файловые менеджеры для Android

20 лучших бесплатных книг о Linux

Как сгенерировать открытый/закрытый SSH-ключ в Linux

Grive - клиент Google Drive для Linux с открытым исходным кодом

Протокол IPv6: варианты подключения

Сервер из образа: DHCP + TFTP + Initrd + OpenVZ

Обзор веб-панелей управления хостингом

Приёмы работы с Vim

Nginx как Reverse Proxy для сайта, использующего SSL

Разработка модулей ядра Linux

Мониторинг нагрузки http-сервера Apache 2

Перевод комментариев к файлу конфигурации Squid

Решение проблем при использовании "1c предприятие" 8.2 в Linux

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки







Rambler's Top100





 
 

Первые впечатления

Перезагрузка FreeBSD (как, впрочем, и останов системы) происходит довольно быстро, много быстрее, чем в большинстве сконфигурированных по умолчанию дистрибутивов Linux. Boot Manager предлагает выбрать загрузчик (выбор, правда, между FreeBSD и FreeBSD, осуществляется клавишей F1; можно задействовать и клавиши F2-F4, но подо что - пока не разбирался.

После перезагрузки мы видим пред собой приглашение командной среды sch. Каковую я первым делом заменил бы на bash - я, конечно, понимаю, что csh - традиционный BSD-инструмент, однако bash как-то привычней. Ведь, как я уже говорил, чего-нибудь вроде Midnight Commander в системе нет, и все первичное с ней знакомство придется проводить исключительно средствами командной среды.

Сделать это можно с помощью любой команды управления пользователями. Каковыми во FreeBSD являются: универсальную утилита pw, или несколько более дружественные vipw и chpass (команды usermod, насколько я понял, во FreeBSD нет). Однако все они требуют прав суперпользователя.

Попытка получить таковые с помощью команды su успехом не увенчается: на нее последует ответ, что этой командой может воспользоваться только член несколько загадочной группы wheel (она же - группа 0).

Так что приходится выйти из пользовательского сеанса, зайти в роли root'а и поменять свою принадлежность к группе. Удобнее всего это сделать с помощью команды

  chpass username

По умолчанию она вызывает редактор vi и позволяет редактировать отдельные (и при этом подписанные) поля учетной записи пользователя в следующем виде:

#Changing user database information for username.
Login: username
Password: Jh8pqUbszSykI
Uid [#]: 1000
Gid [# or name]: 1000
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/alv
Shell: /usr/csh
Full Name: Imya_Rek
Office Location:
Office Phone:
Home Phone:
Other information:

Дабы обрести право на команду su, выискиваем поле Gid и заменяем имеющееся так значение на 0 (или просто английским по экранному пишем wheel - результат будет один). Выходим из сеанса администратора и авторизуемся как обычный пользователь. Зная, что теперь право суперпользователя можно использовать в любой момент.

Тут же, к стати, можно было бы и поменять пользовательскую среду. Заменив /usr/csh на /usr/bash. Но - не тут-то было. Среда bash при стандартной инсталляции по умолчанию не устанавливается.

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

/stand/sysinstall

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

И потому проще пойти самым прямым путем: вставить инсталляционный диск, назвавшись суперюзером (благо право на это мы уже заслужили), смонтировать его обычным образом:

mount /cdrom

(именно такая точка монтирования предназначена для него по умолчанию), перейти в имеющийся на диске каталог /cdrom/packages, и отыскать там подкаталог shells. С помощью команды ls можно убедиться, что среда bash там присутствует (и даже в двух вариантах - bash-1.14.7.tgz и bash-2.04.tgz. Выбираем приглянувшийся (я выбрал bash-2.04) и вводим команду

pkg_add bash-2.04.tgz

Поскольку мы пока еще в среде csh, где автодополнение клавишей табуляции не действует, имя файла придется ввести целиком. Жмем Enter - и в считанные мгновения возвращается приглашение командной строки. Все, bash установлен и может быть вызван. Если неудачно - нужно в файлах /root/.cshrc или /etc/csh.cshrc (не забывайте, что мы все еще находимся в среде csh) проверить переменную среды path на предмет наличия там /usr/local/bin - именно в этот каталог по умолчанию устанавливаются все пакеты из набора packages. И при отсутствии - внести его туда. А заодно не забыть это сделать и для файлов /root/.profile, /etc/profile или $HOME/.profile, по усмотрению

После чего можно и вернуться к команде chpass и в поле Shell: заменить /usr/csh на /usr/local/bin/bash в учетной записи пользователя (а при желании - того, который супер...). Надо сказать, что в промежутках где-то будет задан вопрос о том, что среда bash не внесена в файл /etc/shells и будет предложено это сделать - отказываться не следует; файл этот в результате приобретет вид вроде

/bin/sh
/bin/csh
/bin/tcsh
/usr/local/bin/bash

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

Так что тут очень важно выстроить систему приоритетов: что делаем сначала, что потом, а что - вообще когда руки дойдут. Потому что на самом-то деле главным сейчас является проверка готовности системы по умолчанию к выполнению неких элементаных операций. А все прочее - только способ эту готовность проверить.

А из всех базовых возможностей для нас (то бишь вашего покорного слуги) главными являются:

  • перемещение по файловой системе средствами консольного режима;
  • работа с кириллицей в консольном режиме;
  • запуск X Window;
  • работа с кириллицей в графическом режиме;
  • доступ к файловой системе ext2fs.

Причем главным был именно последний пункт. Я ведь планировал изучить пригодность FreeBSD к реальной работе в качестве настольной системы. Причем - на собственном опыте. Для чего мне нужен был доступ к реальным данным, хранившимся в Linux-разделе второго физического диска. Разумеется, имели они (данные, то есть) место быть и на CD ROM, но счет их у меня идет уже на погонные метры, и копатьсЯ среди них - лень. Так что без возможности прочитать ex2fs-раздел FreeBSD можно было бы смело уничтожать...

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

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

А перемещаться по системе я давно уже привык сразу на нескольких виртуальных консолях. Именно эта особенность текстового режима более всего восхитила меня при первом знакомстве с Linux: нажал Alt+F2 (комбинация, въевшаяся в плоть и кровь пользователя DOS по команде дяди Нортона) - и ты не только переходишь на другой диск, но и оказываешься в совершенно другом сеансе работы. Из которого с помощью мыши можно вытащить любые данные и скопировать и в иной сеанс...

Так вот, с виртуальными консолями во FreeBSD все было более чем нормально: по умолчанию их имелось ажно 8 активных, то есть доступных для консольных сеансов; девятая консоль, неактивная, резервировалась для графического режима (сеанса XFree). И изменить их количество можно было очень просто - элементарной правкой конфигурационных файлов (о чем - в соответствтующем разделе).

Однако я был несколько обескуражен, не обнаружив другой любимой мной особенности консольного режима - возможности пролистывания экрана: на комбинацию Shift+PgUp/PgDown система никак не реагировала. Естественно, я понимал, что от используемой командной оболочки это никак не зависит, поскольку определяется ядром и драйвером управления консоли. Однако возможности изменить ситуацию я не нашел нигде.

Пока не прочитал у Ивана Паскаля (сочинения которого, указанные в электронной библиографии, я буду неоднократно цитировать и в дальнейшем) о том, что в консольном драйвере FreeBSD (именуемом syscons), в отличие от консольных драйверов Linux (kbd и console-tools) функция пейджера экранного буфера закреплена за клавишей ScrollLock. А заодно - и о том, как изменить размер буфера экрана, составляющего здесь по умолчанию 100 строк (но и об этом - позднее).

К слову, насколько я понял, ядро FreeBSD можно сгенерировать и с использованием иного консольного драйвера - pcvt, каковой в системе в принципе наличествовал. Однако о нем я имел еще меньшее представление, чем о syscons, и потому отложил его до лучших времен.

Еще в консольном режиме почти бездействовала мышь. Конечно, с ее помощью можно было выделить фрагмент и вставить его в другое место (даже в другую консоль); но, скажем, выбрать пункт меню в редакторе le - не удавалось. Что, в общем-то, понятно: аналога gpm, ответственного за деятельность мыши в текстовом режиме Linux, во FreeBSD, насколько я понял, нет.

Короче говоря, выяснилось, что с FreeBSD в консольном режиме вполне можно жить. И исследовать ее кириллизацию. Что резонно было бы начать с консольного же режима.

Где, на первый взгляд, все выглядело нормально: русские буквы были видны на экране и вводились с клавиатуры. После нажатия любимой мной клавиши CapsLock, зажигавшей заодно огонек-индикатор раскладки - по прямому назначению клавишу эту я использую редко (для чего требовалось бы, как обычно, нажать CapsLock+Shift).

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

Конечно, раскладка эта имеет недостаток - все же время от времени приходится стучать по клавишам с DOS- или Win-раскладкой. Но подобрать подходящую keymap для консольного режима - думаю, трудов бы не составило. Хотя бы из какого-либо русифицированного дистрибутива Linux - там их бывает немеряно. Да и вручную отредактировать keymap - труд хоть и великий, но посильный...

Хуже было другое - при запуске, скажем, текстового редактора le (входящего в штатный комплект и, на мой взгляд, более удобного, нежели традиционный vi) в меню вместо красивых рамочек можно было лицезреть русские буковки Д и, если не ошибаюсь, Е. Это был не тот случай, когда вид кириллицы на экране доставляет радость. Поскольку свидетельствовал о том, что перекодировка из клавиатурной KOI8 в экранную CP866, не смотря на прямое о том указание при инсталляции, не осуществлялась.

Однако борьба с этим явлением будет описана в соответствующем разделе. Пока же замечу только, что и русской локали не наблюдалось: команда date выдавала оную в американском формате. Что - естсественно, так как при установке системы никаких языково-специфических вопросов не задавалось.

Далеко не все гладко было и с X Window. Правда, сама система запускалась безукоризненно. Также ничего неожиданного - моя видеокарта на чипе Riva TNT2 64M при начальном конфигурировании была опознана правильно и протестирована успешно.

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

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

Так вот, ext2fs-раздел на втором диске не читался. Неожиданностью для меня это не было - из доступной литературы я знал, что поддержка этого дела должна быть включена в ядро. Чего, видимо, по умолчанию не происходит. Хотя забыл упомянуть: в ходе инсталляции задавался вопрос - требуется ли двоичная совместимость с Linux-программами. На который я, конечно же, ответил положительно.

Дело было ясное - без перекомпиляции (или, как говорят в среде FreeBSD, регенерации) ядра не обойтись. Для пущей уверенности перегрузился в Linux Mandrake 7.2 (основную мою, с некоторых пор, систему) и попробовал их нее смонтировать ffs-раздел.

Результат был отрицательный - на команду

mount /dev/hda# /mnt/точка_монтирования

система пыталась что-то сделать, даже опознавала на разделе файловую систему ufs (почему-то), но кончалось все сообщением об ошибке. То же происходило и при указании монтируемой файловой системы в явном виде - ufs ли, ffs ли, все едино. Хотя, теоретически рассуждая, Linux BSD-разделы понимать бы должен (создать ведь Linux'овым fdisk'ом их можно).

Возможно, это особенность конкретного дистрибутива, и на другом все получилось бы. Однако ставить ради этого вместо давно любимого Mandrake что-то иное не хотелось. И я, засучив рукава, начал готовиться к регенерации ядра FreeBSD. Впрочем, это уже следующая история.

[Назад] [Содержание] [Вперед]


© Алексей Федорчук
http://onix.nm.ru

      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2017 LinuxRSP