En esta sección Vamos a tratar algunas cosas que tenemos que tener claras antes de instalar y comenzar a utilizar Linux. No tienes que aprenderlas de memoria, simplemente lee esto con atención y estarás en disposición de continuar aprendiendo sobre Linux.
El arranque de Linux
Veamos qué es lo que pasa cuando nuestra máquina arranca y tenemos que elegir un sistema operativo. Cuando la BIOS termina su chequeo, empieza a buscar dónde hay software para ser ejecutado. Si los CDROMs no son de arranque, pasa al primer disco duro por defecto. En el principio del disco duro o MBR (acuérdate, lo vas a ir más de dos veces con Linux) o en una partición queda instalado con Linux un cargador de arranque. Los dos más usados son LILO (LInux LOader) y GRUB. Nada más arrancar se ejecuta este cargador cuya misión permitir al usuario elegir sistema operativo de los que tenemos en nuestro ordenador quiere utilizar. Al instalarse, LILO (o GRUB) habrán sido configurados para poder arrancar cualquier sistema operativo que tengamos instalado, reconoce la mayoría de los existentes. Seleccionamos nuestra versión de Linux y el cargador da paso al Kernel de Linux que empieza a hacer sus chequeos y a montar (hacer utilizable) el sistema de archivos.
El sistema de archivos
El sistema de archivos es más o menos «la forma de escribir los datos en el disco duro». El sistema de archivos nativo de Linux es el EXT2. Ahora proliferan otros sistemas de archivos con journalising (si se arranca sin haber cerrado el sistema, no necesitan hacer un chequeo sino que recuperan automáticamente su último estado), los más conocidos son EXT3, ReiserFS y XFS.
La estructura de directorios que sigue Linux es parecida a la de cualquier UNIX. No tenemos una «unidad» para cada unidad física de disco o partición como en Windows, sino que todos los discos duros o de red se montan bajo un sistema de directorios en árbol, y algunos de esos directorios enlazan con estas unidades físicas de disco. MUY IMPORTANTE: Las barras en Linux al igual que en cualquier UNIX son inclinadas hacia la derecha, como se puede ver más abajo (ese es el motivo de que en internet sean inclinadas hacia la derecha ya que nació bajo UNIX y en Linux podremos aprovechar todas sus ventajas). Expliquemos esto más a fondo, incluyendo los directorios principales:
Tabla 1.1. Estructura de directorios en Linux
Directorio | Descripción |
---|---|
/ | Es la raíz del sistema de directorios. Aquí se monta la partición principal Linux EXT. |
/etc | Contiene los archivos de configuración de la mayoría de los programas. |
/home | Contiene los archivos personales de los usuarios. |
/bin | Contiene comandos básicos y muchos programas. |
/dev | Contiene archivos simbólicos que representan partes del hardware, tales como discos duros, memoria… |
/mnt | Contiene subdirectorios donde se montan (se enlaza con) otras particiones de disco duro, CDROMs, etc. |
/tmp | Ficheros temporales o de recursos de programas. |
/usr | Programas y librerías instalados con la distribución |
/usr/local | Programas y librerías instalados por el administrador |
/sbin | Comandos administrativos |
/lib | Librerías varias y módulos («trozos») del kernel |
/var | Datos varios como archivos de log (registro de actividad) de programas, bases de datos, contenidos del servidor web, copias de seguridad… |
/proc | Información temporal sobre los procesos del sistema (explicaremos esto más en profundidad posteriormente). |
Nombres de archivos en Linux
Los nombres de archivos en Linux (como en todos los UNIX) distinguen mayúsculas de minúsculas, esto es, son «case sensitive». Los archivos README, readme, REadme y rEadme por ejemplo son archivos distintos y por lo tanto al ser nombres distintos pueden estar en el mismo directorio.
En Linux los archivos no tienen por qué tener una extensión. La suelen tener a modo orientativo, pero no es en absoluto necesario. Linux sabe qué contiene cada archivo independientemente de cuál sea su extensión. Por comodidad, podremos llamar a todos nuestros archivos de texto con la extensión .texto, o a todos nuestros documentos con la extensión .documento, de esta manera, podremos luego agruparlos más fácilmente.
Los ficheros y directorios ocultos en Linux comienzan su nombre por un punto (.)
Los nombres de archivos o directorios pueden ser muy largos, de más de 200 caracteres, lo cual nos da bastante flexibilidad para asociar el nombre de un archivo a lo que contiene. No obstante, hay ciertos caracteres que nunca se deberían utilizar a la hora de nombrar un archivo. Uno de ellos es el espacio, nunca llamaremos a un fichero con un nombre que contenga un espacio. Tampoco son recomendados otros caracteres raros como signos de puntuación (a excepción del punto), acentos o la ñ. En algunos casos Linux ni siquiera nos permitirá usarlos. Los recomendables son las letras A-Z, a-z, los números (0-9), el punto, el guión (-) y el guión bajo (_) para nombrar un archivo. Los acentos y la ñ tampoco se recomiendan.
El software adicional para GNU/Linux
Primero, hacer notar que LINUX NO ES WINDOWS. El software de Windows no funcionará en Linux, hay proyectos de emulación al respecto, que no recomendamos.
El software para Linux lo podemos encontrar de dos formas: en un paquete binario o en un paquete con su código fuente.
Los paquetes binarios
Existen varios tipos de paquetes binarios. Todos tienen una característica en común, y es que contienen código de máquina, no código fuente, por eso cada tipo de procesador necesita su propia versión de cada paquete. Al haber varias distribuciones de Linux existen varios tipos de paquetes binarios, habiendo varias distribuciones que comparten sistema de paquetes. Los más comunes son:
- Los paquetes RPM: Los usan las distribuciones RedHat, Caldera, Madrake, SuSE y TurboLinux entre otras. Su uso está muy extendido y es posible instalar este tipo de paquetes mediante la aplicación rpm. El nombre de los paquetes rpm es del tipo nombredelpaquete_version_plataforma.rpm
- Los paquetes Debian (deb): Los usa la distribución Debian y sus derivadas. Es un sistema de paquetes muy potente y que facilita en gran medida la actualización del sistema, además de resolver las dependencias (qué paquetes necesitan a qué otros) y satisfacerlas instalando todos los paquetes necesarios automáticamente. La aplicaciones que gestionan este sistema de paquetes se llaman apt y dpkg. Los paquetes Debian se suelen nombrar de la forma nombredelpaquete_version_plataforma.deb
- Los paquetes tgz de Slackware los usa la distribución del mismo nombre, y siguen los principios de los dos anteriores, son paquetes binarios aunque tienen una estructura distinta.
Los paquetes de código fuente
Estos paquetes contienen los archivos que salen del ordenador del programador o programadores, lo que quiere decir que ya hay que aportar algo de nuestra parte para utilizar los programas que contienen. El proceso de instalación de este tipo de paquetes implica también una COMPILACIÓN, concepto que vas a escuchar más de tres veces. Una compilación nos permite que el programa que vamos a instalar se optimice totalmente para el tipo de componentes que tenemos en nuestro ordenador y el tipo de versión de GNU/Linux. Este programa que hemos compilado correrá más rápido que si nos hubiéramos limitado a instalar un paquete binario normal. La compilación de un programa requiere de unos COMPILADORES, que son unos programas que junto con unas LIBRERíAS de lenguajes de programación, consiguen transformar el código fuente en lenguaje de máquina. Trataremos más adelante cómo instalar software.
Son también de amplio uso los Source RPM, que son paquetes RPM pero que en vez de ser binarios, llevan código fuente. Mediante la instalación de este tipo de paquetes, lo que hacemos es crear un nuevo paquete optimizado (compilar un nuevo paquete) para nuestra máquina. Después instalamos este último.
Meta-Paquetes
Conocemos por meta-paquete a aquellos paquetes en los cuales no hay código fuente, o binarios, sino reglas sobre CÓMO construir e instalar dicho paquete. Estos paquetes los usan distribuciones como Gentoo Linux (http://www.gentoo.org), Linux From Scratch (http://www.linuxfromscratch.com) y algunos otros sistemas operativos como FreeBSD (http://www.freebsd.org). La ventaja que tienen estos paquetes es que son muy sencillos de generar, los binarios quedan optimizados para la máquina que los va a ejecutar, pero como todo, esto tiene una contrapartida…. las distribuciones que los usan pueden ser más complicadas de manejar y se necesitan conexiones muy rápidas y procesadores potentes si no se quiere estar mucho tiempo compilando los paquetes.
Los usuarios y los permisos de archivos
Linux es un sistema operativo multiusuario. Cada usuario generalmente tiene su carpeta de usuario en /home/usuario. Por defecto sólo puede escribir, modificar y borrar archivos dentro de esta carpeta. Ningún otro usuario (excepto root) puede acceder a los archivos que hay en este directorio, ni si quiera puede ver cuáles son. Este usuario -por defecto- puede leer en el resto de las carpetas que hay en el sistema de archivos excepto en la de root y las de otros usuarios. Todos los programas recuerdan las preferencias de cada usuario, e incluso un usuario puede instalar un programa sin que los otros usuarios tengan acceso a él (vale sí, root si tendrá, lo sé, lo sabemos :-); aunque instalando los usuarios tienen muchas limitaciones como veremos después. Un usuario no puede causar por este motivo daño al sistema ni cambiar su configuración de ninguna forma. ¿Y quién es ese tal root? En cualquier sistema UNIX, root es «el que todo lo puede». Es la excepción que confirma la regla, es el superusuario todopoderoso de estos sistemas. Cuando hagas login como root en una máquina GNU/Linux, siente el poder bajo tus teclas. Puedes hacer todo lo que se te pase por la cabeza. Pero ojo, tienes poder para lo bueno y para lo malo. Tienes acceso a todo el sistema, pero una equivocación… sería fatal. Puedes cargarte el sistema Linux y los preciados datos y configuraciones que tengas en él. Por esto, para tareas normales SIEMPRE entraremos al sistema como un usuario normal por los riesgos que se corren trabajando como root. Además NUNCA usaremos Internet como root. Incluso algunos programas no permiten ser ejecutados por root por motivos de seguridad. Como ya habrás adivinado, la contraseña de root se la guarda uno en la cabeza y se asegura de que no se le olvida, y por supuesto se preocupa uno de que nadie pueda acceder a ella en ningún fichero o de que no la ven cuando la escribimos. Si se cree que la han podido adivinar o están cerca, se cambia. Cuanto más larga, tediosa y sin sentido sea esta contraseña, más seguro estará nuestro sistema. Recuerda que tu máquina Linux es tan segura como segura sea tu contraseña de root.
¿Qué son los permisos? Todos y cada uno de los archivos y directorios del árbol jerárquico que monta nuestro sistema Linux tienen permisos. Estos permisos dicen, para cada usuario del sistema, si puede ejecutarlo, si puede ver su contenido o si puede borrarlo o modificarlo. Del mismo modo, cada elemento del sistema de archivos tiene un dueño. Por defecto, este dueño del elemento (tanto directorio como archivo) tiene acceso total a él y puede realizar todas las acciones posibles permitidas. El resto de usuarios pueden leer y ejecutar este elemento por defecto aunque todo esto se puede cambiar para cada uno de los elementos. Todos los archivos de las carpetas de sistema y configuración suelen tener a root como propietario. Los de la carpeta personal de cada usuario tienen a ese usuario como propietario, pero el resto de usuarios normales no tienen ningún permiso sobre estos elementos, y lo mismo ocurre con la carpeta de root (que se encuentra en la raíz, en /root).
El arranque de Linux II
Cuando el kernel ya ha montado el sistema de archivos, comienzan a inicializarse algunos procesos llamados «daemons» (demonios). Cada uno de estos demonios se inicia cuando el sistema arranca y durante su vida va acontrolar un proceso determinado, y va a permanecer en segundo plano (transparente para el usuario), no vamos a notar que se está ejecutando a menos que pidamos información a este proceso, lo detengamos o lo reiniciemos. Algunos de estos demonios son, por ejemplo, el servidor web, el servidor de correo, el cortafuegos, el servidor de nombres DNS… y muchos otros que gestionan varias tareas, en su mayoría servicios de servidor de red para servir de host a otras máquinas. Cuando todos esos demonios se hayan cargado, aparecerá ante nosotros una línea de texto de login (autentificación en un sistema) o bien una ventana de login gráfico. Vamos a empezar entrando como usuario normal primero.
Nombramiento de dispositivos y particiones
Debemos saber de qué manera nombra Linux a los discos duros que tenemos conectados a nuestra máquina y sobre todo a sus particiones. Todos los discos duros (IDE) comienzan su nombre como hd. Un ejemplo de nombre completo de disco duro sería hda y de la primera partición de ese disco duro sería hda1.
La ‘a’ significa que ese disco duro está conecatdo al IDE1 como maestro. Si fuera esclavo tendría la ‘b’, y si estuviera conectado al IDE2 como maestro, la ‘c’, y si estuviera al IDE2 como esclavo, la ‘d’.
Articulo Original: ZonaSiete.org