Краткая история Linux
Linux - многозадачная и многопользовательская операционная система для бизнеса, образования и индивидуального программирования. Linux принадлежит семейству UNIX-подобных операционных систем, которая может работать на компьютерах Intel 80386, 80486 и Pentium. Рекомендуемые конфигурации компьютеров:
минимум - Intel 80386 DX 40MHz/4Mb(RAM)/80Mb(HDD);
рекомендуемое - Pentium 100MHz/16Mb/540Mb;
оптимальное - Pentium 133MHz/32Mb/1Gb.
Linux поддерживает широкий спектр программных пакетов от TeX до X Windows, компиляторов GNU C/C++, протоколов TCP/IP. Это гибкая реализация ОС UNIX, свободно распространяемая под генеральной лицензией GNU.
Linux может любой вышеназванный персональный компьютер превратить в рабочую станцию. Бизнесмены инсталлируют Linux в сетях машин, используют операционную систему для обработки данных в сфере финансов, медицины, распределенной обработки, в телекоммуникациях и т.д.
UNIX - одна из самых популярных в мире операционных систем благодаря тому, что ее сопровождает и распространяет большое число компаний. Первоначально она была создана как многозадачная система для миникомпьютеров и мэйнфреймов в середине 70-ых годов, но с тех пор она выросла в одну из наиболее распространенных операционных систем, несмотря на свой временами обескураживающий интерфейс и отсутствие централизованной стандартизации. Существуют версии UNIX для многих систем, начиная от персонального компьютера, до суперкомпьютеров, таких как Cray Y-MP.
Linux - свободно распространяемая версия UNIX, первоначально была разработана Линусом Торвальдсом (Linus Torvalds). Linux был создан с помощью многих UNIX-программистов и энтузиастов из Internet, тех, кто имеет достаточно навыков и способностей развивать систему. Ядро Linux не использует коды AT&T или какого-либо другого частного источника, и большинство программ Linux разработаны в рамках проекта GNU из Free Software Foundation в Cambridge, Massachusetts. Но в него внесли лепту также программисты всего мира.
Относительно появления Linux версии 0.01 никогда не делалось никаких официальных заявлений. Исходные тексты 0.01 не давали даже нормального выполняемого кода: они фактически состояли лишь из набора заготовок для ядра и молчаливо предполагали, что вы имеете доступ к Minix-машине, чтобы иметь возможность компилировать их и совершенствовать.
5-го октября 1991 года Линус объявил первую "официальную" версию Linux, версия 0.02. Вновь это рассматривалось как создание некой хакерской системы. Основное внимание - создание ядра. Никакие вопросы поддержки работы с пользователем, документирования, тиражирования и т. п. даже не обсуждались. Кажется, что и сегодня сообщество Linux-истов считает эти вопросы вторичными по сравнению с "настоящим программированием" - развитием ядра.
После версии 0.03 Линус скачком перешел в нумерации к версии 0.10, так как над проектом стало работать много народу. После нескольких последовавших пересмотров версий, Линус присвоил очередной версии номер 0.95, чтобы тем самым отразить свое впечатление о том, что скоро возможна уже "официальная" версия. Это было в марте 1992 г. Примерно через полтора года - в декабре 1993 версия ядра все еще была Linux 0.99.pl14 - асимптотически приближаясь к 1.0. А на данный момент версия ядра - 1.2.
Сегодня Linux - это полноценная ОС семейства UNIX, способная работать с X Windows, TCP/IP, Emacs, UUCP, mail и USENET. Практически все важнейшие программные пакеты были поставлены и на Linux, т.е. для Linux теперь доступны и коммерческие пакеты. Все большее разнообразие оборудования поддерживается по сравнению с первоначальным ядром. Многие тестировали Linux на 486-ом и установили, что он вполне сравним с рабочими станциями Sun Microsystems и Digital Equipment Corporation.
Системные характеристики
Linux - это полная многозадачная многопользовательская операционная система (точно также как и другие версии UNIX). Linux достаточно хорошо совместим с рядом стандартов для на уровне исходных текстов, включая IEEE POSIX.1, System V и BSD. Он создавался имея в виду такую совместимость.
Другие специфические внутренние черты Linux включают контроль работ по стандарту POSIX (используемый оболочками, такими как csh и bash), псевдотерминалы (pty), поддержку национальных и стандартных клавиатур динамически загружаемыми драйверами клавиатур.
Ядро может само эмулировать команды 387-FPU, так что системы без сопроцессора могут выполнять программы, на него расчитывающие (т.е. с плавающей точкой).
Linux поддерживает различные типы файловых систем для хранения данных. Некоторые файловые системы, такие как файловая система ext2fs, были созданы специально для Linux. Поддерживаются также другие типы файловых систем, такие как Minix-1 и Xenix. Реализована также файловая система MS-DOS, позволяющая прямо обращаться к файлам MS-DOS на жестком диске. Поддерживается также файловая система ISO 9660 CD-ROM для работы с дисками CD-ROM.
Linux обеспечивает полный набор протоколов TCP/IP для сетевой работы. Поддерживается весь спектр клиентов и услуг TCP/IP, таких как FTP, telnet, NNTP и SMTP.
Ядро Linux сразу создано с учетом специального защищенного режима для процессоров Intel 80386 и 80486. В частности, Linux использует парадигму описания памяти в защищенном режиме и другие новые свойства процессоров.
Для увеличения объема доступной памяти Linux осуществляет также разбиение диска на страницы: то есть на диске может быть выделено до 256 Мбайт "пространства для свопинга" (swap space). (Swap space не совсем подходящее имя, в Linux в область свопинга выгружается не весь процесс, а только отдельные его части, в которых нет необходимости). Когда системе нужно больше физической памяти, то она с помощью свопинга выводит неактивные страницы на диск. Это позволяет выполнять более объемные программы и обслуживать одновременно больше пользователей. Однако свопинг не исключает наращивания физической памяти, поскольку он снижает быстродействие, увеличивает время доступа.
Ядро также поддерживает универсальный пул памяти для пользовательских программ и дискового кэша. При этом для кэша может использоваться вся память, и наоборот, кэш уменьшается при работе больших программ.
Выполняемые программы используют динамически связываемые библиотеки, т.е. выполняемые программы могут совместно использовать библиотечную программу, представленную одним физическим файлом на диске (иначе, чем это реализовано в механизме разделяемых библиотек SunOS). Это позволяет выполняемым файлам занимать меньше места на диске, особенно тем, которые многократно используют библиотечные функции. Есть также статические связываемые библиотеки для тех, кто желает пользоваться отладкой на уровне объектных кодов или иметь "полные" выполняемые программы, которые не нуждаются в разделяемых библиотеках. В Linux разделяемые библиотеки динамически связываются во время выполнения, позволяя программисту заменять библиотечные модули своими собственными.
Приобретение и инсталляция Linux

