История создания и основание операционной системы UNIX.
История ОС UNIX неразрывно связаны с американской компанией AT&T Bell Laboratories и прославленными именами сотрудников этой фирмы Кэна Томпсона, Денниса Ричи и Брайана Кернигана.
С 1965 по 1969 г. фирма Bell Labs совместно с компанией General Electric и группой исследователей из Массачусетского технологического института участвовала в проекте ОС Multics. Эта операционная система, хотя и не была полностью доведена до стадии коммерческого продукта, обогатила мировое сообщество системных программистов массой ценных идей, многие из которых сохраняют свою актуальность по сей день и используются применительно не только к операционным системам. Основным недостатком ОС Multics, который, по всей видимости, и помешал довести систему до уровня программного продукта, была ее чрезмерная сложность.
Оставив проект Multics, немногочисленная группа сотрудников Bell Labs решила разработать свою собственную простую операционную систему, пригодную для их собственных нужд. С этого и началась ОС UNIX. Название UNIX было придумано Брайаном Керниганом для простейшей операционной системы, работавшей на PDP 7 (1970 г.). Эта система была написана на языке ассемблера и была мало похожа на современный UNIX: сохранились только общие подходы к логической организации файловой системы и управлению процессами, а также некоторые утилиты для работы с файлами.
В 1971 г. система была переписана (все еще на языке ассемблера) для более мощной ЭВМ PDP 11/20. В первой версии ОС UNIX для PDP 11 были воплощены уже почти все идеи, признаваемые теперь как основа UNIX. Отсутствовал только механизм взаимодействия процессов через программные каналы (pipe), но и этот механизм появился во второй версии системы. Параллельно с этим велась разработка языка программирования, пригодного для написания операционных систем. На основе существовавшего к этому времени языка BCPL был создан популярнийший теперь язык Си.
И, наконец, в 1973 г. ОС UNIX была переписана на языке Си. Основными разработчиками этого варианта системы были Томпсон и Ритчи. Широкое распространение получила шестая версия UNIX (1975 г.), но подлинную революцию произвела разработка седьмой версии, которая стала первой по- настоящему мобильной версией системы. Это было продемонстрировано прежде всего самими разработчиками, осуществившими успешный перенос системы с 16- разрядной PDP 11 на 32-разрядную ЭВМ Interdata 8/32 (1977 г.). C 1979 г. UNIX Version 7 начала активно распространяться и была перенесена на множество разнообразных ЭВМ.
Важным этапом в истории OC UNIX явилась разработка версии системы для ЭВМ VAX 11/780 (UNIX 32V). Эта работа была выполнена сотрудниками Bell Labs Джоном Рейзером и Томом Лондоном и получила дальнейшее развитие в Калифорнийском университете (г. Беркли) в серии BSD UNIX. В дальнейшем история ОС UNIX развивалась весьма бурно, так что проследить все детали затруднительно. В настоящее время с тематикой ОС UNIX связано множество коммерческих фирм и исследовательских организаций. Среди них имеются и организации, разрабатывающие новые варианты системы, и фирмы, занимающиеся исключительно переносом существующих вариантов на новые ЭВМ
Основные понятия операционной системы UNIX.
Одним из достоинств ОС UNIX является то, что система базируется на небольшом числе интуитивно ясных понятий. Однако, несмотря на простоту этих понятий, к ним нужно привыкнуть. Без этого невозможно понять существо ОС UNIX.
2.1 Пользователь.
С самого начала ОС UNIX замышлялась как интерактивная система. Другими словами, UNIX предназначен для терминальной работы. Чтобы начать работать, человек должен «войти» в систему, введя со свободного терминала свое учетное имя (account name) и, возможно, пароль (password). Человек, зарегистрированный в учетных файлах системы, и, следовательно, имеющий учетное имя, называется зарегистрированным пользователем системы. Регистрацию новых пользователей обычно выполняет администратор системы. Пользователь не может изменить свое учетное имя, но может установить и/или изменить свой пароль. Пароли хранятся в отдельном файле в закодированном виде. Не забывайте свой пароль, снова узнать его не поможет даже администратор!
Все пользователи ОС UNIX явно или неявно работают с файлами. Файловая система ОС UNIX имеет древовидную структуру. Промежуточными узлами дерева являются каталоги со ссылками на другие каталоги или файлы, а листья дерева соответствуют файлам или пустым каталогам. Каждому зарегистрированному пользователю соответствует некоторый каталог файловой системы, который называется «домашним» (home) каталогом пользователя. При входе в систему пользователь получает неограниченный доступ к своему домашнему каталогу и всем каталогам и файлам, содержащимся в нем. Пользователь может создавать, удалять и модифицировать каталоги и файлы, содержащиеся в домашнем каталоге. Потенциально возможен доступ и ко всем другим файлам, однако он может быть ограничен, если пользователь не имеет достаточных привилегий.
2.2. Интерфейс пользователя.
Традиционный способ взаимодействия пользователя с системой UNIX основывается на использовании командных языков (правда, в настоящее время все большее распространение получают графические интерфейсы). После входа пользователя в систему для него запускается один из командных интерпретаторов (в зависимости от параметров, сохраняемых в файле /etc/passwd). Обычно в системе поддерживается несколько командных интерпретаторов с похожими, но различающимися своими возможностями командными языками. Общее название для любого командного интерпретатора ОС UNIX — shell (оболочка), поскольку любой интерпретатор представляет внешнее окружение ядра системы.
Вызванный командный интерпретатор выдает приглашение на ввод пользователем командной строки, которая может содержать простую команду, конвейер команд или последовательность команд. После выполнения очередной командной строки и выдачи на экран терминала или в файл соответствующих результатов, shell снова выдает приглашение на ввод командной строки, и так до тех пор, пока пользователь не завершит свой сеанс работы путем ввода команды logout или нажатием комбинации клавиш Ctrl-d.
Командные языки, используемые в ОС UNIX, достаточно просты, чтобы новые пользователи могли быстро начать работать, и достаточно мощны, чтобы можно было использовать их для написания сложных программ. Последняя возможность опирается на механизм командных файлов (shell scripts), которые могут содержать произвольные последовательности командных строк. При указании имени командного файла вместо очередной команды интерпретатор читает файл строка за строкой и последовательно интерпретирует команды.
2.3. Привилегированный пользователь
Ядро ОС UNIX идентифицирует каждого пользователя по его идентификатору (UID — User Identifier), уникальному целому значению, присваиваемому пользователю при регистрации в системе. Кроме того, каждый пользователь относится к некоторой группе пользователей, которая также идентифицируется некоторым целым значением (GID — Group IDentifier). Значения UID и GID для каждого зарегистрированного пользователя сохраняются в учетных файлах системы и приписываются процессу, в котором выполняется командный интерпретатор, запущенный при входе пользователя в систему. Эти значения наследуются каждым новым процессом, запущенным от имени данного пользователя, и используются ядром системы для контроля правомощности доступа к файлам, выполнения программ и т.д.
Понятно, что администратор системы, который, естественно, тоже является зарегистрированным пользователем, должен обладать большими возможностями, чем обычные пользователи. В ОС UNIX эта задача решается путем выделения одного значения UID (нулевого). Пользователь с таким UID называется суперпользователем (superuser) или root. Он имеет неограниченные права на доступ к любому файлу и на выполнение любой программы. Кроме того, такой пользователь имеет возможность полного контроля над системой. Он может остановить ее и даже разрушить.
В мире UNIX считается, что человек, получивший статус суперпользователя, должен понимать, что делает. Суперпользователь должен хорошо знать базовые процедуры администрирования ОС UNIX. Он отвечает за безопасность системы, ее правильное конфигурирование, добавление и исключение пользователей, регулярное копирование файлов и т.д.
Еще одним отличием суперпользователя от обычного пользователя ОС UNIX является то, что на суперпользователя не распространяются ограничения на используемые ресурсы. Для обычных пользователей устанавливаются такие ограничения как максимальный размер файла, максимальное число сегментов разделяемой памяти, максимально допустимое пространство на диске и т.д. Суперпользователь может изменять эти ограничения для других пользователей, но на него они не действуют.
2.4. Программы
ОС UNIX одновременно является операционной средой использования существующих прикладных программ и средой разработки новых приложений. Новые программы могут писаться на разных языках (Фортран, Паскаль, Модула, Ада и др.). Однако стандартным языком программирования в среде ОС UNIX является язык Си (который в последнее время все больше заменяется на Си++). Это объясняется тем, что во-первых, сама система UNIX написана на языке Си, а, во-вторых, язык Си является одним из наиболее качественно стандартизованных языков.
2.5. «Процесс» и «файл».
Процессы являют собой динамическую сторону системы, это субьекты; а файлы — статическую, это обьекты действия процессов. Почти весь интерфейс взаимодействия процессов с ядром и друг с другом выглядит как запись/чтение файлов. /* Хотя надо добавить такие вещи, как сигналы, разделяемая память и семафоры. */
Процессы нельзя путать с программами — одна программа (как правило с различными данными) может выполняться в разных процессах. Процессы можно весьма условно разделить на два типа — задачи и демоны. Задача — это процесс, который выполняет свою работу, стремясь побыстрее закончить ее и завершиться. Демон ждет событий, которые он должен обработать, обрабатывает произошедшие события и снова ждет; завершается он как правило по приказу другого процесса, чаще всего его убивает пользователь, дав команду «kill номер_процесса».
2.6. Комадный интерпретатор
В Unix практически всегда входят два командных интерпретатора — sh (shell) и csh (C-подобный shell). Кроме них еще бывают bash (Bourne), ksh (Korn), и другие.
Все команды, кроме изменения текущей директории, установки переменных окружения (environment) и операторов структурного программирования — внешние программы. Программы эти как правило располагаются в каталогах /bin и /usr/bin. Программы системного администрирования — в каталогах /sbin и /usr/sbin.
Команда состоит из имени запускаемой программы и аргументов. Аргументы отделяются от имени команды и друг от друга пробелаим и табуляциями. Некоторые спецсимволы интерпретируются самим shell'ом. Спецсимволами являются " ' ` \! $ ^ *? < > | &;.
В одной командной строке можно дать несколько команд. Команды могут быть разделены:; (последовательное выполнение команд), & (асинхронное выполнение команд), | (синхронное выполнение, стандартный вывод stdout первой команды будет подан на стандартный ввод stdin второй).
Руководства — man:
Если надо получить информацию по какой-либо команде, дайте команду «man имя_команды». На экран это будет выдаваться через программу «more» — посмотрите, как с ней управляться на вашем Unix'е командой `man more`.
Основные функции и компоненты системы UNIX
3.1.Функции.
Операционная система UNIX — это набор программ, который управляет компьютером, осуществляет связь между вами и компьютером и обеспечивает вас инструментальными средствами, чтобы помочь вам выполнить вашу работу. Разработанная, чтобы обеспечить легкость, эффективность и гибкость программного обеспечения, система UNIX имеет несколько полезных функций:
основная цель системы — это выполнять широкий спектр заданий и программ;
интерактивное окружение, которое позволяет вам связываться напрямую с компьютером и получать немедленно ответы на ваши запросы и сообщения;
многопользовательское окружение, которое позволяет вам разделять ресурсы компьютера с другими пользователями без уменьшения производительности. Этот метод называется разделением времени. Система UNIX взаимодействует с пользователями поочередно, но так быстро, что кажется, что взаимодействует со всеми пользователями одновременно;
многозадачное окружение, которое позволяет вам выполнять более одного задания в одно и тоже время.
3.2.Компоненты.
Система UNIX имеет 4 основных компонента:
ядро -это программа, которая образует ядро операционной системы; она координирует внутренние функции компьютера ( такие как размещение системных ресурсов). Ядро работает невидимо для вас;
shell -это программа, которая осуществляет связь между вами и ядром, интерпретируя и выполняя ваши команды. Так как она читает ваш ввод и посылает вам сообщения, то описывается как интерактивная;
commands -это имена программ, которые компьютер должен выполнить. Пакеты программ называются инструментальными средствами. Система UNIX обеспечивает инструментальными средствами для таких заданий как создание и изменение текста, написание программ, развитие инструментария программного обеспечения, обмен информацией с другими посредством компьютера;
file system -файловая система — это набор всех файлов, возможных для вашего компьютера. Она помогает вам легко сохранять и отыскивать информацию.
3.2.1. Ядро
Ядро контролирует доступ к компьютеру, управляет памятью компьютера, обслуживает файловую систему и распределяет ресурсы компьютера среди пользователей. На рис. 1 приведено функциональное представление ядра.
Ядро
\ Распределение /
\ ресурсов /
\ системы /
\ /
Управление \ / Обслуживание
памятью \/ файловой
/ \ системы
/ \
/ Контроль \
/ доступа \
/ к компьютеру \
рис 1.
3.2.2.Shell
Shell — это программа, которая позволяет вам связываться с операционной системой. Shell считывает команды, которые вы вводите, и интерпретирует их как запросы на выполнение других программ, на доступ к файлу или обеспечение вывода. Shell также является мощным языком программирования, не похожим на язык программировани Си, который опеспечивает условное выполнение и управление потоками данных.
3.2.3. Commands.
Внешний круг системы UNIX образуют программы и инструментальные средства системы, разделенные на категории функционально. Эти функции включают:
программное окружение — несколько программ системы UNIX, устанавливающих дружественное программное окружение, обеспечивающее интерфейсы между системой и языками программирования и использование обслуживающих программ;
обработка текстов — система обеспечивает программы, такие как строковый и экранный редакторы, для создания и изменения текстов, орфографическую программу проверки для обнаружения ошибок орфографии, и необязательный форматер текста для создания высококачественных копий, которые подходят для публикаций;
организация информации — система предоставляет много программ, которые позволяют вам создавать, организовывать и удалять файлы и каталоги;
обслуживающие программы — инструментальные средства, создающие графику и выполняющие вычисления;
электронная связь — несколько программ (например, mail) предоставляют вам возможность передавать информацию другим пользователям и в другие системы UNIX.
3.2.4. File system.
Файловая система является краеугольным камнем операционной системы UNIX. Она обеспечивает логический метод организации, восстановления и управления информацией. Файловая система имеет иерархическую структуру.Файл, который является основной единицей системы UNIX, может быть: обыкновенным файлом, справочником, специальным файлом или символическим каналом связи.
3.2.4.1. Обыкновенные файлы.
Обыкновенные файлы являются набором символов. Обыкновенные файлы используются для хранения любой информации. Они могут содержать тексты для писем или отчетов, коды программ, которые вы написали, либо команды для запуска ваших программ. Однажды создав обыкновенный файл вы можете добавить нужный материал в него, удалить материал из него, либо удалить файл целиком.
3.2.4.2. Справочники
Справочники являются супер-файлами, которые могут содержать файлы или другие справочники. Обычно файлы, содержащиеся в них, устанавливают отношения каким-либо способом. Например, справочник, названный sales может хранить файлы, содержащие цифры ежемесячных продаж, названные jan, feb, mar, и т.д. Вы можете создать каталоги, добавить или удалить файлы из них или удалить каталоги.
Все справочники, которые вы создаете, будут размещены в вашем собственном справочнике. Этот справочник назначается вам системой во время входа в систему. Никто кроме привилегированных пользователей не может читать или записывать файлы в этот справочник без вашего разрешения и вы определяете структуру этого справочника.
3.2.4.3 Специальные файлы.
Специальные файлы, предназначенные для работы с устройствами как правило сосредоточены в директории "/dev".
3.2.4.4.Файловая система.
В старых Unix'ах отводилось 14 букв на имя, в новых это ограничение снято. В директории кроме имени файла находится его идентефикатор inode — целое число, определяющее номер блока, в котором записаны атрибуты файла. Среди них: номер пользователя — хозяина файла; номер группы; количество ссылок на файл (см.далее) даты и время создания, последней модификации и последнего обращения к файлу; атрибуты доступа. Атрибуты доступа содержат тип файла (см.далее), атрибуты смены прав при запуске (см.далее) и права доступа к нему для хозяина, одногрупника и остальных на чтение, запись и выполнение. Право на стирание файла определяется правом записи в вышележащую директорию.
Каждый файл (но не директория) может быть известен под несколькими именами, но обязательно лежащими на одном разделе. Все ссылки на файл равноправны; файл стирается, когда удаляется последняя ссылка на файл. Если файл открыт (для чтения и/или записи), то число ссылок на него увеличивается еще на единицу; так многие программы, открывающие временный файл, сразу удаляют его, чтобы при аварийном завершении, когда операционная система закрывает открытые процессом файлы, этот временный файл был удален операционной системой.
Есть еще одна интересная особенность файловой системы: если после создания файла запись в него шла не подряд, а с большими интервалами, то для этих интервалов место на диске не выделяется. Таким образом суммарный обьем файлов в разделе может быть больше обьема раздела, а при удалении такого файла освобождается меньше места, чем его размер.
В отличие от DOS, в котором полное имя файла выглядит как «диск:\путь\имя», и RISC-OS, в которой оно выглядит "-файловая_система-диск:$.путь.имя" (что вообще говоря имеет свои преимущества), Unix использует прозрачную нотацию в виде "/путь/имя". Корень отсчитывается от раздела, с которого было загружено ядро Unix. Если мы собираемся использовать другой раздел (а на загрузочном разделе как правило находится только самое необходимое для загрузки), используется команда `mount /dev/файл_раздела директория`. При этом файлы и поддиректории, ранее находившиеся в этой директории, становятся недоступными, пока не раздел не будет размонтирован (естественно, все нормальные люди используют для монтирования разделов пустые директории). Производить монтирование и размонтирование имеет право только суперпользователь.
При запуске каждый процесс может расчитывать, что для него уже открыты три файла, которые ему известны как стандартный ввод stdin по дескриптору 0; стандартный вывод stdout по дескриптору 1; и стандартный вывод stderr по дескриптору 2. При регистрации в системе, когда пользователь вводит имя и пароль, а ему запускается shell, все трое направлены на /dev/tty; позже любой из них может быть перенаправлен в любой файл.
3.3. Подключение к UNIX.
Чтобы установить контакт с системой UNIX вам необходимо иметь:
терминал Терминал является устройством ввода/вывода: вы используете его для ввода запросов системе UNIX, а система — для выдачи ответов вам. Существует два основных вида терминалов: видеотерминал и печатающий терминал.
Видеотерминал отображает ввод и вывод на экране дисплея;
Печатающий терминал постоянно подает на бумагу. Во многих случаях эти различия никак не влияют на действия пользователя или на ответы системы. В этой документации все, что выводится на экран терминала, как же отображается и печатающим терминалом, если не сделаны какие-либо замечания;
регистрационное имя, которое идентифицирует вас как полномочного пользователя;
пароль, который проверяет вас на идентичность;
инструкции для диалога и доступа к системе UNIX, если ваш терминал напрямую не связан с компьютером.
Отличия операционной системы UNIX от других операционных систем.
Unix состоит из ядра с включенными в него драйверами и из утилит (внешних по отношению к ядру программ). Если надо изменить конфигурацию (добавить устройство, изменить порт или прерывание), то ядро пересобирают (перелинковывают) из обьектных модулей .
В противоположность Unix'у Windows (если не уточняется, какая, то имеются в виду 3.11, 95 и NT) и OS/2 при загрузке фактически на ходу прилинковывают драйверы. При этом компактность собранного ядра и повторное использование общего кода на порядок ниже, чем у Unix. Кроме того, при неизменной конфигурации системы ядро Unix без переделки (потребуется изменить только стартовую часть BIOS) может быть записан в ПЗУ и выполняться _не_загружаясь_ в ОЗУ. Компактность кода особенно важна, т.к. ядро и драйверы никогда не покидают физическую оперативную память, не сводятся на диск.
Unix — самая многоплатформенная OS. WindowsNT пытается подражать ему, но пока это плохо удается — после отказа от MIPS и POWER-PC, W'NT остались всего на двух платформы — традиционная i*86 и DEC Alpha. Разумеется, переносимость программ с одной версии Unix на другую ограничена. Неаккуратно написанная программа, не учитывающая различий в реализациях Unix, может потребовать серьезной переделки. Но все равно это на много порядков легче, чем например перенести с OS/2 на NT.
Почему Unix?
Unix используется как в качестве как сервера, так и рабочей станции. В номинации серверов с ним конкурируют MS WindowsNT, Novell Netware, IBM OS/2 Warp Connect, DEC VMS и операционные системы мэйнфреймов. Каждая система имеет свою область применения, в которой она лучше других.
WindowsNT — для администраторов, которые предпочитают привычный интерфейс экономному расходованию ресурсов и высокой производительности.
Netware — для сетей, где нужна высокая производительность файлового и принтерного сервиса и не столь важны остальные сервисы. Главный недостаток — на сервере Netware трудно запускать приложения.
OS/2 хороша там, где нужен «легкий» сервер приложений. Ресурсов требует меньше чем NT, в управлении гибче (хотя в настройке может и сложнее), а многозадачность очень хорошая. Авторизация и разграничение прав доступа не реализованы на уровне ОС, что с лихвой окупается реализацией на уровне приложений-серверов. (Впрочем, зачастую остальные OS делают то же самое). Многие станции FIDOnet и BBS сделаны на базе OS/2.
VMS — мощный, ничем не уступающий Unix'ам (а во многом и превосходящий его) сервер приложений, но только для платформ VAX и Alpha фирмы DEC.
Мэйнфреймы — для обслуживания очень большого количества пользователей (порядка нескольких тысяч). Но работа этих пользователей как правило организована в виде не клиент-серверного взаимодействия, а в виде хост-терминального. Терминал же в этой паре скорее не клиент, а сервер (Мир Internet, N3 за 1996-й год). К преимуществам мэйнфреймов надо отнести более высокую защищенность и устойчивость к сбоям, а к недостаткам — соответствующую этим качествам цену.
Unix хорош для квалифицированного (или желающего стать таковым) администратора, т.к. требует знания принципов функционирования происходящих в нем процессов. Реальная многозадачность и жесткое разделение памяти обеспечивают высокую надежность функционирования системы, хотя в производительности файл- и принт-сервисов Unix'ы уступают Netware.
Недостаточная гибкость предоставления прав доступа пользователей к файлам по сравнению с WindowsNT затрудняет организацию _на_уровне_файловой_системы_ группового доступа к данным (точнее, к файлам), что компенсируется простотой реализации, а значит меньшими требованиями к аппаратуре. Впрочем, такие приложения, как SQL-сервер решают проблему группового доступа к данным своими силами.
Практически все протоколы(правила обмена информацией в сети), на которых основан Internet, были разработаны под Unix, в частности стек протоколов TCP/IP придуман в университете Berkeley.
Защищенность Unix при правильном администрировании ни в чем не уступает ни Novell, ни WindowsNT.
Важным свойством Unix, которое приближает его к мэйнфреймам, является его многотерминальность, много пользователей могут одновременно запускать программы на одной Unix-машине. Если не требуется использовать графику, можно обойтись дешевыми текстовыми терминалами (специализированными или на базе дешевых PC), подключенными по медленным линиям. В этом с ним конкурирует только VMS. Можно использовать и графические X-терминалы, когда на одном экране присутствуют окна процессов, выполняющихся на разных машинах.
В номинации рабочих станций с Unix конкурируют MS Windows*, IBM OS/2, Macintosh и Acorn RISC-OS.
Windows — для тех, кто ценит совместимость больше эффективности; для тех, кто готов купить большое количество памяти, дискового пространства и мегагерц; для тех, кто любит не вникая в суть, щелкать мышкой по кнопочкам в окошке. Правда, рано или поздно все равно придется изучить принципы работы системы и протоколов, но тогда уже будет поздно — выбор сделан. Немаловажным преимуществом Windows надо признать также возможность украсть кучу программного обеспечения.
OS/2 — для любителей OS/2. Хотя по некоторым сведениям OS/2 лучше других взаимодействует с мэйнфреймами и сетями IBM.
Macintosh — для графических, издательских и музыкальных работ, а также для тех, кто любит понятный, красивый интерфейс и не хочет разбираться в подробностях функционирования системы.
RISC-OS, прошитая в ПЗУ, позволяет не тратить время на инсталляцию операционной системы и восстановление ее после сбоев. Кроме того, практически все программы под ней очень экономно расходуют ресурсы, благодаря чему не нуждаются в свопинге и работают очень быстро.
Unix функционирует как на PC, так и на мощных рабочих станциях с RISC-процессорами, под Unix написаны действительно мощные САПР и геоинформационные системы. Своей масштабируемостью Unix из-за его многоплатформенности на порядок превосходит любую другую операционную систему.
Экранный редактор VI и редактор текстов ED.
5.1. Редактор VI.
Редактор vi является мощным средством для создания и редактирования файлов. Он предназначен для работы на видеотерминале и использует окна, посредством которых вы можете просматривать текст файла. Несколько простых команд позволяют вам сделать изменения в тексте, которые очень быстро отображаются на экране. Редактор может отобразить одну или несколько строк текста. Он позволяет вам передвигать курсор в любую точку на экране или в файле, создавать, изменять или удалять текст. Вы можете также использовать некоторые команды построчного редактора, такие как глобальные команды, которые позволяют вам изменять множество появлений некоторой строки символов, используя одну команду. Чтобы двигаться по файлу, вы можете прокручивать текст вперед или назад.
Примечание. Не все терминалы обладают способностью прокрутки текста и поэтому средство прокрутки текста редактором vi зависит от типа используемого терминала.
Редактор vi имеет более 100 команд позволяющих:
изменить окружение shell, чтобы установить конфигурацию вашего терминала;
сделать доступным автоматический возврат каретки;
начать работу с редактором vi, создать текст, исправить ошибки, записать текст в файл и завершить работу;
переместить текст внутри файла;
разбить и слить текст;
использовать специальные команды и сокращения;
использовать команды построчного редактора, доступные внутри vi;
временно вернуться в shell, чтобы выполнить команды shell;
восстановить файл, потерянный из-за прерывания сессии редактирования;
редактировать несколько файлов в одной сессии.
5.2. Редактор ED.
Редактор текстов ed является диалоговой (интерактивной) программой, которая позволяет добавлять, перемещать, удалять текст и извлекать его из других файлов. Имеется возможность замены слова или части слова в тексте как для одной указанной строки, так и для части файла или всего файла. Кроме того, можно просмотреть текстовый файл, напечатать его частично или целиком, напечатать строки, содержащие определенное слово и т.д.
ED работает с копией обрабатываемого файла, которая создается в буфере редактора и хранится там в течение всей обработки. Это предохраняет исходный файл от возможных разрушений при совершении грубых ошибок. Сделанные в копии изменения не влияют на исходный файл до тех пор, пока не будет выдана команда записи.
Редактор запоминает имя обрабатываемого файла (первоначально — имя исходного загруженного файла). По желанию пользователя это имя можно заменять для получения новых вариантов файла.
Если размер файла превышает размер буфера редактора, файл приходится делить на части с помощью команды split, редактировать его по частям, а затем снова объединять с помощью команды cat.
Пользователь сообщает редактору, что делать с его текстом, с помощью определенных инструкций, называемых «командами». Команды редактора имеют простую структуру, и в большинстве случаев состоят из одной буквы. Каждая команда печатается на отдельной строке. Иногда перед командой указывается информация о том, какая строка или строки должны подвергаться действию команды. ed не отвечает на большинство команд, не печатает подсказки или сообщения типа «готово».
Все вводимые командные строки должны заканчиваться символом <CR>.
www.ronl.ru
Федеральное агентство по образованию
Ростовская-на-Дону государственная академия
Сельскохозяйственного машиностроения
Кафедра: "Информационных и управляющих систем"
Контрольная работа
по операционным системам
на тему:
"Операционная система Unix "
Студентки заочного факультета ИС
Группы ЗИС 3–1
Руководитель:
кандидат технических наук доцент
г. Ростов-на-Дону
2008-09 уч.г.
Содержание
Введение
1. История создания, назначение
2. Функциональные характеристики
3. Особенности архитектуры ОС UNIX
4. Способы управления процессами и ресурсами
5. Условия эксплуатации
6. Достоинства и недостатки ОС UNIX
Заключение
Список использованной литературы
Введение
UNIX появилась в 1969 году. За 30 с лишним лет система стала довольно популярной и получила распространение на машинах с различной мощностью обработки, от микропроцессоров до больших ЭВМ, обеспечивая на них общие условия выполнения программ. Система делится на две части. Одну часть составляют программы и сервисные функции – это делает операционную среду UNIX такой популярной; данная часть ОС легко доступна пользователям, она включает такие программы, как командный процессор, обмен сообщениями, пакеты обработки текстов и системы обработки исходных текстов программ. Другая часть включает в себя собственно операционную систему, поддерживающую эти программы и функции.
UNIX – традиционно сетевая операционная система.
1. История создания, назначение
UNIX зародился в лаборатории Bell Labs фирмы AT&T более 30 лет назад. В то время Bell Labs занималась разработкой многопользовательской системы разделения времени MULTICS (Multiplexed Information and Computing Service) совместно с MIT и General Electric, но эта система потерпела неудачу. Bell Labs отказалась от участия в проекте MULTICS, что дало возможность одному из ее исследователей, Кену Томпсону, заняться поисковой работой в направлении улучшения операционной среды Bell Labs. Томпсон, а также сотрудник Bell Labs Денис Ритчи и некоторые другие разрабатывали новую файловую систему, многие черты которой вели свое происхождение от MULTICS. Для проверки новой файловой системы Томпсон написал ядро ОС и некоторые программы для компьютера GE-645, который работал под управлением мультипрограммной системы разделения времени GECOS. У Кена Томпсона была написанная им еще во времена работы над MULTICS игра "Space Travel" - "Космическое путешествие". Он запускал ее на компьютере GE-645, но она работала на нем не очень хорошо из-за невысокой эффективности разделения времени. Кроме этого, машинное время GE-645 стоило слишком дорого. В результате Томпсон и Ритчи решили перенести игру на машину PDP-7 фирмы DEC, имеющую 4096 18-битных слов, телетайп и хороший графический дисплей. Но у PDP-7 было неважное программное обеспечение, и, закончив перенос игры, Томпсон решил реализовать на PDP-7 ту файловую систему, над который он работал на GE-645. Из этой работы и возникла первая версия UNIX. Уже тогда она включала характерную для современной UNIX файловую систему, основанную на индексных дескрипторах inode, имела подсистему управления процессами и памятью, а также позволяла двум пользователям работать в режиме разделения времени. Система была написана на ассемблере. Имя UNIX (Uniplex Information and Computing Services) было дано ей одним сотрудником Bell Labs, Брайаном Керниганом,
Первыми пользователями UNIX'а стали сотрудники отдела патентов Bell Labs, которые нашли ее удобной средой для создания текстов. Большое влияние на судьбу UNIX оказала перепись ее на языке высокого уровня С, разработанного Денисом Ритчи специально для этих целей. Это произошло в 1973 году, UNIX насчитывал к этому времени уже 25 инсталляций, и в Bell Labs была создана специальная группа поддержки UNIX.
После описания системы Томпсоном и Ритчи в компьютерном журнале CACM в 1974 г. UNIX получил широкое распространение. ОС стала востребована в университетах, так как для них она поставлялась бесплатно вместе с исходными кодами на С. Широкое распространение эффективных C-компиляторов сделало UNIX уникальной для того времени ОС из-за возможности переноса на различные компьютеры. Университеты внесли значительный вклад в улучшение UNIX и дальнейшую его популяризацию. Еще одним шагом на пути к признанию UNIX, как стандартизованной среды стала разработка Денисом Ритчи библиотеки ввода-вывода stdio. Благодаря использованию этой библиотеки для компилятора С, программы для UNIX стали легко переносимыми.
ОС UNIX является интерактивной операционной системой, это традиционно сетевая операционная система.
2. Функциональные характеристики
К основным функциям ядра ОС UNIX принято относить следующие:
1) Инициализация системы - функция запуска и раскрутки. Ядро системы обеспечивает средство раскрутки (bootstrap), которое обеспечивает загрузку полного ядра в память компьютера и запускает ядро.
2) Управление процессами и нитями - функция создания, завершения и отслеживания существующих процессов и нитей ("процессов", выполняемых на общей виртуальной памяти). Поскольку ОС UNIX является мультипроцессной операционной системой, ядро обеспечивает разделение между запущенными процессами времени процессора (или процессоров в мультипроцессорных системах) и других ресурсов компьютера для создания внешнего ощущения того, что процессы реально выполняются в параллель.
3) Управление памятью - функция отображения практически неограниченной виртуальной памяти процессов в физическую оперативную память компьютера, которая имеет ограниченные размеры. Соответствующий компонент ядра обеспечивает разделяемое использование одних и тех же областей оперативной памяти несколькими процессами с использованием внешней памяти.
4) Управление файлами - функция, реализующая абстракцию файловой системы, - иерархии каталогов и файлов. Файловые системы ОС UNIX поддерживают несколько типов файлов. Некоторые файлы могут содержать данные в формате ASCII, другие будут соответствовать внешним устройствам. В файловой системе хранятся объектные файлы, выполняемые файлы и т.д. Файлы обычно хранятся на устройствах внешней памяти; доступ к ним обеспечивается средствами ядра. В мире UNIX существует несколько типов организации файловых систем. Современные варианты ОС UNIX одновременно поддерживают большинство типов файловых систем.
5) Коммуникационные средства - функция, обеспечивающая возможности обмена данными между процессами, выполняющимися внутри одного компьютера (IPC - Inter-Process Communications), между процессами, выполняющимися в разных узлах локальной или глобальной сети передачи данных, а также между процессами и драйверами внешних устройств.
6) Программный интерфейс - функция, обеспечивающая доступ к возможностям ядра со стороны пользовательских процессов на основе механизма системных вызовов, оформленных в виде библиотеки функций.
3. Особенности архитектуры ОС UNIX
Архитектура ОС UNIX – многоуровневая (рис.1). На нижнем уровне, непосредственно над оборудованием, работает ядро операционной системы. Функции ядра доступны через интерфейс системных вызовов, образующих второй уровень. На следующем уровне работают командные интерпретаторы, команды и утилиты системного администрирования, коммуникационные драйверы и протоколы, - все то, что обычно относят к системному программному обеспечению. Наконец, внешний уровень образуют прикладные программы пользователя, сетевые и другие коммуникационные службы, СУБД и утилиты.
4. Способы управления процессами и ресурсами
Файлы и процессы, являются центральными понятиями модели операционной системы UNIX. Рисунок 1.2 представляет блок-схему ядра системы, отражающую состав модулей, из которых состоит ядро, и их взаимосвязи друг с другом. Слева изображена файловая подсистема, а справа подсистема управления процессами – две главные компоненты ядра.
точка пересечения
Уровень пользователяУровень ядра
Уровень ядра
|
Рисунок.1.2 Блок-схема ядра операционной системы
Обращения к операционной системе выглядят так же, как обычные вызовы функций в программах на языке Си, и библиотеки устанавливают соответствие между этими вызовами функций и элементарными системными операциями. При этом программы на ассемблере могут обращаться к операционной системе непосредственно, без использования библиотеки системных вызовов. Программы часто обращаются к другим библиотекам, таким как библиотека стандартных подпрограмм ввода-вывода, достигая тем самым более полного использования системных услуг. Для этого во время компиляции библиотеки связываются с программами и частично включаются в программу пользователя. Совокупность обращений к операционной системе разделена на те обращения, которые взаимодействуют с подсистемой управления файлами, и т
е, которые взаимодействуют с подсистемой управления процессами. Файловая подсистема управляет файлами, размещает записи файлов, управляет свободным пространством, доступом к файлам и поиском данных для пользователей. Процессы взаимодействуют с подсистемой управления файлами, используя при этом совокупность специальных обращений к операционной системе, таких как open (для того, чтобы открыть файл на чтение или запись),close, read, write, stat (запросить атрибуты файла), chown (изменить запись с информацией о владельце файла) и chmod (изменить права доступа к файлу).Подсистема управления файлами обращается к данным, которые хранятся в файле, используя буферный механизм, управляющий потоком данных между ядром и устройствами внешней памяти. Буферный механизм, взаимодействуя с драйверами устройств ввода-вывода блоками, инициирует передачу данных к ядру и обратно. Драйверы устройств являются такими модулями в составе ядра, которые управляют работой периферийных устройств. Устройства ввода-вывода блоками относятся программы пользователя к типу запоминающих устройств с произвольной выборкой; их драйверы построены таким образом, что все остальные компоненты системы воспринимают эти устройства как запоминающие устройства с произвольной выборкой. Например, драйвер запоминающего устройства на магнитной ленте позволяет ядру системы воспринимать это устройство как запоминающее устройство с произвольной выборкой. Подсистема управления файлами также непосредственно взаимодействует с драйверами устройств "неструктурированного" ввода-вывода, без вмешательства буферного механизма. К устройствам неструктурированного ввода-вывода, иногда именуемым устройствами посимвольного ввода-вывода (текстовыми), относятся устройства, отличные от устройств ввода-вывода блоками.
Подсистема управления процессами отвечает за синхронизацию процессов, взаимодействие процессов, распределение памяти и планирование выполнения процессов. Подсистема управления файлами и подсистема управления процессами взаимодействуют между собой, когда файл загружается в память на выполнение: подсистема управления процессами читает в память исполняемые файлы перед тем, как их выполнить.
Примерами обращений к операционной системе, используемых при управлении процессами, могут служить fork (создание нового процесса), exec (наложение образа программы на выполняемый процесс), exit (завершение выполнения процесса), wait (синхронизация продолжения выполнения основного процесса с моментом выхода из порожденного процесса), brk (управление размером памяти, выделенной процессу) и signal (управление реакцией процесса на возникновение экстраординарных событий.
Модуль распределения памяти контролирует выделение памяти процессам. Если в какой-то момент система испытывает недостаток в физической памяти для запуска всех процессов, ядро пересылает процессы между основной и внешней памятью с тем, чтобы все процессы имели возможность выполняться. Существует два способа управления распределением памяти: выгрузка (подкачка) и замещение страниц. Программу подкачки иногда называют планировщиком, т.к. она "планирует" выделение памяти процессам и оказывает влияние на работу планировщика центрального процессора. «Планировщик» планирует очередность выполнения процессов до тех пор, пока они добровольно не освободят центральный процессор, дождавшись выделения какого-либо ресурса, или пока ядро системы не выгрузит их после того, как их время выполнения превысит заранее определенный квант времени. Планировщик выбирает на выполнение готовый к запуску процесс с наивысшим приоритетом; выполнение предыдущего процесса (приостановленного) будет продолжено тогда, когда его приоритет будет наивысшим среди приоритетов всех готовых к запуску процессов. Существует несколько форм взаимодействия процессов между собой, от асинхронного обмена сигналами о событиях до синхронного обмена сообщениями.
Наконец, аппаратный контроль отвечает за обработку прерываний и за связь с машиной. Такие устройства, как диски и терминалы, могут прерывать работу центрального процессора во время выполнения процесса. При этом ядро системы после обработки прерывания может возобновить выполнение прерванного процесса. Прерывания обрабатываются не самими процессами, а специальными функциями ядра системы, перечисленными в контексте выполняемого процесса.
5. Условия эксплуатации
UNIX - многопользовательская операционная система. Пользователи, занимающиеся общими задачами, могут объединяться в группы. Каждый пользователь обязательно принадлежит к одной или нескольким группам. Все команды выполняются от имени определенного пользователя, принадлежащего в момент выполнения к определенной группе.
В многопользовательских системах необходимо обеспечивать защиту объектов (файлов, процессов), принадлежащих одному пользователю, от всех остальных. ОС UNIX предлагает базовые средства защиты и совместного использования файлов на основе отслеживания пользователя и группы, владеющих файлом, трех уровней доступа (для пользователя-владельца, для пользователей группы-владельца, и для всех остальных пользователей) и трех базовых прав доступа к файлам (на чтение, на запись и на выполнение). Базовые средства защиты процессов основаны на отслеживании принадлежности процессов пользователям.
Для отслеживания владельцев процессов и файлов используются числовые идентификаторы. Идентификатор пользователя и группы - целое число (обычно) в диапазоне от 0 до 65535. Присвоение уникального идентификатора пользователя выполняется при заведении системным администратором нового регистрационного имени. Значения идентификатора пользователя и группы - не просто числа, которые идентифицируют пользователя, - они определяют владельцев файлов и процессов. Среди пользователей системы выделяется один пользователь - системный администратор или суперпользователь, обладающий всей полнотой прав на использование и конфигурирование системы. Это пользователь с идентификатором 0 и регистрационным именем root.
При представлении информации человеку удобнее использовать вместо соответствующих идентификаторов символьные имена - регистрационное имя пользователя и имя группы. Соответствие идентификаторов и символьных имен, а также другая информация о пользователях и группах в системе (учетные записи), как и большинство другой информации о конфигурации системы UNIX, по традиции, представлена в виде текстовых файлов. Эти файлы - /etc/passwd, /etc/group и /etc/shadow.
6. Достоинства и недостатки
Широкое распространение UNIX породило проблему несовместимости его многочисленных версий. Для пользователя весьма неприятен тот факт, что пакет, купленный для одной версии UNIX, отказывается работать на другой версии UNIX. Периодически делались и делаются попытки стандартизации UNIX, но они пока имеют ограниченный успех. Процесс сближения различных версий UNIX и их расхождения носит циклический характер. Перед лицом новой угрозы со стороны какой-либо другой операционной системы различные производители UNIX-версий сближают свои продукты, но затем конкурентная борьба вынуждает их делать оригинальные улучшения и версии снова расходятся. В этом процессе есть и положительная сторона - появление новых идей и средств, улучшающих как UNIX, так и многие другие операционные системы, перенявшие у него за долгие годы его существования много полезного. Наибольшее распространение получили две несовместимые линии версий UNIX: линия AT&T - UNIX System V, и линия университета Berkeley-BSD. Многие фирмы на основе этих версий разработали и поддерживают свои версии UNIX: SunOS и Solaris фирмы Sun Microsystems, UX фирмы Hewlett-Packard, XENIX фирмы Microsoft, AIX фирмы IBM, UnixWare фирмы Novell (проданный теперь компании SCO), и список этот можно еще долго продолжать.
Наибольшее влияние на унификацию версий UNIX оказали такие стандарты как SVID фирмы AT&T, POSIX, созданный под эгидой IEEE, и XPG4 консорциума X/Open. В этих стандартах сформулированы требования к интерфейсу между приложениями и ОС, что дает возможность приложениям успешно работать под управлением различных версий UNIX.
Одним из основных преимуществ семейства операционных систем типа UNIX и возникшего на их основе подхода к стандартизации интерфейсов операционных систем (важная часть общего подхода открытых систем) является то, что они обеспечивают единую операционную среду на компьютерах с разной архитектурой.
Заключение
Операционная система UNIX, являющаяся первой в истории мобильной ОС, обеспечивающей надежную среду разработки и использования мобильных прикладных систем, одновременно представляет собой практическую основу для построения открытых программно-аппаратных систем и комплексов. Именно широкое внедрение в практику ОС UNIX позволило перейти от лозунга Открытых Систем к практической разработке этой концепции. Большой вклад в развитие направления Открытых Систем внесла деятельность по стандартизации интерфейсов ОС UNIX.
Можно выделить несколько ветвей ОС UNIX, различающихся не только реализацией, но временами интерфейсами и семантикой (хотя, по мере развития процесса стандартизации, эти различия становятся все менее значительными). Сегодня популярен новый свободно распространяемый вариант ОС UNIX, называемый FreeBSD. Ведутся работы над более развитыми версиями BSDNet.
Список использованной литературы
1. История и общая характеристика семейства операционных систем UNIX http://www.osys.ru/
2. Эбен М., Таймэн Б. «FreeBSD. Энциклопедия пользователя» - К: ООО «ТИД «ДС», 2002.
3. Керниган Б.В., Пайк Р. «UNIX - универсальная среда программирования» - М.: Финансы и статистика, 1992.
4. С.Д. Кузнецов, «Операционная система UNIX» - статья в Интернете.
www.litsoch.ru
История создания и основание операционной системы UNIX.
История ОС UNIX неразрывно связаны с американской компанией AT&T Bell Laboratories и прославленными именами сотрудников этой фирмы Кэна Томпсона, Денниса Ричи и Брайана Кернигана.
С 1965 по 1969 г. фирма Bell Labs совместно с компанией General Electric и группой исследователей из Массачусетского технологического института участвовала в проекте ОС Multics. Эта операционная система, хотя и не была полностью доведена до стадии коммерческого продукта, обогатила мировое сообщество системных программистов массой ценных идей, многие из которых сохраняют свою актуальность по сей день и используются применительно не только к операционным системам. Основным недостатком ОС Multics, который, по всей видимости, и помешал довести систему до уровня программного продукта, была ее чрезмерная сложность.
Оставив проект Multics, немногочисленная группа сотрудников Bell Labs решила разработать свою собственную простую операционную систему, пригодную для их собственных нужд. С этого и началась ОС UNIX. Название UNIX было придумано Брайаном Керниганом для простейшей операционной системы, работавшей на PDP 7 (1970 г.). Эта система была написана на языке ассемблера и была мало похожа на современный UNIX: сохранились только общие подходы к логической организации файловой системы и управлению процессами, а также некоторые утилиты для работы с файлами.
В 1971 г. система была переписана (все еще на языке ассемблера) для более мощной ЭВМ PDP 11/20. В первой версии ОС UNIX для PDP 11 были воплощены уже почти все идеи, признаваемые теперь как основа UNIX. Отсутствовал только механизм взаимодействия процессов через программные каналы (pipe), но и этот механизм появился во второй версии системы. Параллельно с этим велась разработка языка программирования, пригодного для написания операционных систем. На основе существовавшего к этому времени языка BCPL был создан популярнийший теперь язык Си.
И, наконец, в 1973 г. ОС UNIX была переписана на языке Си. Основными разработчиками этого варианта системы были Томпсон и Ритчи. Широкое распространение получила шестая версия UNIX (1975 г.), но подлинную революцию произвела разработка седьмой версии, которая стала первой по- настоящему мобильной версией системы. Это было продемонстрировано прежде всего самими разработчиками, осуществившими успешный перенос системы с 16- разрядной PDP 11 на 32-разрядную ЭВМ Interdata 8/32 (1977 г.). C 1979 г. UNIX Version 7 начала активно распространяться и была перенесена на множество разнообразных ЭВМ.
Важным этапом в истории OC UNIX явилась разработка версии системы для ЭВМ VAX 11/780 (UNIX 32V). Эта работа была выполнена сотрудниками Bell Labs Джоном Рейзером и Томом Лондоном и получила дальнейшее развитие в Калифорнийском университете (г. Беркли) в серии BSD UNIX. В дальнейшем история ОС UNIX развивалась весьма бурно, так что проследить все детали затруднительно. В настоящее время с тематикой ОС UNIX связано множество коммерческих фирм и исследовательских организаций. Среди них имеются и организации, разрабатывающие новые варианты системы, и фирмы, занимающиеся исключительно переносом существующих вариантов на новые ЭВМ
Основные понятия операционной системы UNIX.
Одним из достоинств ОС UNIX является то, что система базируется на небольшом числе интуитивно ясных понятий. Однако, несмотря на простоту этих понятий, к ним нужно привыкнуть. Без этого невозможно понять существо ОС UNIX.
2.1 Пользователь.
С самого начала ОС UNIX замышлялась как интерактивная система. Другими словами, UNIX предназначен для терминальной работы. Чтобы начать работать, человек должен «войти» в систему, введя со свободного терминала свое учетное имя (account name) и, возможно, пароль (password). Человек, зарегистрированный в учетных файлах системы, и, следовательно, имеющий учетное имя, называется зарегистрированным пользователем системы. Регистрацию новых пользователей обычно выполняет администратор системы. Пользователь не может изменить свое учетное имя, но может установить и/или изменить свой пароль. Пароли хранятся в отдельном файле в закодированном виде. Не забывайте свой пароль, снова узнать его не поможет даже администратор!
Все пользователи ОС UNIX явно или неявно работают с файлами. Файловая система ОС UNIX имеет древовидную структуру. Промежуточными узлами дерева являются каталоги со ссылками на другие каталоги или файлы, а листья дерева соответствуют файлам или пустым каталогам. Каждому зарегистрированному пользователю соответствует некоторый каталог файловой системы, который называется «домашним» (home) каталогом пользователя. При входе в систему пользователь получает неограниченный доступ к своему домашнему каталогу и всем каталогам и файлам, содержащимся в нем. Пользователь может создавать, удалять и модифицировать каталоги и файлы, содержащиеся в домашнем каталоге. Потенциально возможен доступ и ко всем другим файлам, однако он может быть ограничен, если пользователь не имеет достаточных привилегий.
2.2. Интерфейс пользователя.
Традиционный способ взаимодействия пользователя с системой UNIX основывается на использовании командных языков (правда, в настоящее время все большее распространение получают графические интерфейсы). После входа пользователя в систему для него запускается один из командных интерпретаторов (в зависимости от параметров, сохраняемых в файле /etc/passwd). Обычно в системе поддерживается несколько командных интерпретаторов с похожими, но различающимися своими возможностями командными языками. Общее название для любого командного интерпретатора ОС UNIX — shell (оболочка), поскольку любой интерпретатор представляет внешнее окружение ядра системы.
Вызванный командный интерпретатор выдает приглашение на ввод пользователем командной строки, которая может содержать простую команду, конвейер команд или последовательность команд. После выполнения очередной командной строки и выдачи на экран терминала или в файл соответствующих результатов, shell снова выдает приглашение на ввод командной строки, и так до тех пор, пока пользователь не завершит свой сеанс работы путем ввода команды logout или нажатием комбинации клавиш Ctrl-d.
Командные языки, используемые в ОС UNIX, достаточно просты, чтобы новые пользователи могли быстро начать работать, и достаточно мощны, чтобы можно было использовать их для написания сложных программ. Последняя возможность опирается на механизм командных файлов (shell scripts), которые могут содержать произвольные последовательности командных строк. При указании имени командного файла вместо очередной команды интерпретатор читает файл строка за строкой и последовательно интерпретирует команды.
2.3. Привилегированный пользователь
Ядро ОС UNIX идентифицирует каждого пользователя по его идентификатору (UID — User Identifier), уникальному целому значению, присваиваемому пользователю при регистрации в системе. Кроме того, каждый пользователь относится к некоторой группе пользователей, которая также идентифицируется некоторым целым значением (GID — Group IDentifier). Значения UID и GID для каждого зарегистрированного пользователя сохраняются в учетных файлах системы и приписываются процессу, в котором выполняется командный интерпретатор, запущенный при входе пользователя в систему. Эти значения наследуются каждым новым процессом, запущенным от имени данного пользователя, и используются ядром системы для контроля правомощности доступа к файлам, выполнения программ и т.д.
Понятно, что администратор системы, который, естественно, тоже является зарегистрированным пользователем, должен обладать большими возможностями, чем обычные пользователи. В ОС UNIX эта задача решается путем выделения одного значения UID (нулевого). Пользователь с таким UID называется суперпользователем (superuser) или root. Он имеет неограниченные права на доступ к любому файлу и на выполнение любой программы. Кроме того, такой пользователь имеет возможность полного контроля над системой. Он может остановить ее и даже разрушить.
В мире UNIX считается, что человек, получивший статус суперпользователя, должен понимать, что делает. Суперпользователь должен хорошо знать базовые процедуры администрирования ОС UNIX. Он отвечает за безопасность системы, ее правильное конфигурирование, добавление и исключение пользователей, регулярное копирование файлов и т.д.
Еще одним отличием суперпользователя от обычного пользователя ОС UNIX является то, что на суперпользователя не распространяются ограничения на используемые ресурсы. Для обычных пользователей устанавливаются такие ограничения как максимальный размер файла, максимальное число сегментов разделяемой памяти, максимально допустимое пространство на диске и т.д. Суперпользователь может изменять эти ограничения для других пользователей, но на него они не действуют.
2.4. Программы
ОС UNIX одновременно является операционной средой использования существующих прикладных программ и средой разработки новых приложений. Новые программы могут писаться на разных языках (Фортран, Паскаль, Модула, Ада и др.). Однако стандартным языком программирования в среде ОС UNIX является язык Си (который в последнее время все больше заменяется на Си++). Это объясняется тем, что во-первых, сама система UNIX написана на языке Си, а, во-вторых, язык Си является одним из наиболее качественно стандартизованных языков.
2.5. «Процесс» и «файл».
Процессы являют собой динамическую сторону системы, это субьекты; а файлы — статическую, это обьекты действия процессов. Почти весь интерфейс взаимодействия процессов с ядром и друг с другом выглядит как запись/чтение файлов. /* Хотя надо добавить такие вещи, как сигналы, разделяемая память и семафоры. */
Процессы нельзя путать с программами — одна программа (как правило с различными данными) может выполняться в разных процессах. Процессы можно весьма условно разделить на два типа — задачи и демоны. Задача — это процесс, который выполняет свою работу, стремясь побыстрее закончить ее и завершиться. Демон ждет событий, которые он должен обработать, обрабатывает произошедшие события и снова ждет; завершается он как правило по приказу другого процесса, чаще всего его убивает пользователь, дав команду «kill номер_процесса».
2.6. Комадный интерпретатор
В Unix практически всегда входят два командных интерпретатора — sh (shell) и csh (C-подобный shell). Кроме них еще бывают bash (Bourne), ksh (Korn), и другие.
Все команды, кроме изменения текущей директории, установки переменных окружения (environment) и операторов структурного программирования — внешние программы. Программы эти как правило располагаются в каталогах /bin и /usr/bin. Программы системного администрирования — в каталогах /sbin и /usr/sbin.
Команда состоит из имени запускаемой программы и аргументов. Аргументы отделяются от имени команды и друг от друга пробелаим и табуляциями. Некоторые спецсимволы интерпретируются самим shell'ом. Спецсимволами являются " ' ` \! $ ^ *? < > | &;.
В одной командной строке можно дать несколько команд. Команды могут быть разделены:; (последовательное выполнение команд), & (асинхронное выполнение команд), | (синхронное выполнение, стандартный вывод stdout первой команды будет подан на стандартный ввод stdin второй).
Руководства — man:
Если надо получить информацию по какой-либо команде, дайте команду «man имя_команды». На экран это будет выдаваться через программу «more» — посмотрите, как с ней управляться на вашем Unix'е командой `man more`.
Основные функции и компоненты системы UNIX
3.1.Функции.
Операционная система UNIX — это набор программ, который управляет компьютером, осуществляет связь между вами и компьютером и обеспечивает вас инструментальными средствами, чтобы помочь вам выполнить вашу работу. Разработанная, чтобы обеспечить легкость, эффективность и гибкость программного обеспечения, система UNIX имеет несколько полезных функций:
основная цель системы — это выполнять широкий спектр заданий и программ;
интерактивное окружение, которое позволяет вам связываться напрямую с компьютером и получать немедленно ответы на ваши запросы и сообщения;
многопользовательское окружение, которое позволяет вам разделять ресурсы компьютера с другими пользователями без уменьшения производительности. Этот метод называется разделением времени. Система UNIX взаимодействует с пользователями поочередно, но так быстро, что кажется, что взаимодействует со всеми пользователями одновременно;
многозадачное окружение, которое позволяет вам выполнять более одного задания в одно и тоже время.
3.2.Компоненты.
Система UNIX имеет 4 основных компонента:
ядро -это программа, которая образует ядро операционной системы; она координирует внутренние функции компьютера ( такие как размещение системных ресурсов). Ядро работает невидимо для вас;
shell -это программа, которая осуществляет связь между вами и ядром, интерпретируя и выполняя ваши команды. Так как она читает ваш ввод и посылает вам сообщения, то описывается как интерактивная;
commands -это имена программ, которые компьютер должен выполнить. Пакеты программ называются инструментальными средствами. Система UNIX обеспечивает инструментальными средствами для таких заданий как создание и изменение текста, написание программ, развитие инструментария программного обеспечения, обмен информацией с другими посредством компьютера;
file system -файловая система — это набор всех файлов, возможных для вашего компьютера. Она помогает вам легко сохранять и отыскивать информацию.
3.2.1. Ядро
Ядро контролирует доступ к компьютеру, управляет памятью компьютера, обслуживает файловую систему и распределяет ресурсы компьютера среди пользователей. На рис. 1 приведено функциональное представление ядра.
Ядро
\ Распределение /
\ ресурсов /
\ системы /
\ /
Управление \ / Обслуживание
памятью \/ файловой
/ \ системы
/ \
/ Контроль \
/ доступа \
/ к компьютеру \
рис 1.
3.2.2.Shell
Shell — это программа, которая позволяет вам связываться с операционной системой. Shell считывает команды, которые вы вводите, и интерпретирует их как запросы на выполнение других программ, на доступ к файлу или обеспечение вывода. Shell также является мощным языком программирования, не похожим на язык программировани Си, который опеспечивает условное выполнение и управление потоками данных.
3.2.3. Commands.
Внешний круг системы UNIX образуют программы и инструментальные средства системы, разделенные на категории функционально. Эти функции включают:
программное окружение — несколько программ системы UNIX, устанавливающих дружественное программное окружение, обеспечивающее интерфейсы между системой и языками программирования и использование обслуживающих программ;
обработка текстов — система обеспечивает программы, такие как строковый и экранный редакторы, для создания и изменения текстов, орфографическую программу проверки для обнаружения ошибок орфографии, и необязательный форматер текста для создания высококачественных копий, которые подходят для публикаций;
организация информации — система предоставляет много программ, которые позволяют вам создавать, организовывать и удалять файлы и каталоги;
обслуживающие программы — инструментальные средства, создающие графику и выполняющие вычисления;
электронная связь — несколько программ (например, mail) предоставляют вам возможность передавать информацию другим пользователям и в другие системы UNIX.
3.2.4. File system.
Файловая система является краеугольным камнем операционной системы UNIX. Она обеспечивает логический метод организации, восстановления и управления информацией. Файловая система имеет иерархическую структуру.Файл, который является основной единицей системы UNIX, может быть: обыкновенным файлом, справочником, специальным файлом или символическим каналом связи.
3.2.4.1. Обыкновенные файлы.
Обыкновенные файлы являются набором символов. Обыкновенные файлы используются для хранения любой информации. Они могут содержать тексты для писем или отчетов, коды программ, которые вы написали, либо команды для запуска ваших программ. Однажды создав обыкновенный файл вы можете добавить нужный материал в него, удалить материал из него, либо удалить файл целиком.
3.2.4.2. Справочники
Справочники являются супер-файлами, которые могут содержать файлы или другие справочники. Обычно файлы, содержащиеся в них, устанавливают отношения каким-либо способом. Например, справочник, названный sales может хранить файлы, содержащие цифры ежемесячных продаж, названные jan, feb, mar, и т.д. Вы можете создать каталоги, добавить или удалить файлы из них или удалить каталоги.
Все справочники, которые вы создаете, будут размещены в вашем собственном справочнике. Этот справочник назначается вам системой во время входа в систему. Никто кроме привилегированных пользователей не может читать или записывать файлы в этот справочник без вашего разрешения и вы определяете структуру этого справочника.
3.2.4.3 Специальные файлы.
Специальные файлы, предназначенные для работы с устройствами как правило сосредоточены в директории "/dev".
3.2.4.4.Файловая система.
В старых Unix'ах отводилось 14 букв на имя, в новых это ограничение снято. В директории кроме имени файла находится его идентефикатор inode — целое число, определяющее номер блока, в котором записаны атрибуты файла. Среди них: номер пользователя — хозяина файла; номер группы; количество ссылок на файл (см.далее) даты и время создания, последней модификации и последнего обращения к файлу; атрибуты доступа. Атрибуты доступа содержат тип файла (см.далее), атрибуты смены прав при запуске (см.далее) и права доступа к нему для хозяина, одногрупника и остальных на чтение, запись и выполнение. Право на стирание файла определяется правом записи в вышележащую директорию.
Каждый файл (но не директория) может быть известен под несколькими именами, но обязательно лежащими на одном разделе. Все ссылки на файл равноправны; файл стирается, когда удаляется последняя ссылка на файл. Если файл открыт (для чтения и/или записи), то число ссылок на него увеличивается еще на единицу; так многие программы, открывающие временный файл, сразу удаляют его, чтобы при аварийном завершении, когда операционная система закрывает открытые процессом файлы, этот временный файл был удален операционной системой.
Есть еще одна интересная особенность файловой системы: если после создания файла запись в него шла не подряд, а с большими интервалами, то для этих интервалов место на диске не выделяется. Таким образом суммарный обьем файлов в разделе может быть больше обьема раздела, а при удалении такого файла освобождается меньше места, чем его размер.
В отличие от DOS, в котором полное имя файла выглядит как «диск:\путь\имя», и RISC-OS, в которой оно выглядит "-файловая_система-диск:$.путь.имя" (что вообще говоря имеет свои преимущества), Unix использует прозрачную нотацию в виде "/путь/имя". Корень отсчитывается от раздела, с которого было загружено ядро Unix. Если мы собираемся использовать другой раздел (а на загрузочном разделе как правило находится только самое необходимое для загрузки), используется команда `mount /dev/файл_раздела директория`. При этом файлы и поддиректории, ранее находившиеся в этой директории, становятся недоступными, пока не раздел не будет размонтирован (естественно, все нормальные люди используют для монтирования разделов пустые директории). Производить монтирование и размонтирование имеет право только суперпользователь.
При запуске каждый процесс может расчитывать, что для него уже открыты три файла, которые ему известны как стандартный ввод stdin по дескриптору 0; стандартный вывод stdout по дескриптору 1; и стандартный вывод stderr по дескриптору 2. При регистрации в системе, когда пользователь вводит имя и пароль, а ему запускается shell, все трое направлены на /dev/tty; позже любой из них может быть перенаправлен в любой файл.
3.3. Подключение к UNIX.
Чтобы установить контакт с системой UNIX вам необходимо иметь:
терминал Терминал является устройством ввода/вывода: вы используете его для ввода запросов системе UNIX, а система — для выдачи ответов вам. Существует два основных вида терминалов: видеотерминал и печатающий терминал.
Видеотерминал отображает ввод и вывод на экране дисплея;
Печатающий терминал постоянно подает на бумагу. Во многих случаях эти различия никак не влияют на действия пользователя или на ответы системы. В этой документации все, что выводится на экран терминала, как же отображается и печатающим терминалом, если не сделаны какие-либо замечания;
регистрационное имя, которое идентифицирует вас как полномочного пользователя;
пароль, который проверяет вас на идентичность;
инструкции для диалога и доступа к системе UNIX, если ваш терминал напрямую не связан с компьютером.
Отличия операционной системы UNIX от других операционных систем.
Unix состоит из ядра с включенными в него драйверами и из утилит (внешних по отношению к ядру программ). Если надо изменить конфигурацию (добавить устройство, изменить порт или прерывание), то ядро пересобирают (перелинковывают) из обьектных модулей .
В противоположность Unix'у Windows (если не уточняется, какая, то имеются в виду 3.11, 95 и NT) и OS/2 при загрузке фактически на ходу прилинковывают драйверы. При этом компактность собранного ядра и повторное использование общего кода на порядок ниже, чем у Unix. Кроме того, при неизменной конфигурации системы ядро Unix без переделки (потребуется изменить только стартовую часть BIOS) может быть записан в ПЗУ и выполняться _не_загружаясь_ в ОЗУ. Компактность кода особенно важна, т.к. ядро и драйверы никогда не покидают физическую оперативную память, не сводятся на диск.
Unix — самая многоплатформенная OS. WindowsNT пытается подражать ему, но пока это плохо удается — после отказа от MIPS и POWER-PC, W'NT остались всего на двух платформы — традиционная i*86 и DEC Alpha. Разумеется, переносимость программ с одной версии Unix на другую ограничена. Неаккуратно написанная программа, не учитывающая различий в реализациях Unix, может потребовать серьезной переделки. Но все равно это на много порядков легче, чем например перенести с OS/2 на NT.
Почему Unix?
Unix используется как в качестве как сервера, так и рабочей станции. В номинации серверов с ним конкурируют MS WindowsNT, Novell Netware, IBM OS/2 Warp Connect, DEC VMS и операционные системы мэйнфреймов. Каждая система имеет свою область применения, в которой она лучше других.
WindowsNT — для администраторов, которые предпочитают привычный интерфейс экономному расходованию ресурсов и высокой производительности.
Netware — для сетей, где нужна высокая производительность файлового и принтерного сервиса и не столь важны остальные сервисы. Главный недостаток — на сервере Netware трудно запускать приложения.
OS/2 хороша там, где нужен «легкий» сервер приложений. Ресурсов требует меньше чем NT, в управлении гибче (хотя в настройке может и сложнее), а многозадачность очень хорошая. Авторизация и разграничение прав доступа не реализованы на уровне ОС, что с лихвой окупается реализацией на уровне приложений-серверов. (Впрочем, зачастую остальные OS делают то же самое). Многие станции FIDOnet и BBS сделаны на базе OS/2.
VMS — мощный, ничем не уступающий Unix'ам (а во многом и превосходящий его) сервер приложений, но только для платформ VAX и Alpha фирмы DEC.
Мэйнфреймы — для обслуживания очень большого количества пользователей (порядка нескольких тысяч). Но работа этих пользователей как правило организована в виде не клиент-серверного взаимодействия, а в виде хост-терминального. Терминал же в этой паре скорее не клиент, а сервер (Мир Internet, N3 за 1996-й год). К преимуществам мэйнфреймов надо отнести более высокую защищенность и устойчивость к сбоям, а к недостаткам — соответствующую этим качествам цену.
Unix хорош для квалифицированного (или желающего стать таковым) администратора, т.к. требует знания принципов функционирования происходящих в нем процессов. Реальная многозадачность и жесткое разделение памяти обеспечивают высокую надежность функционирования системы, хотя в производительности файл- и принт-сервисов Unix'ы уступают Netware.
Недостаточная гибкость предоставления прав доступа пользователей к файлам по сравнению с WindowsNT затрудняет организацию _на_уровне_файловой_системы_ группового доступа к данным (точнее, к файлам), что компенсируется простотой реализации, а значит меньшими требованиями к аппаратуре. Впрочем, такие приложения, как SQL-сервер решают проблему группового доступа к данным своими силами.
Практически все протоколы(правила обмена информацией в сети), на которых основан Internet, были разработаны под Unix, в частности стек протоколов TCP/IP придуман в университете Berkeley.
Защищенность Unix при правильном администрировании ни в чем не уступает ни Novell, ни WindowsNT.
Важным свойством Unix, которое приближает его к мэйнфреймам, является его многотерминальность, много пользователей могут одновременно запускать программы на одной Unix-машине. Если не требуется использовать графику, можно обойтись дешевыми текстовыми терминалами (специализированными или на базе дешевых PC), подключенными по медленным линиям. В этом с ним конкурирует только VMS. Можно использовать и графические X-терминалы, когда на одном экране присутствуют окна процессов, выполняющихся на разных машинах.
В номинации рабочих станций с Unix конкурируют MS Windows*, IBM OS/2, Macintosh и Acorn RISC-OS.
Windows — для тех, кто ценит совместимость больше эффективности; для тех, кто готов купить большое количество памяти, дискового пространства и мегагерц; для тех, кто любит не вникая в суть, щелкать мышкой по кнопочкам в окошке. Правда, рано или поздно все равно придется изучить принципы работы системы и протоколов, но тогда уже будет поздно — выбор сделан. Немаловажным преимуществом Windows надо признать также возможность украсть кучу программного обеспечения.
OS/2 — для любителей OS/2. Хотя по некоторым сведениям OS/2 лучше других взаимодействует с мэйнфреймами и сетями IBM.
Macintosh — для графических, издательских и музыкальных работ, а также для тех, кто любит понятный, красивый интерфейс и не хочет разбираться в подробностях функционирования системы.
RISC-OS, прошитая в ПЗУ, позволяет не тратить время на инсталляцию операционной системы и восстановление ее после сбоев. Кроме того, практически все программы под ней очень экономно расходуют ресурсы, благодаря чему не нуждаются в свопинге и работают очень быстро.
Unix функционирует как на PC, так и на мощных рабочих станциях с RISC-процессорами, под Unix написаны действительно мощные САПР и геоинформационные системы. Своей масштабируемостью Unix из-за его многоплатформенности на порядок превосходит любую другую операционную систему.
Экранный редактор VI и редактор текстов ED.
5.1. Редактор VI.
Редактор vi является мощным средством для создания и редактирования файлов. Он предназначен для работы на видеотерминале и использует окна, посредством которых вы можете просматривать текст файла. Несколько простых команд позволяют вам сделать изменения в тексте, которые очень быстро отображаются на экране. Редактор может отобразить одну или несколько строк текста. Он позволяет вам передвигать курсор в любую точку на экране или в файле, создавать, изменять или удалять текст. Вы можете также использовать некоторые команды построчного редактора, такие как глобальные команды, которые позволяют вам изменять множество появлений некоторой строки символов, используя одну команду. Чтобы двигаться по файлу, вы можете прокручивать текст вперед или назад.
Примечание. Не все терминалы обладают способностью прокрутки текста и поэтому средство прокрутки текста редактором vi зависит от типа используемого терминала.
Редактор vi имеет более 100 команд позволяющих:
изменить окружение shell, чтобы установить конфигурацию вашего терминала;
сделать доступным автоматический возврат каретки;
начать работу с редактором vi, создать текст, исправить ошибки, записать текст в файл и завершить работу;
переместить текст внутри файла;
разбить и слить текст;
использовать специальные команды и сокращения;
использовать команды построчного редактора, доступные внутри vi;
временно вернуться в shell, чтобы выполнить команды shell;
восстановить файл, потерянный из-за прерывания сессии редактирования;
редактировать несколько файлов в одной сессии.
5.2. Редактор ED.
Редактор текстов ed является диалоговой (интерактивной) программой, которая позволяет добавлять, перемещать, удалять текст и извлекать его из других файлов. Имеется возможность замены слова или части слова в тексте как для одной указанной строки, так и для части файла или всего файла. Кроме того, можно просмотреть текстовый файл, напечатать его частично или целиком, напечатать строки, содержащие определенное слово и т.д.
ED работает с копией обрабатываемого файла, которая создается в буфере редактора и хранится там в течение всей обработки. Это предохраняет исходный файл от возможных разрушений при совершении грубых ошибок. Сделанные в копии изменения не влияют на исходный файл до тех пор, пока не будет выдана команда записи.
Редактор запоминает имя обрабатываемого файла (первоначально — имя исходного загруженного файла). По желанию пользователя это имя можно заменять для получения новых вариантов файла.
Если размер файла превышает размер буфера редактора, файл приходится делить на части с помощью команды split, редактировать его по частям, а затем снова объединять с помощью команды cat.
Пользователь сообщает редактору, что делать с его текстом, с помощью определенных инструкций, называемых «командами». Команды редактора имеют простую структуру, и в большинстве случаев состоят из одной буквы. Каждая команда печатается на отдельной строке. Иногда перед командой указывается информация о том, какая строка или строки должны подвергаться действию команды. ed не отвечает на большинство команд, не печатает подсказки или сообщения типа «готово».
Все вводимые командные строки должны заканчиваться символом <CR>.
www.ronl.ru
СОДЕРЖАНИЕ
ВВЕДЕНИЕ. 3
1. РАЗЛИЧНЫЕ СОСТАВЛЯЮЩИЕ ОПЕРАЦИОННОЙ СИСТЕМЫ… 5
2. ОСНОВНЫЕ ФУНКЦИИ UNIX СИСТЕМЫ… 8
2.1. init 8
2.2. Подключение к системе стерминалов. 8
2.3. Syslog. 9
2.4. Периодическое выполнениекоманд: cron и at 9
2.5. Графический интерфейспользователя. 10
2.7. Подключение к системе черезсеть. 10
2.8.Сетевые файловые системы… 11
2.9. Почта. 11
2.10. Печать. 12
3. ФАЙЛОВАЯ СИСТЕМА… 13
4. ЗАПУСК СИСТЕМЫ И ПЕРЕЗАГРУЗКА… 17
4.1. Обзор. 17
4.2 Процесс запуска при близкомрассмотрении. 18
4.3. Завершение работы ивыключение системы… 21
4.4. Перезагрузка системы… 23
4.5. Однопользовательский режимработы… 24
4.6. Дискеты для экстреннойзагрузки. 24
ЗАКЛЮЧЕНИЕ. 26
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ… 27
ПРИЛОЖЕНИЕ. 28
ВВЕДЕНИЕ
В данной курсовой работе дается обзор операционной системы Linux. Прежде всего, рассматриваются основные функции системы. Затем следует описание программ, реализующих эти функции.
Linux является Unix-подобной операционной системой, которая используется на различных компьютерах PC-386. Впервые она была представлена как pасшиpение к операционной системе Minix и ее первые версии включали поддержку только файловой системы Minix.
Непрерывное снижение цен, рост производительности в наше время и ожидаемое появление новых микро- и супер-микрокомпьютеров делают мощь системы UNIX доступной для все большего круга пользователей. Системы UNIX или типа UNIX работают на любых машинах, от уровня PC-XT до AT и выше. Доступность больших объемов оперативной памяти и мощных микропроцессоров привела к возрастанию интереса к многозадачности, системам мультипроцессирования — сфере, в которой UNIX имеет солидную репутацию.
Однако применение UNIX с максимальной отдачей - дело нелегкое. Люди годами высказывали неудовлетворение тем, что она не является «дружественной» по отношению к пользователю — и это разумная критика, хотя на самом деле UNIX содержит средства для построения интерфейсов любого требуемого уровня сложности. Наиболее важная причина трудоемкости эффективного использования UNIX состоит в том, что в системе используются очень интересные и эффективные идеи, не знакомые многим людям, работавшим с более простыми операционными системами. UNIX предоставляет также гораздо больше инструментальных средств, более гибких и с существенно большими возможностями, чем, например, популярная MS-DOS (в чем можно убедиться беглым сравнением соответствующих руководств).
Цель курсовой работы – дать понимание системы в целом, то есть рассмотреть, выделить главное и описать операционную систему Linux. Для достижения поставленной цели необходимо решить следующие задачи:
- рассмотреть составляющие операционной системы;
- рассмотреть основные функции системы;
- рассмотреть файловую систему;
- рассмотреть и описать запуск системы и перезагрузку;
- сделать соответствующие выводы, изложить материал.
Актуальность работы объясняется тем, что сегодня навыки пользователя – это одно из важнейших требований к современным сотрудникам практически любого предприятия, изучить и разобраться в операционных системах — это одна из важнейших задач в приобретении данных навыков.
1. РАЗЛИЧНЫЕ СОСТАВЛЯЮЩИЕОПЕРАЦИОННОЙ СИСТЕМЫ
Любая UNIX-подобная операционная система состоит из ядра и некоторых системных программ. Также существуют некоторые прикладные программы для выполнения какой-либо задачи. Ядро является сердцем операционной системы. Оно размещает файлы на диске, запускает программы и переключает процессор и другое оборудование между ними для обеспечения мультизадачности, распределяет память и другие ресурсы между процессами, обеспечивает обмен пакетами в сети и т.п. Ядро само по себе выполняет только маленькую часть общей работы, но оно предоставляет средства, обеспечивающие выполнение основных функций. Оно также предотвращает использование прямого доступа к аппаратным средствам предоставляя специальные средства для обращения к периферии. Таким образом ядро позволяет контролировать использование аппаратных средств различными процессами и обеспечивать некоторую защиту пользователей друг от друга.
Средства, предоставляемые ядром, используются через системные вызовы.
Системные программы используют средства, предоставляемые ядром для обеспечения выполнения различных функций операционной системы. Системные и все остальные программы выполняются «на поверхности ядра», в так называемом пользовательском режиме.
Существует некоторая разница между системными и прикладными программами. Прикладные программы предназначены для выполнения какой-либо определенной задачи, в то время как системные программы используются для поддержания работы системы. Текстовый процессор является прикладной программой, а программа telnet — системной, хотя зачастую граница между ними довольно смутная.
Довольно часто операционная система содержит компиляторы и соответствующие им библиотеки (GCC и C библиотеки для Linux), хотя не обязательно все языки программирования должны быть частью операционной системы. Документация, а иногда даже игры, могут являться ее частью. Обычно состав операционной системы определяется содержимым установочного диска или ленты, хотя дело обстоит несколько сложнее, так как различные части операционной системы разбросаны по разным FTP серверам во всем мире.
Важные составляющие ядра.
Ядро системы Linux состоит из нескольких основных частей:
- блок управления процессами,
- блок управления памятью,
- драйверы
- устройств,
- драйверы файловых систем,
- блок управления сетью а также другие небольшие процедуры.
Наиболее важные составляющие ядра (обеспечивающие жизнеспособность системы) — это блок управления памятью и процессами. Блок управления памятью обеспечивает распределение областей памяти и swap-областей между процессами, составляющими ядра и для кэш-буфера. Блок управления процессами создает новые процессы и обеспечивает многозадачность путем переключения задач.
На самом нижнем уровне ядро содержит драйверы устройств для каждого типа поддерживаемого оборудования. Существует довольно большой набор различных драйверов, так как постоянно разрабатываются новые типы устройств. Существует довольно много одинаковых устройств, которые различаются только тем, как происходит взаимодействие между самим устройством и драйвером.
Такое сходство позволяет использовать классы драйверов, поддерживающих одинаковые операции. В каждом члене такого класса используется однотипный интерфейс для ядра, но различные схемы взаимодействия с устройством. Например, все драйверы жесткого диска представляются для ядра абсолютно одинаково, то есть у них у всех имеются такие операции как «инициализация жесткого диска» чтение сектора N, «запись сектора N».
Некоторые функции, предоставляемые ядром, имеют одинаковые свойства. Например, различные сетевые протоколы объединены в один программный интерфейс — BSD socket библиотеку. Вот другой пример — различные файловые системы, поддерживаемые системой Linux. Ядро содержит виртуальную файловую систему (Virtual File System — VFS) которая включает в себя все функции, используемые для работы системы, а также драйвер для каждой поддерживаемой файловой системы. При попытке доступа к какой-либо файловой системе запрос проходит через VFS, откуда перенаправляется к соответствующему драйверу файловой системы.
2. ОСНОВНЫЕ ФУНКЦИИ UNIX СИСТЕМЫ
В этом разделе достаточно поверхностно рассматриваются некоторые наиболее важные функции UNIX системы. Более подробно они рассмотрены в следующих главах.
2.1. initЕдинственную и самую важную функцию в UNIX системе предоставляет процесс init. Он запускается в любой UNIX системе как самый первый процесс, а также завершает процедуру загрузки системы. При запуске init, продолжается процесс загрузки (проверяются и устанавливаются файловые системы, запускаются различные программы-демоны и т.д.).
Точный список того, что выполняется при запуске init, зависит от версии программы. Обычно init предоставляет однопользовательский режим, при котором никто не может подключиться к системе. Обычный режим — это многопользовательский.
Некоторые версии используют понятие «уровень запуска». Например, однопользовательский и многопользовательский режимы — это разные уровни запуска. Также существуют дополнительные уровни, например для запуска X-windows.
При работающей системе, две самые важные задачи программы init — это удостоверится, что все программы-демоны getty работают (т.е. имеется возможность подключения к системе) и адаптирование orphan-процессов (т.е. процессов, чей родительский процесс был уничтожен; в системе UNIX все процессы должны принадлежать одному дереву процессов, поэтому orphan-процессы должны быть адаптированы).
При завершении работы системы и перезапуске, init уничтожает все оставшиеся процессы, демонтирует файловые системы и останавливает процессор.
2.2. Подключение ксистеме с терминаловПодключение к системе с терминалов (через последовательные линии) и с главной консоли (если не запущены X) обеспечивается программой getty. init запускает отдельный процесс getty для каждого терминала. getty считывает имя пользователя и запускает программу login, которая считывает пароль. Если имя и пароль соответствуют одному пользователю, то login запускает оболочку.
При выходе из оболочки, то есть при выходе из системы, или при завершении программы login в случае если имя пользователя и пароль не подходят, init запускает новый процесс getty. Ядро не контролирует подключения к системе, а только выполняет системные программы.
2.3. Syslog
Иногда при работе ядра или различных системных программ возникают ошибки, предупреждения и другие сообщения. Программа syslog записывает все сообщения в файл так, что он может быть впоследствии просмотрен. Syslog можно сконфигурировать так, что сообщения будут сортироваться и записываться в разные файлы по приоритету. Например, сообщения ядра часто направляются в отдельный файл, так как эти сообщения наиболее важные и должны регулярно просматриваться во избежание серьезных проблем.
2.4. Периодическоевыполнение команд: cron и at
Как отдельным пользователям, так и системному администратору иногда требуется периодически запускать определенные команды.
Например, системному администратору может потребоваться периодически запускать команду для очистки каталогов от временных файлов (/tmp и /var/tmp), для предотвращения переполнения диска.
Для этого используется функция cron. У каждого пользователя имеется файл crontab, в котором содержится список команд, представленных к выполнению и количество раз, которое они должны быть выполнены. Программа-демон crond обеспечивает своевременное выполнение указанных команд.
Функция at идентична функции cron, только команда запускается один раз в указанное время и запуск больше не повторяется.
2.5. Графическийинтерфейс пользователяКак в системе UNIX так и в Linux, пользовательский интерфейс не встраивается в ядро системы. Вместо этого он представляется программами пользовательского уровня. Это применяется как к текстовым, так и к графическим оболочкам.
Такой стандарт делает систему более гибкой, хотя и имеет свои недостатки. Например, это легко позволяет создавать новые интерфейсы для программ, что затрудняет изучение системы.
Первоначально используемой с системой Linux графической оболочкой была система X Window System (сокращенно X). X не реализует пользовательский интерфейс, а только оконную систему, т.е. средства, с помощью которых может быть реализован графический интерфейс. Три наиболее популярных версии графических интерфейсов на основе X — это Athena, Motif и Open Look.
2. 6. Работа с сетью
Сеть — это средство, позволяющее соединяться двум или более компьютерам между собой.
UNIX-подобные операционные системы имеют широкий спектр сетевых возможностей. Большинство базовых функций (файловые системы, печать, создание резервных копий и т.д.) могут быть реализованы посредством сети. Это может значительно облегчить работу системного администратора, так как позволяет использовать централизованное администрирование.
2.7. Подключение ксистеме через сеть
Подключение к системе через сеть работает несколько иначе, чем обычное подключение. Существуют отдельные физические последовательные линии для каждого терминала, через которые и происходит подключение. Для каждого пользователя, подключающегося к системе, существует отдельное виртуальное сетевое соединение и их может быть любое количество. Однако не представляется возможным запустить отдельный процесс getty для каждого возможного виртуального соединения. Существуют также и другие способы подключения к системе посредством сети. Например, telnet и rlogin — основные службы в TCP/IP сетях.
При использовании сети для подключения к системе, кроме большого количества процессов getty используется отдельная программа-демон (при использовании как telnet так и login используются различные программы-демоны), которая отслеживает все попытки соединения с компьютером. Если определяется попытка соединения, то программа создает новый процесс — создает сама себя для обработки этого соединения — а затем продолжает отслеживание новых соединений. Создаваемый процесс идентичен программе getty.
2.8.Сетевые файловыесистемыОдна из наиболее полезных функций, которая может быть реализована с помощью сети, это разделение файлов через сетевую файловую систему. Обычно используется система, называемая Network File System или NFS, которая разработана корпорацией Sun.
При работе с сетевой файловой системой любые операции над файлами, производимыми на локальном комьютере, передаются через сеть на удаленную машину. При работе сетевой файловой системы программа считает, что все файлы на удаленном компьютере находятся на компьютере, где она запущена. Таким образом разделение информации посредством такой системы не требует внесения каких-либо изменений в программу.
2.9. ПочтаЭлектронная почта является самым важным средством связи между компьютерами. Электронные письма хранятся в одном файле в специальном формате. Для чтения и отправления писем применяются специальные программы.
У каждого пользователя имеется отдельный «почтовый ящик» (т.е. файл, где информация хранится в специальном формате), в котором хранится приходящая почта. Если на компьютер приходит письмо, то программа обработки почты находит файл почтового ящика соответствующего пользователя и добавляет туда полученное письмо.
Если же почтовый ящик пользователя находится на другом компьютере, то письмо перенаправляется на этот компьютер, где проходит его последующая обработка.
Почтовая система состоит из множества различных программ.
Доставка писем к локальным или удаленным почтовым ящикам производится одной программой (например, sendmail или smail), в то время как для обычной отправки или просмотра писем применяется большое количество различных программ (например, Pine или elm).
Файлы почтовых ящиков обычно хранятся в каталоге /var/spool/mail.
2.10. Печать
В один момент времени принтером может пользоваться только один пользователь. Поэтому для того, чтобы принтером могли пользоваться сразу несколько пользователей, используется специальная программа, которая обеспечивает обслуживание очереди к принтеру. Все задания для принтера помещаются в буфеp. Когда принтер заканчивает обработку одного задания, следующее передается к нему автоматически. Это значительно упрощает работу с принтером.
Программа обслуживания очереди к принтеру помещает информацию, которая должна быть распечатана, на диск, то есть текст располагается на диске, в то время как задание находится в очереди. Это позволяет прикладным программам достаточно быстро распечатывать тексты, помещая их в очередь, так как для продолжения работы приложению не требуется дожидаться окончания распечатки.
3. ФАЙЛОВАЯ СИСТЕМА
Файловая система разделяется на несколько частей: файловая система root, состоящая из каталогов /bin, /lib, /etc, /dev и некоторых других, файловая система /usr, где хранятся различные программы и данные не подлежащие изменению, файловая система /var, где содержатся изменяемые файлы (такие как log файлы и др.) и файловая система /home, которая состоит из личных каталогов пользователей. Разделение может существенно отличатся от выше указанного в зависимости от работы системного администратора и конфигурации аппаратного обеспечения.
Файловая система — это методы и структуры данных, которые используются операционной системой для хранения файлов на диске или его разделе. О файловой системе также говорят, ссылаясь на раздел или диск, используемый для хранения файлов или тип файловой системы.
Нужно видеть разницу между диском или разделом и установленной на нем файловой системой. Некоторые программы (например, программы установки файловой системы) при обращении к диску или разделу используют прямой доступ к секторам. Если на этом месте была файловая система, то она будет серьезно повреждена. Большинство программ взаимодействуют с диском посредством файловой системы, и, следовательно, их работа будет нарушена, если на разделе или диске никакая система не установлена (или тип файловой системы не соответствует требуемому).
Перед тем, как раздел или диск могут быть использованы в качестве файловой системы, она должна быть инициализирована, а требуемые данные перенесены на этот диск. Этот процесс называется созданием файловой системы.
У большей части файловых систем UNIX сходная структура, а их некоторые особенности очень мало различаются. Основными понятиями являются: суперблок, индексный дескриптор (inode), блок данных, блок каталога и косвенный блок. В суперблоке содержится информация о файловой системе в целом, например, ее размер (точная информация зависит от типа файловой системы). В индексном дескрипторе хранится вся информация о файле, кроме его имени. Имя файла хранится в блоке каталога, вместе с номером дескриптора. Запись каталога содержит имя файла и номер индексного дескриптора соответствующего файла. В этом дескрипторе хранятся номера нескольких блоков данных, которые используются для хранения самого файла. В inode есть место только для нескольких номеров блоков данных, однако, если требуется большее количество, то пространство для указателей на блоки данных динамически выделяется. Такие блоки называются косвенными. Для того, чтобы найти блок данных, нужно сначала найти его номер в косвенном блоке.
В файловых системах UNIX обычно имеется возможность создания дыр в файлах (это можно сделать с помощью команды lseek(2)). Это означает, что файловая система предоставляет ложную информацию о том, что в каком-то месте в файле содержатся нулевые байты, но в действительности для этого не выделяются сектора (это означает, что файл будет занимать несколько меньше места на диске). Это часто используется особенно в небольших двоичных программах, библиотек Linux, в некоторых базах данных и в других отдельных случаях. (Дыры реализуются хранением специального значения в косвенном блоке или индексном дескрипторе вместо адреса блока данных. Это специальное значение показывает, что для данной части файла блоки данных не размещены и, следовательно, что в файле есть дыра.)
Использование дыр достаточно эффективно. На компьютере с общим дисковым пространством в 200 Мб, простые измерения показывают, что применение дыр дает экономию в 4 Мб. Однако, эти измерения проводились на системе, где было установлено относительно мало программ и отсутствовали файлы баз данных. Метод измерения дыр рассмотрен в приложении B.
Linux поддерживает несколько типов файловых систем. Наиболее важные из них рассмотрены ниже.
minix Считается самой старой и самой надежной файловой системой, но достаточно ограниченной в своих возможностях (у файлов отсутствуют некоторые временные параметры, длина имени файла ограничена 30-ю символами) и доступных объемах (максимум 64 Мб на одну файловую систему).
xia Модифицированная версия системы minix, в которой увеличена максимальная длина имени файла и размер файловой системы, хотя она не реализует никаких новых возможностей.
ext2 Наиболее богатая функциональными возможностями файловая система из семейства совместимых с Linux. На данный момент считается самой популярной системой. Она разработана с учетом совместимости с последующими версиями, поэтому для установки новой версии кода системы не требуется устанавливать ее заново.
ext Предыдущая версия системы ext2, не совместима с последующими версиями. В настоящее время она очень редко включается в пакеты новых поставляемых систем, т.к. большинство пользователей сейчас пользуются системой ext2.
В дополнение к рассмотренным выше, в Linux включена поддержка еще некоторых файловых систем для обеспечения обмена файлами между другими операционными системами. Эти файловые системы работают также, как и описанные выше, кроме того, что их функциональные возможности могут быть значительно ограничены по сравнению с возможностями, обычно предоставляемыми файловыми системами UNIX.
msdos Обеспечивается совместимость с системой MS-DOS (а также OS/2 и Windows NT).
umsdos Расширяет возможности драйвера файловой системы MS-DOS для Linux таким образом, что при работе в Linux, имеется возможность работы с именами файлов нестандартной длины, просмотра прав доступа к файлу, ссылок, имени пользователя, которому принадлежит файл, а также оперирование с файлами устройств. Это позволяет использовать обычную систему MS-DOS, так, как если бы это была система Linux. Таким образом, исключается необходимость создания отдельного раздела для Linux.
iso9660 Стандартная файловая система для CD-ROM. Довольно популярное развитие стандарта CD-ROM, выполненное Rock Ridge'м, которое обеспечивает автоматическую поддержку имен файлов нестандартной длины.
nfs Сетевая файловая система, обеспечивающая разделение одной файловой системы между несколькими компьютерами для предоставления доступа к ее файлам со всех машин.
hpfs Файловая система OS/2.
sysv Файловые системы System V/386, Coherent и Xenix.
Также существует файловая система proc, которая обычно доступна через каталог /proc. В действительности, она не является файловой системой, хотя по ее структуре сложно обнаружить разницу. Эта система позволяет получить доступ к определенным структурам данных ядра, к таким, как список процессов (отсюда название).
Хотя система /proc и называется файловой, ни одна ее часть не взаимодействует с диском. Она существует только в представлении ядра и при попытке обращения к какой-либо ее части, создается впечатление, что эта часть где-то существует, хотя в действительности это не так. Даже если существует файл /proc/kmem в несколько мегабайт, он не занимает места но диске.
4. ЗАПУСК СИСТЕМЫ И ПЕРЕЗАГРУЗКА
4.1. Обзор
Процесс включения компьютера и загрузки операционной системы называется запуском. Во время запуска сначала загружается небольшая программа, называемая начальным загрузчиком, которая в свою очередь загружает в память и запускает операционную систему.
Начальный загрузчик обычно находится в определенном месте на жестком диске или дискете. Потому как Linux это довольно сложная и большая система, ее запуск производится в два этапа, хотя первично загружаемый код должен быть достаточно маленьким (несколько сотен байт).
На разных компьютерах начальная загрузка производится по разному. На персональных компьютерах сначала считывается первый сектор дискеты или жесткого диска (посредством процедур BIOS), который называется загрузочным сектором. В этом секторе находится начальный загрузчик, который затем загружает операционную систему, которая может быть расположена в другом месте на диске или где-либо еще.
После загрузки Linux, инициализируются драйверы устройств, а затем запускается init(8), который в свою очередь запускает другие процессы, позволяющие подключаться к системе и обеспечивающие нормальную работу. Этот этап рассмотрен ниже более подробно.
Для перезапуска системы сначала все процессы должны быть завершены (т.е. закрыты все используемые ими файлы и др.), затем демонтируются файловые системы и swap-области и, в конце концов, на экран выдается сообщение о том, что питание может быть отключено. Если же такая процедура не будет произведена, то могут произойти серьезные сбои в последующей работе системы. Например, информация, хранящаяся в кэш буфере файловой системы, будет утеряна, нарушится целостность файловой системы и, следовательно, она будет не пригодна к использованию.
4.2 Процесс запускапри близком рассмотрении
Linux может быть запущена как с дискет, так и с жесткого диска.
При включении компьютера, сначала BIOS производит тестирование оборудования, а затем запуск операционной системы. Сначала выбирается устройство, с которого будет производится запуск (обычно первый дисковод, если в него вставлена дискета, в противном случае — первый жесткий диск, если он установлен, хотя порядок выбора может быть настроен) и считывается самый первый сектор, который называется загрузочным. Его также называют MBR (Master Boot Record), так как у жесткого диска может быть несколько разделов и у каждого может быть свой загрузочный сектор.
В загрузочном секторе находится небольшая программа (относительно небольшая чтобы она могла разместится в одном секторе), которая загружает и запускает операционную систему. При загрузке с дискеты, в загрузочном секторе находится код, который обеспечивает только считывание ядра системы в определенную заранее область памяти. Загрузочная дискета для Linux не содержит никаких файловых систем. Ядро записано на дискете как последовательность блоков, так как это значительно упрощает процесс загрузки. Однако, вполне можно загружаться с дискеты, на которой установлена какая-нибудь файловая система, используя загрузчик LILO.
При загрузке с жесткого диска, код, расположенный в MBR, проверяет таблицу разделов (также расположенную в MBR), определяет активный раздел (раздел, используемый при загрузке), считывает загрузочный сектор этого раздела и запускает считанный код. Код, расположенный в загрузочном секторе активного раздела жесткого диска, выполняет те же функции, что и код, находящийся в загрузочном секторе дискеты: он считывает ядро из выбранного раздела, а затем запускает его. Однако здесь существует много тонкостей, так как использование отдельного раздела диска только для хранения кода ядра неэффективно, поэтому код, расположенный в загрузочном секторе раздела, не просто последовательно считывает информацию с диска, а использует считывание по секторам. Существует несколько способов решения этой проблемы, но наиболее простым из них является использование LILO загрузчика (информацию по установке и настройке LILO см. в документации по LILO).
При загрузке с использованием LILO обычно сразу же загружается и запускается ядро, заданное по умолчанию, однако можно сконфигурировать LILO так, чтобы можно было бы загрузить одно из нескольких возможных ядер или даже другую операционную систему (в добавление к Linux). Также можно указать требуемое ядро или операционную сиситему во время загрузки. При нажатии клавиши ALT, SHIFT или CTRL (после загрузки LILO) будет выдан запрос, где можно указать ядро или систему. Однако при конфигурировании можно установить опцию, при которой LILO будет всегда выдавать такой запрос, а также указать время, по истечении которого загружается ядро, установленное по умолчанию.
Существуют и другие загрузчики, подобные LILO, однако у него есть несколько полезных функций, которых нет в других загрузчиках, так как он был написан специально для Linux. Например, имеется возможность передачи ядру параметров во время загрузки или изменения некоторых опций, встроенных в ядро. Среди подобных загрузчиков (bootlin, bootactv и др.) LILO является наилучшим выбором.
Загрузка системы как с жесткого диска, так и с дискет имеет свои преимущества, хотя загрузка с жесткого диска считается лучше и быстрее, так как она позволяет избежать неудобства, связанные со сменой дискет. Однако в некоторых случаях загрузка с дискет более удобна. Например, при установке системы или при повреждении файловой системы.
После того, как ядро системы загружено в память (с жесткого диска или с дискет) и запущено, выполняются приблизительно следующие действия:
Так как ядро Linux установлено в запакованном виде, то прежде всего оно само себя распаковывает. Это выполняет небольшая программа, расположенная в самом начале кода.
Если на компьютере установлена видеоплата sVGA, поддерживающая нестандартные текстовые режимы (такие как 100x40), выдается запрос для указания требуемого режима. При компиляции ядра можно сразу указать используемый режим, чтобы он не запрашивался системой во время загрузки. Режим также может быть установлен при помощи LILO или rdev(8).
Затем ядро тестирует аппаратное обеспечение (жесткие диски, дисководы, сетевые адаптеры и др.) и конфигурирует соответствующие драйверы устройств. Во время этого процесса на экран выдаются подсказывающие сообщения. Вот примерно то, что происходит во время загрузки:
LILO boot:
Loading linux.
Console: colour EGA+ 80x25, 8 virtual consoles
Serial driver version 3.94 with no serial options enabled
tty00 at 0x03f8 (irq = 4) is a 16450
tty01 at 0x02f8 (irq = 3) is a 16450
lp_init: lp1 exists (0), using polling driver
Memory: 7332k/8192 available (300k kernel code, 384k reserved, 176k data)
Floppy drive(s): fd0 is 1.44M, fd1 is 1.2M
Loopback device init
Warning WD8013 board not found at i/o = 280
Math coprocessor using irq13 error reporting
Partition check:
hda: hda1 hda2 hda3
VFS: Mounted root (ext filesystem)
Linux version 0.99.pl9-1 (root@haven) 05/01/93 14:12:20
Хотя текст сообщений довольно сильно различается на разных системах и зависит от аппаратного обеспечения, версии Linux и конфигурации. После этого, ядро пытается смонтиpовать файловую систему root. Место, куда она будет смонтирована, устанавливается во время компиляции или с помощью rdev или LILO. Тип файловой системы определяется автоматически. Если система root не монтируется, например по причине того, что ядро не содержит драйвер соответствующей файловой системы, то система зависает.
Файловая система root обычно монтиpуется в режиме read-only (это устанавливается таким же образом как и узел монтирования).
Это делает возможным проверку файловой системы в то время как она смонтирована, хотя проверка файловой системы, установленной в режиме read-write не рекомендуется.
Затем ядро запускает программу init(8) в фоновом режиме (она расположена в каталоге /sbin/init) которая становится главным процессом. init выполняет различные функции, требуемые при установке системы.
В конце концов init запускает программу getty(8) для виртуальных консолей и последовательных линий. Эта программа позволяет подключаться к системе посредством виртуальных консолей и терминалов, подключенных через последовательные порты. Init может быть сконфигурирована также для запуска и других программ.
После этого процесс запуска системы считается завершенным и система готова к работе.
4.3. Завершениеработы и выключение системы
При выключении системы Linux необходимо выполнять некоторые процедуры. Если этого не сделать, то файловые системы и файлы могут повредиться. Это происходит по причине наличия в Linux дискового кэша, информация из которого записывается на диск только через некоторые промежутки времени. Это значительно повышает производительность системы, но также означает, что если просто выключить питание компьютера, то в дисковом кэше может находится большое количество информации и файловая система может быть частично повреждена, так как на диск обычно сбрасывается только часть информации.
Другой причиной для этого является мультизадачность системы, где одновременно может выполняться несколько процессов и выключение питания может быть гибельным для системы. Особенно это касается компьютеров, на которых одновременно работает несколько пользователей.
Существуют команды, предназначенные для правильного выключения системы — это shutdown(8) и halt(8), расположенные в каталоге /sbin. Есть два обычных способа их применения.
Если система установлена на компьютере, где работает один пользователь, то обычно завершают работу всех программ, работу всех виртуальных консолей, входят в систему под пользователем root (или остаются подключенными под этим пользователем, только в этом случае нужно перейти в корневой каталог во избежание проблем с демонтированием файловых систем), затем выполняется команда halt или shutdown -h now (при желании можно установить задержку, которая устанавливается заменой параметра now на знак '+' и числом минут, по истечении которых будет завершена работа системы) или просто halt.
Если на компьютере, на котором установлена система, работает одновременно несколько пользователей, то возможно использование команды shutdown в следующем формате:
shutdown -h +time message,
где time это время, по истечении которого работа системы будет завершена, а message — сообщение, в котором объясняется причина выключения. Например, root# shutdown -h +10 'We will install a new disk. System should > be back on-line in three hours.'
Выполнение этой команды предупредит каждого пользователя, работающего в системе, что она будет выключена через 10 минут.
Сообщение выдается на каждый терминал, где работают пользователи, включая xterm.
Broadcast message from root (ttyp0) Wed Aug 2 01:03:25 1995...
We will install a new disk. System should be back on-line in three hours.
The system is going DOWN for system halt in 10 minutes !!
Выдача сообщения автоматически повторяется несколько раз перед прекращением работы системы и каждый раз с более коротким интервалом. При использовании halt нельзя установить задержку, поэтому эта программа редко применяется на многопользовательских системах.
Замечание: файл /etc/inittab содержит команды, выполняющиеся при выключении системы.
После запуска процесса прекращения работы системы, демонтируются все файловые системы (кроме системы root), завершается выполнение всех процессов и программ-демонов, затем демонтируется файловая система root и вся работа завершается. После этого выдается сообщение, в котором говорится, что можно отключить питание. Только после этого питание компьютера может быть отключено.
В некоторых случаях невозможно завершить этот процесс соответствующим образом. Например, при повреждении кода ядра в памяти, нарушается его работа или система зависает и просто нет возможности ввести новую команду можно только надеяться, что ничего не повредится и выключить питание. Если же неполадки не такие серьезные (например вышла из строя клавиатура), а ядро и программа update работают нормально, то наилучшим вариантом будет подождать несколько минут, пока update(8) не сохранит на диске информацию, хранящуюся в кэш-буфере и только после этого выключить питание.
Некоторые выключают компьютер после трехкратного выполнения команды sync(8), которая сбрасывает на диск содержимое буфера, и, после прекращения обращения к диску, выключают компьютер. Если в момент выключения работа всех программ была завершена, то эта процедура почти идентична выполнению команды shutdown. Однако, файловые системы не демонтируются, что может привести к некоторым проблемам, связанным с флагом 'clean filesystem' системы ext2fs. В любом случае использование этого способа не рекомендуется.
4.4. Перезагрузкасистемы
Процесс перезагрузки может быть достигнут путем прекращения работы системы, выключения питания и включения снова. Более простой способ — это указать команде shutdown перезагрузить систему установив опцию -r. Например, для этого можно использовать команду shutdown -r now. Также можно использовать команду reboot.
4.5. Однопользовательский режим работы
Команда shutdown может также использоваться для перевода системы в однопользовательский режим, в котором к системе никто не может подключится кроме пользователя root, который использует для работы главную консоль. Это иногда применяется для административных целей, для выполнения которых не может быть использована нормально работающая система.
4.6. Дискеты дляэкстренной загрузки
Не всегда имеется возможность загрузки системы с жесткого диска. Например, при неправильных установках в LILO загрузчике систему невозможно будет загрузить. В таких случаях должен быть другой способ загрузки. Для персональных компьютеров обычно она выполняется с дискет.
Большинство распространяемых версий Linux позволяют во время установки системы создать загрузочную дискету. Однако многие такие дискеты содержат только ядро и, предполагается, что для устранения неполадок будут использоваться программы, находящиеся на установочных дисках. Иногда этих программ бывает недостаточно, например, когда требуется восстановить некоторые файлы, созданные с помощью программ, которых нет на этих дисках.
Поэтому может возникнуть необходимость в создании специально настроенного диска. В документации «Bootdisk HOWTO» содержится необходимая информация для создания подобного диска.
При загрузке со специально настроенного диска нельзя использовать привод, на котором смонтирована эта дискета, для каких-либо других целей. Это может создать некоторые неудобства, если в компьютере имеется только один дисковод. Однако, если компьютер имеет достаточный объем памяти, можно загрузить этот диск в RAM диск (для этого ядро, расположенное на дискете должно быть сконфигурировано соответствующим образом). Это позволяет использовать дисковод для других целей.
ЗАКЛЮЧЕНИЕ
Linux является Unix-подобной операционной системой, которая используется на различных компьютерах PC-386. Впервые она была представлена как pасшиpение к операционной системе Minix и ее первые версии включали поддержку только файловой системы Minix.
При запуске оболочки автоматически выполняется один или несколько заранее установленных файлов. Различные оболочки используют разные файлы.
Большинство оболочек сначала запускает один общий файл, напpимеp, оболочка Bourne (/bin/sh) и ей подобные выполняют файл /etc/profile, в дополнение к нему она выполняет файл ~/.profile. В файле /etc/profile системным администpатоpом указываются установки и оболочка для всех пользователей, в частности, переменная оболочки PATH и дp. В то время как файл ~/.profile используется для личных установок пользователя и индивидуальной настройки оболочки.
В ходе выполнения данной курсовой работы были рассмотрены следующие вопросы:
- составляющие операционной системы;
- основные функции системы;
- файловая система;
- запуск системы и перезагрузка;
Кратко изложены основные положения по каждому из рассмотренных вопросов выбранной темы.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
/>1. Аврин С. Странуготовят к Интернету. М. 2001.
2. Батурин Ю.М.Правои политика в компьютерном мире. — М. 1997
3. БеллД. Грядущее индустриальное общество. М. 1999.
4. Володин А. Интерфейссистемы защиты информации. М. 1998.
5. Король Л., Судов Е. Информационнаябезопасность: системный подход. СПб. 2002.
6. Ларс Виржениус. ОС Linux. Руководствосистемного администратора. М. 1998.
7. Милославская Н.Г., Толстой А.И.Интрасети: доступ в Интернет. Защита. М. 2000.
8. Рассел Сейдж. Приемы профессиональнойработы в UNIX. М. 1999.
9. Таили Эд. Безопасность компьютера. Минск.1997
10. Фигурнов В.Э. «IBM PC для пользователя». 7-е изд., пераб.и доп. — М.: ИНФРА-М, 2002. – 640 с.: ил.
11. ФоменковГ. Уязвимость сетевых операционных систем. // БАНКОВСКИЕ ТЕХНОЛОГИИ 5'98.
12. Юфа В. Unix иInternet: приведение к общему знаменателю. М. 2000.
ПРИЛОЖЕНИЕ
Краткое описание некоторых команд операционной системы UNIX
alias
Создает синоним команды.
bg
Запускает прерванный процесс в «фоновом» режиме.
bye
Заканчивает сеанс связи.
cat
Выводит на экран содержимое текстового файла.
cd
Изменяет «текущую» директорию.
conf
Дает возможность читать и посылать статьи в телеконференции.
decode
Восстанавливает бинарный файл, присланный по электроннойпочте в закодированном виде.
dir
Показывает список файлов в «домашней» директории.
du
Подсчитывает об'ем файлов в «домашней» директории,исчисляемый в килобайтах.
echo
Отображает на экран все указанное этой команде в качествепараметра.
encode
Трансформирует бинарный файл в формат 'uudecode'.
exit
Заканчивает сеанс связи.
fg
Переводит процесс из «фонового» режима в«активный» режим.
finger
Дает возможность узнать, кто из пользователейтелекоммуникационной сети работает на линии в данный момент.
ftp
Позволяет получать файлы со специалицированных файл-серверовсети «Интернет».
gopher
Позволяет пользоваться одноименным информационным сервисомсети «Интернет».
head
Выдает на экран первые десять строк текстового файла.
help
Раз'ясняет смысл некоторых комманд на английском языке.
history
Показывает список использованных комманд.
id
Показывает идентификатор пользователя системы.
irc
Дает возможность пользоваться сервисом IRC (Internet RelayChat).
joe
Текстовый редактор.
logout
Заканчивает сеанс связи.
ls
Показывает фалы в домашней директории.
Дает возможность пользоваться электронной почтой.
man
Раз'ясняет смысл некоторых комманд на английском языке.
map
Включает/выключает перекодировку русских символов.
mkdir
Создает поддиректорию в «домашней» директории.
pine
Дает возможность пользоваться электронной почтой.
ping
Показывает наличие связи с определенным сервером сети«Интернет».
ps
Показывает процессы операционной системы UNIX.
pwd
Показывает полное название «текущей» директории.
sz
Пересылает файл на Ваш компьютер.
talk
Позволяет вести интерактивный диалог с пользователем сети«Интернет».
telnet
Соединяет с другими серверами сети «Интернет».
unalias
Уничтожает синоним команды.
uname
Информирует о версии операционной системы на серверетелекоммуникационной сети.
w
Дает возможность узнать, кто из пользователейтелекоммуникационной сети работает на линии в данный момент.
who
Дает возможность узнать, кто из пользователейтелекоммуникационной сети работает на линии в данный момент.
www
Позволяет пользоваться информационным сервисом WWW(World-Wide Web).
www.ronl.ru
Глава 2 Основные понятия операционной системы UNIX.
Одним из достоинств ОС UNIX является то, что система базируется на небольшом числе интуитивно ясных понятий. Однако, несмотря на простоту этих понятий, к ним нужно привыкнуть. Без этого невозможно понять существо ОС UNIX.
2.1 Пользователь. С самого начала ОС UNIX замышлялась как интерактивная система. Другими словами, UNIX предназначен для терминальной работы. Чтобы начать работать, человек должен "войти" в систему, введя со свободного терминала свое учетное имя (account name) и, возможно, пароль (password). Человек, зарегистрированный в учетных файлах системы, и, следовательно, имеющий учетное имя, называется зарегистрированным пользователем системы. Регистрацию новых пользователей обычно выполняет администратор системы. Пользователь не может изменить свое учетное имя, но может установить и/или изменить свой пароль. Пароли хранятся в отдельном файле в закодированном виде. Не забывайте свой пароль, снова узнать его не поможет даже администратор! Все пользователи ОС UNIX явно или неявно работают с файлами. Файловая система ОС UNIX имеет древовидную структуру. Промежуточными узлами дерева являются каталоги со ссылками на другие каталоги или файлы, а листья дерева соответствуют файлам или пустым каталогам. Каждому зарегистрированному пользователю соответствует некоторый каталог файловой системы, который называется "домашним" (home) каталогом пользователя. При входе в систему пользователь получает неограниченный доступ к своему домашнему каталогу и всем каталогам и файлам, содержащимся в нем. Пользователь может создавать, удалять и модифицировать каталоги и файлы, содержащиеся в домашнем каталоге. Потенциально возможен доступ и ко всем другим файлам, однако он может быть ограничен, если пользователь не имеет достаточных привилегий.
2.2. Интерфейс пользователя. Традиционный способ взаимодействия пользователя с системой UNIX основывается на использовании командных языков (правда, в настоящее время все большее распространение получают графические интерфейсы). После входа пользователя в систему для него запускается один из командных интерпретаторов (в зависимости от параметров, сохраняемых в файле /etc/passwd). Обычно в системе поддерживается несколько командных интерпретаторов с похожими, но различающимися своими возможностями командными языками. Общее название для любого командного интерпретатора ОС UNIX - shell (оболочка), поскольку любой интерпретатор представляет внешнее окружение ядра системы. Вызванный командный интерпретатор выдает приглашение на ввод пользователем командной строки, которая может содержать простую команду, конвейер команд или последовательность команд. После выполнения очередной командной строки и выдачи на экран терминала или в файл соответствующих результатов, shell снова выдает приглашение на ввод командной строки, и так до тех пор, пока пользователь не завершит свой сеанс работы путем ввода команды logout или нажатием комбинации клавиш Ctrl-d. Командные языки, используемые в ОС UNIX, достаточно просты, чтобы новые пользователи могли быстро начать работать, и достаточно мощны, чтобы можно было использовать их для написания сложных программ. Последняя возможность опирается на механизм командных файлов (shell scripts), которые могут содержать произвольные последовательности командных строк. При указании имени командного файла вместо очередной команды интерпретатор читает файл строка за строкой и последовательно интерпретирует команды.
2.3. Привилегированный пользователь Ядро ОС UNIX идентифицирует каждого пользователя по его идентификатору (UID - User Identifier), уникальному целому значению, присваиваемому пользователю при регистрации в системе. Кроме того, каждый пользователь относится к некоторой группе пользователей, которая также идентифицируется некоторым целым значением (GID - Group IDentifier). Значения UID и GID для каждого зарегистрированного пользователя сохраняются в учетных файлах системы и приписываются процессу, в котором выполняется командный интерпретатор, запущенный при входе пользователя в систему. Эти значения наследуются каждым новым процессом, запущенным от имени данного пользователя, и используются ядром системы для контроля правомощности доступа к файлам, выполнения программ и т.д. Понятно, что администратор системы, который, естественно, тоже является зарегистрированным пользователем, должен обладать большими возможностями, чем обычные пользователи. В ОС UNIX эта задача решается путем выделения одного значения UID (нулевого). Пользователь с таким UID называется суперпользователем (superuser) или root. Он имеет неограниченные права на доступ к любому файлу и на выполнение любой программы. Кроме того, такой пользователь имеет возможность полного контроля над системой. Он может остановить ее и даже разрушить. В мире UNIX считается, что человек, получивший статус суперпользователя, должен понимать, что делает. Суперпользователь должен хорошо знать базовые процедуры администрирования ОС UNIX. Он отвечает за безопасность системы, ее правильное конфигурирование, добавление и исключение пользователей, регулярное копирование файлов и т.д.
Еще одним отличием суперпользователя от обычного пользователя ОС UNIX является то, что на суперпользователя не распространяются ограничения на используемые ресурсы. Для обычных пользователей устанавливаются такие ограничения как максимальный размер файла, максимальное число сегментов разделяемой памяти, максимально допустимое пространство на диске и т.д. Суперпользователь может изменять эти ограничения для других пользователей, но на него они не действуют.
2.4. Программы ОС UNIX одновременно является операционной средой использования существующих прикладных программ и средой разработки новых приложений. Новые программы могут писаться на разных языках (Фортран, Паскаль, Модула, Ада и др.). Однако стандартным языком программирования в среде ОС UNIX является язык Си (который в последнее время все больше заменяется на Си++). Это объясняется тем, что во-первых, сама система UNIX написана на языке Си, а, во-вторых, язык Си является одним из наиболее качественно стандартизованных языков.
2.5. "Процесс" и "файл". Процессы являют собой динамическую сторону системы, это субьекты; а файлы - статическую, это обьекты действия процессов. Почти весь интерфейс взаимодействия процессов с ядром и друг с другом выглядит как запись/чтение файлов. /* Хотя надо добавить такие вещи, как сигналы, разделяемая память и семафоры. */ Процессы нельзя путать с программами - одна программа (как правило с различными данными) может выполняться в разных процессах. Процессы можно весьма условно разделить на два типа - задачи и демоны. Задача - это процесс, который выполняет свою работу, стремясь побыстрее закончить ее и завершиться. Демон ждет событий, которые он должен обработать, обрабатывает произошедшие события и снова ждет; завершается он как правило по приказу другого процесса, чаще всего его убивает пользователь, дав команду "kill номер_процесса".
2.6. Комадный интерпретатор В Unix практически всегда входят два командных интерпретатора - sh (shell) и csh (C-подобный shell). Кроме них еще бывают bash (Bourne), ksh (Korn), и другие. Все команды, кроме изменения текущей директории, установки переменных окружения (environment) и операторов структурного программирования - внешние программы. Программы эти как правило располагаются в каталогах /bin и /usr/bin. Программы системного администрирования - в каталогах /sbin и /usr/sbin. Команда состоит из имени запускаемой программы и аргументов. Аргументы отделяются от имени команды и друг от друга пробелаим и табуляциями. Некоторые спецсимволы интерпретируются самим shell'ом. Спецсимволами являются " ' ` \ ! $ ^ * ? | & ;. В одной командной строке можно дать несколько команд. Команды могут быть разделены: ; (последовательное выполнение команд), & (асинхронное выполнение команд), | (синхронное выполнение, стандартный вывод stdout первой команды будет подан на стандартный ввод stdin второй). Руководства - man: Если надо получить информацию по какой-либо команде, дайте команду "man имя_команды". На экран это будет выдаваться через программу "more" - посмотрите, как с ней управляться на вашем Unix'е командой `man more`.
Глава 3 Основные функции и компоненты системы UNIX 3.1.Функции. Операционная система UNIX - это набор программ, который управляет компьютером, осуществляет связь между вами и компьютером и обеспечивает вас инструментальными средствами, чтобы помочь вам выполнить вашу работу. Разработанная, чтобы обеспечить легкость, эффективность и гибкость программного обеспечения, система UNIX имеет несколько полезных функций: * основная цель системы - это выполнять широкий спектр заданий и программ;
* интерактивное окружение, которое позволяет вам связываться напрямую с компьютером и получать немедленно ответы на ваши запросы и сообщения;
* многопользовательское окружение, которое позволяет вам разделять ресурсы компьютера с другими пользователями без уменьшения производительности. Этот метод называется разделением времени. Система UNIX взаимодействует с пользователями поочередно, но так быстро, что кажется, что взаимодействует со всеми пользователями одновременно;
* многозадачное окружение, которое позволяет вам выполнять более одного задания в одно и тоже время.
3.2.Компоненты.
Система UNIX имеет 4 основных компонента:
* ядро -это программа, которая образует ядро операционной системы; она координирует внутренние функции компьютера ( такие как размещение системных ресурсов). Ядро работает невидимо для вас;
* shell -это программа, которая осуществляет связь между вами и ядром, интерпретируя и выполняя ваши команды. Так как она читает ваш ввод и посылает вам сообщения, то описывается как интерактивная;
* commands -это имена программ, которые компьютер должен выполнить. Пакеты программ называются инструментальными средствами. Система UNIX обеспечивает инструментальными средствами для таких заданий как создание и изменение текста, написание программ, развитие инструментария программного обеспечения, обмен информацией с другими посредством компьютера;
* file system -файловая система - это набор всех файлов, возможных для вашего компьютера. Она помогает вам легко сохранять и отыскивать информацию.
3.2.1. Ядро Ядро контролирует доступ к компьютеру, управляет памятью компьютера, обслуживает файловую систему и распределяет ресурсы компьютера среди пользователей. На рис. 1 приведено функциональное представление ядра.
Ядро
\ Распределение /
\ ресурсов /
\ системы /
\ /
Управление \ / Обслуживание
памятью \/ файловой
/ \ системы
/ \
/ Контроль \
/ доступа \
/ к компьютеру \
рис 1.
3.2.2.Shell
Shell - это программа, которая позволяет вам связываться с операционной системой. Shell считывает команды, которые вы вводите, и интерпретирует их как запросы на выполнение других программ, на доступ к файлу или обеспечение вывода. Shell также является мощным языком программирования, не похожим на язык программировани Си, который опеспечивает условное выполнение и управление потоками данных.
3.2.3. Commands.
Внешний круг системы UNIX образуют программы и инструментальные средства системы, разделенные на категории функционально. Эти функции включают:
* программное окружение - несколько программ системы UNIX, устанавливающих дружественное программное окружение, обеспечивающее интерфейсы между системой и языками программирования и использование обслуживающих программ;
* обработка текстов - система обеспечивает программы, такие как строковый и экранный редакторы, для создания и изменения текстов, орфографическую программу проверки для обнаружения ошибок орфографии, и необязательный форматер текста для создания высококачественных копий, которые подходят для публикаций;
* организация информации - система предоставляет много программ, которые позволяют вам создавать, организовывать и удалять файлы и каталоги; * обслуживающие программы - инструментальные средства, создающие графику и выполняющие вычисления;
* электронная связь - несколько программ (например, mail) предоставляют вам возможность передавать информацию другим пользователям и в другие системы UNIX.
3.2.4. File system.
Файловая система является краеугольным камнем операционной системы UNIX. Она обеспечивает логический метод организации, восстановления и управления информацией. Файловая система имеет иерархическую структуру.Файл, который является основной единицей системы UNIX, может быть: обыкновенным файлом, справочником, специальным файлом или символическим каналом связи. 3.2.4.1. Обыкновенные файлы.
Обыкновенные файлы являются набором символов. Обыкновенные файлы используются для хранения любой информации. Они могут содержать тексты для писем или отчетов, коды программ, которые вы написали, либо команды для запуска ваших программ. Однажды создав обыкновенный файл вы можете добавить нужный материал в него, удалить материал из него, либо удалить файл целиком.
3.2.4.2. Справочники
Справочники являются супер-файлами, которые могут содержать файлы или другие справочники. Обычно файлы, содержащиеся в них, устанавливают отношения каким-либо способом. Например, справочник, названный sales может хранить файлы, содержащие цифры ежемесячных продаж, названные jan, feb, mar, и т.д. Вы можете создать каталоги, добавить или удалить файлы из них или удалить каталоги. Все справочники, которые вы создаете, будут размещены в вашем собственном справочнике. Этот справочник назначается вам системой во время входа в систему. Никто кроме привилегированных пользователей не может читать или записывать файлы в этот справочник без вашего разрешения и вы определяете структуру этого справочника.
3.2.4.3 Специальные файлы.
Специальные файлы, предназначенные для работы с устройствами как правило сосредоточены в директории "/dev".
3.2.4.4.Файловая система. В старых Unix'ах отводилось 14 букв на имя, в новых это ограничение снято. В директории кроме имени файла находится его идентефикатор inode - целое число, определяющее номер блока, в котором записаны атрибуты файла. Среди них: номер пользователя - хозяина файла; номер группы; количество ссылок на файл (см.далее) даты и время создания, последней модификации и последнего обращения к файлу; атрибуты доступа. Атрибуты доступа содержат тип файла (см.далее), атрибуты смены прав при запуске (см.далее) и права доступа к нему для хозяина, одногрупника и остальных на чтение, запись и выполнение. Право на стирание файла определяется правом записи в вышележащую директорию. Каждый файл (но не директория) может быть известен под несколькими именами, но обязательно лежащими на одном разделе. Все ссылки на файл равноправны; файл стирается, когда удаляется последняя ссылка на файл. Если файл открыт (для чтения и/или записи), то число ссылок на него увеличивается еще на единицу; так многие программы, открывающие временный файл, сразу удаляют его, чтобы при аварийном завершении, когда операционная система закрывает открытые процессом файлы, этот временный файл был удален операционной системой. Есть еще одна интересная особенность файловой системы: если после создания файла запись в него шла не подряд, а с большими интервалами, то для этих интервалов место на диске не выделяется. Таким образом суммарный обьем файлов в разделе может быть больше обьема раздела, а при удалении такого файла освобождается меньше места, чем его размер. В отличие от DOS, в котором полное имя файла выглядит как "диск:\путь\имя", и RISC-OS, в которой оно выглядит "-файловая_система-диск:$.путь.имя" (что вообще говоря имеет свои преимущества), Unix использует прозрачную нотацию в виде "/путь/имя". Корень отсчитывается от раздела, с которого было загружено ядро Unix. Если мы собираемся использовать другой раздел (а на загрузочном разделе как правило находится только самое необходимое для загрузки), используется команда `mount /dev/файл_раздела директория`. При этом файлы и поддиректории, ранее находившиеся в этой директории, становятся недоступными, пока не раздел не будет размонтирован (естественно, все нормальные люди используют для монтирования разделов пустые директории). Производить монтирование и размонтирование имеет право только суперпользователь. При запуске каждый процесс может расчитывать, что для него уже открыты три файла, которые ему известны как стандартный ввод stdin по дескриптору 0; стандартный вывод stdout по дескриптору 1; и стандартный вывод stderr по дескриптору 2. При регистрации в системе, когда пользователь вводит имя и пароль, а ему запускается shell, все трое направлены на /dev/tty; позже любой из них может быть перенаправлен в любой файл.
3.3. Подключение к UNIX. Чтобы установить контакт с системой UNIX вам необходимо иметь: * терминал Терминал является устройством ввода/вывода: вы используете его для ввода запросов системе UNIX, а система - для выдачи ответов вам. Существует два основных вида терминалов: видеотерминал и печатающий терминал. Видеотерминал отображает ввод и вывод на экране дисплея; Печатающий терминал постоянно подает на бумагу. Во многих случаях эти различия никак не влияют на действия пользователя или на ответы системы. В этой документации все, что выводится на экран терминала, как же отображается и печатающим терминалом, если не сделаны какие-либо замечания;
* регистрационное имя, которое идентифицирует вас как полномочного пользователя;
* пароль, который проверяет вас на идентичность; * инструкции для диалога и доступа к системе UNIX, если ваш терминал напрямую не связан с компьютером.
Глава 4. Отличия операционной системы UNIX от других операционных систем.
Unix состоит из ядра с включенными в него драйверами и из утилит (внешних по отношению к ядру программ). Если надо изменить конфигурацию (добавить устройство, изменить порт или прерывание), то ядро пересобирают (перелинковывают) из обьектных модулей. В противоположность Unix'у Windows (если не уточняется, какая, то имеются в виду 3.11, 95 и NT) и OS/2 при загрузке фактически на ходу прилинковывают драйверы. При этом компактность собранного ядра и повторное использование общего кода на порядок ниже, чем у Unix. Кроме того, при неизменной конфигурации системы ядро Unix без переделки (потребуется изменить только стартовую часть BIOS) может быть записан в ПЗУ и выполняться _не_загружаясь_ в ОЗУ. Компактность кода особенно важна, т.к. ядро и драйверы никогда не покидают физическую оперативную память, не сводятся на диск. Unix - самая многоплатформенная OS. WindowsNT пытается подражать ему, но пока это плохо удается - после отказа от MIPS и POWER-PC, W'NT остались всего на двух платформы - традиционная i*86 и DEC Alpha. Разумеется, переносимость программ с одной версии Unix на другую ограничена. Неаккуратно написанная программа, не учитывающая различий в реализациях Unix, может потребовать серьезной переделки. Но все равно это на много порядков легче, чем например перенести с OS/2 на NT. Почему Unix? Unix используется как в качестве как сервера, так и рабочей станции. В номинации серверов с ним конкурируют MS WindowsNT, Novell Netware, IBM OS/2 Warp Connect, DEC VMS и операционные системы мэйнфреймов. Каждая система имеет свою область применения, в которой она лучше других. WindowsNT - для администраторов, которые предпочитают привычный интерфейс экономному расходованию ресурсов и высокой производительности. Netware - для сетей, где нужна высокая производительность файлового и принтерного сервиса и не столь важны остальные сервисы. Главный недостаток - на сервере Netware трудно запускать приложения. OS/2 хороша там, где нужен "легкий" сервер приложений. Ресурсов требует меньше чем NT, в управлении гибче (хотя в настройке может и сложнее), а многозадачность очень хорошая. Авторизация и разграничение прав доступа не реализованы на уровне ОС, что с лихвой окупается реализацией на уровне приложений-серверов. (Впрочем, зачастую остальные OS делают то же самое). Многие станции FIDOnet и BBS сделаны на базе OS/2. VMS - мощный, ничем не уступающий Unix'ам (а во многом и превосходящий его) сервер приложений, но только для платформ VAX и Alpha фирмы DEC. Мэйнфреймы - для обслуживания очень большого количества пользователей (порядка нескольких тысяч). Но работа этих пользователей как правило организована в виде не клиент-серверного взаимодействия, а в виде хост-терминального. Терминал же в этой паре скорее не клиент, а сервер (Мир Internet, N3 за 1996-й год). К преимуществам мэйнфреймов надо отнести более высокую защищенность и устойчивость к сбоям, а к недостаткам - соответствующую этим качествам цену. Unix хорош для квалифицированного (или желающего стать таковым) администратора, т.к. требует знания принципов функционирования происходящих в нем процессов. Реальная многозадачность и жесткое разделение памяти обеспечивают высокую надежность функционирования системы, хотя в производительности файл- и принт-сервисов Unix'ы уступают Netware. Недостаточная гибкость предоставления прав доступа пользователей к файлам по сравнению с WindowsNT затрудняет организацию _на_уровне_файловой_системы_ группового доступа к данным (точнее, к файлам), что компенсируется простотой реализации, а значит меньшими требованиями к аппаратуре. Впрочем, такие приложения, как SQL-сервер решают проблему группового доступа к данным своими силами. Практически все протоколы(правила обмена информацией в сети), на которых основан Internet, были разработаны под Unix, в частности стек протоколов TCP/IP придуман в университете Berkeley. Защищенность Unix при правильном администрировании ни в чем не уступает ни Novell, ни WindowsNT. Важным свойством Unix, которое приближает его к мэйнфреймам, является его многотерминальность, много пользователей могут одновременно запускать программы на одной Unix-машине. Если не требуется использовать графику, можно обойтись дешевыми текстовыми терминалами (специализированными или на базе дешевых PC), подключенными по медленным линиям. В этом с ним конкурирует только VMS. Можно использовать и графические X-терминалы, когда на одном экране присутствуют окна процессов, выполняющихся на разных машинах. В номинации рабочих станций с Unix конкурируют MS Windows*, IBM OS/2, Macintosh и Acorn RISC-OS. Windows - для тех, кто ценит совместимость больше эффективности; для тех, кто готов купить большое количество памяти, дискового пространства и мегагерц; для тех, кто любит не вникая в суть, щелкать мышкой по кнопочкам в окошке. Правда, рано или поздно все равно придется изучить принципы работы системы и протоколов, но тогда уже будет поздно - выбор сделан. Немаловажным преимуществом Windows надо признать также возможность украсть кучу программного обеспечения. OS/2 - для любителей OS/2. Хотя по некоторым сведениям OS/2 лучше других взаимодействует с мэйнфреймами и сетями IBM. Macintosh - для графических, издательских и музыкальных работ, а также для тех, кто любит понятный, красивый интерфейс и не хочет разбираться в подробностях функционирования системы. RISC-OS, прошитая в ПЗУ, позволяет не тратить время на инсталляцию операционной системы и восстановление ее после сбоев. Кроме того, практически все программы под ней очень экономно расходуют ресурсы, благодаря чему не нуждаются в свопинге и работают очень быстро. Unix функционирует как на PC, так и на мощных рабочих станциях с RISC-процессорами, под Unix написаны действительно мощные САПР и геоинформационные системы. Своей масштабируемостью Unix из-за его многоплатформенности на порядок превосходит любую другую операционную систему.
Глава 5. Экранный редактор VI и редактор текстов ED.
5.1.Редактор VI. Редактор vi является мощным средством для создания и редактирования файлов. Он предназначен для работы на видеотерминале и использует окна, посредством которых вы можете просматривать текст файла. Несколько простых команд позволяют вам сделать изменения в тексте, которые очень быстро отображаются на экране. Редактор может отобразить одну или несколько строк текста. Он позволяет вам передвигать курсор в любую точку на экране или в файле, создавать, изменять или удалять текст. Вы можете также использовать некоторые команды построчного редактора, такие как глобальные команды, которые позволяют вам изменять множество появлений некоторой строки символов, используя одну команду. Чтобы двигаться по файлу, вы можете прокручивать текст вперед или назад.
Примечание. Не все терминалы обладают способностью прокрутки текста и поэтому средство прокрутки текста редактором vi зависит от типа используемого терминала.
Редактор vi имеет более 100 команд позволяющих: * изменить окружение shell, чтобы установить конфигурацию вашего терминала; * сделать доступным автоматический возврат каретки; * начать работу с редактором vi, создать текст, исправить ошибки, записать текст в файл и завершить работу; * переместить текст внутри файла; * разбить и слить текст; * использовать специальные команды и сокращения; * использовать команды построчного редактора, доступные внутри vi; * временно вернуться в shell, чтобы выполнить команды shell; * восстановить файл, потерянный из-за прерывания сессии редактирования; * редактировать несколько файлов в одной сессии.
5.2.Редактор ED. Редактор текстов ed является диалоговой (интерактивной) программой, которая позволяет добавлять, перемещать, удалять текст и извлекать его из других файлов. Имеется возможность замены слова или части слова в тексте как для одной указанной строки, так и для части файла или всего файла. Кроме того, можно просмотреть текстовый файл, напечатать его частично или целиком, напечатать строки, содержащие определенное слово и т.д. ED работает с копией обрабатываемого файла, которая создается в буфере редактора и хранится там в течение всей обработки. Это предохраняет исходный файл от возможных разрушений при совершении грубых ошибок. Сделанные в копии изменения не влияют на исходный файл до тех пор, пока не будет выдана команда записи. Редактор запоминает имя обрабатываемого файла (первоначально - имя исходного загруженного файла). По желанию пользователя это имя можно заменять для получения новых вариантов файла. Если размер файла превышает размер буфера редактора, файл приходится делить на части с помощью команды split, редактировать его по частям, а затем снова объединять с помощью команды cat. Пользователь сообщает редактору, что делать с его текстом, с помощью определенных инструкций, называемых "командами". Команды редактора имеют простую структуру, и в большинстве случаев состоят из одной буквы. Каждая команда печатается на отдельной строке. Иногда перед командой указывается информация о том, какая строка или строки должны подвергаться действию команды. ed не отвечает на большинство команд, не печатает подсказки или сообщения типа "готово". Все вводимые командные строки должны заканчиваться символом .
2
2
12
www.ronl.ru
works.tarefer.ru
Федеральноеагентство по образованию
Ростовская-на-Донугосударственная академия
Сельскохозяйственногомашиностроения
Кафедра: «Информационныхи управляющих систем»
Контрольнаяработа
пооперационным системам
на тему:
"Операционная система Unix"
Студентки заочного факультета ИС
Группы ЗИС 3–1
Руководитель:
кандидат технических наук доцент
г. Ростов-на-Дону
2008-09 уч.г.
Содержание
Введение
1. История создания,назначение
2. Функциональныехарактеристики
3. Особенности архитектурыОС UNIX
4. Способы управленияпроцессами и ресурсами
5. Условия эксплуатации
6. Достоинства инедостатки ОС UNIX
Заключение
Список использованнойлитературы
Введение
UNIX появилась в 1969 году.За 30 с лишним лет система стала довольно популярной и получила распространениена машинах с различной мощностью обработки, от микропроцессоров до больших ЭВМ,обеспечивая на них общие условия выполнения программ. Система делится на двечасти. Одну часть составляют программы и сервисные функции – это делаетоперационную среду UNIX такой популярной; данная часть ОС легко доступнапользователям, она включает такие программы, как командный процессор, обменсообщениями, пакеты обработки текстов и системы обработки исходных текстовпрограмм. Другая часть включает в себя собственно операционную систему,поддерживающую эти программы и функции.
UNIX – традиционносетевая операционная система.
1. Историясоздания, назначение
UNIX зародился влаборатории Bell Labs фирмы AT&T более 30 лет назад. В то время Bell Labs занималасьразработкой многопользовательской системы разделения времени MULTICS(Multiplexed Information and Computing Service) совместно с MIT и GeneralElectric, но эта система потерпела неудачу. Bell Labs отказалась от участия впроекте MULTICS, что дало возможность одному из ее исследователей, КенуТомпсону, заняться поисковой работой в направлении улучшения операционной средыBell Labs. Томпсон, а также сотрудник Bell Labs Денис Ритчи и некоторые другиеразрабатывали новую файловую систему, многие черты которой вели своепроисхождение от MULTICS. Для проверки новой файловой системы Томпсон написалядро ОС и некоторые программы для компьютера GE-645, который работал подуправлением мультипрограммной системы разделения времени GECOS. У Кена Томпсонабыла написанная им еще во времена работы над MULTICS игра «SpaceTravel» — «Космическое путешествие». Он запускал ее накомпьютере GE-645, но она работала на нем не очень хорошо из-за невысокойэффективности разделения времени. Кроме этого, машинное время GE-645 стоилослишком дорого. В результате Томпсон и Ритчи решили перенести игру на машинуPDP-7 фирмы DEC, имеющую 4096 18-битных слов, телетайп и хороший графическийдисплей. Но у PDP-7 было неважное программное обеспечение, и, закончив переносигры, Томпсон решил реализовать на PDP-7 ту файловую систему, над который онработал на GE-645. Из этой работы и возникла первая версия UNIX. Уже тогда она включалахарактерную для современной UNIX файловую систему, основанную на индексныхдескрипторах inode, имела подсистему управления процессами и памятью, а такжепозволяла двум пользователям работать в режиме разделения времени. Система быланаписана на ассемблере. Имя UNIX (Uniplex Information and Computing Services)было дано ей одним сотрудником Bell Labs, Брайаном Керниганом,
Первыми пользователямиUNIX'а стали сотрудники отдела патентов Bell Labs, которые нашли ее удобнойсредой для создания текстов. Большое влияние на судьбу UNIX оказала перепись еена языке высокого уровня С, разработанного Денисом Ритчи специально для этихцелей. Это произошло в 1973 году, UNIX насчитывал к этому времени уже 25инсталляций, и в Bell Labs была создана специальная группа поддержки UNIX.
После описания системыТомпсоном и Ритчи в компьютерном журнале CACM в 1974 г. UNIX получил широкое распространение. ОС стала востребована в университетах, так как для нихона поставлялась бесплатно вместе с исходными кодами на С. Широкоераспространение эффективных C-компиляторов сделало UNIX уникальной для тоговремени ОС из-за возможности переноса на различные компьютеры. Университетывнесли значительный вклад в улучшение UNIX и дальнейшую его популяризацию. Ещеодним шагом на пути к признанию UNIX, как стандартизованной среды сталаразработка Денисом Ритчи библиотеки ввода-вывода stdio. Благодаря использованиюэтой библиотеки для компилятора С, программы для UNIX стали легко переносимыми.
ОС UNIX являетсяинтерактивной операционной системой, это традиционно сетевая операционнаясистема.
2.Функциональные характеристики
К основным функциям ядраОС UNIX принято относить следующие:
1) Инициализациясистемы — функция запуска и раскрутки. Ядро системы обеспечивает средствораскрутки (bootstrap), которое обеспечивает загрузку полного ядра в памятькомпьютера и запускает ядро.
2) Управлениепроцессами и нитями — функция создания, завершения и отслеживания существующихпроцессов и нитей («процессов», выполняемых на общей виртуальнойпамяти). Поскольку ОС UNIX является мультипроцессной операционной системой,ядро обеспечивает разделение между запущенными процессами времени процессора(или процессоров в мультипроцессорных системах) и других ресурсов компьютерадля создания внешнего ощущения того, что процессы реально выполняются впараллель.
3) Управлениепамятью — функция отображения практически неограниченной виртуальной памятипроцессов в физическую оперативную память компьютера, которая имеетограниченные размеры. Соответствующий компонент ядра обеспечивает разделяемоеиспользование одних и тех же областей оперативной памяти несколькими процессамис использованием внешней памяти.
4) Управлениефайлами — функция, реализующая абстракцию файловой системы, — иерархиикаталогов и файлов. Файловые системы ОС UNIX поддерживают несколько типовфайлов. Некоторые файлы могут содержать данные в формате ASCII, другие будутсоответствовать внешним устройствам. В файловой системе хранятся объектныефайлы, выполняемые файлы и т.д. Файлы обычно хранятся на устройствах внешнейпамяти; доступ к ним обеспечивается средствами ядра. В мире UNIX существуетнесколько типов организации файловых систем. Современные варианты ОС UNIXодновременно поддерживают большинство типов файловых систем.
5) Коммуникационныесредства — функция, обеспечивающая возможности обмена данными между процессами,выполняющимися внутри одного компьютера (IPC — Inter-Process Communications),между процессами, выполняющимися в разных узлах локальной или глобальной сетипередачи данных, а также между процессами и драйверами внешних устройств.
6) Программныйинтерфейс — функция, обеспечивающая доступ к возможностям ядра со стороныпользовательских процессов на основе механизма системных вызовов, оформленных ввиде библиотеки функций.
3.Особенности архитектуры ОС UNIX
Архитектура ОС UNIX –многоуровневая (рис.1). На нижнем уровне, непосредственно над оборудованием,работает ядро операционной системы. Функции ядра доступны через интерфейссистемных вызовов, образующих второй уровень. На следующем уровне работаюткомандные интерпретаторы, команды и утилиты системного администрирования,коммуникационные драйверы и протоколы, — все то, что обычно относят ксистемному программному обеспечению. Наконец, внешний уровень образуютприкладные программы пользователя, сетевые и другие коммуникационные службы,СУБД и утилиты.
4. Способыуправления процессами и ресурсами
Файлы и процессы,являются центральными понятиями модели операционной системы UNIX. Рисунок 1.2представляет блок-схему ядра системы, отражающую состав модулей, из которыхсостоит ядро, и их взаимосвязи друг с другом. Слева изображена файловаяподсистема, а справа подсистема управления процессами – две главные компонентыядра.
точка пересечения
Библиотеки
Уровень пользователяУровень ядра
/>
Уровень ядра
технические средства (аппаратура)
аппаратурыРисунок.1.2 Блок-схемаядра операционной системы
Обращения к операционнойсистеме выглядят так же, как обычные вызовы функций в программах на языке Си, ибиблиотеки устанавливают соответствие между этими вызовами функций иэлементарными системными операциями. При этом программы на ассемблере могутобращаться к операционной системе непосредственно, без использования библиотекисистемных вызовов. Программы часто обращаются к другим библиотекам, таким какбиблиотека стандартных подпрограмм ввода-вывода, достигая тем самым болееполного использования системных услуг. Для этого во время компиляции библиотекисвязываются с программами и частично включаются в программу пользователя. Совокупностьобращений к операционной системе разделена на те обращения, которыевзаимодействуют с подсистемой управления файлами, и те, которые взаимодействуютс подсистемой управления процессами. Файловая подсистема управляет файлами,размещает записи файлов, управляет свободным пространством, доступом к файлам ипоиском данных для пользователей. Процессы взаимодействуют с подсистемойуправления файлами, используя при этом совокупность специальных обращений коперационной системе, таких как open (для того, чтобы открыть файл на чтениеили запись),close, read, write, stat (запросить атрибуты файла), chown(изменить запись с информацией о владельце файла) и chmod (изменить правадоступа к файлу).
Подсистема управленияфайлами обращается к данным, которые хранятся в файле, используя буферныймеханизм, управляющий потоком данных между ядром и устройствами внешней памяти.Буферный механизм, взаимодействуя с драйверами устройств ввода-вывода блоками,инициирует передачу данных к ядру и обратно. Драйверы устройств являются такимимодулями в составе ядра, которые управляют работой периферийных устройств.Устройства ввода-вывода блоками относятся программы пользователя к типузапоминающих устройств с произвольной выборкой; их драйверы построены такимобразом, что все остальные компоненты системы воспринимают эти устройства какзапоминающие устройства с произвольной выборкой. Например, драйверзапоминающего устройства на магнитной ленте позволяет ядру системы восприниматьэто устройство как запоминающее устройство с произвольной выборкой. Подсистемауправления файлами также непосредственно взаимодействует с драйверами устройств«неструктурированного» ввода-вывода, без вмешательства буферногомеханизма. К устройствам неструктурированного ввода-вывода, иногда именуемымустройствами посимвольного ввода-вывода (текстовыми), относятся устройства,отличные от устройств ввода-вывода блоками.
Подсистема управленияпроцессами отвечает за синхронизацию процессов, взаимодействие процессов,распределение памяти и планирование выполнения процессов. Подсистема управленияфайлами и подсистема управления процессами взаимодействуют между собой, когдафайл загружается в память на выполнение: подсистема управления процессамичитает в память исполняемые файлы перед тем, как их выполнить.
Примерами обращений коперационной системе, используемых при управлении процессами, могут служитьfork (создание нового процесса), exec (наложение образа программы навыполняемый процесс), exit (завершение выполнения процесса), wait(синхронизация продолжения выполнения основного процесса с моментом выхода изпорожденного процесса), brk (управление размером памяти, выделенной процессу) иsignal (управление реакцией процесса на возникновение экстраординарных событий.
Модуль распределенияпамяти контролирует выделение памяти процессам. Если в какой-то момент системаиспытывает недостаток в физической памяти для запуска всех процессов, ядропересылает процессы между основной и внешней памятью с тем, чтобы все процессыимели возможность выполняться. Существует два способа управления распределениемпамяти: выгрузка (подкачка) и замещение страниц. Программу подкачки иногданазывают планировщиком, т.к. она «планирует» выделение памятипроцессам и оказывает влияние на работу планировщика центрального процессора. «Планировщик»планирует очередность выполнения процессов до тех пор, пока они добровольно неосвободят центральный процессор, дождавшись выделения какого-либо ресурса, илипока ядро системы не выгрузит их после того, как их время выполнения превыситзаранее определенный квант времени. Планировщик выбирает на выполнение готовыйк запуску процесс с наивысшим приоритетом; выполнение предыдущего процесса(приостановленного) будет продолжено тогда, когда его приоритет будет наивысшимсреди приоритетов всех готовых к запуску процессов. Существует несколько формвзаимодействия процессов между собой, от асинхронного обмена сигналами особытиях до синхронного обмена сообщениями.
Наконец, аппаратныйконтроль отвечает за обработку прерываний и за связь с машиной. Такиеустройства, как диски и терминалы, могут прерывать работу центральногопроцессора во время выполнения процесса. При этом ядро системы после обработкипрерывания может возобновить выполнение прерванного процесса. Прерыванияобрабатываются не самими процессами, а специальными функциями ядра системы,перечисленными в контексте выполняемого процесса.
5. Условияэксплуатации
UNIX — многопользовательская операционная система. Пользователи, занимающиеся общимизадачами, могут объединяться в группы. Каждый пользователь обязательно принадлежитк одной или нескольким группам. Все команды выполняются от имени определенногопользователя, принадлежащего в момент выполнения к определенной группе.
В многопользовательскихсистемах необходимо обеспечивать защиту объектов (файлов, процессов), принадлежащиходному пользователю, от всех остальных. ОС UNIX предлагает базовые средствазащиты и совместного использования файлов на основе отслеживания пользователя игруппы, владеющих файлом, трех уровней доступа (для пользователя-владельца, дляпользователей группы-владельца, и для всех остальных пользователей) и трехбазовых прав доступа к файлам (на чтение, на запись и на выполнение). Базовыесредства защиты процессов основаны на отслеживании принадлежности процессовпользователям.
Для отслеживания владельцевпроцессов и файлов используются числовые идентификаторы. Идентификаторпользователя и группы — целое число (обычно) в диапазоне от 0 до 65535.Присвоение уникального идентификатора пользователя выполняется при заведениисистемным администратором нового регистрационного имени. Значенияидентификатора пользователя и группы — не просто числа, которые идентифицируютпользователя, — они определяют владельцев файлов и процессов. Средипользователей системы выделяется один пользователь — системный администраторили суперпользователь, обладающий всей полнотой прав на использование иконфигурирование системы. Это пользователь с идентификатором 0 ирегистрационным именем root.
При представленииинформации человеку удобнее использовать вместо соответствующих идентификаторовсимвольные имена — регистрационное имя пользователя и имя группы. Соответствиеидентификаторов и символьных имен, а также другая информация о пользователях игруппах в системе (учетные записи), как и большинство другой информации оконфигурации системы UNIX, по традиции, представлена в виде текстовых файлов.Эти файлы — /etc/passwd, /etc/group и /etc/shadow.
6. Достоинстваи недостатки
Широкое распространениеUNIX породило проблему несовместимости его многочисленных версий. Дляпользователя весьма неприятен тот факт, что пакет, купленный для одной версииUNIX, отказывается работать на другой версии UNIX. Периодически делались иделаются попытки стандартизации UNIX, но они пока имеют ограниченный успех.Процесс сближения различных версий UNIX и их расхождения носит циклическийхарактер. Перед лицом новой угрозы со стороны какой-либо другой операционнойсистемы различные производители UNIX-версий сближают свои продукты, но затемконкурентная борьба вынуждает их делать оригинальные улучшения и версии сноварасходятся. В этом процессе есть и положительная сторона — появление новых идейи средств, улучшающих как UNIX, так и многие другие операционные системы,перенявшие у него за долгие годы его существования много полезного. Наибольшеераспространение получили две несовместимые линии версий UNIX: линия AT&T — UNIX System V, и линия университета Berkeley-BSD. Многие фирмы на основе этихверсий разработали и поддерживают свои версии UNIX: SunOS и Solaris фирмы SunMicrosystems, UX фирмы Hewlett-Packard, XENIX фирмы Microsoft, AIX фирмы IBM,UnixWare фирмы Novell (проданный теперь компании SCO), и список этот можно ещедолго продолжать.
Наибольшее влияние наунификацию версий UNIX оказали такие стандарты как SVID фирмы AT&T, POSIX,созданный под эгидой IEEE, и XPG4 консорциума X/Open. В этих стандартахсформулированы требования к интерфейсу между приложениями и ОС, что даетвозможность приложениям успешно работать под управлением различных версий UNIX.
Одним из основныхпреимуществ семейства операционных систем типа UNIX и возникшего на их основеподхода к стандартизации интерфейсов операционных систем (важная часть общегоподхода открытых систем) является то, что они обеспечивают единую операционнуюсреду на компьютерах с разной архитектурой.
Заключение
Операционная системаUNIX, являющаяся первой в истории мобильной ОС, обеспечивающей надежную средуразработки и использования мобильных прикладных систем, одновременнопредставляет собой практическую основу для построения открытыхпрограммно-аппаратных систем и комплексов. Именно широкое внедрение в практикуОС UNIX позволило перейти от лозунга Открытых Систем к практической разработкеэтой концепции. Большой вклад в развитие направления Открытых Систем внесладеятельность по стандартизации интерфейсов ОС UNIX.
Можно выделить нескольковетвей ОС UNIX, различающихся не только реализацией, но временами интерфейсамии семантикой (хотя, по мере развития процесса стандартизации, эти различиястановятся все менее значительными). Сегодня популярен новый свободнораспространяемый вариант ОС UNIX, называемый FreeBSD. Ведутся работы над болееразвитыми версиями BSDNet.
Списокиспользованной литературы
1. История иобщая характеристика семейства операционных систем UNIX www.osys.ru/
2. Эбен М.,Таймэн Б. «FreeBSD. Энциклопедия пользователя» — К: ООО «ТИД «ДС», 2002.
3. КерниганБ.В., Пайк Р. «UNIX — универсальная среда программирования» — М.: Финансы истатистика, 1992.
4. С.Д.Кузнецов, «Операционная система UNIX» — статья в Интернете.
www.ronl.ru