diff --git a/ru/about.sgml b/ru/about.sgml index 104f48a825..2e9a90eece 100644 --- a/ru/about.sgml +++ b/ru/about.sgml @@ -1,120 +1,120 @@ + %navincludes; %includes; ]> &header;

Что такое FreeBSD?

FreeBSD - это современная операционная система для компьютеров, совместимых с архитектурами x86 (в том числе Pentium® и Athlon™), amd64 (включая Opteron™, Athlon 64 и&unix; EM64T), Alpha/AXP, IA-64, PC-98 и UltraSPARC®. Она основана на BSD, версии &unix;, созданной в Калифорнийском Университете в Беркли. Она разрабатывается и поддерживается + href="&enbase;/doc/en_US.ISO8859-1/articles/contributors/index.html"> большой командой разработчиков. Поддержка других платформ находится на разных стадиях разработки.

Самые современные технологии

Исключительный набор сетевых функций, высокая производительность, средства обеспечения информационной безопасности и совместимости с другими ОС - вот те современные возможности FreeBSD, которые зачастую всё ещё отсутствуют в других, даже лучших коммерческих, операционных системах.

Мощное решение для Internet

FreeBSD является идеальной платформой для построения Internet или Intranet. Эта система предоставляет надёжные даже при самой интенсивной нагрузке сетевые службы, и эффективное управление памятью, что позволяет обеспечивать приемлемое время отклика для сотен и даже тысяч одновременно работающих пользовательских задач.

Огромное количество приложений

Качество FreeBSD вкупе с современным дешёвым и производительным аппаратным обеспечением ПК делают эту систему очень экономичной альтернативой коммерческим рабочим станциям &unix;. Она прекрасно подходит для большого количества приложений как в качестве сервера, так и рабочей станции.

Простота установки

FreeBSD может быть установлена с различных носителей, включая CD-ROM, DVD-ROM, дискеты, магнитную ленту, раздел MS-DOS®, либо, если у вас есть подключение к сети, можно установить её непосредственно через FTP или NFS. Всё, что вам нужно для этого - несколько чистых дискет ёмкостью 1.44 Мбайт и + href="&enbase;/doc/ru_RU.KOI8-R/books/handbook/install.html"> эти указания.

FreeBSD распространяется свободно

Даемон BSD

Хотя вы можете подумать, что операционная система с такими возможностями продаётся по высокой цене, FreeBSD распространяется бесплатно и поставляется со всеми исходными текстами. Если вам захочется купить или загрузить её копию, обратитесь к + href="&enbase;/doc/ru_RU.KOI8-R/books/handbook/mirrors.html"> следующей информации.

Как принять участие в проекте

Принять участие в проекте очень просто. Всё, что вам нужно сделать - это найти часть FreeBSD, которую, по вашему мнению, можно усовершенствовать, сделать (внимательно и аккуратно) соответствующие изменения и отправить их в адрес проекта либо с помощью утилиты send-pr, либо непосредственно коммиттеру, если вы его знаете. Эта работа может представлять собой что угодно, от документации до исходных текстов. Подробнее об этом можно прочитать + href="&enbase;/doc/en_US.ISO8859-1/articles/contributing/index.html"> здесь.

Даже если Вы не программист, есть другие способы помочь FreeBSD в развитии. The FreeBSD Foundation - это неприбыльная организация, для которой все пожертвования и денежная помощь не облагаются налогами. Для получения более полной информации пишите на адрес bod@FreeBSDFoundation.org или: The FreeBSD Foundation, 7321 Brockway Dr., Boulder, CO 80303, USA.

&footer; diff --git a/ru/commercial/commercial.sgml b/ru/commercial/commercial.sgml index 6bf1963300..7eb5dbacae 100644 --- a/ru/commercial/commercial.sgml +++ b/ru/commercial/commercial.sgml @@ -1,77 +1,77 @@ - + %navincludes; %includes; ]> &header;

Мощь, гибкость и удобство FreeBSD привлекает широкий круг пользователей и поставщиков. В дополнение к странице галереи, где есть многие наши пользователи, ниже располагается список поставщиков, предлагающих коммерческие продукты, сервисы, и/или консультации по FreeBSD.

Если Ваша компания поддерживает продукт для FreeBSD, сервис, дает консультации, или осуществляет техническую поддержку, информация о которых должна быть внесена на эту страницу, пожалуйста отправьте письмо на www@FreeBSD.org, дайте нам знать об этом! Сообщение должно быть в HTML, параграфом средней длины. Пожалуйста, имейте ввиду, что включение поставщиков в наш список не означает поддержку их продуктов или сервисов проектом FreeBSD.

&footer; diff --git a/ru/community/irc.sgml b/ru/community/irc.sgml index 7529604571..6897c03198 100644 --- a/ru/community/irc.sgml +++ b/ru/community/irc.sgml @@ -1,33 +1,33 @@ %navincludes; %includes; ]> &header;

Хотя каналы #freebsd имеются в различных сетях IRC, проект FreeBSD не управляет ими и не считает IRC средством получения помощи. Когда вы задаёте вопрос на любом из каналов IRC, вас могут проигнорировать, оскорбить и даже вышвырнуть прочь, хотя вам может больше повезти на каналах #freebsdhelp там, где они есть. Если вы хотите попробовать эти либо другие каналы на IRC, делайте это на свой страх и риск, жалобы на поведение на этих каналах не нужно направлять в адрес проекта FreeBSD. Для получения подробной информации обратитесь также к - FAQ.

+ FAQ.

&footer; diff --git a/ru/community/mailinglists.sgml b/ru/community/mailinglists.sgml index 66becb5a9c..e5cfb7c435 100644 --- a/ru/community/mailinglists.sgml +++ b/ru/community/mailinglists.sgml @@ -1,119 +1,119 @@ %navincludes; %includes; ]> &header; -

+

Списки рассылки

Списки рассылки являются основными коммуникационными каналами для сообщества FreeBSD и охватывают множество тем.

Архивы списков рассылки

-

Вы можете выполнить поиск +

Вы можете выполнить поиск или просмотреть архивы списков рассылки на сервере www.FreeBSD.org. Возможен также просмотр списков рассылки через Web-интерфейс Mailman.

Неанглоязычные списки рассылки

Существуют также несколько неанглоязычных списков рассылки:

Если вы создали список рассылки, посвящённый FreeBSD, дайте нам знать.

&footer; diff --git a/ru/docs/books.sgml b/ru/docs/books.sgml index cbe1470ae6..6f8b20469a 100644 --- a/ru/docs/books.sgml +++ b/ru/docs/books.sgml @@ -1,464 +1,465 @@ %navincludes; %includes; - - - - + + + + ]> &header;

На этом сайте

Вся документация с этого сайта может быть загружена в нескольких различных форматах (HTML, Postscript, PDF, другие), упакованная различными способами (BZip2, Zip) с FTP-сервера FreeBSD.

Эта документация создана и поддерживается в рамках проекта FreeBSD Documentation Project, и мы всегда рады приветствовать тех, кто готов писать новую документацию и поддерживать существующую.

Книги

FAQ по FreeBSD (faq)
Часто задаваемые вопросы и ответы на них, покрывающие все аспекты работы FreeBSD.

Руководство по FreeBSD (handbook)
Постоянно дополняемый подробный источник информации для пользователей FreeBSD.

Руководство FreeBSD для разработчиков (developers-handbook)
Для тех, кто собирается разрабатывать программное обеспечение для FreeBSD (а не только для тех, кто принимает непосредственное участие в разработке FreeBSD).

Руководство по архитектуре FreeBSD (arch-handbook)
Для разработчиков системы FreeBSD. Руководство охватывает детали архитектуры многих важных подсистем ядра FreeBSD.

Руководство по созданию портов (porters-handbook)
Рекомендуется к прочтению, если вы планируете создать порт для программного обеспечения сторонних разработчиков.

Учебник по PMake (pmake)
Руководство по утилите make. Эту книгу необходимо прочесть всем, что хочет понимать все тонкие моменты использования make при чтении и для написания make-файлов.

Глава 2 книги "Архитектура и реализация операционной системы 4.4BSD ("The Design and Implementation of the 4.4BSD Operating System") (design-44bsd)
Предоставлена издательством Addison-Wesley и дает обзор архитектуры 4.4BSD, от которой ведет свою историю FreeBSD.

Глава 8 книги "Руководство по использованию FreeBSD в корпоративной сети" ("The FreeBSD Corporate Networker's Guide") (corp-net-guide)
Предоставлена издательством Addison-Wesley и дает подробный обзор использования FreeBSD в качестве сервера печати для хостов Windows, NT и Novell.

Проект создания документации FreeBSD в примерах для новичков (fdp-primer)
Всё, что вам нужно знать для того, чтобы принять участие в проекте создания документации FreeBSD.

Статьи

Дорога к 5-STABLE (5-roadmap)
Описывает среднесрочные планы разработки и выпуска релизов, ведущие к ветке 5-STABLE.

Argentina.com : A Case Study (casestudy-argentina.com)
Как FreeBSD был полезен большому ISP в Латинской Америке.