Мы уже говорили, что не существует "официального" дистрибутива Linux. Существует много дистрибутивов, каждый из которых хорош для определенных целей. Эти дистрибутивы можно взять с ftp-серверов Internet, с BBS, на дискетах и CD-ROM.
Мы дадим общую картину процесса инсталляции и обсудим инсталляцию популярного дистрибутива Linux Slackware.
Получение Linux из Internet и других источников
Если у вас есть доступ к Internet, простейший способ получить Linux - это по FTP. Если вы не имеете прямого доступа к Internet, то можно получить Linux через сервис ftpmail по электронной почте.
Многие дистрибутивы хранятся в виде образов дискет. То есть дистрибутив состоит из множества файлов, каждый из которых содержит двоичный образ дискеты. Для того, чтобы скопировать содержимое на дискету, вы должны использовать программу RAWRITE.EXE под MS-DOS. Эта программа копирует по блочно содержимое файла на дискету, не анализируя формат диска. Если у вас есть доступ к UNIX-станции с дисководом, вы можете также использовать команду dd для копирования образа файла прямо на дискету. Команда, вроде dd of=/dev/rfd0 if=foo bs=18k'' осуществит прямое копирование содержимого файла foo на дискету на Sun-станции. Программу RAWRITE.EXE можно взять на многих Linux FTP-серверах, включая sunsite.unc.edu, в каталоге /pub/Linux/system/Install/rawrite
Во многих случаях вы просто считываете множество образов дискет и используете RAWRITE.EXE для каждого образа, чтобы создать дискету. Вы загружаетесь с так называемой "boot"-дискеты и можете далее скидывать систему. Как правило, программы инсталлируются прямо с дискет, хотя некоторые дистрибутивы позволяют инсталлировать из разделов MS-DOS винчестера. Некоторые дистрибутивы позволяют инсталлировать по сети, посредством TCP/IP. Документация на каждый дистрибутив должна описывать допустимые методы инсталляции.
Другие дистрибутивы Linux инсталлируются с дискет в формате MS-DOS. Например, дистрибутив Linux Slackware требует создания с помощью RAWRITE.EXE только дискет boot и r