%***********************************************************************
%
%       Spanish Translation by:  César Ballardini,
%                                cballard@santafe.com.ar
%                                May 9, 1997
%
%***********************************************************************
\chapter{En el principio}\label{bootup}

\begin{fortune}
  This login session: \$13.99, but for you \$11.88.
\end{fortune}

Tal vez ha tenido experiencia con MS-DOS\index{MS-DOS} u otro sistema
operativo monousuario, como OS/2\index{OS/2} o el de
Macintosh\index{Macintosh}.  En esos sistemas operativos, Ud. no tiene
que identificarse frente a la computadora antes de poder utilizarla;
siempre se supone que es el único usuario en el sistema y que puede
acceder a todo lo que quiera.  Por el contrario, \unix\ es un sistema
operativo multiusuario ---no sólo puede utilizarlo más de una persona
a la vez, sino que las distintas personas recibirán distinto trato.

Para poder identificar las personas, \unix\ necesita un {\em usuario}
para que el proceso denominado
\concept{ingreso}\index{ingreso}\footnote{N. del T.: {\em ingreso\/}
  en inglés \concept{logging in}\index{login}} pueda identificarlo o
identificarla\footnote{Desde ahora en adelante, utilizaré los
  pronombres masculinos para identificar a todas las personas.  Esta
  es la convención estándar en inglés (N. del T.: y en castellano), y
  con esto no quiero decir que sólo los hombres pueden utilizar
  computadoras.}.  Apenas se enciende una computadora, tiene lugar un
complejo proceso antes que la misma esté lista para ser usada.  Como
esta guía está orientada a \linux, les diré que es lo que sucede
durante la secuencia de arranque\index{arranque}\footnote{N. del T.:
  {\em arranque}, del inglés {\em boot-up}.}\glossary{arranque}.

Debe advertir Ud. que si está utilizando \linux\ en alguna clase de
ordenador distinto a una PC Intel\index{Intel}, algunos temas de este
capítulo no se aplicarán a su caso.  En su mayoría, dichos temas se
encontrarán en la Sección~\ref{intel-powerup}.

Si Ud. está interesado únicamente en utilizar su computadora, puede
saltearse toda la información de este capítulo, excepto la de la
Sección~\ref{actual-login-section}.

\section{La computadora despierta}\label{intel-powerup}

Lo primero que sucede cuando se conecta la alimentación a su
computadora es la ejecución de un programa denominado
BIOS\index{BIOS}\glossary{BIOS}.  Su nombre proviene de las iniciales
de {\bf B}asic {\bf I}nput/{\bf O}utput {\bf S}ystem, que significa
Sistema de Entrada/Salida Básico.  Este programa está almacenado de
manera permanente dentro de la computadora en chips que normalmente
son del tipo de lectura solamente.  Para nuestros propósitos, el BIOS
es un programa que nunca se puede cambiar. Al funcionar, realiza
ciertas comprobaciones mínimas y luego se fija si hay un disquete en
la primer disquetera.  Si encuentra alguno, mira en su ``sector de
arranque'' y comienza a ejecutar su código, si lo hay.  Si hay un
disquete pero no contiene un sector de arranque, el BIOS mostrará el
siguiente mensaje:
\begin{screen}\begin{verbatim}
    Non-system disk or disk error
\end{verbatim}\end{screen}
    
Si quitamos el disquete y apretamos una tecla, el proceso de
arranque continuará.

Si no existe un disquete en la disquetera, el BIOS\index{BIOS} se fija
si existe un registro maestro de arranque (MBR: master boot
record)\glossary{master boot record} en el disco rígido.  Si es así
comienza a ejecutar el código que allí encuentra, que se ocupa de
cargar el sistema operativo.  En los sistemas \linux, el cargador se
llama LILO\index{LILO} ---por {\bf LI}nux {\bf LO}ader---, puede
ocupar el MBR y en ese caso cargará el \linux.  (La distribución en
particular que esté utilizando puede manejar el arranque desde el
disco rígido de otra manera, así que debe controlar esto en la
documentación que se incluye con la distribución.  Otra buena
referencia es la documentación de LILO\index{LILO},~\cite{Al:LILO}.)
 

\section{\linux\ despierta}\label{linux-powerup}

