Cur So Linux

Embed Size (px)

Citation preview

Configuracin de Servidor RedHat/CentOS

Roy Eddekel Alvear Aguirre 2011 - CC BY-SA 3.0-1

tem 1. Instalacin y Configuracin de Sistema Operativo LinuxPasos previos a la InstalacinLos pasos previos consisten bsicamente en los siguientes puntos: 1. Descargar el archivo iso del CD/DVD de instalacin. 2. Verificar el iso descargado, chequear que no se encuentra corrupto, para ello en Linux se ejecuta le comando md5sum archivo.iso 3. Grabar el CD/DVD 4. Comprobar que el equipo donde se instalar el sistema cumpla con los requisitos mnimos de Disco, RAM y Procesador para la instalacin, estos parmetros dependern de la distribucin deseada y de los servicios que se deseen instalar. 5. Recopilar informacin sobre el Hardware del equipo, como por ejemplo Tarjetas de Red, Tarjeta de Video, perifricos que se conectarn cono impresora, etc. 6. Conocer e tipo de red a la cual nos conectaremos, en caso de IP fija se debe averiguar dicha IP, Mascara de red, Puerta de enlace y DNS. En caso de red de marcado, Nombre de usuario, contrasea de conexin PPPoE. 7. Tener configurada la BIOS para iniciar desde el medio de instalacin (CD/DVD).

Instalando el SistemaBsicamente existen dos mtodos de instalar el sistema con nuestro CD/DVD, estos mtodos no son nicos, pero si los ms usuales.

Modo GrficoPara instalar en modo grfico en idioma espaol debemos colorar el DVD en la unidad de lectura y escribiremos en la pantalla inicial linux lang=es para comenzar con la instalacin en espaol.

tem 1. Instalacin y Configuracin de Sistema Operativo Linux - 2

Paso siguiente el sistema evaluar las unidades de disco para comprobar que se encuentra bien grabada, es recomendable chequear el disco si ste no se ha chequeado previamente o si ha sufrido algn dao menor producto de una cada o similar.

Finalizado este paso se comprobar que los controladores cargados en la instalacin soporta la interfaz grfica de video de la tarjeta actual, en caso de ser favorable comenzar la instalacin modo grfico con una ventana de bienvenida.

tem 1. Instalacin y Configuracin de Sistema Operativo Linux - 3

Paso siguiente se debe seleccionar el tipo de teclado que se utilizar en el terminal conectado al sistema, en nuestro caso es comn encontrar teclado espaol y teclado latinoamericano. Se pueden diferenciar fcilmente por la posicin de la @, cuando se encuentra a la derecha de 2 se trata de un teclado espaol, cuando se encuentra a la derecha de la Q se trata del latinoamericano.

El paso siguiente es la seleccin del disco y el espacio de disco con que se trabajarn las particiones, es recomendable en el caso de un servidor trabajar con el diseo personalizado y seguir las recomendaciones hechas por RedHat Enterprise.

tem 1. Instalacin y Configuracin de Sistema Operativo Linux - 4

Las particiones dependern bastante del tipo de servidor a crear, sin embargo las recomendaciones de RedHat son las siguientes: La SWAP o memoria virtual debe ser del doble de la memoria RAM /boot debe ser una particin aparte de 100M aprox. / no debera superar los 5GB

Paso siguiente se recomienda crear una contrasea al sector del GRUB que es quien gestiona el Arranque de Linux, de esta forma se dificulta que alguien que tenga acceso fsico entrar como root.

tem 1. Instalacin y Configuracin de Sistema Operativo Linux - 5

El siguiente paso nos permite configurar la conexin de red y el nombre del equipo. De forma predeterminada IPv4 lo obtendr a travs de DHCP e IPv6 de forma Automtica.

Lo siguiente es configurar la hora del sistema, para un servidor es recomendable siempre manejar la hora en UTC.

tem 1. Instalacin y Configuracin de Sistema Operativo Linux - 6

El siguiente paso es indicar la contrasea de administracin o contrasea de root, se recomienda elaborar una contrasea con caracteres especiales y caracteres alfanumricos incluyendo maysculas y minsculas, como por ejemplo: MCeSS-52K11 donde cada uno de sus caracteres se les puede dar un significado fcil de recordar: Mi Clave es Super Segura mayo 2011

El siguiente paso es la eleccin de software, es recomendable en un servidor escoger cada uno de sus paquetes a mano y as optimizar el espacio en disco y la cantidad de servicios que arranquen de forma automtica, para ello seleccionaremos Personalizar ahora.

tem 1. Instalacin y Configuracin de Sistema Operativo Linux - 7

En la personalizacin se software podemos ver agrupados los programas segn su funcionalidad, una vez que hemos seleccionado los servicios y utilidades que necesitaremos, pasaremos al paso siguiente en donde el instalador comprobar automticamente las dependencias de nuestra seleccin.

Finalmente procedemos a realizar la instalacin con cada una de las opciones seleccionadas en los pasos anteriores.

tem 1. Instalacin y Configuracin de Sistema Operativo Linux - 8

Al comenzar la instalacin realizar varios pasos, entre los que podemos enumerar los siguientes: Formatear las unidades de disco y asignacin de las particiones

Copiar el sistema base e iniciar el proceso de instalacin

Instalar los programas seleccionados a disco

Este proceso demorar entre 15 minutos a 1 hora dependiendo de la cantidad de servicios instalados y de las caractersticas del Hardware.

tem 1. Instalacin y Configuracin de Sistema Operativo Linux - 9

Una vez terminado el proceso de instalacin se ver la siguiente ventana que solicitar reinicia el equipo.

Cuando se reinicie el servidor, debera ver en pantalla la solicitud de inicio de sesin tpica de los sistemas UNIX/Linux en donde en el encabezado aparece nuestro sistema instalado, la versin del kernel y la solicitud de login.

