- •Вопросы
- •Содержательные аспекты основных терминов, используемых в курсе «ос и ост». Вычислительные системы. Основные типы программного обеспечения (по).
- •Ос. Управление ресурсами.
- •Операционная система. Услуги ос.
- •Операционная система. Прерывания.
- •Имя файла № индексного дескриптора – inod
- •Уровни стека протоколов tcp/ip. Транспортный и прикладной уровни.
- •Основные достоинства стека протоколов tcp/ip.
- •Обзор сетевых команд стека протоколов tcp/ip.
- •Использование сетевых команд.
- •Типы адресов в сети Internet. Физические (мас) адреса.
- •Электронная почта. Проблемы передачи двоичных файлов.
Имя файла № индексного дескриптора – inod
Способ представления имени зависит от типа ФС. Никакой другой информации в элементе каталога нет, т.е. каталог только отображает имя файла -> номер inod’а
В любом каталоге содержится два стандартных имени: « . » и « .. ».
« . » - соответствует inod самого этого каталога
« .. » - соответствует inod «родительского» каталога ( каталог, в котором содержится имя данного каталога )
Один индексный дескриптор может быть связан с несколькими именами файлов. Такие ссылки называются жёсткими и могут быть использоваться только внутри одной ФС
Существует ещё один тип ссылок. Эти ссылки содержат только имя файла и называются символическими [ ключ - S в команде ln].
Виртуальная ФС. Принцип функционирования.
Виртуальная файловая система (англ. virtual file system — VFS) или виртуальный коммутатор файловой системы (англ. virtual filesystem switch) уровень абстракции поверх конкретной реализации файловой системы. Целью VFS является обеспечение единообразного доступа клиентским приложениям к различным типам файловых систем. VFS может, например, быть использована для прозрачного доступа к локальным и сетевым устройствам хранения данных без использования специального клиентского приложения. Она может быть использована для устранения различий между файловыми системами Windows, Mac OS и Unix так, что приложения могут получить доступ к файлам на локальных файловых системах, не зная тип файловой системы, к которой они получают доступ. VFS определяет интерфейс между ядром и конкретной файловой системой. Таким образом, можно легко добавлять поддержку новых типов файловых систем для ядра.
Иногда виртуальными файловыми системами называют псевдо-файловые системы, которые не предназначены для хранения данных. Примером такой системы является procfs.[1]
Одной из первых виртуальных файловых систем в Unix-подобных ОС была реализована Sun Microsystems в SunOS 2.0 в 1985 году. Это позволило системным вызовам Unix получить прозрачный доступ к локальной UFS и удалённой NFS. По этой причине, вендоры Unix-систем, получившие лицензию на код NFS, часто копировали дизайн VFS от Sun. Другие файловые системы могут быть подключены также: появилась реализация файловой системы MS-DOS FAT, разработанная в Sun, использовавшая SunOS VFS, хотя она не поставлялась в качестве продукта до SunOS 4.1. Реализация SunOS лежит в основе механизма VFS в System V Release 4.
Джон Хейдеманн (John Heidemann) разработал стековую VFS под SunOS 4.0 для экспериментальной файловой системы Ficus. Этот проект предусматривал повторное использование кода в файловых системах с различной, но похожей семантикой (например, шифрованная файловая система может использовать систему имён и код для хранения данных не шифрованной файловой системы). В своей диссертации Хейдеманн адаптировал эту работу для использования в 4.4BSD. Наследники этого кода лежат в основе реализаций современных файловых систем в операционных системах, производных от BSD, включая Mac OS X.
Другие виртуальные файловые системы Unix включают File System Switch в System V Release 3, Generic File System в Ultrix и VFS в Linux.
В OS/2 и Microsoft Windows, механизм виртуальной файловой системы называется устанавливаемой файловой системой (Installable File System).
Файловая система в пользовательском пространстве (Filesystem in Userspace — FUSE) позволяет программам реализовать файловую систему в пользовательском пространстве через подключение к виртуальной файловой системе. FUSE используется в Linux, FreeBSD, OpenSolaris, и Mac OS X.
Псевдо - файловые системы.
Файловые системы, располагающиеся в оперативной памяти.
Интерфейс пользователя с ОС UNIX (уровень командной строки). Основные интерпретаторы ОС UNIX
- для диалога с пользователем в UNIX исторически выбран интерфейс командной строки
- вводится команда с клавиатура, машина её выполняет
- команды большого размера принято складывать в файл сценария ( script ).
- все команды распознает и выполняет интерпретатор командной строки ( shell, «оболочка» ), в который встроены специальные возможности, помогающие очень быстро набирать командную строку и оперативно объединять и использовать результаты выполнения других программ.
- когда пользователь зашёл в систему, то он начинает взаимодействовать с программой Shell
- Shell не обладает какими – либо привилегиями в смысле доступа к системным ресурсам
- Shell работает в режиме интерпретации
Основные интерпретаторы:
Bourne Shell, C – Shell, Bash Shell
Интерфейс пользователя с ОС UNIX (уровень командной строки). Общий механизм выполнения команд.
Команда – последовательность слов после приглашения ( $ ), разделённых пробелами ( первое слово – имя команды, остальные – опции и аргументы ).
- выполняются также shell – процедуры ( команды, написанные на соответствующем языке – файл сценария, скрипт ) – используется при загрузке ОС
- /bin – большое количество shell – процедур
Внутренние команды:
- расположены в данном shell’е
- при выполнении не порождается отдельный процесс
Внешние команды:
- хранятся в виде отдельных исполняемых файлов
- при их выполнении порождается отдельный процесс
Интерфейс пользователя с ОС UNIX (уровень командной строки). Файлы, ассоциированные с процессом.
С каждым процессом в ОС UNIX ассоциированы как минимум 3 файла:
- стандартный ввод
- стандартный вывод
- стандартная диагностикаx
Интерфейс пользователя с ОС UNIX (уровень командной строки). Конвейеры.
Конвейер – последовательность команд, разделённых символом « | »
- стандартный ввод всех команд, кроме последней, направлен на стандартный ввод следующей команды
- каждая команда выполняется как самостоятельный процесс
- соединение в конвейер даже относительно простых команд способно дать по существу новое качество
Интерфейс пользователя с ОС UNIX (уровень командной строки).Управляющие конструкции языка shell.Экранирование. Перенаправление ввода – вывода.
Shell работает в режиме интерпретации.
На shell написаны все системные сценарии, поскольку он представляет собой еще и удобный высокоуровневый язык программирования.
При запуске shell выполняет соответствующие командные файлы инициализации (для csh: .login, .cshrc).
Shell считывает ввод пользователя, производит синтаксический анализ введённой строки, подстановку шаблонов и выполняет действие, предписанное пользователем.
Базовые программные средства для создания приложений в ОС UNIX. Краткая характеристика.
Все инструменты базового уровня включены в систему Development system. Они доступны на уровне командной строки. Они обеспечивают полный набор средств для разработки приложений, работающих в среде продуктов соответствующей ОС UNIX ( или UNIX – подобной ОС ). В основной набор средств включены:
- компилятор с языка Си ( GCC )
- утилита make
- программа отладки ( GDB )
- системы обслуживания/контроля исходного кода программы ( CVS, SCCS,… ).
Фонд свободного ПО (FSF). Общая характеристика.
FMS ( Free Software Movement ) и FSF ( Free Software Foundation ) – их задачей является устранение ограничений по копированию, распространению, изучению, модификации программ для компьютера.
FSF – программистская организация, основанная в 1985 году и возглавляемая Ричардом Столлманом.
FSF и проект GNU.
Ричард Столлман – основатель и главный идеолог Движения за Свободное Программное Обеспечение, президент FSF.
Столлман – родоначальник проекта GNU, начавший в 1984 году разработку системы GNU – полной UNIX – подобной операционной системы, являющейся свободным программным обеспечением.
GNU и Linux.
Линус Торвальдс – автор и ведущий разработчик ядра UNIX – подобной операционной системы Linux.
Вариант операционной системы GNU, использующей ядро Linux ( GNU/Linux ). Она создавалась и разрабатывалась в соответствии с идеями FSF.
Основные этапы разработки приложений. Сохранение различных вариантов исходного текста.
Создание исходного кода программы ( Vi, Vim, … )
Анализ исходного текста.
CB – форматирование исходного кода на Си
CSCOPE – исследование функций, содержащихся в программе
CSLAW – идентификация уровня вложенности функций, содержащихся в программе
CXREF – создание таблицы перекрёстных ссылок для функций и переменных, используемых в программе
Lint – критическая проверка программ, написанных на Си. Обнаруживает многие типы ошибок. Не создаёт объектный файл, она просто формирует предупреждения и комментарии к исходному тексту
Сохранение различных вариантов исходного текста ( CVS, SCCS )
Компиляция исходного текста и построение исполняемого модуля ( GCC, make )
Тестирование и отладка ( GDB, DBXtra )
Основные этапы разработки приложений. Построение исполняемого модуля.
Построение исполняемого модуля выполняется компилятором Си в ОС UNIX.
Make – служит для документирования связей между файлами/модулями программы. Описание зависимостей и соответствующих действий хранится в make – файле.
Основные этапы разработки приложений. Тестирование и отладка.
Основные этапы разработки приложений. Схема функционирования CVS.
CVS - хранит все версии файлов в одном файле таким образом, что запоминает лишь отличия между версиями.
Упрощённая схема работы CVS:
- создание репозитория
- создание рабочего каталога и размещение в нем отлаживаемой программы ( текущей версии )
- передача текущей версии исходного файла под управление CVS
Основные этапы разработки приложений. Анализ примера использования CVS.
CVS широко применяется при разработке подавляющего большинства программных проектов с открытым кодом. На ранке свободно распространяемых программы системе CVS практически нет конкурентов, так как CVS предназначена для работы с любыми текстами.
Системные вызовы и библиотечные функции.
Все версии UNIX предоставляют строго определённый ограниченный набор входов в ядро ОС, через которые прикладные процессы имеют возможность воспользоваться базовыми услугами, предоставляемыми ОС. Эти точки входа называются системными вызовами. Системный вызов определяет функцию, выполняемую ядром ОС, и является интерфейсом самого низкого уровня взаимодействия прикладных процессов с ядром.
Сетевые ОС (СОС). Структура СОС.
При организации сетевой работы ОС играет роль интерфейса, экранирующего ( скрывающего ) все детали низкоуровневых программно – аппаратных средств сети. В результате ( в представлении пользователя ) сеть с её множеством сложных и запутанных деталей превращается в достаточно понятный набор разделяемых ресурсов.
- сетевая ОС составляет основу любой компьютерной сети
- каждый компьютер в сети в значительной степени автономен, поэтому под сетевой ОС в широком смысле понимается совокупность ОС отдельных компьютеров, взаимодействующих с целью обмена сообщениями и разделения ресурсов по общим правилам ( протоколам ).
- в узком смысле – это ОС отдельного компьютера, обеспечивающая ему возможность работать в сети.
Средства управления локальными ресурсами
Реализация функции распределения оперативной памяти между процессами
Управление периферийными устройствами
Функции планирования и диспетчеризации процессов
Серверная часть ( сервер )
Обеспечивают блокировку файлов и записей, что необходимо для их совместного использования
Ведение справочников имён сетевых ресурсов, обработка запросов удалённого доступа к собственной ФС и базе данных
Управление очередями запросов удалённого пользования к своим периферийным устройствам
Клиентская часть ( клиент )
Выполняет распознавание и перенаправление в сеть запросов к удалённым ресурсам от приложений пользователя. Запрос поступает от приложения в локальной форме, а передаётся в сеть в другой форме – в соответствии с требования сервера
Осуществляется приём ответов от серверов ( других компьютеров ) и преобразование их в локальный формат
Коммуникационные средства
С помощью коммуникационных средств происходит обмен сообщениями в сети. Они обеспечивают адресацию и буферизацию сообщений, надёжность передачи и другие функции.
Эта часть сетевой ОС является средством транспортировки сообщений.
Сетевые средства ОС UNIX на основе стека протоколов TCP/IP. Краткая характеристика.
ОС UNIX является системой, предназначенной для работы в сети. Это означает, что в ней реализованы все средства современных сетевых ОС:
- доступ к удалённым объектам осуществляется средствами самой системы, а не за счёт наращивания дополнительных уровней программных оболочек
- средства сетевого доступа, согласованны между собой
При использовании ОС UNIX связь в сети в основном осуществляется в соответствии со стеком протоколов TCP/IP. Стек протоколов TCP/IP даёт возможность взаимодействовать хостам ( компьютерам ) как в локальных сетях, так и при выходе в глобальные сети.
Архитектура стека протоколов TCP/IP.
В компьютерных сетях идеологической основой стандартизации является многоуровневый ( иерархический ) подход к разработке средств сетевого взаимодействия и именно на основе этого подхода была разработана архитектура стека протоколов TCP/IP.
На основе этого же подхода была разработана стандартная семиуровневая модель взаимодействия открытых систем ( модель OSI ), которая стала своего рода универсальным языком сетевых специалистов.
Основные этапы истории стека протоколов TCP/IP. Документы RFC.
- в 1969 году агентство перспективных исследований министерства обороны США ( DARPA ) начало финансирование проекта по созданию экспериментальной компьютерной сети коммутации пакетов. По мере развития сети были разработаны коммуникационные протоколы ( набор правил и форматов данных необходимых для установления связи и передачи данных ). В результате появилось семейство протоколов TCP/IP.
- большой вклад в развитие стека протоколов TCP/IP внёс университет Беркли; он реализовал протоколы стека TCP/IP в своей версии ОС UNIX. Широкое распространение этого стека ( в частности, протокола IP ).
- на стеке протоколов TCP/IP работает всемирная информационная сеть INTERNET. Подразделение INTERNET ( IETF – INTERNET Enginering Task Fore ) вносит основной вклад в совершенствование стандартов стека, публикуемых в форме спецификаций RFC ( обращение за разъяснениями ).
- документация о работах в INTERNET, предложение о новых или переработанных протоколах и стандартах стека протоколов TCP/IP появляются в виде технических отчётов RFC ( для разработчиков и пользователей ).
RFC:
- для разработчиков – спецификации ( стандартов ) расшифровывается как « запрос на комментарии»
- для пользователей – спецификации ( разработчиков ПО ) расшифровывается как «обращение за разъяснениями»
Уровни стека протоколов TCP/IP. Уровень сетевого интерфейса.
- составляют протоколы обеспечивающие физический доступ к сети. С помощью этих протоколов осуществляется передача данных между коммуникационными узлами, расположенными в одной из «сети».
Протоколы уровня сетевого интерфейса формально не являются частью семейства протоколов TCP/IP. Однако, стандарты INTERNET определяют, каким образом должна осуществляться передача данных TCP/IP с использованием протоколов Ethernet, Token, Ring, FDDI и т.д.
Уровни стека протоколов TCP/IP. Межсетевой уровень.
- составляют протоколы, обеспечивающие передачу данных между компьютерами, подключенными к различным «сетям». Одна из задач, которая должна быть реализована протоколами этого уровня, является выбор маршрута следования данных.
Сетевые элементы, осуществляющие передачу данных из одной «сети» в другую, получили название ( в контексте стека протоколов TCP/IP ) маршрутизаторов ( шлюзов ). Маршрутизатор имеет несколько сетевых интерфейсов, подключенных к различным физическим сетям и его основной задачей является выбор маршрута передачи данных из одного сетевого интерфейса в другой. Основной представитель множественного уровня – протокол IP.