Luego que el BIOS\index{BIOS} le pasa el control a LILO\index{LILO},
LILO a su vez le pasa el control al \concept{núcleo} de \linux.  El
núcleo es el programa central del sistema operativo, que controla a
todos los demás.  Lo primero que hace \linux\ una vez que comienza su
ejecución es cambiar la CPU a modo protegido\glossary{modo protegido}.
El procesador 80386\footnote{Cuando hable del 80386, también hago
  referencia a computadoras basadas en 80486, Pentium, y Pentium Pro a
  menos que específicamente indique lo contrario.  Además, abreviaré
  80386 mediante el término 386.} que controla su computadora tiene
dos modos que se denominan ``modo real''\glossary{modo real} y ``modo
protegido''.  El sistema operativo DOS\index{DOS} corre en modo real,
al igual que el BIOS\index{BIOS}.  Sin embargo, los sistemas
operativos más avanzados necesitan correr en modo protegido.  Por
ello, cuando \linux\ arranca, descarta el BIOS.

Los procesadores distintos al 386 llegan a este estado de manera
diferente.  Ningún otro procesador necesita cambiar a modo protegido,
y sólo unos pocos tienen un contexto tan pesado de carga, como LILO y
el BIOS.  Una vez que arranca el núcleo, \linux\ trabaja casi de la
misma manera.

%% CB traducir el contenido de la figura ufff!!
\begin{figure}[tb]\label{bootup-figure}
\centering
\epsfig{file=ps-files/bootup-figure.ps, width=.9\linewidth}
\caption{El camino que sigue un PC Intel hasta que nos muestra el
    indicativo del intérprete de comandos.  \cmdnm{init} puede o no
    arrancar~X.  Si lo hace, corre \cmdnm{xdm}.  Si no, corre
    \cmdnm{getty}.}
\end{figure}

A continuación, \linux\ mira que clase de hardware tiene debajo.
Necesita saber que clase de discos rígidos tiene, si hay o no un ratón
de bus, si está conectado a una red, y otras trivialidades como esas.
\linux\ no puede recordar ciertas cosas luego de apagado, de manera
que las pregunta cada vez que arranca.  Afortunadamente, no se las
pregunta a {\em Ud.\/}: ¡se las pregunta al {\em hardware\/}!
Durante el arranque, el núcleo de \linux\ muestra unos cuantos
mensajes, aunque con ciertas variaciones.  Puede leer acerca de esos
mensajes en la Sección~\ref{kernel-messages}.  Este proceso de
consulta puede causar algunos problemas con el sistema, pero si lo
hace, lo hará probablemente cuando instale \linux\ por primera vez.
Si tiene problemas, consulte la documentación de la distribución.

El núcleo solamente se ocupa de administrar los otros programas,
entonces cuando está satisfecho con que todo anda bien debe arrancar
otro programa para que haga los trabajos útiles.  El programa que el
núcleo arranca se llama \cmdnm{init}\ttindex{init}.  (Note la
diferencia en el tipo de letra.  Las cosas en {\tt este tipo de letra}
serán usualmente los nombres de programas, de archivo, de directorio u
otros items relacionados con las computadoras.)  Una vez que el núcleo
arranca \cmdnm{init}\ttindex{init}, no lanza ningún otro programa.  El
núcleo se transforma así en un administrador y proveedor, no en un
programa activo.

Por lo tanto, para saber que es lo que hace la computadora luego que
el núcleo arranca, deberemos examinar \cmdnm{init}\ttindex{init}.  La
complicada secuencia de arranque por la que atraviesa
\cmdnm{init}\ttindex{init} no es idéntica en todas las computadoras.
Para \linux\ existen varias versiones de \cmdnm{init}\ttindex{init}, y
cada una hace las cosas a su manera.  Además también influye si su
máquina está en red, e incluso cual distribución utilizó para instalar
\linux.  Algunas de las cosas que pueden suceder cuando
\cmdnm{init}\ttindex{init} arranca son:

\begin{itemize}
\item El control de integridad del sistema de
  archivos\glossary{sistema de archivos}. ¿Pero qué es un sistema de
  archivos?, se estará preguntando Ud. . Un sistema de archivos es la
  disposición de los archivos en el disco rígido. Además permite que
  \unix\ sepa cuales partes del disco rígido están ocupadas y cuales
  no. Desafortunadamente, ciertos factores como los cortes en el
  suministro de energía hacen que la información que el sistema de
  archivos tiene sobre la disposición en el disco de los archivos no
  coincida con la disposición real. En estos casos se ve la utilidad
  de un programa llamado \cmdnm{fsck}, que es capaz de encontrar estas
  situaciones y (con suerte) corregirlas.
  
