Está en la página 1de 14

Iniciando GNU/Linux

Iniciando nuestro Sistema Operativo

1.- Arrancando GNU/Debian


2.- Niveles de corrida de GNU/Debian
3.- Archivo /etc/inittab
4.- Comentario de las variables del archivo /etc/inittab
5.- Comandos que cambian el nivel de corrida.
6- Proceso de Login.
7.- Intérprete de Comandos en GNU/DEBIAN
8.- Administración del Sistema Operativo
9.- Manejo de terminales y entorno gráfico

1.- Arrancando GNU/Debian

Lo primero que hace nuestro equipo al iniciarse es un autochequeo.


Esto es lo que llamamos BIOS ( Basic Input Output System ). De
este modo se detecta la configuración del hardware. Luego, le pasa
el control al primer disco rígido declarado ( primary master ).
Para comenzar la lectura tiene el "mbr" ( master boot record ), que
está ubicado en el cilindro=0, sector=0, cabeza=0. ( Es allí donde
GNU/Debian instaló el lanzador de los sistemas operativos :
Lilo o Grub de acuerdo a la elección tomada durante el proceso de
instalación ).

La distribución GNU/Debian utiliza grub por defecto. Estos programas


tienen en cuenta como está particionado el disco para después
ir hasta el dispositivo correspondiente y lanzar el sistema operativo
seleccionado.

Tanto lilo como grub tienen un prompt incorporado que permite


ejecutar algunas acciones.

En el caso de lilo hay que presionar <ctrl x> y veremos la palabra


boot.

En el caso de grub hay que presionar la letra "e" y pasamos


al modo edición.

Si esperamos el tiempo suficiente, se lanzará el sistema operativo


que hayamos elegido por defecto y al presionar <tab>
nos moveremos entre las distintas opciones.

www.linuxcollege.com.ar / Marcelo T. de Alvear 2247 / 4827-4354 1


Iniciando GNU/Linux

En caso de lanzar lilo el sistema operativo estará leyendo el archivo


de configuración /etc/lilo.conf y en el caso de grub se encuentra en
/boot/grub/menu.lst.

Después de haber seleccionado el sistema operativo,


se descomprime el núcleo en Memoria. Haremos lo mismo que BIOS
pero en modo operativo.

A partir de este momento nuestro sistema operativo entra en


el modo arranque.

2.- Niveles de Corrida en GNU/Debian

Este sistema operativo funciona en base a los denominados niveles


de corrida.

Estos niveles le dan el nombre al sistema de arranque, conocido


como SystemV ( System 5 ), porque existen 5 niveles.

En realidad son siete pero dos no son operativos :


los de apagado y reinicio.

Los niveles de corrida tienen que ver con la cantidad de servicios


que se van a ejecutar en el sistema operativo, esto significa qué
cosas va a poder hacer nuestro equipo después del arranque.

¿ Cómo llegamos hasta aquí ?

Después que nuestro sistema corrió por grub y


descomprimió el kernel, le pasa el control al proceso
de init, representado por un archivo que está ubicado
en /etc/inittab ( tabla de inicio ). Este archivo le dice
al sistema operativo cómo tiene que arrancar.

Vamos a dejar nota de una copia del archivo de configuración de


nuestro equipo para después ir comentando sus líneas.

3.- Archivo /etc/inittab

# /etc/inittab: init(8) configuration.


# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $

www.linuxcollege.com.ar / Marcelo T. de Alvear 2247 / 4827-4354 2


Iniciando GNU/Linux

# The default runlevel.


id:2:initdefault:

# Boot-time system configuration/initialization script.

# What to do in single-user mode.


~~:S:wait:/sbin/sulogin

# /etc/init.d executes the S and K scripts upon change


# of runlevel.
#
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
# Normally not reached, but fallthrough in case of emergency.
z6:6:respawn:/sbin/sulogin

# What to do when CTRL-ALT-DEL is pressed.


ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

# Action on special keypress (ALT-UpArrow).


#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab
to let this work."

# What to do when the power fails/returns.


pf::powerwait:/etc/init.d/powerfail start
pn::powerfailnow:/etc/init.d/powerfail now
po::powerokwait:/etc/init.d/powerfail stop

# /sbin/getty invocations for the runlevels.