Интеграция Checkpoint VPN-1/Firewall-1 и FreeBSD IPsec (checkpoint)
Как настроить Checkpoint VPN-1/Firewall-1 и FreeBSD IPsec.

Справочник коммиттера (committers-guide)
Начальная информация для коммиттеров FreeBSD.

Учебник по организации терминального сервера (console-server)
Как построить терминальный сервер на основе FreeBSD с дешёвым многопортовым коммуникационным адаптером.

Помощь проекту FreeBSD (contributing)
Как помочь проекту FreeBSD.

Помощь коллекции портов FreeBSD (contributing-ports)
Как помочь поддерживать коллекцию портов FreeBSD.

Список контрибьюторов проекта FreeBSD (contributors)
Список организаций и лиц, помогавших в разработке FreeBSD.

Настройка хранилища CVS - подход FreeBSD (cvs-freebsd)
Как настроить хранилище CVS, которое использует ту же самую инфраструктуру CVSROOT, что и в проекте FreeBSD.

Тонкие вопросы работы CVSup (cvsup-advanced)
Статья с некоторыми советами о тонкостях работы CVSup.

Использование межсетевого экрана во FreeBSD при работе по коммутируемой линии связи (dialup-firewall)
О том, как настроить межсетевой экран при помощи PPP и ipfw в случае работы по коммутируемому каналу связи с динамически назначаемыми IP-адресами.

Создание бездискового X сервера (diskless-x)
О том, как создать бездисковый X сервер.

Символ Евро во FreeBSD (euro)
Как настроить FreeBSD и соответствующие приложения для вывода нового символа Евро.

Объяснение BSD (explaining-bsd)
Ответ на вопрос ``Что такое BSD?''

FreeBSD из исходных текстов (fbsd-from-scratch)
Как автоматически собрать, установить и настроить систему из исходных текстов (на пустую файловую систему), включая порты.

Фильтрующие сетевые мосты (filtering-bridges)
Настройка межсетевых экранов и фильтрации пакетов на хостах FreeBSD, выступающих в качестве сетевых мостов, а не маршрутизаторов.

Использование шрифтов во FreeBSD (fonts)
Описание различных технологий работы со шрифтами во FreeBSD, и о том, как использовать их в различных программах.

Форматирование носителей во FreeBSD (formatting-media)
Как разбить на слайсы, разделы и отформатировать несъемные и съемные носители во FreeBSD.

Как работать со списком рассылки FreeBSD-questions c максимальной отдачей (freebsd-questions)
Советы и рекомендации, которые помогут вам увеличить шанс на получение полезной информации из списка рассылки -questions.

Работа с Hats (hats)
Руководство для коммиттеров по работе с ``hats'' (другими коммиттерами, возглавляющими отдельные области FreeBSD).

Зеркалирование FreeBSD (hubs)
(Все о зеркалировании Web-сайта FreeBSD, серверов CVSup, FTP и других в одном руководстве.

Независимое исследование работы IPsec во FreeBSD (ipsec-must)
Метод экспериментальной проверки работы IPsec.

Java и Jakarta Tomcat (java-tomcat)
Информация по настройке Java и Jakarta Tomcat в системе FreeBSD.

FreeBSD на лэптопах (laptop)
Информация по использованию FreeBSD на лэптопах

FreeBSD: Open Source альтернатива Linux (linux-comparison)
Статья, описывающая различия между Linux и FreeBSD

FAQ по спискам рассылки FreeBSD (mailing-list-faq)
Как правильно пользоваться списками рассылки, в частности, как избежать повторения одних и тех же обсуждений.

MH в примерах (mh)
Вводное руководство по использованию почтового клиента MH во FreeBSD.

Использование FreeBSD с другими операционными системами (multi-os)
Как установить FreeBSD вместе с одной или несколькими различными операционными системами на один и тот же компьютер.

Первые шаги с FreeBSD (new-users)
Для людей, являющихся новичками во FreeBSD и &unix;

Подключаемые модули аутентификации (Pluggable Authentication Modules) (Руководство по системе PAM и модулям во FreeBSD.

Процедуры сборки пакетов (portbuild)
Описывает способ, используемый командой управления портами FreeBSD для регулярной сборки портов в пакеты. Описан кластер сборки портов и инструменты, необходимые для инкрементальной, экспериментальной, и официальной сборки пакетов для релиза.

Руководство по работе с сообщениями о проблемах FreeBSD (pr-guidelines)
Рекомендуемая практика по работе с сообщениями о проблемах FreeBSD.

Составление сообщений о проблеме во FreeBSD (problem-reports)
Как наилучшим образом сформулировать и отослать сообщение о проблеме в Проект FreeBSD.

Загрузка FreeBSD при помощи PXE (pxe)
Как создать сервер Intel PXE при помощи FreeBSD и как настроить клиента FreeBSD для загрузки с сервера PXE.

FreeBSD в качестве почтового сервера с серым списком (relaydelay)
Реализация серого списка (greylist) на почтовом сервере FreeBSD, используя Sendmail, MySQL, Perl и программное обеспечение relaydelay. Это прекрасный метод для борьбы со спамом.

Процесс выпуска релизов FreeBSD (releng)
Описывается подход, используемый группой подготовки релизов FreeBSD для выпуска качественных релизов операционной системы FreeBSD. Описаны инструменты, доступные для тех, кто заинтересован в создании собственных релизов FreeBSD для использования в корпоративной среде или для коммерческого распространения.

Процесс выпуска релизов FreeBSD пакетов сторонних разработчиков (releng-packages)
Описывает подход, используемый группой подготовки релизов FreeBSD для производства высококачественного набора пакетов, размещаемого на дисках официального дистрибутива FreeBSD. Этот документ находится в стадии разработки, но уже покрывает процесс, используемый для создания готового набора пакетов на FreeBSD.org "Кластере портов", настройку любой другой группы компьютеров в качестве кластера портов, разделение пакетов по дискам дистрибутива, и проверку целостности набора пакетов.

Последовательные устройства и устройства UART (serial-uart)
Подробная информация об использовании последовательных портов во FreeBSD, включая использование нескольких многопортовых последовательных адаптеров.

FreeBSD и твердотельные устройства (solid-state)
Использование твердотельных дисковых устройств во FreeBSD.

Устройства хранения информации (storage-devices)
Подробная информация об использовании устройств хранения во FreeBSD, включая диски ESDI, SCSI, стримеры и приводы компакт-дисков.

Выбор подходящей для вас версии FreeBSD (version-guide)
Как выбрать, какая из версий FreeBSD подходит вам более всего? Рассматриваемые темы включают в себя релизы, ветви, различия между -CURRENT и -STABLE, а также текущие цели в планировании релизов.

Начальный запуск vinum: Основа надёжных серверов (vinum)
Мягкое введение в специфику работы серверов, устойчивых к сбоям и пошаговые инструкции по их построению при помощи Vinum.

Элементы архитектуры системы виртуальной памяти во FreeBSD (vm-design)
Понятное и простое описание архитектуры подсистемы управления виртуальной памятью FreeBSD.

Устройства Zip и FreeBSD (zip-drive)
Как отформатировать, смонтировать и работать с устройствами Iomega Zip (SCSI, IDE и на параллельном порту) во FreeBSD.

На других сайтах

В результате независимых усилий было создано много заслуживающих внимания ресурсов, посвященных FreeBSD.

Книги

Статьи

&footer; diff --git a/ru/includes.navdevelopers.sgml b/ru/includes.navdevelopers.sgml index 9e59d7507c..73493c6361 100644 --- a/ru/includes.navdevelopers.sgml +++ b/ru/includes.navdevelopers.sgml @@ -1,23 +1,23 @@ - +

Навигация по разделу

'> diff --git a/ru/includes.sgml b/ru/includes.sgml index 4f3d1be322..cfd1dee9c2 100644 --- a/ru/includes.sgml +++ b/ru/includes.sgml @@ -1,206 +1,208 @@ '> '> Главная   |   Контакты   |   Авторские права   |   ©right;'> Главная страница FreeBSD'> &title;
Перескочить навигацию по сайту (1) Перескочить навигацию по разделу (2)

Навигация по сайту

&nav;

&title;

'>
'> - - + + + - - - - - - - + + + + + + + - - + + + - - - - - - + + + + + + Этот документ описывает построение и обновление веб-страниц FreeBSD из дерева CVS в ручном режиме.

'> %includes.global; diff --git a/ru/index.xsl b/ru/index.xsl index 68d4ef57b2..2047acb4b8 100644 --- a/ru/index.xsl +++ b/ru/index.xsl @@ -1,339 +1,339 @@ - + <xsl:value-of select="$title"/> Spamtrap, do not email: <a href="mailto:bruscar@freebsd.org">bruscar@freebsd.org</a>

Основана на BSD UNIX®

FreeBSD - это современная операционная система для компьютеров, совместимых с архитектурами x86 (в том числе Pentium® и Athlon™), amd64 (включая Opteron™, Athlon 64 и EM64T), Alpha/AXP, IA-64, PC-98 и UltraSPARC®. Она основана на BSD, версии , созданной в Калифорнийском Университете в Беркли. Она разрабатывается и поддерживается + href="{$enbase}/doc/en_US.ISO8859-1/articles/contributors/index.html"> большой командой разработчиков. Поддержка других платформ находится на разных стадиях разработки.


Последние новости

.

Предстоящие события

.

FreeBSD в прессе

.

Бюллетени безопасности


Сообщения о проблемах


diff --git a/ru/mailto.sgml b/ru/mailto.sgml index e65d63a7c4..455e1aa017 100644 --- a/ru/mailto.sgml +++ b/ru/mailto.sgml @@ -1,66 +1,66 @@ + %navincludes; %includes; ]> &header;

Вопросы по FreeBSD...

Вопросы, касающиеся FreeBSD, должны посылаться в адрес списка рассылки FreeBSD Questions, freebsd-questions@FreeBSD.org.

Списки рассылки являются основным каналом поддержки для пользователей FreeBSD, этих рассылок много и они посвящены различным темам. Также имеется несколько неанглоязычных списков рассылки.

Вопросы, касающиеся содержимого этого сайта...

Вопросы и пожелания по нашей документации - ( + ( Руководство, FAQ, + href="&enbase;/doc/ru_RU.KOI8-R/books/faq/index.html">FAQ, книги и статьи) должны отправляться в список рассылки FreeBSD Documentation Project, freebsd-doc@FreeBSD.org.

Обычная почта, список рассылки и факс

Для заказа компакт-дисков: BSDi

Для коммерческой поддержки: The FreeBSD Mall

+ href="&enbase;/doc/en_US.ISO8859-1/articles/contributors/staff-who.html"> Кто за что отвечает

Связи с общественностью & Корпоративное Руководство, Офицер безопасности, Постмастер, Вебмастер и прочее

&footer; diff --git a/ru/platforms/amd64.sgml b/ru/platforms/amd64.sgml index 6be96d4659..3ddecde1e8 100644 --- a/ru/platforms/amd64.sgml +++ b/ru/platforms/amd64.sgml @@ -1,84 +1,99 @@ - + %navincludes; %includes; ]> &header; - Даемон BSD, размахивающий кузнечным молотом -

На этой странице размещена информация о переносе FreeBSD на архитектуру - AMD64 компании AMD. Архитектура AMD64 - ранее носила название x86-64 или ``Hammer'' (``Молот'').

+

На этой странице размещена информация о переносе FreeBSD на архитектуры + AMD64 компании AMD и Intel® + EM64T (Extended Memory 64-bit Technology). Архитектура AMD64 + ранее носила название x86-64 или ``Hammer''. Архитектура Intel EM64T + была известна как IA-32e, Clackamas Technology (CT) и Yamhill.

Архитектура AMD64 используется в процессорах AMD Opteron™ и AMD Athlon™ 64.

Состояние:

В настоящий момент FreeBSD/amd64 может работать в 64-разрядном многопользовательском режиме, как в однопроцессорном, так и в многопроцессорном режиме.

Платформа AMD64 в настоящий момент считается платформой FreeBSD 1 + href="&enbase;/doc/en_US.ISO8859-1/articles/committers-guide/archs.html">1 уровня.

-

Ссылки, специфичные для FreeBSD/amd64

+

Информационные ресурсы, относящиеся к FreeBSD/amd64

Другие интересные ссылки

Документация по AMD64

Программные средства

Близкие проекты

&footer; - + diff --git a/ru/platforms/pc98.sgml b/ru/platforms/pc98.sgml index 7a94ab47dd..f7add6cd58 100644 --- a/ru/platforms/pc98.sgml +++ b/ru/platforms/pc98.sgml @@ -1,72 +1,72 @@ - + %navincludes; %includes; ]> &header;

