Дескриптор защиты в windows 2000 содержит список
Часть 3. Модель безопасности в Win NT/2000
Если у вас есть компьютер, наверняка на нем хранится что-нибудь ценное с вашей точки зрения. Необязательно это должна быть секретная информация госу-дарственной важности. Как правило, это какие-то наработки, полученные с приме-нением тех или иных программ, любимые картинки или, на худой конец, пароли к Интернету. Насколько хорошо защищены эти данные? На этот вопрос мы и поста-раемся ответить.
Часть третья. Модель безопасности в 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 NT/2000/XP представляют собой отдельную подсистему, которая обеспечивает защиту не только файлов, но и других типов системных объектов. Файлы и каталоги NTFS представляют собой наиболее типичные примеры защищаемых объектов.
Как известно, Windows позволяет использовать различные файловые системы, при этом возможности защиты данных определяются архитектурой конкретной файловой системы. Например, если на дисковом томе используется система FAT (где, как нам известно, никаких средств защиты не предусмотрено), то Windows может разве что ограничить доступ ко всему тому, но не к отдельным файлам и каталогам.
Важным элементом любой системы защиты данных является процедура входа в систему, при которой выполняется аутентификация пользователя. В Windows NT для вызова диалога входа в систему используется известная «комбинация из трех пальцев» – Ctrl+Alt+Del. Как утверждают разработчики, никакая «троянская» программа не может перехватить обработку этой комбинации и использовать ее с целью коллекционирования паролей.
Не хочет ли кто-нибудь попробовать?
Система ищет введенное имя пользователя сначала в списке пользователей данного компьютера, а затем и на других компьютерах текущего домена локальной сети. В случае, если имя найдено и пароль совпал, система получает доступ к учетной записи (account) данного пользователя.
На основании сведений из учетной записи пользователя система формирует структуру данных, которая называется маркером доступа (access token). Маркер содержит идентификатор пользователя (SID, Security IDentifier), идентификаторы всех групп, в которые включен данный пользователь, а также набор привилегий, которыми обладает пользователь.
Привилегиями называются права общего характера, не связанные с конкретными объектами. К числу привилегий, доступных только администратору, относятся, например, права на установку системного времени, на создание новых пользователей, на присвоение чужих файлов. Некоторые скромные привилегии обычно предоставляются всем пользователям (например, такие, как право отлаживать процессы, право получать уведомления об изменениях в файловой системе).
В дальнейшей работе, когда пользователю должен быть предоставлен доступ к каким-либо защищаемым ресурсам, решение о доступе принимается на основании информации из маркера доступа.
Для любого защищаемого объекта Windows (файла, каталога, диска, устройства, семафора, процесса и т.п.) может быть задана специальная структура данных – атрибуты защиты.
Основным содержанием атрибутов защиты является другая структура – дескриптор защиты. Этот дескриптор содержит следующие данные:
· идентификатор защиты (SID) владельца объекта;
· идентификатор защиты первичной группы владельца объекта;
· пользовательский («дискреционный», «разграничительный») список управления доступом (DACL, Discretionary Access Control List);
· системный список управления доступом (SACL, System Access Control List).
Пользовательский список управляет разрешениями и запретами доступа к данному объекту. Изменять этот список может только владелец объекта.
Системный список управляет только аудитом доступа данному объекту, т.е. задает, какие действия пользователей по отношению к данному объекту должны быть запротоколированы в системном журнале. Изменять этот список может только пользователь, имеющий права администратора системы.
В Windows, в отличие от многих других ОС, администратор не всесилен. Он не может запретить или разрешить кому бы то ни было, даже самому себе, доступ к чужому файлу. Другое дело, что администратор имеет право объявить себя владельцем любого файла, но потом он не сможет вернуть файл прежнему хозяину. Подобные ограничения вытекают из понимания, что администратор тоже не всегда ангел и, хотя он должен иметь в системе большие права, его действия следует хоть как-то контролировать.
Оба списка управления доступом имеют одинаковую структуру, их основной частью является массив записей управления доступом (ACE, Access Control Entity).
Рассмотрим структуру записи ACE. Она содержит:
· тип ACE, который может быть одним из следующих: разрешение, запрет, аудит;
· флаги, уточняющие особенности действия данной ACE;
· битовая маска видов доступа, указывающая, какие именно действия следует разрешить, запретить или подвергнуть аудиту;
· идентификатор (SID) пользователя или группы, чьи права определяет данная ACE.
Более интересен пользовательский список. Он может содержать только записи разрешения и запрета. В начале списка всегда идут запрещающие записи, затем разрешающие.
Когда пользователь запрашивает доступ к объекту (т.е., например, программа, запущенная этим пользователем, вызывает функцию открытия файла), происходит проверка прав доступа. Она выполняется на основе сравнения маркера доступа пользователя со списком DACL. Система просматривает по порядку все записи ACE из DACL, для каждой ACE определяет записанный в ней SID и сверяет, не является ли он идентификатором текущего пользователя или одной из групп, куда входит этот пользователь. Если нет, то данная ACE не имеет к нему отношения и не учитывается. Если да, то выполняется сравнение прав, необходимых пользователю для выполнения запрошенной операции с маской видов доступа из ACE. При этом права анализируются весьма детально: например, открытие файла на чтение подразумевает наличие прав на чтение данных, на чтение атрибутов (в том числе владельца и атрибутов защиты), на использование файла как объекта синхронизации (см. п. 4.5.5.2).
Если в запрещающей ACE найдется хотя бы один единичный бит в позиции, соответствующей одному из запрошенных видов доступа, то вся операция, начатая пользователем, считается запрещенной и дальнейшие проверки не производятся.
Если такие биты будут найдены в разрешающей ACE, то проверка следующих ACE выполняется до тех пор, пока не будут разрешены и все остальные запрошенные виды доступа.
Как выдумаете, почему в списке DACL сначала идут запрещающие ACE, а только потом разрешающие?
Таким образом, говоря кратко, пользователь получит доступ к объекту только в том случае, если все запрошенные им виды доступа явным образом разрешены и ни один их них не запрещен.
В годы перестройки много писалось о двух противоположных принципах: «запрещено все, что не разрешено» или «разрешено все, что не запрещено». В Windows все гораздо строже: запрещено все, что запрещено, и все, что не разрешено.
Список DACL со всеми необходимыми разрешениями и запретами может быть установлен программно при создании файла, а впоследствии программно же может быть изменен владельцем. Можно также изменять разрешения в диалоге, воспользовавшись окном свойств файла.
Имеются также два крайних случая. Список DACL может совсем отсутствовать (для этого достаточно, например, при создании файла указать NULL вместо атрибутов защиты), при этом права доступа не проверяются, все действия разрешены всем пользователям. Список DACL может присутствовать, но иметь нулевую длину (нет ни одной ACE). Как следует из общих правил, в этом случае в доступе будет отказано всем, в том числе и хозяину файла.
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет
Реализация защиты в Windows 2000
Защита в автономной системе Windows 2000 реализуется при помощи нескольких компонентов. Регистрацией в системе управляет программа winlogon, а аутентификацией занимаются Isass и msgina.dll. Результатом успешной регистрации в системе является новая оболочка с ассоциированным с ней маркером доступа. Этот процесс использует в реестре ключи SECURITY и SAM. Первый ключ определяет общую политику безопасности, а второй ключ содержит информацию о защите для индивидуальных пользователей.
Как только пользователь регистрируется в системе, выполняется операция защиты при открытии объекта. Для каждого вызова ОрепХХХ требуется имя открываемого объекта и набор прав доступа к нему. Во время обработки процедуры открытия объекта менеджер безопасности проверяет наличие у вызывающего процесса соответствующих прав доступа. Для этого он просматривает все маркеры доступа вызывающего процесса, а также список DACL, ассоциированный с объектом. Он просматривает по очереди элементы списка ACL. Как только он находит запись, соответствующую идентификатору SID вызывающего процесса или одной из его групп, поиск прав доступа считается законченным. Если вызывающий процесс обладает необходимыми правами, объект открывается, в противном случае в открытии объекта отказывается.
Помимо разрешающих записей, списки DACL могут также содержать запрещающие записи. Поскольку менеджер безопасности прекращает поиск, наткнувшись на первую запись с указанным идентификатором, запрещающие записи помещаются в начало списка DACL, чтобы пользователь, которому строго запрещен доступ к какому-либо объекту, не смог получить его как член какой-либо группы, которой этот доступ предоставлен.
После того как объект открыт, дескриптор объекта возвращается вызывающему процессу. При последующих обращениях проверяется, входит ли данная операция в число операций, разрешенных в момент открытия объекта, чтобы, например, не допустить записи в файл, открытый для чтения.
Резюме
Структура операционной системы Windows 2000 включает в себя уровень аппаратных абстракций HAL, ядро, исполняющую систему и тонкий уровень системных служб, перехватывающий входящие системные вызовы. Кроме того, операционная система содержит множество драйверов устройств, включая файловую систему и интерфейс графических устройств GDI. Уровень HAL скрывает от верхних уровней определенные различия в аппаратуре. Ядро пытается скрыть от исполняющей системы остальные различия, чтобы сделать ее почти полностью машинно-независимой.
В основе исполняющей системы лежат объекты памяти. Пользовательские процессы создают их и получают дескрипторы, позволяющие управлять этими объектами. Компоненты исполняющей системы также могут создавать объекты. Менеджер объектов управляет пространством имен, в которое могут добавляться объекты для возможности их поиска по имени.
Операционная система Windows 2000 поддерживает процессы, задания, потоки и волокна. У процессов есть виртуальные адресные пространства, кроме того, процессы являются контейнерами ресурсов. Потоки представляют собой единицы исполнения и планируются операционной системой. Волокна являются упрощенными потоками, планируемыми полностью в пространстве пользователя. Задания представляют собой наборы процессов и используются для выделения квот ресурсов. При планировании используется приоритетный алгоритм, в котором управление получает готовый поток с максимальным приоритетом.
Операционной системой Windows 2000 поддерживается виртуальная память с подкачкой по требованию. Алгоритм подкачки основан на понятии рабочего набора. Система управляет несколькими списками свободных страниц, так что когда происходит страничное прерывание, как правило, у системы уже есть доступная страница. Списки свободных страниц получают страницы, отнимаемые у рабочих наборов при помощи сложных алгоритмов, пытающихся изымать в первую очередь давно не использовавшиеся страницы.
Ввод-вывод осуществляется драйверами устройств, согласующимися с моделью Windows Driver Model. При запуске каждого драйвера инициализируется объект драйвера, содержащий адреса процедур, к которым может обращаться операционная система, чтобы добавить новое устройство или выполнить операцию ввода-вывода. Драйверы могут собираться в стеки или действовать как фильтры.
В основе файловой системы NTFS лежит главная файловая таблица MFT, в которой содержится по одной записи для каждого файла или каталога. У каждого файла есть множество атрибутов, которые могут храниться в записи таблицы MFT или вне таблицы – на диске. Среди прочих возможностей файловая система NTFS поддерживает сжатие и шифрование.
Защита основывается на списках управления доступом ACL. У каждого процесса есть маркер управления доступом, идентифицирующий процесс, а также указывающий, какими особыми привилегиями он обладает. С каждым объектом ассоциирован дескриптор защиты. Дескриптор защиты указывает на список разграничительного управления доступом DACL, содержащий записи списка ACL, разрешающие или запрещающие доступ к этому объекту отдельным пользователям или группам.
Контрольные вопросы и задания
1. Опишите структурное построение ОС Windows 2000.
2. Каковы функции так называемого уровня аппаратных абстракций Windows 2000?
3. Охарактеризуйте ядро ОС Windows 2000.
4. Какие объекты носят наименование управляющих объектов?
5. Перечислите объекты, которые относятся к типу объектов диспетчеризации.
6. Представьте состав исполняющей системы Windows 2000.
7. Какие функции выполняет менеджер объектов?
8. Какова роль менеджера процессов?
9. Для выполнения каких функций применяется интерфейс графических устройств GDI?
10. Опишите реализацию объектов в Windows 2000.
11. Какие компоненты системы Windows 2000 работают в режиме пользователя?
12. Перечислите интерфейсы прикладного программирования API, поддерживаемые Windows 2000.
13. Дайте определения понятиям «задание», «процесс», «поток», «волокно» в Windows 2000.
14. Опишите способы межпроцессного взаимодействия в Windows 2000.
15. Как осуществляется реализация процессов и потоков в Windows 2000?
16. Перечислите этапы загрузки ОС Windows 2000.
17. Что понимается под виртуальной страницей памяти и в каких состояниях она может находиться?
18. Как реализуется управление памятью в ОС Windows 2000?
19. Опишите реализацию ввода-вывода в ОС Windows 2000.
20. Какие режимы поддерживает менеджер энергопотребления?
21. Охарактеризуйте файловые системы типа FAT.
22. Представьте особенности организации файловой системы NTFS и ее достоинства по сравнению с файловыми системами типа FAT.
23. Какова структура главной файловой таблицы MFT в NTFS?
24. Каким образом производится сжатие данных файла в NTFS?
25. Перечислите и охарактеризуйте основные понятия системы безопасности Windows 2000.
26. Опишите особенности реализации защиты в ОС Windows 2000.
Заключение
Основными функциями операционных систем являются функции управления процессами и ресурсами вычислительных машин и систем. Процессы и ресурсы – это ключевые понятия операционных систем. За время своего существования процессы могут неоднократно изменять свое состояние, проходя через стадии создания, готовности, выполнения, ожидания и завершения своей работы. Операционная система организует планирование выполнения процессов, обеспечивает процессы необходимыми системными ресурсами, поддерживает взаимодействие процессов и решает проблемы их синхронизации.
При управлении таким важнейшим ресурсом, как память вычислительной машины, операционная система контролирует наличие свободной и занятой памяти, выделяет память для выполнения процессов и освобождает память после завершении процессов, реализует вытеснение процессов из оперативной памяти на дисковую память и возвращение их обратно в оперативную память, обеспечивает настройку адресов программы на конкретную область физической памяти.
Управляя устройствами ввода-вывода, операционная система передает устройствам соответствующие команды, перехватывает прерывания, обрабатывает ошибки, обеспечивает интерфейс между устройствами ввода-вывода и остальной частью машины. Для освобождения процессора от операций последовательного вывода данных из оперативной памяти или последовательного ввода в нее используется механизм прямого доступа внешних устройств к памяти.
Возможность управления файлами со стороны операционной системы на логическом уровне структур данных и операций обеспечивают различные типы файловых систем. Файловая система представляет собой набор спецификаций и соответствующее им программное обеспечение, которые отвечают за создание, уничтожение, организацию, чтение, запись, модификацию и перемещение файловой информации, а также за управление доступом к файлам и за управление ресурсами, которые используются файлами.
В операционных системах для многопроцессорных вычислительных машин сложность планирования процессов существенно возрастает, так как требуется не только решение вопросов очередности запуска процессов на выполнение, но и выбор центрального процессора, на котором должен быть запущен тот или иной процесс.
В многомашинных вычислительных системах механизмы организации межпроцессной взаимосвязи принципиально отличаются от организации такой взаимосвязи в автономных вычислительных машинах. Базой для взаимодействия процессов в автономных машинах служит общая разделяемая память. Многомашинные вычислительные системы по определению не имеют общей разделяемой памяти, и поэтому основой межпроцессной взаимосвязи в них служит обмен физическими сообщениями посредством коммуникационной среды.
Операционные системы многомашинных вычислительных систем распределенного типа – вычислительных сетей – обычно называют сетевыми. Фундаментальным понятием сетевых операционных систем, позволяющим определить и реализовать взаимодействие удаленных процессов, является понятие сетевого протокола.
Наиболее совершенным и перспективным классом операционных систем являются так называемые распределенные операционные системы. Распределенная система создает для пользователя полную иллюзию того, что он работает в обычной автономной системе. Эффективным способом построения распределенных операционных систем является установка специального промежуточного уровня программного обеспечения поверх сетевой операционной системы, который предоставляет приложениям определенную однородность взаимодействия. Среди различных типов промежуточного программного обеспечения следует выделить документное, файловое, объектное и координационное.
Основными принципами построения современных операционных систем являются принципы модульности, генерируемости, функциональной избыточности, виртуализации, совместимости с другими системами, открытости, легкой наращиваемости, мобильности, обеспечения надежной безопасности. Операционные системы прошли длительный путь развития и совершенствования своей архитектуры от монолитных систем до хорошо структурированных модульных систем, способных к развитию, расширению и легкому переносу на новые платформы. При модульном построении в системе выделяется некоторая часть важных программных модулей, которые для более эффективной организации вычислительного процесса должны постоянно находиться в оперативной памяти. Эту группу модулей называют ядром операционной системы. Другие системные программные модули (транзитные или диск-резидентные) загружаются в оперативную память только при необходимости, а в случае отсутствия свободного пространства могут быть замещены другими транзитными модулями. Для использования прикладными программами системных ресурсов операционной системы и реализуемых ею функций предназначен интерфейс прикладного программирования, который может быть реализован как на уровне операционной системы, так и на уровне системы программирования или на уровне внешней библиотеки процедур и функций.
Прообразом современных операционных систем являются разработанные в середине 1950-х годов системы пакетной обработки, которые были первыми системными программами, предназначенными для управления вычислительным процессом. Следующим этапом эволюции операционных систем стала разработка в 1960-х годах универсальных систем, которые были способны работать на разных типах вычислительных машин, имеющих различный набор периферийных устройств и используемых в разных областях человеческой деятельности. Существенным достижением систем этого периода явилась реализация многозадачного режима и спулинга.
Важнейшей вехой в истории и современном состоянии операциионных систем является семейство многопользовательских многозадачных систем UNIX. UNIX получила несколько ветвей развития исходной архитектуры. Двумя главными из таких ветвей стали System V (корпорации AT&T) и BSD (Калифорнийского университета в Беркли). Впоследствии на основе обеих этих ветвей был создан ряд новых версий ОС UNIX. Третья самостоятельная ветвь развития UNIX начиналась с относительно простой «учебной» системы MINIX, за которой в 1991 году последовала значительно более мощная многозадачная многопользовательская ОС LINUX. Операционные системы типа UNIX широко используется на вычислительных машинах различных классов от ноутбуков до суперкомпьютеров.
Для персональных компьютеров клона IBM PC были разработаны однопользовательские однозадачные операционные системы типа MS-DOS корпорации Microsoft и их аналоги других корпораций. Управление компьютером в среде MS-DOS осуществлялось в режиме командной строки. Для того, чтобы сделать общение с компьютером более простым, были предложены так называемые программы-оболочки, представляющие собой программные надстройки операционной системы, позволяющие пользователю осуществлять действия по управлению ресурсами компьютера в рамках более развитого и удобного, чем командная строка, псевдографического интерфейса. Следующим историческим шагом в развитии оболочек операционных систем стало появление в 1986 г. графической многооконной операционной оболочки Windows от корпорации Microsoft, которая работала на базе MS-DOS, а основой пользовательского интерфейса Windows послужил так называемый графический интерфейс пользователя GUI, представляющий собой иерархически организованную систему окон и других графических объектов. Дальнейшим развитием семейства Microsoft Windows стала разработка полноценных операционных систем Windows 95 (Windows 4.0) и Windows NT, положившим начало двух ветвей ОС от Microsoft: Windows 95/98/ME и Windows NT/2000/XP/2003.
Линия систем «новой технологии» Windows NT принципиально отличается от линии Windows 9.х. В качестве фундаментальных компонентов в состав семейства Windows NT входят развитый сетевой сервис, поддержка работы высокопроизводительных многопроцессорных вычислительных комплексов, средства обеспечения эффективной безопасности. На смену версии Windows NT 4.0. в 2000 году пришла существенно усовершенствованная и усиленная ОС Windows 2000 Professional. Серверной версией Windows 2000 Professional является система Windows 2000 Server, включающаяет множество дополнительных специальных функций. В конце 2001 г. корпорация Microsoft выпустила новую версию – Windows XP, продолжившую линию Windows NT. Новая серверная версия Windows Server 2003 обладает рядом преимуществ по сравнению с Windows 2000 Server.
Значительную роль в развитии ОС играет фирма Novell со своим сетевым операционными системами семейства NetWare. Историческое значение имеет система OS/2 корпорации IBM, которая появилась на рынке раньше Windows 95 и была первой 32-х разрядной операционной системой для персональных компьютеров.
Следует отметить также некоторые специализированные системы, например, предназначенные исключительно для выполнения коммуникационных задач или ориентированные на определенную аппаратную платформу компьютеров.
Любая из современных операционных систем имеет свои особенности построения и практической реализации, применяет те или иные способы и механизмы управления процессами и ресурсами, использует различные по степени универсальности и совместимости прикладные интерфейсы, обладает разным уровнем функциональности и может позиционироваться для определенных сфер применения. Для каждой из систем можно указать ее преимущества и недостатки, сильные и слабые стороны. Естественно, что предприятию или отдельному пользователю хотелось бы работать с оптимальной операционной системой, удовлетворяющей комплексу наиболее важных требований. «Идеальная» операционная система скорее всего должна иметь такую же степень интеграции и такую же поддержку, как Microsoft Windows 2000/XP/Server 2003, такую же превосходную отказоустойчивость, как Solaris 8 компании Sun Microsystems, такую же службу справочника, какой снабжена Novell NetWare 5.1, а также универсальность и гибкость, свойственные системе Linux.
Подобно другим программным продуктам информационных технологий, операционные системы постоянно совершенствуются. Основное внимание при разработке новых версий операционных систем уделяется базовым службам (файловые службы, службы печати, защиты, аутентификации, службы справочника), средствам управления, масштабируемости, применимости, надежности, службам Интернет, интрасетей и электронной коммерции. Та компания, которая в своей версии операционной системы лучше других обеспечивает эти качества, становится лидером продаж на рынке. Конкурентная борьба, как хорошо известно, является лучшим двигателем прогресса, в том числе и в области операционных систем.
Каждая из компаний – игроков на рынке операционных систем – имеет собственные планы дальнейшего развития своих продуктов.
Например, в ближайших (на момент подготовки данного учебного пособия) планах корпорации Microsoft выпуск новых версий Windows XP. К ним относятся Windows XP Media Center Edition (MCE) 2004, включающая несколько новых специализированных модулей и призванная превратить персональный компьютер в полнофункциональный развлекательный центр, а также Windows XP 64-bit Edition, являющаяся модификацией XP для компьютеров с 64-разрядными процессорами. Microsoft ведет разработку операционной системы нового поколения, именуемой как Windows Longhorn. По заявлениям Microsoft эта система станет революционной версией, основанной на внедрении новых технологий. Планируется выпуск ее 32- и 64-разрядных модификаций.
Можно надеяться, что не остановятся на достигнутом и другие компании – разработчики операционных систем, поэтому пользователей ждут еще более совершенные, функциональные, производительные и комфортные среды взаимодействия с вычислительной техникой.
Библиографический список
1. Андреев А. Г. и др. Microsoft Windows 2000 Server и Professio-nal / Под общ. ред. А.Н. Чекмарева и Д.Б. Вишнякова. – СПб.: БХВ – Петербург, 2001. – 1056 с.: ил.
2. Андреев А. Г. и др. Microsoft Windows XP. Руководство администратора/ Под общ. ред. А. Н. Чекмарева. – СПб.: БХВ – Петербург, 2003. – 848 с.: ил.
3. Бэкон Д., Харрис Т. Операционные системы. – СПб.: Питер, 2004. – 800 с.: ил.
4. Вишневский А. В. Windows Server 2003. Для профессионалов. – СПб.: Питер, 2004. – 767 с.: ил.
5. Гордеев А.В. Операционные системы. – СПб.: Питер, 2005. – 418 с.: ил.
6. Гордеев А. В., Молчанов А. Ю. Системное программное обеспечение. – СПб.: Питер, 2001. – 736 с.: ил.
7. Назаров С. В. Администрирование локальных сетей Windows NT/2000/NET: Учеб. пособие. – М.: Финансы и статистика, 2003. – 478 с.: ил.
8. Новиков Ю., Черепанов А. Персональные компьютеры: аппаратура, системы, Интернет: Учебный курс. – СПб.: Питер, 2001.– 464 с.: ил.
9. Олаф Кирх. Linux: Руководство администратора сети. – СПб.: Питер, 2000. – 242 с.: ил.
10. Олифер В.Г., Олифер Н. А. Сетевые операционные системы. – СПб.: Питер, 2001. – 544 с.: ил.
11. Основы операционных систем: Курс лекций. / В. Е. Карпов, К. А. Коньков. – М.: ИНТУИТ.РУ «Интернет-Университет Информационных Технологий», 2004. – 632 с.: ил.
12. Партыка Т. Л., Попов И. И. Операционные системы, среды и оболочки. – М.: ФОРУМ – ИНФРА-М, 2005. – 400 с.: ил.
13.Таненбаум Э. Современные операционные системы. – СПб.: Питер, 2004. – 1040 с.: ил.
14. Таненбаум Э., М. ван Стеен. Распределенные системы. Принципы и парадигмы. – СПб.: Питер, 2003. – 877 с.: ил.
15. Ханикат Дж. Знакомство с Microsoft Windows Server 2003: Пер. с англ. – М.: Издательско-торговый дом «Русская Редакция», 2003. – 464 с.: ил.
16. Чекмарев А. Н., Вишневский А. В., Кокорева О. И. Microsoft Windows Server 2003. – СПб.: БХВ – Петербург, 2003. – 1184 с.: ил.
17. Microsoft Windows 2000 Server:Учебный курс MCSA/MCSE: Пер. с англ. – М.: Издательско-торговый дом «Русская Редакция», 2002. – 912 с.: ил.
18. Microsoft Windows XP Professional: Учебный курс MCSA/MCSE: Пер. с англ. – М.: Издательско-торговый дом «Русская Редакция», 2002. – 1008 с.: ил.
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим.