«Прикладная информатика (по областям)»

Вид материалаУчебное пособие

Содержание


Системная виртуальная машина
32-разрядные Windows-приложения
Базовая система
Подсистема управления файлами
Сетевая подсистема
Службы операционной системы
Диспетчер виртуальной машины
Драйверы устройств
Диспетчер объектов
Монитор системных связей
Диспетчер процессов
Работа с реестром
Раздел 6 Операционная система Linux
Индексный дескриптор
Раздел 7 Выбор операционной системы
Критерии оценки
Подобный материал:
1   2   3   4   5   6   7   8
Тема 14 Основные компоненты Windows 2000


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


Компонент системная виртуальная машина (System Virtual Machine, VM) Windows 2000 содержит четыре основных элемента: 32-разрядные Windows-приложения, оболочку, поддержку приложений POSIX и поддержку приложений OS/2. В сущности, системная виртуальная машина обеспечивает выполнение большей части пользовательских операций в Windows 2000. Без нее нельзя запустить ни одно приложение.

Для поддержки OS/2 и POSIX в Windows 2000следует обратить внимание на то, что существуют клиентская часть этой поддержки в области системной виртуальной машины и серверная часть на уровне Windows API. Windows 2000 применяет для управления приложениями технологию «клиент-сервер», что позволяет ОС быстро подстраиваться под приложения, предназначенные для других операционных систем.

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

Когда речь заходит о поддержке 16-разрядных приложений Windows, становится очевидным еще одно различие между Windows 2000 и Windows 95/98. В отличие от предыдущей версии, некоторые участки которой по-прежнему содержат довольно большой объем 16-разрядного кода для обеспечения совместимости, Windows 2000 всегда использует только 32-разрядный код. Это означает, что Windows 2000 может передавать 16-разрядные Windows-приложения в ведение виртуальных машин MS-DOS. Кроме того, в отличие от Windows 95/98, которые используют общую область памяти для всех 16-разрядных приложений, Windows 2000 запускает каждое 16-разрядное приложение в отдельном процессе. Использование отдельного процесса для каждого приложения позволяет значительно снизить риск воздействия одного неправильно работающего приложения на функционирование других приложений, выполняющихся на этом же компьютере.

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

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


Совместимость

В следующем списке более подробно описаны компоненты системной виртуальной машины.
  • 32-разрядные Windows-приложения. Windows 2000 поддерживает огромное число полнофункциональных 32-разрядных приложений, некоторые из которых не будут работать под Windows 95/98, так как они используют спецификацию Win32 (подмножество API Windows 2000). 32-разрядные приложения, как правило, лучше поддерживают многозадачность, чем их 16-разрядные аналоги. Кроме того, многие 32-разрядные приложения поддерживают такие новые возможности Windows, как длинные имена файлов, в то время как большинство 16-разрядных приложений не имеет такой поддержки. Также 32-разрядные приложения обладают двумя допол-нительными возможностями. Главная из них — использование приоритетной, а не кооперативной многозадачности. Благодаря этому Вы можете спокойно работать с данными, не отвлекаясь на саму систему. Это компьютер подождет вас, если нужно, а вам его ждать больше не придется. Вторая возможность — использование линейного (плоского) адресного пространства памяти. Оно позволяет приложениям лучше использовать выделяемую им память. Кроме того, приложения, использующие линейное адресное пространство, работают немного быстрее, так как они не тратят время на работу с системой сегментации памяти, используемой Intel.
  • Оболочка. В отличие от предыдущих версий ОС, Windows 2000 имеет только одну пользовательскую оболочку — Проводник (Explorer). Это полноценное 32-разрядное приложение. Оно имеет новый интерфейс. Проводник объединяет в себе все функции, которые раньше можно было найти в диспетчере программ (Program Manager), диспетчере печати (Print Manager) и диспетчере файлов (File Manager).
  • Приложение POSIX. POSIX — это рекомендованная разновидность UNIX, которую можно переносить на различные платформы. Она была представлена в 1988 году как стандарт IEЕЕ 1003.1-1988. Нынешний интерфейс POSIX поддерживает только приложения символьного режима.
  • Приложение OS/2. В нынешней версии Windows 2000 можно запускать лишь символьные программы, предназначенные для OS/2 версии 1.0. Вы не сможете запустить ни одну из программ, рассчитанных на работу с диспетчером программ (Program Manager).


