Перечислите состав операционной системы: Недопустимое название — Викиучебник

Содержание

Операционная система — презентация онлайн

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

Программное обеспечение

2. Операционная система – это самая главная программа

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

3. Наиболее распространенные ОС

МS DOS;
MS Windows;
OS/2;
UNIX;
Linux.

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

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

5. Состав операционных систем

. Так, для “классических” ОС с командной строкой довольно
четко выделяются три основные части:
1)машинно-зависимая часть для работы с конкретными
видами оборудования;
2)базовая часть (ядро), не зависящая от конкретных
деталей устройств: она работает с абстрактными логическими
устройствами и при необходимости вызывает функции из
предыдущей части; отвечает за наиболее общие принципы
устройства ОС;
3)программа ведения диалога с пользователем (ее часто
называют командным процессором).

6. Порядок запуска ОС

Bios
Master boot
Boot sector
Командный процессор

7. Bios

Первый этап загрузки
ОС это программы
тестирования
компьютера:Bios(
Base input\outinput
system-базовая
система
ввода\вывода)

8. Master boot

На этапе, после
тестирования процессор
обращается к диску и
ищет на первом секторе
диска наличие
небольшой программызагрузчика Master boot и
ей передаётся
управление.

9. Boot sector

Master boot ищет на
диске основной
загрузчик Boot
sector,загружает его в
память и передаёт ему
управление.Далее
основной загрузчик ищет
остальные модули ОС и
загружает их в
оперативную память.

10. Структура операционной системы:

Ядро – переводит команды с языка
программ на язык «машинных кодов»,
понятный компьютеру.
Драйверы – программы, управляющие
устройствами.
Интерфейс – оболочка, с помощью
которой пользователь общается с
компьютером.

11. Командный процессор (интерпретатор)

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

12. Драйверы

К магистрали компьютера подключаются различные
устройства (дисководы, монитор, клавиатура,
мышь, принтер и др.). В состав операционной
системы входят драйверы устройств —
специальные программы, которые обеспечивают
управление работой устройств и согласование
информационного обмена с другими
устройствами. Любому устройству соответствует
свой драйвер.

13. Графический пользовательский интерфейс

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

14. Утилиты

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

15. Справочная система

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

16. Запуск компьютера

После включения компьютера процессор начинает
считывать и выполнять микрокоманды, которые хранятся
в микросхеме BIOS. Прежде всего начинает выполнятся
программа тестирования POST, которая проверяет
работоспособность основных устройств компьютера. В
случае неисправности выдаются определенные звуковые
сигналы, а после инициализации видеоадаптера процесс
тестирования отображается на экране монитора.
Затем BIOS начитает поиск программы-загрузчика
операционной
системы.
Программа-загрузчик
помещается в ОЗУ и начинается процесс загрузки файлов
операционной системы.

17. Загрузка операционной системы

Файлы операционной системы хранятся во
внешней, долговременной памяти (на жестком
диске, на CD …). Однако программы могут
выполнятся, только если они находятся в ОЗУ,
поэтому файлы ОС необходимо загрузить в
оперативную память.
Диск, на котором находятся файлы операционной
системы и с которого происходит загрузка,
называют системным.

18. Загрузка операционной системы

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

19. Особенности Windows

Многозадачность.
Единый программный интерфейс.
Единый интерфейс пользователя.
Графический интерфейс
пользователя.
Единый аппаратно-программный
интерфейс.

20. Графические операционные системы

Первые операционные системы были
неграфическими (MS-DOS).
Выпущенная в сентябре 1995 г. система Windows
95 стала первой графической операционной
системой для компьютеров IВМ РС.
Все следующие версии операционных систем
Windows (98, NT, ME, 2000, XP) являются
графическими.

21. Операционные системы компании Microsoft:

DOS (Disk Operating System). Интерфейс – командная
строка. Все команды приходилось набирать вручную, в
командной строке ОС.
Windows 3.1 и 3.11. – первый графический интерфейс.
Хотя многие не считали эту систему операционной, а
лишь системой, расширяющей возможности DOS.
У всех дальнейших операционных систем интерфейс
графический.
Windows-95.
Семейство Windows-98 / NT / ME / 2000 / XP.
Windows 7

22. Альтернативные ОС

Словом UNIX обозначается не одна операционная система, а
целое семейство ОС. UNIX создавалась прежде всего для
профессионалов, и поэтому никогда не содержала
никаких «рюшечек» типа удобного графического
интерфейса. Важное было другое – совместимость,
переносимость, настраиваемость и, самое главное,
стабильность.
От мощного древа UNIX отпочковался и целый ряд
«свободных» операционных систем: Linux, FreeBSD,
NetBSD и OpenBSD.
Некоторые из них имеют графический интерфейс.
Также существуют и другие альтернативные операционные
системы (MAC и другие).

23. Вопросы:

Для чего необходима операционная
система?
Какова структура операционной системы?
Для чего используется командный
процессор?
Для чего нужны драйверы?
Что такое графический пользовательский
интерфейс?

24. Вопросы:

Что позволяют делать утилиты?
Каковы основные этапы загрузки
компьютера?
Какой диск называется системным?
Перечислите особенности операционной
системы Windows.
Какие операционные системы вы знаете?

48

48

Информатика  

4.8. Прочие функции операционных систем

Кроме основных (базовых) функций операционные системы могут предоставлять различные дополнительные функции. Конкретный выбор операционной системы определяется совокупностью предоставляемых функций и конкретными требованиями к рабочему месту.

Прочие функции операционных систем могут включать следующие:

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

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

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

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

Вопросы для самоконтроля

1. Что такое операционная система?

2. Перечислите основные функции операционной системы.

3. Расскажите о видах интерфейса пользователя, применяемых в разных операционных системах.

4. Опишите организацию хранения файлов на дисках компьютера.

5. Перечислите функции операционной системы по обслуживанию файловой структуры.

6. Объясните правила, по которым формируются короткое имя файла и длинное имя файла.

7. В чем заключается операция установки приложения?

 


назад | оглавление | вперёд
 

Перейдем к рассмотрению архитектуры операционной системы. Вспомним состав операционной системы, рассмотренный ранее в лекции «Понятие операционной системы«. Операционная система состоит из четырех основных частей:

  1. Первая часть — ядро, низкоуровневая основа любой ОС, выполняемая аппаратурой в особом привилегированном режиме. Ядро загружается в память один раз и находится в памяти резидентно – постоянно, по одним и тем же адресам. Ядро — командный интерпретатор, «переводчик» с программного языка на «железный», язык машинных кодов.
  2. Вторая часть Подсистема управления ресурсами (resource allocator) — управляет вычислительными ресурсами компьютера — оперативной и внешней памятью, процессором
  3. Третья часть — Управляющая программа (control program, supervisor) – управляет исполнением других программ и функционированием устройств ввода-вывода.(используются специализированные программы для управления различными устройствами, входящими в состав компьютера. Драйвера «системные библиотеки»)
  4. Четвертая часть — удобная оболочка, с которой общается пользователь — интерфейс. Своего рода красивая обертка, в которую упаковано скучное и не интересное для пользователя ядро.

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

Архитектура Операционной системы  — ЯДРО

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

  • Монолитное ядро
  • Поуровневый подход
  • Микроядро
  • Модули ядра

Монолитное ядро (все вместе)

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

  • Планирование процессов
  • Управление файловой системой
  • Сетевое взаимодействие
  • Драйверы устройств
  • Управление памятью

Преимущества:

Производительность — в виду того, что количество переключений из контекста режима пользователя в режим ядра сведено к минимуму;

Недостатки: 

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