Se recomienda que los servidores funcionen en modo texto bsicamente por: Mayor seguridad al reducir el rea de ataque. Mayor Performance al no utilizar recursos en interfaz grfica. La configuracin del sistema se realiza a modo texto.

tem 1. Instalacin y Configuracin de Sistema Operativo Linux - 10

Modo TextoLa instalacin a modo texto es idntica a la grfica, con excepcin de la interfaz, cada uno de sus pasos es el mismo, aunque suele ser algo ms lenta debido a que la seleccin de los tem se realiza en base a tabulador, barra de espacio y enter. Para seleccionar la instalacin en modo texto, se debe escribir en la pantalla inicial linux text lang=es

Configuracin de ServiciosLa configuracin de servicios es recomendable hacer la primer vez que ingrese al sistema, se puede realizar a travs del comando setup, el cual se invoca una vez iniciada la sesin en el sistema.

Se recomienda revisar los Servicios del sistema y detener el llamado automtico de los servicios no utilizados, como por ejemplo el de Bluetoot.

tem 1. Instalacin y Configuracin de Sistema Operativo Linux - 11

tem 2. Instalacin de softwareLa instalacin se software en los sistemas derivados de RedHat se hace a travs de rpm (RPM Package Manager) o desde yum (Yellowdog Updater Modified). A continuacin se explican ambos comandos y su modo de uso.

RPMRPM es un potente Administrador de paquetes, que se puede utilizar para construir, instalar, consultar, verificar, actualizar y eliminar paquetes de software individuales. Un paquete se compone de un archivo de archivos y metadatos que se utilizan para instalar y borrar los archivos de archivo. El metadatos incluyen scripts de ayuda, los atributos de archivo, e informacin descriptiva sobre el paquete. Los paquetes vienen en dos variedades: los paquetes binarios, que se utiliza para encapsular el software a instalar, y la fuente de los paquetes, que contienen el cdigo fuente y la receta necesaria para producir paquetes binarios.

Sintaxis del comando rpmConsultar Y Verificar Los Paquetesrpm {-q|--query} [select-options] [query-options] rpm {-V|--verify} [select-options] [verify-options] rpm --import PUBKEY ... rpm {-K|--checksig} [--nosignature] [--nodigest] PACKAGE_FILE ...

Instalacin, Actualizacin, Y Eliminacin De Paquetesrpm {-i|--install} [install-options] PACKAGE_FILE ... rpm {-U|--upgrade} [install-options] PACKAGE_FILE ... rpm {-F|--freshen} [install-options] PACKAGE_FILE ... rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...

Ejemplos:rpm -qa | grep http rpm -Uvh eaglemode-0.80.0-1.i586.rpm

Mayor informacin es posible encontrar leyendo el manual de rpm:man rpm

tem 2. Instalacin de software - 12

YUMyum es un rpm interactivo, basada en el gestor de paquetes. Se puede realizar automticamente los repositorios del sistema, incluyendo el anlisis de la dependencia y el tratamiento obsoleto basado en "repositorio" de metadatos. Tambin puede realizar la instalacin de nuevos paquetes, la eliminacin de paquetes antiguos y realizar consultas sobre los paquetes disponibles, entre muchos otros comandos.

Sintaxis del comando yum esyum [options] [command] [package ...]

algnas de las opciones del comando yum son:yum install package1 [package2] [...]] yum update [package1] [package2] [...] yum check-update yum upgrade [package1] [package2] [...] yum distribution-synchronization [package1] [package2] [...] yum remove | erase package1 [package2] [...] yum list [...] yum info [...] yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ] yum groupinstall group1 [group2] [...] yum grouplist [hidden] [groupwildcard] [...] yum groupremove group1 [group2] [...] yum groupinfo group1 [...] yum search string1 [string2] [...]

Ejemplo:yum install dhcpd

tem 2. Instalacin de software - 13

tem 3. La Shell de LinuxIntroduccinEn primer lugar es bueno destacar que existen varias shell en GNU/Linux, la ms comn de encontrar es bash (GNU Bourne-Again SHell), como la mayor parte de las shell bash provee una serie de comandos. A continuacin no aparecen listados todos los comandos, ni todos los posibles usos de ellos, pero s es una primera aproximacin a su uso, para conocerlos e investigarlos.

Comandos BsicosEsta es una pequea lista de los comandos ms utilizados, no es que sean los ms faciles, la verdad es que "no hay comando complicado, slo comandos que no conocemos".

manEste comando es el ms til de todos, su funcin es mostrar el manual del comando que se coloque a continuacin, dependiendo de la distribucin de Linux y de diversos programas, ste estar en tu idioma. Para saber como utilizarlo, puedes pedir el manual del manual escribiendoman man

Cuando revisas un manual, como el de "man", es posible que aparezcan algnas referencias (en la seccin "SEE ALSO" o "VER TAMBIN"), las cuales estn numeradas, por ejemplo, en el caso de "man", es posible ver:SEE ALSO: manpath(1), apropos(1), whatis(1), catman(8), less(1), setlocale(3), troff(1), nroff(1), man(7), ascii(7), ...

Esta es una lista de contextos relacionados de los cuales tambin puedes pedir con man, es decir despus de salir de man (con la tecla "q"), puedes escribir por ejemplo: man whatis. De esta forma siempre puedes encontrar informacin relacionada.

lsLista o muestra el contenido del directorio actual. El uso de este comando de forma ms bsica es sin parmetros, de esta forma lista todos los archivos y directorios ordenndolos en columnas de arriba a abajo y de izquierda a derecha.bin boot dev etc home lib lost+found media misc mnt net opt proc root sbin selinux srv sys tmp usr var

tem 3. La Shell de Linux - 14

