Быстрое восстановление
Согласованность данных и быстрое восстановление файловых систем после сбоев позволяет ведение журнала операций доступа к данным (журналирование).
В VxFS используется одновременная паралельная проверка имеющихся файловых систем, что значительно уменьшает время загрузки после сбоя. Вы также можете монтировать файловую систему даже до окончания ее полной проверки.
Дополнительные аргументы
Наряду с превосходными техническими характеристиками не стоит забывать и о коммерческой стороне дела. Дополнительными факторами говорящими в пользу решений компании Veritas являются:
Поддержка различных операционных систем (Sun Solaris, HP/UX, IBM AIX, Windows 2000, Linux), что приводит к стандартизированному решению для всей вашей ИТ инфраструктуры. Используя файловую систему и менеджер томов VERITAS вы, без отказа от гибкости использования различных платформ, получаете общую концепцию и интерфейсы управления системами хранения данных по всему предприятию. Лучшая интегрированность всех компонентов используемых для управления системами хранения данных, так как все компоненты произведены одной компанией. Широко используемые и проверенные технологии, являются стандартом де-факто, поддерживаются практически всеми производителями. Veritas является крупной, «крепко стоящей на ногах» компанией, так что вы можете быть уверены в обеспечении необходимого уровня обслуживания и дальнейшего развития решений.
Достижение высокой производительности и масштабирования
Файловая система Veritas намного производительнее, чем другие, также журналируемые и также основанные на экстентах, файловые системы. Для примера, пиковая пропускная способность на 236% быстрее чем в ReiserFS и на 478% быстрее чем в ext3 (согласно SPECsfs3.0 NFS Server Benchmark на Linux платформе).
Основой лучшей производительности ввода/вывода VxFS являются агрессивная кластерная политика ввода/вывода, интеграция с менеджером томов Veritas VxVM, и возможность для системных администраторов устанавливать параметры файловой системы специфичные для приложений.
Файловая система
Файловая система VxFS является журналируемой и основана на экстентах (подробнее см. в cтатье «Управление томом, использование файловой системы и тонкая настройка системы» [Генри Ньюман, LAN #11/2002]).
Экстентом называется один или несколько смежных блоков данных в файловой системе. Он представляется как пара адрес-длина, которая идентифицирует стартовый адрес блока и длину экстента (в физических или логических блоках). Так как практически все современные диски позволяют паралельное считывание многих блоков, то для непрерывных операций ввода/вывода доступ к данным при многоблочной организации конечно же значительно быстрее, чем последовательные операции ввода/вывода по одному блоку в единицу времени.
В файловой системе VxFS для косвенной адресации (необходима в многодисковых конфигурациях) также применяется особый тип экстентов, называемый типизированным экстентом (typed extent). Каждый элемент карты блоков имеет Запись Типизированного Дискриптора, которая содержит тип (уникальный идентификатор определяющий длину и формат), смещение, стартовый блок и количество блоков.
Файловая система и менеджер томов Veritas
©
4 июля 2003
Если вы системный администратор и занимаетесь поиском работы (в США), то вы наверняка обратили внимание на то, как часто сейчас требуются системные администраторы со знанием технологий комании Veritas и, особенно, файловой системы (Veritas File System - VxFS) и менеджера томов Veritas (Veritas Volume Manager – VxVM).
Попробуем понять, почему так популярны эти продукты? Почему компании готовы платить деньги за эти продукты компании Veritas несмотря на то, что практически все современные операционные системы поставляются с каким-либо вариантом журналируемой файловой системы и различными менеджерами томов?
Примеры современных файловых систем: ReiserFS или ext3 для Linux, JFS2 для IBM AIX 5L, Sun UFS и QFS для Sun Solaris, или NTFS Journaling FS в Windows 2003 (многие технологии управления данными компании Microsoft основаны на «урезанных» версиях продуктов компании Veritas).
Прим.: Компания Veritas имеет также продукт Veritas Foundation Suite, который объединяет эти обе технологии, а также содержит в себе продукты SANPoint QuickStart, и возможности Veritas QuickLog.
Графический интерфейс
Наибольшего упрощения управления конфигурациями системы хранения данных позволяет графический интерфейс VERITAS Volume Manager Storage Administrator, который предоставляет доступ ко всем конфигурациям и утилитам управления дисковой подсистемой и, конечно же, всем командам.
VERITAS Volume Manager Storage Administrator является Java приложением, которое может выполнятся на удаленной рабочей станции (или на PC с сервером системы X Window). Volume Manager Storage Administrator также позволяет управление группой серверов с различными операционными системами. Вы можете открыть необходимое количество окон, каждое для различных систем, хостов или объектов.
Изменение конфигураций
Если новая структура менеджера томов только создается то она может быть загружена используя файл ввода. Для изменения или удаления структур можно использовать как команды, меню или графический интерфейс, так и способом удаления старой конфигурации и загрузки новой. Последний способ не является лучшим, так как необходимо прерывать доступ к устройствам хранения. Остальные же способы могут выполнятся «на лету».
Чтобы была возможность перестройки поврежденной среды менеджера томов очень рекомендуется вывод команды vxprint сохранять во внешнем файле.
Как работает «моментальный снимок» файловой системы
Моментальный снимок файловой системы создается монтированием пустого дискового пространства (slice). Битовая, блоковая карты и супер-блок инициализируются и смонтированная файловая система, которая должна быть snapped, «замораживается». Как только файловая система, которая должна быть snapped «заморожена» (т.е. прошла инициализация) появляется возможность делать «моментальные снимки» и snapped файловая система «размерзается» и готова к использованию.
Когда изменяется inode или записываются данные в блок данных N snapped файловой системы, то старые данные перед изменением snapped файловой системы сначала считываются и копируются в «моментальный снимок». Значение битовой карты изменяется на 1 (означает, что данные для блока N могут быть найдены в snapped файловой системе). Элемент блоковой карты для блока N изменяется на номер блока в «моментальном снимке» содержащему старые данные.
При запросе данных блока N из «моментального снимка» сначала проверяется значение битовой карты и, в случае значения 1 читается информация из указанного в блоковой карте блока «моментального снимка». Если же значение битовой карты равно 0, то считываются данные из блока N snapped файловой системы. Последующие операции записи в блок N snapped файловой системы не требуют создания дополнительных копий «моментального снимка», так как старые данные для него должны быть сохранены только один раз.
История изменений snapped файловой системы (inode, директории, данные в файлах, карты экстентов, и т.п.) храниться в «моментальных снимках», которые содержат последовательные образы всех структур snapped файловой системы соответственно для времени, когда соответствующий «моментальный снимок» был создан.
Так как в «моментальных снимках» хранится только измененная информация, количество дискового пространства требуемое для размещения «моментальных снимков» зависит от частоты изменений в snapped файловой системе и времени, в течение которого «моментальный снимок» должен храниться. В худшем случае, snapped файловая система полностью заполнена и каждый файл удален и переписан. В этом случае дисковое пространство для «моментального снимка» должно быть приблизительно равно 101% размера snapped файловой системы.
К счастью, данные в основных файловых системах не так экстремально часто меняются.
Практика показывает, что в период низкой активности «моментальный снимок» требует от 2-х до 6-ти процентов размера snapped файловой системы. В период высокой активности (изменения данных) «моментальный снимок» может потребовать до 15% размера snapped файловой системы.
Логично, что при одинаковой активности для больших файловых систем этот процент будет меньше, а для маленьких файловых систем больше.
Классы операций
Volume Manager Storage Administrator может быть использован как для выполнения сложных, так и одношаговых (базовых) операций. В добавление к возможностям по управлению томами Volume Manager Storage Administrator может быть использован для создания и администрирования файловых систем на этих томах и управления инициализацией дисков. Также можно его использовать для мониторинга выполнения задач ввода/вывода.
Конфигурационные файлы
Как и в обычных системах управления базами данных, конфигурационная база данных может быть загружена или расширена используя файл ввода, в котором определяется конфигурационный файл. Администратор может использовать утилиту vxprint -m для создания копии текущей конфигурации в загружаемом формате для целей восстановления или клонирования конфигурации.
Конфигурирование «на лету»
Для VxFS вы можете не останавливая всей системы и не снижая производительности выполнять следующие задачи администрирования:
Изменение (как увеличение, так и уменьшение) размера файловой системы. Создание «моментальных снимков» (snapshot) состояния файловой системы для решения задач резервного копирования позволяет не ограничивать доступ к данным и не требует значительного дополнительного дискового пространства. Также, наличие «моментальных снимков» значительно сокращает время восстановления данных. Технология «моментальных снимков» также хороша для создания удаленных реплик данных, так как по линиям связи передаются только измененные данные. Дефрагментация файлов и оптимизация директорий.
Моментальный снимок (snapshot) файловой системы
Моментальный снимок (snapshot) файловой системы это точный образ оригинальной файловой системы в определенный момент времени, которая называется snapped файловой системой. Моментальный снимок файловой системы всегда доступен только для чтения read-only, причем вы можете копировать из него как отдельные файлы (используя команды cp или cpio) так и всю файловую систему (утилиты volcopy, vxdump, fscat).
Моментальный снимок файловой системы содержит:
супер-блок битовую карту блоковую карту блоки данных скопированные со snapped файловой системы.
Супер-блок подобен супер-блоку нормальной файловой системы VxFS хотя magic номер различен и значения многих полей уже бессмысленны.
Сразу же за супер-блоком идет битовая карта, которая содержит по одному биту для каждого блока snapped файловой системы. Вначале все значения битовой карты равны нулю. Установка бита в единицу означает, что соответствующий блок изменен в snapped файловой системы и перед изменением скопирован в «моментальный снимок».
Блоковая карта используется для ссылок на копируемый в «моментальный снимок» блок. Вначале в блоковой карте все значения тоже равны нулю. И когда блок копируется в «моментальный снимок» соответствующий элемент блоковой карты изменяется и содержит номер блока .
Блоки данных размещаются за блоковой картой. Они заполняются данными копируемыми из snapped файловой системы.
Новые конфигурации
Обычно, новая конфигурация менеджера томов загружается с помощью средств перечисленных ниже, но все же вы можете полностью сконфигурировать систему используя команды установки диска или файл ввода конфигурации.
Параметры специфичные для приложения
Системные администраторы для достижения максимальной производительности ввода/вывода могут устанавливать следующие параметры файловой системы:
Размер экстента по умолчанию Установка нижнего параметра, выше которого все операции выполняются как прямой ввод/вывод. Максимальный размер прямого ввода/вывода
Тесная интеграция с VxVM
VxFS использует интерфейсы к VxVM для определения характеристик ввода/вывода тома. Для достижения максимальной производительности и соответствующего размещения данных эта информация и интерфейсы также используются когда VxFS создает файловую систему (mkfs).
Как составная часть интегрированного решения VxFS/VxVM, менеджер томов VxVM экспортирует различные наборы параметров ввода/вывода для достижения наивысшей производительности, например специфические наборы для RAID-5, распределенных (striped), и зеркалированных (mirrored) томов. Например, для RAID-5 обеспечивается полное распределение по всем дискам при записи (full stripe writes).
Улучшенная кластеризация ввода/вывода
Кластеризацией ввода/вывода называется технология группировки множества операций ввода/вывода. Более агрессивную кластеризацию, в сравнении с другими файловыми системами, и высокую производительность, особенно при операциях с большими файлами, обеспечивают политики ввода/вывода VxFS.
Управление из командной строки — одношаговые операции
Позволив управляющим средствам использовать заложенные в них знания по безопасному и производительному размещению новых и переконфигурированных объектов многие базовые операции конфигурирования могут быть упрощены.
Команда менеджера томов vxassist позволяет администратору однозначно определить результаты желаемой операции конфигурации, как, например, «создать дважды зеркалированный 50 GB том» так и с детальным указанием желаемого размещения («создание зеркала для этого тома на диске с такой же геометрией на таком же типе контроллера»). Этот способ используется для создания новых объектов, добавления или удаления зеркалирования и регистрации (logs), а также для изменения размера объектов. Администратор может комбинировать одношаговые и сложные операции.
Управление из командной строки — сложные операции
Менеджер томов Veritas поддерживает интерфейс командной строки как для первоначального конфигурирования так и для последующего администрирования. Существует набор утилит используемых для управления восстановлением данных, доступа к данным, а также измерения производительности.
Управление с помощью меню
Для упрощения доступа к основным командам управления дисками и дисковыми группами менеджер томов использует утилиту меню vxdiskadm. Эта утилита позволяет добавлять новые диски и подчинять их контролю менеджера томов, для создания и наполнения новых дисковых групп, а также для выполнения основных функций управления и замены дисков.
Ведущее решение для консолидации систем хранения
Для устранения физических ограничений систем хранения данных, а также для возможности динамично и проактивно управлять данными используется виртуализация.
Основными типами объектов VxVM являются физический и виртуальный объекты.
Физический объект – физические диски или другие устройства с блоковым или raw device интерфейсом, которые используются для хранения данных;
Виртуальный объект - логическое представление дискового пространства в виде томов, плексов, субдисков, дисковых групп, и VM дисков.
Данные в виртуальных томах могут быть организованы следующими способами:
Соединение и spanning Расслоение (RAID-0) Зеркалирование (RAID-1) Расслоение и зеркалирование (зеркалированные слои, RAID-0+1) Зеркалирование и расслоение (расслоенное зеркало, RAID-1+0) RAID-5 (расслоение с контролем четности)
Менеджер томов Veritas позволяет менять внутреннюю организацию данных «на лету» (конечно же, для выполнения этих операций у вас должно быть необходимое свободное дисковое пространство).
В менеджере томов используются специальные решения для организации хранения данных, которые позволяют значительно улучшить производительность, например, полное расслоение и лево-симметричная организация для конфигурации RAID-5 или, для массивов RAID-1, если у вас есть «моментальные снимки», то синхронизация массива производится очень быстро.
Возможности управления
Управление сервером – дорогое удовольствие, и особенно это утверждение относится к конфигурированию дисковой подсистемы. Чтобы контролировать используемую дисковую конфигурацию, администратор должен иметь возможность определить текущую конфигурацию, применять последовательные шаги по ее изменению, а также измерять эффективность и производительность дисковой подсистемы. Все это можно делать используя менеджер томов Veritas.
Различные администраторы предпочитают пользоваться разными средствами управления. Например, администратор управляющий множеством систем с графической консоли и выполняющий анализ производительности и переконфигурацию дисковой подсистемы может предпочесть использование графического интерфейса. В то же время, сервисному инженеру, который звонит на проблемный центр данных используя модем, может оказаться удобнее пользоваться алфавитно-цифровым набором инструментов управления.
Успешное использование информационных технологий похоже
Успешное использование информационных технологий похоже уже не является существенным конкурентным преимуществом, а является обязательным элементом выживания почти любой современной организации. И поэтому требования к непрерывной доступности данных (надежность и производительность) важны в настоящее время как никогда ранее.
Эффективным ответом компании Veritas на проблемы обеспечения необходимого и достаточного уровня надежности и производительности систем хранения данных, имеющая лучшие характеристики (и часто значительно лучшие), чем ближайшие конкуренты, является файловая система Veritas.
Имея надежную, быстро восстанавливаемую файловую систему, такую как VxFS, мы будем защищены от длительных незапланированных простоев из-за какой-либо аварии и сбалансированные процессорные мощности и подсистему ввода/вывода.
Но что же делать с запланированными простоями, необходимыми в таких случаях, как изменение размера тома данных, добавления нового диска в дисковый массив? Что делать с всё ускоряющимся ростом затрат на управление системами хранения данных? Как оптимизировать использование имеющихся дисковых систем в организации?
Решением, которое позволяет проводить конфигурирование и администрирование дисковой подсистемы «на лету», снижает затраты на управление и общую стоимость владения (TCO) системами хранения данных является менеджер томов Veritas.
и файловая система VERITAS специально
Менеджер томов VERITAS и файловая система VERITAS специально разработаны для информационных систем, где требуется высокая надежность, высокая производительность и непрерывность операций. Технические характеристики и явные коммерческие выгоды от их использования для таких ИС настолько хороши, что компании готовы идти на дополнительные затраты.
А где брать серверы FTP, Samba и Apache?
FTP-сервер присутствует в минимальной поставке. Кстати, анонимный
доступ к нему надо конфигурить, а вот парольный действует автоматически.
А для Samba и Apache достаточно просто сменить Media - указать в качестве
источника FTP-сервер. Packages (в это понятие входят множество программ)
редко превышают 1.5 MB, так что их можно инсталлировать даже по сети из США,
что я и делал.
А почему именно FreeBSD?
Я наконец проникся уверениями Micro$oft, BSA и прочих серебролюбивых организаций, что нехорошо использовать ворованное ПО - это аморально, преступно, а также невыгодно. Из бесплатных OS мне известны три Unix'а - FreeBSD, Linux и SCO (последний - только для некоммерческого использования), а также Acorn'овская RiscOS. Но RiscOS идет только на RISC-процессорах ARM, а из Unix'ов я лучше всего знаю FreeBSD.
А почему она так долго загружается? Нельзя ли быстрее?
Основное время тратится на неудачные попытки лишних драйверов
найти несуществующие устройства. Все драйверы жестко вшиваются в ядро
(хотя есть loadable kernel modules, это мало меняет суть дела),
поэтому если хочется, чтобы машина работала более эффективно, придется
перекомпилировать ядро. Это не требует писать программы, надо только
указать компилятору, какие именно части надо включить в ядро.
Со страхом и трепетом я приступил в первый раз к перекомпиляции ядра.
На всякий случай позвал на помощь товарища. Тот, правда, видел Unix второй
раз в жизни, но "кто умеет - делает, а кто не умеет - советует". :-)
Еще говорят, что "кто совсем не умеет - учит", но я, как видите, делал,
а теперь учу. :-) Кстати, его советы оказались неплохими, по крайней мере
в части перевода с английского и в понимании логики конфигурирования.
Для начала надо получить
ftp://ftp.freebsd.org/pub/FreeBSD/версия-RELEASE/src/ssys.*, обычно
я кладу их рядом с bin. Теперь их надо извлечь. Маленькая тонкость -
по умолчанию /sys -> /usr/src/sys, а я не хочу кидать
исходники ядра в /usr. Поэтому
mkdir /usr/src
mkdir /var/src
mkdir /var/src/sys
ln -s /var/src/sys /usr/src/sys
cat .../src/ssys.?? | tar --unlink -xvpzf - -C /
Последнюю строчку я почти не раздумывая взял из .../bin/install.sh.
При этом извлекается исходник ядра с кучей драйверов, часть из которых
присутствует в GENERIC.
cd /sys/i386/conf
cp GENERIC MYCONF
редактировать файл MYCONF
config MYCONF
cd /sys/compile/MYCONF
make depend
make
make install
reboot
Если компиляция заткнется на каком-либо этапе, вам сообщат. Внимательно читайте диагностику и, чтобы не сбросить ее с экрана, производите правку с другой виртуальной консоли или из другой сесии telnet.
А зачем оно нужно?
Зачем нужен firewall - и так понятно. Вы же не хотите, чтобы ваш компьютер, или вся сеть, подключенная к интернету, были доступны всем желающим. Доступ должен разрешаться только туда, куда вы решите. А одним из простых вариантов firewall'а как раз и является фильтр пакетов.
Маскарадинг - вещь менее очевидная. Если у вас один компьютер с dial-up подключением, то он вам и не нужен. А как быть, если у вас в организации локальная сеть, и все хотят в интернет, а провайдер дал вам один-единственный IP-адрес? Или того хуже, вы организовали сеть дома с соседями, а dial-up у вас один, да еще с динамическим адресом? Ну или просто ваша жена скучает, когда вы бродите по интернету, и вы купили ей отдельный компьютер, и даже соединили его со своим, а телефонная линия у вас все равно одна и dial-up account тоже?
Можно, конечно, поставить прокси-сервер. Но это требует времени и некоторых усилий по настройке самого сервера, и клиентских программ. Вдобавок, он обеспечивает работу только ограниченного набора протоколов. Маскарадинг позволяет избежать этих трудностей.
В некоторых организациях маскарадинг применяется даже если у машин есть реальные IP-адреса, чтобы скрыть внутреннюю структуру сети. Снаружи это выглядит так, как будто все запросы исходят от единственной машины-шлюза.
Замечу, что "локальная сеть" может состоять из двух или более компьютеров (или даже виртуальных компьютеров на одном физическом), и совершенно неважно, как именно они соединены между собой (Ethernet, последовательный, параллельный или инфракрасный порт, USB или еще как-нибудь). Не играет особой роли и протокол, по которому эти компьютеры общаются между собой, подойдет и SLIP, и PLIP, и PPP, и IP-туннель над другим протоколом.. Единственное, что действительно требуется - чтобы этот протокол поддерживал передачу IP-пакетов.
Как выбрать адреса для машин в локальной сети? Если ваш интернет-провайдер выделил вам пул адресов, то адреса надо брать из него. Если же вам выделяется только один адрес (в том числе, и динамический) то в локальной сети настоятельно рекомендуется выбирать адреса из специально выделенных диапазонов 192.168.0.*, 172.16.0.0 - 172.31.255.255 или 10.*.*.* (так называемые fake-адреса, не маршрутизирующиеся глобально). (См.
RFC 1597). Сконфигурированный для маскарадинга шлюз может менять заголовки IP-пакетов, пришедших из вашей локальной сети и отправлять их получателю уже со своего реального IP-адреса. В полученных снаружи ответных пакетах он меняет адрес получателя обратно на fake-адрес и пересылает пакет по назначению.
Вы, конечно, можете назначить своим компьютерам и чужие реальные адреса, но это чревато некоторыми неприятностями. При использовании маскарадинга вы не сможете связаться с удаленными хостами, которым эти адреса принадлежат по праву (поскольку ваш шлюз будет думать, что они находятся в вашей локальной сети). При отсутствии маскарадинга у вас просто не установится ни одно соединение, поскольку никто, кроме вашего шлюза, не будет маршрутизировать пакеты для чужих адресов в вашу сеть.
Вот два примера для более четкого понимания, зачем и как можно настроить локальную сеть для работы с интернетом:
Пример 1: локальная сеть и единственный реальный IP-адрес
У вас есть локальная сеть, единственный выход в интернет (например, dial-up по ppp, хотя это не существенно) и шлюзовой компьютер с реальным выделенным IP-адресом (например, 1.2.3.4). На интерфейсе локальной сети этот компьютер имеет адрес 192.168.1.1. В локальной сети находится компьютер myhost с адресом 192.168.1.100, с которого вы хотите пользоваться интернет-браузером. Как это реализовать?
Вариант 1 (прозрачное проксирование): на компьютере firewall устанавливается proxy-сервер, все пакеты из локальной сети, адресованные на внешние http-серверы заворачиваются в этот proxy-сервер, который посылает запросы вовне со своего реального адреса 1.2.3.4, а полученные ответы пересылает обратно в локальную сеть. При этом браузер на машине myhost конфигурируется как для прямого соединения с интернетом, потому такое проксирование и называется прозрачным. С точки зрения удаленного http-сервера соединение устанавливается с вашего шлюза. С точки зрения браузера соединение устанавливается с удаленным сервером.
Вариант 2 (маскарадинг): у всех пакетов из локальной сети, адресованных вовне, адрес отправителя меняется на 1.2.3.4, а у приходящих в ответ пакетов адрес получателя заменяется на 192.168.1.100 и они пересылаются на машину myhost.
С точки зрения удаленного сервера соединение устанавливается с вашим шлюзом. С точки зрения браузера соединение устанавливается с удаленным сервером.
Пример 2: локальная сеть с реальными IP-адресами
У вас есть локальная сеть с постоянным подключением к интернету. Все машины в локальной сети имеют реальные IP-адреса из пула 1.2.3.x. Шлюзовой компьютер имеет IP-адрес 1.2.3.4. Внутри сети установлен компьютер с адресом 1.2.3.10, который вы хотите сделать доступным для всего интернета, но только в качестве http-сервера.
В такой конфигурации фильтр пакетов может использоваться для ограничения доступа, в частности, внутрь вашей сети из остального интернета.
Вариант 1 (редиректор): пересылка пакетов из интернета внутрь вашей сети и обратно запрещена. На шлюзе на определенном порту ожидает входящих соединений программа, называемая редиректором. При установке соединения извне она также устанавливает соединение с сервером внутри вашей сети и производит прозрачную пересылку данных в обе стороны. С точки зрения вашего сервера соединение устанавливается с вашего же шлюза. С точки зрения удаленного клиента в интернете соединение устанавливается со шлюзом. Преимущество в том, что никакие другие соединения с вашим сервером из интернета не могут быть установлены, что сильно повышает безопасность. Недостаток в том, что сервер не может определить, с каким клиентом он реально работает.
Вариант 2 (требуется ядро 2.1.x или выше, либо патченное на предмет ipportfw 2.0.x): идея примерно та же, что и при редиректе, но реализуется другим способом. Ядро меняет адрес получателя для определенных пакетов и пересылает их в локальную сеть. С точки зрения сервера соединение устанавливается с удаленным клиентом, с точки зрения клиента соединение устанавливается со шлюзом. Недостаток предыдущего варианта устраняется: сервер видит реального клиента.
Acroreader
Электронная документация уже несколько лет как поставляется в формате Adobe PDF, а утилита для ее чтения Acroreader бесплатно распространяется через Internet. В загруженной из Сети версии Corel LINUX в меню ссылка на Acroreader была, но самой этой утилиты не было. Я попробовал установить Acroreader для Linux самостоятельно. В результате получил сообщение о невозможности найти одну динамическую библиотеку, хотя последняя явно присутствовала и даже находилась в кэше динамического загрузчика. Решив более не возиться, я оставил эту проблему до того момента, как в редакции появится нормальная коммерческая версия Corel LINUX.
Опытные пользователи Windows NT успели
, #03/2000
Криста Андерсон
Опытные пользователи Windows NT успели привыкнуть к утилите Disk Administrator, с помощью которой можно было создавать, удалять и менять параметры томов на физических дисках. В Windows 2000 ее заменил модуль административной консоли Disk Management. Для работы с ним следует открыть папку Administrative Tools и выбрать Computer Management-Storage-Disk Management (см. Экран 1).
ЭКРАН 1. Использование Disk Management
Анализ надежности
Для проверки надежности системы мы вручную внесли некоторые тщательно подобранные ошибки в некоторые из своих серверов и драйверов, чтобы посмотреть, что в результате произойдет. Как описывалось в разд. 3.3, наша система разрабатывается для обнаружения и исправления многих ошибок, и именно это мы и наблюдали. Если по какой бы то ни было причине происходил сбой некоторого компонента, это распознавалось сервером реинкарнации, который применял все требуемые средства для оживления сбойного компонента. Ниже это описывается более подробно.
Для понимания работы нашей системы нужно различать два класса ошибок. Первый класс составляют логические ошибки, означающие, что сервер или драйвер придерживается протокола межмодульных взаимодействий и нормально отвечает на запросы, как если бы он успешно выполнил работу, чего в действительности не происходит. Примером является драйвер принтера, который печатает бессмысленную информацию, но производит нормальные возвраты. Для любой системы очень трудно, если не невозможно, отлавливать ошибки такого рода. Логические ошибки находятся за пределами этого исследования.
Второй класс состоит из протокольных ошибок, при наличии которых нарушаются правила, определяющие поведение серверов и драйверов. Например, в нашей системе от серверов и драйверов требуется отвечать на периодические запросы состояния, поступающие от сервера реинкарнации. Если они не подчиняются этому правилу, предпринимается корректирующее действие. Наша система разрабатывается для борьбы с протокольными ошибками.
Анализатор готовности
При установке Windows 2000 инсталляционная программа анализирует аппаратное и программное обеспечение компьютера, выводит на экран отчет о возможности модернизации, который можно напечатать или сохранить на диске, после чего предоставляет возможность прекратить инсталляцию, если то, что вы узнали о совместимости, выглядит слишком мрачно.
Но не лучше ли получить неутешительные сведения до того, как вы заплатите за новую ОС? Это можно сделать с помощью бесплатного анализатора готовности компьютера к Windows 2000 (Windows 2000 Readiness Analyzer), имеющегося на Web-узле Microsoft (). Его запуск - последняя проверка перед выкладыванием денег на модернизацию. Если же вы обнаружили препятствия к установке Windows 2000, но все-таки стремитесь окунуться в нее, замените или удалите все несовместимые программы. Несовместимые устройства либо деинсталлируйте, либо проконсультируйтесь у их изготовителей по поводу замены драйвера.
Анализируем журнал безопасности Windows NT
, #03/2000
Франклин Р. Смит
Журнал безопасности Security Log может использоваться для отслеживания (аудита) большинства действий пользователей в системе. Существует три основные категории такого аудита - это аудит сеансов работы пользователей, аудит доступа к объектам системы и аудит выполняющихся задач. Эти категории дают основную информацию при наблюдении за действиями пользователей. Системная политика аудита настраивается в меню Policies-Audit-Audit Policy, вызываемом из программы User Manager (см. Экран 1). Данное диалоговое окно позволяет выбрать, какие из семи категорий фиксировать в локальном журнале безопасности, а какие нет.
Аннотация
Хорошо известно, что в большинстве случаев аварийные отказы операционных систем происходят из-за ошибок в драйверах устройств. Поскольку драйверы обычно подключаются к адресному пространству ядра, драйвер, содержащий ошибки, может затереть таблицы ядра и привести к аварийному отказу или останову системы. Нам удалось значительно смягчить эту проблему засчет сокращения размеров ядра до абсолютного минимума и выполнения каждого драйвера в виде отдельного непривилегированного процесса в пользовательском адресном пространстве. Кроме того, мы реализовали POSIX-совместимую операционную систему в виде набора процессов, выполняемых в пользовательском режиме. В режиме ядра выполняется только крошечное ядро, состоящее менее чем из 3800 строк исполняемого кода, которое выполняет начальную обработку прерываний, запускает и останавливает процессы и обеспечивает IPC. За счет перемещения практически всей операционной системы в несколько защищенных процессов, выполняемых в пользовательском режиме, мы уменьшили последствия сбоев, поскольку сбой драйвера больше не является фатальным и не приводит к потребности перезагрузки системы. В действительности, в состав нашей системы входит сервер реинкарнации, который разработан для борьбы с такими ошибками и часто обеспечивает полное восстановление, прозрачное для приложения и обеспечивающее отсутствие потери данных. Для достижения максимальной надежности в своей разработке мы руководствовались принципами простоты, модульности, наименьшей авторизации и отказоустойчивости. В этой статье обсуждается наш облегченный подход, и приводятся данные о его эффективности и надежности. Кроме того, наша разработка сравнивается с другими подходами к защите драйверов с использованием обертывания ядра и виртуальных машин.
Совершенство достигается не тогда,
когда уже нечего прибавить,
а когда уже ничего нельзя отнять
Антуан де Сент-Экзюпери. Планета людей [9]
Archive Manager
Каждая уважающая себя операционка должна иметь в своем составе хотя бы один архиватор. Хорошая новость: в Corel LINUX есть такой, и называется он Archive Manager. Плохая: он понимает не все форматы архивов. Так, мне не удалось распаковать им ZIP-архивы. Зато TAR и GZIP щелкаются как семечки.
Пользовательская среда отстает от WinZip, но все равно сделана довольно прилично (рис. 4).
Рис. 4
АРГУМЕНТОВ ПРОТИВ НЕМЕДЛЕННОЙ МИГРАЦИИ
1. Отсутствие проблем, требующих решения
Приступать к развертыванию системы лишь потому, что в ней реализованы некие замечательные средства, - значит следовать неверной стратегии. Администратор должен дать коммерческое обоснование перехода на Windows 2000 в конкретных условиях своей организации. Помимо прочего, он должен указать, какие проблемы поможет решить новая система, будет ли Windows 2000 способствовать экономии средств, а если да, то каким образом и в какие сроки, и, наконец, какие новые возможности откроются с появлением новой операционной системы (опять-таки речь идет о возможностях экономии средств компании или о зарабатывании денег для нее). Без этого не обойтись, ибо только такие аргументы принимают сотрудники финансовых отделов и акционеры корпораций. Экономическое обоснование поможет определить, в какие сроки стоит развертывать в компании систему Windows 2000.
2. Тридцать миллионов строк
Windows 2000 - самый объемный программный комплекс за всю историю отрасли. Корпорация Microsoft привлекла к бета-тестированию (подразумевающему извещение изготовителя об обнаруженных ошибках) беспрецедентное число пользователей, и все же грандиозный масштаб проекта дает основания полагать, что множество недоработок пока еще не выявлено. Так что, если особой необходимости немедленно переходить на новую ОС нет, лучше дождаться выхода в свет первого пакета исправлений (Service Pack 1, SP1), и лишь после этого начинать миграцию в масштабе предприятия.
3. Учиться лучше на чужих ошибках
В сервисных пакетах обобщается опыт тех организаций, которые перешли на новую операционную систему раньше других. О том, как это происходило, можно узнать, посещая конференции и пользовательские форумы в Internet, а также из материалов, публикуемых на страницах специализированных печатных изданий. Полезно выяснить, какие компании устанавливают новую ОС, чего они добились, с какими проблемами столкнулись и каким образом их решали.
4. Службы имен DNS
Для многих компаний весьма важно, как операционная система Windows 2000, которая строится на базе службы DNS и ее новейших расширений, вписывается в существующую инфраструктуру DNS.
Данная проблема серьезнее, чем может показаться на первый взгляд, и дело здесь не в технических аспектах, а в том, что в большинстве компаний служба DNS организована в среде UNIX. Общеизвестно, что NT и UNIX - непримиримые конкуренты, и в этой ситуации возникают проблемы, связанные с приверженностью организаций той или иной ОС.
5. Требования к прикладным программам
Одна из главных задач Windows 2000 состоит в том, чтобы обеспечивать выполнение прикладных программ. Новая система предъявляет к приложениям еще более строгие требования, нежели Windows NT 4.0, и практически для всех прикладных программ, взаимодействующих с аппаратными средствами, понадобятся новые драйверы Windows 2000. Поэтому к моменту развертывания данной операционной системы потребуется подготовить все необходимые приложения.
6. Сервисная инфраструктура
По всей вероятности, на формирование сервисной инфраструктуры компании повлияли особенности системы Windows NT (вернее сказать, накладываемые ею ограничения). Если так, то в системе технического сопровождения наверняка предусмотрен центр помощи, а каждое крупное звено управления располагается в отдельном домене. В этом случае при переходе на Windows 2000 и, соответственно, при передаче прав администрирования управления на более низкие ступени организационной иерархии придется внести изменения в структуру технической поддержки. Скажу больше: при переводе на Windows 2000 придется менять инфраструктуру поддержки, скорее всего, любой сети, что, конечно, несравнимо с простой модернизацией. Все эти детали следует тщательно продумать до начала миграции.
7. Необходимость планирования
Windows 2000 - сложная система, и до того, как можно будет приступить к ее эксплуатации, придется очень много времени посвятить планированию процесса миграции. Затем нужно будет собрать и проанализировать потребности клиентов, заняться проектированием и поработать с тестовой инсталляцией. Короче говоря, в 2000 г. расслабляться никак не придется.
8. Подготовка персонала
Управление сетью Windows 2000 и администрирование сети Windows NT - совершенно разные вещи.
Главная проблема состоит в том, чтобы уже на ранних стадиях подготовки к миграции познакомить специалистов подразделений технической поддержки с концепциями, принципами работы и инструментальными средствами административного управления Windows 2000. Нужно как можно раньше приступить к обучению "ударной группы" специалистов (в нее лучше всего отобрать по одному - но самому толковому - сотруднику из каждого подразделения). Эти люди станут ядром службы технической поддержки. Они возьмут на себя обеспечение бесперебойной работы компании до тех пор, пока остальные не наберутся опыта, и помогут коллегам освоить все тонкости новой системы.
9. Комбинированная среда
Рассматривая вопрос о переходе на Windows 2000, следует уделить особое внимание такой проблеме, как комбинированная среда Windows 2000 и Windows NT 4.0. Разграничим два понятия: комбинированная среда (mixed environment) и смешанный режим работы (mixed mode). Если смешанный режим подразумевает наличие домена Windows 2000, в котором имеются контроллеры домена как Windows 2000, так и Windows NT 4.0, то комбинированная среда описывает более широкий спектр конфигураций. Комбинированная среда - это любое сочетание серверов и клиентов Windows 2000 и Windows NT 4.0 в сети NT. Таким образом, на протяжении всего периода миграции - начиная с модернизации контроллеров домена и до того момента, когда последний клиент Windows NT Workstation 4.0 или Windows 98 модернизируется до уровня Windows 2000 - работа будет происходить в комбинированной среде. Обслуживание комбинированной среды - задача непростая. Дело в том, что поиск возможных неполадок в работе системы приходится вести с учетом присутствия на сцене совершенно различных составов "действующих лиц". Это могут быть, к примеру, контроллеры домена Windows 2000 и контроллеры домена Windows NT 4.0 (смешанный режим); контроллеры домена Windows 2000 и пока не модернизированные клиенты (скажем, NT 4.0, NT 3.51 или Windows 98) или не модернизированные серверы домена (NT 4.0 или NT 3.51).
Другие возможные комбинации: серверы Windows 2000 и не модернизированные клиенты; контроллеры домена Windows 2000 и клиенты NT Workstation 4.0 или Windows 9x с установленной на них службой Directory Service Client (dsclient.exe); наконец, клиенты Windows 2000 Pro и контроллеры домена NT 4.0. Всего же на базе пяти описанных элементов можно создать четырнадцать различных комбинаций (вместо обычных двух или трех). Чтобы успешно устранять причины неполадок в работе сети, требуется знание всех этих ситуаций.
10. Большие расходы
Переход на Windows 2000 - это масштабный и дорогостоящий проект. При разработке его стратегии нельзя оставлять без внимания ни одно из подразделений компании, поэтому предстоит учесть множество важных факторов (в том числе такие, как аппаратные компоненты серверов, обучение кадров, зарплата участвующих в проекте сотрудников, расходы на командировки и на организацию связи с клиентами). Чтобы получить полнофункциональную сеть Windows 2000, нужно модернизировать рассчитанные на работу под управлением Windows NT Workstation 4.0 клиентские машины (правда, к тому времени, когда компания приступит к развертыванию Windows 2000 Pro, требования этой системы к аппаратным компонентам, возможно, будут учитываться и при рутинной модернизации аппаратных средств). Все это требует финансирования. И не следует забывать, что придется оплачивать лицензии на новое программное обеспечение.
АРГУМЕНТОВ В ПОЛЬЗУ МИГРАЦИИ
1. У вас просто нет выбора
Нравится нам это или нет, новая ОС уже буквально стучится в двери. Ведь доходы Microsoft формируются за счет поступлений от модернизации установленных у клиентов систем, поэтому корпорация рано или поздно откажется от поддержки Windows NT 4.0. Иначе говоря, тем организациям, которые не перейдут на Windows 2000, придется или продолжать работать с NT 4.0, но уже без подготовленных поставщиком доработок программного кода, или отказаться от использования существующей сети NT в пользу UNIX либо Linux.
2. Защита данных средствами Kerberos
Kerberos - это разработанный в Массачусетском технологическом институте (MIT) протокол аутентификации, обеспечивающий передачу данных по незащищенным сетям. Именно он наряду со службой каталогов Active Directory (AD) составляет важнейшую особенность Windows 2000, отличающую эту систему от Windows NT 4.0. Kerberos имеет ряд преимуществ по сравнению с NT LAN Manager (NTLM), протоколом аутентификации Windows NT 4.0. Одно из них состоит в том, что Kerberos обеспечивает создание транзитивных доверительных отношений, тогда как NT 4.0 позволяет формировать лишь нетранзитивные. Поясню идею на простом примере: если вы доверяете своим родителям, а родители доверяют соседям Джонсам, в соответствии с логикой формирования транзитивных отношений этого уже достаточно, чтобы и вы доверяли Джонсам. Эта особенность протокола Kerberos как раз и позволяет системе Windows 2000 формировать деревья и леса доменов. Другая сильная сторона протокола - функция взаимной аутентификации, т. е. возможность любого члена каждой пары "клиент-сервер" проверять полномочия своего партнера. Эта функция снимает такую характерную для Windows NT Workstation 4.0 проблему, как уязвимость для атак со стороны систем, выдающих себя за серверы.
3. Инфраструктура открытых ключей
Операционная система Windows 2000 оснащается средствами защиты информации на базе инфраструктуры открытых ключей (public key infrastructure, PKI). Эта инфраструктура представляет собой систему цифровых сертификатов и организаций, удостоверяющих сертификаты (Certificate Authorities, CAs).
Так же, как и протокол Kerberos, она дает возможность обоим участникам транзакции проверять, действительно ли партнер является тем, за кого себя выдает, а также шифровать транзакции. Система защиты данных на базе PKI лучше всего подходит для использования в среде Internet и потому представляет собой полезное средство для организации электронной коммерции между предприятиями. Почтовое ведомство США (U.S. Postal Service) использует PKI для предоставления клиентам круглосуточного доступа по каналам Internet к информации о почтовых расходах. Инфраструктура открытых ключей еще не вступила в пору зрелости, но ее включение в систему Windows 2000 дает основания полагать, что уровни безопасности и шифрование данных станут неотъемлемой частью повседневной коммерческой практики, а это, в свою очередь, откроет перед электронной торговлей новые горизонты.
4. Средства, предназначенные для пользователей небольших офисов
Хотя рекламная кампания, развернутая корпорацией Microsoft вокруг Windows 2000, сосредоточена на способности этой ОС обслуживать сети уровня предприятия (система предусматривает возможность использования до 32 процессоров), важно отметить, что Windows 2000 оснащается рядом средств, предназначенных для пользователей малых офисов. В состав системы входит вполне добротный маршрутизатор, причем с интерфейсом подключения по запросу (demand-dial interface), так что при появлении на интерфейсе модема трафика автоматически устанавливается соединение с провайдером Internet. С помощью таких средств, как реализованный в Windows 2000 Server и в Windows 2000 Professional модуль Internet Connection Sharing, доступ к предоставляемому системой выходу в Internet получают сразу несколько пользователей сети. Этот модуль реализует технологию трансляции сетевых адресов (Network Address Translation, или NAT): маршрутизатор (т. е. сервер) транслирует трафик "локальная сеть-Internet" в трафик между множеством локальных узлов и одним сетевым IP-адресом, что, собственно, и нужно провайдеру.
В итоге множество пользователей локальной сети являются, с точки зрения провайдера, одним (но весьма активным) клиентом.
5. Ориентация на уровень предприятия
Microsoft явно концентрирует усилия на рынке серверов уровня предприятия, предназначенных для обслуживания особо ответственных задач. Windows 2000 оснащена усовершенствованными средствами симметричной многопроцессорной обработки, обеспечивающими более "гладкую", чем Windows NT 4.0, настройку операционной системы для работы с числом процессоров свыше четырех. Кроме того, надо иметь в виду, что сервер Windows 2000 Datacenter Server (Datacenter) выступает в качестве конкурента серверов UNIX с числом процессоров до 32 и оснащенных физической памятью емкостью 64 Гбайт.
6. Встроенные средства удаленного доступа
Службой Terminal Services сервера Windows 2000 Server можно пользоваться без какой-либо предварительной настройки. Эта функция обеспечивает доступ к удаленным серверам, причем пользователь получает такую же степень свободы, как если бы он зарегистрировался с консоли системы. Признаться, после того как я в течение нескольких недель поработал с клиентом Terminal Services, обеспечивающим дистанционный доступ к системам Windows 2000, мне явно недоставало этой службы при работе с Windows NT 4.0. Чтобы добиться соответствующей функциональности в сети Windows NT 4.0, каждый сервер приходится переинсталлировать и получать для него новую лицензию NT Server 4.0, Terminal Server Edition (WTS). В большинстве случаев заниматься этим просто не имеет смысла.
7. Новые функции управления хранением данных
Специалисты Microsoft отдают себе отчет в том, что емкость систем хранения данных постоянно возрастает и что решать связанные с этим сетевые проблемы средствами Windows NT становится все труднее. В Windows 2000 указанный недостаток исправлен за счет введения таких новых функций, как управление квотами дискового пространства, иерархическая система хранения данных, динамическое управление томами, а также путем внесения изменений в файловую систему NTFS.
Многие из этих функций базируются на технологиях, позаимствованных Microsoft у независимых поставщиков. В большинстве случаев такие технологии воплощены в системе Windows 2000 лишь в базовом варианте, что называется, безо всяких излишеств. Иными словами, реализованных в новой операционной системе средств достаточно для того, чтобы вызвать интерес администратора к тому или иному решению или побудить его взяться за устранение с помощью новой технологии какой-нибудь несложной проблемы. Но если требуется та или иная функция с полным набором возможностей, придется обращаться к независимым поставщикам, изделия которых интегрируются с новыми API управления хранением данных системы Windows 2000. Так, реализованный в Windows 2000 модуль Logical Disk Manager представляет собой упрощенную версию диспетчера томов VERITAS Volume Manager компании VERITAS Software, а средство дефрагментации дисков операционной системы - это не оснащенный средствами работы в автоматическом режиме вариант утилиты Diskeeper компании Executive Software.
8. Дополнительные возможности для мобильных пользователей
Windows 2000 - самая мощная операционная система для портативных компьютеров изо всех, с которыми мне когда-либо доводилось иметь дело. В плане универсальности и широты функциональных возможностей она превосходит Windows 98 буквально по всем статьям. Реализованная в Windows 2000 функция работы с файлами в автономном режиме (offline files feature) позволяет отбирать сетевые файлы и папки для последующей работы с ними без подключения к сети. Затем ОС создает локальный кэш и сохраняет в нем эти файлы и папки, причем они синхронизируются с оригиналами в фоновом режиме. Эта функция напоминает утилиту Briefcase, только она более "интеллектуальна": если пользователь хранит рабочие документы на сервере, обеспечивая тем самым их проверку на вирусы и регулярное резервное копирование, при необходимости поработать с ними в автономном режиме требуется только одно - пометить соответствующий каталог.
Кроме того, в Windows 2000 предусмотрена функция перехода в режим "спячки", перед отключением питания записывающая в специальный файл все содержимое физической памяти, что обеспечит тем самым сохранность всех данных о состоянии системы. В режиме ожидания система практически не потребляет энергии; переход в это состояние занимает порядка 15 с, а возвращение к рабочему режиму - 45 с (для системы с процессором Pentium II 366 МГц). Отметим, кстати, что переход в режим "спячки" невозможен при открытом сетевом файле (даже если этот файл выбран для сохранения на локальном диске).
Процедуру быстрого подключения и отключения машины от корпоративной сети можно упростить, настроив операционную систему так, чтобы она отображала средство сопряжения с ЛВС (в данном случае сетевую плату) в виде значка на системной панели. После подключения к сети и установления соединения на экране появляется сообщение, удостоверяющее факт подключения и скорость соединения. Для изменения местоположения машины в сети достаточно отсоединить сетевой шнур, перевести портативный компьютер в режим ожидания или "спячки" и вновь подключить его к сети в другом месте. Все эти средства избавляют пользователя от ненужных треволнений в тех случаях, когда предстоит командировка, во время которой нужные файлы должны быть всегда под рукой.
9. Распределенное административное управление
Наконец-то появилась возможность приблизить процесс управления учетными записями и ресурсами к конечным пользователям. В системе Windows 2000 домены уже не являются единицами административного управления; на их основе организуется лишь тиражирование и защита данных. В качестве новых единиц административного управления выступают организационные блоки (organizational units, или OUs). Для делегирования некоторого объема административных полномочий, скажем, на уровень рабочей группы достаточно создать соответствующую иерархию организационных блоков. Правда, наличие такой возможности не означает, что ею обязательно надо воспользоваться.Первоначальная схема организации управления должна быть простой - по крайней мере, до тех пор, пока все сотрудники не освоятся с системой, пока из нее не будут "вылущены" основные ошибки и пока специалисты службы технической поддержки не вникнут во все особенности новых функций ОС.
10. Управление клиентами
Windows 2000 оснащена целым рядом средств управления клиентами и серверами, позволяющих снизить общую стоимость владения операционной системой. Модули IntelliMirror и Group Policy облегчают установку клиентского ПО, от простых приложений до собственно ОС, а механизм Dfs позволяет формировать логическую иерархию сетевых ресурсов. Распределенная файловая система дает пользователям всего предприятия возможность доступа к одному и тому же поименованному ресурсу (например, \\mycompany.com\software), а Windows 2000 переадресовывает их на ближайшую и доступную для совместного применения сетевую копию ресурса.
Архитектура WMI
Архитектура WMI состоит из четырех сегментов, показанных на Рисунке 1: управляющие программы (management applications), ядро WMI (WMI infrastructure), провайдеры (providers), или поставщики, и управляемые объекты (managed objects). Управляющие программы - это приложения Windows, которые обращаются к данным и отображают или обрабатывают данные, полученные от управляемых объектов. Простой пример управляющей программы - использование технологии WMI (вместо API) в Performance Monitor. Более сложный пример - инструмент управления предприятием, который позволяет администраторам автоматически отслеживать конфигурации программного обеспечения и оборудования каждого компьютера на предприятии.
РИСУНОК 1. Архитектура WMI
Обычно разработчики настраивают свои управляющие программы на специфические объекты, чтобы собрать данные о них и управлять ими. Объект может представлять собой один компонент, такой, как сетевой адаптер, или множество компонентов, таких, например, как компьютер (объект "компьютер" может содержать объект "сетевой адаптер"). Провайдеры задают и экспортируют представления объектов, которыми управляют приложения. Например, если продавец сетевого адаптера хочет, чтобы адаптер был WMI-совместимым, он должен разработать "поставщика услуг", который служит интерфейсом к адаптеру: запрашивает и устанавливает состояние и поведение его атрибутов, как того требуют управляющие приложения. В некоторых случаях (например, при использовании драйвера устройств) Microsoft поставляет такого поставщика услуг, который имеет собственный API, для упрощения разработки дополнений (plugins) и кодирования.
Инфраструктура WMI связывает приложения управления и провайдеров, а также играет роль хранилища классов-объектов и, во многих случаях, менеджера памяти для устойчивых объектных свойств. WMI осуществляет хранение (работает как репозитарий), подобно базе данных на жестком диске. WMI, как часть своей инфраструктуры, поддерживает несколько API, с помощью которых приложения управления обращаются к объектным данным, а провайдеры поставляют данные и определения класса.
Программы Win32 используют WMI COM API - главный API управления - для прямого взаимодействия с WMI. Другой уровень API - на вершине COM API - включает ODBC-адаптер для доступа к базе данных Microsoft Access. Разработчик базы данных использует WMI ODBC-адаптер, чтобы внедрить ссылки на объектные данные в своей базе данных. Затем разработчик может без труда составлять отчеты с помощью запросов к базе данных, которые содержат WMI-данные. Компоненты WMI ActiveX поддерживают API другого уровня. Разработчики Web используют средства управления ActiveX для создания сетевых интерфейсов к WMI-данным. Другой способ управления предполагает применение сценарного API WMI, для использования в сценариях и приложениях Visual Basic. Средства создания сценариев WMI существуют для VBScript, JScript, Active Server Pages (ASP) и HTML.
WMI-интерфейсы COM, которые используются управляющими приложениями, представляют собой основной интерфейс API для провайдеров. Однако, в отличие от приложений управления, которые являются COM-клиентами, провайдеры - это COM- или DCOM-серверы (т. е. провайдеры дополняют COM-объекты, взаимодействующие с WMI). Провайдер WMI может быть реализован в виде DLL, которые загружаются в процесс администратора WMI, в виде автономных приложений Win32 или сервисов Win32. Microsoft поставляет ряд встроенных провайдеров, которые предоставляют данные из известных источников, таких, как Performance API, системный реестр и журнал событий. Средства WMI SDK позволяют создавать независимым разработчикам собственные продукты с функциональностью WMI-провайдеров.
Ассоциации классов
ЭКРАН 3. Просмотр зависимости классов.
Многие типы объектов так или иначе связаны с друг другом. Например, объект "компьютер" имеет процессор, программное обеспечение, операционную систему, активные процессы и т. д. WMI позволяет провайдерам создавать классы зависимости, чтобы задать логическую взаимосвязь между двумя различными классами. Классы зависимости сопоставляют один класс с другим, поэтому имеют только два свойства. Поскольку свойства - это ссылки на классы, они состоят из имени класса и модификатора Ref. На Экране 3 показана зависимость, в которой MOF-файл провайдера EventLog ассоциирует класс Win32_ NTLogEvent с классомWin32_ComputerSystem. Получая объект, приложение управления может сделать запрос ассоциированным объектам. Таким образом провайдер создает иерархию объектов.
На Экране 4 показан WMI-браузер объектов Object Browser (еще одно средство разработки, включенное в SDK) с корнем пространства имен CIMV2. Системные компоненты Win32 обычно размещают свои объекты в пределах пространства имен CIMV2. Object Browser сначала выводит экземпляр объекта Win32_ComputerSystem MARKLAPTOP, который соответствует компьютеру. Затем он получает объекты, связанные с Win32_ComputerSystem, и отображает их ниже MARKLAPTOP. Интерфейс пользователя Object Browser обозначает связанные объекты значком "папка с двойной стрелкой". Связанные с типом класса объекты отображаются ниже папки.
ЭКРАН 4. Применение браузера объектов Object Browser для просмотра корня пространства имен.
Object Browser показывает, что зависимый класс провайдера файла регистрации событий Win32_NTLogEventComputer расположен ниже MARKLAPTOP и что существуют многочисленные образцы класса Win32_NTLogEvent. На Экране 3 видно, как MOF-файл определяет класс Win32_NTLogEventComputer, чтобы сопоставить класс Win32_ ComputerSystem с классом Win32_ NTLogEvent. Указание экземпляра события Win32_NTLogEvent в Object Browser позволяет увидеть свойства класса в правой области окна. Microsoft Object Browser, по замыслу его создателей, должен был помогать WMI-разработчикам исследовать объекты, хотя приложение управления выполнило бы те же самые действия и представило информацию более понятным способом.
Аудит SAM
При любых обстоятельствах предусмотрительный администратор должен активизировать аудит базы данных SAM, чтобы своевременно обнаруживать какие-либо подозрительные действия. Разумеется, аудит предполагает, что вы будете регулярно и тщательно просматривать журнал событий. Процедура установки аудита SAM описана по шагам в колонке "Установка аудита системы безопасности". Также эта процедура описывается в статье Microsoft Enable Auditing of Microsoft Windows NT Server Password Registry (). Вы можете активизировать аудит базы данных SAM, однако он не будет выполняться, если кто-то загрузит систему с другой копии ОС.
Предположим, вы сделали все, что нужно для установки аудита всей текущей базы данных SAM. Теперь журнал событий будет включать в себя информацию обо всех успешных и неудачных попытках доступа к ключам SAM. Однако эта информация окажется бесполезной, если вы не будете внимательно анализировать журнал.
Активизация такого уровня аудита может привести к накоплению очень большого количества записей в журнале событий. Дело в том, что в процессе нормальной работы OC регулярно происходят обращения системы к ключам SAM. Поэтому следует установить параметры настройки журнала событий так, чтобы он мог вмещать достаточное количество записей. Также следует настроить программы мониторинга журнала событий, которые вы будете использовать.
Утилиты, выполняющиеся с правами привилегированных пользователей, таких как Administrator или SYSTEM, могут свободно манипулировать журналом событий и записями в нем. Сообразительные взломщики могут легко удалить все следы своей деятельности.
Аудит выполняющихся задач
РИСУНОК 3. Событие номер 592.
Эта категория аудита в приложении User Manager называется аудитом выполняющихся задач - process tracking, а в документации по Windows NT и в программе Event Viewer используется термин "детальный аудит" - detailed tracking. Как бы то ни было, данная категория позволяет проследить за тем, какие именно программы были запущены на рабочей станции и какие программы выполнялись на сервере. В этой категории также существуют два основных события - создание нового процесса, событие номер 592, и завершение процесса, событие номер 593. Найдя пару событий 592 и 593, имеющих один и тот же номер процесса Process ID, можно определить общее время работы того или иного приложения. Поле названия исполнительного модуля Image File Name хранит имя файла, соответствующего приложению. Так, при запуске WordPad это поле будет содержать значение WORDPAD.EXE (см. Рисунок 3). К сожалению, событие не записывает полный путь, и судить о точном размещении исполняемого файла нельзя. В поле имени пользователя User Name хранится информация о том, кто запустил приложение. Кроме того, по значению поля номера сеанса Logon ID пользователя можно отыскать соответствующее событие номер 528 и выяснить все подробности о сеансе, в котором запускалось приложение. С помощью поля номера запустившего приложение процесса Creator Process ID можно найти соответствующее событие номер 592, из которого выяснить, какая программа инициировала запуск нового процесса.
Аудит выполняющихся задач может оказаться очень полезным на рабочих станциях, в особенности при изучении активности тех или иных пользователей. Если при этом задействовать аудит доступа к объектам на серверах, то можно построить довольно четкую картину работы пользователей.
Аудит сеансов работы пользователей, аудит доступа к объектам системы и аудит выполняющихся задач являются тремя важнейшими категориями в журнале безопасности Windows NT. Можно связать сеансы работы пользователей, процессы и доступ к объектам и построить точную картину деятельности пользователей (см. ). К сожалению, Event Viewer не способен фильтровать события по значениям их параметров, так что использовать номера Logon ID, Process ID и Handle ID весьма трудно. Однако можно применить функцию поиска по значению параметра и вручную составить необходимые цепочки событий. Можно также воспользоваться другими программами обработки журнала безопасности Windows NT, которые позволяют отфильтровывать события по различным критериям.
При настройке аудита журнала для этих трех категорий нужно знать, какие компьютеры (рабочие станции, серверы, контроллеры домена) в какие журналы будут записывать те или иные события. Следует помнить, что аудит доступа к объектам системы и аудит выполняющихся задач могут существенно понизить быстродействие системы. В следующий раз мы рассмотрим остальные категории аудита, как-то: аудит управления учетными записями пользователей, изменения системной политики, использования полномочий и системных событий.
Автоматический запуск служб и драйверов
В первой части статьи я говорил о следующих типичных причинах сбоев при загрузке NT и появления "голубого экрана смерти".
Установка программного обеспечения, при которой разрушается ветвь системного реестра HKEY_LOCAL_MACHINE. Это может происходить при попытках прикладной программы установить новую службу или драйвер.
Некорректное изменение конфигурации сетевого оборудования, что может привести к созданию неверных сетевых привязок и ошибочной записи соответствующих им значений ключей в реестре.
Загрузка некорректного файла приводит к разрушению исправного системного файла, который был загружен в память до момента сбоя.
Кроме того, я рассказал о методах решения таких проблем, в том числе о полной замене файлов ветвей системного реестра.
Сейчас стоит обсудить другую возможную причину появления сообщения STOP при попытке инициализации службы или драйвера. В этом случае проблему можно решить путем редактирования системного реестра, а не полной замены файла ветви реестра или всего реестра. Данное решение предпочтительнее и в том случае, если важно не потерять какие-либо параметры установки, или точно неизвестно, какой именно драйвер либо служба вызвали сбой.
В некоторых случаях ошибка возникает при инициализации службы или драйвера, загружающегося до модуля GUI (т. е. до того момента, как NT инициализирует драйвер видеосистемы и перейдет в графический режим). Та же ошибка появляется и после перехода системы NT в графический режим - это может случиться даже во время процедуры входа в систему или еще позднее, поскольку часть служб и драйверов инициализируется в фоновом режиме, уже после выдачи окна регистрации в системе. Такая ситуация возможна при установке новой службы или драйвера либо при переустановке самой системы Windows NT. Кроме этих случаев возможны варианты, когда вновь устанавливаемые программы либо пытаются запустить свои службы или драйверы, конфликтующие с имеющимися в системе NT, либо требуют пакета исправлений более поздней версии. Причиной сбоя при загрузке могут стать и некорректно проведенные изменения параметров установки ранее успешно загружавшихся драйверов и служб. Например, физическая смена сетевой карты без предварительного удаления драйвера предыдущей карты приведет к сбою при загрузке этого драйвера.
В другом случае сообщение об ошибке STOP появляется после изменения драйвера видеоплаты в системе с установленным программным обеспечением удаленного управления (например, Symantec pcANYWHERE32). Большинство таких программ настраиваются на имеющийся драйвер видеосистемы при установке, и проблема становится очевидной только при замене драйвера видеоплаты. Поскольку первоначальный драйвер уже не запускается, после перезагрузки система выдает сообщение об ошибке. В этом случае для корректной смены драйвера видеоплаты на системе сначала требуется удалить программу удаленного управления, поменять видеодрайвер и вновь установить программу удаленного управления.
Awk-переменные и выражения
В языке awk выделяются две группы переменных: предопределенные
и декларированные в программе. Исходные значения предопределенных
переменных устанавливаются интерпретатором awk в процессе запуска
и выполнения awk-программы.
К предопределенным относятся: | Умолчания: | |
NR - номер текущей строки | ||
NF - число полей в текущей строке | ||
RS - разделитель строк на вводе | "\0" | |
FS - разделитель полей на вводе | пробел и/или табуляция | |
ORS - разделитель строк на выводе | RS | |
OFS - разделитель полей на выводе | FS | |
OFMT - формат вывода чиcл | "%.6g" | |
FILENAME - имя входного файла. |
Прочим переменным пользователь может присваивать начальные значения.
По умолчанию "0" или пустая строка (что здесь равнозначно!).
Типы переменных:
позиционные,
числа с плавающей точкой,
строка символов,
массив.
Интерпретатор awk рассматривает переменную как строковую,
пока не возникает необходимость выполнить операции:
если пробел (конкатенация), то строки;
если "+", то числа с плавающей точкой.
Примеры:
1. awk '{a = $3 $4; print a}' f-awk
awk '{a = $3+$4; print a}' f-awk
Результат:
198050
197940
197940
197060
2030
2019
2019
2030
2. awk '{}
END {a = 2 + 2 ; print a}' < f-awk
awk '{}
END {a = 2 + "2" ; print a}' < f-awk
awk '{}
END {a = 2 + "два" ; print a}' < f-awk
awk '{}
END {a = "два"+"два" ; print a}' < f-awk
awk '{}
END {a = 2.2 + 2.000 ; print a}' < f-awk
Результат:
4
4
2
0
4.2
Массив не об'является, а начинае существовать в момент
первого использования. Индекс массива - любое ненулевое значение
или строка. Массивы ассоциативные, т.е. не по вычисляемому индексу,
а по совпадению содержания, например:
day [Jan][31] = Mon
day [Feb][01] = Tue
day [Feb][02] = Wed
Массивы удобно использовать при суммированиях, например
записи выплат имеют вид (файл "p-1"):
John 100
Mary 200
Mary 200
John 100
John 300
awk '{sum[$1] += $2; print $1 sum[$1]} ' < p-1
Результат (поименный нарастающий итог):
John100
Mary200
Mary400
John200
John500
Операции как в Си | =, +=, -=, *=, /=, %=, +, /, %, ++, --. | ||
Сравнения чисел, если оба числа, иначе - строк | <, <=, ==, !=, >=, > | ||
Логические операции | !, , && | ||
Операция "пробел" | конкатенация. |
Безопасность прикладных программ
Многие компании, занимающиеся разработкой программного обеспечения, не слишком много внимания уделяют вопросам безопасности. И если внимательно посмотреть вокруг, то можно заметить, что программисты - это далеко не всегда люди, озабоченные проблемами безопасности. Большинство программистов начинают думать о безопасности уже после того, как кто-то взламывает программу, или программа позволяет взломать всю систему или сеть.
Многие программные продукты имеют уязвимые места с точки зрения безопасности. Одним из таких продуктов является СУБД Oracle. Эта СУБД хранит в системе конфиденциальную информацию в виде открытого текста.
Отсюда вытекает мораль: необходимо обеспечивать защиту собственными силами, отслеживая состояние системы до, во время и после установки новых программ, в особенности если эти программы не являются широко известными коммерческими продуктами. Отслеживать состояние системы удобно при помощи утилиты Sysdiff, входящей в состав пакета Microsoft Windows NT Workstation 4.0 Resource Kit. Посредством Sysdiff вы можете создать образ системного реестра перед установкой новых продуктов и затем сравнить его с реально используемым реестром после установки программ. Утилита Sysdiff отображает все различия между двумя образами реестра. В качестве альтернативного варианта можно использовать утилиту Regmon (ее можно найти на Web-сайте Sysinternals: ). Данная утилита позволяет наблюдать за доступом к реестру в реальном времени.
Что касается файловой системы, вы можете сделать сравнение ее состояния до и после установки. Это поможет выявить, какие файлы были удалены или добавлены во время установки нового продукта. Чтобы сделать такое сравнение, можно использовать утилиту Windiff из набора Resource Kit. Это делается следующим образом.
Прежде чем установить новый программный продукт, откройте окно DOS и перейдите в корневой каталог диска, с которым вы собираетесь работать (например, C:\). Чтобы создать текстовый файл, содержащий полную структуру файлов и каталогов, введите команду dir /S > directory1.txt
Эта команда создает файл directory1.txt, включающий в себя список всех каталогов и файлов, расположенных на текущем диске. Создайте такие файлы для всех дисков, имеющихся у вас в системе, назначая разные имена файлов для каждого диска. После завершения установки нового программного продукта точно так же создайте еще один набор файлов, назначая другие имена файлов. Затем, используя утилиту Windiff, выполните сравнение структур каталогов, содержащихся в соответствующих созданных файлах. В результате Windiff отобразит все каталоги и файлы, которые были удалены, добавлены или модифицированы во время установки. Обязательно прочитайте справочный файл Windiff, который содержит подробные инструкции по работе с данной утилитой.
Также для получения информации о текущей работе с файловой системой вы можете использовать утилиту Filemon (доступную на сайте Sysinternals). Совместное использование Filemon или Windiff является удачным решением, так как оно позволяет выявить прикладные программы, которые без вашего ведома считывают конфиденциальную информацию из системы.
Безопасность приложений BackOffice
Многие прикладные программы, работающие в среде Windows NT, используют пароли, которые хранятся не в базе данных SAM. Такие приложения, как Microsoft Outlook, Internet Explorer (IE), Internet Information Server (IIS), SQL Server, - размещают пароли в различных областях системы. Нужно иметь представления обо всех этих областях и принимать меры для предотвращения нежелательного доступа в систему.
Одно из наиболее распространенных приложений в NT - Internet Explorer. Сам IE не требует ввода паролей, однако этого требуют многие узлы, доступ к которым осуществляется с помощью IE. Слабый дизайн Web-узлов обычно приводит к появлению проблем в области безопасности. В особенности это происходит, когда необходимые для входа на сайт имена пользователей и пароли размещаются в специальных модулях настройки клиентов, называемых cookies.
Срок жизни модулей настройки клиентов можно программировать, следовательно, можно указать, что он истекает немедленно.Тогда эти данные будут оставаться в памяти только в тот период, когда они используются в текущей работе с узлом, и никогда не будут записаны на диск. Модули, содержащие имена пользователей и пароли, срок жизни которых не истек, NT сразу же записывает в каталог %systemroot%\profiles\username\cookies.
Любой, кому доступен этот каталог, имеет доступ ко всем данным, хранящимся в модулях настройки клиентов, включая такую информацию, как имена пользователей и пароли. Злонамеренный оператор Web-узла, знающий, где нужно искать соответствующую информацию, сможет найти ее в каталоге cookies. И пользователь ничего не будет знать об этом. Эта ситуация не является дырой в системе безопасности IE. Это просто особенность алгоритмов работы HTML Cookies.
Чтобы защититься от этого, необходимо просто проверять и удалять все модули cookies, которые содержат конфиденциальную информацию. Для этого достаточно открыть соответствующий файл текстовым редактором и посмотреть, что в нем находится. Также нужно во всеуслышание жаловаться на те узлы, которые хранят конфиденциальную информацию в файлах на диске, поскольку такая практика содержит в себе серьезную угрозу безопасности.
Клиент Outlook во время обычной работы нигде не хранит в системе паролей в открытом текстовом виде. Однако если вы работаете с сервером по протоколу POP3, то пароли передаются по сети в явном виде. Такие пароли можно легко перехватить с помощью сетевого анализатора пакетов. Протокол POP3 требует передачи открытых паролей, поэтому Microsoft ничего не может сделать для решения этой проблемы. Но несмотря на это, для приема почтовых сообщений можно использовать вместо POP3 протокол APOP (Authenticated Post Office Protocol). Этот протокол работает с зашифрованными паролями.
SQL Server при аутентификации пользователей хранит пароли в системном реестре. Соответствующие ключи реестра очень слабо защищены. Например, когда вы регистрируете SQL-сервер с использованием SQL Executive, имя пользователя и пароль для этого сервера записываются в реестр, в дерево HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer. И любой сообразительный пользователь, имеющий право непосредственной регистрации с консоли сервера, может легко получить пароли SQL-серверов. Поэтому будьте внимательны при назначении пользователям прав регистрации на серверах с локальной консоли. Желательно также запретить удаленный доступ к реестру на всех системах NT, где это возможно. Но это следует очень аккуратно планировать, так как многим системам управления сетью и многим программам установки необходимо использовать удаленный доступ к реестру.
Недавно было обнаружено, что при установке пакета Microsoft BackOffice Server пароли пользователей остаются записанными на диск в явном виде в областях файловой системы, доступных обычному пользователю. Во время инсталляции создается файл reboot.ini в каталоге \program files\microsoft backoffice. Если пользователь в процессе установки Backoffice 4.0 выбирает установку продуктов SQL Server, Exchange Server или Microsoft Transaction Server (MTS), то программа установки запрашивает имя и пароль для пользователей, необходимые для работы данных продуктов.
Если подробнее, то программа установки запрашивает имена и пароли пользователей, от имени которых работают SQL Executive, Exchange Services и MTS Remote Administrator, и сохраняет эту информацию в виде открытого текста в файле reboot.ini.После завершения установки программе не удается удалить этот файл. Позаботьтесь о том, чтобы не предоставлять излишних прав доступа системам BackOffice. Если вы имеете достаточно надежную систему безопасности, то вряд ли вы столкнетесь с описанной проблемой. Но, несмотря на это, обязательно удалите вручную этот файл после завершения установки BackOffice 4.0. Более подробная информация по этой проблеме изложена в статье Microsoft BackOffice Installer Tool Does Not Delete Password Cache File ().
Благодарности
Мы хотели бы поблагодарить Бена Граса (Ben Gras) и Филиппа Хомбурга (Philip Homburg) за выполнение тестовых программ, некоторое участие в программировании и внимательное чтение статьи. Мы также благодарны Яну Луену, Руеди Вейсу, Бруно Крипсо и Кэрол Конти за их помощь и замечания.
Блеск и нищета некоммерческих UNIX
Константин Пьянзин
LAN/ЖУРНАЛ СЕТЕВЫХ РЕШЕНИЙ #11/99
Более сложный сценарий: устанавливаем Windows 98 на Windows 2000 Professional
Добавить Windows 98 к уже установленной Windows 2000 Professional несколько сложнее. Это возможно только в том случае, если на корневом разделе установлена файловая система FAT16 или FAT32. Раздел, на который будет инсталлироваться Windows 98, также должен иметь формат FAT16 или FAT32. Еще одно затруднение состоит в том, что программу установки Windows 98 нельзя выполнить из-под Windows 2000 - придется запускать систему с загрузочного диска Windows 98. Установочный комплект полной версии Windows 98 содержит такой диск. Если же используется комплект, предназначенный для модернизации версии Windows, загрузочный диск придется создавать на другом компьютере с уже установленной системой.
Также при установке Windows 98 с дистрибутива для модернизации необходимо "предъявить" имеющуюся Windows 95 на оригинальном носителе либо указать каталог, содержащий ее компоненты. Это связано с тем, что данная версия Windows 98 предназначена только для владельцев Windows 95. Полная версия Windows 98 стоит значительно дороже варианта upgrade, но я думаю, что тем, кто устанавливает систему впервые, имеет смысл заплатить необходимую сумму. В любом случае нужно запустить программу установки Windows 98 и, следуя инструкции, установить систему на другой раздел, нежели Windows 2000.
Прежде чем добавить Windows 98 к Windows 2000 Professional, следует создать диск ERD для Windows 2000. Это связано с тем, что операционная система Windows 98 перезаписывает сектор начальной загрузки на диске C, после чего загрузка Windows 2000 становится невозможной. Для восстановления возможности загрузки понадобится диск ERD и загрузочные дискеты Windows 2000 Professional (их можно создать с помощью утилиты makeboot.exe с дистрибутива Windows 2000 Professional на компакт-диске, см. Экран 2). Для этого потребуется четыре чистые 3,5-дюймовые дискеты. После создания загрузочных дисков нужно перезапустить систему, установив первый из дисков в дисковод A. В процессе запуска система будет запрашивать остальные диски. В ответ на запрос о режиме следует выбрать восстановление поврежденной установки Windows 2000 Professional (Repair damaged Win2K Pro installation). Затем система предложит вставить диск ERD. В результате этой процедуры будут перезаписаны файлы загрузочного раздела, после чего при следующем перезапуске система должна предложить на выбор загрузку Windows 2000 Professional или Windows 98. Если возможность выбора операционной системы не появится автоматически, следует вручную отредактировать файл boot.ini на диске C, добавив в него следующую строку: C:\="Microsoft Windows"
ЭКРАН 2. Использование makeboot.exe для создания загрузочных дисков Windows 2000.
Теперь, после перезагрузки Windows 2000, должна появиться возможность выбора операционной системы.
Будь готов
Основная рекомендация, данная читателям в предыдущей статье, заключалась в том, что готовиться к решению проблем следует задолго до того, как они появятся. Чтобы во всеоружии встретить неприятности завтрашнего дня, нужно сделать несколько подготовительных шагов уже сегодня. В нашем случае это и наличие проверенных процедур установки программного и аппаратного обеспечения, и создание нескольких резервных копий важнейшей информации о настройках, и подготовка специальных средств для выполнения восстановления. Все это послужит спасательным кругом в пучине нежданных напастей.
Не сомневаюсь, что большинство пользователей NT осознают важность наличия последней версии системной информации на диске восстановления Emergency Repair Disk (ERD). На этом диске содержатся копия системного реестра NT и критически важная информация, необходимая для проведения процедуры восстановления программой установки NT. Во многих организациях проводится регулярное резервное копирование системной информации и обновление дисков ERD для всех серверов. Однако выполнение этих процедур требует физического присутствия администратора сети для локального запуска на каждом сервере в организации утилиты rdisk.exe. Многие считают, что этот процесс слишком утомителен и только зря отнимает время.
ЭКРАН 1. Утилита ERDisk компании Aelita Software Group помогает удаленно собирать и обновлять информацию на дисках.
Вот так и получается, что иногда информация на диске ERD не отражает актуального состояния системы. Тем, кому эта ситуация знакома, рекомендую альтернативный метод сбора информации с систем Windows NT. Утилита ERDisk компании Aelita Software Group может собирать такую информацию по сети (см. Экран 1). Кроме сохранения информации ERD в любом заданном месте - на локальном или сетевом диске - программа ERDisk способна выполнять автоматический запуск командных файлов по заданному расписанию. Она также позволяет автоматически обновлять информацию на дисках ERD для всех NT-систем сети, снимая с администратора часть забот о наличии дисков восстановления с актуальной информацией.
Чем разбивать?
На данный момент в мире свободного ПО используется три основные программы разбиения диска: традиционный fdisk, его собрат cfdisk, считающийся более дружелюбным к пользователю и относительно новая GNU-утилита parted. Кроме того, существуют и "продвинутые" дисковые менеджеры типа Disk Druid или HardDrake, однако о них речи здесь не будет. Как и о таких широко известных программах, как Partition Magic или отечественный продукт Acronis OS Selector. Несмотря на их многочисленные достоинства, они не являются открытыми.
Именно fdisk больше всего пугал в старые времена начинающих пользователей Unix, хотя ничего устрашающего в нем нет - просто "fdisk /dev/hd?", где в качестве имени устройства фигурирует физический диск, например, для мастера на первом канале это будет /dev/hda. При использовании devfs (и отказе от опознания файла устройства в старой номенклатуре) можно прибегнуть к форме
fdisk /dev/discs/disc#/disc
или к указанию полного имени файла устройства. Благодаря прекрасной системе помощи в любой момент можно получить полный список доступных команд, а команда p выведет текущее состояние разделов на диске. Разделы эти можно создавать (командой n) или удалять (командой d), однако до команды записи изменений (w) никаких необратимых действий, способных разрушить ранее существующие файловые системы (например, FATxx) не последует: неудачно созданные разделы можно удалить и на их месте создать новые.
При создании раздела средствами fdisk сначала определяется, будет ли он первичным (primary) или расширенным (extended), т. е. тем контейнером, в котором в дальнейшем будут созданы логические тома). Далее указывается номер раздела (от 1 до 4 для первичных и от 5 и выше - для логических). В этих пределах номер может быть любым - можно сначала создать раздел 2, а потом 1, или даже весь диск отвести под раздел 4 (именно так размечены фабричным способом zip-диски, почему соответствующие им файлы устройств в старой нотации выглядят как /dev/hd?4). Номер раздела останется на века: именно он будет идентифицировать файл устройства, соответствующий созданному разделу (например, /dev/hda2, или /dev/discs/disc1/part2).
Далее задается начальный цилиндр создаваемого раздела (по умолчанию - первый свободный, а для пустого диска - просто первый. Однако никто не мешает указать любой другой цилиндр в качестве стартового). А потом, конечный цилиндр (по умолчанию, последний физический на диске), или просто размер раздела в мегабайтах, например, +300M. При задании размера в единицах, отличных от цилиндров, он всегда будет округляться до ближайшего числа, кратного целому количеству последних. Так что не следует удивляться, если вместо искомого раздела в 20 Мбайт возникнет 16-мегабайтный, а вместо 22-мегабайтного - раздел в 24 Мбайт.
Создаваемый раздел автоматически получает статус Linux native (номер 83). Чтобы изменить его (а, скажем, для swap-раздела это необходимо), дается команда t и вводится код требуемой файловой системы. Теоретически поддерживаются практически все мыслимые файловые системы: от FAT12 до UFS (для BSD-систем). Однако сами по себе файловые системы средствами fdisk не создаются, и потому для чужых разделов потребуется их форматирование в родной среде. Тем не менее, смысл в такой операции есть - резервирование места под ОС, которые будут установлены позже, и, возможно, указание точек их монтирования.
Программа cfdisk описывается реже, хотя во многих дистрибутивах она пропагандируется как более удобная. После запуска программы выводится информация о диске (имя файла устройства, размер, число головок, секторов, цилиндров), таблица существующих разделов и меню из следующих пунктов: Bootable, Delete, Help, Maximize, Print, Quit, Type, Units, Write - для диска с существующими разделами. Если же диск не разбит, меню ограничивается пунктами Help, New, Print, Quit, Units, Write. До выбора пункта Write никаких необратимых изменений не происходит. По умолчанию размеры разделов в таблице указаны в мегабайтах. Для создания раздела выбирается пункт New, выводящий подменю: Primary, Logical, Cansel. Далее просто задается желаемый размер (в мегабайтах) и запрашивается, приписать ли раздел к началу диска или его концу.
После чего остается только сохранить разбиение в таблице разделов.
Программа parted предлагается в рамках проекта GNU как универсальное средство для работы с дисковыми разделами и файловыми системами. И действительно, она позволяет создавать не только новые разделы, но и файловые системы на них, а также осуществляет проверку их целостности, удаление, перемещение, копирование и изменение размера существующих разделов. Запустив программу без опций и аргументов получим предупреждение об отсутствии гарантии, информацию о первом физическом диске системы, имя устройства в полной нотации devfs, данные о геометрии (цилиндры/сектора/головки), предупреждение о том, где кончается 1024 цилиндр и выведет приглашение командной строки.
Организация диска выполняется с помощью мнемонически прозрачных команд (print - просмотр, mkpart - создание раздела, rm - его удаление, и т.д.). Полный список доступных команд с возможными опциями и аргументами, а также краткими, но внятными комментариями можно получить, введя в командной строке (parted) help. В отличие от fdisk или cfdisk, в parted не предусмотрено специальной команды для записи изменений, все действия выполняются в реальном времени, без откладывания. Соответственно, parted требует исключительно аккуратного обращения. Однако в обмен на это предоставляет, во-первых, исключительную гибкость при задании размера и позиционировании раздела. Во-вторых, он делает доступными множество дополнительных манипуляций разделами и файловыми системами (правда, в полном объеме только для ext2fs и FAT16/FAT32, поддержка прочих пока не реализована).
Что именно закачивать?
Сначала надо подготовить директории:
mkdir /FreeBSD
cd /FreeBSD
mkdir bin
mkdir floppies
Вот мы и создали основные директории. Если думаете брать еще что-нибудь, выясняйте, где оно лежит и действуйте аналогично.
Запускаем FTP-клиента:
ftp ftp[номер][.страна].freebsd.org
Я не оговорился - все FTP-серверы, содержащие FreeBSD, прописаны в домене freebsd.org. Узнать, какой ближе, можно командой
ping ftp[номер][.страна].freebsd.org
по принципу наименьшего времени отклика и наибольшего процента возвращенных пакетов. Сервер спросит login: и Password:
login: ftp
Password: имя@
- обычный анонимный вход на FTP-сервер. Дальше
cd pub/FreeBSD/версия-RELEASE
Вопрос о версии требует отдельного рассмотрения. К сожалению, 2.2.1 и 2.2.2 мне не понравились - похоже, там что-то намудрили и они работают нестабильно. Пришлось вернуться к 2.1.7.1, а ее удалось найти только на ftp.freebsd.org - на ftp.kiae.su и ftp.gamma.ru ее уже не было, там держат только последние версии. Включаем режим перекачки (нетектовых) двоичных файлов
bin
и визуального отображения закачанных килобайтов.
hash
отключим вопросы про каждый файл "это брать?".
prompt
cd bin
lcd bin
mget *.*
lcd ..
cd ..
Для минимальной инсталляции надо взять все в директории bin. Там находятся файлы bin.?? (от bin.aa до bin.cq - последний зависит от версии), bin.mtree, checksum.md5 и install.sh - всего 17 MB. Если процесс оборвался, допустим, на файле bin.ai, не надо качать все заново, можно продолжить командой
mget bin.a[i-z] bin.[bc]? bin.mtree checksum.md5 install.sh
Впрочем, это все относится к командной строке FTP, к тому же операционные системы Micro$oft в командах "lcd" вместо "/" используют "\".
Если у вас FTP-программа работает по другому - делайте сами.
cd floppies
lcd floppies
get boot.flp
lcd ../tools
cd ../tools
get rawrite.exe
quit
boot.flp - образ загрузочной инсталляционной 1.44 MB дискеты
(естественно, надо иметь такой дисковод). Прежние версии обходились
дискетой 1. 2 MB. Впрочем, возможно, удастся впихнуть ядро на 1.2 MB-дискету.
rawrite.exe - программа под DOS, способная сделать из форматированной
дискеты и файла boot.flp загрузочную дискету. Теперь минимальная
инсталляция (впрочем, это не так мало) находится на нашем диске.
Там же в tools есть еще много иногда полезного, описанного
в 00_index.txt, берите, если хочется. Изготовим загрузочную дискету:
rawrite.exe boot.flp a:
Теперь загрузимся с нее. Будет много непонятных сообщений - не пугайтесь
"not found" или "conflict with" - ядро содержит множество драйверов для самых
разных устройств, большая часть которых у вас отсутствует (ну действительно,
откуда взяться на машине десятку сетевых карт разных производителей?).
Основная проблема может быть с NE1000/NE2000-совместимыим и 3Com 3C503
картами - устройство ed0 расчитывает на Port 280 и IRQ 5, ed1 - Port 300
и IRQ 5. Впрочем, перед стартом ядро предлагает научить его работать
с другими портами и прерываниями, но я предпочел переставить параметры
карты (уж не помню, перемычками или программой-настройщиком), так как
считаю, что аппаратуру конфигурировать проще, чем программу.
Надеюсь, вы заранее подготовили свободное место на диске
для FreeBSD-раздела? Если нет, и к тому же у вас только одна партиция,
придется вернуться в DOS, стереть лишнее, дефрагментировать диск и
воспользоваться программой fips.exe (лежит рядом с rawrite.exe), чтобы
освободить место. (При этом размер кластера на FAT-разделе останется прежним.)
Первое, что надо сделать - создать раздел на диске. Создадим
FreeBSD-партицию (в терминах Unix она называется slice, а partition -
подраздел внутри slice) на все свободное место либо, если свободное место
не непрерывно, на самый большой непрерывный кусок. Затем надо создать
подразделы. Я рекомендую (для системного администратора) такую схему:
/ (корень) - от 16 до 32 MB
/usr (системные программы и данные для них) - от 50 MB
swap (область подкачки) - см.ниже
/var (рабочие файлы) - порядка 30 MB
/home (домашнии директории пользователей) - остальное
Конкретные значения сильно зависят от размера диска. Рекомендуемое значение
для / составляет 20 MB, если меньше - sysinstall будет возмущаться;
ну и пусть, ничего страшного. /usr должна соответствовать обьему
инсталлируемого, при выборе distribution можно уточнить, сколько именно
понадобится и отвести раза в полтора больше. swap зависит не столько
от обьема диска, сколько от количества оперативной памяти и должен превышать
ее в два..пять раз (в пять раз - с учетом возможного наращивания памяти).
Если хотите, чтобы FAT-раздел был доступен из Unix, надо указать точку
монтирования для него, обычно - /dos.
После того, как вы дали приказ начать инсталляцию и отказались
от последнего шанса спасти информацию на том месте, которое отвели
под FreeBSD, будет долгое извлечение из архива и размещение на диске.
Можно пока нажать Alt+F2 - посмотреть как идет извлечение, Alt+F4 -
подать какую-нибудь команду (ой, лучше не делайте этого) и Alt+F1 -
вернуться обратно.
Теперь, если все закончилось удачно, зайдем в пост-конфигурирование.
Если вы проводили инсталляцию по сети, то сетевой интерфейс должен быть уже
сконфигурирован, иначе лучше честно ответить на вопросы. о конфигурации
сетевого интерфейса. Если у вас есть подключение к Internet, адреса должен
дать провайдер или местный сетевой администратор, если же это чисто
внутренняя сеть - воспользуйтесь адресом из множества, отведенного
под внутрикорпоративные сети, например 192.168.0.1
и маской 255.255.255.0. Если есть подключение, желательно сконфигурировать
анонимный FTP-доступ, если есть внутренняя сеть - неплохо покажет себя Samba
(файл-сервер для Micro$oft Network по протоколу TCP/IP). И наконец, весьма
здорово сделать WWW-сервер на базе Apache! Я даже не ожидал, что это будет
так легко.
Что можно порекомендовать в плане администрирования?
Прежде всего не надо использовать имя root. К сожалению, его
нельзя удалить, слишком во многих местах оно задействовано. Поэтому я делаю
root:*:0:0::0:0:SysMaster:/none:/none
т.е. у него нет ни пароля, ни домашней директории, ни shell'а. Изначально
FreeBSD еще toor, который может заменить собой root,
но я предпочитаю использовать какое-нибудь третье имя. Если же вы решили
сохранить имя root, то по крайне мере надо установить ему пароль
(при установке этот пользователь создается без пароля).
Если на машине несколько администраторов, то им лучше каждому иметь свой
супервизорский account на случай если один вдруг решит сменить пароль. Вообще
надо время от времени менять свой пароль, но я не буду вдаваться в подробности.
Главное - не дать мерам безопасности мешать нормальной работе.
Супервизору запрещен удаленный вход (по Telnet и FTP). Если надо
удаленно администрировать систему, входите под обычным именем и давайте
команду su имя_супервизора. Однако делать это могут только те,
кто явно включен в нулевую группу (wheel). Вообще лучше
поменьше времени проводить под правами супервизора - меньше вероятность
повредить систему.
Администрирование групп сильно зависит от задач, возлагаемых на систему.
Этот аспект тоже администрирования подробно описан в литературе, а у меня
на данный момент не так уж много пользователей, чтобы я успел накопить опыт.
Что показалось хорошим
Ряд аспектов программирования в среде Win32 показался автору достаточно полезным. Ассоциирование "хендлов" (handle) с большинством объектов было довольно удобным. Хендлы похожи на дескрипторы файлов в ОС UNIX за исключением того, что на них не распространяется свойство упорядоченности, присущее дескрипторам файлов. Как доступ к файлу, так и доступ к любому процессу, любой нити (thread) и любому объекту синхронизации производится через хендл. Хендлы можно "подменить" за пределами границ процесса, поскольку функция DuplicateHandle() принимает в качестве аргумента как хендл выпускающего процесса, так и хендл принимающего процесса.
С хендлами ассоциированы дескрипторы безопасности, которые определяют владельца, группу и права доступа к объекту. В дополнение к обычным правам чтения, записи и выполнения объект может иметь способность к синхронизации. Хендл со способностью к синхронизации может находиться в состояниях "готов" и "не готов". Процесс может заблокироваться до тех пор, пока от одного до 64 хендлов не перейдут в готовое состояние.
Одним из средств Win32, которое отсутствует в большинстве UNIX-систем, - это возможность оповещения при изменении файлов. В Win32 имеется примитив для создания хендла каталога со способностью к синхронизации; это хендл переходит в состояние "готов" при любом изменении файлов в этом каталоге или его подкаталогах.
Автору также понравился интерфейс нитей. Его было просто использовать, и он обеспечивал необходимую функциональность без излишних расширений интерфейса. Одним из новых свойств, доступных только на Windows NT, является возможность процесса создать нить внутри другого процесса.
На автора произвела сильное впечатление производительность ввода/вывода Windows NT при работе на Pentium Pro. Вряд ли пользователи Linux почувствуют какие-либо различия в производительности ввода/вывода.
Автор интенсивно использовал компилятор Visual C/C++ в режиме командной строки и испытывал сравнительно мало затруднений. Компилятор производит впечатление совместимого со стандартом ANCI-C.
Наконец, автор нашел некоторые полезные источники информации о Win32. Множество полезной информации содержится в книге Jeffrey Ritcher "Advanced Windows NT" (Microsoft Press, 1993); несколько дополнительных полезных указаний можно обнаружить в книге Matt Pietrek "Windows 95 System Programming Secrets" (IDG Books Worldwide, 1995).
Web-сайт , поддерживаемый Mark Russinovich и Bryce Cogswell, является отличным местом для получения полезных инструментальных средств; набор средств, входящих в Microsoft Development Kit, на этом сайте умышленно отсутствует.
Что показалось неприятным
В дополнение к "плохим" свойствам Win32, многие аспекты этого интерфейса автор характеризует как "неприятные". По мнению автора, многие соглашения и приемы программирования в API Win32 выбраны не лучшим образом.
В предыдущем разделе перечислялись некоторые несогласованности, которые автор относит к плохим свойствам. Имеются и такие несогласованности, которые автор называет неприятными, например, несогласованный подход к именованию функций. Многие функции, такие как CreateFile(), именуются путем соединения глагола и существительного. Автора не беспокоит это соглашение, поскольку связанные функции рассеяны по всему руководству программиста. (Да, помогает гипертекст!) Однако в Win32 это соглашение не используется согласованным образом. Для функций RegCreateKey(), DeviceControl() и DosDateToFileTime() соглашение не соблюдается.
Во многих файлах заголовков, требуемых для построения приложений Win32, наблюдается большая свобода именования, что затрудняет программирование. Хотя некоторые подобные деффекты присутствуют и в API UNIX, в новых стандартах применяются тщательные меры, чтобы избежать этой проблемы. Имена в файлах заголовков Win32, похоже, используются случайным образом. Такие слова как IN, OUT, FAR, TRUE, FALSE, DELETE, UNALIGNED, VOID, IGNORE, INFINITIVE и MAXCHAR определены в стандартных файлах заголовков. Имена других символических констант, таких как SP_BAUD, GPRT, PST_FAX, GHND и LPTR (упомянем лишь несколько), трудно запомнить.
Многие имена функций в интерфейсе Win32 кажутся чрезмерно длинными. Это усложняет и написание, и чтение программы. Использование длинных английских имен не приносит пользу неанглоязычным программистам. Примером длинного имени функции может служить GetFileInformationByHandle(). Эту функцию можно было бы назвать GetFileInfo(), потому что в API нет никакой функции, позволяющей получить информацию о файле, кроме той, которой сообщается хендл. Из-за длинных имен и большого числа аргументов для вызова функции часто требуется несколько строк, что затрудняет поиск ошибок при чтении программы.
Автору не нравится соглашение о включении в имя переменной информации о ее типе. Например, имя структурной переменной dwProcess должно означать, что элемент Process является двойным словом. Это та информация, в которой автор не нуждается и которую не хочет помнить. Представим себе, что в будущей системе для Process потребуется 64 бита. В этом случае имя, по всей видимости, будет изменено, и придется изменять тесты программ.
Автор строго предпочитает соглашения UNIX по именованию типов с суффиксом _t, чем использование только прописных букв для имен типов. По соглашению, символические константы именуются только прописными буквами, и их использование затрудняет чтение программы.
Автору не нравится определение по крайней мере двух, а иногда и трех типов для каждого абстрактного типа. Например, в дополнение к типу идентификатора объекта SID имеется тип PSID, который означает всего-навсего SID*. Для типа FILETIME имеются два дополнительных заклинания - PFILETIME и LFILETIME.
Автор заключает статью тем, что после двух лет программирования для Win32 он находит интерфейс нескладным и трудным для использования. Ему по-прежнему часто приходится обращаться к руководству. Часто приходится писать небольшие тестовые программы, чтобы определить, что будет делать библиотечная подпрограмма в конкретных условиях. Как кажется, API UNIX гораздо проще, и благодаря U/WIN можно программировать с использованием этого интерфейса и запускать программы на системах Windows.
Что показалось плохим
Многие аспекты Win32 показались автору плохими. Первым среди них была сложность интерфейса. Похоже, что сложная модель защиты является причиной проблем с безопасностью, поскольку, вероятно, только эксперты в состоянии применить эту модель корректно.
Список экспортируемых имен показывает, что библиотека kernel32 включает около 675 функций; библиотека advapi32, определяющая интерфейс безопасности, содержит приблизительно 400 функций; библиотека users32, обеспечивающая интерфейс пользователя, содержит примерно 600 функций. Набор средств разработки включает более 225K строк включаемых файлов и поставляется вместе с 400 дополнительными динамически компонуемыми библиотеками.
Одним из примеров чрезмерной сложности является интерфейс CreateFile(). Этот интерфейс обеспечивает функциональность функции ОС UNIX open(). У функции CreateFile семь аргументов:
pathname; access - битовая маска из трех или более бит; share - битовая маска чтения, записи, удаления; security - дескриптор безопасности + наследование; mode - пять режимов; flags_attr - восемь флагов + 11 атрибутов; template - хендл файла.
Имеется по меньшей мере 33,554,432 возможных комбинаций опций для данного путевого имени, не считая дескриптора безопасности и хендла файла.
Функция CreateProcess(), которая заменяет семейство функций fork() и exec() ОС UNIX, принимает десять аргументов; некоторые из них являются структурами, содержащими много полей. При наличии большого числа возможных комбинаций флагов отсутствует установка флага, которая обеспечивала бы функциональность семейства функций exec. Эти функции заменяют текущий процесс некоторым новым процессом. Реализация семейства exec ОС UNIX была одной из наиболее хитроумных задач.
Другим примером сложности может служить реестр (registry). Реестр служит для сбора в одном месте параметров конфигурирования и обеспечения к ним быстрого доступа. Реестр структурирован подобно файловой системе, но доступ обеспечивается оотдельным набором функций API. Реестр обладает бесчисленным количеством ключей, и их организацию часто трудно предсказать, тем более, что она различна для Windows 95 и Windows NT.
В дополнение к сложности, вторым плохим свойством API Win32 является его неполнота. Хендлы могут наследоваться одним процессом от другого или дублироваться, но отсутствует функция API, которая позволила бы по заданному хендлу определить его тип. Хотя функции ReadFile() и WriteFile() могут выполнять через хендл асинхронный ввод/вывод (только в Windows NT), этот хендл должен быть создан через вызов CreateFile() с флагом FILE_FLAG_OVERLAPPED. Более того, если хендл был создан с использованием этого флага, то синхронный ввод/вывод через этот хендл невозможен. При наличии этих ограничений отсутствуют функции API, которые позволили бы переустановить флаги или хотя бы узнать, какие флаги использовались при создании хендла.
Другим примером неполноты является невозможность управлять полным пространством имен файлов. В дополнение к отсутствию возможности создания каталогов и, в меньшей степени, файлов с именами, различающимися регистром букв, в интерфейсе Win32 не допускаются такие имена файлов как aux.c и com0.sh. Невозможно обеспечить доступ или создать файлы, которые заканчиваются точкой. API Win32 не обеспечивает вызов для создания жесткой ссылки, хотя в самой файловой системе NTFS такая возможность имеется.
Третим аспектом Win32, который автор считает плохим, является отсутствие согласованности. Этот аспект можно было бы считать "неприятным", а не "плохим", если бы он не являлся источником ошибок и не приводил к потребности траты времени на чтение руководств. В ОС UNIX тоже часто встречается несогласованность, и похоже, что разработчики Win32 не старались учиться на чужих ошибках. Одна из областей несогласованности API Win32 - это значения, возвращаемые функциями. Например, CreateFile() возвращает -1 при ошибке и хендл в противном случае. Функция CreateEvent() возвращает 0 при ошибке и хендл в противном случае. Функция RegCreateKey() возвращает код ошибки, а передается ей адрес хендла.
Использование аргументов тоже является несогласованным. Первым аргументом функции OpenProcess() является желаемый режим доступа.
Таким же образом обстоят дела с OpenEvent(). Однако в функции OpenProcessToken() желаемый режим доступа передается в качестве второго параметра.
В отличие от Windows 95, в интерфейсах Windows NT используется UNICODE, что позволяет хранить в этой кодировке имена файлов и других ресурсов, управляемых системой. К сожалению, вместо того, чтобы применять кодировку переменной длины UFT8, выбран способ представления символов в кодировке постоянной длины (16 бит). В результате отсутствует совместимость с 7-битовой кодировкой ASCII. Кроме того, приходится компилировать программы либо в расчете на UNICODE, либо в расчете на ASCII вместо того, чтобы применять некоторую унифицированную версию.
Другими плохими аспектами Windows NT, по мнению автора, являются планирование загрузки, необходимость в частых перезапусках и менталитет однопользовательской системы. Примером последнего является то, что когда пользователь входит в систему в рамках сессии telnet, то ftp приглашает ввести пароль на консоли, а не на терминале пользователя.
Что такое "геометрия диска"?
Как вы знаете, жесткие диски представляют собой несколько пластин с магнитным покрытием, расположенных на одной оси и вращающихся с большой скоростью. Считывание/запись информации осуществляется с помощью головок диска, расположенных одна под другой между пластинами и перемещающихся от центра к краям пластин. Окружность на магнитной пластине, которую описывает головка при вращении пластин, называется дорожкой, а совокупность таких дорожек, расположенных одна под другой (определяемая каждым фиксированным положением головок), называется цилиндром. Каждая дорожка разбита на сектора, и в сектор можно записать 512 байт полезной информации. Поэтому диски часто характеризуются совокупностью трех цифр: числом цилиндров/числом дорожек в цилиндре/числом секторов на дорожке или C/H/S (от первых букв соответствующих английских терминов: Cylinder/Head/Sector, т. е. цилиндр/головка/сектор). Эти три цифры называют "геометрией диска". Диск с геометрией C/H/S имеет объем CxHxSx512 байт.
Диски являются блочными устройствами, т. е. считывание и запись информации производится блоками, и минимальный размер блока равен одному сектору (512 байт). Для того чтобы записать информацию на диск, надо "позиционировать головку", т. е. указать контроллеру, в какой сектор эту информацию записать. Сектора как раз адресуются путем указания номера цилиндра, номера считывающей головки (или дорожки) и порядкового номера сектора на дорожке.
Что такое GNU? GNU это не UNIX!
GNU, что означает Gnu's Not Unix --- это имя для полностью Unix-совместимой программной системы, которую я пишу так, что я свободно могу передать его всем, кто сможет ею пользоваться.1 Несколько добровольцев помогают мне. Крайне требуется вклад времени, денег, программ и оборудования.
На данный момент у нас уже есть текстовый редактор Emacs с языком Лисп для написания команд редактора, отладчик, работающий на уровне исходного текста, YACC-совместимый генератор анализаторов, компоновщик и около 35 утилит. Оболочка (командный интерпретатор) почти завершена. Новый переносимый оптимизирующий компилятор Си скомпилировал сам себя и может быть выпущен в этом году. Начальное ядро существует, но нужны еще многие свойства, чтобы можно было эмулировать Unix. Когда ядро и компилятор будут закончены, можно будет распространять систему GNU, пригодную для разработки программ. Мы будем использовать TeX в качестве нашего программы форматирования текста, но над nroff продолжается работа. Мы будем использовать также свободную, переносимую систему X Window. После этого мы добавим переносимый Common Lisp, игру "Империя", электронную таблицу и сотни других вещей плюс диалоговую документацию. Мы надеемся в конце концов предоставить все полезное, что обычно поступает с Unix системой, и даже еще больше.
GNU сможет запускать программы Unix, но не будет идентична Unix. Мы введем все удобные усовершенствования, основываясь на нашем опыте работы с другими операционными системами. В частности, мы планируем сделать более длинными имена файлов, номера версий файлов, защищенную от сбоев файловую систему, возможно, завершение имени файла, поддержку терминально-независимого вывода и, в конце концов, возможно, основанную на Лиспе оконную систему, при помощи которой различные Лисп-программы и обычные программы Unix смогут совместно использовать экран. Как Си, так и Лисп будут доступны в качестве системных языков программирования. Мы постараемся обеспечить поддержку UUCP, MIT Chaosnet и протоколов связи Internet.
Изначально GNU нацелена на машины класса 68000/1600 с виртуальной памятью, так как на них ее легче всего запустить. Дополнительные усилия для запуска ее на меньших машинах будут предоставлены тому, кто захочет использовать ее на них.
Чтобы избежать ужасной путаницы, пожалуйста, произносите `G' в слове `GNU', когда оно является именем данного проекта.
Что такое Unix?
Unix - полноценная, изначально многопользовательская, многозадачная
и многотерминальная операционная система. Точнее, это целое семейство
систем, почти полностью совместимых друг с другом на уровне исходных
текстов программ.
Что значит "редактировать файл MYCONF"?
Изначально файл GENERIC содержит строки
команда драйвер параметры #комментарий
например
cpu "I386_CPU"
cpu "I486_CPU"
cpu "I586_CPU"
Естественно, надо оставить тот, который соответствует вашей машине.
Возможен также вариант, когда это ядро должно работать в нескольких
конфигурациях, тогда надо оставить строки, соответствующие хоть одной
(т.е. если ядро делается для 486-й машине, которая вскоре должна быть
усилена до 586-й, то надо оставить две последние строки).
В этом очень поможет файл LINT. Он содержит все драйверы,
которые есть в ssys.?? и по слухам не может быть скомпилирован - некоторые
строки противоречат друг другу. Зато от неплохо прокомментирован. Моя
первая компиляция закончилась неудачно - я выкинул шину PCI (ее на машине
действительно не было), но оставил какое-то PCI-устройство и компилятор
на нем запнулся. Ничего страшного не произошло, машина не повисла, система
не грохнулась - просто пришлось запустить компиляцию заново. Был вечер,
ждать конца было неохота и я ушел домой, оставив компилятор работать,
а утром получил готовое ядро.
Компиляция сократила размер ядра (файла - ядро скомпрессировано,
самораспаковывается при загрузке и в памяти занимает больше) с 1224 KB до 840
KB на одной машине и до 790 KB на другой (разница - в наличии CD-ROM и в
сетевых картах). Это немаловажно, особенно если у вас не очень много памати.
FreeBSD способен работать и даже эффективно выполнять многие функции
даже при 4 MB оперативной памяти, но для компиляции неплохо будет добавить;
впрочем, компиляция при 8 MB, мне показалась, шла вполне приемлимо.
Выражаю благодарность Александру Лапинскому за его насмешливые комментарии
к ошибкам, допущенным в предыдущих версиях текста.
document.write('');
|
<
This Web server launched on February 24, 1997 Copyright © 1997-2000 CIT, © 2001-2009 |
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. |
Советуем обратить внимание: от компании, проверенной временем. |
CIM и MOF
CIM подобен объектно-ориентированным языкам программирования C++ и Java, в которых проектировщик создает представления в виде классов. Использование классов дает разработчику возможность задействовать всю мощь технологии моделирования наследования и композиции. Подклассы могут наследовать определенные атрибуты родительских классов и добавлять собственные свойства или переопределять свойства, унаследованные от родительских классов. Класс, который наследует свойства другого класса, является наследником родительского класса. Классы также могут иметь сложное наследование: разработчик может построить класс, являющийся производным от нескольких родительских классов.
DMTF предоставляет несколько классов как часть WBEM-стандарта. Эти классы - основа CIM; они обеспечивают интерфейс ко всем областям управления и являются частью модели ядра CIM. Примером такого класса может служить CIM_ManagedSystemElement. Этот класс содержит несколько основных свойств, которые идентифицируют физические компоненты, такие, как устройства, и логические компоненты, такие, как файлы. Свойства включают заголовок, описание, дату установки и статус. Таким образом, классы CIM_LogicalElement и CIM_PhysicalElement наследуют атрибуты класса CIM_ManagedSystemElement. Оба эти класса также являются частью модели ядра CIM. Стандарт WBEM называет их абстрактными, так как они существуют исключительно как родительские для других классов (т. е. не может существовать экземпляра абстрактного класса). Поэтому абстрактные классы можно представлять как шаблоны, определяющие свойства для использования в других классах.
Другая категория классов представляет объекты, которые являются специфическими для задач управления, но не зависят от конкретной реализации. Эти классы составляют общую модель и рассматриваются как расширение основной модели. Примером класса общей модели может служить класс CIM_FileSystem, наследующий свойства класса CIM_LogicalElement. Поскольку фактически каждая операционная система, будь то Windows 2000, Linux или другие версии UNIX, использует файловую систему как основную структуру хранения информации, класс CIM_FileSystem является естественной составляющей общей модели.
Последняя категория классов включает специфические для каждой технологии дополнения к обычному классу. Windows 2000 определяет большое число таких классов для представления объектов, специфических для среды Win32. Поскольку все операционные системы хранят данные в файлах, общая модель CIM включает класс CIM_LogicalFile. Класс CIM_DataFile является наследником класса CIM_LogicalFile, и Win32 добавляет классы Win32_ PageFile и Win32_ShortCutFile для соответствующих типов файлов операционной системы Win32.
Провайдер EventLog широко использует наследование. На Экране 1 показан вид WMI CIM Studio - браузера для просмотра классов, поставляемого с WMI SDK (Microsoft поставляет WMI SDK с MSDN). Он позволяет увидеть, где провайдер EventLog использует наследование в классе Win32_NTEventlogFile, который и образуется от CIM_DataFile. Файлы EventLog являются файлами данных, имеющими специфические атрибуты, такие, как имя файла журнала и количество содержащихся в нем записей. По дереву, которое показывает браузер, видно, что класс Win32_ NTEventlogFile имеет сложное наследование, в котором класс CIM_ DataFile - наследник CIM_LogicalElement, а CIM_LogicalElement - наследник CIM_ManagedSystemElement.
ЭКРАН 1. Просмотр наследования классов с помощью браузера классов CIM Studio.
Как я упоминал вначале, разработчики провайдеров WMI-классов пишут свои классы на языке MOF. Экран 2 показывает определение класса Win32_NTEventlogFile, который был выбран на Экране 1. Отметим корреляцию между первыми шестью свойствами в правой панели списка на Экране 1 и определениями этих же свойств MOF-файла на Экране 2. CIM Studio использует желтые стрелки, чтобы показать наследование подобных свойств от родительского класса. Поэтому мы не видим определений этих свойств в определении класса Win32_ NTEventlogFile. Один из терминов, который в связи с этим стоит рассмотреть, - динамический (DYNAMIC) провайдер. Он является описательным указателем (характеристикой) для класса Win32_ NTEventlogFile, показанного в MOF-файле на Экране 2.
Этот термин означает, что инфраструктура WMI запрашивает WMI-провайдера о значениях свойств, ассоциированных с классом, тогда, когда управляющее приложение запрашивает эти свойства. СТАТИЧЕСКИМ является тот класс, для которого провайдер сохраняет свойства в репозитарии WMI; инфраструктура WMI ссылается на репозитарий для получения значений, а не опрашивает для этого провайдера. Поскольку модифицирование репозитария - операция относительно дорогая, динамические провайдеры более эффективны для объектов, у которых изменение свойств происходит часто.
ЭКРАН 2. Определение класса Win32_NTEventlogFile.
После создания классов в MOF разработчики WMI могут вставить определения класса в WMI несколькими путями. Первый путь предполагает компиляцию MOF-файла в бинарный MOF(BMF)-файл - более компактное бинарное представление, чем MOF-файл, - и размещение BMF-файла в инфраструктуре WMI. Другой путь для провайдера - это компилировать MOF и использовать WMI API COM, чтобы предоставить определения классов WMI-инфраструктуре. Наконец, провайдер может использовать инструмент mofcomp, чтобы непосредственно дать WMI-инфраструктуре откомпилированное представление класса.
Cюрпризы POSIX
Журнал , #09-10/1999
Сергей Романюк
В ответ на вопрос, что такое POSIX, довольно часто можно услышать, что это стандарт на операционную систему, а некоторые при этом добавят "класса UNIX". Ответ неправильный. Об этом и других "открытиях", сделанных в процессе перевода стандарта ISO/IEC 9945-1 [1] на русский язык, а также о некоторых ассоциациях, возникших у автора при чтении оригинального текста, говорится в предлагаемой статье.
Console
Да здравствует командная строка! Вот уже несколько десятков лет без нее не обходится ни одна операционная система. А когда наконец появились графические оболочки, заскучавшие асы компьютерного кодирования придумали в отместку консольные окна, чтобы в минуты отчаяния понабивать команды вручную. Это, конечно же, шутка. И тем не менее попробуйте обойтись без командной строки, если у вас сбойнула видеосистема или нужно произвести тонкую настройку ОС.
В Corel LINUX за работу консольного окна отвечает системная утилита, которая так и называется - Console. Меню Console помимо переключения размеров и расцветок содержит вызов популярного у линуксоидов файлового менеджера Midnight Commander.
Хорошо, что в Console правильно работают клавиши Del и Backspace, как к этому привыкли пользователи Windows, и запоминаются введенные ранее команды. Но что портит картину, так это невозможность перенести в Console текст из буфера обмена. По-моему, это нуждается в доработке. Иначе очень уж много приходится "барабанить" пальцами.