#
# The "id" field MUST be the same as the last
# characters of the device (after "tty").
#
# Format:
# <id>:<runlevels>:<action>:<process>
#
# Note that on most GNU/Debian systems tty7 is used by the X
Window System,
www.linuxcollege.com.ar / Marcelo T. de Alvear 2247 / 4827-4354 3
Iniciando GNU/Linux

# so if you want to add more getty's go ahead but skip tty7 if


you run X.
#
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6

# Example how to put a getty on a serial line (for a terminal)


#
#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100

# Example how to put a getty on a modem line.


#
#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3

4.- Comentarios de las variables del archivo


/etc/inittab

Las primeras líneas del archivo de configuración


comienzan con "#". Esto indica que son Comentarios.
Nos describe los siete niveles de corrida posibles y
aclara que hay dos que no se pueden usar.

El nivel de corrida 0 es el nivel de apagado.

El nivel de corrida 1 es del monousuario sin servicios de red de


ningún tipo. Este nivel de corrida es exclusivo para el usuario root.
Aunque en este nivel se requiere un password que es el del usuario
root nadie más que él puede usar el sistema operativo en este nivel
de corrida. Se utiliza cuando el administrador del sistema necesita
configurar algún programa .

Al nivel de corrida 2 al 5 se lo llama nivel de corrida del multiusuario.

El nivel de corrida 6 es de reinicio. En este nivel el equipo se apaga y


enciende nuevamente.

# The default runlevel.


id:2:initdefault:

# Boot-time system configuration/initialization script.

www.linuxcollege.com.ar / Marcelo T. de Alvear 2247 / 4827-4354 4


Iniciando GNU/Linux

# This is run first except when booting in emergency (-b)


mode.
si::sysinit:/etc/init.d/rcS

# What to do in single-user mode.


~~:S:wait:/sbin/sulogin

# /etc/init.d executes the S and K scripts upon change


# of runlevel.
#
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.

id:2:initdefault:

Este 2 que aparece ahí es el nivel de corrida por defecto.


GNU/Debian en el nivel de corrida 2 también lanza el modo gráfico.

La siguiente línea le indica al sistema operativo recién iniciado como


debe configurar los dispositivos.

# This is run first except when booting in emergency (-b)


mode.
si::sysinit:/etc/init.d/rcS

Lo que sigue, luego de haber seleccionado el nivel de corrida es


buscar un archivo que se encuentra en /etc/init.d/rcS

Este archivo tiene por función arrancar y buscar las configuraciones


particulares de los dispositivos.

§ Determina la configuración de red basándose


en /etc/network.
§ Monta el sistema de archivos /proc que usa
GNU/Debian para llevar a cabo el control de
procesos.
§ Configura el reloj del sistema basándose
en BIOS y en la zona horaria seleccionada.
§ Arranca la memoria virtual del sistema
y la monta en la partición swap definida en
/etc/fstab.
§ Establece el nombre de host de la máquina y evalúa procesos
de autentificación de usuarios globales tales como NIS,
Kerberos, Smb.
www.linuxcollege.com.ar / Marcelo T. de Alvear 2247 / 4827-4354 5
Iniciando GNU/Linux

§ Comprueba los file systems del equipo ( particiones definidas


durante la instalación ), busca posibles errores y lo monta en
caso de no encontrar ninguno.
§ Identifica cualquier rutina especial requerida en el sistema
operativo para usar el hardware del equipo,
configura dispositivos de plug-and-play, activa sistemas
básicos como sonido.
§ Comprueba el estado de dispositivos especiales de
cualquier tipo.
§ Configura dispositivos ( mouse, teclado, etc. ).

Después de haber completado estas tareas lanza de acuerdo al nivel


de corrida seleccionado los servicios.

Esto es lo que vemos con un Ok mientras el equipo bootea.

identificador de nivel de ejecución : acción : script a ejecutar.

l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6

Estas líneas que siguen en el archivo buscan el directorio /etc/init.d


en este directorio se encuentra un script llamado rc que recibe un
número como parámetro y después lanza los servicios del nivel
correspondiente.

Es importante destacar que GNU/Debian cuando no puede arrancar


