Download Universidad Nacional de Ingeniería Sistemas Operativos Facultad

Document related concepts

Proceso de arranque en Linux wikipedia , lookup

Grep wikipedia , lookup

Procfs wikipedia , lookup

Transcript
Universidad Nacional de Ingeniería
Facultad de Ingeniería Industrial y de Sistemas
v2.0
Sistemas Operativos
MA781U
LABORATORIO 9
Preparado por: Angel Chata Tintaya ([email protected])
Resumen
Revisaremos los procesos y principales script shells del sistema operativo Linux.
I. MONITOREANDO LOS PROCESOS LINUX
Usaremos el comando ps para monitorear los procesos del sistema; además cambiaremos el
Id del usuario.
1. Use el comando ps para obtener una lista de los procesos que pertenecen al usuario que
invoco ps.
$ ps
$ ps a
PID TTY STAT TIME COMMAND
Aquí PID es el identificador del proceso, TTY es la consola donde se ejecuta el proceso, STAT
es el estado del proceso, TIME es el tiempo acumulado usado en CPU, COMMAND es como
se inició el proceso.
2. Para obtener información de todos los procesos use ps aux
$ ps aux
$ ps aux | head
USER PID TTY STAT TIME COMMAND
Aqui se muestra USER que es el propietario del proceso, los demonios o procesos automáticos
no tienen consola definida (TTY = ?), los procesos login inician con el carácter - (cómo -bash),
los propietarios de los procesos se muestran en la primera columna, los procesos que están en
swap en disco se muestran entre paréntesis (bash).
3. Para obtener la relación padre-hijo use el comando ps aj; los IDs de los procesos padres
están en la columna PPID, los usuarios se muestran con su id de usuario en la columna UID.
Para obtener el nombre se coloca id
$ ps aj
$ id
Use estos comandos para ubicar su proceso login bash y rastréelo hasta llegar al proceso init
$ ps aj
$ ps aj PPID (donde PPID es el id del proceso padre de bash)
$ ps aj 1
4. El comando whoami le indica con que usuario se ha conectado. Revise tambien que usuario
se mantiene con un subshell root (su).
$ whoami
$ su
# whoami
# exit
5. Cuantos demonios están corriendo en el sistema? Un demonio es un proceso automatico.
$ ps aux | grep ? | wc -l
10. Cuantos procesos tienen como propietario a root?
$ ps aux | grep root | wc -l
II. CREANDO UN SHELL SCRIPT SIMPLE
El shell es la consola donde ingresa los comandos.
Un shell script es un programa ejecutable compuesto por comandos Linux.
Se creara un shell script simple y como son sus procesos.
1. Usando vi como editor, cree un archivo llamado trial.sh que contiene una secuencia de
comandos.
$ cd
$ vi script.sh
<i>
echo "La fecha y hora actual es : "
date
sleep 600
<esc>:wq!
$ cat script.sh
ma781.tripod.com
1 de 3
Universidad Nacional de Ingeniería
Facultad de Ingeniería Industrial y de Sistemas
v2.0
Sistemas Operativos
MA781U
2. Indique al shell que ejecute el comando script.sh.
$ source script.sh
La fecha y hora actual es :
12 Junio 2003 04:17:03
(pausa... use ctrl+c para salir)
3. SI queremos que este archivo sea tratado como ejecutable entonces tenemos que
modificarlo, agregando al inicio del archivo script.sh lo siguiente
$ vi script.sh
<i>
#!/bin/sh
echo "La fecha y hora actual es : "
date
sleep 600
<esc>:wq!
$ cat script.sh
4. Usamos chmod para convertirlo en ejecutable por el usuario
$ ls -l script.sh
$ chmod u+x script.sh
$ ls -l script.sh
5. Verifique que puede ejecutar script.sh; se debe indicar toda la ruta del archivo en caso que
el directorio actual no se encuentre en el PATH por defecto.
$ ./script.sh
12 Junio 2003 04:27:03
(pausa... use ctrl+c para salir)
6. Ahora ejecute script.sh en background y mientras esta en "sleep 600" use ps para saber que
procesos están ejecutando.
$ ./shell.sh &
(el & indica que el proceso correrá en background)
$ ps aj
Puede ver que ejecutando script.sh, antes se ha iniciado /bin/sh?
III. EXPLORANDO EL ARCHIVO KERNEL
En Linux, el ejecutable kernel (o núcleo del sistema operativo) se encuentra en el subdirectorio
/boot
1. Liste el contenido de /boot. El ejecutable kernel se llama vmlinuz seguido de unas serie de
números que dependerá de la versión de kernel que este usando. Cuan grande es el kernel?
$ ls -l /boot
2. El comando uname nos muestra que versión de kernel se tiene en la PC.
$ uname -r
IV. DISPOSITIVOS Y EL KERNEL BOOT LOG
En este ejercicio leeremos el log del arranque del núcleo y determinaremos como el sistema se
ha configurado para habilitar dispositivos.
1. Lea el log del arranque del kernel.
$ dmesg
$ dmesg | grep hda
id0 at ... hda
hda ... ATA DISK drive
Típicamente, se muestra un dispositivo (como hda) y el driver del dispositivo.
2. Ejecutando dmesg, puede indicarnos cuanta memoria esta disponible en su PC? Que
información se refiere al disco duro? Que puede conocer del puerto serial?
$ dmesg | grep MEM
$ dmesg | grep hd
$ dmesg | grep SERIAL
ma781.tripod.com
2 de 3
Universidad Nacional de Ingeniería
Facultad de Ingeniería Industrial y de Sistemas
v2.0
Sistemas Operativos
MA781U
V. OBSERVANDO LOS PARÁMETROS DEL KERNEL
1. Liste el contenido del directorio /proc/sys/kernel. Cada archivo contiene información del
sistema.
$ ls /proc/sys/kernel
$ ls /proc/sys/fs
$ ls /proc/sys/vm
2. Un parámetro que observaremos es file-max, el máximo numero de archivos abiertos en el
sistema. Puede observar otros parámetros del sistema operativo con cat
$ cat /proc/sys/fs/file-max
VI. EXPLORANDO LOS MODULOS DEL KERNEL DEL LINUX
1. Verifique que kerneld esta ejecutándose en su sistema
$ ps aux | grep kerneld
2. Ejecute el comando lsmod
$ /sbin/lsmod
Que módulos están instalados?
VII. LOGON SCREEN
Modificaremos algunos parámetros de inicio del Linux
1. Realice una copia del archivo /etc/inittab
$ su
# cp /etc/inittab /etc/inittab.orig
2. Usando el editor de textos, modifique el archivo /etc/inittab
# vi /etc/inittab
id:5:initdefault
(coloque 5 para que inicie en modo grafico)
id:3:initdefault
(coloque 3 para que inicie en modo texto)
CUIDADO CON MODIFICAR ESTE ARCHIVO INADECUADAMENTE
3. Reinicie la PC y observara que ha cambiado el modo de inicio por defecto del Linux.
Si ha iniciado en modo texto, puede cargar en la consola 7 el X-Windows
# startx
4. SI ha instalado tanto el entorno GNOME como el KDE, puede cambiar el entorno por
defecto; edite el archivo /etc/X11/prefdm.
# vi /etc/X11/predfm
preferred=kdm
5. Reinicie la PC en modo grafico y observe que el entorno KDE se carga por defecto.
VIII. REBOOTEANDO EL SISTEMA
Algunos sistemas requieren usar el usuario root para bajar el sistema
1. Baje el sistema operativo
$ /sbin/shutdown -r now "Es una diversion"
2. Observe los mensajes que se muestran con el proceso init. Note la serie de eventos:
procesos terminados, dispositivos desmontados, sistema detenido.
3. También puede reiniciar el sistema con lo siguiente
$ init 0
ma781.tripod.com
3 de 3