Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ostatok_lektsy_3_kurs_OSSiO.doc
Скачиваний:
5
Добавлен:
18.09.2019
Размер:
801.28 Кб
Скачать

Интерфейс

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

Для обозначения точки входа в систему - места, откуда приходят команды, и куда следует выдавать результат их работы, используется понятие терминала. Терминал - это устройство, способное принимать и передавать текстовую информацию (в командной строке обозначается, например, как tty 1, tty 2 и т.д.).

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

Процессы

В роли задач в UNIX выступают процессы. Процесс - это программа, запущенная пользователем, которая находится в памяти и, как полагается задаче, потребляет ресурсы: выполняется, требует памяти, обменивается данными с системой, внешними устройствами и другими процессами. При запуске процесс получает уникальный идентификатор процесса (Process IDentifier, PID), по которому он становится доступен другим процессам и планировщику. Планировщик процессов в UNIX устроен достаточно сложно. Главное отличие планировщика UNIX заключается в том, что каждая задача из очереди работает в течение всего отведенного ей промежутка времени, но только в том случае, если ей есть чем заняться. Посмотрим на следующий слайд (*** слайд 48). Если задача к этому времени работать не может (например, ожидает завершения операции ввода/вывода, или сигнала, или освобождения какого-либо ресурса), она из начала перемещается в конец очереди первоочередных задач или в конец очереди "спящих" задач. Как только какая-нибудь задача из очереди спящих просыпается, ей тут же отводится место в начале обычной очереди. Таким образом максимально сокращается время простоя системы, если, конечно, количество выполняемых задач достаточно для того, чтобы полностью ее загрузить. Кроме того, очередь задач формируется и корректируется с учетом приоритетов.

Основная очередь задач

З

выполненная задача

П



Очередь отложенных («спящих») задач

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

Насколько полно UNIX удовлетворяет принципам проективной системы? Попробуем это проанализировать.

Принцип информационной открытости (И) соблюдается в UNIX по максимуму. Все, что можно документировать, - документируется. Документация ведется не только на средства (утилиты, системные и библиотечные вызовы), но и на структуру системных файлов, работу с устройствами и многое другое, т.е. буквально на все! Большинство программных продуктов для UNIX и большая часть базовых дистрибутивов UNIX-подобных систем распространяется в исходных текстах. Это означает, что любому квалифицированному пользователю доступна полная информация о внутреннем устройстве инструмента, которым он пользуется, и любой может исправить или улучшить его по своему усмотрению.

Принцип минимизации затрат (З) последовательно реализован в интерфейсе командной строки. В соответствии с этим принципом пользователь всякий раз решает некую мыслительную задачу, с тем чтобы быстро реализовать ее решение на выбранном им командном языке (чаще всего это shell, но для иных задач полезнее sed или awk, а для задач побольше - perl, python, tcl, ruby и т. п.); при этом дальнейшее использование этого решения можно целиком доверить компьютеру, предварительно написав сценарий.

Принцип умопостижимости контекста (У) включает правило, которому очень тяжело следовать: «набор однотипных инструментов не должен превышать 7-9 штук. В UNIX редко встречаются перегруженные неструктурированные инструментарии. Практически все демоны и приложения UNIX используют так называемые файлы настроек. Это текстовые файлы, и, если количество в них информации достаточно велико, то они разбиты на секции и подсекции, что облегчает понимание. В самых сложных из них, например в файле настройки Web-сервера Apache, предусмотрена инструкция. Т.е. принцип У выполняется.

Принцип персональной ответственности (О) предполагает, что чем больше человек знает о системе, тем больше у него возможностей влиять на ее поведение. А если человек совершает некоторое действие, значит, он знает, что делает, и берет на себя ответственность за это действие. Как правило, правами суперпользователя (root) наделяют человека настолько опытного, что он в состоянии нести ответственность за любое поведение системы. Примеры с удалением всех файлов корневого каталога, наглядно демонстрирует правило "захотел - получил". Т.е принцип О соблюдается.

*** все что выше, взято из лекции 5 «ЮНИКС»

LINUX

Linux - это современная POSIX-совместимая и Unix-подобная операционная система для персональных компьютеров и рабочих станций. Это многопользовательская и многозадачная 32-разрядная сетевая система с оконной графической оболочкой X Window System. ОС Linux поддерживает протоколы сети Internet и совместима с системами DOS, MS Windows (!!!не наоборот!!!). Все компоненты системы, включая исходные тексты, распространяются с лицензией на свободное копирование и установку для неограниченного числа пользователей. ОС Linux широко распространена на платформах Intel PC 386/486/Pentium/Pentium Pro и завоевывает позиции на ряде других платформ. Основная цель при создании этой ОС – дать пользователям ПК бесплатную надежную ОС, которую они сами могут настроить под свои нужды.

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

