aboutsummaryrefslogtreecommitdiff
path: root/ru/FAQ/misc.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'ru/FAQ/misc.sgml')
-rw-r--r--ru/FAQ/misc.sgml318
1 files changed, 0 insertions, 318 deletions
diff --git a/ru/FAQ/misc.sgml b/ru/FAQ/misc.sgml
deleted file mode 100644
index 5c99c26cfb..0000000000
--- a/ru/FAQ/misc.sgml
+++ /dev/null
@@ -1,318 +0,0 @@
-<!-- $Id: misc.sgml,v 1.2 1998-12-31 06:36:28 ache Exp $ -->
-<!-- The FreeBSD Russian Documentation Project -->
-
- <sect>
- <heading>Разное<label id="misc"></heading>
-
- <sect1>
- <heading>
- FreeBSD использует гораздо больше места в свопе, чем Linux. Почему?
- </heading>
-
- <p>Это не так. Наверное, вас интересует, ``почему своп выглядит
- переполненным?''. Если вы подразумевали именно это, то это объясняется
- тем, что помещение страницы памяти в своп с последующим восстановлением
- оттуда выполняется быстрее, чем её сброс с последующим взятием снова из
- (неизменяемых) блоков выполнимого файла из файловой системы.
-
- <p>Реальное количество ``грязных'' страниц памяти, которое вы можете
- иметь в системе одновременно, не уменьшается; просто по необходимости
- происходит сброс ``чистых'' страниц.
-
- <sect1>
- <heading>
- Почему используются (и что из себя представляют) форматы выполнимых
- файлов a.aut и ELF?
- </heading>
-
- <p>Для понимания того, почему FreeBSD использует формат <tt>a.out</tt>,
- вы должны сначала получить представление о трёх "основных" форматах
- выполнимых файлов для UNIX:
-
- <itemize>
- <item><htmlurl url="http://www.freebsd.org/cgi/man.cgi?a.out(5)"
- name="a.out">
-
- <p>Это самый старый, `классический' формат объектных файлов для UNIX.
- В нём используется короткий и компактный заголовок с магическим числом
- в начале, которое часто используется для определения формата
- (за подробным описанием обратитесь к странице Справочника о <htmlurl
- url="http://www.freebsd.org/cgi/man.cgi?a.out(5)" name="a.out(5)">).
- Он содержит три загружаемых сегмента: .text, .data и .bss плюс
- таблицу символов и таблицу строк.
-
- <item><bf>COFF</bf>
- <p>Это формат объектных файлов SVR3. Дополнительно в заголовок
- включена таблица секций, так что вы можете иметь их больше, чем только
- .text, .data и .bss.</item>
-
- <item><bf>ELF</bf>
- <p>Преемник <tt/COFF/, в который добавлены возможности иметь много
- секций и 32- или 64-разрядные значения. Один большой минус:
- <tt/ELF/ был спроектирован также в предположении, что для каждой
- аппаратной платформы будет существовать только один ABI. Это
- предположение достаточно некорректно, и даже в мире коммерческих
- реализаций SYSV (в котором имеется по крайней мере три ABI: SVR4,
- Solaris и SCO) это не так.
-
- <p>FreeBSD каким-то образом пытается решить эту проблему, предоставляя
- утилиту для <em>пометки</em> конкретного выполнимого файла <tt/ELF/
- с информацией о ABI, с которым он совместим. Обратитесь к странице
- Справочника об утилите <htmlurl
- url="http://www.freebsd.org/cgi/man.cgi?brandelf" name="brandelf">
- за подробной информацией.
- </itemize>
-
- <p>FreeBSD выросла на "классических" традициях и традиционно использовала
- формат <htmlurl url="http://www.freebsd.org/cgi/man.cgi?a.out(5)"
- name="a.out">, технологию, опробованную и проверенную во многих
- вариациях BSD. Хотя давно уже можно было компилировать и выполнять
- родные выполнимые файлы (и ядро) в формате <tt/ELF/, FreeBSD с самого
- начала сопротивлялась переходу на <tt/ELF/ как на формат, используемый
- по умолчанию. Почему? Когда мир Linux делал болезненный переход к
- <tt/ELF/, причин отвергнуть формат <tt/a.out/ было не так уж и много,
- разве что их негибкий механизм работы с совместно используемыми
- библиотеками, который был основан на таблице переходов, что делало
- построение таких библиотек очень затруднительным для разработчиков.
- Так как средства работы с <tt/ELF/ предоставляли решение этой проблемы
- и это было в общем-то "шагом вперёд" в любом случае, цена перехода была
- признана стоящей того и переход был сделан.
-
- <p>В случае FreeBSD, наш механизм работы с совместно используемыми
- библиотеками очень похож на механизм, применяемый в <tt>SunOS</tt>,
- поэтому его очень легко использовать. Однако, начиная с 3.0, FreeBSD
- официально поддерживает <tt/ELF/ как формат, используемый по умолчанию.
- И, хотя формат <tt/a.out/ поддерживается в полной мере, разработчики
- из проекта GNU, являющиеся авторами компилятора, который мы используем,
- больше не поддерживают формат <tt/a.out/. Это заставило нас поддерживать
- различные версии компилятора и компоновщика, и не позволило
- воспользоваться всеми возможностями последних разработок GNU.
- Потребность в наличии реализации ISO-C++, в основном конструкторов и
- деструкторов, также привела к поддержке <tt/ELF/ в будущих релизах
- FreeBSD.
-
- <sect1>
- <heading>Да, но почему так много разных форматов?</heading>
-
- <p>Если вернуться в далёкое тёмное прошлое, то тогда компьютеры были
- очень просто устроены. На них могла работать простая, маленькая
- система. Формат a.out полностью решал задачу представления программ
- на простых системах (PDP-11). Когда же люди перенесли unix с простых
- систем, они оставили a.out, так как его было достаточно для ранних
- реализаций unix для таких архитектур, как Motorola 68k, VAX, итд.
-
- <p>Затем какой-то умный инженер решил, что если он может заставить
- программное обеспечение делать некоторые тонкие манипуляции, то это
- позволит преодолеть некоторые ограничения при проектировании и позволит
- ядру процессора работать быстрее. Когда это было сделано с новым типом
- аппаратуры (в наши дни известном как RISC), оказалось, что <tt/a.out/
- плохо подходит для этой аппаратуры, поэтому было разработано много новых
- форматов для достижения большей производительности от такого аппаратного
- обеспечения, чем может дать простой, имеющий ограничения формат
- <tt/a.out/. Были разработаны такие форматы, как <tt/COFF/, <tt/ECOFF/ и
- ещё несколько безвестных других со своими ограничениями, пока наконец
- все не остановились на формате <tt/ELF/.
-
- <p>Вдобавок к этому, так как размеры программ стали достигать огромных
- размеров, а дисковая (и физическая) память оставалась сравнительно
- небольшой, то возникла концепция совместно используемых библиотек.
- Система VM также стала более мощной. Хотя каждое из этих нововведений
- продолжало использовать формат <tt/a.out/, его бесполезность становилась
- видна всё больше и больше с добавлением каждой новой возможности. К тому
- же люди захотели динамически загружать код во время выполнения программ
- или сбрасывать части программ после выполнения кода инициализации для
- экономии основной памяти и/или размера свопа. Языки программирования
- становились всё более умными и люди захотели автоматического запуска
- некоторого кода перед главной процедурой программы. С форматом
- <tt/a.out/ была сделана масса ухищрений для реализации всех этих
- требований, и они в общем-то работали. В конце концов наступил момент,
- когда формат <tt/a.out/ перестал бы справляться со всеми этими
- проблемами без ещё больших потерь в коде и гибкости в работе. Тогда
- как <tt/ELF/ решал многие из этих проблем, переход на него был бы
- болезненным на рабочей системе. Так что <tt/ELF/ ждал момента, когда
- был бы более болезненным оставаться с форматом <tt/a.out/, чем перейти
- к формату <tt/ELF/.
-
- <p>Однако с течением времени инструменты разработки, на которых
- основаны инструменты разработки FreeBSD (особенно ассемблер и
- загрузчик), разделились на две параллельные ветви. В дерево FreeBSD
- была добавлена поддержка совместно используемых библиотеки и были
- исправлены некоторые ошибки. Разработчики из GNU, которые изначально
- писали эти программы, полностью их переделали, добавив более простую
- поддержку построения кросс-компиляторов, в котором можно использовать
- различные форматы, итд. Когда многие захотели строить кросс-компилятор
- с выходнвм кодом для FreeBSD, то им не повезло, так как старые исходные
- тексты, которые FreeBSD использовала для as и ld, не подошли. Новый
- набор утилит от GNU (binutils) поддерживает кросс-компиляцию, <tt/ELF/,
- совместно используемые библиотеки, расширения C++, итд. Вдобавок,
- многие разработчики выпускают программы в бинарном формате <tt/ELF/, и
- для FreeBSD было бы полезно иметь возможность их запускать. И если
- такая возможность будет реализована, зачем тогда вообще продолжать
- опираться на <tt/a.out/? Это измученная старая лошадь, которая была
- полезна долгое время, но сейчас самое время от неё отказаться, оставив
- в прошлом долгие годы преданной службы.
-
- <p><tt/ELF/ более выразителен, чем a.out, и позволяет реализовать
- большую расширяемость основной системы. Инструменты для работы с
- <tt/ELF/ лучше поддерживаются разработчиками, и предоставляют поддержку
- кросс-компиляции, что для многих важно. <tt/ELF/ может работать немного
- медленнее, чем a.out, но это трудно измерить. Также между ними есть
- некоторые отличия по распределению страниц памяти, обработке кода
- инициализации, итд. Никакие из этих отличий особо не важны, но эти
- отличия всё же есть. Со временем поддержка <tt/a.out/ будет убрана из
- ядра GENERIC, и постепенно убрана из системы совсем, как только отпадёт
- нужда в запуске старых программ в формате <tt/a.out/.
-
- <sect1>
- <heading>
- Почему невозможно изменить права на символические ссылки?
- </heading>
-
- <p>Чтобы это работало, используйте опции ``<tt/-H/'' или ``<tt/-L/''
- вместе с опцией ``<tt/-R/''. Обратитесь к страницам Справочника по
- команде <htmlurl url="http://www.freebsd.org/cgi/man.cgi?chmod"
- name="chmod"> и по <htmlurl
- url="http://www.freebsd.org/cgi/man.cgi?symlink" name="symlink">.
-
- <p><bf/ПРЕДУПРЕЖДЕНИЕ/ опция ``<tt/-R/'' выполняет команду <tt/chmod/
- <bf/РЕКУРСИВНО/. Будьте осторожны, задавая каталоги или символические
- ссылки на каталоги в параметрах <tt/chmod/. Если вы хотите изменить
- права на каталог, на который указывает символическая ссылка, используйте
- <htmlurl url="http://www.freebsd.org/cgi/man.cgi?chmod" name="chmod">
- без опций и следуйте символической ссылке с помощью лидирующего слэша
- (``<tt>/</tt>''). Например, если ``<tt/foo/'' является символической
- ссылкой на каталог ``<tt/bar/'', а вы хотите изменить права на
- ``<tt/foo/'' (на самом деле ``<tt/bar/''), вы должны выполнить команду
- типа следующей:
-
- <verb>
- chmod 555 foo/
- </verb>
-
- <p>Если задан лидирующий слэш, <htmlurl
- url="http://www.freebsd.org/cgi/man.cgi?chmod" name="chmod"> будет
- следовать символической ссылке, ``<tt/foo/'', меняя права на каталог
- ``<tt/bar/''.
-
- <sect1>
- <heading>
- Почему длина регистрационного имени <bf/всё ещё/ ограничена
- 8 символами?
- </heading>
-
- <p>Наверное, вы думаете, что достаточно будет изменить значение
- константы <bf/UT_NAMESIZE/, перекомпилировать полностью систему
- и всё будет работать. К несчастью, часть приложений и утилит (включая
- системные) имеют жёстко заданные малые значения (не всегда "8" или
- "9", но и такие странные, как "15" или "20") в структурах и буферах.
- Это приведёт не только к порче файлов журналов (из-за записи полей
- переменного размера там, где ожидается поле фиксированного размера), но
- может повлиять на работу клиентов системы Sun NIS и может в принципе
- вызвать другие проблемы при взаимодействии с другими системами UNIX.
-
- <p>Во FreeBSD 3.0 и старше, максимальная длина имени была увеличена
- до 16 символов и все утилиты с предопределённым размером имени были
- найдены и исправлены. Так как это касается столь многих областей в
- системе, то такие изменения не делались вплоть до 3.0. </p>
-
- <p>Если вы абсолютно уверены, что сможете найти и исправить проблемы
- такого рода самостоятельно, когда они возникнут, то можете увеличить
- длину регистрационного имени в ранних релизах, отредактировав файл
- /usr/include/utmp.h и изменив соответствующим образом константу
- UT_NAMESIZE. Вы должны будете также изменить значение MAXLOGNAME в
- файле /usr/include/sys/param.h, чтобы оно соответствовало UT_NAMESIZE.
- И наконец, если вы компилируете из исходных текстов, не забудьте, что
- /usr/include обновляется каждый раз! Делайте изменения в
- соответствующих файлах каталога /usr/src/.. </p>
-
- <sect1>
- <heading>Можно ли запускать программы для DOS во FreeBSD?</heading>
-
- <p>Да, начиная с версии 3.0, вы можете использовать эмулятор DOS
- <tt/rundos/ от BSDI, который был интегрирован в систему и
- усовершенствован. Пошлите письмо в <url
- url="mailto:freebsd-emulation@freebsd.org" name="список рассылки">,
- посвящённый эмуляции во FreeBSD, если вы заинтересованы в участии в
- этом проекте.
-
- <p>Для систем, предшествовавшим 3.0, в коллекции портов есть
- замечательная утилита <htmlurl
- url="http://www.freebsd.org/cgi/ports.cgi?^pcemu" name="pcemu">,
- эмулирующая процессор 8088 и функции BIOS, чего достаточно для запуска
- приложений DOS, работающих в текстовом режиме. Она требует X Window
- System (что поставляется как XFree86).
-
- <sect1>
- <heading>
- Что такое ``<tt/sup/'' и как это можно использовать?
- </heading>
-
- <p>Сокращение <htmlurl url="http://www.freebsd.org/cgi/ports.cgi?^sup"
- name="SUP"> означает Software Update Protocol, который был разработан в
- CMU для синхронизации исходных текстов. Мы используем его для
- синхронизации исходных текстов на удалённых сайтах с основным сервером
- разработчиков.
-
- <p>Протокол SUP использует пропускную способность канала неэффективно,
- и был отвергнут. В настоящее время рекомендуемым методом для
- синхронизации исходных текстов является протокол <url
- url="../handbook/cvsup.html" name="CVSup">.
-
- <sect1>
- <heading>Насколько греется процессор при работе FreeBSD?</heading>
-
- <p>В. Кто-нибудь делал замеры температуры при работе FreeBSD? Я
- знаю, что Linux греется меньше, чем DOS, но никогда не видел упоминания
- FreeBSD. Наверное, он сильно греется.
-
- <p>О. Нет, но мы сделали различные вкусовые тесты у добровольцев с
- завязанными глазами, которые до этого приняли по 250 микрограмм
- LSD-25. 35% добровольцев заявило, что FreeBSD имеет вкус апельсина,
- тогда как вкус Linux расценивался как фиолетовый туман. Насколько
- я помню, ни одна из групп не отметила значительной разницы в
- температуре. Вы хотели опубликовать полные результаты этого опроса,
- когда обнаружиди, что слишком много добровольцев покинули помещение
- во время тестов, что несколько смазало результаты. Я думаю, что
- большинство из них работают сейчас в Apple над их новым GUI
- ``чеши и нюхай''. Это старый добрый бизнес!
-
- <p>Серьёзно, и FreeBSD, и Linux используют инструкцию ``<tt/HLT/''
- (halt), когда система простаивает, что уменьшает потребление энергии
- и в свою очередь, выделение тепла. Вдобавок, если у вас настроен
- APM (автоматическое управление энергопотреблением), то FreeBSD
- может переводить процессор в режим пониженного энергопотребления.
-
- <sect1>
- <heading>Кто там скребётся в микросхемах памяти??</heading>
-
- <p>В. Делает ли FreeBSD что-нибудь эдакое при компиляции ядра, что
- вызывает поскрипывание микросхем памяти? При компиляции (и в короткий
- промежуток времени после обнаружения дисковода при старте системы)
- от микросхем памяти исходит странный царапающий звук.
-
- <p>О. Да! Вы, наверное, видели частое упоминание ``даемонов'' в
- документации по BSD, но не многие знают, что это настоящие нематериальные
- существа, которые теперь завладели вашим компьютером. Царапающий звук,
- издаваемый микросхемами памяти - это на самом деле высокочастотное
- перешёптывание между даемонами, когда они решают, как лучше справиться
- с различными задачами по администрированию системы.
-
- <p>Если шум достиг ваших ушей. команда DOS ``<tt>fdisk /mbr</tt>''
- их спугнёт, но не удивляйтесь, если они отреагируют соответствующим
- образом и попытаются вас остановить. Фактически, если во время
- выполнения этой команды вы услышите сатанинский голос Билла Гейтса из
- встроенного динамика, бегите и даже не оглядывайтесь! Избавленные
- от противостояния с даемонами BSD, близнецы-демоны DOS и Windows часто
- могут захватить полный контроль не только над вашей машиной и
- навлечь вечное проклятие на вашу душу. Если бы у меня был выбор, я
- думаю, что предпочту царапающий звук.
-
- <sect1>
- <heading>Что такое 'MFC'?</heading>
-
- <p>MFC это сокращение от 'Merged From -CURRENT.' Оно используется в
- протоколах изменений CVS для отметки того, что изменение было
- перенесено в ветвь STABLE из CURRENT.
-
- </sect>
-