Система UNIX стала одной из наиболее популярных операционных систем во всем мире благодаря тому, что она поддерживает большое количество платформ и, кроме того, активно распространяется. Начало её созданию было положено в компании AT&T в 70-е годы, где она разрабатывалась как многозадачная операционная система для миникомпьютеров и так называемых «больших машин» тех лет. С тех пор, несмотря на несколько запутанный интерфейс и отсутствие единой стандартизации, система UNIX выросла в одну из наиболее распространённых операционных систем во всем мире.
Многие фанатики компьютерных изысканий (hackers) полагают, что «UNIX═ — это Вещь» и что это «действительно Настоящая Операционная Система», с большой буквы. Этим и объясняется развитие и распространение системы Linux силами все более расширяющейся группы UNIX-хакеров, которые хотят приобщиться к созданию той системы, на которой сами работают.
Модификации системы UNIX существуют для многих типов компьютеров, от персональных и до суперкомпьютеров типа Cray Y-MP. Большинство версий системы UNIX для персональных компьютеров весьма дороги и громоздки. На момент написания исходной версии этой книги (февраль 1998═г.) версия UNIXSystem 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. — прим. ред.