Архитектура
Linux
Очевидно, что прежде,
чем принять решение пользоваться той или иной операционной системой,
необходимо иметь хотя бы приблизительное представление об ее архитектуре
и внутренней логике. Логическая структура Linux в значительной степени
отличается от строения MS-DOS или Microsoft Windows, о нанаиболее близка
к архитектуре другого класса операционных систем — UNIX. Безусловно,
большинство российских пользователей, начинавших свой путь с DOS, установленной
на примитивной «двушке», и прошедших через эпоху Windows
95, привыкли к логике операционных систем в исполнении Microsoft настолько,
что нечто новое, непривычное, выходящее из разряда условных рефлексов
и утвердившихся в сознании постулатов о том, «как работает машина»,
пугает их до дрожи в коленях. Однако Linux устроен ничуть не сложнее
любой лакомой всем платформы. Просто он работает немного по-другому.
Если сравнить внутреннюю
структуру Linux с анатомией MS Windows, различия становятся очевидны
даже на первый взгляд (рис. 10.2).
Рис. 10.2. Архитектура
Linux
По умолчанию Windows
устанавливается в один логический раздел диска с файловой таблицей FAT
16. Здесь хранится ядро системы, отвечающее за ввод/вывод данных, так
называемая оболочка, или shell (файл explorer.exe),определяющая интерпретацию
команд и действий пользователя, а также собственно файлы и библиотеки,
формирующие оконный интерфейс Windows. Причем эти три составляющие системы
настолько тесно интегрированы друг с другом, что при замене одной из
них, скажем, на аналогичный файл из другой версии Windows, система работать
не будет. Функционально они также в значительной степени смешаны: например,
некоторые процедуры по формированию интерфейса в Windows выполняет shell.
В том же разделе хранятся дополнительные системные утилиты, такие как
дефрагментатор диска, сервер удаленного доступа, драйверы, множество
служебных библиотек, а также пользовательские файлы. В этой же области
система осуществляет свопинг — кэширование не умещающихся в оперативной
памяти данных на диск. Иными словами, все компоненты платформы хранятся
в одном разделе, что, естественно, не прибавляет ей надежности: достаточно
любого незначительного повреждения таблицы данных, чтобы привести Windows
в неработоспособное состояние или испортить хранящуюся на диске полезную
информацию. Изменить с помощью стандартных средств Windows внешний вид
установленных по умолчанию окон также не представляется возможным. Это
вполне осуществимо методом замены имеющейся shell на другую оболочку,
например LiteStep, либо с помощью специальных утилит вроде Windows Blinds,
которые, загружаясь в фоновом режиме, занимают оперативную память и
замедляют работу компьютера. Архитектура Linux подразумевает создание
на диске трех независимых разделов: системного, области данных и области
свопинга. В системном разделе хранятся ядро Linux, включающее в себя
мульти загрузчики, комплекс утилит ввода/вывода и других необходимых
скриптов, оболочка, обеспечивающая интерпретацию пользовательских директив,
вводимых с командной консоли, и оконный интерфейс. Все эти компоненты
независимы друг от друга: вы можете по своему желанию установить новое
ядро без переустановки системы в целом, сменить shell и выбрать любой
графический интерфейс, отвечающий вашим потребностям и задачам. В области
данных располагаются, естественно, файлы пользователей. Следует отметить,
что Linux позволяет создать для каждой директории отдельный логический
раздел, что еще более увеличивает надежность системы: повредив одну
область, вы можете быть полностью уверены, что все другие остались в
неприкосновенности. В третьем независимом разделе осуществляется свопинг.
В Windows 95 практически
никак не были реализованы разделение доступа и защита данных: любой
человек, решивший поработать с таким компьютером, получал практически
полные права на изменение хранящейся на дисках информации и настроек
системы, мог уничтожать и создавать данные, по собственному желанию
инсталлировать и деинсталлировать программы. В Windows 98стало возможным
определять права пользователей на доступ к тем или иным ресурсам, ограничивая
их в основном элементами рабочего стола и пунктами меню Пуск. Однако
при желании все запреты этой версии Windows можно без труда обойти.
Из всего семейства операционных систем производства Microsoft наилучшим
образом разделение доступа реализовано в Windows NT: имеется возможность
запретить вход в систему незарегистрированному пользователю, причем
сами пользователи имеют только те права, которые назначил им администратор.
Они могут по крайней мере читать содержимое большинства директорий и
открывать все имеющиеся в них файлы.
Иначе организовано
разделение доступа в Linux. При входе в систему Linux требует идентификации
пользователя с помощью логина и пароля. Системный администратор, то
есть лицо, зарегистрированное как root, вправе менять настройки системы,
устанавливать и удалять файлы и утилиты, назначать права других пользователей,
работающих с Linux. Человек, не обладающий полномочиями администратора,
доступа к системным установкам не получает. Более того, при соответствующей
настройке Linux он вообще не увидит системного раздела. Возможности
администратора Linux чрезвычайно широки: он вправе разрешить кому-либо
работать только в одной директории или выделенном дереве каталогов,
причем остальные области диска будут недоступны, а может настроить систему
так, что она станет отображать другие разделы, но не разрешит изменять
в них информацию. Настройки позволяют запретить загрузку каких-либо
программ и наложить вето на использование Интернета или локальной сети.
Иными словами, владелец компьютера имеет возможность сконфигурировать
систему так, что больше у него не будет причин опасаться за хранящиеся
на дисках данные. Согласитесь, это очень актуально для ситуаций, когда
на машине работает более одного пользователя и для общедоступных web-серверов.
Как известно, в MS-DOS
и Windows принято соглашение о том, что дисководам персонального компьютера
присваиваются имена А: и В:, первый жесткий диск носит название С:,
все остальные накопители имеют буквенное обозначение,
следующее по порядку
за именем последнего жесткого диска. В Linux соглашение несколько иное:
дисководы обозначаются как устройства fd0 и fd1, винчестеры соответственно
hda, hdb и т. д. Причем если жесткий диск содержит несколько разделов,
то им присваиваются имена hda1, hda2 и т. д. для первого накопителя
и hdb1, hdb2 и т. д. — для второго. Порты компьютера также имеют собственные
названия: СОМ1 —COM4 именуются в Linux, как ttys0 — ttys5, aLPT1 и LPT2
соответственно как lр0 и lр1. К таким обозначениям надо просто привыкнуть.
Более того, в операционных системах от Microsoft любым папкам, кроме,
пожалуй, C:\Windows, разрешено назначать произвольные имена, да и этой
папке в процессе инсталляции системы можно дать другое название. Linux
предусматривает стандартизацию структуры каталогов, содержащих компоненты
системы. Директории пользователей хранятся в отдельной папке, называемой
home. Им, как правило, назначаются имена учетных записей, зарегистрированных
для входа в систему с самого компьютера либо по сети. Жесткий стандарт
на названия директорий и их содержимое позволяет избежать множества
ошибок и путаницы при сохранении или удалении данных, а также «свалки»
из файлов и каталогов на диске, которая часто образуется в процессе
эксплуатации MS Windows.
Как известно, Windows
поставляется в продажу в виде полностью подготовленного к установке
дистрибутива. Пользователи Linux могут сформировать дистрибутив самостоятельно
из отдельных компонентов либо воспользоваться стандартными пакетами,
содержащими практически все необходимые для работы элементы плюс удобный
инсталлятор системы, облегчающий установку Linux на диск.
Из других характерных
особенностей Linux необходимо, наверное, упомянуть поддержку национальных
клавиатур, в том числе и русской, поддержку множества файловых систем,
среди которых, помимо собственной (EXT2FS), имеются FAT16, MINIX-1 и
XENIX. Программная поддержка FAT16 позволяет непосредственно обращаться
к" гибким дискам MS-DOS, а также к файловым разделам DOS и Windows
на винчестере. Имеется возможность работать с сетевыми протоколами TCP/IP,
PLIP, РРР и многими другими, в рамках сетевых функций платформы реализован
весь спектр клиентов и услуг Интернета: FTP, Telnet, NNTP, SMTP и POPS.
Программы загружаются в память постранично, на диск кэшируются только
те сегменты данных, которые не используются системой в данный момент,
что значительно ускоряет работу приложений. Возможно совместное обращение
к страницам памяти разными программами в один и тот же момент времени,
это позволяет избежать. повторной загрузки идентичных фрагментов информации
в RAM и заметно экономит ресурсы компьютера. Как и Microsoft Windows,
в Linux применяется система динамических библиотек, иными словами, несколько
приложений могут использовать в своей работе библиотеку, представленную
на диске одним физическим файлом.
Из всего сказанного
можно сделать вполне справедливый вывод о том, что Linux является более
продуманной, систематизированной и качественно организованной операционной
системой, нежели MS Windows. Linux создавался с учетом трех основных
критериев: максимальных быстродействия, надежности и экономии ресурсов
компьютера. Если Windows стремится занять все свободное место на диске,
требует как можно больше оперативной памяти и заставляет пользователя
ежемесячно переустанавливать систему из-за бесконечных сбоев, Linux
позволяет работать с вдвое большей скоростью и схожим графическим интерфейсом
на достаточно медленной машине с небольшим количеством RAM, устанавливается
весьма компактно и при грамотном обращении может работать годами.