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


Дисциплина: Информатика, Программирование, Базы данных
Тип работы:  Курсовая работа
Бесплатно:  Антиплагиат
Объем: 31 страниц
В избранное:   

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РЕСПУБЛИКИ КАЗАХСТАН

Казахский национальный технический университет

им. К. И. Сатпаева

Институт информационных технологий

Кафедра вычислительной техники

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе

Тема: Операционная система UNIX

Руководитель

Преподаватель

Джанабаев М. А.

«»2004 г.

Нормоконтролер

Джанабаев М. А

«»2004 г.

Алматы 2004г.

ЗАДАНИЕ

на выполнение курсовой работы по дисциплине «Информатика»

Студенту Морозов Олег Игоревич

Тема работы: Операционная система UNIX.

Дата сдачи законченной работы «» 2004 г.

Перечень подлежащих разработке вопросов

Руководитель Джанабаев М. А. //

(подпись)

Задание принял к исполнению студент Морозов Олег Игоревич

//

(подпись)

Дата выдачи «»2004 г.

СОДЕРЖАНИЕ

Задание. . 2

Содержание. . 3

Введение . . . 4

  1. Что представляет собой ОС UNIX. 6
  2. Структура системы. . 6Ядро и процессы. 6Система ввода-вывода 9Оболочка системы. . 11Интерпретатор команды shell 11Программы. . 13Команды . . . 16Пользователь . . . 17Привилегированный пользователь . . . 17
  3. Вход в систему. 18
  4. Командная строка. 18
  5. Файловая система. 19Работа с файлами и каталогами. 19Права доступа к файлам и каталогам 22Защита информации 22
  6. Получение помощи. . 23
  7. Работа с графическим интерфейсом. . 24
  8. Системное администрирование. . 25
  9. Утилиты 26
  10. Словарь терминов 28

Заключение . . . 29

Приложение А. Краткое описание распространенных команд……… . . . 30

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

Введение

В чём преимущество операционной системы UNIX перед другими системами и, что такое вообще операционная система.

Большинство операционных систем разрабатывались фирмами - производителями вычислительных машин в расчёте на повышение спроса на них.

Первые машины вообще выпускались без операционных систем - голыми. Они управлялись с помощью набора переключателей на пульте управления, и на такой машине, естественно, могли работать только инженеры высшей квалификации. Желание уменьшить влияние специалистов и приблизить ЭВМ к простому пользователю и вызвала появления первых операционных систем.

Любая операционная система представляет собой набор программ, управляющая ресурсами ЭВМ. Работа этих программ строго координирована.

Операционная система UNIX создавалась в несколько этапах. Все началось в 1965-69 гг. В концерне AT&T в рамках проекта Miltics для большой машины Genral Electric GE -645. В то время AT&T могла только разрабатывать, но не продавать компьютерные продукты в результате действующих тогда в США антимонопольных законов.

В 1969 г. Bell Labs решает выйти из проекта Multics, чтобы сосредоточить все свои усилия на создания мобильной операционной среды под условным названием UNIX.

Первоначально UNIX была написана на ассемблере для DEC PDP - 7. Затем к этому проекту был превечен Денис Ритчи, который в то время разработал язык В. Основную часть UNIX на В. В процессе работы язык В на столько усовершенствовался, что преобразился в С это было в1973г.

Операционная система UNIX отличалась от других систем тем, что имела только 10%(1000 строк) когда ассемблера. Уже в1976г. в первый раз была перенесена на другие машины- Interdata 8 /32.

В1971г. торговая марка UNIX, была запатентована для серии машин DEC PDP-11/20, наиболее распространенных. За несколько лет UNIX перетерпела несколько изданий, которые оказались наиболее популярными. Это шестое(1976) и седьмое(1979) .

