Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
po_chapter2_280409.pdf
Скачиваний:
37
Добавлен:
11.05.2015
Размер:
3.11 Mб
Скачать

Путь – это последовательный список каталогов (папок) от корневого до требуемого файла, разделенных символом «\».

Например, обращение к файлу Устав.doc, который находится на диске С: в папке Договора, которая входит в папку Мои документы (рис.2):

С:\Мои документы\Договора\Устав.doc

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

Специальные папки рабочего стола

Мой компьютер – специальная папка, которая позволяет просматривать содержимое дисков компьютера и выполнять различные операции с файлами и папками (запуск программ, копирование, перемещение, удаление файлов, создание папок и др.).

Корзина – специальная папка, содержащая список всех удаленных файлов и папок.

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

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

1.2.4. Средства удаленного доступа

Windows 95, в отличие от большинства операционных систем ПЭВМ, ориентирована для работы в сети, благодаря чему возможность совместного использования файлов и устройств полностью интегрирована в интерфейс пользователя Windows 95. Операционная система Windows 95 является операционной системой одноранговой локальной сети, а также графической оболочкой для клиентов сетей других производителей. Система поддерживает все основные сетевые протоколы и стандарты (TCP/IP, IPX/SPX), автоматически анализирует параметры локальной сети.Имеется следующий набор инструментов для работы в сети: Программное средство ”Сетевое окружение” (Network Neighorhood) позволяет просматривать все доступные сетевые ресурсы – компьютеры, принтеры, рабочие группы. Подключение компьютера к сети по телефонной линии (при помощи модема) обеспечивается с помощью специального средства –“Удаленный доступ к сети” (Dial-Up Networking).

1.2.5. Возможности работы с мультимедиа

Для работы с аудио- и видеофайлами различных форматов в составе Windows (95/98) имеется набор кодеков — эффективных программных средств сжатия и распаковки файлов и преобразования их форматов для вывода на различные устройства мультимедиа. При воспроизведении файла система запускает тот кодер, с помощью которого файл был создан.

38

Драйверы звуковых карт используют 32-разрядный код, но в тех случаях, когда система не может распознать карту, применяется 16-разрядный драйвер реального режима, который поставляется вместе с картой. При работе 32-разрядного драйвера защищенного режима драйвер реального режима автоматически отключается. При установке компакт-диска в устройство считывания, система пытается распознать его формат и запустить соответствующее приложение для его воспроизведения. Если установлен диск формата ISO-9660 (программный), то Windows 95 ищет файл с именем AUTO-RUN.INF u выполняет его. Это механизм получил название Spin & Grin. Значительно переработан код, который отвечает за обработку изображений, поэтому качество воспроизведения файлов AVI сильно возросло по сравнению с Windows 3.x, а скорость их воспроизведения теперь почти не зависит от выбранного масштаба изображения.

1.2.6. Поддержка приложений MS-DOS

Windows 95 занимает меньше места в основной памяти, поэтому появилась возможность запускать многие из тех программ MS-DOS, которые не работали под управлением Windows 3.x. Для DOS-программ, которые не запускаются в Windows 95 предусмотрен дополнительно режим эмуляции MS-DOS. Переключаясь в этот режим, Windows 95 завершает все работающие приложения, а потом удаляет из памяти и саму себя, оставляя лишь маленький загрузочный модуль. По окончании работы с программой MS-DOS, предусмотрена возможность вернуться обратно в Windows.

1.2.7. Интерфейс пользователя

Благодаря графическому интерфейсу (GUI) в Windows (95/98), по сравнению с Windows 3.x гораздо проще запускать программы, открывать и сохранять документы, работать с дисками и сетевыми серверами.

1.2.8. Работа с памятью

Windows 95 автоматически освобождает всю память, отведенную приложению, после того, как оно заканчивает работу. В Windows 3.x некорректно написанные приложения нередко освобождали не всю запрошенную ими память, поэтому иногда памяти оказывалось настолько мало, что единственным выходом оставался перезапуск системы. При завершении приложения в Windows 95 вся занимаемая память.

Cреди наиболее важных усовершенствований, появмвшихся в Windows 95/98, - заложенная в ней способность работать с 32-разрядными многопотоковыми прикладными программами, защищенные адресные пространства, вытесняющая многозадачность, шировкое использование драйверов виртуальных устройств. Наиболее существенный недостаток данной ОС состоит в относительно слабой защищенности от плохо работающих программ, содержащих ошибки.

Каждая собственная прикладная программа Widows 95/98 “видит” неструктурированное адресное пространство размером 4 Гб, в котором

39

размещается она сама, системный код и драйверы Widows 95/98 (Рис.2).

Рис. 2. Модель памяти Widows 95/98

1.3. Архитектура Windows 95/98

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

Реестр Реестр - это иерархическая база данных, в которой централизовано

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

1.3.1.Драйверы устройств

ВWindows’95 применяется архитектура “универсальный драйвер – минидрайвер”.

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

Windows служит виртуальный драйвер устройства.

Мини-драйвер содержит небольшую часть кода, и обеспечивает работу конкретного устройства, принадлежащего данному классу.

Виртуальный драйвер устройства (VxD) – это 32 разрядный драйвер защищенного режима, который управляет системным ресурсом (обычно аппаратное устройство или установленное программное обеспечение, для разделения ресурса между одновременно выполняемыми приложениями). Символ x соответствует конкретному устройству.

VDD – виртуальный драйвер видеоадаптера, VTD - драйвер таймера,

VPD – драйвер принтера, и т. д.

OC использует виртуальные драйверы для поддержки многозадачности в MS DOS приложениях путем виртуализации различных аппаратных компонентов, и их включение в каждую запускаемую виртуальную машину (VM). Виртуальные драйверы совместно с ОС учавствуют в обработке прерываний и выполнении операций ввода/вывода для каждого приложения. Виртуальные драйверы поддерживают все устройства стандартного ПК, включая программируемый контроллер прерываний, таймер, контроллер прямого доступа к памяти, контроллер диска, адаптер параллельного и последовательных портов, клавиатуру, математический сопроцессор и видиоадаптер. Виртуальный драйвер может содержать код, специализированный для выполнения операций с данным устройством.

40

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

1.3.2. Диспетчер виртуальной машины Виртуальная машина (ВМ) представляет собой некую среду в памяти,

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

1.Карту памяти, которая определяет, какой обьем виртуальной памяти доступен программе, выполняющейся в данный момент на этой ВМ.

2.Контекст выполнения, который определяется состоянием ресурсов ВМ (имеются в ввиду регистры процессора, уровень привелигированного доступа к процессору и др.).

3.Набор ресурсов, доступных приложению, выполняющемуся на данной ВМ.

Системная виртуальная машина

Контекст Системной ВМ представляет собой работающую в защищенном режиме среду, в которой выполняются все приложения Windows. Взаимодействие между приложениями и ОС осуществляется посредством сотен функций интерфейса прикладного программирования (API). В пределах системной ВМ каждое приложение Windows пользуется ресурсами посредством функций Windows API, причем на виртуальной машине, приложение MS-DOS использует интерфейс программных прерываний MS-DOS.

Диспетчер виртуальной машины VMM (Virtual Machine Manager)

представляет собой основную составную часть ОС и выделяет ресурсы каждому приложению и системному процессу, выполняемому на компьютере. Диспетчер виртуальной машины – это виртуальный драйвер устройства, который находится в файле DOS386.EXE вместе с другими виртуальными драйверами устройств, такими как plug and play, и драйверами файловой системы. Загружаемый в ходе процесса инициализации системы, диспетчер виртуальной машины находится постоянно в оперативной памяти. Сфера применения сервиса диспетчер виртуальной машины:

Управление памятью (выделение физической и виртуальной памяти).

Диспечеризация процессов. Динамическое управление приоритетами и планирование распределения квантов времени

Обработку прерываний. Управление аппаратными средствами и действиями по обработке ошибочных ситуаций

Координация событий. Управление потоком и соответствующими сообщениями

1.3.3. Компоненты ядра Windows 95/98

Ядро Windows’95 состоит из трех компонент:

41

User управляет вводом с клавиатуры, от мыши и других координатных устройств, а так же выводом через интерфейс пользователя. В Windows 95/98 используется модель асинхронного ввода;

Kernel обеспечивает базовые функциональные возможности операционной системы (поддержку файлового ввода/вывода, управление виртуальной памятью, планирование задач), загружает exe- и dll-файлы при запуске программы, обрабатывает исключения, обеспечивает взаимодействие 16-разрядного и 32-разрядного кодов;

GDI - это графическая система, управляющая всем что появляется на экране дисплея, и поддерживающая графический вывод на принтер и другие устройства.

В ОС Windows 95/98 каждая 32-разрядная прикладная программа выполняется в собственном адресном пространстве, но все они совместно используют один и тот же 32-разядный системный код. Неправильно написанная 32-разрядная программа все еще может привести к аварийному сбою всей системы. Все 16-адресные программы Windows 95/98 разделяют общее адресное пространство, поэтому они столь уязвимы друг для друга, как и в среде ОС Windows 3.1.

Каждя прикладная программа Windows видит неструктурированное адресное пространство размером 4 Гб, в котором размещена она сама, системный код и драйверы Windiws. Прикладная программа выполняется так, какбудто она монопольно использует ПК. Код программы загружается между 2-4 Гб. Программы Win 32 не видят друг друга, но могут обмениваться через буфер обмена Clpboard, мезанизмы DDE и OLE. Все прикладные приложения Win 32 выполняются в соответствии с моделью вытесняющей многозадачности, основанной на управлении отдельными потоками. Планировщик потоков, входит в систему управления виртуальной памятью VMM, и распределяет на основе приоритетов потоки готовые к выполнению.

Системный код Windows 95/98 размещается выше границы 2 Гб. В пространстве 2-3 Гб находятся системные библиотеки DLL кольца 3 и лббые DLL совместно используемые несколькими приложениями.

Компоненты кольца 0 отображаются в пространство 3-4 Гб. Эти важные участки кода с максимальным уровнем привелегий содержат подсистему управления виртуальными машинами (VMM), файловую систему и важные драйвера VxD.

Область 2-4 Гб отображается в адресное пространство каждой программы Win 32. Такая организация позволяет обслуживать вызовы API непосредственно в адресном пространстве прикладной программы. Однако это приводит к снижению надежности программ. Ничто не помешает программе содержащей ошибку, произвести запись в адреса, принадлежащие системным DLL, и вызвать общий сбой системы.

42

Рис. 3. Модель памяти Windows 95/98

Отметим некоторые недостатки связанные с ОС Windows 95/98:

1.Сравнительно высокие требования к аппаратной части компьютера (объем ОП, жесткий диск, процессор.

2.Слабая защита файловой системы и вследствии этого возможные зависания системы из-за сбоя выполныемых задач. 16-разрядные приложения не защищены друг от друга и сбой в одном таком приложении может привести к “эффекту домино”, т.е. к сбою в других приложениях. К тому же все приложения могут иметь доступ к системной области.

3.Являясь 32-разрядной ОС однако содержит и некоторые 16-разрядные программы, что снижает быстродействие процессоров, рассчитанных на полностью 32-разрядные ОС.

Интерфейс пользователя Интерфейс

43

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

Под интрфейсом будем понимать

1.совокупность технических, программных средств и правил, обеспечивающих взаимодействие различных устройств, программ входящих в состав ПЭВМ.

2.устройство или программа, обеспечивающая взаимодействие между двумя различными элементами оборудования.

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

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

Приложение

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

2.Любая программа, функционирующая под управлением ОС.

Windows поддерживает два типа приложений: основанные на

графическом интерфейсе (graphical user interface; GUE) и консольные

(console user interface, CUI) на текстовом или командном интерфейсе. У

приложений первого типа внешний интерфейс чисто графический. GUI – приложения создают окна, имеют меню, взаимодействуют с пользователем через диалоговые окна и т. д. Почти все стандартные программы Windows – Блокнот, Калькулятор, редактор WordPad, и др. –являются GUI приложениями. Приложения консольного типа работают в текстовом режиме, они не формируют окна, не обрабатывают сообщения и не требуют GUI. И хотя консольные приложения на экране тоже размещаются в окне, в нем содержится только текст. Типичный пример консольного приложения – командный процессор command.com.

Документ

1.Совокупность данных, создаваемая и редактируемая некоторым приложением.

2.Файл содержащий текстовый документ.

44

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

45

2. Современные архитектуры файловых систем

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

Новая файловая система имеет многоуровневую структуру (рисунок 2.39), на верхнем уровне которой располагается так называемый переключатель файловых систем (в Windows 95, например, такой переключатель называется устанавливаемым диспетчером файловой системы

- installable filesystem manager, IFS). Он обеспечивает интерфейс между запросами приложения и конкретной файловой системой, к которой обращается это приложение. Переключатель файловых систем преобразует запросы в формат, воспринимаемый следующим уровнем - уровнем файловых систем.

Рис. 2.39. Архитектура современной файловой системы.

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

46

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

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

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

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

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

Windows 95 и будущее семейства Windows

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

47

разрядные приложения, поддерживает технологию "plug-and-play" и содержит встроенные средства для сетевой работы. У многих обозревателей нет сомнений в том, что эта система улучшит жизнь многим миллионам пользователей персональных компьютеров.

Несмотря на все преимущества, Windows 95 - это по-прежнему вариация на тему Windows 3.1. Для большинства пользователей это означает, что заложенные в ней архитектурные анахронизмы могут приводить к неожиданному краху системы. Даже по мнению специалистов Microsoft, для важных бизнес-приложений более предпочтительным является использование Windows NT, которая обеспечивает защиту данных и устойчивость к некорректной работе приложений.

Наконец, переделка средств управления оперативной памятью позволит пользователям загрузить больше приложений прежде, чем система выдаст сообщение о нехватке памяти. Например, в Windows 3.1 обычно можно загрузить от 3 до 5 приложений, а для Windows 95 эти границы составляют 6 - 12 приложений.

Стабильность Windows 95, развитые средства сетевой работы и новый удобный пользовательский интерфейс представляют собой безусловные преимущества по сравнению с DOS или Windows 3.1, но все же не дотягивают до того уровня, к которому привыкли пользователи таких ОС,

как OpenVMS, UNIX или Windows NT.

Одной из проблем Windows 3.1 является способность приложения вызвать крах системы, вынудив сделать перезагрузку. В Windows 95 осталось много 16-разрядного кода, с помощью которого осуществляется выполнение приложений. Например, такие критические компоненты операционной системы, как USER и GDI, которые соответственно обеспечивают управление окнами и предоставляют средства графического интерфейса, являются по-прежнему 16-разрядными и работают в том же адресном пространстве, что и 16-разрядные приложения. Поэтому 16-разрядное приложение, содержащее ошибки, может потенциально "подвесить" виртуальную машину, на которой работают подсистемы USER и GDI, или, что еще хуже, заставить USER или GDI неверно работать, что может привести к краху всей ОС. Даже 32-разрядные приложения могут вызвать останов системы. Большая часть нижней памяти размером в 1 Мбайт, принадлежащая адресному пространству системного кода Windows 95 (то есть системной виртуальной машине System VM), открыта для операций приложения Win32.

Многозадачность - это еще одно потенциально слабое место. Windows 95 пересылает все вызовы USER API через 16-разрядную системную виртуальную машину System VM, которая размещается там же, где и выполняемое 16-разрядное приложение. Если 16-разрядное приложение "подвешивает" машину System VM, отказываясь обрабатывать сообщение (встречающийся чаще всего тип ошибки в существующих приложениях Windows), то все остальные процессы приостанавливаются. Пока пользователь не завершит в принудительном порядке зависшее 16-разрядное

48

приложение (в Windows 95 есть хорошее средство для выполнения этой операции) и тем самым не освободит машину System VM, другие выполняемые программы, даже 32-разрядные, будут заблокированы.

Краткие сведения по архитектуре Windows 3.1

Рисунки 8.4, 8.5 и 8.6 дают возможность сравнить архитектурные решения, положенные в основу операционных систем Windows 3.1, Windows 95 и Windows NT.

Рис. 8.4. Архитектура ОС Windows 3.1.

В состав операционной системы Windows 3.1 (рис 8.4) входит системная виртуальная машина System VM, внутри которой размещаются все 16-разрядные приложения Win16, а также код и данные системных DLL, которые обеспечивают выполнение сервисных функций ОС. Приложения Win16 выполняются в общем адресном пространстве внутри системной виртуальной машины. Программы Win16 выполняются в режиме

невытесняющей многозадачности. Системные библиотеки USER, GDI и KERNEL предоставляют сервисные функции операционной системы приложениям и отображаются в адресное пространство, совместно используемое приложениями Win16. Приложения DOS запускаются на отдельных виртуальных DOS-машинах (VDM), работающих в режиме вытесняющей многозадачности. Диспетчер устанавливаемых файловых систем (IFS) и драйвер 32-разрядного доступа к файлам (только в Windows for Workgroups 3.11) осуществляют большинство файловых операций в защищенном режиме, что ускоряет доступ к файлам. Драйвер 32-разрядного доступа к диску управляет обменом с диском на физическом уровне.

49

Рис. 8.5. Архитектура ОС Windows 95.

Подсистема управления виртуальными машинами (VM Manager, VMM) предоставляет сервисные функции низкого уровня, такие как распределение процессорного времени между VM и управление виртуальной памятью. Сюда также относятся драйверы виртуальных устройств (VxD) для аппаратуры.

Краткие сведения по архитектуре Windows 95/98

Архитектура Windows 95 (рисунок 8.5) представляет собой немного улучшенную версию архитектуры Windows 3.1. Внутри системной VM выполняются приложения Win16 и Win32. Большая часть кода операционной системы и данных также размещается здесь. Приложения Win32 работают на основе алгоритма вытесняющей многозадачности в отдельных адресных пространствах. Все приложения Win16 выполняются как единый процесс в общем адресном пространстве на основе алгоритма невытесняющей многозадачности. Библиотеки динамической компоновки USER, USER32, GDI, GDI32, KERNEL и KERNEL32, которые предоставляют системные сервисы всем приложениям, загружаются в системную VM и отображаются в адресные пространства каждого прикладного процесса. Это повышает производительность за счет устранения затрат времени на переходы между кольцами защиты при вызове системных функций. Однако с другой стороны, это также ставит под угрозу целостность системы, открывая доступ к частям ОС для прикладных программ. На виртуальных DOS-машинах (VDM) выполняются DOS-программы. Они работают в режиме вытесняющей многозадачности.

50

Подсистема управления файлами Windows 95 работает в нулевом кольце защиты и обрабатывает все вызовы, связанные с вводом-выводом. Большинство вызовов обрабатывается в защищенном режиме, но некоторые по-прежнему приводят к переключению в режим Virtual 86, и обрабатываются в реальном режиме DOS. Диспетчер устанавливаемых файловых систем IFS передает вызовы файлового ввода-вывода драйверу соответствующей файловой системы. Драйвер файловой системы VFAT реализует собственную VFAT-систему Windows 95, которая похожа на файловую систему FAT с добавленными средствами обработки длинных имен файлов. Драйвер CDFS заменяет MSCDEX и управляет операциями по вводу данных с накопителей CD ROM. Редиректор, выполненный в виде драйвера файловой системы, обеспечивает обращение к сетевым накопителям. Можно устанавливать дополнительные драйверы файловых систем. Подсистема блочного ввода-вывода выполняет соответствующие операции на физическом уровне в ответ на запросы драйверов файловых систем.

Подсистема управления виртуальными машинами (VMM) предоставляет низкоуровневые сервисные функции, например, планирование нитей и управление памятью. Сюда также относятся драйверы виртуальных устройств (VxD) для аппаратуры.

Краткие сведения по архитектуре Windows 95/98

На рисунке 8.6 представлена уже знакомая структура Windows NT, в которой каждое из приложений обращается к сервисным функциям (серверам) косвенно, через вызовы локальных процедур (LPC), реализованных в диспетчере LPC, являющемся частью NT Executive и работающем в привилегированном режиме. Приложения Win32 исполняются как отдельные многонитевые процессы. Программы Win16 могут запускаться как однонитевые процессы на общей виртуальной машине, или на собственной виртуальной машине, что обеспечивает им большую степень защищенности от других программ Win16.

Приложения DOS выполняются как отдельные процессы на отдельных виртуальных DOS-машинах (VDM). Среда машины в рамках VDM конструируется таким образом, чтобы как можно более точно имитировать среду реального режима DOS. Подсистемы OS/2 и POSIX обеспечивают работу соответствующих прикладных программ в текстовом режиме.

Windows NT Executive предоставляет сервисные функции ОС, необходимые для подсистем пользовательского режима и реализует внутренние механизмы системы, такие, например, как планирование нитей и управление памятью. Слой системных сервисных функций служит интерфейсом между программами пользовательского режима и NT Executive.

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

51

Рис. 8.6. Архитектура ОС Windows NT.

Как видно из следующей таблицы, разбиение версий Windows на два семейства - NT и 95 - явление временное. Оно вызвано скорее не стратегическими соображениями, а тактикой борьбы за пользователей в условиях, когда мощность большей части персональных компьютеров, установленных в настоящее время у пользователей, оказалась явно недостаточной для эффективной работы Windows NT. Ввиду угрозы перетекания конечных пользователей на более компактную и менее ресурсоемкую (по сравнению с Windows NT) OS/2 Warp Connect компания Microsoft и выпустила Windows 95, как некоторую временную ОС с ограниченным сроком годности - не более 5 лет, как это видно из таблицы. И хотя Microsoft выпустила еще 2 версии Windows 98/Me, улучшающие свойства Windows 95, наличие некоторых общих свойств у Windows NT и Windows 95, а также очевидные слабости Windows 95, говорят о том, что долговременная стратегия Microsoft связана с линией Windows NT.

 

 

Таблица. 8.1.

 

Версии операционных систем компании Microsoft

 

 

 

Год

Корпоративные пользователи

Домашние пользователи

(работающие на достаточных аппаратных

(работающие на ограниченных

 

ресурсах)

аппаратных ресурсах)

1994

Windows 3.1

Windows 3.1

Windows for Workgroups 3.11

 

 

 

Windows NT 3.51

Windows 95

1995

Работа на платформе PowerPC

Новый пользовательский интерфейс

 

Общие органы управления и панели

Вытесняющая многозадачность

 

диалога с Windows 95

Многонитевость

 

52

 

 

 

Защита памяти

 

 

Поддержка службы Microsoft

 

 

Network

 

 

Win32 API

1996

Windows NT 3.52

Nashville

Поддержка службы Microsoft Network

Незначительно улучшенная версия

 

Пользовательский интерфейс Windows 95

Windows 95

 

Windows NT 4.0

 

 

Объектно-ориентированная архитектура

 

 

Объектно-ориентированная файловая

Windows 98 или Windows 98 SE

1997-

система

Сетевые средства OLE

Memphis

1998

Служба каталогов

 

 

 

 

Встроенные сетевые средства ATM

 

 

Аутентификация с помощью службы

 

 

Kerberos

 

 

Windows 2000(Windows NT 5.0),

 

 

Prof/ Server/ Advanced Server/ DataCenter.

 

 

Active Directory

 

1999-

Иснтрументы администрирования

Windows 2000 Professional

2000

Windows

Безопасность Kerberos и PKI

 

 

Службы терминалов

 

 

Службы компонентов COM+

 

 

Улучшенные Интернет- и веб-службы.

 

2001-

Windows XP Professional

Windows XP Home Edition

2002

 

 

2002-

Windows 2003 Server

 

2003

 

 

 

2006-

MS Vista

MS Vista

2007

Windows 2008 Server

 

3. Операционная система Windows NT

3.1. Общая архитектура Windows NT

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

Большое внимание в этой главе уделено модели драйвера, его структуре и характеристикам, а также взаимосвязи с другими драйверами и прикладными программами.

3.2. Понятия «пользовательский режим» и «режим ядра»

53

При обсуждении архитектуры ОС Windows NT постоянно используются понятия «режим пользователя» и «режим ядра», поэтому стоит определить, что это значит. Начнем с обсуждения разницы между пользовательским режимом и режимом ядра (user mode/kernel mode).

Пользовательский режим - наименее привилегированный режим, поддерживаемый NT; он не имеет прямого доступа к оборудованию и у него ограниченный доступ к памяти. Режим ядра - привилегированный режим. Те части NT, которые исполняются в режиме ядра, такие как драйверы устройств и подсистемы типа Диспетчера Виртуальной Памяти, имеют прямой доступ ко всей аппаратуре и памяти.

Различия в работе программ пользовательского режима и режима ядра поддерживаются аппаратными средствами компьютера (а именно - процессором).

Большинство архитектур процессоров обеспечивают, по крайней мере, два аппаратных уровня привилегий. Аппаратный уровень привилегий процессора определяет возможное множество инструкций, которые может вызывать исполняемый в данный момент процессором код. Хотя понятия «режим пользователя» и «режим ядра» часто используются для описания кода, на самом деле это уровни привилегий, ассоциированные с процессором. Уровень привилегий накладывает три типа ограничений: 1) возможность выполнения привилегированных команд, 2) запрет обращения к данным с более высоким уровнем привилегий, 3) запрет передачи управления коду с уровнем привилегий, не равным уровню привилегий вызывающего кода.

3.3. Некоторые понятия защищенного режима

Защищенный режим является основным и наиболее естественным режимом работы 32-разрядных процессоров. Этот режим был в полной мере реализован в процессорах серии i386 и с тех пор существенных изменений не претерпел. Защищенный режим 32-разрядных процессоров реализует поддержку следующих механизмов:

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

Четырехуровневая система защиты пространства памяти и ввода/вывода.

Переключение задач.

Сегмент - это блок пространства памяти определенного назначения, внутри которого применяется линейная адресация. Максимальный размер сегмента при 32-разрядной адресации составляет 4 Гб (232 байт). Максимальное число таких сегментов равно 213 (8192). Сегмент может иметь произвольную длину в допустимых границах.

54

Каждый сегмент характеризуется 8-байтной структурой данных – дескриптором сегмента, в котором, в числе прочего, указаны:

Права доступа, которые определяют возможность чтения, записи и исполнения сегмента.

Уровень привилегий (относится к четырехуровневой системе защиты). На сегментации основана защита памяти. При этом не допускается:

использовать сегменты не по назначению (нарушение прав доступа);

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

адресоваться к элементам, выходящим за границы сегмента.

Страничная организация памяти позволяет использовать большее пространство памяти. При этом базовым объектом памяти служит блок фиксированного размера 4 Кб.

Физический адрес памяти, получаемый на выходе сегментного и страничного преобразования памяти, является 32-разрядным, позволяя адресовать, таким образом, до 4 Гб реально доступной физической памяти.

Четырехуровневая система привилегий предназначена для управления использованием привилегированных инструкций, а также для защиты пространства памяти и ввода/вывода. Уровни привилегий нумеруются от 0 до 3, нулевой уровень соответствует максимальным (неограниченным) возможностям доступа и отводится для ядра ОС, Уровень 3 имеет самые ограниченные права и обычно предоставляется прикладным задачам.

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

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

ОС NT использует два кольца защиты - 0 и 3, имея соответственно режим работы в 0 кольце - kernel mode, в 3 кольце — user mode.

3.4. Основные характеристики Windows NT

ОС NT характеризуется поддержкой следующих механизмов:

1.модель модифицированного микроядра;

2.эмуляция нескольких ОС;

3.независимость от архитектуры процессора;

4.объектная модель;

5.многопоточность;

6.вытесняющая многозадачность;

55

7.виртуальная память с подкачкой страниц по требованию;

8.мультипроцессорная обработка;

9.интегрированная поддержка сети.

3.4.1.Модель модифицированного микроядра

На NT иногда ссылаются как на операционную систему на основе

микроядра (microkernel-based operating system). Идея, лежащая в основе концепции микроядра, состоит в том, что все компоненты ОС за исключением небольшой основы (собственно, микроядра) исполняются как процессы пользовательского режима. Базовые компоненты в микроядре исполняются в привилегированном режиме.

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

Недостаток чистой архитектуры микроядра - низкая производительность. Любое взаимодействие между компонентами ОС при такой схеме нуждается в межпроцессном сообщении с длительными переключениями между задачами.

NT использует уникальный подход, известный как модифицированное микроядро. Он является промежуточным между чистым микроядром и монолитной структурой.

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

Подсистемы окружения предоставляют прикладным программам интерфейс программирования, специфичный для некоторых ОС (WIN32, POSIX, OS/2, DOS).

Неотъемлемые подсистемы исполняют важные функции ОС. Среди таких подсистем - подсистема безопасности, служба рабочей станции и служба сервера.

При выполнения задач, которые не могут быть выполнены в пользовательском режиме, все подсистемы ОС NT полагаются на системные сервисы, экспортируемые режимом ядра. Эти сервисы известны как «родной» API. Такой API состоит примерно из 250 функций, доступных через модуль ntdll.dll.

56

Прикладная программа использует интерфейс программирования, предоставляемый какой-либо одной подсистемой окружения, либо использует напрямую собственный интерфейс программирования.

В режиме ядра работает Исполнительная система NT (NT Executive).

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

Исполнительная система состоит из набора подсистем, Микроядра и Слоя Абстрагирования от Оборудования (HAL). Подсистемы Исполнительной системы и Микроядро находятся в едином модуле - ntoskrnl.exe. Слой Абстрагирования от Оборудования находится в модуле hal.dll. Все загруженные системой драйверы также являются частью исполнительной системы.

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

3.4.2. Эмуляция нескольких ОС

Подсистемы окружения операционной системы NT реализованы как системы типа клиент/сервер. Как часть процесса компиляции, прикладные программы прикрепляются на этапе компоновки к API операционной системы, который экспортируют подсистемы окружения ОС NT . Связывание на этапе компоновки подключает прикладную программу к клиентским DLLs подсистем окружения, которые осуществляют экспорт API. Например, Win32 программа – это клиент подсистемы окружения Win32, поэтому она связана с клиентскими DLL Win32, включая Kerael32.dll, gdi32.dll, и user32.dll.

Программа POSIX связана с клиентской DLL POSIX - psxdll.dll.

Клиентские DLL выполняют задачи от имени их серверов, но они выполняются, как часть клиентского процесса. Как показано рис. 1, в некоторых случаях пользовательская DLL может полностью реализовывать API без необходимости обращения к помощи сервера; в других случаях сервер должен помочь. Помощь сервера обычно необходима только, когда должна быть модифицирована общая информация, связанная с подсистемой окружения. Когда пользовательская DLL требует помощи от сервера, DLL посылает сообщение, известное, как вызов локальной процедуры (LPC) на сервер. Когда сервер завершает указанный запрос и возвращает ответ, DLL может завершить функцию и возвратить управление клиенту. И пользовательская DLL и сервер могут использовать «родной» API, когда это необходимо. API подсистем окружения дополняют «родной» API специфическими функциональными возможностями или семантикой.

57

Рис. 1

3.4.3. Независимость от архитектуры процессора

Микроядро и Слой Абстрагирования от Оборудования (HAL) изолируют подсистемы Исполнительной Системы от конкретной архитектуры процессора.

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

Микроядро OS Windows NT обеспечивает единый интерфейс для использования ресурсов, общих для определенной аппаратной платформы, на которой может работать OS. Например, микроядро обеспечивает интерфейсы к обработке и управлению прерываниями, сохранению и восстановлению контекста потоков и мультипроцессорной синхронизации.

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

3.4.4. Объектная модель

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

Атрибут объекта – это поле данных внутри объекта, частично определяющее его состояние. Объектные сервисы – способы манипулирования объектами – обычно считывают или изменяют атрибуты объектов.

Windows NT использует объекты для унификации представления и управления системными ресурсами. Каждый системный ресурс, который

58

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

3.4.5. Многопоточность

Каждая исполняющаяся в NT программа представляется как процесс. Процесс (process) - это программа (статическая последовательность команд и данные) и системные ресурсы, необходимые для ее работы. ОС предоставляет каждому процессу адресное пространство, выделенное для программы, и гарантирует, что программа каждого процесса будет направляться на выполнение в определенном порядке и в нужное время. Чтобы процесс смог заработать, он должен включать, по крайней мере, один поток исполнения (thread of execution).

Поток (thread) - единица исполнения в NT. Поток - это сущность внутри процесса, которую ядро направляет на исполнение, он может принадлежать только одному процессу. Поток состоит из указателя текущей команды, пользовательского стека, стека ядра и набора значений регистров. Все потоки процесса имеют одинаковый доступ к его адресному пространству, описателям объектов и другим ресурсам. Потоки реализованы как объекты – потоки.

Начальный поток возникает при создании процесса, и затем он может создать дополнительные потоки.

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

3.4.6. Вытесняющая многозадачность (preemptive multitasking)

NT позволяет нескольким единицам исполнения - потокам - выполняться одновременно, быстро переключаясь между ними. Такое поведение называется многозадачностью (multitasking).

Каждому потоку на исполнение выделяется квант времени процессора. По истечении этого времени операционная система насильственно отдаст время процессора другому потоку (говорят, что поток будет вытеснен). Такое

59

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

Необходимо определить еще два термина: диспетчеризация и планирование. Диспетчеризация (dispatching) - механизм переключения с одного потока исполнения на другой.

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

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

3.4.7. Виртуальная память с подкачкой страниц по требованию

Виртуальное адресное пространство (virtual address space) процесса – это набор адресов, которые могут использовать потоки процесса, оно равно четырем гигабайтам (232 байт), два из которых предназначены для использования программой, а другие два зарезервированы для ОС.

Во время выполнения потока диспетчер памяти при помощи аппаратных средств транслирует (отображает) виртуальные адреса в физические, по которым данные хранятся на самом деле. Посредством контроля над процессом отображения ОС может гарантировать, что процессы не будут пересекаться друг с другом и не повредят ОС. Когда физической памяти не хватает, диспетчер памяти выгружает часть содержимого памяти на диск. При обращении потока по виртуальному адресу, соответствующему переписанным на диск данным, диспетчер памяти снова загружает эти данные с диска в память. В Windows NT код ОС располагается в верхней части виртуального адресного пространства, а пользовательский код и данные – в нижней. Можно выгружать всю пользовательскую память. Код пользовательского режима не может производить запись и чтение системной памяти.

Часть системной памяти, называемая невыгружаемым (резидентным) пулом (nonpaged pool), никогда не выгружается на диск и используется для хранения некоторых объектов и других важных структур данных. Другая часть системной памяти, которая может быть выгружена на диск, называется

выгружаемым (нерезидентным) пулом (paged pool).

3.4.8. Симметричная мультипроцессорная обработка

60

ОС NT поддерживает только архитектуру с симметричной мультипроцессорной обработкой - SMP. Системы с симметричной мультипроцессорной обработкой позволяют коду операционной системы выполняться на любом свободном процессоре или на всех процессорах одновременно, причем каждому из процессоров доступна вся память. Чтобы гарантировать правильную работу системы, код таких ОС должен следовать строгим правилам. Windows NT обладает свойствами, которые принципиально важны для мультипроцессорной ОС:

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

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

Серверные процессы могут иметь несколько потоков для

одновременной обработки запросов от нескольких клиентов. Имеются механизмы совместного использования объектов потоками

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

3.4.9. Интегрированная поддержка сети

Windows NT разработана со встроенной сетевой поддержкой и включает широкую поддержку сети, интегрированную с системой ввода/вывода и интерфейсом Win32 API.

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

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

3.5. Структура Windows NT

Всю операционную систему Windows NT можно разделить на следующие части (см. рис. 2):

1.защищенные подсистемы (protected subsysterns), работающие в пользовательском режиме, тогда как остальная часть ОС исполняется в режиме ядра;

2.исполнительная система (executive);

61

3.ядро (kernel);

4.слой абстрагирования от оборудования (Hardware Abstraction Layer, HAL).

Рис. 2. Общая архитектура ОС Windows NT

3.5.1. Защищенные подсистемы

Серверы Windows NT называются защищенными подсистемами, так как каждый из них – это отдельный процесс, память которого защищена от других процессов системой виртуальной памяти исполнительной системы NT. Каждая защищенная подсистема обеспечивает интерфейс прикладным программам (API) посредством DLLs клиентской стороны. Когда приложение или другой сервер вызывает некоторую процедуру API, соответствующая DLL упаковывает параметры функции API в сообщение и с помощью средства локального вызова процедур (Local Procedure Call, LPC) посылает его серверу, реализующему данную процедуру. Сервер же, выполнив вызов, посылает ответное сообщение вызывающей программе. Передача сообщений остается невидимой для прикладного программиста. Используя такую процедуру, вызывающая программа никогда не получает прямого доступа к адресному пространству подсистемы.

Надо отметить, что далеко не все функции API реализуются сервером, например, большая часть функций API Win32 оптимизирована в DLL клиентской стороны, и в действительности не обращается к подсистеме

Win32.

Защищенные подсистемы подразделяются на подсистемы среды

(environment subsystems) и неотъемлемые подсистемы (integral subsystems).

62

3.5.2. Подсистемы среды

Подсистема среды – это сервер пользовательского режима, реализующий API некоторой ОС. Самая важная подсистема среды в Windows NT - это подсистема среды Win32 (рассматриваемая ниже), которая предоставляет прикладным программам интерфейс API 32 - разрядной Windows. В Windows NT также имеются подсистемы среды: POSIX, OS/2 и

виртуальная DOS машина (virtual DOS machine, VDM), эмулирующая 16разрядную Windows и MS-DOS.

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

Говоря о подсистемах окружения, необходимо отметить также следующее. Каждая прикладная программа (и даже более того - каждый модуль, будь то exe, dll, sys или что-то другое) может относиться только к какой-то одной подсистеме окружения, либо не относиться ни к одной из них. Эта информация прописывается в любом исполняемом модуле на этапе его компиляции и может быть получена через утилиту «Быстрый просмотр»

(Quick View) в пункте «Subsystem» (варианты: The image does not require subsystem, Win32 GUI, Win32 Console, ...).

3.5.3. Подсистема среды Win32

Подсистема среды Win32 делится на серверный процесс (csrss.exe - Client/Server Runtime Subsystem) и клиентские DLLs (user32.dll, gdi32.dll, kerneI32.dll), которые связаны с программой, использующей Win32 API. Win32. API разделен на три категории:

Управление окнами (windowing) и передача сообщений (messaging). Эти интерфейсы оконных процедур и процедур сообщений включают,

например, такие функции, как CreateWindow(), SendMessage(), и

предоставляются прикладной программе через библиотеку user32.dll.

Рисование (drawing). Например, функции BitBitQ и LineTo() являются Win32-функциями рисования и предоставляются библиотекой gdi32.dll.

Базовые сервисы. Базовые сервисы включают весь ввод/вывод, управление процессами и потоками, управление памятью,

синхронизацию и предоставляются библиотекой kernel32.dll.

Когда Win32-приложение вызывает функцию API Win32, управление передается одной из клиентских DLLs подсистемы Win32. Эта DLL может:

Выполнить функцию самостоятельно без обращения к системным сервисам ОС и вернуть управление вызывающей программе.

Послать сообщение Win32-cepвepy для обработки запроса в том случае, если сервер должен участвовать в выполнении заданной функции. Так, функция CreateProcess(), экспортируемая библиотекой kernel32.dll,

63

требует взаимодействия с Win32-cepвepом, который, в свою очередь, вызывает функции «родного» API.