Базовая система

Компонент «Базовая система» Windows 2000 содержит все внутренние, или низкоуровневые, службы операционной системы. Этот компонент действительно является ядром Windows 2000 — частью, необходимой для того, чтобы Windows могла функционировать. Как пользователь Вы никогда не будете работать напрямую с базовой системой. На самом деле, лишь очень немногие программисты работают непосредственно с этой «скрытой» частью Windows. Рассмотрим составные части базовой системы.
  • Подсистема управления файлами. В сущности, данная часть базовой системы предоставляет интерфейс ко всем блочным устройствам — жестким дискам, дисководам для компакт-дисков, дисков DVD и дискет — подключенным к вашему компьютеру. Неважно, как именно осуществляется это подключение — физически или по сети. Главное, чтобы компьютер имел доступ к этому устройству. Подсистема управления файлами Windows 2000 использует также аппаратно-зависимый уровень (hardware abstraction layer, HAL), позволяющий ей работать на компьютерах других типов (персональных компьютерах с процессорами, отличными от процессоров Intel семейства 80x86).
  • Сетевая подсистема. Windows для рабочих групп была первой версией Windows, предназначенной для удовлетворения потребностей рабочих групп в совместной работе по сети. Средства для работы с сетью были частью этой операционной системы, а не дополнительным продуктом стороннего разработчика. Windows 2000 расширяет эти средства. Теперь Вы можете создавать не только одноранговые сети Microsoft — Windows 2000 предоставляет обработчики защищенного режима для большинства основных продуктов, предназначенных для работы с локальными сетями.
  • Службы операционной системы. Эта часть операционной системы отвечает за такие средства, как аппаратные профили. Она также обслуживает различные запросы пользователей, и операционной системы. Например, всякий раз, когда пользователь запрашивает у Windows 2000 текущее время, он запрашивает службу, расположенную в этом компоненте операционной системы. В отличие от Windows NT, Windows 2000 предоставляет такой же уровень пользовательских служб, как и Windows 95/98. Эта версия имеет достаточно полную поддержку технологии Plug and Play, что является замечательным усовершенствованием, по сравнению с Windows NT. Windows 2000 также более устойчиво, по сравнению с Windows 95/98, работает с аппаратными профилями, что позволяет легко переключаться между различными конфигурациями оборудования. Если выполняются достаточно высокие требования Windows 2000 к оборудованию, Вы можете легко использовать ее как на настольных, так и на переносных компьютерах.
  • Диспетчер виртуальной машины. Это — компонент, который связывает все остальное в единое целое. Диспетчер виртуальной машины заведует расписанием задач, запускает и останавливает все приложения в системе, включая любые приложения DOS. Этот компонент операционной системы управляет также виртуальной памятью вашего компьютера. Конечно, вместо того чтобы общаться с этой частью системы напрямую, приложение создает запрос с помощью API Windows. Поскольку диспетчер виртуальной машины обрабатывает все операции по выделению памяти, он должен также выполнять функции сервера DPMI (DOS Protected Mode Interface — интерфейс DOS для защищенного режима) для DOS-приложений, работающих в защищенном режиме. Когда DOS-приложение выдает запрос на выделение ему памяти, оно на самом деле вызывает процедуры этого компонента Windows. Как и приложения Windows, DOS-приложения не могут получить прямой доступ к этой части системы. DOS-приложение использует для выполнения своего вызова API-расширителя DOS. И, наконец, диспетчер виртуальной машины отвечает за связь между задачами. Все это означает, что данная часть операционной системы обслуживает все DDE- и OLE-запросы.
  • Драйверы устройств. Windows никогда бы не знала, как работать с оборудованием, если бы не было драйверов устройств. Это специализированный код выступает в роли интерпретатора. Он получает запросы служб Windows и отправляет их аппаратно-зависимому уровню (HAL) в формате, который понятен HAL. Заметьте, что этот код отправляет запрос прямо на устройство, так как драйвер устройства Windows 2000 ничего не знает о типе вашего компьютера. Драйвер устройства считает, что он общается с устройством, но аппаратно-зависимый уровень перехватывает запрос, направленный на устройство. Windows 2000 обеспечивает поддержку драйверов WDM (Windows Driver Model — модель драйверов Windows). Это те же драйверы, которые используются в Windows 98 и более новых версиях.
  • Диспетчер объектов. Этот компонент Windows 2000 служит для создания и удаления объектов, а также для управления ими. Большинство из этих объектов представляет такие абстрактные ресурсы операционной систе-мы, как память, или такие физические ресурсы, как жесткие диски. Объект имеет свойства, события и методы. Свойство можно рассматривать как нечто, что может быть обнаружено органами чувств. Применение объектов позволяет Windows 2000 позволяет программистам легче управлять всеми многочисленными компонентами, которые и приводят в движение сложнейший механизм, называемый операционной системой. Каждый раз, когда требуется создать новый системный объект такой, как значок или диалоговое окно, Вы вызываете диспетчер объектов.
  • Монитор системных связей. Windows 2000 обладает возможностью, которую Вы не найдете в Windows 95/98, — защитой уровня С2, ограничивающей доступ к ресурсам компьютера на основе принципа need-to-know. Windows 2000 поддерживает новые стандарты безопасности такие, как Kerberos. Одна из задач монитора системных связей — отслеживать системные ресурсы. Благодаря этому один процесс или поток не может захватить все имеющиеся системные ресурсы, например память. По сути, этот модуль не позволяет операционной системе надолго терять управление. Приложения принуждаются к работе с операционной системой таким образом, что вычислительные ресурсы справедливо распределяются между всеми процессами и потоками. И, наконец, монитор системных связей собирает статистические сведения, которые администратор сети может использовать для наблюдения за производительностью системы.
  • Диспетчер процессов. Windows 2000 предоставляет также больший выбор режимов вычислений, чем Windows 95/98. Многопроцессорные среды требуют применения более сложных методов управления процессами. Диспетчер процессов создает, прерывает и осуществляет управление как процессами (приложениями), так и потоками выполнения внутри приложения. Он также позволяет ОС приостанавливать и перезапускать процессы и потоки по мере необходимости, чтобы обеспечить стабильность всей системы в целом. Как и монитор системных связей, диспетчер процессов собирает статистические данные, которые администратор сети может использовать для наблюдения за производительностью системы.



