
- •Часть первая. Введение в операционную систему Linux
- •Глава 1. Обзор возможностей операционной системы Linux 1
- •Глава 2. Стандартизация unix-подобных операционных систем 23
- •Глава 1. Обзор возможностей операционной системы Linux
- •1.1. Введение
- •1.2. Краткая история Linux
- •1.3. Архитектура unix-подобных операционных систем
- •1.4. Введение в архитектуру ядра unix-подобных операционных систем
- •1.5. Справочная подсистема (man)
- •1.6. Файлы и каталоги
- •1.7. Ввод и вывод
- •1.8. Программы и процессы
- •1.9. Обработка ошибок
- •1.10. Вход в систему и идентификация пользователя
- •1.11. Сигналы
- •1.12. Интерпретатор shell
- •1.12.1. Сокращенное имя файла
- •1.12.2. Переключение ввода-вывода
- •1.12.3. Программные каналы
- •1.12.4. Создание среды
- •1.13. Системные вызовы и библиотечные функции
- •1.14. Выводы по главе 1
- •1.15. Упражнения по главе 1
- •Глава 2. Стандартизация unix-подобных операционных систем
- •2.1. Введение
- •2.2. Стандарты unix
- •2.2.1. Iso c
- •2.2.2. Ieee Posix
- •2.2.3. Single unix Specification
- •2.3. Пределы
- •2.4. Функции sysconf, pathconf и fpathconf
- •2.5. Элементарные системные типы данных
- •2.6. Выводы по главе 2
- •2.7. Упражнения по главе 2
Часть первая. Введение в операционную систему Linux
Глава 1. Обзор возможностей операционной системы Linux 1
1.1. Введение 1
1.2. Краткая история Linux 2
1.3. Архитектура UNIX-подобных операционных систем 2
1.4. Введение в архитектуру ядра UNIX-подобных операционных систем 3
1.5. Справочная подсистема (man) 6
1.6. Файлы и каталоги 6
1.7. Ввод и вывод 8
1.8. Программы и процессы 10
1.9. Обработка ошибок 12
1.10. Вход в систему и идентификация пользователя 14
1.11. Сигналы 15
1.12. Интерпретатор shell 17
1.12.1. Сокращенное имя файла 17
1.12.2. Переключение ввода-вывода 18
1.12.3. Программные каналы 19
1.12.4. Создание среды 20
1.13. Системные вызовы и библиотечные функции 21
1.14. Выводы по главе 1 22
1.15. Упражнения по главе 1 22
Глава 2. Стандартизация unix-подобных операционных систем 23
2.1. Введение 23
2.2. Стандарты UNIX 23
2.2.1. ISO C 23
2.2.2. IEEE Posix 23
2.2.3. Single UNIX Specification 24
2.3. Пределы 25
2.4. Функции sysconf, pathconf и fpathconf 25
2.5. Элементарные системные типы данных 26
2.6. Выводы по главе 2 27
2.7. Упражнения по главе 2 27
Глава 1. Обзор возможностей операционной системы Linux
1.1. Введение
Любая операционная система обслуживает работающие в ней программы. Обычно это обслуживание включает в себя запуск новых программ, открытие файлов, чтение из файлов, выделение областей памяти, получение текущего времени и многое другое. В этой книге рассказывается о сервисах, предоставляемых операционной системой Linux.
Строго линейное описание системы Linux без опережающего использования терминов, которые фактически еще не были описаны, практически невозможно. Эта глава является обзорной экскурсией по системе Linux. Мы дадим краткие описания и примеры некоторых терминов и понятий, которые будут встречаться на протяжении всей книги. В последующих главах мы рассмотрим их более подробно. Эта глава также содержит обзор услуг, предоставляемых системой Linux, для тех программистов, кто мало знаком с ней.
1.2. Краткая история Linux
Linux – это операционная система, которая хотя формально и не сертифицирована как UNIX-система, вместе с тем предоставляет все богатства программного окружения UNIX и распространяется свободно в соответствии с Общественной Лицензией GNU (GNU Public License). Популярность Linux – это нечто феноменальное в компьютерной индустрии. Linux часто отличается тем, что первой из операционных систем начинает поддерживать новейшие аппаратные средства.
ОС Linux была создана Линусом Торвальдсом (Linus Torvalds) в 1991 году в качестве замены ОС Minix. С самых ранних этапов существования Linux в развитие системы вносили свой вклад очень многие добровольные помощники, которые посвящали свое время, умения и усилия развитию и совершенствованию Linux. В 1994 году была выпущена версия Linux 1.0. Система уже не была просто игрушкой для программистов. Дополненная массой программ, разработанных в рамках проекта GNU, Linux был уже пригоден для практического использования. А то, что ядро системы распространялось под лицензией GPL, гарантировало, что исходные коды системы были и останутся свободными. И это привлекало в ряды пользователей и сторонников Linux все новых последователей, в первую очередь из числа студентов и программистов.
Сегодня Linux - это полноценная многозадачная многопользовательская операционная система семейства UNIX. Большинство свободно распространяемых по сети Интернет программ для UNIX может быть откомпилировано для Linux практически без изменений. Кроме того, все исходные тексты для Linux, включая ядро, драйверы устройств, библиотеки, пользовательские программы и инструментальные средства распространяются свободно.
Дистрибутив Linux – это набор пакетов программного обеспечения, включающий базовые компоненты операционной системы (в том числе, ядро Linux), некоторую совокупность программных приложений и программу инсталляции, которая позволяет установить на компьютер пользователя операционную систему GNU/Linux и набор прикладных программ, необходимых для конкретного применения системы.
Все примеры программ протестированы на дистрибутиве ASPLinux 10. В этом дистрибутиве используется ядро Linux версии 2.6.9.