Вы находитесь на странице: 1из 36

Занятие 12

Linux
2

 Linux - современная,
бесплатная
операционная система,
основанная на
стандартах UNIX.
 Впервые была
разработана в 1991
Линусом Торвальдсом,
как небольшое, но
самостоятельное ядро, с
главной целью —
совместимость с UNIX.
3

 Благодаря, почти исключительно, Интернету,


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

 Версия 0.01 (Май 1991) не


имела поддержки сети,
выполнялась только на
80386-совместимых
процессорах Интел и на
аппаратных средствах
IBM PC, имела большие
ограничения в поддержке
устройств, и
поддерживала только
файловую систему Minix .
5

GNU/Linux является UNIX-совместимой, однако


основывается на собственном исходном коде
6

 Linux 1.0 (март 1994) включал новые возможности:


 Поддержка UNIX стандарта протоколов организации сети
TCP/IP;
 Поддержка драйверов устройств для запуска IP по Ethernet;
 BSD-совместимый интерфейс сокетов для сетевых программ;
 Расширенная файловая система;
 Поддержка множества SCSI устройств для
высокоэффективного доступа к дискам;
 Поддержка дополнительных устройств;

 Версия 1.2 (март 1995) была последним Linux ядром


только для PC.
7
8

 Выпущенный в июне 1996, Linux 2.0 добавлял две


главных новых возможности:
 Поддержка множества архитектур, включая полную
поддержку 64-битных процессоров Альфа.
 Поддержка мультипроцессорной архитектуры.
9
10

 Улучшенный код управления памятью;


 Улучшенная производительность TCP/IP;
 Поддержка внутренними нитями ядра обслуживания
зависимостей между загружаемыми модулями, и
автоматической загрузки модулей по требованию;
 Стандартизирован интерфейс конфигурации;
 Становится доступна для процессоров Motorola
серии 68000, систем Sun Sparc, PC и PowerMac
систем.
11

 Linux использует множество инструментов,


разработанных как часть операционной системы
Berkeley’s BSD, X Window System университета
MIT, и Проекта Свободного Программного
Обеспечения (Free Software Foundation's GNU
project).
 Системные библиотеки min были начаты в
проекте GNU, и усовершенствовались Linux
сообществом.
12

 Инструменты сетевой администрации Linux были


получены из кода BSD 4.3; последние
производные BSD, такие, как FreeBSD, наоборот,
заимствовали код от Linux.
 Система Linux поддерживается сетью свободных
разработчиков, сотрудничающих через
Интернет, с небольшим количеством публичных
ftp сайтов, действующих фактически, как
хранилища стандартов.
13
14

 Ядро Linux распространяется, согласно GNU General