FreeBSD/pc98 представляет собой порт FreeBSD, предназначенный для работы на архитектуре NEC PC-98x1 (pc98). Проект работает над тем, чтобы сделать работу FreeBSD/pc98 аналогичной работе FreeBSD на других архитектурах. Основной объём исходных текстов ядра уже включён в дерево исходных текстов FreeBSD, а большинство пользовательских утилит, которые строятся из исходных текстов, работают нормально.

Замечания по оборудованию FreeBSD/pc98

- - Замечания по оборудованию для &rel.current;-CURRENT + + Замечания по оборудованию для &rel2.current;-CURRENT

Что необходимо сделать

Ссылки, связанные с FreeBSD/pc98

&footer; diff --git a/ru/projects/newbies.sgml b/ru/projects/newbies.sgml index 84ff2f7f6d..0b1b4cb0e6 100644 --- a/ru/projects/newbies.sgml +++ b/ru/projects/newbies.sgml @@ -1,281 +1,281 @@ - + %navincludes; %includes; ]> &header;

Ниже перечислены некоторые их тех источников, которые новички во FreeBSD находят наиболее полезными при изучении FreeBSD. Присылайте ваши исправления и добавления на адрес FreeBSD-Newbies@FreeBSD.org.

Использование веб-сервера FreeBSD

Этот веб-сервер является основным источником актуальной информации о FreeBSD. Новички находят особенно полезными следующие странички:

Изучение FreeBSD

Изучение &unix;

Многие из проблем, с которыми сталкиваются новички, происходят из-за незнакомства с командами UNIX, требуемыми для исправления проблем во FreeBSD. Если вы не знаете UNIX, вам придется бороться с двумя трудностями одновременно. К счастью. существует очень много ресурсов, помогающих облегчить этот процесс.

Изучение X Window System

X Window System используется во многих операционных системах, включая FreeBSD. Документация по X может быть найдена на сайте The XFree86 Project, Inc.. Однако отметьте, что большинство этой документации является справочниками, которые трудны для понимания новичками.

Помощь другим людям

У каждого найдётся, чем поделиться с сообществом FreeBSD, даже у новичка! Некоторые заняты работой в новой группе по продвижению FreeBSD, другие участвуют в Проекте документирования как корректоры. Другие новички могут поделиться некоторыми своими способностями и умениями, как связанными с компьютерами, так и нет, или просто встретиться с другими новичками и помочь им. Вокруг всегда найдется немало людей, готовых помочь другому просто потому, что им нравится это делать. Для получения подробной информации напишите в адрес списка рассылки FreeBSD Newbies.

Друзья, которые используют FreeBSD, являются прекрасным источником информации. Никакая книга не заменит беседу по телефону или за пиццей с человеком, у которого имеются похожие интересы, который получает удовольствие от достижения тех же самых успехов и встречается с теми же самыми трудностями. Если у вас не так уж много друзей, использующих FreeBSD, вы их можете завести с помощью старых компакт-дисков с FreeBSD :-)

Собрания групп пользователей являются тем местом, где можно встретить других пользователей FreeBSD. Если рядом нет ни одной такой группы, может, вы сможете ее создать?

Перед тем, как обсуждать проблемы с реальными людьми, не мешает посмотреть Словарь используемого жаргона :-)

Имеется Internet-версия списка рассылки FreeBSD-Newbies, который посвящен обсуждению нетехнических вопросов, представляющих интерес для новичков. Другой список рассылки, FreeBSD-Questions, предназначен для решения вопросов, касающихся эксплуатации FreeBSD.

&footer; diff --git a/ru/smp/index.sgml b/ru/smp/index.sgml index 0416cabc9f..22ee5b0000 100644 --- a/ru/smp/index.sgml +++ b/ru/smp/index.sgml @@ -1,2519 +1,2519 @@ - + %navincludes; %includes; Выполнено"> Выполняется"> Заброшено"> Не начиналось"> Решено"> Не решено"> %developers; ]> &header;

Содержание

Цель проекта

Проект FreeBSD Symmetric MultiProcessing (SMP), часто именуемый как SMPng (SMP следующего поколения), направлен на реализацию поддержки SMP до уровня мелких структур в ядре FreeBSD. Впервые эта поддержка появилась в январе 2003 года в 5.0-RELEASE. По историческим причинам развития FreeBSD, это было похоже на попытку протиснуть квадратный ящик через круглую дыру, и поэтому промежуточные результаты не были столь хороши по многим параметрам. Мы целенаправленно не пытаемся ни переписать ядро с нуля, ни изменить все архитектурные особенности, имеющиеся в ядре. Этот проект направлен на практическую реализацию, а не теоретические исследования.

План работы проекта

На этой Web-странице содержится информация, относящаяся к попыткам улучшить поддержку SMP во FreeBSD. В целом проект использует всё возможное из разрабатываемого ядра BSD/OS 5.0, и повторно реализует то, что нельзя использовать напрямую, из-за различий в основном коде.

Как и для любого некоммерческого проекта, разработка детального плана работ невозможна. Мы ожидаем получить значительного улучшения производительности и стабильности, проблемы с которыми должны быть решены в течение первых нескольких месяцев работы над проектом, хотя все возможные усилия будут прилагаться и к сохранению работоспособности -current.

Перечень задач ниже не претендует на полноту, но представляет набор имеющих отношение к делу и/или важных компонентов общей работы. Поле "Ответственный" указывает на разработчика, который изъявил желание отвечать за завершение определённой задачи; это не исключает участия других, но предполагает соответствующую координацию работ с ответственным лицом, чтобы исключить дублирование работ и максимально их ускорить. При начале работ в незанятой или новой области значительного объёма стоит отправить письмо по электронной почте в адрес списка рассылки FreeBSD по SMP, для определения того, сделано ли какое-то движение.