Obviamente el resultado variar dependiendo de en qu directorio estemos parados y que cosas tengamos ah. El parmetro que recibe este comando es algna expresin regular que represente lo que deseamos listar, por ejemplo podemos buscar dentro de "todo lo que comience con b", para ello usamos "b*"ls b*

Es bueno a estas alturas decir que si existe algn directorio que coincida con "que comience con b", ls mostrar su contenido; por ejemplo, la salida del comando anterior regresa lo siguiente:bin: alsacard alsaunmute arch awk basename bash cat chgrp chmod chown cp cpio csh cut date dbus-cleanup-sockets dbus-daemon dbus-monitor dbus-send dbus-uuidgen dd df dmesg dnsdomainname doexec domainname dumpkeys echo ed egrep env ex false fgrep fusermount gawk gettext grep gtar gunzip gzip hostname igawk ipcalc kbd_mode kill link ln loadkeys login ls mail mailx mkdir mknod mktemp more mount mountpoint mv netstat nice nisdomainname ntfs-3g ntfsmount pgawk ping ping6 ps pwd red redhat_lsb_init rm rmdir rpm rvi rview sed setfont setserial sh sleep sort stty su sync tar taskset tcsh touch tracepath tracepath6 traceroute traceroute6 tracert true ulockmgr_server umount uname unicode_start unicode_stop unlink usleep vi view ypdomainname zcat zsh

boot: config-2.6.23.1-49.fc8 config-2.6.23.8-63.fc8 grub initrd-2.6.23.1-49.fc8.img initrd-2.6.23.8-63.fc8.img lost+found System.map-2.6.23.1-49.fc8 System.map-2.6.23.8-63.fc8 vmlinuz-2.6.23.1-49.fc8 vmlinuz-2.6.23.8-63.fc8

tem 3. La Shell de Linux - 15

Existen tambin opciones para este comando, opciones que cambian los datos que muestra, estos se pueden combinar entre s, los ms comunes son los siguientes: -l : Muestra una lista de un archivo (directorio, etc) por linea, muestra el tipo del archivo, los permisos, el nmero de enlaces duros, el nombre del propietario, el del grupo al que pertenece, el tamao en bytes, la marca de tiempo y el nombre del archivo. -a : Muestra todos los archivos, incluyendo los ocultos (que comienzan con .) -d : No muestra el contenido interno de los directorios. -h : Muestra el tamao en formato humano (Kilos, Megas, etc.) -v : Ordena los archivos por versin en vez de alfabeticamente. Ejemplos ls -l muestra, de izquierda a derecha lo siguiente : el tipo del archivo, los permisos, el nmero de enlaces al archivo, el nombre del propietario, el del grupo al que pertenece, el tamao en bytes, la fecha de la ltima modificacin y el nombre del archivo.total 150 drwxr-xr-x drwxr-xr-x drwxr-xr-x 2 root root 4 root root 12 root root 4096 dic 1024 dic 9 22:20 bin 4 17:08 boot

4240 dic 15 15:15 dev

drwxr-xr-x 126 root root 12288 dic 15 15:41 etc drwxr-xr-x drwxr-xr-x drwx-----drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x 12 root root 15 root root 4096 dic 13 22:56 home 4096 dic 15 04:23 lib 2 12:25 lost+found

2 root root 16384 dic 2 root root 2 root root 2 root root 2 root root 2 root root

4096 dic 15 15:15 media 0 dic 15 15:14 misc 4096 ago 13 10:47 mnt 0 dic 15 15:14 net 4096 dic 3 16:29 opt

dr-xr-xr-x 142 root root drwxr-x--drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxrwxrwt drwxr-xr-x drwxr-xr-x 10 root root

0 dic 15 12:14 proc 4096 dic 14 00:52 root

2 root root 12288 dic 11 13:48 sbin 2 root root 3 root root 12 root root 24 root root 14 root root 22 root root 4096 dic 4096 dic 2 12:25 selinux 2 12:45 srv

0 dic 15 12:14 sys 4096 dic 15 18:06 tmp 4096 dic 4096 dic 3 16:24 usr 2 12:48 var

ls -a muestra:. .. .autofsck .autorelabel bin boot dev etc home lib lost+found media misc mnt net opt proc .pulse-cookie root sbin selinux srv .suspended sys

tem 3. La Shell de Linux - 16

ls -d b* muestra:bin boot

Note la diferencia con la ejecucin sin la opcin -d Combinado algnas opciones, podemos ejecutar: ls -hl que muestra:total 150K drwxr-xr-x drwxr-xr-x drwxr-xr-x 2 root root 4,0K dic 4 root root 1,0K dic 9 22:20 bin 4 17:08 boot

12 root root 4,2K dic 15 15:15 dev 12K dic 15 15:41 etc

drwxr-xr-x 126 root root drwxr-xr-x drwxr-xr-x drwx-----drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x

12 root root 4,0K dic 13 22:56 home 15 root root 4,0K dic 15 04:23 lib 2 root root 16K dic 2 12:25 lost+found

2 root root 4,0K dic 15 15:15 media 2 root root 0 dic 15 15:14 misc

2 root root 4,0K ago 13 10:47 mnt 2 root root 0 dic 15 15:14 net 3 16:29 opt

2 root root 4,0K dic

dr-xr-xr-x 142 root root drwxr-x--drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxrwxrwt drwxr-xr-x drwxr-xr-x

0 dic 15 12:14 proc

10 root root 4,0K dic 14 00:52 root 2 root root 12K dic 11 13:48 sbin 2 12:25 selinux 2 12:45 srv

2 root root 4,0K dic 3 root root 4,0K dic 12 root root

0 dic 15 12:14 sys

24 root root 4,0K dic 15 18:06 tmp 14 root root 4,0K dic 22 root root 4,0K dic 3 16:24 usr 2 12:48 var

