Linux: Полное руководство
Шрифт:
Естественно, мы можем сделать это только для исходящих пакетов, поскольку мы не знаем, какой UID имеет пользователь другой системы: информация об этом не передается по протоколу TCP.
Глава 20
Настройка ядра
20.1. Многообразие ядер Linux
В дереве развития ядер Linux достаточно много веток. И хотя в большинстве
Это главная ветка ядер Linux на настоящий момент, которую принято считать официальной и которая поддерживается самим Линусом Торвальдсом. Политика этой ветки более либеральна по сравнению с политикой ветки 2.4: в нее включаются не только исправления багов, но и такие изменения, для которых раньше заводили отдельную, экспериментальную, ветку. Все ядра этой ветки можно найти на сайте
В свое время ядра 2.4.x были основными — они встраивались во все дистрибутивы. Однако им на смену пришли ядра 2.6.x, и о ядрах классической ветки не стоило бы говорить, если бы не их исключительная стабильность (по сравнению с ядрами 2.6.x). И хотя они не обладают многими достоинствами и качествами 2.6.x, для тех, кому важна стабильность — они еще служат хорошую службу.
Более того, даже в некоторые современные дистрибутивы еще встраивается эти ядра (например, в Slackware 10.1). На сегодняшний момент эта ветка по прежнему очень активно поддерживается, а руководит данным процессом Марсело Тосатти, очень молодой программист бразильской компании Conectiva.
В качестве обновлений выступают исправления обнаруженных ошибок, ну и периодически — новые драйвера.
Так же как и ядра 2.6.x, ядра ветки 2.4.x. можно получить на сайте
Выше было сказано, что ядра ветки 2.6.x не отличаются особой стабильностью по сравнению с теми же 2.4.x. Даже были намерения сменить схему именования новых ядер. Однако этого не произошло, просто создали дополнительную ветку, которая выступает под грифом «stable» (то бишь стабильная), и которая известна под именем 2.6.x.у.
Ведут ветку -stable товарищи по имени Грег Кроа-Хартман и Крис Райт. В ней появляются только те обновления, которые непосредственно касаются повышения стабильности ядра и решают конкретные проблемы. Никакие обновления с новыми функциональными возможностями и т.п. в ядра этой ветки не вносятся.
Если в предыдущем разделе мы рассмотрели наиболее стабильную ветку ядер Linux поколения 2.6, ветку 2.6.x-mm можно считать наименее стабильной. Она включает в себя все возможные патчи ядра, которые были выпущены.
Данная ветка является скорее экспериментальной, нежели имеющей практическое значение. Очень многое к Линусу в его ветку 2.6.x попадает именно через фильтр 2.6.x-mm. В частности сейчас в этих ядрах уже имеется поддержка файловой системы Reiser4, которая с легкостью выигрывает все тесты по производительности, и технологии FUSE . реализующей поддержку файловых систем в пользовательском пространстве.
Ведет ветку Эндрю Мортон, а патчи ветки доступны в двух видах:
♦ «все
♦ «каждый сам по себе» — архив патчей, которые можно применять по отдельности.
Скачать их можно по адресу http://kernel.org/patchtypes/mm.html,
Ветка 2.6.x-mm-jedi является, как это можно понять из названия, ответвлением 2.6.x-mm. И по сути считается stable-версией последней. Здесь собираются самые критичные исправления по различным версиям ядер 2.6.x-mm.
Доступ к данным патчам можно получить по адресу ftp://ftp.c9x.org/pub/linux-kernel.
Ядра этих веток представляют собой предварительные версии ядер, которые впоследствии должны стать официальными. При этом принято считать, что ядра – pre являются наиболее «сырыми» и в них могут быть привнесены существенные изменения, а ядра – rc — уже более-менее стабильными.
Автор и ведущий данной ветки, Мэтт Мэколл, поставил себе задачу минимизировать занимаемые ядром дисковое пространство и объем памяти. Автор утверждает, что его ядро может быть запущено даже на машине с 2 Мб памяти.
Детально ознакомиться с этим направлением и получить само ядро можно на сайте http://selentic.com/tiny.
Эта ветка, ведомая Аланом Коксом, призвана аккумулировать все исправления и патчи, касающиеся в основном драйверов. Кстати говоря именно это ядро используется в дистрибутивах Fedora Core.
Проект доступен по адресу http://kernel.org/patchtypes/ac.html
Среди прочих следует также отметить:
♦ 2.6.x-ck — в этой ветке аккумулируются патчи к диспетчерам ввода/вывода, а также направленные на общее повышение отзывчивости системы. Адрес: http://ck.kolivas.org/patches/2.6.
♦ 2.6.x-RT — данная ветка направлена на обеспечение использования Linux в системах реального времени (мягкого и жесткого), насколько это вообще возможно сделать применительно к Linux.
20.2. Зачем настраивать ядро?
В главе 7 я уже говорил о том, что в обязанности ядра ОС Linux входит не только реализация концепций процессов, виртуальной памяти, файловой системы и тому подобных составляющих UNIX, но и организация взаимодействия с оборудованием компьютера. Это взаимодействие осуществляют драйверы устройств, которые в современных (выше 2.0) ядрах могут как встраиваться в ядро статически, так и подключаться в виде модулей.
Хорошо известно, как многочисленно и разнообразно оборудование персональных компьютеров, на которых и работает ОС Linux, Ядро должно уметь адаптироваться к любой аппаратной среде. Этой цели служат параметры ядра — динамические или сообщаемые ему при загрузке — и механизм динамического подключения модулей.
Производители дистрибутивов поставляют ядро в некоторой базовой конфигурации, работающей на множестве вариантов оборудования, но не оптимизированной ни под один из них. Переконфигурировав ядро именно под свою аппаратную среду и задачи, можно существенно повысить производительность и увеличить надежность системы.