Смысл поля даты варьируется в зависимости от состояния работы. Для выполненных задач оно обозначает дату завершения или сообщения о завершении. Для выполняемых задач оно обозначает дату последнего обновления. Для заброшенных задач оно обозначает дату объявления об этом. Для новых задач оно обозначает дату добавления задачи к списку.

Процесс приведения к механизму блокировки отдельных драйверов устройств отслеживается на Web-странице преобразования драйверов busdma и SMPng.

Информация о блокировке стека сетевых протоколов размещена на Web-странице netperf Роберта Уотсона и Web-странице Netperf Web-сайта FreeBSD.org.

Задачи отсортированы сначала по состоянию, затем по дате.

Ресурсы и ссылки

Подсистемы и их разработчики

Это неполный перечень высокоуровневых подсистем ядра и тех, кто активно работает над архитектурой SMP и её стабильностью.

Подсистема Состояние Последнее обновление Разработчики
Newbus &status.wip; 5 октября 2003 &a.imp;
VM &status.wip; 4 октября 2003 &a.alc;
Кэш-буфер &status.wip; 4 октября 2003 &a.jeff;, &a.phk;
VFS &status.wip; 4 октября 2003 &a.jeff;
Процессы и операции с потоками &status.wip; 5 мая 2003 &a.jhb;
Планировщик &status.wip; 23 апреля 2004 &a.jhb;, &a.jeff;
GEOM &status.done; 5 февраля 2003 &a.phk;
Файловые дескрипторы &status.done; 5 февраля 2003 &a.alfred;, &a.tanimura; &a.rwatson;
Подсистема TTY &status.wip; 24 июля 2004 &a.phk;
Конвейерные IPC &status.done; 4 октября 2003 &a.alfred;
Структуры сокетов и системные вызовы &status.done; 25 ноября 2004 &a.sam;, &a.rwatson;
KQueue &status.done; 24 ноября 2004 &a.jmg;, &a.green;
IPv4, IPv6 &status.wip; 23 апреля 2004 &a.jennifer;, &a.hsu;, &a.sam;, &a.rwatson;, &a.gnn;
IPX/SPX &status.wip; 23 апреля 2004 &a.rik;, &a.rwatson;
netatalk &status.wip; 24 ноября 2004 &a.rwatson;
Инфраструктура сетевого стека &status.wip; 4 октября 2003 &a.hsu;, &a.sam;, &a.rwatson;, &a.mlaier;, &a.luigi;, Maurycy Pawlowski-Wieronski <maurycy@fouk.org>, &a.brooks;, &a.rik;
Клиент NFS &status.new; 23 апреля 2004  
Сервер NFS &status.wip; 24 ноября 2004 &a.rwatson;

Работы

Далее следует неполный перечень работ общего характера.

