КомпьютерМастер КомпьютерМастер
Программы

  Услуги   Цены   Гарантии Вызов мастера Всё о компьютерах   Полезные ссылки

Администрирование Windows 2000/XP

Внутреннее устройство Windows 2000.

Что хорошего предлагает нам Windows 2000?

В первую очередь, это, конечно, защищенность данных и отказоустойчивость. Звучит хорошо, но вдумчивого и любопытного читателя должно интересовать, что же стоит за общими словами и заявлениями рекламных представителей "Майкрософт". "Да, масштабируемость; да, высоко-производительность; да, повышенная надежность... все это мы уже слышали тысячи раз, и имели на деле то, что имели... - может сказать он. - А что же по существу?" - и будет совершенно прав. По существу же, мы имеем операционную систему, в которой разработчики, по крайней мере, попытались применить на практике очень разумные идеи, повышающие стабильность системы и ее помехозащищенность. Данные и код операционной системы изолированы от пользовательских приложений целым рядом специальных методов. Для предотвращения доступа приложений к критически важным данным операционной системы и устранения риска их модификации Windows 2000 использует два режима доступа к процессору: пользовательский и режим ядра. Стоит заметить, что хотя на самом деле в архитектуре процессоров x86 предоставлено четыре уровня привилегий (так называемых колец), на которых могут работать процесоры, "Майкрософт" поступила, как всегда, достаточно оригинально, и решила использовать только два из них: нулевой уровень для исполнения в режиме ядра и третий - для пользовательского режима. С другой стороны, разработчиков тоже можно понять: мечта о мировом господстве на рынке операционных систем не дает им покоя, поэтому NT разрабатывалась так, чтобы работать не только на процессорах фирмы Intel, но также, например, на Digital Alpha или IBM PowerPC, которые могли иметь только два уровня привилегий. Как уже упоминалось, Windows 2000 основана на концепции микроядра (microkernel), а значит, разработчики ОС постарались минимизировать объем кода, исполняемый в режиме супервизора, то есть в режиме, при котором код обладает возможностью прямого доступа ко всему аппаратному обеспечению и ко всей памяти. Естественно, что в таком случае только данный код может управлять работой всех устройств и предоставлять программам базовые сервисы, такие, как, например, выделение (или отказ в выделении) памяти, доступ к дисковой подсистеме и т. д. От работоспособности микроядра полностью зависит работоспособность компьютера в целом, поэтому к нему предъявляются достаточно высокие требования:

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

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

Концепция микроядра подразумевает, что фактически все компоненты операционной системы, за исключением небольшого базового программного модуля (который и является микроядром), работают в пользовательском режиме на равных условиях со всеми остальными программами, работающими в системе. Очевидно, что отказоустойчивость всей системы при таком подходе возрастает, так как сбой одного из компонентов приводит к минимальному ущербу, при этом всегда остается возможность этот компонент перезапустить. Грубо говоря, если только ядро осталось после сбоя "живым", нажатие Ctrl+Alt+Del приведет к появлению окна "Безопасность Windows", с помощью функций которого можно решить большинство проблем, причем это произойдет немедленно, так как соответствующий поток процесса ядра при обычных условиях имеет наивысший приоритет. Если же вы обладаете правами администратора, у вас есть очень простой способ "подвесить" систему: нужно всего-то написать программу, которая будет к некоторому числу добавлять по единичке, пока не будет достигнуто значение, скажем, 1045 (те, кто хоть раз занимался программированием, меня поймут).

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

Но вернемся к микроядру. Кроме всего прочего, система, основанная на концепции микроядра, позволяет производить более гибкое конфигурирование, так как любой из компонентов ОС можно легко заменить на другой, поддерживающий точно такой же программный интерфейс. На самом деле, для увеличения производительности Windows 2000 использует некий гибрид микроядра и монолитного дизайна, так как некоторые ее базовые компоненты, например, диспетчер процессов и диспетчер виртуальной памяти, все-таки функционируют в режиме ядра - это позволяет им взаимодействовать между собой не через медленные механизмы межпроцессорной передачи данных (передачи данных между несколькими программными процессами), а используя общую память. Вторая причина включения дополнительного кода в режим ядра кроется в том, что процессор, занятый выполнением некоторой задачи, реализуемой соответствующим процессом (или, как говорят, работающий в определенном контексте), работает с текущими значениями процессорных регистров, а также указателей на используемую память (стек, данные, исполняемый код). Эти значения различны для различных потоков, поэтому, прежде чем перейти на выполнение другой программы, реализуемой другим процессом, процессор должен сохранить текущий контекст, а затем загрузить контекст нового процесса, на выполнение которого он переключается. Данная процедура называется переключением контекста и может занимать существенное время. Использование гибридного дизайна позволяет снизить количество переключений контекста. Хотя, теоретически и это несколько, снижает надежность системы, все равно она оказывается не в пример больше, чем у windows 9x. За счет полностью реализованного режима виртуальной машины микроядра обеспечиваются многие дополнительные возможности, недоступные, скажем, Windows 98. Это, в первую очередь, обеспечение приложениям индивидуального адресного пространства для каждого процесса и предоставление уровня защищенности не хуже, чем по стандарту C-2/Е-3, здесь ключевую роль играет то, что Windows 2000 отказывает процессам, обращающимся к оборудованию и памяти, которые им не принадлежат. Достигается это достаточно простыми методами, например, каждая страница в виртуальной памяти помечается тэгом, определяющим, в каком режиме должен работать процессор для чтения или записи данной страницы памяти. Таким образом, страницы системной памяти оказываются недоступными для всех процессов, не работающих в режиме ядра. При попытке выполнения любой запрещенной операции центральный процессор автоматически генерирует исключение, и управление передается микроядру NT. Микроядро определяет, разрешено вызвавшей исключение программе выполнять такую операцию, или нет. Если операция признана несанкционированной, управление передается программе Dr.Watson, которая оповещает о возникшей ошибке пользователя, а система в этот момент быстренько завершает работу приложения, попытавшегося выполнить незаконное с точки зрения ОС действие. Естественно, подобный алгоритм работы - это не особая и сверхгениальная разработка талантливых программистов из "Майкрософт", а хорошая реализация тех аппаратных возможностей "железа", которые появились в современных микропроцессорах.

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

Модуль NT Executive представляет собой несколько программных потоков, которые закоренелые программисты-системщики почему-то предпочитают называть рабочими потоками; естественно, все эти потоки выполняются в режиме ядра. Код практически всех подсистем этого модуля находится в файле ntoskrnl.exe, кроме, разве что, подсистемы win32, код которой расположен в файле win32k.sys, и уровня абстракции оборудования HAL (Hardware Abstraction Layer), который содержится в файле halxxxxx.dll, где xxxxx зависит от типа используемого компьютера. NT Executive сосредотачивает все самые важные части ОС:

Ядро - это основная часть Windows 2000, в реализации которой кроется вся мощность и красота платформы NT. Прежде всего, ядро отвечает за выделение памяти для приложений и распределение процессорного времени, то есть, фактически, за реализацию многозадачности. Для этого в состав ядра входит так называемый планировщик потоков (threads scheduler), который назначает каждому из потоков один из 32 уровней приоритета. Уровень 0 зарезервирован для системы. Уровни от 1 до 15 назначаются исполняемым программам, а уровни от 16 до 31 могут назначаться только администраторами. Планировщик делит все процессорное время на кванты фиксированного размера (как менять размер кванта, еще будет рассказано в следующих частях нашей статьи), при этом каждый программный поток выполняется только в течение отведенного ему времени, и если к окончанию кванта он не освобождает процессор, планировщик в принудительном порядке приостанавливает этот поток и меняет контекст процессора, настраивая его на выполнение другого потока, обладающего тем же приоритетом. Ядро также осуществляет всю работу, связанную с обработкой программных и аппаратных прерываний.