cdCambia el directorio (o carpeta) actual. Al ejecutarse sin parmetro, normalmente (aun no he conocido un Linux, Unix o Solaris en que no suceda) cambia al directorio de home (o directorio base) del usuario en curso. Al entregarle un parmetro (nombre de algn directorio), se cambia a l. algnos nombres de directorios especiales son por ejemplo: . que hace referencia a mi directorio actual, .. que hace referencia al directorio padre, y / que es el directorio raz del sistema. Cabe destacar que uno puede cambiarse de directorio dando toda la ruta (directa o relativa) de una carpeta.

tem 3. La Shell de Linux - 17

Ejemplos Cambiarse al directorio Escritoriocd Escritorio

Ir a la raz del sistemacd /

Ir a la carpeta home que esta dentro de la razcd /home

Regresar a mi carpetacd

pwdMuestra el directorio actual regresando toda su ruta desde la raz del sistema.pwd

cpCopia dentro del equipo local un archivo o directorio, para ello recibe dos parmetros, el origen y el destino.cp origen destino

Existen algnas opciones que se utilizan bastante, no son todas, pero son las ms frecuentes: -R : Copia recursiva de directorios. -i : Pregunta si quiere sobrescribir los que tienen el mismo nombre. -d : copia los enlaces simblicos en vez de copiar el archivo (o directorio) al que apunta. -u : copia sobreescribiendo solamente los archivos ms viejos (una forma de sincronizacin).

tem 3. La Shell de Linux - 18

Ejemplos Copia mi carpeta Escritorio en la carpeta respaldocp -R Escritorio respaldo

Copia el archivo xorg.conf ubicado en /etc/X11 en mi carpeta de homecp /etc/X11/xorg.conf $HOME

mvMueve o renombra un archivo o directorio a un nuevo destino. De que depende cual de las dos acciones ejecuta? Fcil, depende si existe el destino o no como directorio, en caso contrario renombra (ojo, si se mueve un archivo a otro que ya existe, lo reemplaza).mv curriculum.pdf Documentos/personales/

Las opciones ms utilizadas de mv son: -i : pregunta antes de sobrescribir si el destino existe. -u : no mueve el archivo si existe en el destino uno ms actual.

rmBorra un archivo o directorio.rm archivoViejo.txt

Los operadores mas importantes son: -r : borra recursivamente. -i : pide confirmar. -f : por la fuerza. Nunca hagas lo siguiente aunque es gracioso (para el que observa)rm -rf $HOME

ni ninguna cosa parecida, preocpate de manejar bien este comando, pues de que borra borra.

catDespliega un archivo por la salida estndar.cat README.txt

tem 3. La Shell de Linux - 19

El operador entretenido que tiene es el -n que muestra los nmeros de linea, es especial si quieres ver que dice la linea que se queja un archivo PHP. En la mayora de los terminales con las teclas y o nos permite desplazarnos.

moreDespliega un archivo por la salida estndar agregando pausas por pantalla. Claramente esto es bastante til cuando el archivo sobrepasa un par de pantallas.more README.txt

tailMuestra las ltimas lineas de un archivo. Tal ves te preguntes y para que solo quiero ver las ltimas lneas?, algnas respuestas posibles a esta pregunta son: Puede ser que ests viendo un archivo secuencial (como un log del sistema) en donde te interese solamente ver lo que ocurre ahora.

dmesg | tail # creandoArchivoConCAT.txt

Una vez hecho esto escribe lo que quieras, para terminar de escribir presiona + lo que enviar un fin de archivo, luego puedes hacer uncat creandoArchivoConCAT.txt

y ver lo que has escrito.tem 3. La Shell de Linux - 32

Dado a que cat despliega uno o varios archivos que se le entregue, estos se pueden concatenar en uno solo redireccionando la salida, es as como por ejemplo podemos hacer:cat capitulo1.txt capitulo2.txt capitulo3.txt > libro.txt

Trabajos en segundo planocontrol Z

A veces necesitamos ejecutar un comando mientras estamos trabajando con otro, por ejemplo, supongamos que estamos modificando los permisos de un usuario en visudo y olvidamos como era el login del usuario, en ves de cerrar visudo y abrirlo mas tarde, podemos suspender su ejecucin con control Zjobs

Con jobs podemos ver todas las tareas que tenemos suspendidas, por ejemplo en el caso anterior, nos entrega[1]+ Stopped visudo

fg

Lo prctico de la suspensin es poder retomar lo que hemos dejado en segundo plano, esto lo hacemos con el comando fg y el nmero del proceso suspendido. En nuestro ejemplofg 1

&

El & se usa para dejar inmediatamente una ejecucin en segundo plano, por ejemplo, supongamos que queremos crear un indice de nuestro equipo, pero queremos dejar el terminal libre por si necesitamos ejecutar otra accin. Lo que haramos sera:find / > indice.txt &

bg

El comando bg permite enviar a segundo plano un proceso que se encuentre en estado de suspensin. Veamos un ejemplo: ejecutamos el siguiente comando de pruebaping www.google.cl

tem 3. La Shell de Linux - 33

comenzaremos a obtener la salida:PING www.l.google.com (74.125.45.99) 56(84) bytes of data. 64 bytes from yx-in-f99.google.com (74.125.45.99): icmp_seq=1 ttl=48 time=258 ms 64 bytes from yx-in-f99.google.com (74.125.45.99): icmp_seq=2 ttl=46 time=211 ms 64 bytes from yx-in-f99.google.com (74.125.45.99): icmp_seq=4 ttl=48 time=247 ms 64 bytes from yx-in-f99.google.com (74.125.45.99): icmp_seq=6 ttl=46 time=370 ms

ctr+z para suspenderlo,tendremos la siguiente salida:^Z [1]+ Stopped ping www.google.cl