\item Se lanzan programas especiales de
  encaminamiento\glossary{encaminamiento} para las
  redes\glossary{red}.  Estos programas informan a su computadora cómo
  se supone que puede comunicarse con las otras.
  
\item Se borran los archivos temporales que crean ciertos programas.
  
\item Se actualiza correctamente el reloj del sistema. Esto es más
  complicado de lo que puede parecer, pues \unix\, de manera
  predeterminada, necesita la hora en UCT (Universal Coordinated
  Time), también conocido como hora de Greenwich, y el reloj de la
  CMOS ---que es alimentado por una batería dentro de la
  computadora--- muy probablemente estará configurado con la hora
  local.  Esto significa que debe tener algún programa que lea la hora
  del reloj de la CMOS y la corrija transformándola en hora UCT.
\end{itemize}

Después que \cmdnm{init}\ttindex{init} termina con sus actividades de
arranque, comienza con sus tareas planificadas.
\cmdnm{init}\ttindex{init} se convierte así en el padre de todos los
procesos\glossary{proceso} del sistema \unix.  Un proceso es
simplemente un programa que está corriendo; como cualquier programa
puede correr más de una vez, entonces puede haber más de un proceso
para un programa dado en particular.

En \unix, los procesos\index{proceso} ---instancias de un programa---
se crean mediante una {\em llamada al sistema\/}\glossary{llamada al
  sistema}\footnote{N. del T.: {\em llamada al sistema\/} del inglés
  {\em system call}\glossary{system call}.} ---que es un servicio
provisto por el núcleo--- denominada \cmdnm{fork}\index{proceso!fork}.
(Se lo llama ``fork'' (bifurcación) pues un proceso se bifurca en dos
independientes.)  \cmdnm{init}\ttindex{init} \cmdnm{fork}ea (bifurca)
unos cuantos procesos, los que a su vez \cmdnm{fork}ean\footnote{N.
  del T.: Mis disculpas por el término, prometo no usarlo más {\tt
    :-)}.}  otros. En su sistema \linux\ con toda seguridad
\cmdnm{init} corre varias instancias de un programa llamado
\cmdnm{getty}\ttindex{getty}.  \cmdnm{getty} es el programa que le
permitirá iniciar el ingreso al usuario, y que a continuación lanzará
el programa \cmdnm{login}\ttindex{login}.

\section{La actuación del usuario}\label{actual-login-section}

\subsection{El ingreso}

Lo primero que hay que hacer para poder utilizar una máquina con
\unix\ es identificarse frente a la misma.  Este proceso, conocido en
inglés como \concept{logging in} (\concept{registro de ingreso}), es
la manera que tiene \unix\ de saber cuales son los usuarios
autorizados para utilizar el sistema.  Durante el ingreso se le
preguntará un nombre de cuenta\index{cuenta} y una
contraseña\index{contraseña}\footnote{N.  del T.: {\em contraseña,
    palabra clave\/} del inglés password\index{passw}}.  Los nombres
de las cuentas son por lo general parecidos a los nombres de las
personas, y se lo asignará el administrador del sistema.  Si Ud. es el
administrador del sistema deberá crearse una cuenta para poder
trabajar sin los cuidados especiales que requiere la cuenta {\tt
  root}.  (La información necesaria para llevar a cabo dicha tarea
podrá encontrarla en \ldpgs\footnote{N. del T.: Puede consultar la
  versión en castellano ya existente} o en \ldpsa.)
 
Luego de que tenga lugar la secuencia de procedimientos durante el
arranque, Ud. verá en la pantalla algo como lo que se muestra a
continuación: (la primer línea es meramente un saludo ---podría ser
alguna advertencia legal, o cualquier otra cosa)

\begin{screen}\begin{verbatim}
Welcome to the mousehouse. Please, have some cheese.

mousehouse login:
\end{verbatim}\end{screen}