normalmente el sistema operativo nos pide que ingresemos la clave
del usuario root para solucionar el problema. Esto lo vemos en la
línea siguiente :

# Normally not reached, but fallthrough in case of emergency.


z6:6:respawn:/sbin/sulogin

¿ Cómo sabe el sistema operativo qué


servicios tiene que iniciar en el nivel 2 ?

Este sistema operativo es sumamente ordenado


para trabajar. Tiene subdirectorios para cada nivel
de corrida :

www.linuxcollege.com.ar / Marcelo T. de Alvear 2247 / 4827-4354 6


Iniciando GNU/Linux

/etc/init.d/

En este subdirectorio están todos los scripts de arranque de servicios


del sistema operativo.

¿ Cómo hacemos para individualizarlos en el


nivel 3 ó 5 ?

Para cada nivel de corrida tenemos un subdirectorio con links de


tipo soft, archivos que se encuentran en el directorio /etc/init.d

/etc/init.d/rc0.d
/etc/init.d/rc1.d
/etc/init.d/rc2.d
/etc/init.d/rc3.d
/etc/init.d/rc4.d
/etc/init.d/rc5.d
/etc/init.d/rc6.d

¿ Por qué es mejor seguir los pasos de este


modo ?

La ventaja es la siguiente: si queremos que un servicio no se


levante podemos "borrar" el link soft y ese servicio no se levanta
para ese nivel de corrida, pero el script de arranque sigue estando
y puede ser usado en otro nivel o levantarse a mano si se prefiere.

Veamos qué es lo que sucede realmente.

Vamos a listar todo lo que hay en nuestro directorio /etc/rc2.d

K91apache2 K20mysql S99xdm S10sysklogd S89cron


K20xprint K15bind S20xfs S89atd S99rmnologin
K20samba K14ppp S20ssh S20exim4 S99stop-bootlogd
K20dhcp S99kdm S11klogd S20inetd S20makedev

Observen que los links comienzan con una "S" ( start ) o con
una "K" ( kill ). Los que comienzan con una "S" levantan,
los que en comienzan con "K" no. Luego siguen con un número
de dos cifras que indica en que orden se levantan. Ej : S20inetd
levantará antes que S89cron.

www.linuxcollege.com.ar / Marcelo T. de Alvear 2247 / 4827-4354 7


Iniciando GNU/Linux

El archivo de configuración continúa con la siguiente línea :

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

Esto significa que cuando presionemos <ctrl><alt><del> en forma


simultánea, el sistema operativo se va a reiniciar.

Si queremos deshabilitar esta secuencia de teclas simplemente


comenzamos esta líneas anteponiendo "#". Esto es muy útil,
ya que si muchos usuarios están conectados, cualquiera
podría apagar el servidor.

Las siguientes líneas tienen que ver con la terrenal pregunta :


- ¿ Qué pasa si se corta la luz ?

Si la luz se corta el equipo se apaga, a menos que tenga un UPS.


Si nuestro UPS tiene un cable serial conectado a nuestro equipo
ocurre que cuando se detecta que la energía viene de una
fuente distinta a la tradicional se le envía una señal al kernel
diciendo que se cortó la luz. Allí se ejecuta el comando que
esta después de la líneas pf :

Este comando envía una señal a todas las terminales avisando


que en 2 minutos se apagará el sistema.

# What to do when the power fails/returns.


pf::powerwait:/etc/init.d/powerfail start
pn::powerfailnow:/etc/init.d/powerfail now
po::powerokwait:/etc/init.d/powerfail stop

Luego, GNU/Debian tiene que cargar las terminales que sirven


para que podamos ejecutar comandos. Para ello llama a un
programa llamado mingetty. El término tty viene de teletype.
Notemos que llama a 6 terminales de modo texto.

Si queremos agregar más terminales deberíamos agregar una


línea como ésta cambiándole el primer y el último parámetro.

# Format:
# <id>:<runlevels>:<action>:<process>
#
# Note that on most GNU/Debian systems tty7 is used by the X
Window System,
# so if you want to add more getty's go ahead but skip tty7 if
you run X.
#
1:2345:respawn:/sbin/getty 38400 tty1
www.linuxcollege.com.ar / Marcelo T. de Alvear 2247 / 4827-4354 8
Iniciando GNU/Linux

