Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Экзамен по курсу ОСс и ОСТ20081.doc
Скачиваний:
7
Добавлен:
28.09.2019
Размер:
1.57 Mб
Скачать

30. Виртуальная фс. Принцип функционирования.

Виртуальная ФС (VFS – часть ядра ОС)

VFS является базой, на которой основывается использование всего многообразия поддерживаемых ФС.

Принцип функционирования

Ядро системы UNIX (Linux) содержит в себе программный код-“посредник”, выполняющий функции VFS. Этот код обрабатывает запросы к файлам и вызывает необходимые функции соответствующие данной ФС для выполнения операции ввода/вывода. Такой механизм работы с файлами используется для упрощения объединения и использования нескольких типов ФС. Этот выглядит следующим образом:

К омментарии: Пусть программа читает или записывает информацию в файл. Программа вызывает библиотечную функцию, которая отвечает за запись или чтение информации в файл. Эта библиотечная функция определённым образом подготавливает информацию, которая затем передаётся в ядро системы. Ядро обращается к VFS (к программному коду) и VFS определяет с каким типом ФС будут производиться манипуляции, подготавливает данные и вызывает необходимую функцию соответствующей ФС, с которой производится соответствующая операция. Такая многоуровневая структура позволяет максимально абстрагироваться от особенностей каждой конкретной ФС и в случае необходимости эмулировать недостающие атрибуты файла. То есть программа пользователя становиться абстрагирована от особенностей ФС.

31. Псевдо - файловые системы.

ПФС – системные структуры данных, которые не занимают места на магнитном диске и с которыми можно оперировать обычными средствами работы с ФС.

Пример: Procfs является ПФС, обеспечивающей интерфейс с ядром ОС. Эта ПФС позволяет получить доступ к определённым структурам данных ядра, в частности к списку процессов. Все эти структуры выглядят как ФС и ими можно оперировать обычными средствами работы с ФС: proc.

32. Интерфейс пользователя с ос unix (уровень командной строки). Основные интерпретаторы ос unix.

Для диалога с пользователем в UNIX выбран интерфейс командной строки. Человек вводит команду с клавиатуры, машина ее выполняет. Команды могут быть совсем короткими (одно нажатие), могут содержать имя запускаемой утилиты и несколько коротких параметров, а могут быть даже небольшими программами (символов в сто). Команды большего размера неудобно вводить и исправлять прямо в командной строке, их стоит складывать в файл, называемый сценарием (script). Такой сценарий тоже считается программой, его можно вызывать по имени, передавать параметры и т. д. Все команды распознает и выполняет интерпретатор командной строки (shell, "оболочка"), в который встроены специальные возможности, помогающие очень быстро набирать командную строку и оперативно объединять и использовать результаты выполнения других программ.

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

название

автор

компания

где наход

сист пригл

Bourne Shell

Стив Бурн

AT&T

/bin/sh

$

C-Shell

Бил Джой

Университет Berkeley

/bin/csh

%

Bash Shell

FSF – фонд свободного ПО

GNU/Linux

/bin/bash

$

Из всех команд интерпретаторов для UNIX-систем первые две являются классическими, в идейном плане эти интерпретаторы близки, но не совместимы. Поэтому когда в FSF был разработан bash, сочетающий синтаксис Bourne-Shell с мощностью С-shell, он стал стандартом при работе в Linux.

Замечание:

За термином shell на самом деле скрывается 2 существенно различные вещи: собственно командный интерпретатор и воспринимаемый им язык.

Shell – первая программа, с которой начинает работать пользователь.

При запуске shell выполняет соответствующие командные файлы инициализации (для csh: .login, .cshrc).

Shell считывает ввод пользователя, производит синтаксический анализ введённой строки, подстановку шаблонов и выполняет действие, предписанное пользователем.

По завершении работы пользователь набирает команду выхода.

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