Уровень абстракции оборудования (HAL)
- это прослойка между операционной системой и аппаратурой компьютера. HAL имеет свой собственный API, предназначенный для транслирования обращений всех приложений и драйверов в конкретные команды процессора, учитывающие его внутреннюю структуру и нюансы работы. HAL и ядро написаны на языке низкого уровня, в то время как остальные компоненты ОС реализованы на языке C и C++, поэтому именно они отвечают за переносимость NT на системы с другой архитектурой. На данный момент Windows 2000 есть в версиях как для процессоров PC совместимых компьютеров (Pentium и старше), так и для нового перспективного семейства 64-битных процессоров EPIC (Itanium, Itanium-2).

Диспетчер ввода-вывода (I/O Manager)
- интегрирует добавляемые в систему драйверы устройств в операционную систему Windows 2000.

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

Диспетчер процессов
- предоставляет интерфейс, при помощи которого другие компоненты Windows NT Executive, а также приложения пользовательского режима могут манипулировать процессами и потоками. Во время работы диспетчер процессов сопоставляет каждому процессу и потоку идентификатор процесса (PID - Process Identifier) и потока (TID - Thread Identifier) соответственно, а также карту адресов и таблицу дескрипторов.

Диспетчер виртуальной памяти
- служит для управления и организации подсистемы памяти, позволяет создавать карты адресов для процессов и следит за корректностью использования адресного пространства приложениями (то есть, следит за общим доступом к памяти и осуществляет защиту страниц в режиме копирования при записи). Диспетчер виртуальной памяти также обеспечивает возможность отображения файлов на память, используемую для загрузки в оперативную память исполняемых файлов и файлов динамических библиотек. Еще в Windows NT4.0 существовала так называемая Защищенная Модель памяти, которая (в отличие от DOS-подобных ОС) позволяла изолировать каждый процесс друг от друга и, что самое главное, от кода самой ОС. Диспетчер виртуальной памяти представляет физическую память для пользовательских приложений таким образом, что каждому процессу выделяются отдельные 4Гб виртуального адресного пространства, из которых младшие 2Гб используются непосредственно процессом по своему усмотрению, а старшие 2Гб - отводятся под нужды системы, причем они - общие для всех процессов. При этом каждый процесс "думает", что он - единственный, запущенный в системе. Но здесь кроется некоторое затруднение: многие 16-разрядные программы при своей работе обмениваются данными между собой напрямую, используя одни и те же участки памяти, а это неприемлемо для Windows NT. В этом случае такие программы все же запускаются и предоставляют разделяемую память, где они могут обмениваться данными. Эта память является нестраничной областью физической памяти, которая может быть спроецирована на виртуальное адресное пространство нескольких процессов, и таким образом они смогут взаимодействовать друг с другом. Как мы видим, самое главное, чем занимается диспетчер виртуальной памяти - это видно из его названия - организация логической памяти, размер которой больше размера физической, установленной на компьютере. Этот трюк достигается благодаря тому, что страницы памяти, к которым долго не было обращений и которые не имеют атрибута неперемещаемых, сбрасываются диспетчером в файл pagefile.sys на винчестер и удаляются из оперативной памяти, освобождая ее для других приложений. В момент, когда происходит обращение к данным, находящимся в перемещенной на винчестер странице, диспетчер виртуальной памяти незаметно для приложения копирует страницу обратно в оперативную память, и только затем обеспечивает доступ к ней. Этот механизм обеспечивает выделение дополнительной памяти программам, которые нуждаются в ней, и при этом следит за тем, чтобы все работающие в системе программы обладали достаточным объемом физической памяти для того, чтобы продолжать функционирование.

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

Win32 User и GDI
- выполняют все функции, связанные с пересылкой системных сообщений и отображением информации на экране. До Windows NT 4 эти серверные компоненты функционировали в пользовательском режиме в качестве одной из составных частей подсистемы Win32.

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

Остальные компоненты операционной системы выполняются в пользовательском режиме, часто их называют подсистемами. Например, в состав Windows 2000 входит подсистема безопасности и подсистемы, предоставляющие программам функции таких распространенных операционных сред, как DOS, OS/2, Win16, POSIX, а также Win32. Основное назначение операционной среды - предоставления интерфейса, а также эмуляция работы операционных систем, отличающихся от Windows 2000. Проще говоря, операционная среда добавляет в систему Windows 2000 дополнительные возможности и новые системные вызовы, отличающиеся от вызовов естественного API-ядра. Подсистемы операционных сред загружаются только в случае, если возникнет необходимость их использования. Каждая подсистема выполняется как отдельный процесс пользовательского режима. Таким образом, каждая подсистема защищена от сбоев, вызванных другими подсистемами, именно благодаря этому платформа Windows 2000 функционирует более стабильно, чем операционные системы линейки Windows 9x. Что кажется наиболее удивительным, Win32 API не является родным для Windows 2000, а реализован так же, как и, скажем, поддержка DOS API. Это замечание, однако, не совсем верно: естественный API очень похож на Win32 API, тем не менее, с ним несколько сложнее работать (между некоторыми функциями Win32 и некоторыми функциями естественного API может существовать взаимооднозначное соответствие, однако часть функций Win32 для выполнения своей задачи обращаются к нескольким функциям естественного API-ядра), кроме того, он не документирован. Поэтому, хоть приложению никто и ничто не помешает действовать в обход интерфейсов, пре-доставляемых операционными средами, и обращаться к естественному API напрямую, компания "Майкрософт" крайне не рекомендует использовать такую возможность.

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

Модель безопасности в Win NT/2000.

Защита данных в Windows 2000 построена весьма эффективно и гарантируется многоуровневой схемой защиты как от случайной их потери при работе, так и от умышленного повреждения или нарушения условий конфиденциальности и целостности. Концепции, лежащие в основе системы безопасности операционной системы Windows 2000, нельзя назвать революционными: все основные идеи и механизмы достались ей в наследство от прежней системы Windows NT 4.0, где они уже доказали свою состоятельность и эффективность. Говоря иначе, в основе системы безопасности новой операционной системы, как и ранее, лежат понятия "дескриптора безопасности" (SD, Security Descriptor) и "списка управления доступом" (ACL, Access Control List). Но в то же время в новой операционной системе были включены дополнительные возможности (например, поистине мощные средства, которые предоставляет использование механизмов Active Directory) и получили дополнительное развитие старые средства. К сожалению, некоторые из них доступны только для тех пользователей, которые работают под Windows 2000 Professional и входят в группу, управляемую сервером на базе Windows 2000 Server. А наиболее полно они реализуемы лишь в случае создания полноценного домена с разделяемыми функциями серверов, созданными на их базе контроллерами доменов и специальными серверами, определяющими исключительно параметры безопасности. Для реализации новых идей используются различные методы; большинство из них предназначено для работы в сети, вследствие чего они малоинтересны обычному пользователю, поэтому мы вначале рассмотрим принципы, общие для любого компьютера, работающего под управлением Windows 2000.