Монолитный подход — простейший Первые ОС были монолитными, в них:

  • Нет определенной структуры
  • Нет уровней
  • Нет разделения на модули

Определенной структуры данные операционной системы не имеют. Это большой набор сервисных функций. Нет деления на слои и модули. ОС были простыми и большими, так как все время дописывались, засчет этого сильно росли. Пример – классический MS-DOS

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

Состав MS-DOS

Итак, мы выяснили, что простая неорганизованная структура это — плохо.

Возможно улучшение – операционная система разбивается на ряд уровней (слоев) – каждый следующий уровень базируется на предыдущем(вводится понятие иерархии уровней)

  • Самый нижний – аппаратное обеспечение
  • Самый верхний – интерфейс пользователя

Каждый уровень использует только функции (сервисы), предоставляемые нижестоящим уровнем.

 Все (или почти все уровни) работают в режиме ядра Примеры таких ОС – MULTICS, VAX\VMCИ

Простой поуровневый подход

Разбиение на уровни помогает разбить программирование операционной системы, становится легче программировать.

Поуровневый подход используется оригинальным ядром Unix:

  • Небольшое число монолитных слоев
  • Нет инкапсуляции, функции и сервисы, предоставляемые на разных уровнях доступны всей системе
  • По сути ядро – набор процедур, которые могут вызывать любые другие процедуры
  • Огромное количество функциональности в ядре (все что можно и нужно)

Современные ОС более четко разделены на уровни.

Ядро ОС Unix

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

Если уровни строго разделены:

  • + можно над ними независимо работать
  • + можно независимо заменять

Например, сетевой стек TCP/IP является примером строгого разделения на уровни (уровни все четко выверены и подробно описаны)

Сложности:

  • как определить эти слои (непростая задача)
  • разделение на уровни возможно только при наличии иерархии вызовов и отсутствии циклических зависимостей.

Циклические зависимости

Пример

Возьмем драйвер диска:

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

Поэтому в этом случае данная архитектурная модель не работает

Чем больше таких уровней, тем больше возникает проблемных ситуаций.

Выход – отход от строгой поуровневой модели и возврат к небольшому числу слоев с большой функциональностью.

Дальнейшим этапом развития придумали МИКРОЯДРО.

МИКРОЯДРО

Микроядро – ядро, содержащее только самые необходимые функции.

Идея: минимизировать само ядро, вынести как можно функциональности в режим пользователя (т.е. исполнять эту функциональность в виде обычных процессов).

Многие сервисы становятся пользовательскими процессами:

  • Драйверы устройств,
  • Файловые системы,
  • Менеджер виртуальной памяти,
  • Оконные системы графического интерфейса пользователя,
  • Службы безопасности

Данный подход популяризован ядром MACH («МАК»)

На основе MACH сделаны, среди прочих, Mac OSX (комп.Apple), GNUHurd.

Структура микроядра

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

Микроядро основывается на механизме обмена сообщениями:

  • проверяет корректность сообщений
  • передает их между компонентами
  • проверяет, разрешен ли обмен сообщениями

Предоставляет доступ к оборудованию

Фактически реализует клиент-серверную архитектуру на одном компьютере.

Преимущества микроядра

  • Унифицированные интерфейсы – процессы могут обмениваться сообщениями, нет разницы между режимом пользователя и режимом ядра, все сервисы предоставляются через обмен сообщениями в клиент-серверной архитектуре. Например, запросы могут обрабатываться на удаленные машины.
  • Расширяемость – легче расширить, новые сервисы добавляются как расширяется функциональность программы
  • Портируемость(переносимость) – на новое оборудование нужно перенести микроядро.
  • Надежность, безопасность – меньше кода выполняется в режиме ядра, ошибки программ в режиме пользователя не влияют на остальную часть системы.

Недостатки микроядра

  • Больше расходов на взаимодействие между системными сервисами.
  • Каждое взаимодействие требует переключения режимов. Переходы из режима пользователя в режим ядра и обратно. Механизм передачи сообщений требует очень частого переключения контекста. Режим ядра – режим пользователя, они “съедают” значительную часть мощности ЦП.
  • Системные сервисы, работающие в режиме пользователя – это процессы, ОС нужно их планировать( Диспетчеризация).

Решение 1: реинтеграция таких сервисов обратно в ядро (интегрировать некоторые сервисы в ядро и “убрать” переключения

  • Улучшается производительность(меньше переключений, одно адресное пространство)
  • Такое ядро было сделано в ядре Mach

Решение 2: сделать ядро еще меньше – экспериментальные архитектуры (нано-ядра, пико-ядра).

Минимальная функциональность в микроядре

1) Низкоуровневое управление памятью
   -Отображение страниц на физическую память

— Все остальные механизмы предоставляются сервисами, работающими в режиме пользователя

  • Защита адресного пространства
  • Механизмы замещения страниц
  • Управление виртуальной памятью

2) Межпроцессорное взаимодействие

3)Ввод/вывод и обработка прерываний.

Модули ядра

Технология «модули ядра» развивались параллельно вместе с микроядром.

Модуль – нечто среднее между поуровневой архитектурой и микроядром.

Удобно для разработки (каждый может разрабатывать свой модуль без необходимости трогать основную систему).

  • Модули находятся в режиме ядра (уменьшаются затраты на взаимодействие модулей между собой)
  • Компромисс ради производительности.
  • Под разные задачи необходимо выбирать ОС

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

Многие ОС реализуют поддержку модульности

Пример – ОС Linux. Классифицируют как монолитное ядро.

  • Каждый ключевой компонент – отдельный модуль
  • Взаимодействие происходит через определенные интерфейсы
  • Загружаются модули по требованию

Можно самому компилировать ядро Linux, выбирать нужные модули, решать какие модули войдут в ядро, а какие нет — т.е. компоновать ядро согласно своих требований, что позволяет получать преимущество – гибкость операционной системы.

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

Linux

Линус Бенедикт Торвальдс

Торговая марка Linux зарегистрирована на Линуса Торвальдса.
Linux, произносится «линукс» .

Создатель Linux — Линус Бенедикт Торвальдс родился 28 декабря 1969 в Хельсинки — финский программист. Воодушевлённый прочтением книги Эндрю Таненбаума, посвящённой операционной системе Minix, Линус создал Linux — ядро операционной системы GNU/Linux, являющейся на данный момент самой распространённой из свободных операционных систем.

Уникальность данной ОС – открытый исходный код, он разрабатывается сообществом, поэтому данная ОС работает на очень многих существующих платформах (архитектуры процессора таких как Intel x86, x86-64, PowerPC, ARM, Alpha AXP, Sun SPARC, Motorola 68000, Hitachi SuperH, IBM S/390, MIPS, HP PA-RISC, AXIS CRIS, Renesas M32R, Atmel AVR32, Renesas H8/300, NEC V850, Tensilica Xtensa и многих других).

визитка Linux

В отличие от большинства других операционных систем, Linux не имеет единой «официальной» комплектации. Вместо этого Linux поставляется в большом количестве так называемых дистрибутивов, в которых ядро Linux соединяется с утилитами GNU и другими прикладными программами (например, X.org), делающими её полноценной многофункциональной операционной средой.

Сам разработчик сегодня заявляет, что ядро ОС стало настолько большим, что его уже трудно поддерживать, оно недостаточно структурировано.

 

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

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

Уникальная система и с точки зрения теории – гениально структурированное ядро ОС. В структуре спокойно разберется один человек.

В ядре сосредоточены ключевые компоненты, а то, что можно было вынести без потери производительности – вынесено в режим пользователя.