\xwarn Sin embargo, puede ser que lo que el sistema le presente al
arrancar {\em no\/} se parezca a esto.  Por ejemplo, puede que en
lugar de una aburrida pantalla de texto nos muestre una pantalla
gráfica.  Aún en este caso, la computadora le pedirá sus datos al
ingreso y más o menos de la misma manera.  Si éste es el caso en su
sistema, entonces el entorno de trabajo que utilizará es el
sistema~X\index{Sistema de Ventanas~X}.  El X~Window System es un
sistema de ventanas y en el capítulo~\ref{x-chapter} se discutirán
algunas de las diferencias con las que se enfrentará.  De cualquier
manera, el proceso de ingreso será similar en ambos casos.  Si va a
utilizar~X, busque las apariciones de una X~grandota en el margen de
esta guía.

Esta es, por supuesto, la invitación que Ud. buscaba para {\bf
  ingresar} (login\index{login}).  A lo largo de este manual
utilizaremos el usuario ficticio (o no tan ficticio, dependiendo de su
máquina) {\tt larry}\footnote{N. del T.: He dejado aquí sin traducir
  ni cambiar el nombre del autor de la versión en inglés, y lo mismo
  vale para otros nombres como el de la máquina, etc. .}.  Donde Ud.
vea {\tt larry} debe poner el nombre de su propia cuenta.  Los nombres
de las cuentas se basan en general en los nombres reales; los sistemas
\unix\ más grandes y serios tienen cuentas que usan el apellido del
usuario, alguna combinación de nombre y apellido, y aún se da el caso
que deban agregarle algunos dígitos.  Por ejemplo, nombres de cuentas
posibles para Larry Greenfield\index{Greenfield, Larry!nombres de
  cuenta para} podrían ser: {\tt larry}, {\tt greenfie}, {\tt
  lgreenfi}, {\tt lg19}.

{\tt mousehouse} será, de la misma manera, el ``nombre'' de la máquina
sobre la que trabajaré.  Es posible que cuando Ud. instale \linux\ se
le pregunte el nombre que desea asignarle. Esto no es demasiado
importante, pero cada vez que haga falta utilizaré {\tt mousehouse} o,
más raramente, {\tt lionsden} cuando necesite de un segundo sistema
por razones de claridad o de contraste.
 
Luego de teclear {\tt larry} y apretar \ret, nos encontramos con lo
siguiente:

\begin{screen}\begin{verbatim}
mousehouse login: larry
Password:
\end{verbatim}\end{screen}

\linux\ está solicitando su \concept{contraseña}\footnote{N.  del T.:
  {\em contraseña\/} del inglés {\em password}.}.  Cuando escriba su
contraseña no podrá ver lo que está tecleando, en razón de la
privacidad necesaria a dicha palabra.  Escriba cuidadosamente: puede
borrar caracteres, pero no podrá ver lo que está editando.  No escriba
muy despacio si hay gente mirándole ---podrían llegar a descubrirla.
En cualquier caso, si se equivoca no se haga problemas, pues el
sistema le dará otra oportunidad de
ingresar.\glossary{password}\index{password}\glossary{contraseña}\index{contraseña}
 
Luego que ingrese correctamente su nombre de cuenta o nombre de
usuario y su contraseña, aparecerá un corto mensaje denominado
``mensaje del día''\footnote{N. del T.: {\em mensaje del día} del
  inglés Message Of The Day(motd).} que se obtiene del archivo
\file{/etc/motd}\ttindex{/etc/motd}.  Este archivo se utiliza para dar
a conocer cualquier clase de información a los usuarios con respecto
al estado del sistema y es responsabilidad del administrador del
sistema fijar su contenido.  Después de todo esto aparece un {\bf
  prompt}\index{shell!prompt}.  Un prompt es un símbolo que nos indica
que la computadora está lista para recibir un comando.  Debe parecerse
a la siguiente figura:
 
\begin{screen}\begin{verbatim}
/home/larry$
\end{verbatim}\end{screen}

% $ para equilibrar el font-lock-mode de emacs
    
\xwarn Si Ud. está utilizando X~Window, el prompt aparecerá en alguna
de las ``ventanas'' que hay en pantalla. (Las ``ventanas'' son simples
cajas rectangulares.)  Para escribir en el prompt, mediante el ratón,
mueva el cursor del mismo (probablemente se ve como una gran ``X'' o
una flecha) dentro de la ventana.

\subsection{Al abandonar la computadora}
 
