Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Создание интернет-магазина от 350 руб!
Большой выбор шаблонов. Поддержка 24/7. Месяц бесплатно!

Назад Вперед

Введение в POSIX'ивизм

(C) Алексей Федорчук, 2005
Опубликовано на сайте LinuxCenter

Преамбула

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

Содержание

Необходимое вступление

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

Зачем эта книга

Казалось бы, о Unix, Linux и BSD сотоварищи за последние годы написано множество книг, статей, сетевых материалов - нужно ли еще одно сочинение на заданную тему? Думается, что нужно, и по нескольким причинам.

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

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

Третья причина - в том, что Linux-бум конца ушедшего тысячелетия в определенной мере оставил в тени других представителей семейства открытых POSIX-систем. В результате понятие Open Sources прочно контаминировалось с ОС Linux, а последняя - с такими вещами, изначально к Linux'у никакого отношения не имевшими, как оконная система X, интегрированная рабочая среда KDE или офисный пакет OpenOffice.

Четвертая причина - часто встречающееся (и вполне объяснимое) стремление многих авторов объять необъятное. В итоге в толстых книгах о Linux и Unix говорится о таких материях, как администрирование локальных сетей и Интернет-технологии, да и многих других, не имеющих прямого отношения к операционным системам.

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

В настоящем сочинении я и попытался максимально абстрагироваться от конкретных реализаций, воплощенных в том или ином дистрибутиве Linux или какой-либо BSD-системе. И потому в книге речь пойдет, в первую очередь, о том, что их всех объединяет. А в очередь вторую я хотел бы поговорить о тех аспектах, которые собственно и определяют своеобразие каждого POSIX-представителя как операционной системы.

Книга основана на уже более чем пятилетнем практическом использовании свободных ОС семейства Unix - в первую очередь FreeBSD и пары-тройки дистрибутивов Linux, а также ознакомлении (разной степени поверхностности) со всеми прочими представителями BSD-клана и с полутора десятками представителей необъятного мира Linux-дистрибутивов.

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

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

За последние годы Linux, исторически использовавшийся преимущественно в сфере разработки программного обеспечения и сетевых решениях, все более утверждается в роли операционной системы универсального, в том числе и так называемого домашнего, назначения. BSD-системы в этом аспекте почти никогда не рассматриваются. Однако именно с позиций пользователя разницы между ними почти нет, и они пригодны к настольному/домашнему применению ничуть не меньше, нежели любой из user-ориентированных дистрибутивов Linux. И это я тоже попытаюсь продемонстрировать в настоящем сочинении.

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

Начинающий пользователь POSIX-систем, как правило, обращается к Linux. Причем именно к тем его разновидностям (т.е. дистрибутивам), которые обеспечивают ему наиболее комфортные условия миграции с системы, использовавшейся ранее (рискну предположить, что системой этой, в силу исторических причин, была та или иная версия Windows). Такие дистрибутивы, именуемые user-ориентированными (или дружественными к пользователю), как правило, обладают красивыми и удобными графическими инсталляторами, развитыми средствами универсального конфигурирования системы, богатым наборами утилит для управления программными пакетами, и так далее. И потому их использование на первых порах помогает сломать психологический барьер между привычными объектными интерфейсами и аскетичным на вид исконно Unix-инструментарием.

Однако довольно быстро к пользователю приходит понимание того, что Unix - это не Windows, а Windows - это не Unix. И эффективное использование любого представителя последнего семейства достигается совсем другими способами - на первый взгляд непривычными, но чрезвычайно мощными и, главное, универсальными. Однако user-ориентированные дистрибутивы, как правило, отнюдь не подталкивают пользователя к их изучению. Ибо графические инсталляторы и конфигураторы, облегчая, казалось бы, ему жизнь, затеняют при этом внутреннюю сущность явлений.

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

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

Древние греки считали наименее приспособленными к жизни людей, не умеющих читать и плавать. Нравится это или нет, но компьютеры вошли в нашу жизнь прочно и бесповоротно. Так что теперь к списку необходимых умений следует прибавить навыки работы с компьютерами. А потому очень остро встает проблема компьютерного образования. Причем от решения эта проблема далека - нельзя же в самом деле рассматривать в качестве основ компьютерной грамотности минимальное натаскивание для работы в Windows и конкретной версии Word. Причем - именно натаскивание на уровне нескольких готовых рецептов: мне рассказывали страшную историю про то, как школьная учительница по информатике поставила ученику "двойку" за то, что он вышел из Windows через Alt+F4 (следовало - обязательно сделать это через меню Пуск и его пункт Выход).

