- •1.4 Структура операционных систем
- •1.4.1 Монолитная система
- •1.4.2 Многоуровневая структура ос
- •1.4.3 Модель экзоядра
- •1.4.4 Микроядерная архитектура (модель клиент-сервер)
- •1.4.5 Обобщение сравнения моделей
- •Интерфейс пользователя
- •Команды
- •Командная строка
- •Договоренности о формате командной строки
- •C.5.4. Переназначение потоков.
- •C.5.5. Переназначение стандартного потока ошибок (в unix).
- •C.5.6. Перенаправление потока ввода.
- •C.5.7. Конвейерная обработка.
- •Управление потоком выполнения
- • Стандартный ввод/вывод
- •Диагностика и другие виды вывода
- •Командные строки и конвейеры
- •Специальные символы
- •8.2.1. Запуск команды в фоновом режиме (символ &)
- •8.2.2. Последовательное выполнение команд (символ ;)
- •8.2.4. Отмена специального значения (метасимвол кавычки)
- •8.2.4.1. Использование кавычек для отмены значения символа пробел
- •Использование кавычек
- •Окружение
- •Переменная окружения
- •Взаимодействие процессов посредством окружения
- •Переменные Shell
- •Позиционные параметры
- •Файловая система
- •Структура файловой системы
- •Монтируемые файловые системы
- •Интерфейс с файловой системой
- •Разновидности файлов
- •Обычные файлы
- •Файлы-каталоги
- •Специальные файлы
- •Связывание файлов с разными именами
- •Именованные программные каналы
- •Файлы, отображаемые в виртуальную память
- •Синхронизация при параллельном доступе к файлам
- •Процессы
- •Процессы
- •Атрибуты процесса
- •Идентификатор процесса (pid)
- •Идентификатор родительского процесса (ppid)
- •Поправка приоритета (ni)
- •Терминальная линия (tty)
- •Реальный (uid) и эффективный (euid) идентификаторы пользователя
- •Реальный (gid) и эффективный (egid) идентификаторы группы
- •Атрибуты файлов
- •Порождение процессов в Linux
- •Управление процессами
- •Типы процессов
- •Права доступа к файлам и каталогам
- •Жизненный цикл процесса в unix и основные системные вызовы
- •Контекст процесса
- •Приоритеты процессов
- •Создание процесса
- •Сон и пробуждение
- •Завершение выполнения процесса
- •Получение информации о процессах
- •Управление приоритетом процессов
- •Сигналы: посылка и обработка
- •Доставка и обработка сигнала
- •Основные сигналы
- •Посылка сигналов
- •Сигналы, посылка сигналов, команда kill
- •Приоритет выполнения процесса, команда nice
- •Текущий контроль процессов, команды ps и top
- •Защита фоновых процессов, команда nohup
- •Пользователь
- •. Привилегированный пользователь
- •Управление пользователями и правами доступа База данных пользователей системы
- •Изменение базы данных пользователей
- •Изменение прав доступа
- •Ограничения сеанса пользователя
- •Команды архивирования файлов
- •4.7.1. Программа tar
- •4.7.2. Программа gzip
- •4.7.3. Программа bzip2
- •Команды поиска grep и find
- •5.5. Перенаправление ввода/вывода, каналы и фильтры
- •5.5.2 Оператор |
- •5.5.3 Фильтры
- •Сигналы
- •Приложение. Список реентерабельных функций
- •Регистрация системных сообщений, система syslog
- •Конфигурационный файл демона syslogd
- •Info Информационные сообщения
- •Учет продолжительности соединений
- •Пользователи и группы
- •Файл /etc/passwd
- •Файл /etc/group
- •Файл /etc/shadow
- •Системные регистрационные имена
- •Изменение действующего идентификатора пользователя
- •Изменение действующего идентификатора группы
- •Изменение пароля и характеристик учетной записи, связанных с регистрацией
- •Правила построения паролей
- •Действие команды passwd
- •Устаревание паролей
- •Показ атрибутов пароля
- •Стандартные значения атрибутов
- •Просмотр базы данных учетных записей
- •Получение списка зарегистрировавшихся пользователей
- •Средства создания, изменения и удаления учетных записей пользователей
- •Средства создания, изменения и удаления групп
1.Разновидности ОС UNIX
Разновидности UNIX
В мире насчитывается огромное количество разновидностей UNIX, вот только некоторые особенности разновидностей систем на базе UNIX:
FreeBSD и NetBSD — альтернативы BSDI IS. Обладают многими функциями, обеспечившими огромное распространение BSD/OS, для них отсутствует техническая поддержка. Если вам необходима надежность и стабильность работы серверной системы, ориентированной на многопользовательскую работу, эти две операционки для вас. Доступны они совершенно бесплатно. FreeBSD работает на платформах amd64, i386, ia64, pc98, powerpc и sparc64. NetBSD на сегодняшний день самая многоплатформенная операционная система.
Linux (Debian, Ubuntu, Mandriva, Android и т.д.) — этот качественный продукт, на собственном ядре, регулярно обновляемый и достаточно распространненый. Linux имеет единой комплектации, для него существует собственное GNU что обеспеч полную многофункциональность. Большинство приложений для Linux совершенно бесплатны. Коммерческие выпуски системы обычно узкоспециализированны, с полной сертификацией. Linux самая популярная свободная ОС из семейтва UNIX, дружелюбна и лего устанавливаема.
Android — свободная операционная система для смартфонов, планшетников, медиацентров, и нетбуков работающая на ядре Linux. Google выкупала ее у компании Android, после чего создала OHA, которая занимается саппортом и развитием данной платформы. Android создает Java-приложения, позволяющие управлять любым устройством.
Mac OS X — разновидность UNIX, работает на ядре Darwin, самостоятельный код который Apple собрала из нескольких систем, в основном NeXTSTEP и FreeBSD. Изначально выпускалось для компьютеров Apple Macintosh на базе процессоров PowerPC, выпускаемых компанией Моторолла. С недавнего времени поддержка архитектуры PowerPC закончена, поддерживается только платформа Intel.
IT-Free.ru поможет в обслуживание серверов, а так же, установить и настроить сервера любой сложности на базе Unix систем.
2. Структура ОС UNIX
1.4 Структура операционных систем
1.4.1 Монолитная система
Более подробная информация - http://ru.wikipedia.org/wiki/Монолитное_ядро
Структура системы:
Главная программа, которая вызывает требуемые сервисные процедуры.
Набор сервисных процедур, реализующих системные вызовы.
Набор утилит, обслуживающих сервисные процедуры.
Простая модель монолитной системы
В этой модели для каждого системного вызова имеется одна сервисная процедура (например, читать из файла). Утилиты выполняют функции, которые нужны нескольким сервисным процедурам (например, для чтения и записи файла необходима утилита работы с диском).
Этапы обработки вызова:
Принимается вызов
Выполняется переход из режима пользователя в режим ядра
ОС проверяет параметры вызова для того, чтобы определить, какой системный вызов должен быть выполнен
После этого ОС обращается к таблице, содержащей ссылки на процедуры, и вызывает соответствующую процедуру.
1.4.2 Многоуровневая структура ос
Более подробная информация - http://ru.wikipedia.org/wiki/Модульное_ядро
Обобщением предыдущего подхода является организация ОС как иерархии уровней. Уровни образуются группами функций операционной системы - файловая система, управление процессами и устройствами и т.п. Каждый уровень может взаимодействовать только со своим непосредственным соседом - выше- или нижележащим уровнем. Прикладные программы или модули самой операционной системы передают запросы вверх и вниз по этим уровням.
Пример структуры многоуровневой системы
Преимущества:
Высокая производительность
Недостатки:
Большой код ядра, и как следствие большое содержание ошибок
Ядро плохо защищено от вспомогательных процессов
Пример реализации многоуровневой модели UNIX.
Структура ОС UNIX
Ядро ОС UNIX
Пример реализации многоуровневой модели Windows
Структура Windows 2000
1.4.3 Модель экзоядра
Более подробная информация - http://ru.wikipedia.org/wiki/Экзоядро
Если предыдущие модели брали на себя максимум функций, принцип экзоядра, все отдать пользовательским программам. Например, зачем нужна файловая система? Почему не позволить пользователю просто читать и писать участки диска защищенным образом? Т.е. каждая пользовательская программа сможет иметь свою файловую систему. Такая операционная система должна обеспечить безопасное распределение ресурсов среди соревнующихся за них пользователей.
1.4.4 Микроядерная архитектура (модель клиент-сервер)
Более подробная информация - http://ru.wikipedia.org/wiki/Микроядро
Эта модель является средним между двумя предыдущими моделями.
В развитии современных операционных систем наблюдается тенденция в сторону дальнейшего переноса задач из ядра в уровень пользовательских процессов, оставляя минимальное микроядро.
В этой модели вводятся два понятия:
Серверный процесс (который обрабатывает запросы)
Клиентский процесс (который посылает запросы)
В задачу ядра входит только управление связью между клиентами и серверами.
Модель клиент-сервер
Преимущества:
Малый код ядра и отдельных подсистем, и как следствие меньшее содержание ошибок.
Ядро лучше защищено от вспомогательных процессов.
Легко адаптируется к использованию в распределенной системе.
Недостатки:
Уменьшение производительности.