Вовлечь «родной» интерфейс API для выполнения заданной функции. Последний вариант встречается наиболее часто. В версиях Windows NT ниже 4.0 функции окон (windowing) и рисования (drawing) были расположены в Win32-сервере (csrss.exe). Это означало, что, когда приложение использовало такие функции, посылались сообщения указанному серверу. В версии 4.0 эти функции были перенесены в компонент режима ядра, называемый win32k.sys. Теперь вместо того, чтобы посылать сообщение серверу, клиентская DLL обращается к этому компоненту ядра, уменьшая затраты на создание сообщений и переключение контекстов потоков различных процессов. Это увеличило производительность графического ввода/вывода. Библиотеки gdi32.dll и user32.dll стали вторым «родным» API, но оно менее загадочно, чем первое, так как хорошо документировано.

Функциями библиотеки kernel32.dll, вызывающими «родной» интерфейс API напрямую, являются функции ввода/вывода, синхронизации и управления памятью. Фактически, большинство экспортируемых библиотекой kerael32.dll функций используют «родной» API напрямую. На рис. 3 иллюстрируется передача управления от Win32-приложения, выполнившего вызов Win32-функции CreateFile(), библиотеке kernel32.dll, затем функции NtCreateFile() в ntdll.dll и далее режиму ядра, где управление передается системному сервису, реализующему создание/открытие файла. Подробнее вызов системных сервисов рассматривается в следующем параграфе.

Рис. 3. Вызов системных сервисов через "родной" API. (ntdll.dll)

3.5.4. «Родной» API для ОС Windows NT (Native Windows NT API)

«Родной» API для Windows NT является средством, которое реализует контролируемый вызов системных сервисов, исполняемых в режиме ядра.

64

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

Этот интерфейс API является интерфейсом системных вызовов и не предназначается для непосредственного использования пользовательскими программами, кроме того, его документация ограничена. В Windows NT «родной» интерфейс спрятан от прикладных программистов под интерфейсами API более высокого уровня, таких как Win32, OS/2, POSIX, DOS/Win16.

«Родной» API предоставляется коду пользовательского режима библиотекой ntdll.dll. Библиотека ntdll.dll, имеющая точки входа в «родной» API для кода пользовательского режима, содержит также код загрузки модуля и запуска потока процесса. Однако большинство входов в «родной» API являются заглушками, которые просто передают управление режиму ядра. Это осуществляется путем генерации программного исключения, например, ассемблерный код функции NtCreateFile() в библиотеке ntdll.dll, выглядит следующим образом:

mov еах, 0x00000017 lea edx, [esp+04]

int Ox2E ret Ox2C

Другие вызовы выглядят почти также. Первая инструкция загружает регистр процессора индексным номером конкретной функции «родного» API (каждая функция «родного» API имеет уникальный индексный номер). Вторая инструкция загружает в регистр указатель на параметры вызова. Следующая инструкция - команда генерации программного исключения. ОС регистрирует обработчик ловушки для перехвата управления, переключения из пользовательского режима в режим ядра и передачи управления в фиксированную точку ОС при возникновении прерывания или исключения. В случае вызова системного сервиса (на процессорах х86 программное исключение для вызова системных сервисов генерируется кодом Ох2Е), этот обработчик ловушки передает управление диспетчеру системных сервисов. Последняя инструкция забирает параметры из стека вызывающего потока.

Диспетчер системных сервисов определяет, является ли корректным индексный номер функции «родного» API. Индексный номер, переданный из пользовательского режима, используется для входа в таблицу распределения системных сервисов (KeServiceDescriptorTable). Каждый элемент этой таблицы включает указатель на соответствующий системный сервис и число параметров. Диспетчер системных сервисов берет параметры, переданные в стеке пользовательского режима (указатель стека находится в регистре edx) и помещает их в стек ядра, а затем передает управление для обработки запроса соответствующему системному сервису, который исполняется в режиме ядра и находится в ntoskrnl.exe.

65

Введенные в Windows NT версии 4.0 интерфейсы API Win32 управления окнами и рисованием управляются тем же диспетчером системных сервисов, но индексные номера Win32 указывают на то, что должен использоваться второй массив указателей системных сервисов. Указатели во втором массиве ссылаются на функции в win32k.sys.

Большинство системных сервисов должно выполнять проверку параметров, переданных им из пользовательского режима. Некоторые параметры являются указателями, а передача неверного указателя в режим ядра без предварительной проверки может привести к краху системы. Проверка параметров обязательна, но оказалось, что некоторые функции «родного» API (13 системных сервисов из win32k.sys) не выполняют обстоятельную проверку, что приводит в некоторых случаях к падению системы. Microsoft закрыла эти дыры в Service Pack I. В дальнейшем оказалось, что при тестировании параметров, соответствующих граничным условиям, вызовы еще 40 функций «родного» API, из которых 25 из win32k.sys, вызвали падение системы. Эти дыры были закрыты в SP4.

После проверки параметров, системные сервисы обычно вызывают функции, реализуемые компонентами исполнительной системы: диспетчером процессов, диспетчером памяти, диспетчером ввода/вывода и средством локального вызова процедур.

Все функции прикладного уровня, вызывающие это прерывание, сосредоточены в модуле ntdll.dll и имеют в своем названии префикс Nt либо

Zw, например, NtCreateFile()/ZwCreateFile(). Точка входа для двух таких имен одна. Вызов многих функций различных подсистем рано или поздно приведет к вызову соответствующей функции из ntdll.dll. При этом не все, что есть в ntdll.dll вызывается из подсистемы Win32.

Вызов системных сервисов возможен не только из прикладной программы, но и из ядра ОС, то есть из драйверов. Имена соответствующих функций ядра имеют префикс либо Zw, либо Nt (ZwCreateFile(), NtCreateFile()). Функции с префиксом Zw обращаются к сервисам посредством прерывания 2Е, тогда как функции с префиксом Nt являются собственно точками входа стандартных системных сервисов. Из этого следует, что число функций с префиксом Nt неизменно, а множество этих функций является подмножеством функций с префиксом Zw. Не путайте функции с префиксами Nt и Zw режима ядра и пользовательского режима. В режиме ядра они находятся в модуле ntoskrnl.exe (микроядро), в пользовательском режиме - в модуле ntdll.dll («родной» API, вызывают int 2E).

3.5.5. Неотъемлемые подсистемы

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

66

определенные для локального компьютера. Некоторые компоненты сетевого обеспечения Windows NT также реализованы как защищенные подсистемы, например, сервис рабочей станции реализует API для доступа и управления

сетевым редиректором.

3.5.6. Исполнительная система (The Executive)

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

Подсистемы Исполнительной Системы NT составляют наиболее существенный слой в режиме ядра, и они исполняют больщую часть функций, традиционно связанных с операционными системами. В Таблице 1 перечислены подсистемы Исполнительной Системы NT, и рис. 2 показывает их позицию в архитектуре NT. Эти подсистемы имеют разные обязанности и названия, так что Вы могли бы подумать, что они являются различными процессами. Например, когда программа типа Microsoft Word запрашивает обслуживание операционной системы типа распределения памяти, поток управления передается от программы Word в режим ядра через «родной» интерфейс системных сервисов NT. Тогда обработчик системного сервиса для распределения памяти напрямую вызывает соответствующую функцию Диспетчера Виртуальной Памяти. Запрошенное распределение памяти выполняется в контексте процесса Word, который запросил его, то есть нет никакого переключения контекста к другому системному процессу.

Драйверы Windows NT, включая драйверы устройств, промежуточные драйверы и драйверы файловых систем, после загрузки рассматриваются как часть исполнительной системы, а точнее как часть системы ввода/вывода.

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

Префиксы в названиях внутренних процедур соответствуют названиям компонентов исполнительной системы, обеспечивающих эти процедуры, например: «Ех» для функций, реализуемых компонентом Ex(ecutive) Support

67

— исполнительным модулем, Ps - диспетчером процессов, Ob — диспетчером объектов, Iо — диспетчером ввода/ вывода, Mm - диспетчером памяти, Сс - диспетчером кэша, Se - монитором безопасности.

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

Исполнительный модуль (executive support) – это особый компонент исполнительной системы ОС Windows NT, давший свое имя целой группе модулей операционной системы. Он отвечает за многие разнообразные функции, включая управление очередями (их блокирование), управление резидентной и нерезидентной системной областью памяти, увеличение/уменьшение значения глобальной переменной и др. Этот компонент обеспечивает также системные рабочие потоки, которые драйверы NT, особенно драйверы файловых систем, используют для выполнения необходимой работы.

Таблица 1. Подсистемы Исполнительной Системы NT и их предназначение

Подсистема исполнительной системы

 

 

Предназначение

 

Диспетчер Объектов (Object Manager)

Управляет ресурсами и реализует глобальное

 

пространство имен

 

 

Монитор Безопасности (Secu rity

Реализует модель безопасности NT на основе

Reference Monitor)

Идентификаторов Безопасности

(SID) и

 

Списков

Разграничительного

Контроля

 

Доступа (Discretionary Access Control List -

 

DACL)

 

 

 

 

Диспетчер Виртуальной Памяти (Virtual

Определяет адресное пространство процесса и

Memory Manager)

распределяет физическую память

 

Диспетчер Ввода/Вывода (I/O Manager)

Служит

интерфейсом между прикладными

 

программами и драйверами устройств

Диспетчер Кэша (Cache Manager)

Реализует глобальный файловый кэш

 

Средство Вызова Локальных Процедур

Обеспечивает

эффективную

межпроцессную

(Local Procedure Call (LPC) Facility)

коммуникацию

 

 

Диспетчер Конфигурации (Configuration

Управляет Реестром

 

 

Manager)

 

 

 

 

 

Диспетчер Процессов (Process Structure)

Экспортирует программные интерфейсы (API)

 

процессов и потоков

 

 

Поддержка среды Win32 (Win32

Реализует

 

Win32-функции

обмена

Support)

сообщениями и рисования (новые для NT 4.0)

Диспетчер Plug-and-Play (Plug-and-Play

Уведомляет драйверы устройств о включении

Manager)

или отключении устройства (новые для NT 5.0)

Диспетчер Электропитания (Power

Контролирует

состояние

электропитания

 

68

 

 

 

 

Manager)

компьютера (появился в NT 5.0)

Исполнительный модуль (Executive

Реализует управление очередями, системной

Support)

областью памяти, обеспечивает системные

 

рабочие потоки

Ниже перечислены компоненты исполнительной системы и их области ответственности.

Справочный монитор защиты (security reference monitor) отвечает за реализацию единой политики защиты на локальном компьютере. Оберегает ресурсы ОС, обеспечивая защиту объектов и аудит во время выполнения доступа к ним. Справочный монитор защиты использует для реализации единой системной политики безопасности списки контроля доступа (Access Control Lists, ACL), содержащие информацию о том, какие процессы имеют доступ к конкретному объекту и какие действия они могут над ним выполнять, и идентификаторы безопасности (Security Identifiers, SI). Он поддерживает уникальный для каждого потока профиль защиты, и проверку полномочий при попытке доступа к объектам. При открытии потоком описателя объекта активизируется подсистема защиты, сверяя ACL, связанный с объектом, с запрашиваемыми потоком действиями над этим объектом. Другим аспектом справочного монитора защиты является поддержка имперсонации (impersonation), которая позволяет одному потоку передать другому право использования своих атрибутов защиты. Это наиболее часто используется во время клиент-серверных операций, когда сервер использует атрибуты защиты клиента.

Диспетчер процессов (process manager или process structure) отвечает за создание и уничтожение процессов и потоков. Диспетчер процессов взаимодействует с диспетчером объектов для построения объекта-процесса и объекта-потока, а также взаимодействует с диспетчером памяти для выделения виртуального адресного пространства для процесса.

Средство локального вызова процедур (LPC) организует взаимодействие между клиентскими и серверными процессами, расположенными на одном и том же компьютере. LPC - это гибкая, оптимизированная версия удаленного вызова процедур (Remote Procedure Call, RPC), средства коммуникации между клиентскими и серверными процессами по сети. LPC поддерживает передачу данных между клиентом и сервером посредством использования объектов-портов, которые в качестве атрибутов имеют указатель на очередь сообщений и описатель секции разделяемой памяти. API, необходимый для доступа к LPC, не документирован. Интересно, что запрос RPC между приложениями, исполняющимися на одном компьютере, в действительности будет использовать механизм LPC.

Диспетчер памяти и диспетчер кэша (memory manager и cache manager). Диспетчер памяти и диспетчер кэша вместе формируют подсистему виртуальной памяти. Эта подсистема виртуальной памяти

69

реализует 32-разрядную страничную организацию памяти. Подсистема виртуальной памяти поддерживает совместное использование страниц физической памяти между несколькими процессами. Она поддерживает разделяемый сегмент памяти «только для чтения», а также «чтения-записи». Подсистема виртуальной памяти отвечает за реализацию механизма кэширования данных. Данные файла могут быть доступны через диспетчера ввода/вывода при использовании стандартных операций чтения и записи в файл, или через диспетчер памяти посредством проецирования данных файла напрямую в виртуальное пространство процесса. Чтобы гарантировать согласованность между этими двумя методами доступа, диспетчер кэша поддерживает единый глобальный общий кэш. Этот единый кэш используется для кэширования, как страниц процесса, так и страниц файла. Диспетчер памяти реализует схему управления памятью, которая предоставляет каждому процессу 4-гигабайтное собственное виртуальное адресное пространство и защищает его от других процессов. Диспетчер памяти реализует механизм подкачки страниц (paging) - перенос страниц физической памяти на диск и обратно. Диспетчер кэша повышает производительность файлового ввода/вывода, сохраняя информацию, считанную с диска последней, в системной памяти. Диспетчер кэша использует средство подкачки страниц диспетчера памяти для автоматической записи информации на диск в фоновом режиме.

Поддержка среды Win32 (Win32 support) включает диспетчера окон

(window manager), интерфейс графических устройств (Graphic Device Interface, GDI), драйверы графических устройств (graphic device drivers). Эти компоненты поддержки среды Win32 были перенесены в режим ядра в версии NT 4.0, а ранее они принадлежали подсистеме среды Win32. Эти средства взаимодействуют между GUI - приложениями и графическими устройствами.

Диспетчер конфигурации (configuration manager) определяет тип объект-ключ (key object) и манипулирует этими объектами. Тип объект-ключ представляет элемент реестра Windows NT. Каждый экземпляр типа объектключ представляет либо некоторый узел реестра, являющийся частью пути к множеству подключей, либо он содержит именованные поля с соответствующими значениями.

3.5.7. Диспетчер Объектов

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

Диспетчером объектов нельзя манипулировать из пользовательского режима напрямую, а его пространство имен является невидимым.

70

В таблице 2 приведен список объектов, определенных в NT 4.0, и подсистем исполнительной системы, которые управляют ими.

Диспетчер Объектов исполняет обязанности:

Поддержание единого пространства имен для всех именованных объектов системы.

Отвечает за создание, удаление и управление именованными и неименованными объектами ОС, представляющими системные ресурсы.

Обязанности по управлению объектами включают в себя

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

Таблица 2.

Типы объектов и подсистемы исполнительной системы, которые ими управляют

Тип Объекта

Какой ресурс представляет

Подсистема

Тип Объекта (Object type)

Объект типа объекта

Диспетчер объектов

Директория (Directory)

Пространство имен объектов

Диспетчер объектов

Символическая Связь

Пространство имен объектов

Диспетчер объектов

(SymbolicLink)

 

 

Событие (Event)

Примитив синхронизации

Исполнительный модуль

Пара Событий (Event-

Примитив синхронизации

Исполнительный модуль

Pair)

 

 

Мутант (Mutant)

Примитив синхронизации

Исполнительный модуль

Таймер (Timer)

Таймерное предупреждение

Исполнительный модуль

Семафор (Semaphore)

Примитив синхронизации

Исполнительный модуль

Станция Windows

Интерактивный вход в

Поддержка среды Win32

(Windows Station)

систему

 

Рабочий Стол (Desktop)

Рабочий Стол Windows

Поддержка среды Win32

Файл (File)

Отслеживание открытых

Диспетчер ввода/вывода

 

файлов

 

Завершение ввода/вывода

Отслеживание завершения

Диспетчер ввода/вывода

(I/O Completion)

ввода/вывода

 

Адаптер (Adapter)

Ресурс прямого Доступа к

Диспетчер ввода/вывода

 

Памяти (DMA)

 

Контроллер (Controller)

Контроллер DMA

Диспетчер ввода/вывода

Устройство (Device)

Логическое или физическое

Диспетчер ввода/вывода

 

устройство

 

Драйвер (Driver)

Драйвер устройства

Диспетчер ввода/вывода

Ключ (Key)

Вход в реестре

Диспетчер конфигурации

Порт (Port)

Канал связи

Средство LPC

Секция (Section)

Отображение в памяти

Диспетчер памяти

Процесс (Process)

Активный процесс

Диспетчер процессов

Поток (Thread)

Активный поток

Диспетчер процессов

Маркер (Token)

Профиль безопасности про-

Диспетчер процессов

 

71

 

 

цесса

 

Профиль (Profile)

Измерение

Ядро

 

производительности

 

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

Для обеспечения идентификации объектов, Диспетчер Объектов реализует пространство имен NT. Все разделяемые ресурсы в NT имеют имена, располагающиеся в этом пространстве имен. Например, когда программа открывает файл, Диспетчер Объектов анализирует имя файла для выявления драйвера файловой системы (FSD) для диска, который содержит файл. Точно так же, когда прикладная программа открывает ключ Реестра, Диспетчер Объектов по имени ключа Реестра определяет, что должен быть вызван Диспетчер Конфигурации.

Рассмотрим следующий пример:

Прикладная программа вызывает функцию Win32 - CreateFile() с именем файла «c:\mydir\file.txt». При этом происходят следующие действия:

1.Вызов системного сервиса NtCreateFile(). В качестве имени ему будет передано «\??\c:\mydir\file.txt». Такой формат имени является «родным» для NT, точнее - это формат имени в пространстве имен Диспетчера Объектов.

2.Диспетчер Объектов начнет последовательно разбирать переданное имя. Первым будет разобран элемент «\??». Корень пространства имен содержит объект с таким именем. Тип объекта - «Directory». В этой директории будет произведен поиск объекта с именем «с:». Это - «SymbolicLink» - ссылка на имя «\Device\Harddisk0\ Partition 1».

Дальнейшему разбору будет подвергнуто имя

«\Device\Harddisk0\Partitionl\ mydir\file.txt». Разбор будет закончен при достижении объекта, не являющегося директорией или символической связью. Таким объектом будет «Partition 1», имеющий тип «Device». Этому объекту для дальнейшей обработки будет передано имя

«\mydir\file.txt».

3.5.8. Система ввода/вывода

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

72

Между сервисами пользовательского режима и аппаратурой ввода/вывода располагается несколько отдельных системных компонентов, включая законченные файловые системы, многочисленные драйверы устройств и драйверы сетевых транспортов.

Система ввода/вывода управляется пакетами запроса ввода/вывода (I/O Request Packet, IRP). Каждый запрос ввода/вывода представляется в виде пакета IRP во время его перехода от одной компоненты системы ввода/вывода к другой. IRP - это структура данных, управляющая обработкой операции ввода/вывода на каждой стадии ее выполнения.

Всистему ввода/вывода входят следующие компоненты:

1.Диспетчер ввода/вывода (I/O manager). Реализует средства ввода/вывода, не зависящие от типа устройства, и устанавливает модель для ввода/вывода исполнительной системы. Диспетчер ввода/вывода осуществляет создание, чтение, запись, установку и получение информации, и многие другие операции над файловыми объектами. Диспетчер ввода/вывода реализует асинхронную подсистему ввода/вывода, основанную на передаче пакетов запроса ввода/вывода (I/O Request Packet, IRP). Диспетчер ввода/ вывода также отвечает за поддержку и обеспечение операционной среды для драйверов.

2.Файловые системы. Драйверы, принимающие запросы файлового ввода/вывода и транслирующие их в запросы, привязанные к конкретному устройству. Сюда же входят сетевые файловые системы, состоящие из двух компонентов: сетевого редиректора (network redirector), реализуемого как драйвер файловой системы и передающего удаленные запросы ввода/вывода на машины в сети, и сетевого сервера (network server), являющегося обычным драйвером, принимающим и обрабатывающим такие запросы.

3.Сетевые драйверы, которые могут загружаться в ОС и рассматриваться как часть системы ввода/вывода.

4.Драйверы устройств. Низкоуровневые драйверы, напрямую

работающие с оборудованием.

Диспетчер ввода/вывода (I/O manager) определяет порядок, по которому запросы ввода/вывода доставляются драйверам. В обязанности диспетчера входит:

1.Получение запроса на ввод/вывод и создание пакета IRP.

2.Передача IRP соответствующему драйверу. Драйвер, получив IRP, выполняет указанную в нем операцию ввода/вывода, и, либо возвращает его диспетчеру ввода/ вывода для завершения обработки, либо передает другому драйверу для продолжения операции ввода/вывода.

3.Сопровождение IRP по стеку драйверов.

4.Завершение IRP по окончании операции ввода/вывода и возвращение результатов обработки инициатору запроса ввода/вывода.

5.Также диспетчер ввода/вывода реализует общие процедуры, к которым обращаются драйверы во время обработки ввода/вывода, и предоставляет

73

системные сервисы, позволяющие защищенным подсистемам реализовать свои API ввода/вывода.

3.5.9. Ядро

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

Драйверы NT и компоненты исполнительной системы вызывают внутренние процедуры, обеспечиваемые ядром, названия которых начинаются с префикса Ke(rnel) -ядро.

Ядро экспортирует два основных типа объектов ядра: объекты-

диспетчеры (dispatcher objects) и управляющие объекты (control objects).

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

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

Управляющие объекты используются для управления системными операциями. Управляющими объектами являются: АРС-объект (Asynchronous Procedure Call), содержащий адрес процедуры асинхронного вызова и указатель на объект-поток, который будет исполнять данный вызов; DPC-объект (Deferred Procedure Call), содержащий адрес процедуры отложенного вызова; объект-прерывание, отвечающий за установление соответствия между определенным вектором прерывания и процедурой обработки прерывания (Interrupt Service Routine, ISR) драйвера устройства.

3.5.10. Слой абстрагирования от оборудования

Слой абстрагирования от оборудования (Hardware Abstraction Layer, HAL) является относительно тонким слоем кода, взаимодействующим напрямую с процессором, шинами и другим оборудованием, и отвечает за обеспечение стандартного интерфейса к платформенно-зависимым ресурсам для ядра, диспетчера ввода/вывода и драйверов устройств.

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

74

кода, зависящего от процессора или платформы, вызывая процедуры ядра и

HAL.

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

Внутренние процедуры, обеспечиваемые слоем абстрагирования от оборудования, начинаются с префикса Hal.

3.6. Система приоритетов

Windows NT имеет двухуровневую модель приоритетов (см. рис. 4).

Приоритеты высшего уровня (уровни запросов прерываний - Interrupt ReQuest Level - IRQL) управляются аппаратными и программными прерываниями.

Приоритеты низшего уровня (приоритеты планирования) управляются планировщиком.

Рис. 4. Система приоритетов

3.6.1. Уровни запросов прерываний (IRQL)

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

75

Наивысшие из уровней IRQL - уровни запросов прерываний устройств

(Device Interrupt Request Levels - DIRQLs). Это уровни IRQL,

соответствующие аппаратным прерываниям. Другие уровни IRQL реализованы программно.

Уровень IRQL прерывания контролирует то, когда прерывание может быть обработано. Прерывание никогда не будет обработано, пока процессор занят обработкой прерывания более высокого уровня. Уровни IRQL располагаются в порядке убывания от HIGH_LEVEL до PASSIVE_LEVEL.. Уровни в подмножестве от HIGH_LEVEL до APC_LEVEL называют повышенными (elevated IRQLs). DISPATCH_LEVEL и APC_LEVEL

реализованы программно.

Модель приоритетов низшего уровня управляет исполнением потоков, выполняющихся на уровне IRQL PASSIVEJLEVEL. Этот уровень контролируется планировщиком (scheduler) (его также называют диспетчером - dispatcher), который планирует исполнение потоков (но не процессов). Планировщик планирует исполнение прикладных и системных потоков, используя для наблюдения и контроля исполнения потоков системные часы.

3.6.2. Приоритеты планирования

Каждому потоку назначается приоритет планирования. Имеется 32 уровня приоритетов планирования со значениями 0-31. Низший приоритет планирования со значением 0 зарезервирован для потока обнуления страниц (Zero Page Thread), который выполняется в случае, когда больше нечего исполнять. Этот поток является компонентом диспетчера памяти, и его работа состоит в обнулении страниц из списка свободных страниц. Когда диспетчер памяти получает запрос на выдачу обнуленной страницы памяти, диспетчер памяти вначале попробует выделить страницу, обнуленную потоком обнуления страниц, и только если таких страниц нет, он потратит время на обнуление.

3.6.3. Динамические приоритеты и приоритеты реального времени

Приоритеты планирования делятся на две главных группы:

динамические приоритеты (dynamic priorities);

приоритеты реального времени (real-time priorities).

Динамические приоритеты имеют значения в диапазоне 1-15. Они названы динамическими, потому что ОС может динамически изменять приоритет потока в этом диапазоне.

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

приоритетами реального времени.

76

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

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

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

Кмеханизму повышения приоритетов применимы следующие утверждения:

1.Система никогда не меняет приоритет потоков из диапазона приоритетов реального времени.

2.Повышение приоритета не может вызвать его переход в диапазон приоритетов реального времени, то есть превысить значение 15.

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

4.Операционная система не может снизить приоритет ниже уровня базового приоритета.

5.Повышение приоритета может происходить несколько раз подряд.

3.6.4. Базовый приоритет. Класс приоритета и относительный приоритет

Ядро NT предоставляет функции для назначения потоку любого из 31 уровня приоритетов (кроме зарезервированного нулевого уровня). Программно назначенное потоку значение приоритета называют базовым приоритетом. Подсистема Win32 не позволяет непосредственно назначать потоку базовое значение приоритета. Вместо этого используется комбинация двух значений:

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

Относительное значение приоритета потока внутри класса приоритета процесса (относительный приоритет).

На рис. 4 показаны группы взаимосвязанных приоритетов.

Максимальный (31) и минимальный (1) из возможных приоритетов определяются в Win32 как THREAD_ PRIORITY_TIME_CRITICAL и THREAD_PRIORITY_IDLE соответственно.

77

В таблице 3 приведены все возможные классы приоритетов. По умолчанию, процесс имеет класс NORMAL_PRIORITY_CLASS, если при вызове функции CreateProcess() не было указано другого. Прикладная программа может получать/изменять класс приоритета процесса с помощью функций Win32-API GetPriotityClass() / SetPriorityClass() .

 

Классы приоритетов

Таблица 3.

 

 

 

Класс приоритета

Базовый приоритет

Примечание

 

REALTIME PRIORITY

24

 

 

CLASS

 

 

 

HIGH PRIORITY CLASS

13

 

 

ABOVE NORMAL

10

Только Win 2000

 

PRIORITY CLASS

 

 

 

NORMAL PRIORITY

8

 

 

CLASS

 

 

 

BELOW NORMAL

6

Только Win 2000

 

PRIORITY CLASS

 

 

 

IDLE PRIORITY CLASS

4

 

 

Поток может иметь одно из 7 значений (см. таблицу 4): 5 значений, относительных внутри каждого класса приоритетов, и 2 значения, относительных внутри диапазонов динамического приоритета и приоритетов реального времени.

Таблица 4.

Относительный приоритет

Относительный приоритет

15 (31)

THREAD PRIORITY TIME CRITICAL

THREAD PRIORITY HIGHEST

+2

THREAD PRIORITY ABOVE NORMAL

+1

THREAD PRIORITY NORMAL

+0

THREAD PRIORITY BELOW NORMAL

-1

THREAD PRIORITY LOWEST

-2

THREAD PRIORITY IDLE

1 (16)

Два значения, обозначающие минимальное и максимальное значение приоритета внутри диапазона динамических приоритетов и приоритетов реального времени - это THREAD_PRIORITY_IDLE и THREAD_PRIORITY_ TIME_CRITICAL. Для диапазона динамических приоритетов они обозначают базовые приоритеты 1 и 15, а для диапазона приоритетов реального времени - 16 и 31 соответственно.

Любой поток всегда создается с относительным приоритетом THREAD_ PRJORITY_NORMAL. Соответствующие значения базового приоритета в зависимости от класса приоритета указаны в таблице 3.

78

Относительный приоритет потока может быть получен/изменен с помощью WIN32-функций GetThreadPriority()/SetThreadPriority().

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

3.7. Организация памяти в защищенном режиме работы процессора

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

сегментация;

разбиение на страницы.

ОС NT в различной мере использует оба этих механизма.

Как уже говорилось, в защищенном режиме может быть определено до 213 (8192) сегментов. Каждый сегмент может иметь размер до 4 Гб (232 байт). Таким образом, максимальный размер виртуального адресного пространства составляет 64 Тб.

Каждый сегмент описывается 8-байтной структурой данных - дескриптором сегмента. Дескрипторы находятся в специальной таблице дескрипторов (GDT, см. рис. 5). Для указания конкретного сегмента используется 16-битный селектор. Он является индексом внутри таблицы дескрипторов. Младшие 2 бита селектора определяют номер привилегированного режима (DPL - уровень привилегий дескриптора), который может воспользоваться данным селектором для доступа к дескриптору, третий бит определяет локальную/глобальную дескрипторную таблицу, (отсюда максимальное число селекторов 213).

ОС NT, хотя и использует селекторы, но использует их в минимальной степени. NT реализует плоскую 32-разрядную модель памяти с размером линейного адресного пространства 4 Гб (232 байт). Это сделано следующим образом:

79

Рис. 5

В NT определено 11 селекторов, из которых нас будут интересовать всего 4:

Селектор Hex

Назначение

База

Предел

 

DPL

Тип

(bin]

 

 

 

 

 

 

08 (001000)

Code32

00000000

FFFFFFFF

0

 

RE

10( )

Data32

00000000

FFFFFFFF

0

 

RW

lb (011011)

Code32

00000000

FFFFFFFF

3

 

RE

23 (100011)

Data32

00000000

FFFFFFFF

3

 

RW

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

Первые два селектора имеют DPL=0 и используются драйверами и системными компонентами для доступа к системному коду, данным и стеку. Вторые два селектора используются кодом пользовательского режима для доступа к коду, данным и стеку пользовательского режима. Эти селекторы являются константами для ОС NT.

Сегментное преобразование пары селектор:смещение дает 32-битный линейный адрес (лежащий в диапазоне 4 Гб линейного адресного пространства). При этом линейный адрес совпадает со значением смещения виртуального адреса. Фактически, при такой организации памяти виртуальный и линейный адреса совпадают.

Наличие поля тип, определяющего возможность чтения/записи/исполнения кода в соответствующем сегменте может навести на мысль, что именно на этом уровне производится защита памяти от нецелевого использования. Например, при работе прикладной программы в пользовательском режиме ее код находится в сегменте с селектором 1b. Для этого сегмента разрешены операции чтения и исполнения. Используя селектор 1b, программа не сможет модифицировать свой собственный код. Однако, как уже было сказано, для всех сегментов производится трансляция в одни и те же физические адреса. Поэтому при обращении к данным или

80

стеку (селектор 23) прикладная программа обнаружит свой код по тому же смещению, что и для селектора 1b, причем режим доступа к сегменту позволяет производить чтение/запись. (При этом важно помнить: одно и то же смещение в разных адресных пространствах указывает на разную физическую память.) Таким образом, способ использования сегментации в ОС NT не обеспечивает защиту кода от нецелевого использования.

Далее задействуется механизм страничной организации памяти и переключения контекста памяти.

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

1.страница всегда может быть прочитана из режима ядра;

2.на страницу может быть произведена запись из режима ядра, только если установлен бит разрешения записи;

3.страница может быть прочитана из пользовательского режима, только если установлен бит доступа к странице из пользовательского режима;

4.на страницу может быть произведена запись из пользовательского режима, если установлены оба бита (разрешение записи и доступ из пользовательского режима);

5.если страница может быть прочитана, она может быть исполнена. Страницы памяти с исполняемым кодом не будут иметь разрешения на

запись, если не предпринять никаких дополнительных действий. Поэтому при

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

Для упрощения организации памяти, для всех контекстов памяти NT осуществляет одинаковую трансляцию для некоторого диапазона виртуальных адресов. Таким образом, при переключении контекста памяти, то есть переходе на новую таблицу трансляции виртуального адреса в физический, некоторая часть элементов этой таблицы останется неизменной. Это нужно для того, чтобы ядро операционной системы (компоненты ОС и драйвера) всегда располагалось по фиксированным виртуальным адресам вне зависимости от текущего контекста памяти. Таким неизменяемым диапазоном адресов являются верхние 2 Гб памяти.

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

81

Соответственно, диапазон виртуальных адресов 2-4 Гб называют системным адресным пространством (system address space), а диапазон 0-2 Гб - пользовательским адресным пространством (user address space).

Во избежание путаницы между терминами адресное пространство процесса и пользовательское/системное адресное пространство, где это возможно, вместо термина адресное пространство процесса мы будем пользоваться термином контекст памяти.

При этом возможная путаница вполне допустима, так как с точки зрения прикладного программиста пользовательское адресное пространство - и есть текущий контекст памяти.

3.8. Управление памятью

Изначально Windows NT Workstation 3.51 представляла операционную си-стему сервера, приспособленную для функционирования на рабочей станции. Этим и обусловлена архитектура, в которой функции защиты прикладных программ и данных являются более приоритетными чем скорость и совместимость. Высокая надежность ОС обеспечивается ценой высоких системных затрат, поэтому для получения приемлемой производительности требуется соответственно более быстродейстующая ЭВМ. Высокая безопасность ОС NT достигается за счет отказа от совместимости с драйверами устройств реального режима. В среде ОС могут выполняться собственные 32 Win32 приложения, прикладные программы

Windows 95/98, Win 16 –приложения.

Схема распределения памяти ОС NT (Рис.4) отличается от Windows 95/98. Прикладным программам выделяется область от 64 Кб до 2 Гб. Прикладные программы изолированы друг от друга, хотя могут взаимодействовать через Clipboard и механизмы DDE и OLE.

В верхней части каждого 2-Гб блока прикладной программы размещен код, воспринимаемы прикладной программой как системные DLL кольца 3. На самом деле это заглушки, выполняющие перенаправление вызовов, называемые DLL клиентской стороны. При вызове большинства функций API из прикладной программы, библиотеки DLL клиентской стороны обращаются к локальным процедурам (Local Process Communication LPC),

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

Между 2 и 4 Гб расположены низкоуровненвые системные компоненты ОС NT кольца 0 – ядро, планировщик потоков, диспечер виртуальной памяти. Системные страницы в этой области наделены привелегиями супервизора, которые задаются физическими схемами кольцевой защиты процессора. Это делает низкоуровневый систмный код невидимым и

82

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

Для 16 разрядных программ ОС NT реализует сеансы Windows on Windows (WOW). OC Windows NT дает возможность выполнять 16-

разрядные приложения – индивидуально, в собственных пространствах памяти или в совместно разделяемом пространстве. Во всех случаях 16 и 32разрядные приложения могут взаимодействовать и независимо работь в общем или изолированном пространстве.

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

Рис. 4. Модель памяти Windows NT

83

5. Операционная система MS Windows 2000

Windows 2000 (W2k) – операционная система разработана компанией Microsoft и основанна на технологии Windows NT, что было отражено в первоначальном названии проекта W2k – Windows NT 5.0. NT (New Technology) была создана группой разработчиков под руководством Дэйва Катлера, ранее работавшего в DEC над проектом VMS (кстати, довольно часто используемая аббревиатура WNT получается из VMS сдвигом букв V, M, S по алфавиту на одну: V->W, M->N, S->T). Дэйв Катлер пришёл в Microsoft в 1988 году специально для работы над проектом NT. NT, в отличие от остальных OC Microsoft, в определенном смысле проект одного человека, и по мнению ряда независимых экспертов является наиболее завершенной ОС. Windows 2000 – полностью 32-разрядная ОС с приоритетной многозадачностью и улучшенной реализацией работы с памятью.

5.1. Основные отличительные характеристики ОС Windows 2000.

В основе проекта W2k лежат те же принципы, которые когда-то обеспечили успех NT:

1.Совместимость (Compatibility). Система имеет привычный интерфейс ОС семейства Windows , поддержку файловых систем NTFS5, NTFS4, FAT16 и FAT32. Большинство приложений, написанных под MSDOS, W9x, NT4, а также некоторые программы под OS/2 и POSIX запускаются и успешно функционируют. При проектировании NT учитывалась возможность работы системы в различных сетевых средах, поэтому в поставку входят средства для работы в Unix- и Novell-сетях.

2.Переносимость (Portability). Система работает на различных процессорах семейства x86 производства Intel и AMD. Реализация поддержки процессоров других архитектур возможна.

3.Масштабируемость (Scalability). В W2k реализована поддержка технологий SMP и COW (Cluster Of Workstations). Количество процессоров при использовании SMP может достигать 32 (64).

4.Система безопасности (Security) полностью удовлетворяет спецификации C2 по терминологии АНБ США. Правда, для полной поддержки потребуется дополнительное оборудование, которое также удовлетворяет этой спецификации.

5.Распределённая обработка (Distributed processing). W2k имеет встроенные в систему сетевые возможности, что обеспечивает возможность связи с различными типами компьютеров-хостов благодаря наличию разнообразных транспортных протоколов и технологии "клиент-сервер".

84

6.Надёжность и отказоустойчивость (Reliability and robustness).

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

7.Локализация (Localization). Система предоставляет возможности для работы во многих странах мира на национальных языках, что достигается применением стандарта ISO Unicode.

8.Расширяемость (Extensibility). Благодаря модульному построению системы становится возможно добавление новых модулей на различные архитектурные уровни ОС.

5.2. Основные типы поставки ОС Windows 2000

Всего имеется четыре вида поставки W2k: Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server и Windows 2000 DataCenter. Отличаются они друг от друга, во-первых, количеством служб и программ входящих в поставку, во-вторых, степенью поддержки аппаратного обеспечения. Например, W2k Pro не держит больше 2 процессоров, W2k Server держит уже 4 процессора, W2k AdvServer – 8 процессоров, а W2k DataCenter – 64. Кроме этого, они сильно различаются по цене.

 

 

Таблица 3.1

Основные типы поставки ОС Windows 2000

 

 

 

Продукт

Описание

Возможности

 

Базовый сервер для деловых

Active Directory

Windows 2000 Server

приложений имеет

Иснтрументы

 

универсальные средства,

администрирования Windows

 

необходимые для рабочих групп

Безопасность Kerberos и PKI

 

и размещения файловых служб,

Службы терминалов

 

серверов печати и приложений,

Службы компонентов COM+

 

коммуникационных и веб-

Улучшенные Интернет- и веб-

 

серверов в масштабах

службы.

 

подразделения

До 4 Гбайт физической памяти

 

 

SMP до 4 процессоров

 

Более мощный сервер среднего

Все возможности Windows

Windows 2000

уровня, имеющий все

2000 Server

Advanced Server

возможности Windows 2000

Балансировка сетевой нагрузки

 

Server и дополнительные

Кластеризация для повышения

 

средства для поддержания

отказоустойчивости

 

высокой надежности и

приложений

 

85

 

 

масштабируемости,

Балансировка нагрузки на

 

необходимых для предприятия

компоненты

 

или крупного подразделения

До 8 Гбайт физической памяти

 

 

SMP до 8 процессоров

 

Самая мощная и функционально

Все возможности Windows

Windows 2000

полная серверная система из

2000 Advanced Server

Datacenter Server

предлагаемых Microsoft для

До 64 Гбайт физической памяти

 

