Струкура ОС (+повторение)
(повторение) Свободное лицензирование
- Право использования
 - Право изучения и изменения
 - Право распространения
 - Право распространения изменённых версий
 
Так выглядит «разрешительная» лицензия.
Для защиты от злоупотреблений (превращения свободного кода в несвободный) ∃ дополнительный пункт
- (Копилефт) При распространении производная лицензия должна включать все 5 пунктов
 
Например, GNU Public License.
Дополнение 1: лицензирование библиотек для того, чтобы с ними можно было собирать несвободные программы.
Строго говоря, GPL не подходит, хотя изменения в исходный текст библиотек не вносятся. Дело в h-файлах (для Си, например): формально исходный текст библиотеки использовался для сборки (в случае C++ даже код какой-то сгенерировался)
- Лицензия LGPL разрешает такое использование 
- Результат: проприетарные программы не на ЧЗЧ, а на Qt
 
 
Дополнение 2: лицензирование исходного кода веб-сервисов и вообще всего, что не распространяется
Строго говоря, GPL не предписывает распространять модифицированные программы и их код, разрешая модифицировать и запускать. Поэтому исходный код всяких одноразовых веб-сервисов, от Google до мелких стартапов, недоступен
- Лицензия AGPL предписывает раскрывать исходный код общедоступных сервисов 
- Это полезно также для аудита кода
 
 
Дополнение 3: составной продукт (например, дистрибутив), образованный как сборник без модификации компонентов, не обязан иметь свободную лицензию, если все его компоненты всё-таки распространяются по свободной лицензии
(повторение) Свободное сообщество
- Ядро (костяк) — ответстенность
 - Разработчики (актив) *10 — грамотность
 - Пользователи (аура) *100+ — активность
 
Основания:
- Информационная связность 
- в т. ч. использование технических средств
 
 - Произвольность мотивации 
- в т. ч. свобода входа-выхода
 
 - Динамическая иерархия
 - Предоставление технологических преимуществ членам сообщества
 
«Сетевая мораль» свободного сообщества:
- Никто никому ничего не должен 
- ⇒ Каждый сам принимает на себя посильную личную ответственность
 - Свобода входа-выхода
 
 - Общее дело
 - Цель дела — каждый из сообщества, т. е. «все люди», начиная с тебя самого 
- Т. е. примерно так: «надо, чтобы было хорошо сообществу, а это значит, что как минимум в тех областях, в которых я ответственен, хорошо мне»;
 - (Например, сопровождающий пакет сам этим пакетом пользуется)
 
 
Обратная сторона: мы не судим человека на основании того, что он делает вне сообщества
Ср. Иммануил Кант и его категорический императив (т. е. «безусловный моральный закон», хорошая статья, кстати). Этот закон имеет две формулировки
- Предписывающая («Основы метафизики нравственности», 1785): 
- Поступай только согласно такой максиме, руководствуясь которой ты в то же время можешь пожелать, чтобы она стала всеобщим законом
 
 - Фильтрующая («Критика практического разума», 1788): 
- Поступай так, чтобы ты всегда относился к человечеству и в своем лице, и в лице всякого другого также как к цели и никогда не относился бы к нему только как к средству
 
 
Заметим, как эти непохожие формулировки сходятся в сетевой морали.
Архитектура ОС
Дистрибутив: комплект ПО для развёртывания и сопровождения программного продукта, решающего определённый широкий класс задач
Дистрибутив ОС?
ОС: программный комплекс для
- Унификации
 - Разделения
 - Учёта
 
ресурсов ЭВМ
Ресурсы:
- Машинное время
 - Оперативная память
 - Внешние устройства
 
Архитектура UNIX-подобной системы: (легенда)
«
 → » — предоставляет программный интерфейс «
 → » — предоставляет текстовый командный интерфейс «
 → » — предоставляет какой-то межпроцессный интерфейс (сеть, POSIX-сообщения, сокеты и т. п.) « →
 » — пользуется программным интерфейсом « →
 » — пользуется командным интерфейсом « →
 » — пользуется межпроцессным интерфейсом «
 → » — предоставляет какой-то прикладной интерфейс (удобный для решения прикладных задач) 
По сравнению с программным интерфейсом (!), любой другой межпроцессный интерфейс — очень медленный, поэтому его можно применять только
- При общении с пользователем (его интерфейс — самый медленный)
 При передаче редких команд и небольших данных (как от того же пользователя)
- Supervisor mode 
 → Ядро: базовые функции, предоставляет системные вызовы  - Модули (загружаемые компоненты ядра)
 
 User mode (знаком «
 → » отмечен командный интерфейс) 
 → Системные утилиты как командные обёртки системных вызовов → 
 
 → Библиотеки (в т. ч. высокоуровневые программные обёртки над системными вызовами) → 
 
 → Пользовательские утилиты как командные обёртки над всяческими библиотеками 
→
 Демоны → 
 
 → Ещё библиотеки → 
 (+ 
 ) 
 → Ещё утилиты → 
 (+ 
 ) 
 → Командная оболочка (shell) → 
 (+ 
 ) - ЯПВУ
 - ИКС
 - Оболочка
 
 → Приложения → 
 
 → прикладные библиотеки, реализующие разнообразные прикладные абстракции → 
 
TODO: здесь должна быть картинка
Именно наличие оболочки делает систему универсальным конструктором для задач обработки структурированно-текстовой информации
- просто структурирванно-текстовой (с чего начинали ещё Денис и Кен)
 сводящейся к обработке текстов
в т. ч. автоматизация любой задачи, решаемой вручную
