Tal vez ha tenido experiencia con MS-DOS u otro sistema operativo monousuario, como OS/2 o el de 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 usuario para que el proceso denominado ingreso1 pueda identificarlo o identificarla2. 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 arranque3.
Debe advertir Ud. que si está utilizando Linux en alguna clase de ordenador distinto a una PC 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 3.1.
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 3.3.
La computadora despierta
Lo primero que sucede cuando se conecta la alimentación a su computadora es la ejecución de un programa denominado BIOS. Su nombre proviene de las iniciales de Basic Input/Output System, 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:
Non-system disk or disk error
Si quitamos el disquete y apretamos una tecla, el proceso de arranque continuará. Si no existe un disquete en la disquetera, el BIOS se fija si existe un registro maestro de arranque (MBR: 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 (por LInux LOader), 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, [1 ].)
Linux despierta
Luego que el BIOS le pasa el control a LILO, LILO a su vez le pasa el control al 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. El procesador 803864 que controla su computadora tiene dos modos que se denominan "modo real" y "modo protegido". El sistema operativo DOS corre en modo real, al igual que el 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.
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 Ud.: ¡se las pregunta al 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 3.4. 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 init.
Una vez que el núcleo arranca 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 init. La complicada secuencia de arranque por la que atraviesa init no es idéntica en todas las computadoras. Para Linux existen varias versiones de 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 init arranca son:
o El control de integridad del 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 fsck, que es capaz de encontrar estas situaciones y (con suerte) corregirlas.
o Se lanzan programas especiales de encaminamiento para las redes. Estos programas informan a su computadora cómo se supone que puede comunicarse con las otras.
o Se borran los archivos temporales que crean ciertos programas.
o 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.
Después que init termina con sus actividades de arranque, comienza con sus tareas planificadas.
init se convierte así en el padre de todos los procesos 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 (instancias de un programa) se crean mediante una llamada al sistema5 (que es un servicio provisto por el núcleo) denominada fork. (Se lo llama "fork" o bifurcación pues un proceso se bifurca en dos independientes.) init forkea (bifurca) unos cuantos procesos, los que a su vez forkean6 otros. En su sistema Linux con toda seguridad init corre varias instancias de un programa llamado getty. getty es el programa que le permitirá iniciar el ingreso al usuario, y que a continuación lanzará el programa login.
La actuación del usuario
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 logging in (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 y una contraseña7. 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 root. (La información necesaria para llevar a cabo dicha tarea podrá encontrarla en Installation and Getting Started 8 o en The Linux System Administrator's Guide.)
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)
Welcome to the mousehouse. Please, have some cheese.
mousehouse login:
Sin embargo, puede ser que lo que el sistema le presente al arrancar 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. El X Window
System es un sistema de ventanas y en el capítulo 5 se discutirán algunas de las diferencias con las que se enfrentará. De cualquier manera, el proceso de ingreso será similar en ambos casos.
Esta es, por supuesto, la invitación que Ud. buscaba para ingresar (login). A lo largo de este manual utilizaremos el usuario ficticio (o no tan ficticio, dependiendo de su máquina) larry9. Donde Ud. vea 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 podrían ser: larry, greenfie, lgreenfi, lg19.
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é mousehouse o, más raramente, lionsden cuando necesite de un segundo sistema por razones de claridad o de contraste.
Luego de teclear larry y apretar |_Intro_|, nos encontramos con lo siguiente:
mousehouse login: larry
Password:
Linux está solicitando su contraseña10. 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.
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"11 que se obtiene del archivo /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 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:
/home/larry$
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.
Al abandonar la computadora
¡No apague la computadora directamente! ¡Se arriesga a perder valiosos datos!
A diferencia de la mayoría de las versiones de 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 antememoria o caché que mejora el rendimiento del disco. Esto significa que temporalmente guarda en RAM información perteneciente al sistema de almacenamiento permanente12.
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 logout. Todos los comandos se envían oprimiendo la tecla marcada como |_Enter_|, |_Return_| ó |_Intro_|. Hasta que no aprieta |_Intro_| no pasa nada, y por lo tanto, puede borrar lo que escribió y recomenzar.
/home/larry$ logout
Welcome to the mousehouse. Please, have some cheese.
mousehouse login:
Ahora puede ingresar otro usuario.
Como apagar la computadora
Si el suyo se trata de un sistema en el cual trabaja un único usuario (Ud., :-)) puede desear apagar la computadora cuando haya finalizado su trabajo con ella13. Para "bajar el sistema"14, o sea, apagarlo ordenadamente, deberá ingresar a una cuenta especial denominada root. La cuenta del 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 root:
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...
El comando "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?"15, 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.)
Un pequeño dato para el perezoso: como alternativa al enfoque de logout/login se puede utilizar el comando su. Mientras está trabajando con su nombre de cuenta habitual (larry a nuestros efectos) escriba "su" y luego |_Intro_|. 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 "shutdown now".
1 N. del T.: ingreso en inglés logging in
2 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.
3 N. del T.: arranque, del inglés boot-up.
4 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.
5 N. del T.: llamada al sistema del inglés system call.
6 N. del T.: Mis disculpas por el término, prometo no usarlo más :-).
7 N. del T.: contraseña, palabra clave del inglés password
8 N. del T.: Puede consultar la versión en castellano ya existente
9 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. .
10N. del T.: contraseña del inglés password.
11N. del T.: mensaje del día del inglés Message Of The Day(motd).
12 La diferencia entre "RAM" y un disco rígido es como la diferencia entre 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.
13 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.
14 N. del T.: bajar el sistema del inglés shutdown.