Тема 15 Реестр Windows 2000


До Windows 95, в Windows 3.x, реестр был настолько прост, что никто не рассматривал его всерьез. В нем хранилось очень немного данных — лишь некоторые сопоставления файлов и несколько параметров OLE. Здесь также находилась и некоторая другая информация, но по большей части даже сама Windows игнорировала реестр.

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

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

Реестр Windows 2000 также заменяет файлы SYSTEM.INI и WIN.INI, которые имели плохую репутацию в Windows 3.x. WIN.INI хранит параметры среды Windows и отвечает за настройку взаимодействия пользователя с Windows. Файл SYSTEM.INI содержит информацию о конфигурации оборудования и драйверов устройств; он отвечает за самонастройку Windows в процессе запуска. Конечно, различия между этими двумя файлами достаточно условны — файл WIN.INI.

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

По возможности Windows 2000 копирует содержимое файлов SYSTEM.INI и WIN.INI в реестр. Единственная причина, по которой эти файлы сохранены, — необходимость поддержки приложений Windows 3.x. Теоретически Вы можете удалить эти файлы с жесткого диска, если у вас нет старых приложений, которым эти файлы требуются. Но лучше их оставить — они достаточно малы, a WIN.INI к тому же может содержать важные данные даже сейчас.

Реестр — это сложная база данных. Без него Windows 2000 не сможет загрузиться. Любое повреждение этого набора файлов вызовет массу неполадок, даже если Windows 2000 и сможет выполнить загрузку. Невозможность редактировать эту базу данных из командной строки DOS — потенциальная проблема. (С другой стороны, редактором реестра Windows 2000 — программой Regedt32 или Regedit — пользоваться намного легче, чем старой комбинацией файлов. WIN.INI и SYSTEM.INI в Windows 3.x. Чтобы изменить или просмотреть старые INI-файлы, нажмите кнопку Пуск (Start), выберите команду Выполнить (Run) и введите строку sysedit.)