И в сфере образования роль свободных Unix-клонов трудно переоценить. Причем - не только для тех, кто собирается выбрать специальность, хоть как-то связанную с компьютерами. Традиционные методы работы в Unix могут использовать представители любых профессий, именовавшихся при советской власти "творческими". Причем - подчас более эффективно, чем стандартные офисные приложения. Не нужно только впадать в другую крайность и объявлять Linux или, тем более, BSD, средством решения любых задач. Unix создавался для работы с текстами (любого рода) и обеспечения коммуникаций, и именно в этом он проявляет свою силу. Однако - разве не для работы с текстами и обеспечения коммуникаций использует компьютер подавляющее большинство людей в своей профессиональной деятельности?

Для кого эта книга

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

И потому вторая адресная категория читателей - уже приобщившиеся, но начинающие пользователи Linux или BSD, только приобретающие навыки работы в POSIX-системах. Я надеюсь, что мое сочинение поможет сократить для них срок адаптации и будет способствовать скорейшему осознанию все того же факта, что Unix - это не Windows, и Windows - это не Unix.

Однако я не теряю надежды, что к этому сочинению обратятся и совсем начинающие пользователи компьютера вообще, не затронутые еще тлетворным воздействием Windows. И мечта эта не столь уж утопична, как может показаться - ведь учится новому "с нуля" всегда легче, нежели переучиваться. Для чего достаточно иметь только толику любопытства и склонность к поиску и усвоению новой информации.

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

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

В любом случае, я надеюсь, что эта книга покажется вам полезной по содержанию и, не в последнюю очередь, интересной по форме. Однако ни того, ни другого гарантировать не могу: вы тратите на нее время исключительно под свою ответственность.

О чем эта книга

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

А знакомство пользователя с любой POSIX-системой начинается с ее установки. Конечно, по меткому замечанию Виктора Вагнера (Как стать квалифицированным пользователем), это примерно то же самое, что начинать обучение вождению автомобиля с регулировки клапанов или переборки коробки передач. С точки зрения затрат сил и времени хорошо было бы учиться работать на системе, установленной и настроенной специалистом. Однако принудительная сила реальности такова, что, за редчайшим исключением, начинающий пользователь Linux или BSD вынужден перво-наперво сам установить и настроить систему. Что, конечно, требует знаний и умений. Да вот только приобрести их он может, предварительно получив систему в свое распоряжение - то есть установив ее и хоть как-то настроив. Эта "уловка 22 от Linux", по выражению Владимира Попова (Init...etc), и составляет одно из главных препятствий для широкого распространения этой ОС (как и других Unix-подобных систем),

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

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

Большая ее часть представляет собой своего рода общее введение в мир свободных POSIX-систем. Поэтому сначала, в главе 1, я не могу не остановиться на таком явлении, как программы с открытыми исходными текстами вообще (Open Sources), поскольку речь здесь будет идти исключительно об открытых и свободных представителях POSIX-семейства.

Затем (глава 2) вас ожидает рассмотрение вопроса о том, что такое операционная система вообще, POSIX-совместимые (или Unix-подобные) операционки в частности и Linux и BSD-системы - в особенности.

Понимание POSIX-систем невозможно без представления о их истории - хотя эта тема интересна и сама по себе. Так что она будет рассмотрена в главе 3. На чем вводную часть книги можно считать законченной.

В последующих главах следует обзор "вечных истин" POSIX-систем. В частности, глава 4 посвящается специфике POSIX-совместимых систем, и принципиальному отличию методов их использования от ОС семейства Windows.

Дальнейшее изучение любого свободного Unix-клона, как уже было сказано, вынужденно происходит одновременно с установкой и настройкой этой системы. И в главе 5 рассмотрены принципы установки POSIX-совместимой ОС - вне зависимости от конкретной реализации. Поэтому здесь не будет описаний работы инсталляторов и конфигураторов того или иного конкретного дистрибутива Linux или BSD. Вместо этого я постараюсь рассказать о внутренней сущности действий при установке любой POSIX-системы, о том, что обычно в user-ориентированных дистрибутивах Linux (а ведь именно с них, скорее всего, и начнет свое знакомство начинающий пользователь) остается за кадром графического интерфейса.