\cautionpar ¡No apague la computadora directamente!  ¡Se arriesga a
perder valiosos datos!

A diferencia de la mayoría de las versiones de DOS\index{DOS}, no es
una buena idea apagar la llave de alimentación de la computadora así
como así, cuando termine de utilizarla.  Si reinicia la máquina (con
el botón de reset) sin antes tomar las debidas precauciones será igual
de pernicioso.  \linux\ tiene una
\concept{antememoria}\index{antememoria} o
\concept{caché}\index{caché} que mejora el rendimiento del disco.
Esto significa que temporalmente guarda en RAM información
perteneciente al sistema de almacenamiento permanente\footnote{La
  diferencia entre ``RAM'' y un disco rígido es como la diferencia
  enrte la memoria de corto plazo y la de largo plazo.  Al quitar la
  alimentación de la computadora es como si le diéramos un fortísimo
  golpe en la cabeza---olvidará todo lo que tenía en la memoria de
  corto plazo.  Pero las cosas guardadas en la memoria de largo plazo,
  el disco rígido, estarán bien.  El disco es miles de veces más lento
  que la RAM\@.}.  Las diferencias entre lo que \linux\ cree que hay
en el disco y lo que efectivamente está almacenado en el disco se
sincronizan cada 30 segundos. Si desea apagar o reiniciar la
computadora, necesitará ejecutar algún procedimiento que indique a
\linux\ que debe detener el sistema de caché y actualizar la
información en el disco.

Si ya ha terminado sus tareas con la computadora, pero aún está dentro
del sistema (ya tecleó su nombre de usuario y su palabra clave), lo
primero que debe hacer es registrar la salida (logout) del sistema.
Para ello, teclee el comando \cmdnm{logout}.  Todos los comandos se
envían oprimiendo la tecla marcada como \key{Enter}, \key{Return} ó
\ret.  Hasta que no apreta \ret no pasa nada, y por lo tanto, puede
borrar lo que escribió y recomenzar.
  
\begin{screen}\begin{verbatim}
/home/larry$ logout

Welcome to the mousehouse. Please, have some cheese.

mousehouse login:
\end{verbatim}\end{screen}

% $ para equilibrar el font-lock-mode de emacs

Ahora puede ingresar otro usuario.

\subsection{Como apagar la computadora}

Si el suyo se trata de un sistema en el cual trabaja un único usuario
---{\em Ud.}, {\tt :-)}--- puede desear apagar la computadora cuando
haya finalizado su trabajo con ella\footnote{Para evitar el
  debilitamiento prematuro de ciertos componentes de hardware, es
  mejor que apague la computadora sólo cuando ya no la vaya a utilizar
  por el resto del día.  Encender y apagar una vez al día la
  computadora probablemente es el mejor compromiso entre ahorrar
  energía y machacar el sistema.}.  Para {\em ``bajar el
  sistema''}\footnote{N. del T.: {\em bajar el sistema\/} del inglés
  {\em shutdown}.}--- o sea, apagarlo ordenadamente--- deberá ingresar
a una cuenta especial denominada {\tt root}.  La cuenta del {\tt root}
es la cuenta del administrador del sistema y puede acceder a todos los
archivos que existen en el sistema.  Si desea apagar la computadora,
primero debe bajar el sistema, y para ello deberá obtener la palabra
clave que utiliza el administrador del sistema.  Por favor, ingrese
Ud. entonces como {\tt root}:

\begin{screen}\begin{verbatim}
mousehouse login: root
Password:
Linux version 1.3.55 (root@mousehouse) #1 Sun Jan 7 14:56:26 EST 1996
/# shutdown now
Why? fin del dia de trabajo

URGENT: message from the sysadmin:
System going down NOW

          ... fin del dia de trabajo ...

Now you can turn off the power...
\end{verbatim}\end{screen}
    
El comando \cmdln{shutdown now} prepara al sistema para que pueda
apagarse o reiniciarse.  Debe esperar por el mensaje que dice que es
seguro apagar o reiniciar el sistema.  (Cuando el sistema le pregunta
``Why?''\footnote{N. del T.: {\em why?} significa {\em ¿por qué?}.},
sólo le está preguntando una razón para decirle a los otros usuarios.
Como no hay otra persona utilizando el sistema cuando Ud. lo baja,
puede responderle con lo que se le ocurra, o con nada.)