Существуют два редактора реестра: Regedit и Regedt32. Regedt32 — это исходный редактор реестра Windows 2000. Он обладает некоторыми специальными сетевыми возможностями, например средствами аудита и меню «Безопасность». Эти средства позволяют управлять доступом к реестру и его защитой. Вы можете избирательно (или полностью) запретить пользователям изменять реестр. У Regedt32 также есть старый многодокументный интерфейс, подобный интерфейсу редактора файлов настройки (программа «Sysedit»). Кроме того, в то время, как более новый Regedit позволяет вызывать контекстные меню щелчком правой кнопки мыши, Regedt32 такой возможности не имеет.

Появившись впервые в Windows 95, Regedit включен и в состав Windows 2000. Помимо современных элементов пользовательского интерфейса таких, как контекстные меню, Regedit обладает мощными возможностями поиска: Regedt32 может выполнять поиск только разделов; Regedit же позволяет искать все: разделы, параметры и значения.


Работа с реестром

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

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

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

Если Вы можете редактировать реестр на своем жестком диске, вы, среди прочего, можете выполнить следующие действия:
  • удалить с рабочего стола значок «Мой компьютер» (My computer) и другие значки;
  • переименовать или удалить «Корзину»;
  • настроить скорость появления раскрывающихся меню;
  • сменить значки проводника для исполняемых файлов, дисков и т. п.

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

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

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

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

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

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

Windows 2000 сохраняет текущие параметры реестра для каждого пользователя в файле NTUSER.DAT, находящемся в папке профиля каждого пользователя. Папка «Default User» содержит стандартные записи реестра, с помощью которых Windows 2000 создает нового пользователя. Так как у каждого пользователя есть своя персонализированная копия реестра, любые ошибки, допущенные при редактировании реестра, скажутся только на текущем пользователе. Ошибку при изменении реестра можно исправить несколькими способами. Можно просто отменить сделанное изменение, не выходя из редактора реестра. Если Вы допустили ошибку и не можете получить доступ к учетной записи пользователя, когда пытаетесь указать ее в диалоговом окне входа в систему, Вы всегда можете зарегистрироваться с учетной записью администратора и скопировать файл реестра похожего пользователя в папку профиля пользователя, реестр которого был поврежден. Также можно удалить пользователя и затем добавить его снова; при этом реестр пользователя по умолчанию (Default User) будет скопирован в папку нового профиля. Однако следует избегать подхода, связанного с удалением и повторным добавлением пользователя. Удаление пользователя влечет за собой серьезные последствия, связанные с владением файлами и папками. Лучшее решение — использовать файл NTUSER.DAT какого-либо другого пользователя. Четвертый вариант — восстановление резервной копии поврежденного файла реестра. На этот случай нужно всегда иметь резервную копию реестра.

Есть один пользователь, файл реестра которого редактировать не надо. Так как почти для всех типов обращений к реестру требуется учетная запись администратора, повреждение файла реестра администратора (\PROFI-LES\ADMINISTRATOR) — основной способ навсегда проститься с системой. Лучше всего всегда заводить на всех компьютерах двух пользователей с полными административными полномочиями: собственно администратора и себя (или своего полномочного представителя). Если Вы не обновляли операционную систему с NT4, а установили чистую систему Windows 2000, то вместо папки \PROFILES на вашем компьютере будет папка \DOCUMENTS AND SETTINGS.

