y>
Все большую и большую популярность в России и во всем мире завоевывает Linux — UNIX-подобная операционная система для IBM-совместимых персональных компьютеров. Растет количество приложений, разработанных для нее. Постоянно расширяется круг задач, для которых она используется. Из операционной системы для программиста и администратора интернет-сервера она уже превратилась в реальную альтернативу ОС Windows в сфере домашнего и офисного применения.
Эта книга призвана помочь читателю освоить ОС Linux и научиться полноценно работать в ней. Я предполагаю, что читатель знает, с какой стороны подойти к компьютеру, умеет решать свои прикладные задачи, работая в среде Windows или хотя бы MS DOS, и хочет попробовать на практике операционную систему совсем другого класса, чтобы в дальнейшем, возможно, полностью «пересесть» на нее. Изложение материала происходит последовательно, начиная с этапа установки ОС и заканчивая советами по разработке собственных приложений. Знакомство с операционной системой — соперницей Windows начинается с описания прикладных программ, работающих под ее управлением и предназначенных для решения повседневных задач, стоящих перед пользователем домашнего компьютера: редактирование текста и изображений, работа в Интернете, проигрывание музыки и видео и т.п. Для облегчения перехода с Windows на Linux в конце книги приведена таблица соответствия популярных Windows-приложений приложениям Linux, разработанным для решения тех же задач. Далее в разделе для пользователя изложены основные сведения о внутренней организации Linux — ядре, файловой системе, процессах и демонах, их взаимодействии, — необходимые для настройки и базового администрирования системы, то есть обслуживания многопользовательской среды, установки программного обеспечения, обеспечения сохранности данных. Собственно сетевому администрированию, то есть настройке различных сетевых служб, посвящен второй раздел книги. И для читателей, знакомых с программированием в среде Windows, предназначен последний раздел, освещающий особенности разработки приложений в ОС Linux и некоторые полезные инструменты разработчика.
Устанавливая Linux, вы получаете множество преимуществ:
♦ Гибкость. Мало того, что практически все в Linux поддается настройке в соответствии с именно вашими задачами и оборудованием, так вам еще и становятся доступны исходные тексты ядра и приложений, и вы можете модифицировать систему так, как вам нужно. Такое можно встретить далеко не в каждой операционной системе, особенно семейства Windows. Вы видели где-нибудь исходные тексты хотя бы Блокнота Windows? Мне, например, очень не хватает функции замены текста в этом редакторе. Для решения этой проблемы я написал собственный редактор, в котором и реализовал эту функцию. А если мне нужно сделать небольшое изменение в ядре? Не буду же я полностью переписывать Windows? Остается только надеяться, что новая функция будет реализована в следующей версии, и ради этой единственной функции устанавливать «монстра», пожирающего еще больше системных ресурсов.
♦ Дешевизна. ОС Linux абсолютно бесплатна. Конечно, компакт-диски с дистрибутивами продаются за деньги, но эти деньги вы платите не за лицензию, а за сам носитель, подбор программного обеспечения на нем и программу-инсталлятор — все, как у пиратов, с той лишь разницей, что это: а) полностью легально, б) гарантированно работает и пользуется технической поддержкой. Вы можете и не покупать дистрибутив, а анонимно и бесплатно выкачать исходные тексты или уже собранные программы из Интернета, установив их самостоятельно и заплатив только за трафик — и это тоже полностью легально. Вам не придется ничего доплачивать, устанавливая Linux на каждый следующий компьютер, не нужно покупать отдельную лицензию на использование Linux на сервере. В любом случае стоимость всего программного обеспечения составит всего несколько долларов. Я не буду сравнивать стоимость построения Linux-сервера со стоимостью аналогичного сервера на платформе Microsoft, вы сами можете это сделать на сайте компании Microsoft.
♦ Простота обслуживания. Сама система и все службы настраиваются путем редактирования конфигурационных файлов. Это обычные текстовые файлы; зная их расположение и формат, вы сможете настроить любой дистрибутив, даже если у вас под рукой нет никаких инструментов, кроме текстового редактора. Кроме того, для облегчения перехода с ОС Windows NT/2000/2003 Server, где сервисы настраиваются в основном через графический интерфейс, создано множество графических конфигураторов, работа с которыми интуитивно понятна и позволяет сосредоточиться на сути выполняемых действий, а не способе их выполнить.
♦ Нетребовательность к ресурсам. Системные требования зависят от дистрибутива (конкретной реализации Linux) и версии ядра. Существуют дистрибутивы, специально созданные для корректной работы на старых и «бедных» машинах. Например, для организации интернет-сервера на базе дистрибутива Red Hat версии 5.2 вам вполне хватит компьютера с процессором Intel 80486DX и 32 мегабайтами ОЗУ. А окончательно устаревшую 386 машину, на которой никакая современная ОС Windows не запустится, под управлением Linux можно вернуть в строй в качестве маршрутизатора или брандмауэра.
В чем же причина того, что большинство пользователей до сих пор не рассматривают Linux как полноценную настольную операционную систему? Нет, не в том, что Linux так недружелюбен, как его малюют. И не в том, что под Linux нет ни офисных приложений, ни игр. И не в том, что Linux довольно долго имел проблемы с русским языком. Причина заключается в правильной маркетинговой политике Microsoft — нужно отдать ей должное. Совсем не обязательно создать лучший программный продукт, нужно убедить в том, что он лучше. Это я о Windows (про DOS я вообще молчу — урезанная версия XENIX, которая, в свою очередь является урезанной версией UNIX) — эта операционная система использовала UNIX-решения 20 летней давности, в то время как о существовании самой UNIX некоторые пользователи Windows 95 и не догадывались.
Задача этой книги — не только научить пользователей работать с Linux, но и развеять мифы о том, что это сложная и неподъемная система, предназначенная только для профессионалов. Если вы читаете эту книгу, то для себя данный миф вы уже почти разрушили. Осталось только чуть-чуть. Вам осталось узнать об истории создания и развития Linux. Ведь о развитии DOS и Windows знают все — об этом написано даже в школьных учебниках по информатике. А про Linux и UNIX в лучшем случае говорят: «Есть такая система».
Все началось с игры
Не поверите, но все началось с небольшой игры, написанной Кеном Томпсоном. Но чтобы вам было понятно, при чем здесь игра, нужно сделать небольшой экскурс во времена «до игры».
В далеком 1965 году начались работы над созданием операционной системой MULTICS (MULTiplexed Information and Computing System) для компьютера GE-645 (об этом компьютере вы точно не прочитаете в школьном учебнике по информатике). Инициатором была компания Bell Laboratories (подразделение компании AT&T), а ее помощниками выступали не менее известные организации — General Electric и Массачусетский технологический институт (МТИ). Что же ожидали от MULTICS? Процессорное время GE-645 стоило очень дорого, поэтому нужна была система разделения процессорного времени, обеспечивающая высокую скорость обработки данных и их совместное использование. Посмотрите на рис. 1 — это система GE-645. Обратите внимание, какое помещение она занимает. А теперь вспомните процессор Intel 80386. К чему это я? Производительность GE-645 чуть выше, чем у процессора 80386. До чего техника дошла (кстати, «шла» она к этому лет эдак 20)!
Рис. 1. GE-645 © General Electric Information Systems Equipment Division, 1968
Операционная система Multics была запущена в 1969 году, но она не оправдала возложенных на нее надежд. Поэтому вскоре компания Bell Laboratories прекратила работу над этой системой. Коммерческого успеха эта система не принесла. Правда, для справедливости нужно отметить, что МТИ умудрился продать около 80 инсталляций этой системы, причем некоторые из них «дожили» до начала 90-х годов.
Но не бывает худа без добра. Multics послужила своеобразным толчком для создания новой операционной системы — UNIX.
Что же произошло в 1969 году, который считают годом рождения UNIX? Четыре сотрудника Bell Labs, а именно Руд Кенедей (Rudd Canaday), Дуг Мак-Илрой (Doug McIlroy), Дэннис Ричи (Dennis Ritchie) и Кен Томпсон (Ken Thompson) попытались возродить Multics. Все они ранее работали над проектом Multics и не смогли смириться с таким поворотом событий.
Прежде всего был разработан проект файловой системы — потом эта файловая система стала файловой системой UNIX. Кен Томпсон написал программы, эмулирующие работу файловой системы и режима подкачки. Получилось что-то вроде прототипа ядра новой системы. Это ядро было предназначено для GE-645.