--- 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] на верхнем уровне дерева.