крупных корпаративных

SMP до 32 процессоров

 

решений

 

 

 

 

Таблица 3.2 Технические характеристики основных типов ОС Windows 2000

Windows 2000

Professional

Server

Advanced Server

Datacenter Sr

 

 

 

 

Крупные

 

Настольные

Файл-сервер,

Бизнес-

критически

Область

важные

компьютеры,

сервер печати,

приложения,

приложения:

применения

переносные

локальная сеть,

электронная

OLTP,

 

компьютеры

поддержка сети

коммерция

хранилища

 

 

 

 

данных, ASP и

 

 

 

 

ISP

Число процессоров,

 

 

 

 

поддерживаемых

2

4

8

32

системой

 

 

 

 

Поддерживаемый

4

4

8

64

объем памяти, Гбайт

 

 

 

 

Каскадное

 

 

 

Переключение при

переключение

 

 

 

сбое в кластере с

при сбое в

 

 

 

кластере с

Кластеризация

Отсутствует

Отсутствует

двумя узлами:

четырьмя

балансировка

 

 

 

узлами:

 

 

 

нагрузки для 32

 

 

 

балансировка

 

 

 

узлов

 

 

 

нагрузки для 32

 

 

 

 

 

 

 

 

узлов

 

Pentium-

Pentium-

Pentium-

 

Минимальные

совместимый

совместимый

совместимый

 

процессор 133 МГц,

процессор 200

процессор 200

Будет

требования

64 Мбайт

МГц, 256 Мбайт

МГц, 256 Мбайт

объявлено

к компьютеру

оперативной памяти,

оперативной

оперативной

позднее

 

1 Гбайт места на

памяти, 1 Гбайт

памяти, 1 Гбайт

 

 

диске

места на диске

места на диске

 

 

 

 

 

Будет

Дата выпуска

17 февраля 2000 г.

17 февраля 2000 г.

17 февраля 2000 г.

объявлено

 

 

 

 

позднее

5.2.1. Windows 2000 Professional

Система Windows 2000 Professional предназначена для настольных и мобильных компьютеров в организации любого масштаба и должна заменить Windows 95/98 в качестве стандартной платформы для деловых приложений. В процессе проектирования Windows 2000 Professional преследовались следующие цели:

86

Упростить работу с системой (для этого используется привычный, но существенно модернизированный интерфейс Windows, в который интегрированы новые возможности)

Сохранить традиционные достоинства систем Windows NT (надежность производительность и безопасность)

Перенести в систему лучшие качества Windows 98 (в том числе обеспечить поддержку большого количества устройств и технологию

Plug and Play)

Создать легко конфигурируемую настольную систему, позволившую снизить стоимоть владения (Total Cost of Ownership, TCO) (для этого обеспечивается возможность централизованного управления системой и приложениями, а так же удаленная инсталяция системы)

5.2.2. Windows 2000 Server

Windows 2000 Server – многофункциональная операционная система, обеспечивающая функции сервера файлов и печати, сервера приложений, веб-сервера и коммуникационного сервера. Новая система по сравнению с предыдущими обеспечивает большую надежность, быстродействие и легкость управления. Что еще важнее – в Windows 2000 Server имеется большой набор распределенных служб, построенных на базе Active Directory

– многоцелевого, масштабируемого каталога, созданного с использование Интернет-технологий и полностью интегрированного с системой. Active Directory значительно упрощает администрирование систем и поиск ресурсов в корпаративной сети. Многочисленные Интернет-службы, входящие в состав Windows 2000 Server, позволяют организациям широко использовать Интернет-технологии – создавать сложные веб-приложения и службы распространения потоковой информации (аудио, видео и т.п), а так же строить интрасети на базе Windows 2000 Server.

5.2.3. Windows 2000 Advanced Server

Windows 2000 Advanced Server, более мощная по сравнению с Windows 2000 Server серверная сетевая операционная система, обеспечивает возможность создания высоконадежных, масштабируемых кластерных систем. Эта система является эффективным решением для построения баз данных с высокой интенсивностью запросов, обеспечивая высокую производительность, надежность и возможность распределения сетевой нагрузки компонентов системы. Среди ключевых особенностей Windows 2000 Advanced Server можно отметить следующие:

Корпоративная архитектура памяти (Enterprise Memory Architecture, EMA). Большая физическая память может существенно ускорить обработку транзакций на больших наборах данных, поскольку

87

приложения могут использовать адреса выше 4 Гбайт для кэширования данных в памяти.

Улучшенная масштабируемость многопроцессорной симметричной обработки (SMP). Модернизированный код, поддерживающий SMP, обеспечивает более линейное возрастание производительности при увеличении числа процессов.

Кластеризация с высокой готовностью. Служба кластеризации является штатным компонентом системы. Главное ее назначение – обеспечение очень высокой надежности приложений и данных. Подход Microsoft к кластеризации направлен не сколько на масштабируемость, сколько на обеспечение высокой готовности системы. Служба кластеризации в Windows 2000 Advanced Server позволяет объединить в кластер два сервера с общим числом процессов до 64. Необязательно, чтобы серверы были одной мощности или одинаковой конфигурации.

Высокопроизводительная сортировка. Windows 2000 Advanced Server

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

Следует отметить, что для использования Windows 2000 Advanced Server должны быть действительно веские причины – например, наличие многопроцессорной системы (более 4-х процессоров), кластера или необходимость распределеня сетевой нагрузки. Иначе использование этой системы совершенно нецелесообразно.

5.2.4. Windows 2000 Datacenter Server

Windows 2000 Datacenter Server – наиболее мощная и функционально полная серверная операционная система из всех, когда-либо предлагавшихся компанией Microsoft. Стандартными возможностями этой системы, как и Windows 2000 Advanced Server, являются службы кластеризации и балансировки нагрузки. Кроме того, система Windows 2000 Datacenter Server оптимизирована для больших хранилищ данных (data warehouse), эконометрического анализа, крупномасштабного научного и инженерного моделирования, оперативной обработки транзакций, многосерверных и больших программистских и веб-проектов.

5.3. Служба каталогов Active Directory

Пожалуй, наиболее ярким новшеством в Windows NT Server 5.0 стала новая служба каталогов, пришедшая на смену NTDS (NT Directory Services, службы каталога NT). Возможности последней до сих пор сдерживали распространение Windows NT в крупных корпоративных сетях. Служба

88

каталогов Active Directory позволяет хранить информацию обо всех объектах сети в виде иерархичной структуры и предоставляет администраторам быстрый поиск и доступ к ней. Active Directory обеспечивает:

однократную регистрацию в сети;

единую точку администрирования всех объектов в сети;

выполнение запросов по любому атрибуту любого объекта;

тиражируемость, разделяемость, иерархичность и расширяемость каталогов.

Средство миграции каталогов Microsoft Directory Service Migration Tool

позволяет обнаруживать ресурсы Netware, моделировать их в режиме «офлайн», а затем перемещать в Active Directory. К возможностям этой программы относятся:

обнаружение всех свойств пользователей и групп как в байндери, так и в

NDS;

рудиментарная миграция файлов;

экспорт в Active Directory.

Впредыдущих версиях Windows NT служба каталогов называлась NTDS. Она почти идеально подходила для небольших и средних организаций, где число хранимых объектов не превышало 100 000. Однако в более крупных компаниях пользователи сталкивались либо с затруднениями, либо с полной невозможностью ее применения. Причина этого в самом устройстве

NTDS.

5.3.1. Служба каталогов NTDS

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

У каждого домена свое уникальное имя. Оно может отражать либо его функциональное назначение (например, DEVELOPERS), либо географическое расположение (например, MOSCOW), либо что-то, понятное лишь одному автору этого имени (например, MASTER).

Каждый домен представляет собой замкнутое пространство со своими учетными записями пользователей и ресурсами. По умолчанию пользователи одного домена не имеют доступа к ресурсам другого домена. Для предоставления им такой возможности между доменами устанавливаются доверительные отношения. Эти отношения могут быть как односторонними (например, домен А доверяет домену Б, но не наоборот), так и двусторонними (оба домена доверяют друг другу). Доверительные отношения не транзитивны, иными словами, если домены А и В доверяют домену Б, то это не означает по умолчанию, что А и В доверяют друг другу. При организации корпоративных сетей используются четыре модели доверительных отношений: модель с одним доменом, модель с одним

89

мастер-доменом, модель с несколькими мастер-доменами и модель полностью доверительных отношений.

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

Еще одно слабое место NTDS — относительно невысокая емкость доменов. В одном домене может быть не более 40 000 учетных записей, что опять-таки мало пригодно для крупных организаций.

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

5.3.2. Active Directory

Служба каталогов Active Directory (AD) — сервис, интегрированный с Windows NT Server. Она обеспечивает иерархический вид сети, наращиваемость и расширяемость, а также функции распределенной безопасности. Эта служба легко интегрируется с Интернетом, позволяет использовать простые и интуитивно понятные имена объектов, пригодна для использования в организациях любого размера и легко масштабируется. Доступ к ней возможен с помощью таких знакомых инструментов, как программа просмотра ресурсов Интернета.

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

ВActive Directory концепция пространства имен Интернета объединена

ссистемными службами каталогов, что дает возможность единым образом управлять различными пространствами имен в гетерогенных средах корпоративных сетей. В качестве основного в AD используется легкий протокол доступа к каталогу LDAP (lightweight directory access protocol),

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

90

Каталог — поставщик услуг в системе

Active Directory не является каталогом Х.500, как иногда считают. Она использует лишь информационную модель Х.500 (без избыточности, присущей последнему), а в качестве протокола доступа — LDAP. В результате достигается так необходимая в гетерогенных системах высокая степень взаимодействия.

LDAP — стандартный протокол доступа к каталогам (RFC1777) — был разработан как альтернатива протоколу доступа Х.500. В Active Directory поддерживаются как LDAP v2, так и LDAP v3.

HTTP — стандартный протокол для отображения страниц Web. Active Directory дает возможность просмотреть любой объект в виде страницы Web. Расширения Internet Information Server, поставляемые совместно со службой каталога, преобразуют запросы к объектам каталога в страницы HTML.

Active Directory позволяет централизовано администрировать все ресурсы, любые произвольные объекты и сервисы: файлы, периферийные устройства, базы данных, подключения к Web, учетные записи и др. В качестве поискового сервиса используется DNS. Все объекты внутри домена объединяются в организационные единицы (OU), составляющие иерархичные структуры. В свою очередь, домены могут объединяться в

деревья.

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

Еще одна особенность Active Directory — поддержка нескольких хранилищ, в каждом из которых может находиться до 10 миллионов объектов. Понятно, что при таких возможностях эта служба каталогов прекрасно проявляет себя как в малых сетях, так и в больших системах.

5.3.3. Базовые термины и концепции

91

Давайте, прежде чем перейти к устройствам и особенностям службы каталогов Active Directory, остановимся на некоторых базовых терминах и концепциях. Возможно, какие-то из них покажутся Вам знакомыми.

Сфера влияния

Сфера влияния службы каталогов велика: любые объекты (пользователи, файлы, принтеры и др.), серверы в сети, домены и даже глобальные сети. А раз так, напрашивается вывод: возможности такой службы каталогов, как AD, практически безграничны, что делает ее полезной на отдельном компьютере, в большой сети, и в нескольких сетях.

Пространство имен

Как и любой каталог, Active Directory представляет собой некоторое пространство имен, то есть некоторую область, в которой данное имя может быть разрешено. Под разрешением имен понимается процесс, позволяющий сопоставить имя с объектом, ему соответствующим, или с информацией о таком объекте. К примеру, в файловой системе имя файла разрешается в расположение файла на диске.

Объект

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

Контейнер

Контейнер – это объект каталога, который может содержать в себе другие объекты (как, например, папка –это контейнер для документов, а шкаф – контейнер для папок). Контейнер каталога является контейнером объектов каталога.

Дерево Деревом называется иерархическая структура из объектов. Объекты,

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

На рисунке внешний вид дерева показывает взаимосвязи между объектами.

92

Имя

Имена используются для идентификации объектов в Active Directory. Существует два вида имен: отличительное имя DN (distinguished name) и

относительно отличительное имя RDN (relatively distinguished name).

Отличительное имя объекта содержит имя домена, в котором находится объект, а также полный путь к этому объекту в иерархии контейнера. Например, отличительное имя для идентификации пользователя Fyodor Zubanov в домене MicrosoftAO.RU будет выглядеть следующим образом:

/0=Internet/DC=RU/DC=MiсrosoftAO/CN=Users/CN=Fyodor Zubanov

Относительное отличительное имя объекта — часть отличительного имени, являющаяся атрибутом объекта. В приведенном примере таковым для объекта пользователя Fyodor Zubanov является

CN=Fyodor Zubanov, a RDN его родительского объекта — CN=Users.

Контексты имен и разделы

Active Directory состоит из одного или нескольких контекстов имен или разделов. Контекст имени — это любое смежное поддерево каталога. Контексты имен являются единицами тиражирования. Для любого одиночного сервера всегда есть три контекста имен:

схема;

конфигурация (топология тиражирования и относящиеся к нему метаданные);

один или несколько контекстов имен пользователей (поддеревья, содержащие действительные объекты каталога).

Домены Домены, как указывалось выше, являются организационными

единицами безопасности в сети. Active Directory состоит из одного или нескольких доменов. Рабочая станция является доменом. Домен может охватывать несколько физических точек. В каждом домене — своя политика безопасности; отношения домена с другими также индивидуальны. Домены, объединенные общей схемой, конфигурацией и глобальным каталогом, образуют дерево доменов. Несколько доменных деревьев могут быть объединены в лес.

Дерево доменов

93

Дерево доменов состоит из нескольких доменов, использующих одну и ту же схему и конфигурацию, и образующих единое пространство имен. Домены в дереве связаны между собой доверительными отношениями. Служба Каталогов Active Directory состоит из одного или нескольких

доменных деревьев.

Доверительные отношения Kerberos

Деревья можно рассматривать и с точки зрения доверительных отношений, и с точки зрения пространства имен. В Windows NT 5.0 доверительные отношения между доменами основываются на протоколе защиты Kerberos. Эти отношения транзитивны (сравните с описанием доверительных отношений для NTDS), то есть если домен А доверяет домену Б, а домен Б доверяет домену В, то домен А также доверяет домену В. На рисунке изображены домены с точки зрения доверия.

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

Взгляд на домены с точки зрения пространства имен

Строго говоря, в Active Directory нет ограничений на формирование пространства смежных имен из несмежных доменов и каталогов. И все же лучше, чтобы пространство имен было организовано по той же логике, что и структура.

Лес

94

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

Несколько деревьев в лесу Узлы

Узел — это место расположения в сети серверов с Active Directory, В качестве узлов могут выступать одна или несколько подсетей TCP/IP, что позволяет конфигурировать доступ к каталогу и тиражирование с учетом физической сети. Когда пользователь входит в сеть, сервер с Active Directory не надо долго искать — ведь он находится в том же самом узле и рабочей станции «известно», как добраться до него по TCP/IP.

Схема

Схема Active Directory представляет собой набор экземпляров классов объектов, хранящихся в каталоге. Это отличает ее от схем других каталогов, которые, как правило, хранятся в текстовых файлах и прочитываются при загрузке. Хранение схемы в каталоге имеет ряд преимуществ. Например, приложения могут обращаться к каталогу и читать списки доступных объектов, а также динамически изменять схему, добавляя в нее новые атрибуты и классы. Модификация схемы сопровождается созданием или модификацией объектов, хранящихся в каталоге. Все внесенные изменения незамедлительно становятся доступны для других приложений. Любые объекты схемы (впрочем, как и любые объекты Active Directory) защищены списками контроля доступа, что гарантирует их от изменений лицами, не имеющими на это прав.

Модель данных

В основу модели данных службы каталогов Active Directory положена модель данных Х.500. В каталоге хранятся различные объекты, описанные атрибутами. Классы объектов, которые допустимо хранить в каталоге, задаются схемой. Для каждого класса объектов в схеме определены обязательные и возможные дополнительные атрибуты экземпляров класса, а также то, класс какого объекта может быть родительским по отношению к рассматриваемому.

95

Глобальный каталог

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

В глобальном каталоге содержится частичная копия каждого из контекстов пользовательских имен, а также схема и конфигурационные контексты имен. Это означает, что в глобальном каталоге хранятся копии всех объектов Active Directory, но с сокращенным набором атрибутов. К хранимым относятся атрибуты наиболее часто используемые при поиске (например, имя пользователя, имя входа в систему и т. п.) и достаточные для обнаружения полной реплики объекта. Глобальный каталог позволяет быстро находить нужные объекты, не требуя указаний, в каком домене находится объект, а также использования смежного расширенного пространства имен.

5.3.4. Архитектура Active Directory

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

Active Directory подробно.

Основная структурная единица Active Directory – дерево доменов, связанных доверительными отношениями друг с другом. Внутри каждого домена может располагаться иерархия организационных единиц (OU). Иерархия OU внутри одного домена никак не связана с иерархией OU в других доменах. Наоборот, они полностью независимы.

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

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

96

Архитектура Active Directory

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

Как уже упоминалось, внутри каждого домена — своя политика безопасности. Этой политикой определяются, в частности, требования к паролям, время жизни билетов Кегberos, блокировки учетных записей и т. д. При создании учетной записи в домене для нее генерируется идентификатор безопасности (SID), частью которого является идентификатор домена, выдавшего SID. Это позволяет легко определять, какому домену принадлежит пользователь или группа и каковы их права доступа к ресурсам. Таким образом, можно говорить о физических границах безопасности домена, в рамках которых и выполняется его администрирование.

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

Использование схемы

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

Каталог содержит необходимую информацию о пользователях и объектах данной организации. Такие свойства Active Directory, как

97

отказоустойчивость и расширяемость, позволяют использовать этот сервис в различных приложениях, например, по учету кадров. Стандартно в Active Directory уже определены такие атрибуты пользователя, как его имя, фамилия, номера телефонов, название офиса, домашний адрес. Но если понадобятся такие сведения, как зарплата сотрудника, его трудовой стаж, медицинская страховка, сведения о поощрениях и т. п,, то эти параметры можно задать дополнительно. Active Directory позволяет «наращивать» схему, добавлять в нее новые свойства и классы на основе существующих и с наследованием их свойств.

Также можно задавать новые свойства, в том числе и существующим классам. При этом все свойства можно разделить на обязательные и возможные. Все обязательные свойства необходимо указывать при создании объекта. Например объект «пользователь» обязательно должен иметь общее имя en (common name), пароль и SamAccountName (имя, используемое для обратной совместимости с предыдущими версиями).

Возможные свойства можно и не указывать. Они лишь выполняют вспомогательные функции и могут быть полезны, например, для администраторов или для других пользователей. Проиллюстрируем сказанное на примере приложения по учету кадров. Всех сотрудников предприятия можно условно разделить на две группы: постоянные и временные. Для постоянных сотрудников целесообразно создать новый класс Full TimeEmp. В качестве возможных свойств этого класса можно добавитьв схему зарплату и семейное положение. При этом права на чтение и изменение этих свойств будут иметь только сотрудники отдела кадров, а на чтение — лишь сам сотрудник. Администраторы сети также не имеют прав доступа к этим сведениям.

Понятно, что такая свобода модификации и наращивания каталога должна опираться на мощные механизмы хранения и поиска информации. В Active Directory таким механизмом хранения служит ESE (Extensible Storage Engine) — улучшенная версия Jet-базы данных, использующейся в Microsoft Exchange версий 4 и 5.х2. В новой базе может содержаться до 17 терабайт данных, до 10 миллионов объектов.

98

Пример модификации схемы

Еще одна особенность ESE — там хранятся только реально используемые значения свойств. Например, для объекта user определено по умолчанию порядка 50 свойств. Но если Вы описали только 4 (имя, фамилию, общее имя и пароль), то место для хранения будет отведено только для этих атрибутов. По мере описания других атрибутов место для них будет выделяться динамически.

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

5.4. Расширенная сетевая поддержка

Значительным изменениям подверглась сетевая поддержка. Теперь Windows NT в еще большей степени приспособлена для работы в крупных сетях. Среди новых или значительно переработанных функций можно упомянуть распределенную файловую систему, динамический DNS, многопротокольную маршрутизацию, управление пропускной способностью и функции защиты по протоколу IP.

Распределенная файловая система DFS позволяет представить раз-

розненные сетевые ресурсы в виде единого дерева, независимо от их физического расположения в сети. Пользователи получают прозрачный доступ к ресурсам, не заботясь об их истинном местонахождении. Дополнительно к возможностям, предоставляемым DFS текущей версии, новая версия позволит:

создавать отказоустойчивые корни DFS;

использовать имена DNS;

интегрироваться со службой каталога Active Directory;

создавать вложенные точки переходов.

Сервер DNS, включенный в Windows NT 5.0, обеспечивает динамические функции, полностью соответствующие стандартам для DNS. Динамический DNS позволяет автоматически распространять все изменения

взаписях DNS на серверы DNS, связанные с тем, на котором сделано изменение. При этом отпадает необходимость в ручном тиражировании изменений, что значительно сокращает затраты на тиражирование. Помимо этого, Microsoft DNS позволяет пропускать через DNS обновления других сетевых сервисов как, например, Active Directory, DHCP (Dynamic Host Configuration Protocol) и WINS (Windows Internet Name Service), что обеспечивает надежность регистрации и обнаружения именованных ресурсов

всети.

Microsoft IP Security Management управляет безопасностью комму-

никаций. Важные данные, посылаемые по сети, защищаются от неавторизованного доступа. Сразу же после применения защиты IP в сети

99

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

Управляя пропускной способностью сети, можно эффективно ограничивать приложения и не позволять им развивать в подсети трафик, превышающий ее возможности. Приложения, в которых реализованы стандарты качества обслуживания QoS (Quality of Service), могут резервировать для себя полосу пропускания и устанавливать приоритеты передачи данных.

В Windows NT 5.0 входит сервис Routing and Remote Access, вышед-

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

5.5. Новые возможности хранения и защиты данных и функции совместимости с Windows 95

Сильно влияют на облик новой системы изменения в работе с дисками и другими устройствами хранения, новые механизмы обеспечения защиты данных. Кроме того, новая файловая система FAT32 ликвидирует «провал» в совместимости с Windows 95, образовавшийся после выпуска Windows 95 OSR2. Эта файловая система эффективна на разделах диска, объем которых превышает 2 Гб.

Те, кто пытался вместо Windows 95 поставить Windows NT 4.0, знают, что ни к чему хорошему это не приводило. Теперь можно выполнять такое обновление с сохранением всех установленных приложений и их настроек.

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

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

В Windows NT 5.0 встроена поддержка универсального дискового формата UDF (Universal Disk Format). Это новая файловая система,

предназначенная для обмена данными на DVD и CD-носителях.

Файловая система с шифрованием позволяет прозрачно для поль-

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

100

Давно ожидавшаяся функция квотирования дискового простран-

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

Как Windows NT Workstation, так и Windows NT Server имеют встроен-

ное средство дефрагментации жестких дисков, отформатированных

вFAT, FAT32 или NTFS.

5.6.Файловые системы Windows NT

ВWindows NT версии 5.0 поддерживаются три' файловые системы:

NTFS (Windows NT file system) — исключительно для Windows NT;

FAT (File Allocation Table) — для совместимости с приложениями

MS-DOS;

FAT 32 — модифицированная версия FAT, используемая в Windows 95 OSR2 и Windows 98.

Выбор файловой системы зависит от используемых приложений и от

требований, предъявляемых к ней. У каждой свои полезные свойства, но возможности защиты и аудита систем различны.

Также в новой версии Windows NT поддерживаются распределенная файловая система DFS (Distributed File System) и файловая система с шифрованием EFS (Encrypted File System). Строго говоря, последние не являются файловыми системами в полной мере, как, например, FAT. DFS представляет собой расширение сетевого сервиса и позволяет объединять в единый логический том сетевые ресурсы, расположенные на разделах с различными файловыми системами. EFS - это надстройка над NTFS, добавляющая к последней функции шифрования данных. И DFS, и EFS будут обсуждаться в этой главе.

Просматривая ресурсы компьютера, невозможно сказать, какой формат имеет тот или иной раздел жесткого диска столь же уверенно, как про гибкие диски и CD-ROM. Разделы жесткого диска обозначены просто как Local disk. Чтобы определить тип файловой системы, надо щелкнуть правой кнопкой мыши изображение диска и в контекстном меню выбрать команду Properties.

Дополнительно поддерживается файловая система компакт-дисков CDFS. В этой книге она не рассматривается.

5.6.1. Файловая система FAT

Файловая система FAT (File Allocation Table) получила свое наименование в соответствии с названием метода организации данных − таблицы распределения файлов. FAT первоначально была ориентирована на небольшие диски и простые структуры каталога. Через несколько лет после создания ее усовершенствовали для работы с большими дисками и мощными

101

персональными компьютерами. На рисунке показана организация диска с использованием файловой системы FAT.

Блок

 

FAT1

 

FAT2

 

Корневой

 

...Область файлов

параметров(копия)каталог

BIOS

Дисковый раздел FAT

Корневой каталог расположен на диске и имеет фиксированный раздел. Каталоги − специальные файлы с 32-битными элементами для каждого файла, содержащегося в этом каталоге. Элемент для каждого файла включает:

имя файла (8+3 символа);

байт атрибута (8 бит);

время модификации (1б бит);

дату модификации (16 бит);

первый размещаемый блок (16 бит);

размер файла (32 бита).

Эта информация используется всеми операционными системами, поддерживающими файловую систему FAT. Windows NT может сохранять

идополнительные отметки времени на элементе каталога FAT. Эти элементы позволяют определить момент последнего доступа к файлу и используются в основном приложениями POSIX.

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

Windows NT, начиная с версии 3.5, использует биты атрибута для поддержки длинных (до 255 символов) имен файлов в разделах FAT. Применяемый для этого способ не мешает MS-DOS или OS/2 обращаться к подобному разделу. Всякий раз, когда пользователь создает файл с длинным (превышающим стандартное для FAT ограничение «8+3») имеем, Windows NT учреждает элемент каталога для этого файла, соответствующий соглашению «8+3» (по тем правилам, что и для NTFS) с добавлением одного или нескольких вторичных элементов каталога. Каждый из таких вторичных элементов рассчитан на 13 символов в длинном имени файла и сохраняет длинную часть имени файла в UNICODE. Для этих элементов устанавливаются атрибуты: том, системный, скрытый, только для чтения. MS-DOS и OS/2 игнорируют элементы каталога с таким набором атрибутов,

ипоследние не видимы в этих операционных системах. Вместо них MS-DOS

102

и OS/2 обращаются к элементам, содержащим информацию в стандартном виде «8+3».

Некоторые дисковые утилиты сторонних производителей, взаимодействуя непосредственно с FAT, могут расценивать созданные Windows NT элементы каталога с длинным именем файла как ошибки логической структуры тома. Попытки этих утилит исправить ошибки могут привести к потере файлов и каталогов. Чтобы избежать подобных неприятностей, не используйте не проверенные на совместимость с Windows NT утилиты работы с диском или его дефрагментации.

Файловая система Windows NT FAT функционирует аналогично MSDOS и Windows. Windows NT можно устанавливать на существующем разделе FAT. Если же компьютер работает под управлением Windows 95, длинные имена файлов и каталогов вполне допустимы, так как механизмы работы с длинными именами в обеих системах одинаковы.

Нельзя использовать Windows NT совместно с любыми программами сжатия или разбиения диска на разделы, если программное обеспечение требует драйверов MS-DOS. Для чтения подобных дисков нужны драйверы Windows NT.

Файловая система FAT является системой с точной записью, то есть при необходимости изменения структуры тома дается команда записи на диск. Недостаток такой системы — медленное выполнение последовательных операций записи: ведь первая запись на диск должна быть завершена прежде, чем начнется вторая и т. д. Это не самое эффективное использование мощных компьютеров.

Допускается безболезненный перенос или копирование файлов с тома FAT на NTFS. При выполнении обратной операции информация о разрешениях и альтернативных потоках будет потеряна.

Файловая система FAT не обеспечивает защиты данных и их автоматического восстановления. Поэтому FAT используется лишь в том случае, если на компьютере в качестве альтернативной системы установлена MS-DOS или Windows 95, а также для передачи данных на гибких дисках. Небольшой загрузочный раздел, отформатированный под FAT, требуется, кроме того, для RISC-систем. В остальных случаях использование FAT не рекомендуется.

5.6.2. Файловая система FAT32

FAT32 — модифицированная версия FAT, позволяющая создавать разделы объемом более 2 Гб. Кроме того, она дает возможность использовать кластеры меньшего размера, и, соответственно, более эффективно расходовать дисковое пространство. Впервые данная файловая система появилась в Windows 95 OSR2.

В таблице 4-1 сравниваются размеры кластеров, устанавливаемых по умолчанию для FAT и FAT32.

Таблица 4.1

Объем диска

Размер кластераРазмер кластера

103

 

 

 

на FAT

на FAT32

0 Мб — 32 Мб

512 байт

 

32

Мб — б4 Мб

1 Кб

 

64

Мб — 127 Мб

2 Кб

 

128

Мб - 255 Мб

4 Кб

 

256

Мб — 511 Мб

8 Кб

 

512

Мб — 1023 Мб

16 Кб

 

1024 Мб — 2048 Мб 32 Кб

 

260

Мб - 8 Гб

 

4 Кб

8 Гб — 16 Гб

 

8 Кб

16

Гб - 32 Гб

 

16 Кб

> 32 Гб

 

32 Кб

5.6.3. Файловая система NTFS

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

Поддерживая управление доступом к данным и привилегии владельца,

NTFS дает гарантии безопасности, требуемые для

файловых серверов

и высококачественных персональных компьютеров

в корпоративной

среде. Это важно для целостности корпоративных данных.

NTFS простая, но очень мощная разработка, для которой вся информация на томе NTFS — файл или часть файла. Каждый распределенный на томе NTFS сектор принадлежит некоторому файлу. Частью файла являются даже метаданные файловой системы (информация, описывающая непосредственно файловую систему).

Эта основанная на атрибутах файловая система поддерживает объект-

но-ориентированные приложения, обрабатывая все

файлы как объек-

ты с атрибутами, определяемыми пользователем и системой.

В Windows NT версии 5.0 используется

NTFS той же вер-

сии. Она не совместима с предыдущими версиями ОС, поэтому если загрузить более раннюю версию операционной системы, NTFS-разде- лы, созданные в версии 5, будут недоступны.

Главная файловая таблица

104

Каждый файл на томе NTFS представлен записью в специальном фай-

ле — главной файловой таблице MFT (Master File Table). NTFS резерви-

рует первые 1б записей таблицы для специальной информации. Первая запись таблицы описывает непосредственно главную файловую таблицу. За ней следует зеркальная запись MFT. Если первая запись MFT разрушена, NTFS считывает вторую запись, чтобы отыскать зеркальный файл MFT, первая запись которого идентична первой записи MFT. Местоположение сегментов данных MFT и зеркального файла MFT записано в секторе начальной загрузки. Дубликат сектора начальной загрузки находится в логическом центре диска. Третья запись MFT — файл регистрации, применяемый для восстановления файлов.

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

Организация главной файловой таблицы

Целостность данных и восстановление в NTFS

NTFS — это восстанавливаемая файловая система. В числе ее достоинств — сочетание быстродействия файловой системы с отложенной записью и практически мгновенное восстановление.

Каждая операция ввода-вывода, изменяющая файл на томе NTFS, рас-

сматривается файловой системой как транзакция и

может выполнять-

ся как неделимый блок. При модификации файла

пользователем сер-

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

105

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

Важная особенность NTFS — отложенная передача (lazy commit),

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

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

цессе восстановления.

Данные пользователя в случае сбоя

системы

могут быть разрушены.

 

 

Объем журнала

транзакций устанавливается командой

CHKDSK

/L:размер. Размер указывается в килобайтах и по умолчанию равен 4 096 Кб. Для того, чтобы узнать текущий размер журнала, необходимо выполнить команду chkdsk /L.

Длинные и короткие имена файлов

Как уже отмечалось, NTFS поддерживает длинные (до 255 символов) имена файлов. В имени файла используются символы UNICODE, что позволяет именовать файлы, например, кириллическими символами. При этом решен вопрос доступа приложений из MS-DOS: NTFS автоматически генерирует стандартное для MS-DOS имя вида «8+3».

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

ветвь — HKEY_LOCAL_MACHINE;

раздел— SYSTEM\CurrentControlSet\Control\FileSystem;

параметр — NtfsDisable8dot3NameCreation;

значение — 1;

тип данных — DWORD.

106

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

Набор символов UNICODE для имен файлов делает возможным применение «запрещенных» символов. Но так как и MS-DOS-, и Windowsприложения такие символы «не читают», при генерации короткого имени удаляются и эти символы, и любые пробелы. Чтобы увидеть соответствие коротких имен файлов длинным, можно либо использовать команду DIR /X, либо посмотреть свойства файла, щелкнув его правой кнопкой мыши и выбрав в контекстном меню Properties.

Длинное имя файла теряется при сохранении приложениями MS-DOS или Windows З.х на том NTFS, если приложение сохраняет временный файл, удаляет первоначальный файл и переименовывает временный файл в файл с первоначальным именем. Теряется и любой уникальный набор расширений файла. Права же по умолчанию передаются из родительского каталога заново.

Компрессия файлов и каталогов

Особенность NTFS — возможность динамического сжатия файлов и каталогов. Те, кто работал с MS-DOS, наверняка знакомы с утилитами динамического сжатия дисков DriveSpace или Stack. Так вот, можно сказать, что компрессия на NTFS подобна упомянутым утилитам. Ее отличие от упомянутых утилит в том, что в Windows NT компрессия возможна как для отдельных каталогов, так и для файлов на диске. Сжатие является новым атрибутом файла или каталога и подобно любому атрибуту может быть снято или установлено в любой момент времени.

Замечание. Сжатие возможно только на разделах, размер блока которых не превышает 4 096 байт. Для установки размера блока используется команда FORMAT /А:размер.

Если каталог имеет атрибут Compressed, то все файлы, копируемые внего, также получат этот атрибут. Если Вы хотите, чтобы вновь создаваемый раздел диска автоматически сжимал все создаваемые и копируемые файлы, его надо отформатировать с ключом /С, то есть:

FORMAT диск: /С /FS:NTFS.

Для сжатия существующего файла или каталога используется либо команда

Compress, либо Properties в Windows NT Explorer.

Диалоговое окно File Properties

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

Степень сжатия файлов зависит от типа файла. Наиболее эффективно применять этот атрибут к файлам документов Microsoft Word, PowerPoint, графическим файлам и т. п. Организуя файл-сервер, имеет смысл сжать все персональные каталоги пользователей. С другой стороны, совершенно

107

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

5.7. Новые инструменты и средства администрирования

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

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

Консоль управления Windows NT MMC (Microsoft Management Console) − сетевой серверный компонент, предоставляющий единую среду для всех административных программ. Она является как бы стержнем, на который «нанизываются» все программы администрирования.

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

Новая утилита OnNow позволяет вводить компьютер в состояние гибернации. Если Вы долго не работаете с включенным компьютером, то программа OnNow как бы выключает его. Внешне компьютер не подает никаких «признаков жизни», но стоит Вам к нему прикоснуться, как он моментально «оживет». Эта функция уменьшает износ жесткого диска и шум.

Всистему включены три инструмента, облегчающие работу с ком-

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

Windows Scripting Host — независимый от языка хост исполнения сценариев. В поставку входят механизмы работы с VBScript и с Jscript. Сценарии можно исполнять не только в документе HTML, но и в командной строке.

Впредыдущих версиях Windows NT язык сценариев отсутствовал, приходилось использовать продукты третьих фирм. Теперь поддержка

108

ActiveX в сценариях позволяет исполнять в системе практически любые задания.

Планировщик Task Scheduler пришел на смену команде AT из предыдущих версий. Он обладает графическим интерфейсом и по внешнему виду идентичен планировщику, входящему в Windows 95. Функционально новый планировщик расширен за счет защиты.

Computer Management — это слепок для консоли управления, предоставляющий администраторам мощное средство настройки компьютера. Он может быть использован для конфигурирования любого компьютера в сети, как на локальном компьютере, так и удаленно.

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

Для создания совместно используемых сетевых ресурсов и управления сеансами применяется File Service Management. Этот новый инструмент − также слепок для консоли управления − пришел на смену утилите, входившей в Control Panel, Он позволяет создавать и отслеживать использование сетевых ресурсов на компьютерах в локальной сети, и, кроме того, взаимодействовать с сервисами файлов и печати для Macintosh и Netware.

Администрирование удаленных компьютеров выполняется теперь программой System Service Management. С помощью этого инструмента можно запускать, останавливать и приостанавливать сервисы на локальном и удаленном компьютерах. Он также заменил утилиту, входившую ранее в Control Panel. Кроме того, этот инструмент обеспечивает новые функции восстановления, которые в случае сбоя в работе сервиса позволят рестартовать его, запустить исполняемую программу или даже перезагрузить сервер.

Конфигурирование ресурсов осуществляется теперь с помощью Device Manager. Этот инструмент также — слепок для консоли управления. Он позволяет управлять устройствами и ресурсами, выделяемыми под них Настройка аппаратуры выполняется программой Hardware Wizard.

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

Технология Microsoft Installer дает возможность на основе транзакций управлять процессом установки приложений.

Правила, применяемые к пользователям и компьютерам, сценарии, пользовательский интерфейс приложений, – управлять всем этим помогает слепок ММС GPE (Group Policy Editor), отвечающий за правила, установленные в данном узле, домене или организационной единице. GPE служит также опорной точкой для приложений сторонних фирм при создании специфичных для них административных слепков.

5.8. Встроенная интеграция сервера с Интернетом

109

US (Internet Information Server) стал составной частью Windows NT Server, начиная с четвертой версии этой ОС, а в рабочую станцию входила его облегченная редакция — Personal Web services.

US 4.0 является встроенным в Windows NT 5.0 сервером. Он обладает многими новыми функциональными возможностями, среди которых создание нескольких Web-узлов, новые средства администрирования, работа в режиме сервера новостей.

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

Упрощенный доступ в Интернет

В Windows NT 5.0 для Вас есть все необходимое, чтобы подключиться к Интернету и «попутешествовать» по нему.

Программа-мастер подключения к Интернету (Internet Connection Wizard) проведет Вас через все стадии подключения, начиная от выбора поставщика услуг и заканчивая установкой и конфигурированием программного обеспечения. И все это Вы сможете проделать в считанные минуты.

Неотъемлемая часть операционной системы – Internet Explorer 4.0.

Он позволяет испробовать самые передовые технологии World Wide Web такие, как ActiveX и интерактивные страницы.

Попасть в Интернет можно из любого окна Windows NT 5.0, даже из панели задач. Все что требуется — ввести в поле адреса нужный адрес.

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

либо страницу Web, элемент ActiveX, либо любой документ HTML. Именно поэтому поверхность стола получила название Active Desktop.

Active Desktop – это настраиваемый «приборный щиток» системы. Оттуда можно запускать приложения, переключаться между документами, а также получать информацию о том, что творится в Интернете или Вашей локальной интрасети.

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

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

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

110

Интеграция системы с Web

Так как Internet Explorer интегрирован с системой, работа с ней становится столь же простой и очевидной, как и просмотр ресурсов Интернета.

Вспомните две замечательные кнопки на панели инструментов каждой программы просмотра – Вперед и Назад Как они удобны для просмотра Webстраниц! Теперь такие кнопки есть и в Windows NT Explorer, что позволяет просматривать точно так же содержимое каталогов, документов и Web-узлов.

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