%% (CB) El siguiente párrafo me parece que debía mantenerse
%% Avisar a LG.
% La paciencia que deba tener mientras lleva adelante este
% procedimiento estará recompensada por la disminución de los
% riesgos de pérdidas sobre sus trabajos alojados en el sistema de
% archivos. {\em Siempre debe ejecutar \cmdln{shutdown now} antes de
% apagar el equipo.} 

Un pequeño dato para el perezoso: como alternativa al enfoque de
logout/login se puede utilizar el comando \cmdnm{su}.  Mientras está
trabajando con su nombre de cuenta habitual ({\tt larry} a nuestros
efectos) escriba \cmdln{su} y luego \ret.  Se le solicitará la palabra
clave del administrador del sistema, y si la ingresa correctamente
tendrá a partir de dicho momento los privilegios que le corresponden
al mismo.  Ahora, con estos privilegios agregados, podrá bajar el
sistema mediante el comando \cmdln{shutdown now}.


\section{Mensajes del núcleo}\label{kernel-messages}

Cuando se conecta la alimentación a su computadora, aparece una serie
de mensajes en la pantalla, que describe el hardware conectado al
ordenador.  Estos mensajes son producto de la actividad del núcleo de
\linux.  En esta sección, intentaremos describir y explicar esos
mensajes.

Naturalmente, estos mensajes varían de máquina a máquina.  Describiré
entonces los mensajes que aparecen en la mía.  El siguiente ejemplo
contiene todos los mensajes estándar y algunos específicos.  (En
general, la máquina sobre la que voy a realizar la descripción está
mínimamente configurada: no verá por lo tanto mucha información
relacionada con la configuración de dispositivos.)  Se utilizó \linux\ 
versión 1.3.55 ---uno de los más recientes al momento de
escribir.\index{núcleo de linux!mensajes de inicio@núcleo de
  \linux\!mensajes de inicio}
\begin{enumerate}
\item Lo primero que hace \linux\ es decidir que clase de tarjeta de
  video y pantalla tiene conectado, de manera de seleccionar un tamaño
  de letra apropiado.  (Cuanto más pequeño es el tamaño, más caben en
  una pantalla a la vez.)  \linux\ puede consultarle si desea algún
  tipo de letra en particular, o puede que tenga una selección ya
  compilada en su interior\footnote{``Compilada'' se refiere al
    proceso mediante el cual un programa de computadora escrito por
    una persona se traduce a algo que entiende la computadora.  Si una
    característica se ha ``compilado en su interior'' significa que
    está incluída en el programa.}.

        \begin{screen}\begin{verbatim} 
            Console: 16 point font, 400 scans Console: colour VGA+ 80x25, 1 virtual console (max 63)
        \end{verbatim}\end{screen}
        
        En este ejemplo, el dueño de la máquina decidió, al momento de
        compilar, que utilizaría el tipo de letra estándar tamaño
        grande\glossary{compilación}\glossary{binario}.  Además,
        notará que la palabra ``color'' está mal escrita.
        Evidentemente, Linus aprendió la versión incorrecta de idioma
        inglés\index{Torvalds, Linus!uso de idioma inglés}\footnote{N.
          del T.: ``colour'' es la variante ortográfica del inglés
          insular y ``color'' la norteamericana.}.
        
\item La próxima tarea del núcleo es informar acerca de la velocidad
  de su sistema, medida en ``BogoMIPS''\index{BogoMIPS}.  Un ``MIP''
  equivale a un millón de instrucciones por cada segundo, mientras que
  un ``BogoMIP'' es un ``bogus MIP''\footnote{N. del T.: {\em bogus}
    significa {\em espurio\/} (para los argentinos: {\em trucho}).}:
  cuantas veces la computadora puede hacer      absolutamente nada por
  cada segundo.  (Como este bucle no hace       nada en realidad, el
  número calculado no es tampoco una medida de la velocidad del
  sistema.)  \linux\ utiliza este número cuando necesita esperar por
  algún dispositivo de hardware.

        \begin{screen}\begin{verbatim}
        Calibrating delay loop.. ok - 33.28 BogoMIPS
        \end{verbatim}\end{screen}
            
\item El núcleo de \linux\ también nos comenta acerca de la
  utilización de la memoria:

        \begin{screen}\begin{verbatim}