2:23:respawn:/sbin/getty 38400 tty2


3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6

En este punto finaliza el proceso de arranque.

5.- Comandos que cambian el nivel de corrida

Existen varias formas de cambiar el nivel de corrida del


sistema operativo :

1. Ejecutando el comando shutdown :


Ejemplo:
shutdown -r now ( reinicia el sistema operativo nivel de
corrida 6 ).
shutdown -h ( nivel de corrida 0 ).
shutdown - r 2 ( reinicia el sistema con nivel de corrida 2 ).

2. Cambiando el nivel de corrida desde la línea de comandos:


Ejemplo :
init 0 ( apaga el equipo ).
init 1 ( cambia el nivel de corrida a monousuario ).
init 2 ( cambia al nivel de corrida multiusuario sin red ).
init 3 ( cambia al nivel de corrida de multiusuario completo ).
init 5 ( cambia al nivel de corrida gráfico ).
init 6 ( reinicia el equipo ).

6.- Proceso de Login

Luego de haber iniciado el Sistema Operativo con los niveles


correspondientes a cada corrida, GNU/Debian nos muestra
una pantalla que contiene la versión del sistema operativo,
una descripción del núcleo y de la arquitectura del procesador.

Este archivo está ubicado en el directorio /etc y su nombre es: issue

GNU/Debian GNU/Debian 3.1 \n \l

Posteriormente aparece el proceso de login.

www.linuxcollege.com.ar / Marcelo T. de Alvear 2247 / 4827-4354 9


Iniciando GNU/Linux

equipo1 Login: ( cuando colocamos el usuario se está validando


contra el archivo /etc/passwd ).

Una vez colocado el usuario se requiere la password.

El algoritmo utilizado para encriptar las claves no permite hacer


lo inverso, siempre podemos encriptar pero nunca desencriptar.
( Esto es en teoría, ya que no existe un equipo 100% seguro,
y mucho menos un algoritmo imposible de ser crackeado! ).

Si la password ha sido aceptada nos aparece un archivo


que está en el directorio /etc/ llamado motd que generalmente
esta vacío pero le sirve al administrador para brindarle información
a los usuarios :

Por ejemplo :

" Hoy a las 20:00 horas se efectuará un backup, les agradezco dejar
todas las aplicaciones cerradas "

Luego el sistema operativo nos devuelve el "prompt".

En el caso de la distribución GNU/Debian el prompt está compuesto


por dos partes para el usuario root :

equipo1:~#

( nombre_del_equipo:directorio_donde_estoy_posicionado )

El símbolo "~" indica que estamos en el home dir del usuario )

El último símbolo "#". Identifica a root.

Para un usuario común el símbolo de prompt es distinto. Consta


de tres partes : primero tenemos el usuario que está logueado,
segundo el nombre del equipo en el cual estamos, el signo "$" nos
indica que somos usuarios comunes no root y el signo "~" también
nos dice en que directorio estamos posicionados.

fabian@equipo1:~$

Cuando un usuario efectúa el login siempre el directorio en el que va


a estar parado es su home.

Además cada usuario tiene asignado un shell o intérprete


de comandos.

www.linuxcollege.com.ar / Marcelo T. de Alvear 2247 / 4827-4354 10


Iniciando GNU/Linux

7.-Intérprete de Comandos en GNU/DEBIAN

El prompt es una indicación que muestra el intérprete de


comandos para anunciar que espera una orden del usuario.

Cuando el usuario escribe una orden o comando, el intérprete


la ejecuta.

Presionando ctrl.+alt+F1 pasamos a una terminal de texto.

El intérprete utilizado en nuestro caso es bash ( Bourne-Again Shell ).


Bash tiene la posibilidad de ejecutar comandos en tiempo real pero
además tiene un poderoso lenguaje de programación de scripts.

Permite generar programas con funciones, control de flujo,


creación de archivos, seguimiento de procesos, etc.

8.- Administración del Sistema Operativo

Nuestro sistema operativo trabaja con terminales.

Si queremos saber en qué terminal estamos trabajando ejecutamos


el comando tty

Ejemplo :

equipo1:~# tty
/dev/tty1

Esto significa que estoy ejecutando comandos en esa terminal.