Любое приложение (программа), запускаемое под управлением Windows 2000, автоматически начинает использовать возможности, обеспечивающие его безопасность. То есть, какое бы приложение не было бы запущено, операционная система (И ТОЛЬКО ОНА) контролирует доступ к своим ресурсам, таким как файлы, память и аппаратные устройства. Что интересно, разработчики Windows 2000 пошли еще дальше и решили централизовать доступ вообще к любым ресурсам системы (даже к таким достаточно абстрактным, как окна, процессы и потоки). Поэтому приложение, работающее в Windows, будет защищено от модификации исполняемого кода и данных со стороны других "некорректно" работающих приложений, да и просто нехороших людей, задумавших сломать вам систему. Кроме этого, возможно программное управление правами доступа к особенно критичным в смысле безопасности объектам со стороны отдельных пользователей. Таким образом, обеспечивается многоуровневая система защиты. Данные защищены настолько хорошо, что столкнуться с проблемами доступа к ним при этом могут даже администраторы, обладающие всеми полномочиями при управлении системой, если они не выполняют простейших правил обеспечения безопасности. Например, если не удается восстановить операционную систему после ее выхода из строя и невозможно воспользоваться сертификатом, с помощью которого производилось шифрование, то доступ к данным, хранящимся на томах хранения информации с применением EFS, будет невозможен из любой другой работающей системы, куда они будут перенесены. Поэтому сертификаты всегда желательно копировать на какой-нибудь надежный резервный носитель информации, который будет храниться в хорошо защищенном от постороннего доступа и вредных факторов воздействия месте.

Как известно, при разработке Windows 2000 учитывалось то, что она должна удовлетворять уровню безопасности C2, разработанному оборонными ведомствами США. Базовые принципы уровня безопасности C2 это:

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

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

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

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

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

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

Краеугольным камнем, на котором базируется вся реализация защиты данных, является пользовательская учетная запись или на сленге администраторов и ветеранов NT - аккаунт. Учетная запись - это своего рода пропуск, который позволяет пользователю обращаться к ресурсам системы и однозначно определяет, с какими ресурсами он может работать и каким образом. Каждый пользователь, который регулярно использует компьютер, должен обладать собственной индивидуальной учетной записью. Для тех же, кто входит в систему нечасто, существует одна на всех учетная запись - гость, - которая обладает, как правило, минимумом прав доступа. Для облегчения жизни администратору (а он тоже не бог, как может показаться некоторым неискушенным людям, а всего лишь человек) несколько учетных записей можно объединить в группу и назначать унифицированные права доступа всем ее членам, а не каждому пользователю в отдельности. Это уже относится к назначению групповых политик и обычно обсуждается при рассмотрении приемов администрирования, что мы и сделаем в одной из следующих статей. Вся информация об учетных записях и группах хранится в централизованной базе данных. В Windows NT 4, а также в Windows 2000 эта база называется SAM (Security Accounts Manager). В базе данных SAM каждый пользователь и каждая группа, а также каждый компьютер идентифицируется уникальным идентификатором безопасности SID (Security Identifier), который каждый раз при создании новой учетной записи автоматически генерируется ОС совершенно случайным образом и никогда не используется повторно. Соображения уникальности заставляют систему использовать в качестве SID число, а не символьную запись. Символьные обозначения учетных записей просто ставятся в соответствие SID'у, так делается только для удобства работы администратора. Из вышесказанного вытекает, что, если вы по ошибке удалите какую-либо учетную запись, то восстановить ее будет уже невозможно, так как если вы попытаетесь создать новую запись с таким же символьным именем, ОС все равно сгенерирует новый SID, который, естественно, не будет соответствовать по наполнению предыдущему. Это обстоятельство обязательно следует учитывать при работе с Windows 2000.

Атрибуты защиты каждого объекта (будь то реестр, файл или общий ресурс) находятся в его дескрипторе защиты SD, который предоставляет сведения о владельце объекта (то есть содержит SID владельца) и дискреционный список управления доступом к объекту (DACL, Discretionary Access Control List). Дискреционный список управления доступом (часто называемый просто списком управления доступом) содержит информацию о том, какие действия запрещается или разрешается выполнять тем или иным пользователям или группам пользователей по отношению к данному объекту. То есть, он представляет собой некий перечень записей управления доступом ACE (Access Control Entry), каждая из которых соответствует некоторому пользователю или группе пользователей (содержит соответствующие SID), которым разрешен или запрещен доступ к данному объекту в форме, определяемой ACE. Помимо дискреционного списка управления доступом дескриптор SD включает в себя системный список управления доступом SACL или System ACL, который необходим для работы системы аудита доступа к ресурсам (системы протоколирования). Система аудита осуществляет слежение за доступом к объектам безопасности и протоколирует информацию об удачных и неудачных попытках доступа к ним в журнале аудита. Благодаря механизмам аудита администратор может узнать, кто и когда пользовался интересующим его ресурсом системы, или пытался им воспользоваться, если в доступе было отказано.

При загрузке Windows предложит вам зарегистрироваться в системе от имени одного из пользователей, для которых имеется учетная запись. При этом введенные данные сравниваются с теми, которые хранятся в операционной системе, и на основании результата сравнения принимается решение о регистрации (или отказе в доступе). В случае успешной регистрации, пользователю системой WinLogon назначается токен доступа (access token), который в дальнейшем будет присваиваться каждому процессу, который запустит пользователь. Токен содержит информацию о самом пользователе, группе, в которую он входит, привилегиях и правах доступа, то есть содержит SID пользователя и SID'ы всех групп, в которые он входит. При попытке процесса обратиться к какому-либо объекту производится поиск ACE, соответствующего обратившемуся процессу, в дискреционном списке ACL этого объекта. На основе сравнения токена доступа и ACE принимается решение о разрешении или запрещении доступа процесса, запущенного данным пользователем к объекту. Как мы видим, уже на достаточно низком уровне система неплохо защищена от возможных попыток несанкционированного доступа.

Еще одно средство защиты данных, интегрированное в Windows 2000, - это файловая система EFS (Encrypting File System), являющаяся дополнением к NTFS 5.0 и позволяющая производить шифрование файлов "на лету", т. е. как шифрование, так и дешифровка прозрачны для пользователя и для программ. Степень криптостойкости у этого метода на удивление высокая, что обеспечивается применением шифрования с комбинированным несимметричным (открытым) ключом, в который, к тому же, вносятся псевдослучайные изменения. При первой попытке зашифровать некоторый файл пользователю выдается системой сертификат, который содержит всю необходимую информацию по дешифровке и управлению безопасностью. Этот сертификат всегда желательно скопировать на какой-нибудь надежный носитель, поскольку в случае его утраты невозможно будет открыть ни один из зашифрованных файлов (система сообщит вам, что у вас нет прав доступа к нему). Ну и напоследок, хочется заметить, что EFS частично входит в ядро Windows, что позволяет наиболее эффективно обеспечивать сокрытие данных.

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

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

Еще одна очень удобная возможность обеспечить сохранность данных при передаче их по сети - это использование политик безопасности IP. Защита данных в этом случае также обеспечивается применением алгоритмов шифрования и сертифицирования (Diffie-Hellman, HMAC, DES-CBC), причем они "прозрачны" как для клиентских программ, так и для пользователей. Предполагается, что путь следования данных с одного компьютера на другой неизвестен и, возможно, небезопасен.

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

Процесс загрузки системы.

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

Boot.ini
Bootsect.dos (необходим только при использовании мультизагрузки)
NTLDR
Ntdetect.com
Ntbootdd.sys (необходим только для загрузки с SCSI-винчестера)
Ntoskrnl.exe
Hal.dll
Необходимые драйверы и разделы реестра.

