Операционные системы

Автор работы: Пользователь скрыл имя, 06 Февраля 2014 в 10:27, курсовая работа

Краткое описание

В данной курсовой работе будут описаны некоторые особенности файловой системы Unix, а также программно реализованы некоторые команды ОС Unix в среде ОС Windows.

Содержание

Введение………………………………………………………………….…….………..5
1 Описание файловой системы Unix………………………………………………….6
2 Постановка задачи…………………………………………………………………….8
3 Описание команд и сравнение их с родственными…………………………………8
4 Выбор средств реализации…………………………………………………………..10
5 Программная реализация эмулятора………………………………………………..12
5.1 Структурная схема алгоритма используемого в программе……………...12
5.2 Модульная структура программы…………………………………………..13
5.3 Описание диалога с пользователем………………………………………...14
Заключение………………………………………….………………………….………17
Список литературы………………………………………………………………….…18
Приложение А……………………………………………………………………….....19

Прикрепленные файлы: 1 файл

Курсовая по ОС.doc

— 274.00 Кб (Скачать документ)

Замечания руководителя

 

Содержание

 

Введение………………………………………………………………….…….………..5

1 Описание файловой системы Unix………………………………………………….6

2 Постановка задачи…………………………………………………………………….8

3 Описание команд и  сравнение их с родственными…………………………………8

4 Выбор средств реализации…………………………………………………………..10

5 Программная реализация эмулятора………………………………………………..12

5.1 Структурная схема  алгоритма используемого в программе……………...12

5.2 Модульная структура  программы…………………………………………..13

5.3 Описание диалога с пользователем………………………………………...14

Заключение………………………………………….………………………….………17

Список литературы………………………………………………………………….…18

Приложение А……………………………………………………………………….....19

 

Введение

Shell - это программа, которая позволяет связываться с операционной системой. shell считывает команды, которые вводит пользователь, и интерпретирует их как запросы на выполнение других программ, на доступ к файлу или обеспечение вывода. Shell также является мощным языком программирования, не похожим на язык программирования Си, который обеспечивает условное выполнение и управление потоками данных.

Чтобы запрос был понятен  системе UNIX необходимо ввести каждую команду в корректном формате или синтаксисе командной строки. Этот синтаксис определяет порядок, в котором вы вводите компоненты командной строки. И вы должны расположить все составные части командной строки в требуемом синтаксисом порядке, иначе shell не сможет интерпретировать ваш запрос.

Пример синтаксиса командной строки:

command   option(s)  argument(s)

Многие команды в Linux представляются в виде маленьких примитивных программок, выполняющих несложные стандартные функции. Помимо таких встречаются очень серьезные пакеты с десятками параметров. Широко известная команда ls выводит содержимое каталога. Однако опций у нее имеется не одни десяток. Никакой диспетчер файлов со своим графическим интерфейсом ничего подобного не отразит. Или другая команда, gcc, вызывает компилятор языка С. Целые книги посвящены описанию ее многочисленных опций. Даже графические интерфейсы - это, по сути, команды. Справку по некоторым командам можно получить с помощью команд man или info. Хотя часто содержимое этих справочных руководств отличается, иногда идентично. Для многих команд вообще не существует man или info.

В данной курсовой работе будут описаны некоторые особенности файловой системы Unix, а также программно реализованы некоторые команды   ОС Unix в среде ОС Windows.

 

 

 

1 Описание файловой системы Unix.

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

Первая часть файла - его метаданные, которые содержат файловый дескриптор (это просто некое  уникальное число), сведения о его  атрибутах (принадлежности, правах доступа, времени модификации и т.д.), а также информацию о том, в каких блоках дискового раздела (которые так и называются - блоки данных) физически размещено содержимое файла - те самые последовательности байтов, которые образуют доступный пользователю ASCII-текст или исполняемый модуль программы.

Метаданные каждого  файла записаны в специальной  области диска, называемой суперблоком, где образуются inodes (от information nodes - информационные узлы). Каждому существующему файлу соответствует свой inode, и именно он однозначно идентифицируется файловым дескриптором. А сам по себе список inodes, соответствующих как существующим файлам, так и свободным блокам дискового раздела, и определяет границы файловой системы, то есть сколько файлов может быть в ней создано.

Так вот, суть процесса создания файловой системы на дисковом разделе (или, в понимании DOS/Windows, его форматирования) - в создании на нем суперблока (или, в некоторых файловых системах, нескольких его копий), списка inodes и отведении  дискового пространства под блоки данных , а также загрузочного блока, а устройством этих дисковых областей определяются различия между файловыми системами различных типов. В результате на новом разделе образуется единственный файл - каталог корневого ,для данной файловой системы, раздела.

