\author {Sven Goldt}
\title {Guía Linux de Programación}
\chapter {El sistema operativo Linux}
  En marzo de 1991 Linus Benedict Torvalds compró un sistema
  Multitarea Minix para su AT. Lo usó para desarrollar su propio sistema
  multitarea que llamó Linux. En el mes septiembre de 1991 liberó el
  primer prototipo por e-mail a algunos otros usuarios de Minix
  en Internet: así comenzó el proyecto Linux. Muchos
  programadores desde ese punto han apoyado Linux. Han agregado
  controladores de dispositivos, desarrollado aplicaciones, según
  las normas POSIX. Hoy Linux es muy potente, pero lo mejor es que es
  gratuito. Se están realizando trabajos para transportar Linux a otras
  plataformas.

\chapter {El núcleo de Linux}
  La base de Linux es el núcleo. Podría reemplazar todas las
  librerías, pero mientras quede el núcleo, estará todavía Linux. El
  núcleo incorpora controladores de dispositivos, manejo de la memoria,
  manejo de procesos y manejo de comunicaciones. Los gurús del núcleo
  siguen las
  pautas POSIX que hacen la programación a veces más fácil y a veces más
  difícil. Si su programa se comporta de forma diferente en un nuevo
  núcleo de Linux, puede ser porque se hayan implantado nuevas líneas marcadas
  por POSIX. Para más información de la programación sobre el núcleo de
  Linux, lea el documento Linux Kernel Hacker's Guide.

\chapter {El paquete libc de Linux}

\noindent
{\obeylines
libc: ISO 8859.1, $<linux/param.h>$, funciones YP, funciones crypt,
algunas rutinas shadow básicas (por omisión no incluidas),... rutinas
viejas por compatibilidad en libcompat (por omisión no activas),
mensajes del error en inglés, francés o alemán, rutinas de gestión de
la pantalla compatibles bsd 4.4lite en libcurses, rutinas compatibles
bsd en libbsd, rutinas de la manipulación de la pantalla en
libtermcap, rutinas del manejo del base de datos en libdbm, rutinas
matemáticas en libm, entradas para ejecutar programas en crt0.o???,
información del sexo del byte en libieee??? (¿podía alguien dar
información en lugar de reírse?), espacio de perfiles de usuario, en
libgmon. Me gustaría que alguno de los desarrolladores de la librería
libc de Linux escribiera este capítulo. Todo lo que puedo decir ahora
es que va ha haber un cambio del formato de ejecutables a.out a elf
(formato ejecutable y enlazable) que también significa un cambio en la
construcción de bibliotecas compartidas. Normalmente se soportan ambos
formatos, a.out y elf
\medskip}

  La mayoría de los elementos del paquete libc de Linux están bajo la
  Licencia Pública GNU, aunque algunos están bajo una excepción especial
  de derechos de copia como crt0.o. Para distribuciones comerciales
  binarias esto significa una restricción que prohibe el enlace estático
  de ejecutables. El enlace dinámico de ejecutables son de nuevo una
  excepción especial y Richard Stallman del FSF comentó:\\
  {\smallskip \noindent \it
  [\ldots] Pero me parece que debemos permitir de forma ambigua la
  distribución de ejecutables enlazados dinámicamente *sin* ir
  acompañados de la librerías bibliotecas, con tal de que los ficheros
  objeto que forman el ejecutable estén sin restricción según la sección
  5 [\ldots] Por tanto tomaré la decisión de permitirlo. La
  actualización del LGPL tendrá que esperar hasta que tenga tiempo para
  hacer y comprobar una versión nueva.}

\endinput