Задача Ответственный Последнее обновление Состояние
Преобразовать giant-блокировки от типа spinning к blocking, добавить блокировку планировщика и простаивающие процессы для каждого процессора. &a.dillon; 25 июня 2000 &status.done;
Перенос примитивов блокировки из BSD/OS (i386). &a.jake; 3 июля 2000 &status.done;
Реализовать тяжёлые потоки выполнения для прерываний (i386). &a.grog; 3 августа 2000 &status.done;
Переписать низкоуровневый код прерываний (i386 UP). &a.grog; 3 августа 2000 &status.done;
Добиться достаточной стабильности (построение полной системы на самом хосте) (i386 UP). разработчики -smp 12 августа 2000 &status.done;
Перенос примитивов блокировки из BSD/OS (alpha). &a.dfr; 24 августа 2000 &status.done;
Заменить заглушками (отключить) вызовы spl(). &a.grog; 30 августа 2000 &status.done;
Перенос кода ktr из BSD/OS. &a.grog;, &a.jhb; 30 августа 2000 &status.done;
Переписать низкоуровневый код обработки прерываний (i386 SMP). &a.jhb; 1 сентября 2000 &status.done;
Добиться достаточной стабильности (построение полной системы на самом хосте) (i386 SMP). -smp developers 6 сентября 2000 &status.done;
Добиться достаточной стабильности (построение полной системы на самом хосте) (alpha). -smp developers 6 сентября 2000 &status.done;
Сделать malloc и сопутствующие функции работающими с потоками выполнения. &a.jasone; 10 сентября 2000 &status.done;
Реализовать обработчик msleep(), сделать tsleep() обработчиком msleep(). &a.jake; 11 сентября 2000 &status.done;
Сделать драйвер fxp работающим с потоками выполнения. &a.cp; 17 сентября 2000 &status.done;
Сделать mbuf работающими с потоками выполнения. &a.bmilekic; 29 сентября 2000 &status.done;
Переработать менеджер блокировок. &a.jasone; 3 октября 2000 &status.done;
Реализовать тяжёлые потоки прерываний (alpha). &a.jhb;, &a.dfr; 5 октября 2000 &status.done;
Переписать низкоуровневый код обработки прерываний (alpha). &a.dfr;, &a.jhb; 5 октября 2000 &status.done;
Сбор статистику по процессу. &a.tegge;, &a.jhb; 5 октября 2000 &status.done;
Сделать драйверы ethernet работающими с потоками. &a.wpaul; 15 октября 2000 &status.done;
Сделать заголовочные файлы для семафоров в основном машинно-независимыми. &a.jhb; 20 октября 2000 &status.done;
Переименовать SMP_DEBUG в MUTEX_DEBUG. &a.jhb; 20 октября 2000 &status.done;
Выделить каждому программному прерыванию собственный поток выполнения. &a.cp; 25 октября 2000 &status.done;
Сделать sf_bufs (sendfile(2)) работающим с потоками. &a.bmilekic; 5 ноября 2000 &status.done;
Заставить фиксирующий код работать корректно. &a.jhb; 18 ноября 2000 &status.done;
Отделить специфичный для ktr код от db_interface.c. &a.jhb; 15 декабря 2000 &status.done;
Преобразовать драйвер sio к использованию spin-семафора. &a.jhb; 18 декабря 2000 &status.done;
Реализовать условные переменные. &a.jake;, &a.jasone; 15 января 2001 &status.done;
Добавить флаг к mtx_init() (MTX_RECURSE), который отмечает, можно ли использовать семафор рекурсивно. &a.bmilekic; 19 января 2001 &status.done;
Сделать зонный распределитель работающим с потоками. &a.des; 21 января 2001 &status.done;
Преобразовать простые блокировки к семафорам. &a.jasone; 24 января 2001 &status.done;
Сделать ядро вытесняющим в отношении прерываний. &a.jake; 31 января 2001 &status.done;
Вычистка API для семафоров. &a.bmilekic; 8 февраля 2001 &status.done;
Удалить COM_LOCK. &a.markm; 11 февраля 2001 &status.done;
Объединить различные классы планирования в одну очередь выполнения. Модифицировать планировщик для поддержки вытесняющего ядра. &a.jake; 11 февраля 2001 &status.done;
Заставить распространение приоритетов работать корректно. &a.jake; 11 февраля 2001 &status.done;
Сделать код треда обработки прерываний машинно-независимым и совместно используемым между программными и аппаратными прерываниями. &a.jhb; 18 февраля 2001 &status.done;
Добавить защиту к структуре jail и функциональности, связанной с jail. &a.rwatson; 20 февраля 2001 &status.done;
Реализация блокировок sx (совместные/эксклюзивные). &a.jasone; 5 марта 2001 &status.done;
Обобществление/улучшение фиксации для обработки более сложных примитивов блокировки (mtx, sx). &a.jhb; 28 марта 2001 &status.done;
Преобразование блокировок allproc и proctree от блокировок lockmgr к блокировкам sx. &a.jhb; 28 марта 2001 &status.done;
В системе mbuf использовать условные переменные вместо msleep()/wakeup(). &a.bmilekic; 2 апреля 2001 &status.done;
Удалить включаемые файлы <sys/mutex.h> из других включаемых файлов ядра, таких, как <vm/vm_zone.h>, <sys/resourcevar.h>, <sys/ucred.h> и <sys/mbuf.h>. &a.markm; 15 мая 2001 &status.done;
Зачистка различных файлов mp_machdep.c, унификация различных API для SMP, например, доставка IPI и так далее. &a.jhb; 15 мая 2001 &status.done;
Сделать большинство функций forward_* и forwarded_* машинно независимыми. &a.jhb; 15 мая 2001 &status.done;
Закончить машинно-зависимую часть поддержки SMP на платформе Alpha. &a.gallatin;, &a.dfr;, &a.jhb; 15 мая 2001 &status.done;
Преобразовать select() к использованию условных переменных. &a.tanimura; 15 мая 2001 &status.done;
Добавить блокировку "giant" вокруг подсистемы VM. &a.alfred; 13 июня 2001 &status.done;
Создать изменённый slab-распределитель для подсистемы mbuf. &a.bmilekic; 21 июня 2001 &status.done;
Добавить функцию witness_assert() для обработки добавлений блокировок. &a.jhb; 27 июня 2001 &status.done;
Расширить блокировки sx для поддержки операций по попытке блокирования. &a.jhb; 27 июня 2001 &status.done;
Задокументировать KTR. &a.jhb; 28 июня 2001 &status.done;
Сделать fork_return, fork_exit, ast и userret машинно-независимыми. &a.jhb; 29 июня 2001 &status.done;
Сделать свойство savecrit из sched_lock процесса сохраняемым и восстанавливаемым в mi_switch и инициализируемым в fork_exit. &a.jhb; 30 июня 2001 &status.done;
Создать цикл ast(). &a.jhb; 10 августа 2001 &status.done;
Добавить операции upgrade/downgrade блокировки sx. Alexander Kabaev, &a.jasone; 13 августа 2001 &status.done;
Реализовать семафоры. &a.jasone; 14 августа 2001 &status.done;
Добавить поддержку upgrade/downgrade в witness. &a.jhb; 23 августа 2001 &status.done;
Сделать основной объём cpu_wait() и cpu_exit() машинно-независимым. &a.peter; 9 сентября 2001 &status.done;
Разделить NFS на клиентскую и серверную части. &a.peter; 18 октября 2001 &status.done;
Отделить taskqueues. &a.arr;, &a.jhb; 25 октября 2001 &status.done;
Добавить ссылку на ucred в каждый тред. &a.jhb; 25 октября 2001 &status.done;
Сделать большинство связанного с процессорами машинно-независимым. &a.jhb; 11 декабря 2001 &status.done;
Сделать в критическом разделе сохраняемым состояние для каждого треда, вместо для каждой блокировки, чтобы межблокировочный цикл блокировки работал корректно. &a.jhb; 17 декабря 2001 &status.done;
Заменить специфичный для APIC imen_mtx на машинно-независимый icu_lock для защиты контроллеров прерываний и связанных данных в ядре для i386 и alpha. &a.jhb; 20 декабря 2001 &status.done;
Использовать в критическом разделе для каждого треда вложенный уровень в мьютексе и код треда прерывания для автоматического определения, когда не нужно вытеснять задачу. Это делает флаги MTX_NOSWITCH, SWI_SWITCH и SWI_NOSWITCH ненужными, так как ядро сможет само определить своё правильное поведение. &a.jhb; 5 января 2002 &status.done;
Отделить структуры filedesc и file. &a.tanimura;, &a.alfred; 12 января 2002 &status.done;
Блокировка структур pgrp, session и sigio. &a.tanimura; 23 февраля 2002 &status.done;
Блокировка реализации конвейера, но не sigio/fown и взаимодействия с VM &a.alfred; 27 февраля 2002 &status.done;
Перейти к явному подсчёту ссылок на программные vnode. &a.phk; 8 марта 2002 &status.done;
Инициализация пула мьютексов заранее, чтобы блокировки sx можно было использовать для VM. &a.green; 14 марта 2002 &status.done;
Поместить глобальную блокировку (sellock) вокруг структур selinfo, чтобы исправить различные обратные последовательности блокировок, и сделать select() работающим с MP. &a.alfred;, &a.davidc; 14 марта 2002 &status.done;
Избавиться от Giant в системных вызовах read, write, pread, pwrite, выделяя Giant на уровне файловых операций на каждую подсистему для сокетов, VFS и так далее. &a.alfred; 15 марта 2002 &status.done;
Отделить структуры модулей ядра. &a.arr; 18 марта 2002 &status.done;
Отделить глобальные данные компоновщика ядра. &a.arr; 18 марта 2002 &status.done;
Переписать распределитель памяти ядра, чтобы он стал slab-распределителем, использующим кэши каждого процессора. &a.jeff; 21 марта 2002 &status.done;
Заменить неправильное использование машинно-зависимый критический раздел API на отключение прерываний при помощи специального API по их выключению. &a.imp;, &a.dfr;, &a.benno;, &a.jhb; 21 марта 2002 &status.done;
Отделить доступ к совместно используемой структуре "параметров процесса" через соответствующую защиту этой структуры и ссылок на неё. &a.mini; 31 марта 2002 &status.done;
Перейти от блокировок flags/tsleep на блокировки sx для защиты дерева sysctl от обновлений во время выполнения sysctl-операций. &a.mini; 1 апреля 2002 &status.done;
Создать/перенести пользовательский инструмент для управления дампами по KTR-событиям. &a.jake; 1 апреля 2002 &status.done;
Создать макросы MTX_SYSINIT и SX_SYSINIT, которые разрешены для инициализации блокировок, независящих от подсистемы. &a.arr; 2 апреля 2002 &status.done;
Отделить глобальную переменную уровня безопасности. &a.arr; 2 апреля 2002 &status.done;
Сделать grow_stack() машинно-независимой. Возможно, даже макросом или встраиваемой функцией. &a.alc; 6 апреля 2002 &status.done;
Блокировка использования p_fd, что в противном случае приводит к разрушению p_fd и аварийному завершению при большой нагрузке. Начать с глобальной и перейти к блокировке на уровне процесса. &a.alfred;, &a.tanimura; 8 апреля 2002 &status.done;
Блокировка структуры pargs. &a.mini; 9 апреля 2002 &status.done;
Сделать {o,}sigreturn() MPSAFE. &a.alc; 11 апреля 2002 &status.done;
Переписать распределитель памяти ядра, чтобы Giant не требовался для операций malloc() или free(). &a.jeff; 2 мая 2002 &status.done;
Заменить комплексную схему блокировки shared/exclusive в VM-системе на полностью эксклюзивную схему lockmgr, упрощая блокировку и удаление потенциальные случаи livelock/deadlock. &a.green;, &a.alc; 3 мая 2002 &status.done;
Отказаться от Giant в системных вызовах readv/writev в стиле read/write/pread/pwrite, как только malloc больше не потребуется Giant при обработке структур iovec для uio. &a.alc; 9 мая 2002 &status.done;
Отказаться от Giant в mprotect(), minherit() и madvise(), чтобы он больше не выделялся и не освобождался напрямую. &a.alc; 18 мая 2002 &status.done;
Обновить API для suser() и p_can*() API, чтобы принимать треды вместо процессов. &a.jhb; 18 мая 2002 &status.done;
Широкий переход к td_ucred от p_ucred, как только появятся все зависимости от KSE. &a.jhb; 18 мая 2002 &status.done;
Добавить проверку witness_sleep() к uma_zalloc() для отслеживания кода, вызывающего malloc() или uma_zalloc() при удержании неоткладываемых блокировок. &a.jhb; 20 мая 2002 &status.done;
Оптимизировать поддержку UP, заменив циклы блокировки на одну, выполняющую только вход в критичный раздел и выходы. &a.jhb; 21 мая 2002 &status.done;
Заставить спящие мьютексы повернуться, если текущий держатель блокировки выполняется на другом процессоре. &a.jhb; 21 мая 2002 &status.done;
Добавить поддержку для pause-инструкции IA32 для передвижения циклов в блокировках. &a.jhb; 21 мая 2002 &status.done;
Сделать KTRACE пишущим в трассировочные файлы асинхронно. &a.jhb; 7 июня 2002 &status.done;
Избавиться от Giant в modnext(2), modfnext(2), modstat(2) и modfind(2). &a.arr; 25 июня 2002 &status.done;
Исправить синхронизацию очистки TLB и invlpg() на x86 SMP. &a.peter; 12 июля 2002 &status.done;
Сделать cpu_coredump машинно-независимым. &a.peter; 7 сентября 2002 &status.done;
Добавить блокировку подсистемы в коду сбора статистики. &a.arr; 11 сентября 2002 &status.done;
Исправить SIGXPU и другие вещи типа #if 0 в mi_switch(). &a.jhb; 30 сентября 2002 &status.done;
Отделение реализации MAC из TrustedBSD. &a.rwatson; 11 ноября 2002 &status.done;
Блокировка обработчиков событий. &a.msmith;, &a.mini;, &a.jhb; 11 марта 2003 &status.done;
Исправить PHOLD(), чтобы она блокировалась для гарантированного PS_INMEM. &a.jhb; 22 апреля 2003 &status.done;
Исправить различные procfs_machdep.c, которые не должны использовать sched_lock. &a.jhb; 22 апреля 2003 &status.done;
Блокировка всех ссылок на полномочия процессов и удалить Giant из системных вызовов, связанных с полномочиями процессов. &a.jhb; 1 мая 2003 &status.done;
Объединить структуры procsig и sigacts, перенести новую структуру sigacts из U-области о добавить соответствующую блокировку. &a.jhb; 13 мая 2003 &status.done;
Удалить Giant из системных вызовов kill() и killpg(). &a.jhb; 13 мая 2003 &status.done;
Улучшить реализацию пула мьютексов, разрешив создание и использование нескольких динамически распределяемых пулов с настраиваемыми размерами пулов и параметрами мьютексов. &a.truckman; 16 июля 2003 &status.done;
Создать инструмент профилирования мьютексов для ядра, чтобы замерять использование и поведение мьютексов ядра. &a.eivind;, &a.des; 31 марта 2002 &status.done;
Отделить реализацию конвейеров: оптимизации VM.   4 октября 2003 &status.done;
Повторно реализовать код прерываний i386 и SMP, чтобы SMP-ядра работали на UP-машинах и SMP можно было включить в GENERIC. &a.jhb; 3 ноября 2003 &status.done;
Реализовать общие подходы для использования при блокировках без ожиданий. &a.jhb; 11 ноября 2003 &status.done;
Разделение witness_lock() на witness_checkorder() и witness_lock(). witness_checkorder() должна вызываться до получения блокировки, чтобы увеличить вероятность обнаружения неправильного порядка следования блокировок и выдачи предупреждения об этом до возникновения ситуации взаимной блокировки. witness_lock() будет просто обновлять внутреннее состояние witness, отражающее факт получения блокировки. &a.jhb; 24 января 2004 &status.done;
Блокировка ограничений ресурсов по каждому процессу. &a.mtm;, &a.jhb; 4 февраля 2004 &status.done;
Реализовать абстракцию очереди пауз для использования как в msleep(), так и условных переменных. Эта новая абстракция должна использовать хэш-таблицу очередей пауз с перемещаемой блокировкой в каждой цепочке очереди пауз, похожей на проходные цепочные блокировки, чтобы сделать sched_lock проще. &a.jhb; 27 февраля 2004 &status.done;
Удаление Giant из jail(2). &a.arr;, &a.rwatson; 23 апреля 2004 &status.done;
Добавить блокировки для подсистем NFSv2, сервера NFSv3, позволяющие выполнять обращения к вышестоящему уровню и другим элементам, связанным с сетью, без Giant. &a.rwatson; 24 июля 2004 &status.done;
Реализовать ядро полностью с вытесняемой многозадачностью. &a.jhb; 24 ноября 2004 &status.done;
Блокировка реализации конвейера: проблемы связаны с sigio/fown &a.alfred; 24 ноября 2004 &status.done;
Блокировка кода SysV IPC. &a.alfred; 24 ноября 2004 &status.done;
Блокировать инструмент замера конфликтов для замера влияния различных блокировок, в том числе Giant, и разрешить более управляемую оптимизацию стратегий производительности и блокировки. &a.rwatson; 24 ноября 2004 &status.done;
Блокировка структуры proc. &a.jhb; 20 февраля 2001 &status.wip;
Отделение подсистемы tty. Dick Garner, Jeremy Scofield, &a.tmm;, &a.phk; 24 июля 2004 &status.wip;
Исправить блокировку часов, которая должна быть одинаковой на всех платформах. &a.jhb; 16 ноября 2001 &status.wip;
Использовать блокировку процесса и счётчики ссылок на процесс для защиты интерфейсов отладки (и procfs). &a.jhb; 27 февраля 2002 &status.wip;
Использовать блокировку процессов для защиты sysctl-вызовов мониторинга процесса, включая те, что используются 'ps' и сопутствующими инструментами. &a.jhb; 27 февраля 2002 &status.wip;
Отделить инфраструктуру newbus для поддержки точного управления драйверами. &a.imp; 28 февраля 2002 &status.wip;
Удалить флаг совместимости системного вызова с MP из таблицы системных вызовов, и добавить исключительные mtx_lock/unlock для Giant ко всем системным вызовам. &a.dillon;, &a.mux;, &a.rwatson; 24 июля 2004 &status.wip;
Документирование архитектуры SMPng. &a.jhb;, &a.rwatson; 28 февраля 2002 &status.wip;
Переход к совместной блокировке VOP_GETATTR() для уменьшения блокировки во время выполнения частых простых операций с VFS. Модификация namei() в целях предоставления флага LOOKUP_SHARED, который показывает, что требуемая блокировка может быть совместной, а не исключительной. &a.jeff; 11 марта 2002 &status.wip;
Отделение иерархии sysctl и методов доступа. &a.mini; 9 апреля 2002 &status.wip;
Документирование существующей блокировки vm_map и проверка её корректности. &a.alc; 18 мая 2002 &status.wip;
Документирование существующей блокировки vm_object и проверка её корректности. &a.alc; 4 мая 2002 &status.wip;
Отделение структур linker_file_t в компоновщике ядра. &a.arr; 19 июня 2002 &status.wip;
Пересмотр стратегии блокировки и корректности операций VFS, исправление различных режимов сбоев, связанных с включением добавлений VFS-вызовов. &a.jeff; 10 декабря 2002 &status.wip;
Документирование стратегии блокировки внутри vnode, её вычистка, удаление внутренних блокировок, переключение на sx-блокировки. &a.jeff; 10 декабря 2002 &status.wip;
Реализовать упрощённое переключение треда прерываний (обмен контекстами) на i386. &a.bmilekic;, &a.kan; 10 декабря 2002 &status.wip;
Реализовать упрощённое переключение треда прерываний (обмен контекстами) на sparc64. &a.jake; 10 декабря 2002 &status.wip;
Переход от использования lockmgr в VM к использованию мьютекса или исключительного sxlock. Избавиться от Giant во всех VM, кроме для компонентов vm_object/VFS и vm_page/pmap. &a.alc; 10 декабря 2002 &status.wip;
Модификация API драйверов устройств, чтобы разрешить драйверам более просто делить код на "в контексте прерывания" и "в треде прерывания" для более быстрого подтверждения прерываний. Это уменьшит латентность обработки прерываний. &a.peter; 4 октября 2003 &status.wip;
Создать механизм в структуре cdevsw для защиты драйверов, не принимающих во внимание треды. &a.jhb; 15 мая 2001 &status.stalled;
Сделать printf() безопасной для вызова практически в любом месте во избежание патовых блокировок. &a.cp; 15 мая 2001 &status.stalled;
Удалить параметр приоритетности из tsleep(), msleep() и cv_*wait*().   12 января 2001 &status.new;
Повторно реализовать kqueue при помощи условных переменных.   15 марта 2001 &status.new;
Сделать атомарные операции в SMP-коде условными, что используется для статистики в целях отладки. &a.peter; 15 марта 2001 &status.new;
Добавить новую регулярную проверку для существующих процессов на предмет отсутствия блокировок. &a.jhb; 13 июня 2001 &status.new;
Задание приоритетов для условных переменных, семафоров и sx-блокировок.   7 сентября 2001 &status.new;
Убрать максимум schedcpu(), предпочтя обновления по событиям.   7 сентября 2001 &status.new;
Исправить *hold (например, crhold) на возврат ссылки на объект.   7 сентября 2001 &status.new;
Добавить регулярную проверку на блокировки lockmgr.   7 сентября 2001 &status.new;
Добавить сдвигаемые блокировки ICU на ia64.   4 января 2002 &status.new;
Быстрое избавление от Giant для VOP_READ() и VOP_WRITE().   25 февраля 2002 &status.new;
Перенос забора Giant в системные вызовы Linux i386 ABI.   25 февраля 2002 &status.new;
Перенос захвата Giant в системные вызовы Linux AXP ABI.   25 февраля 2002 &status.new;
Перенос захвата Giant в системные вызовы SVR4 i386 ABI.   25 февраля 2002 &status.new;
Перенос захвата Giant в системные вызовы OSF/1 AXP ABI.   25 февраля 2002 &status.new;
Перенос захвата Giant в системные вызовы IBCS i386 ABI.   25 февраля 2002 &status.new;
Расширение инструмента профилирования мьютексов на профилирование также и sx-блокировок. &a.eivind;, &a.des; 1 апреля 2002 &status.new;
Реализовать atomic_fetchadd() для данных int и long с версиями acq и rel.   23 мая 2002 &status.new;
Реализовать простой API счётчика ссылок, использующий атомарные операции, для замены блокировок, которые всего лишь защищают счётчики ссылок.   23 мая 2002 &status.new;
Добавить проверку witness_sleep() для copyin/out() и s/fuword(). &a.jhb; 7 июня 2002 &status.new;