На основе этого ядра сделаны Windows 2000/XP/7/8/

Windows NT первоначально работала на 5 платформах.

В дальнейшем мы будем рассматривать данную операционную систему более подробно.

Состав ОС Windows NT

Критерии выбора операционной системы

Монолит – если есть разбиение на уровни, модули, но большей частью все компоненты выполняются в режиме ядра, этот монолит обычно раструктурированный.

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

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

Скачать презентацию » Архитектура операционной системы «

 

Скачать тест по теме » Архитектура операционной системы «

 

 

Понравилась статья, рекомендуйте Вашим друзьям!
Давайте дружить!

Сетевые операционные системы

Сетевая операционная система (англ. Network operating system) – это операционная система, которая обеспечивает обработку, хранение и передачу данных в информационной сети.

Главными задачами сетевой ОС являются разделение ресурсов сети (например, дисковые пространства) и администрирование сети. Системный администратор определяет разделяемые ресурсы, задаёт пароли, определяет права доступа для каждого пользователя или группы пользователей. Отсюда сетевые ОС делят на сетевые ОС для серверов и сетевые ОС для пользователей.

Существуют специальные сетевые ОС, которым приданы функции обычных систем (например, Windows NT) и обычные ОС (Windows XP), которым приданы сетевые функции. Практически все современные ОС имеют встроенные сетевые функции.

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

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

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

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

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

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

Unix

Операционная система UNIX — многопользовательская, многозадачная операционная система, способная функционировать на различных аппаратных платформах. В микроядро ОС UNIX встроен модуль, выполняющий протокол управления передачей/межсетевой протокол (протокол TCP/IP).

linux

Операционная система Linux — сетевая операционная система, ядро которой разработано на базе операционной системы Unix. Linux распространяется с открытыми исходными кодами и применяется для создания серверов в вычислительных сетях и в Интернете.

NetWare

Сетевая операционная система NetWare — разработанная корпорацией Novell сетевая операционная система, которая использует одноранговую архитектуру или архитектуру клиент-сервер.

Window NT

Сетевая операционная система Windows NT — разработанная корпорацией Microsoft сетевая, многозадачная операционная система, поддерживающая архитектуру клиент-сервер. ОС Windows NT существует в виде двух продуктов:

  • Windows NT Server, выполняющий функции сервера;
  • Windows NT Workstation, реализующий задачи клиента.

4.1. ОСНОВНЫЕ СОСТАВНЫЕ ЧАСТИ MS DOS

  1. BIOS (The Basic Input/Output System) – базовая система ввода/вывода. Она находится в ПЗУ, поэтому, с одной стороны, ее можно рассматривать как часть аппаратных средств ПК, а с другой стороны, как часть программного обеспечения, входящую в состав ОС. Часто говорят, что BIOS – это часть ОС, встроенная в ПК. Она предназначена для выполнения наиболее простых действий ПК по вводу/выводу информации.

  2. Загрузчик DOS — еще одна программа, которую можно считать частью MS DOS. Загрузчик находится в первом секторе каждого диска, с которого происходит загрузка ОС. Назначение этой программы — загрузка в память системных файлов IO.SYS и MSDOS.SYS при начальной загрузке компьютера. Дисковые (системные) файлы IO.SYS и MSDOS.SYS. IO.SYS — дополнение к BIOS в ПЗУ. MSDOS.SYS реализует основные высокоуровневые услуги MS DOS. Файлы IO.SYS и MSDOS.SYS должны быть постоянно в оперативной памяти компьютера. Они должны находиться в корневом каталоге диска, с которого загружается MS DOS.

  3. Командный процессор. Обрабатывает команды, вводимые пользователем. Стандартный командный процессор имеет имя СOMMAND.COM. Обычно он находится в корневом каталоге диска, с которого загружается MS DOS.

  4. Внешние команды MS DOS. Это программы, поставляемые вместе с ОС в виде отдельных файлов. Они обычно выполняют действия обслуживающего характера, например форматирование дискеты, проверку дисков и т.д. Внешние команды записываются в отдельный каталог при установке MS DOS.

  5. Драйверы устройств — это специальные программы, которые дополняют систему ввода/вывода ОС и обеспечивают обслуживание новых или нестандартное использование имеющихся устройств. Драйверы загружаются в память компьютера при загрузке ОС, их имена указываются в специальном файле CONFIG.SYS. Такая схема облегчает добавление новых устройств и позволяет делать это, не затрагивая системные файлы MS DOS.

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

Начальная загрузка ОС выполняется автоматически в следующих случаях:

  • Включение компьютера
  • При нажатии на клавишу ‘RESET’

При работе в DOS перезагрузка выполняется также при одновременном нажатии клавиш [Ctrl]-[Alt]-[Del].

Запуск ПК осуществляется в 2 этапа. На первом этапе работает аппаратная часть: после включения электропитания происходит автоматический запуск программы, хранящейся в ПЗУ на системной плате. Эта программа выполняет всю подготовительную работу:

  • Проверяет функционирование процессора

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

  • Проверяет оперативную память, показывая на экране ее количество.

  • Проверяет работоспособность клавиатуры и дисководов.

Завершение проверок подтверждается гудком динамика.

На втором этапе управление передается начальному загрузчику. Он находит ОС, загружает (переписывает) дисковые файлы IO.SYS и MSDOS.SYS в заранее отведенную для этого часть оперативной памяти ПК и передает им управление. Это программы, которые тоже производят подготовительные действия, но уже не для компьютерной аппаратуры, а для ОС. В частности, осуществляется поиск в корневом каталоге файла подстройки системного ПО – CONFIG.SYS. После выполнения всех подготовок и подстроек управление получает модуль COMMAND.COM– интерпретатор командной строки, который фактически и управляет работой ПК по указаниям пользователя вплоть до его выключения. Сначала он ищет файл AUTOEXEC.BAT в корневом каталоге системного диска. Если такой файл есть, он будет однократно автоматически выполнен при каждой загрузке или перезагрузке ОС. В этом файле указывается, например, какие программы должны быть запущены до начала работы (драйвер кириллицы, программа-оболочка и др.). Затем на экран выводится приглашение ОС, которое обозначает, что MS DOS готова к приему команд. После этого ПК простаивает — COMMAND.COM ждет команд с клавиатуры. Когда он получает команду, то начинает в ней разбираться. Есть так называемые внутренние команды ОС – командный процессор их может выполнить сам (простые команды манипуляции файлами – копирование, перемещение, удаление, переименование). Если первое слово команды неизвестно модулю COMMAND.COM, то он считает, что дана команда выполнить файл с таким именем (внешняя команда). Если расширение не указано, то модуль ищет файл с таким именем и расширением .com, затем — .exe, затем — .bat. Первый же подходящий файл начнет выполняться либо как программа (com, exe), либо как набор команд (bat). Если же файл не найден, то появится сообщение “Bad command or file name”, и командный процессор будет ждать следующих команд. Подходящие файлы ищутся сначала в текущем каталоге, а затем последовательно по перечню каталогов, указанных в команде PATH (путь) файла AUTOEXEC.BAT.

Корректное завершение работы в ОС Windows

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

1) щелкнуть по кнопке Пуск на панели задач;

2) выбрать пункт Выключить компьютер;

3) выбрать опцию Выключение.

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

Командой Пуск®Выключить компьютер можно также включить режим ожидания или перезагрузить компьютер.

Рекомендации пользователю при зависании ПК

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

Если в ходе работы программы компьютер перестал реагировать на нажатие клавиш («завис»), можно рекомендовать следующую последовательность действий:

1. попробовать отменить последнюю операцию – нажать клавишу {Esc} или кнопку Отменить на панели инструментов; если действие не привело к восстановлению работы компьютера, тогда:

2. попробовать снять задачу – набрать сочетание клавиш {Ctrl}+{Alt}+{Del}. В появившемся окне Диспетчер задач указать программу, нажать кнопку [Снять задачу]. Дальнейшие действия – в соответствии с появившимися сообщениями. Если этот способ не поможет, то необходимо:

3. попробовать перезагрузить компьютер – Пуск ® Выключить компьютер, выбрать пункт Перезагрузка. Дождаться когда пройдет перезагрузка ПК.

4. нажать на кнопку Reset на системном блоке (в этом случае также пойдет процесс перезагрузки), если и это не помогает, то следует:

Выключить и снова включить компьютер.

Отметим, что действий 4) и 5) следует по возможности избегать, т.е. они могут внести нарушения в работу программного обеспечения компьютера.

Бывают ситуации, когда программа начинает работать неправильно, хотя компьютер и не «завис». В этом случае нужно закрыть программу и запустить ее снова. Если работоспособность программы не восстановилась, нужно перезагрузить компьютер. Если и это не помогает, то требуется новая установка программы.


КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Дайте определения понятий: операционная система, программное обеспечение.

2. Что такое интерфейс, какие его виды различают?

3. Назовите назначение и состав операционной системы.

4. Перечислите объекты рабочего стола.

5. Как вызывается главное меню и перечислите состав главного меню.

6. Назовите стандартные элементы окон папок в ОС Windows.

7. Каким образом можно получить доступ к носителям информации, дискам?

8. Перечислите способы задания команд для выделенных объектов.

9. Опишите возможные операции с папками и файлами.

10. Перечислите приемы выделения объектов (значков папок и документов).

11. Какие приемы открытия файла можно применить, если он сохранен на рабочем столе?

12. Назовите алгоритм сохранения документа в заданной папке. В чем заключается отличие команд Сохранить и Сохранить как…?

13. Как осуществить поиск файла или папки?

14. Приведите примеры стандартных программ-приложений в ОС Windows.

15. Опишите ваши действия, если компьютер завис.

16. Как правильно завершить работу компьютера.

3. Нажать Сохранить
3. Текстовый процессор MICROSOFT WORD

Содержание учебного материала:

— назначение и запуск текстового процессора Microsoft Word;

— вид окна Microsoft Word;

— режимы работы с документами;

— первоначальная настройка редактора;

— создание текста;

— редактирование, форматирование текста;

— операции с выделенными фрагментами текста;

— элементы оформления текстовых документов;

— построение таблиц нужных размеров;

— возможные операции с таблицами;

— создание векторных изображений (рисование).

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

Microsoft Word — один из популярнейших в настоящее время тексто­вых процессоров. Ниже будут рассмотрены понятия, методы и приемы, относящиеся к созданию текстовых документов с помощью текстового процессора Microsoft Word.


Узнать еще:

Какие два компонента операционной системы?

✔ Операционная система состоит из двух основных частей: ядра и пользовательского пространства. Объяснение: Ядро — это основное ядро ​​операционной системы.

Каковы два основных компонента операционной системы?

Какие две основные части составляют операционную систему? Ядро и пользовательское пространство; Две части, составляющие операционную систему, — это ядро ​​и пользовательское пространство.

Какие компоненты операционной системы?

Компоненты операционных систем

  • Что такое компоненты ОС?
  • Управление файлами.
  • Управление процессами.
  • Управление устройствами ввода-вывода.
  • Управление сетью.
  • Управление основной памятью.
  • Управление вторичным хранилищем.
  • Управление безопасностью.

17 февр. 2021 г.

Что такое 2 операционные системы?

Типы операционных систем

Тремя наиболее распространенными операционными системами для персональных компьютеров являются Microsoft Windows, macOS и Linux. Современные операционные системы используют графический пользовательский интерфейс или GUI (произносится как gooey).

Каковы 3 основных компонента операционной системы?

Операционная система выполняет три основные функции: (1) управление ресурсами компьютера, такими как центральный процессор, память, дисковые накопители и принтеры, (2) создание пользовательского интерфейса и (3) выполнение и предоставление услуг для прикладное программное обеспечение.

Какие бывают 4 типа операционных систем?

Ниже приведены популярные типы операционных систем:

  • Пакетная операционная система.
  • Многозадачность / ОС с разделением времени.
  • Многопроцессорная ОС.
  • ОС реального времени.
  • Распределенная ОС.
  • Сетевая ОС.
  • Мобильная ОС.

22 февр. 2021 г.

Какие 5 основных компонентов Linux?

Каждая ОС имеет компоненты, и ОС Linux также имеет следующие компоненты:

  • Загрузчик. Ваш компьютер должен пройти последовательность загрузки, называемую загрузкой. …
  • Ядро ОС.…
  • Фоновые услуги. …
  • Оболочка ОС. …
  • Графический сервер. …
  • Окружение рабочего стола. …
  • Приложения.

4 февр. 2019 г.

Каковы основные компоненты ядра ОС?

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

Что такое операционная система и ее типы?

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

Какие пять примеров операционной системы?

Пять из наиболее распространенных операционных систем: Microsoft Windows, Apple macOS, Linux, Android и iOS от Apple.

Является ли iPhone операционной системой?

iPhone от Apple работает под управлением операционной системы iOS.Что полностью отличается от операционных систем Android и Windows. IOS — это программная платформа, на которой работают все устройства Apple, такие как iPhone, iPad, iPod, MacBook и т. Д.

Какая не операционная система?

Android не является операционной системой.

Какой тип программного обеспечения является операционной системой?

Операционная система (ОС) — это системное программное обеспечение, которое управляет компьютерным оборудованием, ресурсами программного обеспечения и предоставляет общие службы для компьютерных программ.

Каковы основные компоненты операционной системы Windows?

Основными компонентами операционной системы Windows являются следующие:

  • Настройка и обслуживание.
  • Пользовательский интерфейс.
  • Приложения и утилиты.
  • Компоненты Windows Server.
  • Файловые системы.
  • Основные компоненты.
  • Услуги.
  • DirectX.

Сколько частей в операционной системе?

Операционная система выполняет 4 основных задачи.

Какая операционная система лучше Почему?

10 лучших операционных систем для ноутбуков и компьютеров [СПИСОК 2021]

  • Сравнение лучших операционных систем.
  • # 1) MS-Windows.
  • # 2) Ubuntu.
  • # 3) Mac OS.
  • # 4) Fedora.
  • # 5) Солярис.
  • # 6) Бесплатная BSD.
  • # 7) Chrome OS.

18 февр. 2021 г.

Компоненты операционной системы — Earth’s Lab

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

Ядро

Ядро обеспечивает один из самых фундаментальных уровней контроля над всеми аппаратными устройствами компьютера. Ядро — это центральный компонент операционной системы (ОС). Это компонент операционной системы, который загружается изначально и остается в основной памяти. Он управляет доступностью памяти для программ в ОЗУ, он устанавливает, какие программы получают доступ к каким аппаратным ресурсам.Он устанавливает или сбрасывает рабочие состояния ЦП для оптимальной работы в любое время.

Выполнение процесса

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

Прерывание

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

Управление памятью

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

Мы можем разделить работу по управлению памятью на 3 значимые группы:

  • Управление аппаратной памятью.
  • Управление памятью ОС (операционной системы).
  • Управление памятью приложений.

Многозадачность

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

Сеть

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

Безопасность