Главы с 6-й по 10-ю посвящаются "трем китам", на которых зиждется POSIX-мир - понятиям пользователя (глава 6), процесса (глава 7) и файла (глава 8), а также физической (глава 9) и логической (глава 10) организации файлов. Интермедии, вклинивающиеся в основной сюжет, посвящены управлению пользовательскими акаунтами, файлами и файловыми системами.

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

В главе 11 описываются связывающие звенья между пользователем системы, протекающими в ней процессами и составляющими ее файлами, охватываемые понятиями терминалов, режимов их работы и их интерфейсов. А в главе 12 подробно описываются принципы основного из пользовательских интерфейсов POSIX-мира - интерфейса командной строки. Следующая за ней интермедия содержит описание одной из важнейших групп пользовательских команд - средствам для работы с текстами.

Глава 13 посвящена принципам настройки системы. Она не подразумевает использования какого-либо определенного дистрибутива Linux или конкретной BSD-системы, будучи применимо ко всем ОС POSIX-семейства. Моменты, специфичные для какой-либо операционки или дистрибутива, выделены особо.

Любая операционная система устанавливается, изучается и настраивается, в большинстве случаев, ради ее практического применения. А это требует понимания принципов управления пакетами - дополнительным программным обеспечением, не входящим в состав собственно операционной системы. Что и составит предмет главы 14.

Глава 15 развивает тему командного интерфейса, и посвящена она первой и одной из важнейших пользовательских программ - командной оболочке (shell), точнее - их многочисленным разновидностям. В главе же 16 речь пойдет о текстовых редакторах - универсальном инструменте пользователя POSIX-систем. И завершающая ее интермедия рассматривает один из частных аспектов работы с текстами - создание и редактирование html-документов.

Операционные системы POSIX-семейства изначально создавались для работы с текстами (в самом широком смысле слова) и потому родной их режим - текстовый. Однако никаких причин отказываться от использования графики в них также не имеется. И поэтому глава 17 будет посвящена универсальной графической метасистеме POSIX-мира - оконной системе X (или, в просторечии, Иксам). В следующей же, главе 18 речь пойдет о среде, обеспечивающей пользователю взаимодействие с этой метасистемой - интегрированном десктопе KDE. Последующая же интермедия описывает главную программу этой среды - konqueror, универсальное средство манипулирования файлами.

Наконец, заключает книгу список источников, как электронных, так и "бумажных". В нем собраны все цитировавшиеся по ходу дела материалы, а также даны ссылки на основоволагающие русскоязычные сайты по тематике Unix и Open Sources.

Почему она такая

То спереди и сзади,
Читая во все дни
Исправи, правды ради,
Писанья ж не кляни.
А.К.Толстой

Форма книги связана с одним из фундаментальных понятий Unix - рекурсией. В собственном смысле слова это - специальный программистский термин, и означает он определение функции через саму себя (что такое функция - надеюсь, станет понятным из главы 12).

Однако в Unix-сообществе понятие рекурсии широко применяется в бытовом, так сказать, смысле. Известным чему примером является акроним проекта GNU - GNU is Not Unix.

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

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

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

Поэтому я, после долгих размышлений, и отказался от линейного стиля изложения в этой книге, придав ей иерархическую структуру, подобную таковой древовидной файловой системы Unix (о которой будет говориться в главе 10). Каркас этой структуры (то есть подобие корня файловой системы) образуют главы, содержание которых было вкратце охарактеризовано в предыдущем параграфе. Они представляют собой своего рода введение в POSIX'ивизм, рассчитанное, в том числе, и на совсем начинающего пользователя. Главы чередуются с интермедиями, каждая из которых посвящена детализации понятий, рассмотренных в соответствующей главе.

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

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

Важно также, что материал из "корневого раздела" книги, за редкими, специально оговоренными, исключениями имеет силу для любой POSIX-совместимой системы. Аспекты же, специфичные для Linux, отдельных его дистрибутивов или какого-либо представителя BSD, по возможности сосредоточены в интермедиях. Кроме того, в них же мне показалось уместным собрать все конкретные примеры и рекомендации - в том числе на уровне "делай, как приказано" (если, конечно, сам не знаешь, как делать).

