Глава 1. Введение в Linux

Содержание

Краткая история системы Linux
Характеристика и возможности системы
Распространение Linux
Построение и философия системы Linux

Linux (произносится — «линукс») является клоном операционной системы UNIX, который работает на большом количестве платформ, в первую очередь — на персональных компьютерах с процессорами Intel 80386 и выше. В системе Linux работает большое количество приложений, включая TeX, X Window System, компилятор GNU C/C++, стек протоколов TCP/IP и многое другое. Linux — добросовестная и легко модифицируемая реализация идей системы UNIX.

Linux превращает любой компьютер с процессором 80386 и выше в рабочую станцию, которая даёт вам в руки всю мощь системы UNIX. Корпорации устанавливают Linux на все машины сети и используют эту операционную систему для ведения финансовой (или, например, больничной) документации, распределённых вычислений и управления телекоммуникациями. Во всем мире система Linux используется в университетах для обучения студентов проектированию операционных систем и системному программированию. Многочисленные энтузиасты, которые есть повсюду, используют Linux дома для программирования, повышения эффективности работы, или же для иных компьютерных изысканий.

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

Краткая история системы Linux

Система UNIX стала одной из наиболее популярных операционных систем во всем мире благодаря тому, что она поддерживает большое количество платформ и, кроме того, активно распространяется. Начало её созданию было положено в компании AT&T в 70-е годы, где она разрабатывалась как многозадачная операционная система для миникомпьютеров и так называемых «больших машин» тех лет. С тех пор, несмотря на несколько запутанный интерфейс и отсутствие единой стандартизации, система UNIX выросла в одну из наиболее распространённых операционных систем во всем мире.

Многие фанатики компьютерных изысканий (hackers) полагают, что «UNIX — это Вещь» и что это «действительно Настоящая Операционная Система», с большой буквы. Этим и объясняется развитие и распространение системы Linux силами все более расширяющейся группы UNIX-хакеров, которые хотят приобщиться к созданию той системы, на которой сами работают.

Модификации системы UNIX существуют для многих типов компьютеров, от персональных и до суперкомпьютеров типа Cray Y-MP. Большинство версий системы UNIX для персональных компьютеров весьма дороги и громоздки. На момент написания исходной версии этой книги (февраль 1998г.) версия UNIX System V для компьютера с процессором 386 стоила около 1500 долларов США.

Linux является бесплатной версией системы UNIX, изначально разработанной Линусом Торвальдсом (Linus Torvalds) в университете в Хельсинки. Через Интернет ему помогали многочисленные программисты и знатоки системы UNIX. В принципе, любой сообразительный человек с навыками программирования имеет шанс модифицировать или изменить данную систему. Ядро системы Linux не использует никаких программных разработок, созданных компанией AT&T или кем-либо ещё, кто может предъявить свои права на интеллектуальную собственность. Значительная часть приложений для системы Linux разработана в рамках проекта GNU, осуществляемого в компании Free Software Foundation, Cambridge, Massachusetts, U.S.A. Тем не менее, программисты всего света вносили свой вклад в постоянно растущий фонд Linux-приложений.

В начале Linux разрабатывался Линусом Торвальдсом как хобби. Линус Торвальдс был вдохновлён системой Minix, другим клоном системы UNIX, разработанным Энди Таненбаумом (Andy Tanenbaum). Первые обсуждения системы Linux проводились в телеконференции Usenet, которая называлась comp.os.minix. Предметом обсуждения была в основном идея создания на основе системы UNIX небольшой учебной операционной системы для тех пользователей системы Minix, которые хотели от неё большего.

На начальном этапе разработки системы Linux в основном создавались средства переключения задач для защищённого режима (protected-mode) процессора 80386. Этот этап работы целиком выполнялся на Ассемблере. О том времени Линус Торвальдс пишет так:

...А дальше вела прямая дорога: хоть это было тяжёлое и скрупулёзнейшее программирование, но у меня уже был доступ к некоторым устройствам, и отладка стала проще. На этой стадии я стал использовать язык C, что определённо ускорило процесс. Именно тогда я стал серьёзно подумывать об этой своей идее создать «создать Minix, который будет лучше, чем Minix». От этой идеи веяло гигантоманией, однако я надеялся, что в один прекрасный день я смогу перекомпилировать gcc в системе Linux...