Если компьютерная система состоит из нескольких человек и позволяет одновременную работу нескольких процессов, то эти многочисленные процессы должны быть защищены от действий друг друга. Безопасность и надежность компьютерной системы зависит от эффективности работы множества технологий. Современная операционная система предлагает доступ к ряду ресурсов, которые легко доступны программному обеспечению, работающему в системе, и внешним устройствам, таким как сети, посредством ядра.Операционная система должна быть способна различать запросы, которые должны быть разрешены для обработки, и другие, которые не должны обрабатываться. В дополнение к разрешению или запрещению версии безопасности система с высоким уровнем защиты также предоставляет возможности аудита. Это позволит отслеживать запросы на доступность ресурсов (например, «кто читал этот файл?»).

Пользовательский интерфейс

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

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

— Состав ОС

Операционная система (ОС) состоит из ядра и системных программ .

Ядро

Ядро реализует базовую абстракцию от оборудования, чтобы облегчить жизнь программистам для доступа, например, к жесткому диску, твердотельному накопителю, экрану или графическому процессору. Затем эти услуги предоставляются в виде системных вызовов , которые могут быть вызваны процессами для выполнения указанных операций.
С момента появления механизмов защиты ядро ​​работает в более высоком привилегированном режиме, называемом режимом супервизора , чем процессы (a.к.а. пользовательские программы) называется пользовательский режим . В противном случае, как в старые добрые времена DOS, операционная система могла быть легко перезаписана пользовательскими программами, и пользователи могли взять на себя управление системой.

Существуют разные типы ядер:

Монолитное ядро ​​

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

Пример: Linux (инициирован Линусом Торвальдсом) 1

Микроядро

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

Пример: Minix (инициирован Эндрю С. Таненбаумом) 1

Экзоядро

2

Экзоядро — это еще более жесткое микроядро. Он предоставляет только самую простую абстракцию.
Я полагаю, что это ядро ​​ exo , потому что большая часть кода находится вне ( ex — lat. Out ) ядра.

Пример: ExOs (из MIT), Singularity (исследовательский проект Microsoft), безопасность которых в основном обеспечивается методами статического анализа кода

Юникернел

2

Unikernels узкоспециализированы и минималистичны.Они состоят из некоторой библиотечной операционной системы, которая в основном представляет собой библиотеку, работающую непосредственно на оборудовании, и определяемой пользователем части, которая определяет ее фактическую задачу. Пользователь выбирает из множества компонентов библиотеки, что соответствует его / его потребностям, которые в конечном итоге составляют библиотеку времени выполнения, на которой пользователь запускает свое программное обеспечение.
Я предполагаю, что название « uni kernels» происходит от них, обслуживая только одно ( one — lat. Unum ), поэтому они минимальны и специализированы.

Пример (библиотека ОС): MirageOS


Кроме того, существуют гибриды нескольких типов ядер и других типов ядер, которых я не знаю. Но перечисленные выше составляют подавляющее большинство всех ядер.

Системные программы

Теперь мы знаем, что такое ядро. А как же системные программы? Это пользовательские программы, которые предоставляют средства фактического доступа к системе. Примерами являются текстовый редактор, оконный менеджер, оболочка (и Counterstrike ;-)).Само по себе ядро ​​не делает систему пригодной для использования. Он обеспечивает системные вызовы и тому подобное, но без реальных программ, использующих эти системные вызовы, ОС бесполезна.

Ответ на ваш вопрос

Как видите, не все части ОС являются процессами, поэтому не все части «исполняемы как процессы». Ядро не является процессом , потому что оно работает в привилегированном режиме и не работает в контексте другого ядра, которое контролирует его действия.


1 Если вам интересно, вы можете прочитать дискуссию Таненбаума-Торвальдса, в которой указанные создатели Minix и Linux обсуждают преимущества и недостатки монолитных и микроядер.

2 Спасибо @BasileStarynkevitch за ваш вклад в эти темы в этом ответе.

Что такое сетевая операционная система?

К

Сетевая операционная система (NOS) — это компьютерная операционная система (ОС), которая предназначена в первую очередь для поддержки рабочих станций, персональных компьютеров и, в некоторых случаях, старых терминалов, подключенных к локальной сети (LAN). Программное обеспечение, лежащее в основе NOS, позволяет нескольким устройствам в сети обмениваться данными и ресурсами друг с другом.

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

Из-за того, что более ранние версии основных операционных систем не были предназначены для использования в сети, сетевые операционные системы возникли как решение для однопользовательских компьютеров.

Типы сетевых операционных систем

Существует два основных типа сетевых операционных систем: одноранговая NOS и клиент-серверная NOS:

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

Общие черты сетевых операционных систем

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

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

Примеры сетевых операционных систем

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

  • Artisoft’s LANtastic — это простая, удобная для пользователя ОС, которая поддерживает большинство операционных систем ПК.
  • Banyan’s VINES — здесь используется архитектура клиент-сервер для запроса определенных функций и услуг.
  • Novell NetWare — это первая выпущенная сетевая операционная система, разработанная на основе архитектуры протокола XNS.
  • Microsoft LAN Manager — работает как серверное приложение и было разработано для работы под управлением ОС Microsoft.Теперь большая часть функций LAN Manager включена в саму ОС Windows.

Кроме того, некоторые многоцелевые операционные системы, такие как Windows NT и Digital’s OpenVMS, имеют возможности, которые позволяют описывать их как сетевые операционные системы. Кроме того, наиболее популярные операционные системы, такие как Windows, Unix, Linux и Mac, включают встроенные сетевые функции, которые могут не требовать дополнительных сетевых служб.

Последнее обновление: май 2019 г.

Продолжить чтение о сетевой операционной системе (NOS)
Узнайте больше о сетевой инфраструктуре

потоков в операционной системе: определение и примеры — видео и стенограмма урока

Различия

Процессы и потоки работают вместе, но между ними есть много различий.Обычно процессы довольно тяжелые (например, MS Word), а потоки легче (например, вариант сохранения в фоновом режиме). В таблице ниже показаны некоторые различия между ними.

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

Многопоточность

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

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

Несколько потоков в процессе

Многопоточность дает больше преимуществ, чем однопоточность:

  • Многопоточность экономична. Напомним из таблицы выше, переключение потоков происходит быстрее, чем переключение процессов.
  • Если потоки заблокированы, другой поток все еще может запустить и завершить задачу (например, если проверка грамматики застряла, документ все еще может автоматически сохраняться)
  • Потоки используют один и тот же код, данные и файлы.Это позволяет им выполнять сразу несколько задач.
  • Даже если в компьютере 12 процессоров, однопоточный процесс выполняется только на одном процессоре. Благодаря многопоточности работа может быть распределена между несколькими процессорами.

Типы потоков

Как и процессы, существует два типа потоков в зависимости от задачи. Пользовательские потоки — это те потоки, которым не нужен доступ к базовым функциям операционной системы (ОС), и им не нужна защита со стороны ОС. Пользовательские потоки довольно универсальны и не относятся к какой-либо операционной системе, и обычно они очень эффективны и быстры.Например, приложение MS Word в основном состоит из пользовательских потоков.

Потоки ядра — это типы потоков, которые выполняются в ядре ОС и также поддерживают несколько потоков и системные вызовы. Потоки ядра на самом деле зависят от ОС, поэтому вы увидите различные реализации в зависимости от того, является ли ОС Linux, Windows, Solaris и т. Д. Потоки ядра обычно медленнее, чем потоки пользователя. Но потоки ядра также могут быть многопоточными, и их легко перепланировать, если в очереди создаются резервные копии других потоков.

Резюме урока

Давайте на пару минут рассмотрим, что мы узнали о потоках в операционной системе.

