Основные особенности Linux. Операционная система Linux Операционная система линукс описание

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

1. Надежная многозадачная многопользовательская ОС для персональных компьютеров.

2. Осуществляет эффективное управление памятью.

3. Поддерживает различные файловые системы.

4. Предоставляет сетевые возможности.

5. Работает на разных аппаратных платформах (на всех версиях микропроцессоров Intel, на процессорах AthlonиDuronотAMD, разработаны версии ОС и для других типов процессоров - ARM, DEC Alpha, SUN Sparc, M68000 (Atari и Amiga), MIPS, PowerPC).

Дистрибутивы Linux

Самые первые версии Linux помещались на двух дискетах. Первая дискета была загрузочной и содержала ядро, а вторая - корневую файловую систему и основные утилиты, разработанные в рамках проекта GNU. Процесс конфигурирования и настройки системы производился вручную и требовал обширных знаний. Чтобы установка Linux стала доступна не только экспертам, стали разрабатываться дистрибутивы Linux.

Дистрибутив Linux – это набор пакетов программного обеспечения, включающий базовые компоненты операционной системы, набор программных приложений, программу инсталляции, которая позволяет установить на компьютер пользователя операционную систему GNU/Linux и набор прикладных программ, необходимых для конкретного применения системы.

Поскольку разработкой дистрибутивов занимается большое количество независимых групп программистов, то сейчас в мире существует уже сотни различных дистрибутивов Linux (см. http://distrowatch.com/), и все время появляются новые. Новые дистрибутивы создаются, в основном, не на пустом месте, а на основе одного из уже существующих дистрибутивов. Отличаются дистрибутивы, прежде всего:

    программой инсталляции;

    используемым средством установки программных пакетов (системой управления пакетами);

    составом утилит и прикладных программ, включенных в дистрибутив;

    сценарием начальной загрузки;

    требованиями к аппаратуре.

Можно выделить три основные группы дистрибутивов:

    На основе дистрибутива Red Hat, переименованного позднее в Fedora Core. Наиболее известные дистрибутивы этой группы – Mandrake (или Mandriva), в том числе русифицированные – ASPLinux, Linux Ink, AltLinux (на основе Mandrake) и др.

    На основе дистрибутива Debian. К этой группе относятся наиболее популярный сейчас во всем мире дистрибутив Ubuntu, также Knoppix, Storm и др.

    На основе дистрибутива Slackware. К этой группе относится openSuSe.

В России сложилось три команды разработчиков, создающих и поддерживающих русифицированные дистрибутивы.

Одна из команд «ALTLinux» (http://www.altlinux.ru), которая выпускает собственный дистрибутив ALTLinux. На протяжении последних лет ALTLinux активно работает в направлении внедрения свободного программного обеспечения в образовательные учреждения России. Они разработали специальный «Пакет свободного программного обеспечения для образования».

Вторая команда представлена фирмой «ASPLinux» (http://www.asplinux.ru), которая тоже выпустила собственный дистрибутив ASPLinux..

Третья команда – Санкт-Петербургская фирма «Linux Ink» (http://www.linux-ink.ru), которая выпускает дистрибутив «НауЛинукс», основанный на всемирно известном дистрибутиве Scientific Linux. Так же выпускает версии дистрибутивов, специально ориентированных для использования в образовательных учреждениях.

Операционная система Linux поддерживает те возможности, которые имеются в других реализациях семейства UNIX , а также те, которых нет больше нигде. Ниже будет дан краткий обзор основных возможностей системы Linux .

Характерные особенности Linux

Характерными особенностями Linux как операционной системы являются:

  • многозадачность: одновременно выполняется множество программ;
  • многопользовательский режим: большое число пользователей одновременно работают на одной и той же машине;
  • защищенный режим процессора (386 protected mode );
  • защита памяти процесса; сбой программы не может вызвать зависания системы;
  • считывает с диска только те части программы, которые действительно используются для выполнения;
  • разделение страниц по записи между экземплярами выполняемой программы. Это значит, что процессы-экземпляры программы могут использовать при выполнении одну и ту же память. Когда такой процесс пытается произвести запись в память, то 4-x килобайтная страница, в которую идет запись, копируется на свободное место. Это свойство увеличивает быстродействие и экономит память;
  • виртуальная память со страничной организацией (т.е. на диск из памяти вытесняется не весь неактивный процесс, а только требуемая страница); виртуальная память в самостоятельных разделах диска и/или файлах файловой системы; объем виртуальной памяти до 2 Гбайт; изменение размера виртуальной памяти во время выполнения программ;
  • общая память программ и дискового кэша: вся свободная память используется для буферизации обмена с диском;
  • динамические загружаемые разделяемые библиотеки;
  • дамп программы для пост-мортем анализа: позволяет анализировать отладчиком не только выполняющуюся, но и завершившуюся аварийно программу;
  • совместимость со стандартами System V и BSD на уровне исходных текстов;
  • наличие исходного текста всех программ, включая тексты ядра, драйверов, средств разработки и приложений. Эти тексты свободно распространяются. В настоящее время некоторыми фирмами для Linux поставляется ряд коммерческих программ без исходных текстов, но все, что было свободным так и остается свободным;
  • управление заданиями в стандарте POSIX ;
  • эмуляция сопроцессора в ядре, поэтому приложение может не заботиться об эмуляции сопроцессора. Конечно, если сопроцессор в наличии, то он и используется;
  • поддержка национальных алфавитов и соглашений, в т.ч. для русского языка; возможность добавлять новые;
  • множественные виртуальные консоли: на одном дисплее несколько одновременных независимых сеансов работы, переключаемых с клавиатуры;
  • поддержка ряда распространенных файловых систем (MINIX , Xenix , файловые системы System V ); наличие собственной передовой файловой системы объемом до 4 Терабайт и с именами файлов до 255 знаков;
  • прозрачный доступ к разделам DOS (или OS/2 FAT ): раздел DOS выглядит как часть файловой системы Linux ; поддержка VFAT ;
  • специальная файловая система UMSDOS , которая позволяет устанавливать Linux в файловую систему DOS ;
  • поддержка всех стандартных форматов CD ROM ;
  • поддержка сети TCP /IP , включая ftp , telnet , NFS и т.д.

Одновременное выполнение нескольких программ

Так называемая виртуальная мультиконсоль дает возможность на одном дисплее организовать работу нескольких консолей. На первой консоли запускается процесс трансляции. Комбинацией клавиш Alt-F2 следует переход на вторую консоль. Трансляция продолжается, но при этом первая консоль на экране дисплея заменяется новой картинкой второй консоли, в которой запускается, например, редактор текста. Комбинацией Alt-F3 следует переход на третью консоль, в которой запускается отладчик и т.д. Обычно в системе 6 консолей, но можно установить до 64-х. В любой момент времени можно переключиться на любую консоль.

На отдельной консоли может работать как текстовая, так и графическая программа.

На одной из свободных консолей можно запустить оконную графическую систему X Window System . Открываете окно на экране и играете в DOOM (можно через сеть с партнером). В других окнах: база данных, почта, редактор, трансляция и т.д.

Таким образом, одновременно работает много консолей, а на одной из консолей еще и много окон X Window System .

Кроме того, в системе одновременно работают фоновые процессы, которые не выдают информации на дисплей, но делают свою работу, например, передают данные по модему, печатают на принтере, передают почту по сети и т.д. Фоновый процесс может инициировать как пользователь, так и сама ОС в соответствии со сложившимися условиями (есть почта для отправки, данные для печати, наступило время связи по модему и т.п.).

Linux обеспечивает физическое распараллеливание вычислений на многопроцессорных машинах (до 32 процессоров), но это не имеет прямого отношения к одновременному выполнению нескольких программ. Операционная система позволяет одновременно выполнять несколько задач на одном процессоре, сотни раз в секунду переключая процессор с задачи на задачу.

Работа нескольких пользователей на одной машине

Пользователь получает доступ к системе в результате регистрации. На консоль система выводит приглашение login: , а пользователь в ответ вводит свое имя и пароль доступа. После проверки прав доступа система выдает приглашение вводить команды на выполнение программ, принимает команды и выполняет их, например:

Welcome to ALT Linux Master 2.4 (Citron) / tty1 localhost login: root Password: Last login: Sun May 4 13:53:14 2008 from localhost on tty1 # /usr/sbin/apachectl restart Stopping httpd service: [ DONE ] Checking configuration sanity for httpd: [ DONE ] Starting httpd service: [ DONE ]

Welcome to ALT Linux Master 2.4 (Citron) / tty2 localhost login: root Password: Last login: Sun May 4 13:55:01 2008 from localhost on tty2 # cal May 2008 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Обычная практика состоит в том, что пользователь регистрируется на разных виртуальных консолях под разными именами. Например, для выполнения административных функций на пользователь регистрируется как root , для выполнения прикладной программы как oleg на и т.д. Смысл такого подхода в том, что различные пользователи обладают различными индивидуальностями в системе: правами доступа к ресурсам, начальными установками, файлами и т.д.

Если машина включена в сеть, то возможна удаленная регистрация пользователя с машины A в машину B , даже тогда, когда эти машины расположены на разных континентах (связь машин в планетарном масштабе обеспечивает сеть Internet ).

Помимо сетевого подключения машина может иметь десятки терминалов, подключенных через последовательные порты. Терминал представляет собой экран и клавиатуру, т.е. консоль, на которой пользователь может регистрироваться обычным образом. Только в этом случае консоль не виртуальная, а представлена специализированным отдельным устройством. Терминалом может служить персональный компьютер, на котором выполняется программа, имитирующая логику работы консоли (прозрачный ввод с местной клавиатуры в Linux -машину и прозрачный вывод на местный дисплей данных от Linux -машины).

Все перечисленные способы регистрации пользователей в системе действуют совместно. Таким образом, в одной машине десятки и сотни пользователей, вошедших в систему по различным каналам связи, могут одновременно выполнять тысячи задач.

Документированность Linux

Операционная система Linux документирована так полно, как ни одна из коммерческих ОС . По Linux имеются книги, руководства, справочники и то, что недоступно в коммерческой системе - полные исходные тексты ОС с пояснениями и комментариями.

Объем документации по Linux непрерывно пополняется и расширяется, динамично отслеживая развитие системы.

Те, кто привык иметь дело с пиратскими программами, страдая от недостатка документации, в Linux столкнутся с ситуацией совершенно противоположного рода. Проблема не в том, что в Linux мало документации, а в том, что ее очень много, она представлена в многообразных формах и доступна из массы различных источников. Для того, чтобы сориентироваться в этом богатстве выбора, потребуются определенные усилия.

Из оригинальной документации по Linux можно выделить следующие основные, но не исчерпывающие формы: книги, руководства HOWTO , справочники FAQ , гипертекстовые справочники INFO , оперативные руководства MAN , описания программных пакетов. Книги распространяются в печатном и электронном виде, остальные формы, как правило, электронные, т.е. представленные в виде файлов в составе дистрибутивов системы Linux и пакетов программ , распространяемых через Internet и на компакт-дисках.

Часто один и тот же электронный документ доступен в виде нескольких файлов одного содержания, но разных форматов, например, ascii , postsсript , html . Один формат удобен для просмотра и поиска ключевых слов на текстовом экране дисплея, другие форматы приспособлены для печати с типографским качеством на лазерном принтере или для просмотра на графическом экране.

В сети новостей Usenet регулярно публикуются последние версии некоторых документов по Linux (одновременно они появляются на серверах Internet , откуда их можно получить различными способами, в т.ч. по электронной почте).

Отличие Linux от других ОС со свободной лицензией

Существует ряд других операционных систем, которые имеют лицензию, разрешающую свободное копирование. Из них в России наиболее популярна система FreeBSD .

Работа вLinux или FreeBSD для опытного специалиста не представляет труда. Но для новичка Linux проще в освоении и удобнее в эксплуатации.

Linux и FreeBSD сильно различаются концепцией развития. Более того, среди операционных систем Linux вообще уникальна по своей философии.

Это система, которую пользователи сделали для пользователей.

Linux не просто свободная система, которую каждый может копировать без ограничений. Это система со свободной открытой разработкой, и любой человек, будь он житель Вашингтона или Екатеринбурга, может стать соавтором Linux , сделав свой вклад, не имеет значения, большой или маленький.

Министерство сельского хозяйства РФ

Федеральное государственное образовательное учреждение высшего профессионального образования

Пермская государственная сельскохозяйственная академия

имени академика Д.Н. Прянишникова»

Кафедра информатики

Специальность «Бухгалтерский учет, анализ и аудит»

Контрольная работа

по информатике

Выполнила студент заочного обучения

Батуева А.Н.

Проверил старший преподаватель:

Критченко Т.Н.

Пермь, 2008

1. Теоретическое задание. Операционная система Linux

1.1 Возможности, которые предоставляет ОС Linux

1.2 Кому и зачем может понадобиться ОС Linux

1.3 Характерные особенности Linux как ОС

1.4 Как выглядит одновременное выполнение нескольких программ

1.5 Как несколько пользователей работают на одной и той же машине

1.6 Насколько полно документирована ОС Linux

1.7 Отличие Linux от других ОС со свободной лицензией

1.8 Программное обеспечение, которое поддерживает система Linux

1.9 Работа с глобальной сетью Internet

1.10 Какой текстовый процессор можно использовать в Linux

2. Практическое задание

2.1 Задание 1

2.2 Задание 2

2.3 Задание 3


1. Операционная система Linux

Linux - это современная POSIX-совместимая и Unix-подобная операционная система для персональных компьютеров и рабочих станций.

Это многопользовательская сетевая операционная система с сетевой оконной графической системой XWindowSystem. ОС Linux поддерживает стандарты открытых систем и протоколы сети Internet и совместима с системами Unix, DOS, MSWindows. Все компоненты системы, включая исходные тексты, распространяются с лицензией на свободное копирование и установку для неограниченного числа пользователей.

Операционная система Linux широко распространена на платформах IntelPC 386/486/Pentium/PentiumPro и завоевывает позиции на ряде других платформ.

Разработка ОС Linux выполнена Линусом Торвалдсом из университета Хельсинки и не поддающейся подсчету обширной командой из тысяч пользователей сети Internet, сотрудников исследовательских центров, фондов, университетов и т.д.

1.1 Возможности, которые предоставляет ОС Linux

· дает возможность бесплатно и легально иметь современную ОС для использования как на работе, так и дома;

· обладает высоким быстродействием;

· работает надежно, устойчиво, совершенно без зависаний;

· не подвержена вирусам;

· позволяет использовать полностью возможности современных ПК, снимая ограничения, присущие DOS и MSWindows по использованию памяти машины и ресурсов процессора(ов);

· эффективно управляет многозадачностью и приоритетами, фоновые задачи (длительный расчет, передача электронной почты по модему, форматирование дискеты и т.д. и т.п.) не мешают интерактивной работе;

· позволяет легко интегрировать компьютер в локальные и глобальные сети, в т.ч. в Internet; работает с сетями на базе Novell и MSWindows;

· позволяет выполнять представленные в формате загрузки прикладные программы других ОС - различных версий Unix, DOS и MSWindows;

· обеспечивает использование огромного числа разнообразных программных пакетов, накопленных в мире Unix и свободно распространяемых вместе с исходными текстами;

· предоставляет богатый набор инструментальных средств для разработки прикладных программ любой степени сложности, включая системы класса клиент-сервер, объектно-ориентированные, с многооконным текстовым и/или графическим интерфейсом, пригодных для работы как в Linux, так и в других ОС;

· дает пользователю и особенно разработчику замечательную учебную базу в виде богатой документации и исходных текстов всех компонент, включая ядро самой ОС;

· дает всем желающим попробовать свои силы в разработке, организовать общение и совместную работу через Internet с любыми из разработчиков ОС Linux и сделать свой вклад, став соавтором системы.

1.2 Кому и зачем может понадобиться ОС Linux

В применении Linux по разным причинам могут быть заинтересованы многие категории пользователей. Привести исчерпывающий список невозможно. Однако, вот ряд примеров. Linux это полноценная 32-х разрядная (64-х разрядная на платформе DECAXP) операционная система, которая использует компьютер на полную мощность. Linux превращает персональный компьютер IBMPC в настоящую рабочую станцию. По цене персоналки, которая значительно ниже стоимости рабочей станции.

Выигрыш в цене очень большой, так как помимо экономии на оборудовании, программное обеспечение в Linux поставляется со свободной лицензией, разрешающей бесплатное неограниченное копирование системы. Ядро, редакторы, трансляторы, СУБД, сеть, графические интерфейсы, игры и масса другого программного обеспечения объемом в тысячи мегабайт - бесплатно и на законной основе.

Выигрыш только на программном обеспечении может составить от тысяч до десятков тысяч долларов. Для многих пользователей в России свободная лицензия - это единственная возможность легально снабдить себя полноценным набором программного обеспечения.

Для пиратского рынка не платить за программы - обычное дело. Однако в случае с Linux мало того, что за это никто преследовать не будет, еще и полную документацию дадут! Более того, с исходными текстами всех программ! Пиратам такое и не снилось.

Большой интерес Linux представляет для потребителей и разработчиков прикладных систем. Представьте себе фирму, состоящую из нескольких филиалов, территориально разнесенных по разным районам города и даже по разным городам и странам. На головном предприятии работает сервер базы данных, клиенты - рабочие места в филиалах - через сеть взаимодействуют с сервером. Такая система быстро, дешево и удобно делается в Linux. Вспомните об устойчивости Linux. Вот где она сильно пригодится!

Linux распахивает дверь в гигантский мир открытых систем, в котором существует огромное количество средств для решения самых разнообразных задач.

1.3 Характерные особенности Linux как ОС

· многозадачность: много программ выполняются одновременно;

· многопользовательский режим: много пользователей одновременно работают на одной и той же машине;

· защищенный режим процессора (386 protectedmode);

· защита памяти процесса; сбой программы не может вызвать зависания системы;

· разделение страниц по записи между экземплярами выполняемой программы. Это значит, что процессы-экземпляры программы могут использовать при выполнении одну и ту же память. Когда такой процесс пытается произвести запись в память, то 4-x килобайтная страница, в которую идет запись, копируется на свободное место. Это свойство увеличивает быстродействие и экономит память;

· виртуальная память со страничной организацией (т.е. на диск из памяти вытесняется не весь неактивный процесс, а только требуемая страница); виртуальная память в самостоятельных разделах диска и/или файлах файловой системы; объем виртуальной памяти до 2 Гбайт; изменение размера виртуальной памяти во время выполнения программ;

· общая память программ и дискового КЭШа: вся свободная память используется для буферизации обмена с диском;

· динамические загружаемые разделяемые библиотеки;

· сертификация по стандарту POSIX.1, совместимость со стандартами SystemV и BSD на уровне исходных текстов;

· через iBCS2-согласованный эмулятор совместимость с SCO, SVR3, SVR4 по загружаемым программам,

· управление заданиями в стандарте POSIX;

· наличие исходного текста всех программ, включая тексты ядра, драйверов, средств разработки и приложений. Эти тексты свободно распространяются. В настоящее время некоторыми фирмами для Linux поставляется ряд коммерческих программ без исходных текстов, но все, что было свободным так и остается свободным;

· эмуляция сопроцессора в ядре, поэтому приложение может не заботиться об эмуляции сопроцессора. Конечно, если сопроцессор в наличии, то он не используется;

· поддержка национальных алфавитов и соглашений, в т.ч. для русского языка; возможность добавлять новые;

· множественные виртуальные консоли: на одном дисплее несколько одновременных независимых сеансов работы, переключаемых с клавиатуры;

· поддержка ряда распространенных файловых систем (MINIX, Xenix, файловые системы SystemV); наличие собственной передовой файловой системы объемом до 4 Терабайт и с именами файлов до 255 знаков;

· прозрачный доступ к разделам DOS (или OS/2 FAT): раздел DOS выглядит как часть файловой системы Linux; поддержка VFAT (WNT, Windows 95);

· специальная файловая система UMSDOS, которая позволяет устанавливать Linux в файловую систему DOS;

· доступ (только чтение) к файловой системе HPFS-2 OS/2 2.1;

· поддержка всех стандартных форматов CDROM;

· поддержка сети TCP/IP, включая ftp, telnet, NFS и т.д.

1.4 Как выглядит одновременное выполнение нескольких программ

Так называемая виртуальная мультиконсоль дает возможность на одном дисплее организовать работу нескольких консолей. На первой консоли запускается процесс трансляции. Комбинацией клавиш Alt-F2 следует переход на вторую консоль. Трансляция продолжается, но при этом первая консоль на экране дисплея заменяется новой картинкой второй консоли. В которой запускается, например, редактор текста. Комбинацией Alt-F3 следует переход на третью консоль, в которой запускается отладчик и т.д. Обычно в системе 8 консолей, но можно установить до 64-х. В любой момент времени можно переключиться на любую консоль.

На отдельной консоли может работать как текстовая, так и графическая программа.

На одной из свободных консолей можно запустить оконную графическую систему XWindowSystem. Открываете окно на экране и играете в DOOM. Можно через сеть с партнером. А в других окнах - база данных, почта, редактор, трансляция и т.д.

Таким образом, одновременно работает много консолей, а на одной из консолей еще и много окон XWindowSystem.

В последнее время российские пользователи ПК все чаще и чаще стали говорить о Linux, как об операционной системе, способной в ближайшем будущем если не вытеснить с рынка Microsoft Windows, то полноценно заменить ее на большинстве домашних персональных компьютеров. Вместе с тем ознакомительной информации о Linux на русском языке крайне мало: большая часть имеющейся в продаже литературы на эту тематику стоит весьма дорого, да и рассчитана она в первую очередь на специалистов и опытных пользователей, отпугивая рядового потребителя обилием технической терминологии. Документация же, представленная в Интернете, отличается заметной разрозненностью и далеко не исчерпывающей полнотой. Именно поэтому в сознании отечественных владельцев ПК Linux представляется чем-то элитным и недоступным, неким таинством, приобщиться к которому суждено лишь немногим избранным.. Страх столкнуться с чем-то неизвестным, непонятным, сложным в эксплуатации и настройке останавливает наших соотечественников в инициативе установить и использовать на своем компьютере эту систему. Вместе с тем никакой "высшей математики" здесь нет. Linux - очень простая, надежная и дружественная операционная система.

Совершенствование и эволюция Linux продолжаются по сей день: новые версии ядра, новые оконные менеджеры и новое программное обеспечение для Linux появляются каждый месяц.

Логическая структура Linux в значительной степени отличается от строения MS DOS или известной платформы Microsoft Windows, она наиболее близка к архитектуре другого класса операционных систем, а именно - систем семейства UNIX. Безусловно, большинство российских пользователей, прошедших через стадию Windows 3.11 и миновавших, наконец, Windows 95, привыкли к логике операционных систем в исполнении Microsoft настолько, что нечто новое, непривычное, выходящее из разряда условных рефлексов и утвердившихся в сознании постулатов о том "как работает машина", их просто пугает. Вместе с тем, Linux устроен ничуть не сложнее любой знакомой платформы. Он всего-навсего работает немного по-другому.



Если рассматривать внутреннюю структуру Linux в сравнении с анатомией MS Windows, различия становятся очевидны даже на первый взгляд. По умолчанию Windows устанавливается в один логический раздел диска с файловой таблицей FAT16, здесь хранится и ядро системы, отвечающее за процедуры ввода-вывода данных, и так называемая "оболочка" или shell (файл explorer.exe), определяющая интерпретацию команд и действий пользователя, и, собственно, файлы и библиотеки, формирующие оконный интерфейс Windows. Причем эти три составляющих системы настолько тесно интегрированы друг с другом, что при замене одной из них на аналогичный файл из другой версии Windows, вся система в целом работать не будет. Функции указанных элементов также в значительной степени смешаны между собой: например, некоторые процедуры по формированию интерфейса в Windows выполняет shell. Здесь же хранятся дополнительные системные утилиты, такие как дефрагментатор диска, сервер удаленного доступа, драйвера, а также множество служебных библиотек. В том же самом разделе размещаются пользовательские файлы, и в этой же области система осуществляет свопинг - кэширование не умещающихся в оперативной памяти данных на диск. Иными словами, все компоненты платформы хранятся в одном разделе, что, естественно, не прибавляет ей надежности: достаточно любого незначительного повреждения таблицы данных, чтобы привести Windows в неработоспособное состояние или испортить хранящуюся на диске полезную информацию. Вполне очевидно также и то, что изменить с помощью стандартных средств Windows внешний вид установленных по умолчанию окон не представляется возможным. Это вполне осуществимо методом замены имеющегося shell на другую оболочку, например, LiteStep, либо с помощью специальных утилит вроде WindowsBlinds, которые, загружаясь в фоновом режиме, занимают оперативную память и замедляют работу компьютера.

Из характерных особенностей Linux необходимо перечислить следующие: поддержка национальных клавиатур, в том числе и русской, поддержка множества файловых систем, среди которых, помимо собственной - EXT2FS, имеются FAT16, MINIX-1 и XENIX. Реализация программной поддержки FAT16 позволяет непосредственно обращаться к гибким дискам MS DOS, а также файловым разделам DOS и Windows на винчестере. Имеется возможность работать с сетевыми протоколами TCP/IP, PLIP, PPP и многими другими, в рамках сетевых функций платформы реализован весь спектр клиентов и услуг Интернет: FTP, telnеt, NNTP, SMTP и POP3. Программы загружаются в память постранично, на диск кэшируются только те сегменты данных, которые не используются системой в данный момент, что значительно ускоряет работу приложений. Возможно совместное обращение к страницам памяти разными программами в один и тот же момент времени, это позволяет избежать повторной загрузки идентичных фрагментов информации в RAM и заметно экономит ресурсы компьютера. Как и Microsoft Windows, в Linux применяется система динамических библиотек, иными словами, несколько приложений могут использовать в своей работе библиотеку, представленную на диске одним физическим файлом.

Дистрибутивы LINUX

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

Так называемый "классический" Linux. SlackWare был разработан в начале девяностых и сопровождается по сей день американским программистом Патриком Волькердингом, данный дистрибутив полностью бесплатен и доступен для загрузки. Основной отличительной чертой SlackWare от других комплектов поставки Linux является его стопроцентная опциональность: пользователь может установить только те компоненты системы, которые ему действительно необходимы.

Помимо ядра системы и необходимых утилит, пакет SlackWare включает оконную оболочку X Window в варианте XFree86, руководство пользователя, комплект для разработчиков программ со специальными утилитами для отладки приложений и исходными текстами всей платформы, множество всевозможной документации, набор сетевых протоколов, объектно-ориентированную среду для создания собственных программ, комплект игр и специализированных приложений для X Window, включая текстовые и графические редакторы, редакторы таблиц, почтовые клиенты, а также известную всем пользователям Интернет программу Netscape Navigator, специально адаптированную для работы под управлением Linux. Данный дистрибутив без труда поддается русификации методом несложной установки модулей поддержки кириллицы.

Самым популярным и наиболее удачным дистрибутивом Linux во всем мире безоговорочно считается пакет программ, выпускаемый американской корпорацией RedHat.

Комплект RedHat включает удобный инсталлятор платформы, позволяющий избежать длительной "ручной" настройки Linux, но тем не менее, внесения определенных изменений в файлы конфигурации все равно не избежать. Помимо ядра, утилит, документации и отдельного компакт-диска с исходными текстами всего комплекта поставки, в дистрибутив входит два оконных интерфейса, устанавливаемых на выбор: это стандартный XFree86 и GNOME, а также целый набор текстовых, графических и табличных редакторов, Web-сервер Apache, программы для работы с электронной почтой и Интернет (в том числе, браузеры Netscape Navigator и Opera), множество игр. RedHat имеет многоязыковую поддержку и поддержку национальных клавиатур, поэтому с русификацией системы проблем обычно не возникает, также пользователю предлагается большой выбор драйверов для периферийного и базового оборудования компьютера.

Полностью русский дистрибутив Linux, созданный усилиями программистов из Донбасса Леонида Кантера и Александра Каневского на основе известного пакета RedHat. Он был выпущен на рынок издательской группой IPLabs Software. Данная реализация системы - коммерческая.

Данный комплект не требует русификации, поддержка кириллицы здесь реализована на уровне операционной системы. Даже оконная оболочка KDE, устанавливаемая в BlackCat по умолчанию, имеет русский интерфейс, по-русски "говорит" буквально все, включая выпадающие меню, прикладные программы, файлы помощи и всплывающие подсказки. Это очень существенно для пользователей, имеющих некоторые проблемы с английским языком. Помимо кириллицы комплект поставки позволяет использовать 32 национальных алфавита, в том числе: украинский, китайский, японский и эсперанто.

BlackCat полностью поддерживает технологию мультимедиа, а также огромный диапазон периферийного оборудования, от старых звуковых плат и видеокарт до сверхсовременных TV-тюнеров. Удобная система инсталляции позволяет установить BlackCat в автоматическом режиме, все настройки системы осуществляются пользователем вручную с помощью удобного графического интерфейса.

Не лишен BlackCat и ряда существенных недостатков, главный из которых - весьма ощутимая громоздкость системы, выражающаяся в большом объеме требуемого дискового пространства, а также высоких требованиях к оборудованию: для корректной работы.

Это - еще одна популярная версия Linux, использующая в качестве основного графического интерфейса оконную среду KDE. Она основана на дистрибутиве RedHat 5.2 GPL и предназначена для тех, кто не желает тратить время на самостоятельную настройку системы. Linux Mandrake был создан по принципу "установи и работай". Иными словами, загрузив компьютер с инсталляционного CD-ROM"а и вызвав программу Setup, нужно всего лишь дождаться окончания установки; после этого в системной консоли достаточно набрать команду "startx" и на экране появляется полностью сконфигурированная оболочка KDE.

Как утверждают разработчики, Mandrake является достойной альтернативой операционных систем от Microsoft, поскольку данный пакет включает поддержку большинства существующих файловых систем, открывает возможность напрямую обращаться с содержимым дисков MS DOS и Windows, позволяет запускать приложения Windows 9X и Windows NT, а также включает поддержку мультимедиа-технологий на самом высоком уровне. Русификация Mandrake также не вызывает особенных сложностей - она осуществляется путем подключения к системе библиотек распознавания кириллицы. Существенным недостатком этой реализации Linux является ее ресурсоемкость.

Corel Linux OS (TM)

Дистрибутив Linux от известнейшей компании Corel, производителя популярных графических редакторов CorelDraw! и Corel Photo Paint, является существенным шагом вперед по сравнению с другими реализациями этой платформы. Прежде всего, тесно интегрированная с оболочкой KDE операционная среда рассчитана на индивидуальных пользователей, работающих дома и в офисах, потому инсталляция системы, ее настройка, а также определение и подключение оборудования осуществляются здесь автоматически, аналогично процедуре установки Windows 98. Corel Linux OS основан на другом, популярном на Западе дистрибутиве данной операционной системы - Debian Linux. Данный пакет поставляется в трех модификациях: бесплатный вариант системы и коммерческие версии Corel Linux Standard, Corel Linux DeLuxe. Эти три реализации платформы различаются лишь комплектами прилагаемого к системе программного обеспечения, все упомянутые пакеты созданы с использованием ядра Linux 2.2.12 и располагают широчайшим набором драйверов для подключения любого периферийного оборудования, включая такие сверхсовременные устройства, как, например, видеокарты Matrox Millenium и саундбластеры Creative Live. Помимо KDE в комплект Corel Linux входит множество расширений системы, таких как последняя версия оболочки XFree86, утилиты для работы с полным спектром технологий мультимедиа, браузеры, почтовые клиенты и даже виртуальная машина Microsoft для интерпретации приложений Java.

Инсталляция Corel Linux OS осуществляется в графическом режиме из-под Windows или DOS, она протекает быстро и без малейших сбоев, все оборудование определяется безукоризненно правильно, причем пользователю практически нет необходимости вмешиваться в процесс установки. В ходе инсталляции можно выбрать только то программное обеспечение из предлагаемого списка, которое действительно необходимо в работе. Также имеется возможность указать отводимое под Linux дисковое пространство: весь винчестер (с замещением Microsoft Windows), либо его определенную часть.

Графический интерфейс в Corel Linux OS модифицирован таким образом, что пользователям Windows практически не придется переучиваться под новую систему: элементы управления окнами, менеджеры файлов, аналогичные привычному "обозревателю" и опции программной панели "подогнаны" под стандарт Microsoft. Опциональная настройка операционной системы также осуществляется из графической среды, аналогично тому, как выставляются различные параметры в MS Windows 9X. Аппаратные требования, выставляемые Corel Linux персональному компьютеру, относительно невелики: эта платформа "пойдет" на любой современной машине, начиная с Intel Pentium 90, оснащенном 16 Мб RAM.

Как бы то ни было, эта замечательная, удобная и действительно мощная операционная система вряд ли в ближайшем обозримом будущем найдет признание на территории нашей страны, прежде всего потому, что текущая версия Corel Linux OS не содержит поддержки русского языка. Остается только надеяться, что рано или поздно на рынке появится русская локализация Corel Linux, и отечественные потребители смогут полноценно насладиться всеми преимуществами этой замечательной реализации Linux.

Операционная система - это комплекс программ, который обеспечивает управление аппаратными средствами компьютера, организует работу с файлами (в том числе запуск и управление выполнением программ), а также реализует взаимодействие с пользователем, т. е. интерпретацию вводимых пользователем команд и вывод результатов обработки этих команд.

Без операционной системы компьютер вообще не может функционировать в качестве такового. В таком случае он представляет собой не более чем совокупность неработающих электронных устройств, непонятно зачем собранных воедино.

На сегодняшний день наиболее известными операционными системами для компьютеров являются семейства операционных систем Microsoft Windows и UNIX. Первые ведут свою родословную от операционной системы MS-DOS, которой оснащались первые персональные компьютеры фирмы IBM. Операционная система UNIX была разработана группой сотрудников Bell Labs под руководством Денниса Ричи, Кена Томпсона и Брайана Кернигана (Dennis Ritchie, Ken Thompson, Brian Kernighan) в 1969 году. Но в наши дни, когда говорят об операционной системе UNIX, чаще всего имеют в виду не конкретную ОС, а скорее целое семейство UNIX-подобных операционных систем. Само же слово UNIX (заглавными буквами) стало зарегистрированной торговой маркой корпорации ATT.

В конце 70-х годов (теперь уже прошлого столетия) сотрудники Калифорнийского университете в Беркли внесли ряд усовершенствований в исходные коды UNIX, включая работу с протоколами семейства TCP/IP. Их разработка стала известна под именем BSD ("Berkeley Systems Distribution"). Она распространялась под лицензией, которая позволяла дорабатывать и усовершенствовать продукт, и передавать результат третьим лицам (с исходными кодами или без них) при условии, что будет указано, какая часть кода разработана в Беркли.

Операционные системы типа UNIX, в том числе и BSD, изначально разрабатывались для работы на больших многопользовательских компьютерах - мейнфреймах. Но персональные компьютеры постепенно наращивали мощь своего аппаратного обеспечения, и в наши дни они уже превосходят по возможностям те мейнфреймы, для которых в 70-х годах разрабатывалась ОС UNIX. И вот, в начале 90-х годов студент хельсинкского университета Линус Торвальдс (Linus Torvalds) приступил к разработке UNIX-подобной ОС для IBM-совместимых персональных компьютеров.

1.1.2 Немного истории

Вот текст сообщения, которое Торвальдс отправил в группу новостей comp.os.minix 25 августа 1991 года:

From: [email protected] (Linus Benedict Torvalds)

Newsgroups: comp.os.minix

Subject: What would you like to see most in minix?

Summary: small poll for my new operating system

Organization: University of Helsinki

Hello everybody out there using minix -

I"m doing a (free) operating system (just a hobby, won"t be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I"d like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).

I"ve currently ported bash(1.08) and gcc(1.40), and things seem to work.

This implies that I"ll get something practical within a few months, and I"d like to know what features most people would want. Any suggestions are welcome, but I won"t promise I"ll implement them:-)

Linus ([email protected])

PS. Yes - it"s free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that"s all I have:-(.

В этом сообщении Линус пишет, что он работает над (свободной) операционной системой для 386-х (486-х) компьютеров, и просит всех заинтересованных лиц сообщить, какие компоненты системы пользователи хотят видеть в первую очередь. Но, как видно из текста послания, оболочка bash и компилятор gcc у него уже работали. Работали они под управлением операционной системы Minix, которая была разработана профессором Э.Таненбаумом (Andy Tanenbaum) как учебное пособие для студентов-программистов. Minix работала на компьютерах с 286-ым процессором и послужила для Торвальдса прообразом новой ОС.

Файлы первого варианта Linux (версия 0.01) были опубликованы в Интернете 17 сентября 1991 года. Как пишет сам Торвальдс: "As I already mentioned, 0.01 didn"t actually come with any binaries: it was just source code for people interested in what linux looked like. Note the lack of announcement for 0.01: I wasn"t too proud of it, so I think I only sent a note to everybody who had shown interest."

Затем, 5 октября 1991 г. была выпущена версия 0.02, которая уже работала. Впрочем, подробное изложение истории Linux не входит в задачи данной книги, поэтому продолжать данную тему я не буду, отсылая заинтересованных читателей к [П3.1].

Л. Торвальдс не стал патентовать или иным образом ограничивать распространение новой ОС. С самого начала Linux распространяется на условиях, определяемых лицензией General Public License (GPL), принятой для программного обеспечения, разрабатываемого в рамках движения Open Source и проекта GNU (см. [П3.2]). На Linux-сленге эту лицензию иногда называют Copyleft. Об этой лицензии, движении Open Source и проекте GNU необходимо поговорить особо.

В 1984 году американский ученый Ричард Столлман (Richard Stallman) основал Фонд Свободного Программного Обеспечения (Free Software Foundation). Целью этого фонда было устранение всех запретов и ограничений по распространению, копированию, модификации и изучению программного обеспечения. Ведь до тех пор коммерческие компании тщательно оберегали разработанное ими программное обеспечение, ограждали его патентами и знаками защиты авторских прав, держали в строжайшем секрете исходные коды программ, написанных на языках высокого уровня (типа С++). Столлман считал, что это наносит огромный вред развитию ПО, приводит к снижению качества программ и наличию в них огромного количества невыявленных ошибок. И, что хуже всего, это приводит к замедлению процесса обмена идеями в области программирования, тормозит создание нового ПО в силу того, что каждому программисту приходится полностью заново писать каждую программу, вместо того, чтобы заимствовать уже готовые куски исходного кода из готовых программ.

В рамках Фонда Свободного ПО была начата разработка проекта GNU - проекта создания свободного программного обеспечения. Аббревиатура GNU открывается рекурсивно - GNU"s Not Unix, т. е. то, что принадлежит проекту GNU, не является частью Unix (потому что к тому времени даже само слово UNIX уже было зарегистрированной товарной маркой, т. е. перестало быть свободным). В "Манифесте GNU" [П3.3], который был написан в 1985 г., Р. Столлман в качестве главной движущей силы, которая привела к возникновению FSF и проекта GNU, ставит свое неприятие прав собственности отдельных людей на программное обеспечение.

То, что разрабатываемое в рамках проекта GNU ПО свободно, не означает, что оно распространяется без лицензии и никак не защищено в юридическом смысле. Программы, разрабатываемые в рамках движения Open Source, распространяются на условиях лицензии General Public License(GPL) [П3.2]. Если сказать очень кратко, то суть этой лицензии состоит в следующем. Программное обеспечение, распространяемое под этой лицензией, можно как угодно дорабатывать, модифицировать, передавать или продавать другим лицам при условии, что результат такой переработки тоже будет распространяться под лицензией copyleft. Последнее условие - самое важное и определяющее в этой лицензии. Оно гарантирует, что результаты усилий разработчиков свободного ПО останутся открытыми и не станут частью какого-либо лицензированного обычным способом продукта. Оно также отличает свободное ПО от ПО, распространяемого бесплатно. Говоря словами создателей FSF, лицензия GPL "делает ПО свободным и гарантирует, что оно останется свободным".

Практически все ПО, распространяемое на условиях GPL, является почти бесплатным для пользователей (в большинстве случаев для того, чтобы получить его, Вы должны заплатить только за CD-ROM-диск с ПО или за трафик выхода в Интернет). Это не означает, что программисты перестают получать вознаграждение за свой труд. Основная мысль Р. Столлмана состоит в том, что нужно продавать не программное обеспечение, а труд программиста как такового. Например, источником дохода может быть сопровождение программных продуктов или их установка и конфигурация для внедрения на новых компьютерах и/или в новых условиях, преподавание и т. д. Хорошим вознаграждением может быть и получение автором свободных программ определенной известности, которая позволит ему в последующем получить высокооплачиваемую работу.

В рамках движения Open Source, и в частности проекта GNU, было разработано значительное количество программ, наиболее известными из которых являются редактор Emacs и компилятор GCC (GNU C Compiler) - самый лучший и по сей день компилятор языка C. Открытость исходных кодов программ оказывает очень благотворное влияние на качество программного обеспечения: все лучшее, все новые идеи и решения сразу же широко распространяются, а все ошибки замечаются и быстро устраняются. Начинает работать механизм естественного отбора, который подавлен в том варианте подхода к распространению программ, который практикуется в коммерческом ПО.

Но вернемся к истории собственно Linux. Надо сказать, что разработка Линуса Торвальдса представляла собой только ядро операционной системы. Это ядро "упало на подготовленную почву", в том смысле, что в рамках проекта GNU уже было разработано большое количество утилит разного рода. Но для превращения GNU в полноценную ОС не хватало ядра. Разработка ядра велась (оно называлось Hurd), но по каким-то причинам задерживалась. Поэтому появление разработки Л. Торвальдса было очень своевременным. Оно ознаменовало рождение операционной системы, распространяемой с открытыми исходными кодами.

Р. Столлман, конечно, прав, когда настаивает на том, что операционная система Linux должна называться GNU/Linux. Но так уж сложилось, что название ядра стало служить названием всей операционной системы, и мы в этой книге будем поступать так же.

1.1.3 Основные характеристики ОС Linux

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

Реальная многозадачность

Все процессы независимы; ни один из них не должен мешать выполнению других задач. Для этого ядро осуществляет режим разделения времени центрального процессора, поочередно выделяя каждому процессу интервалы времени для выполнения. Это существенно отличается от режима "вытесняющей многозадачности", реализованной в Windows 95, когда процесс должен сам "уступить" процессор другим процессам (и может сильно задержать их выполнение).

Многопользовательский доступ

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

Свопирование оперативной памяти на диск

Свопирование оперативной памяти на диск позволяет работать при ограниченном объеме физической оперативной памяти; для этого содержимое некоторых частей (страниц) оперативной памяти записываются в выделенную область на жестком диске, которая трактуется как дополнительная оперативная память. Это несколько снижает скорость работы, но позволяет организовать работу программ, требующих большего объема ОЗУ, чем фактически имеется в компьютере.

Страничная организация памяти

Системная память Linux организована в виде страниц объемом 4K. Если оперативная память полностью исчерпана, ОС будет искать давно не использованные страницы памяти для их перемещения из памяти на жесткий диск. Если какие-либо из этих страниц становятся нужны, Linux восстанавливает их с диска. Некоторые старые Unix-системы и некоторые современные платформы (включая Microsoft Windows) переносят на диск все содержимое ОП, относящееся к неработающему в данный момент приложению, (т. е. ВСЕ страницы памяти, относящиеся к приложению, сохраняются на диске при нехватке памяти) что менее эффективно.

Загрузка выполняемых модулей "по требованию"

Ядро Linux поддерживает выделение страниц памяти по требованию, при котором только необходимая часть кода исполняемой программы находится в оперативной памяти, а не используемые в данный момент части остаются на диске.

Совместное использование исполняемых программ

Если необходимо запустить одновременно несколько копий какого-то приложения (либо один пользователь запускает несколько идентичных задач, либо разные пользователи запускают одну и ту же задачу), то в память загружается только одна копия исполняемого кода этого приложения, которая используется всеми одновременно исполняющимися идентичными задачами.

Общие библиотеки

Библиотеки - наборы процедур, используемых программами для обработки данных. Существует некоторое количество стандартных библиотек, используемых одновременно более чем одним процессом. В старых системах такие библиотеки включались в каждый исполняемый файл, одновременное выполнение которых приводило к непродуктивному использованию памяти. В новых системах (в частности, в Linux), обеспечивается работа с динамически и статически разделяемыми библиотеками, что позволяет сократить размер отдельных приложений.

Динамическое кеширование диска

Кеширование диска - это использование части оперативной памяти для хранения часто используемых данных с диска, что существенно ускоряет доступ к часто используемым программам и задачам. Пользователи MS-DOS работают со SmartDrive, который резервирует фиксированные области системной памяти для кеширования диска. Linux использует более динамичную систему кеширования: память, зарезервированная под кеш, увеличивается, когда память не используется, и уменьшается, если системе или процессу пользователя требуется больше памяти. 100%-ное соответствие стандарту POSIX 1003.1.

Частичная поддержка возможностей System V и BSD

POSIX 1003.1 (Portable Operating System Interface - интерфейс мобильной операционной системы) задаeт стандартный интерфейс Unix-систем, который описывается набором процедур языка Си. Сейчас он поддерживается всеми новыми ОС. Microsoft Windows NT также поддерживает POSIX 1003.1. Linux 100%-но соответствует POSIX. Дополнительно поддерживаются некоторые возможности System V и BSD для увеличения совместимости.

System V IPC

Linux использует технологию IPC (InterProcess Communication) для обмена сообщениями между процессами, использования семафоров и общей памяти.

Возможность запуска исполняемых файлов других ОС

Linux не является первой в истории операционной системой. Для ранее разработанных ОС, включая DOS, Windows 95, FreeBSD или OS/2, разработана масса различного, в том числе очень полезного и очень неплохого программного обеспечения. Для запуска таких программ под Linux разработаны эмуляторы DOS, Windows 3.1 и Windows 95. Более того, фирмой Vmware разработана система "виртуальных машин", представляющая собой эмулятор компьютера, в котором можно запустить любую операционную систему. Имеются аналогичные разработки и у других фирм. ОС Linux способна также выполнять бинарные файлы других Intel-ориентированных Unix-платформ, соответствующих стандарту iBCS2 (intel Binary Compatibility).

Поддержка различных форматов файловых систем

Linux поддерживает большое число форматов файловых систем, включая файловые системы DOS и OS/2, а также современные журналируемые файловые системы. При этом и собственная файловая система Linux, которая называется Second Extended File System (ext2fs), позволяет эффективно использовать дисковое пространство.

Сетевые возможности

Linux можно интегрировать в любую локальную сеть. Поддерживаются все службы Unix, включая Networked File System (NFS), удалeнный доступ (telnet, rlogin), работа в TCP/IP сетях, dial-up-доступ по протоколам SLIP и PPP, и т. д.. Также поддерживается включение Linux-машины как сервера или клиента для другой сети, в частности, работает общее использование (sharing) файлов и удаленная печать в Macintosh, NetWare и Windows.

Работа на разных аппаратных платформах

Хотя ОС Linux первоначально была разработана для ПК на базе Intel 386/486, сейчас она может работать на всех версиях Intel-овских микропроцессоров, начиная с 386 и кончая многопроцессорными системами на Pentium III (с Pentium IV возникли определенные трудности, но, судя по сообщениям в Интернете, они были вызваны ошибками в реализации процессора). Так же успешно Linux работает на различных клонах Intel от других производителей; в Интернете встречаются сообщения о том, что на процессорах Athlon и Duron от AMD Linux работает даже лучше, чем на Intel. Кроме того, разработаны версии для других типов процессоров - ARM, DEC Alpha, SUN Sparc, M68000 (Atari и Amiga), MIPS, PowerPC и других (отметим, что в настоящей книге рассматривается только вариант для IBM-совместимых компьютеров).

1.2. Дистрибутивы Linux

В любой операционной системе можно выделить 4 основных части: ядро, файловую структуру, интерпретатор команд пользователя и утилиты. Ядро - это основная, определяющая часть ОС, которая управляет аппаратными средствами и выполнением программ. Файловая структура - это система хранения файлов на запоминающих устройствах. Интерпретатор команд или оболочка - это программа, организующая взаимодействие пользователя с компьютером. И, наконец, утилиты - это просто отдельные программы, которые, вообще говоря, ничем принципиально не отличаются от других программ, запускаемых пользователем, разве только своим основным назначением - они выполняют служебные функции.

Как уже говорилось выше, если быть точным, то слово "Linux" обозначает только ядро. Поэтому, когда речь идет об операционной системе, правильнее было бы говорить "операционная система, основанная на ядре Linux". Ядро ОС Linux разрабатывается под общим руководством Линуса Торвальдса и распространяется свободно (на основе лицензии GPL), как и огромное количество другого программного обеспечения, утилит и прикладных программ. Одним из следствий свободного распространения ПО для Linux явилось то, что большое число разных фирм и компаний, а также просто независимых групп разработчиков стали выпускать так называемые дистрибутивы Linux.

Дистрибутив - это набор программного обеспечения, включающий все 4 основные составные части ОС, т. е. ядро, файловую систему, оболочку и совокупность утилит, а также некоторую совокупность прикладных программ. Обычно все программы, включаемые в дистрибутив Linux, распространяются на условиях GPL, так что может сложиться впечатление, что дистрибутив может выпустить кто угодно, точнее любой, кто не поленится собрать коллекцию свободного ПО. И какая-то степень правдоподобия в таком утверждении есть. Однако разработчик дистрибутива должен по крайней мере создать программу инсталляции, которая будет устанавливать ОС на компьютер, на котором никакой ОС еще нет. Кроме того, необходимо обеспечить разрешение взаимозависимостей и противоречий между разными пакетами (и версиями пакетов), что, как мы увидим позже, тоже является нетривиальной задачей.

Тем не менее, в мире существует уже более сотни различных дистрибутивов Linux, и все время появляются новые. Более-менее полный список их можно найти на сервере http://www.linuxhq.com, где даны краткие характеристики каждому дистрибутиву (упоминаются и некоторые локализованные версии). Кроме того, там же есть ссылки на другие списки дистрибутивов, так что при желании можно найти все, что вообще существует в мире (правда, все это на английском языке, и русских локализаций там маловато упомянуто).

А. Федорчук в статье [П3.8] предпринял попытку классификации дистрибутивов, положив в основу следующие критерии:

Структура файловой системы;

Программа инсталляции;

Используемое средство установки программных пакетов;

Состав утилит и прикладных программ, включенных в дистрибутив.

Хотя А. Федорчук и приходит к выводу, что различия между дистрибутивами несущественны и все более стираются, из его статьи все же следует, что на сегодняшний день выделяются по крайней мере 3 группы дистрибутивов, наиболее типичными представителями, которых являются Red Hat, Slackware и Debian.

По какому же критерию выбрать дистрибутив? На мой взгляд, для случая нашей страны критериев два: дистрибутив должен быть русифицирован и должна существовать команда разработчиков, обеспечивающая поддержку дистрибутива. И лучше, если эта команда имеет от этой (или, может быть, какой-то другой) деятельности некоторый доход, т. е. функционирует как коммерческая фирма. Даже за тот сравнительно недолгий период, в течение которого я занимаюсь Linux, успели сойти со сцены несколько дистрибутивов, команды поддержки которых работали "на общественных началах" и через некоторое время перестали поддерживать свои разработки.

В России в последнее время сложилось три команды разработчиков, создающих и поддерживающих русифицированные дистрибутивы.

Одна из команд сформировалась в Институте Логики (http://www.iplabs.ru). Эта команда некоторое время занималась русификацией дистрибутива Linux Mandrake Russian Edition, а в марте 2001 г. организовала фирму "ALTLinux" (http://www.altlinux.ru) и выпустила собственный дистрибутив ALTLinux (который, впрочем, очень похож на Linux Mandrake Russian Edition).

Вторая команда представлена фирмой "ASPLinux" (http://www.asplinux.ru, http://www.asp-linux.com, http://www.asp-linux.com.sg, http://www.asp-linux.co.kr), которая тоже выпустила собственный дистрибутив ASPLinux. В состав этой команды вошли Л. Кантер и А. Каневский, которые раньше выпускали известный дистрибутив Black Cat Linux.

Третья команда, насколько я могу судить, представлена Санкт-Петербургской фирмой "Linux Ink.” (http://www.linux-ink.ru), которая выпускает Red Hat Linux Cyrillic Edition.

Конечно, имеются и другие русифицированные дистрибутивы. В 2000 году появились дистрибутивы Best Linux (http://bestlinux.net), поддерживаемый фирмой SOT из Финляндии, и RosLinux. Описание нескольких русифицированных дистрибутивов Linux дано в книге А. Федорчука [П1.6]. Но, на мой взгляд, если говорить о выборе дистрибутива, то на сегодняшний день заслуживают внимания только три дистрибутива: Red Hat Linux Cyrillic Edition, Linux Mandrake Russian Edition (и его потомок ALTLinux) и ASPLinux. Я могу привести следующие доводы в пользу такого выбора:

Эти дистрибутивы принадлежат к семейству дистрибутивов, строящихся на основе Red Hat Linux, выпускаемого одноименной американской фирмой, а судя по материалам Интернета, Red Hat - это самый распространенный в мире дистрибутив.

Эти дистрибутивы изначально русифицированы.

В каждом из них имеется достаточно отлаженная процедура установки, автоматически распознающая большинство компонент аппаратного обеспечения, что очень облегчает процедуру инсталляции системы.

Легко устанавливается (добавляется) дополнительное программное обеспечение, поскольку оно поставляется в RPM-пакетах (это такая технология распространения ПО, вроде программы setup под Windows).

Эти дистрибутивы поддерживаются сформировавшимися командами разработчиков и постоянно обновляются, поэтому можно рассчитывать на то, что Вы будете иметь возможность работать с последними версиями Linux.

Несколько слов о нумерации версий. Надо различать номера версий дистрибутивов и номера версий ядра. Когда говорят о версиях Linux, то обычно имеют в виду версию ядра (ибо принадлежность операционной системы к Linux определяется тем, что ОС использует ядро Linux). Поскольку Линус Торвальдс продолжает координировать разработку ядра, то версии ядра развиваются последовательно, а не ветвятся и множатся, как дистрибутивы.

Версии ядра Linux принято обозначать тремя числами, разделенными точкой. Например, дистрибутив Black Cat версии 5.2 был построен на основе ядра версии 2.0.36, т. е. это был Linux версии 2.0.36. Версии ядра с нечетным значением второй цифры обычно не используются для создания дистрибутивов, потому что являются экспериментальными (отладочными). Они распространяются, в основном, для того, чтобы энтузиасты могли их протестировать с целью выявления всех недостатков. Естественно, что такая версия может работать неустойчиво. Версии с четной второй цифрой являются (считаются) устойчиво работающими. Вы, конечно, можете установить любую версию, но для новичков все же обычно рекомендуют выбирать версию ядра с четной второй цифрой в номере версии. Конечно, если Вы устанавливаете полный дистрибутив, то выбор ядра за вас сделали его разработчики, но о нумерации версий вам надо знать, если Вы когда-нибудь задумаетесь об обновлении ядра.

1.3. Требования к компьютеру

Я встречал упоминания о том, что существуют специальные версии Linux, которые работают даже на 8086 процессоре с 512 Кбайт памяти, а специально собранная версия может запускаться с одной-двух дискет без жесткого диска.

Так что, если у вас есть старенький компьютер, на котором никакая Windows не запускается, то Вы с успехом можете использовать его для освоения Linux и, возможно, будете удивлены его возможностями. Но такие варианты в данной книге не рассматриваются.

Поскольку ОС Linux использует защищенный режим микропроцессора, то для установки этой ОС требуется как минимум 386-ой процессор. Судя по литературным источникам, годятся любые модификации: SX, DX и т. д. Дальнейшие требования к аппаратной части компьютера, на который устанавливается Linux, определяются уже тем, что Вы хотите. Из приводимой ниже табл. 1.1. видно, как возрастают требования к аппаратной части в зависимости от пожеланий пользователя (приводимые в таблице числа очень приблизительны, тут я не претендую на истину в последней инстанции).

Таблица 1.1. Требования к аппаратуре

Пожелания пользователя Требования к памяти Требования к объему жесткого диска
Минимальные требования: работа в текстовом режиме из командной строки shell 4 Мбайт 10 Мбайт
Работа в текстовом режиме через Midnight Commander 4 Мбайт 40 Мбайт
Для запуска графического интерфейса X Window 8 Мбайт, но будет работать очень медленно, 16 Мбайт - более-менее приемлемо
Для работы с графическим интерфейсом X Window (запуск оконного менеджера) 16 Мбайт 300 Мбайт
Для запуска интегрированной графической среды KDE 32 Мбайт 500 Мбайт
Для запуска каждого отдельного большого приложения (типа GIMP, текстового процессора, базы данных или электронной таблицы) +2 Мбайт +50-100 Мбайт
Для работы с интегрированным офисным пакетом StarOffice 64 Мбайт +250 Мбайт

Из этой таблицы можно заключить, что минимально приемлемой конфигурацией для освоения Linux является компьютер на 486-ом процессоре с 16 Мбайт ОЗУ и жестким диском объемом 300 Мбайт . Далее надо заботиться только о наращивании оперативной памяти и объема жесткого диска, тут лишнего никогда не будет.

Снова сошлюсь на книгу А. Федорчука [П1.6], в которой большая глава посвящена выбору аппаратной платформы для Linux. В ней автор подробно рассматривает, как Linux относится к каждому компоненту компьютерной аппаратуры, начиная с чипсета и системной платы и кончая периферийными устройствами и источниками бесперебойного питания. Однако, на мой взгляд, на практике выбор компьютера определяется не операционной системой, а, в первую очередь, материальными возможностями владельца. И надо отнести к достоинствам ОС ее способность управлять не только самыми последними и "навороченными" моделями, но и уже "вышедшими из моды" или "морально устаревшими" экземплярами. Ведь так называемое "моральное устаревание" как раз и вызвано тем, что новые версии ПО от самых известны производителей заставляют списать в утиль вполне работоспособное оборудование. В этом смысле Linux имеет огромное преимущество, заключающееся в том, что она способна работать даже на тех компьютерах, где альтернативой ей может быть только MS DOS. Конечно, в таких случаях мы получим только режим командной строки, но, судя по различным источникам в Интернете, это не мешает использовать старые компьютеры для выполнения различных вспомогательных задач, например, в качестве маршрутизаторов.

Но вопросы использования Linux для этих целей не попадают в сферу нашего интереса. Если же говорить о типичном пользователе, то, судя по моему опыту, если Вы можете на компьютере работать с ОС Windows 95, а тем более с Windows NT или Windows 2000, то такой компьютер вполне годится для запуска Linux.

1.4. Где взять Linux?

И, в заключение первой главы, краткий ответ на вопрос, сформулированный в заголовке раздела.

Как было сказано, Linux вместе с огромным количеством прикладных программ распространяется практически бесплатно. Это значит, что пользователь, который не собирается модифицировать ПО или заниматься его продажами, имеет полное право скопировать весь дистрибутив Linux или любые его части у знакомого, скачать из Интернета или купить CD-ROM с Linux у торговцев в подземном переходе, не опасаясь, что подвергнется преследованию за нарушение лицензионных требований (которые почему-то называются "соглашениями"), выставленных фирмой-разработчиком.

Из трех перечисленных вариантов приобретения дистрибутива я бы предложил выбрать приобретение его на CD-ROM. Покупать желательно не в подземном переходе (хотя первый свой дистрибутив я приобрел на местном рынке и не пожалел), а в одной из компьютерных фирм или через интернет-магазин. Это дает возможность выбора и некоторые гарантии, по крайней мере, по обмену бракованного диска. Только имейте в виду, что разброс цен может быть очень велик. Существуют красивые упаковки с ценой более 1000 рублей (и это право продавца - назначить цену). И тот же дистрибутив (может быть только без печатного руководства по инсталляции) можно купить за сотню-другую.

Сам я в последнее время пользуюсь услугами интернет-магазинов. Конкретный адрес я не указываю (реклама у нас теперь платная), но таковых теперь множество, так что отсутствие здесь конкретного адреса не препятствие для тех, у кого есть желание приобрести дистрибутив.

Примечания:

«Как я уже упоминал, версия 0.01 распространялась без бинарников: это были просто исходные коды, предназначенные для тех, кому интересно, как выглядит linux. Обратите внимание на то, что не было объявления о выходе версии 0.01: я не очень ею гордился, так что просто послал сообщение всем, кто проявил какой-то интерес».

(замечание прислано В.Синицыным, Линукс Центр) С самого начала ядро Linux распространялось по лицензии, которую FSF вообще не признал бы свободной, поскольку она запрещала коммерческое распространение. Ее текст можно найти в архивах ранних версий ядра на ftp.kernel.org (см., например, ftp://ftp.kernel.org/pub/linux/kernel/Historic/old-versions/RELNOTES-0.01). Смена лицензии произошла, по-видимому, в версии 0.12 (см. там же, RELNOTES-0.12).

В настоящее время эти трудности преодолены и Linux успешно работает на всех процессорах от Intel.

Можно отметить, что с каждой новой версией ядра требования к аппаратной конфигурации все возрастают. Приведенные в таблице 1.1 данные относятся к дистрибутиву Black Cat Linux 5.2. Как показывают мои эксперименты по установке Red Hat Linux 9 в минимальной конфигурации (см. страничку моих статей и переводов) для современных дистрибутивов требуется уже не менее 600 МБ на диске и 64 МБ памяти.