В качестве подложки каждого окна можно использовать Web-траницу

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

Усовершенствованный рабочий стол

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

В меню Start появился пункт Favorites, позволяющий быстро переключаться на избранные Web-страницы, либо открывать самые нужные документы.

Если Вы много работаете с документами, то теперь не надо далеко «ходить» за ними. Папка My Documents лежит на рабочем столе. Откройте ее и выберите нужный.

Из панели управления удалены многие функции. Как настраивать систему?

Это не проблема. В разделе административных программ появилось множество простых и эффективных средств управления на смену прежним.

5.9.Технологии создания современного ПО

Создание современного программного обеспечения неразрывно связано с большими сетями и Internet. Поэтому Windows 2000 поддерживает три перспективных технологии: Active Server Pages (ASP), встроенное средство разбора языка XML и объектную модель COM+.

В принципе ASP используется уже давно, и удивить ею трудно. Правда, Microsoft заявляет, что в Windows 2000 приложения на ASP стали работать быстрее. Что же касается поддержки XML, то это действительно грамотный шаг, ибо этот язык потихонечку становится основным для хранения данных,

111

различных параметров настройки, а также широко применяется для форматирования пакетов данных, передаваемых приложениями по сети.

Операционная система Windows 2000 стала трамплином для новой объектной технологии Microsoft COM+. В основном расширение более старой компонентной объектной модели СОМ касается включения в состав

COM+ ранее работавшего отдельно Microsoft Transaction Server (MTS), а

также встраивания сервисных служб.

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

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

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

Управление компонентами COM+ и более старыми MTS-компонентами ведется с помощью специальной утилиты Component Services.

5.10. Работа с приложениями

Что касается работы приложений, то здесь все на редкость замечательно. Поддерживаются все программы, написанные для Windows 95/98/NT и большинство DOS-приложений. Самое приятное, что система теперь почти никогда не требуют перезагрузки машины после установки, что так часто вызывало раздражение в Windows 9x. MS Office, Photosop, Corel и прочие настольные системы работают быстро, а если им что-то не нравится (такое возникает крайне редко), то с помощью компонента NT Task Manager их можно быстро удалить. Таким образом, можно удалять не только единичные процессы, но и все дерево процессов, порожденное зависшей задачей.

Есть, конечно, и ряд недостатков: например, если вам потребуется заниматься выводом Postcript-файлов, то здесь вас ждет разочарование – результат получится из рук вон плохой. Вероятно, для решения этой проблемы потребуются соответствующие апдейты для Postcript-драйверов. Хотя, это достаточно специфичная задача, и далеко не все решают ее в среде Windows. С DOS-приложениями дело обстоит сложнее, хотя большой плюс в том, что они вообще работают и работают корректно, но с оговоркой – стоит только приложению обратиться к ресурсам компьютера напрямую, как W2k предлагает "убить" его. Не удастся запустить старые версии Partition Magic (2, 3) непосредственно из-под Windows (как впрочем и из-под Windows NT

112

4), плохо будет работь Far Manager, DOS Navigator, Norton Disk Doctor и

аналогичные программы.

5.11. Службы Windows 2000

Как и предыдущая ОС от Microsoft - WinNT, Win2k так же использует службы. По умолчанию Win2k автоматически запускает множество служб, которые могут пригодиться в процессе работы пользователя.

Службы

Любое управление службами желательно производить зайдя в систему с правами Администратора. Это даст Вам возможность управлять всеми службами. Для начала управления нажмите Пуск / Настройка / Панель управлении / Администрирование / Сервисы.

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

Зависимости

Некоторые службы могут зависеть друг от друга. Для просмотра подобных зависимостей необходимо вызвать свойства нужной службы и посмотреть закладку Зависимости. Отсутствие каких-либо зависимостей может помочь Вам в решении остановить ту или иную службу.

Тип состояния службы (отключено, авто, вручную)

Услужбы есть три возможности запуска:

-Отключено. Эта служба никогда не стартует. Её не сможет запустить

ивнешняя программа или служба. Будьте аккуратны с этим ключом.

-Авто. Эта служба автоматически запускается при каждой загрузке

Win2k.

-Вручную. Эта служба не будет запущена автоматически, но возможен её запуск через другую службу или программу. Для изменения этой возможности нажмите Правую кнопку мыши на нужной службе и выберите пункт Свойства.

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

Функции и назначения служб ОС Windows 2000

Оповещатель (Alerter): Посылает выбранным пользователям и компьютерам административные оповещения. Оставьте тип запуска Вручную, если Вы не подключены к локальной сети. Если же Вы подключены, дайте возможность Администратору установить режим Авто по его желанию.

Управление приложениями (Application Management): Обеспечивает службы установки программного обеспечения, такие, как назначение, публикация и удаление.

113

Сервер папки обмена (ClipBook): Позволяет просматривать страницы папок обмена удаленных компьютеров.

Система событий COM+ (COM+ Event System): Автоматическое распространение событий подписавшимся компонентам COM. Установите тип запуска Авто.

Обозреватель компьютеров (Computer Browser): Обслуживает список компьютеров в сети и выдает его вызывающим программам по запросу. Установите тип запуска Вручную если вы не подключены к локальной сети. Если вы администратор локальной сети, то можно отключить эту службу на всех компьютерах за исключением одного (Сервера).

Сервер (Server): Обеспечивает поддержку RPC и общий доступ к файлам, принтерам и именованным каналам. На автономном компьютере (не подключенному к сети) желательно установить − Отключено. Если оключить службу на компьютере в локальной сети, то никто не сможет воспользоваться предоставленными вами ресурсами. Поэтому для случая рабочей станции необходимо установить − в состояние Авто.

DHCP-клиент (DHCP Client). Управляет конфигурацией сети посредством регистрации и обновления IP-адресов и DNS-имен. Если вы в сети и подключены к указанному DHCP серверу установите запуск в Авто. Если у Вас нигде не указан DHCP сервер (в том числе при подключении к Интернет) можете установить тип запуска − Вручную.

Клиент отслеживания изменившихся связей (Distributed Link Tracking Client). Посылает извещения о файлах, перемещённых между томами NTFS в сетевом домене. Установите тип запуск − Вручную. Только если Вы подключены к домену Win2k можете установить режим Авто.

Координатор распределенных транзакций (Distributed Transaction Coordinator). Координация транзакций, распределенных по нескольким базам данных, очередям сообщений, файловым системам или другим защищенным диспетчерам ресурсов транзакций.Установите режим тип запуска − Вручную.

DNS-клиент (DNS Client). Разрешает DNS-имена в адреса и помещает их в кэш. Установите запуск в Авто, если вы используете любой сервер DNS (в случае подключения к сети интернет). Если вы работаете автономно, можете установить тип запуска − Вручную. В локальной сети служба может так же включаться только на роутере или прокси-сервере. На клиентских компьютерах, не подключенных к Интернет она необязательна.

Журнал событий (Event Log): Записывает в журнал сообщения о событиях, выдаваемые программами и операционной системой. Журналы событий используются при диагностике неполадок. Оставьте возможность− Авто запуска. Это позволит Вам просматривать сообщения об ошибках и скорости системы.

Служба факсов (Fax Service). Помогает отправлять и принимать факсимильные сообщения. Включайте режим тип запуска − Авто запуск, только если Вам необходима возможность работы с факсами через ваш факсмодем.

114

Служба индексирования (Indexing Service). Индексирует содержимое документов для дальнейщего быстрого поиска по их содержимому. Эта служба напоминает службу FindFast из Microsoft Office. Обычно режим определяется их потребностей пользователя.

Общий доступ к подключению Интернета (Internet Connection Sharing). Обеспечивает поддержку служб трансляции адресов, адресации и разрешения имен в адреса для всех компьютеров домашней сети, подключенных через удаленное соединение. Если Ваша сеть подключена к Интернет через Ваш компьютер, то естественно включите режим − Авто. Но чаще всего лучше будет использовать тип запуска − Вручную.

Агент политики IPSEC (IPSEC Policy Agent). Управляет политикой IP-

безопасности и запускает ISAKMP/Oakley (IKE) и драйвер IP-безопасности. Если Вы не подключены к домену Win2k установите тип запуска − Вручную.

Диспетчер логических дисков (Logical Disk Manager). Служба Watchdog

управления логическими дисками. Оставьте тип запуска − Вручную.

Служба администрирования диспетчера логических дисков (Logical Disk Manager Administrative Service). Служба администрирования для запросов управлением дисками. Оставьте тип запуска − Вручную.

Служба сообщений (Messenger). Посылает и получает сообщения, переданные администраторами или службой оповещений. Оставьте тип запуска − Вручную. Можете установить режим − Авто только если Вы подключены к домену Win2k или хотите получать сообщения от подобных систем в Nowell Netware, Windows 9x или NT.

Сетевой вход в систему (Net Logon). Поддерживает сквозную идентификацию событий входа учетной записи для компьютеров домена. Оставьте тип запуска − Вручную.

NetMeeting Remote Desktop Sharing (NetMeeting Remote Desktop Sharing).

Разрешает проверенным пользователям получать доступ к рабочему столу Windows, используя NetMeeting. Для дополнительной безопастности рекомендую установить тип запуска − Отключено.

Сетевые подключения (Network Connections). Управляет объектами папки Сеть и удаленный доступ к сети, отображающей свойства локальной сети и подключений удаленного доступа. Рекомендуется установить в режиме − Авто.

Служба сетевого DDE (Network DDE). Обеспечивает сетевой транспорт и безопасность для динамического обмена данными (DDE). Установите в тип запуска − Авто, если вы используете DDE (обычно используется при работе с базами данными).

Диспетчер сетевого DDE (Network DDE DSDM). Управляет разделяемыми объектами динамического обмена данными и используется сетевым DDE. Поступите, как и со службой, описанной выше.

Поставщик поддержки безопасности NT LM (NT LM Security Support Provider). Обеспечивает безопасность программам, использующим удаленные вызовы процедур (RPC) через транспорты, отличные от именованных каналов. Оставьте тип запуска − Вручную.

115

Оповещения и журналы производительности (Performance Logs & Alerts). Настраивает журналы и оповещения производительности. Если Ваша система настроена для фиксирования производительности и событий оставьте службу в режиме − Авто.

Plug & Play (Plug & Play). Управляет установкой и настройкой устройств и уведомляет программы об изменениях конфигурации устройств. Установите тип запуска − Авто запуск.

Диспетчер очереди печати (Print Spooler). Загружает в память файлы для последующей печати. Если Вы не имеете принтера можете отключить запуск службы (Отключено). В противном случае установите тип запуска −

Авто.

Защищенное хранилище (Protected Storage). Обеспечивает защищенное хранение секретных данных, таких, как закрытые ключи, для предотвращения несанкционированного доступа служб, процессов или пользователей. Если вы не подключены ни к локальной сети, ни к Интернет, можете установить тип запуска − Вручную. Иначе обязательно оставьте режим запуска − Авто запуск. Служба в том числе хранит пароли WWW, FTP, NNTP, POP3 серверов для Internet Explorer и Outlook Express.

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

Диспетчер авто-подключений удаленного доступа (Remote Access Auto Connection Manager). Создает подключение к удаленной сети, когда программа обращается к удаленному DNSили NetBIOS-имени или адресу.

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

Диспетчер подключений удаленного доступа (Remote Access Connection Manager). Создает сетевое подключение. Оставьте тип запуска в режиме −

Авто.

Удаленный вызов процедур (RPC) (Remote Procedure Call (RPC)).

Обеспечивает сопоставление конечных точек и иных служб RPC. Обязательно оставьте тип запуска в режиме − Авто.

Локатор удаленного вызова процедур (RPC) (Remote Procedure Call (RPC) Locator). Управляет базой данных службы имен RPC. Оставьте тип запуска в режиме − Авто.

Служба удаленного управления реестром (Remote Registry Service).

Позволяет выполнять удаленное управление реестром. Установите тип запуска в режим − Отключено. Можете выбрать другой вариант только по требованию сетевого Администратора.

Съемные ЗУ (Removable Storage). Управляет съемными носителями, дисками и библиотеками. Если Вы не имеете сменных устройств типа Zip, LS-120 и других можете установить тип запуска в режим − Вручную.

Маршрутизация и удаленный доступ (Routing & Remote Access).

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

116

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

Вручную.

Служба RunAs (RunAs Service). Позволяет запускать процессы от имени другого пользователя. Рекомендуется отключить данную опцию, и при необходимости запуска программы от имени другого пользователя, просто заходить в систему под другим именем. Установите тип запуск в режим −

Вручную.

Диспетчер учетных записей безопасности (Security Accounts Manager).

Хранит информацию о безопасности для учетной записи локального пользователя. Если Ваш компьютер получает установки безопастности из сети установите тип запуска в режим − Авто запуск. В большинстве случаев необходимо установитьтип запуск − Вручную.

Смарт-карты (Smart Card). Управляет и проверяет доступ к смарткарте, вставленной в устройство чтения, подключенное к компьютеру. Если вы используете устройство считывания Смарт-карт, то можете включить режим− Авто запуск. Во всех остальных случаях рекомендуется установить тип запуска в режим − Вручную.

Модуль поддержки смарт-карт (Smart Card Helper). Поддерживает устройства чтения смарт-карт, не имеющих самонастройки.

Уведомление о системных событиях (System Event Notification).

Протоколирует системные события, такие как регистрация в Windows, в сети и изменения в подаче электропитания. Уведомляет подписчиков из разряда COM+ системное событие, рассылая оповещения. Поступайте в зависимости от типа компьютера − для сетевого выберите тип запуска − Авто, для автономного − Вручную.

Планировщик заданий (Task Scheduler). Позволяет выполнять программы в назначенное время. Служба типа Task Scheduler в Windows 98. Если Вы хотите запускать программы автоматически (особенно это касается Администраторов), можете включить службу и установить тип запуска в режим − Авто, настроить нужные приложения.

Служба поддержки TCP/IP NetBIOS (TCP/IP NetBIOS Helper Service).

Включает поддержку службы NetBIOS через TCP/IP (NetBT) и разрешения NetBIOS-имен в адреса. Служба необходима для работы сетевых служб от Microsoft: совместного использования ресурсов, сетевой печати, аутентификации доступа. Обычно сетевой администратор сам включит данную службу при необходимости. Для всех остальных рекомендуется выбрать тип запуска − Отключено.

Телефония (Telephony). Обеспечивает поддержку Telephony API (TAPI) для программ, управляющих телефонным оборудованием и голосовыми IPподключениями на этом компьютере, а также через ЛВС − на серверах, где запущена соответствующая служба. Служба запускается независимо от установок, поэтому выберите тип запуска − Авто запуск.

Telnet (Telnet). Позволяет удаленному пользователю войти в систему и запустить программы консоли с помощью командной строки. Если Вы

117

планируете использовать Telnet для доступа к собственному компьютеру установите тип запуска в режим − Вручную, и запускайте службу сами, по мере необходимости. Только в случае, если вы знаете, что такое Telnet можете поставить − Авто. Для всех остальных крайне рекомендую установить режим − Отключено.

Источник бесперебойного питания (Uninterruptible Power Supply).

Управляет работой источников бесперебойного питания (ИБП), подключенных к компьютеру. Установите тип запуска в режим − Авто запуск, если имеется ИБП и он подключен к компьютеру через управляющий им интерфейс (COM, USB). В остальных случаях можно установить режим −

Отключено.

Диспетчер служебных программ (Utility Manager). Обеспечивает запуск и настройку программ поддержки специальных возможностей. Если Вы не используете, или не установили (как я) "Специальные возможности" можете установить запуск в Отключено. Иначе можете установить запуск Вручную.

Windows Installer (Windows Installer). Устанавливает, удаляет или восстанавливает программное обеспечение в соответствии с инструкциями файлов MSI. Оставьте загрузку режим − Вручную. Эта служба позволяет запускать сервис Установка и удаление программ.

Инструментарий управления Windows (Windows Management Instrumentation). Предоставляет информацию об управлении системой. Требуется установить тип запуска в режим − Авто запуск.

Расширения драйвера оснастки управления Windows (Windows Management Instrumentation Driver Extensions). Обеспечивает обмен системной информацией с драйверами. Как и описанная выше служба, эта необходима для работы Win2k. Установите её в режим − Авто запуск.

Служба времени Windows (Windows Time). Устанавливает показания часов компьютера. Обычно требуется установить тип запуска в режим −

Вручную.

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

Если Вы, после установки всех служб заметите, что некоторые всё равно стартуют при запуске Win2k из режима Вручную, установите режим − Авто запуск этой службы.

Восстановление

Вы так же можете установить режим Восстановления, для каждой необходимой службы. Система работы даной службы проста, если служба завершает работу с ошибкой, выполняется указанное вами действие.

6. ОСMS Windows XP

118

Windows XP является следующей — после Windows 2000 и Windows Millennium — версией операционной системы Microsoft Windows. В Windows XP осуществлена эффективная интеграция сильных сторон Windows 2000 (основанной на отраслевых стандартах системы безопасности, высокой надежности и управляемости) с лучшими характеристиками систем Windows 98 и Windows Me, такими как простой в применении интерфейс пользователя, возможности технологии Plug and Play и новые принципы организации службы технической поддержки. Тем самым сделан очередной шаг по пути сближения операционных систем семейства Windows.

Сохранив ядро Windows 2000, операционная система Windows XP обрела новое внешнее оформление. Были объединены и упрощены типичные задачи, добавлены новые визуальные подсказки, помогающие пользователю в работе с компьютером.

Корпорация Microsoft представляет три выпуска операционной системы Windows XP, отвечающие практически любым запросам пользователей персональных компьютеров, применяемых на работе или в домашних условиях. Предназначенная для корпоративных пользователей операционная система Windows XP Professional обеспечивает высокий уровень масштабируемости и надежности. Windows XP Home Edition, являясь самой лучшей платформой для работы с цифровыми мультимедийными материалами, является наиболее удачным выбором для пользователей домашних компьютеров и любителей компьютерных игр. 64-разрядная операционная система Windows XP 64-Bit Edition способна удовлетворить самых требовательных пользователей, обладающих специальной технической подготовкой. Если вы не можете определить, какой из выпусков операционной системы Windows XP подходит вам в наибольшей степени, ознакомьтесь с приводящимся ниже кратким обзором, который поможет принять правильное решение.

6.1. Преимущества Windows XP.

Средство Windows Messenger

Использование Windows Messenger является простейшим способом установления связи с пользователями сети и проведения совместной работы в режиме реального времени. С помощью этого средства можно видеть сетевой статус пользователей, входящих в список контактов, и организовать общение с ними посредством текстовых сообщений, высококачественной голосовой или видеосвязи.

Удаленное управление рабочим столом

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

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

Поддержка беспроводных сетей стандарта 802.1x

Благодаря поддержке беспроводных сетей стандарта 802.1x обеспечивается безопасный доступ к системе, а также достигается значительное повышение производительности

119

беспроводных сетей.

Использование удаленного помощника

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

Управление компьютером

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

Многоязычная поддержка

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

Технология DualView

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

Шифрованная файловая система

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

Средство User State Migration

С помощью средства User State Migration пользователь может перенести свои данные и настройки со старого компьютера на новый.

Новое внешнее оформление, упрощающее решение задач

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

Улучшенная совместимость с приложениями и устройствами

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

Усовершенствование возможностей поддержки устройств и оборудования проводилось в Windows XP по нескольким направлениям, обеспечивающим более высокую устойчивость системы и совместимость с устройствами. Как и ранее в Windows 2000, в Windows XP проведено упрощение процессов установки и настройки компьютерного оборудования, а также управления им. В Windows XP включена поддержка технологии Plug and Play для сотен устройств, которые не учитывались в Windows 2000, а также усовершенствована поддержка шины USB (Universal Serial Bus),

стандарта IEEE 1394, интерфейса PCI (Peripheral Component Interface) и

многих других стандартов и типов шин.

Технология Plug and Play, определяющая способ, которым операционная система выявляет имеющееся оборудование и устанавливает для него

120

драйверы, получила в Windows XP дальнейшее развитие, результат которого проявился в расширении возможностей ее применения и в повышении быстродействия системы, особенно при установке устройств. Из Windows Millennium в Windows XP была перенесена модель драйверов (при этом полученная модель не претерпела существенных изменений по сравнению с Windows 2000). Благодаря такому заимствованию в эту операционную систему была добавлена поддержка интерфейса WIA (Windows Image Acquisition), упрощающего получение изображений из графических файлов и таких устройств, как сканеры и цифровые камеры, использующие интерфейс

SCSI (Small Computer System Interface), стандарты IEEE 1394 и USB.

Интерфейс WIA в целях улучшения взаимосвязей между приложениями и устройствами заменил по своим функциям программу TWAIN в слое служб приложений.

Улучшенная установка устройств

Некоторые функциональные возможности операционной системы были специально разработаны в целях упрощения процесса установки устройств и работы с ними, а именно:

Автозапуск. Эта возможность позволяет легко подключить новое устройство или вставить носитель с программой и сразу же приступить к их использованию. Как только система Windows зафиксирует подключение нового устройства или загрузку носителя (например, flash-карты, ZIP-диска или компакт-диска), она определит тип содержащихся на нем материалов (картинка, музыка или видео) и автоматически запустит соответствующее приложение. Настройка автозапуска (AutoPlay) осуществляется в диалоговом окне свойств носителя мультимедийных материалов, как показано на приведенном ниже рис. 7.

Отмена установки Windows XP. Эта функциональная возможность обеспечивает дополнительный уровень защиты при проведении обновления с Windows 98 или Windows Me, а также в случае, если пользователь обнаружит, что некоторые важные устройства или приложения, нормально работавшие в среде предыдущей операционной системы, под Windows XP функционируют не так, как ожидалось. Данная возможность недоступна при проведении обновления операционных систем Windows NT® Workstation 4.0

или Windows 2000 Professional.

Поддержка новых технологий, реализованных в оборудовании

Windows XP поддерживает многие технологии, реализованные при разработке нового оборудования, а именно:

расширенные клавиатуры PS/2 и USB-устройства ручного ввода, имеющие дополнительные клавиши для функций работы с мультимедиа, просмотра веб-страниц, управления электропитанием и ряда других функций;

новые аудио- и видеоустройства (A/V), в которых используется

121

интерфейс IEEE 1394 (например, VHS-устройства цифровой записи);

новые матричные USB-микрофоны (использующиеся при проведении конференций и для интернет-телефонии), в которых осуществляется смешивание звуковых потоков посредством эффектов Global Effects (GFX) в режиме ядра;

беспроводные сетевые устройства, в частности, два адаптера компании Sierra: AirCard 300, обеспечивающий интернет-подключения с пропускной способностью 19,2 килобита в секунду (Кбит/с) в случае, когда доступна служба поддержки цифровых сотовых телефонов; и AirCard 400, обеспечивающий подключения с пропускной способностью 128 Кбит/с в городах, обслуживаемых новой сетью

Ricochet;

мониторы высокого разрешения, способные отображать до 200 точек на дюйм (dpi);

64-разрядные процессоры Intel Itanium, для которых корпорацией Microsoft была разработана 64-разрядная версия Windows XP (дополнительные сведения по этому вопросу приводятся ниже в разделе "Поддержка 64-разрядных систем");

ВWindows XP обеспечивается также расширенная поддержка следующих устройств:

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

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

устройств работы с графическими файлами, соответствующими архитектуре WIA;

устройств и носителей данных с высокой степенью сжатия (компактдисков и дисков DVD).

Собственная поддержка компакт-дисков и DVD-дисков

Последние достижения в области технологий хранения данных способствовали упрощению работы с компакт-дисками и DVD-дисками и снижению их стоимости. В Windows XP включена собственная поддержка чтения-записи оптических дисков DVD-RAM и возможность чтения формата UDF 2.01 (Universal Disk Format), который будет принят в самом ближайшем будущем и является общим стандартом для носителей формата DVD, включая DVD-диски и DVD-видео. (Для сравнения отметим, что в Windows 2000 обеспечивается только возможность чтения дисков, совместимых с форматом UDF версий 1.02 и 1.5).

122

Кроме того, с помощью интерфейса IMAPI (Image Mastering API) пользователь Windows XP может создавать компакт-диски в форматах, позволяющих осуществлять однократную или многократную запись (CD-R или CD-RW), применяя для этого обычный метод перетаскивания или соответствующих мастеров.

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

Совместимость приложений

Windows XP является продуктом, появившимся в результате сближения двух направлений в развитии операционных систем корпорации Microsoft, первое из которых ориентировано на массового пользователя

(Windows 95, Windows 98 и Windows Millennium), а второе — на корпоративных заказчиков (Windows NT, Windows 2000). Поэтому в новой операционной системе предусматриваются расширенные возможности для обеспечения совместимости с приложениями независимых производителей, выпускаемыми как для домашних пользователей, так и для корпоративных заказчиков. В Windows XP обеспечивается совместимость почти с 1000 основных приложений, разработанных для использования в среде операционных систем семейства Windows 9x, и практически с любым приложением, работающим под управлением Windows 2000 — за исключением антивирусных программ, системных служебных программ и приложений архивирования (соответствующие обновления для которых в большинстве случаев будут подготовлены их производителями ко времени выпуска Windows XP). Для тех специализированных приложений, которые не тестировались разработчиками Windows XP в процессе создания этой системы, корпорация Microsoft предлагает воспользоваться пакетом

Application Compatibility Toolkit, который предоставляется в рамках программы MSDN®. С помощью этого пакета разработчики таких приложений смогут обеспечить их совместимость со средой Windows XP.

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

Кроме того, по мере появления новых приложений и разработки новых исправлений соответствующие обновления приложений могут быть загружены с веб-сайта Windows Update с помощью функциональной

123

возможности "Автоматическое обновление" (включена в операционную систему, начиная с Windows Millennium).

Полная поддержка цифровой мультимедийной технологии

В этом разделе описываются технические усовершенствования, реализованные в проигрывателе Windows Media™ версии 8, а также кратко рассматриваются новые возможности обработки цифровых изображений.

Проигрыватель Windows Media 8

ВWindows XP используется восьмая версия проигрывателя Windows Media, в которой объединены основные операции, связанные с обработкой мультимедийных материалов, включая воспроизведение компакт-дисков и DVD-дисков, управление универсальным проигрывателем, создание мультимедиа-файлов и компакт-дисков, воспроизведение интернет-радио и запись мультимедиа-файлов на переносные устройства.

Впроигрывателе Windows Media 8 имеются такие новые возможности, как воспроизведение видео с DVD-диска (включая дополнительную мультимедийную информацию и возможности полноэкранного управления), копирование музыки с компакт-диска на компьютер и автоматическое преобразование файлов формата MP3. В проигрывателе Windows Media 8 может храниться почти в три раза больше музыки в формате MP3, обеспечивается более быстрая запись компакт-дисков и более эффективное управление обработкой цифровых мультимедийных материалов. Имеющаяся

вWindows XP новая папка "Моя музыка" позволяет упростить выполнение типичных задач.

Кроме того, в проигрывателе Windows Media 8 имеются следующие возможности:

Возможность блокировки некоторых функций проигрывателя Windows Media в контролируемой сетевой среде. В проигрывателе Windows Media

может использоваться стандартная корпоративная обложка, развертывание которой осуществляется по сети. При включенной службе Active Directory® администратор сети может задать корпоративную обложку, с помощью которой будут ограничиваться форматы воспроизводимых файлов и используемые кодеки, а также проводиться настройка других характеристик, задаваемых для отдельных групп и пользователей. (Для реализации этой возможности клиентские компьютеры должны работать под управлением Windows XP Professional.)

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

Ускоренное воспроизведение видеоданных. Ускорение видео стандартного формата MPEG-2 обеспечивает более плавное и быстрое воспроизведение

124

при использовании подмножества DirectX® интерфейсов API.

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

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

6.2. Удаленное управление рабочим столом

Возможность использования удаленного рабочего стола (Remote Desktop) основана на технологии служб терминалов. Благодаря данной возможности пользователь может с любого клиента, работающего под управлением операционной системы Microsoft® Windows®, запускать приложения на удаленном компьютере, работающем под управлением Windows XP Professional. Приложения, будут выполняться на компьютере с Windows XP Professional, а по сети будут передаваться только команды, вводимые с помощью клавиатуры или мыши, а также выводящаяся на дисплей информация.

Удаленное управление рабочим столом и службы терминалов

Рис. 13. Запуск удаленного рабочего стола

Удаленный рабочий стол предоставляет пользователю преимущества, обеспечиваемые средой распределенных вычислений. Удаленный рабочий стол, являющийся стандартным компонентом Windows XP Professional (не входящим, однако, в Windows XP Home Edition), позволяет осуществлять доступ к компьютеру, работающему под управлением Windows XP, из любого пункта, посредством любого подключения и с помощью любого клиента Windows. Возможность удаленного управления рабочим столом предоставляет пользователю безопасный доступ ко всем его приложениям,

125

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

из конференц-зала, из дома или по дороге домой.

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

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

Удаленный рабочий стол предоставляет IT-администратору эффективное средство быстрого реагирования, позволяющее выполнять удаленный доступ к серверу, работающему под управлением Windows 2000 Server или Whistler Server, просматривать сообщения на консоли, осуществлять удаленное администрирование компьютера или управлять сервером, администратор которого временно отсутствует.

Протокол RDP

Возможности, предоставляемые удаленным рабочим столом,

реализуются с помощью протокола RDP (Remote Desktop Protocol). RDP

представляет собой протокол уровня представления данных, позволяющий терминалу WBT (Windows-based terminal) или другим Windows-клиентам поддерживать связь с другим терминалом WBT. Протокол RDP разработан с целью обеспечить для Windows-приложений, запуск которых осуществляется

срабочего стола Windows XP Professional, возможности удаленного отображения

иввода данных с помощью сетевых подключений. Протокол RDP работает через любое подключение TCP/IP, включая удаленный доступ, локальную и глобальную сеть, сети ISDN, DSL или VPN.

Перенаправление ресурсов с помощью удаленного рабочего стола

При использовании удаленного рабочего стола с помощью клиента Windows XP или какого-либо другого клиента, поддерживающего протокол RDP (Remote Desktop Protocol) версии 5.1, становятся доступными многие клиентские ресурсы. Доступ к этим ресурсам обеспечивается благодаря следующим функциям:

Усиление защиты системы безопасности

126

В данном разделе описываются некоторые новые или усовершенствованные возможности системы безопасности Windows XP.

6.3. Брандмауэр интернет-соединения

В Windows XP безопасность интернета обеспечивается с помощью встроенной функции, называемой брандмауэром интернет-соединения, которая была разработана для применения домашними пользователями и на небольших предприятиях. Брандмауэр интернет-соединения представляет собой динамический пакетный фильтр. Он обеспечивает защиту компьютеров, непосредственно подключенных к интернету или же подключенных через компьютер, являющийся узлом общего доступа к интернет-соединению (ICS — Internet Connection Sharing), на котором располагается брандмауэр интернет-соединения. При включении брандмауэра интернет-соединения обеспечивается блокировка всех осуществляемых из интернета попыток подключений, которые не запрашивались локальными пользователями. Такая блокировка осуществляется брандмауэром на основе логики транслятора сетевого IPадреса (NAT — Network Address Translator), с помощью которой выполняется проверка входящих запросов на доступ к сети или локальному узлу. Если попытка установления связи с компьютерами защищенной сети исходит извне и при этом не создается ни одного сопоставления порта, входящие данные приниматься не будут.

Брандмауэр интернет-соединения доступен для следующих типов соединений: подключения к локальной сети (LAN — Local Area Network),

подключения PTPOE (Point-to-Point Over the Ethernet), подключения к виртуальной частной сети (VPN — Virtual Private Network) и подключения удаленного доступа. Брандмауэр интернет-соединения предотвращает возможность сканирования портов и ресурсов (общих файлов и принтеров) из внешних источников. Например, если какой-либо пользователь в интернете запустит сканирующую программу на общедоступном узле вашей сети или попытается подключиться к ее системным ресурсам, брандмауэр предотвратит получение какой-либо информации с портов или от служб, имеющихся в данной сети.

Контролируемый доступ к сети

В Windows XP имеется встроенная функция системы безопасности, которая препятствует доступу злоумышленников, ограничивая права, предоставляемые пользователю, пытающемуся получить из сети доступ на ваш компьютер, набором привилегий учетной записи "Гость". Если злоумышленник попытается проникнуть на ваш компьютер и получить не санкционированный вами уровень привилегий, подобрав или угадав нужный пароль, его попытки окажутся либо вообще неудачными, либо ему будут предоставлены только права доступа, соответствующие уровню учетной записи "Гость".

127

Политики ограниченного использования программ

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

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

Политики ограниченного использования программ защищают также от пораженных вирусами вложений в сообщения электронной почты. К таким вложениям относятся как сохраненные во временной папке файлы, так и внедренные объекты и сценарии. Пользователю обеспечивается также защита от ссылок URL и UNC, которые могут запускать браузер Internet Explorer или другое приложение и загружать веб-страницу, содержащую подозрительный внедренный сценарий. Проводится также наблюдение за загруженными из интернета элементами управления ActiveX™, при этом в случае необходимости осуществляется их нейтрализация.

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

Ethernet и Wireless

Возможность Secure Wireless/Ethernet LAN расширяет возможности для создания безопасных проводных и беспроводных локальных сетей, позволяя осуществлять развертывание серверов в локальных сетях этого типа.

Приактивации этойвозможности компьютер обычно неможет получитьдоступа в сеть, пока пользователь не осуществит вход в систему. Однако если для устройства включена "машинная проверка подлинности", этот компьютер может получить доступ к локальной сети после того, как для него будут проведены проверка подлинности и авторизация сервером IAS/RADIUS.

Возможность Secure Wireless/Ethernet LAN Secure в Windows XP реализована как для проводных, так и для беспроводных сетей, основанных на спецификациях IEEE 802.11. Данный процесс поддерживается посредством использования общих сертификатов, развертываемых при помощи автоподачи заявок или смарт-карт. Благодаря этому обеспечивается управление

128

доступом для проводных и беспроводных сетей стандарта IEEE 802.11 в общедоступных местах, таких как вокзалы и аэропорты. Указанная функция системы безопасности поддерживает также проверку подлинности компьютеров, работающих в среде протокола EAP (Extensible Authentication Protocol).

Поддержка 64-разрядных систем

В этом разделе описывается 64-разрядное издание операционной системы Windows XP 64-Bit Edition, высокопроизводительной рабочей станции, предназначенной для решения сложных научных проблем, разработки современных конструкторских и инженерных приложений и созданиятрехмерныханимаций.

64-разрядное издание создавалось в расчете на использование возможностей нового эффективного и мощного процессора Intel Itanium 64bit (IA-64). Значительная часть функциональных возможностей и технологий 32-разрядной версии Windows XP включается в ее 64-разрядный выпуск (за исключением поддержки соединения через инфракрасный порт, функции восстановления системы, поддержки DVD, а также функций, связанных с поддержкой мобильного режима, таких, например, как горячая стыковка). 64разрядная версия будет также с помощью подсистемы WOW64 32-bit поддерживать большинство 32-разрядных приложений и взаимодействовать с 32-разрядными системами Windows. Обе версии операционной системы смогут эффективно работать в сетевой среде.

64-разрядное издание Windows XP обеспечивает масштабируемую, высокоскоростную платформу для нового поколения приложений, основанных на использовании интерфейса Win64™ API. По сравнению с 32разрядными системами, ее архитектура обеспечивает более эффективную обработку очень больших массивов данных, поддерживая до восьми терабайт виртуальной памяти. В среде 64-разрядной системы Windows приложения могут осуществлять предварительную загрузку существенно большего, чем в предыдущих системах, объема данных в виртуальную память с целью обеспечения быстрого доступа к этим данным процессора IA-64. В результате существенно снизится время загрузки данных в виртуальную память, а также поиск и чтение данных, их запись на устройства хранения, благодаря чему приложения смогут работать быстрее и эффективнее. Эта 64разрядная версия построена на базе той же самой модели программирования, что и стандартная версия системы Win32. Таким образом, в распоряжение разработчиков предоставляется единая кодовая основа.

Особенно полезным использование 64-разрядного издания Windows XP может оказаться в следующих областях:

Машинное конструирование и анализ. Управление массивами данных в формате с плавающей точкой, имеющих объем несколько гигабайт.

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

129

вычислительных мощностей.

Другие специальные направления. Сюда относятся приложения,

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

Спецификация IEEE 802.1X позволяет администратору назначать разрешения серверу на получение проверенного доступа как к проводным локальным сетям Ethernet, так и к беспроводным локальным сетям стандарта IEEE 802.11. Таким образом, если сервер помещается в сеть, администратор может обеспечить, чтобы этот сервер получал доступ к сети только в случае, если он успешно прошел проверку подлинности. Например, доступ к сети конференц-зала может быть предоставлен только для конкретных серверов, указанных администратором, и закрыт для всех остальных серверов.

Единый вход с цифровым паспортом Microsoft

В Windows XP протоколы проверки подлинности цифрового паспорта были добавлены к WinInet, библиотеке DLL, с помощью которой компьютер может извлекать данные из различных источников, что позволяет операционной системе очевидным образом использовать проверку подлинности цифрового паспорта. Если пользователь имеет цифровой паспорт Microsoft, он может автоматически использовать его для выполнения многих задач, таких как вход на веб-сайт, поддерживающий цифровые паспорта, или покупать продукты на веб-сайтах, являющихся участниками данной системы.

Управление учетными данными

Функция управления учетными данными обеспечивает безопасное хранение учетных данных пользователя, включая пароли и сертификаты X.509. Благодаря ей пользователям, включая перемещающихся пользователей, предоставляется возможность согласованной однократной регистрации. Если пользователь хочет получить доступ к приложению в сети компании, то при осуществлении его первой попытки потребуется выполнить проверку подлинности, в ходе которой пользователю будет предложено ввести свои учетные данные. После ввода эти данные связываются с запрошенным приложением. При осуществлении в будущем попыток доступа к этому приложению сохраненные учетные данные будут использоваться повторно, их не потребуется вводить еще раз. Указанная функция включает следующие три компонента: собственно диспетчера учетных данных (Credential Manager), который и обеспечивает безопасное хранение учетных данных; библиотеку пользовательских интерфейсов учетных данных (Credential Collection User Interface), содержащую набор интерфейсов API, с помощью которых у пользователя запрашиваются его учетные данные; "брелка" (Keyring), позволяющего пользователю добавлять, удалять и изменять учетные данные в диспетчере учетных данных.

130

Шифрованная файловая система

Шифрованная файловая система (EFS — Encrypting File System) основана на шифровании с открытым ключом; в ней используется архитектура CryptoAPI, применяемая в операционной системе Windows XP. Для настройки системы EFS по умолчанию не требуется вмешательство администратора — шифрование файлов можно начинать сразу. Система EFS автоматически генерирует пары ключей шифрования и сертификат пользователя (если таковой еще не существует).

Для шифрования в системе EFS применяется расширенный алгоритм

DESX (Data Encryption Standard) или алгоритм 3DES (Triple-DES). Процедура шифрования может выполняться из проводника Windows.

Пользователь может шифровать файл или папку, задав свойство шифрования для файлов или папок точно так же, как задается любой другой атрибут, например "только чтение", "со сжатием" или "скрытый". При шифровании папки все файлы и вложенные папки, имеющиеся в данной папке или добавляемые к ней, также автоматически шифруются. Шифрование рекомендуется проводить на уровне папок.

Безопасные хранилища данных в интернете