Два месяца потрачены на основную конфигурацию, и затем весьма скоро у меня уже был драйвер жёсткого диска (он иногда давал серьёзные сбои, но на моем компьютере он счастливым образом мог работать). Примерно в это же время (конец августа 1991года) я открыл доступ к версии 0.01: она не была сколько-нибудь совершенной, в ней не было драйвера гибких дисков, и у неё было совсем немного возможностей. Я не думаю, что кто-либо хоть раз откомпилировал эту версию. Но к тому времени я уже серьёзно погряз в эту историю, и я не намерен был останавливаться до тех пор, пока я не покорю Minix.

Никакого сообщения о выходе версии 0.01 системы Linux не было сделано. Исходные тексты версии 0.01 даже не могли быть собраны в единую работающую систему. В них содержались лишь изолированные обрывки исходных текстов ядра системы; предполагалось, что у пользователя есть доступ к системе Minix, в которой эти тексты можно было компилировать, чтобы затем иметь возможность экспериментировать с системой Linux.

5 октября 1991 года Линус Торвальдс объявил о создании первой «официальной» версии системы Linux (эта система носила номер 0.02). К тому времени автор мог запускать на ней bash (GNU Bourne Again Shell) и gcc (GNU C compiler), однако почти ничего помимо этого. Это все ещё была система для хакеров. Усилия всегда направлялись в первую очередь на создание ядра системы, а поддержке пользователей, документированию и распространению системы внимание почти не уделялось. И по сей день[2], похоже, сообщество разработчиков системы Linux считает эти вопросы вторичными, уступающими по важности «истинному программированию» (т. е. развитию ядра системы).

Линус Торвальдс в телеконференции comp.os.minix писал об этом так.

Не тоскуете ли вы о славном времени системы Minix-1.1, времени славных людей, самостоятельно писавших себе драйверы устройств? Не нужен ли вам проект, достойный вас? Нет ли у вас смертельного желания поломать себе зубы о задачу создания операционной системы, которую вы могли бы видоизменять под свои потребности? Не разочаровывает ли вас то, что все в системе Minix нормально работает? Если да, то это сообщение — для вас.

Как я уже сообщал месяц назад, я работаю над свободной версией — копией системы Minix — для компьютеров AT-386. Работа наконец достигла той стадии, когда систему уже можно использовать (либо нельзя — в зависимости от того, чего вы хотите). Я хотел бы открыть доступ к исходным текстам для широкого распространения. Это всего лишь версия 0.02 ... но я уже успешно запускал в ней bash, gcc, gnu-make, gnu-sed, compress и т. д.

Благодаря тому, что над системой теперь работал уже не один человек, следующей после версии 0.03 Линус Торвальдс смог присвоить сразу номер 0.10. После нескольких последующих доработок этот номер был увеличен в марте 1992 года до 0.95, что указывало на близость (по мнению авторов) выхода в свет «официальной» версии системы (вообще говоря, номер 1.0 не присваивается до тех пор, пока система либо программа не написана полностью и не избавлена от всех ошибок, хотя бы теоретически). Почти полтора года спустя (в конце декабря 1993 года) версия ядра системы Linux все ещё носила номер 0.99.pl14 (pl обозначает patchlevel — здесь: порядковый номер исправлений, правки), «асимптотически» приближаясь к 1.0. На момент написания исходной версии этой книги (февраль 1998г.)[3] имеется стабильная версия 2.0.pl33 системы Linux, а ядра, имеющие номер версии 2.1, являются экспериментальными.

Большинство основных некоммерческих программ, разработанных для системы UNIX, адаптированы под Linux. Имеются и коммерческие программные продукты. В настоящее время поддерживается больше аппаратных средств, чем это было в исходной версии ядра системы Linux. Так, неожиданно для всех, «маленький» клон семейства UNIX вырос и завоевал весь мир персональных компьютеров.



[2] В 1998 году Линус Торвальдс, выдвинув лозунг Desktop or die!, призвал уделить основное внимание созданию пользовательских приложений. — прим. ред.

[3] На момент данной публикации (март 2004 г.) последняя вышедшая версия ядра 2.6.2. — прим. ред.