Возникает вопрос, почему такой, казалось бы неотъемлемый, атрибут  файла, как его имя, не обнаруживается ни в его метаданных, ни, тем более, среди его данных. Ответ прост: в Unix имя являет собой атрибут  не файла, но файловой системы. И для хранения имен файлов предназначены файлы особого типа - каталоги .В Unix есть и другие типы файлов, например файлы устройств или связи. Каталоги представляют собой просто списки файловых дескрипторов идентификаторов и соответствующих им имен файлов. Поэтому идущая от MacOS и активно используемая в Windows метафора каталога как папки с документами - в Unix только затемняет суть дела: здесь это скорее именно каталожный ящик в библиотеке.

Не смотря на столь  простое устройство, роль каталогов  в файловой системе Unix трудно переоценить: имена файлов, через которые они включаются в файловую систему фигурируют только в составе каталога, к которому файл приписан - и больше нигде в системе. Так что удаление имени файла или подкаталога из списка, представляющего собой данные его родительского каталога ,который, конечно, также имеет свой inode и файловый дескриптор, приписанный к каталогу, расположенному уровнем выше в иерархии файловой системы, и так далее, равносильно тому, что метаданные файла становится недоступными, а приписанные к его inode блоки данных помечаются как свободные. Именно так осуществляется удаление файла командой rm или файловым менеджером типа Midnoght Commander.

Из сказанного понятно, что для того чтобы сделать файловую систему доступной она со всем ее содержимым (суперблоком, списком inode, блоками данных) должна быть включена в состав какого-либо из существующих каталогов, называемого точкой монтирования. Именно это и составляет суть процесса монтирования. Результат же для монтируемой файловой системы - в том, что ее корневой каталог (до сих пор безымянный) получает имя каталога - точки монтирования (mount point), содержимое которого отныне составляет список имен ее файлов и подкаталогов. Обратный процесс - размонтирование, следствием чего является отсоединение от точки монтирования дерева смонтированной файловой системы. Кроме того, в inode ее корневого каталога устанавливается бит чистого размонтирования (clean bit).

 

2 Постановка задачи

В данной курсовой работе необходимо программно реализовать в среде операционной системы Windows восемь команд командного процессора операционной системы Unix. Для реализации были получены следующие команды: wc, cmp, egrep, dc, catt, comm, cp, man. Помимо команд необходимо реализовать некоторые ключи с которыми они могут выполнятся, а также такие операции как перенаправление вывода и ввод мета символов.

 

3 Описание команд и  сравнение их с родственными.

Для начала дадим краткое  описание команд и необходимых ключей.

1) egrep – печатает строки, совпавшие с шаблоном. Интерпретирует шаблон pattern как расширенное регулярное выражение.

-b, – печатает смещение в байтах внутри входного файла до каждой строки вывода.

-с, – вместо обычного вывода для каждого входного файла печатает количество совпавших строк.

Родственные команды ОС Windows:

FIND - поиск текстовой строки в одном или нескольких файлах. 
FINDSTR -  поиск строк в файлах.

2) cat - записывает содержимое каждого заданного файла или стандартного

ввода, если имена файлов не указаны или вместо имени стоит  дефис, на стандартный вывод.

-s, – заменяет набор пустых строк единственной пустой строкой.

Родственные команды  ОС Windows:

TYPE - вывод на экран содержимого текстовых файлов.

3) comm – сравнивает файлы. Вызванная без опции команда соmm создает три выходных столбца. В первом столбце содержатся уникальные строки первого файла, во втором столбце - уникальные строки второго файла, в третьем столбце - общие строки этих двух файлов. Столбцы отделяются друг от друга символом табуляции.

-1 , -2, -3 – запрещает  соответственно вывод первого второго и третьего столбца

-13, -12, -23 –  запрещает  вывод двух соответствующих столбцов.

Родственные команды  ОС Windows:

FC    -   Сравнение двух файлов или двух наборов файлов и вывод различий между ними.

COMP   -  Сравнение содержимого двух файлов или двух наборов файлов.

4) ср – может копировать один файл в другой. А может также копировать несколько файлов в целевой каталог; в этом случае применяется вторая форма команды ср, а последний аргумент командной строки является реально существующим каталогом.

-i – требует подтверждения при перезаписи существующих выходных файлов.