В Windows XP имеется возможность хранить зашифрованные файлы на веб-серверах. Эти файлы пересылаются через интернет и хранятся на серверах в виде зашифрованных битов информации. Если пользователь захочет поработать с этими файлами, они незаметным для него образом будут расшифрованы на его компьютере. Благодаря этой возможности пользователь может хранить важную информацию на веб-серверах, не опасаясь, что она будет украдена или прочитана в процессе передачи. Никто из других пользователей, имеющих доступ к данному веб-серверу — включая даже администратора сервера — не сможет прочитать соответствующие файлы. Вместе с тем пользователь может предоставить общий доступ к ним всем, кому сочтет нужным: членам семьи, друзьям или коллегам по работе.

Перенаправление файловой системы. Данная функция обеспечивает доступ из сеанса удаленного терминала к локальной файловой системе на удаленном рабочем столе. Клиентская файловая система становится доступной через удаленный рабочий стол точно так же, как если бы она находилась на общем сетевом диске. При этом не требуется никаких сетевых подключений — кроме подключения удаленного рабочего стола. Клиентские диски отображаются в проводнике Windows с обозначением "<буква_диска> клиента службы терминалов".

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

131

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

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

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

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

7.1 Файловая система Linux

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

Имена файлов и каталогов

Имена файлов и каталогов могут иметь длину до 255 символов. Символы «/» (слэш) и символ с кодом 0 запрещены. Кроме того, ряд символов имеет специальное значение для командного интерпретатора, и их использование не рекомендуется. Это символы:

- ! @ # $ & % * ( ) [ ] { } ‘ ‘’ \ : ; > < пробел

Если вам все-таки нужно употребить один их этих символов в имени файла, то при указании его имени в команде этот символ нужно экранировать знаком «\» (обратный слэш) или заключать все имя в двойные кавычки. Например, вы хотите вывести на экран командой cat содержимое текстового файла с именем my file, содержащим символ пробела:

$ cat my file # неправильно

cat: my: No such file or directory cat: file: No such file or directory

$cat "my file" # правильно Привет! $cat my\ file # правильно Привет!

Знак # − это символ комментария для командного интерпретатора bash.

132

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

Заметьте, что точки среди специальных символов нет, и имена вроде this.is.'a.text.file.containing.the.famous.string.hello.world

допустимы и широко распространены. Часто последняя отделенная точкой часть имени используется подобно «расширению имени» в Windows, обозначая файл определенного типа, но это обозначение несет смысл только для человека. Так, человеку имя файла ivan_home.tar.gz подсказывает, что это домашний каталог пользователя ivan, упакованный архиватором tar и сжатый компрессором gzip.

Если имя файла начинается с точки, то этот файл считается скрытым: некоторые команды его «не видят». Например, введя в своем домашнем каталоге команду просмотра содержимого каталога ls с ключом , означающим «показывать скрытые файлы», вы увидите больше файлов, чем введя ту же команду без ключей.

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

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

Корневой каталог обозначается символом «/» (слэш), и этим же символом разделяются имена каталогов в списке. Таким образом, абсолютным именем файла README в домашнем каталоге пользователя den

будет /home/den/README.

В каждом каталоге существуют два особых «подкаталога» с именами «две точки» и «точка». Первый из них служит указанием на однозначно определенный родительский каталог, а второй − на сам данный каталог.

Для корневого каталога, у которого нет родителя, оба эти «подкаталога» указывают на корневой каталог. С помощью этих имен образуются относительные имена файлов. Так, именем вышеупомянутого файла README относительно домашнего каталога /home/ivan пользователя ivan будет

../den/README.

Назначение основных системных каталогов

Всистемных каталогах находятся файлы, необходимые для управления

исопровождения системы, а также стандартные программы. Их имена, расположение и содержание почти одинаковы почти во всех ОС Linux,

133

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

http://www.pathname.com/fhs.

Краткое описание основных каталогов линии Red Hat и Fedora Core сведено в табл. 5.1.

Каталог

/bin

/sbin

/boot

/home

/dev

/etc

/lib

/lost+found

/media

/mnt

/opt

/proc

/root

/tmp

/var

/usr

Таблица 5.1

Стандартные каталоги

Назначение

Основные программы, необходимые для работы в системе: командные оболочки, файловые утилиты и т.п.

Команды для системного администрирования, а также программы, выполняемые в ходе загрузки

Файлы, необходимые для загрузки системы (образ ядра)

Домашние каталоги пользователей, кроме root

Файлы устройств Файлы настроек: стартовые сценарии, конфигурационные файлы

графической системы и различных приложений

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

Сюда обычно монтируются съемные носители: компакт-диски, flash-

накопители Временные точки монтирования жестких дисков. Использовать этот

каталог необязательно: подмонтировать файловую систему можно к любому другому каталогу

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

Виртуальная файловая система, дающая доступ к информации ядра (например, выведите на экран файл /proc/cpuinfo). Другие файлы в этом каталоге в каждый момент времени содержат информацию о выполняющихся в этот момент программах

Домашний каталог суперпользователя. Домашние каталоги всех остальных могут находиться на отдельном разделе, но /root должен быть в корневой

Временные файлы Часто меняющиеся данные: системные журналы и протоколы приложений,

замки, почтовые ящики, очереди печати и т.п.

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

134

Скорее всего, в ваш дистрибутив включена тап-страница hier, подробно описывающая назначение этих каталогов и их основных подкаталогов

Типы файлов

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

ВОС Linux можно выделить следующие типы файлов:

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

2)каталоги − именованные наборы ссылок на другие файлы; файлы физических устройств, подразделяющихся на:

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

файлы байт-ориентированных, или символьных, устройств, позволяющих связанным с ними драйверам выполнять буферизацию собственными средствами;

3)символические ссылки (symlink, symbolic link);

4)именованные каналы (named pipes);

5)гнезда (sockets).

Обычные файлы и каталоги

Свойства (атрибуты) файлов и каталогов можно вывести на терминал с помощью команды ls с ключом -1:

$ls -l /home/den/README

-rwxr-xr-- 1 den users 0 Feb 14 19:08 /home/den/README

Атрибуты файлов

Первый символ выведенной строки, в данном случае дефис, обозначает тип файла. Другие значения этого свойства: d — каталог, b — блочное устройство, с — символьное устройство, 1 — символическая ссылка, р — именованный канал и s — гнездо.

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

остальных. Внутри каждой тройки может присутствовать или отсутствовать:

право чтения (r), записи (w) и исполнения (х, от execute). Отсутствие права обозначается символом дефиса. С файлом README из нашего примера владелец (в общем случае, пользователь, создавший его) имеет право делать все, что угодно; члены его группы − только читать и запускать файл на выполнение; все остальные — только читать.

135

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

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

Для каталога вывод команды ls выглядит так же, но значение некоторых свойств отличается.

$ls -l -a /home/den

drwx 3 den users

4096Feb

14

19:02 .

drwxr-xr-x 4 root root

4096Feb

02

11:32 ..

[...]

 

 

 

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

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

Файлы физических устройств

Все подключенные к компьютеру устройства понимаются операционной системой как файлы: вывод информации на терминал, печать на принтере, отправка почты − все это, с точки зрения ОС, есть запись в файл. Технически файл устройства − это коммуникационный интерфейс драйвера, ведающего взаимодействием с этим устройством. Большинство таких файлов располагается в каталоге /dev.

Загляните в этот каталог, введя команду ls -l /dev. Вывод этой команды займет несколько экранов, что создает повод для знакомства с командой-фильтром more, выводящей поступающие к ней на вход данные по одному экрану за раз:

$ ls -l /dev | more

Чтобы увидеть следующий экран, нажмите пробел; чтобы прервать работу команды − Ctrl+С. О символе вертикальной черты, разделяющей команды ls и more будет подробно рассказано в следующем параграфе.

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

Наиболее часто используемые стандартные имена устройств

 

Таблица 5.2

 

Стандартные имена устройств

Файл

Устройство

null

Пустое устройство. Все данные, выводимые в него, просто исчезают.

 

Удобно использовать его для вывода ненужных сообщений

console

Системная консоль, т.е. физически подключенные клавиатура и монитор

ttyN

Пользовательская (виртуальная) консоль. Linux поддерживает до 6 таких

 

консолей, для переключения между которыми служит комбинация

 

клавиш Alt+Fn, где n − число от 1 до 6

 

136

 

pts/N Виртуальный терминал. Программа графического режима, в окне которой можно работать как в консоли

mouseN Мышь

audioN Звуковая карта

ttySN Последовательный порт. Файл /dev/ttyS0 соответствует порту СОМ1 в MSDOS, /dev/ttyS1 — порту COM2

lpN Параллельный порт

cuaN Специальное устройство для работы с модемом ethN Сетевая плата

fdN Дисковод для гибких дисков. Первому, то есть А:, соответствует /dev/fd0, для В: используется имя /dev/fd1

hdxN Жесткий диск с интерфейсом IDE, где х − буква, обозначающая номер такого диска (начиная с а), N − номер раздела на диске

sdxN Жесткий диск с интерфейсом SCSI

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

Жесткие и символические ссылки

Жесткая ссылка является просто другим именем для исходного файла. После создания такой ссылки ее невозможно отличить от исходного имени файла. «Настоящего» имени у файла нет, точнее, все такие имена будут настоящими. Команда ls показывает количество именно таких жестких ссылок. Удаление файла по любому из его имен уменьшает на единицу количество ссылок, и окончательно файл будет удален только тогда, когда это количество станет равным нулю. Поэтому удобно использовать жесткие ссылки для того, чтобы предотвратить случайное удаление важного файла.

Создадим жесткую ссылку на файл README и посмотрим, что изменилось в его свойствах:

$ln /home/den/README /home/den/readme_too $ls -1 /home/den/README

-rwxr-xr-- 2 den users 0 Feb 14 19:08 /home/den/README

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

Другой тип ссылок представляют собой символические ссылки. По назначению они аналогичны ярлыкам в ОС Windows: указывают на файл, расположенный где угодно (например, на съемном носителе), и после удаления такого файла или размонтирования съемного носителя станонятся бесполезны.

Символическая ссылка создается той же командой ln с ключом -s:

137

$ln

-s /home/den/README /home/den/do.not.readme

$ls

-1

/home/den/do.not.readme

lrwxrwxrwx

1 den users 16 Feb 14 19:17 /home/den/do.not.

readme

->

/home/den/README

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

$ cat /home/den/do.not.readme

$

Значение самой ссылки, то есть имя файла, на который она ссылается, можно узнать с помощью команды readlink.

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

Можно даже закольцевать такую цепочку: $ touch al

ln -s al a2; rm al ln -s a2 al

ls -1 a? # это шаблон имени. Ему соответствуют все имена из двух букв, первая «а»

al -> а2 а2 -> al $ cat al

cat: al: Too many levels of symbolic links

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

Символическая ссылка на каталог может участвовать в образовании полного имени файла, но есть одна тонкость: по ссылке нельзя проследовать обратно в направлении корня дерева каталогов. Вместо псевдоподкаталога «..» подставляется родительский каталог каталога-оригинала. Так, если в домашнем каталоге пользователя ivan есть ссылка на домашний каталог пользователя den, то путь /home/ivanAink_to_den_home/.. эквивалентен

не /home/ivan, a /home/den/.., то есть /home.

Именованные каналы

Этот тип файла еще называется буфером FIFO (First In — First Out). Через файлы такого типа два независимых процесса (две работающих программы) могут обмениваться данными: все, что записано в файл одним процессом, может быть прочитано оттуда другим. Именованный канал создается командой mkfifo.

Сокеты

138

Механизм гнезд (сокетов, sockets) впервые появился в версии 4.3 BSD UNIX (ветвь UNIX, начавшая развиваться в калифорнийском университете Беркли). Позже он превратился в одну из самых популярных систем сетевого обмена сообщениями, реализованную во многих, не только UNIX-подобных, операционных системах. В честь создателей этот механизм до сих пор называют Berkeley Sockets.

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

Межпроцессный обмен через гнезда используется такими стандартными компонентами Linux, как служба учета syslog и оконная система X Window.

Команды работы с файлами и каталогами

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

Синтаксис обычной команды:

имя_команды [короткие_ключи] [длинные_ключи] [аргументы],

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

Имена коротких ключей, или опций, состоят из одной буквы, перед которой стоит символ «-» (дефис). У ключа может быть свой аргумент. Короткие ключи, у которых нет аргументов, можно соединять под одним дефисом: так, команда ls -l -a -d эквивалентна команде l -lad.

Имена длинных ключей − это осмысленные слова, перед которыми стоят два символа «-» (дефис). Большинство команд понимают ключи − help и − usage, требующие вывести краткую справку об использовании команды. Необязательный ключ «--» сигнализирует об окончании списка ключей и начале аргументов.

Справку о ключах и аргументах команды можно получить по команде

man.

Текущий каталог

Текущий каталог − это каталог, от которого отсчитываются относительные пути. В каждый момент времени с каждой работающей программой, в том числе с командной оболочкой, связан единственный такой каталог. Узнать, какой каталог сейчас является текущим, можно с помощью команды pwd без аргументов.

Сменить текущий каталог можно командой: cd [новый_каталог]

139

Для смены текущего каталога на домашний каталог пользователя можно вместо имени нового каталога указать специальный символ ~: cd ~. Разрешается переходить также в псевдоподкаталоги «.» и «..». В первом случае ничего не изменится, а во втором текущим каталогом станет родительский.

Просмотр содержимого каталога

Уже знакомая команда 1s [имя_каталога] выводит его содержимое па экран. Если не указывать имя каталога, команда выведет содержание текущего каталога

Вместо имени каталога можно указать шаблон имен файлом: например. Is my* покажет все файлы и подкаталоги, имена которых начинаются с «ту». Подробнее об аргументах и ключах команды ls (как, впрочем, и любой другой команды) можно узнать у справочной системы, набрав команду

man Is.

Создание и удаление файла

Создать пустой файл можно командой touch <имя_файла>

Вообще-то она предназначена для того, чтобы для всех заинтересованных программ (например, утилиты сборки проекта make) файл выглядел новее, чем на самом деле: она меняет время последнего изменения файла на текущее время. Но если файла с таким именем не существует, то она его создаст.

Текстовые файлы можно создавать, вводя текст с консоли: $cat > hello.world Привет!

Оказывается, команду cat можно заставить не только выводить файл на консоль, но и вводить с нее. Это достигается перенаправлением вводавывода. В таком режиме команда cat считает своими входными данными поток байтов, поступающий с клавиатуры, и выводит его в указанный файл. Иными словами, в файл записывается все, что вы после этой команды введете с клавиатуры. Чтобы закончить ввод, нажмите Ctrl+D.

Если файл с указанным именем существует, то команда cat перепишет его. Чтобы вместо этого добавить данные в конец файла, перенаправьте ее вывод с помощью символов >>:

$cat >> hello.world

Каталог создается командой mkdir <имя__каталога>

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

Удалить пустой каталог можно командой rmdir <имя_каталога>

Удаляется файл командой rm <имя_.файла>

140

При этом наличие прав на запись и даже чтение этого файла не требуется: достаточно иметь право на запись в каталог, где находится этот файл. Ключи команды rm:

-i : требует подтверждения удаления для каждого удаляемого файла. Если вы заказали удаление группы файлов (например, по шаблону имени rm chernovik*), то среди них может оказаться файл, который вам еще нужен: безопаснее применить ключ -i. Подтвердите удаление каждого файла или откажитесь от него, введя символ Y или N соответственно;

-f : не запрашивать подтверждения, не выводить сообщений об ошибках. Если указаны оба ключа -i и -f, то срабатывает последний указанный;

-r : рекурсивное удаление каталога со всеми его подкаталогами. Непустой каталог можно удалить только так.

Копирование и перемещение файла

Файл копируется командой ср. Формат этой команды:

ср [ключи] <исходный_файл> {<файл_назначения> | <каталог_ назначения>}

Полезные ключи команды ср:

-i : требовать подтверждения перед перезаписью существующего файла; -f : не требовать подтверждения;

-r : рекурсивно копировать каталог со всеми подкаталогами; -а : сохранять атрибуты файла;

-d : копировать символические ссылки вместо файлов, на которые они указывают;

-s : создавать символические ссылки вместо копирования (-1 — жесткие); -и : не переписывать существующий файл, если он модифицирован позже; -х : игнорировать подкаталоги, расположенные в других файловых системах.

Кстати, команда cat с перенаправленным выводом тоже может скопировать файл:

$cat hello.world > copy.of.hello.world

Команда mv перемещает или переименовывает файлы. Формат команды:

mv [ключи] <исходный_файл> {<файл_назначения> | <каталог_назначения >}

Ключи -i, -f имеют тот же смысл, что для команд ср и rm.

Просмотр текстовых файлов

Перед тем, как просматривать файл, неплохо было бы убедиться, что он действительно является текстовым, то есть содержит только печатные ASCII-символы. Для проверки типа файла служит команда

file <имя_файла>

Если ее ответ содержит слово «text», то файл можно безопасно вывести на терминал. Вывод двоичного файла может сбить кодировку так, что вместо

141

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

$ tput reset

(или, если вы работаете в графическом режиме в окне виртуального терминала, выберите в его меню команду Терминал | Сброс и очистка для среды GNOME или Edit | Reset & Clear Terminal для среды KDE).

Кроме уже упомянутой команды cat, для вывода файла на терминал служат команда

more <имя_файла>

и ее улучшенный вариант less.

Команда-фильтр more разбивает поток своего вывода на порции размером в экран и ожидает ввода пользователя для отображения следующей порции. Чтобы увидеть следующую строку, нажмите <Ввод>; чтобы увидеть следующий экран, нажмите < пробел >; чтобы прервать работу команды, нажмите <Q> или Ctrl+С.

Утилита less позволяет листать выводимый файл не только вперед, но и назад (клавишами PgDn и PgUp), перемещаться к указанному месту в файле, искать по образцу и дает еще много полезных возможностей. В

общем, man less.

Если интересующая вас информация находится в конце файла (например, вы хотите просмотреть журнал системных сообщений messages в каталоге /var/log, чтобы узнать, что именно только что пошло наперекосяк), то вам поможет команда

tail [-N] [имя._файла],

где N − число выводимых строк файла, считая от последней. Командой head [-N] [имя_файла]

можно просмотреть, наоборот, только первые N его строк. Значение N по умолчанию равно 10.

Если вы хотите просмотреть не весь файл, а только те его строки, которые содержат заданный фрагмент текста, используйте команду-фильтр grep. Например, я хочу сменить клавишу переключения раскладки клавиатуры и графическом режиме. Я знаю, что строки конфигурационного файла /etc/Xll/xorg.conf, имеющие отношение к клавиатуре, содержат фрагмент ХКВ... а может, Xkb или xkb? Неважно:

$ grep -in xkb /etc/Xll/xorg.conf [...]

65:Option "XkbLayout" "us,ru"

66:Option "XkbOptions" "grp:shift_toggle,grp_led:scroll"

Я указал ключи: -i, требующий игнорировать различия регистра в образце для поиска и файле, и -n, требующий выводить номера строк, в которых встречается образец xkb.

Для всех команд ключи без аргументов можно соединять: запись -in эквивалентна записи -i -n.

142

Редактирование текстовых файлов

Вышеприведенный пример показывает, что переключением раскладки клавиатуры в графическом режиме управляет комбинация клавиш Shift+Shift. Неудобно: в консольном режиме я привык к Ctrl+Shift. Надо заменить значение shifttoggle на ctrl_shift_toggle. Такие мелкие правки

конфигурационных файлов − обычное дело для администратора, поэтому средство их внесения присутствовало в UNIX-системах всегда. Это консольный редактор vi, входящий в каждый дистрибутив Linux (в дистрибутив Fedora Core 3 включен его улучшенный вариант vim, но команда vi тоже доступна: она стала псевдонимом для команды vim).

Итак, я делаю на всякий случай резервную копию конфигурационногофайла /etc/Xll/xorg.conf и приступаю к его редактированию:

$ ср /etc/Xll/xorg.conf /etc/Xll/xorg.conf.sav $ vi /etc/Xll/xorg.conf

Перемещаюсь к строке 66 командой 66G (буква G заглавная: редактор vi различает регистры). Клавишами управления курсором перемещаюсь к началу слова shift.

Включаю режим вставки командой i (строчная буква). Набираю ctrl_. Выключаю режим вставки клавишей Esc. Сохраняю изменения командой :w. Выхожу по команде :q.

Справку можно получить с помощью команды :help.

Как полноэкранный редактор, vi может находиться в одном из двух режимов. В режиме вставки вводимые символы поступают в редактируемый файл, в командном режиме они воспринимаются как команды. Перечислю коротко самые употребительные команды редактора vi:

Команда

Назначение

РЕЖИМ ВСТАВКИ.

Включение режима вставки

i

в текущей позиции курсора;

I

перед первым непробельным символом в текущей строке;

w

в новой строке, добавленной после текущей

W

в новой строке, добавленной перед текущей.

<Esc>

Выключение режима вставки:

Команды режима

вставки

Ctrl+а

повторить предыдущую вставку;

Ctrl+у

вставить символ, находящийся над курсором (в

 

предыдущей строке);

Ctrl+e

вставить символ, находящийся под курсором (в следующей

 

строке).

 

143

КОМАНДНЫЙ РЕЖИМ.

Удаление (здесь и далее N — это число):

N x

N символов под курсором и справа от него;

N X

N символов слева от курсора;

N dd

N строк;

D

 

до конца текущей строки;

N D

до конца текущей строки и еще N-1 строку.

Копирование и

вставка строк:

N yy

взять в буфер N строк от текущей и ниже;

p

 

вставить содержимое буфера после текущей строки;

P

 

вставить содержимое буфера перед текущей строки;

Поиск и переход

 

N G

перейти к строке с номером N

$ G

перейти к последней строке файла;

/<образец>

искать образей вниз от курсора

? <образец>

пскать образей вверх от курсора

n

 

повторить поиск в том же направлении

N

 

повторить поиск в обатном направлении

Сохранене и выход

:w

 

cохранить текущий файл;

:w <имя>

сохранить под новым именем, если файл <имя> еще не

 

 

существует

:w! <имя>

сохранить под новым именем, переписав существующий

 

 

файл;

:q

 

выйти;

:q!

принудительно выйти без сохранения;

:wq

сохранить и выйти.

Разное

 

N

u

отменить последние N изменений;

N Ctrl+r

вернуть последние N отмененных изменений;

U

 

отменить изменения в последней строке;

N r <символ>

заменить N следующих символов на < символ >;

N

>>

добавить отступ (Tab) в N следующих строк;

N

<<

удалить один отступ (Tab) из N следующих строк;

:sh

временно выйти в оболочку (вернуться − exit);

:!<команда>

выполнить команду оболочки;

Поиск файлов

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

144

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

В разных каталогах может оказаться несколько исполняемых файлов с одинаковыми именами. Какой из них будет исполнен? На этот вопрос отвечает команда which. Она просматривает каталоги, перечисленные в переменной окружения PATH, в поисках исполняемого файла с указанным именем, и выводит абсолютное имя первого встреченного из них.

Команда whereis ищет не только исполняемый файл, но и его справочные страницы и исходный код.

Команда locate ищет файл по образцу имени, опираясь на свою базу данных о файловой системе. Ее вариант с повышенной безопасностью slocate сохраняет данные о правах доступа к файлам, так что пользователь не увидит тех файлов, на которые у него нет прав. В дистрибутиве Fedora Core 3 команда locate представляет собой символическую ссылку на утилиту slocate.

Команда find ищет файл по его атрибутам в указанном каталоге и его подкаталогах на заданную глубину. Например, при установке операционной системы я отказался устанавливать файловый менеджер Midnight Commander, а теперь on мне понадобился. Для каждого из 4 компакт-дисков дистрибутива запускаю команду поиска по шаблону имени «mс*», то есть всех файлов, имена которых начинаются с mс:

$find /media -name mс* /media/cdrecorder/Fedora/RPMS/mc-4.6.1-0.8.i386.rpm

В итоге на третьем диске найден пакет RPM.

Изменение прав доступа к файлу

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

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

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

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

chown [ключи] <новый_пользователь>[:новая_группа] <файл>

или

chgrp [ключи] < новая_группа > <файл>

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

145

Набор прав доступа состоит из прав на чтение, запись и исполнение файла. В символьном представлении он выглядит как строка «rwx», где вместо любого символа может стоять дефис. Буква означает наличие права (r − чтение, w − запись, х − исполнение), дефис − его отсутствие.

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

Полная строка прав доступа в символьном представлении устроена так:

<права_владелыдахправа_группы><права_остальных>

В абсолютном представлении права владельца являются старшим разрядом восьмеричного числа, права группы − вторым и права остальных — третьим. Так, права rwxr-x~x выглядят как число 111101 001, или 751.

Команда изменения прав доступа chmod понимает как абсолютное, так и символьное указание прав.

Назначим файлу /home/den/README права rw-r, то есть разрешим себе чтение и запись, группе только чтение, остальным пользователям − ничего: $cd ~ # переход в свой домашний каталог

$chmod 640 README # 110 100 000 == 640 $ls -1 README

-rw-r----- 1 den users 0 Feb 14 19:08 /home/den/README

В символьном представлении можно явно указывать, кому какое право мы хотим добавить, отнять или присвоить. Добавим право на исполнение файла README группе и всем остальным:

$chmod go+x README $ls -1 README

-rw-r-x—x 1 den users 0 Feb 14 19:08 /home/den/README

Формат символьного режима:

chmod <категорияхдействиехнабор_прав> < файл >

Возможные значения аргументов команды представлены в таблице 5.3. Аргументы команды chmod в символьном режиме

 

 

 

Таблица 5.3

Аргумент

 

Значение

 

 

 

Владелец

 

 

u

 

 

g

Группа владельца

Категория

 

О

Прочие

 

 

a

Все пользователи, то есть «а» эквивалентно «ugo»

 

 

+

Добавить набор прав

Действие

 

-

Отменить набор прав

 

 

=

Назначить набор прав

 

 

r

Право на чтение

 

 

w

Право на запись

 

 

x

Право на исполнение

Право

 

s

Право смены идентификатора пользователя или группы

 

 

t

Бит прилипчивости (sticky-бит)

 

 

u

Такие же права, как у владельца

 

 

 

146

g Такие же права, как у группы o Такие же права, как у прочих

Название бита прилипчивости унаследовано от тех времен, когда объем оперативной памяти был маленьким, а процесс подкачки медленным. Этот бит позволял оставлять небольшие часто используемые программы в памяти для ускорения их запуска. Сейчас его значение переосмыслено: этот бит, установленный для каталога, приводит к тому, что удалять файлы из этого каталога могут только владелец файла и владелец каталога. Обычно это используется в каталогах, открытых для записи всем (например, /tmp).

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

Так, команда su {substitute user), позволяющая «стать» другим пользователем без завершения своего сеанса и входа под новым именем (это нужно, например, чтобы быстро выполнить административную задачу от имени суперпользователя), имеет следующие атрибуты:

$ls -l which su’

-rwsr-xr-x 1 root root [размер, дата, время] /bin/su

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

Обратите внимание на применение обратных апострофов: они нужны для того, чтобы направить вывод команды which на вход команды ls.

Следует учитывать, что программы, требующие установления SUID (или SGID) для своей работы, являются потенциальными дырами в системе безопасности. Представьте такую ситуацию: у вас в системе установлена программа superformat, которая предназначена для форматирования дисков. Создание файловой системы, пусть даже на дискете, − это привилегированная операция, требующая полномочий суперпользователя.

При установке этой программы для нее сразу устанавливается право SUID, чтобы разрешить пользователям форматировать дискеты. Пользователь запускает ее для форматирования дискеты. Программа запускается, получает права root, форматирует дискету и нормально завершает работу.

А если она завершает работу аварийно, например, по ошибке переполнения стека (такие случаи отмечались)? Тогда запустивший ее пользователь получит права root! Неквалифицированный пользователь с правами root − это намного хуже, чем просто крах системы. Помните о потенциальной опасности при работе с такими программами и по возможности избегайтеиспользования прав SUID и SGID.

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

147

учетом прав SUID и SGID, и эти программы являются максимально защищенными, хотя полной уверенности в этом нет. Поэтому использовать право SUID нужно только в самых крайних случаях.

Замечаний относительно прав доступа SUID и SGID:

1.Лучшенеиспользоватьпрограммы, требующиепривилегий, насервере, точнее, не разрешать обыкновенным пользователям их использовать. Использование права доступа SUID вы можете себе позволить только на своей домашней машине, например, для установления того же коммутируемого соединения, чтобы каждый разприподключениик Интернету невводить команду su.

2.Перед использованием программ, требующих привилегий root, убедитесь в их надежности. Если программа получена из ненадежного источника, лучше ее не использовать. Надежными источниками считаются сайты или FTP-серверы разработчиков дистрибутивов Linux. Желательно получить исходный код такой программы, чтобы убедиться, что она не производит каких-либо несанкционированныхдействий.

3.Нет ни одной причины,, по какой нужно было бы разрешить использование SUID-программ в домашних каталогах пользователей. Для разделов, в которые разрешена запись обыкновенным пользователям, установите опцию nosuid в

файле /etc/fstab.

7.2.Основы файловой системы

Сточки зрения операционной системы, под файловой системой понимается внутренняя управляющая структура, заведующая хранением данных на физическом носителе, их поиском, извлечением и записью по запросам программ. Такие управляющие структуры в каждом семействе операционных систем строятся по схожим принципам. Так, DOS/ Windows используют файловую систему FAT с вариантами FAT32 и VFAT. Файловые системы UNIX-подобных ОС разнообразнее, но тоже могут быть объединены в одно семейство. Linux умеет работать со множеством файловых систем, как с родными, и сеще большимих количеством обмениваться данными.

Типичным представителем файловых систем UNIX является «вторая расширенная файловая система» ext2fs, основная до недавнего времени файловая система Linux. С момента выхода ядра версии 2.4.16 она начала уступать место «файловой системы по умолчанию» полностью совместимой

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

Файловая система ext2fs

Рассмотрим логическую структуру файловой системы ext2fs. Физически жесткий диск разбит на сектора размером 512 байт. Первый сектор дискового раздела в любой файловой системе считается загрузочной областью. В первичном разделе эта область содержит загрузочную запись − фрагмент кода, который инициирует процесс загрузки операционной системы при запуске. На других разделах эта область не используется.

148

Остальные сектора объединены в логические блоки размером 1, 2 или 4 килобайта. Логический блок есть наименьшая адресуемая порция данных: данные каждого файла занимают целое число блоков. Блоки, в свою очередь, объединяются в группы блоков. Группы блоков и блоки внутри группы нумеруются последовательно, начиная с 1.

Раздел диска, на котором сформирована файловая система ext2fs, может быть представлен такой схемой:

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

Структуры данных, применяемые при работе с файловой системой ext2fs, описаны в заголовочном файле /usr/include/linux/ext2fs.h.

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

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

После суперблока следует описание (дескриптор) группы блоков. Хранящаяся в нем информация позволяет найти битовые карты блоков и индексных дескрипторов, а также таблицу индексных дескрипторов. Битовой картой блоков (block bitmap) называется структура, каждый бит которой показывает, отведен ли такой же по счету блок какому-либо файлу. Значение 1 показывает, что блок занят. Эта карта служит для поиска свободных блоков в тех случаях, когда надо выделить место под файл. Битовая карта индексных дескрипторов выполняет аналогичную функцию по отношению к таблице индексных дескрипторов: показывает, какие именно дескрипторы заняты.

149

Каждому файлу соответствует один и только один индексный дескриптор {inode, i-узел, информационный узел), который идентифицируется своим порядковым номером − индексом файла. В индексном дескрипторе хранятся метаданные файла. Среди них − все атрибуты файла, кроме его имени, и указатель на данные файла.

Для обычного файла или каталога этот указатель представляет собой массив из 15 адресов блоков. Первые 12 адресов в этом массиве являются прямыми ссылками на номера блоков, в которых хранятся данные файла. Если данные не помещаются в 12 блоков, то включается механизм косвенной адресации. Следующий адрес в этом массиве является косвенной ссылкой, то есть адресом блока, в котором хранится список адресов следующих блоков с данными из этого файла.

Сколько блоков с данными можно так адресовать? Адрес блока занимает 4 байта, блок, как уже сказано, − 1, 2 или 4 килобайта. Значит, путем косвенной адресации можно разместить 256 − 1024 блока. Размер файла, занимающего столько блоков, считайте сами.

А если файл еще длиннее? Следующий адрес в массиве-указателе указывает на блок двойной косвенной адресации {double indirect block). Этот блок содержит список адресов блоков, которые, в свою очередь, содержат списки адресов следующих блоков данных.

И, наконец, последний адрес в массиве-указателе задает адрес блока тройной косвенной адресации, то есть блока со списком адресов блоков, которые являются блоками двойной косвенной адресации.

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

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

Во-вторых, удаление файла означает просто удаление записи о нем из данных каталога и уменьшение на 1 счетчика ссылок.

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

Сам каталог таким же образом приписан к своему родительскому каталогу. Корневой каталог всегда записан в индексный дескриптор с номером 2 (номер 1 отведен для списка адресов дефектных блоков). В каждом каталоге хранится ссылка на него самого и на его родительский каталог − это и есть псевдоподкаталоги «.» и «..».

150

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

Данные каталога представляют собой связный список с записями переменной длины и выглядят примерно так, как на рис. 2.2.

Теперь о файлах физических устройств. Они могут находиться в тех же каталогах, что и обычные файлы: в каталоге нет никаких данных, говорящих о принадлежности имени файлу на диске или устройству. Разница находится на уровне индексного дескриптора. Если i-узел обычного файла указывает на дисковые блоки, где хранятся его данные, то в i-узле файла устройства содержится указатель на список драйверов устройств в ядре − тот элемент списка, которыйсоответствуетстаршему номеруустройства (рис. 5.3).

Рис. 5.3. Разницамеждуобычным файлом ифайломустройства

Свойства файловойсистемы ext2fs:

Максимальный размер файловой системы −4 Тбайт.

Максимальный размер файла −2 Гбайт.

151

Максимальная длина имени файла − 255 символов.

Минимальный размер блока −1024 байт.

Количество выделяемых индексных дескрипторов−1 на4096 байт раздела.

Журналируемые файловые системы

Если у вас есть набор разделов на жестком диске и среди их имеется один большой раздел, который занимает большую часть диска. И вот в момент записи на диск произошло отключение питания. Хорошо, если это случилось во время записи данных какого-то файла, пусть и очень важного: файл можно восстановить хотя бы частично. А вот если свет погас, когда операционная система записывала метаданные, то расположение файла на диске перестанет соответствовать списку принадлежащих ему блоков в индексном дескрипторе. Файловая система может утратить целостность, то есть такое состояние, когда каждый блок принадлежит не более чем одному файлу (inode). В результате вы можете не досчитаться не одного, а сотни файлов.

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

Если при монтировании файловой системы в процессе загрузки операционная система обнаруживает, что чистый бит не установлен, она запускает средство проверки файловой системы − программу fsck. Представляете, сколько времени займет такая проверка? Даже при условии, что ошибок будет мало или вообще не будет, придется ждать довольно долго. А если еще будет нарушена целостность, тогда восстановление этой целостности займет еще несколько минут вашего времени.

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

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

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

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

152

непосредственно с данными. И, естественно, некоторый полезный объем теперь приходится отводить под сам журнал, но его размеры обычно не превышают 32 Мбайт, что по нынешним временам не так уж и много.

И нее же лучшим средством от неожиданного отключения до сих пор являются источники бесперебойного питания.

Современные версии ядра Linux (2.6.x) поддерживают в качестве родных четыре журналируемые файловые системы: ReiserFS, ext3fs, XFS и JFS. Из них журналирование данных поддерживает только ext3fs. Список файловых систем, которые поддерживаются вашим ядром, содержится в

файле /proc/filesystems.

ReiserFS

Разработана Хансом Райзером (Hans Reiser) и его компанией Namesys

