Зачем эта книга
Казалось бы, о 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 создавался для работы с текстами (любого рода) и обеспечения коммуникаций, и именно в этом он проявляет свою силу. Однако - разве не для работы с текстами и обеспечения коммуникаций использует компьютер подавляющее большинство людей в своей профессиональной деятельности?