%chapters; ]> Руководство FreeBSD для разработчиков The FreeBSD Documentation Project
doc@FreeBSD.org
Август 2000 2000 The FreeBSD Documentation Project &legalnotice; $FreeBSD$ Добро пожаловать в руководство FreeBSD для разработчиков.
Введение Разработка во FreeBSD Здесь необходимо будет обсудить FreeBSD в качестве платформы для разработки, подход к этому BSD, обзор архитектуры, структура /usr/src, история и так далее. Спасибо вам за выбор FreeBSD в качестве платформы разработки! Надеемся, что она вас не подведет. Парадигма BSD Обзор архитектуры Структура /usr/src Полный исходный код FreeBSD имеется на нашем общедоступном хранилище CVS. Как правило, исходный код устанавливается в каталог /usr/src, содержащий следующие подкаталоги. Каталог Описание bin/ Исходный код файлов из /bin contrib/ Исходный код файлов программного обеспечения, которое предоставлено третьими лицами. crypto/ Исходный код DES etc/ Исходный код файлов из /etc games/ Исходный код файлов из /usr/games gnu/ Утилиты, подпадающие под условия GNU Public License include/ Исходный код файлов из /usr/include kerberosIV/ Исходный код Kerbereros версии IV kerberos5/ Исходный код Kerbereros версии 5 lib/ Исходный код файлов из /usr/lib libexec/ Исходный код файлов из /usr/libexec release/ Файлы, необходимые для выпуска релиза FreeBSD sbin/ Исходный код файлов из /sbin secure/ Исходный код FreeSec share/ Исходный код файлов из /sbin sys/ Исходные тексты ядра tools/ Инструментальные средства, использемые для обслуживания и тестирования FreeBSD usr.bin/ Исходный код файлов из /usr/bin usr.sbin/ Исходный код файлов из /usr/sbin Основы &chap.secure; Ядро История ядра Unix Немного истории о ядре Unix/BSD, системных вызовах, как работают процессы, блокировке, планировке задач, нити (ядра), переключение контекста, сигналы, прерывания, модули и так далее. &chap.locking; Память и виртуальная память Виртуальная память VM, постраничная подкачка и свопирование, выделение памяти, тестирование ошибок утечки памяти, mmap, vnode и так далее. Система ввода/вывода UFS UFS, FFS, Ext2FS, JFS, inodes, buffer cache, labeling, locking, metadata, soft-updates, LFS, portalfs, procfs, vnodes, memory sharing, memory objects, TLBs, caching Межпроцессное взаимодействие Сигналы Сигналы, конвейеры, семафоры, очереди сообщений, совместно используемая память, сокеты, двери Работа в сети Сокеты Сокеты, bpf, IP, TCP, UDP, ICMP, OSI, bridging, firewalling, NAT, коммутация и так далее Сетевые файловые системы AFS AFS, NFS, SANs etc] Работа с терминалами Системные консоли Syscons, tty, PCVT, последовательная консоль, хранители экрана и так далее Звук OSS OSS, waveforms, etc Драйверы устройств &chap.driverbasics; &chap.pci; Устройства USB Эта глава расскажет о механизмах, используемых во FreeBSD для написания драйверов для устройств на шине USB. NewBus Эта глава расскажет об архитектуре NewBus во FreeBSD. Аппаратные платформы IA-32 Рассказ об архитектурных особенностях FreeBSD/x86. Alpha Рассказ об архитектурных особенностях FreeBSD/alpha. Описание ошибок выравнивания, как их исправлять и как игнорировать. Пример ассемблерного кода для FreeBSD/alpha. IA-64 Рассказ об архитектурных особенностях FreeBSD/ia64. Отладка Truss Различные описания того, как отлаживать отдельные компоненты системы при помощи утилит truss, ktrace, gdb, kgdb, etc Обеспечение совместимости Linux Linux, SVR4 и так далее Приложения Dave A Patterson John L Hennessy 1998Morgan Kaufmann Publishers, Inc. 1-55860-428-6 Morgan Kaufmann Publishers, Inc. Computer Organization and Design The Hardware / Software Interface 1-2 W. Richard Stevens 1993Addison Wesley Longman, Inc. 0-201-56317-7 Addison Wesley Longman, Inc. Advanced Programming in the Unix Environment 1-2 Marshall Kirk McKusick Keith Bostic Michael J Karels John S Quarterman 1996Addison-Wesley Publishing Company, Inc. 0-201-54979-4 Addison-Wesley Publishing Company, Inc. The Design and Implementation of the 4.4 BSD Operating System 1-2 Aleph One Phrack 49; "Smashing the Stack for Fun and Profit" Chrispin Cowan Calton Pu Dave Maier StackGuard; Automatic Adaptive Detection and Prevention of Buffer-Overflow Attacks Todd Miller Theo de Raadt strlcpy and strlcat -- consistent, safe string copy and concatenation.