Luego si deseamos , lo podemos enviar a segundo plano ( con lo que perderemos el control que tenamos sobre el proceso)bg 1

y tendremos la siguiente salida por consola ( tambin se comenzaran a ver los mensajes de la salida del comando )[1]+ ping www.google.cl &

tem 3. La Shell de Linux - 34

tem 4. El kernel de LinuxEl kernel es el ncleo del sistema operativo. El kernel de las distribuciones GNU/Linux, como por ejemplo CentOS, se llama Linux. Linux est licenciado bajo la GPL v2 y est desarrollado por colaboradores de todo el mundo. El ncleo Linux fue concebido por el entonces estudiante de ciencias de la computacin finlands, Linus Torvalds, en 1991. Hoy en da, Linux es una marca registrada de Linus Torvalds en los Estados Unidos. CentOS maneja la misma notacin que RedHat para los paquetes del kernel, estos son: kernel : Contiene el kernel para sistemas multiprocesos. Para el sistema x86 slamente se utilizan los primeros 4GB de RAM. Como tal, los sistemas x86 con ms de 4GB de RAM deben utilizar el kernel-PAE. Kernel-PAE : (Physical Address Extension) Es solo para sistemas i686, PAE soporta sistemas con mas de 4GB de RAM, y es fiable hasta 16GB. kernel-xen : Incluye una versin del kernel de Linux la cual se necesita para ejecutar Virtualizacin.

Para visualizar que versin del kernel usamos actualmente, consultamos mediante el comando:uname -a

Si queremos ver todos los paquetes de kernel que tenemos instalados, podemos utilizar:rpm -qa| grep kernel

La versin del ncleo Linux actualmente consta de cuatro nmeros. Por ejemplo, asumamos que el nmero de la versin est compuesta de esta forma: A.B.C[.D] (ej.: 2.2.1, 2.4.13 2.6.30.6). El nmero A denota la versin del ncleo. Es el que cambia con menor frecuencia y solo lo hace cuando se produce un gran cambio en el cdigo o en el concepto del ncleo. Histricamente slo ha sido modificado dos veces: en 1994 (versin 1.0) y en 1996 (versin 2.0). El nmero B denota la subversin del ncleo. Antes de la serie de Linux 2.6.x, los nmeros pares indicaban la versin estable lanzada. Por ejemplo una para uso de fabricacin, como el 1.2, 2.4 2.6. Los nmeros impares, en cambio, como la serie 2.5.x, son versiones de desarrollo, es decir que no son consideradas de produccin. Comenzando con la serie Linux 2.6.x, no hay gran diferencia entre los nmeros pares o impares con respecto a las nuevas herramientas desarrolladas en la misma serie del ncleo. Linus Torvalds dictamin que este ser el modelo en el futuro.tem 4. El kernel de Linux - 35

El nmero C indica una revisin mayor en el ncleo. En la forma anterior de versiones con tres nmeros, esto fue cambiado cuando se implementaron en el ncleo los parches de seguridad, bugfixes, nuevas caractersticas o drivers. Con la nueva poltica, solo es cambiado cuando se introducen nuevos drivers o caractersticas; cambios menores se reflejan en el nmero D. El nmero D se produjo cuando un grave error, que requiere de un arreglo inmediato, se encontr en el cdigo NFS de la versin 2.6.8. Sin embargo, no haban otros cambios como para lanzar una nueva revisin (la cual hubiera sido 2.6.9). Entonces se lanz la versin 2.6.8.1, con el error arreglado como nico cambio. Con 2.6.11, esto fue adoptado como la nueva poltica de versiones. Bug-fixes y parches de seguridad son actualmente manejados por el cuarto nmero dejando los cambios mayores para el nmero C.

Normalmente despus del nmero de la versin del kernel se especifica la arquitectura, esta puede ser algna de las siguientes: x86_64 para las arquitecturas AMD64 e Intel EM64T ia64 para la arquitectura Intel Itanium. ppc64pseries para la arquitectura IBM eServer pSeries. s390 para la arquitectura IBM S/390. s390x para la arquitectura IBM eServer System z. i686 para sistemas Intel Pentium II, Intel Pentium III, Intel Pentium 4, AMD Athlon y sistemas AMD Duron.

Configuracin del gestor de arranque para un nuevo kernelEl paquete RPM kernel configura el gestor de arranque para arrancar el nuevo kernel (excepto para sistemas IBM eServer iSeries). Sin embargo, no configura el gestor de arranque para cargar el nuevo kernel por defecto. Es una buena idea confirmar que el gestor de arranque se ha configurado correctamente. Esto es un paso crucial. Si el gestor de arranque est configurado de forma incorrecta, no podrn arrancar CentOS correctamente. Si esto ocurre, arranque el sistema con el disquete de arranque que cre anteriormente e intente configurar de nuevo el gestor de arranque. Todos los sistemas x86 (incluyendo todos los sistemas AMD64) utilizan GRUB como gestor de arranque.

tem 4. El kernel de Linux - 36

GRUBConfirme que el archivo /boot/grub/grub.conf contiene una seccin title con la misma versin que el paquete kernel que acaba de instalar# Note that you do not have to rerun grub after making changes to this file # NOTICE: # # # # You have a /boot partition. This means that

all kernel and initrd paths are relative to /boot/, eg. root (hd0,0) kernel /vmlinuz-version ro root=/dev/hda2 initrd /initrd-version.img

#boot=/dev/hda default=1 timeout=10 splashimage=(hd0,0)/grub/splash.xpm.gz title Red Hat Enterprise Linux (2.6.9-5.EL) root (hd0,0) kernel /vmlinuz-2.6.9-5.EL ro root=LABEL=/ initrd /initrd-2.6.9-5.EL.img title Red Hat Enterprise Linux (2.6.9-1.906_EL) root (hd0,0) kernel /vmlinuz-2.6.9-1.906_EL ro root=LABEL=/ initrd /initrd-2.6.9-1.906_EL.img