Реестр представляет собой базу данных, состоящую из нескольких файлов. Кроме того, как Вы уже видели, он разделен на несколько разделов (HKEY_CURRENT__CON-FIG, HKEY_LOCAL_MACHINE и так далее). Степень опасности ошибки при редактировании реестра зависит от того, в каком из этих разделов она допущена, Если некорректно изменены какие-либо элементы раздела HKEY_USERS, ущерб будет сравнительно небольшим. В худшем случае пользователь не сможет войти в систему. Обычно, если файл NTUSER.BAT поврежден, Windows 2000 просто отклоняет его и создает новую копию на основе файла NTUSER.DAT пользователя по умолчанию. (Файл в папке «Default User», например C:\WINNT\Profiles\DefauIt User\NTUSER.DAT, содержит стандартные записи реестра, которые Windows 2000 использует для создания нового пользователя.) Но если ошибка допущена при редактировании раздела HKEY_LOGAL_MACHINE, то в результате может быть необратимо повреждена операционная система.

В отличие от Windows 95/98, программа Regedit в Windows 2000 не имеет интерфейса командной строки (то есть DOS). Нельзя редактировать, реестр, не запустив Windows 2000. Кроме того, реестр Windows 95/98 несовместим с реестром Windows 2000. Не пытайтесь, использовать программу Regedit из Windows 95, чтобы редактировать реестр Windows 2000 из командной строки. С помощью редактора реестра Windows 95/98 можно изменять реестр Windows 2000 с удалённого компьютера, используя графический интерфейс, то есть из Windows. Аналогично можно использовать версию программы Regedit из Windows 2000 для внесения изменений в реестр Windows 95.

Раздел 6 Операционная система Linux


Тема 16 Системные характеристики


Linux - это полная многозадачная, многопользовательская операционная система. Linux достаточно хорошо совместим с рядом стандартов на уровне исходных текстов, включая IEЕЕ POSIX.1, System V и BSD. Он создавался, имея в виду такую совместимость.

Другие специфические внутренние черты Linux включают контроль работ по стандарту POSIX (используемый оболочками, такими как csh и bash), псевдотерминалы (pty), поддержку национальных и стандартных клавиатур динамически загружаемыми драйверами клавиатур.

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

Любая файловая система Linux включает в себя несколько основных концепций, связанных с операционной системой Unix: файлы представляются индексными дескрипторами (inode), каталоги это просто файлы, содержащие список записей, а доступ к устройствам может быть осуществлен посредством запросов через файлы устройств


Индексный дескриптор

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

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

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

ln имя существующего файла новое имя

Пример:

[kos]$ln/home/kos/ve/howto/font-HOWTO-ru/Font-HOWTO.html ~/fonts.html.

Теперь можно вместо длинного имени /home/kos/ve/howto/font-HOWTO-ru/Font-HOWTO.html использовать просто ~/fonts.html.


Каталоги

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

Иерархическую структуру каталогов обычно иллюстрируют рисунком "дерева каталогов", в котором каждый каталог изображается узлом "дерева", а файлы - "листьями". В MS Windows или DOS каталоговая структура строится отдельно для каждого физического носителя (то есть, имеем не отдельное "дерево", а целый "лес") и корневой каталог каждой каталоговой структуры обозначается какой-нибудь буквой латинского алфавита (отсюда уже возникает некоторое ограничение). В Linux (и UNIX вообще) строится единая каталоговая структура для всех носителей, и единственный корневой каталог этой структуры обозначается символом "/". В эту единую каталоговую структуру можно подключить любое число каталогов, физически расположенных на разных носителях (как говорят, "смонтировать файловую систему" или "смонтировать носитель").

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

Полным именем файла (или путем к файлу) называется список имен вложенных друг в друга подкаталогов, начинающийся с корневого каталогам и оканчивающийся собственно именем файла. При этом имена подкаталогов в этом списке разделяются тем же символом "/", который служит для обозначения корневого каталога. Например, /home/kos/ve/book/fflesysteml .htm.

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

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