(http://www.namesys.com) и официально включена в ядро 2.4.4.

Преимущества данной ФС в основном проявляются в работе с мелкими файлами: они целиком хранятся в своих i-узлах (inode), без выделения блоков в области данных. Вместе с экономией места это способствует и росту производительности, так как данные и метаданные хранятся и непосредственной близости и могут быть считаны одной операцией ввода/вывода.

Другая особенность ReiserFS состоит в том, что хвосты файлов длиной меньше чем в один блок могут быть упакованы в один дисковый блок (режим тайлинга). Это обеспечивает около 5% экономии дискового пространства. Именно работа с маленькими файлами (меньше килобайта) и обслуживание большого их количества выделяет данную ФС среди прочих.

ReiserFS несовместима с ext2fs на уровне утилит обслуживания файловой системы, однако соответствующий инструментарий, объединенный в пакет reiserfsprogs, уже давно включается в стандартную поставку современных дистрибутивов. Если у вас его нет, то скачать можно по адресу ftp://ftp.namesys.com/pub/reiserfsprogs/reiserfsprogs- 3.6.19.tar.gz.

Там же можно взять патчи для ядра 2.4.x.

К сожалению, загрузчики Linux (LILO и GRUB) не способны загрузить ядро Linux с раздела ReiserFS, оптимизированного в режиме тайлинга. Поэтому под каталог /boot лучше отводить отдельный раздел с файловой системой, совместимой с ext2fs.

XFS

При работе с огромными (терабайтными) файлами вне конкуренции остается файловая система XFS, разработанная компанией Silicon Graphics (сейчас SGI) специально для операций с мультимедийными данными и впервые появившаяся в 1994 г. в версии ОС Irix 5.3. Она использует 64битную адресацию, это позволяет увеличить максимальный размер файловой

153

системы до 18 тысяч петабайт (при этом предельный размер файла составляет 9 тысяч петабайт).

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

XFS эффективно распараллеливает операции ввода-вывода: она делит все пространство раздела на несколько равных областей (allocation group), служащих своего рода автономными файловыми системами в рамках единой

XFS.

Пакет утилит обслуживания xfsprogs можно скачать с http: //oss

.sgi.com/projects/xfs/download.html (содержит ссылку на российское зеркало).

Файловая система JFS

Разработана IBM для рабочих станций под управлением ОС AIX, затем портирована для Linux и выпущена по Стандартной Общественной лицензии. Всю необходимую информацию о ней можно найти по адресу http://jfs.sourceforge.net.

Размер журнала составляет примерно 40% от размера файловой системы. Эта файловая система может содержать несколько сегментов, содержащих журнал и данные. Такие сегменты называются агрегатами и могут монтироваться отдельно. Умеет она также хранить маленькие файлы и каталоги, содержащие не больше 8 файлов, в пределах индексного дескриптора. Широкого признания пока не получила.

Ext3fs

Файловая система ext3fs официально включена в ядро Linux с версии 2.4.16. Впервые она появилась в дистрибутивах RedHat и SuSE. Современные дистрибутивы, основанные на ядре 2.6.x, предлагают установить ext3fs по умолчанию.

Некоторые источники утверждают, что ext3fs − это всего лишь «надстройка» над файловой системой ext2fs, а не самостоятельная файловая система. Благодаря такому происхождению ext3fs совместима со всеми программами для обслуживания и настройки файловой системы ext2fs. И перейти на ext3fs можно простым добавлением файла журнала к ext2fs, не только без переформатирования раздела, но даже и без перезагрузки

7.3. Создание и монтирование файловых систем

Создание файловой системы «вручную». Команда mkfs

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

154

(суперблок, список i-узлов, блоки данных). В DOS/Widows этот процесс называется форматированием. В UNIX-системах понятие форматирования не используется, а процедура и соответствующая команда так и называются − создание файловой системы.

В ходе установки Linux файловые системы на разделах жесткого диска создал для вас инсталлятор, и переделывать за ним ничего не нужно. Ручное создание ФС может понадобиться при подключении нового диска или, что гораздо чаще, дискеты. Выполняет его команда mkfs:

mkfs [-t <тип>] [опции_ФС] ФС [блоков]

Типы и описание файловых систем, поддерживаемых Linux, вы найдете в справочной системе по команде man fs. Те типы, которые чаще всего используются на съемных носителях: ext2, ext3, vfat, iso9660. Ясно, что если вы отформатирует дискету с типом vfat, то она будет читаться и из-под

Windows, а если с типом ext2/ext3 − только из-под Linux.

Если не указывать тип, то будет создана ФС с типом по умолчанию − в настоящий момент это ext2.

В качестве аргумента ФС можно указывать либо имя устройства (/dev/fd0), либо точку монтирования (/media/usbdisk). Последним аргументом можно указать количество блоков, которые нужно отвести под новую файловую систему.

Опции_ФС − это параметры, специфические для файловой системы определенного типа. Например, для ext2/ext3 можно указать:

-b <размер_блока> (по умолчанию 4096 байт, но может быть и 1024

или 2048);

-N <количество_л.-узлов>,

-i <байт_на_з_-узел>.

Утилита mkfs передает эти опции настоящему конструктору ФС, которого вызывает в зависимости от указанного типа. Установленные у вас конструкторы можно найти по команде ls /sbin/mkfs*, а список опций конкретной ФС посмотреть на man-странице соответствующего конструктора (например, man mkfs.vfat).

Замечу только, что для ext3fs после ключа -J можно указать опции журналирования: size =< размер > − размер журнального файла в мегабайтах, и device =< устройство > − внешний журнал, заранее созданный на другом разделе.

Преобразовать существующий раздел ext2fs в ext3fs можно без перезагрузки системы, простым добавлением журнала командой tune2fs:

# tune2fs -j /dev/hd5

Дополнительные конструкторы (для ReiserFS, XFS и т.п.) устанавливаются из пакетов reiserfsprogs и xfsprogs соответственно.

В результате на новом разделе образуется корневой каталог новой файловой системы и в нем − подкаталог /lost+found. He удаляйте этот

155

подкаталог: утилита fsck, предназначенная для проверки целостности ФС, помещает в него найденные куски нарушенных файлов.

Настройка автоматического монтирования при загрузке компьютера. Команда mount

Чтобы с новой файловой системой можно было работать, она должна быть при помощи операции монтирования включена в общее дерево каталогов. О ручном монтировании/размонтировании применительно к съемным носителям сказано позже, а здесь будет рассказано, как сделать так, чтобы разделы жесткого диска автоматически монтировались при загрузке системы и демонтировались при останове. Для этого их нужно прописать в файл /etc/f stab, который читает команда mount в ходе начальной загрузки.

Каждая строка этого файла соответствует одной файловой системе и состоит из шести полей, разделенных пробельными символами:

<устройство> <точка_монтирования> <тип> <опции> <дамп> <номep_f sck>

Устройство − это файл устройства, к которому подключен раздел (например, /dev/hda5). Для сетевой файловой системы здесь должно быть указано имя сервера и каталог на нем.

Точка_монтирования − это имя каталога, к которому файловая система будет подключена. Он должен существовать и (желательно) быть пустым. Для раздела подкачки (swap) значение этого поля не используется, но в файле /etc/fstab присутствовать все равно должно.

Вместо типа ФС можно указать значение auto: в этом случае команда mount попытается определить тип самостоятельно.

Дамп − это отметка о необходимости резервного копирования данной ФС программой dump . Значение 1 говорит о том, что резервировать нужно, значение 0 − нет.

номер_fsck: утилита fsck обычно запускается перед автоматическим монтированием ФС, проверяет ее на целостность и пытается исправить найденные ошибки. Это процедура долгая, и для ускорения загрузки можно либо отключить проверку для некоторых ФС (значение 0), либо для некоторых разделов запускать ее параллельно. Значение этого поля задает порядок проверки разных ФС: если номера одинаковые, то системы будут проверяться параллельно. Ясно, что ускорение может получиться только в том случае, когда параллельно проверяемые разделы находятся на разных физических дисках.

Справку об опциях монтировании команды mount можно получить по команде man mount. В таблице 2.4 перечислены самые употреби тельные из них.

Табдлица 5.4. Основные опции монтирования

156

Опция

auto

rw

dev

exec

suid

user

noauto nodev noexec nosuid nouser

defaults

codepage

=

<значени

iocharse t= <значени

Назначение

ФС может быть смонтирована автоматически

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

Файлы на ФС могут быть исполняемыми Разрешить использование битов SUID и SGID

Разрешить непривилегированному пользователю монтировать и размонтировать данную файловую систему. Это значение влечет за собой

Значения, противоположные соответствующим без «но»

Установки по умолчанию: rw,suid,dev,exec,auto,nouser,async

Интерпретировать символы в именах файлов согласно кодовой странице

Выводить символы в именах файлов согласно набору символов

Программа установки создала файл /etc/fstab, в котором перечислены все ваши Linux-разделы (корневой, swap и, /home). Теперь нужно сделать так, чтобы из-под Linux были видны данные на ваших Windows-разделах. Проверьте, поддерживает ли ваше ядро типы ФС на Windows-разделах (cat /proc/filesystems, в выводе команды должны присутствовать слова vfat и/или ntfs). Обычно ядро, поставляемое с дистрибутивом, собрано без поддержки NTFS − если ваш Windows-раздел отформатирован с этим типом, то вам придется либо пересобрать ядро, либо, что гораздо проще, конвертировать раздел в тип FAT32.

Итак, после всех этих проверок я вписал в файл /etc/fstab строку:

/dev/hda6 /mnt/disk_e vfat rw,codepage=866,iocharset=utf8

...и получил каталог /mnt/disk_e, всем файлам в котором приписан в качестве владельца root, а в качестве прав доступа − rwx-rxr-x. Если вас такой режим доступа не устраивает и хочется иметь право писать в этот каталог от имени непривилегированного пользователя, прочитайте на manстранице команды mount об опциях uid, gid и umask.

7.4. Архитектура ОС Linux

Главная, постоянно находящаяся в оперативной памяти, часть ОС Linux называется ядром (Kernel). Ядро ОС обрабатывает прерывания от устройств, выполняет запросы системных процессов и пользовательских

157

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

рис. 3.1).

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

Начальная загрузка системы состоит в том, что файл с образом ядра считывается в оперативную память, начиная с нулевого адреса. Этот файл находится в каталоге /boot и называется vmlinuz-x.y.z (VMвиртуальная машина), где x.y.z − это номер версии ядра. На текущий момент большинство дистрибутивов основано на ядре версии 2.4, хотя уже вышло ядро 2.6 (Fedora Core 3) и кое-где еще встречается версия 2.2.

По соглашению разработчиков ядра, все ветви с четным номером (2.2, 2.4 и т.д.) считаются стабильными и рекомендуются для широкого использования, а на ветвях с нечетным номером испытываются новые идеи. Линус Торвальдс предложил распространить эту схему нумерации и на третью цифру версии: в ядра с нечетными номерами добавлять новые функции, а в четных − только исправлять обнаруженные ошибки.

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

158

пользователем и ядром. Только в комплекте с ними ядро образует полноценную операционную систему.