А теперь, зная необходимые для загрузки Windows 2000 файлы, рассмотрим весь процесс загрузки компьютера, который начинается с процедуры начального тестирования оборудования (POST - Power-On Self Test). Код, выполняющий POST, зашит в БИОСе каждого компьютера, и именно ему передается управление при включении питания. Если в процессе тестирования обнаруживаются какие-либо ошибки, то БИОСом генерируются коды ошибок (POST codes), которые отличаются для БИОСа разных производителей. Наверняка сердце почти каждого сборщика компьютеров не единожды замирало от противного писка динамика, выдающего трели из комбинации длинных и коротких гудков - это и есть звуковые коды, которые выдает POST в самых запущенных случаях, когда не может вывести текст на экран монитора. Если же процедура POST завершается успешно, то БИОС передает управление главной загрузочной записи (MBR - Master Boot Record) первичного жесткого диска системы, и можно сказать, этим завершает первую "аппаратную" стадию загрузки компьютера (весь процесс зависит только от аппаратуры компьютера, но не от установленного программного обеспечения). На второй стадии загрузочная запись, оперируя данными о разбиении жесткого диска на логические тома, передает управление исполняемому коду, расположенному в загрузочном секторе. Вот тут-то и начинается самое интересное, так как в случае Windows 2000 этим кодом является NTLDR (boot loader). Из-за сложности всех предварительных операций, когда программа, почти ничего не сделав, кроме как загрузив вторую, передает управление ей, а та, в свою очередь, поступает почти так же, как и первая, программисты-системщики шутливо сравнивают всю эту процедуру с поднимающим себя за собственные шнурки человеком. Первое, что делает загрузчик, это переходит в защищенный режим и производит необходимые для успешного функционирования в этом режиме манипуляции с памятью. Кроме функций, позволяющих работать с памятью, NTLDR имеет также несколько модулей, позволяющих работать с некоторыми другими базовыми ресурсами системы, в первую очередь с файловой системой. Все другие действия выполняются с помощью вызова прерываний БИОСа. После первичной инициализации загрузчик предоставляет пользователю возможность выбрать операционную систему, которая будет загружена, из списка систем, установленных на компьютере (то есть, NTLDR выводит на экран надпись OS Loader V5.0 и приглашение выбрать операционную систему; это сообщение выводится только в том случае, если в файле boot.ini зарегистрировано более одной ОС), после чего, если выбрана Windows 2000, начинает загрузку файлов ОС.

Перечень установленных операционок находится в файле boot.ini, который располагается в корневом каталоге системного раздела. Многие думают, что единственное, чего можно достичь путем прямого редактирования boot.ini, - это создание системы с несколькими установленными версиями Windows 2000, однако это не совсем так. Во-первых, диапазон возможных ОС для альтернативной загрузки достаточно широк - это и все Win9x, MS-DOS, OS/2, и даже UNIX. Ну а во-вторых, изменение параметров загрузки самой Windows 2000 позволяет существенно влиять на ее работу и бывает очень по-лезным при отладке. Параметры, указываемые в boot.ini, носят необязательный характер, однако с их помощью можно выбирать версии ядра и HAL, изменять некоторые параметры многопроцессорных систем, режим видеоадаптера, ограничивать объем используемой системой памяти, влиять на работу мыши и многое другое. Знать принципы работы с boot.ini полезно еще и потому, что очень часто при изменении конфигурации системы (удаление или установка логических дисков или физических носителей) или при неудачном редактировании самого файла, загрузчик оказывается не в состоянии найти путь к загрузочному разделу Windows. При этом появляется сообщение типа "NTLDR is missing или Couldn't find NTLDR", а пользователь начинает в ужасе рвать волосы на голове - не самая приятная ситуация, знаете ли. В таких случаях иногда помогает немного храбрости и возможность вручную отредактировать файл и исправить ошибку; будьте внимательны, для описания пути (в не SCSI-системах) используется следующий формат:

multi(0)disk(0)rdisk(0)partition(3)\ WINNT, где:
multi() - номер адаптера IDE, с которого осуществляется загрузка,
disk() - параметр, аргумент которого равен нулю,
rdisk() - порядковый номер диска, нумерация ведется начиная с нуля,
partition() - порядковый номер логического диска, на котором непосредственно находятся файлы операционной системы. Нумерация начинается с единицы, а не с нуля!
Вообще, с этим параметром обычно возникает много проблем.
\ path - каталог, в котором находятся файлы ОС.

К сожалению, в рамках статьи невозможно подробно описать все особенности использования boot.ini, поэтому наиболее любопытным читателям мы можем порекомендовать сайт http://support.microsoft.com/default, где содержится огромное количество информации, так сказать, "из первых рук".

После выбора операционной системы загрузчик запускает Ntdetect.com. Этот компонент считывает из CMOS-памяти системную дату и время, после чего производит поиск и распознавание аппаратных средств, подключенных в данный момент к компьютеру. Завершив работу, Ntdetect возвращает управление и аккуратно собранную им информацию обратно в NTLDR.

Попутно заметим, что иногда бывает удобно создать несколько профилей оборудования, каждый из которых содержит отличный от других набор устройств (создание и управление профилями осуществляется при помощи диалогового окна Hardware Profiles с вкладки Hardware раздела System панели управления). Если такие профили существуют, загрузчик предложит выбрать один из них, после чего приступит к загрузке ядра Ntoskrnl.exe. Хочется подчеркнуть, что на этой стадии ядро только загружается в память, но ему не передается управление (то есть еще не инициализируется и не начинает исполняться системный код ядра).

В первую очередь в память загружается само ядро и уровень аппаратных абстракций. В этот момент на экране появляется подающая большие надежды надпись Starting Windows и индикатор завершенности процесса. Затем сканируется реестр (ищется куст, находящийся в \ Winnt\ System32\ Config\ System) и составляется список драйверов устройств, необходимых для запуска. Из реестра извлекаются настройки, касающиеся организации памяти, которые могут задаваться как самим пользователем, так и специальными утилитами. Здесь же создается набор управляющих параметров (Control Set), который в дальнейшем играет очень важную роль в работе системы.

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

Определившись с используемым набором, загрузчик делает его активным, присваивая разделу HKEY_LOCAL_MACHINE\ SYSTEM\ Select значение Current, и переходит к разделу HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentCont-rolSet\ Services, где ищет драйверы устройств, у которых переменная Start имеет значение 0х0, что означает, что они должны загружаться без инициализации. В свою очередь, параметр Group определяет, какие устройства в каком порядке будут загружаться. Здесь стоит отметить, что наличие "лишних" устройств (дублирующих друг друга, а иногда и вообще не установленных) в системе сильно замедляет ее работу, ведь им требуются дополнительные ресурсы. Как вы уже, наверное, неоднократно замечали, загрузка ядра состоит из двух фаз: начальной, проходящей в текстовом режиме на печально черном фоне, и графической (видны радостные эмблемки "Майкрософта"), когда происходит непосредственно инициализация. В течение всего времени выполнения каждой фазы отображается текущее состояние процесса (индикаторная полоска, заполняющаяся прямоугольниками). В самом начале текстовой фазы загрузки ядра в нижней части экрана появляется надпись, в которой сообщается, что если вы успеете нажать F8, то будут доступны дополнительные варианты загрузки, используемые обычно при отладке или неполадках в работе системы. Никогда не пренебрегайте ими, ведь они могут очень здорово выручить вас в критической ситуации. После окончания загрузки ядра операционная система практически готова к работе, осталось только проинициализировать драйверы и подготовить службы - индикатор полностью заполняется, и происходит переключение из текстового режима в графический. На этом шаге управление передается ядру Ntoskrnl, которое получает ссылки на объекты, созданные при помощи NTLDR, таким образом, ядру передается вся информация, собранная другими модулями, а в конце передается и управление. При своей инициализации ядро производит ряд действий в следующей последовательности:

окончательная подготовка к работе памяти и менеджера памяти;
инициализация диспетчера объектов;
установка системы безопасности;
инициализация менеджера Plug and Play;
установка базовых объектов и сервисов системы;
настройка драйвера файловой системы и сохранение начальных параметров в реестре (создается копия набора управляющих параметров Clone, в которой содержатся данные, идентичные Current ControlSet, инициализируются устройства согласно порядку инициализации, затем создается ключ HKEY_LOCAL_MACHINE\ HARDWARE);
загрузка и инициализация диспетчера ввода-вывода (обычно - самая длительная фаза); ядро "убирает за собой мусор", который остался после загрузки;
последняя стадия - загрузка системных сервисов, которые, собственно, и реализуют взаимодействие с пользователем.
Список основных системных сервисов приведен ниже.

Smss.exe - диспетчер сеансов. Он управляет другими сервисами и службами Windows, в том числе запускает Win32 (Csrss) и некоторые системные утилиты, выполняемые на этапе загрузки (указываются в разделе реестра HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Control\ Session Manager\ BootExecute). Еще две важные функции - реализация графического пользовательского интерфейса и запуск процессов csrss.exe и WinLogon.exe. Этот диспетчер запускается, тем не менее, в самом конце загрузки. Csrss.exe - данный модуль предназначен, главным образом, для организации взаимодействия между компьютером и пользователем.

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

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

Процесс WinLogon отображает на экране фон рабочего стола (к этому моменту объект рабочего стола уже создан, но еще не отображается), а также приглашение к вводу пользователем логина и пароля. Введенные данные передаются подсистеме безопасности. Подсистема безопасности обращается к базе данных SAM (Security Accounts Manager, подробнее про SAM смотри в части статьи, посвященной организации безопасности в Windows 2000) и проверяет, обладает ли пользователь полномочиями работы с системой.

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

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

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

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

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

Стадия завершения работы начинается с того, что процесс csrss получает соответствующее сообщение, передаваемое Win32 функцией ExitWindowEx, которое сигнализирует о том, что некоторая программа желает завершить работу системы. После этого csrss посылает всем оконным функциям главных окон процессов, запущенных в данный момент в системе, сообщение WM_QUERYENDSESSION, которое, по сути, оповещает программы о скором завершении работы, а затем проверяются ответы каждой программы. Программа может быть "согласна" и "не согласна" с предложением Windows. Если она не согласна, csrss предоставляет ей возможность завершиться в течение некоторого небольшого времени, после чего, в зависимости от настроек системы, выводит (или не выводит) окно, в котором сообщается имя мятежной программы, не желающей завершать свою работу, и предлагается ее закрыть принудительно. Так или иначе, но через некоторое время после начала стадии выключения, операционной системой прерывается работа всех пользовательских приложений, и плавно начинают завершаться системные потоки. В первую очередь, это потоки, реализующие графический режим, а затем и все остальные. В отличие от пользовательских процессов, системные не прерываются принудительно, поэтому если один из них чем-то занят, завершение работы может быть отложено на неопределенное время. В это время сохраняются настройки системы в реестре, и из системного кэша измененные данные файлов записываются на жесткий диск. Непосредственно перед выключением ряду устройств передается предупреждение об этом, после чего в свою работу включается драйвер электропитания. Проходит еще пара секунд, и ваш монитор, подмаргивая огоньком светодиода, тихо, словно выдохнув, щелкает, и экран приобретает темный цвет.

Инсталляция

Итак, предположим, вы решили установить новую ОС на свой компьютер. Первое, в чем нужно убедиться, - что его аппаратных ресурсов хватит для ее функционирования, и в том, что у вас не возникнет проблем несовместимости операционной системы с некоторым (обычно устаревшим) оборудованием. В случае с Windows 2000 Professional минимальной конфигурацией является Intel-совместимый процессор не хуже, чем Pentium 133, VGA-монитор, 650 Mb свободного пространства на жестком диске и 32 Mb оперативки (хотя для приемлемой скорости работы желательно иметь не меньше 64 Mb). Требования не самые скромные, но большинство современных компьютеров им полностью удовлетворяет. Список совместимого с Windows 2000 оборудования (Hardware Compatibility List, HCL) вы найдете на компакт-диске Windows 2000 Professional в папке \support или же можете получить свежую копию по адресу ftp://ftp.microsoft.com/services/whql/win2000hcl.txt. Если вашего оборудования нет в списке, не отчаивайтесь, это еще не значит, что оно не будет работать под управлением этой ОС, просто оно не протестировано компанией Microsoft.

Окончательный номер сборки ядра (Final Edition) - 2195 (то есть 5.0.2195.2951), его можно посмотреть на вкладке "Свойства" файла ядра ntoskrnl.exe. Кроме того, информация о версии ядра регистрируется в журнале системы, каждый раз при загрузке Windows 2000. Чтобы просмотреть эту запись запустите Event Viewer (просмотр событий) из папки Administrative Tools, далее выберите System Log (журнал системы) и дважды щелкните мышкой на запись с кодом события 6009, теперь вы можете узнать, много-процессорная или однопроцессорная, а также отладочная или конечная версия ядра запущена системой. Соответственно, версии более ранние, чем 2195, могут работать не совсем так, как хотелось бы. Поскольку в нашей стране большая часть софта, к сожалению или счастью, является украденной пиратской версией, то может оказаться, что вы купили какую-нибудь бета-версию (номер сборки ядра у нее будет меньше) - это следует учесть при установке. Также следует обратить внимание на наличие так называемых сервис-паков, то есть официальных исправлений и дополнений от "Майкрософт". На сегодняшний день последним является третий сервис пак, который помимо устранения некоторых многочисленных ошибок позволит вам более полно настраивать процесс установки отдельных компонентов Windows (суд относительно монопольного по-ложения Microsoft все-таки дает какие-то результаты).

Вообще, процесс установки представляет большой интерес. Для пользователя он максимально упрощен и оптимизирован (сам процесс не намного сложнее, чем процесс установки Windows 98 или 95), но все же неплохо представлять, как он протекает. На первом этапе программа установки копирует часть дистрибутива, необходимую для запуска ядра Win2000, на жесткий диск, все операции выполняются в текстовом режиме MS-DOS. Этот этап необходим, потому что при загрузке новой системы возможно изменение буквенных обозначений дисков, вследствие чего путь к системной папке может быть утерян. По завершении происходит перезагрузка компьютера, и система загружается уже под управлением ядра Win2000, хотя и, опять-таки, в текстовом режиме. Вам будет предложено выбрать основные параметры установки, и будет проведен предварительный анализ конфигурации оборудования (в автоматическом режиме). По желанию можно произвести необходимые операции с дисками (форматирование, преобразование файловой системы и так далее), а также установить новую копию системы или попытаться восстановить уже имеющуюся. Здесь стоит обратить внимание на тот факт, что Windows 2000 предоставляет возможность создания систем с двойной загрузкой. Вы можете установить несколько копий Win2000 или на выбор сочетания Win2000 - MS-DOS, Win2000 - Win95 или Win98 и различные версии NT. Если выбрана установка новой системы, то копируются оставшиеся файлы дистрибутива (по выбору в соответствии с параметрами установки) и происходит очередная перезагрузка, после которой компьютер грузится уже в графическом режиме (GUI). Эта фаза завершает процесс установки и длится довольно долго. Система производит попытку распознать все без исключения установленные устройства и установить для них драйверы. Если во время работы происходит сбой или зависание с выдачей сообщения BSOD (Blue Screen Of Death, голубой экран смерти - страшный сон любого Windows администратора) - типа Hardware malfunction Call your hardware vendor for support то это говорит о серьезном нарушении работы аппаратных компонентов. Можно попытаться справиться с возникшей ошибкой самостоятельно, например, иногда помогает отключение некоторых устройств, наличие которых в системе не критично. Что удивительно, включение этих же устройств уже после установки ОС иногда позволяет Windows безошибочно их обнаружить и в дальнейшем с ними работать без каких-либо проблем. Часто виновницей таких конфликтов выступает встроенная звуковая карта или другие мультимедиа-устройства.