Si ha creado una particin separada para /boot/ la ruta al kernel y la imagen initrd sern relativas a /boot/. Observe que el nuevo kernel no est configurado para ser el kernel por defecto. Para configurar GRUB para que arranque el nuevo kernel por defecto, cambie el valor de la variable default al nmero del ttulo de la seccin que contiene el nuevo kernel. La cuenta comienza con 0. Por ejemplo, si el nuevo kernel es el primer ttulo en la seccin, configure default a 0. Comience evaluando el nuevo kernel reiniciando el computador y vigilando los mensajes para asegurarase de que el hardware es detectado adecuadamente.

tem 4. El kernel de Linux - 37

tem 5. Sistemas de archivosEl sistema de archivos UNIX est caracterizado por: Una estructura jerrquica. Un tratamiento consistente de la informacin de los archivos. Proteccin de los archivos.

Este estndar del sistema de archivos Linux sigue el mismo principio bsico que la mayora de los sistemas de archivos UNIX siguen, sin embargo que este estndar no intenta concordar en cada aspecto posible con algna implementacin particular del sistema UNIX. De cualquier forma, muchos de los aspectos de este estndar estn basados en ideas encontradas en UNIX y sistemas similares a UNIX. Al contrario que en Windows o MS-DOS 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 7 discos duros para crear las unidades c:, d: o m:. Todos el sistema de archivos de UNIX tiene un origen nico la raz o root representada por /. Bajo este directorio se encuentran todos los archivos a los que puede acceder el sistema operativo. Estos archivos se organizan en distintos directorios cuya misin y nombre son estndar para todos los sistema UNIX. / Raz del sistema de archivos. /dev Contiene archivos del sistema representando los dispositivos que estn fsicamente instalados en el ordenador. /etc Este directorio esta reservado para los archivos de configuracin del sistema. En este directorio no debe aparecer ningn archivo binario (programas). Bajo este deben aparecer otros dos subdirectorios: /etc/X11 archivos de configuracin de X Window /etc/skel archivos de configuracin bsica que son copiados al directorio del usuario cuando se crea uno nuevo. /lib Contiene las libreras necesarias para que se ejecuten los programas que residen en /bin (no las libreras de los programas de los usuarios). /proc Contiene archivos especiales que o bien reciben o envan informacin al kernel del sistema (Se recomienda no modificar el contenido de este directorio y sus archivos). /sbin Contiene programas que son nicamente accesibles al superusuario o root. /usr Este es uno de los directorios ms importantes del sistema puesto que contiene los programas de uso comn para todos los usuarios. Su estructura suele ser similar a la siguiente: /usr/bin Programas de uso general, lo que incluye el compilador de C/C++. /usr/doc Documentacin general del sistema. /usr/etc archivos de configuracin generales. /usr/include archivos de cabecera de C/C++ (.h). /usr/lib Libreras generales de los programas. /usr/sbin Programas de administracin del sistema. /usr/src Cdigo fuente de programas. /var Este directorio contiene informacin temporal de los programas (lo cual no implica que se pueda borrar su contenido)

tem 5. Sistemas de archivos - 38

Estructura del sistema de ArchivosResulta paradjico que el sistema de archivos ms utilizado de Linux, y por lo tanto probablemente el ms utilizado del mundo del cdigo abierto, el llamado Ext2, Ext3 o Ext4 (segn su versin) sea tan desconocido. Lo primero que hay que observar es que no existen tres sistemas de archivos diferentes, Ext2, Ext3 y Ext4, sino que solamente existe uno, llammosle simplemente Ext2, pero con un montn de caractersticas (features) opcionales; algnas de estas caractersticas son compatibles hacia atrs y otras no. Lo que s existen son tres mdulos de kernel diferentes en Linux, cada uno con un nmero creciente de caractersticas soportadas (ms sobre esto ms adelante). A continuacin es conveniente aclarar el significado de algnos trminos: Bloque: un conjunto de bytes contiguos en disco, de un tamao determinado y que comienza en una posicin mltipla de ese mismo tamao. Todos los bloques tienen el mismo tamao, que debe ser una potencia de 2. Es importante observar que el espacio en disco siempre se asigna en bloques enteros. El tamao mnimo de bloque es de 1024 bytes. algnos bloques se utilizan para guardar datos de archivos y otros para estructuras auxiliares. Inodo: estructura en disco que representa un archivo u otro objeto similar (enlace simblico, fifo, device, etc.). Se identifica de forma nivoca con un nmero llamado naturalmente nmero de inodo. Puedes ver el nmero de inodo que corresponde a un archivo con el comando ls -i. Grupo de bloques: un conjunto de bloques contiguos, junto con una tabla de inodos. La idea es que se intenten mantener cerca el inodo y los datos de un mismo archivo. Descriptor de grupo de bloques: estructura que describe los contenidos de un group de bloques. Bitmap: no es un dibujo sino un array de bits, donde cada uno indica si un bloque o inodo est libre o en uso. Se utiliza para buscar rpidamente huecos libres.Libre Superbloque Descriptores de grupos de bloques Grupo de bloques #0 Grupo de bloques #1 ... Grupo de bloques #N

La estructura bsica de un sistema Ext2 es la siguiente:

Y cada grupo de bloques tiene la siguiente estructura:Bitmap de bloques Bitmap de inodos Tabla de inodos Bloques de datostem 5. Sistemas de archivos - 39

A continuacin se describen con detalle cada uno de estos elementos.

