Создание ядра Linux¶
Ядро Linux — монолитное ядро операционной системы, созданное финским программистом Линусом Торвальдсом и ставшее основой экосистемы свободного программного обеспечения. Первый публичный выпуск состоялся 25 августа 1991 года, а к 2024 году ядро используется в подавляющем большинстве серверов, суперкомпьютеров, смартфонов (через Android) и встраиваемых устройств в мире.
¶История создания
¶Предпосылки
Линус Бенедикт Торвальдс родился 28 декабря 1969 года в Хельсинки. Его интерес к программированию начался в 1990 году, когда он, будучи студентом Хельсинкского университета, приобрёл персональный компьютер Sinclair QL. На этом устройстве Торвальдс изучал архитектуру процессоров и написал ряд утилит, включая программу загрузки дисков и компилятор.
В 1991 году Торвальдс заинтересовался операционной системой Minix — учебной UNIX-подобной ОС, разработанной Эндрю Таненбаумом. Minix распространялся вместе с одноимённой книгой и использовался для обучения принципам работы операционных систем. Торвальдс установил Minix на свой новый компьютер с процессором Intel 80386 и начал исследовать возможности системы.
¶Разработка
По собственному признанию Торвальдса, изначально он не планировал создавать полноценное ядро. Его первой целью было изучение особенностей работы процессора Intel 80386 и освоение функций переключения задач. Для этого он написал небольшую программу, имитирующую загрузку UNIX-системы, и постепенно расширял её функциональность.
Ключевые этапы разработки:
- Апрель–июль 1991 года — Торвальдс пишет первые версии ядра, реализующие базовые функции управления процессами и файловой системой.
- 25 августа 1991 года — Торвальдс отправляет письмо в группу новостей comp.os.minix, сообщая о создании бесплатной операционной системы (не совсем бесплатной, по его словам, «hobby»), которая будет работать под управлением 386-процессора.
- 17 сентября 1991 года — публикуется версия ядра 0.01, которая поддерживала только файловую систему Minix и не была полностью рабочей.
- 5 октября 1991 года — выходит версия 0.02, первая, способная запускать программу Bash.
- 1992 год — публикуется версия 0.96, которая уже поддерживала X Window System и стала основой для первых дистрибутивов Linux.
¶Лицензирование
Изначально Торвальдс распространял ядро под собственной лицензией, запрещавшей коммерческое использование. Однако в 1992 году, по совету Ричарда Столлмана и Эндрю Таненбаума, он перешёл на лицензию GNU GPL (версия 2), что позволило свободно распространять, модифицировать и использовать исходный код. Этот шаг оказался определяющим для будущего успеха проекта.
¶Роль Ричарда Столлмана и проекта GNU
Хотя ядро Linux было написано Торвальдсом, само название «GNU/Linux» отражает вклад проекта GNU, созданного Ричардом Столлманом в 1983 году. Проект GNU разработал множество компонентов, необходимых для полноценной операционной системы: компилятор GCC, текстовый редактор Emacs, библиотеку C и множество утилит командной строки. Однако ядро GNU (Hurd) так и не было завершено в разумные сроки. Когда Торвальдс создал ядро Linux, оно заполнило недостающий компонент, и система GNU/Linux стала полноценной операционной системой на основе свободного программного обеспечения.
¶Масштабирование проекта
¶Сообщество разработчиков
С самого начала разработка ядра велась открыто. Торвальдс выступал в роли «диктатора-пожизненного» (benevolent dictator for life), принимая финальные решения о включении изменений в основную ветку. К 2024 году в разработке ядра участвуют тысячи программистов из сотен компаний, включая Intel, Google, Red Hat, Samsung и Huawei.
¶Вклад других разработчиков
Несмотря на то что Торвальдс считается создателем ядра, значительный вклад в его развитие внесли другие программисты. Среди наиболее известных:
- Алан Кокс — один из первых и наиболее активных разработчиков, координировавший ветки 2.0, 2.2 и 2.4.
- Грег Кроа-Хартман — координатор стабильных веток ядра, ответственный за выпуск обновлений.
- Тед Цзо — автор системы управления питанием.
- Марсельо Тосатти — разработчик, специализирующийся на поддержке аппаратного обеспечения.
¶Технические особенности
Ядро Linux написано на языке программирования C и ассемблере. Оно реализует монолитную архитектуру с модульной поддержкой, что позволяет загружать и выгружать компоненты (модули) во время работы системы. Основные подсистемы включают управление процессами, памятью, файловыми системами, сетевыми протоколами и устройствами ввода-вывода.
¶Значение
Ядро Linux стало основой для широкого спектра систем: от встраиваемых устройств и смартфонов (Android) до суперкомпьютеров и облачных платформ. По состоянию на 2024 год все 500 крупнейших суперкомпьютеров мира работают под управлением Linux.
¶Источники
- Torvalds, L. Just for Fun: The Story of an Accidental Revolutionary, 2001.
- Diamond, D. The Complete Linux Administrator, 2016.
- Moody, G. Rebel Code: Linux and the Open Source Revolution, 2001.
- Материалы официального сайта ядра Linux (kernel.org).
- Статьи и интервью Линуса Торвальдса, 1991–2024.
