18.1. | Как можно узнать больше о внутреннем устройстве FreeBSD? |
Список относящихся к делу книг можно найти в разделе Руководства Библиография по внутреннему устройству операционной системы. Кроме того, большинство общих знаний о UNIX(R) непосредственно применимо к FreeBSD. | |
18.2. | Как можно оказать помощь проекту FreeBSD? |
Пожалуйста, обратитесь к соответствующей статье, в которой вы получите советы относительно того, как это сделать. Ваша помощь более чем приветствуется! | |
18.3. | Что такое снапшоты и релизы? |
В Хранилище Subversion сейчас находятся 4 активно/полуактивно развивающихся ветки FreeBSD. (Более ранние ветки изменяются очень редко, именно поэтому в разработке только 4 активные ветки):
На данный момент -CURRENT является
находящимся в разработке деревом 11. | |
18.4. | Можно ли работать с -CURRENT при ограниченном доступе в Internet? |
Да, это можно делать без скачивания полного дерева исходных текстов с помощью системы CTM. | |
18.5. | Я написал некоторое добавление к ядру, кому его послать? |
Обратитесь к статье о том, как помочь проекту FreeBSD, чтобы выяснить, как это сделать. И спасибо Вам за Ваши усилия! | |
18.6. | Что делать при аварийном останове системы? |
Вот типичная паника ядра: Fatal trap 12: page fault while in kernel mode fault virtual address = 0x40 fault code = supervisor read, page not present instruction pointer = 0x8:0xf014a7e5 stack pointer = 0x10:0xf4ed6f24 frame pointer = 0x10:0xf4ed6f28 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 80 (mount) interrupt mask = trap number = 12 panic: page fault Этого сообщения не достаточно. Здесь важно значение
указателя инструкций, но оно зависит от конфигурации,
поскольку значение меняется для каждого конкретного файла
ядра. Если это ядро Чтобы продолжить:
Тем не менее, лучшим способом выяснить причину, вызвавшую аварийный останов, является получение аварийного дампа системы, а затем использование kgdb(1) для получения трассировки вызовов в этом дампе. В любом случае, метод таков:
Примечание:Если не указать В процессе выполнения команды make(1) будут
построены два ядра,
Чтобы получать аварийный дамп, отредактируйте файл
Примечание:Аварийные дампы FreeBSD обычно имеют размер, равный
объёму оперативной памяти. Поэтому убедитесь в наличии
достаточного места для хранения дампа в каталоге
Как только аварийный дамп получен, трассировку вызовов можно получить таким образом:
Заметьте, что это может дать несколько экранов полезной информации. Лучше всего использовать script(1) для перехвата всего вывода. При использовании необработанного файла ядра со всей отладочной информацией может быть найдена конкретная строка исходного текста ядра, при достижении которой случилась аварийная остановка. Для выяснения последовательности событий, приведших к аварийному останову, трассировка стека обычно читается снизу вверх. Также можно использовать kgdb(1) для вывода значений различных переменных или структур, чтобы выяснить состояние системы во время аварии. Подсказка:Если есть второй компьютер, то можно настроить kgdb(1) для удалённой отладки, включая точки останова и пошаговый проход по коду ядра. Примечание:Если включена поддержка | |
18.7. | Перестала работать функция |
По умолчанию при работе с форматом ELF символы,
определённые в исполняемом файле, не доступны динамическому
загрузчику. Поэтому при вызове функции
Чтобы осуществить поиск символов в исполняемом файле
процесса с помощью функции | |
18.8. | Как я могу увеличить или уменьшить адресное пространство ядра в архитектуре i386? |
По умолчанию размер адресного пространства ядра для i386 равен 1 Гбайт (2 Гбайт для PAE). Для работы сервера с интенсивной сетевой нагрузкой или при использовании ZFS этого может быть недостаточно. Чтобы увеличить доступное пространство, добавьте следующую строку в файл конфигурации ядра и пересоберите ядро: options KVA_PAGES= Чтобы получить нужное значение для
|
Этот, и другие документы, могут быть скачаны с https://download.freebsd.org/ftp/doc/.
По вопросам, связанным с FreeBSD, прочитайте
документацию прежде чем писать в
<questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку
<doc@FreeBSD.org>.