CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
29.11.2021

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Desktop
Internet
Internet-серверы
Безопасность
Бизнес/Офис
Игры
Мультимедиа
Наука
Операционные системы
Программирование
СУБД
Создание веб-сайтов
Утилиты

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Движение Open Source :: История

Свободная система для свободных людей

Страницы: предыдущая :: 1 :: ... :: 11 :: 12 :: 13 :: 14 :: 15 :: ... :: 39 :: следующая

Дальнейшее развитие ядра

Рис. 10. Образование 2-х веток ядра
[Bentson]

После выхода версии 1.0 дальнейшее развитие ядра Linux стало осуществляться в виде двух веток – стабильной (версии, рекомендуемые к широкому использованию) и экспериментальной (версии ядра, включающие новые, еще не проверенные или недостаточно оттестированные части кода). Номерами с четной второй цифрой (1.0.0, 1.0.1, 1.0.2, 1.2.x, ...) стали обозначать стабильные версии, а экспериментальные версии обозначали номерами с нечетной второй цифрой (1.1.x, 1.3.x, ...). Экспериментальные версии предназначались для дальнейшего развития, тестирования новых свойств или особенностей, только что включенных в ядро (и не обязанных, вообще говоря, в нем оставаться). После того, как новые части ядра проходили достаточную отладку, внесение изменений в экспериментальную ветку прекращалось, допускалось только устранение ошибок в коде, и через некоторое время код этой версии служил основой для выпуска очередной версии стабильной ветки ядра. Обычно в стабильной версии допускалось только устранение явных ошибок.

Новые версии в стабильной ветке ядра появлялись сравнительно редко, только после тщательной отладки, а в экспериментальной ветке - значительно чаще. Например, выход версии 1.0.9 состоялся только через полгода после 1.0, а версия 1.1.0 претерпела более 50 изменений за первые 10 месяцев. Наконец, после выхода версии 1.1.60 в экспериментальной ветке была выпущена стабильная версия 1.2.0. Одновременно ее двойник под номером 1.3.0 дал начало новой экспериментальной ветке (см. рис. 10).

Одной из главных проблем, которые стояли перед разработчиками Linux на первых этапах ее развития, было обеспечение поддержки широкого спектра аппаратных устройств. В самых первых версиях Linux поддерживал только стандартные IDE-диски. Естественно, что такая система не могла получить широкого распространения. Начиная с версии 1.2 каждая новая версия ядра включала поддержку новых типов процессоров и новых устройств. Процесс этот проходил достаточно сложно.

Во-первых, чтобы написать и отладить драйвер устройства, необходимо это устройство иметь. Очевидно, что ни у Линуса, ни у каждого из его добровольных помощников не было в наличии различных материнских плат, сетевых и звуковых карт, IDE-контроллеров, цифровых камер, принтеров и других видов устройств, общее число которых исчисляется тысячами. К счастью, большинство драйверов устройств независимы друг от друга и взаимодействуют с ядром операционной системы через строго определенные интерфейсы. Поэтому довольно легко можно написать драйвер устройства, не вникая во все сложности операционной системы. Это как нельзя лучше соответствовало той модели распределенной разработки, которая сложилась в ходе развития Linux. Разработчики ядра освобождены от необходимости заниматься разработкой драйверов и имеют возможность сосредоточится на обеспечении функциональности собственно ядра, возложив разработку драйверов на плечи тех независимых разработчиков, у которых соответствующее устройство имеются, и которые непосредственно заинтересованы в разработке драйвера для него.

Но такая модель тоже не лишена своих проблем. Когда новое устройство появляется на рынке, проходит несколько месяцев, пока какой-то программист удосужится написать для него драйвер. А производители устройств не были заинтересованы выпускать драйверы своих устройств под Linux, пока эта ОС еще не получила достаточно широкого распространения. Более того, для создания независимым программистом драйвера какого-то устройства, как правило, необходимо, чтобы были опубликованы спецификации этого оборудования, данные об интерфейсах и т.п.. На первых этапах существования Linux не все производители публиковали эту информацию, поскольку не считали нужным обеспечивать поддержку своего оборудования в системе Linux. Разработчики Linux даже вынуждены были создавать специальные списки устройств, с которыми могла работать эта система. Однако по мере того, как Linux приобретал все больше и больше сторонников, ситуация менялась и большинство фирм-производителей не только предоставляют необходимые данные разработчикам, но и сами разрабатывают драйверы устройств под Linux. Поэтому в наши дни Linux обеспечивает работу со всем спектром производимых аппаратных средств.

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

Таблица 3. Развитие ядра Linux

Кроме поддержки различных устройств большая работа была проделана по переносу Linux на различные аппаратные платформы, Alpha, Mac, PowerPC и даже на наладонные компьютеры Впрочем, этому процессу будет посвящен отдельный раздел настоящего обзора, поэтому сейчас на этом не будем задерживаться.

В наши дни, как только появляется новое устройство, ядро Linux дорабатывается с целью обеспечить поддержку этого устройства. Например, через несколько недель после того, как фирма Intel выпустила микропроцессор Xeon® в ядро Linux были внесены необходимые изменения для его поддержки.




Страницы: предыдущая :: 1 :: ... :: 11 :: 12 :: 13 :: 14 :: 15 :: ... :: 39 :: следующая

Комментарии

аноним, Sun Dec 13 13:09:43 2009:
Виндовс - говно, линукс - ОС будушего. Это легко понять если сравнить например Windows 3.1 и Ubuntu 9.10. Кто это не понимает просто быдло!
аноним, Sun Dec 13 03:49:50 2009:
Хмм удивительно то что MS когда-то раздавали шрифты.
Я считал что они пожизни были пропиетарны и распространялись строго в составе дистрибутивов.
Кстати как вспомню какие корявым был набор шрифтов
в майкрософтовском офисе 2.0 - это ж просто уму
не постижимо...
Виктор Коновалов, Sun Dec 13 03:46:27 2009:
Ах, по сабжу. Статья вобщем полезная и для новичков
интересная. Мне действительно жаль, что фанатизм помешает многим правильно понять её.
Виктор Коновалов, Sun Dec 13 03:44:19 2009:
О... новый повод для знатного срача. Господи,
ну когда этот идиотизм закончится?
аноним, Sun Dec 13 02:56:56 2009:
Что было, когда Linux еще не было

не было красноглазия
аноним, Sun Dec 13 01:13:34 2009:
В осле полным полно книг.
аноним, Sun Dec 13 00:31:13 2009:
а скачать книги эти где можно???

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds