English Spanish
Chapter 1. Introduction
Introduction Introducción
Developing on FreeBSD Desarrollando en FreeBSD
So here we are. System all installed and you are ready to start programming. But where to start? What does FreeBSD provide? What can it do for me, as a programmer? Aqui estamos. El sistema está todo instalado y está listo para comenzar a programar. ¿Pero por dónde empezar? ¿Qué proporciona FreeBSD? ¿Qué puede hacer por mí, como programador?
These are some questions which this chapter tries to answer. Of course, programming has different levels of proficiency like any other trade. For some it is a hobby, for others it is their profession. The information in this chapter might be aimed toward the beginning programmer; indeed, it could serve useful for the programmer unfamiliar with the FreeBSD platform. Estas son algunas preguntas a las que este capítulo intenta responder. Por supuesto, la programación tiene diferentes niveles de competencia como cualquier otro oficio. Para algunos es un hobby, para otros es su profesión. La información de este capítulo puede estar dirigida al programador principiante; de hecho, podría ser útil para el programador que no esté familiarizado con la plataforma FreeBSD.
The BSD Vision La visión de BSD
To produce the best UNIX(R) like operating system package possible, with due respect to the original software tools ideology as well as usability, performance and stability.
Architectural Guidelines Directrices arquitectónicas
Our ideology can be described by the following guidelines Nuestra ideología se puede describir mediante las siguientes pautas
Do not add new functionality unless an implementor cannot complete a real application without it. No agregue nueva funcionalidad a menos que un implementador no pueda completar una aplicación real sin ella.
It is as important to decide what a system is not as to decide what it is. Do not serve all the world's needs; rather, make the system extensible so that additional needs can be met in an upwardly compatible fashion. Es tan importante decidir qué no es un sistema como decidir qué es. No atienda todas las necesidades del mundo; más bien, hacer que el sistema sea extensible para que las necesidades adicionales puedan satisfacerse de una manera compatible hacia arriba.
The only thing worse than generalizing from one example is generalizing from no examples at all. Lo único peor que generalizar a partir de un ejemplo es generalizar a partir de ningún ejemplo.
If a problem is not completely understood, it is probably best to provide no solution at all. Si un problema no se comprende completamente, probablemente sea mejor no proporcionar ninguna solución.
If you can get 90 percent of the desired effect for 10 percent of the work, use the simpler solution. Si puede obtener el 90 por ciento del efecto deseado para el 10 por ciento del trabajo, use la solución más simple.
Isolate complexity as much as possible. Aísle la complejidad tanto como sea posible.
Provide mechanism, rather than policy. In particular, place user interface policy in the client's hands. Proporcionar un mecanismo, en lugar de una política. En particular, ponga la política de interfaz de usuario en manos del cliente.
From Scheifler & Gettys: "X Window System"
The Layout of [.filename]#/usr/src#
The complete source code to FreeBSD is available from our public repository. The source code is normally installed in [.filename]#/usr/src# which contains the following subdirectories: El código fuente completo de FreeBSD está disponible en nuestro repositorio público. El código fuente normalmente se instala en<filename>/usr/src</filename>que contiene los siguientes subdirectorios:
| Directory
| Description

|[.filename]#bin/#
|Source for files in [.filename]#/bin#

|[.filename]#cddl/#
|Utilities covered by the Common Development and Distribution License

|[.filename]#contrib/#
|Source for files from contributed software

|[.filename]#crypto/#
|Cryptographical sources

|[.filename]#etc/#
|Source for files in [.filename]#/etc#

|[.filename]#gnu/#
|Utilities covered by the GNU Public License

|[.filename]#include/#
|Source for files in [.filename]#/usr/include#

|[.filename]#kerberos5/#
|Source for Kerberos version 5

|[.filename]#lib/#
|Source for files in [.filename]#/usr/lib#

|[.filename]#libexec/#
|Source for files in [.filename]#/usr/libexec#

|[.filename]#release/#
|Files required to produce a FreeBSD release

|[.filename]#rescue/#
|Build system for the [.filename]#/rescue# utilities

|[.filename]#sbin/#
|Source for files in [.filename]#/sbin#

|[.filename]#secure/#
|Contributed cryptographic sources

|[.filename]#share/#
|Source for files in [.filename]#/usr/share#

|[.filename]#sys/#
|Kernel source files

|[.filename]#tests/#
|The FreeBSD test suite

|[.filename]#tools/#
|Tools used for maintenance and testing of FreeBSD

|[.filename]#usr.bin/#
|Source for files in [.filename]#/usr/bin#

|[.filename]#usr.sbin/#
|Source for files in [.filename]#/usr/sbin#