В этой таблице перечислены подзадачи, которые нужно выполнить для того, чтобы сделать стек сетевых протоколов многопоточным.

Задача Ответственный Последнее обновление Состояние
Защитить очереди сетевых интерфейсов. &a.jlemon; 24 ноября 2000 &status.done;
Отделение IP. &a.jennifer;, &a.hsu; 10 июня 2002 &status.done;
Отделение TCP. &a.jennifer;, &a.hsu;, &a.sam;, &a.rwatson; 24 ноября 2004 &status.done;
Отделение UDP. &a.jennifer;, &a.hsu;, &a.rwatson; 24 ноября 2004 &status.done;
Отделение счётчиков ссылок ifaddr. &a.hsu; 18 декабря 2002 &status.done;
Отделение списка ifnet. &a.hsu; 21 декабря 2002 &status.done;
Отделение деревьев radix. &a.hsu; 23 декабря 2002 &status.done;
Отделение ARP. &a.hsu; 16 января 2003 &status.done;
Блокировка raw IP. &a.sam;, &a.rwatson; 24 июля 2004 &status.done;
Отделение сокетов divert. &a.sam; 4 октября 2003 &status.done;
Отделение ipfw2. &a.sam; 4 октября 2003 &status.done;
Отделение DUMMYNET. &a.sam; 4 октября 2003 &status.done;
Отделение моста ethernet. &a.sam; 4 October 2003 &status.done;
Отделение очередей фрагментирования IP. &a.rwatson; 4 октября 2003 &status.done;
Отделение таблиц маршрутизации. &a.sam; 4 октября 2003 &status.done;
Отделение FAST_IPSEC. &a.sam; 4 октября 2003 &status.done;
Разрешить параллельные записи в обработке isr. &a.rwatson;, &a.sam; 11 октября 2003 &status.done;
Блокировка "интерфейса сброса" if_disc. &a.rwatson; 9 марта 2004 &status.done;
Блокировка "интерфейса передачи IPv6-to-IPv4 TCP" if_faith. &a.sam;, &a.rwatson; 9 марта 2004 &status.done;
Блокировка "общего интерфейса туннелирования" if_gif. &a.rwatson; 9 марта 2004 &status.done;
Пересмотр поддержки туннеля ECN (ip_ecn.c). &a.rwatson; 9 марта 2004 &status.done;
Блокировка if_tap глобально и на уровне softc. &a.rwatson; 23 апреля 2004 &status.done;
Блокировка if_tun глобально и на уровне softc. &a.rwatson; 23 апреля 2004 &status.done;
Блокировка netatalk/aarp.c. &a.rwatson; 23 апреля 2004 &status.done;
Кэширование MAC-метки сокета в метке inpcb сокетов IPv4, чтобы эта метка могла безопасно использоваться на уровне inet без блокировок самого сокета. &a.rwatson; 23 апреля 2004 &status.done;
Подпрограммы инкапсуляции IP (ip_encap.c). &a.rwatson; 23 апреля 2004 &status.done;
Блокировка globals в loopback-интерфейсе (if_loop.c). &a.rwatson; 23 апреля 2004 &status.done;
Использование m_tags в if_gif для ограничения замкнутых конфигураций, вместо статического счётчика, не совместимого с MPSAFE. &a.ru; 23 апреля 2004 &status.done;
Блокировка netatalk DDP PCB. &a.rwatson; 23 апреля 2004 &status.wip;
Разрешить выполнение маршрута передачи IP без Giant. &a.sam; 1 декабря 2003 &status.done;
Блокировка протоколов домена &unix; и fifofs. &a.sam;, &a.rwatson; 24 июля 2004 &status.done;
Giant-блокировка NFS-сервера для исключения so_upcall() без Giant &a.rwatson; 24 июля 2004 &status.done;
Блокировка мета-данных клонирования интерфейсов. &a.brooks; 24 июля 2004 &status.done;
Применение комбинации блокировок сокета и его буфера, кэширования меток для меток MAC в сокетах, так чтобы их можно было безболезненно использовать без Giant. &a.rwatson; 24 июля 2004 &status.done;
При диспетчеризации сообщений сокета маршрутизации использовать netisr для избежания повторного входа в код сокета из кода маршрутизации, решив вопросы последовательности блокировок. &a.rwatson; 24 июля 2004 &status.done;
Введение блокировки accept для защиты от подтверждения неполных и полных очередей на сокетах, ждущих соединения. &a.rwatson; 24 июля 2004 &status.done;
Разбиение операций wakeup, append с буфером сокета, изменения состояния сокета, резервирования буфера сокета, его очистки и так далее на _locked() и неблокированные версии, устранить условную блокировку. &a.rwatson; 24 июля 2004 &status.done;
Блокировка AARP, AppleTalk Address Resoluton Protocol. &a.rwatson; 24 июля 2004 &status.done;
Исправление проблем с синхронизацией данных кэша pull/push в sosend(), soreceive(), позволив им работать без Giant. &a.rwatson; 24 июля 2004 &status.done;
Защитить глобальные счетчики/лимиты сокета и номера генерации мьютексом. &a.rwatson; 24 июля 2004 &status.done;
Блокировка выделения отдельных мета-данных в модулях netgraph, связанных с интерфейсом. &a.rwatson; 24 июля 2004 &status.done;
Блокировка полей OOB буфера сокета в TCP/IP и IPX. &a.rwatson; 24 июля 2004 &status.done;
Добавить MSG_NBIO, чтобы fifofs могла избежать манипуляций с SO_NBIO, связанных с риском. &a.truckman; 24 июля 2004 &status.done;
Защитить все использования so_count блокировкой сокета. &a.rwatson; 24 июля 2004 &status.done;
Перенести состояние, связанное с буфером сокета, из so_state в sb_state, чтобы оно могло быть блокировано мьютексом буфера сокета. &a.rwatson; 24 июля 2004 &status.done;
Ввести временную глобальную блокировку для блокирования поля if_label, используемого в технологии MAC. &a.rwatson; 24 июля 2004 &status.done;
Выделить поведение, специфичное для VFS, из fdrop_locked(), и получать Giant в пообъектных методах fo_close, а не в fdrop_locked(), чтобы конвейеры и сокеты могли работать с fo_close() без Giant. &a.rwatson; 24 июля 2004 &status.done;
Перенос захвата Giant в операцию статистики дескриптора файла fo_stat(), а не забирать его в fstat(), чтобы вызовы fstat() с сокетами и конвейерами работали без Giant. &a.rwatson; 24 июля 2004 &status.done;
Не удерживать блокировки сокета в течение входа в методы переключения протокола, позволяя методам протокола вызывать блокировки сокета после блокировок протоколов в порядке блокировки. &a.rwatson; 24 июля 2004 &status.done;
Портирование блокировки inpcb мьютексом и его установок из IPv4 в IPv6 &a.rwatson; 8 августа 2004 &status.done;
Добавление IFF_NEEDSGIANT, чтобы позволить if_start использовать Giant при работе с определёнными интерфейсами. Отложить if_start в очередь задач. &a.rwatson; 8 августа 2004 &status.done;
Отказаться от Giant в функциях stat(), fo_stat() для обеспечения работы stat для конвейеров и сокетов без Giant. &a.rwatson; 8 августа 2004 &status.done;
Добавить захваты блокировок TCP. &a.rwatson; 24 ноября 2004 &status.done;
Блокировка уровня сокетов. &a.sam;, &a.rwatson; 24 ноября 2004 &status.done;
Пересмотр кода таймера TCP. &a.rwatson; 24 ноября 2004 &status.done;
Анализ и снижение накладных расходов на сбор случайной информации в критических сетевых вызовах. &a.rwatson;, &a.markm; 24 ноября 2004 &status.done;
Позволить коду декларировать NET_NEEDS_GIANT(), принудительно устанавливающий Giant в сетевом стеке, если этот код вкомпилирован в ядро. &a.rwatson; 28 августа 2004 &status.done;
Отключить Giant в сетевом стеке в конфигурации по умолчанию. &a.rwatson; 28 августа 2004 &status.done;
Переход к использованию счётчика ссылок на дескриптор файла вместо счётчика ссылок на сокет для системных вызовов для работы с сокетами, во избежание излишних операций со счётчиком ссылок. &a.rwatson; 24 октября 2004 &status.done;
Блокировка syncache. &a.hsu;, &a.sam; 10 ноября 2003 &status.wip;
Блокировка IPv6. &a.sam;, &a.rwatson;, &a.ume;, &a.mlaier; 8 августа 2004 &status.wip;
Глобальная блокировка if_ppp для каждого softc &a.rwatson;, Maurycy Pawlowski-Wieronski <maurycy@fouk.org> 23 апреля 2004 &status.wip;
Блокировка структуры ifnet. &a.mlaier;, &a.luigi;, Maurycy Pawlowski-Wieronski <maurycy@fouk.org> 23 апреля 2004 &status.wip;
Блокировка списка адресов IPv4, IPv6 и atalk сетевых интерфейсов. &a.mlaier;, &a.rwatson; 8 августа 2004 &status.wip;
Блокировка пользователей кода сжатия BSD compress (bsd_comp.c) для защиты состояния процесса сжатия. &a.rwatson; 23 апреля 2004 &status.wip;
Блокировка глобальных состояний и состояний softc для преобразователя 6-в-4 (if_stf.c). &a.rwatson; 23 апреля 2004 &status.wip;
Разблокировка состояния global и softc для SLIP (if_sl.c). &a.rwatson; 23 апреля 2004 &status.wip;
Блокировка состояний global и softc для SPPP (if_sppsubr.c). &a.rik;, &a.rwatson; 23 апреля 2004 &status.wip;
Блокировка IGMP. &a.rwatson; 23 апреля 2004 &status.wip;
Дополнительная трассировка KTR для UMA, вызовов, прерываний и событий сети. &a.rwatson; 8 августа 2004 &status.wip;
Уменьшение действий перед блокировкой буфера сокета за счёт замены функций tsleep() и wakeup() на условную переменную. &a.tanimura; 21 апреля 2002 &status.new;
Блокировка драйвера "кадров ethernet" if_ef.   9 марта 2004 &status.new;
Блокировка IP ID. &a.rwatson; 23 апреля 2004 &status.new;

