Temas Específicos para La Preparación de La Oposición Al Cuerpo Superior de Sistemas y Tecnologías de La Información de La Administración Del Estado
Editado por ASTIC en 2017 a partir de los temas numerados anteriormente como:
1
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
ÍNDICE
ÍNDICE
1. INTRODUCCIÓN .................................................................... 4
2. EL SISTEMA OPERATIVO UNIX ........................................... 5
2.1 HISTORIA DE UNIX ..................................................................................... 5
2.2 ESTANDARIZACIÓN DE UNIX ....................................................................... 5
2.3 APARICION LINUX ..................................................................................... 6
2.4 CONCEPTOS GENERALES ............................................................................ 6
2.4.1 Principios de diseño de UNIX .........................................................................7
2.4.2 Principios de diseño de Linux ........................................................................7
2.5 ARQUITECTURA DE UNIX - LINUX ................................................................ 7
2.6 MODOS DE FUNCIONAMIENTO DE UNIX ........................................................ 8
2.7 ELEMENTOS DEL SISTEMA UNIX/LINUX ......................................................... 8
2.7.1 Kernel ...............................................................................................................8
2.7.2 Procesos o Threads ........................................................................................10
2.7.3 Gestión de memoria ........................................................................................12
2.7.4 Sistema de Archivos .......................................................................................13
2.7.5 Gestión de Entrada y Salida ...........................................................................15
2.8 INTERRUPCIONES Y EXCEPCIONES ............................................................... 16
2.9 UTILIDADES O TOOLS .................................................................................. 16
2
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
ÍNDICE
PREGUNTAS DE TEST..................................................................... 44
3
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
1. Introducción
Uno de los sistemas operativos más populares en los últimos años es UNIX. Su popularidad, además,
se ha visto incrementado con la aparición de Linux como distribución bajo licencia de software libre.
Tanto UNIX como Linux son sistemas operativos que han evolucionado bastante a lo largo de su
historia, originando distintas versiones, incompatibles, en algunas ocasiones, entre sí (caso de UNIX).
Uno de los aspectos más importantes en el mantenimiento de cualquier sistema operativo es su
administración. Esta tarea es parte fundamental, ya que los errores producidos es esta faceta pueden
ser difíciles de subsanar y originar inestabilidad en el funcionamiento del sistema operativo.
En las tareas de administración se exige un profundo conocimiento tanto en la forma de trabajar del
sistema operativo como el hardware sobre el que está ejecutándose.
En la actualidad, casi todos los fabricantes proporcionan herramientas que facilitan la administración,
aunque el principal problema es que son incompatibles de unos fabricantes a otros.
4
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
Estándar Descripción
1003.0 Introducción y repaso.
1003.1 Procedimientos de biblioteca
1003.2 Intérprete y comandos.
1003.3 Métodos de prueba.
1003.4 Extensiones para tiempo real.
1003.5 Lenguaje Ada.
1003.6 Extensiones para la seguridad
1003.7 Administración del Sistema.
1003.8 Acceso transparente a archivos.
1003.9 Lenguaje Fortran.
1003.10 Supercómputo.
Tabla 1. Las Especificaciones de POSIX
5
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
6
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
Interfaz de
biblioteca Programas utilitarios
(Shell, editories, compiladores,
estándar
Interfaz de etc)
llamadas al Modo de
sistema Biblioteca estándar usuario
(open, close, read, write, fiork,
etc.)
Sistema Operativo
(Admon. UNIX
de procesos,Admon. de Modo de Kernel
sistema de archivos, E/S, etc.)
memoria,
Hardware
(CPU, memoria, discos, terminales, etc.)
En la capa inferior tenemos toda la parte del Hardware que el sistema operativo debe gestionar. Por
encima de éste se sitúa el kernel de Unix que es el encargado de la administración de procesos,
gestión del sistema de archivos, entradas / salidas, etc. A los procesos que trabajan a es nivel se les
llama procesos en modo kernel.
La biblioteca estándar se ubica por encima del kernel, se encarga, por ejemplo de las operaciones de
open, close, etc. A este nivel se trabaja en modo usuario. La interface entre las dos capas, o el
acceso de la capa de biblioteca estándar a la del kernel se realiza a través de la interfaz de llamadas
al sistema.
7
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
A un nivel superior tenemos los programas y utilidades como el shell, compiladores, etc., que sirve
de ayuda a desarrolladores y usuarios que interactúan con el sistema operativo. La interface entre
esta capa la inmediatamente inferior es a través de la interfaz de biblioteca.
Por último, se ubicarían los usuarios que por medio de la interfaz de usuario se comunican con el
shell, u otras utilidades del sistema Unix.
Kernel
Procesos y threads
Gestión de memoria
Entrada / salida
El sistema de archivos
2.7.1 Kernel
El Kernel es el corazón de Unix. Se clasifica como de tipo monolítico pero permite la incorporación
dinámica de módulos. En él se pueden encontrar dos partes principales: El núcleo dependiente y el
núcleo independiente
Núcleo dependiente: Se encarga de las interrupciones, los manejadores de dispositivos de bajo nivel
(lower half) y parte del manejo de la memoria.
Núcleo independiente: Es igual en todas las plataformas e incluye:
Manejo de llamadas del sistema
Controlar la ejecución de procesos, permitiendo su creación, terminación o suspensión y
comunicación
Planificar los procesos para su realización por la CPU. Los procesos la comparten mediante
un sistema de tiempo compartido
Asignar memoria principal a un proceso en ejecución. Permite que los procesos compartan
porciones de su espacio de direcciones bajo ciertas condiciones pero impide que un proceso
tenga un espacio específico de direcciones.
Asigna memoria secundaria para lograr un almacenamiento y recuperación eficiente de los
datos de usuario. Asigna almacenamiento secundario para los archivos de usuario, recupera
el almacenamiento no empleado, estructura el sistema de archivos de un modo compresible y
los protege del acceso de usuario no autorizados
Permite el acceso controlado de los procesos a los periféricos tales como: terminales,
unidades de disco, equipos de red.
El esquema de Unix/Linux sería el que marca la siguiente figura: Los usuarios o sus procesos a
través de traps y la interfaz de llamadas al sistema acceden al modo kernel del sistema operativo. Los
principales módulos a los que accederán serán el subsistema de control de procesos (gestión de
memoria, planificación, comunicación entre procesos) y al subsistema de ficheros y manejadores de
dispositivos.
8
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
Entrando un poco más en detalle (véase la figura siguiente), para la comunicación entre el modo
usuario y el modo kernel, se observa que Unix/Linux proporciona unas librerías: libc y libm que son
llamadas por los procesos de usuario cuando cambian de modo (pasan del modo usuario al modo
kernel, por ejemplo al solicitar una operación de entrada / salida) a través de las llamadas al sistema
o system calls. Posteriormente se accede al núcleo independiente (escrito en código independiente),
para accede al núcleo dependiente, cuyo código depende de la plataforma hardware
9
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
Otra característica del Kernel de Unix/Linux es que puede soportar varias CPU's (SMP, Symmetric
MultiProcessing). También soporta procesos en tiempo real (Real Time según POSIX 1003.1b). Es
paramétrico configurable mediante numerosos de parámetros y se carga en memoria de forma
residente en memoria al arrancar el sistema.
10
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
La siguiente figura es un esquema de transición entre algunos estados que sufre un proceso
El módulo de comunicación entre procesos controla todas las posibilidades, desde señalización
asíncrona de sucesos hasta transmisión síncrona de mensaje entre procesos
El scheduler (planificador) asigna CPU a los procesos. Estos se realizan hasta que la abandonan
en espera de un recurso solicitado o hasta que el kernel hace valer su función cuando el tiempo de
funcionamiento más próximo excede un valor prefijado. Posteriormente, el scheduler escogerá le
proceso con mayor prioridad
El manejo de procesos en UNIX es por prioridad y round robin. En algunas versiones se maneja
también un ajuste dinámico de la prioridad de acuerdo al tiempo que los procesos han esperado y
al tiempo que ya han usado el CPU. El sistema provee facilidades para contabilizar el uso de CPU por
proceso y una pila común para todos los procesos cuando necesitan estarse ejecutando en modo
privilegiado (cuando hicieron una llamada al sistema).
UNIX permite que un proceso haga una copia de sí mismo por medio de la llamada 'fork', lo cual es
muy útil cuando se realizan trabajos paralelos o concurrentes; también se proveen facilidades para el
envío de mensajes entre procesos (pipes, signals).
11
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
Algunos sistemas operativos (como SunOS) permiten incrementar el espacio de intercambio incluso
mientras el sistema está en uso (en el caso de SunOS con el comando 'swapon'). También es muy
importante que al momento de decidirse por un sistema operativo se pregunte por esa facilidad de
incrementar el espacio de intercambio, así como la facilidad de añadir módulos de memoria RAM a la
computadora sin necesidad de reconfigurar el núcleo.
Cuando se arranca el sistema operativo Unix/Linux, inicialmente se inician los siguientes procesos
con sus correspondientes identificadores: Swapper (PID 0); Init (PID 1); Page Daemon (PID 2)
12
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
En 4BSD, la memoria principal consta de 3 partes. Las dos primeras, el kernel y el mapa central
(coree MAP), están fijas en la memoria y nunca se paginan a disco. El resto de la memoria se divide
en marcos de página, cada uno de los cuales puede contener una página de texto (código), datos o
de pila, contener una página de la tabla de páginas o estar en la lista libre.
El mapa central incluye información acerca del contenido de los marcos de página, donde cada
entrada describe el marco de página correspondiente (la 0 el marco 0 y así consecutivamente).
Reemplazo: cada 250ms el page daemon mira si el número de marcos libres no baja de cierta
cantidad, (aprox. ¼ del tamaño de la memoria). Para la paginación se emplea un algoritmo conocido
como algoritmo de reloj de una manecilla, examinando de forma circular los marcos de página. Es
un algoritmo global. 4BSD emplea una versión modificada con 2 "manecillas", mientras que System V
emplea el algoritmo de una manecilla, colocando los marcos en la lista de marcos libres, si no se usa
durante n pasadas consecutivas. Si hay reemplazo el swapper desaloja uno o varios procesos que
hayan estado inactivos durante más de 20s, o el que haya estado más tiempo en memoria entre los
cuatro más grandes.
En UNIX, el sistema de archivos tiene una estructura de capas. Un fichero es una secuencia de 0 o
más bytes. No existe distinción entre ficheros ASCII, binarios, etc. Se admiten nombres de hasta 255
caracteres. No siguen el esquema habitual de [Link]ón .
13
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
Un fichero puede ocupar varios bloques no necesariamente contiguos. Un disco puede tener varias
particiones con su propia estructura.
El sistema de archivos de UNIX, desde el punto de vista del usuario, tiene una organización
jerárquica o de árbol invertido que parte de una raíz conocida como "/" (diagonal). Es una diagonal al
revés que la usada en DOS. Se puede acceder a un fichero empleando un direccionamiento absoluto,
desde el directorio raíz; relativo, desde el directorio actual; usando Enlaces (links), ubicaciones
ficticias de ficheros que se encuentran en otro sitio.
Internamente se usa un sistema de direccionamiento de archivos de varios niveles, cuya estructura
más primitiva se le llama 'information node' (i-node). El sistema de archivos de UNIX ofrece un
poderoso conjunto de comandos y llamadas al sistema. En la tabla 3 se muestran los comandos más
útiles para el manejo de archivos en UNIX.
UNIX Utilidad
rm Borra archivos
cp Copia archivos
mv Renombra archivos
ls Lista el contenido de un directorio
mkdir Crea un directorio
rmdir Borra directorios
ln Crea enlaces (entradas a un mismo archivo físico desde ubicaciones diferentes),
tanto enlaces "físicos" (hard-links) como "simbólicos" (soft-links). Un enlace simbólico
guarda la ruta del archivo referenciado, puede establecerse entre particiones distintas
y no desaparece si se elimina el archivo a que hace referencia. Un enlace físico
solamente se puede establecer en directorios de la misma partición, para eliminar un
archivo se deben eliminar todos los enlaces físicos que lo referencien. Todos los
enlaces físicos de un archivo comparten el propietario y los permisos de acceso.
Tabla 2 Comandos UNIX del Sistema de Archivos
Dentro de la estructura de directorios de UNIX existen una serie de directorios comunes a todas las
instalaciones que es preciso conocer:
14
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
Además del sistema de archivos clásico de UNIX, existen otros sistemas de archivos que pueden
emplearse en UNIX y LINUX. Berkeley mejoró el sistema clásico con el BFFS (Berkeley Fast File
System), que fue quien introdujo los nombres de archivo de 255 caracteres (el clásico solamente
admitía 14). Berkeley tuvo que introducir cuatro llamadas al sistema nuevas opendir, closedir,
readdir y rewinddir para que los programas pudieran leer los directorios sin conocer su estructura
interna. Posteriormente estos cambios se añadieron a POSIX y a todas las versiones de UNIX.
LINUX comenzó empleando el sistema de archivos de MINIX, pero estaba limitado a nombres de 14
caracteres y a archivos de 64 MB de tamaño. La primera mejora vino de la mano de un sistema de
archivos denominado Ext que permitía nombres de archivo de 255 caracteres y 2 GB de tamaño por
archivo, pero era muy lento. La evolución vino de la mano del sistema de archivos Ext2, con nombres
de archivo largos, archivos grandes y mejor rendimiento, siendo en la actualidad el sistema de
archivos por defecto en LINUX. Ext2 es muy similar a BFFS, con algunas diferencias menores.
Con objeto de compartir los archivos entre ordenadores conectados en una red, a menudo con
diferentes sistemas de archivos, Sun Microsystems desarrolló el sistema de archivos de red NFS
(Network File System), que se usa en todos los sistemas UNIX modernos, incluido LINUX.
El sistema de archivos es el esquema que organiza y gestiona los datos. Incluye un conjunto de
programas y herramientas organizadas en una estructura jerárquica. Esta estructura permite a los
usuarios accede y actuar sobre los archivos con absoluta independencia de su localización física.
Los dispositivos de entrada y salida son considerados ficheros especiales: Toda entrada / salida está
basada en el principio de que todos los dispositivos se pueden tratar como ficheros simples. El
subsistema de entrada / salida utiliza como elementos principales: Buffercache; el código general de
manejo de dispositivos; y drivers de dispositivos de hardware. Existen dos tipos de dispositivos:
Dispositivos de bloques:
Usan secuencias de bytes (bloques)
Utilizan buffer-cache
Están estructurados en bloques de tamaño fijo (512 bytes)
Permiten optimizar el rendimiento
Dispositivos de carácter:
Son dispositivos sin estructura, son raw
No usan buffer
La operaciones se realizan carácter a carácter
15
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
Así como las interrupciones están causadas por factores externos a un proceso, las excepciones son
sucesos inesperados producidos por procesos, tales como la ejecución de instrucciones reservadas,
de forma que el sistema, al encontrarse con una, tiende a reiniciar la instrucción, en lugar de pasar a
la siguiente.
16
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
3. Gestión del espacio físico: Gestionar las particiones y unidades de disco y backup que el sistema
monta automáticamente en su arranque
5. Monitorización del sistema: Comprobaciones del uso de CPU, discos, memoria, gestión de entrada
/ salida, red. Mediciones de throughput
3.2 Instalación
Al contrario que lo que ocurre con Microsoft Windows la instalación de Linux no es un proceso
sencillo, puesto que Linux permite el control y la personalización de una cantidad mayor de
parámetros y opciones. Pese a todo se están realizando grandes progresos buscando que la
instalación de Linux sea un proceso lo menos traumático posible, dependiendo la sencillez de la
17
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
misma de la distribución que se emplee. Por el momento la distribución más sencilla de instalar es
Unbuntu hecho que la ha hecho muy popular. Ahora bien la evolución del resto de distribuciones
también ha simplificado mucho su instalación.
Pese a todo antes de proceder a instalar Linux es necesario tener en cuenta una serie de aspectos
fundamentales. El primero de ellos es leer la información que contiene el iso o cd de la instalación,
esta información puede aparecer de dos formas distintas, los llamados HOWTO o en forma de
manuales desarrollados para la distribución. La distribuciones incluyen un manual de instalación de
Linux en HTML o pdf en la que se explica con todo lujo de detalles cómo se realiza ésta y que es
conveniente leer y comprender antes de proceder a realizar la instalación.
Uno de los conceptos principales a tener en cuenta antes de la instalación es el de partición. Cada
sistema operativo organiza la información de los ficheros que contiene de forma diferente, utilizando
cada uno su propio sistema de archivos.
Esto en general impide que se puedan instalar varios sistemas operativos mezclados en un mismo
disco duro. Para solucionar este problema existen las llamadas particiones con las que se divide un
determinado disco duro de forma que pueda contener ambos sistemas de archivos. A todos los
efectos realizar una partición es equivalente a que el disco duro se divida en dos.
Los problemas fundamentales al instalar Linux provienen de que en la mayor parte de las ocasiones
el usuario desea conservar Windows y todos los programas para este sistema. En la actualidad
existen varias distribuciones que permiten la instalación de Linux en un sistema de archivos de
Windows, bien en lo que se denomina un disco imagen (un fichero muy grande). No obstante para
obtener un buen rendimiento es preferible instalar Linux sobre una partición diferente de la de
Windows empleando el sistema de archivos propio de Linux, por lo que suele ser necesario realizar
una partición del disco duro (Habitualmente Windows se apropia de la totalidad). Hasta épocas
recientes esta división suponía la pérdida irremediable e inevitable de toda la información que
contuviese el disco duro. En la actualidad las distribuciones de Linux incluyen utilidades como fips
que permite dividir el disco duro sin perder información.
Linux necesita al menos dos particiones para operar. Estas particiones deben crearse al momento de
la instalación. Las dos particiones necesarias se deben asignar para el sistema de archivos en / y el
área de intercambio o swap.
Partición Montaje Formato Tamaño
/dev/sda1 – Swap – swpa – 10 Gb
/dev/sda2 – / – Ext4 – 240 Gb
Estas dos particiones se crean automáticamente en la mayoría de las distribuciones actuales
dedicadas al escritorio y es la forma general y más sencilla de distribuir el sistema de archivos y las
particiones. Sin embargo, en un servidor las particiones toman mayor importancia ya que en estos
sistemas no solo se busca que funcione sino que además se un sistema robusto, que el sistema siga
funcionando aun cuando se acabe el espacio, etc. Y en estos casos las particiones juegan un papel
importante.
Otro de los puntos a tener en cuenta es cómo se quiere arrancar Linux si existe Windows, la forma
más sencilla es instalar LILO o GRUB, un programa que se encarga de arrancar ambos sistemas
operativos según lo que indique el usuario al arrancar el PC.
Por último existe otro concepto fundamental a la hora de instalar y usar Linux que es el de Super
Usuario o usuario root. Este usuario es el administrador del sistema y se crea durante la instalación.
Como administrador que es puede acceder y modificar (así como destruir) toda la información del
sistema, por lo que hay que evitar en la medida de lo posible trabajar como usuario root.
18
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
0 Parada Finaliza servicios y programas activos, así como desmonta filesystems activos y
para la CPU.
Después, el sistema, según el runlevel escogido, consulta los ficheros contenidos en /etc/rcn.d, donde
n es el número asociado al runlevel, en el que se encuentra una lista de servicios por activar o parar
19
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
• Fichero /var/log/messages: log general del sistema, que contiene los mensajes generados por el
kernel y otros daemons.
• Comando uptime: indica cuánto tiempo hace que el sistema está activo.
• Ficheros /proc: ficheros que utiliza el kernel para almacenar la información que gestiona
vuelca la información que recopila de la máquina, así como muchos de sus datos internos. El
directorio /proc está implementado sobre memoria y no se guarda en disco. Los datos contenidos son
tanto de naturaleza estática como dinámica (varían durante la ejecución).
Una de las características interesantes es que en el directorio /proc podremos encontrar las imágenes
de los procesos en ejecución, junto con la información que el kernel maneja acerca de ellos. Cada
proceso del sistema se puede encontrar en el directorio /proc/pid-proceso, donde hay un directorio
con ficheros que representan su estado. Esta información es útil para programas de depuración, o
bien para los propios comandos del sistema como ps o top, que pueden utilizarla para ver el estado
de los procesos.
Por otra parte, en /proc podemos encontrar otros ficheros de estado global del sistema. Comentamos
brevemente algunos ficheros que podremos examinar:
Fichero Descripción
20
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
3.4.3 Procesos
• Procesos del usuario administrador: en caso de actuar como root, nuestros procesos interactivos o
aplicaciones lanzadas también aparecerán como procesos asociados al usuario root.
• Procesos de usuarios del sistema: asociados a la ejecución de sus aplicaciones, ya sea tareas
interactivas en modo texto o en modo gráfico.
• ps: el comando estándar, lista los procesos con sus datos de usuario, tiempo, identificador de
proceso y línea de comandos usada.
• top: una versión que nos da una lista actualizada a intervalos.
• kill: nos permite eliminar procesos del sistema mediante el envío de señales al proceso.
En las tareas de administración, suele ser necesaria la ejecución a inervalos de ciertas tareas, ya sea
por programar las tareas para realizarlas en horarios menos usados, o bien por la propia naturaleza
periódica de las tareas.
Para realizar este tipo de trabajos “fuera de horas”, como servicios periódicos o programados, hay
diversos sistemas que nos permiten construir un tipo de agenda de tareas:
nohup es quizás el caso más simple utilizado por los usuarios, les permite la ejecución de una
tarea no interactiva una vez hayan salido de su cuenta. Normalmente, al salir de la cuenta, el
usuario pierde sus procesos;nohup permite dejarlos corriendo, a pesar de que el usuario se
desconecte.
at nos permite lanzar una acción para más tarde, programando un determinado instante en el que
va a iniciarse, especificándose la hora (hh:mm) y fecha, o bien si se hará hoy (today) o mañana
(tomorrow).
cron permite establecer una lista de trabajos por realizar con su programación; esta configuración
se guarda en /etc/crontab; concretamente, en cada entrada de este fichero tenemos: minutos y
hora en que se va a efectuar la tarea, qué día del mes, qué mes, qué día de la semana, junto con
qué (ya sea una tarea, o bien un directorio donde estarán las tareas a ejecutar).
21
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
Un daemon particular del sistema (importante) es el daemon Syslogd. Este daemon se encarga de
recibir los mensajes que se envían por parte del kernel y otros daemons de servicios y los envía a un
fichero log que se encuentra en /var/log/messages.
3.4.6 Memoria
Respecto a la memoria del sistema, tendremos que tener en cuenta que disponemos: a) de la
memoria física de la propia máquina, b) memoria virtual, que puede ser direccionada por los
procesos. Se utilizara una zona de intercambio (swap) sobre disco que puede implementarse como
un fichero en el sistema de archivos, pero es más habitual encontrarla como una partición de
intercambio (llamada de swap), creada durante la instalación del sistema.
Para examinar la información sobre memoria tenemos varios métodos y comandos útiles:
• Fichero /etc/fstab: aparece la partición swap (si existiese). Con un comando fdisk podemos
averiguar su tamaño.
• Comando free: informa sobre el estado global de la memoria. Da también el tamaño de la
memoria virtual.
• Comando vmstat: informa sobre el estado de la memoria virtual, y el uso que se le da.
El sistema de archivo de Linux sigue todas las convenciones de Unix, lo cual significa que tiene una
estructura determinada, compatible y homogénea con el resto de los sistemas Unix. Al contrario que
en Windows el sistema de archivos en cualquier sistema Unix no está ligado de una forma directa
con la estructura del hardware, esto es, no depende de si un determinado ordenador tiene 1, 2 o 7
discos duros para crear las unidades c:\, d:\ o m:\.
Todos el sistema de archivos de Unix tiene un origen único la raíz o root representada por /. Bajo
este directorio se encuentran todos los ficheros a los que puede acceder el sistema operativo. Estos
ficheros se organizan en distintos directorios cuya misión y nombre son estándar para todos los
sistema Unix.
/dev Contiene ficheros del sistema representando los dispositivos que estén físicamente instalados
en el ordenador.
22
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
/etc Este directorio esta reservado para los ficheros de configuración del sistema. En este directorio
no debe aparecer ningún fichero binario (programas). Bajo este deben aparecer otros dos
subdirectorios:
/etc/skel Ficheros de configuración básica que son copiados al directorio del usuario cuando se crea
uno nuevo.
/lib Contiene las librerías necesarias para que se ejecuten los programas que residen en /bin
(no las librerías de los programas de los usuarios).
/proc Contiene ficheros especiales que o bien reciben o envían información al kernel del sistema (Se
recomienda no modificar el contenido de este directorio y sus ficheros).
/usr Este es uno de los directorios más importantes del sistema puesto que contiene los
programas de uso común para todos los usuarios. Su estructura suele ser similar a la siguiente:
Existen además de los anteriores otros directorios que se suelen localizar en el directorio
/usr, como por ejemplo las carpetas de los programas que se instalen en el sistema.
/var Este directorio contiene información temporal de los programas (lo cual no implica
que se pueda borrar su contenido, de hecho,
23
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
[Link] Permisos
Otro tema que habrá que controlar en el caso de los ficheros y directorios es el de los permisos que
queremos establecer en cada uno de ellos, recordando que cada fichero puede disponer de la serie
de permisos: rwxrwxrwx que luego detallaremos mas profundamente.
El sistema de impresión de GNU/Linux [está heredado de la variante BSD de UNIX; este sistema se
denominaba LPD (Line Printer Daemon). Éste un sistema de impresión muy potente, ya que integra
capacidades para gestionar tanto impresoras locales como de red. Y ofrece dentro del mismo, tanto el
cliente como el servidor de impresión.
BSD LPD: es uno de los estándares de UNIX, y algunas aplicaciones asumen que tendrán los
comandos y el sistema de impresión disponibles. El sistema LPD es utilizable, pero no muy
configurable, sobre todo en el control de acceso, por eso las distribuciones se han movido a los
otros dos sistemas más modernos.
LPRng: se diseñó básicamente para ser un reemplazo del BSD, por lo tanto, la mayor parte de la
configuración es parecida y únicamente difiere en algunos ficheros de configuración.
CUPS: se trata de una desviación mayor del BSD original, y la configuración es propia. Se
proporciona información a las aplicaciones sobre las impresoras disponibles (también en LPRng).
En CUPS tanto el cliente como el servidor tienen que disponer de software CUPS.
Los usuarios de un sistema GNU/Linux disponen normalmente de una cuenta asociada con sus
datos, junto con el espacio en disco para que puedan desarrollar sus archivos y directorios. Este
espacio está asignado al usuario, y sólo puede ser usado por éste (a no ser que los permisos
especifiquen cosas diferentes.
• La del administrador, con identificador root, que sólo es (o debería ser) utilizada para las
operaciones de administración. El usuario root es el que dispone de más permisos y acceso
completo a la máquina y a los archivos de configuración. Por lo tanto, también es el que más
daño puede causar por errores u omisiones. Es mejor evitar usar la cuenta de root como si
fuese un usuario más, por lo que se recomienda dejarla sólo para operaciones de
administración.
• Cuentas de usuarios: las cuentas normales para cualquier usuario de la máquina tienen los
permisos restringidos al uso de ficheros de su cuenta, y a algunas otras zonas particulares (por
ejemplo, los temporales en /tmp), así como a utilizar algunos dispositivos para los que se le
haya habilitado.
• Cuentas especiales de los servicios: lp, news, wheel, www-data, ... cuentas que no son usadas
por personas, sino por servicios internos del sistema, que los usa bajo estos nombres de
usuario. Algunos de los servicios también son usados bajo el nombre de root.
24
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
La información de los usuarios del sistema está incluida en los siguientes archivos:
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
Cada usuario normal está restringido a sus propios ficheros y datos, y a los de su grupo. Sin
embargo, root tiene acceso completo de lectura, escritura y ejecución a todos los ficheros y
directorios del sistema. Este usuario es conocido como superusuario.
El usuario root tiene la capacidad de producir un gran daño al software y a los ficheros del sistema.
Este Id debe utilizarse con sumo cuidado y exclusivamente para tareas de administración, debiendo
utilizarse otro Id para las tareas rutinarias con la máquina.
El shell proporciona un inductor especial para recordar que se está trabajando como superusuario: #.
El resto del entorno del sistema también es diferente en comparación con el de un usuario normal e
incluso ciertas órdenes actúan de forma diferente cuando son emitidas por el superusuario, ya que
proporcionan capacidades ampliadas.
Aparte del superusuario, también existen agentes para la administración del sistema, y se encargan
de las tareas rutinarias: operaciones, administración y mantenimiento. El root puede delegar parte de
sus privilegios a estos agentes cuando los crea.
La información crítica que controla las identificaciones de los usuarios está mantenida en el fichero de
base de datos /etc/passwd, legible por todos los usuarios pero no es modificable ya que en caso
contrario la seguridad se quebraría fácilmente.
Cada usuario tiene una línea en el fichero de contraseñas, y también son necesarios varios ID de
presentación estándar globales del sistema para el correcto funcionamiento del mismo.
25
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
Este fichero contiene el Id del usuario, el código numérico del Id del usuario, el código numérico del Id
del grupo, un comentario que contiene la dirección del usuario, el directorio propio del usuario y el
nombre del camino completo de presentación del usuario.
Existe también un segundo fichero en el sistema para contener la contraseña cifrada y algunos otros
datos. Este fichero es el /etc/shadow que es legible para root.. Este fichero contiene los Ids del
usuario, sus contraseñas cifradas, un código numérico que describe cuando fue modificada por última
vez la contraseña y el número mínimo y máximo de días requerido entre días entre cambios de
contraseña. Este fichero tampoco es modificable
Respecto a la administración de usuarios y grupos, lo que hemos comentado aquí hace referencia a
la administración local de una sola máquina. En sistemas con múltiples máquinas que comparten los
usuarios suele utilizarse otro sistema de gestión de la información de los usuarios. Estos sistemas,
denominados genéricamentesistemas de información de red, como NIS, NIS+ o LDAP, utilizan bases
de datos para almacenar la información de los usuarios y grupos, de manera que se utilizan máquinas
servidoras, donde se almacena la base de datos, y otras máquinas clientes, donde se consulta esta
información. Esto permite tener una sola copia de los datos de los usuarios, y que éstos puedan
entrar en cualquier máquina disponible.
Podemos comprobar si estamos en un entorno de tipo NIS si en las líneas passwd y group del archivo
de configuración /etc/[Link] aparece compat , si estamos trabajando con los ficheros locales, o
bien nis o nisplus según el sistema con que estemos trabajando.
Un fichero tiene tres grupos de permisos para cada uno de los tres niveles de seguridad: Lectura,
escritura y ejecución para el propietario, para el grupo y para todos los usuarios (world). Cuando se
crea un nuevo fichero, el usuario que lo crea es el propietario del fichero, y su grupo se asigna como
identificador (ID) del grupo. La protección de los archivos en UNIX se maneja por medio de una
cadena de nueve caracteres. Los nueve caracteres se dividen en tres grupos de tres caracteres cada
uno
r: Lectura
w: Escritura
x: Ejecución
Se puede ceder la propiedad del fichero con la orden “chown” y la del grupo con la orden “chgrp”.
Sólo el superusuario o root puede cambiar los permisos de cualquier fichero del sistema
26
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
La orden crypt lee la entrada estándar y escribe en la salida estándar. Si la entrada está en texto
llano, la salida será cifrada. Si la entrada está cifrada la salida será descifrada.
Tiene un estándar de cifrado DES de 56 bits.
Otra herramienta que esta mejor reconocida es el PGP famosa por el correo electrónico. Esta se basa
en sistemas de claves privadas y públicas. Ofrece un nivel de seguridad superior al crypt. Se basa en
un algoritmo simétrico IDEA de clave secreta. Después de añadieron mejoras con el triple DES y
CAST5.
La mejor opción si está buscando la privacidad del sistema de ficheros es que el sistema de cifrado
se encuentre integrado en el sistema y por lo tanto todo el diso duro este cifrado, como lo que
proporcionan sistemas como TCFS y CFS.
El salto tecnológico de los sistemas de escritorio aislados, hasta los sistemas actuales integrados en
redes locales e Internet, ha traído una nueva dificultad a las tareas habituales del administrador: el
control de la seguridad de los sistemas.
La seguridad es un campo complejo, en el cual se mezclan tanto técnicas de análisis, con otras de
detección o de prevención de los posibles ataques, como el análisis de factores “psicológicos”, como
el comportamiento de los usuarios del sistema o las posibles intenciones de los atacantes.
Los ataques pueden provenir de muchas fuentes y afectar desde a una aplicación o servicio, hasta a
algún usuario, o a todos, o al sistema informático entero.
Uno de los problemas ya está en el arranque del sistema. Si el sistema puede arrancarse de
disco o CD, un atacante podría acceder a los datos de una partición Linux (o también Windows)
tan sólo con montar el sistema de ficheros y podría colocarse como usuario root sin necesidad de
conocer ninguna contraseña. En este caso, se necesita proteger el arranque del sistema desde la
BIOS, por ejemplo, protegiendo el acceso por contraseña, de manera que no se permita el
arranque desde CD o disquete.
El siguiente paso es proteger el bootloader, ya sea lilo o grub, para que el atacante no pueda
modificar las opciones de arranque del kernel o modificar directamente el arranque (caso de
grub). Cualquiera de los dos puede protegerse también por contraseñas.
En grub, el fichero /sbin/grub-md5-crypt pide la contraseña y genera una suma md5 asociada.
Después, el valor obtenido se introduce en
/boot/grub/[Link]. Bajo la línea timeout, se introduce
password --md5 suma-md5-calculada
Otro tema relacionado con el arranque es la posibilidad de que alguien que tenga acceso al
teclado reinicie el sistema, debido a que si se pulsa CTRL+ALT+DEL, se provoca una operación
de shutdown en la máquina. Este comportamiento viene definido en /etc/inittab, con una línea
como
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
27
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
Otras posibles actuaciones consisten en obligar a los usuarios a cambiar la contraseña con
frecuencia (el comando change puede ser útil), imponer restricciones en el tamaño y el contenido
de las contraseñas, y validarlas contra diccionarios de términos comunes.
Otro problema importante son algunos permisos especiales que son utilizados sobre ficheros o
script.
El bit sticky se utiliza sobre todo en directorios temporales en que queremos que en algunos
grupos (a veces no relacionados), cualquier usuario pueda escribir, pero sólo pueda borrar bien el
propietario del directorio, o bien el propietario del fichero que esté en el directorio. Un ejemplo
clásico de este bit, es el directorio temporal /tmp. Hay que vigilar que no haya directorios de este
tipo, ya que pueden permitir que cualquiera escriba en ellos, por lo que habrá que comprobar que
no haya más que los puramente necesarios como temporales. El bit se fija con el comando
(chmod +t dir), y puede quitarse con -t. En un ls aparecerá como un directorio con permisos
drwxrwxrwt (fijaos en la última t).
El bit setuid permite a un usuario ejecutar (ya sea un ejecutable o un shell script) con los permisos
de otro usuario (como por ejemplo de root). El bit se coloca mediante chmod +s. En el caso de
visualizar con ls, el fichero aparecerá con –rwSrw-rw (fijaos en la S).
Los módulos PAM son un método que permite al administrador controlar cómo se realiza el
proceso de autentificación de los usuarios para determinadas aplicaciones. Los módulos PAM
(las bibliotecas) suelen estar en el directorio /lib/security. Y la configuración de PAM está presente
en el directorio /etc/pam.d, donde aparece un fichero de configuración de PAM por cada
aplicación que está usando módulos PAM.
Como clientes de servicios, básicamente tenemos que asegurar que no pongamos en peligro a
nuestros usuarios (o se pongan en peligro solos) por usar servicios inseguros. Evitar el uso de
servicios que no utilicen cifrado de datos y contraseñas (ftp, telnet, correo no seguro). Utilizar en este
caso técnicas de conexión cifradas, como SSH y SSL.
Otro punto importante se refiere a la posible sustitución de servidores por otros falsos, o bien a
técnicas de secuestro de sesiones. En estos casos tenemos que disponer de mecanismos de
autentificación potentes que nos permitan verificar la autenticidad de los servidores (por ejemplo SSH
y SSL tienen algunos de estos mecanismos).
28
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
IDS serían: Logcheck (verificación de logs), TripWire (estado del sistema mediante sumas md5
aplicadas a los archivos), AIDE (una version libre de TripWire), Snort (IDS de verificación de estado
de una red completa).
Los TCP wrappers son un software que actúa de intermediario entre las peticiones del usuario de
servicio y los daemons de los servidores que ofrecen el servicio. Muchas de las distribuciones vienen
ya con los wrappers activados y podemos configurar los niveles de acceso. Los wrappers se suelen
utilizar en combinación con inetd o xinetd, de manera que protejan los servicios que ofrecen
Un firewall (o cortafuegos) es un sistema o grupo de sistemas que refuerza las políticas de control de
acceso entre redes. El kernel Linux (a partir 2.4) proporciona un subsistema de filtrado denominado
Netfilter que proporciona características de filtrado de paquetes y también NAT (Network Address
Translation). Este sistema permite usar diferetes interfaces de filtrado, entre ellas, la más usada se
denomina IPtables. El comando principal de control es iptables. Algunas herramientas incluidas con
las distribuciones son:
lokkit: en Red Hat, muy básico. También existe una versión gráfica llamada gnome-lokkit.
A continuación, comentamos brevemente algunas herramientas, así como algunos usos que pueden
utilizar:
TripWire: esta herramienta mantiene una base de datos de sumas de comprobación de los
ficheros importantes del sistema. Puede servir como sistema IDS preventivo. Nos sirve para
“tomar” una foto del sistema, poder comparar después cualquier modificación introducida y
comprobar que éste no haya sido corrompido por un atacante
Nmap: es una herramienta de escaneo de puertos para redes grandes. Puede escanear
desde máquinas individuales a segmentos de red.
Ethereal: es un analizador de protocolos y captura el tráfico de la red (es un sniffer).
Snort: es un sistema IDS que permite realizar análisis de tráfico en tiempo real y guardar logs
de los mensajes. Permite realizar análisis de los protocolos, búsquedas por patrones
(protocolo, origen, destino, etc.).
Nessus: es un detector de vulnerabilidades conocidas y asesora sobre cómo mejorar la
seguridad para las detectadas.
[Link] Logs
Dando una visión sobre los ficheros de logs podemos hacernos una idea rápida del estado global del
sistema, así como de las últimas ocurrencias, y detectar accesos (o intentos) indebidos. Hay que
tener cuidado, ya que los logs, si ha habido una intrusión real, pueden haber sido limpiados o
falseados. La mayoría de archivos de log residen en el directorio /var/log.
Muchos de los servicios pueden poseer logs propios, que normalmente se establecen en la
configuración (mediante el correspondiente fichero de configuración). La mayoría suelen utilizar las
facilidades de log incorporadas en el sistema Syslog, mediante el demonio Syslogd. Su configuración
reside en /etc/[Link]. Esta configuración suele establecerse por niveles de mensajes: existen
diferentes tipos de mensajes según su importancia. Normalmente suelen aparecer niveles debug,
info, err, notice, warning, err, crit, alert, emerg, en que más o menos ésta sería la ordenación de
importancia de los mensajes (de menor a mayor). Normalmente, la mayoría de los mensajes se
dirigen al log /var/log/messages, pero puede definirse que cada tipo vaya a ficheros diferentes y
también se puede identificar quién los ha originado; típicamente el kernel, correo, news, el sistema de
autentificación, etc.
29
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
Linux sigue el mismo esquema de seguridad que Unix, pero dado su carácter “libre” se han
desarrollado en este entorno productos que proporcionan capacidades adicionales y herramientas a
los especialistas en seguridad que las suministradas por defecto. Entre los numerosos productos que
existen hoy en día en el mercado podemos destacar:
Kali Linux
Back Box
ArchAssault
Knoppix STD
Kali Linux: es una versión personalizada de Debian con un portfolio inmenso de herramientas de
penetración o analisis forense.
Knoppix STD (Security Tools Distribution) es una versión personalizada de Knoppix, una
distribución de Linux pensada para ser ejecutada directamente desde el CD-ROM ("Live CD").
Cuando se arranca la máquina con Knoppix STD, no se realiza ningún tipo de modificación en la
configuración del ordenador.
Knoppix STD incluye un gran número de herramientas de interés para la seguridad, todas ellas
preparadas para ser ejecutadas directamente desde el CD. Las herramientas se dividen en varias
categorías:
LocalAreaSecurity: Esta es otra distribución "LiveCD", de pequeño tamaño (185 MB, pensada
para instalarse en un CD pequeño, de la medida de una tarjeta de crédito). También está basada en
Knoppix y utiliza el núcleo 2.4.20.
LocalAreaSecurity está especializada en la realización de pruebas de verificación de la seguridad y
en las pruebas de penetración, incluyendo un gran número de herramientas especializadas: sniffers,
cifrado, monitorización de redes, detección de información oculta, obtención de información, etc.
R.I.P. (Recovery Is Posible) Linux: Se trata de una distribución de Linux pensada por recuperar
datos de sistemas de ficheros defectuosos. Merced a esta distribución, se puede recuperar los datos
de una máquina con un disco duro defectuoso que Windows se negaba a reconocer ni tampoco sabía
como reparar. Con R.I.P. Linux fue posible no tan solo montar y acceder a la información, sino
transferirla por la red a otro sistema.
Es un sistema para arranque desde CD o unidad de disco, para rescate, respaldo o mantenimiento
basado en Slackware. Tiene soporte para muchos tipos de sistemas de archivos (Reiserfs, Reiser4,
ext2/3, iso9660, UDF, XFS, JFS, UFS, HPFS, HFS, MINIX, MS DOS, NTFS, y VFAT) y contiene un
montón de herramientas para recuperación del sistema. También da soporte a IDE/SCSI/SATA,
PCMCIA, RAID, LVM2, así como para redes Ethernet, DSL, de cable, PPP y PPPOE.
WARLINUX: Esta distribución de Linux, en modo texto, está especialmente pensada para la
verificación de la seguridad de las redes inalámbricas. Funciona directamente desde el CD y permito
identificar las redes inalámbricas que están al alcance del ordenador y la realización de auditorios de
seguridad y valoración de su nivel de seguridad.
FIRE: Esta versión de Linux incluye las herramientas necesarias para la realización de valoraciones
de seguridad, respuesta a incidentes de seguridad, pruebas de penetración y análisis forense de
sistemas y recuperación de datos en sistemas Windows, Solaris (SPARC) y Linux (x86).
Adicionalmente, FERIO incluye un programa para la detección de virus (F-Prot).
30
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
Muchos de los servicios de red requieren que haya ciertos procesos demonios ejecutándose en la
máquina servidora. Estos demonios son típicamente inicializados cuando la máquina se arranca con
init 3. Además de estos demonios normales, algunas de las órdenes de acceso remoto requieren
demonios adicionales.
La dirección Internet es un número de cuatro partes que define la máquina con una dirección lógica
que debería de ser única en todo el mundo. Esta dirección es asignada por el administrador de
acuerdo aun esquema jerárquico de numeración mundial.
La dirección física hardware viene determinada por el hardware del controlador Ethernet, y también
es única en el mundo. Ésta es visualizada cuando se arranca la máquina
Todas las órdenes de comunicación por red utilizan nombres de máquinas lógicos que son lo
nombres hosts, aunque internamente la máquina utilice un esquema de direccionamiento numérico
cuando se comunica con otras. Esta dirección numérica es la dirección Internet. El fichero
/etc/inet/hosts contiene la correspondencia entre las dos formas.
Para utilizar RFS hay que configurar un dominio y la aparición de la máquina en el dominio. Un
dominio es una partición separada de una red mayor, y está controlado por demonios que corren en
un servidor de nombres para ese dominio. Si se está comenzando un nuevo dominio, la máquina
puede ser un servidor de nombres primario o secundario, o una máquina normal que puede
31
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
32
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
4. Interfaz usuario
La interfaz de usuario sistema – operativo (usuario – máquina) es la forma y utilidades que facilitan al
usuario su interacción con el sistema operativo. Existen dos maneras de interaccionar con el sistema
operativo: En modo comando a través de shell, o en modo gráfico a través de gestores de ventanas y
escritorio.
Tradicionalmente Unix ha proporcional el shell como interfaz por defecto. Posteriormente adoptó en
sistema de ventanas X proporcionando un entorno gráfico WIMP (Windows, icons, mouse, pointer).
Con la llegada de Linux y el desarrollo del software libre, se fueron implementando en las distintas
distribuciones gestores de ventanas más avanzados, librerías de desarrollo y entornos de escritorio,
que nada tiene que envidiar a Microsoft Windows.
En lo sucesivo vamos a ver con un poco más de detalle cada uno de estos entornos.
Edición de órdenes
Historia de órdenes
Alias
La historia de órdenes y la edición funcionan juntas de modo que se puede recordar una orden
previamente ejecutada con la característica de historia modificándola ligeramente para una nueva
invocación y luego ejecutar la orden editada como si hubiera sido vuelta a escribir. Los alias
proporcionan un modo eficiente de personalizar las líneas de órdenes que se utilicen más
frecuentemente.
Una vez invocada la shell correspondiente, se pueden usar características que la hacen parecida a un
lenguaje de programación:
Variables
Estructuras de control: if, while, etc.
Subprogramas
Paso de parámetros
Manejo de interrupciones
33
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
Estas características le proporcionan capacidad para diseñar herramientas propias. Los archivos de
órdenes se denominan procedimientos shell, o archivos shell o guiones shell (scripts en ingles). Estos
archivos generalmente tienen la extension .sh, y empiezan con el llamado shebang que basicamente
indica el shell que tendra que interpretar ese script.
#!/bin/ksh
Todo comando o proceso lleva asociado 3 ficheros estándar: stdin, stdout, stderr. Es posible
redireccionar el origen o el destino de estos ficheros, secuenciar tareas (;), encolar tareas de modo
que la salida de una sea la entrada de la siguiente (|), ejecutar multiproceso (&).
El shell de Korn ofrece un conjunto mayor de características mejoradas que el shell C y la edición de
órdenes y las características de historia son más fáciles de aprender y de usar. Es exactamente igual
al shell de Bourne en su característica básica pero mucho más rápida y eficiente. Es un
superconjunto del shell de Bourne, cualquier guión o línea del shell que sea aceptable al shell de
Bourne también debería de funcionar con el de Korn.
El ksh almacena cada orden en una lista de historia. Las órdenes de la historia están numeradas
secuencialmente y con un número de secuencia de cada orden visualizado por el operador “!”. Por
defecto en la lista de la historia se guardan las 128 órdenes más recientes.
Otra característica importante del ksh es el uso de alias. Los alias permiten cambiar el entorno de ksh
de modo que los nombres de las órdenes que se introduzcan en la línea de orden sean modificados
por ksh a otras órdenes antes de que sean ejecutadas. Se puede modificar permanentemente el
repertorio de órdenes para utilizar órdenes personalizadas, pero seguir usando los nombres de
órdenes normales. Por ejemplo, para la orden “rm -i” borrar un fichero solicitando confirmación, se
puede crear el alias “rm” (utilizado para borrar sin confirmación) de tal forma que cuando se ejecute
éste último, el ksh ejecutará “rm -i”. Esta sustitución de alias por los nombres de orden se llama
expansión de alias
El ksh introduce mejoras para potenciar la programación shell. Sin embargo, éstas no son
compatibles con el shell de Bourne. Las mejoras introducidas son:
Operadores aritméticos
Arrays
Mejoras de solicitud de entrada y salida
Procesamiento de variables del entorno
La shell-C difiere significativamente del de Bourne pero está más ampliamente disponible en
diferentes versiones UNIX. Su sintaxis de programación es supuestamente parecida a la del lenguaje
C. El shell C no soporta funciones shell.
34
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
El csh incluye soporte para la historia de órdenes y para la edición de órdenes desde la lista de
historia. Sin embargo, es difícil editar un orden que esté siendo actualmente introducida, una que no
se encuentra en la lista de historia. La variable “history” define el tamaño de la lista de historia.
El csh mantiene la lista de historia internamente, no existe un fichero de historia como en el ksh.
El csh dispone de una facilidad alias que permite que las órdenes sena modificadas antes de ser
ejecutadas. La orden “alias” sirve para crear un alias.
BASH, Bourne Again Shell, una versión mejorada del shell creado en la universidad de Bourne y que
se considera un estándar dentro de Unix.
Si en este shell escribimos una palabra, el shell comprobara primero si es un comando interno, y lo
ejecutara, o después buscara, a traves de una serie de directorios predefinidos un archivo con ese
nombre, y si es ejecutable lo ejecutara, pasandole el control de la session hasta que le programa
acabe y volvamos al shell en espera de otra orden.
Hay que destacar que no sirve que un programa este en el directorio en el que estamos, ya que por
seguridad, el shell no busca el programa en el directorio actual, solo en una lista de sitios (directorios)
donde sabe que hay programas seguros, evitando así una de las formas de entrada de virus.
Para saber por que sitios busca podemos escribir set | grep PATH que nos mostrara la lista separada
por “:”.
Inicialmente Unix solo era utilizado con terminales texto hasta que en 1984, el MIT dentro del
proyecto ATHENA, crea un entorno gráfico distribuido: X Windows System independiente del sistema
operativo que se llamó X-Windows. Este entorno fue mantenido por el X Consorcium hasta 1996.
Desde entonces se encarga The Open Group ( [Link] ). La versión actual del estándar es X11,
es la X11R7.7 (2012) .
Las especificaciones X-Windows definen el método por el cual se pueden comunicar las aplicaciones
con el hardware gráfico. También establece un conjunto de funciones de programación bien definidas
que podrán ser llamadas para realizar la manipulación básica de las ventanas.
La definición básica de cómo se dibuja una ventana y de cómo se manejan los clics del ratón no
incluye la definición de cómo se deberían ver las ventanas. En realidad X-Windows en su estado
natural no tiene apariencia real. El control de la apariencia se pasó a un programa externo
denominado gestor de ventanas. El gestor de ventana se preocupa de dibujar los bordes, usar el
color y hacer que el entorno sea agradable a la vista. El gestor de ventana solo se requiere para usar
las llamadas estándares al subsistema X-Windows para dibujar sobre la pantalla.
Sin embargo la dificultad de programar en este entorno propició la aparición, a finales de los 90, de
dos grupos independientes que aportaron soluciones a los problemas de X-Windows: GNOME y
KDE. KDE ofrece un gestor de ventanas nuevo y las bibliotecas necesarias para escribir aplicaciones
de un modo mucho más fácil. GNOME ofrece un marco general para el resto de gestores de ventana
35
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
y para las aplicaciones que trabajan con ellos. Cada uno tiene una idea diferente de cómo deben
funcionar las cosas, pero debido a que trabajan por encima de X-Windows, no son enteramente
incompatibles.
Es un sistema de gráficos distribuidos basado en el modelo cliente / servidor: Xserver, Xclient. Las
aplicaciones gráficas se ejecutan el servidor y los resultados se visualizan en el cliente. Por en cima
del servidor X está el gestor de ventanas que define la apariencia final y recoge y procesa las
entradas del usuario a través del ratón, teclado, etc.
Incorporan un toolkit: Objetos gráficos (widgets) y APIs. La API incorporada está definida para los
programadores, pero es difícil de usar (Xlib)
Linux utiliza una implementación libre: Xfree86 que es bastante completa y está optimizada.
Aprovecha el hardware 3D mediante DRI ( Direct Rendering Infraestructure ).
Por encima del gestor de ventanas se situaría el gestor de escritorio, y por encima de éste los temas.
En resumen, se puede decir que tenemos un modelo de capas, donde las funciones de cada capa
pueden llegar a solaparse:
Servidor X – Gestor de ventanas – Gestor de escritorio – Temas.
A la hora de gestionar un X Windows System, existe una fuerte dependencia del gestor de ventanas
utilizado y del sistema de escritorio. Los tres paquetes más importantes de Linux en este campo son:
fvwm, KDE y GNOME.
36
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
Un gestor de ventanas se encarga de cómo los programas windows son visualizados en la pantalla.
También ofrecen la opción de ejecutar programas a través de menús. La influencia del gestor de
ventanas puede ser vista en el diseño de las mismas
Las modernas librerías para programación X soportan los temas ( themes ). Ésta es una opción para
variar la presentación de los elementos estándar. Los themes son soportados por arios gestores de
ventanas y su popularidad se debe principalmente a KDE y GNOME.
KDE utiliza como gestor de ventanas uno propio el KDE Windows Manager. GNOME no posee gestor
de ventanas propio, pero puede ser usado con otros, siempre y cuando éstos se ajusten a la norma
GNOME. El más popular gestor de ventanas que trabaja con GNOME es Enlightenment, que es que
por defecto RedHat distribuye.
37
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
KDE y GNOME son programas de aplicación sobre Linux. Ni el gestor de ventanas ni el escritorio
tienen influencia sobre los programas que pueden ejecutarse en un entorno X. El único prerrequisito
para la ejecución de esos programas está en el conjunto de librerías necesarias que deben ser
instaladas.
Tanto KDE como GNOME han inspirado el desarrollo de nuevos programas de aplicación. Los
problemas surgen cuando se intenta instalar programas que no han sido suministrados en la
correspondiente distribución.
Otro de los problemas es la falta de estabilidad. KDE y GNOME fueron desarrollados muy deprisa los
que origina que muchos programas no tengan la misma estabilidad que sus predecesores. A pesar de
esto, las distribuciones de KDE y/o GNOME han ofrecido mayor facilidad de usos que incluso
Microsoft Windows
38
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
KDE está basado en Qt, una librería comercial de la Trolltech Company. Esta librería puede ser
usada libremente en proyectos de software libre; sin embrago, en comparación con licencias
GPL/LGPL (GNOME está sujeto a esta licencia ) tenía demasiadas restricciones. Los desarrolladores
de KDE argumentaron que la distribución de Qt era insuficiente. RedHat rehusó distribuir KDE debido
a los problemas con el copyright.
Esta situación supuso un peligro para KDE con lo que Trolltech anunció que Qt obtendría una licencia
QPL ( Q Public License ). Aunque esta licencia es más restrictiva que LGPL, al menos asegura que
KDE permanecerá libre en el futuro y podrá ser modificado sin permiso de Trolltech. En la actualidad
KDE puede ser ejecutado tanto en Linux como en UNIX
KDE o entorno de escritorio K, es un entorno de escritorio ligeramente distinto de los gestores típicos
de ventanas. En lugar de describir cómo se ve la interfaz, KDE proporciona un conjunto de
bibliotecas que, si se usan, permiten a una aplicación mejorar algunas características especiales que
ofrece el gestor de ventanas (soporte de pinchar y arrastra, soporte de impresión estandarizado, etc.).
KDE ofrece al programador una biblioteca mucho más sencilla de usar que el trabajo directo con la
interfaz X-Windows. Una de las herramientas más potentes es el escritorio virtual, lo que permite
tener varias pantallas efectivas al mismo tiempo.
39
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
4.3.2 Panel
El Panel ( KDE panel for short o también llamado kicker) es uno de los elementos de control central
de KDE. Asiste en la ejecución de programas, permite el cambio entre programas que se están
ejecutando, y el cambio entre diferentes escritorios.
Este elemento, también llamado Kcontrol, permite la configuración de componentes importantes del
KDE como por ejemplo:
Se encarga de ajustar la apariencia del KDE panel. Estos ajustes se pueden hacer vía menús de
contexto o a través del centro de control KDE. Se puede modificar desde la posición del panel KDE y
la barra de herramientas hasta la forma de los iconos, pasando por el menú de inicio y las entradas
existentes
40
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
Normalmente, cuando se arrancan los programas, éstos se visualizan en una ventana separada; sin
embargo, hay ciertos casos en los que tiene sentido que la salid de un programa aparezca
directamente sobre un icono del panel. Configurando el icono de esta forma, al ejecutar el programa,
sus resultados no aparecerán en una ventana independiente, sino como una parte del panel.
Las herramientas del panel son pequeños programas que visualizan la información de estatus, por
ejemplo: Cuándo un e-mail ha sido recibido, carga de la CPU, etc. Es similar a la información de
estatus que aparece en la parte inferior derecha en el caso de Microsoft Windows.
KDE maneja por defecto cuatro escritorios virtuales pudiéndose acceder a cada uno de ellos a través
del KDE panel. El máximo número de escritorios permitidos es ocho, pudiendo ser este número
configurado por el centro de control.
KDE incorpora otra serie de programas que pueden ser usado en el entorno KDE o de forma
independiente bajo UNIX – Linux. Entre los más importantes están:
Kdehelp: Sistema de ayudas
Kppp: Configuración del protocolo ppp
Kmail: Correo electrónico
Kfm: Gestión de ficheros parecido al explorador de Microsoft Windows
Kghostview: Visor postscript
Klix: Procesador de texto
4.4 GNOME
La primera versión del proyecto GNOME nace en el 1997. La versión de 2014 es la actualmente la
versión 3.14
GNOME (GNU Network Object Model Environment) al igual que KDE ofrece un entorno de escritorio
completo y un marco de aplicaciones para desarrollo tan bueno como de fácil uso. A diferencia de
KDE, GNOME no incluye en su proyecto un gestor de ventanas, proporciona bibliotecas de
desarrollo y características de gestión de sesión que nosotros, como usuarios, no vemos. En lo más
alto de su estructura está un gestor de ventanas que muestra la apariencia general del escritorio. El
gestor de ventana por defecto es Enlightenment, pero hay disponibles varias opciones más.
Desde el punto de vista del desarrollador, GNOME define sus interfaces con el resto del mundo
mediante tecnología CORBA. Cualquier sistema de desarrollo que pueda comunicarse usando
CORBA puede utilizarse para desarrollar aplicaciones compiladas en GNOME.
GNOME está basado en la librería Gtk ( Gimp Toolkilt ). Esta librería fue desarrollada inicialmente
como interfase de usuario de Gimp ( Programa de tratamiento de imágenes ). Actualmente Gtk es
realmente software libre y está sujeto a la licencia LGPL.
41
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
A diferencia de KDE, GNOME no proporciona distintas configuraciones para diferentes idiomas, sino
que éstos se configuran a través de las distintas variables de entorno.
Gestor de escritorio
Panel GNOME
Tiene la responsabilidad de visualización y gestión de los iconos visibles del escritorio. Permite las
utilización de drivers que crean iconos para todos los dispositivos, permitiendo a los usuarios montar (
mount ) y desmontar ( umount ) dispositivos
Si adicionalmente se utiliza como Enlightenment como gestor de ventanas, permitirá además, utilizar
varios escritorios virtuales. Permite la utilización de las llamadas desktop areas por cada escritorio,
proporcionando un máximo de flexibilidad.
Es la unidad central de control. Proporciona el menú de inicio y los applets que muestran sus salidas
en pequeñas áreas del panel. Si un panel no es suficiente se pueden crear otros adicionales
El menú de inicio, que es además editable, contiene una colección de los programas más importantes
de GNOME (similar al menú de inicio de Microsoft Windows).
Los applets son programas embebidos que son ejecutados en el panel. La configuración más
corriente proporciona:
Pager: Gestiona el tamaño de la imagen para todos los escritorios. Permite cambiar
fácilmente entre ventanas y escritorios
QuickLaunch: Permite la ejecución fácil y rápida de los programas más usado salvando el
path de la aplicación a través de la jerarquía de menús ( Parecido al favoritos de
Microsoft Windows )
MinComander: Permite la introducción de comandos y su almacén en un histórico
Reloj
42
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
CONTENIDO
43
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
PREGUNTAS DE TEST
PREGUNTAS DE TEST
44
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
PREGUNTAS DE TEST
13. ¿Cuál de Ios siguientes caracteres no puede formar parte de un nombre de archivo o
directorio?
a) -.
b) _•
c) &.
d) Ninguno de ellos es correcto.
14. ¿Que representa la barra / en Linux?
a) La operación de dividir.
b) Equipo en red.
c) Directorio padre.
d) Directorio raíz.
15. ¿Que parte del sistema de archivos almacena un programa que utiliza el sistema para
gestionar el resto de las partes del mismo?
a) Bloque de carga.
b) La tabla de inodos.
c) Superbloque.
d) Zona de datos.
16. ¿Que sistema o sistemas de archivos necesita Linux para funcionar?
a) Solamente un sistema del tipo ext.
b) Solamente un sistema de archivo swap.
c) Solamente un sistema de archivos reiser.
d) Son correctas 1 y 2.
17. ¿En que directorio tenemos los directorios personales de todos los miembros del sistema?
a) /etc/dev.
b) /root.
c) /gnome.
45
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
PREGUNTAS DE TEST
d) /home.
46
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
SOLUCIONES A LAS PREGUNTAS DE TEST
PREGUNTA SOLUCIÓN
1 D
2 A
3 C
4 A
5 D
6 D
7 A
8 B
9 D
10 D
11 D
12 C
13 C
14 D
15 A
16 D
17 D
18 D
19 B
20 C
47
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.
BIBLIOGRAFÍA
BIBLIOGRAFÍA BÁSICA
1. Unix System V. A practical guide. Sobell, Mark G. Ed. Addison – Wesley. 1995
2. Manual de administración de Linux
3. Sistemas operativos modernos. Tannenbaum. Andrew. Ed. Prentice Hall. 1993
4. The design of UNIX operating system. Bach, Maurice J. 1986
5. Sistemas operativos monopuesto. Francisco Javier Munoz Lopez. 2013. McGrawHill
6. Administración avanzada de GNU/Linux. Josep Jorba Esteve y Remo Suppi Boldrito. Escuela
Universitaria de Informática (Universidad Autónoma de Barcelona, España).
7. Aprenda LINUX como si estuviera en primero. Escuela Superior de Ingenieros Industriales de San
Sebastián. UNIVERSIDAD DE NAVARRA
8. MANUAL DE LINUX. Álvaro Alea Fdz.
Nota. La Wikipedia está llena de referencias e imágenes que ilustran muchos de los apartados de
este tema. Además, hay muchos libros de texto generales que cubren los sistemas operativos;
incluyendo Stallings, Nutt y Tanenbaum.
48
Tema 57. Sistemas operativos UNIX-LINUX. Fundamentos, administración, instalación, gestión.