Процесс — это задание, которое выполняется внутри компьютера, например процесс для отображения видео. У него есть собственные регистры данных и памяти. Нить — это действие, выполняемое в процессе. Поскольку потоки существуют в процессах, они также называются легковесными процессами . Процесс может выполнять несколько потоков одновременно, и это известно как многопоточность .Благодаря многопоточности вы можете скачивать и смотреть видео одновременно. Потоки, как и процессы, выполняются в операционной системе. Существует два типа потоков: пользовательских потоков (которые выполняются в пользовательских приложениях) и потоков ядра (которые выполняются ОС).

Состав — корень всего зла

Состав — корень всего зла

:: информатика, научные вычисления

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

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

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

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

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

Обработка человеческой и вычислительной информации

Люди обрабатывают информацию в терминах концепций.Все мы накопили огромное количество концептуальных знаний за свою жизнь, начиная с самых основных концепций, которые мы усвоили в младенчестве. Это знание включает в себя определения всех понятий, а также отношения между ними. Наше знание концепций помогает нам «осмыслить» информацию, что включает в себя обнаружение возможных ошибок, а иногда даже их исправление. Люди очень терпимы к ошибкам и вариациям в выражении той или иной информации. Нас не волнует, расположены ли товары в списке покупок, например, вертикально или горизонтально.

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

Компьютеры обрабатывают информацию, применяя точные механические правила. Их не волнуют ни концепции, ни контекст.Если вы попросите компьютер сделать что-нибудь глупое, он с радостью сделает это. Это может выглядеть как критика того, как работают компьютеры, но именно поэтому они так полезны в исследованиях: у них разные сильные и слабые стороны по сравнению с людьми, и поэтому они являются дополнительными «партнерами» в решении проблем.

Формальные языки

На аппаратном уровне цифрового компьютера вычисление — это многоэтапный процесс, который преобразует входную битовую последовательность в выходную битовую последовательность под управлением программы, которая также сохраняется как битовая последовательность.Таким образом, обработка информации компьютерами требует, чтобы все данные были выражены в виде битовых последовательностей. Однако работа с битовыми последовательностями очень неудобна для людей. Поэтому мы используем представления данных, которые больше подходят для человеческого мозга, но все же могут быть точно преобразованы из битовых последовательностей, которые хранятся в памяти компьютера, и в них. Эти представления называются формальными языками . Определение формального языка точно указывает, как некоторая часть информации кодируется как последовательности битов.Многие формальные языки определены в терминах последовательностей текстовых символов вместо последовательностей битов для другого уровня удобства для человека. Поскольку преобразование текстовых символов в биты выполняется просто, на практике это не имеет большого значения. Термин «формальный язык» обычно используется в информатике, но в вычислительной науке мы обычно говорим о «форматах данных», «форматах файлов» и «языках программирования», которые являются специфическими видами формальных языков. Использование формальных языков, а не неформальных языков человеческого общения, является определяющей характеристикой цифровой информации.

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

Сегодня существует огромное количество формальных языков, которые можно организовать в иерархию уровней абстракции, так что языки более высокого уровня включают языки более низких уровней. В качестве простого примера язык программирования, такой как Fortran, включает формальные языки, определяющие отдельные элементы данных — целые числа, числа с плавающей запятой и т. Д. На самом низком уровне этой иерархии, близком к битовому уровню, на котором работает вычислительное оборудование, у нас есть формальные языки, такие как Unicode для текстовых символов или форматы чисел с плавающей запятой стандарта IEEE 754.На один уровень выше мы находим структуру памяти массивов Fortran, структуру текстовых файлов в кодировке UTF – 8 и многие другие основные структуры данных и форматы файлов. Структурированные форматы файлов, такие как XML или HDF5, определены на следующем более высоком уровне, поскольку они включают в себя базовые структуры данных, такие как массивы или текстовые строки. Языки программирования, такие как Python или C, также находятся на этом уровне.

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

Состав цифровой информации

Цифровая информация — это, по определению, информация, выраженная на официальном языке.Композиция цифровой информации создает новый, более сложный элемент цифровой информации, который, конечно, также выражается на формальном языке. А поскольку ингредиенты остаются доступными как части целого, все должно быть выражено на одном и том же формальном языке. И отсюда все наши проблемы.

Если мы начнем с ингредиентов, выраженных на разных языках, у нас есть два основных варианта: перевести все на общий язык или определить новый формальный суперъязык, включающий все языки, используемые для выражения различных ингредиентов.Мы, конечно, можем выбрать смесь этих двух крайних подходов. Но оба они связаны с большими накладными расходами и значительно усложняют составленную сборку. Перевод требует либо утомительного и подверженного ошибкам ручного труда, либо написания программы для выполнения этой работы. Определение суперъязыка требует внедрения программных средств для обработки этого нового суперъязыка.

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

В качестве второго примера рассмотрим написание программы, которая должна вызывать процедуру, написанную на языке A, и другую процедуру, написанную на языке B.Вариант перевода означает написание компилятора из A в B или наоборот. Вариант суперъязыка означает написание интерпретатора или компилятора, который принимает оба языка A и B. Смешанный подход может использовать два компилятора, один для A и один для B, которые имеют общий целевой язык. Последнее решение на первый взгляд кажется простым, потому что компиляторы от A и B до инструкций процессора, вероятно, уже существуют. Однако целевой язык компилятора — это не «набор команд процессора», а «набор команд процессора плюс конкретные представления структур данных и соглашения для управления памятью».Маловероятно, что два несвязанных компилятора для A и B совместимы на этом уровне. Практика показала, что объединение кода, написанного на разных языках программирования, всегда является источником проблем, за исключением случаев, когда используются инструменты, которые были явно разработаны для реализации суперъязыка с самого начала.

В последнем абзаце я принял несколько необычную точку зрения, которую я продолжу использовать в дальнейшем. Обычно мы думаем о языке как о чем-то названном и задокументированном, например, C или Unicode.Точка зрения, которую я принимаю здесь, состоит в том, что язык, на котором выражается часть цифровой информации, состоит из всех правил и ограничений, которые должны быть соблюдены, включая правила и ограничения, обусловленные составом . Чтобы проиллюстрировать разницу, рассмотрим язык Python и язык Python с расширением NumPy. Согласно стандартной точке зрения, Python — это язык, а NumPy — это библиотека, написанная на Python. На мой взгляд, Python + NumPy — это язык , отличный от простого Python.Чтобы увидеть, что библиотеки изменяют свои базовые языки, рассмотрим инструкцию Python import numpy . Он не работает в простом Python, поэтому это недопустимый оператор на языке Python, тогда как он действителен на языке Python + NumPy. Более того, на языке Python + NumPy вам не разрешено писать модуль с именем numpy . Добавление NumPy к простому Python делает некоторые ранее недопустимые программы действительными, и наоборот, что оправдывает разговор о разных, хотя, безусловно, похожих языках.

Много языков, много проблем

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

Форматы данных — самая простая часть. Даже количество «стандартных» форматов огромно, и многие из них не так хорошо стандартизированы, что приводит к разным диалектам. Хуже того, многие научные программы создают собственные специальные форматы данных , которые практически не задокументированы.Вот почему преобразование файлов отнимает у нас так много времени. Более того, у нас обычно есть разные форматы данных на диске и в памяти для одних и тех же данных, поэтому нам нужно писать процедуры ввода-вывода для нашего программного обеспечения.

