- •Понятие операционной системы (ос), цели ее работы. Классификация компьютерных систем
- •Обеспечение удобства, эффективности, надежности,
- •История ос. Отечественные ос. Диалекты unix. Режимы пакетной обработки, мультипрограммирования, разделения времени
- •Особенности ос для различных классов компьютерных систем. Ос реального времени. Ос для облачных вычислений
- •Архитектура компьютерной системы
- •Управление процессами
- •Обзор функций ос: управление памятью, файлами, процессами, сетями, командными интерпретаторами, сервисы ос, системные вызовы. Уровни абстракции ос. Архитектура unix и ms-dos
- •Системные вызовы (system calls)
- •Уровни абстракции ос. Ос с архитектурой микроядра. Виртуальные машины. Цели проектирования и разработки ос. Генерация ос
- •Виртуальная машина Java (jvm)
- •Уровни абстракции ос
- •Управление процессами. Планирование и диспетчеризация процессов
- •Методы взаимодействия процессов
- •Потоки (threads) и многопоточное выполнение программ (multi-threading)
- •Стратегии и критерии диспетчеризации процессов
- •Методы синхронизации процессов
- •Тупики (deadlocks), методы предотвращения и обнаружения тупиков
- •Алгоритм банкира
- •Управление памятью
- •Схемы разделения памяти
- •Страничная организация памяти
- •Решаемые задачи:
- •Сегментная организация памяти
- •Виртуальная память
- •Системы файлов
- •Классификация файловых систем
- •Задачи файловой системы
- •Виртуальные файловые системы (vfs). Реализации файловых систем. Сетевая файловая система nfs Виртуальные файловые системы
- •Системы ввода-вывода
- •Сети и сетевые структуры Распределенные системы
- •Классические и современные сетевые коммуникационные протоколы Протоколы коммуникации
- •Безопасность операционных систем и сетей. Trustworthy Computing Безопасность (security) – защита от внешних атак.
- •Основная суть инициативы twc заключается в том, что безопасности необходимо уделять особое внимание при разработке программной системы, начиная с самых ранних этапов.
- •Обзор архитектуры и возможностей системы Linux: архитектура, ядро, распространение и лицензирование, принципы проектирования, управление процессами
- •Обзор архитектуры и возможностей системы Linux: управление памятью, ресурсами, файловые системы, драйверы устройств, сети, безопасность
- •Обзор архитектуры и возможностей систем Windows 2000/xp/2003/Vista/2008/7
- •Оболочка Norton Commander и ее графические аналоги для Windows:
- •29. Far Manager – текстовая оболочка
Основная суть инициативы twc заключается в том, что безопасности необходимо уделять особое внимание при разработке программной системы, начиная с самых ранних этапов.
Основные принципы инициативы TWC:
Безопасность (Security) – реализация и использование в любой программной системе действенных мер защиты от внешних атак; использование специальных методов разработки программ, направленных на достижение этой цели.
Сохранение конфиденциальности информации (Privacy) – использование программным обеспечением частной и корпоративной информации только с явного согласия пользователя и только для понятных ему законных целей; защитаконфиденциальной информации от взлома в результате атаки.
Надежность (Reliability) – предсказуемость поведения программных систем, которые должны обеспечивать в заданном окружении ожидаемое правильное поведение программы.
Оперативность, законность и корректность бизнеса (Business Integrity) - оперативность работы группы сопровождения программного продукта и своевременные консультации пользователей по вопросам безопасности;
Обзор архитектуры и возможностей системы Linux: архитектура, ядро, распространение и лицензирование, принципы проектирования, управление процессами
Linux – современная, свободно распространяемая ОС, основанная на стандартах и традициях UNIX.
Linux использует разработки BSD UNIX, AT&T UNIX, библиотеку X Windows. Разработка Linux поддерживается сетью разработчиков, связанных через Интернет.
Ядро Linux
Ядро Linux распространяется на условиях GNU General Public License, суть которых в том, что разработки на основе кода Linux нельзя использовать для коммерческих целей, и распространение ПО, разработанного на основе Linux, должно включать исходные коды.
Основные цели проектирования Linux – скорость, эффективность и стандартизация.
Управление процессами в Linux
В классической системе UNIX средства управления процессами разделяют создание процесса и запуск новой программы на две различные операции:
Системный вызов fork создает новый процесс
Новая программа запускается с помощью системного вызова exec.
Обзор архитектуры и возможностей системы Linux: управление памятью, ресурсами, файловые системы, драйверы устройств, сети, безопасность
Управление физической памятью в Linux
Система распределения физической памяти в Linux занимается размещением и освобождением страниц, групп страниц и небольших блоков памяти. Она имеет дополнительные механизмы для виртуальной памяти, отображаемой в адресное пространство исполняемых процессов.
Распределитель страниц размещает и освобождает физические страницы; он может также по запросу размещать группы смежных страниц.
Системы файлов Linux
С точки зрения пользователя файловая система Linux представляет собой иерархическое дерево директорий, подчиняющееся семантике UNIX.
С внутренней точки зрения, ядро скрывает детали реализации и управляет многими различными файловыми системами через общий уровень абстракции, то есть виртуальную файловую систему (VFS).
Linux VFS спроектирована по объектно-ориентированным принципам и использует набор определений, задающий структуру файлов. Системные структуры inode-object и file-object представляют отдельные файлы. Объект file system objectпредставляет файловую систему в целом. Существует уровень абстракции для манипулирования этими объектами.
Файловая система Ext2fs – основная файловая система Linux. Она использует механизм, сходный с UNIX BSD Fast File System (ffs) для поиска блоков данных, принадлежащих некоторому файлу.
Драйвер символьного устройства не поддерживает произвольный доступ к фиксированным блокам данных.
Драйвер символьного устройства регистрирует набор функций, реализующих разнообразные требуемые операции ввода-вывода.
Ядро не выполняет почти никакой предварительной обработки запроса на чтение или запись в файл символьного устройства, но просто передает данный запрос драйверу устройства.
Основное исключение из этого правила – это особый набор драйверов символьных устройств, которые реализуют доступ ктерминальным устройствам ( TTY ); для них ядро поддерживает стандартный интерфейс.
Работа в сети – ключевая область функциональности в Linux.
Сетевая система Linux поддерживает основные Интернет-протоколы для коммуникаций UNIX - UNIX. Она также реализует протоколы, характерные для ОС, отличных от UNIX, в частности, протоколы, используемые в сетях PC, таких как Appletalk и IPX.
Безопасность:
Управление доступом в системах типа UNIX, включая и Linux, осуществляется с помощью уникальных числовых идентификаторов пользователя и группы ( uid и gid ).
Управление доступом выполняется путем присваивания объектам маски защиты, которая указывает, какие операции (чтение,запись, исполнение) доступны для владельца, группы и всех остальных пользователей.
Linux дополняет стандартный механизм UNIX ( setuid ) двумя способами:
Реализует этот механизм по спецификации POSIX, что позволяет каждому процессу многократно освобождать и вновь получать свой действующий uid.
Добавлена характеристика процесса, которая предоставляет лишь подмножество полномочий, согласно действующему uid.
Linux обеспечивает механизм, который позволяет клиенту выборочно передавать доступ к отдельному файлу некоторомусерверному процессу, без предоставления ему каких-либо других привилегий.