Если инсталляция завершилась успешно, наступает этап настройки. Он проходит по-разному для разных типов Windows 2000. Если у вас версия Windows 2000 Server или более мощная, настройка потребует больше времени, так как необходимо будет настроить режим лицензирования, указать имя компьютера и выбрать необходимые компоненты, устанавливаемые на сервер.

По сравнению с более ранними системами от "Майкрософт", процесс установки длится довольно долго, но большинство процедур автоматизировано до предела. Кроме того, предусмотрена интересная возможность - так называемый файл ответов, который позволяет производить установку полностью в автоматическом режиме. Автоматизация установки Windows 2000 помимо сбережения времени администратора, необходимого для ее установки, предоставляет и некоторые другие преимущества, особенно заметные при формировании корпоративной рабочей среды. Так, например, при автоматизированной установке вы можете быть уверенными в том, что все клиентские компьютеры настроены одинаковым образом, при этом структура рабочей среды упрощается, что делает удобным ее управление. Напротив, если вы устанавливаете Windows на нескольких компьютерах вручную, не существует никаких гарантий того, что в результате их конфигурация будет полностью совпадать. Другое немаловажное свойство автоматизированной установки позволит вам быстро восстановить работоспособность по тем или иным причинам вышедшей из строя пользовательской рабочей станции. Конечно же, эффективность автоматической установки становится наиболее очевидной в случае, если речь идет о крупной сети, в которую входит множество компьютеров. Однако не стоит полностью исключать возможность использования автоматизированной установки в условиях малого офиса или домашней сети, тем более что Windows предоставляет сразу несколько различных вариантов автоматизированной установки, и вы можете выбрать тот, который наиболее соответствует вашим требованиям. Среди предложенных вариантов (установка при помощи сценариев, отображение дисков или так называемое клонирование, установка через сеть, а также электронное распространение прикладных программ) клонирование нам кажется наиболее удобным для применения в небольших компаниях как в случае первичной установки ОС, так и в случае каких-либо сбоев в работе системы. При этом данный метод является, на наш взгляд, наименее требовательным к знаниям и умениям администратора, а также к времени, необходимому на восстановление ОС. Программный продукт, который поможет вам осуществить клонирование, называется System Preparation Tool (программа подготовки системы). Основным преимуществом метода автоматической установки мы считаем возможность копирования не только операционной системы, но и всех установленных на компьютере прикладных программ, а также любых дополнительных программных компонентов. Согласитесь, достаточно удобно, вместо того чтобы часами искать и исправлять возникшие почему-то в системе ошибки, просто подключить винчестер и двумя щелчками мышкой вернуть все в исходное состояние. Неспортивно, конечно, но для начинающих администраторов эта возможность Windows на первых порах может оказаться настоящей палочкой-выручалочкой, до тех пор, пока они не научатся "правильным" политикам безопасности.

Процесс клонирования можно разбить на три этапа:

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

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

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

Следует только учитывать, что System Preparation Tool позволяет лишь подготовить образ диска к клонированию (то есть выполнить этапы 1 и 3). Эта утилита не может использоваться для переноса образа на жест-кие диски клиентских машин (этап 2). Для выполнения самой процедуры клонирования следует использовать стандартные утилиты клонирования, такие как Symantec Ghost или DriveImage, от такой популярной в нашей стране софтверной компании PowerQuest.

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

Администрирование пользователей и групп

Основная задача администратора - управлять компьютером или сетью таким образом, чтобы обеспечить его наиболее эффективную бесперебойную работу. Компьютерная техника крайне сложна - так называемое "железо" состоит из миллионов элементов, один из которых когда-нибудь обязательно сломается, причем произойдет это, скорее всего, в самый неподходящий момент. Программное обеспечение последние годы также не радует простотой и прозрачностью использования, поэтому жизнь рядового администратора безоблачной никак не назовешь. Но и это не все! Зачастую бедному сисадмину, замученному техникой и криво написанными программами, приходится отражать атаки еще и Homo Sapiens, которые в некоторых случаях могут носить характер стихийного бедствия.

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

Итак, когда же начинается сам процесс администрирования компьютера? А начинается он уже во время инсталляции ОС (точнее, еще раньше, когда вы продумываете политику безопасности, оцениваете, на какие группы разбить пользователей, какие права и привилегии каждой из них выделить, и так далее, но технически настройка всех параметров ОС начинается именно в момент инсталляции). Начнем с самого начала. После успешной установки операционной системы человеку, ее проводящему, предлагается ввести имя компьютера, а также утвердить пароль администратора. Это, пожалуй, самая важная часть всего процесса установки, поэтому отнестись к ней нужно серьезно, ибо администратор - это почти "бог". И если, в случае чего, у вас еще будет возможность изменить имя компьютера путем прямого редактирования реестра, то вот забыть пароль администратора - непростительная оплошность. А главное - еще и трудно исправимая, поэтому, если вы действительно умудрились забыть пароль, то мне вас искренне жаль. В то же время, мы крайне не рекомендуем записывать пароль где попало или брать в качестве него имя любимой жены, благо его-то уж знают все ваши сотрудники и при необходимости могут без труда подобрать. Лучше всего взять какое-нибудь длинное и хорошо запоминающееся слово (например, широко разрекламированный товар или марку), скажем panasonic, и заменить часть букв на схожие по написанию цифры (i или l на единицу, о на ноль) или некоторые буквы заменить на заглавные, в нашем примере получится pAnAs0nIc - сомнительно, что кто-то быстро подберет такой пароль, и в то же время он будет достаточно запоминающимся. Вспомните, какой был пароль у Фокса Малдера - легендарного агента ФБР из сериала "Секретные материалы" - Trustno1. Его не смогли адекватно перевести даже профессиональные переводчики ОРТ (закодированную фразу "не доверяй никому" они озвучили как "верю не верю один").

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

Естественно, что постоянное отключение от системы и подключение к системе с использованием различных учетных записей, меняющихся в зависимости от выполняемых задач, - весьма утомительное и нудное занятие. Но в Windows 2000 этого и не требуется делать, ведь она теперь поддерживает новый механизм, который позволяет запускать приложения в другом контексте безопасности, не отключаясь при этом от системы. Эта возможность обеспечивается благодаря автоматически запускающейся в начале работы системы службе Secondary Logon Service (запуск от имени). Чтобы воспользоваться этим механизмом, нужно просто щелкнуть на исполняемом файле правой кнопкой мыши, при этом удерживая нажатой клавишу Shift. В результате в выпадающем меню появится пункт Run As (Запуск от имени), и вы сможете запустить интересующее вас приложение от имени другого пользователя.

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

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

Итак, можете включать компьютер и начинать настраивать ОС. Поскольку мы только что установили систему, на компьютере у нас имеется всего две учетных записи: Администратор и Гость. Учетная запись Администратор позволяет полностью управлять компьютером, поскольку входит в группу Администраторы и, таким образом, обладает полным контролем над всей работой системы и ее безопасностью. К слову, учетная группа Администраторы - единственная, которая не может быть удалена или заблокирована ни при каких обстоятельствах, в эту группу обязательно должна входить хотя бы одна учетная запись. Гость - это учетная запись для тех пользователей, которые не зарегистрированы в системе. Для входа в систему в качестве гостя необязательно вводить пароль и предварительно регистрироваться. Таким образом, будьте особенно осторожны, при определении прав и привилегий учетной группы Гости. А лучше вообще отключите ее использование.

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

