aboutsummaryrefslogtreecommitdiff
path: root/documentation/content/ru/books/developers-handbook/introduction/chapter.adoc
blob: ca3d0c852ce3155d7dacd11db3036d665fc34742 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
---
title: Глава 1. Введение
authors:
  - author: Murray Stokely
  - author: Jeroen Ruigrok van der Werven
---

[[introduction]]
= Введение
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:source-highlighter: rouge
:experimental:
:skip-front-matter:
:toc-title: Содержание
:table-caption: Таблица
:figure-caption: Рисунок
:example-caption: Пример
:xrefstyle: basic
:relfileprefix: ../
:outfilesuffix:

[[introduction-devel]]
== Разработка во FreeBSD

Итак, у нас все есть. Система полностью установлена и вы готовы начать программировать. Но с чего начать? Что предоставляет FreeBSD? Что она может дать мне как программисту?

Вот те из некоторых вопросов, на которые пытается дать ответ эта глава. Конечно, программирование, как и любая другая область деятельности, имеет разные уровни профессионального мастерства. Для некоторых это хобби, для других это профессия. Информация в этой главе может в большей степени пригодиться начинающему программисту, но может также оказаться полезной программисту, делающему первые шаги на платформе FreeBSD.

[[introduction-bsdvision]]
== Подход BSD

Создать самую лучшую UNIX(R)-подобную операционную систему, благодаря оригинальной идеологии программных средств, а также полезности, производительности и надёжности.

[[introduction-archguide]]
== Архитектурные концепции

Наша идеология может быть описана в следующих ключевых положениях

* Не добавлять новой функциональности, кроме случаев, когда нельзя выполнить конкретную работу без нее.
* Решить, чего в системе не будет, так же важно, как и определение того, чего в системе не будет. Не пытайтесь включить в систему все; лучше сделать систему расширяемой так, что дополнительные потребности могут быть реализованы в режиме совместимости.
* Единственное, что может быть лучше обобщения на основе одного примера, это обобщение вообще без примеров.
* Если проблема до конца не понята, наверное, лучше вовсе не давать ее решения.
* Если вы можете сделать 90 процентов результата ценой 10 процентов работы, найдите более простое решение.
* Старайтесь отделять сложные вещи.
* Дайте механизм, а не правила. В частности, оставьте соглашения по пользовательскому интерфейсу клиенту.

Из Scheifler Gettys: "X Window System"

[[introduction-layout]]
== Структура каталога [.filename]#/usr/src#

Полный исходный код FreeBSD располагается в нашем общедоступном хранилище CVS. Исходный код обычно устанавливается в [.filename]#/usr/src#, который содержит следующие подкаталоги:

[.informaltable]
[cols="1,1", frame="none", options="header"]
|===
| Каталог
| Описание

|[.filename]#bin/#
|Исходный код файлов из [.filename]#/bin#

|[.filename]#contrib/#
|Исходный код файлов программного обеспечения сторонних разработчиков.

|[.filename]#crypto/#
|Исходный код криптографической подсистемы

|[.filename]#etc/#
|Исходный код файлов из каталога [.filename]#/etc#

|[.filename]#games/#
|Исходный код файлов из [.filename]#/usr/games#

|[.filename]#gnu/#
|Утилиты, подпадающие под действие GNU Public License

|[.filename]#include/#
|Исходный код файлов из [.filename]#/usr/include#

|[.filename]#kerberosIV/#
|Исходный код Kerberos версии IV

|[.filename]#kerberos5/#
|Исходный код Kerberos версии 5

|[.filename]#lib/#
|Исходный код файлов из [.filename]#/usr/lib#

|[.filename]#libexec/#
|Исходный код файлов из [.filename]#/usr/libexec#

|[.filename]#release/#
|Файлы, которые требуются для создания релиза FreeBSD

|[.filename]#sbin/#
|Исходный код файлов из [.filename]#/sbin#

|[.filename]#secure/#
|Исходный код FreeSec

|[.filename]#share/#
|Исходный код файлов из [.filename]#/usr/share#

|[.filename]#sys/#
|Исходный код ядра

|[.filename]#tools/#
|Утилиты, используемые для поддержки и тестирования FreeBSD

|[.filename]#usr.bin/#
|Исходный код файлов из [.filename]#/usr/bin#

|[.filename]#usr.sbin/#
|Исходный код файлов из [.filename]#/usr/sbin#
|===