prosdo.ru 1
25 апреля 2012 г.


Использование связного списка индексов.

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

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

Простое перечисление номеров кластеров, занимаемых этим файлом.

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

Права доступа к файлу.

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

Список операций доступа:


          1. право на создание/уничтожение файла

          2. открытие/закрытие файла
          3. чтение/запись


          4. дополнение файла

          5. поиск в файле

          6. получение атрибутов и установление новых значений

          7. переименование файла

          8. выполнение файла

          9. чтение каталога и другие операции с файлами и каталогами.

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


Чтение – Read – R

Запись – Write – W

Выполнение – Execute – X.

В некоторых системах пользователи могут быть разделены на категории. Для всех пользователей одной категории устанавливаются единые права доступа. Различают 2 подхода к определению прав доступа:

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

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

Кэширование.

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


Особенности архитектур современных ФС.

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


ОС Unix/Linux.

В начале 1965 г. компания Bell Telephone Laboratories (AT&T) совместно с General Electric Company (MIT) начали разрабатывать новую ОС – MULTCS. ОС должна была быть многозадачной с разделением времени. Однако работа не была завершена, в 1969 году компания Bell вышла из проекта и два её сотрудника разработали усеченный вариант этой системы и назвали новую систему Unix (Uniplexed Information and Computing System).


1 января 1970 года – дата рождения новой ОС. Unix написана на языке С, что позволяло изменять ОС. К 1977 году было установлено более 500 установок Unix.

С 1971 по 1989 год выпущено 10 версий системы Unix, и самой известной была Unix System V – 1987 г.


  • классическая Unix – 7 версия 1978–1979 г.

  • BSD (Berkeley Software Distribution).

  • Minix –> Linux – 1991 год.

    • CentOS, Debian, Fedora, Gentoo, Mandriva, Mint, openSUSE, Red Hat, Slackware, Upuntu

    • ALT Linux, ASP Linux, Calculate Linux, Runtu, Hay Линукс.

GUI X Window

Shell

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

Окружение пользователя состоит из:

  • Домашний каталог. Для суперпользователя – /root, остальные пользователи – /home

  • Командная оболочка shell – наиболее популярна bash

  • Графическая оболочка такая же, как у Windows, позволяет выбрать окружение рабочего стола (GNOME, KDE) и диспетчер окон.

Интерфейс командной оболочки.

Командная оболочка предоставляет средства для запуска программ, работает с ФС, компиляция программного кода и управления компьютером. После запуска на экране появляется приглашение на ввод какой-то команды. Для обычного – $, для супер – #. Перед ними указываются имя пользователя, системы и текущий каталог. Для перехода из командной оболочки в графическую необходимо выполнить команду startx, обратно – необходимо запустить терминал через меню Terminal OR XTerminal OR xterm window OR New shell OR Console в зависимости от версии ОС. Если мы хотим завершить работу системы – logout, если хотим перейти в суперпользователя – su, для завершения работы компьютера – shutdown.

Справочная система.


            1. man

            2. info

            3. help.

Файловая система.

С точки зрения пользователя в Linux существует 2 типа объектов – файлы и процессы. Когда запускается программа, ядро загружает исполняемый файл, создает образ процесса и передает ему управление. Процесс может записывать и считывать данные из файла. Все данные хранятся в виде файлов. Файлы обеспечивают доступ к периферийным устройствам. Для приложений доступ к файлу на диске не отличим от доступа к другому периферийному устройству, например, к принтеру. Помимо этого файлы определяют привилегии пользователей, то есть контролируют права доступа. В настоящее время в ОС Linux используются ФС Extended File System (EXT 2, EXT 3, EXT 4), Reiser FS и другие. Начиная с версии 3 и дальше ФС являются журналируемыми.

Структура ФС.

ФС организована в виде дерева. Каждый файл имеет имя, которое определяет место, корнем дерева является корневой каталог, имеющий имя /. Имена остальных файлов содержат путь, то есть список каталогов от корня до файла. Файловое пространство объединяется в единое дерево каталогов. При этом допускается монтирование в одно пространство не только разных носителей, но и разных ФС. Используются стандартные имена основных файлов и структур каталогов. Это облегчает работу в ОС, администрирование, переносимость, при этом нарушения могут привести к развалу системы.



Корневой каталог – все остальные файлы и каталоги располагаются в рамках структуры корневого каталога.

Каталог bin – в нем находятся программы наиболее распространенных команд и утилит общего пользования.

Каталог poot – содержит основные файлы для загрузки системы, в частности – загружаемое ядро.

Каталог dev – содержит специальные файлы устройств, являющиеся интерфейсом доступа к периферийным устройствам, в число которых входят устройства терминалов (tty), дисководы (fd), жесткие диски (hd), CD–ROM (cd) и диски в ОЗУ (ram).


Каталог etc – содержит системные конфигурационные файлы и утилиты администрирования.

Каталог home – каталог для размещения домашних файлов пользователя.

Каталог lib – находятся библиотечные файлы С и других языков программирования.

Каталог lost found – каталог потерянных файлов.

Каталог mnt – стандартный каталог для временного связывания физических ФС с корневой системой.

Каталог root – домашний каталог суперпользователя.

Каталог tmp – каталог для хранения временных файлов.

Каталог usr – каталог хранения пользовательской документации, справочников. Его подкаталоги – man (документация), bin (утилиты), local (локальные программы).

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