Нарастающая популярность UNIX заставила калифорнийский университет в Беркли предложить свой вариант UNIX - BSD (Berkley Software Distribution), на базе которого по заказу DARPA(агентство перспективных проектов военного ведомство США) компания BBN реализовала в систему BSD 4. 1. протоколы TCP/IP. Так возникла сеть Internet.

Начинались попытки стандартизации. Шагом UNIX является появление в 1989г. ANSI стандарта для С. ( 16 лет спустя после его рождения ) .

Долгим и тернистым был путь UNIX на рынок программных средств. И официальным считается с 1. 01. 84г. Тогда дочерняя компания AT&T Bell Labs была переименована в USL -UNIX System Laboratories.

В мае 1988г. несколько ведущих компаний, между которыми были Apollo, Bull, НР, IBM и System, учредили фонд открытых систем OSF- организацию с целью разработки и распространения открытых программных систем.

С самого начало UNIX разрабатывалась как многопользовательская операционная система (далее - ОС), нормальный режим системы является режим при котором пользователи решают различные задачи. Если же набор задач однородный, то система будет работать менее эффективно.

В целом следует отметить, что UNIX даже в условиях роста числа ОС - не ординарное явление в вычислительном мире. Система весьма перспективна и представляет собой теоретический и практический интерес.

1. Что представляет собой ос UNIX

Рассмотрим характеристики операционной системы UNIX, по которым она отличается от других операционных систем.

  • Структурированная многоуровневая файловая система.
  • Многопользовательская система.
  • Выполняет одновременно более одной программы.
  • Механизмы, которые позволяют одной программе передавать ее результаты непосредственно в другую программу.
  • Возможность для любого пользователя переводить выдачу результатов работы программы с одного переферийного устройства на другое (например, с дисплея терминала на дисковод. ) .
  • Встроенный командный интерпретатор и язык
  • Структурированный язык Си для системного программирования.
  • Рассширенные средства для написания и разработки программ на Си и других языках программирования.
  • Рассширенные средства для ввода, внесения изменений и обработки текста и подготовки его к печати.

2. Структура системы

2. 1 Ядро и процессы

Ядро UNIX состоит из двух секций - секции управляющих структур и программной секции. В секции управляющих структур располагаются таблицы ядра, которые играют не пассивную, а активную роль управляющего.

Основные функциональные затраты при работе программ ядра приходится именно на работу с таблицами. К ним относятся таблицы процессов, программного текста файлов, индексных дескрипторов файлов, связи драйвер и другие. Программная секция ядра в свою очередь состоит из двух частей: диспетчера процессов и диспетчера внешних устройств. Диспетчер процессов - управляет процессами, в его функцию входят: определение последовательности процессов; обработка системы - вызовов; распределение ресурсов системы. Эта часть ядра является независимой и практически не изменяется при переносе ОС с одной вычислительной машины, на другую.

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

В каждый момент времени процессор ЭВМ может находиться в одной из 3-х состояний .

  1. Работать в состоянии “система” если выполняются команды ядра;
  2. Работать в состоянии “процесс” если выполняются команды пользовательского процесса;
  3. Работать в состоянии “ожидания” если в системе нет процессов, готовых к выполнению.

Механизм перехода процессора из одного состояния в другое отличается для различных вычислительных машин, в одном случае он обеспечивает аппаратно через систему прерываний, в другом - поддерживается только на программном уровне. Переход процессора из состояния “процесс” в состояние “систем” может быть вызван одной из следующий причин:

  • Прерывание по таймеру;
  • Обработка системного вызова;
  • Прерывание от ввода-вывода.

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

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

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

Как упоминалось выше, UNIX работает в многопользовательском режиме. Потому процессы выполняются последовательно, и конкурирует между собой за время центрального процесса.

Процесс может находиться в одном из трех состояний: активном, готовом или блокированным (ожидания) .

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

Ограниченный объем основной памяти не позволяет разместить в ней все процессы одновременно. Часть из них располагается во внешней дисковой памяти в области своппинга. Своппинг осуществляется диспетчером процессов и состоит в выгрузке процессов на диск и загрузки их в основную память.

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