Si estamos trabajando en el entorno gráfico veremos algo parecido,


esto es porque ahora estamos trabajando en pts ( seudo terminal ).

Ejemplo :

equipo1:~# tty
/dev/pts/1

Dice que estamos en una seudo terminal en este caso la número 1.

Volvemos a presionar <ctrl-alt-F7> y ahora estamos de nuevo en


X.

www.linuxcollege.com.ar / Marcelo T. de Alvear 2247 / 4827-4354 11


Iniciando GNU/Linux

9.- Manejo de terminales y entorno gráfico

GNU/Debian trabaja con terminales de texto que corren directamente


sobre el kernel. Sobre esas terminales, en seudo terminales corre el
servidor de X, y sobre ese X corre un programa que permite manjar
ventanas, y sobre ese programa corre el modo gráfico.

El entorno gráfico corre como cualquier aplicación. Si la aplicación


tuviera un fallo, siempre podremos volver a la línea de comandos.

Ahora vamos a dar un paso más: si deseamos cambiarnos a otra


terminal presionamos simultáneamente las teclas <ctrl-alt-F2> (
control-alt-funcion2 ).

En ese momento aparecerá de nuevo el proceso de login. Volvemos


a loguearnos.

Puede ser con el mismo usuario o con otro : recordemos que


es un es un sistema operativo multiusuario multitarea.

Ejemplo : me logueo con el usuario linuxcollege. Si este usuario


quiere ver en que terminal está, vuelvo a ejecutar el comando tty.

linuxcollege@equipo1:~$tty
/dev/tty2

Estamos probando que es un sistema multiusuario, veamos


si funciona el multitarea. Ahora este usuario quiere usar el
entorno gráfico terminado, no el X.

Ejemplo : queremos utilizar KDE. Tipeamos startx , el comando


utilizado para correr kde, gnome ó cualquier otro entorno gráfico.

linuxcollege@equipo1:~$ startx

Se va a levantar la gráfica que tiene seteada por defecto el sistema


operativo.

Vayamos viendo cómo está nuestro esquema de terminales después


de haber ejecutado este comando.

tty1 : root ejecutando aplicaciones


tty2 : logueó linuxcollege
tty3 : sin login
tty4 : sin login
tty5 : sin login
tty6 : sin login

www.linuxcollege.com.ar / Marcelo T. de Alvear 2247 / 4827-4354 12


Iniciando GNU/Linux

pts/1 : Entorno gráfico de linuxcollege

Todavía podemos loguear en las otras terminales y trabajar con el


mismo usuario o con otro distinto.

¿ Qué sucede si el usuario que está en la


terminal 1 (tty1) quiere usar el modo gráfico ?

Presionamos <ctrl-alt-F1> para volver a la terminal 1.


Si ejecutamos startx nos va a dar un error como éste:

equipo1:~# startx
Fatal server error:
Server is already active for display 0
If this server is no longer running, remove /tmp/.X0-lock
and start again.

When reporting a problem related to a server crash, please send the


full server output, not just the last messages.
Please report problems to xfree86@xfree86.org.

xinit: unexpected signal

Esto significa que la pts/1 está ocupada, pero todavía tenemos la


pts/2.

Entonces podemos decirle al modo gráfico que se levante en esa


terminal.

Veamos como : equipo1:~# startx -- :1

Esto permitirá que se dispare la gráfica en la


segunda pts. Por lo tanto podemos tener
muchas terminales de texto y muchas
terminales gráficas corriendo en forma
simultánea en nuestro sistema operativo.

Observaciones

Para cambiar el entorno gráfico por defecto escribimos


el siguiente comando:
Para kde :
linuxcollege@equipo1:~$ switchdesk kde

www.linuxcollege.com.ar / Marcelo T. de Alvear 2247 / 4827-4354 13


Iniciando GNU/Linux

Para gnome :
linuxcollege@equipo1:~$ switchdesk gnome

Glosario

Script

Un script es un archivo que contiene comandos que se ejecutan línea


por línea.

Intérprete de comandos

Un intérprete de comandos es un programa que recibe lo que se


escribe en la terminal y lo convierte en instrucciones para el sistema
operativo.

www.linuxcollege.com.ar / Marcelo T. de Alvear 2247 / 4827-4354 14