<!--
     The FreeBSD Russian Documentation Project

     $FreeBSD: doc/ru_RU.KOI8-R/books/developers-handbook/book.sgml,v 1.1 2001/03/11 16:37:47 phantom Exp $
     $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/developers-handbook/book.sgml,v 1.2 2001/03/11 12:13:23 phantom Exp $

     Original revision: 1.11
-->

<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % bookinfo PUBLIC "-//FreeBSD//ENTITIES DocBook BookInfo Entities//RU">
%bookinfo;
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
%man;
<!ENTITY % chapters SYSTEM "chapters.ent"> %chapters;
]>

<book>
  <bookinfo>
    <title>Руководство FreeBSD для разработчиков</title>

    <authorgroup>
      <author>
        <surname>The FreeBSD Documentation Project</surname>
        <affiliation>
          <address>
            <email>doc@FreeBSD.org</email>
          </address>
        </affiliation>
      </author>
    </authorgroup>

    <pubdate>Август 2000</pubdate>

    <copyright>
      <year>2000</year>
      <holder>The FreeBSD Documentation Project</holder>
    </copyright>

    &bookinfo.legalnotice;

    <abstract>
      <para>Добро пожаловать в руководство FreeBSD для разработчиков.</para>
    </abstract>
  </bookinfo>

  <part id="introduction">
    <title>Введение</title>

    <chapter id="developmentplatform">
      <title>Разработка во FreeBSD</title>

      <para>Здесь необходимо будет обсудить FreeBSD в качестве платформы для
        разработки, подход к этому BSD, обзор архитектуры, структура
        /usr/src, история и так далее.</para>

      <para>Спасибо вам за выбор FreeBSD в качестве платформы разработки!
        Надеемся, что она вас не подведет.</para>
    </chapter>

    <chapter id="bsdvision">
      <title>Парадигма BSD</title>

      <para></para>
    </chapter>

    <chapter id="archoverview">
      <title>Обзор архитектуры</title>

      <para></para>
    </chapter>

    <chapter id="sourcelayout">
      <title>Структура /usr/src</title>

      <para>Полный исходный код FreeBSD имеется на нашем общедоступном
        хранилище CVS.  Как правило, исходный код устанавливается в каталог
        <filename class=directory>/usr/src</filename>, содержащий следующие
        подкаталоги.</para>

      <para>
        <informaltable frame="none">
        <tgroup cols="2">
        <thead>
          <row>
            <entry>Каталог</entry>
            <entry>Описание</entry>
          </row>
        </thead>

        <tbody>
          <row>
            <entry><filename class=directory>bin/</filename></entry>
            <entry>Исходный код файлов из <filename>/bin</filename></entry>
          </row>

          <row>
            <entry><filename class=directory>contrib/</filename></entry>
            <entry>Исходный код файлов программного обеспечения, которое
              предоставлено третьими лицами.</entry>
          </row>

          <row>
            <entry><filename class=directory>crypto/</filename></entry>
            <entry>Исходный код DES</entry>
          </row>

          <row>
            <entry><filename class=directory>etc/</filename></entry>
            <entry>Исходный код файлов из <filename
              class=directory>/etc</filename></entry>
          </row>

          <row>
            <entry><filename class=directory>games/</filename></entry>
            <entry>Исходный код файлов из <filename
              class=directory>/usr/games</filename></entry>
          </row>

          <row>
            <entry><filename class=directory>gnu/</filename></entry>
            <entry>Утилиты, подпадающие под условия GNU Public
              License</entry>
          </row>

          <row>
            <entry><filename class=directory>include/</filename></entry>
            <entry>Исходный код файлов из <filename
              class=directory>/usr/include</filename></entry>
          </row>

          <row>
            <entry><filename class=directory>kerberosIV/</filename></entry>
            <entry>Исходный код Kerbereros версии IV</entry>
          </row>

          <row>
            <entry><filename class=directory>kerberos5/</filename></entry>
            <entry>Исходный код Kerbereros версии 5</entry>
          </row>

          <row>
            <entry><filename class=directory>lib/</filename></entry>
            <entry>Исходный код файлов из <filename
              class=directory>/usr/lib</filename></entry>
          </row>

          <row>
            <entry><filename class=directory>libexec/</filename></entry>
            <entry>Исходный код файлов из <filename
              class=directory>/usr/libexec</filename></entry>
          </row>

          <row>
            <entry><filename class=directory>release/</filename></entry>
            <entry>Файлы, необходимые для выпуска релиза FreeBSD</entry>
          </row>

          <row>
            <entry><filename class=directory>sbin/</filename></entry>
            <entry>Исходный код файлов из <filename
              class=directory>/sbin</filename></entry>
          </row>

          <row>
            <entry><filename class=directory>secure/</filename></entry>
            <entry>Исходный код FreeSec</entry>
          </row>

          <row>
            <entry><filename class=directory>share/</filename></entry>
            <entry>Исходный код файлов из <filename
              class=directory>/sbin</filename></entry>
          </row>

          <row>
            <entry><filename class=directory>sys/</filename></entry>
            <entry>Исходные тексты ядра</entry>
          </row>

          <row>
            <entry><filename class=directory>tools/</filename></entry>
            <entry>Инструментальные средства, использемые для обслуживания и
              тестирования FreeBSD</entry>
          </row>

          <row>
            <entry><filename class=directory>usr.bin/</filename></entry>
            <entry>Исходный код файлов из <filename
              class=directory>/usr/bin</filename></entry>
          </row>

          <row>
            <entry><filename class=directory>usr.sbin/</filename></entry>
            <entry>Исходный код файлов из <filename
              class=directory>/usr/sbin</filename></entry>
          </row>
        </tbody>
        </tgroup>
        </informaltable>
      </para>
    </chapter>
  </part>

  <part id="Basics">
    <title>Основы</title>