Как известно, в Windows 2000 реализован многопользовательский интерфейс, который предоставляет возможность работать на одном компьютере нескольким людям. Для их учета и идентификации используются учетные записи, поэтому каждый, кто регулярно работает на локальном компьютере, должен иметь учетную запись пользователя, которая содержит информацию о пользователе, включая имя пользователя, его пароль и различные необязательные пункты, определяющие, помимо прочего, когда и каким образом пользователю разрешено входить в систему (с локального компьютера или, скажем, используя telnet). Из этого следует, что одна из ключевых задач администрирования состоит в создании учетных записей для отдельных пользователей и их групп. Отдельная учетная запись предоставляет индивидуальные настройки рабочей среды, в которые входят настройки рабочего стола и интерфейса пользователя, а также индивидуальные настройки отдельных приложений, которые использует данный пользователь (например, настройки почтовой программы будут различны для различных использующих ее людей), настройки печати, набор разрешенных для выполнения программ и так далее. При этом предполагается, что часть индивидуальных настроек пользователи устанавливают сами в соответствии со своими вкусами и потребностями, а часть устанавливает администратор, и эти настройки кроме него не имеет права менять никто. Управление учетными записями осуществляется с помощью оснастки "Локальные пользователи и группы", а также при помощи пункта панели управления - "Пользователи и пароли" (Users and Passwords). Сразу следует оговориться, что вариант использования "Пользователи и пароли" предоставляет значительно меньше возможностей, чем первый, и служит скорее для упрощения администрирования. Однако, с другой стороны, он предоставляет два уникальных параметра: автоматический вход в систему при загрузке с использованием особой учетной записи; определение необходимости нажатия комбинации клавиш Crt-Alt-Del для доступа к диалоговому окну Вход в систему.

Каждая учетная запись может иметь членство в одной или нескольких группах. При установке системы автоматически создаются шесть встроенных групп: Администраторы, Операторы архива, Гости, Опытные пользователи, Репликаторы и Пользователи. Попробуем пояснить, зачем же нужны эти группы. Права доступа в системе можно назначать вручную для каждой учетной записи, так чаще всего и поступают, если пользователей немного. Но что делать, если их, например, больше 100? Администратору предстоит бессонная ночь, если он попытается назначать права доступа всем им прямым присвоением. Ну а если пользователи все время приходят и уходят, администратор, как Жучка, будет этим заниматься практически постоянно, а это рано или поздно приведет к анархии в администрировании, так как никто не будет иметь представления о том, каким пользователям предоставлены разрешения и какие именно. Гораздо предпочтительнее хорошо разработать несколько групп и включать туда при необходимости те или иные учетные записи. Но не стоит думать, что использование групп служит только для облегчения работы администратора, вовсе нет, преимущества их использования должны быть очевидны и руководителям, и топ-менеджерам. Предположим, вы директор крупного предприятия. Вы работаете с самыми разными документами: финансовыми договорами, производственными бумагами, договорами о поставках и так далее, все они хранятся на сервере вашего предприятия, поскольку с ними работают и другие сотрудники. Вам, вполне естественно, хотелось бы ограничить доступ бухгалтеров к производственным документам, а инженеров - к финансовым. С этой целью можно создать две группы: "Финансисты" и "Техники", каждой из которых назначить доступ к нужным файлам. Затем учетная запись директора включается в каждую из этих групп, и вы получите доступ ко всем документам сразу. Назначая права доступа не отдельным пользователям и их учетным записям, а целым группам, администратор может сильно повысить эффективность своей работы, особенно если в сети работает много пользователей с разными правами доступа.

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

Но права и разрешение на использование тех или иных ресурсов - это не единственное, что отличает различных пользователей одной сети или даже одного компьютера. Все мы люди, а значит, личности, то есть индивидуальности, поэтому у каждого из нас есть свои предпочтения и вкусы. Как писал классик: кто-то любит арбуз, а кто и свиной хрящик. При этом каждый обычно пытается эту свою индивидуальность выразить, поэтому поверхность десктопа очень быстро, словно скатертью, накрывается различными обоями и всевозможными иконками. Понятно, что люди, занимающиеся разной работой, обычно используют разные приложения, если десктоп у всех будет один и тот же - то он очень скоро превратится в "жуткое нечто", наполненное кучей ярлыков и ссылок. Работать эффективно будет почти невозможно. Поэтому все настройки рабочей среды, сделанные самим пользователем и называемые профи-лем пользователя, хранятся отдельно для каждого, кто пользуется компьютером. Локальный профиль пользователя хранится в папке Documents and Settings, перемещаемый профиль находится в специальной папке на выбранном для этого сервере, пути к которой прописаны для каждой учетной записи, использующей этот профиль. Однажды создав профиль пользователя, не хочется делать это заново в случае переустановки системы или изменения места работы пользователя. На этот случай предусмотрена очень приятная возможность: создание перемещаемого профиля, который хранится на сервере и может быть доступен на любом рядовом ее члене. Один из способов создания перемещаемого профиля - скопировать нужный про-филь в специальную папку на сервере, а затем переименовать файл настроек пользователя Ntuser.dat в Ntuser.man. После этого можно прописывать пути к этому профилю для нужных вам учетных записей, это делается либо с помощью оснастки Локальные пользователи и группы, либо - Active Directory - пользователи и компьютеры.

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

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

Ранее мы более или менее разобрались с тем, как работает дисковая подсистема у Win 2000. Теперь обратимся к тому, как же нам использовать наши знания на практике. Для работы с дисками и файловыми системами существует множество утилит и специальных программ, наверное, наиболее известная из них - Partition Magic, которая позволяет творить просто чудеса с дисками и разделами. Существуют и другие, более специфичные - типа Win Ghost, утилиты из набора Norton Utilities или Fix-it Utilities, но мы не будем их описывать - во-первых, это выходит за рамки обзорной статьи, а во-вторых, научиться работать с ними достаточно просто. В Windows 2000 есть свои, встроенные, довольно неплохие средства решения большинства задач, возникающих в связи с управлением дисками и файловой подсистемой.

Администрирование файловых ресурсов

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

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

Так, разрешением на доступ к папкам можно управлять, используя "Общий доступ" (в окне "Свойства" выбрать вкладку "Доступ", а потом в появившемся окне нажать кнопку "Разрешение"), а можно и используя возможности файловой системы NTFS. Каждый из методов имеет свои преимущества и недостатки. Первый вариант удобен тем, что, используя его, можно ограничить доступ к папкам на разделах, отформатированных под файловую систему FAT16 и FAT32. Но, в общем-то, на этом его достоинства и заканчиваются, дальше следует недостатки: разрешения на доступ проверяются только для сетевых пользователей (иначе говоря, локальные пользователи могут делать с вашей папкой все, что их душе заблагорассудится); все разрешения задаются только для папки целиком, а не для отдельных файлов; предоставляется достаточно скудный набор параметров для конфигурирования (вам позволят разрешить или запретить только следующую функциональность: полный доступ, изменение, чтение). Поэтому мы не видим особых причин использовать "общие сетевые папки" на дисках, отформатированных под систему NTFS. А так как NTFS - это родная для Windows 2000 файловая система, мы рекомендуем вам использовать ее, и никакую другую.