Как она делалась

Излишне говорить о том, что все это сочинение, от первой до последней страницы, осуществлялось на машине, оснащенной исключительно свободными программами. В качестве операционной системы в разное время написания выступали дистрибутивы Linux - Gentoo (http://www.gentoo.org), CRUX (http://www.crux.nu) и Archlinux (http://www.archlinux.org). Кроме того, изрядная часть книги сочинялась под управлением FreeBSD (http://www.FreeBSD.org). А завершающая доводка и компоновка книги выполнена на машине, единственной операционкой которой выступает DragonFlyBSD. Этим я хочу в очередной раз подчеркнуть, что все POSIX-системы практически равноценны с точки зрения настольного использования.

Основным инструментом собственно сочинительства в разное время были текстовые редакторы joe (в консоли), nedit (в системе X с оконным менеджером fluxbox) и kate (в интегрированной среде KDE). Текст набирался непосредственно в html-формате с помощью макросов собственного изготовления. Поскольку в этой книге в актуализированном и модернизированном виде использованы кое-какие тексты из ранее мной написанного (как опубликованного, так и неопубликованного), проблема поиска необходимых фрагментов, их модификации и помещения куда следует решалась с помощью командных утилит, пришедших из мира классического Unix: (find, grep, cat, split, sed). Лклнчательный вариант книги компоновался и доводилсья в html-редакторе Quanta Plus.

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

Так даются примеры команд,
примеры их экранного вывода,
конфигурационных файлов,
листинги сценариев

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

Команды, их опции и аргументы, упоминаемые в теле абзацев, также передаются моноширинным шрифтом: имя_команды.

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

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

Важную роль в структуре книги играют ссылки на источники информации. В первую очередь это официальная документация к описываемым системам и программам, представленная преимущественно в форме так называемых man-страниц (подробно описанных в главе 12), Ссылки на такие документы выглядят следующим образом: man (#) name, где name - имя объекта документирования (например, команды), а # - номер тематического раздела.

Не менее важны источники информации в Интернете. Они оформлены традиционно, без всяких вытребенок - unix.ginras.ru.

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

О терминологии

Так русский он или русскоязычный?
Моя, Куняев, твой не понимай!
Юлий Ким

Информационные технологии и Computer Sciences имеют международный характер. Однако в силу ряда обстоятельств развивались они преимущественно в англоязычной среде. Можно сказать, что американский английский - родной язык IT-пространства. Особенно ярко это проявляется в мире Open Sources, для разработчиков которого, рассеянных по странам и континентам, говорящих на самых разных языках и формально-организационно никак друг с другом не связанных, английский выступает в качестве lingua franca - его можно сравнить с латынью средневековой науки.

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

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

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

Пуристическая терминология всегда ведет к утяжелению текста. Например, вместо короткого английского слова software или даже просто soft употребляется неуклюжее описательное определение "программное обеспечение". И это еще не самый тяжеловесный оборот - читатель любого компьютерного издания легко может умножить количество примеров.

Кроме того, борьба за чистоту русского компьютерного языка иногда влечет за собой просто комический эффект - когда один "чуждый по происхождению" термин определяется через слово столь же "заграничное", только, в отличие от первого, вошедшее в русский язык раньше (на века или годы - в данном случае не важно). Тут достаточно вспомнить хрестоматийную аббревиатуру "КД-ПЗУ" начала 90-х годов - догадались, что это значит? правильно, "компакт-диск - постоянное запоминающее устройство", сиречь обычный CD ROM. Или, скажем, просто анекдотичную борьбу за замену чуждого иностранного слова "менеджер" исконно русским - "диспетчер". Что вызывает в памяти известного адмирала Шишкова, боровшегося за чистоту русского языка еще в XVIII веке (хотя подозреваю, что для адмирала это было формой своеобразного юмора).

Второй основной недостаток пуристической терминологии - ее неоднозначность, вплоть до полного искажения смысла. Так, перевод английского термина Window Manager как "диспетчер окон" способен только ввести в заблуждение человека, недостаточно знакомого с предметом.

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

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

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

Примером может служить поиск адекватной русской передачи названия для графического метаинтерфейса Unix - X Window System. Обычно в качестве таковой предлагается достаточно неуклюжее словосочетание "система X Window" (а подчас - даже система X Windows). Дословный же перевод здесь будет - "Оконная система X", где компонент X и в английском, и в русском языке выполняет роль идеограммы, а не языковой конструкции (почему - будет рассказано в главе 17). И потому жаргонное выражение "Иксы" вполне имеет право на существование.

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

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

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

References...

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

В своих сочинениях я опирался на множество источников. В первую очередь это официальная документация ко всем упоминаемым по ходу дела программам в формате man и, реже, info, а также html-, xml и pdf-документация на сайтах различных проектов Open Sources.

Далее, я использовал бесчисленные on-line материалы с многочисленных русско- и англоязычных сайтов, посвященных тематике Unix, Linux и Open Sources, ссылки на которые даются по ходу изложения.

На протяжении последних 10 лет тема Open Sources, особенно Linux, занимает все большее место на страницах традиционной "бумажной" компьютерной прессы. Я по мере сил слежу за такими публикациями и при необходимости использую их в своей работе.

Разумеется, не обошелся я и без чтения "толстых" книг по Unix и Linux. Из них наибольшее влияние на меня оказали:

  • Б.В. Керниган, Р. Пайк. UNIX - универсальная среда программирования. М.: Финансы и статистика, 1992; ей, купленной много лет назад совершенно случайно, суждено было стать моей настольной книгой на протяжении всего последующего времени (перевод более нового ее издания ныне продается под названием "UNIX: программное окружение");
  • Д. Тейнсли. Linux и Unix: программирование в shell. К.: Издательская группа BHV, 2001; книга, содержащая детальное описание работы в shell, укрепила меня в мысли, что это - самый эффективный инструмент пользователя всех времен и народов;
  • Дж. Армстронг. Секреты Unix. М.: Издательский дом "Вильямс", 2001; прочитав эту книгу не так давно, я очень пожалел, что она не попала мне в руки раньше - ее чтение позволило бы сэкономить немало сил и времени при освоении POSIX-систем; эта книга - та самая, которую непременно нужно взять с собой на необитаемый остров с Unix-машиной; именно она служила мне эталоном, к коему я стремился приблизиться в своем сочинении.

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

... и реверансы

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

  • основоположникам идеи Open Sources и всему Open Sources Community;
  • разработчикам всех использованных операционок и сборщикам упомянутых в тексте дистрибутивов Linux;
  • разработчикам свободных программ, использованных мной при подготовке книги (и всех используемых мной "по жизни");
  • авторам официальной документации к программам и всех прочих использованных мною материалов, печатных и электронных;
  • авторам и переводчикам материалов проекта http://unix.ginras.ru;
  • всем своим корреспондентам по электронной переписке;
  • постоянным участникам Линуксфорума, общение с которыми для меня не только полезно, но и приятно;
  • родным и близким многих и многих пользователей, которые выступали в качестве подопытных кроликов, оценивая удобопонятность первоначальных версий ряда глав книги.

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

  • постоянному товарищу по онлайновым проектам и виртуальному (а подчас и реальному) собеседнику Владимиру Попову (http://www2.ldc.net/~popov);
  • моему воинскому начальнику Сергею Соколову, зав. лабораторией Геологического института РАН (http://north-east.ginras.ru), и всем сотрудникам нашей лаборатории;
  • руководителю информационной службы нашего института (aka зав. ОНТИ) Дмитрию Кудрявцеву (http://www.ginras.ru);
  • бессменному администратору наших серверов Игорю Борейко;
  • многолетнему соратнику по компьютеризации геологии Кириллу Крылову, покинувшему отчизну не корысти для, но ради счастья в личной жизни;
  • моему самому старому товарищу по ремеслу компьютерщика Владимиру Родионову (http://www.rwpbb.ru).

Особая благодарность: моей жене Лене, и моим детям Оле и Вите, - за сам факт их существования...

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

Окончательный вариант книги был подгтовлен по заказу Линукс Центра и при его поддержке. Дистрибутивы практически всех упоминаемых в книге Linux- и BSD-систем могут быть приобретены в его Интернет-Магазине.

Содержание Вперед

Новости мира IT:

Архив новостей

Последние комментарии:

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...