Public License (GPL) (Стандартная Общественная
Лицензия GNU —
http://www.tmeworkgroup.narod.ru/docs/gpl/gpl_rus.html),
условия которого изложены Фондом свободного ПО
(Free Software Foundation) (http://motivation.ru/fsf.html).
 Любой, кто использует Linux, или создает свою
собственную производную Linux, не может сделать
полученное изделие составляющим его собственность;
 Программное обеспечение, выпущенное под GPL, не
может распространяться в виде двоичного кода.
15

 Стандартно, базовая система Linux включает


предкомпилированные наборы (дистрибутивы),
утилиты инсталляции и обслуживания системы и
готовые к установке пакеты обычных инструментов
UNIX.
 Первые дистрибутивы управляли этими пакетами,
просто обеспечивая средства распаковки всех
файлов в соответствующие места;
 Современные дистрибутивы включают более
продвинутое управление.
16

 Ранними дистрибутивами являлись SLS и


Slackware. Red Hat и Debian - популярные
дистрибутивы из коммерческих и,
соответственно, некоммерческих источников.
 Формат файла RPM обеспечивает совместимость
среди различных дистрибутивов Linux.
 RPM можно разделить на два класса: пакеты с
программами в двоичном коде, и пакеты с
исходным кодом
17
18
19
20
21

 Linux — многопользовательская, многозадачная система


с полным набором совместимых с UNIX
инструментальных средств.
 Его файловая система придерживается традиционной
семантики UNIX и полностью реализует стандартную
модель работы UNIX с сетями.
 Основные цели дизайна - скорость, эффективность, и
стандартизация.
 Linux разработан в соответствии со стандартами POSIX;
некоторые дистрибутивы Linux имеют официальный
сертификат POSIX.
22
23

 Подобно большинству реализаций UNIX, Linux


состоит из трех основных частей кода; самое
важное отличие — это отличие ядра от всех
остальных компонентов.
1. Ядро отвечает за обслуживание наиболее
важных абстракций операционной системы.
 Код ядра выполняется в привилегированном режиме с
полным доступом ко всем физическим ресурсам
компьютера.
 Весь код ядра и структуры данных сохраняются в
одном и том же адресном пространстве.
24

2. Системные библиотеки определяют


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

 Разделы кода ядра, которые могут быть


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

 Модули ядра позволяют системе Linux быть


установленной со стандартным, минимальным
ядром, без любых дополнительных встроенных
драйверов устройств.
27

 Управление процессами в UNIX разделяет


создание процессов и выполнение новой
программы на две разных операции.
1. Системный вызов fork создает новый процесс.
2. Новая программа выполняется после вызова exec.

 В UNIX процесс охватывает всю информацию,


которую операционная система должна
обслужить.
28

 В Linux, свойства процесса относятся к трем


группам:
1. Идентификация процесса,

2. Окружающая среда,

3. Содержание.
29

 Process ID (PID). Уникальный идентификатор для процесса;


используется, чтобы обозначить процессы в операционной системе
 Credentials (Доверительные грамоты). Каждый процесс должен
иметь связанный с ним один или более идентификаторов группы,
которые определяют права процесса обращаться к системным
ресурсам и файлам.
 Personality (Индивидуальность). Не существующий традиционно на
системах UNIX, в Linux каждый процесс имеет связанный
идентификатор индивидуальности, который может немного
изменить семантику некоторых системных вызовов.
 Personality используются библиотеками эмуляции, чтобы запросы,
вызываемые системой, были совместимы с некоторыми
разновидностями UNIX.
30

 Linux использует одинаковое внутреннее


представление для процессов и нитей;
 Нить - просто новый процесс, который совместно
использует то же адресное пространство что и его
родитель.
 Различие возможно только если новая нить создана
системным вызовом clone.
 fork создает новый процесс с его собственным полностью
новым контекстом процесса
 clone создает новый процесс с его собственным
идентификацией, но с возможностью совместно
31

 В то время как о планировании обычно думают


как выполнении и прерывании процессов, в
Linux, планирование также включает
выполнение различных задач ядра.
 Выполнение задач ядра охватывает как задачи,
которые запрашиваются выполняющимся
процессом, так и задачи, которые выполняются
внутренне, от имени драйвера устройства.
32

 Каждый уровень может быть прерван кодом,


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

 Linux использует два планирующих процесс


алгоритма:
1. Алгоритм с разделением времени для справедливого
приоритетного планирования между
множественными процессами;
2. Алгоритм реального времени для задач, где
абсолютные приоритеты более важны чем
справедливость;
 Какой алгоритм применить, определяет класс
планирования процесса.
34

 Linux 2.0 был первым ядром Linux, которое


поддерживало SMP оборудование;
 Отдельные процессы или нити могут выполняться
параллельно на отдельных процессорах.
 Чтобы соблюдать требование невыгружаемости
ядра, SMP налагает ограничение, - только один
процессор одновременно может выполнить код в
привилегированном режиме.
35

 Пользователю, файловая система Linux


представляется как иерархическое дерево
каталогов, использующее семантику UNIX.
 Внутренне, ядро скрывает детали выполнения и
управляет множеством различных файловых
систем через уровень абстракции, или
виртуальную файловую систему (VFS).
36

 Ext2fs использует механизм, подобный Файловой


системе BSD Fast File System (ffs) для определения
местонахождения блоков данных, принадлежащих
определенному файлу.
 Основные различия между ext2fs и ffs касаются их
политики распределения диска.
 В ffs, диск предоставлен файлам блоками по 8 КБ,
подразделяемыми на фрагменты по 1 КБ, для сохранения
маленьких файлов или частичного заполнения блоков в конце
файла.
 Ext2fs не использует фрагменты; она исполняет распределение
меньшими модулями. Заданный по умолчанию размер блока на
ext2fs - 1 КБ, хотя 2 КБ и 4 КБ блоки также поддерживаются.

Вам также может понравиться