- •Fedora Core 5 (Bordeaux)
- •2007 Оглавление
- •Многообразие ядер Linux
- •Чуть ближе к истории
- •Хронология
- •Нумерация версий
- •Поддержка
- •Стабильные версии
- •Загрузочные параметры ядра
- •Параметры корневой файловой системы
- •Параметры загрузки управления памяти
- •Параметры управления ram-диском
- •Другие параметры ядра
- •Процессы Немного об архитектуре процессов
- •Общие сведения о процессах
- •Системные вызовы fork() и ехес()
- •Нити Что такое нить?
- •Создание нити и идеология posix api
- •Завершение нити, особенности главной нити
- •Жизненный цикл нити
- •Синхронизация с использованиеmutex Что такое mutex?
- •Использование mutex
- •Проблема тупиков
- •Решение проблемы тупиков
- •Общая схема управления процессами
- •Команды управления процессами Команда ps
- •Команда top
- •Изменение приоритета процесса - команда nice
- •Взаимодействие процессов(ipc)
- •Семафоры
- •Файловая система Видимая сторона файловой системы
- •Имена файлов и каталогов
- •Каталоги
- •Стандартные каталоги
- •Типы файлов
- •Файлы физических устройств
- •Наиболее часто используемые стандартные имена устройств
- •Жесткие и символические ссылки
- •Именованные каналы
- •Права доступа к файлам и каталогам
- •Команды работы с файлами и каталогами
- •Команды chown и chgrp
- •Команда cat
- •Команда cp
- •Команда mv
- •Команды rm и rmdir
- •Команды more и less
- •Команда find и символы шаблонов для имен файлов
- •Команда split — разбиваем файл на несколько частей
- •Сравнение файлов и команда patch
- •Изнанка файловой системы
- •Типы файловых систем, поддерживаемых в Linux
- •Файловая система ext2fs – предшественница ext3fs
- •ReiserFs
- •Файловая система ext3 Введение в файловую систему ext3.
- •Журналируемая файловая система
- •Файловая система ext3
- •Различные журналируемые режимы в файловой системе ext3
- •Управление памятью
- •Аппаратно-независимый уровень управления памятью
- •Страничное замещение основной памяти и swapping
- •Свопинг
- •Управление пространством на устройстве выгрузки
- •Выгрузка процессов
- •Выгрузка при выполнении системной функции fork
- •Выгрузка с расширением
- •Загрузка (подкачка) процессов
- •Подкачка по запросу
- •Структуры данных, используемые подсистемой замещения страниц
- •Функция fork в системе с замещением страниц
- •Сборщик" страниц
- •Управление вводом/выводом
- •Взаимодействие драйверов с программной и аппаратной средой
- •Конфигурация системы
- •Программы обработки прерываний
- •Дисковые драйверы
- •Список используемой литературы
- •Приложение Низкоуровневый ввод/вывод Обзор механизмов ввода/вывод вLinux
- •Файловые дескрипторы
- •Открытие файла: системный вызовopen()
- •Закрытие файла: системный вызов close()
- •Чтение файла: системный вызов read()
- •Запись в файл: системный вызов write()
- •Произвольный доступ: системный вызов lseek()
Чуть ближе к истории
Начало проекту было положено в 1991 году с публикации сообщения в новостной группе Usenet comp.os.minix следующего содержания:
«Привет всем, кто использует миникс — Я делаю (бесплатную) операционную систему (всего лишь хобби, не будет большой и профессиональной как gnu) для клонов 386 (486) AT…»
К тому времени проект GNU уже создал множество составляющих для свободной операционной системы, но их ядро GNU Hurd ещё не было готово. BSD-системы в то время не могли быть использованы по юридическим причинам, связанным с использовавшимися лицензиями. Поэтому пустующее место ядра для свободной ОС занял Linux и, несмотря на ограниченную функциональность ранних версий, привлёк к себе множество разработчиков и пользователей.
Linux — это название только ядра, а не операционной системы. Часто системы, основанные на ядре Linux, называют просто Linux, но большинство из них на самом деле называются GNU/Linux, так как состоят из ядра Linux и множества системных библиотек и программ, написанных в рамках проекта GNU.
Хронология
Апрель 1991 — 21-летний Линус Торвальдс начал работу над некоторыми механизмами операционной системы. Он начал с эмулятора терминала и планировщика задач.
25 августа 1991 — Линус поместил следующее сообщение (русский перевод оригинального сообщения на английском):
From: torvalds@klaava.Helsinki.Fi (Линус Бенедикт Торвальдс)
Newsgroups: comp.os.minix
Subject: Маленький опрос о моей новой операционной системе
Message-ID:<1991Aug25.205708.9541@klaava.Helsinki.Fi>
Date: 25 Aug 91 20:57:08 GMT
Organization: Хельсинский Университет
Привет всем, кто использует миникс - Я делаю (бесплатную) операционную систему (всего лишь хобби, не будет большой и профессиональной как gnu) для клонов 386 (486) AT. Она ваялась с апреля, и скоро будет готова. Я хочу отзывов о том, что людям нравится/не нравится в миниксе, ибо моя система на неё похожа(такое же устройство файловой системы(по практическим соображениям) среди всего прочего).
Я уже включил bash (1.08) и gcc (1.40), и похоже всё работает. Это значит, что что-то полезное появится через несколько месяцев, и я хотел бы узнать, чего люди хотят. Любые советы принимаются, но я не обещаю, что всё исполню :-)
Линус (torvalds@kruuna.helsinki.fi)
PS. Да, у неё никакого миниксового кода, и многозадачная фс. Она НЕ переносима (применяет переключение задач 386-го, итп.), и скорее всего будет поддерживать только AT-винчестеры, так как это всё, что у меня есть :-(
17 сентября 1991 — Linux версии 0.01. (10 239 строк кода)
5 октября 1991 — Linux версии 0.02 [1](англ.)
Декабрь 1991 — Linux версии 0.11. Это была первая версия Linux, на которой можно было собрать Linux из исходных кодов.
19 января 1992 — Первое сообщение в группе новостей alt.os.linux(англ.)
31 марта 1992 — Создана группа новостей comp.os.linux(англ.)
Апрель 1992 — Linux версии 0.96, на котором стало возможно запустить графический сервер X Window System.
Весь 1993 и начало 1994 — 15 тестовых релизов версии 0.99.* (в июле 1993 введено понятие BogoMips).
14 марта 1994 — Linux версии 1.0.0 (176 250 строк кода).
Март 1995 — Linux версии 1.2.0 (310 950 строк кода).
9 мая 1996 — Выбран символ Linux — пингвин Tux.
9 июня 1996 — Linux версии 2.0.0 (777 956 строк кода).
25 января 1999 — Linux версии 2.2.0, изначально довольно недоработанный (1 800 847 строк кода).
4 января 2001 — Linux версии 2.4.0 (3 377 902 строк кода).
18 декабря 2003 — Linux версии 2.6.0 (5 929 913 строк кода).
Версии
Торвальдс продолжает выпускать новые версии ядра, объединяя изменения, вносимые другими программистами, и внося свои. Оно обычно называется «ванильным» (vanilla), то есть официальное ядро без каких-либо сторонних изменений. В дополнение к официальным версиям ядра существуют альтернативные ветки, которые могут быть взяты из различных источников. Как правило, разработчики дистрибутивов GNU/Linux поддерживают свои собственные версии ядра Linux, например, включая в них драйвера устройств, которые ещё не включены в официальную версию.