<!--    &chap.tools; -->
    &chap.secure;

  </part>

  <part id="kernel">
    <title>Ядро</title>

    <chapter id="kernelhistory">
      <title>История ядра Unix</title>

      <para>Немного истории о ядре Unix/BSD, системных вызовах, как работают
        процессы, блокировке, планировке задач, нити (ядра), переключение
        контекста, сигналы, прерывания, модули и так далее.</para>

      <para></para>
    </chapter>

    &chap.locking;

  </part>

  <part id="memory">
    <title>Память и виртуальная память</title>

    <chapter id="virtualmemory">
      <title>Виртуальная память</title>

      <para>VM, постраничная подкачка и свопирование, выделение памяти,
        тестирование ошибок утечки памяти, mmap, vnode и так далее.</para>

      <para></para>
    </chapter>
  </part>

  <part id="iosystem">
    <title>Система ввода/вывода</title>

    <chapter id="ufs">
      <title>UFS</title>

      <para>UFS, FFS, Ext2FS, JFS, inodes, buffer cache, labeling,
        locking, metadata, soft-updates, LFS, portalfs, procfs,
        vnodes, memory sharing, memory objects, TLBs, caching</para>
    </chapter>
  </part>

  <part id="ipc">
    <title>Межпроцессное взаимодействие</title>

    <chapter id="signals">
      <title>Сигналы</title>

      <para>Сигналы, конвейеры, семафоры, очереди сообщений, совместно
        используемая память, сокеты, двери</para>
    </chapter>
  </part>

  <part id="networking">
    <title>Работа в сети</title>

    <chapter id="sockets">
      <title>Сокеты</title>

      <para>Сокеты, bpf, IP, TCP, UDP, ICMP, OSI, bridging,
        firewalling, NAT, коммутация и так далее</para>
    </chapter>
  </part>

  <part id="networkfs">
    <title>Сетевые файловые системы</title>

    <chapter id="afs">
      <title>AFS</title>

      <para>AFS, NFS, SANs etc]</para>

    </chapter>
  </part>

  <part id="terminal">
    <title>Работа с терминалами</title>

    <chapter id="syscons">
      <title>Системные консоли</title>

      <para>Syscons, tty, PCVT, последовательная консоль, хранители экрана
        и так далее</para>

    </chapter>
  </part>

  <part id="sound">
    <title>Звук</title>

    <chapter id="oss">
      <title>OSS</title>

      <para>OSS, waveforms, etc</para>
    </chapter>
  </part>

  <part id="devicedrivers">
    <title>Драйверы устройств</title>

    &chap.driverbasics;
    &chap.pci;

    <chapter id="usb">
      <title>Устройства USB</title>

      <para>Эта глава расскажет о механизмах, используемых во FreeBSD для
        написания драйверов для устройств на шине USB.</para>
    </chapter>

    <chapter id="newbus">
      <title>NewBus</title>

      <para>Эта глава расскажет об архитектуре NewBus во FreeBSD.</para>
    </chapter>
  </part>

  <part id="architectures">
    <title>Аппаратные платформы</title>

    <chapter id="ia32">
      <title>IA-32</title>

      <para>Рассказ об архитектурных особенностях FreeBSD/x86.</para>
    </chapter>

    <chapter id="alpha">
      <title>Alpha</title>

      <para>Рассказ об архитектурных особенностях FreeBSD/alpha.</para>

      <para>Описание ошибок выравнивания, как их исправлять и как
        игнорировать.</para>

      <para>Пример ассемблерного кода для FreeBSD/alpha.</para>
    </chapter>

    <chapter id="ia64">
      <title>IA-64</title>

      <para>Рассказ об архитектурных особенностях FreeBSD/ia64.</para>
    </chapter>
  </part>

  <part id="debuggingpart">
    <title>Отладка</title>

    <chapter id="truss">
      <title>Truss</title>

      <para>Различные описания того, как отлаживать отдельные компоненты
        системы при помощи утилит truss, ktrace, gdb, kgdb, etc</para>
    </chapter>
  </part>

  <part id="compatibility">
    <title>Обеспечение совместимости</title>

    <chapter id="linux">
      <title>Linux</title>

      <para>Linux, SVR4 и так далее</para>
    </chapter>
  </part>

  <part id="appendices">
    <title>Приложения</title>

    <bibliography>
      <biblioentry id="COD" xreflabel="1">
        <authorgroup>
          <author>
            <firstname>Dave</firstname>
            <othername role="MI">A</othername>
            <surname>Patterson</surname>
          </author>
            <author>
            <firstname>John</firstname>
            <othername role="MI">L</othername>
            <surname>Hennessy</surname>
          </author>
        </authorgroup>
        <copyright><year>1998</year><holder>Morgan Kaufmann Publishers,
          Inc.</holder></copyright>
        <isbn>1-55860-428-6</isbn>
        <publisher>
          <publishername>Morgan Kaufmann Publishers, Inc.</publishername>
        </publisher>
        <title>Computer Organization and Design</title>
        <subtitle>The Hardware / Software Interface</subtitle>
        <pagenums>1-2</pagenums>
      </biblioentry>

      <biblioentry xreflabel="2">
        <authorgroup>
          <author>
            <firstname>W.</firstname>
            <othername role="Middle">Richard</othername>
            <surname>Stevens</surname>
          </author>
        </authorgroup>
        <copyright><year>1993</year><holder>Addison Wesley Longman,
          Inc.</holder></copyright>
        <isbn>0-201-56317-7</isbn>
        <publisher>
          <publishername>Addison Wesley Longman, Inc.</publishername>
        </publisher>
        <title>Advanced Programming in the Unix Environment</title>
        <pagenums>1-2</pagenums>
      </biblioentry>

      <biblioentry xreflabel="3">
        <authorgroup>
          <author>
            <firstname>Marshall</firstname>
            <othername role="Middle">Kirk</othername>
            <surname>McKusick</surname>
          </author>
          <author>
            <firstname>Keith</firstname>
            <surname>Bostic</surname>
          </author>
          <author>
            <firstname>Michael</firstname>
            <othername role="MI">J</othername>
            <surname>Karels</surname>
          </author>
          <author>
            <firstname>John</firstname>
            <othername role="MI">S</othername>
            <surname>Quarterman</surname>
          </author>
        </authorgroup>
        <copyright><year>1996</year><holder>Addison-Wesley Publishing Company,
          Inc.</holder></copyright>
        <isbn>0-201-54979-4</isbn>
        <publisher>
          <publishername>Addison-Wesley Publishing Company, Inc.</publishername>
        </publisher>
        <title>The Design and Implementation of the 4.4 BSD Operating System</title>
        <pagenums>1-2</pagenums>
      </biblioentry>

      <biblioentry id="Phrack" xreflabel="4">
        <authorgroup>
          <author>
            <firstname>Aleph</firstname>
            <surname>One</surname>
          </author>
        </authorgroup>
        <title>Phrack 49; "Smashing the Stack for Fun and Profit"</title>
      </biblioentry>

      <biblioentry id="StackGuard" xreflabel="5">
        <authorgroup>
          <author>
            <firstname>Chrispin</firstname>
            <surname>Cowan</surname>
          </author>
          <author>
            <firstname>Calton</firstname>
            <surname>Pu</surname>
          </author>
          <author>
            <firstname>Dave</firstname>
            <surname>Maier</surname>
          </author>
        </authorgroup>
        <title>StackGuard; Automatic Adaptive Detection and Prevention of
          Buffer-Overflow Attacks</title>
      </biblioentry>

      <biblioentry id="OpenBSD" xreflabel="6">
        <authorgroup>
          <author>
            <firstname>Todd</firstname>
            <surname>Miller</surname>
          </author>
          <author>
            <firstname>Theo</firstname>
            <surname>de Raadt</surname>
          </author>
        </authorgroup>
        <title>strlcpy and strlcat -- consistent, safe string copy and
          concatenation.</title>
      </biblioentry>
    </bibliography>
  </part>
</book>
