Vous êtes sur la page 1sur 24

Introduccin a Linux

GNU/Linux es la denominacin mayoritariamente aceptada para referirse al sistema operativo de libre distribucin basado en Linux pero que contiene muchos otros programas de distintos orgenes, especialmente las utilidades y aplicaciones desarrolladas por el proyecto GNU. GNU es un acrnimo recursivo que se traduce como "GNU No es Unix". Este proyecto, iniciado por Richard Stallman en 1983, pretende desarrollar un sistema operativo completamente libre equivalente o compatible con UNIX. El sistema operativo es una pieza de software imprescindible en cualquier sistema informtico, e incluye el conjunto de programas que empiezan a ejecutarse al encender la mquina, sin los que no sera posible utilizar el ordenador ni interaccionar con l de ninguna forma. Microsoft Windows o Apple MacOS son conocidos ejemplos de sistemas operativos. GNU/Linux proporciona la misma funcionalidad y puede usarse en los mismos ordenadores (y tambin en muchos otros). Dentro del amplio conjunto de aplicaciones y utilidades que constituyen un sistema operativo, existe una parte que se encarga de acceder y gestionar directamente el hardware del equipo (discos, memoria, perifricos, ...). Este componente se denomina ncleo o kernel del sistema operativo y constituye la pieza central del mismo, ya que se encarga entre otras cosas del control y gestin de los archivos, procesos y en general de cualquier recurso presente en el equipo. El proyecto GNU fue evolucionando, de manera que lleg a conseguir la mayora de aplicaciones necesarias para un sistema operativo tipo UNIX, aunque el desarrollo del kernel (proyecto Hurd) se retras mucho ms de lo previsto, (de hecho todava no est completamente terminado). Por suerte, y de manera independiente a GNU, en 1991 Linus Torvalds comienza un proyecto personal para desarrollar un ncleo compatible con UNIX para procesadores Intel 386 que acabara denominndose Linux. El 25 de agosto de 1991, 20:57:08 GMT, Torvalds anunci este sistema en un envo a la red Usenet, en el newsgroup (grupo de noticias): comp.os.minix.: Hola a todos aquellos que usan Minix Estoy haciendo un sistema operativo (gratis) (solamente una aficin, no ser grande ni profesional como el GNU) para clones 386(486) AT. Este ha estado gestndose desde abril, y est comenzando a estar listo. Me gustara recibir cualquier comentario sobre las cosas que gustan/disgustan en minix, ya que mi OS se le parece un poco. (la misma disposicin fsica del sistema de archivos, debido a motivos prcticos, entre otras cosas). Actualmente he portado bash(1.08) y gcc(1.40), y las cosas parecen funcionar. Esto implica que conseguir algo prctico dentro de unos meses, y me gustara saber que caractersticas quiere la mayora de la gente. Cualquier sugerencia es bienvenida, pero no prometer que las pondr en prctica :-) Linus Benedict Torvalds (torvalds@kruuna.helsinki.fi) PD. S es libre de cualquier cdigo de minix, y tiene un sistema de archivos multi-hilo. NO es portable (usa 386 una conmutacin de tarea etc.), y probablemente nunca ser soportada por ninguno otro ms que los discos duros AT, as que esto es todo que tengo :-(. Linux fue adoptado como ncleo del sistema GNU, y junto a l y otros muchos programas, constituye el actual sistema operativo GNU/Linux.

Linux ha sido portado a multitud de arquitecturas, y a pesar de que actualmente su desarrollo se lleva a cabo por un nmero ms amplio de programadores, Linus Torvalds sigue liderando el desarrollo del kernel, coordinando el trabajo del equipo y manteniendo directamente diversas partes del mismo.

Caractersticas de GNU/Linux
Desde mi punto de vista las principales caractersticas, o quiz esos rasgos diferenciales que han hecho Linux un sistema operativo emergente y cada vez ms utilizado son: - Multiprocesamiento Simtrico: El ncleo del sistema (Kernel) tiene capacidad para ofrecer el mximo rendimiento de aquellos ordenadores los cuales tengan implementados mas de un procesador en la placa base. - Multiplataforma: Linux es capaz de correr en diversas y mltiples arquitecturas. Funciona bajo cualquier procesador Intel de la gama x86, ordenadores Power PC (Macintosh), ordenadores Amiga, estaciones de trabajo Alpha, en arquitecturas SPARC, RISK, ... - Multitarea Prioritaria: Linux, como otros sistemas operativos, tiene la capacidad de ejecutar de forma simultnea varias aplicaciones informticas. A su tipo de multitarea se le llama del tipo prioritaria ya que todas aquellas aplicaciones que se ejecuten van a ser ejecutadas por el sistema asignando a cada uno de ellos un nivel prioritario y distribuyendo el tiempo de procesamiento entre dichas aplicaciones. Esta multitarea prioritaria que hace Linux se realiza supervisando los procesos de las aplicaciones que estn en ejecucin y los procesos que estn en espera de ejecucin. De esta manera parece que todas esas aplicaciones estn ejecutndose al mismo tiempo. - Multiusuario: El concepto de un sistema multiusuario es precisamente ese, el de poder trabajar de forma simultnea con varios usuarios al mismo tiempo en el mismo sistema. Estas diferentes sesiones de usuarios que se pueden hacer simultneamente se pueden realizar en un mismo terminal del sistema o en varios. Y la caracterstica principal, y posiblemente el hecho por el cual ahora mismo estamos escribiendo estas lneas. - Un sistema Open Source: Al contrario de otros sistemas de tipo comercial, como puedan ser los sistemas de la familia Windows, Linux es un sistema de cdigo abierto (Open Source) y cualquier usuario de cualquier parte del planeta tiene acceso a las fuentes del sistema, pudiendo hacer cualquier tipo de modificacin y MEJORA en l. As como las fuentes del sistema estn disponibles, tambin lo estn las fuentes de la mayora de las aplicaciones que hay en Linux. Esto supone la gran ventaja frente a sistemas que no permiten acceder a tal fuente de informacin.

Filosofa del Software Libre El cdigo fuente de un programa es la 'forma original' del mismo, tal y como lo escribi el programador. Consiste en un texto legible y que puede ser modificado o adaptado fcilmente por cualquiera que tenga los conocimientos suficientes sobre el correspondiente lenguaje de programacin. En la mayora de casos, el cdigo fuente no puede ejecutarse directamente en el ordenador, sino que debe convertirse primero a otro formato utilizando las herramientas adecuadas (generalmente compiladores). Habitualmente los vendedores de software comercial entregan los programas a sus clientes en este segundo formato (binario), que no es directamente modificable. Guardndose el cdigo fuente, las empresas de software se aseguran de que slo ellas pueden realizar futuras modificaciones al programa. Sin embargo, no siempre han existido intereses comerciales sobre el software. Cuando aparecieron los grandes ordenadores (mainframes) los vendedores de hardware no daban excesiva importancia al sistema operativo ni al resto de programas incluidos. El "producto" a vender era el hardware, mientras que el software era un simple aadido que permita a sus clientes usar los ordenadores. Muchos desarrolladores compartan sus programas y no resultaba complicado a los usuarios conseguir el cdigo fuente.

A medida que las empresas de informtica comenzaron a considerar el software como un producto estratgico, la situacin empez a cambiar y los fabricantes comenzaron imponer restricciones a los usuarios de sus programas.Es en este contexto en el que Richard Stallman publica su manifiesto GNU, en el que declara su intencin de desarrollar un sistema operativo libre junto a las intenciones que le animan a hacerlo. Software Libre Es muy importante entender que el trmino Software Libre o 'Free Software', est relacionado con las libertades que un determinado programa permite a sus usuarios, y no con el precio del mismo. Esta confusin es bastante frecuente debido a que en ingls la misma palabra (free) significa tanto libre como gratis. En palabras del propio Stallman: "Para entender el concepto, debes pensar en 'libre' como en 'libertad de expresin', no como en 'cerveza gratis'." Software Libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software. De modo ms preciso, y de nuevo segn Stallman, se refiere a cuatro libertades de los usuarios del software: La libertad de usar el programa, con cualquier propsito (libertad 0). La libertad de estudiar cmo funciona el programa, y adaptarlo a tus necesidades (libertad 1). El acceso al cdigo fuente es una condicin previa para esto. La libertad de distribuir copias, con lo que puedes ayudar a tu vecino (libertad 2). La libertad de mejorar el programa y hacer pblicas las mejoras a los dems, de modo que toda la comunidad se beneficie. (libertad 3). El acceso al cdigo fuente es un requisito previo para esto.

Software privativo El software distribuido bajo una licencia ms restrictiva que no respete las libertades del software libre, se denomina en general software privativo. El software privativo reserva la mayora de los derechos de modificacin, duplicacin y redistribucin para el titular de los derechos de propiedad intelectual (el programador o en ocasiones el distribuidor).

Licencias de Software Una licencia de software es una forma de contrato mediante el que el titular de los derechos de autor, establece las condiciones y trminos bajo los que el usuario puede utilizar un determinado programa informtico. La licencia tambin puede contener otras clasulas y limitaciones respecto a la distribucin, plazos, lugares de uso, etc ... Aunque inicialmente las licencias de software se desarrollaron para limitar el uso de los programas, pueden utilizarse tambin para garantizar los derechos relativos al software libre. Para que un determinado programa pueda considerarse software libre, es necesario distribuirlo junto a una licencia que garantice que se mantienen las libertades expuestas anteriormente. Entre las distintas licencias de software libre, la ms conocida es la GNU GPL (General Public License o licencia pblica general). Un aspecto esencial de los programas GPL es la obligacin de redistribuir bajo la misma licencia cualquier versin modificada de los mismos, a fin de garantizar que todas las mejoras

realizadas reviertan de nuevo a la comunidad libre. Esta caracterstica se conoce a menudo como el "efecto vrico" de la GPL. Tambin se utiliza el trmino "cubierto por copyleft" (en oposicin a copyright) como equivalente a "distribuido bajo GPL". Este tipo de licencias junto a la universalizacin del acceso a Internet, han conseguido un sorprendente modelo de desarrollo de programas en el que distintos programadores pueden colaborar entre s en un mismo proyecto sin importar su situacin geogrfica. Este modelo de desarrollo ha resultado ser extraordinariamente eficaz para todo tipo de proyectos de software.

Software de cdigo abierto El software libre no es slo una nueva forma de entender la manera en que se usan y distribuyen los programas, sino que implica una serie de valores ticos que tienden a propagarse a otras reas creativas y artsticas (como por ejemplo las licencias Creative Commons). Este espritu "transgresor" y las controversias legales que en ocasiones plantea la licencia GPL, han provocado el recelo de ciertos sectores, especialmente en el mbito empresarial. Estas implicaciones, junto a la confusin entre libre y gratis que produce la palabra "free", movieron a algunos miembros de la comunidad a introducir el trmino Cdigo abierto (Open Source) en lugar de Software Libre. Literalmente, software de cdigo abierto, indica nicamente la disponibilidad del cdigo fuente, lo que garantiza slo parte de las cuatro libertades sealadas por Stallman. Por este motivo, y aunque son muy similares, actualmente software libre y software de cdigo abierto no se consideran exactamente sinnimos, utilizndose este ltimo trmino sobre todo en aquellos casos en los que se distribuye sofware bajo licencias parcialmente libres pero sin "efecto vrico" (a diferencia de la GNU GPL).

Estructura
De la misma manera que Unix, Linux se puede dividir generalmente en cuatro componentes principales: el ncleo (kernel), la shell, el sistema de archivos y las utilidades. El ncleo es el programa medular que ejecuta programas y gestiona dispositivos de hardware tales como los discos y las impresoras. La shell proporciona una interfaz para el usuario. Recibe rdenes del usuario y las enva al ncleo para ser ejecutadas. El sistema de archivos, organiza la forma en que se almacenan los archivos en dispositivos de almacenamiento tales como los discos. Los archivos estn organizados en directorios. Cada directorio puede contener un nmero cualquiera de subdirectorios, cada uno de los cuales puede a su vez, contener otros archivos. El ncleo, la shell y el sistema de archivos forman en conjunto la estructura bsica del sistema operativo. Con estos tres elementos podemos ejecutar programas, gestionar archivos e interactuar con el sistema. Adems, Linux cuenta con unos programas de software llamados utilidades que han pasado a ser considerados como caractersticas estndar del sistema. Dentro de estas utilidades encontratermos editores de texto, utilidades de red, reproductores de msica, etc Kernel El kernel ncleo de linux se puede definir como el corazn de este sistema operativo. Es el encargado de que el software y el hardware del ordenador puedan trabajar juntos. Las funciones ms importantes del mismo, aunque no las nicas, son: Administracin de la memoria para todos los programas y procesos en ejecucin. Administracin del tiempo de procesador que los programas y procesos en ejecucion utilizan. Es el encargado de que podamos acceder a los perifricos/elementos de nuestro ordenador de una manera cmoda.

Profundizaremos ms adelante en las caractersticas y posibilidades del kernel de nuestro sistema

Shell La shell proporciona una interfaz entre el ncleo y el usuario. Se puede describir como un intrprete: interpreta las rdenes que introduce el usuario y las enva al ncleo. La interfaz del shell es muy sencilla. Normalmente consiste en un inductor desde el que se teclea una orden y despus se pulsa enter. En cierta forma, se est tecleando una orden en una lnea. A menudo, esta lnea se conoce como la lnea de comandos. Como una alternativa a la interfaz de la lnea de comandos, Linux proporciona una interfaz grfica de usuario(GUI) llamada X-Windows, que cuenta con varios administradores de ventanas. Aunque un administrador de ventanas constituye una interfaz flexible y vistosa, hay que tener presente que tan solo es un aadido a la shell. El administrador de ventanas simplemente le pasa a la shell las rdenes que recibe, sta las interpreta y las enva de nuevo al ncleo, para ser ejecutadas.

Sistema de archivos Todo disco duro se divide en sectores lgicos donde se guarda la informacin, esto sucede en todo sistema operativo y es inevitable (Vase http://www.monografias.com/trabajos14/discosduros/discosduros.shtml).

La primera vez que se almacena la informacin se realiza en forma secuencial; pero a medida que se extrae, borra y/o graba alguna parte de la misma se rompe con este orden ocurriendo la fragmentacin de la informacin. Por ello se cuenta con un encargado, por as decirlo, que mantiene actualizado un ndice bastante complejo que le permite en cualquier momento encontrar la informacin especfica que se requiere. Este encargado con su ndice es el Sistema de Archivos. As tenemos que el Sistema de Archivos es la parte del sistema de administracin del almacenamiento responsable, principalmente, de la administracin de los archivos del almacenamiento secundario. Es la parte del S. O. responsable de permitir compartir controladamente la informacin de los archivos. El sistema de archivos LINUX est caracterizado por: Una estructura jerrquica. Un tratamiento consistente de la informacin de los archivos. Proteccin de los archivos.

-Tipos de sistemas de archivos El soporte de los sistemas de archivos de GNU/Linux es notoriamente distinto al de Windows y OS X. En Windows y OS X podrs encontrar software que otorgue soporte a sistemas de archivos no-estndar, pero ambos SO pueden ser instalados nicamente en sus sistemas de archivo nativos, y a partir de all se puede agregar soporte de terceros. En contraste, GNU/Linux tiene un gran conjunto de sistemas de archivos soportados en su kernel. Pero, cmo se supone que sepas cul elegir al momento de la instalacin? Qu es el journaling? Antes que nada, deberemos tener una nocin bsica de lo que es el journaling. Lo nico que debes tener en claro, es que todo sistema de archivos moderno usa alguna forma de journaling y que en cada computadora de escritorio o dispositivo mvil en el que instales GNU/Linux querrs usar un sistema de archivos con journaling El journaling entra en accin nicamente cuando se escribe en un disco y acta como si fuera un tipo de reloj de personal para todas las escrituras. Esto soluciona el problema de una posible corrupcin en el disco ante un posible inconveniente: por ejemplo, cuando se est escribiendo y la computadora crashea o se corta la luz. Sin el journal, el sistema operativo no tendra forma de saber si el archivo fue escrito de forma completa y correcta. Funciona de la siguiente manera (a grandes rasgos): el archivo es primero escrito en el journal, se ingresa y cuando est listo, se escribe el archivo en el disco. Una vez que se haya completado exitosamente la operacin, es archivo es eliminado del journal, se retira y la operacin se considera terminada. Si se pierde la energa elctrica durante la escritura, el sistema de archivos puede revisar el journal de todas las operaciones que no se hayan declarado como terminadas y determinar en qu punto se debe reanudar.

La mayor contra del journaling es que sacrifica parte del rendimiento del sistema a cambio de la estabilidad. Puede producirse un overhead por escribir un archivo en el disco, pero los sistemas de archivos solucionan esto no escribiendo el archivo completo en el journal. Slo se escriben la metainformacin, el inodo o la locacin, antes de que el archivo se escriba en el disco en su totalidad. Sistemas de archivos Como estaremos echando un vistazo a gran parte de los sistemas de archivos disponibles para GNU/Linux, slo nos referiremos brevemente a cada uno y daremos algunas sugerencias respecto a cundo usar o no usar el sistema de archivos en cuestin. Esto no significa que esos sistemas de archivos no puedan ser utilizados en otros casos, sino que remarcamos las reas en que cada sistema de archivos encajar estupendamente. Ext viene de Extended File System y fue el primer sistema creado especficamente para GNU/Linux. Actualmente tiene 4 revisiones y cada una de ellas ha agregado caractersticas significativas. La primera versin de Ext fue una considerable actualizacin del sistema usado en ese momento, Minix, pero carece de la mayora de las caractersticas utilizadas en la computacin actual. Debido a su antiguedad y a sus limitaciones no es un sistema que te convendra utilizar actualmente. Adems, ya no tiene soporte de la mayora de las distribuciones. Ext2 no es un sistema con journaling, y cuando fue lanzado fue el primero en permitir atributos de archivo extendidos y discos de 2 terabytes. Como Ext2 no utiliza journal, procesa menor cantidad de escrituras aplicadas al disco. Debido a los bajos requerimientos de escritura, y por consiguiente formateos ms superficiales, es ideal para memorias flash, especialmente en dispositivos USB. Los modernos discos de estado slido (SSDs) tienen una vida til mayor y caractersticas adicionales que hacen que no necesiten utilizar sistemas de archivos con journaling. Ext3 es simplemente Ext2 con journaling. El objetivo de Ext3 era ser compatible con Ext2 y de esa forma los discos podran convertirse entre los dos sistemas sin la necesidad de un formateo. Al querer mantener la compatibilidad, gran parte de las limitaciones de Ext2 todava existen en Ext3. Pero por otro lado, es beneficioso ya que la mayora de los tests, bug fixes, y casos de uso para Ext2 tambin aplican a Ext3, hacindolo estable y eficiente. Te conviene utilizarlo si quieres hacer que un sistema con Ext2 tenga journaling. Debido a los aos de optimizacin, probablemente obtengas la mayor performance al utilizar este sistema para bases de datos. No es la mejor opcin para servidores de archivos ya que carece de snapshots del disco y la recuperacin de archivos puede tornarse complicada.

Ext4, como Ext3, mantiene compatibilidad retroactiva. De hecho, podrs montar unidades con Ext2 y Ext3 como una unidad Ext4 y con simplemente eso podrs incrementar la performance del sistema bajo ciertas condiciones. Tambin puedes montar un sistema Ext4 como un Ext3 sin efectos no deseados. Ext4 reduce la fragmentacin de archivos, permite mayores dimensiones de volmenes y archivos, y emplea asignacin retrasada que ayuda a la fragmentacin y a aumentar la vida til de las memorias flash. Si bien esto es utilizado en otros sistemas de archivos, la asignacin retrasada puede provocar la prdida de datos (esto ha sido objeto de varios estudios). Es una mejor opcin para SSDs (en vez de Ext3) y mejora la performance general en comparacin a las versiones de Ext anteriores. Utilzalo si es el sistema de archivos soportado por defecto en tu distribucin. Si bien no tiene tanta antigedad como Ext3, demuestra un excelente desempeo para servidores de bases de datos. BtrFS, pronunciado como Butter FS o Better FS, est siendo desarrollado por Oracle y contiene funcionalidades similares a las de ReiserFS. Su nombre viene de B-Tree File System y permite drive pooling, snapshots on-the-fly, compresin transparente y desfragmentacin online. Est siendo especficamente diseado para empresas, pero la mayora de las distribuciones de consumo tienen planes de adoptar esta tecnologa como por defecto eventualmente. Si bien todava no es estable en varias distribuciones, busca ser el reemplazo de Ext4: ofrece conversin on-the-fly desde Ext3/4. Tambin es interesante notar que el principal desarrollador de Ext3/4, Theodore Tso, ha dicho que BtrFS es el camino a seguir. BtrFS funciona perfectamente para servidores de archivos debido a su desempeo, a los snapshots y a muchas otras caractersticas. Oracle tambin est trabajando en un reemplazo para NFS y CIFS llamado CRFS que cuenta con una mayor rendimiento y otras caractersticas interesantes. Esto lo convierte en la mejor opcin para un servidor de archivos. Las pruebas de rendimiento han demostrado cierto retraso respecto a Ext4 en memorias flash como los SSDs, como en servidores de bases de datos, e incluso en algunos casos de lectura/escritura sobre otras tecnologas. Ubuntu 10.10 slo permite la utilizacin de BtrFS a travs del instalador sin interfaz grfica (text based alternate installer) y an as la particin /boot sigue requiriendo un sistema Ext. ReiserFS fue un gran avance para los sistemas de archivos en GNU/Linux cuando se introdujo en el 2001. Incluy muchas de caractersticas nuevas que Ext nunca pudo implementar. ReiserFS fue reemplazado por Reiser4 en el 2004 que mejor sustancialmente varios aspectos que no estaban o estaban incompletos en el lanzamiento inicial. Sin embargo, el desarrollo de Reiser4 es bastante lento y todava no tiene soporte en el kernel principal de GNU/Linux. ReiserFS es la nica versin actualmente disponible en varias distribuciones. Tiene un excelente rendimiento para archivos pequeos como logs, y se adapta perfectamente servidores de bases de datos y de e-mails. ReiserFS puede ser dinmicamente expandido pero no comprimido y no soporta cifrado FS level. EL futuro de Reiser4 est siendo cuestionado ya que BtrFS es una mejor opcin.

XFS fue desarrollado por Silicon Graphics en 1994 para su propio sistema operativo (IRIX5.3), y fue liberado bajo la GNU General Public License en Mayo de 2000 y posteriormente portado a GNU/Linux en el 2001. Es directamente comparable a Ext4 en algunos aspectos ya que tambin utiliza asignacin retrasada para ayudar a la fragmentacin de archivos y no permite snapshots montados. XFS se ha

demostrado proveer gran desempeo con archivos grandes y tiene la capacidad de ser redimensionado, sin embargo no podrs comprimir un volumen XFS. Es ideal para servidores de archivos multimedia ya que tiene un rendimiento constante para archivos de gran tamao. La mayora de las distribuciones requieren que la particin /boot est separada ya que la compatibilidad entre XFS y GRUB puede ser impredecible. El rendimiento con archivos ms pequeos no es tan bueno respecto a otros sistemas, haciendo que sea una mala eleccin para servidores de bases de datos, e-mails, y otros que utilizan mucha cantidad de logs. No est tan soportado como Ext para computadoras de uso personal y no tiene una mejora de desempeo significativa o caractersticas que superen a Ext3/4. JFS fue desarrollado por IBM en 1990 y luego fue portado a GNU/Linux. Su nombre proviene de Journaling File System. Se caracteriza por su bajo uso del CPU y por el buen rendimiento, tanto para archivos grandes como para archivos de menor tamao. Las particiones JFS pueden ser dinmicamente redimensionadas pero no pueden ser comprimidas, como en ReiserFS y en XFS. Fue extremadamente bien planificado y tiene soporte en la mayora de las ms grandes distribuciones, sin embargo el testing en servidores GNU/Linux no ha sido tan extenso como con Ext, ya que fue diseado para AIX. Excelente desempeo para archivos de cualquier tamao, y por su uso limitado del CPU es probablemente la mejor opcin para servidores y computadoras de bajo consumo. No tiene herramientas de drive pooling embebidas. Esto hace que no sea tan expandible como otros sistemas (como BtrFS), pero para por ejemplo una netbook con un solo disco rgido es una buena opcin. Provee un checkeo de discos muy veloz en comparacin con Ext, pero han habido ciertos reportes de corrupcin de discos en usos a largo plazo.

ZFS es un sistema digno de mencionar ya que tambin est siendo desarrollado por Oracle y tiene caractersticas similares a BtrFS y a ReiserFS. Se escuch hablar de l hace poco tiempo cuando se rumoreaba que Apple iba a utilizarlo como sistema de archivo por defecto. Debido a su licencia, Sun CDDL, no es compatible con el kernel de GNU/Linux. No obstante, tiene soporte a travs del Sistema de archivos en Espacio de Usuario de GNU/Linux (FUSE)que hace posible la utilizacin de ZFS. Muestra un gran rendimiento en grandes gabinetes de discos (disk arrays). Soporta una gran cantidad de opciones avanzadas, incluyendo drive pooling, snapshots y creacin de bandas en discos dinmicos (dynamic disk striping). Puede ser un tanto difcil de instalar en GNU/Linux ya que requiere de FUSE y no es una caracterstica soportada por muchas distribuciones. Swap no es un sistema de archivos propiamente dicho, pero es importante conocer esta opcin cuando el sistema solicita una particin Swap. Es utilizado como memoria virtual y no tiene una estrucutra de sistema de archivos. No puede ser montado y ledo, simplemente es utilizado por el kernel para escribir pginas de memoria en el disco. Es utilizado nicamente cuando la computadora se queda sin memoria fsica o cuando se utiliza la hibernacin.

10

Otros sistemas de archivos soportados Principalmente se soportan para garantizar la compatibilidad y el intercambio de datos entre distintos medios o sistemas operativos. iso9660: sistema de archivos estndar en CD-ROMs. Ncpfs: para montar volmenes Novell a travs de una red. Nfs: Network File System: posibilita el almacenamiento de datos en el ordenador que se elija dentro de una red y permite garantizar el acceso a travs de la red. smbfs Server Message Block: utilizado por productos como por ejemplo Windows para el acceso de archivos a travs de una red. sysv Utilizado en SCO UNIX, Xenix y Coherent (sistemas UNIX comerciales para PCs). ufs Utilizado en BSD, SunOS y NeXTstep. Slo se soporta en modo de lectura. umsdos UNIX on MSDOS: sistema de archivos basado en fat que emula las caractersticas de Unix (derechos, enlaces, nombres de archivo largos) mediante archivos especiales. vfat Virtual FAT: extensin del sistema de archivos fat (soporta nombres de archivo largos). ntfs Windows NT file system, slo permiso de lectura.

-Estructura de directorios ste es uno de los conceptos que han de quedar ms claros en estos primeros pasos del sistema operativo. Un sistema Linux reside bajo un rbol jerrquico de directorios muy similar a la estructura del sistema de archivos de plataformas Unix. Originariamente, en los inicios de Linux, este rbol de directorios no segua un estndar cien por cien, es decir, podamos encontrar diferencias en l de una distribucin a otra. Todo esto hizo pensar a cierta gente* que, posteriormente, desarrollaran el proyecto FHS (Filesystem Hierarchy Standard, o lo que es lo mismo: Estndar de Jerarqua de Sistema de Ficheros) en otoo de 1993. * Rusty Russell, Daniel Quinlan y Christopher Yeoh, creadores del estndar FHS entre otras personas.

FHS se define como un estndar que detalla los nombres, ubicaciones, contenidos y permisos de los archivos y directorios, es decir, un conjunto de reglas que especifican una distribucin comn de los directorios y archivos en sistemas Linux. Como se ha mencionado, se creo inicialmente para estandarizar la estructura del sistema de archivos para sistemas GNU/Linux y ms tarde, en torno al ao 1995, tambin para su aplicacin en sistemas Unix. FHS no es ms que un documento gua, es decir, cualquier fabricante de software independiente o cualquier persona que decida crear una nueva distribucin GNU/Linux, podr aplicarlo o no a la estructura del sistema de archivos, con la ventaja de que si lo integra en el sistema, el entorno de ste ser mucho ms compatible con la mayora de las distribuciones. Es importante saber que el estndar FHS es en cierto modo flexible, es decir, existe cierta libertad en el momento de aplicar las normas. De ah que existan en la actualidad leves diferencias entre distribuciones GNU/Linux.

Objetivos principales de FHS

11

o o o o

Presentar un sistema de archivos coherente y estandarizado. Facilidad para que el software prediga la localizacin de archivos y directorios instalados. Facilidad para que los usuarios prediga la localizacin de archivos y directorios instalados. Especificar los archivos y directorios mnimos requeridos.

Todo en Linux es un archivo!! Cierto, todo en un sistema Linux es un archivo, tanto el Software como el Hardware. Desde el ratn, pasando por la impresora, el reproductor de DVD, el monitor, un directorio, un subdirectorio y un fichero de texto. De ah vienen los conceptos de montar y desmontar por ejemplo un CDROM. El CDROM se monta como un subdirectorio en el sistema de archivos. En ese subdirectorio se ubicar el contenido del disco compacto cuando est montado y, nada cuando est desmontado. Este concepto es muy importante para conocer como funciona Linux. Organizacin de sistema de archivos segn FHS

El directorio raz Todo surge a partir del directorio raz (/). El contenido de este directorio debe ser el adecuado para reiniciar, restaurar, recuperar y/o reparar el sistema, es decir, debe proporcionar mtodos, herramientas y utilidades necesarias para cumplir estas especificaciones.

12

Adems, es deseable que se mantenga los ms razonablemente pequeo como sea posible por cuestin de funcionamiento y de seguridad. Por ltimo, este debe que ser el nico directorio en el nivel superior del rbol jerrquico de archivos y, tiene que ser imposible moverse ms all del mismo. Vemos, por ejemplo, un listado de su estructura:

Contenido del directorio raz /bin En este directorio se ubica el cdigo binario o compilado de los programas y comandos que pueden utilizar todos los usuarios del sistema. La denominacin es clara, bin de BINARY (binario en castellano). No se debe haber subdirectorios en /bin. Estos son, por ejemplo, algunos comandos contenidos en /bin.

* La @ al lado del nombre de un fichero representa un enlace simblico

13

/boot Este directorio contiene todo lo necesario para que funcione el proceso de arranque del sistema. /boot almacena los datos que se utilizan antes de que el kernel comience a ejecutar programas en modo usuario* . El ncleo del sistema operativo (normalmente se guarda en el disco duro como un fichero imagen llamado vmlinuz-versin _ ncleo) se debe situar en este directorio o, en el directorio raz. *El ncleo tiene la capacidad de crear dos entornos o modos de ejecucin totalmente separados. Uno de ellos est reservado para el propio kernel, denominado el modo ncleo; y el otro est reservado para el resto de programas, llamado el modo usuario. Realmente se crean dos entornos totalmente separados, es decir, cada uno tiene su propia zona de memoria y procesos independientes. Dmonos cuenta que esta tcnica ofrece mucha seguridad y estabilidad al sistema. Cuando un proceso del modo usuario necesita recursos del modo kernel (por ejemplo, acceder a la memoria USB) se hacen uso de las famosas llamadas al sistema (interface que ofrece el ncleo para la comunicacin del modo usuario con el modo kernel).

Vemos su contenido:

/dev Este directorio almacena las definiciones de todos los dispositivos. Como se ha mencionado, cada dispositivo tiene asociado un archivo especial. Profundizaremos sobre los dispositivos ms adelante, per de momento nos vasta con saber que Linux utiliza el directorios /dev para asociar dispositivos (devices) con ficheros. /etc

14

El directorio /etc contiene archivos necesarios para configuracin del sistema. Archivos que son propios del ordenador y que se utilizan para controlar el funcionamiento diversos programas. Deben ser ficheros estticos y nunca pueden ser archivos binarios y/o ejecutables. En definitiva, /etc mantiene los archivos de configuracin del sistema para un ordenador especfico. Vemos parte de su contenido:

/home Directorio que contiene los subdirectorios que son directorios origen para cada uno de los usuarios del sistema. Cada subdirectorio /home/user de cada usuario proporciona el lugar para almacenar sus ficheros, as como los archivos de configuracin propios de cada uno. Es importante saber que tambin algunos servicios, y no solo usuarios, crean aqu su directorio origen, por ejemplo: el servicio de transferencia de ficheros (FTP). El administrador tiene su propio directorio home, que es /root. /lib El directorio /lib contiene libreras compartidas (similar a las dlls para los usuarios de Windows) necesarias para arrancar el sistema y para los ficheros ejecutables contenidos en, por ejemplo, /bin. Normalmente las libreras son ficheros binarios escritos en lenguaje C *. Tambin contiene mdulos del kernel esenciales que permiten el funcionamiento de muchos elementos Hardware. Se ubicarn normalmente en /lib/modules/versin-del-kernel/. *En el apartado /usr/include se explica que son y como funcionan las libreras y los archivos cabecera.

15

Vemos parte de su contenido:

/media Este directorio contiene los subdirectorios que se utilizan como puntos del montaje para los medios de almacenamiento, tales como disquetes, CD-ROM y memorias USBs. /mnt Este directorio contiene sistemas de archivos externos que hayan sido montados. Las entidades que aparecen dentro de /mnt representan recursos externos a los que se puede acceder a travs de este directorio. /opt En este directorio (/opt de options, u opciones en castellano) se suelen instalar complementos o addons de los programas. Las aplicaciones crean un subdirectorio dentro de /opt denominado con el mismo nombre del programa. /root Este directorio es el directorio /home del administrador del sistema (root). /sbin Los programas y comandos que se utilizan para la administracin del sistema se almacenan en /sbin, /usr/sbin y /usr/local/sbin.

16

/sbin nicamente contiene los ejecutables esenciales para el arranque, recuperacin y reparacin del sistema. Todos estos directorios (/sbin, /usr/sbin y /usr/local/sbin) se utilizan con fines administrativos, por tanto, slo puede ejecutar su contenido el administrador. Vemos parte de su contenido:

/tmp En este directorio se guardan los archivos temporales. /usr Es la segunda seccin ms grande o estructura jerrquica (despus del directorio raz) del sistema de ficheros. Este directorio est pensado para almacenar datos que se puedan compartir con otros hosts. Estos datos adems deben ser inalterables, es decir, slo de lectura. Normalmente, este directorio tiene su particin propia. Comnmente, se almacena aqu el software instalado en el sistema. Vemos su contenido:

/usr/bin ste es el directorio primario de comandos ejecutables del sistema. /usr/bin alberga los archivos ejecutables vinculados al software instalado en el sistema.

17

/usr/include Linux est escrito en lenguaje C. En C es posible utilizar funciones que ya estn predefinidas (como otros muchos lenguajes de programacin) para incluirlas en el programa que estemos haciendo. Esta tcnica se denomina programacin modular. Estas funciones se llaman comnmente archivos cabecera (.h de header) y contienen las declaraciones externas de una librera. La manera de incluir estos archivos cabecera en nuestro programa, es haciendo uso de la directiva include; de ah la denominacin del subdirectorio. Ejemplo programa C: #include main() { unsigned int num,masc; char resp; clrscr(); do{ Todos estos ficheros cabecera (que necesite el software instalado en el sistema) se almacenan en este subdirectorio. *Una librera no es ms que un programa compilado, donde originariamente se implemento el cdigo fuente de las funciones que la componen. La declaracin pblica del conjunto de funciones de la librera reside en los archivos cabecera. Vemos parte de su contenido:

18

/usr/lib Este directorio incluye libreras compartidas y ficheros binarios pensados para no ser ejecutados directamente por los usuarios del sistema. /usr/local/ /usr/local/ es para uso del administrador del sistema cuando instala software localmente. Puede usarse para programas y datos que son compartibles entre un grupo de mquinas Este subdirectorio tiene una estructura similar a la del directorio /usr. Vemos su contenido:

/usr/sbin Este directorio contiene comandos y programas no esenciales usados exclusivamente por el administrador de sistema. Como se ha comentado, los comandos necesarios para la reparacin, recuperacin y otras funciones esenciales del sistema, se almacenan en /sbin. Vemos parte de su contenido:

19

/usr/src Por lo general, en /usr/src (src de source o, fuente en castellano) se guarda el cdigo fuente del Kernel del sistema. /var Este directorio va ha contener ficheros de datos variables y temporales, as como archivos spool (ficheros almacenados en filaen espera a ejecutarse, como por ejemplo colas de impresin). Todos los log del sistema y los generados por los servicios instalados, se ubican dentro de la estructura jerrquica de /var. Esto quiere decir que el tamao global de este directorio va ha crecer constantemente. La utilidad de /var radica en poder detectar problemas para prevenirlos y solucionarlos. Es aconsejable montar en una nueva particin este directorio. Si no se pudiera, es preferible ubicar /var fuera de la particin raz y de la particin /usr. Vemos su contenido:

/var/cache

20

Subdirectorio pensado para albergar datos de aplicaciones en cache (usados en un espacio breve de tiempo). /var/lib Encontramos aqu informacin sobre el estado variable de las aplicaciones. /var/lock Aqu se almacenan los ficheros que estn bloqueados por el sistema. /var/log En /var/log se guardan los mensajes de registro generados por el sistema operativo y por diversos servicios. Por ejemplo: En /var/log/messages son los logs generados por el kernel, en /var/log/httpd/access_log encontramos quien (desde que ip) est accediendo a nuestro servidor Web y, en /var/log/wtmp encontraremos todos los accesos y salidas en el sistema. Vemos su contenido:

/var/mail Linux enviar aqu los archivos de correos de cada usuario del sistema. /var/run /var/run contiene archivos con informacin del sistema que lo describen desde que se arranc. Generalmente, se borrar todos los archivos que cuelgan de este subdirectorio al comenzar el proceso de arranque. /var/spool /var/spool contiene ficheros almacenados en forma de fila de trabajos, para un procesamiento posterior. Un ejemplo claro puede ser los trabajos que guarda la impresora para, posteriormente, ejecutarlos por un orden de llegada y/o prioridad.

21

/var/tmp Algunos datos temporales se almacenan aqu y que, posiblemente, pueden aparecer en nuestra distribucin GNU/Linux para no saturar el directorio /tmp. Directorio /lost+found. Perdidos y encontrados Las herramientas y utilidades para restaurar y/o reparar el sistema de archivos almacenan los datos en este directorio. Es un espacio temporal donde se guardan los datos que se recuperan despus de una cada del sistema. Fijmonos que, normalmente en cada particin que creemos existir un /lost+found en el nivel superior. Por ltimo, decir que este directorio existe slo en distribuciones que tengan como sistemas de archivos ext2 o ext3. Directorio /proc /proc es un sistema de archivos virtual. Se genera y actualiza dinmicamente, es decir, no se mantiene en el disco duro, se mantiene el la memoria RAM. Es el sistema quien lo crea y lo destruye. Este directorio contiene informacin sobre los procesos, el ncleo e informacin relativa al sistema. Vemos su contenido:

* Los subdirectorios identificados por un numero, corresponden a los PID de los procesos.

22

23

Distribuiciones
Una distribucin Linux o distribucin GNU/Linux (abreviada con frecuencia distro) es un conjunto de aplicaciones reunidas que permiten brindar mejoras para instalar fcilmente un sistema operativo basado en programas de muchas fuentes y licencias de uso, que reciben la denominacin convencional de GNU/Linux. Son variantes de sistemas libres del tipo GNU/Linux que, en general, se diferencian entre s por las herramientas para configuracin y sistemas de administracin de paquetes de software para instalar. La eleccin de una distribucin depende de las necesidades del usuario y de gustos personales. Una distribucin es un modo de facilitar la instalacin, la configuracin y el mantenimiento de un sistema GNU/Linux. Al principio, las distribuciones se limitaban a recopilar software libre, empaquetarlo en disquetes o CD-ROM y redistribuirlo o venderlo. Ahora las grandes distribuciones -RedHat, SuSE, Caldera, Mandrake, Corel Linux, TurboLinux...- son potentes empresas que compiten entre s por incluir el ltimo software, a veces tambin software propietario, con instalaciones grficas capaces de autodetectar el hardware y que instalan un sistema entero en unos cuantos minutos sin apenas preguntas. En la distribucin encontramos tambin el kernel de Linux, y prcticamente todas incorporan un entorno grfico (con frecuencia varios) que nos permitir utilizar nuestro sistema de forma sencilla (con ratn y ventanas) tal y como podramos hacerlo en Windows o MacOS. Las distribuciones suelen disponer tambin de una amplia gama de paquetes de software adicionales, adems de proporcionar actualizaciones peridicas de los distintos programas. De esta forma, al usar una distribucin se simplifica tambin tanto la instalacin de software adicional como la actualizacin del sistema instalado. Adems de estas ventajas, las distribuciones aaden otros valores: obtener la distribucin en soporte fsico (cd's, dvd's, ...), disponer de documentacin impresa o en formato electrnico, posibilidad de contratar soporte tcnico para la instalacin o el mantenimiento, etc ... Actualmente existe un gran nmero de distribuciones diferentes y con caractersticas muy variadas: distribuciones de propsito general, especializadas por actividades o profesiones (educacin, medicina, ...), para funciones especficas (cortafuegos, multimedia, ...), para grupos de usuarios especficos (principiantes, expertos, nios, ...), distribuciones en "live cd/dvd" que pueden utilizarse sin necesidad de instalar nada, etc ... En esta url se puede ver un timeline de la evolucin de todas las distibuciones ms importantes que existen: http://upload.wikimedia.org/wikipedia/commons/e/ed/LinuxDistroTimeline.png Entre las distribuciones de GNU/Linux, destaca el proyecto Debian/GNU. Debian nace como una iniciativa no comercial de la FSF, aunque luego se independiza de sta y va ms all del propio sistema GNU/Linux. Es la nica de las grandes distribuciones que no tiene intereses comerciales ni empresariales. Son sus propios usuarios, muy activos, quienes mantienen la distribucin de modo comunitario, incluidas todas sus estructuras de decisin y funcionamiento. Su objetivo es recopilar, difundir y promover el uso del software libre. Rene el mayor catlogo de software libre, todos ellos probados, mantenidos y documentados por algn desarrollador voluntario.

24

Vous aimerez peut-être aussi