Помимо управления процессами, диспетчер процессов осуществляет распределение ресурсов системы через реализацию системных вызовов.

Контекст процесса:
  1. Контекст процесса
Контекст процесса:
  1. Процедурный сегмент
Контекст процесса:
  1. Сегмент данных
Контекст процесса:
  1. Динамический сегмент

Таблица 1. 1 Структура пользовательского процесса.

Контекст процесса - эта некоторая таблица, в которой хранится системная информация о процессе при его нахождении в основной памяти. Контекст процесса подвергается свопингу совместно с процедурным сегментом и сегментом данных.

Процедурный сегмент- содержит команды процесса и их константы. В UNIX все процедурные сегменты являются рентабельными. Процедурный сегмент и сегмент данных составляет образ процесса. Он формирует трансляцию программ, как совокупность двух указанных составных частей. Однако, задав при трансляции специальный параметр, если создадим образ процесса с разделяемым процедурным сегментом и сегментом данных, тогда процедурный сегмент будем называть чистым кодом. Чистый код хранит в своей памяти одну копию процедурного сегмента, она будет разделяться всеми процессами, а сегмент данных для каждого процесса будет свой. Например, интерпретатор shell.

Создать новый процесс можно с помощью системного вызова fork. Порожденный процесс наследует все характеристики порождающего процесса. Приостановить работу можно с помощью системного вызова wait, до наступления события указанного в вызове, чтобы прейти к выполнению новой программы, через системный вызов ехес, следовательно, инициализация новой программы UNIX - это практически всегда пара системных вызовов fork и exec.

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

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

Менее важная, но более емкая информация хранится в контексте процессора, расположено в адресном пространстве ядра. Таблица процессов и контекст процесса взаимно дополняют друг друга. Их разделение необходимо в целях минимизации объёма ядра.

Это позволяет “общаться” с процессом, даже если он не активен, или находится в результате своппинга, и оказался на диске. Именно на этом построен механизм логического взаимодействия между процессами.

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

Информационное взаимодействие между процессами осуществляется 3-мя способами:

  1. Через передачу внешних аргументов (в пределах одного процесса) ;
  2. Через файловую систему;
  3. Через программный канал.

После порождения нового процесса часто бывает необходимо в его рамках выполнить другую программу, которая системным вызовом ехес загружается на место старой. Чтобы не было потерь внешних аргументов при смене образцов процессов, и переписывает по системному вызову ехес в ядро системы, а затем восстанавливаетсяв новом образе процесса.

2. 2 Система ввода-вывода

Не одна ОС не обходится без системы ввода-вывода. Вот и ОС UNIX не оказалось исключением.

Одной из сильных сторон операционной системы UNIX является гибкость ее системы ввода-вывода. Реализация механизма основывается на следующих свойствах ОС UNIX. Во-первых, любой ввод/вывод трактуется как ввод из некоторого файла и вывод в некоторый файл. Клавиатура и экран терминала тоже интерпретируются как файлы (первый можно только читать, а во второй можно только писать) . Во-вторых, доступ к любому файлу производится через его дескриптор (положительное целое число) . Фиксируются три значения дескрипторов файлов. Файл с дескриптором 1 называется файлом стандартного ввода (stdin), файл с дескриптором 2 - файлом стандартного вывода (stdout), и файл с дескриптором 3 - файлом стандартного вывода диагностических сообщений (stderr) . В-третьих, программа, запущенная в некотором процессе, "наследует" от породившего процесса все дескрипторы открытых файлов.

В головном процессе интерпретатора командного языка файлом стандартного ввода является клавиатура терминала пользователя, а файлами стандартного вывода и вывода диагностических сообщений - экран терминала. Однако при запуске любой команды можно сообщить интерпретатору (средствами соответствующего командного языка), какой файл или вывод какой программы должен служить файлом стандартного ввода для запускаемой программы и какой файл или ввод какой программы должен служить файлом стандартного вывода или вывода диагностических сообщений для запускаемой программы. Тогда интерпретатор перед выполнением системного вызова exec открывает указанные файлы, подменяя смысл дескрипторов 1, 2 и 3.