Известные проблемы

Проблема Последнее обновление Состояние
Время холостой работы процессора не передаётся процессам холостой работы. 20 сентября 2000 &status.resolved;
microuptime нарушает обратную совместимость. 4 октября 2000 &status.resolved;
microuptime() требует обратной совместимости 4 October 2000 &status.resolved;
Учёт процессов неточен (чем больше процессоров, тем ближе точность). 5 октября 2000 &status.resolved;
M_DEVBUF, вероятно, неправильный пул памяти для прерываний, и мы должны подумать о создании нового пула выделения памяти для этого. 9 февраля 2001 &status.resolved;
Отключение ПК-адаптера вызывает аварийное завершение из-за условных ошибок в коде треда обработки прерываний. 15 марта 2001 &status.resolved;
Машины SMP x86 видят прерывания NCPU * 100 clk и прерывания NCPU * 128 rtc. 15 мая 2001 &status.resolved;
Проверка будет бесконечно рекурсивной при получении Giant после паузы с блокировкой с возможностью установки паузы. 27 июня 2001 &status.resolved;
Последовательный gdb не работает, если заданы параметры boot_ddb и boot_gdb. 14 июля 2002 &status.resolved;
Последовательный gdb не работает на скорости 115200. 14 июля 2002 &status.resolved;
Последовательный gdb никогда не получает управление обратно, если был введён 'cont'. 14 июля 2002 &status.resolved;
Профилирование не работает. 20 февраля 2001 &status.unresolved;

