UNIX - одна из самых популярных в мире операционных систем благодаря тому, что ее сопровождает и распространяет большое число компаний. Первоначально она была создана как многозадачная система для миникомпьютеров и мэйнфреймов в середине 70-ых годов, но с тех пор она выросла в одну из наиболее распространенных операционных систем, несмотря на свой временами обескураживающий интерфейс и отсутствие централизованной стандартизации.
В чем реальная причина популярности UNIX? Многие хакеры нутром чувствуют, что UNIX - это "настоящая вещь", Единственная Настоящая Операционная Система. Отсюда и появление Linux, как системы, разрабатываемой все более расширяющейся группой энтузиастов UNIX, которые хотят собственноручно в ней поковыряться.
Существуют версии UNIX для многих систем, начиная от персонального компьютера, до суперкомпьютеров, таких как Cray Y-MP. Большинство версий UNIX для персональных компьютеров достаточно дороги и сложны. К моменту написания этой книги одномашинная версия AT&T's System V для 386 стоила US$1500.
Linux - свободно распространяемая
версия UNIX, первоначально была разработана Линусом Торвальдсом (Linus Torvalds)
Первоначально Linux создавался
Линусом Торвальдсом как хобби. Его вдохновила операционная система Minix - маленькая
UNIX-система, созданная Andy Tanenbaum, и впервые Linux обсуждался по компьютерной
сети в рамках USENET newsgroup comp.os.minix
. В этих обсуждениях
прежде всего принимали участие пользователи Minix из учебных и научных заведений,
которым хотелось чего-то большего, чем Minix.
Раннее развитие Linux прежде всего было связано с проблемой переключения задач в защищенном режиме для 80386. Все писалось на ассемблере. Линус вспоминает:
"После этого началось спокойное плавание: по-прежнему беспросветное кодирование, но у меня были различные подсобные программы и отладка была облегчена. На этом этапе я стал использовать Си и это существенно ускорило дело. В это же время я стал серьезно обдумывать маниакальную идею, как сделать Minix лучше себя самого. Я надеялся в один прекрасный день перекомпилировать gcc под Linux..." "Два месяца ушло на написание самых базовых программ, а затем чуть больше времени на драйвер винчестера (с большим количеством ошибок, но все-таки работавшим на моей машине) и простую файловую систему. В результате я подготовил версию 0.01 (примерно конец августа 1991 г.). Она была не слишком изящной, в ней не было драйвера гибких дисков и она многое не могла делать. Но я уже не смог остановиться, пока не создал свой Minix."
Относительно появления Linux версии 0.01 никогда не делалось никаких официальных заявлений. Исходные тексты 0.01 не давали даже нормального выполняемого кода: они фактически состояли лишь из набора заготовок для ядра и молчаливо предполагали, что вы имеете доступ к Minix-машине, чтобы иметь возможность компилировать их и совершенствовать.
5-го октября 1991 года Линус
объявил первую "официальную" версию Linux, версия 0.02. В это время Linux уже
мог выполнять bash
(the GNU Bourne Again Shell) и gcc
(the GNU C compiler), но мало еще что работало. Вновь это рассматривалось как
создание некой хакерской системы. Основное внимание - создание ядра. Никакие
вопросы поддержки работы с пользователем, документирования, тиражирования и
т. п. даже не обсуждались. Кажется, что и сегодня сообщество Linux-истов считает
эти вопросы вторичными по сравнению с "настоящим программированием" - развитием
ядра.
Линус писал в comp.os.minix
:
"Грустите ли вы по тем прекрасным временам Minix-1.1, когда мужчины были настоящими мужчинами и писали свои собственные драйверы на все устройства? У вас сейчас нет под рукой настоящего проекта и вы вымираете от невозможности вонзить свои зубы в какую-то ОС, которую бы можно было модифицировать под свои желания? Не находите ли вы деморализующей ситуацию, когда все в Minix работает? Нет больше бессонных ночей, которые позволяли заставить хитрые программы работать правильно? Тогда это место для вас." "Как я уже говорил месяц назад, сейчас я работаю над некоммерческой Minix-подобной ОС для 386-го компьютера. Она уже доведена до такого состояния, когда ею даже можно пользоваться (хотя может быть там не то, что бы вы хотели), и я хочу выложить исходные тексты для широкого распространения. Это версия 0.02, но в ней уже успешно работаютbash
,gcc
,gnu-make
,gnu-sed
,compress
и т.д."
После версии 0.03 Линус скачком перешел в нумерации к версии 0.10, так как над проектом стало работать много народу. После нескольких последовавших пересмотров версий, Линус присвоил очередной версии номер 0.95, чтобы тем самым отразить свое впечатление о том, что скоро возможна уже "официальная" версия. (Обычно программам не дают номер версии 1.0 до того, как она теоретически завершена и отлажена). Это было в марте 1992 г. Примерно через полтора года - в декабре 1993 версия ядра все еще была Linux 0.99.pl14 - асимптотически приближаясь к 1.0. Во время написания книги текущая версия ядра 1.1 patchlevel 52, и на подходе версия 1.2.
Сегодня Linux - это полноценная ОС семейства UNIX, способная работать с X Windows, TCP/IP, Emacs, UUCP, mail и USENET. Практически все важнейшие программные пакеты были поставлены и на Linux, т.е. для Linux теперь доступны и коммерческие пакеты. Все большее разнообразие оборудования поддерживается по сравнению с первоначальным ядром. Многие тестировали Linux на 486-ом и установили, что он вполне сравним с рабочими станциями Sun Microsystems и Digital Equipment Corporation. Кто мог предположить, что этот "маленький UNIX" вырастет настолько, что сможет делать все в мире компьютеров.