doc/documentation/content/ru/books/developers-handbook/_index.adoc
Sergio Carlavilla Delgado 989d921f5d Migrate doc to Hugo/AsciiDoctor
I'm very pleased to announce the release of
our new website and documentation using
the new toolchain with Hugo and AsciiDoctor.

To get more information about the new toolchain
please read the FreeBSD Documentation Project Primer[1],
Hugo docs[2] and AsciiDoctor docs[3].

Acknowledgment:
Benedict Reuschling <bcr@>
Glen Barber <gjb@>
Hiroki Sato <hrs@>
Li-Wen Hsu <lwhsu@>
Sean Chittenden <seanc@>
The FreeBSD Foundation

[1] https://docs.FreeBSD.org/en/books/fdp-primer/
[2] https://gohugo.io/documentation/
[3] https://docs.asciidoctor.org/home/

Approved by:    doceng, core
2021-01-26 00:31:29 +01:00

290 lines
8.9 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Руководство FreeBSD для разработчиков
authors:
- author: The FreeBSD Documentation Project
copyright: 1995-2020 The FreeBSD Documentation Project
releaseinfo: "$FreeBSD$"
trademarks: ["freebsd", "apple", "ibm", "ieee", "intel", "linux", "microsoft", "opengroup", "sun", "general"]
---
= Руководство FreeBSD для разработчиков
:doctype: book
:toc: macro
:toclevels: 2
:icons: font
:xrefstyle: basic
:relfileprefix: ../
:outfilesuffix:
:sectnums:
:sectnumlevels: 6
:partnums:
:source-highlighter: rouge
:experimental:
:skip-front-matter:
:toc-title: Содержание
:table-caption: Таблица
:figure-caption: Рисунок
:example-caption: Пример
ifeval::["{backend}" == "html5"]
include::shared/mirrors.adoc[]
include::shared/authors.adoc[]
include::shared/releases.adoc[]
include::shared/ru/mailing-lists.adoc[]
include::shared/ru/teams.adoc[]
include::shared/ru/urls.adoc[]
:imagesdir: ../../images/books/developers-handbook/
:chapters-path: content/ru/books/developers-handbook/
endif::[]
ifeval::["{backend}" == "pdf"]
include::../../../../shared/mirrors.adoc[]
include::../../../../shared/authors.adoc[]
include::../../../../shared/releases.adoc[]
include::../../../../shared/ru/mailing-lists.adoc[]
include::../../../../shared/ru/teams.adoc[]
include::../../../../shared/ru/urls.adoc[]
:imagesdir: ../../../static/images/books/developers-handbook/
:chapters-path:
endif::[]
ifeval::["{backend}" == "epub3"]
include::../../../../shared/mirrors.adoc[]
include::../../../../shared/authors.adoc[]
include::../../../../shared/releases.adoc[]
include::../../../../shared/ru/mailing-lists.adoc[]
include::../../../../shared/ru/teams.adoc[]
include::../../../../shared/ru/urls.adoc[]
:imagesdir: ../../../static/images/books/developers-handbook/
:chapters-path:
endif::[]
[.abstract-title]
Аннотация
Добро пожаловать в руководство FreeBSD для разработчиков.
'''
toc::[]
[[introduction]]
= Введение
[[developmentplatform]]
== Разработка во FreeBSD
Здесь необходимо будет обсудить FreeBSD в качестве платформы для разработки, подход к этому BSD, обзор архитектуры, структура /usr/src, история и так далее.
Спасибо вам за выбор FreeBSD в качестве платформы разработки! Надеемся, что она вас не подведет.
[[bsdvision]]
== Парадигма BSD
[[archoverview]]
== Обзор архитектуры
[[sourcelayout]]
== Структура /usr/src
Полный исходный код FreeBSD имеется на нашем общедоступном хранилище CVS. Как правило, исходный код устанавливается в каталог [.filename]#/usr/src#, содержащий следующие подкаталоги.
[.informaltable]
[cols="1,1", frame="none", options="header"]
|===
| Каталог
| Описание
|[.filename]#bin/#
|Исходный код файлов из [.filename]#/bin#
|[.filename]#contrib/#
|Исходный код файлов программного обеспечения, которое предоставлено третьими лицами.
|[.filename]#crypto/#
|Исходный код DES
|[.filename]#etc/#
|Исходный код файлов из [.filename]#/etc#
|[.filename]#games/#
|Исходный код файлов из [.filename]#/usr/games#
|[.filename]#gnu/#
|Утилиты, подпадающие под условия GNU Public License
|[.filename]#include/#
|Исходный код файлов из [.filename]#/usr/include#
|[.filename]#kerberosIV/#
|Исходный код Kerbereros версии IV
|[.filename]#kerberos5/#
|Исходный код Kerbereros версии 5
|[.filename]#lib/#
|Исходный код файлов из [.filename]#/usr/lib#
|[.filename]#libexec/#
|Исходный код файлов из [.filename]#/usr/libexec#
|[.filename]#release/#
|Файлы, необходимые для выпуска релиза FreeBSD
|[.filename]#sbin/#
|Исходный код файлов из [.filename]#/sbin#
|[.filename]#secure/#
|Исходный код FreeSec
|[.filename]#share/#
|Исходный код файлов из [.filename]#/sbin#
|[.filename]#sys/#
|Исходные тексты ядра
|[.filename]#tools/#
|Инструментальные средства, использемые для обслуживания и тестирования FreeBSD
|[.filename]#usr.bin/#
|Исходный код файлов из [.filename]#/usr/bin#
|[.filename]#usr.sbin/#
|Исходный код файлов из [.filename]#/usr/sbin#
|===
[[Basics]]
= Основы
include::{chapters-path}secure/chapter.adoc[leveloffset=+1]
[[kernel]]
= Ядро
[[kernelhistory]]
== История ядра Unix
Немного истории о ядре Unix/BSD, системных вызовах, как работают процессы, блокировке, планировке задач, нити (ядра), переключение контекста, сигналы, прерывания, модули и так далее.
[[memory]]
= Память и виртуальная память
[[virtualmemory]]
== Виртуальная память
VM, постраничная подкачка и свопирование, выделение памяти, тестирование ошибок утечки памяти, mmap, vnode и так далее.
[[iosystem]]
= Система ввода/вывода
[[ufs]]
== UFS
UFS, FFS, Ext2FS, JFS, inodes, buffer cache, labeling, locking, metadata, soft-updates, LFS, portalfs, procfs, vnodes, memory sharing, memory objects, TLBs, caching
[[ipc]]
= Межпроцессное взаимодействие
[[signals]]
== Сигналы
Сигналы, конвейеры, семафоры, очереди сообщений, совместно используемая память, сокеты, двери
[[networking]]
= Работа в сети
[[sockets]]
== Сокеты
Сокеты, bpf, IP, TCP, UDP, ICMP, OSI, bridging, firewalling, NAT, коммутация и так далее
[[networkfs]]
= Сетевые файловые системы
[[afs]]
== AFS
AFS, NFS, SANs etc]
[[terminal]]
= Работа с терминалами
[[syscons]]
== Системные консоли
Syscons, tty, PCVT, последовательная консоль, хранители экрана и так далее
[[sound]]
= Звук
[[oss]]
== OSS
OSS, waveforms, etc
[[devicedrivers]]
= Драйверы устройств
[[usb]]
== Устройства USB
Эта глава расскажет о механизмах, используемых во FreeBSD для написания драйверов для устройств на шине USB.
[[newbus]]
== NewBus
Эта глава расскажет об архитектуре NewBus во FreeBSD.
[[architectures]]
= Аппаратные платформы
[[ia32]]
== IA-32
Рассказ об архитектурных особенностях FreeBSD/x86.
[[alpha]]
== Alpha
Рассказ об архитектурных особенностях FreeBSD/alpha.
Описание ошибок выравнивания, как их исправлять и как игнорировать.
Пример ассемблерного кода для FreeBSD/alpha.
[[ia64]]
== IA-64
Рассказ об архитектурных особенностях FreeBSD/ia64.
[[debuggingpart]]
= Отладка
[[truss]]
== Truss
Различные описания того, как отлаживать отдельные компоненты системы при помощи утилит truss, ktrace, gdb, kgdb, etc
[[compatibility]]
= Обеспечение совместимости
[[linux]]
== Linux
Linux, SVR4 и так далее
// Appendices
[[appendices]]
[bibliography]
= Приложения
[[COD,1]] [1] Dave A Patterson and John L Hennessy. Copyright(R) 1998 Morgan Kaufmann Publishers, Inc. 1-55860-428-6. Morgan Kaufmann Publishers, Inc. Computer Organization and Design. The Hardware / Software Interface. 1-2.
[[APUE, 2]] [2] W. Richard Stevens. Copyright(R) 1993 Addison Wesley Longman, Inc. 0-201-56317-7. Addison Wesley Longman, Inc. Advanced Programming in the Unix Environment. 1-2.
[[DIFOS, 3]] [3] Marshall Kirk McKusick and George Neville-Neil. Copyright(R) 2004 Addison-Wesley. 0-201-70245-2. Addison-Wesley. The Design and Implementation of the FreeBSD Operating System. 1-2.
[[Phrack, 4]] [4] Aleph One. Phrack 49; "Smashing the Stack for Fun and Profit".
[[StackGuard, 5]] [5] Chrispin Cowan, Calton Pu, and Dave Maier. StackGuard; Automatic Adaptive Detection and Prevention of Buffer-Overflow Attacks.
[[OpenBSD, 6]] [6] Todd Miller and Theo de Raadt. strlcpy and strlcat -- consistent, safe string copy and concatenation.