> файл - стандартный вывод. Поместить выходную информацию в файл, а не посылать ее на экран. То, что находилось в файле раньше, будет уничтожено. Например, если Вы хотите, чтобы список файлов Вашего каталога не выводился на экран, а был записан в файл, необходимо дать следующую команду:

ls -l > filelist

>> файл - стандартный вывод с добавлением. Дописать выходную информацию в файл следом за его содержимым.

< файл - стандартный ввод. Взять выходную информацию из файла, а не с клавиатуры. Стандартный ввод и вывод используются в виде “команда другая команда”

Конвейер. Взять стандартный вывод одной программы и использовать как стандартный ввод другой. Это одна из самых богатых возможностей ОС UNIX; комбинируя команды, эту функцию можно использовать для создания собственных команд.

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

Физическая организация системы управления вводом-выводом базируется на специальных программных средствах, работающих на уровне ядра и называемые драйверами ввода-вывода. Драйвер- программа обмена данными, разработанная к конкретному устройству и учитывая его особенности.

Драйверы ввода-вывода и система буферизации ядра поддерживают 2 вида интерфейсов - блок-ориентированный и байт-ориентированный.

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

Байт-ориентированный интерфейс предназначен для медленных периферийных устройств, обмен осуществляется в этом случае посимвольно, через буфер символов в ядре системы.

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

2. 3 Оболочка системы

Оболочка помогает нам управлять компьютером.

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

2. 4 Интерпретатор команды shell

Далее для изучения и работы с операционной системой UNIX нам понадобится интерпретатор команды shell. Посмотрим, для чего его используют.

Интерпретатор команды shell - одна из наиболее важных и сложных программ системы. Она обеспечивает интерфейс пользователь- ядро и выполняет следующие основные функции:

Интерпретирует команды;

Обрабатывает имена файлов, определенные через метасимволы;

Осуществляет переадресацию ввода-вывода;

Создает среду пользователя;

Поддерживает командный язык.

Команды интерпретатора shell реализуются обычными программами, записные на языке С для UNIX . Условно все команды можно разбить на группы: информационные, служебные и работы с файловой системой и файлами.

Информационные команды позволяют получать различного рода справки о состояние системы и справочную информацию. Наиболее важные команды этой группы:

Date- вывести и установить дату и время;

Ps - получение информации о процессах;

Who- получение информации о работающих в системе.

... продолжение

Вы можете абсолютно на бесплатной основе полностью просмотреть эту работу через наше приложение.
Похожие работы
UNIX: История и Философия Операционной Системы
Операционные системы: история и развитие Windows, Unix, Linux, Android и MS DOS
Обзор популярных операционных систем: от Windows до Unix и Linux
Архитектура и Структура Операционных Систем: MS DOS и Развитие Микропроцессоров на Базе Intel 386/486 и Pentium
Операционная система UNIX: файлы, IPC, системные вызовы и управление процессами
Основы Linux: терминология, дистрибутивы и компоненты операционной системы
Компоненты и услуги операционной системы Windows 98
Операционные системы Windows: особенности, преимущества и недостатки различных версий
Архитектура и Функциональные Характеристики Операционных Систем: Теоретические Основы и Практические Реализации
Базовые понятия Linux: терминология, компоненты и функции
Дисциплины



Реферат Курсовая работа Дипломная работа Материал Диссертация Практика - - - 1‑10 стр. 11‑20 стр. 21‑30 стр. 31‑60 стр. 61+ стр. Основное Кол‑во стр. Доп. Поиск Ничего не найдено :( Недавно просмотренные работы Просмотренные работы не найдены Заказ Антиплагиат Просмотренные работы ru ru/