Кроме текущего каталога для каждого пользователя определен еще его «домашний каталог» - каталог, в котором пользователь имеет все права: создавать и удалять файлы, менять права доступа к ним т.д. В каталоговой структуре Linux домашние каталоги пользователей обычно размещаются в каталоге /home и имеют имена, совпадающие с именем пользователя. Например, /home/kos. Каждый пользователь может обратиться своему домашнему каталогу с помощью значка , то есть, например, к каталогу /home/kos/doc можно обратиться как к /doc. Когда пользователь логируется в системе, то текущим каталогом становится домашний каталог данного пользователя.

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

Эта трудность преодолевается следующим образом. Как известно, для каждого каталога (кроме корневого) в дереве каталогов однозначно определен "родительский каталог". В каждом каталоге имеются две особых записи. Одна из них обозначается просто точкой и является указанием на этот самый каталог, а вторая запись, обозначаемая двумя точками, - указатель на родительский каталог. Эти имена из двух точек и используются для записи относительных путей. Чтобы сделать текущим родительский каталог, достаточно дать команду [kos]$cd..

А чтобы перейти по дереву каталогов на два "этажа" вверх, откуда спуститься в подкаталог katl/kat2 надо дать команду [kos]$ cd../../katl/kat2.

Команда ls служит для вывода на экран списка имен файлов и подкаталогов текущего каталога. Нужно отметить, что фактически команда ls просто выводит содержимое файла, который описывает данный каталог, и не происходит никаких обращений к самим файлам. Любой каталог, как уже говорилось, - это обычный файл, в котором перечислены все файлы и подкаталоги этого каталога. То есть, нет никаких особых "ящиков с файлами", есть просто файлы-списки, которые причисляют данный файл к определенному каталогу. Если дать команду ls без параметров, то выводятся только имена файлов текущего каталога. Если нужно просмотреть содержимое не текущего, а какого-то другого каталога, надо указать команде ls полный или относительный путь к этому каталогу.

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


Раздел 7 Выбор операционной системы


Тема 17 Критерии оценки ОС


До недавнего времени вопрос о выборе операционной системы для персональных компьютеров вообще не ставился. Все пользователи находились в равных условиях - в среде MS-DOS. Но с развитием аппаратных средств и хроническим отставанием как DOS, так и Windows от уровня "железа", на сцену начали выходить, казалось бы "тупиковые ветви компьютерной эволюции"-Windows NT и OS/2. Но кроме этих, коммерческих систем, совершенно неожиданно начал получать популярность и один из клонов UNIX - Linux, разрабатываемый широкими (без преувеличения) кругами энтузиастов.

Нет нужды говорить, что правильный выбор операционной системы требует тщательного взвешивания всех "за" и "против". Ведь ошибка в этом вопросе приводит к неоправданным затратам на разработку прикладных программ, эксплуатацию самой вычислительной системы и ее стыковки с вычислительными сетями. Впрочем, если Вы страшитесь погрязнуть в изучении документации к системе, редактировании конфигурационных файлов и вылизывании всяких огрехов, то вам вряд ли стоит отказываться от старой доброй Windows 3.1. Тем не менее, если Вы всерьез подумываете о переходе на 32-разрядную операционную систему, то прежде всего стоит подумать о том, какую же систему выбрать-Windows NT, OS/2 или Linux. А для этого придется рассмотреть несколько факторов.


Критерии оценки

Конечно же, на выбор операционной системы самое прямое влияние оказывают те аппаратные средства, с которыми вам предстоит работать. Ведь если ресурсов вашего компьютера не хватит для загрузки системы, то разве Вы сможете использовать все ее возможности? Минимальные требования к аппаратным средствам следующие. Во-первых, вам необходим по меньшей мере процессор 80386 (то есть 32-разрядный). Конечно, повышение мощности процессора желательно, но не обязательно. Гораздо большее значение для повышения общей производительности системы играет объем оперативной памяти. Кстати, для запуска Linux или OS/2 вам потребуется хотя бы 4 Мбайта оперативной памяти, а для Windows NT - по меньшей мере 12 Мбайт. Что касается дисковой памяти, то минимальные требования для Linux составляют 15 Мбайт, 32 Мбайт для OS/2 и 70 Мбайт для Windows NT. Но имейте в виду, что этих ресурсов хватит только для "пробы", а для реальной работы требования значительно более высокие.