Memory: 23180k/24576k available (544k kernel code, 384k reserved, 468k data)
        \end{verbatim}\end{screen}

Esto significa que la máquina tiene 24~megabytes\glossary{megabyte} de
memoria.  Parte de esta memoria está reservada por el núcleo.  El
resto puede ser utilizada por los programas.  Éste es el lugar
temporal conocido como \concept{RAM} que se utiliza sólo como
almacenamiento de corto plazo.  Su computadora también dispone de una
memoria permanente denominada \concept{disco rígido}.  El contenido
del disco rígido se mantiene intacto aún luego de quitar la
alimentación del ordenador.
            
\item A lo largo del proceso de arranque, \linux\ controla distintas
  partes del hardware y nos muestra mensajes indicativos de las
  mismas.

        \begin{screen}\begin{verbatim}
This processor honours the WP bit even when in supervisor mode. Good.
        \end{verbatim}\end{screen}

\item Ahora \linux\ pasa a la configuración de red\glossary{red}.  Lo
  que veremos a continuación está mejor explicado en
  \ldpng\footnote{N. del T.: Disponible en castellano.  Vea el
    apéndice~\ref{lucas}.}, y está fuera del alcance de este
  documento.

        \begin{screen}\begin{verbatim}
Swansea University Computer Society NET3.033 for Linux 1.3.50
IP Protocols: ICMP, UDP, TCP
        \end{verbatim}\end{screen}

\item \linux\ soporta la FPU\index{FPU}, la unidad de punto
  flotante\glossary{unidad de punto flotante}\footnote{N. del T.: {\em
      unidad de punto flotante} del inglés {\em Floating Point Unit}.}
  Ésta es un chip especial (o parte de un chip en el caso del
  procesador 80486DX) que se ocupa de la aritmética con números no
  enteros.  Algunos de esos chips no están en buenas condiciones, y
  cuando \linux\ trata de identificarlos la máquina ``se
  cuelga''\footnote{N. del T.: {\em se cuelga} del inglés {\em
      crashes}.}.  La máquina deja de funcionar.  Si esto sucede, Ud.
  verá en su pantalla lo siguiente:

        \begin{screen}\begin{verbatim}
Checking 386/387 coupling...
        \end{verbatim}\end{screen}\index{error!bad 386/387 coupling}

        Sino, el mensaje será:

        \begin{screen}\begin{verbatim}
Checking 386/387 coupling... Ok, fpu using exception 16 error reporting.
        \end{verbatim}\end{screen}
        si está utilizando un 486DX\@.  Si tiene un 386 con un 387, le
        aparecerá:

        \begin{screen}\begin{verbatim}
Checking 386/387 coupling... Ok, fpu using irq13 error reporting.
        \end{verbatim}\end{screen}

\item Y ahora se controla la instrucción ``halt''.

        \begin{screen}\begin{verbatim}
Checking 'hlt' instruction... Ok.
        \end{verbatim}\end{screen}

\item Luego de esta configuración inicial, \linux\ escribe una línea
  identificándose a sí mismo.  En ella explica cual es la versión del
  núcleo, la del compilador de C de GNU que se utilizó para
  compilarlo, y la fecha de dicha compilación.

        \begin{screen}\begin{verbatim}
Linux version 1.3.55 (root@mousehouse) (gcc version 2.7.0) #1 Sun Jan 7 14:56:26 EST 1996
        \end{verbatim}\end{screen}

\item El controlador serie\index{puertos serie} comienza a consultar
  acerca del hardware instalado.  Un \concept{controlador} es una
  parte del núcleo que controla un dispositivo, normalmente un
  periférico.  Se hace responsable por los detalles de la comunicación
  entre la CPU y el dispositivo.  Esto permite que la gente que
  escribe aplicaciones de usuario se pueda concentrar en la
  aplicación, pues no tiene que preocuparse por como trabaja
  exactamente la computadora.

        \begin{screen}\begin{verbatim}