Новости

Оставшаяся часть страницы структурирована в виде журнала с обратной хронологией записи.

28 августа 2004 30 октября 2003 13 января 2002 15 мая 2001 22 марта 2001 5 марта 2001 24 января 2001 12 января 2001 11 октября 2000 6 сентября 2000 5 сентября 2000 1 сентября 2000 30 августа 2000 12 августа 2000 3 августа 2000 6 июля 2000 5 июля 2000 3 июля 2000 26 июня 2000 25 июня 2000 19 июня 2000 &footer; diff --git a/ru/snapshots/index.sgml b/ru/snapshots/index.sgml index fa9dee0d99..51426438d8 100644 --- a/ru/snapshots/index.sgml +++ b/ru/snapshots/index.sgml @@ -1,171 +1,171 @@ - + %navincludes; %includes; ]> &header;

Что представляют собой снэпшоты?

Для улучшения общей системы выпуска релизов до их реального выхода в свет с возможными проблемами, мы теперь периодически выпускаем промежуточные тестовые релизы, которые называем снэпшотами. Они будут очень похожи на полные релизы, за исключением того, что будут несколько меньше.

Получение снэпшотов

На данный момент доступны следующие снэпшоты:

В настоящее время снэпшоты + href="&enbase;/doc/en_US.ISO8859-1/books/handbook/current-stable.html#CURRENT"> 6-CURRENT и + href="&enbase;/doc/en_US.ISO8859-1/books/handbook/current-stable.html#STABLE"> 5-STABLE выпускаются ежемесячно и размещаются по URL с адресом в формате &url.snapshots;/<month>_<year>/ где <year> обозначает год, а <month> обозначает месяц выпуска снэпшота. Каталог каждого снэпшота может содержать файл RELNOTES.TXT, в котором описываются изменения, внесённые в данный снэпшот.

Вещи, знание которых вам может понадобиться

В частности, перед тем, как получить и установить снэпшот-релиз, имейте в виду следующее:

Ваши отклики на эти снэпшоты, конечно, приветствуются. Они нужны не только нам - те, кто собирается опираться на FreeBSD для работы с критичными для бизнеса приложениями, должны приветствовать возможность получать обновляемые версии в структурированной форме. Вы можете также использовать эти снэпшоты в качестве материального доказательства тому, что ваш предложения были учтены и вы (к счастью) не столкнётесь ни с какими ненужными сюрпризами в следующем релизе. С другой стороны, если вы будете посылать нам гневные письма в следующем релизе и окажется, что вы никогда даже не пробовали использовать снэпшоты, ну, это распространяется на обе стороны!

Другие ресурсы

Вот некоторые связанные с этим информационные ресурсы. Заметьте, что они находятся в распоряжение людей, не входящих в Группу подготовки релизов FreeBSD. Эти сайты предоставляют снэпшоты FreeBSD в форме "живой файловой системы" и загрузочных образов ISO на ежедневной основе. Для выяснения подробностей посетите следующие ссылки и обратитесь к ним напрямую, если у вас есть вопросы.

&footer; diff --git a/ru/support/bugreports.sgml b/ru/support/bugreports.sgml index d4600fc661..cbce367c9a 100644 --- a/ru/support/bugreports.sgml +++ b/ru/support/bugreports.sgml @@ -1,72 +1,72 @@ - + - + %navincludes; %includes; ]> &header;

База данных сообщений о проблемах

Имеющиеся на данный момент сообщения о проблемах во FreeBSD отслеживаются при помощи базы данных GNATS.

Сообщение о проблеме во FreeBSD (PR) не обязательно является ошибкой собственно системы. В некоторых случаях это может быть сообщение об ошибке в документации (которые могут быть просто опечатками). В других случаях это может быть просто пожелание, которое посылающий хотел бы видеть реализованным во FreeBSD. Во многих случаях PR содержит порт, подготовленный к включению во FreeBSD в коллекцию портов и Пакетов.

Сообщения о проблемах появляются как 'открытые', и закрываются, когда поднятый вопрос решается. Кроме того, каждому PR для отслеживания присваивается уникальный идентификатор, который гарантирует то, что оно не потеряется. Многие изменения во FreeBSD включают идентификатор этого PR, который вызвал это изменение.

Сообщения о проблемах также могут быть посланы группе разработчиков с помощью команды send-pr(1), входящей в поставку FreeBSD, или посылкой сообщения на адрес freebsd-bugs@FreeBSD.org. Заметьте, что предпочтительней пользоваться командой send-pr, потому что сообщения, посланные в список рассылки не отслеживаются, как официальные сообщения о проблемах и могут потеряться в потоке остальных сообщений!

Перед тем, как послать сообщение о проблеме, вам будет полезно прочесть публикацию Написание сообщений о проблемах во FreeBSD. Эта статья описывает, когда вы должны формировать сообщение о проблеме, что вы должны включить в него, и как лучше всего его опубликовать. Некоторая полезная начальная информация есть также в статье Наставления по + href="&enbase;/doc/ru_RU.KOI8-R/articles/pr-guidelines/">Наставления по работе с сообщениями о проблемах.

&footer; diff --git a/ru/where.sgml b/ru/where.sgml index 571b5ca5b1..ddf39ffef0 100644 --- a/ru/where.sgml +++ b/ru/where.sgml @@ -1,181 +1,181 @@ + %navincludes; %includes; ]> &header;

Информация о релизах

Подробное описание уже вышедших, текущих и планируемых релизов. Обращайтесь сюда, чтобы узнать, какая версия FreeBSD является самой последней.

-

+

Установка FreeBSD

Существует много вариантов установки FreeBSD, включая инсталляцию с компакт-диска, дискет, раздела MS-DOS, магнитной ленты, анонимного ftp-сервера и NFS. Пожалуйста, взгляните на руководство по + href="&enbase;/doc/ru_RU.KOI8-R/books/handbook/install.html">руководство по установке, прежде чем скачивать полный дистрибутив FreeBSD. Если вы производите установку на машине, подключенной к Internet, вам достаточно скачать единственный файл с образом установочного диска!

Сайты распространения

Официальными каналами получения FreeBSD являются:

Если вы собираетесь скачать FreeBSD по ftp, проверьте, пожалуйста, список зеркальных серверов в Руководстве, чтобы найти ближайший к вам сайт. Чтобы узнать более подробную информацию о прошлых, настоящих и будущих релизах в общем, посетите страничку с информацией о релизах.

Если вы интересуетесь чисто экспериментальным снэпшотом FreeBSD-current (AKA &rel.current;-current), предназначенным только для разработчиков и тестеров, то обратитесь к серверу FTP ежедневных снэпшотов.

Приложения и утилиты

Коллекция пакаджей

Пакаджи FreeBSD представляют собой набор вспомогательного и прикладного программного обеспечения, которое было перенесено во FreeBSD. Пакаджи являются уже откомпилированными бинарными файлами, готовыми к установке и запуску на вашей системе.

Коллекция портов

Коллекция портов - это то же самое, что и коллекция пакаджей, но вместо уже откомпилированных бинарных файлов представляет собой набор необходимых патчей и файлов сценариев для компиляции исходных текстов. Для программного обеспечения, настройка которого должна быть сделана во время компиляции, версия в виде "порта" может оказаться более полезной, чем версия в виде "пакаджа".

Информация о том, как вы можете добавить ваши любимые программы в коллекцию портов, находится в - + Руководстве по созданию портов и в статье - Помощь + Помощь FreeBSD.

Коммерческое программное обеспечение

Начиная с FreeBSD Release 2.0.5, в поставку FreeBSD включаются демонстрационные версии некоторых коммерческих и условно-бесплатных программ. Кроме демо-версий, поставляемых с дистрибутивом FreeBSD, некоторое число поставщиков предлагают программное обеспечение специально для FreeBSD.

&footer;