Есть еще одна проблема - проблема совместимости аппаратных средств. С точки зрения здравого смысла это кажется абсурдом - жёстко сконструированные аппаратные средства (hardware) подгоняются под существенно более гибкое и перестраиваемое программное обеспечение (software), в то время как изначальный замысел был прямо противоположным. И вот, если в вашем распоряжении оказалась ЭВМ с шиной МСА (MicroChannel Architecture), которой оснащены все компьютеры фирмы IBM серии PS/2, то можете распрощаться с идеей использования Linux (эту архитектуру Linux не поддерживает). А если на вашем компьютере установлена видеокарта Compaq Qvision, то может оказаться, что OS/2 ее не поддерживает. А если в компьютере установлен сетевой контроллер 3Com Зс501, то Windows NT может отказаться его поддерживать.

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

Операционная система определяет, какие приложения могут быть запущены на вашем компьютере, какой вид имеет интерфейс пользователей, а также, каким образом приложения будут взаимодействовать между собой. Например, если Вы не можете жить без офиса фирмы Microsoft (Word, Excel, Access и PowerPoint), то вам придется отказаться от Linux. OS/2 должна поддерживать эти приложения. В OS/2 реализована концепция объектно-ориентированного подхода к построению интерфейса пользователя. Как данные, так и программы представляют собой объекты, которые могут быть объединены практически произвольным образом.

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

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

Все современные операционные системы поддерживают многозадачный режим работы. Windows поддерживает многопроцессорный режим работы. Несколько Linux-машин можно объединить в один виртуальный многопроцессорный суперкомпьютер.

ОС Windows и Linux поддерживают динамическое кэширование дисковой памяти.

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

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

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


Тема 18 Обслуживание и оптимизация системы Windows


Для обслуживания Windows предназначена функция Maintenance Wizard (Мастер обслуживания).

Мастер обслуживания Maintenance Wizard обеспечивает настройку периодичности запуска утилит Disk Cleanup, Scan Disk и Disk Defragmenter при помощи системы планирования Task Scheduler. Такой подход к администрированию операционной системы гарантирует, что программы, необходимые для поддержания работы системы, будут запускаться чаще, не требуя при этом вмешательства пользователей. Использование утилит Disk Cleanup, Scan Disk и Disk Defragmenter помогает повысить производительность системы, позволяет быстрее выполнять программы, проверять жесткий диск на наличие ошибок и автоматически освобождать место на диске.

Для запуска мастера обслуживания Maintenance Wizard необходимо нажать кнопку Start (Пуск)  Run (Выполнить) и ввести команду tuneup. Кроме того, можно произвести запуск мастера обслуживания Maintenance Wizard, выбрав одноименный ярлык в меню Programs (Программы)  Accessories (Стандартные)  System Tools (Служебные программы). В первом диалоговом окне мастера обслуживания следует выбрать один из двух вариантов выполнения обслуживания.

Вариант Express (Быстрый, с обычными параметрами) применяется для задания стандартной периодичности и времени запуска утилит Disk Cleanup, Scan Disk и Disk Defragmented

Вариант Custom (Особый, с выбором параметров) позволяет определить частоту выполнения заданий, составить расписание, определить время начала выполнения задания, если оно выполняется ежедневно, еженедельно, ежемесячно или однократно.

Затем, мастер обслуживания Maintenance Wizard создаст расписание для регулярного выполнения служебных утилит Disk Cleanup, Scan Disk и Disk Defragmenter, которое поместит в служебную папку Scheduled Tasks (Назначенные задания), что позволит автоматически запускать их в нужное время.