Конфигурирование системы. Реестр Windows.
В Windows 3.1 для конфигурации применялись .INI файлы. 6 основных (Control, Program, Protocol, System, Win, Winfile) + ini файлы приложений + Reg.dat двоичный - поддержка OLE.
.ini файлы можно редактировать любым текстовым редактором, reg.dat с помощью специальной программы regedit.exe.
Неудобства: разбросанность по всему диску, неудобство редактирования.
В Windows 9X и выше в качестве средства конфигурирования системы стал использоваться реестр. В Windows 95 сохранены INI-файлы (для совместимости со старыми приложениями).
Реестр Windows – это большая база данных, физически состоящая из нескольких файлов, хранящихся на жестком диске.
Windows постоянно работает с реестром, даже в те моменты, когда компьютер простаивает. Постоянно ищутся и считываются определенные ключи реестра, при запуске программ их настройки берутся из реестра, а при выходе из программы – сохраняются в нем. Таким образом, Windows записывает все настройки, которые были сделаны пользователем. Это касается и настроек программ, и настроек самой ОС.
Повреждение реестра вызывает большие проблемы в работе Windows. Серьезные повреждения файлов реестра или вообще их потеря (при выходе из строя винчестера) вызовет при загрузке компьютера так называемый BSOD (Blue Screen Of Death или синий экран смерти), который указывает на то, что работа Windows далее невозможна и ошибка настолько серьезна, что Windows не может решить возникшую проблему своими средствами. В таких случаях реестр приходится восстанавливать из резервных копий, созданных либо Windows в процессе работы, либо вручную при резервном копировании. Если резервная копия реестра слишком стара, то восстановление такой копии приведет к неработоспособности многих программ, которые устанавливались после создания копии реестра, притом, что файлы самой программы будут присутствовать на жестком диске. Как правило, восстановление реестра при серьезном сбое даже из старой архивной копии сэкономит гораздо больше времени, чем переустановка Windows и всех программ при отсутствии резервной копии реестра вообще.
Неосторожные действия при правке реестра так же могут вызвать проблемы в работе Windows. Разного рода «чистильщики» реестра сомнительного качества способны принять за «мусор» важные ключи реестра и удалить их, поэтому такими программами надо пользоваться осторожно, всегда предварительно создавая резервные копии реестра, а лучше не пользоваться ими вовсе. Перед правкой реестра и, особенно, если правка будет глобальной (много значений будет изменено за один раз), крайне желательно создать резервную копию реестра.
Реестр Windows имеет критическое значение для работы операционной системы.
Редактирование реестра
Для редактирования реестра есть стандартные инструменты, которые поставляются вместе с операционной системой. До Windows XP этих инструментов было два, regedit и regedt32. Начиная с Windows XP они скомбинированы в одном regedit.
Использование реестра компонентами Windows
Ниже приведены сведения об использовании системного реестра основными компонентами и приложениями Windows.
Компонент | Использование системного реестра |
Программа установки | Программа установки Windows 2000 и другие программы установки (приложений и оборудования) добавляют данные в системный реестр. Например, при установке в реестр записываются значения многих настраиваемых параметров приложений по умолчанию. Программы установки также выполняют чтение системного реестра для определения наличия в системе необходимых компонентов |
Определитель оборудования | При каждом запуске компьютера, работающего под управлением Windows 2000, определитель оборудования помещает данные аппаратной конфигурации в реестр. Эти данные включают список оборудования, обнаруженного в системе. Диагностика действующего оборудования выполняется программами Ntdetect.com и Ntoskrnl.exe |
Ядро Windows 2000 | В процессе загрузки ОС ядро Windows 2000 извлекает из реестра необходимые данные, например перечень загружаемых драйверов и порядок загрузки. Кроме того, программа Ntoskrnl.exe записывает в реестр собственные данные (например, номер версии) |
Драйверы устройств | Драйверы устройств заносят в реестр и извлекают из него параметры собственного запуска и настройки обслуживаемого оборудования. Драйвер устройства сообщает об использовании тех или иных системных ресурсов, например прерываний и каналов прямого доступа к памяти, после чего эти сведения записываются в системный реестр. Кроме того, программы и драйверы устройств используют данные реестра для автоматизации установки и настройки программ |
Приложения | Приложения используют реестр для хранения глобальных и пользовательских настроек. Например, Microsoft Word хранит в реестре список последних открытых пользователем документов. Многие приложения, являющиеся неотъемлемой частью ОС, например, Проводник, также хранят свои настройки в реестре |
Структура реестра
Реестр имеет иерархическую структуру. Реестр, по сути, это несколько файлов, хранящихся на жестком диске. Эти файлы находятся в %SystemRoot%\System32\Config, где %SystemRoot% – папка, в которую установлена Windows. Еще один файл (Ntuser.dat – создается для каждого пользователя и хранит его настройки) находится в %SystemDrive%\Documents and Settings\%Username%, где %Username% – имя пользователя. Ниже перечислены имена файлов.
Имя файла | Куст реестра, хранимый в нем |
SAM | HKEY_LOCAL_MACHINE\SAM |
SECURITY | HKEY_LOCAL_MACHINE\SECURITY |
SOFTWARE | HKEY_LOCAL_MACHINE\SOFTWARE |
SYSTEM | HKEY_LOCAL_MACHINE\SYSTEM |
SYSTEM | HKEY_CURRENT_CONFIG |
DEFAULT | HKEY_USERS\.DEFAULT |
Ntuser.dat | HKEY_CURRENT_USER |
Раздел – это папка, которая может содержать подразделы и параметры. (Как папка в файловой системе).
Параметр реестра состоит из трех компонент: имени, типа данных и значения.
Корневой раздел – это верхний уровень разделов. Пример корневого раздела - HKEY_LOCAL_MACHINE или HKEY_CURRENT_USER.
Куст реестра – раздел реестра, который сохраняется на жестком диске как отдельный файл. Ветви реестра подразделяются на кусты. Куст – это дискретная древовидная структура разделов, подразделов и параметров, выходящая из вершины иерархии реестра.
В англоязычной литературе куст обозначается термином «hive», что в дословном переводе значит «улей». Это вносит некоторую путаницу, но эти два термина (куст и улей) являются синонимами.
Корневые разделы реестра и их назначение
· HKEY_LOCAL_MACHINE (HKLM) хранит все настройки, относящиеся к локальному компьютеру. Например, в подразделе HARDWARE хранятся записи операционной системы и драйверов и совместно используемая (разделяемая) информация о физических устройствах, обнаруживаемых операционной системой во время загрузки (как и остальных устройств Plug-and-Play, которые могут быть добавлены после загрузки операционной системы). Приложения должны хранить здесь данные только в том случае, когда они относятся ко всем, кто пользуется компьютером. Например, драйвер принтера может хранить здесь набор настроек принтера, применяемых по умолчанию, и копировать эти данные для каждого профиля пользователя при входе пользователя в систему.
· HKEY_USERS (HKU) содержит записи для каждого из пользователей, когда-либо входивших в систему. Владельцем каждой из этих записей является соответствующая пользовательская учетная запись, там содержатся настройки профиля этого пользователя. Если используются групповая политика, то задаваемые в ней настройки применяются здесь к профилям отдельных пользователей.
· HKEY_CURRENT_CONFIG (HKCC) хранит информацию о текущей загрузочной конфигурации компьютера. В частности, здесь хранится информация о текущем наборе системных служб и об устройствах, имевшихся во время загрузки. На самом деле, этот корневой раздел является указателем на раздел внутри HKLM.
· HKEY_CURRENT_USER (HKCU) указывает на профиль текущего пользователя (вошедшего в данный момент в систему) внутри HKU. Microsoft требует, чтобы приложения хранили все предпочтения пользователей в подраделах под HKCU. Например, HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Paint содержит личные настройки пользователей программы Paint.
· HKEY_CLASSES_ROOT (HKCR) сопоставляет расширения файлов и идентификаторы классов OLE. Фактически он указывает на HKLM\Software\Classes. Система использует эти соответствия для того, чтобы определить, какие приложения или компоненты нужно использовать при открытии или создании тех или иных типов файлов или объектов данных.
Назначение основных разделов реестра
HKLM\Hardware
Здесь хранится информация об устройствах, обнаруженных в компьютере. Все параметры этого раздела хранятся не на жестком диске, а в оперативной памяти. Когда компьютер распознает запуск устройства, он нумерует найденное устройство, исследуя шину и отдельные классы устройств (например, порты или клавиатуру). В этом разделе имеются три основных подраздела:
o Подраздел Descriptions содержит описания центральных процессоров, процессоров для операций вещественными числами («с плавающей точкой») и многофункциональных устройств компьютера.
o Подраздел DeviceMap сопоставляет устройства драйверам. Например, DeviceMap\video имеет параметр с именем \Device\Video1, содержащий строку \REGISTRY\Machine\SYSTEM\ControlSet001\Services\mnmdd\Device0, являющуюся указателем на место, где хранятся параметры для драйвера этого видеоконтроллера.
o В подразделе ResourceMap имеются три основных подраздела. Один – для уровня аппаратных абстракций (HAL, hardware abstraction layer), применяемый при отслеживании найденных устройств. Второй – для Plug-and-Play Manager, для записи устройств, про которые известно, как с ними работать. Третий – для отображения объема оперативной памяти.
HKLM\SAM
Здесь хранятся локальные учетные записи или группы, созданные на компьютере. Раздел скрыт.
HKLM\Security
Здесь содержится всевозможная информация, относящаяся к защите. Подраздел Security\SAM содержит копию большинства данных из HKLM\SAM.
HKLM\Software
Этот подраздел является корнем структуры подразделов, хранящих информацию приложений и компонент. Программы создают свои собственные подразделы в HKLM\Software для храниения своей служебной информации. В разделе HKLM\Software\Microsoft\Windows\CurrentVersion хранится большинство данных о настройках пользовательского интерфейса (GUI). Подраздел HKLM\Software\Microsoft\Windows NT\CurrentVersion, среди прочих, содержит разделы для автоматического восстановления, для шифруемой файловой системы, для редактора конфигурации безопасности, для терминальных служб и т.д.
HKLM\System\CurrentControlSet
Последним действием фазы загрузки Windows является обновление реестра, которое должно зафиксировать набор служб и управляющих настроек, применявшийся при последней успешной загрузке. CurrentControlSet всегда указывает на набор управляющих настроек, используемых системой в текущий момент. В HKLM\System есть много подразделов ControlSetXXX, каждый из которых описывает набор управляющих настроек, существовавших в какой-либо момент времени, независимо от того, была ли загрузка успешной или нет. CurrentControlSet является указателем на последний набор управляющих настроек, при котором загрузка была успешной. Поскольку трудно определить сразу, какая из загрузок была успешной, то операционная система и приложения пользуются указателем CurrentControlSet.
В разделе, описывающем набор управляющих настроек, среди прочих, имеются четыре следующих раздела:
o Control. Содержит управляющую информацию для служб и системных инструментальных средств.
Например, Control\BackupRestore\KeysNotToRestore содержит список разделов, которые утилита Backup не должна восстанавливать при восстановлении реестра.
o Enum. Содержит по одному элементу данных для каждого из найденных системой устройств. Если устройство имелось на момент загрузки, то оно будет включено в этот список.
o Hardware Profiles. Содержит по одному элементу данных для каждого из профилей оборудования, найденных на компьютере. Как и сам HKLM\System, каждый профиль имеет порядковый номер, начинающийся с 0001. HKLM\System\Hardware Profiles\Current всегда указывает на профиль, выбранный при загрузке.
HKLM\System\MountedDevices
Тома динамических дисков зависят от наличия информации о текущей конфигурации о логических томах на диске. Приложения и оснастки берут эту информацию из службы Logical Volume Manager, которая хранит свой список смонтированных и доступных устройств в подразделе MountedDevices.
Вопросы для самопроверки.
1. Опишите архитектуру ОС Windows 2000.
2. Как происходит загрузка ОС Windows.
3. Что представляет собой реестр, какова его роль в конфигурировании системы.
Лекции 8-9
Семейство UNIX
Не существует некоторой "стандартной" системы UNIX, есть множество операционных систем, имеющих собственные названия и особенности. Но за этими особенностями и названиями все же нетрудно заметить архитектуру, пользовательский интерфейс и среду программирования UNIX. Объясняется это достаточно просто — все эти операционные системы являются ближними или дальними родственниками.
Вот некоторые из них: System V UNIX, BSD UNIX, OSF/1, Solaris, Linux.
Причины популярности UNIX
Почти три десятилетия существования UNIX — очень большой срок для операционной системы. Перечислим основные черты UNIX, позволяющие понять причины долгожительства этой системы:
1. Код системы написан на языке высокого уровня С, что сделало ее простой для понимания, изменений и переноса на другие аппаратные платформы. Все части системы, не считая ядра, являются полностью машинно-независимыми. Эти компоненты написаны на языке Си, и для их переноса на новую платформу требуется только перекомпиляция исходных текстов в коды целевого компьютера.
2. UNIX — многозадачная многопользовательская система с широким спектром услуг. Один мощный сервер может обслуживать запросы большого количества пользователей. Система может выполнять различные функции — работать как вычислительный сервер, обслуживающий сотни пользователей, как сервер базы данных, как сетевой сервер, поддерживающий важнейшие сервисы сети (telnet, ftp, электронную почту, службу имен DNS и т. д.), или даже как сетевой маршрутизатор.
3. Наличие стандартов. Несмотря на многообразие версий UNIX, основой всего семейства являются принципиально одинаковая архитектура и ряд стандартных интерфейсов. Опытный администратор без большого труда сможет обслужить другую версию системы, для пользователей переход на другую версию и вовсе может оказаться незаметным.
IEEE и POSIX – Стандартизация программного интерфейса UNIX, т. е. формального определения услуг, предоставляемых операционной системой приложениям для упрощения переносимости приложений между различными версиями
ANSI – стандарт языка программирования С. Этот стандарт улучшил переносимость программ, написанных на языке С, в различные операционные системы (не только UNIX). Стандарт определяет не только синтаксис и семантику языка, но и содержимое стандартной библиотеки.
4. Простой, но мощный модульный пользовательский интерфейс. Имея в своем распоряжении набор утилит, каждая из которых решает узкую специализированную задачу, можно конструировать из них сложные комплексы.
5. Использование единой, легко обслуживаемой иерархической файловой системы. Файловая система — это не только доступ к данным, хранящимся на диске. Через унифицированный интерфейс файловой системы осуществляется доступ к терминалам, принтерам, магнитным носителям, сети и даже к памяти.
6. Очень большое количество приложений, в том числе свободно распространяемых, начиная от простейших текстовых редакторов и заканчивая мощными системами управления базами данных.
Интерфейс пользователя
Начало работы
Чтобы начать работать, пользователь должен "войти" в систему, введя со свободного терминала свое учетное имя (account name) и пароль (password). Человек, зарегистрированный в учетных файлах системы, и, следовательно, имеющий учетное имя, называется зарегистрированным пользователем системы. Регистрацию новых пользователей обычно выполняет администратор системы. Пользователь не может изменить свое учетное имя, но может установить и/или изменить свой пароль.
Пароли хранятся в отдельном файле в закодированном виде. Ядро ОС UNIX идентифицирует каждого пользователя по его идентификатору (UID - User Identifier), уникальному целому значению, присваиваемому пользователю при регистрации в системе. Кроме того, каждый пользователь относится к некоторой группе пользователей, которая также идентифицируется некоторым целым значением (GID - Group IDentifier).
Администратор системы, который тоже является зарегистрированным пользователем, должен обладать большими возможностями, чем обычные пользователи, он имеет нулевой UID и называется суперпользователем (superuser) или root. Он имеет неограниченные права на доступ к любому файлу и на выполнение любой программы, возможность полного контроля над системой.
Традиционный способ взаимодействия пользователя с системой UNIX основывается на использовании командных языков (командный интерфейс). Обычно в системе поддерживается несколько командных интерпретаторов с похожими, но различающимися своими возможностями командными языками. Общее название для любого командного интерпретатора ОС UNIX – shell (оболочка), поскольку любой интерпретатор представляет внешнее окружение ядра системы. Вот наиболее известные из них: sh (Bourne Shell), более мощный bash (Bourne Again Shell), самый мощный zsh (The Z Shell).
Вызванный командный интерпретатор выдает приглашение на ввод пользователем командной строки (символ $ для обычных пользователей, # – для суперпользователя.)
Завершение работы
Пользователь завершает свой сеанс работы путем ввода команды logout.
$ logout
Команды
Команды в shell обычно имеют следующий формат:
<имя команды> <флаги> <аргумент(ы)>
После нажатия на клавишу Return начинается выполнение команды.
Например:
ls -ls /usr/bin
ls имя команды вывода оглавления каталога,
-ls флаги ( "-" - признак флагов, l - длинный формат, s - объем файлов в блоках).
/usr/bin каталог, для которого выполняется команда.
Эта команда выдаст на экран в длинном формате содержимое каталога /usr/bin, при этом добавит информацию о размере каждого файла в блоках.
Все команды, которые вводятся в строке приглашения shell, относятся к одной из следующих категорий:
· Встроенные команды (функции, реализованные в самой программе shell);
· Функции shell, определенные пользователем (командные файлы);
· Внешние программы и утилиты, команды, созданные пользователем (обычные исполняемые файлы)
(Функции отличаются от внешних команд тем, что не требуют порождения нового процесса. Процесс в ОС UNIX - это программа, выполняемая в собственном виртуальном адресном пространстве.)
Командный интерпретатор является удобным средством программирования. Программы на языке shell часто называются скриптами или сценариями (script). Интерпретатор считывает строки из файла-скрипта (командного файла) и выполняет их, как если бы они были введены в командной строке.
Графический интерфейс
Современные ОС семейства UNIX обеспечивают и графический пользовательский интерфейс. Для вывода графики используется система X Window, известная еще как Х11 (или свободно распространяемый вариант Xfree86). X Window использует архитектуру клиент-сервер. На компьютере пользователя запускается Х-сервер, управляющий оборудованием ввода (клавиатура, мышь) и вывода (монитор). Все остальные программы (клиенты) для операций ввода и вывода обращаются к Х-серверу. То есть эта программа стыкует аппаратную часть с программной.
Чтобы вести диалог с ОС пользователь должен запустить менеджер окон – программу, которая прорисовывает рамки, меню, полосы прокрутки, изменяет положение окон и их размер. Программы, которые используют графический интерфейс, только выводят информацию в окна, созданные менеджером окон. Оконных менеджеров в мире Unix большое разнообразие от самых простых до более сложных, сопоставимых с графической средой Windows. Например, fvwn, IceWM, Windows Maker, Motif, LessTif.
Оконный менеджер не обеспечивает связи между программами, как это делается в Windows. Для обеспечения такой связи используются более сложные интегрированные графические среды, в которых оконный менеджер является одной из многих подпрограмм. Примерами интегрированных графических оболочек являются системы KDE и Gnome.
Файловая система
Файлы в UNIX используются не только для хранения данных. Файлы определяют привилегии пользователей, обеспечивают доступ к периферийным устройствам компьютера, включая диски, накопители на магнитной ленте, CD-ROM, принтеры, терминалы, сетевые адаптеры и даже память. Для приложений UNIX доступ к дисковому файлу "неотличим" от доступа к принтеру. Специальный файл устройства обеспечивает доступ к физическому устройству. Доступ к устройствам осуществляется путем открытия, чтения и записи в специальный файл устройства.
В UNIX файлы организованы в виде древовидной структуры (дерева). Каждый файл имеет имя, определяющее его расположение в дереве файловой системы. Корнем этого дерева является корневой каталог (root directory), имеющий имя "/". Имена всех остальных файлов содержат путь — список каталогов (ветвей), которые необходимо пройти, чтобы достичь файла. В UNIX все доступное пользователям файловое пространство объединено в единое дерево каталогов, корнем которого является каталог "/". Таким образом, полное имя любого файла начинается с "/" и не содержит идентификатора устройства (дискового накопителя, CD-ROM или удаленного компьютера в сети), на котором он фактически хранится.
Файловая система обычно размещается на дисках или других устройствах внешней памяти. В мире UNIX существует несколько разных видов файловых систем со своей структурой во внешней памяти. Наиболее известны файловая система System V (S 5) и файловая система UNIX BSD (UFS). Общая структура организации хранения данных на диске следующая:
· Boot-блок – программа для первоначального запуска ОС;
· Суперблок – наиболее ответственная область файловой системы. Содержит список свободных блоков (кластеров) и индексные дескрипторы (information nodes, inode – информационные узлы, в которых хранятся метаданные, однозначно определяющие файл). В файловых системах UFS поддерживается несколько копий суперблока, что обеспечивает большую надежность.
· Список индексных дескрипторов (ilist). В индексном дескрипторе содержится информация, описывающая файл: режимы доступа к файлу, время создания и последней модификации, идентификатор пользователя и идентификатор группы создателя файла, описание в каких кластерах хранятся данные файла и т.д.
· Блоки данных, где хранятся реальные данные файлов.
Распределенные файловые системы.
Основная идея распределенной файловой системы состоит в том, чтобы обеспечить совместный доступ к файлам локальной файловой системы для процессов, которые выполняются на других компьютерах. Удаленная файловая система монтируется к одному из каталогов локальной файловой системы. После выполнения этой процедуры файлы, хранимые в удаленной файловой системе, доступны локальному компьютеру точно таким же образом, как если бы они хранились на локальном дисковом устройстве. Таким образом, чтобы работать с файлами, расположенными на дискете или на оптическом диске, необходимо применить операцию монтирования.
Это позволяет экономить дисковое пространство при работе в сети, но замедляет работу пользователей с удаленными файлами. Кроме того, реальная возможность доступа к удаленному файлу зависит от работоспособности сервера и сети. В мире распространены сетевые файловые системы NFS (Network File System – сетевая файловая система) и RFS (Remote File Sharing - совместное использование удаленных файлов), которые обеспечивают прозрачный доступ к удаленным файлам.
Получаем:
NFS – сетевая файловая система, пригодная для использования на разных платформах, а также в среде разных операционных системах, но только в тех сетях, где поддерживается TCP/IP протокол.
RFS – сетевая файловая система, подобна NFS, только реализована абсолютно по другому. Основным недостатком этой файловой системы является то, что она работает только на компьютерах, на которых установлена ОС UNIX.
Особенности имени файла в ОC UNIX
Имя файла является атрибутом файловой системы, а не набора некоторых данных на диске, который не имеет имени как такового. Каждый файл имеет связанные с ним метаданные (хранящиеся в индексных дескрипторах — inode), содержащие все характеристики файла и позволяющие операционной системе выполнять операции, заказанные прикладной задачей: открыть файл, прочитать или записать данные, создать или удалить файл. В частности, метаданные содержат указатели на дисковые блоки хранения данных файла. Имя файла в файловой системе является указателем на его метаданные, в то время как метаданные не содержат указателя на имя файла.
Каталог. С помощью каталогов формируется логическое дерево файловой системы. Каталог — это файл, содержащий имена находящихся в нем файлов, а также указатели на дополнительную информацию — метаданные, позволяющие операционной системе производить операции над этими файлами. Каталоги определяют положение файла в дереве файловой системы, поскольку сам файл не содержит информации о своем местонахождении. По существу каталог представляет собой таблицу, каждая запись которой соответствует некоторому файлу. Первое поле каждой записи содержит указатель на метаданные (номер inode), а второе определяет имя файла.
Связь. Как уже говорилось, каталог содержит имена файлов и указатели на их метаданные. В то же время сами метаданные не содержат ни имени файла, ни указателя на это имя. Такая архитектура позволяет одному файлу иметь несколько имен в файловой системе. Имена жестко связаны с метаданными и, соответственно, с данными файла, в то время как сам файл существует независимо от того, как его называют в файловой системе. Такая связь имени файла с его данными называется жесткой связью (hard link). Например, с помощью команды 1п можно создать еще одно имя ( second ) файла, на который указывает имя first .
Жесткие связи абсолютно равноправны. В списках файлов каталогов файлы first и second будут отличаться только именем. Все остальные атрибуты файла будут абсолютно одинаковыми. С точки зрения пользователя — это два разных файла. Изменения, внесенные в любой из этих файлов, затронут и другой, поскольку оба они ссылаются на одни и те же данные файла. Вы можете переместить один из файлов в другой каталог — все равно эти имена будут связаны жесткой связью с данными файла. Удаление одного из файлов ( first или second ) не приведет к удалению самого файла, т. е. его метаданных и данных. Эти ссылки используются, например, для того, чтобы хранить под разными именами одну и ту же команду (выполняемый файл) командного интерпретатора. Так, выполняемый файл текстового редактора vi может вызываться по именами: ex, edit, view, vedit.
Позднее в мире UNIX появились и символьные связи (symbolic link). Например, для каталога нельзя создать жесткую ссылку, поэтому для того, чтобы обращаться к нему с другим именем, необходимо создать символьную ссылку. Символьная ссылка – это отдельный объект, поэтому удаление ссылки не оказывает никакого влияния на сам файл с данными, более того, файл с данными может быть удален, а ссылка на него будет существовать, и лишь при попытке вызвать по этой ссылке сам файл система выдаст сообщение об ошибке (как ярлыки в Windows).
Структура файловой системы
Использование общепринятых имен основных файлов и структуры каталогов существенно облегчает работу в операционной системе, ее администрирование и переносимость. Эта структура используется в работе системы, например при ее инициализации и конфигурировании, при работе почтовой системы и системы печати. Нарушение этой структуры может привести к неработоспособности системы или отдельных ее компонентов.
Описание основных каталогов
Корневой
Корневой каталог "/" является основой любой файловой системы UNIX. Все остальные файлы и каталоги располагаются в рамках структуры, порожденной корневым каталогом, независимо от их физического местонахождения.
/bin
В каталоге /bin находятся наиболее часто употребляемые команды и утилиты системы.
/dev
Каталог /dev содержит специальные файлы устройств, являющиеся интерфейсом доступа к периферийным устройствам.
/etc
В этом каталоге находятся системные конфигурационные файлы и многие утилиты администрирования. Среди наиболее важных файлов — скрипты инициализации системы.
/lib
В каталоге /lib находятся библиотечные файлы языка С и других языков программирования.
/lost+found
Каталог "потерянных" файлов. Ошибки целостности файловой системы, возникающие при неправильном останове UNIX или аппаратных сбоях, могут привести к появлению "безымянных" файлов — структура и содержимое файла являются правильными, однако для него отсутствует имя в каком-либо из каталогов. Программы проверки и восстановления файловой системы помещают такие файлы в каталог /lost+found под системными числовыми именами.
/mnt
Стандартный каталог для временного связывания (монтирования) файловых систем к корневой для получения единого дерева логической файловой системы.
/ u или / home
Общеупотребительный каталог для размещения домашних каталогов пользователей. Например, имя домашнего каталога пользователя andrei будет, скорее всего, называться /home/andrei или /u/andrei. В более ранних версиях UNIX домашние каталоги пользователей размещались в каталоге /usr.
/usr
В этом каталоге находятся подкаталоги различных сервисных подсистем — системы печати, электронной почты и т. д. (/usr/spool), исполняемые файлы утилит UNIX (/usr/bin), дополнительные программы, используемые на данном компьютере (/usr/local), файлы заголовков (/usr/include), электронные справочники (/usr/man) и т. д.
/var
В UNIX System V этот каталог является заменителем каталога /usr/spool, используемого для хранения временных файлов различных сервисных подсистем — системы печати, электронной почты и т. д.
/tmp
Каталог хранения временных файлов, необходимых для работы различных подсистем UNIX. Обычно этот каталог открыт на запись для всех пользователей системы.
Архитектура UNIX.
Самый общий взгляд позволяет увидеть двухуровневую модель системы.
В центре находится ядро системы (kernel). Ядро непосредственно взаимодействует с аппаратной частью компьютера, изолируя прикладные программы от особенностей ее архитектуры. Ядро имеет набор услуг, предоставляемых прикладным программам. К услугам ядра относятся операции ввода/вывода (открытия, чтения, записи и управления файлами), создания и управления процессами, их синхронизации и межпроцессного взаимодействия. Все приложения запрашивают услуги ядра посредством системных вызовов.
Второй уровень составляют приложения или задачи, как системные, определяющие функциональность системы, так и прикладные, обеспечивающие пользовательский интерфейс UNIX. Несмотря на внешнюю разнородность приложений, схемы их взаимодействия с ядром одинаковы.
Общая организация традиционного ядра ОС UNIX
Основные функции
К основным функциям ядра ОС UNIX принято относить следующие:
· Инициализация системы – функция запуска и загрузки. Ядро системы обеспечивает средство загрузки (bootstrap), которое обеспечивает загрузку полного ядра в память компьютера и запускает ядро.
· Управление процессами и нитями – функция создания, завершения и отслеживания существующих процессов (задач) и нитей ("процессов", выполняемых на общей виртуальной памяти). Поскольку ОС UNIX является многозадачной (мультипроцессной) операционной системой, ядро обеспечивает разделение между запущенными процессами времени процессора (или процессоров в мультипроцессорных системах) и других ресурсов компьютера для создания внешнего ощущения того, что процессы реально выполняются в параллель.
· Управление памятью – функция отображения практически неограниченной виртуальной памяти процессов в физическую оперативную память компьютера, которая имеет ограниченные размеры. Соответствующий компонент ядра обеспечивает разделяемое использование одних и тех же областей оперативной памяти несколькими процессами с использованием внешней памяти.
· Управление файлами – функция, реализующая абстракцию файловой системы, - иерархии каталогов и файлов. Файловые системы ОС UNIX поддерживают несколько типов файлов. Некоторые файлы могут содержать данные в формате ASCII, другие будут соответствовать внешним устройствам. В файловой системе хранятся объектные файлы, выполняемые файлы и т.д. Файлы обычно хранятся на устройствах внешней памяти; доступ к ним обеспечивается средствами ядра. В мире UNIX существует несколько типов организации файловых систем. Современные варианты ОС UNIX одновременно поддерживают большинство типов файловых систем.
· Коммуникационные средства – функция, обеспечивающая возможности обмена данными между процессами, выполняющимися внутри одного компьютера (IPC - Inter-Process Communications), между процессами, выполняющимися в разных узлах локальной или глобальной сети передачи данных, а также между процессами и драйверами внешних устройств.
· Программный интерфейс – функция, обеспечивающая доступ к возможностям ядра со стороны пользовательских процессов на основе механизма системных вызовов, оформленных в виде библиотеки функций.
Ядро системы
Ядро обеспечивает базовую функциональность операционной системы: создает процессы и управляет ими, распределяет память и обеспечивает доступ к файлам и периферийным устройствам.
Взаимодействие прикладных задач с ядром происходит посредством стандартного интерфейса системных вызовов. Интерфейс системных вызовов представляет собой набор услуг ядра и определяет формат запросов на услуги. Процесс запрашивает услугу посредством системного вызова определенной процедуры ядра, внешне похожего на обычный вызов библиотечной функции. Ядро от имени процесса выполняет запрос и возвращает процессу необходимые данные.
Ядро состоит из трех основных подсистем:
· Файловая подсистема
· Подсистема управления процессами и памятью
· Подсистема ввода/вывода
Файловая подсистема
Файловая подсистема обеспечивает унифицированный интерфейс доступа к данным, расположенным на дисковых накопителях, и к периферийным устройствам. Одни и те же функции ореп, read , write могут использоваться как при чтении или записи данных на диск, так и при выводе текста на принтер или терминал.
Файловая подсистема контролирует права доступа к файлу, выполняет операции размещения и удаления файла, а также выполняет запись/чтение данных файла.
Файловая подсистема обеспечивает перенаправление запросов, адресованных периферийным устройствам, соответствующим модулям подсистемы ввода/вывода.
Дата: 2019-05-28, просмотров: 187.