Интервью с Джонатаном Корбетом

TanaT

Xakep, номер #054, стр. 054-080-5


- И, конечно же, если у вас несколько дисков, то обойтись одним разделом точно не удастся. Хотя есть способы, как это спрятать.

Linux может работать и на одном большом разделе.

Х: Что вы можете сказать о стабильности файловой системы Linux? Экспериментально установлено, что компьютер с Windows XP + NTFS можно включать/выключать несколько раз подряд (я видел раз 15-20) и при этом не будет никаких ошибок в файловой системе (NTFS). Linux может похвастаться такими же результатами?

JC: Я не могу определить, какая файловая система стабильнее. Я могу лишь сказать, что более чем за 10 лет использования Linux единственная проблема с файловой системой, которая у меня была, случилась, когда я установил нестабильное «горячее» ядро.

Х: Чем отличаются ядра Linux и BSD систем?

JC: Прошло много времени с тех пор, как я интересовался ядром BSD, так что не уверен, что смогу ответить точно. Корни ядра BSD намного старше и более распространены, чем Linux’а. Реализация TCP/IP в современной BSD сохранила немало общего со своими самыми старыми версиями. Что же до Linux, то он с самого начала был построен по-другому, в частности Linux использует свой собственный сетевой стек. Конечно, системы немало повлияли друг на друга за последние годы. Одна из самых приятных черт свободного ПО это то, что хорошие идеи очень быстро распространяются и внедряются. К примеру, хотя Linux имеет собственную реализацию виртуальной памяти, он позаимствовал немало мудрых решений из VM-кода FreeBSD.

Х: А вы отвечаете за какую-нибудь конкретную часть ядра?

JC: Нет, я не вхожу в команду, которая поддерживает какую-либо часть ядра и отвечает за нее. У меня никогда не хватало на это времени, хотя было бы интересно попробовать. Я часто выпускаю небольшие патчи для ядра, которые исправляют ту или иную проблему. Мой самый значительный вклад в разработку ядра это второе издание Драйверов Устройств для Linux (Linux Device Drivers) в соавторстве с Алессандро Рубини (Alessandro Rubini). LDD было выпущено под лицензией Free Documentation License.

Х: В состоянии ли один человек написать ядро? Какие знания для этого требуются?

JC: Ну, Линус доказал, что это возможно. Понимаете, не так уж и сложно написать ядро, которое сможет обрабатывать основные системные вызовы, управлять процессами и устройствами и т.д. А вот создать ядро, которое принесет что-то полезное в этот мир, задача намного более сложная. Ядро Linux не является работой какого-то отдельного разработчика, это результат работы сотен программистов по всему миру. Что касается знаний и навыков, то необходимо владеть языком программирования, обеспечивающим низкоуровневый доступ к внутренностям машины. Именно поэтому ядро Linux написано на С и (небольшая часть) на ассемблере. Много лет назад была идея переписать ядро Linux на С++, но ее забросили. Среди прочих вещей, С++ скрывает некоторые вещи, происходящие в глубине. Это сильно снижает контроль и производительность, что не позволяет выполнять требуемые задачи.

Назад на стр. 054-080-4  Содержание  Вперед на стр. 054-080-6