Serial driver version 4.11 with no serial options enabled
tty00 at 0x03f8 (irq = 4) is a 16450
tty01 at 0x02f8 (irq = 3) is a 16450
tty02 at 0x03e8 (irq = 4) is a 16450
        \end{verbatim}\end{screen}

        Aquí vemos que ha encontrado tres puertos serie.  Un puerto
        serie es el equivalente del puerto {\tt COM} en
        DOS\index{DOS}; es el dispositivo que se utiliza normalmente
        para comunicarse con modems y ratones.

        Lo que significan las líneas anteriores es que el puerto
        serie~0 ({\tt COM1}) tiene la dirección {\tt 0x03f8}.
        Cuando dicho puerto interrumpe al núcleo, usualmente para
        decir que tiene datos listos, utiliza la IRQ 4\footnote{N. del
        T.: IRQ, Interrupt ReQuest (petición de interrupción).}.
        Las IRQ son un medio que tienen los periféricos de hablarse
        con el software.  Cada puerto serie también tiene un chip
        controlador, que usualmente se denomina 16450; aunque también
        puede ser el 8250 o el 16550.

\item A continuación viene el puerto paralelo\index{puerto paralelo},
  que normalmente se conecta a la impresora.  Los puertos paralelos en
  \linux\ tienen nombres que comienzan con \file{lp}.  \file{lp} son
  las iniciales de {\bf L}ine {\bf P}rinter\footnote{N. del T.:
    Impresora de líneas.}, aunque en los tiempos actuales parece más
  apropiado usar las iniciales de {\bf L}aser {\bf P}rinter. (Sin
  embargo, \linux\ se comunica sin problemas con cualquier clase de
  impresora conectada al puerto paralelo: de matriz de puntos, chorro
  de tinta, o laser.)

        \begin{screen}\begin{verbatim}
lp0 at 0x03bc, (polling)
        \end{verbatim}\end{screen}

        Este mensaje dice que ha encontrado un puerto paralelo, y que
        usará el controlador de dispositivo estándar.

\item \linux\ identifica luego las unidades de disco rígido.  En el
  sistema que le estoy mostrando, {\tt mousehouse}, tengo instalados
  dos unidades de disco rígido IDE.

        \begin{screen}\begin{verbatim}
hda: WDC AC2340, 325MB w/127KB Cache, CHS=1010/12/55
hdb: WDC AC2850F, 814MB w/64KB Cache, LBA, CHS=827/32/63
        \end{verbatim}\end{screen}
  
\item El núcleo ahora busca las unidades de disco flexible.  En este
  ejemplo, la máquina tiene dos unidades: la ``A'' es una unidad de
  $5\ {1/4}${\tt \dq}, y la ``B'' es una de $3\ {1/2}${\tt \dq}.
  \linux\ denomina \file{fd0} a la unidad ``A'', y \file{fd1} a la
  unidad ``B''.

        \begin{screen}\begin{verbatim}
Floppy drive(s): fd0 is 1.44M, fd1 is 1.2M
floppy: FDC 0 is a National Semiconductor PC87306
        \end{verbatim}\end{screen}

\item El próximo controlador que arranca en mi sistema ejemplo es el
  controlador SLIP.  Escribe un mensaje acerca de su configuración.

        \begin{screen}\begin{verbatim}
SLIP: version 0.8.3-NET3.019-NEWTTY (dynamic channels, max=256) (6 bit encapsulation enabled)
CSLIP: code copyright 1989 Regents of the University of California
        \end{verbatim}\end{screen}

\item El núcleo explora dentro de los discos rígidos que ha
  encontrado.  Busca las distintas particiones que tiene cada uno.
  Una partición\index{partición!disco} es una sección lógica de una
  unidad que se utiliza para evitar que interfieran entre sí distintos
  sistemas operativos coexistentes.  En este ejemplo, la computadora
  tiene dos discos (\file{hda} y \file{hdb}) con cuatro y una
  particiones, respectivamente.

        \begin{screen}\begin{verbatim}
Partition check:
  hda: hda1 hda2 hda3 hda4
  hdb: hdb1
        \end{verbatim}\end{screen}

\item Finalmente, \linux\ 
  \concept{monta}\glossary{montar}\index{montar} la partición
  raíz\index{partición!raíz}.  Ésta es la partición del disco en la
  cual reside el sistema operativo \linux.  Cuando \linux\ ``monta''
  esta partición, hace que esté disponible para los usuarios.

        \begin{screen}\begin{verbatim}
VFS: Mounted root (ext2 filesystem) readonly.
        \end{verbatim}\end{screen}
\end{enumerate} % kernel start-up messages
% Local Variables: 
% mode: latex
% TeX-master: "guide"
% End: 
