Назад Содержание Вперед
Введение в POSIX'ивизм
(C) Алексей Федорчук, 2005
Опубликовано на сайте
LinuxCenter
Глава 4. Почему Linux не Windows
Мысль изреченная банальна,
Но, однако ж, эта мысль важна
Изрекаю: пить шмурдяк, дружище, аморально,
Пиво пить почетно, старина.
Тимур Шаов
Я льщу себя надеждой, что мое сочинение будут читать (в том числе и) совсем начинающие пользователи Linux (и уж совсем несбыточная мечта - что для кого-то это окажется первым чтивом из компьютерной оперы). И потому, начиная с этой главы, позволю себе дать введение в набор базовых понятий POSIX-совместимых систем вообще - своего рода обзор "вечных истин", как я их понимаю. И первая из них - осознание специфики POSIX-систем.
Содержание
Возможно, мое утверждение покажется вам столь же банальным, как заявление Тимура о вреде употребления неправильной водовки. Однако оно столь же верно, как и его максима. И если, по совету Ходжи Насреддина, вы будете думать над ним неотступно, то проникнетесь его величием и блеском. Итак, изрекаю:
Linux - это не Windows, а Windows - не Linux. И те приемы, что хорошо (эффективно) показывают себя в Windows, отнюдь не обязаны быть столь же действенными в системе POSIX-совместимой. Как, впрочем, и наоборот.
Приведу простой пример. Первейший инструмент Windows-пользователя (для простоты, вслед за Владимиром Игнатовым, будем величать его "подоконником") - это программа, которую в этой ОС (точнее, русскоязычной ее ипостаси) называют текстовым процессором. На самом деле текстовый процессор в общепринятом понимании этого слова - нечто совсем другое, поэтому впредь программы этого класса будут именоваться визуальными процессорами - принцип WYSIWYG представляет собой их главную отличительную черту, - или word-процессорами. Так вот, практически первое, что чуть ли не инстинктивно делает в Linux мигрант-подоконник - это тянется к знакомому пистолету. То есть пытается отыскать среди изобилия Open Sources что-то, хотя бы отдаленно напоминающее ему Word (WordPerfect, WordPro, Lexicon - ненужное в скобках зачеркнуть).
И, к чести Open Sources сообщества, нужно заметить, что нынче его усилия увенчаются успехом. Хотя еще пару-тройку лет назад наш экс-подоконник не получил бы ничего, кроме верблюдообразных софтин (у верблюда спросили: "Почему у тебя шея кривая?" - "А что у меня прямое?" - резонно ответил тот). Способных только на то, чтобы привить стойкое отвращение (к офисным пакетам или к POSIX-системам - это уже другой вопрос).
А сейчас он имеет в своих руках тройку программ, вполне знакомых видом и почти таких же нравом, что и привычный ему Word, с функциональностью от идентичной до несколько ослабленной, но в большинстве случаев - более чем достаточной: OpenWriter из комплекта OpenOffice.org, KWrite из аналогичного KDE-набора, и AbiWord из эвентуального пока офиса для среды GNOME (хотя сам по себе AbiWord - сугубо кросс-платформенное приложение).
Рискну предположить, что вторым по значимости пользовательским инструментом в "подоконной" среде окажется электронная таблица (случай злостного геймера или фанатичного web-серфера не рассматриваем как клинический - речь идет о людях, пользующих компьютер в основном для работы). И что же - к услугам нашего мигранта оказываются соответствующие средства из тех же офисных пакетов - OpenCalc, KSpread, Gnumeric.
И так далее. При желании он отыщет и графическую среду, внешне сходную с Windows (а при минимальных настройках - просто неотличимую), и Explorer-подобный файловый менеджер, и браузер a la Internet Explorer, и почтового клиента в диапазоне возможностей от Outlock Express до (почти) The Bat, и так далее - вплоть до медиа-плееров всякого рода и вида. Те, кто не верит - обратитесь к таблице соответствия программ Windows->Linux (строго говоря, Windows->POSIX).
Хорошо это или плохо для начинающего Linux-пользователя? Конечно, хорошо, - скажете вы, и я не смогу с вами спорить, памятуя свои первые шаги в Linux, посвященные лихорадочным попыткам применить в мирных целях тогдашние StarOffice или Applixware. Ведь нынче начинающий пользователь Linux может скрасить свой горький эмигрантский хлеб сладостью знакомых сред и классово близких приложений. Чем он, скорее всего, и воспользуется по полной программе.
Однако скоро у нашего экс-подоконника зародится мысль: а не напоролся ли он на то, за что боролся? И какой смысл был ему менять уютное и привычное место на подоконнике на такое же, только видом сбоку? Ибо OpenOffice покажется ему неповоротливым и тормозным, KOffice - падучим и слабо совместимым, GNOME Office - просто недо-офисом, и так далее. Где же обещанная ему при переходе мощь Unix на персональном компьютере? - задаст он резонный вопрос.
И постепенно к нему приходит понимание, что мощь Linux осталась где-то рядом, за пределами мира графических интерфейсов и wysiwyg-программ - в глубинах командной строки, в буферах текстовых редакторов, управляемых зубодробительными комбинациями клавиш, в непонятных строках скриптов и конфигов. И тогда у него остается два выхода: или бежать обратно, на обжитый подоконник, как муж возвращается к нелюбимой, но хозяйственной жене от страстной, но безалаберной любовницы. Или все же, если очень нужно, очень хочется, или просто гордость не позволяет возвращаться битым - стиснуть зубы и начинать работать в bash
и vim
, искать файлы find
'ом и тексты - grep
'ом, а главное - читать man
'ы, info
'ы, doc
'и и прочие how-to
'и.
Так не лучше было бы для нашего подоконника, если бы кто-нибудь сразу объяснил ему: нет ничего более нелепого, чем ставить Linux ради того только, чтобы сочинять служебные записки в OpenWrite, финансовые отчеты - в OpenCalc. Или, паче того, ради профессиональной обработки изображений в Gimp - на то есть более подходящие инструменты (и, добавлю, более подходящие операционки и аппаратные платформы). Что сила POSIX-систем для пользователя (о разработчиках или сисадминах тут речи не идет) - в изощренных средствах создания и обработки текстов, а также в мощнейших коммуникационных возможностях. А не это ли, как я уже отмечал в преамбуле, требуется большинству пользователей от компьютера "по делу", а не ради развлечения?
Прошу понять меня правильно: я не призываю отказываться от OpenOffice.org сотоварищи. Более того, я всецело "за" - эти средства помогут, помимо относительно безболезненного вхождения в новый дивный POSIX-мир, не чувствовать себя чужими на празднике жизни окрестных "подоконников" с их doc-файлами. Я лишь прошу вас помнить о том самом внешне скромном Unix-инструментарии, оттачивавшемся веками (в масштабах времени компьютерной эпохи) - и именно для работы с текстами и коммуникаций.
Помнится, на заре своего приобщения к Linux первое, что я делал после установки системы - были инсталляция StarOffice и прикручивание к нему русских буковок (тогда это не всегда выглядело столь тривиально, как сейчас). А нынче? Нынче я месяцами не вспоминаю об OpenOffice.org или любом ином офисном пакете - пока не придет doc-файл, который нужно не просто прочесть, но и поправить с сохранением форматирования.
Итак, резюмирую затянувшийся базар. Первое, что должен постигнуть начинающий пользователь POSIX-системы - то, что с неизбежностью краха мировой системы социализма ему придется осваивать "вечные истины" POSIX-мира - понятия о файлах, процессах, пользователях, принципы командного интерфейса, и так далее. И что, настраивая обои в KDE или лабая по клавишам в OpenOffice.org, он должен морально к этому готовиться. А еще лучше - закрыть глаза и сразу броситься с головой в ледяную воду командных строк и командных редакторов. Метод "большого болота", знаете ли, доказал свою эффективность не только в Дальстрое...
Далее, можно сказать, что суть POSIX'ивистского подхода - в извечном противопоставлении и неразрывном единстве дедукции и индукции, анализа и синтеза. И здесь отчетливо проступает академическое происхождение POSIX-совместимых систем: если пользователь Windows в своей повседневной деятельности руководствуется набором готовых рецептов, более или менее обширным, то эффективное использование Linux или BSD начинается с постижения некоторых общих принципов. Подобно тому, как любая наука начинается, вопреки утверждениям классиков марксистской философии, не с анализа фактов, а с некоторого первичного их обобщения, то есть синтеза.
В последнее время общим местом в околокомпьютерной прессе стало сопоставление компьютеров с бытовой техникой по простоте использования. Мне такое сопоставление всегда казалось некорректным, и ниже я постараюсь обосновать свое мнение.
Действительно, что такое видеомагнитофон (магнитофон просто, телевизор, радиоприемник - нужное подчеркнуть)? Это - исключительно инструмент для потребления. Потребления продукции, созданной кем-то другим (случай продукции собственной рассмотрим чуть ниже). Причем продукции, в отличие от продуктов питания, не жизненно важной. То есть потребляемой исключительно с целью развлечения (случай профессиональных теле- или радио-озирателей здесь не рассматривается).
А потому развлекаемый, если так можно выразиться, пользователь-потребитель вправе требовать от такого инструмента минимума сложностей в использовании. Не желает он понимать принципы работы привода видака или передачи сигнала на телевизор. Потому как иначе это превратится в работу, а его задача - как раз отдохнуть от своих (в том числе и производственных) проблем за любимой "Великолепной семеркой" или "Тремя мушкетерами" (нужное вписать).
Более того, пользователь-потребитель видеомагнитофона имеет полную возможность обойтись без всяких знаний о его устройстве. Потому как его потребность - не забивать голову техническими подробностями, - сполна удовлетворяется производителями такого рода техники. Иначе ее просто не стали бы массово покупать - вспомним тех же радиолюбителей с паяльниками, много ли их было в процентном отношении? Чай, не кусок хлеба, обходились Маяком на фабричной Спидоле (за исключением убежденных диссидентов, конечно, у которых "был обычай на Руси - ночью слушать BBC").
Так что развлекаемый пользователь вполне может обойтись минимумом самых простых рецептов, как то: вставить кассету, нажать кнопку "Вперед", после просмотра нажать кнопку Eject. Хотя и тут требуется некий минимум подготовки - например, какой стороной кассету засовывать. Иначе возникнет нештатная ситуация, требующая уже дополнительных рецептов (типа - использовать деревянную линейку) и дополнительных знаний (на что этой линейкой давить).
Однако все это - лишь до тех пор, пока происходит пассивное потребление кем-то созданной продукции. Если же пользователь видика/телевизора, насмотревшись передач типа "Сам себе режиссер" или там крутой порнографии, решит создать собственный шедевр в том же духе, ситуация тут же меняется.
Во-первых, ему потребуется инструмент для созидания, а не потребления. Сиречь - кинокамера. Во-вторых - умение ею пользоваться. Под которым нужно понимать не только владение ее интерфейсом (грубо говоря, знания тех же кнопок запуска-останова), но и умение снимать. То есть - понимание перспективы, освещенности, навыки создания какого-никакого сюжета. Думаю, все согласятся со мной, что мало что может быть страшнее видеоролика, снятого по методу "что увидел, то и снимаю". Помнится, меня всегда доставал просмотр экспедиционных слайдов - обычно именно таким образом он и осуществлялся.
А уж если такой пользователь в итоге изберет видеосъемку своей профессией - тут ему потребуется и многое другое. В том числе не лишними окажутся знания о физических принципах фото- и видеосъемки. Не случайно лучший из лично известных мне фотографов по образованию - физик-оптик с неслабым опытом инженерной работы в очень нестандартных условиях (см. http://www.rwpbb.ru).
Да и на видеомагнитофон такой пользователь (а он ведь по прежнему - пользователь видеомагнитофона по определению, не так ли? - ибо производством оных не занимается) будет смотреть совершенно иначе. Для него это будет уже не инструмент потребления, а аппарат, способный подчеркнуть или затушевать собственное мастерство (или - отсутствие такового). То есть превратится в деталь производственного цикла, в орудие производства.
И тут требования к удобству интерфейса даже видеомагнитофона отступают на второй план. Мало горя будет в том, что на конкретной модели кнопка запуска расположена не совсем там, где хотелось бы, если это - единственный (или единственный доступный финансово) инструмент, способный обеспечить требуемую функциональность.
Вернемся, однако, к рецептам и принципам. Пока пользователь видеотехники остается чистым потребителем, он вполне может обходиться минимумом рецептов. Однако первые же попытки креативного характера приводят к резкому возрастанию потребности в HOW TO: куда встать, под каким углом держать, откуда направить свет, и так далее. И здесь перед ним два пути: экстенсивный или интенсивный. Первый - копить все те же практические рецепты, наработанные эмпирически. Однако скоро а) их становится очень много и б) все рецепты по определению охватывают только стандартные ситуации, ничего нетленно-непреходящего с их помощью не создашь. И приходится нашему пользователю волей-неволей обращаться к истокам - то есть базовым принципам. Бия себя по голове за то, что в школе не читал внимательно "Физику" Перышкина...
Теперь обратимся к компьютерам. В отличие от видеомагнитофонов, они изначально создавались не для потребления, а для креатива (чего бы то ни было). И многими, как ни странно, и по сей день используются главным образом для работы. В том числе, а то и в первую очередь - для работы дома. Помнится, меня первая "персональная персоналка" обеспечила именно возможностью не ходить на службу.
Конечно, компьютер имеет и потребительски-развлекательную функцию. Каждый пользователь, профессионально с компьютером связанный (не в смысле - профессиональный компьютерщик, а - выполняющий свою профессиональную работу главным образом на компьютере), отнюдь не прочь послушать музыку или посмотреть киношку без отрыва "от станка". Однако функция эта не просто вторична по времени, она не критична и по значению. Думаю, если просмотр видеоролика будет мешать работе профессионально критичной программы, любой профессионал предпочтет смотреть его по видику (тому самому, развлекательно-потребительскому).
Очевидно, что для профессиональной работы важнее функциональность, а не удобство использования (мне безразлично, насколько удобно я не могу выполнить свою задачу). А развлекательная составляющая - вроде бесплатного приложения.
Говорят, что есть и чисто развлекаемые пользователи-потребители компьютеров, покупающие навороченные P-4 вместо музыкальных центров или домашних видеотеатров. Хотя мне таковых видеть и не доводилось. Однако рискну предположить, что это в основном - именно люди, профессионально с компьютерами связанные (или энтузиасты цифрового контента), иначе не вижу тут ни практической, ни финансовой целесообразности. Может, я и отстал от жизни, но мне кажется, что нормального качества телевизор стоит дешевле, чем высококлассный монитор (а только на таком просмотр фильма и доставит удовольствие истинному ценителю).
Это я все к тому, что даже и в развлекательном аспекте компьютер остается где-то инструментом креативным, со всеми вытекающими последствиями. Кроме того, он при этом практически не теряет своего универсализма. Если на видеомагнитофоне слушать Баха, скажем так, несколько затруднительно, а на CD-плейере, напротив, фильмы Бессона обычно не смотрят, то тот же мультимедиа-компьютер призван выступать в обоих качествах (а зачастую, повторюсь, на нем даже еще и работают). И потому ожидать, что он будет так же прост в обращении, как монофункциональный развлекатель - по меньшей мере излишне оптимистично.
Конечно, чисто развлекательную функцию компьютера тоже можно упростить до состояния видеомагнитофона. Замечательным примером чему служит Linux-дистрибутив под названием MoviX. Это - один из т.н. LiveCD, то есть система на компакте, способная с оного не только запускаться, но и полноценно функционировать. Функции MoviX'а, правда, весьма ограничены. А именно, он умеет только крутить мультимедийные файлы (видео и аудио). Но зато умеет это - очень хорошо. И, главное, ничуть не сложнее, чем бытовой агрегат соответствующего назначения.
Так что достаточно легкого движения рук - вставки диска MoviX в привод и комбинации из трех пальцев, - чтобы волшебным образом превратить тысячебаксовый компьютер в элегантный видеомагнитофон или CD-плейер красной ценой в пару сотен. Благо, и обратное превращение ничуть не сложнее...
Но упростить производственную-то функцию компьютера - все равно не удастся (работать вообще довольно трудно, как говорил, если не ошибаюсь, Антон Палыч Чехов). И потому лозунги типа "С выходом Windows 3.0 (3.1, 95, 98, ME, XP etc.), обращаться с компьютером наконец-то (выделение мое - А.Ф.) стало также просто, как с бытовой техникой", которые я лично слышу уже более 10 лет, - лукавы, как минимум, вдвойне. Во-первых, это самая обычная подмена понятий - если под обращением понимать не только развлекательную сторону, но и производственную (см. вышеуказанный тезис А.П. - создавать видеофильмы никогда не будет также просто, как их просматривать). А во-вторых, сама регулярность появления таких лозунгов (я не случайно выделил слова наконец-то) вызывает подозрения, что и с развлекательной строной компьютеров все еще сохраняется некоторая напряженка. В частности, за что я не люблю Windows, - за то, что она, обещая избавление от всех и всяческих проблем хотя бы в потребительском аспекте, своих обещаний не выполняет.
Однако опять вернемся к рецептам и принципам. Худо-бедно, но с развлечениями на компьютерах можно справиться посредством первых. А вот с производством любого рода? Рассмотрим это на примере более-менее близкой мне области - работы с текстами, претендующими на оригинальность (то есть выдумываемыми из головы).
Подобно нашему видеолюбителю, профессиональный текстовик, пересев с пишущей машинки (или с письменного стола со стопой бумаги и паркеровской авторучкой) за компьютер, быстро узнает множество простых рецептов, как то: нажав клавишу Insert, он может забить неправильно введенный текст (как забивочные листки на машинке, только проще), клавишами Delete или Backspace можно уничтожить лишнюю букву (в отличие от замазки, без следов), и так далее.
Жить нашему текстовику становится лучше, становится веселей. Но еще не до конца. Потому как он узнает об управляющих последовательностях, с помощью которых может мгновенно переместиться в требуемое место текста и продолжить набор-редактирование, о глобальном поиске и замене, об автоматической проверке правильнописания, и о многом, многом другом.
Однако суть работы текстовика при этом не меняется, как не меняется и стиль мышления. И то, и другое по прежнему линейно, оригинальный текст создается от начала и до конца, как и за пишущей машинкой, расширяются только возможности возврата к написанному и внесения в него корректив. И потому следующая мысль - а не структурировать ли текст изначально, внеся соответствующую разметку рубрик, подрубрик, параграфов? И вот это - уже скачок качественный, ведь для структуризации (ненаписанного еще) текста последний весь, целиком, уже должен быть вот здесь, в ... (ну, сами знаете где).
К слову сказать, современные ворд-процессоры WYSIWYG-типа пользователя к такой структуризации отнюдь не стимулируют. За ненужностью народу, вероятно. В одной книжке про Word мне как-то встретилась фраза, что стилевая разметка - это штука очень сложная, которая по силам только высоким профессионалам. Простым людям, видимо, проще вручную придавать заголовку каждой главы кегль и начертание (и при этом помнить, какое оформление было придано Главе 1, какое - Главе 2, и так далее).
Впрочем, я опять отвлекся, перестройка мышления текстовика - тема совершенно отдельная. Вернемся к принципам. С созданными и отредактированными текстами подчас приходится продолжать работать - делить на фрагменты, соединять, извлекать части одного документа и вставлять в другой. И вот тут-то и обнаруживается неэффективность рецептов.
Возьмем простую задачу - создание единого документа из нескольких существующих, причем - включенных в определенной последовательности. Мне этот пример кажется очень показательной, и я не устаю его повторять. Можно: открыть документ 1, перейти в его конец, щелкая мышью по контекстному меню (или даже воспользовавшись существующим рецептом - макрокомандами с привязанными к ним горячими клавишами), вставить туда документ 2, и так далее. Быстрее, конечно, чем подклеивать бумажные листы силикатным клеем, но все ли это, что может компьютер?
Нет, если узнать (или вспомнить) несколько принципов более общего порядка. Любой документ - есть файл. Любой файл может быть выведен на устройство вывода (экран или, скажем, принтер). А любой вывод может быть перенаправлен с одного устройства вывода на другое. Но ведь любое устройство вывода - тоже файл. Значит, вывод любого файла может быть перенаправлен не в файл устройства, а в другой, например, текстовый, файл. Остается только отыскать команду, которая это сделает. И такая команда легко находится - это cat
. В результате конструкция
$ cat file1 file2 file3 > file-all
создаст нам результирующий документ в один присест. Причем составные части его расположатся в той последовательности, в какой нам нужно - в соответствие с порядком аргументов команды cat
. И, если мы заранее озаботились тем, чтобы структура наших рабочих файлов хоть как-то коррелировала (не обязательно плоско-линейно, но по какому-либо принципу) со структурой итоговой работы (а это та самая структуризация мозгов, о которых я говорил чуть раньше) - результирующий документ будет структурирован должным образом, причем без всяких дополнительных усилий.
Задача обратная - поделить наш правильно (!) структурированный документ на отдельные части в соответствие с его внутренней структурой (например, разбить книгу на главы, как это обычно требуется для представления в издательство). Для автоматизации процесса нам достаточно знать о другом относительно общем понятии - регулярных выражений, причем лишь в той его части, которая описывается термином шаблон (pattern). И задача сводится к тому, чтобы отыскать в нашем файле строки, начинающиеся последовательностью символов Глава
и каждую последовательность символов в промежутке записать (то есть вывести) в самостоятельный файл. Что можно сделать многими способами, но один из них - штатен и элементарен, это команда split
(в BSD) или csplit
(в Linux).
Последний пример показывает, что, хотя понимание принципов и не избавляет уж совсем от обращения к рецептам, но зато позволяет вычислить последние при их незнании. Дело в том, что в BSD команда split
универсальна, и служит для разделения файла по любому параметру - размеру, номеру строки или шаблону. Одноименная же команда в Linux выполняет только первые две функции, опции -p
(--pattern
) в ней не предусмотрено. Что поначалу может расстроить. Однако если понимать, что в принципе разделение файлов по шаблону почти ничем не отличается от такового по номеру линии или размеру (и то, и другое суть действия, основанные на анализе последовательности символов), остается только изыскать соответствующий рецепт. Что можно сделать просто в лоб - поискать слово split
в каталоге с man
-страницами командой grep
(строго говоря, не слово, а последовательность символов, и командой zgrep
, так как страницы эти обычно в gzip
-сжатом виде). Чем и обнаруживается man-страница с описанием команды csplit
, прочитать которую - уже вопрос элементарной грамотности.
Следующий пример соотношения рецептов и принципов касается установки пакетов. Пользователь любого прекомпилированного дистрибутива быстро усваивает простые рецепты управления оными. Таким рецептом в rpm-based дистрибутивах Linux является команда вида
$ rpm -ihv package_name.rpm
прекрасно работающая в штатных ситуациях. Однако что делать, если пакет таким образом не устанавливается (например, вследствие нарушения зависимостей), работает не так, как ожидалось, или просто отсутствует? На помощь приходит понимание принципов распространения свободных программ - в исходных текстах, - и принципов их сборки, универсальных и не зависящих ни от дистрибутива, ни даже от операционной системы. А понимание принципов сборки, в свою очередь, способствует проникновению в суть дистрибутив-специфичного пакетного менеджмента...
Но особенно явно превосходство принципов над рецептами выступает при конфигурировании всего и вся - от общесистемных опций до шрифта меню конкретного приложения. Рецептурный подход - использование специализированных средств настройки, оформленных в виде самостоятельных утилит или встроенных в прикладные программы. Самостоятельные утилиты такие многочисленны и разнообразны, не зря же Владимир Попов как-то заметил, что число утилит конфигурирования давно превзошло количество конфигурируемых параметров. Интерфейс у них разный в разных дистрибутивах, да к тому же еще и может меняться от версии к версии. Так что доскональное знание какого-либо DrakX из Mandrake ничем не поможет при работе с sysinstall
из FreeBSD, и наоборот.
Если же не "поступаться принципами" - достаточно раз и навсегда понять, что все параметры настройки системы описываются в соответствующих конфигурационных файлах, которые суть обычные тексты, могущие быть открытыми в любом текстовом редакторе и там модифицированными надлежащим образом. Что и проделывают, только в завуалированном виде, все настроечные утилиты.
Что касается объектов конфигурирования, то есть соответствующих файлов, и субъектов оного - параметров настройки, - то они определяются стандартными утилитами работы с текстами, например, командой find
- для поиска файлов по маске, и командой grep
- для изыскания в них подходящих по смыслу фрагментов. Ну и, разумеется, осмысленного анализа результатов того и другого...
Вопреки сложившемуся убеждению, для этого не обязательно быть Unix-гуру или к таковому обращаться. Во-первых, тот же гуру даст, скорее всего, именно конкретный рецепт на злобу дня. Во-вторых, многие вещи в системе настраиваются один раз в жизни, и вполне возможно, что наш гуру благополучно забыл о том, как именно он это делал. Так что своей просьбой вы просто вынуждаете его вторично проделать ту самую цепочку логических рассуждений, отталкивающихся от общих принципов, которую вы легко (и с пользой для духовного самосовершенствования) могли бы проделать сами.
И еще к слову - с успехом (надеюсь) применяя принципиальный подход к жизненно важным для работы настройкам, можно не поступаться принципами и при настройке вещей развлекательного свойства. Например: звуковая карта определена и в ядре настроена правильно, соответствующий софт установлен и работает, но mpeg-файлы, скажем, воспроизводиться не желают.
Вероятно, в user-ориентированных дистрибутивах существуют какие-нибудь специальные утилиты для настройки этого хозяйства, и можно обратиться к ним. А можно просто вспомнить, что звук воспроизводится устройством, устройство есть файл, а файл имеет определенные атрибуты принадлежности (хозяину, то есть пользователю имя_рек, группе и всем прочим) и атрибуты доступа (в просторечии именуемые правом чтения, исполнения и изменения). И остается только проверить, а имеет ли данный пользователь должные права доступа к этому файлу? И если выясняется, что файл /dev/audio
открыт для всеобщего использования во всех отношениях - посмотреть, а не есть ли его имя лишь символическая ссылка на файл реального устройства, отвечающего за воспроизведение звука, и проверить права доступа к нему.
И опять к слову: понятие атрибутов принадлежности и доступа, одно из краеугольных в Unix-системах, существует и в тех Windows, которые можно назвать всамделишними (то есть NT/2000/XP, даже в ME вроде бы есть зачатки - семейный доступ в систему и прочее). Да вот только пользователи их об этом часто не подозревают. Не потому, что чайники, а потому, что их от этого знания тщательно оберегают.
В результате к нештатным ситуациям (например, потере пароля - кто от этого застрахован, все мы люди, все мы человеки) пользователи Windows оказываются просто морально не готовы: нужно дергаться, звать админа, даже (страшно подумать) лезть в книги (не для того ли мы отказывались от man
- и info
-страниц?) для поиска рецептов, соответствующих ситуации.
А в Unix (вернее, Linux/*BSD, за прочие не скажу по незнанию) - все просто, если помнить о файле (файлах) паролей, однопользовательском режиме (или возможности загрузки с внешнего носителя) и о том, что дисковые устройства нужно монтировать (насколько я знаю, в NT сотоварищи диски тоже как бы монтируются, только "дружелюбно" и "прозрачно" для пользователя; в итоге ему остается только удивляться сообщениям об ошибках, выдаваемых при неправильном извлечении USB-драйва).
В общем, подведу итог. Рецептурный подход вполне приемлем при потребительско-развлекательных задачах. И оказывается, мягко говоря, не самым эффективным при задачах производственно-креативных. А отработав принципиальный подход на них, становится уже в лом искать, какая кнопочка отвечает за масштабирование окна данной программы воспроизводства видео... Проще задать сиюминутную геометрию в командной строке или (раз навсегда) в соответствующем конфигурационном файле.
В преамбуле я вскользь упоминал, что FreeBSD видится мне более подходящей системой для приобщения к POSIX'ивизму, нежели какой-либо из user-ориентированных дистрибутивов Linux. И теперь я могу высказать первый к тому резон: отличие этой ОС от Windows с первых же шагов проступает столь явственно, что не рождает даже мысли об использовании "подоконных" приемов работы.
Конечно, такие Source Based дистрибутивы Linux, как Gentoo, уже на стадии установки оставляющие пользователя наедине с командной строкой и текстовым редактором, еще более гармонируют с методом "большого болота". Однако для совсем уж неподготовленного юзера болото может оказаться чересчур уж глубоким.
FreeBSD же предлагает начинающему пользователю достаточно взвешенный подход: на первых порах можно положиться на умолчания системы, не идеальные, но разумные. А в дальнейшем, по мере накопления знаний и умений, все больше и больше вмешиваться руками.
Тем не менее, основной десктопной платформой среди открытых ОС выступает Linux. И среди Linux'ов также можно подобрать подходящие (можно сказать, модельные) объекты для постижения истин POSIX-мира. Многие поколения пользователей входили в этот мир через Linux Slackware. Однако в настоящей книге в качестве таких модельных систем выбраны два близкородственных дистрибутива - Archlinux и CRUX.
Может возникнуть вопрос - почему я остановился на относительно мало распространенных представителях этого семейства?
Во-первых, концепция их построения, в частности, обособление базовой системы от опциональных (и сугубо альтернативных) пользовательских приложений, подчеркивает системную целостность Linux как ОС.
Во-вторых, как это ни парадоксально, оба эти дистрибутива, казалось бы, отнюдь не ориентированные на начинающего пользователя, весьма просто устроены - почти так же просто, как и FreeBSD.
В третьих, Archlinux и CRUX, не смотря на близкое (можно сказать, генетическое) родство, демонстрируют разный подход к дистрибутивостроению вообще. Первый - это полнофункциональная система, включающая необходимый набор пользовательских приложений (сохраняющая, тем не менее, относительную компактность и обозримость), развертываемая за считанные минуты и позволяющая перейти к практической работе после нескольких несложных манипуляций. CRUX же - это скорее база для построения системы собственной - хотя и тут этот процесс можно осуществлять параллельно с выполнением пользовательских задач.
Наконец, я просто хотел привлечь внимание к этим достойным представителям Linux-семейства, отнюдь не пользующихся известностью - причем незаслуженно.
Я вовсе не навязываю свой выбор в качестве истины в последней (да и в любой другой) инстанции. Однако с чего-то начинать нужно - почему бы не начать с одной из перечисленных систем? Тем более, что начинающий POSIX'ивист должен четко понимать - выбрать с первого же раза дистрибутив или ОС, идеально подходящий к его задачам, потребностям, наконец, просто индивидуальным склонностям можно только при исключительном везении. Скорее всего, ему придется перепробовать не одну систему, прежде чем окончательно определиться в своих предпочтениях. Однако полученные навыки и знания лишними не окажутся в любом случае.
Назад Содержание Вперед