Но сложность формальных языков, используемых для определения программ, полностью затмевает сложность форматов данных. Начнем с нижнего уровня: набора команд процессора. Если вы пишете операционную систему (ОС), это тот уровень, на котором вы работаете. В противном случае ваша программа представляет собой подключаемый модуль, который должен быть скомпонован с операционной системой, и операционная система определяет формальный язык, на котором вам нужно предоставить свою программу.«Язык ОС» включает набор инструкций процессора, но также добавляет ограничения (использование памяти, возможность перемещения и т. Д.) И доступ к функциям ОС. Язык ОС может быть таким же простым, как формат файла COM из времен CP / M и DOS, но также сложным, как формат ELF в Linux.

Формат ELF представляет следующий уровень композиции: объектные файлы и динамические библиотеки в дополнение к исполняемым файлам. В современной ОС программа состоит из нескольких компонентов непосредственно перед выполнением.Мотивом для введения этой композиции в последнюю минуту была возможность поделиться часто используемыми строительными блоками программы между сотнями процессов, выполняющихся параллельно, тем самым уменьшая их объем памяти. Но это происходит за счет значительной случайной сложности. Язык ОС, на котором должна быть написана ваша программа, теперь включает в себя только набор инструкций процессора и спецификацию формата ELF, а также соглашения о том, где в файловой системе хранятся определенные разделяемые библиотеки.Вот почему больше невозможно подготовить универсальную программу для платформы Linux. В разных дистрибутивах Linux существуют разные соглашения об организации разделяемых библиотек в файловой системе, и, более того, эти соглашения меняются со временем. У них разные языки ОС.

При ближайшем рассмотрении ситуация еще хуже. Язык ОС для данного программного обеспечения включает всех пакетов программного обеспечения, которые были установлены на том же компьютере до .Очевидно, что только один программный пакет может занимать данное имя файла. После того, как вы установили пакет, который использует файл /usr/lib/libm.so , никакой другой пакет не может занимать тот же слот. Это делает невозможным завершение «моей программы и всех необходимых ей файлов» для установки на какой-либо другой компьютер. Если пакет A содержит /usr/lib/libm.so , а пакет B — другой /usr/lib/libm.so , даже если это лишь немного более старая версия одной и той же библиотеки, два пакета не могут сосуществовать.Единственное решение — распространять программы и библиотеки в качестве строительных блоков для добавления в растущую сборку, состав которой, теперь называемый «установкой программного обеспечения», остается на усмотрение системного администратора. Каждый блок поставляется со списком «необходимых зависимостей», наличие которых должен обеспечить системный администратор. Более того, каждый блок занимает определенные слоты, которые должны быть доступны в системе. В терминологии формальных языков каждый новый блок должен соответствовать языку что его автор не может знать заранее и даже не может полностью описать.Я описал этот подверженный ошибкам подход в более раннем сообщении в блоге как модель установки программного обеспечения Tetris из-за его очевидного сходства с хорошо известной видеоигрой. На сегодняшний день это наиболее широко используемая модель в научных вычислениях.

Очевидные проблемы, вызванные этим подходом, побудили к разработке различных инструментов для управления установками программного обеспечения. Некоторые из них относятся к определенной платформе ОС (менеджеры пакетов Debian, RedHat, BSD и т. Д.). Другие относятся к определенному языку программирования, например.грамм. Python распространяет систему и ее производные. Множество менеджеров по установке программного обеспечения создало вторичную проблему компоновки: чтобы установить пакет Python в системе Debian, вы должны согласовать компромисс между взглядами Python и Debian на то, как следует управлять установкой программного обеспечения.

Другой подход — отказаться от совместного использования общих ресурсов и предоставить какой-то способ упаковки программ со всеми необходимыми файлами в единый блок, даже если это приводит к дублированию данных на диске и в памяти.Это идея, лежащая в основе пакетов приложений MacOS X (которые восходят к NextSTEP), а также контейнеров Docker. Такие инструменты, как Python virtualenv , действуют аналогичным образом, изолируя конкретную композицию строительных блоков от других потенциально конфликтующих композиций строительных блоков на том же компьютере.

Гениальная конструкция, сочетающая в себе лучшее из обоих миров, — это подход, использованный менеджером пакетов Nix и его ответвлением, Guix. Вместо того, чтобы ссылаться друг на друга через имена файлов, они используют хэш-код, вычисляемый на основе фактического содержимого файлов.Это позволяет составлять произвольные строительные блоки, включая пары, которые будут требовать одинаковые имена файлов в стандартной системе Linux, но также предотвращает создание нескольких идентичных копий любого строительного блока. Эта идея известна как хранилище с адресацией содержимого, а также используется в популярной системе контроля версий git.

До этого я описал состав конкретных программ с операционной системой. Но программа, подготовленная как плагин к ОС, сама по себе уже является композицией.То, как он состоит и из каких компонентов, зависит от используемых языков программирования и от инструментов, которые их реализуют. В Python, например, программа обычно состоит из пакетов, которые состоят из модулей, состоящих из пар имя-значение. Программа на C состоит из файлов исходного кода и файлов заголовков, каждый из которых содержит определения значений и функций и взаимодействует через определения макросов. Как и в случае с «языком ОС», точный формальный язык, на котором написана каждая часть, — это не просто Python или C.Он также включает ограничения и расширения, исходящие от других строительных блоков — библиотек, на которые ссылается программа, как я проиллюстрировал выше на примере Python плюс NumPy.

Сравнивая эти две ситуации, мы можем определить общего виновника: использование глобального пространства имен для составления строительных блоков. На «языке ОС» типичной системы Linux глобальное пространство имен — это файловая система. В Python это пространство имен модулей верхнего уровня. В C это пространство имен нестатических определений верхнего уровня.Композиция требует, чтобы один строительный блок ссылался на другой строительный блок через имя в этом пространстве имен. А это, в свою очередь, требует, чтобы каждый строительный блок занимал определенное имя в этом пространстве имен, чтобы другие могли ссылаться на него.

Один из способов решить эту проблему — поощрять использование очень конкретных имен. Это подход, используемый Java, чье глобальное пространство имен для пакетов должно содержать «перевернутые доменные имена», такие как org.apache.commons.lang3.math . Хотя такое правило, если соблюдается, действительно снижает риск конфликтов имен между несвязанными пакетами почти до нуля, наиболее частый источник конфликтов имен остается: разные версии пакета имеют одно и то же имя и, следовательно, не могут использоваться вместе в композиции. .Составляя стандартные блоки в программу, можно утверждать, что смешивание разных версий в любом случае — плохая практика. Но в модели тетриса с единой глобальной коллекцией программного обеспечения на компьютер, невозможность иметь несколько версий стандартного блока часто является серьезным ограничением.

Последний вид формального языка, о котором стоит упомянуть в этом контексте, — это языки для определения композиций. В эту категорию входят файлы Makefiles, файлы конфигурации autoconf Dockerfiles и, конечно же, файлы спецификации пакетов различных менеджеров пакетов.Их множество показывает важность проблемы композиции, но также способствует ее решению. Нередко можно увидеть, что файл спецификации для одного диспетчера пакетов ссылается на другой диспетчер пакетов. Преобразование с одного такого языка на другой практически невозможно, потому что точный язык для определения композиции зависит не только от диспетчера пакетов, но и от других существующих пакетов. Точно такая же ситуация, как с «языком ОС» и языками программирования, расширенными библиотеками.

Есть выход?

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