Существуют несколько разновидностей Linux, разработанные различными производителями, например: Linux Red Hat, Open Linux, FreeBSD, OpenBSD, SlackWare, Debian, Mandrackе, Knoppix и другие. Все они имеют однотипное ядро и различаются модулями надстройки. Особенностью Knoppix является возможность полной работы с CD-ROM без использования винчестера; измененные настройки и созданные файлы сохраняются на дискетах.

Основные преимущества ОС LINUX

  • высокое быстродействие;

  • надежная, устойчивая работа и устойчивость к вирусам;

  • возможность использования всех аппаратных преимуществ современных ПК, снимая ограничения, присущие DOS и MS Windows по использованию оперативной памяти и ресурсов процессоров;

  • эффективное управление многозадачностью и приоритетами, фоновые задачи, не мешающие интерактивной работе;

  • работа с сетями на базе Novell и MS Windows;

  • возможность запуска прикладных программы других ОС, например, DOS и MS-Windows;

  • широкий набор инструментальных средств для разработки прикладных программ любой в т.ч. и класса «клиент-сервер», пригодных для работы как в Linux, так и в других ОС;

  • предоставление пользователю и разработчику хорошей учебной базы в виде документации и исходных текстов всех компонент, включая ядро самой ОС !;

Интерфейсы Linux

Работа в ОС Linux возможна в двух режимах: в текстовом (консольном) и графическом. Первый режим используется в тех случаях, когда аппаратура компьютера не позволяет использовать графический дружественный интерфейс, например, отсутствие аппаратной поддержки какой-либо видеокарты, малый объем винчестера, оперативной памяти и т.п. Ввод команд осуществляется с командной строки, по аналогии с ДОС. Этот режим является более «гибким» инструментом для управления системой и позволяет лучше понять основные принципы работы системы. Первые версии UNIX работали только в этом режиме.

Работа в графическом режиме осуществляется с помощью пользовательского интерфейса X Window’s. Для этого интерфейса разработано множество программ управления окнами, например, Window Maker, IceWM, KDE, GNOME и другие. Последние два из них очень напоминают привычный рабочий стол MS-Windows. Оконная система Х сегодня является стандартом для графического интерфейса UNIX-совместимых систем.

***

Реализация графического режима

В отличие от Windows графическая подсистема Linux устроена гораздо сложнее и в то же время является более гибкой в настройке под индивидуальные вкусы пользователя. В ОС Linux графический режим базируется на 3-х элементах: Х-сервер, диспетчер окон, рабочий стол.

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

Клиент передает серверу X-запросы любым доступным способом. Во многих случаях запросы передаются по сети; при этом неважно, какой именно транспортный уровень будет использован для соединения клиента с сервером (в современных системах это, чаще всего, протокол TCP/IP). Кстати сказать, другое имя X Window System – это X11 (или X11R6) – это просто номер версии X-протокола, стандартизующего X-запросы, при этом "R6" обозначает номер подверсии.

X-сервер, к которому не присоединен ни один X-клиент, можно запустить из командной строки – для этого достаточно выполнить команду "X" (одна заглавная латинская буква X). При этом на черном экране появится только крест, который можно перемещать мышкой и больше ничего (т.е. казалось бы вещь бесполезная). Переключиться обратно на любую виртуальную консоль можно нажав сочетание клавиш <Ctrl+Alt+F№>, где № – номер консоли от 1 до 12. Переключиться обратно на экран, управляемый X-сервером, можно, нажав комбинацию клавиш Ctrl+Alt+F7.

Итак, X-сервер запускается на одном компьютере, а X-клиенты вполне могут работать на других (причем на нескольких!), посылая ему запросы. С точки зрения человека, сидящего за X-сервером, каждый такой клиент представлен в виде окна. Требования к аппаратуре на машинах, запускающих X-клиенты, будут изрядно отличаться от требований к аппаратуре машины для X-сервера. Типичная машина с X-сервером – это рабочее место (workstation). Она должна быть оборудована качественными устройствами ввода-вывода – монитором, видеокартой, клавиатурой и мышью. Что же касается ее вычислительных способностей, то их должно быть достаточно для выполнения X-запросов, и только лишь. В принципе, такой компьютер не обязан работать под управлением Linux.

X-клиент - программа, выполняющая ввод и вывод графических данных при помощи X-запросов, обрабатываемых X-сервером.

Для запуска отправки запроса от Х-клиента серверу нужно знать и указать адрес последнего, а также указать № экрана для отображения результата. Это делается путем присвоения определенных параметров переменной DISPLAY (естественно, в командной строке). Когда параметры указаны, то запускается какое-либо графическое приложение, например, XCALC (калькулятор). В данном случае это приложение и есть Х-клиент. На экране отобразится примерно следующее: (*** слайд 49)

Рис. 16.4.  Запуск X-клиента

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]