Этих компонент ОС Линус Торвальдс не создавал: они поступили из проекта GNU (http://www.gnu.org), участники которого с 1984 года работают над созданием полноценной UNIX-подобной ОС, целиком состоящей из свободно распространяемого программного обеспечения. К 1991 году им не хватало только ядра, и эту-то прореху и заполнил Торвальдс. Так что ОС, которой посвящена эта книга, правильнее называть не Linux, а «операционной системой GNU, основанной на ядре Linux», или просто

GNU/Linux.

Итак, ядро обслуживает запросы процессов. Что же такое процесс? Это понятие является базовым в UNIX-подобных системах. Процесс можно представить себе как виртуальную машину, отданную в распоряжение одной задачи. Каждый процесс считает, что он на машине один и может распоряжаться всеми ее ресурсами. На самом же деле процессы надежно изолированы друг от друга, так что крушение одного не может повредить всей системе (сколько раз вы наблюдали в Windows, как сбой одной программы приводил к общему зависанию.

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

Рис. 5.5. Виртуальная память процесса Напоминаю, что такое виртуальная память. Каждому процессу

разрешено считать, что его адреса начинаются с нулевого адреса и от него наращиваются. Таким образом, в 32-разрядной ОС процесс может адресовать 4 гигабайта оперативной памяти. Механизм виртуальной памяти позволяет процессу думать, что именно столько ему и выделено, хотя физически объем ОЗУ вашей машины − какие-то жалкие 256 Мбайт. Недостающую память заменяет жесткий диск путем записи временно не используемых страниц памяти в раздел подкачки (свопинга).

159

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

7.4.1.Жизнь процесса. Таблица процессов

Сточки зрения ядра процесс представляет собой запись в таблице процессов. Эта запись содержит данные, существующие в течение всего времени жизни процесса, и сведения о его состоянии. Размер таблицы процессов позволяет запускать несколько сотен процессов одновременно. Другая важная информация о процессе − например, таблица всех открытых процессом файлов − хранится в его адресном пространстве. Запись в таблице процессов и пространство процесса вместе составляют контекст, или окружение, процесса. В него входят:

PID − идентификатор процесса. Он принудительно назначается планировщиком при запуске процесса.

PPID − идентификатор родительского процесса (о порождении процессов − дальше в этом же параграфе).

TTY − имя управляющего терминала (терминал, с которого запущен процесс).

WD − текущий каталог процесса, от которого отсчитываются относительные пути.

RID, RGID − реальные ID и групповой ID пользователя, запустившего процесс.

EUID, EGID − эффективные ID и GID:

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

Переменные окружения.

Системные вызовы fork() и ехес() или как размножаются процессы

Каждый процесс порождается другим процессом, использующим для этого системный вызов fork(). Таким образом, структура процессов, подобно файловой системе, древовидна. Корнем этого дерева служит init − процесс инициализации системы. Он запускается ядром первым, получает идентификатор 1 и порождает еще несколько процессов (сколько и каких, можно узнать из его конфигурационного файла /etc/inittab), которые, в свою очередь, при участии пользователя порождают другие процессы.

В результате системного вызова fork() родительский процесс полностью копирует свое окружение, включая адресное пространство, в дочерний, так что в момент рождения дочерний процесс отличается только своим ID. Потом дочерний процесс с помощью вызова ехес{) загружает в

160

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

Может случиться и так, что процесс выполняет вызов ехес() без fork(): тогда не возникает нового процесса, но в старом начинает выполняться другая программа. Например, программа login выполняется с привилегиями суперпользователя, поскольку ей нужен доступ к файлу паролей. Проверив пароль, она устанавливает себе права зарегистрировавшегося пользователя и выполняет вызов ехес(), замещая свой код кодом ко-

мандной оболочки. После этого из командной оболочки изменить свои привилегии обратно на root нельзя, потому что кода программы login в текущем процессе уже нет.

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

Снимок протекающих в системе процессов. Команда ps

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

< список_РID> : только процессы с указанными ID;

-u < cписок_USERID > : только запущенные указанными пользователями;

-е: все процессы в системе;

161

-f: полная форма вывода;

-Н: вывод иерархии процессов в форме дерева.

Динамика процессов. Команда top

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

Категории процессов

Процессы делятся на три категории:

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

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

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

демоном считается init − процесс инициализации системы. Название «демон» (daemon) не имеет ничего общего с потусторонними существами: это просто сокращение от Disk And Execution MONitor.

162

Взаимодействие процессов

Из всех средств межпроцессного взаимодействия, которыми так богаты UNIX-подобные ОС, в этой главе мы рассмотрим только конвейеры и сигналы.

Конвейер (pipe)

В начальных параграфах посвященных ОС Linux мы познакомились с командой-фильтром mоrе, вызываемой так:

<команда_выводящая_много_строк> | more

Символ «|» — это и есть конвейер. Его можно понимать как канал, в который один процесс может только писать, а другой − только читать из него. Выборка и помещение информации в такой канал происходит в порядке FIFO (First In/First Out).

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

Например, если требуется узнать, осталась ли еще свободная виртуальная консоль, чтобы зарегистрироваться там и спросить справку по какой-то команде, не прерывая процессов, протекающих на других консолях. Я знаю, что виртуальную консоль обслуживает программа mingetty, которая после регистрации на этой консоли замещает свой код на код командной оболочки. Значит, мне нужно подсчитать количество процессов mingetty. Есть команда we (word count), умеющая подсчитывать число строк, слов или байтов в файле. Есть команда grep, умеющая выбирать из файла строки, содержащие указанный фрагмент текста. Соединяю их конвейером:

$ ps -e | grep mingetty | we -l

Сигналы

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

Всего в Linux 63 сигнала, обозначаемых своими номерами или символическими именами. Имена всех сигналов начинаются с SIG, и эту приставку часто опускают: так, сигнал, требующий прекратить выполнение процесса, называется SIGKILL, или KILL, или сигнал 9.

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

163

Пользователь может послать сигнал процессу с идентификатором PID командой

$ kill [-s <сигнал>] <PID>

где < сигнал > − это номер или символическое имя.

Несколько часто встречающихся сигналов перечислены в таблице 3.1. Полный список можно получить по команде kill -l (list).

 

 

 

Таблица 5.5

 

 

 

Сигналы Linux

Имя

Назначение

Реакция процесса-получателя

 

 

 

 

1

HUP

Hangup − отбой

Демоны перечитывают свои конфигурационные

 

 

 

файлы

2

INT

Interrupt

Прекратить выполнение (перехватывается)

3

QUIT

Сильнее, чем INT

то же

4

ILL

Illegal instruction.

Обработать ошибку. По умолчанию− прекратить

 

 

Программная

выполнение

 

 

ошибка

 

8

FPE

Floating point

Обработать ошибку. По умолчанию − прекратить

 

 

exception.

выполнение

 

 

Вычислительная

 

 

 

 

 

9

KILL

Убить процесс

Немедленно прекратить выполнение. Не

11

SEGV

Segmentation

Обработать ошибку. По умолчанию − прекратить

 

 

violation. Попытка

выполнение

 

 

доступа к чужой

 

 

 

области памяти

 

 

 

 

 

13

PIPE

Нет процесса,

Обработать ошибку

 

 

читающего из

 

 

 

конвейера

 

15

TERM

Termination.

Корректно завершить выполнение.

 

 

Завершить процесс

Перехватывается

 

 

 

 

17

CHLD

Завершился

Принять возвращенное им значение

 

 

дочерний процесс

 

 

 

 

 

Некоторые сигналы посылаются по нажатии комбинации клавиш. Так, Ctrl+С посылает сигнал INT, a Ctrl+\ (обратный слэш) − сигнал QUIT. Получает эти сигналы тот процесс, который сейчас занимает консоль − например, ожидает вашего ввода.

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

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

164

7.5. Командная оболочка. Bash

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

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

Командой в Linux считается все, что может быть исполнено: исполняемые файлы, встроенные команды оболочки, псевдонимы команд, пользовательские функции, файлы сценариев (скрипты) − заранее подготовленные последовательности команд в текстовом виде.

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

ДляLinux разработаномногокомандныхинтерпретаторов. Вотнесколькоизних: sh...... Bourne shell, оболочка Борна, стандарт для многих UNIX-подобных

систем;

bash ... Войте Again shell, «еще одна оболочка Борна»;

csh.... Сshell, оболочкаСи: синтаксисеекомандногоязыкапохожна синтаксис языка С;

tcsh.... tiny С shell, минимальная оболочка Си;

pdksh .. public domain Korn shell, общедоступная оболочка Корна; sash.... stand-alone shell, автономная оболочка, может быть использована в

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

Список всех установленных в системе программ-оболочек находится в файле /etc/shells. У меня он выглядит так:

/bin/sh

/bin/bash

/sbin/nologin # это "оболочка" для тех,

# кому запрещен вход в систему

/bin/ash

/bin/bsh

/bin/ksh

165

/usr/bin/ksh

/usr/bin/pdksh

/bin/tcsh

/bin/csh

Начальная оболочка для каждого пользователя, запускаемая для него при регистрации в системе, указывается в файле /etc/passwd:

$ grep den /etc/passwd # выбрать из файла строки,

# содержащие подстроку den den:x:501:501:Denis:/home/den:/bin/bash

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

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

По умолчанию новому пользователю назначается оболочка bash. Это прекрасная оболочка, включающая много усовершенствований и лучших сиойств других оболочек, и менять ее я не рекомендую. В дальнейшем, говоря «оболочка», будем иметь в виду именно bash.

Встроенные команды

Список встроенных команд оболочки bash можно получить по команде help или найти на man-странице в секции SHELL BUILTIN COMMANDS. Напоминаю, что поиск в выводе команды man выполняется командой /<образец><Ввод>

а поиск следующего вхождения образца − по нажатии клавиши <n>. Справку по команде, имя которой вы знаете, можно получить командой help <имя>.

Вот несколько полезных встроенных команд:

alias <псевдоним> <длинная команда с аргументами> − назначение псевдонима. Без аргументов выводит список всех имеющихся псевдонимов. Обратите внимание, что у пользователя root команда rm сделана псевдонимом для «rm -i», чтобы он не забыл воспользоваться ключом -i. Вы тоже можете назначить псевдоним для опасной команды risk, создав сценарий, который сначала будет спрашивать «а вы уверены?», и только при положительном ответе запускать risk на выполнение. Дайте этому сценарию имя risk, а внутри него ссылайтесь на настоящую команду risk по ее полному пути. Удалить-псевдоним из списка можно командой unalias.

echo [аргументы] − вывод аргументов на экран. Полезно, если нужно выполнить подстановку и посмотреть, что получится.

166

enable < имя_команды > − заставляет оболочку вместо встроенной команды выполнить исполняемый файл с таким же именем. Полезно, если у вас есть собственный сценарий по имени, например, echo.

eval [аргументы] −конструирование команды на лету, из указанных аргументов, и отправка ее на выполнение.

let <переменная>=<арифметическое выражение> − вычисление выражений. Так, команда var=l+2 присвоит переменной var значение «1+2», а команда let var=l+2 — значение «3».

source < файл > − прочитать и выполнить команды, содержащиеся в файле. Применяется для определения пользовательских переменных и функций.

Другие встроенные команды служат инструкциями командного языка bash.

История команд

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

Команда history без аргументов выводит всю историю, нумеруя при этом команды в порядке их ввода.

Если вас интересуют только последние несколько команд: $ history 23 # показать последние 23 команды

Если вас интересуют все команды, имеющие отношение к монтированию каталога public:

$ history | grep mount | grep public

#еще один пример конвейера

Номера команд выводятся для того, чтобы вы могли снова ввести эту команду, набрав $ ! <номер>

или $ !! # запускает последнюю из введенных команд или

$ !<первые_буквы>

#запускает последнюю из команд,

#начинающихся с этих букв.

Стрелки «вверх» и «вниз» перемещают по командной истории, не отправляя команду на выполнение, а вводя ее в командную строку для редактирования.

Последнюю команду может для вас отредактировать сама оболочка. Для этого вместо команды введите: $ ^что_заменить^чем_заменить

167

Например, вы запросили справку по команде оболочке bash: man bash. Если сразу после этого вы хотите посмотреть справку по оболочке csh, можете вместо man csh набрать

$ ^ba^c.

Помните, что замене подлежит первое вхождение подстроки «что_заменить».

Если вы хотите не изменить, а дополнить последнюю команду (например, пропустить ее вывод через фильтр more), введите

$ !! | more

7.6. Графическая система X Window

Если вы собираетесь только изучать, настраивать и администрировать свою ОС Linux, то вашим рабочим местом станет консоль, а средой обитания − командная строка. Мы будем использовать на занятиях компьютер как инструмент для решения определенного круга задач (прикладные задачи), . Задачи эти решаются не средствами операционной системы, а прикладными программами, и большинство людей привыкло решать их с помощью приложений, работающих в графическом режиме под управлением ОС семейства Windows. Среди таких приложений:

офисный набор: текстовый процессор, редактор электронных таблиц, система управления базами данных;

средства просмотра и редактирования графической информации;

средства общения с коллегами (электронная почта, интернет-пейджер);

средства получения информации из Интернета: веб-браузер, ftpкли- ент;

программы для воспроизведения аудио- и видеозаписей;

узкопрофессиональные программные пакеты: математические, инженерные, бухгалтерские, разработчика программного обеспечения и

т.п.

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

Работа в графическом режиме под Linux возможна благодаря системе, именуемой X Window (или просто Иксы; только не называйте ее X Windows), разработанной в Массачусетском технологическом институте (MIT) и ставшей стандартом для всех UNIX-подобных систем. Сами по себе Иксы − это не графический интерфейс как таковой, а лишь набор спецификаций, которым этот самый графический интерфейс должен соответствовать. В настоящее время действует версия 11 выпуск 6 стандарта на графическую подсистему для UNIX-систем, которая кратко обозначается как X11R6.

Группа программистов, возглавляемая Дэвидом Вексельблатом (David Wexelblat) создала свободно распространяемую реализацию X Window для процессоров i80386-Pentium IV и совместимых с ними. Эта версия получила название XFree86, поскольку могла выполняться в операционных системах, предназначенных для процессоров, использующих систему команд х86 −

168

Linux, FreeBSD и других. Однако с версии 4.4 команда разработчиков XFree86 перешла на новую лицензию, которую общественность сочла несовместимой со Стандартной Общественной лицензией и поэтому недостойной включения в некоммерческую ОС.

Блюдя чистоту идеи открытого кода, другая команда запустила проект X.Org (http: //www.х.org), представляющий собой развитие XFree86 от версии 4.3, еще имевшей «правильную» лицензию. В результате одни дистрибутивы (например, Fedora Core) содержат реализацию стандарта X11 от X.org, а другие (например, предыдущие ОС Red Hat) — от XFree86. org. Различия коснулись имен и расположения некоторых файлов.

Имена файлов в разныхреализациях Х11

 

XFree86.org

X.org

 

 

 

Исполняемые файлы

XFree86

Xorg

Файл настроек X

/etc/X11/XF86Config

/etc/X11/xorg.conf

Файл журнала X

/var/log/XFree86.$DISPLAYIog

/var/log/Xorg.$DISPLAYIog

Сама по себе система X Window не предоставляет никакого пользовательского интерфейса. Она только предоставляет другим программам средства для работы с видеосистемой компьютера, то есть видеокартой и монитором, и устройствами ввода: клавиатурой и мышью.

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

Один из Х-клиентов − это оконный менеджер (или диспетчер окон). Он управляет размещением окон на экране, определяет их вид и характер управляющих элементов. То есть именно он и представляет собой графический интерфейс пользователя (GUI) в собственном смысле. Таким образом, пользователь ОС Linux, в отличие от пользователя Windows, не привязан к одному графическому интерфейсу: таковых, определяемых оконным менеджером, теоретически может быть невообразимое множество.

От оконных менеджеров отличаются так называемые интегрированные графические среды, или просто оконные среды. Их отличие в том, что наряду с функциями управления окнами они предоставляют доступ к некоторым наборам утилит и приложений, написанных специально для конкретной среды, более или менее тесно в нее встроенных и легко обменивающихся данными. Со многими популярными диспетчерами окон и оконными средами можно познакомиться по адресу http://xwinman.org.

Почти в любой дистрибутив включены хотя бы две интегрированные графические среды: KDE и GNOME. В настоящее время рекомендуется

169

использовать среду КDЕ − это очень мощная и одновременно простая в освоении и использовании оконная среда.

Поэтому ее чаще, чем GNOME, назначают средой по умолчанию. По внешнему виду и функциональности вчерашним пользователям Windows она наиболее симпатична.

Обычно система X Window запускается автоматически при загрузке системы. Вы увидите графический менеджер регистрации (в зависимости от настроек вашей системы он может выглядеть по-разному), приглашающий вас ввести имя пользователя и пароль. Менеджер регистрации позволяет также выбрать сеанс, то есть оконную среду (KDE, GNOME или другую), которую вы будете использовать. Одна из установленных оконных сред запускается по умолчанию.

Из оконной среды вы можете переключиться на текстовую виртуальную консоль, нажав комбинацию клавиш Ctrl+Alt+F<n>, где n − число от 1 до количества запущенных виртуальных консолей (по умолчанию их 6, по несколько можно отключить.). Чтобы вернуться на графическую консоль, нажмите Alt+F7.

Оконная среда KDE

По своей простоте и интуитивности среда KDE (К Desktop Environment, http://www.kde.org) подобна графическим интерфейсам MacOS или Windows. KDE предоставляет богатые возможности взаимодействия программ, обладает встроенным механизмом drag-and-drop, полностью реализует вид и ощущение (look-and-feel) рабочего стола.

Рабочий стол KDE

Рабочий стол KDE состоит из трех частей:

1.самого рабочего стола, на котором могут размещаться значки файлов, каталогов и устройств;

2.управляющей панели, которая используется для запуска программ;

3.панели задач, которая предназначена для переключения между работающими программами.

Привычный пользователь Windows сразу же ищет кнопку «Пуск». Есть в KDE такая кнопка. Она называется кнопкой «К» и находится в начале

170

управляющей панели (по умолчанию — в левом нижнем углу). Под ней, как и в Windows, скрывается многоуровневое иерархическое меню. В вашем дистрибутиве оно, как и встроенная гипертекстовая справка, может быть даже русифицировано.

Для быстрого вызова меню «К» можно использовать комбинацию клавиш Alt+Fl

Запуск программ и переключение между ним

В общем случае запустить программу или приложение на выполнение можно несколькими способами:

1.Щелкнуть мышкой по значку программы на панели (если таковой имеется).

2.Щелкнуть мышкой по соответствующему значку рабочего стола (если такой есть).

3.Выбрать программу из меню «К».

4.Использовать файловый менеджер, например, Konqueror.

5.Выбрать в меню «К» команду «Выполнить программу» и ввести имя запускаемой программы в строку ввода появившегося диалога. Быстро вызвать этот диалог можно комбинацией клавиш Alt+F2.

6.Запустить программу с виртуального терминала.

Виртуальный терминал − это программа (Kterm или Konsole), в окне которой вы можете работать в режиме командной строки, как на обычной виртуальной консоли.

Для знающих английский язык: названия приложений вроде Konqueror, Konsole, Kontact − это не опечатки, а знак того, что приложения

171

разрабатывались для Оконной Среды К. Название «К» не расшифровывается никак. Впрочем, есть версия, что это название было выбрано в пику CDE (Common Desktop Environment), коммерческой оконной среде, разработанной для коммерческой UNIX.

Переключаться между запущенными приложениями можно комбинацией клавиш Alt+Tab. Вызвать контекстное меню любого объекта можно правой кнопкой мыши. В общем, все как в Windows и еще несколько виртуальных рабочих столов. Они обозначены кнопками с цифрами на панели задач. Окна приложений открываются на текущий рабочий стол, и, когда вы наведете там достаточный беспорядок, вы сможете переключиться на чистый стол щелчком по такой кнопке или комбинацией клавиш Ctrl+Tab. Обратите внимание, что комбинация Alt+Tab переключает только между приложениями текущего стола

Файловый менеджер Konqueror.Основные возможности

Среда KDE обладает собственными файловым менеджером и веббраузером. Обе эти функции выполняет программа Konqueror. Менеджер Konqueror может работать не только с локальными файлами, а и с файлами, расположенными на других компьютерах вашей сети или на серверах FTP.

Как и любой другой файловый менеджер, Konqueror умеет:

Копировать, перемещать, переименовывать и удалять файлы и каталоги;

Просматривать файлы различных форматов;

Создавать ссылки на файлы;

Изменять свойства файла.

Команды меню и инструментальные кнопки представляют собой

объединение команд, знакомых вам по Проводнику Windows и по привычному веб-браузеру. Кнопка «Домой» в режиме файлового менеджера выполняет переход в домашний каталог. Часть рабочей области можно отвести под виртуальный терминал (меню Окно | Эмуляция терминала).

Можно переключить Konqueror и в режим Midnight Commander. Все режимы на самом деле задаются настроечными файлами в каталоге

~/.kde/share/apps/konqueror/profiles (помните, что «~» − это ваш домашний каталог).

Программа, пользующаяся этими настройками, называется kfmclient.

Konqueror, дополнительные возможности

При работе с FTP-сервером удобно видеть сразу два каталога − локальный и удаленный. Если вы используете Konqueror для работы с FTP, вы можете разделить окно «Завоевателя» на две части. Для этого нажмите Ctrl + Shift + L. Перед этим весьма желательно развернуть окно на весь экран. Выберите одну из частей (какую вам удобнее) и в строке Адреса (Location) введите адрес вашего FTP-сервера: ftp://ftp.server.ru. «Завоеватель»

172

попросит вас ввести имя пользователя и пароль, а после этого вы сможете удобно работать с FTP-сервером.

Если в строке Адреса ввести smb:/, вы увидите рабочие группы и домены Windows, если таковые есть в вашей сети. Для работы этой функции должен быть установлен и запущен пакет Samba.

А теперь попробуйте ввести в строке адреса rlan:/. Думаю, вы найдете в своей сети много интересного.

Вставьте Audio CD в ваш привод CD-ROM. Запустите Konqueror и введите audiocd:/. Вы увидите список дорожек вашего Audio CD, которые будут представлены в виде отдельных WAV-файлов. В зависимости от установленных плагинов вы можете преобразовать дорожки в форматы МРЗ или OGG или же просто сохранить на диске как WAV-файлы.

Центр управления KDE

Центр управления играет ту же роль, что панель управления Windows, с той лишь разницей, что Панель управления настраивает всю систему и целом, а Центр управления — только KDE. Зато в пределах KDE настройке поддается практически все. В разных дистрибутивах и разных версиях KDE может отличаться не только организация и состав разделов Центра управления, но и способ его вызова. Так, в KDE версии 3.2 он называется Настройка своего рабочего стола и вызывается через К | Система, а в KDE 3.3 он вернулся в меню К. Следующая таблица (табл. 4.2) пригодна для KDE 3.2. Последней вышла версия KDE 3.4. Ее особенности мы рассмотрим в отдельном разделе.

 

Таблица 4.2

 

Разделы Центра управления

Раздел

Описание

 

 

В этом разделе находятся настройки виртуальных рабочих столов,

 

LookNFeel

 

 

декорации окон, панелей (в том числе и панели задач), пиктограмм,

 

 

стиля и оформления окон, фона рабочего стола и хранителя экрана

 

Безопасность

Параметры шифрования, в том числе поддерживаемые алгоритмы

 

 

шифрования

 

Звук

Параметры сервера звука aRts и системных звуков

 

Информация

Сведения о системе. Этот раздел — своеобразный аналог программы

 

 

Syslnfo из пакета Norton Utilites

 

Периферия

Настройки периферийных устройств: цифровой камеры, клавиатуры и

 

 

мыши

 

Компоненты

Опции различных компонентов и служб KDE

 

Просмотр Web

Параметры браузеров Konqueror и Netscape

 

Сеть

Настройки для работы с сетью. В этом разделе можно указать, как с

 

 

сетью будете работать вы. Настраивать же собственно сеть может

 

 

только администратор

 

Система

Общесистемные параметры, например, параметры менеджера

 

 

регистрации. Изменить их вправе только суперпользователь

 

 

173

 

Специальные

В этом разделе вы сможете определить привязки клавиш, раскладки

возможности

клавиатуры, выбрать страну и язык

 

Загляните в этот раздел, если вы используете ноутбук

Управление

питанием

 

В разделе Специальные возможности: Страна и язык обязательно установите свою страну (Россия или Украина), выберите язык и установите кодировку (koi8-r или koi8-u). Все эти параметры необходимы для правильного отображения русскоязычных символов в окнах приложений KDE.

Работа со съемными носителями в KDE

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

Оконная среда KDE до версии 3.3 не выполняла монтирование автоматически, и вы должны знать, как сделать это вручную.

Обычно команда mount применяется в формате:

mount -t <тип_ФС> <устройство> <точка_монтирования>

Устройство — это имя файла этого устройства. Большинство современных CD-ROM- приводов подключаются к IDE контроллеру, поэтому для ссылки на компакт-диск используется имя IDE-устройства − чаще всего /dev/hdc. Инсталлятор обычно распознает CD-ROM и создает символическую ссылку

/dev/cdrom->/dev/hdc.

Типы файловой системы на съемных носителях чаще всего такие:

Таблица 4.3

Название

Система

 

 

ext2

Основная файловая система Linux

ext3

Журналируемая надстройка, полностью совместимая с ext2

vfat

Файловая система Windows: FAT, VFAT, FAT32

iso9660

Файловые системы для компакт-дисков

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

174

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

/etc/fstab.

Так, для подключения flash-накопителя:

1.включаю его в USB-порт;

2.перехожу в текстовую консоль или открываю окно виртуального терминала;

3.mount /media/usbdisk # или mount /dev/sdal.

Перед извлечением съемный носитель необходимо размонтировать командой umount [устройство | точка_монтирования].

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

При работе с компакт-дисками обычно не возникает сбоев, потому что лоток привода CD-ROM контролируется системой. Вы просто не сможете извлечь компакт-диск до тех пор, пока устройство не будет размонтировано. А вот при работе с дискетами и flash-накопителями проконтролировать вас некому. Помните, что, пока вы не размонтировали дискету, физическая запись на нее не будет произведена. Это значит, что, если вы сохранили свой документ на дискету и вытащили ее из дисковода, файла документа на ней не будет, несмотря на то, что вы вышли из текстового редактора. Вы забыли размонтировать файловую систему!

Добавление собственных команд в контекстное меню KDE

Запустите Konqueror и щелкните правой кнопкой мыши на какомнибудь файле. Вам чего-то не хватает? Хочется добавить какую-то команду? Или есть команда, которую вы выполняете очень часто? KDE позволяет создавать собственные команды меню, чем мы и займемся в этом пункте.

Давайте создадим дополнительную команду, которая делает файл исполняемым. Это действие очень полезно, если вы часто пишете сценарии bash. Ведь сценарии bash − это обычные файлы, созданные в текстовом редакторе. Чтобы сценарий запускался, нужно с помощью команды chmod +x имя_файла сделать его исполняемым − но команду вводить лень, хочется все сделать мышкой.

В любимом текстовом редакторе создайте файл следующего содержания:

Листинг 4.1; Файл make_exe.desktop

[Desktop Entry] ServiceTypes=all/allfiles ServiceType=application/x-shellscript Actions=MakeExe

175

[Desktop Action MakeExe] Name=Make executable Name[ru]=Сделать файл исполняемым

Exec=chmod +x %f Icon=kfm

Рассмотрим первую секцию. Первая директива задает тип файлов, для которых можно выполнить указанное действие. В данном случае действие доступно для всех файлов (allfiles). Если вам нужно выполнить какое-то действие для каталога, то значением директивы ServiceTypes должно быть mode/directory.

Вообще в качестве значения этой директивы можно указать любой MIMEтип, например:

ServiceTypes=audio/x-mp3

Если действие должно быть выполнено для всех типов файлов, кроме некоторых, используйте директиву ExcIudeServiceTypes. Например, действие архивирования не имеет смысла производить над архивами:

ServiceTypes=all/allfiles ExcludeServiceTypes=application/x-zip,kdedevice/*

Директива Actions определяет действия, описанные в файле. В данном случае описано только одно действие MakeExe, которое определено в секции [Desktop Action MakeExe]. Директива Name − это надпись, которую вы увидите в контекстном меню KDE. Желательно писать ее на английском языке. Директива Name[ru] − это надпись, которую увидит пользователь локализованного KDE.

Директива Exec − это команда, которая будет выполнена. %f − параметр, определяющий имя файла; то есть имя файла, на котором вы щелкнули правой кнопкой, будет подставлено вместо %f.

Созданный файл сохраните под именем make_exe . desktop.

Как видите, в этом нет ничего сложного. Осталось только сохранить файл в нужном каталоге − /usr/share/apps/konqueror/servicemenus.

Для записи в этот каталог нужны права суперпользователя. Если же администратор системы не вы, то скопируйте файл в каталог ~/.kde/ share/apps/konqueror/servicemenus, и новая команда будет доступна только вам.

Новое в КDЕ 3.4

В состав дистрибутива Fedora Core 4 вошла новая версия KDE 3.4, и которой, как сообщают (www. kde.org), исправлено более 6500 ошибок, учтено более 1700 пожеланий, включено 80000 пополнений от'различных разработчиков. Среди главных новшеств:

Полностью обновлена система корзины.

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

Добавлен синтезатор речи с возможностью интеграции в браузер Konqueror, текстовый редактор Kate, PDF-просмотрщик KPDF.

176

Приложение Kontact поддерживает больше серверов совместной работы (groupware).

Улучшен механизм обнаружения подключенных устройстн через HAL. Теперь KDE монтирует съемные носители автоматически, но не спешите радоваться: кириллицу в именах файлов на USB-диске она автоматически не распознает.

Почтовый клиент KMail теперь может использовать KWallet (бумажник KDE) для хранения паролей, а доступ к самому бумажнику можно сделать беспарольным.

Появилась возможность использования файлов в формате SVG {Scalable Vector Graphics) в качестве обоев для рабочего стола.

Оконная среда GNOME. Общее описание и методика работы

Среда GNOME (GNU Network Object Model Environment − Сетевая Объектная Среда GNU) − один из основных конкурентов среде KDE. Среда

GNOME.(www.gnome.org) является частью проекта GNU (www.gnu.org),

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

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

177

В среде GNOME настраивается практически все: один раз настроив сеанс по своему вкусу, вам больше не нужно будет повторять его настройку, потому что менеджер сеансов позаботится о сохранении настроек. Как и в

KDE, в GNOME поддерживается метод drag-and-drop.

На данный момент в составе большинства дистрибутивов Linux поставляется версия GNOME 2.6, но она уже считается устаревшей, поскольку относительно недавно вышла версия GNOME 2.10. Справедливости ради нужно отметить, что некоторые дистрибутивы (например, Fedora Core 3) содержат версию GNOME 2.8, которая не сильно отличается от версии 2.10.

Основные элементы среды − это рабочий стол, панель GNOME и панель задач. На панели GNOME (узкая полоска вверху экрана) расположены кнопки главного меню Приложения (выбор приложения) и Команды (различные команды, например, Выполнить или Завершить сеанс), а также апплеты. Все остальное пространство называется рабочим столом. Нижняя полоска внизу экрана − это панель задач. Ее можно пременно убрать с экрана, щелкнув по стрелке в углу. Апплеты − небольшие программы, которые работают внутри панели и запускаются щелчком мыши по значку на панели. Сразу после установки вы можете увидеть там, например, календарь.

Один из базовых принципов GNOME 2 состоит в том, чтобы упрощать все, что только можно: элементов управления под рукой у пользователя должно быть как можно меньше. Девизом GNOME 2 стала фраза «just works» − «работает, и все», без дополнительных настроек.

Так, монтирование съемных носителей выполняется автоматически: вставьте компакт-диск или flash-накопитель, и на рабочем столе сразу же появится соответствующий значок. Размонтируйте носитель командой − Отсоединить (Eject) из контекстного меню этого значка. Следует отметить

178

также, что GNOME распознает тип съемного носителя и в зависимости от типа запускает то или иное приложение. Например, когда вы вставите DVDдиск, будет запущен DVD-проигрыватель.

Файловый менеджер Nautilus

Начиная с версии 1.4, в пакет GNOME входит файловый менеджер Nautilus, в дальнейших версиях ставший файловым менеджером по умолчанию. Это разработка компании Eazel, собравшей у себя ветеранов Apple − создателей интерфейса Macintosh, до сих пор никем не превзойденного по простоте и удобству. В нем нет ничего лишнего: ни панели инструментов, ни адресной строки − только окно с файлами и каталогами.

Каждый каталог открывается в новом окне, а размер, положение окна и представление файлов (значками или списком) привязаны к этому каталогу: в следующем сеансе окно этого каталога откроется в том же месте рабочего стола. Такой интерфейс называется пространственно ориентированным. Идея состоит в том, что на настоящем рабочем столе бумажные папки не замещают друг друга, а всегда лежат там, куда вы их последний раз переложили. Считается, что так новичку легче приме

179

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

~/.gconf/apps/nautilus/preferences.

Кнопка «Назад», привычная по Проводнику Windows, выглядит как галочка в левом углу строки состояния. В диалоге открытия файла отсутствует строка ввода имени, но ее можно вызвать комбинацией клавиш Ctrl+L.

В Nautilus встроена возможность записи компакт-дисков: программа nautilus- cd-burner.

С версии 2.6 основным веб-браузером стал Epiphany (http://www. gnome.org/projects/epiphany), облегченная версия браузера Galeon на движке Mozilla. Роль почтового клиента исполняет органайзер Evolution.

Настроить среду GNOME можно как из меню Приложения -> Параметры

(Applications -» Desktop Preferences), так и из командной строки.

Графический конфигуратор называется gconf-editor.

Расширенная система управления ММЕ-типами

Следующая особенность GNOME 2.8-2.10 − расширенная система управления MIME-типами. Если вы пытаетесь открыть не зарегистрированный и системе MIME-тип (например, файл с расширением

.doc, а система не знает, какое приложение обрабатывает файлы с таким расширением), то будет отображено окошко, в котором можно будет связать данный тип с конкретным приложением для его обработки.

180

Если для данного типа установлено несколько программ (например, для HTML-файлов установлено несколько браузеров), то, щелкнув по файлу правой кнопкой мыши, вы сможете выбрать предпочитаемое приложение − прямо как команда «Открыть с помощью» в Windows. Такая организация интерфейса упрощает работу с Linux начинающим пользователям.

Поддержка службы DNS-Based Service Discovery

Теперь GNOME поддерживает службу DNS-Based Service Discovery,

которая позволяет организовать привычное для пользователей Windows сетевое окружение − вам не нужно ни ломать голову над настройкой Samba, ни настраивать посторонние программы для просмотра Windows-сети.

Рис. 4.6. Самое обычное сетевое окружение

Особенности последних версий

Думаю, не нужно говорить о том, что сам интерфейс последней версии GNOME стал намного приятнее и появилось много разнообразных тем рабочего стола (меню Приложения Параметры Тема):

Центр управления GNOME тоже стал намного приятнее. Чего только стоит апплет управления раскладками клавиатуры (Приложения Параметры Клавиатура). До его появления некоторые пользователи и не знали, что такое раскладка Dvorak (или любая другая) − теперь можно не просто выбрать раскладку, но и «посмотреть» на нее.

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

181

еще и силу сигнала, что особенно актуально для беспроводных средсти связи и dial-up соединений. Для более подробной информации о сетевых соединениях используйте новую утилиту nettool.

Для пользователей ноутбуков особенно актуален апплет Индикатор состояния батареи, показывающий, на сколько времени еще хватит заряда аккумулятора.

182

GNOME 2.10 входит в состав дистрибутива Fedora Core 4. К ней добавилась новая тема — Clearlook — и панель GNOME стала организована логичнее

(рис. 4.10).

4.3.2. Добавление собственных команд в контекстное меню GNOME

Меню Сценарии в GNOME устроено и действует аналогично меню Действия в KDE. Только если в случае KDE файл контекстного меню имел определенный формат, то в GNOME это − обычный bash-сцена-piiii. Хорошо это или плохо, зависит от того, хорошо ли вы знаете bash. Хорошее знание языка командного интерпретатора bash поможет вам создать очень сложные сценарии, автоматизирующие огромное количество рутинной работы.

Идея достаточно проста. Вы создаете bash-сценарий и помещаете его в каталог ~/.gnome2 /nautilus-scripts/. В этом каталоге можно создавать подкаталоги — они будут отображаться как дополнительные меню.

Теперь рассмотрим пример сценария, конвертирующего изображение в формат GIF при помощи программы-конвертера convert (листинг 4.2). Файл, по которому пользователь щелкнул правой кнопкой мыши, передается нашему сценарию как первый.

#!/bin/bash Convertprg=’which cjnvrt’ While [$# -gt 0 ]; do picture=$l

filetype=’file $picture | cut -d ' ' -f 1’’ 3s it [ $filetype = "image" ]

then

183

newfile="echo "$picture" | cut -d . -f'lN $convertprg "$picture" "$newfile".gif

fi shift done

Автоматическая смена обоев

Обои на рабочем столе рано или поздно надоедают, и хочется их сменить. Делать это вручную — лень: это ж сколько придется щелкать мышкой. Лнтоматизируем эту рутинную процедуру, написав сценарий, выбирающий обои из каталога /home/den/Wallpapers (где у меня хранятся мои любимые обои) случайным образом. Собственно установку обоен выполняет утилита GNOME gconftool-2.

Файл change_wallpaper #!/bin/bash

export DIR='/home/den/Wallpapers/' export NUMBER=$RANDOM

export TOTAL=0 for f in ls $DIR' do

let "TOTAL += 1" done

let "NUMBER %= TOTAL" export CURRENT=0

for f in ls $DIR’ do

if [ $CURRENT = $NUMBER ] then

/usr/bin/gconftool-2 -t string

-s /desktop/gnome/background/picture_filename $DIR/$f break

fi

let "CURRENT += 1"

done

Можно сэкономить и на запуске сценария change_wallpaper, заставив его запускаться автоматически. Во-первых, вы можете добавить его в сценарии загрузки системы. Для домашнего компьютера, который на ночь выключают, это неплохое решение: вы будете каждый день сидеть за столом с новыми обоями. Во-вторых, вызов сценария change_wallpaper можно поместить в сценарий запуска GNOME. И в-третьих, change_wallpaper можно вручить диспетчеру расписаний cron для выполнения по назначенному вами расписанию.

7.7.Офисные пакеты. Open Office и К Office

Всреде Linux наибольшее распространение получили два офисных пакета: К Office и Open Office, оба − свободно распространяемые. В

184

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

Пакет Open Office обладает гораздо большим количеством возможностей, чем К Office, и наиболее приближен по своей функциональности к MS Office.

К Office предназначен для среды KDE, которую чаще назначают средой по умолчанию, и чувствует себя в ней намного лучше, чем Open Office. Например, некоторые комбинации клавиш Open Office не работают из-зa того, что они используются самой средой KDE. Разумеется, можно их переназначить, но тогда использовать KDE будет не так удобно.

Сдругой стороны, К Office хуже справляется с форматами MS Office. При попытке открыть большие документы, например, документ MS Word 97/2000/ХР размером 1.2 Мб, программа К Word просто закрылась. Точно гак же себя ведет и программа К Spread − прайс-лист одной фирмы (около IM) загружался около 30 секунд, а когда индикатор достиг отметки 100%, окно программы просто закрылось. К Presenter кое-как открыл презентацию PowerPoint, но форматы рисунков и текст были заметно изменены.

Таблица 4.4

 

Состав пакета Open Office

Приложе

Назначение

ние

 

Writer

Текстовый процессор, предлагающий мощные функции для

 

создания и редактирования документов разных форматов

Calc

Редактор электронных таблиц

Draw

Программа Draw ориентирована на векторную графику и служит для

 

создания рисунков, эмблем и плакатов

Impress

Программа для создания презентаций

Math

Благодаря этому редактору, вы можете вставлять математические

 

формулы в различные документы пакета

Image

Программа предназначена для сканирования и обработки фотографий

 

 

Schedule

Планировщик, который поможет вам организовать свой рабочий день

Open Office − это бесплатный вариант пакета Star Office от Sun Microsystems. Названия программ, входящих в состав обоих пакетов, отличаются только префиксом, ОО или SO соответственно. Например, SO Writer и ОО Writer − это одна и та же программа.

Приложение

Назначение

К Word

Текстовый процессор, аналог программы MS Word

К Spread

Редактор электронных таблиц. Обладает несколькими

 

оригинальными функциями, которые вы не найдете ни в ОО

 

Spreadsheet, ни в MS Excel

К Chart

Приложение для построения диаграмм

К Illustrator,

Редактор векторной графики

Kontour

 

К Presenter

Программа для создания презентаций

К Formula

Редактор математических формул

 

185

При помощи К Word можно сохранять текстовые файлы в формате PDF. Выполните команду Файл Печать и вместо принтера выберите опцию Печать в файл PDF.

К Spread не поддерживает формат MS Excel, но совместима с форматом GNUmeric − редактора электронных таблиц, входящего в состав большинства Red Hat-подобных дистрибутивов; а уж из GNUmeric можно экспортировать таблицу в MS Excel. Если в вашем дистрибутиве этого пакета нет, то скачать его можно с http://www.gnome.org/projec-

ts/gnumeric.

Возможностей К Presenter хватит даже для самой сложной презентации. Программа К Presenter, как и все программы К Office, довольно быстро работает, что немаловажно, если вам нужно показывать презентацию на стареньком 486-ом ноутбуке. К тому же, если у вас установлена KDE, скорее всего, будет установлен и К Office, чего нельзя сказать об Open Office.

Уменьшение времени запуска Open Office

Наверное, вы заметили, что любое приложение из пакета Open Office запускается, мягко говоря, медленно. Чтобы ускорить этот процесс, нужно установить утилиту быстрого запуска Open Office.. Помните, что-то подобное было в Microsoft Office, только в случае с Open Office данная утилита действительно работает.

Утилита называется Open Office Quick Starter. Пакет, содержащий эту утилиту, называется ooqs или ooqs-kde − в зависимости от дистрибутива. В случае, если вы используете GNOME, вам нужен пакет ooqstart-gnome. В большинстве дистрибутивов эти пакеты имеются. Все, что вам нужно сделать, − установить нужный пакет и наслаждаться быстрым запуском Open Office.

Новое в Open Office 2.0

Всостав дистрибутива Fedora Core 4 входит пакет Open Office версии

2.0.По сравнению с версией 1.1 в нем улучшена совместимость с форматами документов MS Office. Текстовый редактор ОО Writer теперь поддерживает вложенные таблицы, вертикальную ориентацию текста в ячейке, появилась возможность импорта документов в формате WordPerfect. ОО Calc теперь разрешает таблицы того же размера, что и MS Excel, то есть 65536 строк, поддерживает диагональные линии в ячейках и колонтитулы в стиле MS Excel; добавилась также возможность импорта таблиц Lotus 1-2-3 до версии

9.7.Появилась возможность открывать защищенные паролем документы MS Word и MS Excel (если пользователь, конечно, знает пароль).

186

Рис. 4.11. СУБД 00 Base

На панель рисования ОО Draw добавлены новые группы готовых объектов: основные формы, стрелки, элементы блок-схем, звездочки. Полностью переписан движок презентаций, что позволяет ОО Impress показывать почти все анимационные эффекты MS PowerPoint.

В составе пакета появилось новое приложение − ОО Base. Как нетрудно догадаться по названию, это СУБД, позволяющая создавать и управлять таблицами, запросами, формами и отчетами. Мастер таблиц предлагает множество заготовок таблиц делового и личного (например, фитнесс-дневник) назначения. ОО Base понимает базы данных dBase, MS Access, ODBC, JDBC, MySQL, импортирует электронные таблицы и текстовые файлы, может использовать LDAP сервер как источник данных.

7.8. Издательские системы. Язык разметки ТеХ

ТеХ (произносится «тех») − это система подготовки документов, содержащих большое количество формул и таблиц. Она была разработана в конце 70-х гг. американским математиком Дональдом Кнутом, автором знаменитой книги «Искусство программирования». Система ТеХ была портирована на платформу Unix программистами Говардом Трики (Howard Trickey) и Павлом Куртисом (Pavel Curtis).

Размер документа, содержащего много формул, в формате ТеХ раз в десять меньше, чем в формате MS Word. К тому же документ ТеХ не зависит от платформы. Это объясняется тем, что в системе ТеХ вид и расположение всех объектов документа описываются текстовыми директивами подобно тому, как это делается в формате HTML. Только директивы ТеХ начинаются с обратной косой черты.

187

Текст документа ТеХ набирается в любом ASCII-редакторе. Затем исходный текст (файл с расширением .tex) компилируется в файл DVI (Device Independent), который не зависит от платформы и устройства. Этот файл уже можно просматривать, печатать и отправлять в издательство. Для его просмотра и печати предназначена программа xdvi из пакета tetex-

xdvi.

Например, так выглядит фрагмент страницы с набранной формулой в ASCIIредакторе:

\layout Enumerate

Математических:

\begin_inset Formula $\sin\frac{\alpha}{2}$

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

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

ТеТеХ − система подготовки документов для UNIX-подобных ОС. В состав дистрибутива Fedora Core 3 входит пакет tetex-latex версии 2.0.2. Более ранние версии ТеТеХ (до версии 0.9) не умели конвертировать ТеХдокументы в формат PDF. Начиная с версии 0.9, в состав ТеТеХ входит утилита pdftex, которая предназначена для прямого конвертирования texфайла в формат PDF

Коллекцию ссылок на справочные материалы по языку ТеХ можно найти но адресу http://www.tex.uniyar.ас.ru/doc.htm.

Текстовый процессор LyX

Работа над любым документом распадается на две части: разработку содержания документа и представление его в удобном для читателя виде. Принцип WYSIWYG («видишь то, что получишь на печати») облегчает тлько вторую часть работы, и обычный автор, не будучи одновременно дизайнером, не умеет и не хочет использовать все возможности какогонибудь MS Word для грамотного оформления своей статьи. Автор предпочел бы описать структуру своего документа так, чтобы легко было применить к нему стиль, разработанный профессиональным дизайнером, и сосредоточиться на своей работе, а не на подробностях оформления.

Этот принцип называется WYSIWYM (What You See Is What You Mean, видишь то, что подразумеваешь»), и реализован в текстовом процессоре LyX (http://www.lyx.org) . LyX − это визуальный редактор

188

ТеХ, отображающий документ не в точности так, как он будет выглядеть на бумаге, но достаточно похоже, и вместе с тем не затемняющий его структуру. На рисунке 4.13 показано продолжение работы над документом example: вставка сноски.

LуХ не создает DVI-файлы в домашнем каталоге пользователя. Найти их можно во временном каталоге. Обычно это /tmp/lyx__tmpdir???????, где ?????? − это произвольная последовательность букв и цифр. Если пы запускали просмотр DVI несколько раз, у вас будет несколько таких каталогов. Поищите DVI-файлы в этих каталогах − вы обязательно найдете нужный вам файл. Для автоматизации поиска этих файлов откройте окно виртуального терминала и введите команду:

find /tmp/lyx_tmpdir* -name*.dvi

Издательская система Scribus

TeX/LaTeX − удачная система для верстки научных работ, но в мире Windows есть много издательских систем, куда лучше приспособленных для создания макетов: Corel Ventura®, Quark Xpress®, Adobe Pagemaker®, InDesign®.

Положение сторонников свободного программного обеспечения изменилось в 2003 г., когда вышел финальный релиз пакета компьютерной верстки Scribus 1.0 (http://www.scribus.org.uk, автор ядра программы − Франц Шмид).

Scribus − полноценная издательская система, в которой реализованы все необходимые для предпечатной подготовки документов функции, в том числе цветоделение по каналам CMYK, система управления цветом, поддержка Unicode для вывода на нетрадиционных языках, экспорт результатов в форматы PDF и PostScript. В качестве внутреннего формата хранения данных программа использует язык описания XML, что облегчает экспорт данных в другие пакеты.

Программа Scribus поддерживает такие распространенные графические форматы, как Encapsulated PostScript (EPS), JPEG, TIFF, Portable Network Graphics (PNG), XpixMap (xpm). Начиная с версии 1.0, Scribus поддерживает русский язык.

Scribus был включен в состав следующих дистрибутивов:

189

Debian (нестабильный релиз)

Gentoo Linux

Mandrake 8.2

Lindows

Lycoris

Fink 0.4

Если вы используете один из этих дистрибутивов, то, возможно, Scribus уже установлен у вас. А если нет, то пакет scribus версии 1.2 можно скачать из репозитария Sisyphus по адресу ftp://ftp.altli.nux. ru/pub/distributions/ALTLinux/Sisyphus/SRPMS.classic/ scribus-1.2.1-altl.l.src.rpm.

Перед его установкой убедитесь, что у вас уже установлены:

библиотека Qt-3.3;

библиотека libpng версии 1.2.x;

ghostscript — интерпретатор языков PostScript и PDF — версии 7.x;

шрифты PostScript. Шрифты TTF поддерживаются Scribus начиная с версии 0.4.7

Среда KDE, для работы Scribus она ненужна, но понадобится, если вы хотите использовать метод drag-and-drop.

Дополнительно можно установить Little CMS − систему управления цветом и цветоделения с поддержкой ICC-профилей, а взять ее можно с http: //www.littlecms.com. В меню Edit появится команда Color Management System.

7.9. Графика в Linux

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

7.9.1. Графические редакторы. Редактор растровой графики GIMP

The GIMP (The GNU Image Manipulation Program) − свободно распространяемый редактор растровой графики, по своим функциям ставший достойной заменой программе Photoshop. Вот некоторые возможности GIMP.

поддерживает практически все форматы растровой графики: GIF, JPEG, PNG, TIFF, BMP, AVI, MPEG, PS, PCX, XPM, TGA и другие;

содержит множество инструментов для обработки изображений;

поддерживает работу со слоями;

полный Альфа-канал;

может использоваться для создания анимации − Gif, AVI;

содержит средства для разложения видео в форматах MPEG1, XANIM на кадры;

190

поддерживает сценарии и расширения, благодаря которым можно добавить в программу новые функции. Поддерживаются сценарии

Script-Fu, Perl-Fu, Python-Fu;

обладает улучшенным управлением памятью: в результате размер изображения ограничен только объемом жесткого диска;

операции Отмена (Undo) и Повтор (Redo) ограничены только дисковым пространством;

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

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

Программа The GIMP доступна по адресу http: //www.gimp.org

KPaint

Программа KPaint, входящая в состав KDE, представляет собой полную противоположность программе The GIMP . KPaint обладает небольшим числом функций и инструментов, в ней нет системы плагинов, а о каналах и слоях эта программа вообще ничего не знает. Даже для создания самых простых изображений приятнее и удобнее использовать программу GIMP. KPaint поддерживает форматы BMP, EPS (встраиваемый PostScript), TIFF, GIF, JPEG, PNG, ICO, PGN, XPM.

KlconEdit редактор иконок

Программа KIconEdit − редактор пиктограмм KDE. Используется для создания пиктограмм для среды KDE. Довольно простой редактор, позволяющий быстро создать пиктограмму для вашей программы.

7.9.2. Программы — просмотрщики изображений

Следующая группа программ − это программы просмотра изображений: GQView, KView, KuickShow, ImageMagick, Electric Eyes. Я предпочитаю программу GQView − она больше напоминает мне популярную программу

ACDSee.

GQView

GQView можно использовать вместе с программами The GIMP, Electric Eyes и XPaint. Для редактирования загруженного изображения в программе

The GIMP нажмите Ctrl + 1, в Electric Eyes − Ctrl + 2, в XPaint − Ctrl + 3.

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

Программа может создавать коллекции рисунков, находить похожие файлы (по имени, размеру и другим параметрам).

191

Программа поддерживает форматы файлов: JPEG, TIFF, GIF, PNG, XPM, BMP, PCX, PGM, PPM. Можно порекомендовать для использования в качестве основного просмотрщика.

Electric Eyes

Следующая программа − Electric Eyes. Эта программа в некоторых дистрибутивах не устанавливается по умолчанию или вообще отсутствует. Для ее установки нужно установить пакет «ее». Взять его можно с http://ftp.vn.ua/pub/unix/redhat-7.2/RedHat/RPMS/ее-0.3.12- 5.i3 8 6.rpm.

Electric Eyes − не только просмотрщик: с его помощью можно редактировать изображения, сохранять файлы в других форматах. Для перехода в режим редактирования щелкните правой кнопкой мыши на изображении и выберите команду Просмотр Показать/убрать панель редактирования.

Используя панель редактирования, очень легко отредактировать цветовую гамму рисунка, изменить размер, повернуть изображение, сделать скриншот экрана или выбранного окна. Для «фотографирования» экрана нажмите кнопку Снять содержимое экрана целиком и сейчас. Вы также можете выбрать окно для снятия − нажмите кнопку Выбрать окно для снятия.

Интерфейс программы немного необычен, но со временем к нему можно привыкнуть. Как и в программе The GIMP, любое действие здесь производится через контекстное меню, то есть нужно активно использовать правую кнопку мыши.

Программа поддерживает форматы: JPEG, GIF, PNG, TIFF, PS, BMP и другие.

KuickShow

Программа быстрого просмотра KuickShow соединяет в себе функции файлового браузера с программой просмотра. Программа относится к среде KDE, чем и объясняется первая буква в ее названии.

При щелчке по имени файла этот файл будет загружен в новое окно программы. Файлы можно открывать и в том же окне, и в новом. При желании можно установить полноэкранный режим просмотра. Программа в состоянии организовать даже слайд-шоу. Поддерживаются все графические форматы, известные KDE (*.jpeg, *.jpg, *.gif, *.xpm, *.ppm, *.pgm, *.pbm, *.pnm, *.png, *.bmp, *.psd, *.eim, *.tiff, *.xcf).

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

KView

192

Программа KView является достойной альтернативой программе KuickShow. KView не умеет показывать слайд-шоу в автоматическом режиме, зато она в состоянии повернуть изображение на заданный угол, отразить и сохранить результат, а также работать в полноэкранном режиме. Для перехода в этот режим нажмите комбинацию клавиш Ctrl + Shift + F. Кроме того, KView умеет еще и сканировать изображения.

Коока

Следующая группа программ предназначена для сканирования изображений: это Коока и XSane. Первая программа, как указывается в документации KDE, предназначена для сканирования и распознавания текста. Коротко о ней можно сказать так: до FineReader ей еще очень далеко.

XSane

Для сканирования изображений я предпочитаю использовать программу XSane (http://www.xsane.org). Правда, она работает не очень стабильно, но результаты сканирования лучше, чем у программы Коока.Оценка:

KSnapShot

Эта программа предназначена для захвата экрана или отдельного окна и сохранения результата в PNG-файл. Скриншоты для этой книги я делал именно с помощью KSnapShot. Вообще не представляю, как бы я обошелся без этой программы. Можно, конечно, использовать Electric Eyes, но запускать редактор изображений для того, чтобы сделать пару скриншотов, не очень рационально.

Можно воспользоваться комбинациями клавиш KDE − Ctrl + Print и Alt + Print. Первая делает снимок всего экрана, а вторая — только активного окна. Но куда потом вставить этот снимок? В KPaint? Попробуйте. В нормальный редактор, например, The GIMP, копию экрана вставить невозможно, а использовать KPaint очень неудобно.

KSnapShot позволяет установить задержку, за время которой можно подготовить экран к съемке: открыть нужные окна, меню приложения или меню KDE. Через установленное время программа сфотографирует весь экран или текущее окно, оповестит об этом звуковым сигналом и предложит сохранить снимок.

ImageMagick

Пакет ImageMagick обычно используется для просмотра изображений и преобразования их в другой формат. Честно говоря, мне не понравился интерфейс и набор функций этого просмотрщика. Но в пакете ImageMagick есть полезная утилита import, позволяющая легко и быстро сделать снимок экрана. Может быть, среда KDE у вас вообще не установлена, поэтому программой ksnapshot воспользоваться нельзя? Тогда введите (в X-терминале или окне запуска приложений вашей оконной среды) команду:

193

$ sleep 5; import -window root screen.png '

Команда sleep генерирует необходимую задержку в секундах. Думаю, 5 секунд хватит, чтобы вы смогли привести экран в нужный вид: вывести на передний план нужное окно, выбрать нужный пункт меню и т.п. Через 5 секунд будет выполнена команда import. Она сделает снимок корневого окна, то есть всего экрана, и запишет его в файл screen.png. Формат PNG для снимков экрана оптимален. Если вам нужен другой формат, например, JPG, просто измените расширение выходного файла:

$ sleep 5; import -window root screen.jpg

А как сделать снимок конкретного окна? Первый способ − указать координаты или геометрию окна, предварительно узнав их по команде xwininfo:

$ sleep 5; import -crop 400x300 screenl.png

$ sleep 5; import -geometry геометрия screen2.png

После запуска программы xwininfo указатель мыши изменит свой вид со стрелки на крестик. Щелкните по окну, и программа предоставит о нем подробную информацию И второй способ:

$ import window.png

Команда sleep не нужна, поскольку программа import предоставит вам возможность выбрать нужное окно − указатель мыши тоже изменится на крестик. Щелкните на нужном окне, и буквально через полсекунды в файл window.png будет записан образ выбранного окна.

Программа import довольно гибкая, рекомендую прочитать man этой программы − вы найдете там много интересного.

А что если вам нужно сделать снимок текстовой программы, а не графического окна? Проще всего запустить эту программу в Х-терминале, сделать снимок окна X-терминала и отрезать обрамление окна с помощью

GIMP.

Просмотр в консоли документов MS Word и PDF

Для просмотра и редактирования документов MS Word с успехом используется Open Office Writer, но иногда нам нужно быстро просмотреть документ (например, вспомнить номер телефона, указанный в конце документа), и запускать тяжеловесный ОО Writer не хочется.

Для просмотра документов MS Word нам понадобятся две утилиты − wvWare и w3m. Первая − это конвертер документов Word в формат HTML (wvware.sourceforge.net), а вторая − универсальный браузер, которым мы будем просматривать полученный HTML-файл. Обе утилиты входят в состав современных дистрибутивов, правда, могут не устанавливаться по умолчанию.

Итак, для просмотра документа document.doc введите команду (конвейер):

$ wvWare -х /usr/lib/wv/wvHtml.xml document.doc | w3m -T text/html

194

Если вы собираетесь пользоваться этой длиннющей командой часто, оформите ее как bash-сценарий viewdoc, не забыв сделать файл viewdoc исполняемым. Поместите сценарий в каталог /usr/local/bin, чтобы он был доступен всем пользователям системы.

#!/bin/bash

wvWare -x /usr/lib/wv/wvHtml.xml $1 2>/dev/null I w3m -T text/html

Обратите внимание на перенаправление «2>/dev/null». Таким образом, мы подавляем сообщения об ошибках, чтобы они не путались с выводом конвертера. Теперь для просмотра документа document.doc можете воспользоваться командой:

$ viewdoc document.doc

Такой же сценарий можно написать и для просмотра PDF-документов. Конвертером в этом случае будет утилита pdftohtml (http://pdf tohtml.sourceforge.net). Для просмотра созданного программой HTML-кода мы будем применять текстовый браузер clinks.

Итак, для просмотра файла file.pdf будем используем команду: $ pdftohtml -q -noframes -stdout file.pdf | elinks

Опять создадим сценарий /usr/local/bin/viewpdf, автоматизирующий работу:

#!/bin/bash

pdftohtml -q $1 -/temp.html elinks -/temp.html

А вот в дистрибутиве Fedora Core 4 таких фокусов проделывать не нужно: в него включен Evince − быстрый просмотрщик документов в формате PDF и PostScript.

7.10. Дистрибутивы OС Linux

Нумерация версий Linux началась с 0.01, и путь к стабильной версии 1.0 занял почти три года.

 

 

Таблица 1.

 

 

Версии ядра Linux до версии 1.0

Верси

Дата

Особенности версии

я

выхода

 

 

 

 

0.01

17.09.1991

Только ядро, включающее драйвер диска и несколько драйверов

 

 

устройств. Программ не было. Практически система

 

 

использоваться не могла

0.03

26.10.1991

В системе уже запускалась командная оболочка и компилятор С.

 

 

Систему уже можно было использовать и писать в ней новые

 

 

программы

 

 

 

0.10

12.1991

Система поддерживала АТ-жесткий диск. Программы login не

 

 

было – после загрузки ядра сразу загружалась оболочка bash.

 

 

 

 

 

195

0.1112.1991 Уже что-то. Эта версия поддерживала FDD, многонациональные клавиатуры, мониторы VGA, EGA, Hercules. Самое главное, что системой начали пользоваться – ее загрузили и установили несколько человек

0.1205.01.1992 Появилась подкачка – свопинг оперативной памяти на диск.

 

Систему скачало несколько сотен человек. Это первая версия

 

системы, которая распространялась по лицензии GPL

0.96

04.1992 Нет, я не пропустил несколько версий. Просто нумерация была из-

 

менена в связи с приближением к стабильной версии. Данная

 

версия позволяла запускать систему X Window – у Linux появился

 

графический интерфейс

0.99.14

12.1993 А вот здесь я пропустил определенное количество подверсий

 

версии 0.99 — их описывать просто нет смысла

1.0 16.04.1994 Первая версия! С момента выхода версии 0.01 прошло 2 года и 7 месяцев

В апреле 1992 года Орест Збровски перенес на Linux систему X Window. Это был настоящий прорыв – но не из-за того, что у Linux появился графический интерфейс, а потому что обмен между Х-клиентом и X-сервером осуществлялся с помощью UDS — UNIX Domain Sockets. Co-кеты позволили использовать сеть в Linux. Система «повзрослела», что вдохновило Торвальдса на изменение нумерации версий. Разработка сетевой подсистемы − дело довольно сложное. Именно поэтому у версии 0.99 так много подверсий. Версия 1.0 уже могла использоваться в сети.

Разработчики ОС Linux

Линусу помогало много энтузистов, но на первых порах особенно важен нклад следующих добровольцев:

Вернер Альмесбергер (Werner Almesberger) − разработал драйверы

FDD и загрузчик Linux − LILO (Linux LOader);

Теодор Тсо (Theodore Ts'o) − создал файловую систему ext2 (у меня эта файловая система использовалась до конца прошлого года!), библиотеки, распределитель памяти ядра;

Дональд Беккер (Donald Becker) − занимался разработкой сетевых драйверов;

Олаф Кирч (Olaf Kirch) − написал руководство по сетевому админи стрированию Linux;

Питер Мак-Дональд (Peter McDonald) − разработал поддержку за гружаемых модулей в версии 0.99. Правда, в современных версиях ядра этот механизм полностью переделан;

Пол Гортмейкер (Paul Gortmaker) − разработал драйвер RTC (Real Time Clock), несколько сетевых драйверов (в т.ч. NE-2000), написал документы «Linux Ethernet HOWTO» и «Boot-Prompt HOWTO».

Первые дистрибутивы

196

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

Чтобы упростить процесс установки и настройки системы, были созданы так называемые дистрибутивы.

Определение. Диструбитивом называют программный пакет включающий пакет программ с программой установки.

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

Первые дистрибутивы появились в 1992 году, когда Линус выпустил ядро Linux по Стандартной Общественной лицензии GNU (GPL).

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

Первый дистрибутив, созданный в феврале 1992 года Оуэном Ле Бланк

(Owen Le Blanc), назывался MCC Interim Linux (Manchester Computing Centre −

Манчестерский компьютерный центр). Любой желающий мог загрузить этот дистрибутив с FTP-сервера МСС. Чуть позже сотрудники университета Техаса разработали дистрибутив TAMU.

А в октябре 1992 года появился дистрибутив Softlanding Linux System (SLS), созданный Питером Мак-Дональдом (Peter McDonald). Важность этого дистрибутива заключается даже не в том, что это первый дистрибутив, содержавший систему X Window и поддержку TCP/IP. SLS − это прямой предок всемирно известного дистрибутива Slackware.

Формы распространения дистрибутивов

Можно сказать, что современные дистрибутивы распространяются так же, как и первые дистрибутивы:

На дисках (CD, DVD, дискетах);

ВсетиИнтернет(http:// – сайты, ftp – ресурсы).

Один CD − намного удобнее двух-трех десятков дискет (средний размер первых дистрибутивов был около 50 Мб). К тому же на CD можно было записать много дополнительной информации: дополнительные программы, коды ядра и приложений, систему X Window, документацию и пр. Диск с дистрибутивом стоит от 20 до 40 долларов, а дистрибутив на дискетах − 20 долларов.

197

Первое, что вы должны помнить о версии дистрибутива – то, что версия дистрибутива почти никогда не совпадает с версией ядра. Например, взять версию дистрибутива Mandrake 10.1 – она содержит версию ядра 2.6. Точно также было и с первыми дистрибутивами: дистрибутив мог называться XXX 2.0 release, носодержатьверсиюядра1.0, чтосоздавалоопределенную путаницу.

О дистрибутивах можно говорить очень долго. Сегодня существует три основных дистрибутива: Red Hat (RH), Slackware и Debian. Все остальные дистрибутивы являются производными от этих трех дистрибутивов. На наших просторах более популярны RH-совместимые дистрибутивы (Mandrake, ALT Linux, ASP Linux), поэтому мы остановимся только на этих дистрибутивах, точнее тольконадистрибутивеRed Hat.

Компания Red Hat была основана Марком Ивингом (Marc Ewing) в 1994 году, а в 1995 году была куплена компанией АСС Bookstores, принадлежавшей Бобу Янгу (Bob Young). Дистрибутивы от Red Hat пользовались большой популярностью, поскольку они были достаточно надежны (их смело можно было устанавливать даже на серверы), обладали удобной программой установки и удобными средствами конфигурирования системы. Red Hat − это самая большая коммерческая компания, которая занимается только ОС Linux.

Давайте рассмотрим этапы развития дистрибутивов Red Hat (источником информации послужил сайт компании Red Hat – http://fedora.redhat. com/about/history/).

 

 

 

Таблица 2.

 

 

История дистрибутивов Red Hat

 

 

 

Описание

Дата

Версия

 

 

 

Первая бета-версия, основанная на ядре версии 1.1.18 и

29 июля

Просто бета-

1994

версия

 

системе управления пакетами RPP (разработка Red hat).

 

 

 

Данная версия поставлялась на CD, на котором кроме

 

 

 

всего прочего поставлялась полная документация к этой

 

 

 

системе. Не получила широкого распространения. Данная

 

 

 

версия называлась «Red Hat Software Linux»

31 октября

RHL0.9

 

Первая бета-версия, получившая широкое распростране-

1994

(Halloween)

 

ние. Пользователи могли выбрать два ядра — стабильное

 

 

 

(1.0.9) или экспериментальное (1.1.54). В этой версии

 

 

 

появился графический интерфейс к программе rpp — LIM

 

 

 

(Linux Installation Manager). Кроме LIM в этой версии

 

 

 

появились графические программы настройки ОС:

 

 

 

управления пользователями и группами, файлом fstab и

май 1995

RHL1.0

 

Первый релиз (не бета-версия). Построена на ядре 1.2.8. В

 

(Mother's

 

документации она называлась не «Red Hat Software Linux»,

 

Day)

 

a «Red Hat Commercial Linux». Очевидно, изменение назва-

 

 

 

ние произошло после покупки компании Red Hat фирмой

 

 

 

АСС Bookstores. Логотип этой версии содержал «красную

 

 

 

шляпу» — на логотипе был изображен мужчина, несущий в

 

 

 

одной руке красную шляпу, а в другой — портфель

198

Август 1995 RHL 2.0 beta

20 сентября RHL2.0

1995

Отличительная особенность этой версии — поддержка формата исполнимых файлов ELF (Executable Linkage Format), до этого использовался формат "a.out". Система управления пакетами RPP была заменена системой RPM, в результате чего была полностью не совместима с предыдущими версиями

То же самое, но не бета-версия. Дистрибутив использует систему RPM

Дата Версия

23 ноября RHL2.1

1995

Март 15

RHL 3.0.3

1996

(Picasso)

июль-август RHL 1996 3.0.4/3.95

(Rembrandt)

3 октября

RHL 4.0

1996

(Colgate)

 

 

3 февраля

RHL 4.1

1997

(Vanderbilt)

19 мая 1997

RHL 4.2

 

(Biltmore)

 

 

27 августа

RHL

— 16

4.8/4.8.1/4.95

7 — 16

RHL

октября

4.9/4.9.1/4.96

1997

(Mustang)

1 декабря

RHL 5.0

1997

(Hurricane)

 

1 июня 1998 RHL 5.1

 

(Manhattan)

Описание

В этой версии были исправлены некоторые ошибки предыдущей. На основе этой версии компания Digital создала диск «Red Hat 2.1 LiNUX» (для х86-компьютеров), который послужил основой для создания RH для платформы Alpha («Red Hat Linux/Alpha 2.1»)

Первая многоплатформенная версия. Поддерживались архитектуры х86 и Alpha. Для Альфы использовался формат исполнимых файлов a.out, а для х86 — ELF. В этой версии появился Х-сервер Metro-X, утилита настройки принтера и оболочка glint для программы rpm.

Система RPM переписана на С (до этого она была написана на Perl). Появились новые средства конфигурирования,

модуль РАМ (Pluggable Authentication Modules). Благода-

ря переходу на ядро версии 2.0 появилась возможность использовать модули ядра, а до этого на дисках дистрибутива RH поставлялось 72 варианта ядер, из которых пользователь должен был выбрать наиболее подходящее его «железу»

Ядро — 2.0.18. Поддерживаются уже три архитектуры: х86, Alpha и SPARC. Впервые на Alpha используется формат ELF. Изменен логотип дистрибутива, который используется до

сих пор — $$$intro.tif

Исправляла ошибки предыдущей версии

Отличалась использованием стабильной, хотя и устаревшей, версии libc 5.3. Использование устаревшей версии себя оправдало: в версии 5.4 обнаружилось очень много

Использовалась библиотека glibc 2.0.

Исправлены ошибки, связанные с переходом на другую версию С-библиотек (с libc на glibc)

Этот дистрибутив включал программу резервного копиро-

вания BRU2000-PE™ и клиент для Real Audio ™

Особенности этого дистрибутива: графическая среда GNOME (но не устанавливалась по умолчанию), единая утилита конфигурации — linuxconf, браузер Netscape (до

199

12 октября

RHL 5.2

1998

(Apollo)

17 марта

RHL 5.9

1999

(Starbuck)

19 апреля

RHL6.0(Hed

1999

wig)

6 сентября

RHL 6.0.50

1999

(Lorax)

 

 

4 октября

RHL 6.1

27 марта

RHL 6.2

2000

(Zoot)

25 сентября

RHL 7.0

2000

(Guinness)

-

-

Среда GNOME наконец-то интегрирована в дистрибутив. Ядро 2.2, glibs 2.1. Это первый мой RH-дистрибутив, Запомнился как отличный стабильный дистрибутив. У меня до сих пор есть компакт-диск с этим дистрибутивом.

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

-

ISO-образы этой версии были доступны на FTP-сервере

Red Hat

В составе дистрибутива была новая версия библиотеки glibc 2.2 и последняя версия дес 2.96. Включение версии дес 2.96 не было согласовано с разработчиками дес, что

Дата Версия

января 2001 RHL 7.0.90 (Fisher)

16 апреля

RHL 7.1

2001

(Seawolf)

2-21 августа RHL 7.1.93,

2001 7.1.94 (Roswell)

22 октября

RHL 7.2

2001

(Enigma)

 

 

22 марта

RHL 7.2.91

2002

(Skipjack)

6 мая 2002

RHL 7.3

 

(Valhalla)

6 мая 2002 RHEL2.1 AS (Pensacola)

30 сентября RHL 8.0

2002 (Psyche)

Описание

Первая версия, использующая ядро 2.4

Впервые появилась поддержка большого количества язы ков (дистрибутив поддерживал даже китайский и японский языки). Вместе с Netscape поставлялся браузер Mozilla

По умолчанию использовалась новая версия файловой системы — ext3 вместо ext2. А вместо LILO начал использоваться загрузчик GRUB. Хотя при установке можно было

выбрать LILO, если GRUB пользователю не нравился Особенности: GNOME 1.4, KDE 2.2. Послужила основой

для дистрибутива Red Hat Enterprise Linux 2.1 AS (Advanced Server).

-

Выход версии 7.3 не планировался – сразу должна была выйти версия 8.0. Поэтому версию 7.3 нужно рассматривать как «переходную» версию. В версии 8.0 должны быть дссЗ, GTK+ 2, Python 2 и другие новые версии инструментальных средств. Но они «опаздывали» к запланированному сроку выпуска версии 8.0, поэтому было решено выпуск версии 8.0 немного отложить, а вместо нее выпустить версию 7.3 без всех этих нововведений. Но в версии 7.3 все же были исправлены некоторые ошибки версии 7.2.

Red Hat Enterprise Linux 2.1 AS – дистрибутив,

предназначенный для корпоративного применения. Его основа – дистрибутив RH 7.2

В этой версии были дес 3.2, glibc 2.3, GNOME 2, KDE 3.0.3 и OpenOffice.org 1.0.1

200

31

марта

RHL 9

2003

(Shrike)

 

 

 

21

июля

RHL 9.0.93

2003

(Severn)

25 сентября

FC 0.94

2003

(Severn)

 

 

13 октября

FC 0.95

2003

(Severn)

 

 

22 октября

RHEL 3

2003

(Taroon)

 

 

5 ноября

FC 1 (Yarrow)

2003

 

12 февраля;

FC 1.90, 1.91,

29 марта; 27

1.92

апреля 2004

 

5 марта 2004

FC 1 (Yarrow)

 

 

18 мая2004

FC 2

 

(Tettnang)

8 ноября

FC 3

2004

(Heidelberg)

13 июня2005

FC 4 (Stentz)

Основан на ядре 2.4.20 с поддержкой NPTL (Native POSIX Thread Library). Послужил основой для Red Hat Enterprise Linux 3

Это последняя версия «Красной Шапочки» – после этого дистрибутивы стали называться Fedora Core (для настольных систем) и RHEL (для корпоративного применения). Fedora Core — это открытый (читайте – бесплатный) проект, a RHEL — коммерческий проект от RH

Пробная версия Fedora Core

Первый дистрибутив от RH, использующий репозиторий yum для обновления системы

Red Hat Enterprise Linux 3 поддерживал одновременно 7 архитектур: Intel X86, Intel Itanium, AMD AMD64, IBM zSeries, IBM iSeries, IBM pSeries и IBM S/390. Основан на

ядре 2.4.21

Первый релиз Fedora Core, используется пока что ядро 2.4

— в последний раз Первые версии, использующее ядро 2.6. Поддерживаются архитектуры х86 и Х86-64

Fedora Core 1 для Х86-64

Второй релиз Fedora Core; KDE 3.2, GNOME 2.6

Третий релиз Fedora Core. GNOME 2.8 и KDE 3.3. Имеется много недороботок в плане устойчивости работы ОС.

Четвертый релиз Fedora Core. GNOME 2.10 и KDE 3.4. До-

вольно много нововведений

Дистрибутив Red Hat Linux имеет множество потомков – производных дистрибутивов, которые основаны на RH и практически полностью с ним совместимы. Самыми известными потомками RH являются:

Linux Mandrake (версия MDK 5.1 была основана на RH 5.1) – а на MDK основан ALT Linux;

Black Cat (Версия ВС 5.2 основана на RH 5.2) – впоследствии ВС перерос в ASP Linux.

7.11. Выбор дистрибутива

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

Строго говоря, название Linux принадлежит только ядру. Другие компоненты ОС Linux и прикладные программы для нее разрабатываются не какой-то одной компанией, а независимыми группами программистов, работающих на условиях Стандартной Общественной Лицензии (General Public License; ее русский перевод можно прочитать по адресу http://rus-

201

linux.net/MyLDP/histori/gpl/gplrus.html). Эта лицензия обязывает ее держателя бесплатно предоставлять исходный код распространяемого им программного обеспечения, так что теоретически каждый может легально скачать с публичного сервера тексты программ, скомпилировать и собрать их на своем компьютере и получить готовую к установке операционную систему.

Если вы решитесьсобрать Linux снуля, то прочитать руководство можно по адресу www.linuxfromscratch.org (русский перевод: multilin-ux. sakh.com). Если нет – то покупайте дистрибутив. Необходимость платить деньги вовсе не противоречит некоммерческой идеологии Linux: поставщик дистрибутива продает не код, а только услуги по его записи на носитель, доставке, установке, технической поддержке и т.п. На сегодня существуют и поддерживаются разработчиками сотни разных дистрибутивов, различающихся по области применения, версии ядра, составу включенных в них прикладных программ, требованиям к аппаратному обеспечению и другим признакам. Классификации этого многообразия посвящены статьи В.Костромина и А.Федорчука и Библиотеке ЛинуксЦентра по адресу www.linuxcenter.ru/lib/articles/distrib.

Можно с уверенностью утверждать, что каждый начинающий пользователь Linux столкнется или уже столкнулся с проблемой выбора среди такого изобилия. Какой дистрибутив лучше? Чем отличается Red Hat от Mandrake? Некоторых начинающих пользователей этой замечательной ОС вводят в

заблуждение имена дистрибутивов, например, LinuxXP. Вот они его и покупают, а потом полностью разочаровываются в Linux. Не скажу, что LinuxXP очень плохой дистрибутив, но у начинающего пользователя будет меньше проблем с полной, а не облегченной, версией какого-нибудь «серьезного» дистрибутива, например, Linux Mandrake или Fedora Core.

Как выбрать дистрибутив, с которого можно начать свое знакомство с Linux. Прежде в сего нужно определиться, для чего вам нужен Linux. Хотите ли вы глубоко изучать эту операционную систему? Или, быстро освоив ее, заменить ею Windows в своем офисе, чтобы избежать визитов «борцов с компьютерным пиратством»? Или, может быть, вам нужно настроить сервер для выхода вашей локальной сети в Интернет? Многие компании выпускают дистрибутивы, адаптированныеподлюбоеизуказанныхприменений.

Следующий вопрос – совместимость с имеющимся у вас оборудованием: установится ли выбранный дистрибутив на ваш компьютер? А если установится, то не откажется ли работать, например, с модемом? Не секрет, что долгое время разрыв по количеству поддерживаемых устройств между Windows и Linux был попросту вопиющим. Сегодня ситуация значительно выровнялась. Нынешние дистрибутивы неплохо распознают современное оборудование – процессоры, чипсеты, IDE-, SCSI- и USB-устройства. Практически наверняка не возникнет проблем даже с TV-тюнерами и приводами CD-RW.

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

202

драйверов. Первая попытка поддержки Windows-модема была сделана компанией ALT Linux, на сайте которой есть пакет hsf, обеспечивающий работу устройств на чипе Connexant. В Интернете можно также поискать драйверы для других модемов, скажем, Motorola.

Примерно то же самое относится и к GDI-принтерам. Их производители неохотно поддерживают Linux, во многих случаях приходится надеяться исключительно на энтузиастов. Относительно благополучно дела обстоят разве что с оборудованием компании Oki. В целом же ситуацию с аппаратным обеспечением можно подытожить таким образом: со «средним» оборудованием, не слишком старым и не самым новым, существенных проблем возникнуть не должно. Для новейших, дорогих и «навороченных» устройств могут поддерживаться лишь их базовые функции, то есть деньги, заплаченные вами за усовершенствования, окажутся потрачены впустую. Поэтому стоит предварительно изучить список совместимых устройств и базовую комплектацию (как минимум версию ядра и графической системы XFree86) каждого конкретного дистрибутива. Обычно эту информацию легко найти на сайте разработчика: например, для Red Hat это hardware.redhat.com/hcl.

Что касается минимальных системных требований, то малыми ресурсами могут обойтись лишь дистрибутивы, предназначенные к установке на компьютеры, обслуживающие сеть (шлюзы, интернетсерверы), которые в графическом режиме работать не должны. Для дистрибутивов же, ориентированных на домашнее или офисное применение, официальные данные (как и в случае с Windows) занижаются беззастенчиво. Да, на машине с Pentium 133 и 32 MB RAM можно запустить Linux, но не работать. Pentium 200 ММХ и 64 MB больше похожи на правду, но если вы планируете использовать оконную среду KDE 3, то и 128 MB памяти не окажутся лишними. В противном случае применяйте менее ресурсоемкую среду GNOME. Дополнительно нужно учитывать потребности прикладных программ, которые сами по себе могут быть весьма немаленькими.

Одно из правил, которое следует всегда помнить: ОС Linux гораздо более требовательна к объему оперативной памяти, чем к частоте процессора: Pentium III 600 МГц/32 Мб будет работать гораздо медленнее,

чем Celeron 400 МГц/64 Мб.

Следует позаботиться и о видеосистеме – она должна обеспечивать (как минимум) комфортную работу с разрешением 1024x768. Дело в том, многие Linux-приложения проектировались исключительно для данного режима, поэтому при использовании 800x600 могут возникнуть затруднения (часть окна просто не будет видна).

Потребности в дисковом пространстве вполне стандартны по нынешним временам. Минимальная конфигурация требует 300-500 Мбайт, однако новичкам рекомендуется сразу устанавливать определенный набор прикладных программ, для которого требуется около

203

1,5 Гбайт. К тому же нужно оставить место для документов и рабочих файлов, так что в качестве отправной точки вполне подойдут два гигабайта.

Перечислим несколько дистрибутивов, которые купить можно, но сначала скажу о тех, которые покупать категорически не советую. Не нужно покупать экзотические дистрибутивы вроде LinuxXP и Lindows. Правда, последний дистрибутив – редкость в Интернет магазине, но если вы его все-таки найдете, то не вздумайте покупать.

В некоторых интернет-магазинах дистрибутивы Linux ставятся в один ряд с дистрибутивами FreeBSD. Так вот, FreeBSD покупать не стоит – во всяком случае, если вы не хотите купить еще одну книгу, но только по FreeBSD. Да, FreeBSD является дальним родственником Linux, но начинающему Linux-пользователю лучше с FreeBSD не связываться.

Вы смело можете покупать Linux Mandriva (в прошлом – Linux Mandrake) и Fedora Core 4 (в прошлом – Linux Red Hat), а также дистрибутивы, так или иначе основанные на них – это ALT Linux 2.4, ASP Linux 10. Также смело можете купить не очень новую, но проверенную версию Linux Mandrake 10 –очень хороший дистрибутив.

Вы можете купить дистрибутив Knoppix, но не как основной дистрибутив, а как вспомогательный, который вы сможете использовать как средство восстановления системы, когда в очередной раз вы переустановите Windows или же после неудачного эксперимента с загрузчиком Linux перестанет загружаться. Особенность Knoppix в том, что он может загружаться и нормально работать с компакт-диска.

Дистрибутивы Debian и Slackware Linux – очень хорошие, стабильные и проверенные временем, но вам их лучше не покупать, поскольку они основаны на BSD-системе инициализации, которая ближе к миру BSD и в этой книге подробно не рассматривается. Конечно, если вы можете себе позволить еще одну книгу – по Slackware – то можете его купить. Но все-таки Slackware несколько сложнее в освоении, поэтому я рекомендую попробовать этот дистрибутив после того, как вы научитесь работать с Mandrake или Fedora Core. To же самое относится и к SuSe – немецкому дистрибутиву со своими, немецкими, особенностями.

Дистрибутив Gentoo, о котором много говорили определенное время назад, хорош тем, что позволяет настроить систему «под себя» в прямом смысле этого слова. Все устанавливаемые программы компилируются на вашем компьютере, а не устанавливаются из RPM-пакетов, содержащих уже откомпилированные на чужой машине двоичные файлы. Это главное достоинство этого дистрибутива, но оно же является и его главным недостатком – Gentoo начинающим пользователям противопоказан.

Покупать и устанавливать остальные дистрибутивы нужно только в том случае, когда вы точно знаете, что это за дистрибутив и зачем он вам нужен.

Теперь давайте рассмотрим дистрибутивы Linux Mandrake, Fedora Core 3 и Slackware Linux поближе. Первые два рассматриваются, чтобы у

204

вас была возможность сравнить, a Slackware – чтобы вы поняли, почему его требуется осваивать более опытным пользователем.

7.12. Технический обзор диструбитивов Linux

Fedora Core 3

Установка.

Дистрибутив Fedora Core 3 поставляется на четырех компакт-дисках, но программа установки, если не отмечать какие-нибудь дополнительные пакеты, а оставить все как есть, требует только первые три компакт-диска. Как обычно, загружаюсь с компакт диска, нажимаю Enter для начала установки. Программа установки спросила меня, хочу ли я протестировать установочные диски. Как начинающий и ничего не понимающий в установке Linux пользователь, я согласился. Да мне и не хотелось «убивать» нормально работающий и уже установленный Linux Mandrake в случае, если что-то с компакта не скопируется, ведь FC3 должен быть установлен на его место.

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

Программа установки очень удобна и проста – даже у начинающего пользователя не будет с ней проблем. Выбираю Выборочную установку и ручное разбиение дисков. Даже если вы – начинающий пользователь, я настоятельно рекомендую сделать то же. Ведь если выбрать другой тип установки, ваш винчестер будет переразбит, что приведет к потере всех ваших данных и установленной Windows вместе с ними. Здесь у меня будет небольшая погрешность в измерениях – ведь у меня уже есть созданные Linux-разделы, я только изменил тип файловой системы с ext2 на ext3 и иыбрал форматирование этих разделов. Если у вас никогда еще не был установлен Linux, вам понадобится дополнительное время на создание разделов и изменения границ уже имеющихся разделов.

Параметры загрузки – по умолчанию, чтобы не тратить дополнительное время на их установку.

Следующий шаг – выбор программного обеспечения. Ведь я – начинающий пользователь, поэтому не знаю, что и для чего используется. Просто оставляю все как есть. Как пользователь понимающий, нужно заметить, что FC3 по умолчанию использует среду GNOME, a KDE вообще даже не предлагается устанавливать.

Появляется окно «Запуск процесса установки ...» и я перезапускаю секундомер. До этого весь подготовительный этап занял 7 минут и 31 секунду (7:31).

205

Началось копирование пакетов на мой жесткий диск. Установка (до появленияокнаперезагрузки компьютера) заняла 15 минут и 38 секунд (15:38). После первой перезагрузки система попросила указать некоторые параметры (дату/время, параметры дисплея), добавить новых пользователей, настроить звуковую плату и т.д. Сразу скажу, моя встроенная звуковая плата отказалась работать. Плата была опознана, но звука при воспроизведении семпла я так и не услышал. Пока оставил все как есть.

Вторая перезагрузка.

Сразу перезагружаю систему. Запуск системы (до окна ввода имени пользователя и пароля) занял всего 1 минуты и 8 секунд. Запуск GNOME занял еще 7 секунд.

Работа с системой.

Обновленный GNOME (версия 2.8.0). Первым делом я попытался выяснить, что же все-таки случилось с моей звуковой платой. Поскольку я начинающий пользователь, на ум мне не пришло ничего другого, кроме проверки уровня громкости. Так все же устройства выключены, вот поэтому я и не слышал звук! Включаю, устанавливаю максимальную громкость. Запускаю проигрыватель компакт-дисков и вставляю Extra CD. GNOME предложил мне или открыть диск (чтобы просмотреть дорожку данных) или же воспроизвести (аудио-дорожки). Выбираю воспроизведение. Все равно звука нет. В общем, звуковую карточку я пока оставил в покое. Пока посмотрю, что же нового в системе.

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

206

есть команда mount! Но это уже другой вопрос – как говорится' RTFM перед установкой.

Посмотрим, сколько места осталось после установки системы. Это можно выяснить программой df. Я устанавливал систему на раздел /dev/hda5, a раздел /dev/hda6 использовал для каталога /home. Сама система (/dev/hda5) заняла 2446188 блоков по 1 Кб, то есть 2 388 Мб. На разделе /dev/hda6 место практически не использовалось, поскольку при установке я не создавал пользователей.

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

Photo Tool (рис. 8).

Также понравился обновленный GIMP 2.0.5, хотя с ним делал только скриншоты, его интерфейс стал более красивым и удобным (рис. 9). Работа с видео. Пусть и без звука. Запускаю Helix Player – именно этот проигрыватель используется в FC3 для просмотра видео. Открываю файл, который без проблем воспроизводился в MDK, и вижу картину "The player does not have the capabilities to play back this content" Большекомментариев нет.

Далее все как обычно – Open Office, Project Planner, Диаграммы DIA,

утилиты настройки системы. Кажется, в группе Интернет есть что-то новенькое – Firefox Web Browser. Как следует из названия, данный браузер основан на Mozilla. Только почему-то на английском.

Исследовав опции, я так и не нашел выбора языка интерфейса, скорее всего, для его русификации нужно доустановить какой-то пакет.

Тесты.

Тесты будут следующими: тест чтения блока данных с помощью hdparra, тест на время копирования большого файла с раздела FAT32 в раздел ext3 и копирование этого же файла из одного раздела ext3 в другой раздел ext3. Хотел

207

запустить привычный мне Midnight Commander, но его я не нашел и попытался установить с помощью утилиты «Управление пакетами». Данная утилита мне не понравилась. Она отлично подходит для начинающего пользователя, который и сам не знает, что он хочет установить. Мне же лучше было ввести имя пакета и установитьего. Ксожалению, вэтойпрограммеданной возможности не было.

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

Рис. 11. Браузер файлов

У нас есть уже все необходимые программы для проведения тестов. Начнем по порядку – с hdparm. Запускаю Терминал (находится в меню

208

Приложения / Система). Результат чтения блока размером в 174 Мб за 3,02 сек довольно неплохой – это около 57,68 Мб/с.

Теперь буду копировать файл размером ровно 700 Мб. Это фильм, который мне так и не удалось просмотреть. Получил такие результаты:

Копирование с раздела FAT32 (/dev/hdalO) на раздел ext3 (/dev/hda6): 2 мин32 сек.

Копирование с раздела ext3 (/dev/hda6) на раздел ext3 (/dev/hda5): 1 мин04 сек.

Как видите, с «родными» разделами FC3 работает в два раза быстрее. Файловая система ext3 использовалась только потому, что при нормальной установке она предлагается по умолчанию – ее и выберет начинающий пользователь. Он же и не подозревает о наличии других файловых систем.

При выключении вижу картину из серии «Не ждали»:

Power down acpi_power_off' called

Выводы.

Непонятно для какого типа пользователей разрабатывался этот дистрибутив: для начинающих или для продвинутых пользователей. Если для начинающих, о чем свидетельствует дружественный интерфейс GNOME, то почему так много недоработок, с которыми начинающий справиться не в состоянии: неработающая звуковая плата, ошибки при воспроизведении видео (очень актуальная задача для домашнего компьютера), не подключены файловые системы, а вдобавок ошибка при выключении питания. И это при том, что я поработал с системой какой-то час. Поработай я больше, даже не могу предположить, сколько недоработок я бы нашел в ней. Если же дистрибутив разрабатывался для продвинутых пользователей, почему нет привычных им программ (того же МС)? В любом случае я бы не рекомендовал этот дистрибутив начинающим пользователям. Сначала нужно поучиться на более легком дистрибутиве, у которого с самого начала все работает, а затем переходиться на Fedora Core 3, если, конечно, захочется.

209

Slackware

Вторым дистрибутивом я решил выбрать Slackware. Просто хотелось на него посмотреть: ведь до этого я видел его в работе только несколько раз. А тут еще и последняя на данный момент версия – 10.1. Дистрибутив поставляется на двух дисках.

Установка Как обычно, загружаюсь с первого компакт-диска. Вижу экран приветствия:

Welcome to Slackware version 10.1 (Linux kernel 2 . 4 . 2 9 )

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

Знакомая загрузка ядра предыдущей версии. Программа установки предложила выбрать раскладку клавиатуры, отличную от US:

Enter I to select a keyboard map

Неужели установка системы будет в текстовом режиме? Да еще и без меню. Меню все-таки появилось, но текстовое. Меню выбора раскладки клавиатуры содержит список файлов раскладок безо всякого описания. Выбираю qwerty/ru.map и нажимаю Enter. Честно говоря, текстовая программа установки выглядит как-то архаично. Такое впечатление, что устанавливается одна из первых версий Red Hat. Уже в 6.0 версии Red Hat программа установки была намного удобнее, хотя она тоже работала в текстовом режиме. Затем система предложила ввести пароль пользователя root. На данный момент пароля нет, поэтому можно просто нажать Enter, что я и сделал. Система сообщила, что для изменения таблицы разделов можно ввести команду fdisk. Мне повезло – Linux-разделы у меня уже есть, а начинающему пользователю лучше вообще отложить эту затею и попросить кого-нибудь более знающего переразбить жесткий диск за него. Только на использование текстовой версии fdisk может уйти минут пять – это при условии, если знаешь, что делаешь. К тому же fdisk не умеет изменять размеры разделов без уничтожения всей информации. Поэтому лучше использовать для этой цели какую-нибудь другую программу, например, тот же Partition Magic для Windows. Да, есть в Slackware более удобная программа – cfdisk, но в программе установке о ней ни слова.

Для начала установки нужно ввести команду setup. Ввожу. Появляется меню программы установки. KEYMAP я уже выбрал, поэтому выбираю второй пункт ADDSWAP. Он позволяет установить раздел подкачки для вашей системы. У меня уже создан, поэтому программа запросила разрешения только активизировать этот раздел. После этого появилось

210

текстовое окошко FORMAT, в котором нужно выбрать, какие Linux-разделы нужно форматировать, а также файловую систему. По умолчанию предлагается Reiser FS, но для равенства условий я решил выбрать ext3, чтобы результаты файлового тестирования были более объективными. Программа установки работает только на английском языке, поэтому если не знаете его, лучше вам попытаться установить другой дистрибутив. Затем программа спросила, хочу ли я добавить найденные Windows-разделы в /etc/fstab. Соглашаюсь и добавляю 2 из четырех разделов – для экономии времени. После этого нужно выбрать источник установки, выбираю Slackware CD or DVD, а также опцию auto для автоматического определения диска.

Какие пакеты устанавливать? Выбираю full, то есть установку всех пакетов, чтобы не терять время на их выбор. До этого весь подготовительный процесс занял 6 минут и 6 секунд. У вас, скорее всего, этот показатель будет другим. А если у вас еще нет Linux-разделов, то можно смело умножить это время на 2.

Время копирования пакетов с двух компактов заняло 13 минут и 10 секунд. После копирования пакетов программа установки настраивает шрифты, документацию и выполняет другие действия. На все про все ушло 53 секунды.

Вот мы и добрались до самого интересного. Программа установки не знает, откуда брать ядро. Она предлагает несколько вариантов: bootdisk, Slackware CD и др. Причем первый – по умолчанию. Я его и выбрал, просто механически так получилось. Программа попросила вставить загрузочную дискету в дисковод /dev/fdO. У меня нетолько нет этой дискеты, но и самого дисковода. Отказаться – никак. Пришлось, не долго думая, нажать Reset и повторить весь процесс заново. Правильный вариант – Slackware CD. Затем – список ядер. Какое устанавливать? Я выбрал ядро, которое использовалось при установке:

/cdrom/kernel/bare.i/bzlmage

Следующий этап – создание загрузочного диска.

Настройку загрузчика LILO я производил вручную. Не полагаясь на интеллектуальные возможности программы, я выбрал expert и ввел все параметры вручную. LILO установил в MBR. Затем добавил две записи: Linux (/dev/hda5) и Win (/dev/hdal). Обычно эти параметры указываются автоматически – но это в нормальных программах установки. Для инсталляции LILO выбрал команду меню Install LILO.

После этого нужно указать различные параметры системы – тип мыши, параметры сети (я их не устанавливал), выбор запускаемых сервисов (оставил как есть). Потом программа спросила, хочу ли я добавить свои собственные консольные шрифты. А откуда ж они у меня? Ясно, что я отказался от этого. Затем – параметры времени (UTC или не UTC, выбор региона, я выбрал

Europe/Kiev).

После установки времени нужно выбрать оконный менеджер по умолчанию. Программа предложила KDE, я согласился.

211

Последний этап — ввод пароля root. Все. Нажимаю заветнуюкомбинацию Cnrl+Alt+Del, и система перезагружается. С момента выбора ядра до перезагрузки прошло 4 минуты и 51 секунда.

Загружаюсь. Система встретила меня голой консолью. Ввожу имя пользователя root и свой пароль. Все. Для запуска X Window (ну и KDE) нужно ввести startx. Некоторые пользователи Linux, даже которые уже использовали эту ОС, и не подозревают о существовании такой команды.

Вторая перезагрузка.

Я перезагружаю систему, чтобы вычислить время второй загрузки. Оно составило 22 секунды до появления приглашения ввести имя пользователя и пароль и еще 22 секунды на запуск XWindow и KDE. Итого 44 секунды. После установки на разделе размером 3 Гб осталось 473 Мб свободногоместа.

Программное обеспечение.

В этом дистрибутиве используется новая версия KDE — 3.3.3 и еще более новая, чем в FC3, версия GIMP — 2.2.3. KDE русифицировать никак не удалось. Я установил все пакеты, а из доступных языков был только английский. И кому нужен такой дистрибутив? Существенным недостатком, на мой взгляд, является отсутствие пакета OpenOffice. Вместо него установлен К Office I.3.4.

Тесты.

А вот тут началось самое интересное. Результат hdparm такой же, как и у b(J3. 174 Мб скопировалось за 3,01 секунды. При копировании того же самого 700-Мбаитного фильма я получил следующие результаты:

Копирование с РАТ32-раздела на ех13-раздел: 1 мин 12 сек (!)

Копирование с ех13-раздела на ех!3-раздел: 0 мин 31 сек

212

Вот вам и ядро 2.4. Разница с FC почти в два раза: Slackware в два раза быстрее работает с файлами, чем Fedora Core. Файловая система одна и та же — ext3. Уже и не знаешь, куда отнести версию ядра 2 4 – к преимуществам или недостаткам. Никуда не буду относить. Будем считать это особенностью данного дистрибутива.

Выводы.

Неудобная текстовая англоязычная программа установки сразу отпугнет начинающих пользователей. Отсутствие Open Office и поддержки русского языка тоже не в сторону выбора дистрибутива. Зато это компенсируется быстрой работой файловой системы и более быстрым запуском системы: 44 секунды против 1 минуты и 15 секунд у FC3. Этот дистрибутив можно порекомендовать квалифицированным пользователям, знающим толк в Linux – уж они-то смогут довести его «до ума». И вообще, учитывая особенности этого дистрибутива, он больше подходит для установки на сервере, чем на рабочей станции.

 

Преимущества

 

Недостатки

 

Дружественный интерфейс KDE

Неудобная, текстовая и

англоязычная

программа

3.3

 

 

установки

 

 

 

 

 

 

 

Высокая

производительность

Нет поддержки русского

языка. Ее

обеспечить

файловой системы

 

можно, но начинающему пользователю придется

 

 

 

потратить на это уйму времени

 

Быстрая загрузка системы

 

Отсутствует пакет Open Office

 

 

 

Программное обеспечение

 

 

Ядро версия 2.4.29 GNOME 2.6.2 KDE 3.3 Open Office — отсутствует GIMP 2.2.3

Загрузчик LILO

Linux Mandrake 10.1

Установка.

Как и Fedora Core 3, Mandrake поставляется на четырех компакт-дисках. Все четыре диска нужны при установке – даже если не отмечать дополнительные пакеты.

Программа установки понятна и новичку, с ней практически не бывает проблем.

Весь подготовительный процесс в моем случае (напомню, что я не создавал разделы – они уже были созданы) занял всего 2 минуты и 1 секунду. На копирование пакетов, выбранных по умолчанию, понадобилось всего 7 минут и 2 секунды. После копирования пакетов на указание дополнительных параметров (я оставил все по умолчанию, только добавил одно пользователя) понадобилось 1 минута и 12 секунд. Итого на установку системы понадобилось 10 минут и 15 секунд.

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

213

Вторая перезагрузка.

Вторая загрузка (с запуском X Windows и автоматическим входом пользователя) заняла 42 секунды. После установки осталось свободным 2,1 1 б дискового пространства.

Программное обеспечение.

На четырех компакт-дисках Linux Mandrake вы найдете все необходимое программное обеспечение – от офисных приложений до простых игрушек. Для меня наиболее важны офисный пакет OpenOffice 1 1 0 и графический редактор GIMP I.2.5. Версия GIMP не очень новая, но это поправимо – всегда можно загрузить новейшую.

Рис. 14. Windows-разделы сразу правильно подмонтированы

214

В качестве оконной среды по умолчанию используется KDE версии 3.2 – довольно удачная и быстрая версия.

С воспроизведением видеофайлов нет никаких проблем – все фильмы, имеющиеся у меня на Windows-разделах, были воспроизведены проигрывателем Totem – даже те, для которых я в Windows выкачивал из Интернета дополнительные кодеки

Тесты. Готовые результаты:

Hdparm: 174 Мб прочитано за 3,02 секунды, скорость чтения 57,55 Мб/с;

Копирование700-МбайтногофайласЕАТ32-разделанаех$-раздел: 01:26;

Копирование 700-Мбайтного файла с ехгЗ-раздела на ехтЗ-раздел: 0:36

Выводы.

Linux Mandrake – отличныйдистрибутивдляначинающихпользователей. После установки системы пользователь получает «готовую к употреблению» рабочую среду. Все, что ему нужно настроить (и то, только если он это не сделал при установке системы) – это настроить сеть и/или подключение к Интернету. Никаких особых проблем ни при установке, ни при работе с дистрибутивом не возникло.

Преимущества

Недостатки

 

 

Простая и быстрая установка

Особых недостатков нет, если не считать немного

 

устаревших версий GNOME и GIMP

 

 

Хороший выбор программного

 

обеспечения

 

После установки система

 

полностью готова к работе и не

 

требует донастройки

 

Нет проблем ни со звуком, ни с

 

видео-кодеками

 

 

Программное обеспечение

Linux Mandrake 10 Ядро версия

Linux Mandriva 2005 (*) Ядро версия 2.6.11.6 GNOME

2.6.3 GNOME 2.4.1 KDE3.2 Open

2.8.3 KDE 3.3.2 с поддержкой функций 3.4.0 Open

Office 1.1.0 GIMP 1.2.5 Загрузчик

Office 1.1.4 GIMP 2.2.5 Загрузчик GRUB

GRUB

 

 

 

Linux Mandriva Limited Edition 2005 — это первый выпуск популярного дистрибутива после слияния компаний MandrakeSoft и Conectiva. В этом дистрибутиве есть очень много интересного – от полной поддержки контроллеров Adaptec до поддержки игровых консолей Хbох.

ASP Linux

215

Если вы не достанете Mandrake (что маловероятно), установите ASP Linux (www.asplinux.ru) – вам понравится. Своей отлаженностью и стабильностью он произвел на меня очень приятное впечатление.

Дистрибутив отличается хорошей совместимостью с видеоакселераторами NVidia, ATI, а также чипсетом SiS630, который часто используется в ноутбуках.

ASP Linux также выделяется улучшенной поддержкой русского, украинского и возможностью легкой смены кодировки (koi8-r, koi8-u, cpl251, iso8859-5). Естественно, в состав дистрибутива входят OpenOffice и другие традиционные Linux-приложения. Неожиданностью для меня стало наличие антивируса (eSafe от компании Aladdin), а включение в дистрибутив бухгалтерского программного обеспечения. Имеется также масса вспомогательных средств, например, система автоматического обновления, автоопределение приводов CD-RW и DVD и т.п.

Наиболее полный дистрибутив версии 7.3 «Восток» распространяется па десяти компакт-дисках, среди которых три установочных, два с исходными текстами, по одному с документацией, играми и пользовательскими приложениями. На отдельном CD-ROM поставляется полная версия Acronis OS Selector 8.0, еще один диск содержит демонстрационные версии серверных приложений.

I) коробочную поставку ASP Linux входят печатные руководства «Быстрый старт», «Руководство по инсталляции», «Руководство пользователя», «Руководство администратора», которые фактически освобождают пользователя от необходимости приобретения дополнительной литературы по Linux.

К тому же на Documentation CD, кроме традиционных FAQ и HOWTO от группы Linux Documentation Project, содержатся и их переводы, выполненные командой ASP Linux и сторонними переводчиками. Просмотр электронной документации обеспечивается через удобный гипертекстовый интерфейс.

ALT Linux

Использовать для обучения дистрибутив ALT Junior 2 я не рекомендую

– уж слишком все там просто. Так вы уподобитесь иным пользователям Windows, которые привычно переустанавливают ОС при малейших затруднениях. Зато этот дистрибутив прекрасно подойдет, если вы хотите заменить Windows в офисе или дома – поставьте и не мучайтесь. В нем имеется полный комплект «стандартных» офисных приложений, приложения для работы в Интернете, проигрыватели МРЗ и МР4, поддержи-паются цифровые камеры, USB-принтеры и много чего еще. Сразу после установки практически все это будет уже настроено, останется лишь изменить имя компьютера и параметры РРР-соединения. Интересно, что при этом ALT Junior 2 очень компактен, все необходимое ПО уместилось фактически на одном компакт-диске, на втором размещены исходные тексты и дополнительные средства разработки.

216

Что еще хорошо в этом дистрибутиве, а точнее, в политике компании ALT Linux (www.altlinux.ru), так это сопровождение – обновления появляются регулярно и оперативно. Скажем, версия 2.0 отличалась некоторой нестабильностью работы, однако вскоре вышел доработанный Junior 2.1.

Дистрибутив ALT Master предназначен для пользователей, уже знакомых с Linux. Он также создает впечатление более стабильного и надежного, чем ALT Junior. К тому же в коробочной версии вы найдете целых шесть компакт-дисков с различным программным обеспечением для Linux, в том числе – популярный эмулятор VMWare, который позволяет запускать одну ОС внутри другой.

Говоря о локализации, зачастую подразумевают только перевод интерфейса и возможность ввода символов национального алфавита и напрочь забывают о документации. Компания ALT Linux демонстрирует более цельный подход и в этом вопросе: в комплект стандартной поставки ALT Junior 2 входит печатное руководство по установке операционной системы. Хотя, на мой взгляд, в нем не хватает иллюстраций, с его помощью новичку будет гораздо проще инсталлировать ОС. Кроме того, в нем содержится краткая информация по установке дополнительных программ и обновлений.

В состав коробочной версии дистрибутива ALT Master входят четыре прекрасных печатных руководства: по инсталляции ОС, администратора и пользователя, а также отдельное по OpenOffice. Можно с уверенностью сказать, что на первое время этой литературы более чем достаточно.

Говоря о политике компании ALT, невозможно не упомянуть Sisyphus

– ежедневно обновляемый репозиторий пакетов программного обеспечения. Все дистрибутивы ALT Linux созданы на его основе. Для чего это нужно? Если у вас есть постоянный доступ к Интернету, вы можете настроить ваш дистрибутив на ежедневное обновление пакетов – тогда ваша система всегда будет поддерживаться в «актуальном состоянии» и вам не нужно будет периодически устанавливать новые версии – все будет происходить автоматически.

Конечно, автоматическое обновление имеет свои преимущества и недостатки – вы же обновляете программное обеспечение, а не простую базу данных. Новое программное обеспечение может содержать новые функции, что является положительной стороной, но и «подводные камни»: никто не знает, сколько ошибок было внесено в программу при исправлении уже известных ошибок и добавлении новых функций. Лично я никому не доверяю обновлять свою систему (это даже недопустимо с точки зрения безопасности), поэтому предпочитаю покупать и устанавливать новые версии дистрибутивов. Впрочем, если в ваш дистрибутив какой-то пакет не включен, в репозиторий Sisyphus вы, скорее всего, его найдете.

Подробнее о Sisyphus вы сможете прочитать по адресу www.altlinux.ru.

SuSE Linux

217

SuSE Linux – немецкий дистрибутив компании Novell. Это очень хороший, надежный дистрибутив с «немецким качеством». Чего стоит только тот факт, что разработчик этого дистрибутива – компания Novell – разработала одну из самых надежных сетевых операционных систем Novell Netware. Ранние версии SuSE грешили недружелюбием по отношению к русскому языку, но в последних версиях этот недостаток искоренен. Последние версии SuSE можно порекомендовать не только опытным (как это было с предыдущими версиями), но и начинающим пользователям Linux. Последняя на момент написания этих строк (9.2) версия SuSE содержит:

ядро версии 2.6.8;

KDE версии 3.3.0;

Open Office 1.1.3 — популярный офисный пакет, аналог MS Office;

KOffice 1.3.3 — еще один офисный пакет;

The GIMP 2.0.4 — мощнейший графический редактор, аналог Phot oShop;

много другого полезного программного обеспечения.

Версия 9.2 поставляется на пяти компакт-дисках – как видите, дистрибутив не маленький (для сравнения: Mandrake 10 поставляется на четырех CD). Подробно об этом дистрибутиве вы сможете узнать по адресу www.suse.com, а если заинтересуетесь, то можете купить его в любом интернет-магазине.

Knoppix

Эта разработка Клауса Кноппера (www.knopiier.net/knoppix) – самый лёгкий и быстрый способ познакомиться с Linux. Дистрибутив потавляется на одном-единственном компакт-диске и может работать прямо с него, без установки на компьютер. Хотя при желании вы можете и установить его на жесткий диск, а дополнительные программные пакеты скачивать из архива на www.debian.org. Да, этот дистрибутив основан на

Debian, т.е. не родствен Red Hat.

При таком детском размере Knoppix содержит недетское количество программного обеспечения, включая офисные пакеты, медиа-плейеры и средства работы в Интернете. Дело в том, что программы уложены на диск в сжатом виде и в процессе запуска распаковываются из архивов на лету.

Самая свежая на момент написания этой книги версия дистрибутива – Knoppix 3.8.1 – продается в интернет-магазине knoppix.ru за 99 рублей.

Debian

Debian – это целая линия развития Linux, альтернативная Red Hat и не слишком совместимая с ней. Среди лидирующих дистрибутивов Debian – единственная полностью некоммерческая система. Если разработкой Red Hat

занимается Red Hat Software, а за Slackware стоит Walnut Creek, то дистрибутив Debian/GNU Linux создает и по ддерживает группа энтузиастов

218

– строго в духе движения за открытые исходники. Не зря его предпочитает Ричард Столлмен, лидер Фонда Свободного Программного Обеспечения.

Debian – настоящая энциклопедия свободных программ: в его состав входит более 15490 пакетов заранее скомпилированного программного обеспечения, которые можно бесплатно скачать с www.debian.org/ distrib/packages. Там же предлагаются дополнительные пакеты, которые нельзя включать в основной дистрибутив, потому что их лицензии не соответствуют принятому в этой группе определению бесплатного программного обеспечения (с правом дальнейшего распространения, наличием исходных текстов, разрешением их модификации и использования в качестве основы новых разработок). Система управления пакетами у Debian собственная, похожая на Red Hat' только внешне.

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

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

219

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]