---
authors:
  - 
    author: 'Murray Stokely'
  - 
    author: 'Jeroen Ruigrok van der Werven'
description: 'Введение в Руководство разработчика FreeBSD'
next: books/developers-handbook/tools
params:
  path: /books/developers-handbook/introduction/
prev: books/developers-handbook/parti
showBookMenu: true
tags: ["introduction", "Developing on FreeBSD", "BSD Vision", "Architectural Guidelines"]
title: 'Глава 1. Введение'
weight: 2
---

[[introduction]]
= Введение
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: 1
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/developers-handbook/

ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

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

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

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

[[introduction-bsdvision]]
== Видение BSD

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

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

Наша идеология может быть описана следующими принципами

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

Из Шейфлера и Геттиса: «X Window System»

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

Полный исходный код FreeBSD доступен в нашем link:https://cgit.freebsd.org/src/[публичном Git-репозитории]. Исходный код обычно устанавливается в [.filename]#/usr/src#. Структура дерева каталогов исходного кода описана в файле link:https://cgit.freebsd.org/src/tree/README.md[README.md] на верхнем уровне дерева.