Для изменения разрешений и запретов на доступ и проведение определенных операций с файлами и папками, расположенными на NTFS-дисках, нужно открыть у соответствующего объекта окно свойств и выбрать вкладку "Безопасность" (Security), на которой установить флажки для нужных параметров доступа. С помощью этих флажков можно регулировать доступ для отдельных пользователей и групп, запретить и разрешить можно следующую функциональность: смена владельца, смена и чтение разрешений, удаление, чтение и изменение атрибутов, запись и дозапись данных, чтение данных, обзор папок и выполнение файлов. Для папок также можно дополнительно указывать, как применяются настройки: только внутри этой папки, для дочерних папок, для файлов и так далее. Если пользователь является владельцем файла, он может распоряжаться им по своему усмотрению, предоставляя права доступа другим пользователям. Администратор, при желании, может стать владельцем любого файла или папки, таким образом, для того чтобы получить полный доступ к файлу, достаточно лишь стать его владельцем. Все разрешения носят аддитивный характер, то есть, права складываются из прав группы, в которую входит пользователь, и прав, которыми наделен лично он. При этом нужно помнить, что запрещающие директивы всегда имеют больший приоритет, чем разрешающие, и использовать их надо с осторожностью. Так, если у пользователя есть, например, право на чтение некоторого файла, но он входит в группу, которой это делать запрещено, то он не сможет читать файл.

Другое полезное нововведение, которое позволяет вам использовать NTFS, и которое недоступно на FAT-дисках, - это дисковые квоты.

Представьте себе ситуацию: веселый и нерадивый сотрудник вашей фирмы впервые приходит на свое рабочее место, и когда ему говорят, сколько ему можно использовать места на сервере, он отвечает: "Ух ты, как здорово! Это много, мне хватит!". Однако через некоторое время (обычно - очень непродолжительное) оказывается, что ему этого места не хватает, ведь, как известно, слишком больших винчестеров не бывает, на них всегда можно что-нибудь залить (фильмы, музыка в формате MP3, гламурные картинки, игры, да мало ли какого мусора можно найти в Интернете). Контролировать, кто и сколько занимает места на диске, - занятие довольно скучное и вряд ли кого-нибудь увлечет, кроме патологического маньяка-вуайериста. Хорошо, когда ситуация выглядит именно так, как мы описали, - с сотрудниками всегда можно договориться, а, скажем, на вашем сервере, расположенном в сети, действует вирус или червь, который постоянно записывает данные на винчестер - в какой-то момент это может привести к переполнению диска и отказу служб - пока вы найдете ошибку и "почистите" винчестер, пройдет время, в течение которого ваш информационный ресурс не будет работать. Но, на счастье, существует такая служба, как выделение дисковых квот пользователям. Это нововведение, и до Windows 2000 "Майкрософт" не предоставляла такой возможности. Объем файлов, принадлежащих пользователю, устанавливается путем суммирования размеров всех файлов, принадлежащих пользователю на данном логическом диске. Так как при создании нового файла его владельцем автоматически становится активный пользователь, инициирующий эту операцию, несложно проследить в самом начале, может ли он создать файл, или его лимит уже достигнут. Управление квотами включается на вкладке "Свойства" того тома, который требуется настроить. На этой вкладке можно установить поведение системы при превышении квот пользователями - записать в журнал аудита, или предупредить пользователя, или вообще запретить ему запись на диск, а также позволительно использовать любую комбинацию из этих опций. Кроме того, система позволяет установить две границы и настроить действие, выполняемое при превышении каждой из них (например, при превышении порога в 500 Мб предупредить об этом пользователя и записать в журнал аудита, а при превышении 580 Мб запретить запись на диск).

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

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

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

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

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

установка активного раздела;
форматирование дисков;
создание динамических томов;
работа с чередующимися, зеркальными, составными и RAID-5 томами;
"горячее" подключение дисков

Возможно, вы уже знакомы с этой терминологией, но для тех, кто впервые сталкивается со всякого рода "RAID-массивами", сделаем некоторые пояснения. Том - это довольно общее понятие для обозначения большого пространства, используемого для хранения информации. Том может располагаться на одном логическом диске - тогда он называется простым; или нескольких - тогда это составной, чередующийся, зеркальный том или том RAID-5. Если том располагается на нескольких логических дисках, он должен быть динамическим. Динамический том во многом более удобен, чем простой, единственный его серьезный недостаток - с динамического тома нельзя грузиться, исключение составляют зеркальные динамические тома, о которых мы поговорим чуть позже. Для чего это все делается? Составные тома могут быть очень большими, поэтому на них удобно хранить большие структурированные объемы данных. Если данные представляют большую ценность, для их хранения подходят зеркальные тома (RAID-1), поскольку они подразумевают дублирование информации, и если один из физических дисков выходит из строя, ее можно восстановить. Чередующиеся тома (RAID-0) не предоставляют возможности восстановления, зато они существенно ускоряют работу с дисками, то есть считывание и запись информации, это происходит за счет того, что все данные разбиваются на короткие блоки, часть из которых записывается на один диск, а часть - на другой, таким образом организуется два потока обмена информацией.

Всем этим управляют два драйвера, осуществляющие управление томами и дисками - это FtDisk и DMIO. Самые простые в реализации - составные тома и чередующиеся тома. Составной том - это всего-навсего несколько разделов на физических дисках, объединенных некоторым образом и представленных в виде одной логической единицы. Размер составного тома может быть динамически увеличен или уменьшен прямо в оснастке управления дисками. Чередующиеся тома очень похожи по реализации - несколько дисков точно так же объединяются в один логический, но при этом должно быть выполнено важное условие - диски должны быть одинакового объема. Система воспринимает такой том, как том, объем которого равен сумме объемов всех дисков. Зеркальные тома также устроены довольно тривиально - данные, записываемые на один диск, автоматически дублируются на другом, при этом, если они будут повреждены на одном из дисков, система считает их с другого, происходит это все прозрачно для пользователя. На зеркальные тома может быть установлена любая файловая система из числа поддерживаемых Win2000, кроме того, они, как уже упоминалось, могут быть загрузочными, поскольку загрузчик и другие модули операционной системы, исполняемые в начале, работают с данными, относящимися к одному из дисков, при этом им совершенно не нужен другой. Использование зеркальных томов дает не очень большое преимущество по скорости при работе с файлами, однако оно имеется, поскольку менеджер дисков балансирует нагрузку между несколькими дисками. Самый совершенный и эффективный из представленных вариант динамических томов - RAID-5, или чередующийся том с записью четности. Как явствует из названия, механизм поддержки таких томов сочетает в себе преимущества чередующихся томов и зеркальных томов. Для создания RAID-5 массива необходимо иметь хотя бы 3 одинаковых по объему логических диска. В начале каждый из участвующих дисков разбивается на одинаковые участки, в которые затем записываются данные, причем на два диска записывается непосредственно информация, разделенная таким образом, чтобы обеспечить максимальную скорость операций, а на третий диск записывается контрольная сумма соответствующих разделов на первых двух дисках, полученная в результате исключающей конъюнкции, которая позволяет при повреждении одного из первых дисков восстановить данные на втором. Не стоит думать, что один из дисков хранит только контрольные суммы - это не так, поскольку при записи на следующий участок дисков контрольная сумма будет записываться уже на другой диск, а данные - на тот, где уже имеются данные, и тот, где хранится контрольная сумма первого участка, и т. д. Все это кажется несколько запутанным и надуманным, но реально обеспечивает высокую скорость, повышенную защищенность и некоторую экономию места по сравнению с томами типа зеркальных.

КомпьютерМастер computermaster.ru



[Услуги] [Цены] [Гарантии] [Вызов мастера] [Всё о компьютерах] [Полезные ссылки]

© КомпьютерМастер, 2004.
Rambler's Top100 Rambler's Top100