diff --git a/ru_RU.KOI8-R/articles/contributing/article.sgml b/ru_RU.KOI8-R/articles/contributing/article.sgml index 6360461b66..58ad287dff 100644 --- a/ru_RU.KOI8-R/articles/contributing/article.sgml +++ b/ru_RU.KOI8-R/articles/contributing/article.sgml @@ -1,574 +1,582 @@ %articles.ent; ]>
Участие в проекте FreeBSD $FreeBSD$ В этой статье описаны различные способы, которыми отдельные лица и - организаций могут принять участие в Проекте FreeBSD. + организаций могут принять участие в Проекте FreeBSD. Джордан Хаббард Текст предоставил &tm-attrib.freebsd; &tm-attrib.ieee; &tm-attrib.general; участие Итак, вы хотите внести свой вклад во FreeBSD? Это великолепно! Жизнеспособность FreeBSD основана на помощи её пользователей. Ваша помощь не только принимается, она жизненно необходима для продолжения роста FreeBSD. Несмотря на уверения некоторых людей, вам не нужно быть гениальным программистом или персоной, лично связанной с руководящей группой FreeBSD, чтобы ваша помощь была принята. FreeBSD разрабатывает большое и увеличивающееся количество участников со всего мира, самого разного возраста и разных областей технической экспертизы. Работы, которую необходимо сделать, всегда больше, чем разработчиков, могущих её выполнить, и дополнительная помочь всегда приветствуется. Проект FreeBSD занимается операционной системой в целом, а не только ядром или несколькими отдельными утилитами. Таким образом, в нашем TODO-списке широкий спектр задач: от документации, бета-тестирования и презентаций до программы установки системы и специфических разработок уровня ядра. Люди любого уровня практически в любой области определённо смогут помочь проекту. Коммерческие структуры, связанные с использованием FreeBSD, также приглашаются к диалогу. Нужны ли вам особые расширения, для работы вашего продукта? Вы увидите, что мы отвечаем на ваши запросы, если они не слишком необычны. Вы работаете над дополнительными продуктами? Дайте нам знать! Мы сможем работать вместе над некоторыми его аспектами. Мир свободного программного обеспечения ставит под сомнение многие существующие представления о том, как программного обеспечение разрабатывается, продаётся и поддерживается, и мы настоятельно просим вас посмотреть на него ещё раз. Что нужно - + В следующем перечне представлены задачи и подпроекты, являющиеся некоторым отражением различных списков TODO и запросов пользователей. Текущие задачи не для программистов Многие люди, связанные с FreeBSD, не являются программистами. В - Проекте участвуют создатели документации, Web-дизайнеры и специалисты - по поддержке пользователей. Все, что им нужно для участия, это своё - время и желание учиться. + Проекте участвуют создатели документации, Web-дизайнеры и специалисты + по поддержке пользователей. Все, что им нужно для участия, это своё + время и желание учиться. Периодически читайте FAQ и Руководство. Если что-то описано - плохо, устарело или даже полностью неправильно, дайте нам знать. - Ещё лучше, если вы пришлёте нам исправление (выучить SGML не так - сложно, но и против посланий в формате ASCII никто возражать не - будет). + плохо, устарело или даже полностью неправильно, дайте нам знать. + Ещё лучше, если вы пришлёте нам исправление (выучить SGML не так + сложно, но и против посланий в формате ASCII никто возражать не + будет). Помогите перевести документацию FreeBSD на ваш родной язык. - Если документация на вашем языке уже существует, вы можете помочь - перевести дополнительные документы или проверить, не устарели ли - переводы. Первым делом взгляните на FAQ по - переводам в Учебнике проекта документирования FreeBSD. Вас - не призывают перевести все документы FreeBSD — как - доброволец, вы можете делать столько переводов, сколько захотите. - Если кто-то начал перевод, другие всегда присоединятся. Если у вас - есть время и желание перевести одну часть документации, пожалуйста, - переведите инструкции по установке. + переводам в Учебнике проекта документирования FreeBSD. Вас + не призывают перевести все документы FreeBSD — как + доброволец, вы можете делать столько переводов, сколько захотите. + Если кто-то начал перевод, другие всегда присоединятся. Если у вас + есть время и желание перевести одну часть документации, пожалуйста, + переведите инструкции по установке. Время от времени (или даже регулярно) читайте &a.questions; и - &ng.misc;. Вам может понравиться делиться своим опытом и помогать - людям решать их проблемы; иногда вы сможете узнать для себя что-то - новое! Эти форумы могут также стать источником идей, над которыми - вам стоит поработать. + &ng.misc;. Вам может понравиться делиться своим опытом и помогать + людям решать их проблемы; иногда вы сможете узнать для себя что-то + новое! Эти форумы могут также стать источником идей, над которыми + вам стоит поработать. - Текущие задачи для программистов + Текущие задачи для программистов Большинство задач, перечисленных здесь, требуют либо значительных - затрат времени, либо глубоких знаний ядра FreeBSD, либо того и другого. - Однако имеется также много полезных задач, которые подойдут для - воскресных хакеров. + затрат времени, либо глубоких знаний ядра FreeBSD, либо того и другого. + Однако имеется также много полезных задач, которые подойдут для + воскресных хакеров. Если вы работаете с FreeBSD-CURRENT и обладаете хорошим - подключением к Internet, то существует машина current.FreeBSD.org, которая строит полный - релиз ежедневно—сейчас и всегда. Попробуйте установить - самый последний релиз с этой машины и сообщите обо всех - обнаруженных при этом ошибках. + релиз ежедневно—сейчас и всегда. Попробуйте установить + самый последний релиз с этой машины и сообщите обо всех + обнаруженных при этом ошибках. Читайте &a.bugs;. Здесь может встретиться проблема, которую - вы сможете конструктивно прокомментировать или патчи, которые вы - можете протестировать. Либо вы можете даже попытаться исправить - какую-то проблему самостоятельно. + вы сможете конструктивно прокомментировать или патчи, которые вы + можете протестировать. Либо вы можете даже попытаться исправить + какую-то проблему самостоятельно. Если вы знаете о существовании каких-либо исправлений ошибок, - успешно применённых к -CURRENT, но ещё не перенесённых в -STABLE - после достаточно большого интервала времени (обычно несколько - недель), направьте коммиттеру вежливое напоминание. + успешно применённых к -CURRENT, но ещё не перенесённых в -STABLE + после достаточно большого интервала времени (обычно несколько + недель), направьте коммиттеру вежливое напоминание. Перенос стороннего программного обеспечения в каталог - src/contrib дерева исходных текстов. + src/contrib дерева + исходных текстов. Проверка актуальности кода в каталоге - src/contrib. + src/contrib. Построение из дерева исходных текстов (или её части) с - включением режима дополнительных предупреждений, избавление от - них. + включением режима дополнительных предупреждений, избавление от + них. Исправление предупреждений от портов, которые используют - недопустимые вызовы типа gets() или включают - файл объявлений malloc.h. + недопустимые вызовы типа gets() или включают + файл объявлений malloc.h. - Если вы создавали порты, пошлите ваши патчи авторам - оригинального программного обеспечения (это упростит вам жизнь при - выпуске следующей версии). + Если вы создавали порты и вам приходилось делать специфичные + для &os; исправления, пошлите ваши патчи авторам оригинального + программного обеспечения (это упростит вам жизнь при выпуске + следующей версии). Найдите копии официальных стандартов, например, &posix;. Вы - можете найти несколько ссылок на них на странице Web-сайта Проекта соответствия - FreeBSD стандартам C99 & POSIX. Сравните поведение FreeBSD - с тем, что определено стандартом. Если реакция отличается, - особенно в незначительных или непонятных разделах спецификации, - направьте об этом PR. Если можете, найдите, как исправить это и - включите в PR патч. Если вы полагаете, что в стандарте есть - ошибка, направьте запрос его разработчикам. + FreeBSD стандартам C99 & POSIX. Сравните поведение FreeBSD + с тем, что определено стандартом. Если реакция отличается, + особенно в незначительных или непонятных разделах спецификации, + направьте об этом PR. Если можете, найдите, как исправить это и + включите в PR патч. Если вы полагаете, что в стандарте есть + ошибка, направьте запрос его разработчикам. Предложите дополнительные задачи для этого списка! Работа с базой сообщений об ошибках PR - база сообщений об ошибках + база сообщений об ошибках Список сообщений об ошибках - FreeBSD содержит все актуальные сообщения о проблемах и запросы - на улучшения, которые были посланы пользователями FreeBSD. База данных - PR содержит задачи как для программистов, так и не для них. - Просмотрите открытые PR, найдите те, что привлекут ваше внимание. - Некоторые из них могут быть очень простыми, требующими лишь ещё одной - пары глаз, чтобы посмотреть и подтвердить, что предлагаемое в PR - исправление достаточно. Другие могут быть гораздо сложнее и даже вовсе - не содержать исправления. + url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi">Список + сообщений об ошибках FreeBSD содержит все актуальные + сообщения о проблемах и запросы на улучшения, которые были посланы + пользователями FreeBSD. База данных PR содержит задачи как для + программистов, так и не для них. Просмотрите открытые PR, найдите те, + что привлекут ваше внимание. + Некоторые из них могут быть очень простыми, требующими лишь ещё одной + пары глаз, чтобы посмотреть и подтвердить, что предлагаемое в PR + исправление достаточно. Другие могут быть гораздо сложнее и даже вовсе + не содержать исправления. Начните с тех PR, которые никому ещё не назначены. Если PR уже - за кем-то закреплено, но содержит проблему, которую вы можете решить, - направьте по электронной почте письмо человеку, которому назначено это - PR, и спросите, можете ли вы поработать над ней—у них уже может - готов патч для тестирования или какие-то идеи, которые можно вместе - обсудить. + за кем-то закреплено, но содержит проблему, которую вы можете решить, + направьте по электронной почте письмо человеку, которому назначено это + PR, и спросите, можете ли вы поработать над ней—у них уже может + готов патч для тестирования или какие-то идеи, которые можно вместе + обсудить. Выберите один из пунктов со странички <quote>идей</quote> Список проектов и идей для добровольцев также доступен для людей, желающих помочь проекту &os;. Список постоянно обновляется и содержит пункты, как для программистов, так и для не программистов, с информацией о каждом проекте. Как принять участие в работе Характер участия в работе над системой обычно подпадает под одну или несколько из следующих 5 категорий: Сообщения об ошибках и отзывы общего характера Идеи или пожелания общего технического - характера должны направляться по электронной почте в адрес &a.hackers;. - Подобным же образом тот, кто интересуется такими вещами (и устойчив к - большому потоку почты!) может подписаться на - список рассылки &a.hackers;. Обратитесь к большому потоку почты!) может подписаться на + список рассылки &a.hackers;. Обратитесь к Руководству - FreeBSD для получения дополнительной информации об этом и - других списках рассылки. - + FreeBSD для получения дополнительной информации об этом и + других списках рассылки. + Если вы нашли ошибку или предлагаете внести какое-то конкретное - исправление, пожалуйста, отправьте сообщение при помощи программы - &man.send-pr.1; или её - Web-эквивалента. Постарайтесь заполнить все поля в сообщении - об ошибке. Если его размер оно не превышает 65 Кбайт, включите все - патчи непосредственно в сообщение. Если патч предназначен для дерева - исходных текстов, поместите [PATCH] в теме - сообщения. При включении патчей не используйте - технику cut-and-paste, потому что при этом символы табуляции - преобразуются в пробелы и патч становится непригодным к использованию. - Если объём патчей превышает 20 Кбайт, лучше их упаковать и обработать - архив утилитой &man.uuencode.1;. + исправление, пожалуйста, отправьте сообщение при помощи программы + &man.send-pr.1; или её + Web-эквивалента. Постарайтесь заполнить все поля в сообщении + об ошибке. Если его размер оно не превышает 65 Кбайт, включите все + патчи непосредственно в сообщение. Если патч предназначен для дерева + исходных текстов, поместите [PATCH] в теме + сообщения. При включении патчей не используйте + технику cut-and-paste, потому что при этом символы табуляции + преобразуются в пробелы и патч становится непригодным к использованию. + Если объём патчей превышает 20 Кбайт, лучше включать их в сообщение + в сжатом виде, для чего упакуйте их (например, при помощи + &man.gzip.1; или &man.bzip2.1;) и обработайте архив утилитой + &man.uuencode.1;. После отправки сообщения вы должны получить подтверждение и номер - для отслеживания. Сохраните этот номер, чтобы использовать его в - дальнейшем при направлении подробностей о проблеме по электронной почте - на адрес &a.bugfollowup;. Используйте номер в качестве темы письма, например, - "Re: kern/3377". Дополнительная информация о любом - сообщении об ошибке должна направляться этим способом. + для отслеживания. Сохраните этот номер, чтобы использовать его в + дальнейшем при направлении подробностей о проблеме по электронной почте + на адрес &a.bugfollowup;. Используйте номер в качестве темы письма, например, + "Re: kern/3377". Дополнительная информация о любом + сообщении об ошибке должна направляться этим способом. Если вы не получили подтверждения в течение разумного периода - времени (от 3 дней до недели, в зависимости от вашего подключения к - электронной почты) или по какой-то причине не можете воспользоваться - командой &man.send-pr.1;, то можете попросить кого-нибудь направить - сообщение за вас на адрес &a.bugs;. + времени (от 3 дней до недели, в зависимости от вашего подключения к + электронной почты) или по какой-то причине не можете воспользоваться + командой &man.send-pr.1;, то можете попросить кого-нибудь направить + сообщение за вас на адрес &a.bugs;. Прочтите также эту статью, - чтобы узнать, как писать хорошие сообщения о проблемах. + url="&url.articles.problem-reports;/article.html">эту статью, + чтобы узнать, как писать хорошие сообщения о проблемах. Изменения в документации - посылка документации + посылка документации Изменения в документации обсуждаются в &a.doc;. Пожалуйста, - посмотрите Учебник - Проекта документирования FreeBSD для получения полных - инструкций. Посылайте свои пожелания и изменения (принимаются даже - самые небольшие!) при помощи &man.send-pr.1;, как это описано в разделе - о сообщениях об ошибках и общих - пожеланиях. + посмотрите Учебник + Проекта документирования FreeBSD для получения полных + инструкций. Посылайте свои пожелания и изменения (принимаются даже + самые небольшие!) при помощи &man.send-pr.1;, как это описано в разделе + о сообщениях об ошибках и общих + пожеланиях. Изменения к имеющемуся исходному коду FreeBSD-CURRENT Добавление нового исходного кода или внесение изменений в - существующий является не такой простой задачей, и зависит во многом от - того, насколько вы далеки от текущего состояния разработок во FreeBSD. - Существуют специальные промежуточные релизы FreeBSD, известные как - FreeBSD-CURRENT, которые доступны несколькими разными - способами, удобными разработчикам, активно работающим над системой. - Обратитесь к - Руководству FreeBSD для получения дополнительной информации - о получении и использовании FreeBSD-CURRENT. + существующий является не такой простой задачей, и зависит во многом от + того, насколько вы далеки от текущего состояния разработок во FreeBSD. + Существуют специальные промежуточные релизы FreeBSD, известные как + FreeBSD-CURRENT, которые доступны несколькими разными + способами, удобными разработчикам, активно работающим над системой. + Обратитесь к + Руководству FreeBSD для получения дополнительной информации + о получении и использовании FreeBSD-CURRENT. Если вы работаете с несколько устаревшими исходными текстами, то - ваши изменения иногда могут оказаться уже ненужными или слишком - большими, чтобы повторно интегрировать их во FreeBSD. Уменьшить такой - риск можно, подписавшись на списки рассылки &a.announce; и &a.current;, - в которых обсуждается текущее состояние системы. + ваши изменения иногда могут оказаться уже ненужными или слишком + большими, чтобы повторно интегрировать их во FreeBSD. Уменьшить такой + риск можно, подписавшись на списки рассылки &a.announce; и &a.current;, + в которых обсуждается текущее состояние системы. - Предположим, что вы смогли получить получить актуальные исходные - тексты, на базе которых делали свои изменения. Тогда следующим шагом - является создание набора файлов, отражающих ваши изменения для их - посылки тем, кто отвечает за поддержку FreeBSD. Это делается при - помощи команды &man.diff.1;. + Предположим, что вы смогли получить актуальные исходные + тексты, на базе которых делали свои изменения. Тогда следующим шагом + является создание набора файлов, отражающих ваши изменения для их + посылки тем, кто отвечает за поддержку FreeBSD. Это делается при + помощи команды &man.diff.1;. Предпочтительным форматом &man.diff.1; для посылки патчей является - унифицированная выдача, создаваемая командой diff - -u. Однако для патчей, которые существенно изменяют какой-то - блок кода, контекстный формат, создаваемый командой diff - -c, может оказаться более читаемым и поэтому более - предпочтительным. + унифицированная выдача, создаваемая командой diff + -u. Однако для патчей, которые существенно изменяют какой-то + блок кода, контекстный формат, создаваемый командой diff + -c, может оказаться более читаемым и поэтому более + предпочтительным. - diff + diff К примеру: - - &prompt.user; diff -c oldfile newfile + &prompt.user; diff -c oldfile newfile + + или + + &prompt.user; diff -c -r olddir newdir - или + будут создавать такой набор контекстных diff-файлов для данного + файла с исходным текстом или целой иерархии каталогов. - &prompt.user; diff -c -r olddir newdir + Подобным же образом - будут создавать такой набор контекстных diff-файлов для данного файла - с исходным текстом или целой иерархии каталогов. + &prompt.user; diff -u oldfile newfile - Подобным же образом - &prompt.user; diff -u oldfile newfile - или - &prompt.user; diff -u -r olddir newdir + или - сделают то же самое, но в унифицированном diff-формате. + &prompt.user; diff -u -r olddir newdir + + сделают то же самое, но в унифицированном diff-формате. Дополнительную информацию можно найти на странице справки по - команде &man.diff.1;. + команде &man.diff.1;. После того, как вы получили набор diff-файлов (которые вы можете - протестировать командой &man.patch.1;), вы должны прислать их для - включения во FreeBSD. Воспользуйтесь программой &man.send-pr.1;, как - это описано в разделе о сообщениях об - ошибках и общих замечаниях. Не посылайте - diff-файлы в список рассылки &a.hackers;, они будут потеряны! Нам - очень нужна ваша помощь (это добровольный проект!); из-за нашей - занятости мы не сможем рассмотреть его сразу, и он будет находиться в - базе данных PR, пока мы не сделаем это. Укажите на вашу посылку, - включив строку [PATCH] в тему сообщения. + протестировать командой &man.patch.1;), вы должны прислать их для + включения во FreeBSD. Воспользуйтесь программой &man.send-pr.1;, как + это описано в разделе о сообщениях об + ошибках и общих замечаниях. Не посылайте + diff-файлы в список рассылки &a.hackers;, они будут потеряны! Нам + очень нужна ваша помощь (это добровольный проект!); из-за нашей + занятости мы не сможем рассмотреть его сразу, и он будет находиться в + базе данных PR, пока мы не сделаем это. Укажите на вашу посылку, + включив строку [PATCH] в тему сообщения. - uuencode + uuencode Если вы считаете, что это нужно (к примеру, вы добавляли, удаляли - или переименовывали файлы), то объедините ваши изменения в + или переименовывали файлы), то объедините ваши изменения в tar-файл и обработайте его программой - &man.uuencode.1;. Принимаются также и архивы, созданные программой - &man.shar.1;. + &man.uuencode.1;. Принимаются также и архивы, созданные программой + &man.shar.1;. Если ваше изменение потенциально может оказаться сомнительным - (например, вы не уверены в отсутствии лицензионных ограничений - относительно его распространения или просто не готовы выпустить его без - тщательной проверки, то вы должны послать его напрямую в список - рассылки &a.core;, а не через &man.send-pr.1;. В списке рассылки + (например, вы не уверены в отсутствии лицензионных ограничений + относительно его распространения или просто не готовы выпустить его без + тщательной проверки, то вы должны послать его напрямую в список + рассылки &a.core;, а не через &man.send-pr.1;. В списке рассылки &a.core; участвует гораздо меньшее количество людей, которые выполняют - основную ежедневную работу над FreeBSD. Заметьте, что эта группа - также очень занята, так что сюда письма нужно - посылать только в случае действительной необходимости. + основную ежедневную работу над FreeBSD. Заметьте, что эта группа + также очень занята, так что сюда письма нужно + посылать только в случае действительной необходимости. Пожалуйста, обратитесь к справке по &man.intro.9; и &man.style.9; - для получения некоторой информации о стиле кодирования. Мы надеемся, - что вы хотя бы примете эту информацию к сведению перед тем, как - прислать нам свой код. + для получения некоторой информации о стиле кодирования. Мы надеемся, + что вы хотя бы примете эту информацию к сведению перед тем, как + прислать нам свой код. Новый код или большие дополнительные пакеты В случае значительного объёма присланного вами кода и - соответствующей работы, либо добавления к FreeBSD важной новой функции, - становится практически всегда необходимо посылать изменения в виде - tar-файлов, обработанных uuencode, или передавать их на Web-сайт или - FTP-сервер для получения другими людьми. Если у ас нет доступа к - Web- или FTP-серверам, попросите в соответствующем списке рассылке - FreeBSD кого-нибудь разместить изменения за вас. + соответствующей работы, либо добавления к FreeBSD важной новой функции, + становится практически всегда необходимо посылать изменения в виде + tar-файлов, обработанных uuencode, или передавать их на Web-сайт или + FTP-сервер для получения другими людьми. Если у ас нет доступа к + Web- или FTP-серверам, попросите в соответствующем списке рассылке + FreeBSD кого-нибудь разместить изменения за вас. При работе с большим объёмом кода неизбежно возникает вопрос о - соблюдении авторских прав. Допустимыми лицензионными соглашениями для - кода, включаемого во FreeBSD, являются следующие: + соблюдении авторских прав. Допустимыми лицензионными соглашениями для + кода, включаемого во FreeBSD, являются следующие: - лицензионное соглашение BSD + лицензионное соглашение BSD Лицензионное соглашение BSD. Оно является самым - предпочтительным из-за отсутствия дополнительных - условий и общей привлекательности для коммерческих - компаний. Проект FreeBSD далёк от того, чтобы выступать против - коммерческого использования, но активно популяризирует такое - пересечение коммерческих интересов, которое позволит постепенно - запустить механизм инвестиций во FreeBSD. + предпочтительным из-за отсутствия дополнительных + условий и общей привлекательности для коммерческих + компаний. Проект FreeBSD далёк от того, чтобы выступать против + коммерческого использования, но активно популяризирует такое + пересечение коммерческих интересов, которое позволит постепенно + запустить механизм инвестиций во FreeBSD. - - GPL - GNU General Public License - + + GPL + GNU General Public License + - GNU General Public License + GNU General Public License GNU General Public License, или GPL. Это - лицензионное соглашение не очень популярно у нас из-за объёма - требований, которые нужно выполнять всем, кто собирается - использовать код в коммерческих целях. Однако, учитывая абсолютное - превосходство объёма этого кода (компилятор, ассемблер, инструменты - форматирования текста и так далее) было бы глупо отказываться от - дополнительных разработок, подпадающих под действие этой лицензии. - Код, распространяемый по условиям лицензионного соглашения GPL - также размещается в отдельной части дерева исходных текстов, в - /sys/gnu или - /usr/src/gnu, и поэтому легко идентифицируется - всяким, для кого GPL представляет проблему. + лицензионное соглашение не очень популярно у нас из-за объёма + требований, которые нужно выполнять всем, кто собирается + использовать код в коммерческих целях. Однако, учитывая абсолютное + превосходство объёма этого кода (компилятор, ассемблер, инструменты + форматирования текста и так далее) было бы глупо отказываться от + дополнительных разработок, подпадающих под действие этой лицензии. + Код, распространяемый по условиям лицензионного соглашения GPL + также размещается в отдельной части дерева исходных текстов, в + /sys/gnu или + /usr/src/gnu, и поэтому + легко идентифицируется всяким, для кого GPL представляет + проблему. Разработки, подпадающие под действие других типов лицензионных - соглашений, должны быть тщательно просмотрены перед принятием - решения об их включении во FreeBSD. Разработки, на которые - распространяются жёсткие ограничения коммерческих лицензионных - соглашений, обычно отвергаются, а авторам всегда предлагается - распространять подобные изменения по собственным каналам. + соглашений, должны быть тщательно просмотрены перед принятием + решения об их включении во FreeBSD. Разработки, на которые + распространяются жёсткие ограничения коммерческих лицензионных + соглашений, обычно отвергаются, а авторам всегда предлагается + распространять подобные изменения по собственным каналам. Для того, чтобы на вашу работу распространялись условия - лицензионного ограничения в стиле BSD, разместите - следующий текст в самом начале каждого файла с исходными текстами, - которые вы хотите защитить, заменив текст между %% - соответствующей информацией: + лицензионного ограничения в стиле BSD, разместите + следующий текст в самом начале каждого файла с исходными текстами, + которые вы хотите защитить, заменив текст между %% + соответствующей информацией: Copyright (c) %%полные_номера_годов%% - %%ваше_имя%%, %%ваш_штат%% %%ваш_почтовый_индекс%%. + %%ваше_имя%%, %%ваш_штат%% %%ваш_почтовый_индекс%%. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer as the first lines of this file unmodified. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY %%your_name_here%% ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL %%your_name_here%% BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - $Id$ + $Id$ Для вашего удобства копия этого текста размещена в файле /usr/share/examples/etc/bsd-style-copyright. - + Деньги, оборудование или Internet-доступ Мы всегда с удовольствием примем материальную помощь, нужную для - дальнейшего существования Проекта FreeBSD, а в добровольном проекте, - типа нашего маленькая помощь может послужить долго! Безвозмездная - передача вычислительной техники также очень важна для расширения списка - поддерживаемого периферийного оборудования, так как обычно у нас нет - средств для самостоятельного его приобретения. + дальнейшего существования Проекта FreeBSD, а в добровольном проекте, + типа нашего маленькая помощь может послужить долго! Безвозмездная + передача вычислительной техники также очень важна для расширения списка + поддерживаемого периферийного оборудования, так как обычно у нас нет + средств для самостоятельного его приобретения. <anchor id="donations">Финансовая помощь The FreeBSD Foundation является некоммерческой организацией, - освобождённой от уплаты налогов, созданной с целью реализации целей - Проекта FreeBSD. Как организация типа 501(c)3, Фонд обычно - освобождается от федерального налога США на прибыль. Суммы - безвозмездных пожертвований таким организациям часто вычитаются - из общей суммы налогооблагаемой прибыли. + освобождённой от уплаты налогов, созданной с целью реализации целей + Проекта FreeBSD. Как организация типа 501(c)3, Фонд обычно + освобождается от федерального налога США на прибыль. Суммы + безвозмездных пожертвований таким организациям часто вычитаются + из общей суммы налогооблагаемой прибыли. Финансовая помощь может быть направлена в виде чеков на адрес:
The FreeBSD Foundation 7321 Brockway Dr. Boulder, CO 80303 USA
The FreeBSD Foundation теперь может принимать помощь через Web - по системе PayPal. Для направления помощи, пожалуйста, посетите - Web-сайт - Фонда. + по системе PayPal. Для направления помощи, пожалуйста, посетите + Web-сайт + Фонда. Дополнительную информацию о Фонде FreeBSD можно найти на - странице, содержащей - вводную информации о Фонде FreeBSD. Для того, чтобы - обратиться в Фонд по электронной почте, напишите письмо на адрес + странице, содержащей + вводную информации о Фонде FreeBSD. Для того, чтобы + обратиться в Фонд по электронной почте, напишите письмо на адрес bod@FreeBSDFoundation.org.
Помощь в виде оборудования - безвозмездная помощь + безвозмездная помощь Проект FreeBSD с удовольствие примет помощь в виде оборудования, - которому он найдёт хорошее применение. Если вы заинтересованы в - передаче оборудования, пожалуйста, обратитесь к Руководству Центра - пожертвований. + пожертвований. Помощь в виде доступа в Internet Мы всегда воспользуемся новым зеркалирующим сервером для FTP, WWW - или cvsup. Если вы захотите выступить в роли - такого зеркала, пожалуйста, обратитесь к статье о cvsup. Если вы захотите выступить в роли + такого зеркала, пожалуйста, обратитесь к статье о зеркалировании FreeBSD - для получения более полной информации. + для получения более полной информации.
- diff --git a/ru_RU.KOI8-R/articles/custom-gcc/Makefile b/ru_RU.KOI8-R/articles/custom-gcc/Makefile index b7bd286403..d40ab56b02 100644 --- a/ru_RU.KOI8-R/articles/custom-gcc/Makefile +++ b/ru_RU.KOI8-R/articles/custom-gcc/Makefile @@ -1,18 +1,21 @@ # # $FreeBSD$ # +# Original revision: 1.1 +# + DOC?= article FORMATS?= html WITH_ARTICLE_TOC?= YES INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED?= SRCS= article.sgml URL_RELPREFIX?= ../../../.. DOC_PREFIX?= ${.CURDIR}/../../.. .include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/ru_RU.KOI8-R/articles/custom-gcc/article.sgml b/ru_RU.KOI8-R/articles/custom-gcc/article.sgml index 3dd920e894..e81b0bec7f 100644 --- a/ru_RU.KOI8-R/articles/custom-gcc/article.sgml +++ b/ru_RU.KOI8-R/articles/custom-gcc/article.sgml @@ -1,234 +1,234 @@ %articles.ent; ]>
Использование более новых версий <application>GCC</application> и <application>binutils</application> c коллекцией портов &os; Martin Matuska
mm@FreeBSD.org
$FreeBSD$ &tm-attrib.freebsd; &tm-attrib.general; 2009 The &os; Documentation Project В этой статье описано, как использовать более новые версии компиляторов GCC и набора утилит binutils из коллекции портов &os;. Здесь также обсуждаются специализированные конфигурации GCC.
Предисловие Компилятор, поставляемый с &os; 8.0, — это GCC версии 4.2.1. В базовую систему &os; включены binutils версии 2.15. Это довольно-таки старые версии, и в них, между прочим, отсутствует поддержка новых инструкций CPU, таких как SSSE3, SSE4.1, SSE4.2 и т.п. Ввиду лицензионных ограничений, новые версии этих приложений не будут включены в базовую систему. К счастью, есть возможность использовать более новую версию компилятора GCC (например, версию 4.4) установив его из коллекции портов &os;. Подготовка Установка binutils из портов Чтобы задействовать все новые функциональные возможности последней версии GCC, желательна установка наиболее новой версии binutils. Это не является обязательным, но без обновления binutils вы не получите поддержку новых инструкций CPU. Для того, чтоб установить наиболее новую версию binutils используя коллекцию портов &os;, выполните следующую команду: &prompt.root; cd /usr/ports/devel/binutils && make install Установка GCC из портов В коллекции портов &os; можно найти несколько новых версий GCC. В нашем примере мы устанавливаем стабильную версию 4.4. Однако, возможно установить предыдущую или более новую (развивающуюся) версию (например: lang/gcc43 или lang/gcc45). Для установки одного из вышеупомянутых портов GCC, наберите следующую команду: &prompt.root; cd /usr/ports/lang/gcc44 && make install Настройка портов на использование требуемой версии <application>GCC</application> Для использования требуемой версии GCC, установленной из коллекции портов &os, требуется дополнительная конфигурация системы. Изменения в <filename>make.conf</filename> Добавьте следующие строки в /etc/make.conf (или исправьте существующие): .if !empty(.CURDIR:M/usr/ports/*) && exists(/usr/local/bin/gcc44) CC=gcc44 CXX=g++44 CPP=cpp44 .endif В качестве альтернативы, можно установить вручную переменные окружения ${CC} и ${CPP}. Примеры, приведённые выше, сделаны для GCC версии 4.4. Для того, чтобы использовать gcc43, замените "gcc44" на "gcc43" и "4.4" на "4.3" и т.п. Исправления в <filename>libmap.conf</filename> Многие установленные из портов приложения и библиотеки скомпонованы с libgcc_s или libstdc++. В базовую систему уже включены эти библиотеки, но от более старой версии GCC (версии 4.2.1). Чтобы предоставить rltd (и ldd) правильные версии, добавьте следующие записи к /etc/libmap.conf (или измените существующие): libgcc_s.so.1 gcc44/libgcc_s.so.1 libgomp.so.1 gcc44/libgomp.so.1 libobjc.so.3 gcc44/libobjc.so.2 libssp.so.0 gcc44/libssp.so.0 libstdc++.so.6 gcc44/libstdc++.so.6 Пример выше приведен для GCC версии 4.4. Если вы используете gcc43, замените "gcc44" на "gcc43" и т.д. Следует отметить, что все вышеупомянутые библиотеки обратно совместимы с библиотеками, поставляемыми с базовой системой. Некоторые C++ программы могут перестать работать, если отсутствует корректная компоновка этих библиотек. Если невозможно скомпоновать их все, рекомендуется сделать это по крайней мере для libstdc++.so. Специальные установки <literal>CFLAGS</literal> для коллекции портов Для портов, не поддерживающих специальные установки CFLAGS, исправьте /etc/make.conf согласно следующему примеру: .if !empty(.CURDIR:M/usr/ports/*) && exists(/usr/local/bin/gcc44) CC=gcc44 CXX=g++44 CPP=cpp44 CFLAGS+=-mssse3 .endif Возможно заменить полностью CFLAGS и/или определить CPUTYPE. Мы рекомендуем устанавливать CPUTYPE так как во многих портах флаги оптимизации выбираются, базируясь на значении этой переменной. Исключение портов, которые не собираются с новой версией <application>GCC</application> Для того, чтобы исключить порты, которые не собираются со специальной версией GCC, исправьте /etc/make.conf согласно следующему примеру: .if !empty(.CURDIR:M/usr/ports/*) && exists(/usr/local/bin/gcc44) .if empty(.CURDIR:M/usr/ports/net/openldap*) CC=gcc44 CXX=g++44 CPP=cpp44 .endif .endif Пример, приведённый выше, отменяет принудительное использование gcc 4.4 для портов net/openldap*. Также возможно указать больше портов в одной строке: .if empty(.CURDIR:M/usr/ports/net/openldap*) && empty(.CURDIR:M/usr/ports/xxx/yyy) && ... Влияние на производительность исполняемых файлов Использование GCC версии 4.4 с разрешенным набором инструкций SSSE3 (если они поддерживаются CPU) может дать до 10% увеличения средней производительности исполняемых файлов. В некоторых тестах прирост производительности превышал 20% (например, в обработке мультимедийных данных). В таблице, размещенной на , показано сравнение GCC в настоящее время включенного в базу &os;, GCC версии 4.3 и GCC версии 4.4 с различными комбинациями CFLAGS. Для сравнений производительности использовался тестовый пакет perlbench.
diff --git a/ru_RU.KOI8-R/articles/cvs-freebsd/article.sgml b/ru_RU.KOI8-R/articles/cvs-freebsd/article.sgml index 50a7cc89e0..ae41a46b63 100644 --- a/ru_RU.KOI8-R/articles/cvs-freebsd/article.sgml +++ b/ru_RU.KOI8-R/articles/cvs-freebsd/article.sgml @@ -1,734 +1,734 @@ %articles.ent; ]>
Настройка хранилища CVS - подход FreeBSD Stijn Hoop
stijn@win.tue.nl
2001 2002 2003 Stijn Hoop $FreeBSD$ &tm-attrib.freebsd; &tm-attrib.general; В этой статье описаны шаги, которые я предпринял для настройки хранилища CVS, использующего те же самые скрипты, что используются в проекте FreeBSD в их настройке. Это имеет некоторые преимущества перед стандартной настройкой CVS, в том числе более точный контроль доступа к дереву исходных текстов и посылку содержательных сообщений электронной почты при каждом коммите.
Введение Большинство программных проектов с открытым кодом используют CVS в качестве системы управления исходным кодом. Хотя CVS весьма хороша в этом качестве, у неё есть свои неудобства и недостатки. Одним из них является то, что совместное использование дерева исходных текстов с другими разработчиками может быстро привести к кошмарным проблемам при администрировании, особенно если кто-то захочет защитить части дерева от общедоступности. FreeBSD является одним из проектов, использующим CVS. Здесь также имеет большое количество разработчиков, разбросанных по всему миру. Они разработали некоторые скрипты, облегчающие управление хранилищем. Недавно эти скрипты были пересмотрены и приведены в порядок Джозефом Картаузером (Joseph Karthauser), в целях облегчения их использования в других проектах. В этой статье описан один из методов использования новых скриптов. Чтобы извлечь максимум информации из этой статьи, вы должны владеть основными методами работы с CVS. Первоначальная настройка Наверное, лучше сначала выполнить эту процедуру с пустым тестовым хранилищем, чтобы понять все последствия ваших действий. Как обычно в таких случаях, у вас должны иметься свежие читаемые резервные копии! Инициализация хранилища Первым делом при настройке нового хранилища необходимо его инициализировать, для чего выдать CVS такую команду: &prompt.user; cvs -d path-to-repository init Результатом ее выполнения будет созданный CVS служебный - каталог CVSROOT, в котором выполняется вся + каталог CVSROOT, в котором выполняется вся настройка. Группа пользователей хранилища Теперь мы создадим группу, которая будет владеть хранилищем. В этой группе должны присутствовать все коммиттеры, для того, чтобы они могли писать в хранилище. Для этой группы мы примем стандартное для FreeBSD название ncvs. &prompt.root; pw groupadd ncvs Затем вы должны при помощи команды &man.chown.8; сменить владельца и группу для только что добавленного каталога: &prompt.root; chown -R :ncvs path-to-your-repository Это нужно для того, чтобы никто не мог записывать в хранилище, не являясь членом группы. Получение исходных текстов - Теперь вам нужно получить каталог CVSROOT из + Теперь вам нужно получить каталог CVSROOT из хранилища FreeBSD. Проще всего это делается извлечением с анонимного зеркала CVS FreeBSD. Обратитесь к соответствующей главе Руководства для получения дополнительной информации. Мы будем полагать, что исходные тексты хранятся в подкаталоге - CVSROOT-freebsd текущего каталога. + CVSROOT-freebsd текущего каталога. Копирование скриптов FreeBSD Теперь мы скопируем исходные тексты FreeBSD из - CVSROOT в наше хранилище. Если вы знакомы с + CVSROOT в наше хранилище. Если вы знакомы с CVS, то для вас может иметь смысл попытаться импортировать скрипты, чтобы облегчить синхронизацию с последующими версиями. Однако при этом оказывается, что CVS имеет в этой области недостаток: при - импортировании исходных текстов в каталог CVSROOT + импортировании исходных текстов в каталог CVSROOT она не будет обновлять необходимые административные файлы. Чтобы в этом убедиться, вам нужно проверить каждый файл после импортирования, при этом смысл cvs import теряется. Поэтому рекомендуемым методом является простое копирование скриптов. Не имеет значения, как вы относитесь к предыдущему параграфу—результат один и тот же. Просто поместите ваш - CVSROOT и скопируйте файлы FreeBSD поверх ваших + CVSROOT и скопируйте файлы FreeBSD поверх ваших локальных (неизмененных) копий: &prompt.user; cvs -d path-to-your-repository checkout CVSROOT &prompt.user; cd CVSROOT &prompt.user; cp ../CVSROOT-freebsd/* . &prompt.user; cvs add * Заметим, что вы, скорее всего, получите несколько предупреждений о том, что некоторые каталоги не были скопированы; это нормально, вам они не нужны. Скрипты Теперь у вас есть рабочий каталог и точная копия скриптов, которые используются в проекте FreeBSD для работы с хранилищем. Далее следует краткое описание назначения каждого файла. access - по умолчанию при стандартной настройке этот файл не используется. Он применяется в специфичных для проекта FreeBSD настройках, где он управляет доступом к хранилищу. Вы можете удалить этот файл, если вы не собираетесь использовать такую настройку. avail - этот файл управляет доступом к хранилищу. В нем вы можете указать группы людей, которым разрешен доступ к хранилищу, а также запретить коммиты на уровне каталогов. Вы должны поднастроить его так, чтобы он содержал группы и каталоги, имеющиеся в вашем хранилище. cfg.pm - этот файл анализирует вашу конфигурацию и содержит настройки по умолчанию. Вы не должны изменять этот файл. Вместо этого размещайте ваши изменения в конфигурации в файле cfg_local.pm. cfg_local.pm - этот файл содержит все настраиваемые параметры системы. Вы должны настраивать все параметры здесь, например, куда посылается почта при коммите, с каких хостов можно выполнять коммиты, и прочее. Ниже дается более полная информация об этом. checkoutlist - эти файлы перечисляют все файлы, управляемые CVS в этом каталоге. Вы должны отредактировать его для удаления некоторых специфичных для FreeBSD файлов. commit_prep.pl - этот скрипт выполняет различные проверки перед выполнением коммита, в зависимости от того, включили ли вы их в cfg_local.pm. Вам не нужно его трогать. commitcheck - этот скрипт вызывается непосредственно из CVS. Сначала он проверяет, с использованием cvs_acls.pl, имеет ли коммитер доступ к указанной части дерева, а затем запускает commit_prep.pl для выполнения различных проверок перед коммитом. Если они выполнились нормально, то CVS позволит выполнить коммит. Вам не нужно трогать этот файл. commitinfo - этот файл используется в CVS для определения того, какой скрипт запускать перед коммитом—в данном случае commitcheckl. Вам не нужно трогать этот файл. config - конфигурационный файл для этого хранилища. Вы должны изменять его при необходимости, но большинство администраторов могут оставить все настройки по умолчанию. Дополнительную информацию о параметрах, которые могут быть здесь заданы, можно найти в руководстве по CVS. cvs_acls.pl - этот скрипт идентифицирует пользователя и то, имеет ли он доступ к дереву. Это делается на основе информации в файле avail. Вам не нужно трогать этот файл. cvsignore - этот файл перечисляет файлы, которые CVS не должна помещать в хранилище. Вы можете отредактировать его по своему усмотрению. Более полная информация об этом файле находится в руководстве по CVS. cvswrappers - этот файл используется в CVS для включения или выключения расширения ключевых слов, или должен ли файл считаться бинарным. Вы можете редактировать его по своему усмотрению. Более полная информация об этом файле находится в руководстве по CVS. Имейте ввиду, что опции CVS -t и -f некорректно работают в режиме клиент/сервер. edithook - этот файл больше не используется, но оставлен по историческим причинам. Вы можете спокойно удалить этот файл. editinfo - CVS использует этот файл для настройки редактора. FreeBSD не использует эту функциональность, так как обработка сообщений для журнала выполняется в файлах verifymsg и logcheck. Это происходит по той причине, что editinfo некорректно работает в режиме клиент/сервер, или в случаях когда используются опции -m или -F. Вам не нужно трогать этот файл. exclude - в этом файле перечислены регулярные выражения, используемые commit_prepl.pl для выделения файлов, в которых могут не содержаться заголовки с номером версии. В настройке FreeBSD все файлы содержащиеся в хранилище должны иметь заголовок с версией (типа $FreeBSD$). Все файлы с именами, которые соответствуют одной из строк этого файла, исключаются из проверки. Вы должны добавить выражения в этот файл, если вы помещаете в хранилище файлы, которые не могут иметь заголовки с версиями. Для целей установки скриптов лучшим - решением может оказаться исключение CVSROOT/ + решением может оказаться исключение CVSROOT/ из проверки заголовков. log_accum.pl - это скрипт, который принимает журнальное сообщение в виде, данном скриптом logcheck, и добавляет его к файлу журнала в хранилище для хранения резервной копии. Он также отрабатывает посылку сообщения по электронной почте на адрес, который вы зададите (в файле cfg_local.pm). Он подключается к CVS через loginfo. Вам не нужно трогать этот файл. logcheck - при коммите этот файл анализирует сообщение для журнала, которое составляют коммиттеры, и пытается его некоторым образом улучшить. Он подключается к CVS через logcheck. Вам не нужно трогать этот файл. Этот скрипт зависит от ряда локальных модификаций CVS, сделанный во FreeBSD: эта версия читает журнальное сообщение повторно после того, как этот скрипт его модифицирует. Стандартная версия CVS этого не делает, что делает этот скрипт бесполезным, так как он не может модифицировать журнальное сообщение, хотя может проверить его на предмет правильности синтаксиса. CVS версии 1.11.2 и выше может быть настроен, чтоб иметь поведение подобное FreeBSD, путем установки опции RereadLogAfterVerify=always в файле config. loginfo - этот файл используется CVS для управления того, куда посылается протокольная информация. С помощью этого файла подключается log_accum.pl. Вам не нужно трогать этот файл. modules - этот файл сохраняет своё традиционное назначение в CVS. Вы должны удалить модули FreeBSD из стандартной версии. Вы можете редактировать этот файл по своему усмотрению. Более полная информация об этом файле находится в руководстве по CVS. notify - этот файл используется в CVS в том случае, если кто-то задаст отслеживание файла. Это не используется в хранилище FreeBSD. Вы можете редактировать его по своему усмотрению. Более полная информация об этом файле находится в руководстве по CVS. options - этот файл специфичен для версии CVS от FreeBSD, но также поддерживается версией для Debian. Он содержит ключевое слово для расширения в заголовках версий. Вы должны заменить это на ключевое слово, которое вы задали в файле cfg_local.pm (если вы используете эту возможность, которая в настоящее время специфична для FreeBSD). rcsinfo - этот файл отображает каталоги в хранилище на файлы шаблонов, как например rcstemplate. По умолчанию FreeBSD использует один шаблон для всего хранилища. Вы можете добавлять другие к этому файлу по своему усмотрению. rcstemplate - этот файл является актуальным файлом шаблона, который видят коммиттеры, когда помещают что-то в хранилище. Вы должны отредактировать его для описания различных дополнительных параметров, которые вы определили в cfg_local.pm. tagcheck - эти файлы управляют доступом к созданию меток в хранилище. Стандартная для FreeBSD версия не позволяет создавать метки с именами типа RELENG* из-за пересечения с процессом создания релизов. Вы должны отредактировать этот файл по вашему усмотрению. taginfo - этот файл ставит в соответствие операции с метками над каталогами хранилища скриптам управления доступом, например tagcheck. Вам не нужно трогать этот файл. unwrap - этот скрипт нужен для автоматической обратной обработки (unwrap) двоичных файлов (посмотрите cvswrappers) при извлечении. Это не используется в текущей настройке FreeBSD по причине того, что не работает с конфигурацией клиент/сервер. Вам не нужно трогать этот файл. verifymsg - этот файл ставит в соответствие каталогам хранилища скрипты вторичной обработки журнальных сообщений, например logcheck. Вам не нужно трогать этот файл. wrap - этот скрипт может быть использован для автоматической обработки (wrap) двоичных файлов (посмотрите cvswrappers) при помещении в хранилище. Это не используется в текущей настройке FreeBSD, по причине того, что не работает с конфигурацией клиент/сервер. Вам не нужно трогать этот файл. Настройка скриптов Следующим шагом является настройка скриптов так, чтобы они работали в ваших условиях. Вы должны просмотреть все файлы в каталоге и выполнить ваши настройки. В частности, вы может потребоваться отредактировать следующие файлы: Если вы не хотите использовать специфичные для FreeBSD возможности скриптов, то вы можете без последствий удалить файл access: &prompt.user; cvs rm -f access Отредактируйте avail так, чтобы он содержал различные каталоги хранилища, доступом к которым вы хотите управлять. Обязательно сохраните строчку avail||CVSROOT, иначе вы заблокируете сами себя на следующем шаге. Другими параметрами, которые вы можете добавить в этот файл, являются группы коммиттеров. По умолчанию FreeBSD использует файл access для перечисления всех коммиттеров, но вы можете использовать любой файл. Вы можете также добавить группы, если хотите (синтаксис описан в начале файла cvs_acls.pl). Отредактируйте файл cfg_local.pm так, чтобы он содержал параметры, которые вы хотите. В частности, вы должны взглянуть на такие пункты настройки: %TEMPLATE_HEADERS - они обрабатываются скриптами ведения протокола, и вставляются ниже почтового сообщения, если они присутствуют и не являются пустыми в сообщении при коммите. Вы можете, наверное, удалить строки PR и MFC after. И, конечно, вы можете добавить свои собственные. $MAIL_BRANCH_HDR - если вы хотите в каждое сообщение при коммите вставлять заголовок, описывающий ветку, в которую был выполнен коммит, задайте это в соответствии с вашим окружением. Или оставьте это пустым, если не хотите иметь такой заголовок. @COMMIT_HOSTS - задайте здесь список хостов, с которых можно выполнять коммиты. $MAILADDRS - задайте здесь адрес администратора или списка, в который должны направляться почтовые сообщения при коммите. @LOG_FILE_MAP - измените этот массив по своему усмотрению - каждое регулярное выражение сравнивается с каталогом коммита, и протокольное сообщение при коммите - сохраняется в подкаталоге commitlogs + сохраняется в подкаталоге commitlogs в указанном файле. $COMMITCHECK_EXTRA - если вы не хотите использовать специфичные для FreeBSD проверки доступа, то вы должны удалить определения $COMMITCHECK_EXTRA из этого файла. Изменение параметра $IDHEADER гарантированно работает только на платформах FreeBSD; это зависит от специфичных для FreeBSD модификаций в CVS. Вы можете проверить cfg.pm на предмет того, какие другие параметры могут быть изменены, но перечисленное выше является достаточным подмножеством. Отредактируйте exclude для удаления специфичных для FreeBSD записей (например, всех строк, которые начинаются с ^ports/ и так далее). Более того, закомментируйте строки, начинающиеся с ^CVSROOT/, и добавьте одну строку только с ^CVSROOT/. После установки обработчика (wrapper) вы можете добавить свои заголовки к файлам в каталоге - CVSROOT и восстановить эти строки, но теперь + CVSROOT и восстановить эти строки, но теперь они будут иметь смысл, только когда вы попытаетесь выполнить коммит позже. Отредактируйте файл modules и удалите всё, что относится к FreeBSD. Добавьте собственные модули, если хотите. Этот шаг необходим, если только вы задали значение для $IDHEADER в cfg_local.pm (что работает только при использовании модифицированной во FreeBSD версии CVS). Отредактируйте файл options так, чтобы он соответствовал метке, которую вы задали в cfg_local.pm. Глобальный поиск и замена FreeBSD на вашу метку должны сработать. Отредактируйте файл rcstemplate так, чтобы он содержал те же самые ключевые слова, что заданы в cfg_local.pm. Опционально удалите проверки FreeBSD из tagcheck. Вы можете просто добавить exit 0 в начало файла, чтобы запретить все проверки при установке метки. Последним действием, которое нужно сделать перед тем, как закончить работу, является проверка того, что протоколы коммитов могут сохраняться. По умолчанию они сохраняются в хранилище, в - подкаталоге commitlogs каталога - CVSROOT. Этот каталог должен быть создан, так + подкаталоге commitlogs каталога + CVSROOT. Этот каталог должен быть создан, так что выполните следующее: &prompt.user; mkdir commitlogs &prompt.user; cvs add commitlogs А теперь, после тщательной проверки, вы должны выполнить коммит ваших изменений. Убедитесь, что вы дали сами себе доступ к каталогу - CVSROOT в вашем avail до + CVSROOT в вашем avail до того, как его делать, так как в противном случае вы заблокируете сами себя. Так что убедитесь, что всё именно так, как вы и предполагали, а затем выполните следующее: &prompt.user; cvs commit -m '- Initial FreeBSD scripts commit' Тестирование настройки Вы готовы к первому тестированию: принудительному коммиту в файл avail, чтобы убедиться, что всё работает так, как ожидалось. &prompt.user; cvs commit -f -m 'Forced commit to test the new CVSROOT scripts' avail Если всё работает, поздравляем! Теперь у вас имеется работающая настройка скриптов FreeBSD для вашего хранилища. Если CVS всё ещё о чём-то сообщает, вернитесь и проверьте, все ли вышеупомянутые шаги были выполнены правильно. Специфичная для FreeBSD настройка Проект FreeBSD сам по себе использует несколько другую настройку, в которой также используются файлы из подкаталога - freebsd каталога FreeBSD - CVSROOT. Проект использует их из-за большого + freebsd каталога FreeBSD + CVSROOT. Проект использует их из-за большого количества коммиттеров, которые все должны быть в одной и той же группе. Поэтому был написан простой обработчик, проверяющий, что люди имеют правильные права на выполнение коммита, а затем устанавливающий идентификатор группы, соответствующий идентификатору хранилища. Если вашему хранилищу это тоже нужно, то шаги для выполнения этого описаны ниже. Но сначала обзор связанных с этим файлов. Файлы, используемые в настройке FreeBSD access - этот файл управляет информацией о доступе. Вы должны отредактировать этот файл для включения всех участников вашего проекта. freebsd/commitmail.pl - этот файл больше не используется, но оставлен по историческим причинам. Вам не нужно трогать этот файл. freebsd/cvswrap.c - это исходный текст обработчика CVS, который вам нужно установить, чтобы проверки доступа реально заработали. Дополнительная информация об этом ниже. Вы должны отредактировать маршруты в макросах ACCESS и REALCVS так, чтобы они соответствовали вашей настройке. freebsd/mailsend.c - этот файл нужен в настройке FreeBSD для списков рассылки. Вам не нужно трогать этот файл. Процедура Отредактируйте файл access так, чтобы он содержал только ваше имя пользователя. Отредактируйте cvswrap.c так, чтобы он содержал правильный маршрут для вашей настройки. Это определено в макросе по имени ACCESS. Вы должны также изменить расположение реального выполнимого файла cvs, если оно не подходит к вашей ситуации. Для стандартного cvswrap.c предполагается, что он заменит общесистемную команду cvs, которая будет перемещена в /usr/bin/ncvs. В моём экземпляре cvswrap.c помещено следующее: #define ACCESS "/local/cvsroot/CVSROOT/access" #define REALCVS "/usr/bin/ncvs" Следующим шагом является установка обработчика для того, чтобы проверить правильность установки группы при выполнении коммита. Исходные тексты для этого размещены в cvswrap.c из вашего - CVSROOT. + CVSROOT. Откомпилируйте исходные тексты, которые вы редактировали для включения правильных путей: &prompt.user; cc -o cvs cvswrap.c А затем установите их (для этого вы должны быть пользователем root): &prompt.root; mv /usr/bin/cvs /usr/bin/ncvs &prompt.root; mv cvs /usr/bin/cvs &prompt.root; chown root:ncvs /usr/bin/cvs /usr/bin/ncvs &prompt.root; chmod o-rx /usr/bin/ncvs &prompt.root; chmod u-w,g+s /usr/bin/cvs При этом обработчик будет установлен по умолчанию как команда cvs, что гарантирует всеми, использующими хранилище, получение правильных уровней доступа. Теперь вы можете убрать всех из вашей группы хранилища. Всё управление доступом выполняется вашим обработчиком, и он будет устанавливать правильную группу для доступа. Тестирование настройки Теперь ваш обработчик должен быть установлен. Конечно, вы можете протестировать его, выполнив принудительный коммит в файл access: &prompt.user; cvs commit -f -m 'Forced commit to test the new CVSROOT scripts' access И снова, если это не сработает, проверьте, правильно ли были выполнены все вышеперечисленные шаги.
diff --git a/ru_RU.KOI8-R/articles/explaining-bsd/article.sgml b/ru_RU.KOI8-R/articles/explaining-bsd/article.sgml index 991c7a7fe6..a634a1db8a 100644 --- a/ru_RU.KOI8-R/articles/explaining-bsd/article.sgml +++ b/ru_RU.KOI8-R/articles/explaining-bsd/article.sgml @@ -1,662 +1,665 @@ %articles.ent; ]>
Что такое BSD Greg Lehey
grog@FreeBSD.org
&tm-attrib.freebsd; &tm-attrib.amd; &tm-attrib.apple; + &tm-attrib.intel; &tm-attrib.linux; &tm-attrib.opengroup; + &tm-attrib.sparc; &tm-attrib.sun; + &tm-attrib.unix; &tm-attrib.xfree86; &tm-attrib.general; В мире программ с открытыми исходниками, слово Linux практически стало синонимом слова Операционная Система, хотя это далеко не единственная операционная система &unix;, исходные коды которой доступны широкой публике. Согласно данным Internet Operating System Counter, в апреле 1999-го 31,3% всех подключённых к Internet машин работали под Linux. 14,6% использовали BSD &unix;. Некоторые из мировых лидеров в области Web-услуг, например Yahoo!, работают под BSD. Самый загруженный в мире FTP-сервер 1999 года (сейчас он не работает), ftp.cdrom.com, функционировал под управлением BSD и передавал 1,4 Тбайта данных в день. Очевидно, что это не узкий, специализированный рынок: можно сказать, что BSD — это тщательно скрываемая тайна. Так в чём же секрет? Почему известность BSD оставляет желать лучшего? Эта публикация ставить целью ответить на эти и другие вопросы. На протяжении всего текста обращайте внимание на выделенные отличия BSD от Linux.
Что такое BSD? BSD означает Berkeley Software Distribution. Так называлось программное обеспечение, распространявшееся в исходных кодах Калифорнийским Университетом в Беркли, которое сначала представляло из себя дополнения к операционной системе &unix; компании AT&T. На основе версии 4.4BSD-Lite были созданы несколько операционных систем с открытыми исходными кодами. В их состав включены разработки других проектов, среди которых особо следует выделить Проект GNU. Вот что такое собственно операционная система BSD: Ядро BSD, отвечающее за планировку процессов, управление памятью, поддержку многопроцессорных систем (SMP), работу с устройствами и так далее. В отличие от Linux, существует несколько ядер BSD, отличающихся возможностями. Библиотека C, основной системный интерфейс программирования. Библиотека C в BSD основывается на коде из Беркли, а не из Проекта GNU. Оболочки, файловые утилиты, компиляторы, редакторы связей и другие утилиты пользователя. Некоторые из них базируются на коде GNU, а некоторые -- нет. Система X Window, отвечающая за графический интерфейс. Система X Window, которая используется в большинстве версий BSD, поддерживается одним из двух различных проектов, либо проектом &xfree86;, либо проектом X.Org. Речь идёт о том же самом коде, что используется в Linux. BSD, как правило, не делает упор на какую-то специфическую графическую среду, - например, GNOME или KDE, хотя обе они доступны. + например, GNOME или KDE, хотя обе они доступны. Множество разных других прикладных и системных программ. Что, настоящий &unix;? Операционные системы BSD не являются клонами друг друга. Они лишь потомки общего предка, ОС &unix; от AT&T Research, которая также дала начало современной ОС &unix; System V. Это факт может удивить, если вспомнить, что AT&T никогда не открывала исходные коды своих разработок. Действительно, &unix; никогда не был программным обеспечением с открытым исходным кодом, и в законном смысле BSD определённо НЕ &unix;. Но с другой стороны, в AT&T активно использовали чужие разработки, например программное обеспечение, разрабатываемое Группой по Исследованиям в области Информатики (CSRG) Калифорнийского Университета в Беркли. С 1976 CSRG выпускала свой код на магнитных лентах под названием Berkely Software Distribution, сокращённо BSD. Изначально дистрибутивы BSD представляли собой наборы пользовательских программ, и так было до тех пор, пока CSRG не заключила контракт с Агентством по Перспективным Проектам при Министерстве Обороны США (DARPA). Целью контракта было обновление коммуникационных протоколов, на которых держалась компьютерная сеть агентства -- ARPANET. Новое семейство протоколов получило имя Internet Protocols или TCP/IP, по названиям двух основных протоколов. Их первая широко известная реализация была выпущена в составе 4.2BSD в 1982 году. В течение восьмидесятых годов образовалось несколько - компаний по производству рабочих станций. Многие из них + компаний по производству рабочих станций. Многие из них предпочли купить лицензию на &unix;, нежели разрабатывать своё ПО с нуля. Следует отметить компанию Sun, которая поступила именно таким образом и на основе 4.2BSD выпустила свою операционную систему &sunos;. Когда AT&T тоже решила заняться коммерческой продажей своей ОС &unix;, появилась на свет несколько аскетичная реализация под названием System III, за которой в скором времени последовала System V. Интересно, что эти версии не содержали в себе собственной поддержки работы в сети и использовали код BSD, в том числе реализацию TCP/IP и набор утилит, среди которых следует выделить оболочку csh и текстовый редактор vi. Все эти добавки совместно получили название Berkely Extensions. Дистрибутив BSD содержал код, принадлежавший AT&T, и, следовательно, требовал лицензии. К 1990 году финансирование CSRG прекратилось, и группа была распущена. Кое-кто из бывших членов группы решил опубликовать код BSD отдельно от закрытого - кода AT&T. В концов концов это удалось, и так появилась на + кода AT&T. В концe концов это удалось, и так появилась на свет версия Networking Tape 2 или Net/2. Net/2 не была законченной, цельной операционной системой: около 20% кода ядра отсутствовало. Один из членов CSRG, William F. Jolitz, дописал недостающий код и опубликовал результат в начале 1992 года под именем 386BSD. В то же самое время другая группа бывших членов CSRG организовала коммерческую компанию Berkeley Software Design Inc. и выпустила бета-версию операционной системы BSD/386, которая базировалась на том же самом коде. Позже это название было изменено на BSD/OS. 386BSD так никогда и не стала полноценной операционной - системой. Зато в 1993 году из неё выделились два проекта: NetBSD и FreeBSD. Изначально разработчики разделились на два лагеря из-за расхождений во мнениях относительно того, сколько же ещё можно ждать улучшений в 386BSD. В начале года образовалась NetBSD, а первая версия FreeBSD была готова только к его концу. Время шло, и технические различия возрастали. Вдобавок проекты поставили перед собой разные цели, как будет показано ниже. В 1996 году от NetBSD отделился ещё один проект — OpenBSD, а в 2003 году от FreeBSD отделилась DragonFlyBSD. Почему BSD недостаточно известна? Действительно, существует ряд причин этому недоразумению: Разработчики BSD часто больше заинтересованы в качестве своего кода и заняты его шлифовкой, а не рекламой. По большому счёту Linux своей популярностью обязан прежде всего внешним по отношению к проекту факторам, например средствам массовой информации и компаниям, которые решили сделать бизнес на предоставлении услуг пользователям Linux. Разработчики BSD, как правило, более опытны, чем разработчики Linux, и в силу этого часто уделяют меньше внимания облегчению жизни простым пользователям. Новичок чувствует себя более комфортно в среде Linux. В 1992 году компания AT&T подала в суд на BSDI, компанию-поставщика - ОС BSD/386. Основным пунктом обвинения было то, что BSD/386 + ОС BSD/386. Основным пунктом обвинения было то, что BSD/386 содержала в себе закрытый код, принадлежавший AT&T. Дело вроде бы уладили за пределами суда в 1994-ом, но целая серия вторичных тяжб и по сей день отравляет жизнь многим людям. Совсем недавно, в марте 2000, в Internet была опубликована статья, утверждавшая, что судебное разбирательство окончательно завершено (recently settled). В результате разбирательства прояснился вопрос с названиями: если в 80-х годах BSD была известна под именем BSD &unix;, то с исключением последних следов кода, принадлежавшего AT&T, BSD потеряла право называться &unix;. Вы можете заметить этот факт по изменившимся заглавиям книг: операционная система 4.3BSD &unix; и операционная система 4.4BSD. Существует мнение, что проекты BSD сильно отличаются и, в добавок, воюют между собой. Статья в Wall Street Journal называет это балканизацией среди проектов BSD. Можно утверждать, что такое мнение, как и описанная судебная тяжба, основывается прежде всего на событиях давно минувших дней. Сравнение BSD и Linux В чём заключается главная разница, к примеру, между Debian Linux и FreeBSD? Для среднего пользователя она на удивление мала: оба продукта представляют собой &unix;-подобные операционные системы. Оба продукта разрабатываются на некоммерческой основе (это не относится к некоторым другим дистрибутивам Linux). В этом разделе мы рассмотрим BSD в сравнении с Linux. Всё сказанное в основном будет касаться FreeBSD, которой принадлежит около 80% всех инсталляций BSD в мире, хотя отличия от NetBSD, OpenBSD и DragonFlyBSD в рамках предмета данной статьи незначительны. Кому принадлежит BSD? Нельзя сказать, что какой-то конкретный человек или корпорация владеет BSD. Разработка и распространение ведутся группой высококвалифицированных и преданных проекту специалистов со всего мира. Некоторые компоненты BSD представляют собой отдельные проекты с открытым кодом со своими законами и коллективами разработчиков. Как выглядит процесс разработки и обновления BSD? Ядра BSD используют Open Source модель разработки. Каждый проект поддерживает публично доступное дерево исходников с помощью Concurrent Versions System (CVS). Это дерево содержит абсолютно весь исходный код проекта, а также документацию и вспомогательные файлы. CVS позволяет пользователям получить копию дерева любой версии системы. Огромное число людей со всего мира участвуют в совершенствовании BSD. Все они разделены на три группы: Контрибуторы пишут код или документацию. Они не могут добавлять или изменять код непосредственно в дереве исходников проекта. Это привилегия особым образом зарегистрированных разработчиков, или коммиттеров (committers), которые просматривают и тестируют присылаемый им код и включают его в дерево. Коммиттеры являются разработчиками, которые имеют доступ на запись в дерево исходных кодов проекта. Чтобы стать коммиттером, человек должен проявить себя в той области, в которой он хочет работать. Каждый коммиттер по своему собственному усмотрению решает, нужно ли ему подтверждение правильности планируемых изменений от других разработчиков или нет. В общем случае опытный коммиттер может вносить очевидно выгодные изменения ни с кем не советуясь. К примеру, коммиттер проекта документации может исправлять опечатки или грамматические ошибки в документах без предварительного согласования. Напротив, далеко идущие или просто сложные изменения настоятельно рекомендуется представлять к обсуждению перед окончательным внесением в дерево. Бывают крайние случаи, когда член Core Team, выполняющий функцию архитектора проекта, может санкционировать немедленную отмену или откат каких-то изменений в дереве. Все коммиттеры обязательно получают уведомление о каждом изменении в дереве по электронной почте, так что их невозможно сохранить в тайне. Правление (Core Team). В проектах FreeBSD и NetBSD имеются управляющие советы, которые занимаются координационной деятельностью. Их роль, права и обязанности не всегда чётко определены. Необязательно (хотя в порядке вещей) быть коммиттером для того, чтобы входить в состав Core Team. Правила, которым следует Core Team, различаются между проектами, но в общем случае члены Core Team определяют общее направление развития системы в большей степени, чем все остальные разработчики. Такое положение вещей отличается от принятого в Linux: Не существует человека, который бы контролировал содержимое системы. На практике значение этого отличия оказывается переоценённым, так как Ведущий Архитектор может всегда потребовать откат изменений. Ко всему прочему, в проекте Linux на современном этапе изменения в код вносятся тоже не одним, а несколькими людьми. С другой стороны, существует центральное хранилище (repository), откуда можно получить полный код всей системы, причём как современных, так и предыдущих версий. Проекты BSD являются цельными Операционными Системами, а не просто ядрами. Это различие тоже иногда переоценивают: ни BSD, ни Linux не представляют ценности без приложений, а они порой одни и те же в обеих средах. В результате формализованной процедуры поддержки единого дерева исходников в CVS процесс разработки BSD является полностью открытым, и мы получаем возможность доступа к любой версии системы по номеру или по дате. CVS также очень хорошо подходит для последовательных изменений в коде: к примеру, хранилище кода FreeBSD обновляется около ста раз за день, и большинство этих изменений весьма малы и незначительны в отдельности друг от друга. Версии BSD FreeBSD, NetBSD и OpenBSD предоставляет миру три различных варианта системы. Как и в Linux, версиям присваиваются номера, например 1.4.1 или 3.5. В добавок, номер версии имеет суффикс -- обозначение варианта, которое указывает на цели той или иной версии. Версия для разработчиков носит название CURRENT. FreeBSD присваивает ей и номер, например FreeBSD 5.0-CURRENT. NetBSD использует чуть-чуть другую схему наименований и добавляет к номеру однобуквенный суффикс, обозначающий изменения во - внутренних интерфейсах. Пример: NetBSD 1.4.3G. OpenBSD не + внутренних интерфейсах. Пример: NetBSD 1.4.3G. OpenBSD не нумерует разрабатываемую версию (OpenBSD-current). Все новые разработки производятся именно на этой ветке (branch) системы. Через определённые интервалы от 3 до 6 месяцев проект выпускает версию RELEASE, которая распространяется на CD-ROM и доступна для скачивания с серверов FTP. Примерами таких версий могут служить OpenBSD 2.6-RELEASE и NetBSD 1.4-RELEASE. Этот вариант предназначен для конечных пользователей. NetBSD также предоставляет так называемые исправленные релизы (patch releases), обозначаемые третьей цифрой в номере, например NetBSD 1.4.2. По мере обнаружения ошибок в версии RELEASE необходимые исправления вносятся в дерево CVS. Получающаяся система в проекте FreeBSD носит название STABLE, а в NetBSD и OpenBSD продолжает называться RELEASE. Некоторые мелкие улучшения тоже иногда вносятся в эту версию после продолжительного периода тестирования в CURRENT. Linux, напротив, поддерживает два различных дерева исходников, которые называются соответственно стабильной версией и версией для разработчиков. Стабильные версии имеют чётный вторичный номер, например 2.0, 2.2 или - 2.4. Версии для разработчиков используют нечётные номера, + 2.4. Версии для разработчиков используют нечётные номера, такие как 2.1, 2.3 или 2.5. Во обоих случаях, к двойному номеру версии добавляется ещё одно число, указывающее на конкретный релиз. Стоит также отметить, что каждый поставщик предоставляет свой собственный вариант пользовательских программ (userland), так что имя дистрибутива тоже имеет значение. Естественно, что поставщики нумеруют свои изделия каждый по-своему, и, таким образом, мы получаем что-то вроде TurboLinux 6.0 с ядром 2.2.14. Какие существуют варианты BSD? В отличие от многочисленных дистрибутивов Linux, в мире существует лишь четыре крупных BSD проекта с открытыми исходными кодами. Каждый из них поддерживает своё собственное дерево исходников и своё собственное ядро. На практике однако оказывается, что пользовательские части (userland) различных BSD отличаются гораздо меньше, чем у разных дистрибутивов Linux. Цели каждого из проектов не поддаются чёткой формулировке. Различия между ними весьма субъективны. В основном, проект FreeBSD нацелен на повышение производительности и простоту в использовании конечными пользователями. FreeBSD очень ценят в среде Web-хостеров. Эта ОС работает на нескольких аппаратных платформах, в том числе системах на базе - процессоров i386 (ПК), системах, построенных на + процессоров &i386; (ПК), системах, построенных на 64-разрядных процессорах AMD, системах &ultrasparc;, системах, работающие на базе процессоров Alpha компании Compaq, а также системах, построенные по спецификациям NEC PC-98. Число пользователей FreeBSD значительно превышает число пользователей других проектов. проект NetBSD ставит целью максимальную мобильность (или переносимость) кода: девиз конечно NetBSD работает на этом. NetBSD поддерживает машины от крошечных палмтопов до огромных серверов и использовалась NASA в космических миссиях. Это хороший выбор для старой - не-Intel аппаратуры. + не-&intel; аппаратуры. проект OpenBSD нацелен на безопасность и - чистоту кода. С помощью комбинирования + чистоту кода. С помощью комбинирования концепций открытых исходников и скрупулёзного анализа кода - проект демонстрирует чудеса корректности работы системы. В + проект демонстрирует чудеса корректности работы системы. В силу названных причин совершенно естественно, что OpenBSD выбирают организации, для которых очень важна защита информации, например банки, фондовые биржи и различные департаменты правительства США. Также как и NetBSD, проект поддерживает целый ряд аппаратных платформ. Целью DragonFlyBSD является достижение высокой производительности и масштабируемости в любой ситуации—как для одиночных однопроцессорных, так и крупных кластерных систем. DragonFlyBSD ставит перед собой несколько долгосрочных технических задач, но основной упор делается на создание инфраструктуры для работы с SMP, которая была бы проста для понимания, поддержки и ведения в ней разработок. Следует упомянуть ещё две операционных системы BSD &unix;, которые не предоставляют публичного доступа к своим исходным кодам. Это BSD/OS компании BSDI и &macos; X компании Apple. BSD/OS являлась самым старым из потомков 4.4BSD. Исходный код был недоступен широкой публике, хотя лицензия на него стоила относительно немного. BSD/OS во многом похожа на FreeBSD. Через два года после поглощения BSDi компанией Wind River Systems, BSD/OS перестала существовать как отдельный продукт. Поддержку и исходный код ещё можно получить у Wind River, но все новые разработки сосредоточены на встраиваемой операционной системой VxWorks. &macos; X — это самая последняя версия операционной системы для линейки компьютеров &macintosh; компании Apple Computer Inc. Ядро этой операционной системы, Darwin, построенное на коде BSD, доступно в виде полностью функциональной операционной системы с открытым кодом для компьютеров архитектур x86 и PPC. Однако код графической системы Aqua/Quartz и многих других проприетарных компонентов &macos; X остаётся закрытым. Несколько разработчиков Darwin являются также коммиттерами FreeBSD и наоборот. В чём отличие между лицензией BSD и Общественной Лицензией GNU (GPL)? Linux распространяется на условиях лицензии GNU General Public License (GPL), русский перевод которой тоже существует. Эта лицензия имеет целью уничтожить программное обеспечение с закрытым исходным кодом. В частности, любое ПО, базирующееся на продукте, выпущенном на условиях лицензии GPL, тоже должно поставляться с исходными кодами по первому требованию. Лицензия BSD не накладывает таких жёстких ограничений: разрешается распространение программного обеспечения в двоичном виде (binary-only). Этот факт привлекает разработчиков встроенных (embedded) приложений. Что ещё следует знать? То обстоятельство, что приложений для BSD существует меньше, чем для Linux, вынудило разработчиков BSD позаботиться о создании дополнительной совместимости с Linux, которая позволяет запускать программы для Linux на компьютере, работающем под BSD. Программный пакет, обеспечивающий совместимость, включает в себя как ядерную реализацию системных вызовов Linux, так и разнообразные файлы, необходимые программам, скомпилированным для Linux, например библиотеку C. Разница в скорости выполнения Linux-приложений на машине с Linux и на такой же машине с BSD незаметна. Принцип вся система от одного поставщика, используемый в BSD, приводит к упрощению процедур обновления системы по сравнению с многими дистрибутивами Linux. BSD предоставляет специальные модули совместимости с устаревшими версиями системных библиотек, и таким образом делает возможным запуск откомпилированных несколько лет назад программ на обновлённой системе. Что же выбрать, BSD или Linux? Во что выливается всё вышесказанное на практике? Кому предназначена BSD, и кому -- Linux? - Это действительно очень сложный вопрос. Приведём несколько + Это действительно очень сложный вопрос. Приведём несколько советов, которые призваны помочь Вам с выбором: Не тронь, пока работает: если Вы уже успешно используете какую-нибудь Open Source ОС, и она Вас устраивает, то пожалуй не стоит ничего менять. Системы BSD, в особенности FreeBSD, могут демонстрировать большую по сравнению с Linux производительность. Но это вовсе не универсальное правило. Во многих случаях эта разница не заметна, если вообще есть. Иногда Linux может работать лучше, чем FreeBSD. В общем случае, у систем BSD очень хорошая репутация, когда дело касается надёжности. Это, в основном, связано с более зрелой базой исходных кодов. BSD проекты имеют более лучшую репутацию за качество и полноту документации. Различные проекты документирования ставят своей целью предоставлять активно изменяющуюся документацию, в том числе и на нескольких языках и покрывающую все аспекты системы. Лицензия BSD иногда может быть более привлекательной, нежели GPL. В BSD может работать большинство исполнимых файлов Linux, однако в Linux выполнимые файлы BSD запускаться не будут. Во многих реализациях BSD могут также выполняться двоичные файл и других &unix;-подобных систем. Таким образом, BSD может предложить более простой способ перехода с других систем, чем Linux. Кто предоставляет техническую поддержку, обслуживание и обучение для систем BSD? BSDi / FreeBSD Mall, Inc. уже около десяти лет предлагает контракты на поддержку FreeBSD. Кроме того, каждый из проектов постоянно обновляет список консультантов, которые оказывают поддержку за отдельную плату: FreeBSD, NetBSD и OpenBSD.
diff --git a/ru_RU.KOI8-R/articles/formatting-media/article.sgml b/ru_RU.KOI8-R/articles/formatting-media/article.sgml index 9ced710813..f530496e14 100644 --- a/ru_RU.KOI8-R/articles/formatting-media/article.sgml +++ b/ru_RU.KOI8-R/articles/formatting-media/article.sgml @@ -1,657 +1,657 @@ %articles.ent; ]>
Форматирование носителей для использования с FreeBSD Учебное пособие Doug White
dwhite@resnet.uoregon.edu
Март 1997 &tm-attrib.freebsd; &tm-attrib.iomega; &tm-attrib.opengroup; &tm-attrib.general; Этот документ описывает, как разбить на слайсы, разделы и - отформатировать дисковые и подобные им устройства для использования с - FreeBSD. Приводимые примеры были протестированы во FreeBSD 2.2 и - должны работать и в других релизах. Текст был дополнен для FreeBSD - версии 4. + отформатировать дисковые и подобные им устройства для использования с + FreeBSD. Приводимые примеры были протестированы во FreeBSD 2.2 и + должны работать и в других релизах. Текст был дополнен для FreeBSD + версии 4.
Введение и определения Обзор Успешное выполнение добавления дисков в существующую систему - является признаком опытности системного администратора. Разбиение на - слайсы, разделы и добавление дисков требуют тщательности в подборе - команд и их параметров. Одно неверное нажатие, и все содержимое - диска может исчезнуть за считанные секунды. Этот документ был написан - в попытке упростить этот процесс и избежать ошибок. К счастью, - усовершенствования в имеющихся инструментах (в частности, sysinstall) - весьма упростили этот процесс в последних релизах FreeBSD. + является признаком опытности системного администратора. Разбиение на + слайсы, разделы и добавление дисков требуют тщательности в подборе + команд и их параметров. Одно неверное нажатие, и все содержимое + диска может исчезнуть за считанные секунды. Этот документ был написан + в попытке упростить этот процесс и избежать ошибок. К счастью, + усовершенствования в имеющихся инструментах (в частности, sysinstall) + весьма упростили этот процесс в последних релизах FreeBSD. Существуют два режима форматирования диска: - + режим обеспечения совместимости: - Подготовка диска так, чтобы он имел таблицу слайсов, которую - можно использовать с другими операционными системами. + Подготовка диска так, чтобы он имел таблицу слайсов, которую + можно использовать с другими операционными системами. режим эксклюзивного использования, - иногда называемый опасным режимом: - Форматирование диска без таблицы слайсов. Это упрощает процесс - добавления дисков, но другие операционные системы не смогут - работать с диском. Термин опасный относится к - опасности не распознавания системой диска, отформатированного этим - способом. - + иногда называемый опасным режимом: + Форматирование диска без таблицы слайсов. Это упрощает процесс + добавления дисков, но другие операционные системы не смогут + работать с диском. Термин опасный относится к + опасности не распознавания системой диска, отформатированного этим + способом. + В большинстве случаев эксклюзивный режим является самым простым в - использовании с существующими системами, так как новый диск, как - правило, предназначен исключительно для FreeBSD. Однако режим - обеспечения совместимости дает максимум возможностей в будущих - установках ценой большей сложности. + использовании с существующими системами, так как новый диск, как + правило, предназначен исключительно для FreeBSD. Однако режим + обеспечения совместимости дает максимум возможностей в будущих + установках ценой большей сложности. Кроме выбора режима, имеются два способа разбиения диска на слайсы. - Один заключается в использовании инструмента установки системы - /stand/sysinstall. 2.1.7-RELEASE и более поздние - версии sysinstall содержат код для облегчения - установки дисков во время обычных системных работ, в основном давая - доступ к редактору разделов и разметке диска и возможности записать - изменения, причем будет обновляться информация только на выбранном - диске и слайсе, не затрагивая другие диски. Другой метод состоит в - ручном запуске утилит администратором из командной строки. Для режима - эксклюзивного использования используются только три или четыре команды, - хотя sysinstall требует некоторых ухищрений. + Один заключается в использовании инструмента установки системы + /stand/sysinstall. 2.1.7-RELEASE и более поздние + версии sysinstall содержат код для облегчения + установки дисков во время обычных системных работ, в основном давая + доступ к редактору разделов и разметке диска и возможности записать + изменения, причем будет обновляться информация только на выбранном + диске и слайсе, не затрагивая другие диски. Другой метод состоит в + ручном запуске утилит администратором из командной строки. Для режима + эксклюзивного использования используются только три или четыре команды, + хотя sysinstall требует некоторых ухищрений. Определения За века существования управления дисками в &unix; было придумано - много новых названий для старых вещей. В следующем словарике даны - определения терминов, используемых в этом документе и (надеемся) во - FreeBSD вообще. + много новых названий для старых вещей. В следующем словарике даны + определения терминов, используемых в этом документе и (надеемся) во + FreeBSD вообще. режим обеспечения совместимости: Разбиение диска так, что на - нем присутствует таблица слайсов, используемая и другими - операционными системами. Противоположен режиму эксклюзивного - использования. + нем присутствует таблица слайсов, используемая и другими + операционными системами. Противоположен режиму эксклюзивного + использования. (опасный) режим эксклюзивного использования: Форматирование - диска без использования таблицы слайсов. Это упрощает процесс - добавления дисков, однако другие (не FreeBSD) операционные системы - не смогут распознать диск. Противоположен режиму обеспечения - совместимости. + диска без использования таблицы слайсов. Это упрощает процесс + добавления дисков, однако другие (не FreeBSD) операционные системы + не смогут распознать диск. Противоположен режиму обеспечения + совместимости. диск: жесткие диски, компакт-диски, магнито-оптические и - съемные носители &iomegazip;/&jaz; являются примерами устройствами + съемные носители &iomegazip;/&jaz; являются примерами устройствами хранения, наиболее часто используемыми в наши дни. Основной принцип их работы заключается в том, что несколько крутящихся дисков раскручиваются моторчиком, в то время как головка, движущаяся по радиальной линии читает или записывает данные с диска. Запись происходит путем изменения физических свойств диска (магнитного потока, коэффициента отражения поверхности (reflectivity) и т.д.), а чтение, путём определения изменений тех же физических свойств диска. слайс: Часть диска. На одном диске по стандартам PC может - располагаться до четырех слайсов. Слайсы состоят из - последовательно располагающихся секторов. Информация о слайсах - записывается в таблицу слайсов, используемую - системным BIOS для нахождения загрузочных разделов. Таблица - слайсов в терминологии DOS обычно называется таблицей разделов + располагаться до четырех слайсов. Слайсы состоят из + последовательно располагающихся секторов. Информация о слайсах + записывается в таблицу слайсов, используемую + системным BIOS для нахождения загрузочных разделов. Таблица + слайсов в терминологии DOS обычно называется таблицей разделов (Partition Table). Управляется утилитой fdisk. раздел: Часть слайса. Обычно используется для обозначения - частей слайса FreeBSD на диске. Каждая файловая система и область - подкачки на диске располагаются в разделе. Управляется утилитой + частей слайса FreeBSD на диске. Каждая файловая система и область + подкачки на диске располагаются в разделе. Управляется утилитой disklabel. - + сектор: Самая малая часть диска. Один сектор, как правило, - хранит 512 байт данных. + хранит 512 байт данных. Предостережения & Ловушки Подготовка диска не является простым процессом. Весьма возможно - уничтожение содержимого других дисков вашей системы, если не быть - аккуратным. + уничтожение содержимого других дисков вашей системы, если не быть + аккуратным. Тщательно проверяйте свою работу. Очень - просто уничтожить информацию не на том диске при работе с этими - командами. Если сомневаетесь, обратитесь к сообщениям, выдаваемым при - загрузке ядра, для определения верного имени устройства. + просто уничтожить информацию не на том диске при работе с этими + командами. Если сомневаетесь, обратитесь к сообщениям, выдаваемым при + загрузке ядра, для определения верного имени устройства. Излишне говорить, что мы не отвечаем за какую бы то ни было порчу - данных или оборудования, с которыми вы можете столкнуться. Работайте - на свой страх и риск! + данных или оборудования, с которыми вы можете столкнуться. Работайте + на свой страх и риск! Zip, Jaz и другие сменные носители - Сменные диски могут отформатированы точно так же, как обычные - жесткие диски. Для определения параметров диска достаточно подключить - привод к системе и вставить туда диск во время загрузки. Просмотрите - вывод команды dmesg и удостоверьтесь, что в нем - присутствуют ваше устройство и размер диска. Если ядро выдает + Сменные диски могут быть отформатированы точно так же, как обычные + жесткие диски. Для определения параметров диска достаточно подключить + привод к системе и вставить туда диск во время загрузки. Просмотрите + вывод команды dmesg и удостоверьтесь, что в нем + присутствуют ваше устройство и размер диска. Если ядро выдает Can't get the size то диска в устройстве нет. В таком случае вам нужно перезапустить - машину перед тем, как пытаться отформатировать диски. + машину перед тем, как пытаться отформатировать диски. Форматирование дисков в режиме эксклюзивного использования Введение В этом разделе подробно описано, как сделать диски полностью - предназначенными для FreeBSD. Помните, что иногда диски, - подготовленные для режима эксклюзивного использования, не могут быть - загрузочными в архитектуре PC. + предназначенными для FreeBSD. Помните, что иногда диски, + подготовленные для режима эксклюзивного использования, не могут быть + загрузочными в архитектуре PC. Подготовка дисков в режиме эксклюзивного использования при помощи - утилиты sysinstall + утилиты sysinstall /stand/sysinstall, программа установки системы, - в последних версиях была расширена так, что позволяет сделать процесс - подготовки дисков простой задачей. Редакторы fdisk и disklabel, - встроенные в sysinstall, являются инструментами с графическим - пользовательским интерфейсом, устраняющими большинство неясностей при - разбиении дисков. Для версий FreeBSD 2.1.7 и выше это, наверное, самый - простой способ подготовки дисков. + в последних версиях была расширена так, что позволяет сделать процесс + подготовки дисков простой задачей. Редакторы fdisk и disklabel, + встроенные в sysinstall, являются инструментами с графическим + пользовательским интерфейсом, устраняющими большинство неясностей при + разбиении дисков. Для версий FreeBSD 2.1.7 и выше это, наверное, самый + простой способ подготовки дисков. Запустите sysinstall как пользователь root, набрав &prompt.root; /stand/sysinstall - + в командной строке. Выберите пункт Index. Выберите пункт Partition. Выберите диск для редактирования с помощью клавиш управления - курсором пробела. + курсором и клавиши пробела. Если вы используете этот диск полностью для FreeBSD, выберите A. - - - - Когда будет выдано сообщение: - - - -Do you want to do this with a true partition entry so as to remain -cooperative with any future possible operating systems on the -drive(s)? - - - ответьте No. Когда будет задан вопрос о том, действительно ли вы хотите это - сделать, ответьте Yes. - + сделать, ответьте Yes. + Выберите Write. При выдаче предупреждения Writing on installed systems, - ответьте Yes. - + ответьте Yes. + + + + Когда будет задан вопрос по поводу установки менеджера + загрузки, выберите None, тем самым оставив + MBR без изменений. Это необходимо лишь при новой инсталляции + &os; если не планируется установка диска в другую машину. + + + + Нажмите ENTER в ответ на сообщение + Wrote FDISK partition information out + successfully. + Выберите Quit для выхода из редактора FDISK - и нажмите ESCAPE для возврата в меню Index. + и нажмите ESCAPE для возврата в меню Index. Выберите пункт Label из меню Index. Разметьте диск так, как это нужно. Для работы с единственным - разделом нажмите C для создания раздела, примите - размер по умолчанию, установите тип раздела в Filesystem и укажите - точку монтирования (которая не используется). + разделом нажмите C для создания раздела, примите + размер по умолчанию, установите тип раздела в Filesystem и укажите + точку монтирования (которая не используется). Нажмите W, когда все закончите и захотите - продолжить. Файловая система будет размечена вновь, если вы не - указали противное (для новых разделов вам это делать необходимо!). - Вы получите сообщение об ошибке: + продолжить. Файловая система будет размечена вновь, если вы не + указали противное (для новых разделов вам это делать необходимо!). + Вы получите сообщение об ошибке: Error mounting /mnt/dev/ad2s1e on /mnt/blah : No such file or directory Проигнорируйте это сообщение. Выйдите по нескольким нажатиям клавиши - ESCAPE. + ESCAPE. Подготовка диска к использованию в эксклюзивном режиме из - командной строки + командной строки Выполните следующие команды, заменяя ad2 на имя вашего - диска. + диска. &prompt.root; dd if=/dev/zero of=/dev/ad2 count=2 &prompt.root; disklabel /dev/ad2 | disklabel -B -R -r ad2 /dev/stdin We only want one partition, so using slice 'c' should be fine: &prompt.root; newfs /dev/ad2c Если вам нужно отредактировать метку диска для создания нескольких - разделов (например, раздела подкачки), выполните следующее: + разделов (например, раздела подкачки), выполните следующее: &prompt.root; dd if=/dev/zero of=/dev/ad2 count=2 &prompt.root; disklabel /dev/ad2 > /tmp/label Edit disklabel to add partitions: &prompt.root; vi /tmp/label &prompt.root; disklabel -B -R -r ad2 /tmp/label newfs partitions appropriately Теперь ваш диск готов к работе. Создание дисков для использования в режиме совместимости Введение При подготовке дисков для использования в эксклюзивном режиме проще - всего воспользоваться командной строкой, но этого делать не следует при - подготовке дисков для использования в режиме совместимости. Утилита - командной строки fdisk требует сложных вычислений и глубокого понимания - устройства таблицы слайсов, что дано не каждому. При подготовке дисков - для использования в режиме совместимости используйте sysinstall. + всего воспользоваться командной строкой, но этого делать не следует при + подготовке дисков для использования в режиме совместимости. Утилита + командной строки fdisk требует сложных вычислений и глубокого понимания + устройства таблицы слайсов, что дано не каждому. При подготовке дисков + для использования в режиме совместимости используйте sysinstall. Подготовка дисков, используемых в режиме совместимости, при помощи - sysinstall + sysinstall Запустите sysinstall, работая как пользователь root, набрав &prompt.root; /stand/sysinstall - + в командной строке. Выберите пункт меню Index. Выберите пункт меню Partition. Выберите диск для работы при помощи клавиш управления курсором - и клавиши SPACE. + и клавиши SPACE. Если вы собираетесь использовать для FreeBSD весь диск, нажмите A. - + Когда будет выдан вопрос: Do you want to do this with a true partition entry so as to remain cooperative with any future possible operating systems on the drive(s)? ответьте yes. Выберите Write. Когда будет выдано диалоговое окно для установки менеджера - загрузки, выберите None при помощи клавиши SPACE, - а затем нажмите ENTER для подтверждения. + загрузки, выберите None при помощи клавиши SPACE, + а затем нажмите ENTER для подтверждения. Выберите Quit для выхода из FDISK. После выдачи предупреждения о менеджере загрузки, выберите None снова. - + Выберите пункт Label из меню Index. - + Разметьте диск так, как вам нужно. В случае единственного - раздела примите размер по умолчанию, тип с наличием файловой - системы и точку монтирования (которая не будет - использоваться). - + раздела примите размер по умолчанию, тип с наличием файловой + системы и точку монтирования (которая не будет + использоваться). + Файловая система будет вновь создана, если вы не задали - обратное (эту операцию обязательно нужно делать для новых - разделов!). Вы получите сообщение об ошибке: + обратное (эту операцию обязательно нужно делать для новых + разделов!). Вы получите сообщение об ошибке: - Error mounting /mnt/dev/ad2s1e on /mnt/blah : No such file or directory + Error mounting /mnt/dev/ad2s1e on /mnt/blah : No such file or directory Проигнорируйте его. Выйдите, последовательно нажимая - ESCAPE. + ESCAPE. Теперь ваш новый диск готов к использованию. Другие операции с диском Добавление пространства для подкачки При росте системы может расти и требование к объему виртуальной - памяти. Хотя добавление дискового пространства для подкачки в случае - уже имеющихся дисков является очень сложной задачей, можно подготовить - новый диск с дополнительным пространством для подкачки. + памяти. Хотя добавление дискового пространства для подкачки в случае + уже имеющихся дисков является очень сложной задачей, можно подготовить + новый диск с дополнительным пространством для подкачки. Для добавления пространства подкачки при добавлении диска к - системе: + системе: При разбиении диска на разделы, отредактируйте метку диска, - выделив некоторое объем диска для раздела `b', а остаток - распределив в другие разделы, например, `a' или `e'. Размеры - указываются в блоках по 512 байт. + выделив некоторое объем диска для раздела `b', а остаток + распределив в другие разделы, например, `a' или `e'. Размеры + указываются в блоках по 512 байт. При создании новых файловых систем на диске, НЕ делайте этого - для раздела `c'. Вместо этого выполните создание новых файловых - систем для разделов, не содержащих пространство для - подкачки. - + для раздела `c'. Вместо этого выполните создание новых файловых + систем для разделов, не содержащих пространство для + подкачки. + Добавьте такую строчку в файл - /etc/fstab: + /etc/fstab: /dev/ad0b none swap sw 0 0 - + Замените здесь /dev/ad0b на имя устройства с только что добавленным пространством. Чтобы сделать пространство для подкачки немедленно доступным, - воспользуйтесь командой swapon. + воспользуйтесь командой swapon. &prompt.root; swapon /dev/da0b swapon: added /dev/da0b as swap space Копирование содержимого дисков Предоставил: Renaud Waldura (renaud@softway.com) Для переноса файлов с вашего старого диска на новый, выполните: &prompt.root; mount /dev/ad2 /mnt &prompt.root; pax -r -w -p e /usr/home /mnt &prompt.root; umount /mnt &prompt.root; rm -rf /usr/home/* &prompt.root; mount /dev/ad2 /usr/home Объединение дисков с помощью CCD Команды предоставил: Stan Brown (stanb@awod.com) Драйвер CCD (Concatenated Disk Driver) позволяет вам использовать - несколько идентичных дисков как один диск. Объединение дисков может - повысить производительность через распределение операций чтения и - записи между дисками. Обратитесь к страницам справочной системы + несколько идентичных дисков как один диск. Объединение дисков может + повысить производительность через распределение операций чтения и + записи между дисками. Обратитесь к страницам справочной системы &man.ccd.4; и &man.ccdconfig.8; или к домашней странице - CCD для получения подробной информации. + url="http://stampede.cs.berkeley.edu/ccd/">домашней странице + CCD для получения подробной информации. Вам больше не нужно компилировать специальное ядро для - использования ccd. Когда вы запускаете команду - ccdconfig, она загрузит соответствующий KLD, если в - ядре нет поддержки CCD. + использования ccd. Когда вы запускаете команду + ccdconfig, она загрузит соответствующий KLD, если в + ядре нет поддержки CCD. Вы можете строить объединенные диски в разделах типа 4.2BSD. Если вы хотите использовать весь диск, то - вам все равно нужно создать новый раздел. Например, - disklabel -e может выдавать: + вам все равно нужно создать новый раздел. Например, + disklabel -e может выдавать: # size offset fstype [fsize bsize bps/cpg] c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) Вы не сможете использовать раздел c для CCD, - так как он имеет тип unused. Вместо этого - создайте новый раздел точно такого же размера, но типа - 4.2BSD: + так как он имеет тип unused. Вместо этого + создайте новый раздел точно такого же размера, но типа + 4.2BSD: # size offset fstype [fsize bsize bps/cpg] c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 - 59597) Для создания нового CCD выполните следующие команды. Здесь - описано, как объединить три диска; просто добавляйте или убирайте - устройства по мере необходимости. Помните, что объединяемые диски - должны быть идентичными. + описано, как объединить три диска; просто добавляйте или убирайте + устройства по мере необходимости. Помните, что объединяемые диски + должны быть идентичными. -&prompt.root; cd /dev ; sh MAKDEV ccd0 +&prompt.root; cd /dev ; sh MAKEDEV ccd0 &prompt.root; disklabel -r -w da0 auto &prompt.root; disklabel -r -w da1 auto &prompt.root; disklabel -r -w da2 auto &prompt.root; disklabel -e da0 Add partition e with type 4.2BSD &prompt.root; disklabel -e da1 Add partition e with type 4.2BSD &prompt.root; disklabel -e da2 Add partition e with type 4.2BSD &prompt.root; ccdconfig ccd0 273 0 /dev/da0e /dev/da1e /dev/da2e &prompt.root; newfs /dev/ccd0c Значение 273 задает размер блока данных. Это число секторов диска, - (каждый по 512 байт) в каждом блоке данных в CCD. Он должен быть равен - по крайней мере 128 kB, и должен быть степенью числа 2. + (каждый по 512 байт) в каждом блоке данных в CCD. Он должен быть равен + по крайней мере 128 kB, и должен быть степенью числа 2. Теперь вы можете смонтировать и использовать ваш CCD через - устройство /dev/ccd0c. + устройство /dev/ccd0c. Более мощной и гибкой альтернативой для CCD является Vinum. - Обратитесь к домашней странице - проекта Vinum для получения подробной информации. + Обратитесь к домашней странице + проекта Vinum для получения подробной информации. Благодарности Автор выражает благодарности тем, кто принимал участие в этом проекте: Darryl Okahata (darrylo@hpnmhjw.sr.hp.com) за - понятное описание настройки диска для режима эксклюзивного - использования, которое я постоянно использую в списке рассылки - FreeBSD-questions. + понятное описание настройки диска для режима эксклюзивного + использования, которое я постоянно использую в списке рассылки + FreeBSD-questions. &a.jkh; за то, что он сделал sysinstall подходящим инструментом для выполнения таких работ. John Fieber (jfieber@indiana.edu) за создание - примеров и предоставление информации о DocBook DTD, на основе чего - написан этот документ. + примеров и предоставление информации о DocBook DTD, на основе чего + написан этот документ. &a.grog; за проверку моей работы и указания на неточности, а также за поддержку.
diff --git a/ru_RU.KOI8-R/articles/geom-class/Makefile b/ru_RU.KOI8-R/articles/geom-class/Makefile index 58e659e2a9..26d6f5cd8c 100644 --- a/ru_RU.KOI8-R/articles/geom-class/Makefile +++ b/ru_RU.KOI8-R/articles/geom-class/Makefile @@ -1,19 +1,22 @@ # # $FreeBSD$ # # Article: Writing a GEOM Class +# +# Original revision: 1.1 +# DOC?= article FORMATS?= html WITH_ARTICLE_TOC?= YES INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED?= SRCS= article.sgml URL_RELPREFIX?= ../../../.. DOC_PREFIX?= ${.CURDIR}/../../.. .include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/ru_RU.KOI8-R/articles/geom-class/article.sgml b/ru_RU.KOI8-R/articles/geom-class/article.sgml index e31d1cc0f8..583baa84ee 100644 --- a/ru_RU.KOI8-R/articles/geom-class/article.sgml +++ b/ru_RU.KOI8-R/articles/geom-class/article.sgml @@ -1,820 +1,820 @@ %articles.ent; ]>
Создание класса GEOM Ivan Voras
ivoras@FreeBSD.org
$FreeBSD$ &tm-attrib.freebsd; &tm-attrib.cvsup; &tm-attrib.intel; &tm-attrib.xfree86; &tm-attrib.general; Эта статья документирует некоторые начальные выкладки в разработке GEOM-классов, а также модулей ядра в общем. Предполагается, что читатель близко знаком с программированием на Си в контексте пространства пользовательских процессов (userland).
Вступление Документация Документация по программированию для ядра скудная, это одна из немногих областей программирования, где почти нет хороших учебных пособий, и совет читай исходники! — сохраняет свою справедливость. Однако, существует несколько статей и книг разной актуальности, которые рекомендуются к изучению перед тем, как начать программировать: Руководство FreeBSD для разработчиков — часть Проекта Документации FreeBSD, ничего специфичного о программировании ядра в нем нет, зато есть немного общей полезной информации. Руководство по Архитектуре FreeBSD — также является частью Проекта Документации FreeBSD, содержит описания некоторых низкоуровневых средств и процедур. Уделите внимание разделу номер 13 — Написание драйверов устройств для FreeBSD. Несколько интересных статей об устройстве ядра можно найти на сайте FreeBSD Diary. Страницы из раздела номер 9 системного справочника, содержат важную документацию по функциям ядра. Страница справочника &man.geom.4;, а также слайды Пола-Хеннинга Кампа — общее представление о подсистеме GEOM. Страницы справочника &man.g.bio.9;, &man.g.event.9;, &man.g.data.9;, &man.g.geom.9;, &man.g.provider.9;, &man.g.consumer.9;, &man.g.access.9;, а также другие, связанные с вышеупомянутыми и раскрывающие специфический функционал подсистемы GEOM. Страница справочника &man.style.9; — документирует соглашения о стиле оформления кода, которые обязаны быть соблюдены если вы планируете передать ваш код в CVS-древо FreeBSD. Подготовка Для того, чтоб заниматься разработками для ядра, желательно иметь два отдельных компьютера. Один из них предназначен для среды разработки и исходных кодов, а второй — для запуска тестов отлаживаемого кода. Второму компьютеру для работы достаточно иметь возможность выполнять начальную загрузку по сети и монтирование файловых систем по сети. В этой ситуации, если отлаживаемый код содержит ошибки и вызовет аварийную остановку системы, то это не повлечет порчу или утерю исходного кода . Второму компьютеру даже не потребуется иметь свой монитор, достаточно будет соединения асинхронных портов кабелем RS-232 или соединения при помощи KVM-устройства. Но так как далеко не у каждого есть два или более компьютеров под рукой, есть пара способов подготовить иную живую систему для разработки кода для ядра. Один из них — это разработка в VMWare или QEmu виртуальной машине (это лучшее из доступного, после, конечно-же, выделенного для тестов компьютера). Настройка системы для разработки Прежде всего необходимо иметь в ядре поддержку . Добавьте следующие строки в файл конфигурации ядра: options INVARIANT_SUPPORT options INVARIANTS Для большей информативности при отладке включите поддержку WITNESS, которая будет предупреждать вас в случае возникновения взаимоблокировок: options WITNESS_SUPPORT options WITNESS Также включите отладочные символы, если планируете выполнять отладку по дампам аварийных отказов makeoptions DEBUG=-g Установка отладочного ядра обычным способом (make installkernel) не даст привычного результата: файл ядра будет называться kernel.debug и будет находиться в /usr/obj/usr/src/sys/KERNELNAME/. Для удобства, отладочное ядро необходимо скопировать в /boot/kernel/. Также удобно иметь включенный отладчик ядра, так вы сможете исследовать паники сразу-же после их возникновения. Для включения отладчика добавьте следующие строки в файл конфигурации ядра: options KDB options DDB options KDB_TRACE Для автоматического запуска отладчика ядра после возникновения паники может понадобиться установить переменную sysctl: debug.debugger_on_panic=1 Паники системы будут происходить, поэтому уделите внимание кэшу файловой системы. Обычно, при включенном механизме softupdates, последняя версия файла может быть утеряна если паника произошла раньше сбрасывания кэша на устройство хранения. Выключение механизма softupdates (посредством монтирования файловой системы с опцией sync) значительно сказывается на производительности и, опять-же, не гарантирует целостности данных. Как компромисс, можно сократить задержки сбрасывания кэша механизма softupdates. Есть три переменных sysctl, значения которых необходимо изменить (лучше всего — прописав их в /etc/sysctl.conf): kern.filedelay=5 kern.dirdelay=4 kern.metadelay=3 Значения этих переменных — секунды. Для отладки паник ядра необходимы дампы памяти. Так как паника ядра может сломать файловую систему, дамп сначала сохраняется в сырой раздел. Обычно, это своп-раздел. Поэтому, размер своп-раздела должен быть не меньше размера ОЗУ компьютера. При последующей загрузке дамп копируется в обычный файл. Это происходит сразу-же после проверки и монтирования файловых систем, но перед активированием раздела свопа. Такое поведение контролируется следующими переменными /etc/rc.conf: dumpdev="/dev/ad0s4b" dumpdir="/usr/core" Переменная dumpdev указывает на раздел подкачки, а dumpdir сообщает системе куда перемещать дамп ядра при следующей загрузке. Сохранение дампа ядра — процесс медленный, и, если у вашего компьютера много оперативной памяти (>256M) и если паники случаются часто, то ожидание сохранения дампов может начать раздражать (вспомним, что над дампом происходит две операции: сохранение в своп-файл и перемещение на файловую систему). В таком случае может оказаться удобным ограничивание объема используемой системой памяти путем установки переменной в /boot/loader.conf: hw.physmem="256M" Если паники случаются часто и размер файловых систем большой (или же вы просто не доверяете softupdates и фоновой проверке файловых систем), рекомендуется отключить фоновую проверку файловых систем посредством установки переменной в /etc/rc.conf: background_fsck="NO" В этом случае файловые системы будут проверяться только при необходимости. Также заметьте, что в случае использования фоновой проверки, новая паника может случиться в то время, когда проверяются диски. Другими словами, наиболее безопасный способ — не иметь много локальных файловых систем, а использовать второй компьютер в качестве NFS-сервера. Начало проекта Для написания нового класса GEOM необходимо создать поддиректорию в любой доступной пользователю директории. Совсем не обязательно, чтоб ваш модуль изначально размещался в /usr/src. Makefile Правилом хорошего тона является создание Makefile-ов для каждого нетривиального проекта, примером которого конечно-же является создание модулей ядра. Создание Makefile — дело не сложное благодаря исчерпывающему набору вспомогательных средств, предоставляемых системой. В вкратце, вот как должен выглядеть Makefile для модуля ядра: SRCS=g_journal.c KMOD=geom_journal .include <bsd.kmod.mk> Этот Makefile (с измененными именами файлов) подойдет к любому модулю ядра. Класс GEOM может размещаться в одном единственном модуле ядра. Если для сборки вашего модуля требуется больше, чем один файл, то перечислите их имена, разделенные пробельными символами, в переменной SRCS. Программирование в ядре FreeBSD Выделение памяти Прочитайте &man.malloc.9; — выделение памяти лишь немного отличается от своего эквивалента, используемого в пространстве пользовательских процессов (userland). Наиболее приметно то, что malloc() и free() принимают дополнительные параметры, которые описаны в странице справочника. Тип malloc_type необходимо объявить в секции деклараций файла с исходным кодом, например: static MALLOC_DEFINE(M_GJOURNAL, "gjournal data", "GEOM_JOURNAL Data"); Для того, чтобы можно было использовать этот макрос, необходимо включить следующие заголовочные файлы: sys/param.h, sys/kernel.h и sys/malloc.h Существует еще один механизм выделения памяти — UMA (Universal Memory Allocator), описанный в &man.uma.9;. Это специфический метод, преимущественно предназначенный для быстрого выделения памяти под списки, состоящие из элементов одинакового размера (например, динамические массивы структур). Очереди и списки Ознакомьтесь с &man.queue.3; Во множестве случаев вам необходимо будет организовывать и управлять такой структурой данных, как списки. К счастью, эта структура данных реализована несколькими способами в виде макросов на Си, а также включена в систему. Наиболее гибкий и часто употребляемый тип списка — TAILQ. Этот тип списка также один из наиболее требовательных к памяти (его элементы - с двойными связями), а также — наиболее медленный (однако счет идет на несколько инструкций ЦПУ, поэтому последнее утверждение не следует воспринимать в всерьез). Если важна скорость получения данных, то возьмите на вооружение &man.tree.3; и &man.hashinit.9;. BIOs Структура bio используется для всех операций ввода/вывода, касающихся GEOM. Она содержит информацию о том, какое устройство ('поставщик geom') должно ответить на запрос, тип запроса, смещение, длину и указатель на буфер, а также набор определенных пользователем флагов и полей . Важным моментом является то, что bio обрабатываются асинхронно. Это значит, что во многих частях кода нет аналога к &man.read.2; и &man.write.2; функциям из пространства пользовательских процессов, которые не возвращают управление пока не выполнится системный вызов. Скорее, по завершении обработки запроса (или в случае ошибки при обработке) как извещение вызывается определенная пользователем функция. Асинхронная модель программирования в чем-то сложней, нежели чаще используемая императивная модель, используемая в пространстве пользовательских процессов; в любом случае, привыкание займет некоторое время. В некоторых случаях могут быть использованы вспомогательные функции g_write_data() и g_read_data(), но далеко не всегда. В частности, эти функции не могут использоваться когда захвачен мьютекс; например, мьютекс GEOM-топологии или внутренний мьютекс, удерживаемый в ходе выполнения .start() или .stop(). Программирование в системе GEOM Ggate Если максимальная производительность не требуется, то более простой способ совершать преобразования данных — это выполнять их в пространстве пользовательских процессов посредством ggate (GEOM gate). К недостаткам следует отнести невозможность простого переноса кода в ядро. Класс GEOM Класс GEOM выполняет преобразования данных. Эти преобразования могут быть скомпонованы друг с другом в виде дерева. Экземпляр класса GEOM называют geom. В каждом классе GEOM есть несколько методов класса, которые вызываются когда экземпляра класса нет в наличии (или же они не привязаны к конкретному экземпляру класса). .init вызывается тогда, когда системе GEOM становится известно о классе GEOM (например, когда загружается модуль ядра). .fini будет вызван в случае отказа GEOM системы от класса (например, при выгрузке модуля). .taste вызывается, когда в системе появляется новый класс или поставщик geom (provider). Если соответствие найдено, то эта функция обычно создает и запускает экземпляр geom. .destroy_geom вызывается при необходимости разрушить экземпляр geom. .ctlconf будет вызван, когда пользователь запросит изменение конфигурации существующего экземпляра geom Также определены функции событий GEOM, которые копируются в экземпляр geom. Поле .geom в структуре g_class — это список (LIST) экземпляров geom, реализованных из класса. Эти функции вызываются из g_event потока ядра. Softc softc — это устаревший термин для приватных данных драйвера (driver private data). Название вероятней всего происходит от устаревшего термина software control block. В системе GEOM softc это структура (точнее: указатель на структуру) которая может быть присоединена к экземпляру geom и может содержать приватные данные экземпляра. У большинства классов GEOM есть следующие члены: struct g_provider *provider : поставщик geom предоставляемый данным экземпляром geom uint16_t n_disks : Количество потребителей geom (consumer), обслуживаемых данным экземпляром geom struct g_consumer **disks : Массив struct g_consumer*. (Невозможно обойтись одинарным указателем, потому что система GEOM создает для нас структуры struct g_consumer*) Структура softc содержит состояние экземпляра geom. У каждого экземпляра есть свой softc. Метаданные Формат метаданных в той или иной мере зависит от конкретного класса, но обязан начинаться с: 16-байтного буфера для подписи — строки с завершающим нулем (обычно это имя класса) uint32 идентификатора версии Подразумевается, что классы geom знают как обращаться с метаданными с идентификаторами версий ниже, чем их собственные. Метаданные размещаются в последнем секторе поставщика geom (поэтому обязаны целиком умещаться в нем). (Все это зависит от реализации, но весь существующий код работает подобно описанному и поддерживается библиотеками.) Маркирование/создание экземпляра geom Последовательность событий следующая: пользователь запускает служебную программу &man.geom.8; программа решает каким классом geom ей придется управлять и ищет библиотеку geom_CLASSNAME.so (которая обычно находится в /lib/geom). она открывает библиотеку при помощи &man.dlopen.3;, извлекает вспомогательные функции и определения параметров командной строки. Вот так происходит создание/маркирование нового экземпляра geom: &man.geom.8; ищет команду в аргументах командной строки (обычно это ) и вызывает вспомогательную функцию. Вспомогательная функция проверяет параметры и собирает метаданные, которые записываются во все вовлеченные поставщики geom. Это повреждает (spoil) существующие экземпляры geom (если они были) и порождает новый виток тестирования поставщиков geom. Целевой класс geom опознает метаданные и активирует экземпляр geom. (Приведенная выше последовательность событий зависит от конкретной реализации, но весь существующий код работает подобно описанному и поддерживается библиотеками.) Структура команд geom Вспомогательная библиотека geom_CLASSNAME.so экспортирует структуру class_commands, которая является массивом элементов struct g_command. Эти команды одинакового формата и выглядят следующим образом: команда [-опции] имя_geom [другие] Общими командами являются: label — записать метаданные в устройства, чтобы они могли быть опознаны в процессе тестирования и использованы в соответствующих экземплярах geom destroy — разрушить метаданные, за которым последует разрушение экземпляров geom Общие опции: -v : детальный вывод -f : принудить Некоторые операции, к примеру маркирование метаданными и разрушение метаданных могут быть выполнены из пространства пользовательских процессов. Для этого, структура g_command содержит поле gc_func, которое может быть установлено на функцию (в том-же .so), которая будет вызвана для обработки команды. В случае, когда gc_func равно NULL, команда будет передана модулю ядра: функции .ctlreq класса GEOM. Экземпляры geom У экземпляров классов GEOM есть внутренние данные, которые хранятся в структурах softc, а также есть некоторые функции, посредством которых они реагируют на внешние события. Функции событий: .access : просчитывает права доступа (чтение/запись/исключительный доступ) .dumpconf : возвращает информацию о экземпляре geom; формат XML .orphan : вызывается, когда отсоединяется любой из низлежащих поставщиков geom .spoiled : вызывается, когда производится запись в низлежащий поставщик geom .start : обрабатывает ввод/вывод Эти функции вызываются из ядерного потока g_down и в этом контексте не может быть блокировок (поищите определение блокировка в других источниках), что немного ограничивает свободу действий, но способствует быстроте обработки. Из вышеупомянутых, наиболее важной и выполняющей полезную работу функцией является .start(), которая вызывается всякий раз, когда поставщику geom, управляемому экземпляром класса, приходит запрос BIO. Потоки выполнения системы geom Системой GEOM в ядре ОС создаются и используются три потока выполнения (kernel threads): g_down : Обрабатывает запросы, приходящие от высокоуровневых сущностей (таких, как запросы из пространства пользовательских процессов) на пути к физическим устройствам g_up : Обрабатывает ответы от драйверов устройств на запросы, выполненные высокоуровневыми сущностями g_event : Отрабатывает в остальных случаях, как-то создание экземпляра geom, просчитывание прав доступа, события повреждения и т.п. Когда пользовательский процесс запрашивает прочитать данные X по смещению Y файла, происходит следующее: Файловая система преобразует запрос в экземпляр структуры bio и передает его системе GEOM. Файловая система знает, что экземпляр geom должен обработать запрос, так как файловые системы размещаются непосредственно над экземпляром geom. Запрос завершается вызовом функции .start() в потоке g_down и достигает верхнего экземпляра geom. Верхний экземпляр geom (например, это секционировщик разделов (partition slicer)) определяет, что запрос должен быть переадресован нижестоящему экземпляру geom (к примеру, драйверу диска). Вышестоящий экземпляр geom создает копию запроса bio (запросы bio ВСЕГДА копируются при передаче между экземплярами geom при помощи g_clone_bio()!), изменяет поля смещения и целевого поставщика geom и запускает на обработку копию при помощи функции g_io_request() Драйвер диска также получает запрос bio, как вызов функции .start() в потоке g_down. Драйвер обращается к контроллеру диска, получает блок данных и вызывает функцию g_io_deliver() используя копию запроса bio Теперь, извещение о завершении bio всплывает в потоке g_up. Сначала в потоке g_up вызывается функция .done() секционировщика разделов, последний использует полученную информацию, разрушает клонированный экземпляр структуры bio посредством g_destroy_bio() и вызывает g_io_deliver() используя первоначальный запрос Файловая система получает данные и передает их пользовательскому процессу За информацией о том, как данные передаются в структуре bio между экземплярами geom, смотрите &man.g.bio.9; (обратите внимание на использование полей bio_parent и bio_children). Важный момент в том, что НЕЛЬЗЯ ДОПУСКАТЬ БЛОКИРОВОК В ПОТОКАХ G_UP И G_DOWN. Вот неполный перечень того, что нельзя делать в этих потоках: Вызывать функции msleep() или tsleep(). Использовать функции g_write_data() и g_read_data(), так как они блокируются в момент обмена данными с потребителями geom. Ожидать ввод/вывод. Вызывать &man.malloc.9; и uma_zalloc() с установленным флагом M_WAITOK. Использовать &man.sx.9; Это ограничение на код GEOM призвано избежать от засорения пути запроса ввода/вывода, так как блокировки обычно не имеют четких временных границ, и нет гарантий на занимаемое время (также на то есть и другие технические причины). Это также значит, что в вышеупомянутых потоках сколь-нибудь сложные операции выполнить нельзя, например: любое сложное преобразование требует выделения памяти. К счастью решение есть: создание дополнительных ядерных потоков. Ядерные потоки выполнения, предназначенные для использования в коде geom Ядерные потоки выполнения создаются функцией &man.kthread.create.9;, в своем поведении они схожи с потоками, созданными в пространстве пользовательских процессов, но есть одно отличие: они не могут известить вызвавший их поток о своем завершении; по завершению — необходимо вызывать &man.kthread.exit.9; В коде GEOM обычное назначение этих потоков — разгрузить поток g_down (функцию .start() ) от обработки запросов. Эти потоки подобны обработчикам событий (event handlers): у них есть очередь событий (которая наполняется событиями от разных функций из разных потоков; очередь необходимо защищать мьютексом), события из очереди выбираются одно за другим и обрабатываются в большом блоке switch(). Основное преимущество использования отдельного потока, который обрабатывает запросы ввода/вывода, то, что он может блокироваться по мере необходимости. Это, несомненно, привлекательно, но должно быть хорошо обдумано. Блокирование — хорошо и удобно, но может существенно снизить производительность преобразований данных в системе GEOM. Особо требовательные к производительности классы могут делать всю работу в функции .start(), уделяя особое внимание ошибкам при работе с памятью. Еще одно преимущество потока обработчика событий это сериализация всех запросов и ответов, приходящих с разных потоков geom в один поток. Это также удобно, но может быть медленным. В большинстве случаев, обработка запросов функцией .done() может быть оставлена потоку g_up. У мьютексов в ядре FreeBSD (&man.mutex.9;) есть одно различие с их аналогами из пространства пользовательских процессов — во время удержания мьютекса в коде не должно быть блокировки. Если в коде необходимо блокирование, то лучше использовать &man.sx.9;. С другой стороны, если вся ваша работа выполняется в одном потоке, вы можете обойтись вообще без мьютексов.
diff --git a/ru_RU.KOI8-R/articles/gjournal-desktop/Makefile b/ru_RU.KOI8-R/articles/gjournal-desktop/Makefile index ad5b88dc5e..22111404de 100644 --- a/ru_RU.KOI8-R/articles/gjournal-desktop/Makefile +++ b/ru_RU.KOI8-R/articles/gjournal-desktop/Makefile @@ -1,19 +1,22 @@ # # $FreeBSD$ # # Article: Implementing UFS journaling on a desktop PC +# +# Original revision: 1.1 +# DOC?= article FORMATS?= html INSTALL_COMPRESSED?=gz INSTALL_ONLY_COMPRESSED?= SRCS= article.sgml IMAGES_EN= disklabel1.png IMAGES_EN+= disklabel2.png URL_RELPREFIX?= ../../../.. DOC_PREFIX?= ${.CURDIR}/../../.. .include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/ru_RU.KOI8-R/articles/hubs/article.sgml b/ru_RU.KOI8-R/articles/hubs/article.sgml index 4c121d1026..a7a233c302 100644 --- a/ru_RU.KOI8-R/articles/hubs/article.sgml +++ b/ru_RU.KOI8-R/articles/hubs/article.sgml @@ -1,1110 +1,1180 @@ %articles.ent; ]>
Поддержка зеркал FreeBSD + $FreeBSD$ + Jun Kuriyama
kuriyama@FreeBSD.org
+ Valentino Vaschetto
logo@FreeBSD.org
+ Daniel Lang
dl@leo.org
+ Ken Smith
kensmith@FreeBSD.org
+ Дмитрий Морозовский Перевод на русский язык:
&tm-attrib.freebsd; &tm-attrib.cvsup; &tm-attrib.general; Рабочий вариант статьи, описывающей процесс создания и поддержки зеркала FreeBSD и адресованной администраторам зеркал.
Контактная информация Координаторы системы зеркал доступны по электронной почте по адресу mirror-admin@FreeBSD.org. Помимо этого, существует - &a.hubs;. + &a.hubs;. Требования к зеркалам FreeBSD + Дисковое пространство - - Одним из наиболее важных требований является дисковое пространство. + + Одним из наиболее важных требований является дисковое пространство. В зависимости от набора релизов, архитектур и степени полноты зеркала вам может потребоваться огромный объем диска. Не лишним будет помнить, что официальное зеркало, скорее всего, должно быть полным. Репозиторий CVS и веб-страницы всегда должны зеркалироваться полностью. Кроме того, учтите, что приводимые оценки объема относятся к состоянию на момент последнего редактирования - данной статьи (&rel2.current;-RELEASE/&rel.current;-RELEASE). Дальнейший процесс - разработки и последующие релизы только увеличат требуемый объем. - Кроме того, разумно будет зарезервировать некоторое (10-20%) - дополнительное пространство спокойствия ради. - Вот некоторые оценки объема: - + данной статьи (&rel2.current;-RELEASE/&rel.current;-RELEASE). + Дальнейший процесс разработки и последующие релизы только увеличат + требуемый объем. Кроме того, разумно будет зарезервировать некоторое + (10-20%) дополнительное пространство спокойствия ради. Вот некоторые + оценки объема: + - Полное зеркало FTP: 373 GB - Репозиторий CVS: 3.1 GB - Комплект изменений CTM: 3.2 GB - Веб-страницы: 463 MB + + Полное зеркало FTP: 739 GB + + + + Репозиторий CVS: 5.4 GB + + + + Комплект изменений CTM: 3.2 GB + + + + Веб-страницы: 463 MB + - - Текущее использование диска зеркалом FTP можно посмотреть на - ftp://ftp.FreeBSD.org/pub/FreeBSD/dir.sizes. - - + + Текущее использование диска зеркалом FTP можно посмотреть на + ftp://ftp.FreeBSD.org/pub/FreeBSD/dir.sizes. + Требования к сетевой связности и пропускной способности - - Разумеется, у вас должно быть подключение к интернет. + + Разумеется, у вас должно быть подключение к интернет. Требуемая пропускная способность ваших каналов зависит от предполагаемого профиля использования вашего зеркала. Если вы собираетесь копировать некоторые части FreeBSD для локального использования на вашей машине или в интранете, требования могут быть много мягче, чем для публичного зеркала. Для официального зеркала необходимая пропускная способность - увеличивается еще больше. Мы можем дать лишь очень грубые оценки: - + увеличивается еще больше. Мы можем дать лишь очень грубые + оценки: + - Зеркало для локального доступа: фактически минимум не - определен, но канал шириной менее 2 Mbps может сделать процесс - обновления мучительно медленным. - Неофициальное публичное зеркало: 34 Mbps выглядит - неплохо для начала. - Официальное зеркало: рекомендуется канал шириной более - 100 Mbps; кроме того, ваша машина должна стоять как можно ближе к - граничным маршрутизаторам вашей сети. + + Зеркало для локального доступа: фактически минимум не + определен, но канал шириной менее 2 Mbps может сделать процесс + обновления мучительно медленным. + + + + Неофициальное публичное зеркало: 34 Mbps выглядит + неплохо для начала. + + + + Официальное зеркало: рекомендуется канал шириной более + 100 Mbps; кроме того, ваша машина должна стоять как можно ближе к + граничным маршрутизаторам вашей сети. + + Системные требования, процессор и память - - Эти требования в первую очередь определяются максимальным ожидаемым + + Эти требования в первую очередь определяются максимальным ожидаемым количеством клиентов (устанавливается администратором сервера). Также, на требуемые ресурсы влияет список сервисов, которые вы будете предоставлять. Зеркало FTP и/или HTTP не требуют особенно много ресурсов; значительно больше памяти и вычислительной производительности потребляют CVSup, rsync или AnonCVS. Особенно "прожорливым" по памяти является rsync; CVSup требует достаточной производительности процессора. Для предоставления доступа по AnonCVS хорошей идеей будет создание виртуальной файловой системы в памяти (MFS) по крайней мере 300 MB размером, так что учтите это при планировании. Вот некоторые - советы по конфигурации аппаратной части сервера: - - - Для умеренно посещаемого сайта, предоставляющего + советы по конфигурации аппаратной части сервера: + + Для умеренно посещаемого сайта, предоставляющего Rsync, можно использовать процессор с частотой 800MHz - 1 GHz и по крайней мере 512MB памяти. Скорее всего, данная конфигурация может считаться минимальной для - официального зеркала. - - - Для регулярно посещаемого сайта вам потребуется больше памяти + официального зеркала. + + Для регулярно посещаемого сайта вам потребуется больше памяти (хорошим стартом будет 2GB) и больше процессорной мощности, что может - означать требование многопроцессорной (SMP) платформы. - - - Кроме того, вам потребуется быстрая дисковая подсистема, в первую + означать требование многопроцессорной (SMP) платформы. + + Кроме того, вам потребуется быстрая дисковая подсистема, в первую очередь, для работы с репозиторием CVS (крайне рекомендуем RAID). Контроллер SCSI, оборудованный собственной памятью, также может ощутимо ускорить процесс, поскольку большая часть сервисов связана - с большим количеством дисковых запросов небольшого размера. - + с большим количеством дисковых запросов небольшого размера. + Предоставляемые сервисы - - Всякое зеркало должно предоставлять набор основных сервисов. + + Всякое зеркало должно предоставлять набор основных сервисов. Помимо требуемого минимального набора, существуют дополнительные сервисы, которые администратор сервера может пожелать предоставлять. Этот раздел описывает, какие сервисы вы можете предоставлять, и какие - действия для этого потребуются от вас. - + действия для этого потребуются от вас. + FTP (требуется для FTP зеркала) - - Это один из наиболее базовых сервисов; его предоставление требуется + + Это один из наиболее базовых сервисов; его предоставление требуется для каждого зеркала, распространяющего файлы FreeBSD по FTP. Доступ по FTP должен быть анонимным, и не должны применяться какие-либо ограничения по соотношению объема передано/принято (что вообще является, на наш взгляд, странным подходом). Закачка (upload) файлов на сервер не требуется (и должна быть запрещена в разделе FreeBSD). Кроме того, архив файлов FreeBSD должен быть доступен с путем - /pub/FreeBSD. - + /pub/FreeBSD. + Для предоставления анонимного FTP доступа может быть использован - целый ряд программ (перечислены в алфавитном порядке): - - - /usr/libexec/ftpd: базовый - FTP-даемон FreeBSD. Не забудьте прочитать &man.ftpd.8;. - - - ftp/ncftpd: - коммерческий пакет, свободен для использования в учебных целях. - - - - ftp/oftpd: FTP-даемон, - написанный в основном с точки зрения защищенности. - - - ftp/proftpd: Модульный - и очень гибкий FTP-даемон. - - - ftp/pure-ftpd: - Еще один FTP-даемон, разработанный с позиций защищенности. - - - ftp/twoftpd: - См. предыдущий пункт. - ftp/vsftpd: + целый ряд программ (перечислены в алфавитном порядке): + + + + /usr/libexec/ftpd: базовый + FTP-даемон FreeBSD. Не забудьте прочитать &man.ftpd.8;. + + + + ftp/ncftpd: коммерческий + пакет, свободен для использования в учебных целях. + + + + ftp/oftpd: FTP-даемон, + написанный в основном с точки зрения защищенности. + + + + ftp/proftpd: Модульный + и очень гибкий FTP-даемон. + + + + ftp/pure-ftpd: + Еще один FTP-даемон, разработанный с позиций защищенности. + + + + ftp/twoftpd: + См. предыдущий пункт. + + + + ftp/vsftpd: очень защищенный (very secure) - ftpd. - - ftp/wu-ftpd: - ftpd от Вашингтонского Университета (Washington - University). Несколько потерял популярность из-за большого - количества найденных в прошлом ошибок защиты. Если вы решите - использовать его, помните о необходимости отслеживания - обновлений. - - - - ftpd, proftpd, + ftpd. + + + + ftp/wu-ftpd: + ftpd от Вашингтонского Университета (Washington + University). Несколько потерял популярность из-за большого + количества найденных в прошлом ошибок защиты. Если вы решите + использовать его, помните о необходимости отслеживания + обновлений. + + + + ftpd, + proftpd, wu-ftpd и, возможно, ncftpd являются наиболее часто встречающимися FTP серверами. Прочие распространены среди существующих зеркал в существенно меньшей степени. Дополнительным поводом для рассмотрения может являться возможность гибко ограничивать количество одновременных соединений, что поможет вам удержать в нужных рамках потребление - пропускной способности ваших каналов и машинные ресурсы. - + пропускной способности ваших каналов и машинные ресурсы. + Rsync (необязательный сервис для FTP зеркала) + Rsync часто используется для предоставления доступа к FTP-области FreeBSD, чтобы другие зеркала могли синхронизироваться по вашему. Протокол rsync во многом отличается от FTP, в частности, он гораздо гуманнее с точки зрения пропускной способности каналов, поскольку не требует передачи - измененного файла целиком (передаются лишь различия). Взамен + измененного файла целиком (передаются лишь различия). Взамен Rsync требует значительных объемов - памяти. Размер каждого процесса зависит от размера синхронизируемого + памяти. Размер каждого процесса зависит от размера синхронизируемого модуля (в основном от количества директорий и файлов). Rsync может использовать в качестве транспортного протокола rsh или ssh (по умолчанию); также, может использоваться внутренний протокол rsync (этот метод предпочтителен для публичных rsync-серверов). Поддерживается авторизация клиентов и различные ограничения. - Для протокола rsync существует единственный пакет: - - net/rsync - - + Для протокола rsync существует единственный пакет: + + + + net/rsync + + + HTTP (требуется для веб-страниц, дополнителен для FTP зеркал) - - Если вы хотите поддерживать зеркало веб-страниц FreeBSD, вам потребуется - установить веб-сервер. + Если вы хотите поддерживать зеркало веб-страниц FreeBSD, + вам потребуется установить веб-сервер. Дополнительно, вы можете предоставлять HTTP доступ к FTP-набору файлов FreeBSD. Выбор веб-сервера остается на усмотрение администратора зеркала. Некоторые из наиболее популярных - веб-серверов перечислены ниже. - - - - www/apache13: - Apache — самый широко распространённый - в Интернете веб-сервер, активно - используемый проектом FreeBSD. Вы можете также использовать - веб-сервер Apache следующего поколения, доступный в коллекции портов как - www/apache22. - - - - www/thttpd: - Для обслуживания большого количества запросов к статическим - документам сервер thttpd может оказаться более эффективным, чем - Apache. thttpd отлично оптимизирован по производительности - при работе под FreeBSD. - - - - www/boa: - Boa — еще одна - альтернатива thttpd и - Apache. Этот сервер - должен быть ощутимо более высокопроизводительным, чем - Apache, - для полностью статических страниц. На время написания данного - документа, впрочем, он не так хорошо оптимизирован под - FreeBSD, как thttpd. - - - + веб-серверов перечислены ниже. + + + + www/apache13: + Apache — самый + широко распространённый в Интернете веб-сервер, активно + используемый проектом FreeBSD. Вы можете также использовать + веб-сервер Apache следующего + поколения, доступный в коллекции портов как + www/apache22. + + + + www/thttpd: + Для обслуживания большого количества запросов к статическим + документам сервер thttpd может оказаться более эффективным, чем + Apache. thttpd отлично оптимизирован + по производительности при работе под FreeBSD. + + + + www/boa: + Boa — еще одна + альтернатива thttpd и + Apache. Этот сервер + должен быть ощутимо более высокопроизводительным, чем + Apache, + для полностью статических страниц. На время написания данного + документа, впрочем, он не так хорошо оптимизирован под + FreeBSD, как thttpd. + + + CVSup (желателен для зеркал репозитория CVS) - - CVSup предоставляет очень эффективный + + CVSup предоставляет очень эффективный механизм распространения файлов. Он работает подобно rsync и был разработан специально для использования с репозиториями CVS. Если вы планируете предоставлять доступ к репозиторию CVS FreeBSD, стоит делать это посредством CVSup. Помимо этого, можно использовать - AnonCVS, FTP, rsync - или HTTP, но использование CVSup - наиболее разумно. + AnonCVS, FTP, + rsync или HTTP, но использование + CVSup наиболее разумно. Автором CVSup является &a.jdp;. CVSup непросто установить на платформе, - отличной от FreeBSD, поскольку он написан на языке Modula-3 и - требует соответствующего окружения. Джон Полстра создал усеченную - версию M3, достаточную для работы CVSup, - которую намного проще установить. Подробности можно прочитать здесь: - Ezm3. - Относящиеся к теме пакеты: - - - - net/cvsup: - Порт CVSup (клиент и сервер), требующий для сборки пакет - lang/ezm3. - - - net/cvsup-mirror: - Набор для CVSup-зеркала, требующий - net/cvsup-without-gui, - и конфигурирующий его в процессе установки. Возможно, - некоторым администраторам потребуется другой набор установок. - - - - - Может также оказаться полезным пакет + отличной от FreeBSD, поскольку он написан на языке Modula-3 и требует + соответствующего окружения. Джон Полстра создал усеченную версию M3, + достаточную для работы CVSup, которую + намного проще установить. Подробности можно прочитать здесь: Ezm3. + Относящиеся к теме пакеты: + + + + net/cvsup: + Порт CVSup (клиент и сервер), требующий для сборки пакет + lang/ezm3. + + + + net/cvsup-mirror: + Набор для CVSup-зеркала, требующий + net/cvsup-without-gui, + и конфигурирующий его в процессе установки. Возможно, некоторым + администраторам потребуется другой набор установок. + + + + Может также оказаться полезным пакет net/cvsup-without-gui. Если вы предпочитаете пакет, собранный статически, загляните по этой ссылке. Эта страница все еще описывает ошибку S1G. Возможно, в будущем Джон создаст универсальный сайт для загрузки статически - собранных вариантов CVSup для различных платформ. - - - При помощи CVSup можно распространять + собранных вариантов CVSup для различных платформ. + + При помощи CVSup можно распространять любые коллекции файлов (не только репозитории CVS), однако его конфигурация может быть непростой. Известно, что CVSup потребляет ощутимое количество процессорного времени как на сервере, так и на клиенте, поскольку - сравнивает большое количество файлов. - + сравнивает большое количество файлов. + AnonCVS (дополнителен для зеркал репозитория CVS) - - Если вы копируете репозиторий CVS, можно дополнительно предоставить - к нему анонимный доступ. Для начала, предупреждение: спрос на этот - сервис не так уж велик, подготовка его требует некоторого опыта, и, - наконец, вы должны знать, что делаете. - - - Существует два основных способа удаленного доступа к репозиторию + + Если вы копируете репозиторий CVS, можно дополнительно + предоставить к нему анонимный доступ. Для начала, предупреждение: + спрос на этот сервис не так уж велик, подготовка его требует + некоторого опыта, и, наконец, вы должны знать, что делаете. + + Существует два основных способа удаленного доступа к репозиторию CVS: через pserver и через ssh (доступ через rsh мы рассматривать не будем). Для анонимного доступа наиболее подходит pserver; впрочем, некоторые сайты дают доступ и посредством ssh. Для последнего будет полезной специальная программа, предназначенная для использования в качестве шелла для учетной записи анонимного ssh-доступа. Она использует вызов chroot, поэтому репозиторий CVS должен располагаться внутри домашнего каталога анонимного пользователя, что приемлемо не для всех сайтов. Данное ограничение не распространяется на доступ через pserver, однако последний вариант может быть связан с дополнительным риском с точки зрения безопасности. Никаких дополнительных программ для обеспечения анонимного CVS-доступа не потребуется, поскольку &man.cvs.1; входит в базовую поставку FreeBSD. Вам нужно будет разрешить запуск cvs из inetd, для чего необходимо добавить в файл /etc/inetd.conf - строку вида - -cvspserver stream tcp nowait root /usr/bin/cvs cvs -f -l -R -T /anoncvstmp --allow-root=/home/ncvs pserver - - Обратитесь к странице справочника &man.cvs.1; за дополнительной + строку вида + + cvspserver stream tcp nowait root /usr/bin/cvs cvs -f -l -R -T /anoncvstmp --allow-root=/home/ncvs pserver + + Обратитесь к странице справочника &man.cvs.1; за дополнительной информацией по опциям. Кроме того, страницы info по CVS описывают, как удостовериться в том, что вы предоставляете доступ только для чтения. Рекомендуется создать непривилегированную учетную запись, желательно с именем anoncvs. Потребуется также создать файл passwd в каталоге /home/ncvs/CVSROOT и установить пароль (пустой или anoncvs) для пользователя anoncvs. Создание файловой системы /anoncvstmp в памяти не необходимо, но рекомендуется для ускорения работы: в ней &man.cvs.1; будет создавать временную структуру каталогов, которая не используется по завершении операции, но сильно замедляет работу, если требуются операции записи на реальный диск. Пример описания такой файловой системы в файле - /etc/fstab: - -/dev/da0s1b /anoncvstmp mfs rw,-s=786432,-b=4096,-f=512,-i=560,-c=3,-m=0,nosuid,nodev 0 0 - - Эти установки (разумеется, тщательно подобранные) предложил - &a.jdp;. - + /etc/fstab: + + /dev/da0s1b /anoncvstmp mfs rw,-s=786432,-b=4096,-f=512,-i=560,-c=3,-m=0,nosuid 0 0 + + Эти установки (разумеется, тщательно подобранные) предложил + &a.jdp;. + Как вести зеркало FreeBSD - - Теперь вам известно, какая потребуется машина и как предоставлять + + Теперь вам известно, какая потребуется машина и как предоставлять сервисы, но не как получить их самому. :-) В этом разделе описывается процесс ведения зеркала и поддержания его в актуальном состоянии, в том числе какие инструменты использовать и какие сайты выбирать в качестве источников для - синхронизации. - + синхронизации. + - FTP - - Файлы, доступные по FTP, составляют большую часть зеркала. + FTP + + Файлы, доступные по FTP, составляют большую часть зеркала. Они включают дистрибутивные наборы, необходимые для установки по сети, ветви (branches), в которых отражено текущее состояние исходных текстов, образы ISO для записи компакт-дисков с дистрибутивами для установки, образами живых файловых систем и пакетами, дерево портов, исходные дистрибутивы для сборки портов и кучу готовых пакетов. И, разумеется, все вышеописанное — для разных версий FreeBSD и различных - архитектур. - + архитектур. + При помощи программ для FTP-зеркалирования + Для выкачивания файлов вы можете использовать программу FTP-зеркалирования. - Вот некоторые из наиболее часто использующихся: - - ftp/mirror - ftp/ftpmirror - ftp/emirror - ftp/spegla - ftp/omi - ftp/wget - - - Ранее наиболее популярным вариантом был + Вот некоторые из наиболее часто использующихся: + + + + ftp/mirror + + + + ftp/ftpmirror + + + + ftp/emirror + + + + ftp/spegla + + + + ftp/omi + + + + ftp/wget + + + + Ранее наиболее популярным вариантом был ftp/mirror, хотя из-за того, что эта программа написана на &man.perl.1;, существуют различные ограничения, в особенности при зеркалировании больших файловых структур, таких как FreeBSD. Утверждается, впрочем, что в текущей версии последняя проблема исправлена за счет дополнительного - алгоритма сравнения структуры каталогов. - - - Вообще говоря, протокол FTP не лучшим образом подходит для поддержки - зеркала. Измененный файл передается целиком; кроме того, невозможно - создание единого потока данных, который мог бы повысить - эффективность передачи за счет большого TCP-окна. - + алгоритма сравнения структуры каталогов. + + Вообще говоря, протокол FTP не лучшим образом подходит для + поддержки зеркала. Измененный файл передается целиком; кроме того, + невозможно создание единого потока данных, который мог бы повысить + эффективность передачи за счет большого TCP-окна. + При помощи rsync - - Более эффективным будет синхронизация FTP-области при помощи + + Более эффективным будет синхронизация FTP-области при помощи rsync. Для этого следует установить пакет net/rsync, который был описан в разделе . Поскольку доступ по протоколу rsync не является обязательным, выбранный вами сайт может его не поддерживать. Возможно, вам придется немного поискать в сетевой окрестности зеркало, поддерживающее - rsync. - - - Поскольку от количества клиентов rsync - ощутимо зависит загрузка сервера, большинство администраторов - вводят ограничения доступа. Для поддержания зеркала вам следует - связаться с администратором сайта, с которым вы будете - синхронизироваться, для уточнения локальных правил и, возможно, - для внесения в них исключения для вас (поскольку вы также - поддерживаете зеркало). - - - Строка для синхронизации FreeBSD по rsync выглядит примерно так: - &prompt.user; rsync -vaz --delete ftp4.de.FreeBSD.org::FreeBSD/ /pub/FreeBSD/ - - Загляните в документацию по rsync, + rsync. + + + Поскольку от количества клиентов + rsync ощутимо зависит загрузка сервера, + большинство администраторов вводят ограничения доступа. Для + поддержания зеркала вам следует связаться с администратором сайта, + с которым вы будете синхронизироваться, для уточнения локальных + правил и, возможно, для внесения в них исключения для вас + (поскольку вы также поддерживаете зеркало). + + + Строка для синхронизации FreeBSD по rsync выглядит примерно + так: + + &prompt.user; rsync -vaz --delete ftp4.de.FreeBSD.org::FreeBSD/ /pub/FreeBSD/ + + Загляните в документацию по rsync, также доступную по адресу http://rsync.samba.org/ за дополнительной информацией по различным опциям rsync. Обратите внимание, что в случае синхронизации модуля целиком (а не отдельного каталога) необходимо явно указать результирующий каталог, потому что каталог с именем модуля (в данном случае "FreeBSD") не создается. Для поддержания актуальности вам потребуется - создать скрипт для запуска подобной команды из &man.cron.8;. - + создать скрипт для запуска подобной команды из &man.cron.8;. + При помощи CVSup - - Немногие сайты, в первую очередь центральный + + Немногие сайты, в первую очередь центральный ftp-master.FreeBSD.org предоставляют для синхронизации FTP-области доступ по протоколу CVSup. Вам потребуется клиент CVSup, предпочтительно из пакета net/cvsup (см. также ). Пример конфигурационного файла (supfile) для - синхронизации с ftp-master.FreeBSD.org: - -# + синхронизации с + ftp-master.FreeBSD.org: + + # # FreeBSD archive supfile from master server # *default host=ftp-master.FreeBSD.org *default base=/usr *default prefix=/pub #*default release=all *default delete use-rel-suffix *default umask=002 # If your network link is a T1 or faster, comment out the following line. #*default compress -FreeBSD-archive release=all preserve - +FreeBSD-archive release=all preserve - Судя по всему, синхронизация при помощи + Судя по всему, синхронизация при помощи CVSup — лучший по эффективности способ поддержки зеркала, однако он доступен лишь с небольшого числа - сайтов. - - - Прочтите документацию по CVSup, - например, &man.cvsup.1;, и обратите внимание на опцию - . Она может уменьшить объем операций - ввода-вывода, предполагая, что записанная информация о - каждом файле корректна. - - + сайтов. + + + Прочтите документацию по CVSup, + например, &man.cvsup.1;, и обратите внимание на опцию + . Она может уменьшить объем операций + ввода-вывода, предполагая, что записанная информация о + каждом файле корректна. + + Зеркалирование CVS репозитория + Существует несколько способов синхронизации CVS репозитория. CVSup наиболее общий метод. Использование CVSup + Программа CVSup немного описана в ( и ). - Настроить CVSup зеркало очень - просто. Установка net/cvsup-mirror - проверит, что все нужные программы установлены и затем - соберет всю необходимую информацию для конфигурирования зеркала. + Настроить CVSup зеркало очень просто. + Установка net/cvsup-mirror + проверит, что все нужные программы установлены и затем соберет всю + необходимую информацию для конфигурирования зеркала. + - - Не забудьте почитать полезную подсказку - здесь. - + Не забудьте почитать полезную подсказку + здесь. + Другие методы - - Использование методов, отличных от + + Использование методов, отличных от CVSup, не рекомендуется. Тем не менее, мы кратко упомянем их. Поскольку большая часть зеркал дает доступ к репозиторию CVS в числе прочих файлов, доступных по FTP, по пути /pub/FreeBSD/development/FreeBSD-CVS, - могут быть использованы: - - FTP - Rsync - HTTP - - - - AnonCVS не может использоваться для зеркалирования CVS - репозитория, так как CVS не разрешает сам доступ к репозиторию, - а только к извлечённым версиям модулей. - - + могут быть использованы: + + + + FTP + + + + Rsync + + + + HTTP + + + + + AnonCVS не может использоваться для зеркалирования CVS + репозитория, так как CVS не разрешает сам доступ к репозиторию, + а только к извлечённым версиям модулей. + + Зеркалирование страниц WWW - - Лучшим способом будет извлечение (check out) из репозитория CVS модуля - www. При условии наличия у вас копии - репозитория, все, что для этого потребуется — выполнить команду - &prompt.user; cvs -d /home/ncvs co www - и сформировать задание для cron, которое будет + + Лучшим способом будет извлечение (check out) из репозитория CVS + модуля www. При условии наличия у вас копии + репозитория, все, что для этого потребуется — выполнить + команду + + &prompt.user; cvs -d /home/ncvs co www + + и сформировать задание для cron, которое будет регулярно выполнять операцию cvs up -d -P, например, каждый раз после обновления копии репозитория. Разумеется, файлы должны находиться в иерархии, доступной для публичного веб-доступа. Мы сознательно не будем обсуждать здесь - процесс установки и конфигурации веб-сервера для этих целей. - + процесс установки и конфигурации веб-сервера для этих целей. - - Если у вас нет локальной копии репозитория, можно использовать + Если у вас нет локальной копии репозитория, можно использовать CVSup для синхронизации копии веб-страниц. Пример конфигурации можно найти в файле /usr/share/examples/cvsup/www-supfile. - Приведем его здесь: - -# + Приведем его здесь: + + # # WWW module supfile for FreeBSD # *default host=cvsup3.de.FreeBSD.org *default base=/usr *default prefix=/usr/local *default release=cvs tag=. *default delete use-rel-suffix # If your network link is a T1 or faster, comment out the following line. *default compress # This collection retrieves the www/ tree of the FreeBSD repository -www - - - - Использование пакета ftp/wget или - иных инструментов для создания веб-зеркал не рекомендуется. - - - Зеркала документации FreeBSD - - Поскольку многие веб-страницы ссылаются на документацию, хорошей идеей - является поддержка зеркала документации FreeBSD совместно с прочими - зеркалами. Надо отметить, что этот процесс не столь тривиален, как - поддержка зеркала веб-страниц самих по себе. - - - Для начала вы должны создать копию исходных текстов документации - (как и во многих других случаях, для этого предпочтителен - CVSup). Вот пример файла конфигурации: - -# +www + + Использование пакета ftp/wget + или иных инструментов для создания веб-зеркал не рекомендуется. + + + Зеркала документации FreeBSD + + + Поскольку многие веб-страницы ссылаются на документацию, хорошей + идеей является поддержка зеркала документации FreeBSD совместно + с прочими зеркалами. Надо отметить, что этот процесс не столь + тривиален, как поддержка зеркала веб-страниц самих по себе. + + Для начала вы должны создать копию исходных текстов документации + (как и во многих других случаях, для этого предпочтителен + CVSup). Вот пример файла + конфигурации: + + # # FreeBSD documentation supfile # *default host=cvsup3.de.FreeBSD.org *default base=/usr *default prefix=/usr/share *default release=cvs tag=. *default delete use-rel-suffix # If your network link is a T1 or faster, comment out the following line. #*default compress # This will retrieve the entire doc branch of the FreeBSD repository. # This includes the handbook, FAQ, and translations thereof. -doc-all - - - - Затем, вам потребуется несколько пакетов. К счастью, - специально для этого существует мета-порт - textproc/docproj. - Также, необходимо установить некоторые переменные окружения, - например SGML_CATALOG_FILES, и переменные - в файле /etc/make.conf, главным образом - переменную DOC_LANG (используйте файл - /usr/share/examples/make.conf как шаблон). - После этого можно выдать команду make - в главном каталоге документации (по умолчанию это - /usr/share/doc). Как и прежде, эти каталоги - должны быть доступны для вашего веб-сервера (проверьте, что ссылки - ведут в нужные места). - - - Процесс подготовки и построения документации, а также многие - сопутствующие вопросы, подробно описан в документе - Учебник по Проекту - Документирования &os;. Прочтите этот документ, - в особенности если у вас возникли проблемы со сборкой - стандартного комплекта документации. - - - - - - - Как часто синхронизироваться? - - Каждое зеркало должно регулярно обновляться. Вам потребуется какой-то - набор скриптов, выполняемых посредством &man.cron.8;. Поскольку каждый - администратор, как правило, пишет такие скрипты сам и на свой лад, мы - не можем выдать конкретных указаний. Общие же советы выглядят так: - - - - - Создайте скрипт с командой, которая запустит нужное приложение для - обновления зеркала. Рекомендуем использовать скрипт на языке - обычного /bin/sh. - - - - - Добавьте команд перенаправления вывода, чтобы записать диагностику - работы в файл. - - - - - Попробуйте, как ваш скрипт работает. По завершении проверьте логи. - - - - - При помощи утилиты &man.crontab.1; добавьте ваш скрипт в таблицу - регулярных заданий &man.crontab.5; соответствующего пользователя. - Это должен быть пользователь, отличный от пользователя FTP-даемона, - чтобы файлы в FTP-области без атрибута "чтение для всех" не были - доступны анонимным FTP-пользователям. Данное свойство используется - для тестирования перед выходом новых релизов, для того чтобы - удостовериться, что все официальные зеркала содержат все - необходимые файлы к моменту официального объявления релиза. - - - - - Некоторые рекомендуемые установки частоты обновления: - - FTP-набор: раз в сутки - репозиторий CVS: раз в час - WWW-страницы: раз в сутки - - - +doc-all + + Затем, вам потребуется несколько пакетов. К счастью, + специально для этого существует мета-порт + textproc/docproj. + Также, необходимо установить некоторые переменные окружения, + например SGML_CATALOG_FILES, и переменные + в файле /etc/make.conf, главным образом + переменную DOC_LANG (используйте файл + /usr/share/examples/make.conf как шаблон). + После этого можно выдать команду make + в главном каталоге документации (по умолчанию это + /usr/share/doc). Как и прежде, эти каталоги + должны быть доступны для вашего веб-сервера (проверьте, что ссылки + ведут в нужные места). + + + Процесс подготовки и построения документации, а также + многие сопутствующие вопросы, подробно описан в документе + Учебник по Проекту + Документирования &os;. Прочтите этот документ, + в особенности если у вас возникли проблемы со сборкой + стандартного комплекта документации. + + + + + + Как часто синхронизироваться? + + Каждое зеркало должно регулярно обновляться. Вам потребуется + какой-то набор скриптов, выполняемых посредством &man.cron.8;. + Поскольку каждый администратор, как правило, пишет такие скрипты сам + и на свой лад, мы не можем выдать конкретных указаний. Общие же советы + выглядят так: + + + + Создайте скрипт с командой, которая запустит нужное приложение + для обновления зеркала. Рекомендуем использовать скрипт на языке + обычного /bin/sh. + + + + Добавьте команд перенаправления вывода, чтобы записать + диагностику работы в файл. + + + + Попробуйте, как ваш скрипт работает. По завершении проверьте + логи. + + + + При помощи утилиты &man.crontab.1; добавьте ваш скрипт в таблицу + регулярных заданий &man.crontab.5; соответствующего пользователя. + Это должен быть пользователь, отличный от пользователя FTP-даемона, + чтобы файлы в FTP-области без атрибута "чтение для всех" не были + доступны анонимным FTP-пользователям. Данное свойство используется + для тестирования перед выходом новых релизов, для того чтобы + удостовериться, что все официальные зеркала содержат все + необходимые файлы к моменту официального объявления релиза. + + + + Некоторые рекомендуемые установки частоты обновления: + + + + FTP-набор: раз в сутки + + + + репозиторий CVS: раз в час + + + + WWW-страницы: раз в сутки + + + + С какого сервера синхронизироваться - - Это важный вопрос, так что мы попытаемся пояснить, откуда берутся + + Это важный вопрос, так что мы попытаемся пояснить, откуда берутся ответы. Для начала повторим еще несколько раз: никогда не синхронизируйтесь с ftp.FreeBSD.org - . - + . + Организация системы зеркал - - Зеркала организуются по странам. Имена хостов всех официальных зеркал - построены по принципу ftpN.CC.FreeBSD.org, - где CC (country code) — домен верхнего - уровня страны, где расположено зеркало, + + Зеркала организуются по странам. Имена хостов всех официальных + зеркал построены по принципу + ftpN.CC.FreeBSD.org, + где CC (country code) — домен + верхнего уровня страны, где расположено зеркало, N — номер зеркала в данной стране. Этот же принцип применим к именам хостов cvsupN.CC.FreeBSD.org, wwwN.CC.FreeBSD.org и т.п. Кроме того, есть зеркала без доменной части, обозначающей страну. Все они имеют очень хорошие внешние каналы и обслуживают большое число одновременных соединений. Имя ftp.FreeBSD.org на самом деле указывает на две машины, одна из которых в настоящее время находится в Дании, а другая в США. Ни одна из этих машин НЕ является основным сайтом, и потому не должна использоваться для синхронизации. Масса документации для живых пользователей указывает на ftp.FreeBSD.org, так что автоматическим системам ведения зеркал следует выбирать другие источники - синхронизации. - - - Кроме того, существует иерархия зеркал в терминах их удаленности от + синхронизации. + + Кроме того, существует иерархия зеркал в терминах их удаленности от центра, или слоях. Основные сайты могут быть описаны как Зеркала нулевого слоя. Зеркала, синхронизирующиеся по ним, считаются слоем 1, следующие — слоем 2 и т.д. Официальные сайты приглашаются на низкие слои, однако следует помнить, что чем меньше номер слоя, тем выше требования к зеркалу, как было описано в . Помимо того, доступ к зеркалам 1 слоя может быть ограничен; безусловно ограничен доступ к - основным сайтам. Иерархия слоев не отражается в + основным сайтам. Иерархия слоев не отражается в DNS и, вообще говоря, нигде (кроме мастер-сайтов) не документирована. Тем не менее, официальные зеркала с малыми (1-4, как правило) номерами обычно представляют первый слой. (Это грубая оценка, и ни в коем - случае не правило). - + случае не правило). + Так откуда же мне синхронизироваться? - - Главное — НЕ с ftp.FreeBSD.org. - Короткий ответ: с зеркала, которое расположено недалеко от вас - в терминах Интернет, и/или доступ к которому наилучший. - + + Главное — НЕ с + ftp.FreeBSD.org. Короткий ответ: + с зеркала, которое расположено недалеко от вас в терминах Интернет, + и/или доступ к которому наилучший. + Я хочу получить копию зеркала хоть откуда-нибудь! - - Если у вас нет каких-либо специальных предпочтений или требований, - см. . Это означает: - + + Если у вас нет каких-либо специальных предпочтений или + требований, см. . + Это означает: + - - Посмотрите на список доступных зеркал в вашей стране. - Вам может помочь - База - данных зеркал FreeBSD. - + Посмотрите на список доступных зеркал в вашей стране. + Вам может помочь База + данных зеркал FreeBSD. + - - Выберите те из них, с которыми вам работать быстрее всего - (меньшее число промежуточных узлов и время отклика), и которые предоставляют - нужные вам сервисы (такие как rsync - или CVSup). - + Выберите те из них, с которыми вам работать быстрее всего + (меньшее число промежуточных узлов и время отклика), и которые + предоставляют нужные вам сервисы (такие как + rsync или + CVSup). + - - Свяжитесь с администраторами выбранного сервера, опишите ваши - запросы и уточните их правила. - + Свяжитесь с администраторами выбранного сервера, опишите + ваши запросы и уточните их правила. + - - Сконфигурируйте ваше зеркало, как описывалось выше. - + Сконфигурируйте ваше зеркало, как описывалось выше. + - Я поддерживаю официальное зеркало, какой сайт мне выбрать? - - В основном, правила, описанные в - , применимы. - Дополнительно можно убедиться, что выбранный сайт принадлежит - низкому слою. + Я поддерживаю официальное зеркало, какой сайт + мне выбрать? + + В основном, правила, описанные в + , применимы. Дополнительно + можно убедиться, что выбранный сайт принадлежит низкому слою. Другие соображения относительно официальных - зеркал описаны в . - + зеркал описаны в . + Мне нужен доступ к основным сайтам! - - При наличии достаточных причин вы можете получить доступ к одному из - основных сайтов. Доступ к ним ограничен; существуют специальные - правила их использования. Наличие у вас статуса + + При наличии достаточных причин вы можете получить доступ + к одному из основных сайтов. Доступ к ним ограничен; существуют + специальные правила их использования. Наличие у вас статуса официального зеркала, безусловно, является хорошим подспорьем. В противном случае убедитесь, что ваша страна действительно нуждается еще в одном зеркале. Если их уже три или более, сначала свяжитесь с администратором соответствующей зоны DNS (hostmaster@CC.FreeBSD.org) - или напишите в &a.hubs;. - + или напишите в &a.hubs;. - - Доступ к одному из мастер-сайтов или подходящему зеркалу 1 уровня + Доступ к одному из мастер-сайтов или подходящему зеркалу 1 уровня вам помогут обеспечить те же, кто помогал вам получить статус официального зеркала. В случае неудачи свяжитесь с mirror-admin@FreeBSD.org и попросите - помощи у них. - + помощи у них. - - Существует три основных сайта для синхронизации набора файлов FTP + Существует три основных сайта для синхронизации набора файлов FTP и один для репозитория CVS. Веб-страницы и документация хранятся - в CVS, поэтому не имеют отдельных основных сайтов. - + в CVS, поэтому не имеют отдельных основных сайтов. + ftp-master.FreeBSD.org - - Это основной сервер для синхронизации FTP набора. - - - ftp-master.FreeBSD.org поддерживает доступ по + + Это основной сервер для синхронизации FTP набора. + + ftp-master.FreeBSD.org поддерживает доступ по rsync и - CVSup, в дополнение к FTP. Использование этих протоколов - описано в разделах и - . - - - Приветствуется предоставление зеркалами + CVSup, в дополнение к FTP. + Использование этих протоколов описано в разделах + и + . + + Приветствуется предоставление зеркалами 1 уровня доступа к FTP-области по протоколу - rsync. - + rsync. + cvsup-master.FreeBSD.org - - Это основной сервер для синхронизации репозитория CVS. - - - cvsup-master.FreeBSD.org обеспечивает доступ + + Это основной сервер для синхронизации репозитория CVS. + + cvsup-master.FreeBSD.org обеспечивает доступ только по протоколу CVSup. - Детали см. в . - - - Для получения доступа к этому серверу вам нужно связаться с + Детали см. в . + + Для получения доступа к этому серверу вам нужно связаться с &a.cvsup-master;. Не забудьте сначала прочитать Правила - доступа к центральному CVSup серверу FreeBSD! - - - Подготовьте параметры авторизации, как описано - здесь. + доступа к центральному CVSup серверу FreeBSD! + + Подготовьте параметры авторизации, как описано здесь. Не забудьте, что в качестве имени сервера команде cvpasswd нужно указать freefall.FreeBSD.org, несмотря на то, что устанавливать соединение вы будете с - cvsup-master.FreeBSD.org. - + cvsup-master.FreeBSD.org. + Официальные зеркала - - Официальные зеркала обладают следующим свойствами: - - - - a) имеют запись в домене FreeBSD.org - (обычно типа CNAME). - - - - - b) присутствуют в списке официальных зеркал в Руководстве - по FreeBSD и другой документации. - - - - На настоящий момент это все, что отличает их от прочих зеркал. + Официальные зеркала обладают следующим свойствами: + + + + a) имеют запись в домене FreeBSD.org + (обычно типа CNAME). + + + + b) присутствуют в списке официальных зеркал в Руководстве + по FreeBSD и другой документации. + + + + На настоящий момент это все, что отличает их от прочих зеркал. Официальные зеркала не обязательно принадлежат к Первому уровню, однако, вряд ли можно найти - зеркало уровня 1, не являющееся официальным. - + зеркало уровня 1, не являющееся официальным. + Отдельные требования к официальным зеркалам 1 уровня - - Описать требования для всех официальных зеркал не так просто, + + Описать требования для всех официальных зеркал не так просто, поскольку проект FreeBSD достаточно мягок в этом отношении. Несколько проще указать, что требуется от официальных зеркал уровня 1. Прочие официальные зеркала должны рассматривать этот список как настойчивые - пожелания. - - - Следующее относится в основном к набору файлов FTP, поскольку - репозиторий CVS всегда должен зеркалироваться полностью, - а веб-страницы представляют собой несколько особый случай. - - - - - Зеркала 1 уровня должны: - - поддерживать полный список файлов - предоставлять доступ для других зеркал - обеспечивать доступ по протоколам + пожелания. + + + Следующее относится в основном к набору файлов FTP, поскольку + репозиторий CVS всегда должен зеркалироваться полностью, + а веб-страницы представляют собой несколько особый случай. + + + Зеркала 1 уровня должны: + + + + поддерживать полный список файлов + + + + предоставлять доступ для других зеркал + + + + обеспечивать доступ по протоколам FTP и - rsync. - - + rsync. + + + + Кроме того, администратор такого зеркала должен быть подписан + на &a.hubs;. См. здесь + для дополнительной информации о подписке. - Кроме того, администратор такого зеркала должен быть подписан на &a.hubs;. - См. здесь - для дополнительной информации о подписке. - - - Администраторы зеркал, в особенности 1 уровня, должны + Администраторы зеркал, в особенности 1 уровня, должны очень внимательно следить за графиком релизов. Это поможет подготовиться к крупным всплескам нагрузки на зеркало, - которые всегда происходят после очередного релиза. - - - Кроме того, важно поддерживать актуальность зеркал (в особенности + которые всегда происходят после очередного релиза. + + Кроме того, важно поддерживать актуальность зеркал (в особенности зеркал уровня 1). Если Зеркало1 не синхронизировалось в течение длительного времени, то зеркала следующего уровня будут синхронизироваться по устаревшей информации и т.д. - Поддерживайте актуальность ваших зеркал! - + Поддерживайте актуальность ваших зеркал! + Как стать официальным зеркалом? - - Небезынтересный вопрос, в особенности если учитывать последствия + + Небезынтересный вопрос, в особенности если учитывать последствия становления официальным зеркалом, например, увеличившиеся счета за интернет от вашего провайдера (ведь нагрузка на ваш сервер неизбежно увеличится). Статус официального зеркала может быть - ключевым требованием для доступа к основному сайту. - - - Прежде чем отправлять заявку, убедитесь в необходимости + ключевым требованием для доступа к основному сайту. + + Прежде чем отправлять заявку, убедитесь в необходимости дополнительного официального зеркала в вашем регионе. Справьтесь у администратора вашей зоны (hostmaster@CC.FreeBSD.org) - или, в случае, если вам не отвечают, здесь: &a.hubs;. - + или, в случае, если вам не отвечают, здесь: &a.hubs;. + Собственно процедура такова: + - - Обеспечьте работоспособность и актуальность зеркала (скорее всего, - синхронизируясь не по основному сайту). - + Обеспечьте работоспособность и актуальность зеркала (скорее + всего, синхронизируясь не по основному сайту). + - - Подпишитесь - здесь - на &a.hubs;. - + Подпишитесь здесь + на &a.hubs;. + - - После успешного завершения предыдущих пунктов, напишите + После успешного завершения предыдущих пунктов, напишите администратору DNS вашего региона (страны) и попросите его создать запись в зоне для вашего сайта. Почтовый адрес администратора hostmaster@CC.FreeBSD.org, где CC — код вашей страны (и суффикс домена верхнего уровня). Формат вашей записи в DNS описан в - . - - - Если для вашей страны пока не создано поддомена, свяжитесь с + . + + Если для вашей страны пока не создано поддомена, свяжитесь с mirror-admin@FreeBSD.org или сначала напишите - в &a.hubs;. - + в &a.hubs;. + - - Персона, помогавшая вам получить статус официального зеркала, + Персона, помогавшая вам получить статус официального зеркала, должна послать письмо mirror-admin@FreeBSD.org, - чтобы ваш сайт был включен в список официальных зеркал в - Руководстве - FreeBSD. - + чтобы ваш сайт был включен в список официальных зеркал в + Руководстве FreeBSD. + Статистика некоторых зеркал - - Вот несколько ссылок на статистику использования зеркал - + + Вот несколько ссылок на статистику использования зеркал + Статистика FTP сайтов + ftp.is.FreeBSD.org - hostmaster@is.FreeBSD.org - - (загрузка канала) (FTP - процессы) (HTTP процессы) - - + (загрузка канала) + (FTP + процессы) + + (HTTP процессы) + ftp.cz.FreeBSD.org - cejkar@fit.vutbr.cz - - (загрузка канала) - (FTP процессы) - (rsync процессы) - + + (загрузка канала) + + (FTP процессы) + + (rsync процессы) + ftp2.ru.FreeBSD.org - mirror@macomnet.ru - (Bandwidth) - (HTTP and FTP users) - + (HTTP and FTP users) + Статистика CVSup сайтов + cvsup[23456].jp.FreeBSD.org - kuriyama@FreeBSD.org - (CVSup процессы) + url="http://home.jp.FreeBSD.org/stats/mrtg/cvsup/index.en.html">(CVSup процессы) + cvsup.cz.FreeBSD.org - cejkar@fit.vutbr.cz - (CVSup процессы) + + + cvsup4.ru.FreeBSD.org - maxim@FreeBSD.org - + (CVSup процессы) +
diff --git a/ru_RU.KOI8-R/articles/mailing-list-faq/article.sgml b/ru_RU.KOI8-R/articles/mailing-list-faq/article.sgml index 0ad9b33da0..bbb2f2cb22 100644 --- a/ru_RU.KOI8-R/articles/mailing-list-faq/article.sgml +++ b/ru_RU.KOI8-R/articles/mailing-list-faq/article.sgml @@ -1,538 +1,538 @@ %articles.ent; ]>
Часто задаваемые вопросы по спискам рассылки &os; The &os; Documentation Project $FreeBSD$ 2004 2005 The &os; Documentation Project Эта статья посвящена часто задаваемым вопросам (FAQ) по спискам рассылки &os;. Если вы хотите помочь поддерживать данный документ, напишите письмо в &a.doc;. Последняя версия данного документа доступна на WWW сервере &os;. Вы можете получить данную статью в виде одного большого HTML файла, используя HTTP протокол или в виде простого текста, форматов PostScript, PDF, и других с FTP сервера &os;. Возможно вы захотите Найти FAQ. Введение Цель этого документа ответить на часто задаваемые вопросы, касающиеся списков рассылки &os;. Хотя FAQ задумывались для снижения количества задаваемых повторяющихся вопросов, они стали восприниматься, как ценные источники информации. Этот документ - попытка представить консенсус всего сообщества, и поэтому он не может считаться официальным. Если вы найдете технические неточности в данном документе или у вас есть предложения по добавлению новых пунктов, пожалуйста отправьте PR или напишите в &a.doc;. Спасибо. Зачем вообще нужны списки рассылки по &os;? Списки рассылки по &os; служат, как первичное средство связи &os; сообщества, они покрывают множество различных тем. Кто пользуется этими списками рассылки? Это зависит от темы обсуждения каждого конкретного списка рассылки. Некоторые списки больше ориентированны на разработчиков, некоторые на всё сообщество &os; в целом. Список существующих на сегодняшний день списков рассылки доступен здесь. Доступны ли списки рассылки по &os; для каждого? Повторюсь, это зависит от характера обсуждаемых тем в каждом конкретном листе. Пожалуйста прочтите устав списка рассылки перед отправлением в него письма и соблюдайте его при каждом отправлении. Это будет полезно каждому получить больше опыта по работе со списками рассылки. Если после просмотра выше расположенного списка, вы до сих пор не знаете в какой список рассылки направить письмо, то вам наверняка подойдёт freebsd-questions (но прежде прочтите ниже). Заметьте, что для отправки письма в список рассылки необязательно быть подписанным на него. Это поможет легче присоединиться к сообществу &os; и способствует открытому обмену идей. Но, из-за небрежности некоторых людей некоторые списки проводят политику предварительного ручного просмотра сообщений от не подписанных пользователей, чтобы убедиться в их целесообразности. Как я могу подписаться? Вы можете использовать web интерфейс Mailman для подписки на любой из открытых списков рассылки. Как мне отписаться? Вы можете использовать вышеупомянутый интерфейс или следовать инструкциям, находящимся в конце каждого письма, отправленного в этот список рассылки. Пожалуйста, не посылайте письма с отказом от подписки в сами публичные списки. Во-первых, вы так не отпишитесь, а во-вторых, вызовете раздражение подписчиков, и вероятно получите неприятные высказывания в свой адрес. Это классическая ошибка при работе со списками рассылки; старайтесь не повторять её. Доступны ли архивы? Да. Архивы доступны здесь. Доступны ли списки рассылки в дайджест формате? Да. Посмотрите web интерфейс Mailman. Этикет списков рассылки Участие в любом списке рассылки, как и в любом другом сообществе требует общего базиса для общения. Пожалуйста, отправляйте только подходящие сообщения и следуйте общепринятым нормам этикета. Что я должен сделать перед отправлением письма? Вы уже сделали важный шаг, решив прочитать эту статью. Если вы новичок во &os;, то сначала ознакомьтесь с программным обеспечением и связанной с нею документацией, включающей множество книг и статьей. Могут быть интересными: Часто задаваемые вопросы по &os; (FAQ), Руководство по &os; , и статьи Как работать со списком рассылки FreeBSD-questions с максимальной отдачей, Что такое BSD, и Пособие для новичков во &os;. Вы можете получить нелицеприятные высказывания в свой адрес, если зададите вопрос, ответ на который есть в приведённой выше документации. Это не потому что добровольцы, работающие над данным проектом очень плохие люди, а после многократного ответа на одни и те же вопросы - раздражение берёт своё. Это особенно справедливо, если уже существует и доступен ответ на вопрос. Не забывайте, что вся работа по улучшению &os; выполняется добровольцами, и что мы только люди. Что считается несоответствующим письмом? Письма должны соответствовать уставу списка рассылки. Избегайте личных оскорблений. Как хорошие жители сети, мы должны держать себя по высоким стандартам поведения. Спам не разрешён. Нарушители данного правила будут забаненны. Что считается хорошим этикетом при посылке писем в списки рассылки? Пожалуйста, составляйте строки длиной примерно в 75 символов, так так не каждый использует модную почтовую программу с графическим интерфейсом. Пожалуйста, обращайте внимание на тот факт, что пропускная способность ограничена. Не каждый читает почту через высокоскоростное соединение. Если вы отправляете содержимое какого-нибудь файла, например config.log или объёмную трассировку стека, то, пожалуйста, размещайте его на каком-нибудь веб-сайте и присылайте просто ссылку на на него. Помните, что такие сообщения будут заархивированны, и это просто добавит ненужные байты к архиву. Оформляйте ваше сообщение, чтобы оно было читабельно и ПОЖАЛУЙСТА, НЕ КРИЧИТЕ!!!!!. Не упускайте из виду эффект, которое производит плохо отформатированное письмо, причём не только в списках рассылки &os;. Ваше сообщение будет просмотрено другими людьми, и если оно плохо отформатировано, имеет множество ошибок и/или восклицательных знаков, то это создаст нехорошее впечатление о вас. Пожалуйста, используйте подходящий язык общения для конкретного списка рассылки. - + Существует много не англоязычных рассылок. Мы понимаем, что для многих английский не родной язык и поэтому мы пытаемся сделать некие пособия. Считается плохим тоном критиковать людей не говорящих по-английски за лексические и грамматические ошибки. &os; имеет отличные продвижения в этом отношении. Пожалуйста, помогайте сохранять нам эту традицию. Пожалуйста, используйте совместимый со стандартами почтовый клиент (MUA). Много плохо отформатированных сообщений исходят от неправильно работающих или плохо сконфигурированных почтовых клиентов. Известно, что следующие почтовые программы могут посылать неправильно отформатированные сообщения без вашего ведома: cc:Mail &eudora; (старые версии) exmh µsoft; Exchange µsoft; Internet Mail µsoft; &outlook; &netscape; (старые версии) Как вы можете видеть, виновниками зачастую являются почтовые программы из мира Microsoft. Если это вообще возможно, используйте почтовую программу из &unix;. Если вы должны использовать почтовую программу в среде Microsoft, удостоверьтесь в корректности ее настроек. Постарайтесь не использовать MIME: многие используют программы, которые не очень хорошо работают с MIME. Проверьте правильность настроек времени и временной зоны. Это может выглядеть немножко глупо, потому что ваши сообщения все равно будут доставляться, однако многие люди получают несколько сотен сообщений в день. Зачастую они сортируют входящие сообщения по теме и дате, и если ваше сообщение не будет предшествовать первому ответу, то они могут предположить, что оно потерялось и даже не взглянут на него. Основной объем информации, который вы должны предоставить, представляет собой вывод программ, таких, как &man.dmesg.8;, или консольные сообщения, которые обычно появляются в файле /var/log/messages. Не пытайтесь скопировать эту информацию, набрав ее снова; это действительно трудно, и здесь легко сделать ошибку. Чтобы послать содержимое файлов протоколов, сделайте копию файла и воспользуйтесь редактором для того, чтобы обрезать информацию, оставив только относящуюся к делу, либо скопируйте и вставьте текст в ваше сообщение. В случае вывода программ, таких, как dmesg, перенаправьте вывод в файл и включите его в письмо. Например, &prompt.user; dmesg > /tmp/dmesg.out Данная команда перенаправит информацию в файл /tmp/dmesg.out. При использовании операций копирования и вставки учтите, что некоторые такие операции отрицательно сказываются на формате строк. Особенно это стоит учесть при посылке содержимого файлов Makefile, где tab является важным символом. Это довольно часто встречающаяся проблема в базе данных сообщений об ошибках GNATS. В Makefile символы tab меняются на пробелы, или раздражающие =3B escape последовательности. Каких правил этикета стоит придерживаться при ответе на уже существующее сообщение? Пожалуйста, включайте относящийся к теме текст из исходного письма. Сокращайте его до минимума, но не переусердствуйте. Любой, кто не читал исходное сообщение должен суметь понять о чём идёт речь. Это особенно важно для ответов, где исходное сообщение составляло сотни строчек. Отделяйте текст исходного сообщения от текста, добавляемого вами. Чаще всего строчки исходного сообщения предваряются > и пробелом. Отделяйте ваш текст от текста исходного сообщения пустыми строчками. Эти правила помогут сделать ваши сообщения более читабельными. Пожалуйста, убедитесь, что присваивания текста, который вы цитируйте корректны. Люди могут обидеться, если вы присвоите им слова, которые они не писали. Пожалуйста, не пишите ответ в начале. Это значит, что при ответе на сообщения, вставляйте ваши ответы в конец, после текста, копируемого из исходного сообщения. A: Потому что это не соответствует логическому ходу обсуждения. Q: Почему верхнее сообщение осуждает это? (Спасибо Рэнди Бушу (Randy Bush) за шутку.) Повторяющиеся темы в списках рассылки Участие в списках рассылки, как и участие в любом сообществе требует общего базиса для общения. Большое количество рассылок предполагают знание истории Проекта. В частности, существует несколько тем обсуждения, которые возникают у новичков. Обязанность каждого участника не создавать дискуссии на эти темы, тем самым помочь спискам рассылки не отрываться от обсуждаемых тем и обезопасить себя от разгорячённых бесед. Лучший способ предотвратить это - ознакомиться с архивами списков рассылки, чтобы понять, что происходило до этого. В этом случае, незаменимым окажется интерфейс поиска по спискам рассылки. (Если этот способ не принёс результатов, воспользуйтесь вашей любимой поисковой системой). Познакомившись с архивами, вы не только будете знать какие темы обсуждались до этого, а также узнаете какие тенденции общения существуют в данной рассылке, кто является участниками и какова конечная аудитория. Эти вещи довольно хорошо знать перед отправкой письма в любую рассылку, и это касается не только списков рассылки &os;. Нет сомнения, что архивы довольно объёмные и некоторые вопросы повторяются гораздо чаще чем другие, иногда в виде откликов (followups), где тема сообщения уже не соответствует новому положению дел. Тем не менее, старайтесь избегать повторяющихся тем и особенно тем, по которым сообщество никогда не придёт к единому мнению (bikesheeds). Что такое велосипедный навес ("Bikeshed")? В литературной нотации, велосипедный навес - это маленький внешний кожух, в который можно поместить один вид двухколёсного транспорта. Тем не менее, на языке &os; слово означает оскорбительный термин, который относится к любой часто повторяющейся дискуссии по определённой теме. Если более конкретно, то этот термин чаще всего используют для некой темы, которая никогда не достигнет консенсуса сообщества &os; и останется спорной. (Детали происхождения данного термина более подробно рассмотрены здесь). У вас должно иметься представление о данном понятии перед отправкой письма в любой список рассылки &os;. Bikeshed - это тема разговора, которая будет иметь тенденцию порождать немедленные мета-дискуссии и флэйм. Пожалуйста, помогайте сохранять списки рассылки настолько полезными для многих людей, насколько это возможно путём предотвращения bikesheed. Спасибо. Благодарности &a.grog; Первоначальный автор большинства материала по этикету списков рассылки, взятого из статьи Как работать со списком рассылки FreeBSD-questions с максимальной отдачей. &a.linimon; Создание черновой версии данного FAQ.
diff --git a/ru_RU.KOI8-R/articles/mh/article.sgml b/ru_RU.KOI8-R/articles/mh/article.sgml index e8e9ab9b9b..dd195f82db 100644 --- a/ru_RU.KOI8-R/articles/mh/article.sgml +++ b/ru_RU.KOI8-R/articles/mh/article.sgml @@ -1,827 +1,827 @@ %articles.ent; ]>
Учебник по <application>MH</application> Matt Midboe
matt@garply.com
v1.0, 16 января 1996 &tm-attrib.freebsd; &tm-attrib.opengroup; &tm-attrib.general; +--> В этом документе даются основы работы с MH во FreeBSD
Введение MH ведет свою историю с 1977 года, с компании RAND Corporation, где были разработаны основы работы MH. MH не является единой программой для работы с электронной почтой, но подходом к тому, как лучше всего разрабатывать инструменты для чтения электронной почты. Разработчики MH провели большую работу, твердо придерживаясь принципа KISS: Keep It Simple Stupid. Вместо того, чтобы разработать одну большую программу для чтения, отсылки и обработки электронной почты, они написали специальные программы для каждого случая вашей работы с электронной почтой. Некоторым нравится MH по причине его специализации, которую очень проста и естественна. Каждый инструмент в MH выполняет одно действие, но выполняет его очень хорошо. Кроме различных инструментов, которые можно использовать для обработки своей электронной почты, MH прекрасно выполняет работу по сохранению настроек каждого из этих инструментов однообразными и соответствующими друг другу. На самом деле, если вы не совсем понимаете, как что-то должно работать, и какими должны быть аргументы некоторой команды, то вы можете попытаться угадать и окажетесь правы. Каждая команда MH однообразна в обработке конфигурационных файлов и передаче параметров командной строки. Вам полезно будет помнить, что вы всегда можете добавить к команде для вывода опций этой команды. Первым делом вам нужно убедиться, что на вашей машине с FreeBSD установлен пакет MH. Если вы устанавливали систему с компакт-диска, то для установки MH - можете выполнить такую команду:> + можете выполнить такую команду: &prompt.root; pkg_add /cdrom/packages/mh-6.8.3.tgz Вы увидите, что при этом будет создан каталог /usr/local/lib/mh, а в каталог /usr/local/bin будут добавлены несколько выполнимых файлов. Если вы предпочитаете откомпилировать все самостоятельно, то можете сгрузить исходный код с общедоступного ftp-сервера по адресу ftp.ics.uci.edu или louie.udel.edu. Этот учебник не является полным и подробным описанием того, как работает MH. Он предназначен для того, чтобы вы начали свой путь по дороге к более удобному и эффективному чтению электронной почты. Вы должны прочесть страницы справочной системы по различным командам. Также вас может заинтересовать телеконференция comp.mail.mh. Прочтите FAQ по MH. Лучшим источником информации по MH является книга MH и nmh Джерри Пика: электронная почта для пользователей и программистов. Чтение почты Этот раздел посвящен тому, как использовать команды inc, show, scan, next, prev, rmm, rmf и msgchk. Одной из приятнейших особенностей MH является единообразие интерфейсов программ. При использовании этих программ нужно помнить одну особенность — способ задания списков сообщений. В случае команды inc это не обязательно, но с командами типа show это полезно знать. Список сообщений может иметь вид типа 23 20 16, что будет означать сообщения 23, 20 и 16. Это весьма просто, но можно делать более полезные вещи, типа 23-30, что будет означать все сообщения с 23 до 30. Вы можете также указывать здесь в виде cur:10, что будет действовать на текущее сообщение и на следующие 9 сообщений. Сообщения cur, last и first являются особыми обозначениями, соответствующими текущему, последнему и первому сообщениям в почтовом ящике. <command>inc</command>, <command>msgchk</command>—чтение - новой почты или проверка ее наличия + новой почты или проверка ее наличия Если вы просто наберете inc и нажмете return, то начнете работать с MH. При выполнении команды inc в первый раз, она настроит вашу учетную запись для использования настроек MH по умолчанию и запросит создание каталога Mail в вашем домашнем каталоге. Если у вас имеется почта, ожидающая сгрузки, вы увидите - нечто вроде следующего: + нечто вроде следующего: 29 01/15 Doug White Re: Another Failed to boot problem<<On Mon, 15 J - 30 01/16 Jordan K. Hubbar Re: FBSD 2.1<<> Do you want a library instead of + 30 01/16 Jordan K. Hubbar Re: FBSD 2.1<<> Do you want a library instead of 31 01/16 Bruce Evans Re: location of bad144 table<<>> >It would appea - 32 01/16 Jordan K. Hubbar Re: video is up<<> Anyway, mrouted won't run, ev + 32 01/16 Jordan K. Hubbar Re: video is up<<> Anyway, mrouted won't run, ev 33 01/16 Michael Smith Re: FBSD 2.1<<Nate Williams stands accused of sa Это то же самое, что вы увидите при выполнении команды scan (смотрите ). Если вы - просто запустили команду inc без параметров, она - проверит ваш компьютер на наличие электронной почты, которая - предназначается вам. + просто запустили команду inc без параметров, она + проверит ваш компьютер на наличие электронной почты, которая + предназначается вам. Многим нравится для получения своей электронной почты использовать - протокол POP. MH может работать с ним для получения + протокол POP. MH может работать с ним для получения вашей электронной почты. Вам нужно передать команде inc несколько - аргументов командной строки. + аргументов командной строки. &prompt.user; inc -host mail.pop.org -user username -norpop Это укажет команде inc на соединение с mail.pop.org для сгрузки вашей электронной - почты, а также сообщит о том, что ваше имя пользователя в той системе + почты, а также сообщит о том, что ваше имя пользователя в той системе username. Параметр указывает команде inc на использование обычного POP3 - для сгрузки вашей электронной почты. В MH + для сгрузки вашей электронной почты. В MH имеется поддержка нескольких разновидностей POP. Более чем вероятно, что вам никогда не придется ими пользоваться. Хотя с inc вы можете выполнять более сложные действия, такие, как проверка файлов и сканирование формата файлов, это позволит вам начать работу. Команда msgchk используется для получения - информации о том, есть ли у вас новая почта. msgchk - воспринимает те же самые параметры и - , что и команда inc. + информации о том, есть ли у вас новая почта. msgchk + воспринимает те же самые параметры и + , что и команда inc. <command>show</command>, <command>next</command> и <command>prev</command>—вывод и передвижение по электронной - почте + почте show выводит письмо в вашей текущем почтовом - ящике. Как и inc, команда show - незатейлива. Если вы просто наберете show и + ящике. Как и inc, команда show + незатейлива. Если вы просто наберете show и нажмете return, то она выдаст текущее сообщение. Вы - можете также указать конкретные номера выводимых сообщений: + можете также указать конкретные номера выводимых сообщений: &prompt.user; show 32 45 56 По этой команде выведутся сообщения с номерами 32, 45 и 56 друг за - другом. Пока вы не поменяете действия по умолчанию, команда + другом. Пока вы не поменяете действия по умолчанию, команда show в основном выполняет команду - more над сообщением электронной почты. + more над сообщением электронной почты. next используется для перехода к следующему - сообщению, а prev для перехода к предыдущему - сообщению. Обе команды подразумевают выполнение команды - show, поэтому при переходе к следующему сообщению - оно будет автоматически выведено на экран. + сообщению, а prev для перехода к предыдущему + сообщению. Обе команды подразумевают выполнение команды + show, поэтому при переходе к следующему сообщению + оно будет автоматически выведено на экран. <command>scan</command>—сканирование ваших сообщений scan выдает краткий список сообщений в вашем - текущем почтовом ящике. Вот пример того, что вам выдаст команда + текущем почтовом ящике. Вот пример того, что вам выдаст команда scan. 30+ 01/16 Jordan K. Hubbar Re: FBSD 2.1<<> Do you want a library instead of 31 01/16 Bruce Evans Re: location of bad144 table<<>> >It would appea 32 01/16 Jordan K. Hubbar Re: video is up<<> Anyway, mrouted won't run, ev 33 01/16 Michael Smith Re: FBSD 2.1<<Nate Williams stands accused of sa Как и практически все в MH, этот вывод можно настроить. Это обычный формат вывода по умолчанию. В нем дается номер сообщения, дата, отправитель, строка темы и фрагмент начала письма, если он помещается. Знак + означает, что данное сообщение является текущим, так что при выполнении команды show будет выдано именно это сообщение. - Одним из полезных параметров для команды scan является является + Одним из полезных параметров для команды scan является . При этом ваши сообщения будут выдаваться в порядке, при котором сообщения с наибольшими номерами следуют первыми, а сообщения с меньшими номерами последними. Другим полезным параметром для scan является чтение из файла. Если вы хотите просканировать почтовый ящик с входящей почтой во FreeBSD без использования команды inc, то это можно сделать командой scan -file /var/mail/username. Это можно сделать с любым файлом в формате mbox. <command>rmm</command> и <command>rmf</command>—удаление текущего сообщения или почтового ящика rmm используется для удаления почтового сообщения. По умолчанию обычно сообщение на самом деле не удаляется, а переименовывается и игнорируется командами MH. Вам нужно периодически просматривать сообщения и физически удалять удаленные сообщения. Команда rmf используется для удаления почтовых ящиков. Она не переименовывает файлы, а действительно их удаляет с диска, так что при использовании этой команды вам нужно быть внимательными. Типичный сеанс чтения с использованием MH Сначала вам нужно получить новую почту командой inc. Так что в командной строке наберите inc и нажмите return. &prompt.user; inc Incorporating new mail into inbox... 36+ 01/19 Stephen L. Lange Request...<<Please remove me as contact for pind 37 01/19 Matt Thomas Re: kern/950: Two PCI bridge chips fail (multipl - 38 01/19 Amancio Hasty Jr Re: FreeBSD and VAT<<>>> Bill Fenner said: > In + 38 01/19 Amancio Hasty Jr Re: FreeBSD and VAT<<>>> Bill Fenner said: > In &prompt.user; При этом выдается ваша новая электронная почта, которая была - добавлена в ваш почтовый ящик. Так что следующими действиями будут + добавлена в ваш почтовый ящик. Так что следующими действиями будут вывод сообщений по команде show и переход от - сообщения к сообщению. + сообщения к сообщению. &prompt.user; show Received: by sashimi.wwa.com (Smail3.1.29.1 #2) id m0tdMZ2-001W2UC; Fri, 19 Jan 96 13:33 CST Date: Fri, 19 Jan 1996 13:33:31 -0600 (CST) From: "Stephen L. Lange" <stvlange@wwa.com> To: matt@garply.com Subject: Request... Message-Id: <Pine.BSD.3.91.960119133211.824A-100000@sashimi.wwa.com> Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Please remove me as contact for pindat.com &prompt.user; rmm &prompt.user; next Received: from localhost (localhost [127.0.0.1]) by whydos.lkg.dec.com (8.6.11/8 .6.9) with SMTP id RAA24416; Fri, 19 Jan 1996 17:56:48 GMT Message-Id: <199601191756.RAA24416@whydos.lkg.dec.com> X-Authentication-Warning: whydos.lkg.dec.com: Host localhost didn't use HELO pro tocol To: hsu@clinet.fi Cc: hackers@FreeBSD.org -Subject: Re: kern/950: Two PCI bridge chips fail (multiple multiport ethernet - boards) +Subject: Re: kern/950: Two PCI bridge chips fail (multiple multiport ethernet + boards) In-Reply-To: Your message of "Fri, 19 Jan 1996 00:18:36 +0100." - <199601182318.AA11772@Sysiphos> + <199601182318.AA11772@Sysiphos> X-Mailer: exmh version 1.5omega 10/6/94 Date: Fri, 19 Jan 1996 17:56:40 +0000 From: Matt Thomas <matt@lkg.dec.com> Sender: owner-hackers@FreeBSD.org Precedence: bulk This is due to a typo in pcireg.h (to which I am probably the guilty party). По команде rmm было удалено текущее сообщение, а - по команде next был выполнен переход к следующему - сообщению. Теперь, если я захочу просмотреть десять последних - сообщений для чтения одного из них, я должен сделать следующее: + по команде next был выполнен переход к следующему + сообщению. Теперь, если я захочу просмотреть десять последних + сообщений для чтения одного из них, я должен сделать следующее: &prompt.user; scan last:10 - 26 01/16 maddy Re: Testing some stuff<<yeah, well, Trinity has + 26 01/16 maddy Re: Testing some stuff<<yeah, well, Trinity has 27 01/17 Automatic digest NET-HAPPENINGS Digest - 16 Jan 1996 to 17 Jan 19 - 28 01/17 Evans A Criswell Re: Hey dude<<>From matt@tempest.garply.com Tue + 28 01/17 Evans A Criswell Re: Hey dude<<>From matt@tempest.garply.com Tue 29 01/16 Karl Heuer need configure/make volunteers<<The FSF is looki 30 01/18 Paul Stephanouk Re: [alt.religion.scientology] Raw Meat (humor)< 31 01/18 Bill Lenherr Re: Linux NIS Solaris<<--- On Thu, 18 Jan 1996 1 34 01/19 John Fieber Re: Stuff for the email section?<<On Fri, 19 Jan 35 01/19 support@foo.garpl [garply.com #1138] parlor<<Hello. This is the Ne 37+ 01/19 Matt Thomas Re: kern/950: Two PCI bridge chips fail (multipl - 38 01/19 Amancio Hasty Jr Re: FreeBSD and VAT<<>>> Bill Fenner said: > In + 38 01/19 Amancio Hasty Jr Re: FreeBSD and VAT<<>>> Bill Fenner said: > In &prompt.user; Теперь, если я хочу прочесть сообщение номер 27, я выполняю команду show 27, и сообщение будет показано. Как вы - можете видеть на примере этого простого сеанса работы, + можете видеть на примере этого простого сеанса работы, MH весьма легок в использовании, а просмотр электронной почты и ее вывод интуитивен и прост. Папки и поиск почты Любому, кто получает много электронной почты, определенно требуется сортировать, помечать, сжимать и нумеровать свою электронную почту различными способами. MH может делать это лучше, чем какой-либо другой инструмент. Мы пока еще не обсуждали концепцию папок. Несомненно, вы уже встречались с папками при использовании других почтовых программ. В MH также используются папки. MH может даже создавать в папках вложенные в них папки. При работе с MH вы должны помнить, что при запуске команды inc первый раз она запрашивает создание каталога Mail и начинает сохранять все в этом каталоге. Если вы посмотрите на содержимое этого каталога, то обнаружите там каталог с именем inbox. В этом каталоге находится вся ваша входящая почта, которая не была еще никуда перемещена. При создании новой папки в каталоге программы MH Mail будет создан новый каталог, а сообщения этой папки будут размещаться в этом каталоге. Когда приходит новая электронная почта, то она размещается в каталоге inbox в файле с именем, соответствующим номеру сообщения. Поэтому, даже если у вас нет ни одного инструмента MH для чтения вашей электронной почты, вы можете продолжать использовать стандартные &unix; команды для работы с этими каталогами и просмотра ваших файлов. Такой упрощенный подход на самом деле дает вам простор для действий, которые вы можете выполнять над вашей электронной почтой. Так же, как вы можете использовать список сообщений типа 23 16 42 с большинством команд MH, имеется режим и для папок, который вы можете задать практически с каждой командой MH. Если вы выполняете команду scan +freebsd, она будет сканировать вашу папку freebsd, а ваша текущая папка будет изменена на freebsd. При выполнении команды show +freebsd 23 16 42, show перейдет к вашей папке freebsd и выведет сообщения 23, 16 и 42. Поэтому запомните этот синтаксис . Вам нужно использовать такие команды для работы с разными папками. Помните, что вашей папкой для почты по умолчанию является inbox, так что выполнение команды folder +inbox должно всегда вернуть вас обратно к вашей почте. Конечно, с бесконечной гибкостью MH такое поведение может быть изменено, но в большинстве случаев лучше оставить папку inbox. <command>pick</command>—поиск почты по некоторому - критерию + критерию Команда pick является одной из более сложных - команд в системе MH. Так что вам может + команд в системе MH. Так что вам может понадобиться прочесть справочную страницу по - pick1 - для его более полного понимания. В простейшем случае вы можете делать - нечто вроде следующего: + pick1 + для его более полного понимания. В простейшем случае вы можете делать + нечто вроде следующего: &prompt.user; pick -search pci 15 42 55 56 57 Команде pick будет указано на просмотр каждой - строки всех сообщений в текущей папке и выдачу номеров тех сообщений, - в которых было найдено слово pci. Затем по команде + строки всех сообщений в текущей папке и выдачу номеров тех сообщений, + в которых было найдено слово pci. Затем по команде show вы можете вывести эти сообщения и прочесть их - или удалить командой rmm. Вам нужно задать команды - типа show 15 42 55-57 для их вывода. Более полезной - сделать следующее: + или удалить командой rmm. Вам нужно задать команды + типа show 15 42 55-57 для их вывода. Более полезной + сделать следующее: &prompt.user; pick -search pci -seq pick 5 hits &prompt.user; show pick При этом будут выведены те же самые сообщения, но вам не придется - тратить на них столько усилий. Параметр на самом - деле является сокращенным вариантом для , а - pick является именем последовательности, которая - содержит номера сообщений, которые удовлетворяют заданному условию. Вы - можете использовать последовательности практически с любой командой + тратить на них столько усилий. Параметр на самом + деле является сокращенным вариантом для , а + pick является именем последовательности, которая + содержит номера сообщений, которые удовлетворяют заданному условию. Вы + можете использовать последовательности практически с любой командой MH. Так что вы можете выполнить команду rmm pick, и все эти сообщения будут удалены. Вы можете именовать последовательности как угодно. Если вы снова выполните команду pick, то она перезапишет старую последовательность, если вы используете то же самое имя. Выполнение команды pick -search может оказаться - более длительной операцией, чем просто поиск сообщений от кого-то или - для кого-то. Поэтому pick позволяет вам - использовать такой предопределенный критерий поиска: + более длительной операцией, чем просто поиск сообщений от кого-то или + для кого-то. Поэтому pick позволяет вам + использовать такой предопределенный критерий поиска: поиск по адресату сообщения поиск по содержимому cc-списка поиск по тому, от кого исходит сообщение поиск электронной почты с заданной темой письма поиск электронных писем с указанной датой поиск по любому другому компоненту заголовка письма. (То есть для поиска всех электронных писем с - определенным значением поля reply-to в заголовке) + определенным значением поля reply-to в заголовке) - + Это позволяет вам выполнять действия типа &prompt.user; pick -to freebsd-hackers@FreeBSD.org -seq hackers для получения списка всех электронных писем, посланных в список - рассылки FreeBSD hackers. Команда pick также - позволяет вам группировать эти критерии различными способами при помощи - следующих параметров: + рассылки FreeBSD hackers. Команда pick также + позволяет вам группировать эти критерии различными способами при помощи + следующих параметров: &hellip Эти команды позволяют вам выполнять следующее &prompt.user; pick -to freebsd-hackers -or -cc freebsd-hackers При этом будет взята вся почта в вашем входящем - почтовом ящике inbox, - которая была послана по адресу freebsd-hackers или этот адрес - присутствовал в cc-списке. Параметры brace позволяют вам группировать - критерии поиска. Иногда это очень нужно, как в следующем - примере + почтовом ящике inbox, + которая была послана по адресу freebsd-hackers или этот адрес + присутствовал в cc-списке. Параметры brace позволяют вам группировать + критерии поиска. Иногда это очень нужно, как в следующем + примере - &prompt.user; pick -lbrace -to freebsd-hackers -and + &prompt.user; pick -lbrace -to freebsd-hackers -and -not -cc freebsd-questions -rbrace -and -subject pci В общем, это означает выбрать (во freebsd-hackers и не - в cc-списке для freebsd-questions) с темой pci. По этой - команде должна быть просмотрена ваша папка и найдены все сообщения, - посланные в список freebsd-hackers, которые не были также включены в - cc-список для freebsd-questions, и в строке темы которых присутствовало - упоминание pci. Теперь вам стоит задуматься о том, + в cc-списке для freebsd-questions) с темой pci. По этой + команде должна быть просмотрена ваша папка и найдены все сообщения, + посланные в список freebsd-hackers, которые не были также включены в + cc-список для freebsd-questions, и в строке темы которых присутствовало + упоминание pci. Теперь вам стоит задуматься о том, что называется порядком выполнения операторов. Помните, как при вычислении значений математических выражений вы начинали слева направо и сначала умножали и делили, и только потом складывали и вычитали? В MH присутствует тот же набор правил для команды pick. Он достаточно - сложен, так что вам нужно будет изучить справочную страницу. Этот - документ только знакомит с MH. + сложен, так что вам нужно будет изучить справочную страницу. Этот + документ только знакомит с MH. <command>folder</command>, <command>folders</command>, <command>refile</command>—три полезные программы для управления - папками + папками Имеются три программы, которые предназначены только для управления - вашими папками. Программа folder используется для - переключения между папками, их сжатия и вывода их списка. В самом - простом случае вы можете выполнить команду folder + вашими папками. Программа folder используется для + переключения между папками, их сжатия и вывода их списка. В самом + простом случае вы можете выполнить команду folder +newfolder, и вы переключитесь на - папку newfolder. С этого момента все ваши - команды MH типа comp, repl, + папку newfolder. С этого момента все ваши + команды MH типа comp, repl, scan и show будут выполняться над - этой папкой newfolder. + этой папкой newfolder. Иногда при чтении и удалении сообщений в ваших папках образуются - holes. Если вы выполните команду - scan, то можете увидеть только сообщения 34, 35, 36, - 43, 55, 56, 57, 80. Если вы выполните команду - folder -pack, то она перенумерует все ваши - сообщения, так что там не будет дыр. Однако она не удаляет никаких - сообщений. Так что вам может понадобиться периодически просматривать - и физически удалять rmm-сообщения. + holes. Если вы выполните команду + scan, то можете увидеть только сообщения 34, 35, 36, + 43, 55, 56, 57, 80. Если вы выполните команду + folder -pack, то она перенумерует все ваши + сообщения, так что там не будет дыр. Однако она не удаляет никаких + сообщений. Так что вам может понадобиться периодически просматривать + и физически удалять rmm-сообщения. Если вам нужна информация о ваших папках, вы можете получить ее - командами folders или - folder -all, которые выводят список всех ваших - папок, количество хранящихся в них сообщений, номер текущего сообщения - в каждой папке, и так далее. Такая строка статистики, которую выводят - эти команды для всех папок, имеет тот же самый вид, что вы получаете - при смене папки по команде folder +foldername. - Результат выполнения команды folders выглядит - примерно так: + командами folders или + folder -all, которые выводят список всех ваших + папок, количество хранящихся в них сообщений, номер текущего сообщения + в каждой папке, и так далее. Такая строка статистики, которую выводят + эти команды для всех папок, имеет тот же самый вид, что вы получаете + при смене папки по команде folder +foldername. + Результат выполнения команды folders выглядит + примерно так: Folder # of messages ( range ); cur msg (other files) announce has 1 message ( 1- 1). drafts has no messages. f-hackers has 43 messages ( 1- 43). f-questions has 16 messages ( 1- 16). inbox+ has 35 messages ( 1- 38); cur= 37. lists has 8 messages ( 1- 8). netfuture has 1 message ( 1- 1). out has 31 messages ( 1- 31). personal has 6 messages ( 1- 6). todo has 58 messages ( 1- 58); cur= 1. TOTAL= 199 messages in 13 folders. - + Команду refile нужно использовать для - перемещения сообщения между папками. Когда вы выполняете команду типа + перемещения сообщения между папками. Когда вы выполняете команду типа refile 23 +netfuture, то сообщение номер 23 - перемещается в папку netfuture. Вы можете также - выполнить команду типа refile 23 +netfuture/latest, - которая поместит сообщение номер 23 в папку с именем + перемещается в папку netfuture. Вы можете также + выполнить команду типа refile 23 +netfuture/latest, + которая поместит сообщение номер 23 в папку с именем latest, вложенную в папку - netfuture. Если вы хотите сохранить сообщение - в текущей папке и связать его, вы можете выполнить команду + netfuture. Если вы хотите сохранить сообщение + в текущей папке и связать его, вы можете выполнить команду refile -link 23 +netfuture, которая оставит 23 - в вашем текущей папке inbox, но также и в вашей - папке netfuture. Наверное, вы уже начали - понимать, какие по настоящему мощные действия вы можете выполнять с - MH. + в вашем текущей папке inbox, но также и в вашей + папке netfuture. Наверное, вы уже начали + понимать, какие по настоящему мощные действия вы можете выполнять с + MH. Посылка почты Электронная почта для большинства людей является улицей с движением в два ряда, так что вы можете захотеть послать что-то обратно. Способ, каким MH выполняет посылку почты, может сначала показаться трудным для использования, но он обеспечивает удивительную гибкость. Сначала MH копирует файл компонентов в исходящую электронную почту. Файл компонентов в основном представляет собой скелет электронного письма с уже помещенными туда заголовками To: и Subject:. Затем вы отсылаетесь к редактору текстов, в котором вы заполняете информацию заголовков и набираете тело письма ниже разделительных строк. При закрытии редактора вызывается программа whatnow. Находясь в приглашении What now?, вы можете выбрать одно из действий send, list, edit, push или quit. Большинство этих команд говорят сами за себя. Итак, процесс посылки сообщения включает копирование файла компонент, редактирование вашей электронной почты и указание программе whatnow действия, которое нужно сделать с вашей электронной почтой. <command>comp</command>, <command>forw</command>, <command>reply</command>—создание, пересылка или ответ на - чье-либо сообщение + чье-либо сообщение Программа comp имеет несколько полезных - параметров командной строки. Самой важной сейчас является опция + параметров командной строки. Самой важной сейчас является опция . При установке MH используемым по умолчанию редактором обычно становится программа prompter, поставляемая с MH. Это не очень привлекательный редактор, он просто - делает то, что должен делать. Так что когда вы собираетесь написать - кому-либо письмо, вы можете воспользоваться командами + делает то, что должен делать. Так что когда вы собираетесь написать + кому-либо письмо, вы можете воспользоваться командами comp -editor /usr/bin/vi или comp -editor /usr/local/bin/pico. После запуска - comp вы оказываетесь в вашем редакторе и видите - нечто вроде следующего: + comp вы оказываетесь в вашем редакторе и видите + нечто вроде следующего: To: cc: Subject: -------- Вам нужно указать персону, которой вы посылаете почту, после строки To:. То же самое относится и к остальным - заголовкам, так что вам нужно будет указать тему письма после строки + заголовкам, так что вам нужно будет указать тему письма после строки Subject:. Затем вам просто нужно набрать тело - письма после разделительной строки. Это может показаться несколько - упрощенным, так как многие почтовые программы имеют специальные - опросники, которые запрашивают у вас эту информацию, но необходимости в - этом нет. Плюс это на самом деле дает вам дополнительную - гибкость. + письма после разделительной строки. Это может показаться несколько + упрощенным, так как многие почтовые программы имеют специальные + опросники, которые запрашивают у вас эту информацию, но необходимости в + этом нет. Плюс это на самом деле дает вам дополнительную + гибкость. To:freebsd-rave@FreeBSD.org cc: Subject:And on the 8th day God created the FreeBSD core team -------- Wow this is an amazing operating system. Thanks! Теперь вы можете сохранить это сообщение и выйти из редактора. Вы - увидите приглашение What now? и здесь можете набрать + увидите приглашение What now? и здесь можете набрать send или s и нажать return. После этого основная группа разработчиков - FreeBSD получит свои слова восхищения. Как я отмечал выше, вы можете - также воспользоваться другими командами в приглашении What now?. Например, - вы можете использовать quit, если не хотите посылать сообщение. + FreeBSD получит свои слова восхищения. Как я отмечал выше, вы можете + также воспользоваться другими командами в приглашении What now?. Например, + вы можете использовать quit, если не хотите посылать сообщение. Команда forw ошеломляюще похожа. Большим - отличием является то, что сообщение, которое вы пересылаете, - автоматически включается в исходящее сообщение. Когда вы выполняете - команду forw, она будет пересылать ваше текущее - сообщение. Вы всегда можете указать на пересылку другого сообщения, - выполняя команду forw 23, после чего в исходящее - сообщение будет помещено сообщение номер 23, а не текущее сообщение. - Кроме этих маленьких различий, команда forw работает - абсолютно так же, как comp. Вы проходите через - в точности такой же процесс посылки сообщения. + отличием является то, что сообщение, которое вы пересылаете, + автоматически включается в исходящее сообщение. Когда вы выполняете + команду forw, она будет пересылать ваше текущее + сообщение. Вы всегда можете указать на пересылку другого сообщения, + выполняя команду forw 23, после чего в исходящее + сообщение будет помещено сообщение номер 23, а не текущее сообщение. + Кроме этих маленьких различий, команда forw работает + абсолютно так же, как comp. Вы проходите через + в точности такой же процесс посылки сообщения. По команде repl будет делаться ответ на текущее - сообщение, если только вы не указали другой номер сообщения. Команда - repl приложит все усилия, чтобы забежать вперед и - заполнить некоторые заголовки почтового сообщения. Поэтому вы - заметите, что в заголовке To: уже присутствует - адрес получателя. Также уже будет заполнена строка - Subject:. Затем вы проходите обычный процесс - написания сообщения и на этом все завершается. Здесь полезно знать о - параметре командной строки . Вы можете - использовать параметры all, - to, cc и + сообщение, если только вы не указали другой номер сообщения. Команда + repl приложит все усилия, чтобы забежать вперед и + заполнить некоторые заголовки почтового сообщения. Поэтому вы + заметите, что в заголовке To: уже присутствует + адрес получателя. Также уже будет заполнена строка + Subject:. Затем вы проходите обычный процесс + написания сообщения и на этом все завершается. Здесь полезно знать о + параметре командной строки . Вы можете + использовать параметры all, + to, cc и me после для того, чтобы repl автоматически добавила различные адреса к - Cc:-списку сообщения. Вы, наверное, заметили, + Cc:-списку сообщения. Вы, наверное, заметили, что исходное сообщение не будет включаться. Это происходит, потому что в большинстве настроек MH так указано изначально. Файлы <filename>components</filename> и <filename>replcomps</filename>—файлы компонент для команд <command>comp</command> и <command>repl</command> Файл components обычно располагается в - каталоге /usr/local/lib/mh. Вы можете скопировать - этот файл в ваш каталог Mail для MH и + каталоге /usr/local/lib/mh. Вы можете скопировать + этот файл в ваш каталог Mail для MH и отредактировать его так, чтобы он содержал то, что вы хотите. Это достаточно простой файл. В начале файла расположены различные почтовые заголовки, разделительная строка и больше ничего. Команда comp просто копирует этот - файл components и затем редактирует его. Вы - можете добавить любой соответствующий стандарту RFC822 заголовок. - Например, в вашем файле components вы можете - поместить следующее: + файл components и затем редактирует его. Вы + можете добавить любой соответствующий стандарту RFC822 заголовок. + Например, в вашем файле components вы можете + поместить следующее: To: Fcc: out Subject: X-Mailer: MH 6.8.3 X-Home-Page: http://www.FreeBSD.org/ ------- Тогда MH будет копировать этот файл компонентов и передаст его в ваш редактор. Файл components весьма прост. Если - вы хотите в сообщениях иметь подпись, просто поместите вашу подпись в - этот файл components. + вы хотите в сообщениях иметь подпись, просто поместите вашу подпись в + этот файл components. Файл replcomps несколько более сложен. По - умолчанию replcomps имеет такой вид: + умолчанию replcomps имеет такой вид: %(lit)%(formataddr %<{reply-to}%?{from}%?{sender}%?{return-path}%>)\ %<(nonnull)%(void(width))%(putaddr To: )\n%>\ %(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\ %<(nonnull)%(void(width))%(putaddr cc: )\n%>\ %<{fcc}Fcc: %{fcc}\n%>\ %<{subject}Subject: Re: %{subject}\n%>\ %<{date}In-reply-to: Your message of "\ %<(nodate{date})%{date}%|%(pretty{date})%>."%<{message-id} %{message-id}%>\n%>\ -------- Он имеет такой же простой формат, как и файл components, но содержит несколько дополнительных - форматирующих кодов. Команда %(lit) определяет - место для адреса. %(formataddr) является функцией, - которая возвращает полный адрес электронной почты. Следующей частью - является %<, которая означает условие если и - {reply-to} соответствует полю reply-to исходного - сообщения. Таким образом, это может быть проинтерпретировано - следующим образом: + форматирующих кодов. Команда %(lit) определяет + место для адреса. %(formataddr) является функцией, + которая возвращает полный адрес электронной почты. Следующей частью + является %<, которая означает условие если и + {reply-to} соответствует полю reply-to исходного + сообщения. Таким образом, это может быть проинтерпретировано + следующим образом: %<if {reply-to} -в исходном сообщении имеется поле reply-to +в исходном сообщении имеется поле reply-to то передать его в formataddr, %? else {from} взять адрес from, %? else {sender} взять адрес sender, %? else {return-path} взять return-path из исходного сообщения, %> endif. - + Как вы можете видеть, форматирование MH может быть достаточно сложным. Вы можете выяснить, что значат остальные функции и переменные. Вся информация по написанию строк в таком формате - находится в справочной странице по MH. Действительно удобной вещью - является то, что единожды создав собственный файл + находится в справочной странице по MH. Действительно удобной вещью + является то, что единожды создав собственный файл replcomps, вам не нужно больше его трогать. Ни - одна другая почтовая программа не даст вам той мощи и гибкости, что - дает вам MH. + одна другая почтовая программа не даст вам той мощи и гибкости, что + дает вам MH.
diff --git a/ru_RU.KOI8-R/articles/version-guide/article.sgml b/ru_RU.KOI8-R/articles/version-guide/article.sgml index c1769ce1be..e4da65bfd7 100644 --- a/ru_RU.KOI8-R/articles/version-guide/article.sgml +++ b/ru_RU.KOI8-R/articles/version-guide/article.sgml @@ -1,401 +1,417 @@ %articles.ent; ]>
Выбор подходящей для вас версии FreeBSD The FreeBSD Documentation Project $FreeBSD$ &tm-attrib.freebsd; 2005 The FreeBSD Documentation Project Итак, вы решили установить &os;. Добро пожаловать! Этот документ написан для того, чтобы помочь вам в выборе версии для установки. Вводная информация Чтобы решить какая версия &os; больше всего подходит для ваших нужд, важно понимать несколько концепций, касающихся наших процессов разработки и подготовки релизов (Release Engineering, RE). &os; разрабатывается большой группой людей, являющихся почти полностью добровольцами. Исходный код ядра, самых распространённых библиотек и утилит поддерживается в системе контроля исходного кода (source control system) и доступен - широкой публике для скачивания в любое время. Отдельно, скомпилированные - версии (бинарники) доступны на + широкой публике для скачивания в любое время. Отдельно, + скомпилированные версии (бинарники) доступны на рекуррентной основе. Некоторые из этих двоичных версий проходят широкое тестирование и затем обозначаются, как release. Релизы Имена Релизов строятся из старшего номера версии и младшего номера версии. - Цель старшего релиза - ввести новые возможности. Где - необходимо, возможно нужно убрать совместимость с - предыдущими старшими релизами, чтобы улучшить состояние &os;, - или, иногда убрать возможности, которые больше невозможно (или не нужно) - поддерживать. + Цель старшего релиза - ввести новые возможности. Так как + новые функциональные возможности добавляются в &os;, а старые + — становятся невостребоваными или удаляются вообще, то + возникает иногда необходимость убрать совместимость с предыдущими + старшими релизами. Цель младшего релиза - в основном исправление ошибок и - улучшение производительности и стабильности. Поддержание - совместимости между двумя младшими релизами приоритетно. Иногда - новые возможности могут быть добавлены в младший релиз, когда видно, - что другие цели не будут нарушены. + улучшение производительности и стабильности. Поддержание двоичной + совместимости и совместимости исходных кодов между двумя младшими + релизами приоритетно. Иногда новые возможности могут быть + добавлены в младший релиз, когда видно, что другие цели не будут + нарушены. - Тем не менее, помните, что релиз - это + Тем не менее, помните, что релиз - это просто снэпшот дерева исходного кода в определённый момент времени, - которому присваивается конкретное имя (тэг). + которому присваивается конкретное имя (тэг). (К примеру, тэг во время подготовки релиза присвоенный релизу 5.4 был - RELENG_5_4_0_RELEASE). Разработка всегда продолжается - в так называемом тэге HEAD. + RELENG_5_4_0_RELEASE). Разработка всегда + продолжается в так называемом тэге HEAD. Ветки Во время каждого релиза создается ветка (к примеру, RELENG_5_4). Исходные файлы, названные RELENG_5_4_0_RELEASE изменяться никогда не будут, те которые в RELENG_5_4 изменяться могут путём принятия - изменений из HEAD, таких как исправления в безопасности и - другие ошибки. + изменений из HEAD, таких как исправления + в безопасности и другие ошибки. Во время жизни каждого старшего релиза создаётся тэг (к примеру, RELENG_5). В дополнение к исправлениям в безопасности и исправлениям других ошибок, новые изменения могут быть приняты из HEAD, и таким образом составят изменения для следующего младшего релиза в последовательности. <firstterm>STABLE</firstterm> против <firstterm>CURRENT</firstterm> Во время жизни каждого старшего релиза, отдельная ветка может также называться STABLE. Это означает, что проект &os; считает, что ветвь имеет достаточно доказанную стабильность для использования широким кругом пользователей. Ветви, которые нуждаются в дальнейшем тестировании перед тем, как стать в значительной степени принятой называются CURRENT. Проект &os; ни внутри, ни вне себя не может гарантировать, что программное обеспечение, которое оно выпускает является достаточно стабильным для любой данной системы. Только каждый индивидуальный пользователь может сделать такое решение. Пожалуйста, помните, что Проект в основном состоит из добровольцев и не может предлагать любой вид гарантии пригодности. <firstterm>Порты</firstterm> против <firstterm>Пакетов</firstterm> Отдельно от файлов, распространяемых вышеуказанно, &os; поддерживает тысячи приложений, которые разрабатываются третьими лицами, вне самого проекта. (Сюда включены оконные системы, интернет браузеры, почтовые программы, офисные пакеты, и так далее) В общем, сам проект не разрабатывает это программное обеспечение, только инфраструктуру, позволяющую установить эти программы (называется Коллекция портов). Приложения могут быть установлены либо из исходников, если условия лицензии позволяют такое - распространение (они называются порты), + распространение (они называются порты), либо в виде скомпилированных двоичных файлов, если разрешено (они - называются пакеты). + называются пакеты). Планирование релизов в прошлом Во время разработки и выпуска &os; 5.X было получено много уроков, которые стали ясны только ретроспективно. Цели серии 5.X были очень мощными и включали: Обеспечить поддержку машин с симметричной мультипроцессорностью (Symmetric MultiProcessing, SMP); Увеличить производительность, путём применения новой стратегии работы с конкуренцией ресурсов в ядре; Добавить несколько новых архитектур процессоров; Ввести новую модель тредов; Ввести новый планировщик; Добавить поддержку новых технологий, таких как управление питанием (это особенно важно для лэптопов); и наиболее критично, Не объявлять серии релизов, как STABLE до тех пор, пока все эти задачи не будут выполнены. Это привело к ситуации, когда между моментом временем, когда релиз из серии 4.X был объявлен, как STABLE и моментом, когда релиз из 5.X был объявлен, как STABLE прошло несколько лет. Это имело несколько нежелательных эффектов: Количество одновременных изменений групп характеристик сделало - очень сложным изолирование одного набора изменений для слияния обратно - в STABLE ветку; + очень сложным изолирование одного набора изменений для слияния + обратно в STABLE ветку; что означало, что пользователи, которые должны иметь определённые новые возможности (к примеру, использовать современное оборудование) работали путём адаптирования (к примеру) &os; 5.2.1 хотя он был - известен, как релиз только для разработчиков, и независимо от того факта, - что CURRENT релиз не совсем подходил для их - нужд. + известен, как релиз только для разработчиков, и независимо от того + факта, что CURRENT релиз не совсем подходил + для их нужд. В случаях, когда обратные слияния имели место, это поставило - разработчиков в положение, когда они пытались поддерживать характеристики - (feautures) на версии, которую они сами не использовали, как первичную - платформу для разработки. + разработчиков в положение, когда они пытались поддерживать + характеристики (feautures) на версии, которую они сами + не использовали, как первичную платформу для разработки. Задержка во времени также значила, что когда 5.3 был наконец объявлен самым последним STABLE релизом, накопившееся количество изменений сделало процесс обновления очень болезненным. Более кратко, никто не был доволен результатом. Уроки, которые были получены: Новые старшие релизы должны иметь меньшее количество серьезных изменений характеристик и выпускаться более часто. В самой большой степени, серьезные изменения должны изолироваться друг от друга. (Это подразумевает, что некоторая разработка должна вестись вне основного дерева и может быть объединена с основным деревом только при условии, что это не нарушит другую одновременно продолжающуюся разработку.) Старшие релизы должны ориентироваться на последний срок по времени, а не на последний срок по количеству характеристик. Если какая-то возможность (характеристика) не закончена вовремя, то она должна быть убрана и оставлена до следующего старшего релиза. С помощью более частого выпуска меньшего количества изменений, - также существует надежда, что меньше времени будет проводиться, - пытаясь заниматься слиянием характеристик из HEAD обратно + также существует надежда, что меньше времени будет проводиться, пытаясь + заниматься слиянием характеристик из HEAD обратно в последнюю STABLE версию (и тем самым пытаясь поддерживать эти характеристики более, чем в одной старшей версии); и далее, чем изменения более изолированы, тем риск появления новых ошибок намного меньше. Также, фокусируясь больше на последний срок по времени нежели по количеству характеристик, в итоге будет возможным для пользователей, разработчиков внешних приложений и самих разработчиков &os; иметь более лучший план на будущее. Эти соображения более, чем любой вид погони за основным номером релиза любой другой ОС, включают основную мотивацию для продолжения изменений в планировании. Улучшения целей планирования релизов Вот текущие цели в планировании для Проекта: Выпускать новый старший релиз каждые 18 месяцев; Выпускать новый младший релиз каждые 4 месяца; - - Обеспечивать предварительно собранные пакеты для последней - младшей версии каждой старшей версии; - - Обеспечивать предварительно собранные пакеты для последнего релиза каждой старшей версии; Обеспечить обновления в безопасности и другие критические - исправления ошибок для последних нескольких младших версий - каждой старшей версии (ветки улучшений в безопасности, - security branches). + исправления ошибок для последних нескольких младших версий каждой + старшей версии (ветки улучшений + в безопасности, security branches). Из-за большого количества возможных комбинаций устанавливаемых версий, невозможно поддерживать каждую версию бессрочно; это от части из-за нехватки машинных ресурсов, но в основном из-за имеющихся усилий добровольцев. - Заинтересованные читатели также могут посмотреть текущее - расписание - подготовки релизов и расписание веток - улучшений в безопасности. Оба документа содержат более детальную - информацию по предпосылкам и разумные обоснования этих решений. + Заинтересованным читателям рекомендуется также просмотреть: + + + + + + расписание подготовки релизов + + + + + + + расписание веток улучшений в безопасности + + + + + Оба документа содержат более детальную информацию по предпосылкам + и разумные обоснования этих решений касательно поддерживаемых веток + и времени жизни каждой ветки. Как эти факторы повлияют на моё решение? Основные факторы, которые могут повлиять на ваше решение в выборе версии для установки: Какую степень стабильности требует ваша система? Сколько усилий вы хотите прикладывать для обновлений? Как долго вы планируйте оставаться на одной версии между обновлениями? Как важна безопасность для вашей системы? Будете ли вы устанавливаться из исходников или посредством двоичных файлов? - Желаете ли вы помочь участвовать в процессе разработки &os;? + Желаете ли вы помочь участвовать в процессе + разработки &os;? - Вот некоторые примерные инструкции для помощи вам в вашем решении: + Вот некоторые примерные инструкции для помощи вам в вашем + решении: - Если ваши нужды имеют краткосрочный характер, вы нуждаетесь в + Если ваши нужды имеют краткосрочный характер, есть потребность в самой высокой степени стабильности, доступной на данный момент и не собираетесь обновлять большое количество ресурсов, то вы возможно - захотите установить последний младший STABLE релиз и - остаться с ним. В зависимости от ваших требований к безопасности, вы - можете следить за изменениями в эту ветку, по мере их появления. + захотите установить последний младший STABLE + релиз и остаться с ним. В зависимости от ваших требований + к безопасности, вы можете следить за изменениями в эту ветку, + по мере их появления. - Если ваши нужды имеют краткосрочный характер, и полнота возможностей или - наилучшие уровни безопасности наиболее важны для вас, и вы желаете проводить - время, обновляясь, вы можете использовать последнюю - STABLE ветку. + Если ваши нужды имеют краткосрочный характер, и полнота + возможностей или наилучшие уровни безопасности наиболее важны + для вас, и вы желаете проводить время, обновляясь, вы можете + использовать последнюю STABLE ветку. Если вы не планируете сразу промышленное использование, а хотите поработать с проблемами, и новый старший релиз появляется в следующие несколько месяцев, то вы можете поисследовать, установив - эту ветку, чтобы помочь Проекту протестировать его, стабилизировать, сделать - его самым лучшим релизом с уровнем качества выше среднего. + эту ветку, чтобы помочь Проекту протестировать его, стабилизировать, + сделать его самым лучшим релизом с уровнем качества + выше среднего. Только если вы пожелаете устанавливаться из исходников и проводить время, занимаясь отладкой проблем с базовой системой и дальше передавать их посредством сообщений об ошибках и прослеживать список рассылки, в котором обсуждаются такие вопросы, вы можете рассмотреть для использования HEAD. Заключение Мы надеемся, что эта статья послужила полезной стартовой точкой в понимании модели разработки &os; и в решении того, какая версия наиболее подходит для ваших нужд.