|
Lines 1-7
Link Here
|
| 1 |
<!-- |
1 |
<!-- |
| 2 |
The FreeBSD Documentation Project |
2 |
The FreeBSD Documentation Project |
| 3 |
|
3 |
|
| 4 |
$FreeBSD: doc/zh_TW.Big5/books/developers-handbook/introduction/chapter.sgml,v 1.1 2006/06/17 10:22:43 vanilla Exp $ |
4 |
$FreeBSD$ |
|
|
5 |
Original revision: 1.18 |
| 5 |
--> |
6 |
--> |
| 6 |
|
7 |
|
| 7 |
<chapter id="introduction"> |
8 |
<chapter id="introduction"> |
|
Lines 18-100
Link Here
|
| 18 |
</author> |
19 |
</author> |
| 19 |
</authorgroup> |
20 |
</authorgroup> |
| 20 |
</chapterinfo> |
21 |
</chapterinfo> |
| 21 |
<title>Introduction</title> |
22 |
<title>²¤¶</title> |
| 22 |
|
23 |
|
| 23 |
<sect1 id="introduction-devel"> |
24 |
<sect1 id="introduction-devel"> |
| 24 |
<title>Developing on FreeBSD</title> |
25 |
<title>¦b FreeBSD ¶}µoµ{¦¡</title> |
| 25 |
|
26 |
<para>¦n¤F§Ú̶}©l§a¡I§Ú·Q§Aªº FreeBSD ¤w¸g¦w¸Ë¦n¤F¡A¦Ó¥B¤w¸g·Ç³Æ¦nn¥Î¥¦¼gÂIµ{¦¡¤F§a¡H |
| 26 |
<para>So here we are. System all installed and you are ready to |
27 |
¦ý¬On±qþ¸Ì¶}©l©O¡H&os; ¦³´£¨Ñ¼gµ{¦¡ªºµ{¦¡©ÎÀô¹Ò¶Ü¡H |
| 27 |
start programming. But where to start? What does FreeBSD |
28 |
¨¬° programer ªº§Ú¥i¥H°µ¤°»ò©O¡H</para> |
| 28 |
provide? What can it do for me, as a programmer?</para> |
29 |
|
| 29 |
|
30 |
<para>¥»³¹¸ÕµÛ¦^µª§A¤@¨Ç°ÝÃD¡A·íµM¡A³æ´N programming µ{«×¨Ó»¡¥i¤À«Ü¦hºØ¼h¦¸¡A |
| 30 |
<para>These are some questions which this chapter tries to answer. |
31 |
¦³ªº¤H¥u¬O³æ¯Â·í¿³½ì¡A¦³ªº«h¬O¥Lªº±M·~¡A |
| 31 |
Of course, programming has different levels of proficiency like |
32 |
¥»³¹¥Dn¤º®e¬O°w¹ïµ{¦¡ªì¾ÇªÌ¡A |
| 32 |
any other trade. For some it is a hobby, for others it is their |
33 |
·íµM¡A¹ï©ó¨º¨Ç¤£¼ô &os; ªºµ{¦¡¶}µoªÌ¦Ó¨¥¡A¥»¤å¥ó¤º®e¤]¬O¤Q¤À¹ê¥Îªº¡C</para> |
| 33 |
profession. The information in this chapter might be aimed |
|
|
| 34 |
toward the beginning programmer; indeed, it could serve useful |
| 35 |
for the programmer unfamiliar with the &os; platform.</para> |
| 36 |
|
| 37 |
</sect1> |
34 |
</sect1> |
| 38 |
|
35 |
|
| 39 |
<sect1 id="introduction-bsdvision"> |
36 |
<sect1 id="introduction-bsdvision"> |
| 40 |
<title>The BSD Vision</title> |
37 |
<title>The BSD Vision</title> |
| 41 |
|
38 |
|
| 42 |
<para>To produce the best &unix; like operating system package |
39 |
<para>¬°¤FÅý§A¼g¥X¨Óªºµ{¦¡¦b &unix; like¨t²Î¤W¨ã¦³¨}¦nªº¨Ï¥Î©Ê¡B®Ä¯à©Méw©Ê¡A |
| 43 |
possible, with due respect to the original software tools |
40 |
§ÚÌ¥²¶·¸ò§A¤¶²Ð¤@¨Çµ{¦¡·§©À(original software tools ideology)¡C </para> |
| 44 |
ideology as well as usability, performance and |
|
|
| 45 |
stability.</para> |
| 46 |
</sect1> |
41 |
</sect1> |
| 47 |
|
42 |
|
| 48 |
<sect1 id="introduction-archguide"> |
43 |
<sect1 id="introduction-archguide"> |
| 49 |
<title>Architectural Guidelines</title> |
44 |
<title>µ{¦¡¬[ºc«ü«n</title> |
| 50 |
|
45 |
|
| 51 |
<para>Our ideology can be described by the following |
46 |
<para>§ÚÌ·Q¤¶²Ðªº·§©À¦p¤U</para> |
| 52 |
guidelines</para> |
|
|
| 53 |
|
47 |
|
| 54 |
<itemizedlist> |
48 |
<itemizedlist> |
| 55 |
|
49 |
|
| 56 |
<listitem><para>Do not add new functionality unless an |
50 |
<listitem><para>¦b¾ãÓµ{¦¡ÁÙ¨S¼g§¹«e¡A¤£n¼W¥[·sªº¥\¯à¡C</para></listitem> |
| 57 |
implementor cannot complete a real application without |
51 |
|
| 58 |
it.</para></listitem> |
52 |
<listitem><para>¥t¥~¤@Ó«ÂI´N¬O¡AÅý§A¦Û¤v¿ï¾Ü§Aªºµ{¦¡±N·|¨ã¦³¦óºØ¥\¯à¡A |
| 59 |
|
53 |
¦Ó¤£¬OÅý§O¤H¨M©w¡A¤£·Qn¥hº¡¨¬¥þ¥@¬Éªº»Ý¨D¡A°£«D§A·QÅý§Aªºµ{¦¡¨ã¦³ÂX¥R©Ê©Î¬Û®e©Ê¡C</para></listitem> |
| 60 |
<listitem><para>It is as important to decide what a system is |
54 |
|
| 61 |
not as to decide what it is. Do not serve all the world's |
55 |
<listitem><para>¤d¸U°O¦í¡G¦b¨S¦³¬ÛÃö¸gÅç®É¡A°Ñ¦Ò½d¨Òµ{¦¡½X©Ò¼g¥X¨Óªºµ{¦¡¡A |
| 62 |
needs; rather, make the system extensible so that additional |
56 |
·|¤ñ¦Û¤v¾ÌªÅ¼g¥X¨Óªº¦n¡C</para></listitem> |
| 63 |
needs can be met in an upwardly compatible |
57 |
|
| 64 |
fashion.</para></listitem> |
58 |
<listitem><para>·í§A¼gªºµ{¦¡¨S¿ìªk§¹¥þ¸Ñ¨M°ÝÃD®É¡A³Ì¦nªº¤èªk´N¬O¤£n¸ÕµÛn¥h¸Ñ¨M¥¦¡C</para></listitem> |
| 65 |
|
59 |
|
| 66 |
<listitem><para>The only thing worse than generalizing from one |
60 |
<listitem><para>Y¥Î 10% ªº¤ß¤O´N¯à»´ÃP§¹¦¨ 90% ªº¤u§@¥÷¶q¡A´N¥Î³oÓ²³æªk¤l§a¡C</para></listitem> |
| 67 |
example is generalizing from no examples at |
61 |
|
| 68 |
all. </para></listitem> |
62 |
<listitem><para>ºÉ¥i¯à¦a²¤Æ°ÝÃDªº½ÆÂø¡C</para></listitem> |
| 69 |
|
63 |
|
| 70 |
<listitem><para>If a problem is not completely understood, it is |
64 |
<listitem><para>´£¨Ñ¾÷¨î(mechanism)¡A¦Ó«Dì«h(policy)¡C |
| 71 |
probably best to provide no solution at all.</para></listitem> |
65 |
¤ñ¤è»¡¡A§â¨Ï¥ÎªÌ¤¶±¿ï¾ÜÅv¥æ¥Ñ¨Ï¥ÎªÌ¨Ó¨M©w¡C</para></listitem> |
| 72 |
|
|
|
| 73 |
<listitem><para>If you can get 90 percent of the desired effect |
| 74 |
for 10 percent of the work, use the simpler |
| 75 |
solution.</para></listitem> |
| 76 |
|
| 77 |
<listitem><para>Isolate complexity as much as |
| 78 |
possible.</para></listitem> |
| 79 |
|
| 80 |
<listitem><para>Provide mechanism, rather than policy. In |
| 81 |
particular, place user interface policy in the client's |
| 82 |
hands.</para></listitem> |
| 83 |
|
66 |
|
| 84 |
</itemizedlist> |
67 |
</itemizedlist> |
| 85 |
|
68 |
|
| 86 |
<para>From Scheifler & Gettys: "X Window System"</para> |
69 |
<para>¥H¤WºK¦Û Scheifler & Gettys ªº "X Window System" ½×¤å</para> |
| 87 |
|
70 |
|
| 88 |
</sect1> |
71 |
</sect1> |
| 89 |
|
72 |
|
| 90 |
<sect1 id="introduction-layout"> |
73 |
<sect1 id="introduction-layout"> |
| 91 |
<title>The Layout of |
74 |
<title><filename class="directory">/usr/src</filename> ªº¬[ºc</title> |
| 92 |
<filename class="directory">/usr/src</filename></title> |
|
|
| 93 |
|
75 |
|
| 94 |
<para>The complete source code to FreeBSD is available from our |
76 |
<para> |
| 95 |
public CVS repository. The source code is normally installed in |
77 |
§¹¾ãªº FreeBSD ì©l½X³£¦b¤½¶}ªº CVS repository ¤¤¡C |
| 96 |
<filename class="directory">/usr/src</filename> which contains the |
78 |
³q±` FreeBSD ì©l½X³£·|¸Ë¦b <filename class="directory">/usr/src</filename>¡A |
| 97 |
following subdirectories:</para> |
79 |
¦Ó¥B¥]§t¤U¦C¤l¥Ø¿ý¡G |
|
|
80 |
</para> |
| 98 |
|
81 |
|
| 99 |
<para> |
82 |
<para> |
| 100 |
<informaltable frame="none" pgwide="1"> |
83 |
<informaltable frame="none" pgwide="1"> |