LibreLos primeros 1024 bytes del dispositivo de bloques no se utilizan para nada. La idea es que el principio de la particin suele utilizarse para instalar algn tipo de sistema de arranque o de tabla de particiones. Otros sistemas, como FAT, hacen malabarismos para integrar varias estructuras no relacionadas en el primer sector del disco sin que se pisen entre s.

SuperbloqueEn la posicin 1024 de la particin se encuentra el superbloque. Este contiene informacin clave del sistema, tanto esttica (tamao de las estructuras) como dinmica (espacio libre). Tan importante es esta estructura que se mantienen copias de ella desperdigadas por el disco, de manera que si se destruyera el comienzo del sistema se pudiera recuperar la mayor informacin posible (ms sobre eso ms adelante). Como unas cuantas lneas de cdigo valen ms que mil palabras, aqu est la estructura del superbloque escrita en C (ntese que todos los datos en disco se guardan en Little-Endian, aunque no se indique en el cdigo):struct Superblock { uint32_t inodes; uint32_t blocks; uint32_t reserved_blocks; uint32_t free_blocks; uint32_t free_inodes; uint32_t first_data_block; uint32_t log_block_size; uint32_t fragment_size; uint32_t blocks_per_group; uint32_t fragments_per_group; uint32_t inodes_per_group; uint32_t mount_time; uint32_t write_time; uint16_t mount_count; uint16_t max_mount; uint16_t magic; uint16_t state; uint16_t errors; uint16_t minor; uint32_t last_check; uint32_t check_int; uint32_t creator_os; uint32_t rev_level; uint16_t resv_uid; uint16_t resv_gid; //rev_level == 1 uint32_t first_inode; uint16_t inode_size; uint16_t block_group; uint32_t feature_compat; uint32_t feature_incompat; uint32_t feature_ro_compat; uint8_t uuid[16]; };

Los campos a partir del comentario rev_level == 1 solo existen si rev_level es mayor o igual a 1 (tu disco es realmente viejo si tienes rev_level a 0). Y hay ms campos a continuacin de estos, pero que solo se usan con features particulares y no las comentar aqu.

tem 5. Sistemas de archivos - 40

Los campos del superbloque significan lo siguiente: inodes: El nmero total de inodos en el sistema de archivos. blocks: El nmero total de bloques en el sistema de archivos. reserved_blocks: El nmero de bloques reservados para el usuaro root. free_blocks: El nmero de bloques libres. free_inodes: El nmero de inodos libres. first_data_block: El primer bloque utilizable para datos. log_block_size: El logaritmo base 2 del tamao de bloque, menos 10. Es decir, 0 es 1024, 1 es 2048, 2 es 4096, 3 es 8192, etc. fragment_size: Los fragmentos son una obsolescencia, as que esto no sirve para nada. blocks_per_group: El nmero de bloques de datos por grupo de bloques. fragments_per_group: Vase dos ms arriba. inodes_per_group: El nmero de inodos por grupo de bloques. mount_time: La fecha/hora de la ltima vez que se mont el sistema en lectura/escritura (como time_t). write_time: La fecha/hora de la ltima vez que se desmont el sistema habindolo montado como lectura/escritura. mount_count: El nmero de veces que se mont el sistema desde el ltimo chequeo. max_mount: Cuando el sistema se monta este nmero de veces se fuerza un chequeo de mantenimiento. magic: Un nmero fijo que identifica esta estructura. Debe ser 0xEF53. state: El estado general del sistema. 1 es correcto, otro valor indica errores. errors: Qu hacer si se encuentran errores en el formato de disco. 1 indica continuar como si nada; 2 conmuna el sistema a solo lectura; 3 genera un panic y bloquea el sistema operativo. Puede cambiarse con la opcin de montaje errors. minor: El nmero menor de la revisin del formato. Bsicamente no sirve para nada. last_check: La fecha/hora del ltimo chequeo. check_int: Si el ltimo chequeo ha sido hace ms de este nmero de segundos se fuerza un chequeo de mantenimiento. creator_os: El sistema operativo en el que se cre este sistema. 0 es Linux, 1 es Hurd, 3 es FreeBSD. rev_level: Si es 1 o superior existen los campos posteriores a resv_gid. Es 1 siempre salvo en sistemas prehistricos. resv_uid: El usuario para el que se reservan los reserved_blocks. Normalmente es 0 (root) resv_gid: Lo mismo que el anterior, pero el grupo. first_inode: El primero inodo disponible para uso general. Casi siempre es 11, que es el valor por defecto si rev_level==0.tem 5. Sistemas de archivos - 41

inode_size: El tamao de la estructura de inodo en disco. Suele ser 128 o 256, pero puede ser cualquier potencia de 2 mayor. Si rev_level==0 es 128. block_group: Identifica la copia de este superbloque. Solo es til para el diagnsticos. feature_compat: Features compatibles. Vase ms abajo. feature_incompat: Features incompatibles. Vase ms abajo. feature_ro_compat: Features compatibles en modo de solo lectura. Vase ms abajo.

FeaturesSe llaman features (o caractersticas) a las modificaciones en el formato de archivos respecto a la implementacin Ext2 original. Se clasifican en tres tipos segn cmo afectan a la compatibilidad hacia atrs, es decir, a cmo debe comportarse un driver que no conozca esa feature. Compatibles: El driver puede funcionar perfectamente ignorando esta caracterstica. Incompatibles: El driver no debe utilizar el sistema de archivos si no conoce esta caracterstica. RO-compatibles: (ReadOnly o solo lectura) El driver puede leer el sistema de archivos ignorando esta caracterstica, pero no debe modificarlo. Cada una de estas features se representa con un bit en el campo del superbloque correspondiente. algnas features se pueden activar y/o desactivar de un sistema de archivos existente usando el comando tune2fs. La diferencia entre los distintos drivers Ext2, Ext3 y Ext4 radica principalmente en las features disponibles y activadas por defecto. As, Ext3 es bsicamente igual que Ext2, pero con journal; y Ext4 es Ext3 con extents y flex_bg.

Descriptores de grupos de bloquesEn el siguiente bloque al que contiene el superbloque comienza la lista de descriptores de grupos de bloques, que se prolonga por cuntos bloques sea necesario. Puedes calcular cantos grupos de bloques tiene el sistema dividiendo inodes entre inodes_per_group y redondeando hacia arriba. La estructura un descriptor de grupo de bloques es:struct GroupDesc { uint32_t block_bitmap; uint32_t inode_bitmap; uint32_t inode_table; uint16_t free_blocks_count; uint16_t free_inodes_count; uint16_t used_dirs_count; uint16_t dummy[7]; };

Los campos de esta estructura son: block_bitmap: El nmero de bloque donde comienza el bitmap de bloques de datos de este grupo. inode_bitmap: El nmero de bloque donde comienza el bitmap de inodos de este grupo. inode_table: El nmero de bloque donde comienza la tabla de inodos de este grupo. free_blocks_count: El nmero de bloques de datos libres en este grupo. free_inodes_count: El nmero de inodos libres en este grupo.tem 5. Sistemas de archivos - 42

used_dirs_count: Cantos directorios hay en este grupo. dummy: Relleno para alinear la estructura. algnas features utilizan algno de estos bytes.

La idea es que el driver disponga de estos datos para decidir en qu grupo de bloques crear un archivo minimizando el riesgo de fragmentacin.

Grupo de bloquesUn grupo de bloques viene descrito por el descriptor de grupo de bloques correspondiente. Los bloques de datos que corresponden a un grupo no se guardan en el descriptor porque se deducen directamente del campo blocks_per_group del superbloque: el grupo 0 va del 0 a blocks_per_group-1; el grupo 1 va de blocks_per_group a 2*blocks_per_group 1; el grupo N va de N*blocks_per_group a (N+1)*blocks_per_group 1. Naturalmente, puesto que los bitmaps y los inodos tambin son parte del grupo se solapan con los bloques de datos. Para evitar que se machaquen estas estructuras se marcan permanentemente como ocupados en el block_bitmap al crear el sistema de archivos. En algnos grupos de bloques, al principio de los bloques de datos se guarda una copia del superbloque y de los descriptores de grupos. Naturalmente, en el block_bitmap se marcan estos bloques como ocupados. La longitud de las estructuras de un grupo de bloques se deduce de campos del superbloque: el bitmap de bloques tiene blocks_per_group bits, alineado hacia arriba a un nmero entero de bloques; el bitmap de inodos tiene un inodes_per_group bits, alineado de la misma manera; la tabla de inodos tiene inodes_per_group inodos de inode_size bytes cada uno, alineado igualmente.

Tabla de inodosLa tabla de inodos de un grupo de bloques consiste simplemente en un array de inodos, uno tras otro, de inode_size bytes cada uno. La estructura de un inodo es:struct INode { uint16_t uint16_t uint32_t uint32_t uint32_t uint32_t uint32_t uint16_t uint16_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t }; mode; uid; size; atime; ctime; mtime; dtime; gid; links; nr_blocks; flags; reserved1; blocks[12]; iblock; iiblock; iiiblock; generation; file_acl; size_hi; reserved2[4];

Los contenidos de esta estructura son intencionadamente similares a varios de los campos de la estructura stat devuelta por las llamadas al sistema stat y fstat (vase man 2 stat para ms informacin). El significado de los campos es el siguiente: mode: El tipo de inodo y los permisos, en un campo de bits. Los 9 bits menos significativos son los permisos (3 para el propietario, 3 para el grupo y 3 para otros), otros 3 bits son para opciones varias, y 4 bits ms indican el tipo de inodo. uid: El identificador de usuario (uid) propietario del archivo.tem 5. Sistemas de archivos - 43

size: Los 32 bits menos significativos del tamao del archivo, en bytes. atime: La fecha/hora del ltimo acceso a los datos del archivo. ctime: La fecha/hora del ltimo cambio al contenido de esta estructura (el inodo, no los datos del archivo). mtime: La fecha/hora del ltimo cambio a los datos del archivo. dtime: La fecha/hora en la que se borr el inodo. Debe ser 0 para inodos existentes y distinto de 0 para inodos borrados. gid: El identificador de grupo (gid) propietario del archivo. links: El numero de enlaces (links) a este inodo. Se refiere a hard links, no links simblicos. nr_blocks: El nmero de bloques total que ocupa este inodo. Es, ms o menos, el dato devuelto por el comando du. flags: Bits varios. La mayora solo pueden existir si est activada la feature correspondiente. reserved1: Este valor se usa en algnos sistemas operativos, para tareas particulares, pero en Linux no se usa para nada. blocks: Nmeros de bloques de datos. iblock: Nmero de bloque indirecto. iiblock: Nmero de bloque doble-indirecto. iiiblock: Nmero de bloque triple-indirecto. generation: Este es un nmero secuencial que se incrementa cada vez que se reutiliza el inodo despus de borrarlo. Lo necesitan algnos programas como NFS. file_acl: El nmero de bloque donde se guardan los attributos extendidos, si es que existen. size_hi: Los 32 bits ms significativos del tamao del archivo (para archivos de ms de 4 GB). reserved2: Esto sirve para hacer el tamao de la estructura exactamente 128 bytes. Estos y los siguientes, si el inodo es mayor de 128 sirven para guardar attributos extendidos y otra informacin adicional.

Los campos blocks, iblock, iiblock y iiiblock merecen una mencin especial. Los primeros 12 bloques de datos se guardan directamente en los valores blocks[0] a blocks[11]. A archivos ms grandes se les asigna un bloque de datos llamado bloque indirecto