В качестве первого шага я призываю всех отдать предпочтение решениям и обходным путям при возникновении проблем, связанных с композицией.Решения идентифицируют причину и устраняют ее, тогда как обходные пути просто смягчают воздействие проблемы, часто повторно создавая ту же проблему на другом уровне позже. В подходах, которые я обсуждал выше, примером решения является хранилище с адресацией по содержимому, используемое в Nix. Напротив, традиционные менеджеры пакетов Linux — это обходные пути, потому что они воссоздают проблему композиции на уровне пакета. Авторы дистрибутива Linux проделали много тяжелой и полезной работы с этими менеджерами пакетов, и я ни в коем случае не хочу преуменьшать значение.Но плоды этой работы можно перенести на более совершенные основы. На мой взгляд, модель установки программного обеспечения Tetris не является жизнеспособной. Надо двигаться дальше.


«Твитнуть» Пожалуйста, включите JavaScript, чтобы просматривать комментарии от Disqus. Состав службы

в GuixSD — 2015 — Блог — GNU Guix

GuixSD обеспечивает декларативный подход без сохранения состояния к управлению конфигурацией операционной системы. В этом контексте механизм, предлагаемый для выбора и составления системных сервисов, имеет решающее значение.В этом посте представлена ​​новая структура сервисов, представленная в версии 0.9.0 GNU Guix.

Декларативное управление конфигурацией

GuixSD не похож на дистрибутив ваших родителей. Вместо того, чтобы возиться с файлами конфигурации или запускать команды, которые делают это в качестве побочного эффекта, системный администратор объявляет , какой будет система. Это принимает форму объявления операционной системы, в которой указываются все детали: файловые системы, учетные записи пользователей, языковой стандарт, часовой пояс, системные службы и т. Д.

Если вы знакомы с ним, это может напомнить вам о том, что предоставляют инструменты развертывания, такие как Ansible и Puppet. Однако есть важное различие: GuixSD использует «чисто функциональный» подход без сохранения состояния. Это означает, что создание экземпляра системы с помощью guix system всегда дает один и тот же результат без изменения текущего состояния системы. Это то, что позволяет тестировать новые конфигурации системы, выполнять откат к предыдущим и так далее. Команда guix system позволяет создавать экземпляры конфигураций системы на голом железе, на виртуальных машинах или в контейнерах, что упрощает их тестирование.

В GuixSD объявления операционной системы являются первоклассными объектами на основном языке. Их можно проверить на REPL:

 scheme @ (guile-user)>, используйте (gnu)
scheme @ (guile-user)> (определить os (загрузить "os-config.scm"))
схема @ (хитрость-пользователь)> (операционная система-ядро ОС)
$ 1 = # <пакет linux-libre-4.2.6 gnu / packages / linux.scm: 279 2ea90c0>
схема @ (хитрость-пользователь)> (длина (операционная система-пользователь-сервисы os))
2 доллара = 30
scheme @ (guile-user)> (сопоставить имя-учетной-записи пользователя (операционная-система-пользователи ОС))
$ 3 = ("алиса" "никто" "корень")
 

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

Services Beyond Daemons

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

До версии 0.9.0 у GuixSD было узкое определение того, что такое «системная служба». Каждая служба в конфигурации операционной системы должна была соответствовать ровно одной службе dmd — GNU dmd — это система инициализации GuixSD. Это будет хорошо работать во многих случаях: SSH-сервер или демон входа в систему — это действительно служба, о которой должен позаботиться dmd, даже монтирование файловой системы — это операция, которую можно с пользой вставить в график зависимостей службы dmd.

Однако это простое сопоставление не смогло захватить более сложные шаблоны компоновки сервисов.Ярким примером являются «супер-демоны» — демоны, которые могут порождать других демонов, таких как dbus-daemon или inetd. С точки зрения пользователя не имеет значения, запущен ли демон dmd, dbus-daemon или inetd; это должно быть прозрачным. Если это служба D-Bus, то в файле конфигурации dbus-daemon следует указать эту службу; если это служба inetd, то следует соответствующим образом дополнить inetd.conf; если это служба dmd, информация о том, как ее запускать и останавливать, должна находиться в файле конфигурации dmd.К сожалению, сервисы до 0.9.0 не могли выразить такие вещи.

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

Составление системных служб

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

Мы видим, что этот шаблон применяется к службам, которые не являются демонами.PAM — один из таких примеров. Учетные записи — еще один пример: GuixSD предоставляет «службу учетных записей», которая может быть расширена за счет новых учетных записей пользователей или групп; например, демон протокола сетевого времени (NTP) должен работать под непривилегированным пользователем «ntp», поэтому служба NTP расширяет службу учетной записи с помощью учетной записи пользователя «ntp». Точно так же служба «/ etc» может быть расширена за счет добавления новых файлов в / etc; сервис «setuid» может быть расширен новыми программами, которые будут созданы с помощью setuid-root. Дополнительные примеры см. В руководстве.

Приятно то, что состав служб сделан явным : расширения могут происходить только там, где были объявлены явные отношения расширений. Глядя на график расширений, пользователи могут увидеть, как сервисы сочетаются друг с другом. Например, команда guix system extension-graph принимает объявление операционной системы и отображает граф расширения в формате Graphviz, что упрощает проверку структуры конфигурации ОС.

API позволяет легко увидеть, как сервисы повлияли на конфигурацию конкретного сервиса.Например, следующее выражение показывает, что служба PAM расширена другими заявленными службами:

  (fold-services (операционная система-службы os)
               #: целевой-тип pam-root-service-type)
  

Результатом является объект службы, значение которого представляет собой список объектов службы pam. Аналогичным образом, следующее выражение возвращает службу / etc, значение которой представляет собой список записей, которые нужно добавить в / etc:

  (fold-services (операционная система-службы os)
               #: целевой-тип и т. д.-тип-службы)
  

Это контрастирует с подходом, принятым NixOS, двоюродным братом GuixSD, и описанным в этой статье 2010 года.В NixOS вся конфигурация системы описывается в «наборе атрибутов» — списке ассоциаций ключ / значение, подобных объектам JavaScript или словарям Python. Каждой службе NixOS передается вся конфигурация системы, что позволяет ей проверять и изменять любую ее часть.

Эта форма внешних полномочий дает большую гибкость, но усложняет рассуждение о составе службы — все, что делает реализация службы, это проверяет, добавляет или изменяет атрибуты глобальной конфигурации, которые могут или не могут повлиять на другие Сервисы.Использование ненадежного словаря «ключ-значение» также препятствует хорошему сообщению об ошибках; например, опечатка в названии службы может остаться незамеченной. Наконец, службы NixOS включаются путем записи строф service.enable = true, что приводит к осложнениям для служб, которые могут иметь несколько экземпляров, каждый со своей собственной конфигурацией.

Заключение

Новая структура композиции сервисов в GuixSD 0.9.0 устраняет недостатки, обнаруженные в предыдущих версиях GuixSD. Он упрощает объявления операционных систем для пользователей и предоставляет высоко расширяемую структуру, которая четко раскрывает способ составления сервисов.

Этот новый фреймворк уже позволил нам удобно интегрировать сервисы Freedesktop и GNOME. Мы надеемся, что он окажется плодотворным, поскольку мы обращаемся к другим типам услуг, таким как веб-сервисы.

О GNU Guix

GNU Guix — это функциональный менеджер пакетов для системы GNU. Guix System Distribution или GuixSD — это расширенный дистрибутив системы GNU, который полагается на GNU Guix и уважает свободу пользователя.

В дополнение к стандартным функциям управления пакетами Guix поддерживает транзакционные обновления и откаты, непривилегированное управление пакетами, профили для каждого пользователя и сборку мусора.Guix использует низкоуровневые механизмы из диспетчера пакетов Nix, за исключением того, что пакеты определены как собственные модули Guile, использующие расширения языка Scheme.

Добавить комментарий

Ваш адрес email не будет опубликован.