diff --git a/ru_RU.KOI8-R/articles/5-roadmap/article.sgml b/ru_RU.KOI8-R/articles/5-roadmap/article.sgml index b8e79bbd53..aca9faaba4 100644 --- a/ru_RU.KOI8-R/articles/5-roadmap/article.sgml +++ b/ru_RU.KOI8-R/articles/5-roadmap/article.sgml @@ -3,7 +3,7 @@ $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/5-roadmap/article.sgml,v 1.7 2007/05/15 06:07:48 gad Exp $ - Original revision: 1.27 + Original revision: 1.30 --> Выбор подходящей для вас версии &os; - . Она была написана в Августе 2005 г. (на два с половиной + . + Статья Выбор подходящей для вас версии &os; + была написана в Августе 2005 г. (на два с половиной года позже) и содержит раздел, в котором описывается как разворачивались планы и события, а также какие уроки были получены. @@ -85,7 +87,7 @@ привело к тому, что качество релизов 3.0 и 3.1 не могло удовлетворить большинство пользователей, и так было до версии 3.2, когда линейка была признана стабильной. Хуже того, ветка &t.releng.3; была - создана на основе релиза 3.0. а ветка &t.releng.head; должна была вести к + создана на основе релиза 3.0, а ветка &t.releng.head; должна была вести к 4-CURRENT. В результате ветки &t.releng.head; и &t.releng.3; стали сильно отличаться, что значительно осложнило поддержку ветки &t.releng.3;. &os; 2.2.8 была оставлена как последняя версия &os;, @@ -131,15 +133,15 @@ - VM: Функция ядра malloc изолирована и освобождена - от Giant. Распределитель зон UMA также не использует Giant. + VM: функция ядра malloc изолирована и освобождена + от Giant. Аллокатор зон UMA также не использует Giant. Изоляция vm_object находится в работе и является важным шагом в исключении Giant из работы с буферами/кэшем. Изоляция pmap ещё не реализовывалась. - GEOM: Уровень блоков GEOM был разработан с учётом работы без + GEOM: уровень блоков GEOM был разработан с учётом работы без Giant и он позволяет работать модулям GEOM и низлежащим драйверам блочных устройств без Giant. На данный момент только драйверы &man.ata.4; и &man.aac.4; разделены и работают без @@ -156,7 +158,7 @@ - Сеть: Работа по переводу на изоляцию сетевого стека была + Сеть: работа по переводу на изоляцию сетевого стека была начата заново. Изначально целями были таблицы маршрутизации, ARP, функции моста, IPFW, Fast-Forward, TCP, UDP, IP, Fast IPSEC и уровни интерфейсов, а также некоторые драйверы устройств Ethernet. @@ -169,21 +171,21 @@ - VFS: Начата предварительная подготовка. + VFS: начата предварительная подготовка. - буфер/кэш: Закончена начальная работа по изоляции + Буфер/кэш: закончена начальная работа по изоляции буферов. - Proc: Начальное изоляция proc уже есть, во &os; 5.2 ожидается + Proc: начальное изоляция proc уже есть, во &os; 5.2 ожидается ещё больший прогресс. - CAM: На уровне CAM SCSI значительной работы не + CAM: на уровне CAM SCSI значительной работы не проделано. @@ -214,7 +216,7 @@ - kernel encryption: криптографические драйверы и ядро технологии + Kernel encryption: криптографические драйверы и ядро технологии &man.crypto.4; не используют Giant. KAME IPsec не отделяются. @@ -225,11 +227,11 @@ - вытесняемость ядра: включена вытесняемость для потоков + Вытесняемость ядра: включена вытесняемость для потоков выполнения прерываний. Однако несогласованность из-за того, что Giant используется в большинстве кода ядра и подпрограммах обработки прерываний драйверов устройств, вызывает множество - лишних переключений контекста и может на самом деле сказаться на + лишних переключений контекста и может сказаться на производительности. Ведётся работа по выяснению того, как сделать вытесняемость условной. @@ -244,8 +246,8 @@ подпрограммы обслуживания прерываний от устройств могут создавать блокировки для выставления семафоров, выделения памяти и так далее. Хотя это облегчает написание драйверов, при этом понижается - реактивность системы из-за того, что для обслуживания ithread должно - быть выполнено полное переключение контекста процесса. Это + реактивность системы из-за полного переключения контекста процесса, + которое должно быть выполнено для обслуживания ithread. Это усугубляется значительным использованием ядром семафора Giant, и часто приводит к множеству пауз и переключений контекстов для обслуживания прерывания. Драйверы, которые зарегистрировали свои прерывания как @@ -263,18 +265,19 @@ - Возможно, особый случай облегчённых ithread. При этом может, - придётся уменьшить количество сохраняемых данных контекста для - ithread, заимствовать стек из другого kthread и/или создавать - новый быстрый способ обхода подпрограммы mi_switch(). + Как вариант — задействовать особый вид легковесных + ithread. Это могло бы привести к уменьшению количества сохраняемых + контекстов для ithread, к заимствованию стека из другого kthread + и/или к созданию нового быстрого пути, исключающего вызов + mi_switch(). Можно ввести новую модель обработки прерываний, которая позволит драйверам регистрировать 'фильтр прерываний' вместе с - обычной процедурой обработки. Это будет похоже на используемую - сейчас в Mac OS X модель. Процедуры фильтрации прерываний позволят - драйверу определять, должен ли он участвовать в обработке + обычной процедурой обработки. Это будет похоже на модель, + используемую сейчас в Mac OS X. Процедуры фильтрации прерываний + позволят драйверу определять, должен ли он участвовать в обработке прерывания, позволят ему подавлять источник прерываний и, возможно, определять и планировать действия по его обработке. Она будет работать в том же самом контексте, что и низкоуровневая процедура @@ -305,7 +308,7 @@ Компоненты уровня ядра и пользовательского уровня для KSE и THR - должны быть созданы для все платформ уровня Tier-1. Решение о том, + должны быть созданы для всех платформ уровня Tier-1. Решение о том, какой пакет реализации потоков выполнения будет использоваться по умолчанию, будет, скорее всего, приниматься для каждой платформы отдельно, в зависимости от стабильности и завершённости каждого @@ -501,7 +504,7 @@ - KSE: И компоненты уровня ядра, и компоненты пользовательского + KSE: и компоненты уровня ядра, и компоненты пользовательского уровня должны достичь одинакового уровня функциональности во всех платформах уровня Tier-1 в UP и SMP конфигурациях. Определение того, что является платформами ранга Tier-1, можно @@ -520,7 +523,7 @@ - интерфейс и драйверы busdma: такие архитектуры, как PAE/&i386; + Интерфейс и драйверы busdma: такие архитектуры, как PAE/&i386; и sparc64, в которых отсутствует прямое отображение адресного пространства хоста в адресное пространство плат расширения, требуют исключения функции vtophys() и ей подобных. Интерфейс busdma был @@ -536,7 +539,7 @@ - распределение ресурсов PCI: соответствие спецификации PC2003 + Распределение ресурсов PCI: соответствие спецификации PC2003 требует, что системы x86 не конфигурировали устройства PCI из системной BIOS, оставляя эту задачу исключительно ОС. Во &os; должна появиться возможность управления и распределения ресурсов @@ -553,11 +556,11 @@ Производительность Производительность зависит от хода работ над инфраструктурой SMPng - и в следующих областях: + в следующих областях: - Устройства хранения: Технология GEOM позволяет драйверам + Устройства хранения: технология GEOM позволяет драйверам устройств хранения работать без использования Giant. Все драйверы, которые взаимодействуют напрямую с GEOM (в противоположность тем, что находятся ниже уровня CAM или другого промежуточного слоя), @@ -577,7 +580,7 @@ - Прерывания и переключение контекстов: Как обсуждалось выше, + Прерывания и переключение контекстов: как обсуждалось выше, задержки в прерываниях и переключениях контекстов имеют большое влияние на производительность. Переключение контекстов для ithread и kthread на всех платформах должно быть улучшено. Должна быть @@ -637,7 +640,7 @@ - NEWCARD/OLDCARD: Подсистема NEWCARD во &os; 5.0 сделана + NEWCARD/OLDCARD: подсистема NEWCARD во &os; 5.0 сделана используемой по умолчанию. К сожалению, в ней отсутствует поддержка для не-Cardbus мостов и на некоторых лэптопах она не работает из-за проблем с маршрутизацией прерываний. @@ -657,8 +660,8 @@ - Новый планировщик задач: Он уже готов, и пользователи могут - выбирать между классическим планировщиком 44BSD и новым + Новый планировщик задач: он уже готов, и пользователи могут + выбирать между классическим планировщиком 4BSD и новым планировщиком ULE. В ветке &t.releng.5; должен быть планировщик, имеющий привязку к процессору, поддержку HyperThreading и KSE, а также отсутствие снижения производительности или времени реакции