Родственные команды  ОС Windows:

COPY     Копирование одного или нескольких файлов в другое место.

5)  cmp – сравнивает два файла любых типов и заносит результаты сравнения на стандартный вывод. По умолчанию cmp "безмолвствует", если сравниваемые файлы одинаковы, в противном случае распечатываются номера байт и строки, отражающие различие файлов. Байты и строки нумеруются, начиная с 1.

-1, распечатывает смещения и различающиеся значения (восьмеричные) в местах, где обнаружено несовпадение.

Родственные команды  ОС Windows:

FC    -   Сравнение двух файлов или двух наборов файлов и вывод различий между ними.

COMP   -  Сравнение содержимого двух файлов или двух наборов файлов.

6)  dc – производит простейшие арифметические вычисления.

+ - / * - знаки действия

Р – аналог знака равно.

7) wc - подсчитывает слова, символы или строки в одном или более файлах.

Подсчитывает количество байт (символов), слов, разделенных пробелами или другими неизображаемыми символами, строк, разделенных символом новой строки, в указанном файле.

Печатает строку счетчиков  для каждого файла, за которыми следует  собственно имя файла. Если в командной  строке задано более одного файла, распечатывает итоговую строку «итого», содержащую накопленные значения счетчиков.

-с - печатает только счетчики байт.

-w, - Печатает только счетчики слов.

-1 - печатает только счетчики строк.

8) man  - выдает справку по любой из заданных команд

Родственные команды ОС Windows:

HELP - выводит справочную информацию о командах Windows.

4 Выбор средств реализации.

Для решения поставленной задачи была выбрана среда быстрой разработки приложений Delphi 7. На мой взгляд это наиболее удобный способ добиться решения задачи такого уровня в поставленные сроки. Простой интерфейс написанный на самом же Delphi, удобная пошаговая отладка – это далеко не все преимущества этой среды. Работа по созданию программы помогла мне более глубже изучить среду программирования Delphi .

Палитра компонентов VCL – библиотеки визуальных компонентов Delphi, имеет ряд страниц на которых скомпонованы пиктограммы всех компонентов, предопределенных в Delphi. Среди них существует множество компонентов позволяющих отображать, вводить, редактировать текстовую информацию.

В данной работе я использовал  простейшее окно для ввода или  вывода текстовой информации Memo,  расположенное на вкладке Standart палитры компонентов. В компоненте Memo формат (шрифт, его атрибуты, выравнивание) одинаковы для всего текста и определяется свойством Font. Если вы сохраните в файле текст, введенный или отредактированный пользователем, то будет создан текстовый файл, содержащий только символы и не содержащий элементов форматирования. При последующем чтении этого файла в Memo формат будет определяться текущим состоянием свойства Font компонента Memo, а не тем, в каком формате ранее вводился текст. Основное свойство окна Memo — Lines, содержащее текст окна в виде списка строк и имеющее тип TStrings. Начальное значение текста можно установить в процессе проектирования, нажав кнопку с многоточием около свойства Lines в окне Инспектора Объектов. Перед вами откроется окно редактирования списков строк. Вы можете редактировать или вводить текст непосредственно в этом окне, или нажать кнопку CodeEditor и работать в обычном окне Редактора Кода.

Во время выполнения приложения вы можете заносить текст в окно редактирования с помощью методов свойства Lines типа TStrings. Этот тип широко используется в свойствах многих компонентов.

Весь текст, представленный одной строкой типа String, внутри которой используются разделители типа символов возврата каретки и перевода строки, со-

держится в свойстве Text.

Доступ к отдельной  строке текста вы можете получить с  помощью свойства

Strings[Index: Integer]. Индексы, как и везде в Delphi, начинаются с 0. Так что

Memol.Lines.Strings[0] — это  текст первой строки. Учтите, что  если окно редактирования изменяется в размерах при работе с приложением и свойство WordWrap = true, то индексы строк будут изменяться при переносах строк, так что в этих случаях индекс мало о чем говорит.

Также в данной курсовой работе будут использованы стандартные  процедуры файлового ввода и  вывода. Перечислим основные:

AssignFile(var F; File Name: string) - Связывает имя внешнего файла FileName с файловой переменной F.

Eof(var F): Boolean - возвращает true при достижении конца файла, связанного с файловой переменной F.

Readln (var F: Text; «список переменных») - читает одно или более значений в одну или более переменных и переходит на начало следующей строки текстового файла, связанного с файловой переменной F.

Информация о работе Операционные системы