Introducción a Unix y Ubuntu 12-04

24
Ingeniería en Sistemas Computacionales Alaniz Flores Edwin Benítez Herrera Leonardo 26/11/2012 Introducción a SOs Multix (Unix), Linux y primeros pasos en Ubuntu 12.04

Transcript of Introducción a Unix y Ubuntu 12-04

Page 1: Introducción a Unix y Ubuntu 12-04

Ingeniería en Sistemas Computacionales

Alaniz Flores Edwin

Benítez Herrera Leonardo

26/11/2012

Introducción a SOs Multix (Unix), Linux y primeros pasos en Ubuntu 12.04

Page 2: Introducción a Unix y Ubuntu 12-04

2

INTRODUCCIÓN En el presente trabajo se tocaran puntos básicos e información primordial para dar los

primeros pasos en el uso de un sistema operativo basado en Unix, en este trabajo se hablara

de una distribución Ubuntu 12.04. Se tomaran en cuenta los aspectos básicos y principales de

todo Sistema Operativo, como su sistema de archivos, su organización, métodos para la

creación de usuarios, manejo de los mismos, seguridad entre otras cosas.

En el presente trabajo también se abordara el sistema de archivos, ya que es importante

hablar sobre cómo se maneja la información y que como sabemos, todo sistema operativo

maneja información detallada de nuestros archivos y analiza los recursos físicos (hardware)

de una computadora para ser aprovechados y cumplir las funciones que requisite el operador

o usuario.

De igual modo hablaremos del antecesor de los sistemas operativos ―Libres‖ o con

núcleo similar a Linux, que son los hijos del famoso Multics (Multix para muchos), que fue

de los sistemas operativos pioneros en el uso de multitareas de los años 64, 70‘s y que a la

fecha aún permanecen latentes en el mundo de la informática, aunque no con el mismo

apogeo que en sus inicios.

Page 3: Introducción a Unix y Ubuntu 12-04

3

Índice INTRODUCCIÓN................................................................................................................................................ 2

¿QUÉ ES UNICS (UNIX)? .................................................................................................................................... 5

FAMILIAS UNIX MÁS SIGNIFICATIVAS ........................................................................................................ 6

MULTICS Y/E UNIX ¿PADRE E HIJO?............................................................................................................. 6

¿QUÉ TIENE QUE VER UNIX CON MULTIX? ................................................................................................. 6

ÓRDENES CLÁSICAS DE UNIX .................................................................................................................. 7

HABLANDO ACERCA DE LA DISTRIBUCIÓN A USAR… UBUNTU 12.04 .......................................................... 8

SISTEMA DE ARCHIVOS SOPORTADOS POR SISTEMAS BASADOS EN UNICS (UNIX) .................................... 9

EJEMPLO DE RUTA EN UN SISTEMA UNIX ................................................................................................... 9

LISTADO DE SISTEMAS DE ARCHIVOS SOPORTADOS POR UNIX/LINUX .................................................. 10

FAT .......................................................................................................................................................... 10

NTFS......................................................................................................................................................... 10

JFS ............................................................................................................................................................ 10

HPFS ......................................................................................................................................................... 10

XFS ........................................................................................................................................................... 10

UFS ........................................................................................................................................................... 10

ext2 ........................................................................................................................................................... 10

ext3 ........................................................................................................................................................... 10

ext4 ........................................................................................................................................................... 10

FAT Y FAT32 ................................................................................................................................................ 10

NTFS ............................................................................................................................................................ 11

JFS ............................................................................................................................................................... 11

HPFS ............................................................................................................................................................ 12

XFS .............................................................................................................................................................. 12

Capacidad: ................................................................................................................................................. 12

Registro de bitácora (journaling): ................................................................................................................... 12

Grupos de asignación: .................................................................................................................................. 12

LVM (Logical Volume Manager): ................................................................................................................. 12

UFS .............................................................................................................................................................. 13

ext2 .............................................................................................................................................................. 13

ext3 .............................................................................................................................................................. 13

Ventajas ..................................................................................................................................................... 13

NIVELES DEL JOURNALING........................................................................................................................ 14

Diario (riesgo bajo) ...................................................................................................................................... 14

Pedido (riesgo medio) .................................................................................................................................. 14

Reescritura (riesgo alto) ............................................................................................................................... 14

DESVENTAJAS ............................................................................................................................................ 14

Funcionalidad ............................................................................................................................................. 14

Fragmentación ............................................................................................................................................ 14

Compresión ................................................................................................................................................ 15

No hay comprobación en el diario .................................................................................................................. 15

ext4 .............................................................................................................................................................. 15

MEJORAS EN COMPARACIÓN CON EXT3 ................................................................................................... 15

Page 4: Introducción a Unix y Ubuntu 12-04

4

Sistema de archivos de gran tamaño ............................................................................................................... 15

Extents ....................................................................................................................................................... 15

Compatibilidad hacia adelante y hacia atrás ..................................................................................................... 15

Asignación persistente de espacio en el disco .................................................................................................. 15

Asignación retrasada de espacio en el disco ..................................................................................................... 15

Límite de 32000 subdirectorios superado ........................................................................................................ 16

Journal checksumming ................................................................................................................................. 16

Desfragmentación online .............................................................................................................................. 16

Chequeo del sistema de ficheros más rápido .................................................................................................... 16

Asignador multibloque ................................................................................................................................. 16

Timestamps mejorados ................................................................................................................................. 16

HABLANDO DE LINUX… ................................................................................................................................ 17

¿Qué es Linux? ............................................................................................................................................... 17

KDE ............................................................................................................................................................. 18

Gnome .......................................................................................................................................................... 19

Algo sobre KDE .......................................................................................................................................... 19

Algo sobre GNOME .................................................................................................................................... 20

La interfaz GNOME .................................................................................................................................... 20

SISTEMA DE FICHEROS DE LINUX ................................................................................................................. 20

TIPOS DE SISTEMAS DE FICHEROS EN LINUX ............................................................................................... 21

DIRECTORIOS MÁS IMPORTANTES EN LINUX .............................................................................................. 21

TIPOS DE ARCHIVOS EN LINUX ..................................................................................................................... 22

EL SHELL DE LINUX ....................................................................................................................................... 23

Page 5: Introducción a Unix y Ubuntu 12-04

5

¿QUÉ ES UNICS (UNIX)? Unics es un sistema operativo portable, multitarea y multiusuario; desarrollado, en principio, en 1969, por un grupo de

empleados de los laboratorios Bell de AT&T, entre los que figuran Ken Thompson, Dennis Ritchie y Douglas Mc Ilroy.

PORTABLE: Se define como la característica que posee un software para ejecutarse en diferentes plataformas, el código

fuente del software es capaz de reutilizarse en vez de crearse un nuevo código cuando el software pasa de una plataforma a otra. A

mayor portabilidad menor es la dependencia del software con respecto a la plataforma.

MULTIPLATAFORMA: El prerrequisito para la portabilidad es la abstracción generalizada entre la aplicación lógica y

las interfaces del sistema. Cuando un software se puede compilar en diversas plataformas (x86, IA64, amd64, etc.), se dice que es

multiplataforma. Esta característica es importante para el desarrollo de reducción costos, cuando se quiere hacer una misma

aplicación.

INDEPENDIENTE: En algunos casos el software es "independiente" de la plataforma y puede ejecutarse en plataformas

diversas sin necesidad de ser compilado específicamente para cada una de ellas, a este tipo de software se le llama interpretado,

donde un "intérprete" traduce (propiamente interpreta) las instrucciones en tiempo de ejecución para que sean entendidas por

diferentes plataformas.

La MULTITAREA es la característica de los sistemas operativos modernos de permitir que varios procesos sean

ejecutados (en apariencia) al mismo tiempo, compartiendo uno o más procesadores.

Se le llama MULTIUSUARIO a la característica de un sistema operativo o programa que permite proveer servicio y

procesamiento a múltiples usuarios simultáneamente, estrictamente es pseudo-simultáneo (tanto en paralelismo real como

simulado).

Page 6: Introducción a Unix y Ubuntu 12-04

6

FAMILIAS UNIX MÁS SIGNIFICATIVAS AT&T: la familia que tuvo su origen en el UNIX de AT&T. Considerada la familia UNIX "pura" y original. Sus sistemas

operativos más significativos son UNIX System III y UNIX System V.

BSD: familia originada por el licenciamiento de UNIX a Berkely. BSD se reescribió para no incorporar propiedad

intelectual originaria de AT&T en la versión 4. La primera implementación de los protocolos TCP/IP que dieron origen a Internet son la pila (stack) TCP/IP BSD.

AIX: Esta familia surge por el licenciamiento de UNIX System III a IBM.

Xenix: familia derivada de la adquisición de los derechos originales de AT&T primero por parte de Microsoft y de esta los

vendió a SCO.

GNU: En 1983, Richard Stallman anunció el Proyecto GNU, un ambicioso esfuerzo para crear un sistema similar a Unix,

que pudiese ser distribuido libremente. El software desarrollado por este proyecto -por ejemplo, GNU Emacs y GCC - también han

sido parte fundamental de otros sistemas UNIX.

Linux: En 1991, cuando Linus Torvalds empezó a proponer el núcleo Linux y a reunir colaboradores, las herramientas GNU

eran la elección perfecta. Al combinarse ambos elementos, conformaron la base del sistema operativo (basado en POSIX) que hoy

se conoce como GNU/Linux. Obsérvese que Linux tiene un origen independiente, por lo que se considera un 'clónico' de UNIX y

no un UNIX en el sentido histórico.

MULTICS Y/E UNIX ¿PADRE E HIJO? ¿De dónde proviene el nombre Multics o Multix? Multics (Multiplexed Information and Computing Service) fue uno de los

primeros sistemas operativos de tiempo compartido y tuvo una gran influencia en el desarrollo de los posteriores sistemas

operativos.

Un gran número de características intentaban proporcionar alta disponibilidad, de manera que el servicio de computación

igualase a los servicios de telefonía y a la red eléctrica. Para alcanzar este logro, se utilizó una estructura modular tanto en el software como en el hardware, y el sistema podía crecer simplemente añadiendo más recursos - poder de computación, memoria

principal, almacenamiento de disco, etc. Listas de control de acceso sobre cada archivo proporcionaban un método flexible para

compartir información, además de la privacidad requerida. Contenía diferentes mecanismos estándar para permitir a los ingenieros

analizar el rendimiento del sistema, además de varios mecanismos para la optimización del rendimiento.

Es más que sorprendente descubrir que el núcleo de esta poderosa computing utility para mainframe multiprocesador, tan

criticada en sus días por ser demasiado grande y compleja, ocupaba 135 kB de código. El primer GE-645 del MIT tuvo 512K

palabras de memoria (2 MB), de manera que el núcleo sólo utilizaba una pequeña porción de la memoria principal de Multics.

Medido de otra forma, el sistema completo, incluyendo no sólo el sistema operativo, sino también el complejo compilador

de PL/I, los comandos de usuario, y las bibliotecas de subrutinas, contenía unos 1500 módulos de código fuente. Cada uno con una

longitud media de unas 200 líneas de código fuente, y compilaban para producir aproximadamente 4,5 MB de código de

procedimientos, que aunque hoy parezca pequeño era muy grande para los estándares de la época.

Los compiladores de Multics generalmente optimizaban la densidad de código antes que la velocidad de ejecución, por

ejemplo se utilizaban pequeñas subrutinas llamadas operadores para secuencias de código frecuentes, realizar comparaciones

directas con el tamaño de los objetos de código en los sistemas más modernos no tiene sentido. La alta densidad de código era una

buena opción de optimización para un sistema multiusuario con una memoria principal cara, como Multics.

NOTA: -―En computación, el uso del tiempo compartido se refiere a compartir un recurso computacional entre muchos

usuarios por medio de la multitarea. Su introducción en los años 1960, y su asentamiento como modelo típico de la computación en

los años 1970, representa un cambio importante en la historia de la computación. Al permitir que un gran número de usuarios

interactuara simultáneamente en una sola computadora, el coste del servicio de computación bajó drásticamente, mientras que al

mismo tiempo hacía la experiencia computacional mucho más interactiva.‖-

¿QUÉ TIENE QUE VER UNIX CON MULTIX? A finales de los años sesenta un conjunto de investigadores provenientes de AT&T Bell, del MIT y General Electric

emprenden el desarrollo de un sistema operativo multiusuario al cual llamaron '''MULTICS''' (Multiplexed Information and

Computing System). MULTICS poseía gran parte de las características que tiene hoy en día cualquier versión de UNIX como son

la multitarea, la gestión de archivos y la interacción con usuarios. Sin embargo MULTICS nunca llegaría a completarse debido a

numerosos contratiempos y retrasos en su implementación, ya que una de las mayores desventajas era la complejidad del software

y hardware necesario para completar tareas cotidianas y sencillas para los usuarios.

Posteriormente, Ken Thompson y Dennis Ritchie, unos de los investigadores que se involucraron en el proyecto MULTICS retoman la idea y desarrollan en 1969 en los laboratorios Bell el sistema operativo multiusuario UNIC (Uniplexion Information and

Computing System), una revisión del sistema operativo MULTICS, escrito en un lenguaje ensamblador; y ejecutándose en una

máquina DEC PDP-7, que posteriormente se adapto a un ordenador PDP-11. '''UNIC''' simplificaba la complejidad que hizo

fracasar a su antecesor.

Mas tarde, el nombre sufre diferentes cambios hasta llegar al UNIX, tal y como se conoce hoy en día, con lo cual se puede deducir

Page 7: Introducción a Unix y Ubuntu 12-04

7

que UNIX surge de una versión reducida del proyecto MULTICS, si bien también ha sido influenciado por otros sistemas

operativos como el CTSS (Compatible Time Sharing System) del MIT y el sistema XDS-940 de la Universidad de California de

Berkeley.

En esos años cuando se compraba un ordenador, se tenía que comprar el sistema operativo proveído por el fabricante del

equipo, por consiguiente posteriormente también se tenían que comprar las aplicaciones proporcionadas por el fabricante ya que

son las que conocían como interactuar con el sistema operativo, y esas aplicaciones tenían un precio bastante alto, es decir, los

usuarios estaban encadenados al fabricante del ordenador, era como el pez que se muerde la cola.

UNIX se reescribe de ensamblador a C pasando a ser portable.

NOTA: -―DEC PDP-7: El PDP-7 fue una minicomputador producida por DEC. Presentada 1965 fue la primero en usar la

tecnología Flip-Chip. Con un costo de 72,000 dólares americanos, era una máquina económica, aunque potente. El PDP-7 fue la

tercera de las computadoras de 18 bits producida por Digital Equipment Corporation. (Digital Equipment Corporation o

simplemente DEC, fue una compañía americana considerada pionera en la fabricación de minicomputadores.).‖-

SUB NOTA: -― Flip chip es una tecnología de ensamble para circuitos integrados además de una forma de empaque y

montaje para chips de silicio.1 Como método de ensamble, elimina la necesidad de máquinas de soldadura de precisión y permite

el ensamblaje de muchas piezas a la vez. Como método de empaque para chips, reduce el tamaño del circuito integrado a la

mínima expresión, convirtiéndolo en una pequeña pieza de silicio con diminutas conexiones eléctricas.‖-

ÓRDENES CLÁSICAS DE UNIX Algunos comandos básicos de UNIX son:

Navegación/creación de directorios/archivos: ls cd pwd mkdir rm rmdir cp

Edición/visión de archivos: touch more ed vi

Procesamiento de textos: echo cat grep sort uniq sed awk tail head

Comparación de archivos: comm cmp diff patch

Administración del sistema: chmod chown ps find xargs sd w who

Comunicación: mail telnet ssh ftp finger rlogin

Shells: sh csh ksh

Documentación: man.

Esta es una lista de los sesenta comandos de usuario de la sección 1 de la Primera Edición:

ar as b bas bcd boot cat chdir check chmod chown cmp cp date db (Unix) dbppt dc df dsw dtf du ed find for form hup lbppt

ld ln ls mail mesg mkdir mkfs mount mv nm od pr rew (Unix) rkd rkf rkl rm rmdir roff sdate sh stat strip (Unix) su sum tap (Unix)

tm tty type un wc who write

Page 8: Introducción a Unix y Ubuntu 12-04

8

HABLANDO ACERCA DE LA DISTRIBUCIÓN A USAR… UBUNTU 12.04 Versión/Distribución: 12.04 LTS/Ubuntu*

Fecha de publicación de la distribución: 26 de abril del 2012

Tamaño en MB o GB de la distribución: 750MB

Tiempo de instalación de la distribución: entre 25 a 35 minutos

Cantidad de memoria que necesita la distribución: La que el usuario delimite y esta va de 5GB (para ordenadores portátiles)

hasta 7 GB (para ordenadores de escritorio) como mínimo y el máximo puede ocupar toda la unidad de almacenamiento o la

partición, recordando que todo sistema basado en Unix crea automáticamente 3 particiones para trabajar, una para instalar el

sistema operativo, otra para alojar nuestras aplicaciones y una última para alojar los documentos o archivos que lleguemos a

generar o descargar.

Tipo de interface de la distribución: Ubuntu 12.04 ―Precise Pangolin‖ vendrá con un nuevo tipo de interfaz que reemplazará

a los menús en las aplicaciones bajo Unity y podrá reconocer comandos de voz.

Denominada ―HUD‖, o ―Head-Up Display‖, la nueva interfaz está diseñada para reconocer las intenciones de los usuarios al

interactuar con la computadora en lugar de forzarlos a navegar por un sistema rígido de menús para realizar sus tareas.

―Los menús sirven a dos propósitos‖, explicó el fundador de Canonical, Mark Shuttleworth, en una entrada de blog el

martes por la mañana. ―Actúan como una forma estándar de invocar comandos que son usados muy infrecuentemente para

asegurarse un área dedicada en la interfaz de usuario, como un botón en la barra de herramientas, y sirven como un mapa de la

funcionalidad de la aplicación, casi como una tabla de contenidos que uno puede revisar para hacerse la idea de ‗qué hace la app‘‖.

La parte de invocación de comandos es lo que Canonical cree que se puede mejorar, añadió Shuttleworth, y ahí es donde

entra a actuar HUD.

‗Puede aprender lo que haces‘

Tipo de escritorio que utiliza: GNOME 3.2

Aplicaciones (software) con las que viene dicha distribución: Mozilla Firefox, Kopete (competencia de MSN Messenger y

alternativa a aMSN), OneConf (sincronización entre computadoras), Rhythmbox (Es el reproductor con más posibilidades de

reemplazar a Banshee, que fue descartado para Precise Pangolin. Tiene como ventaja la compatibilidad con GTK3), LightDM

(Gestor de sesiones),Thunderbird (cliente de email), Libre Office (Contiene la paquetería de office como son Word, Excel, Power

Point, Access entre otras),Shotwell (visualizador de imágenes), Gparted (Aplicación que permite crear particiones en el disco duro

HDD y en unidades USB, redimensionarlas, moverlas, copiarlas), Transmission (Cliente BitTorrent muy ligero con una interfaz

simple e intuitiva), K3B (Es un programa similar a Nero para grabar CD/DVD perteneciente al entorno de Escritorio KDE), GIMP

(Herramienta de edición de imágenes con características similares a Photoshop: tratamiento de capas, filtros de color, efectos sobre

la imagen, clonación, recorte, efectos, texto, etc). Existen muchos otros más que de igual manera podemos encontrar en Windows,

por mencionar algunos jDownloader, Emule, VLC, Cisco Packet Tracer, Virtual Box y si lo que deseas es emular aplicaciones especificas de Windows siempre esta Wine, que es una consola de emulación virtual de las aplicaciones de Windows, lo más

parecido al Virtual Box, solo que esta aplicación en lugar de emular un sistema operativo completo, solo emula una aplicación en

especifico de Windows, de este modo no tendras que ―tediosamente‖ instalar mas basura en tu ordenador.

Facilidad de uso en la instalación y utilización: 10 (Excelente, intuitiva y fácil de manipular y no maneja términos

complejos)

*-―LTS (Soporte de Tiempo Largo) significa que Canonical (la empresa que respalda a Ubuntu) entregará soporte durante

un mayor periodo de tiempo a las versiones con dicho ―título‖, en comparación, claro, con los que no lo tienen. Más

actualizaciones y servicios durante más tiempo. Simple.‖-

NOTA: ―Una distribución Linux (coloquialmente llamada distro) es una distribución de software basada en el núcleo Linux

que incluye determinados paquetes de software para satisfacer las necesidades de un grupo específico de usuarios, dando así origen

a ediciones domésticas, empresariales y para servidores. Por lo general están compuestas, total o mayoritariamente, de software

libre, aunque a menudo incorporan aplicaciones o controladores propietarios.

Además del núcleo Linux, las distribuciones incluyen habitualmente las bibliotecas y herramientas del proyecto GNU y el

sistema de ventanas X Window System. Dependiendo del tipo de usuarios a los que la distribución esté dirigida se incluye también

otro tipo de software como procesadores de texto, hoja de cálculo, reproductores multimedia, herramientas administrativas, etc. En

el caso de incluir herramientas del proyecto GNU, también se utiliza el término distribución GNU/Linux.

Existen distribuciones que están soportadas comercialmente, como Fedora (Red Hat), openSUSE (Novell), Ubuntu

(Canonical Ltd.), Mandriva, y distribuciones mantenidas por la comunidad como Debian y Gentoo. Aunque hay otras

distribuciones que no están relacionadas con alguna empresa o comunidad, como es el caso de Slackware.

Page 9: Introducción a Unix y Ubuntu 12-04

9

SISTEMA DE ARCHIVOS SOPORTADOS POR SISTEMAS BASADOS EN UNICS

(UNIX) ¿Qué es un sistema de archivos? Bueno, pues los sistemas de archivos o ficheros (en inglés:filesystem), estructuran la

información guardada en una unidad de almacenamiento (normalmente un disco duro de una computadora), que luego será

representada ya sea textual o gráficamente utilizando un gestor de archivos. La mayoría de los sistemas operativos manejan su

propio sistema de archivos.

Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el acceso a los datos como una cadena de

bloques de un mismo tamaño, a veces llamados sectores, usualmente de 512 bytes de longitud (También denominados clústers). El

software del sistema de archivos es responsable de la organización de estos sectores en archivos y directorios y mantiene un

registro de qué sectores pertenecen a qué archivos y cuáles no han sido utilizados. En la práctica, un sistema de archivos también

puede ser utilizado para acceder a datos generados dinámicamente, como los recibidos a través de una conexión de red (sin la

intervención de un dispositivo de almacenamiento).

EJEMPLO DE RUTA EN UN SISTEMA UNIX Así, por ejemplo, en un sistema tipo Unix como GNU/Linux, la ruta para la canción llamada "La canción.ogg" del usuario

"Alvaro" sería algo como:

/home/Alvaro/Mi música/La canción.ogg

donde:

'/' representa el directorio raíz donde está montado todo el sistema de archivos.

'home/Alvaro/Mi música/' es la ruta del archivo.

'La canción.ogg' es el nombre del archivo.

Page 10: Introducción a Unix y Ubuntu 12-04

10

LISTADO DE SISTEMAS DE ARCHIVOS SOPORTADOS POR UNIX/LINUX

FAT

NTFS

JFS

HPFS

XFS

UFS

ext2

Nota: -"ext2 es una "evolucion" del sistema de archivos FAT (no FAT32), agregando muchas mejoras en las cuales se

beneficio el tratamiento de archivos ademas de la capacidad de soporte de tamaños de disco duro, por lo tanto no podemos decir

que exista una ext1 ya que esta podemos decir que era la FAT de la cual ya hablamos anteriormente".

ext3

ext4

FAT Y FAT32 Tabla de asignación de archivos, comúnmente conocido como FAT (del inglés file allocation table), es un sistema de

archivos desarrollado para MS-DOS, así como el sistema de archivos principal de las ediciones no empresariales de Microsoft

Windows hasta Windows Me.

FAT es relativamente sencillo. A causa de ello, es un formato popular para disquetes admitido prácticamente por todos los

sistemas operativos existentes para computadora personal. Se utiliza como mecanismo de intercambio de datos entre sistemas

operativos distintos que coexisten en la misma computadora, lo que se conoce como entorno multiarranque. También se utiliza en

tarjetas de memoria y dispositivos similares.

Las implementaciones más extendidas de FAT tienen algunas desventajas. Cuando se borran y se escriben nuevos archivos tiende a dejar fragmentos dispersos de éstos por todo el soporte. Con el tiempo, esto hace que el proceso de lectura o escritura sea

cada vez más lento. La denominada desfragmentación es la solución a esto, pero es un proceso largo que debe repetirse

regularmente para mantener el sistema de archivos en perfectas condiciones. FAT tampoco fue diseñado para ser redundante ante

fallos. Inicialmente solamente soportaba nombres cortos de archivo: ocho caracteres para el nombre más tres para la extensión.

También carece de permisos de seguridad: cualquier usuario puede acceder a cualquier archivo.

Page 11: Introducción a Unix y Ubuntu 12-04

11

NTFS Del inglés New Technology File System es un sistema de archivos de Windows NT incluido en las versiones de Windows

2000, Windows XP, Windows Server 2003, Windows Server 2008, Windows Vista y Windows 7. Está basado en el sistema de

archivos HPFS de IBM/Microsoft usado en el sistema operativo OS/2, y también tiene ciertas influencias del formato de archivos

HFS diseñado por Apple.

NTFS permite definir el tamaño del clúster, a partir de 512 bytes (tamaño mínimo de un sector) de forma independiente al

tamaño de la partición.

Es un sistema adecuado para las particiones de gran tamaño requeridas en estaciones de trabajo de alto rendimiento y

servidores puede manejar volúmenes de, teóricamente, hasta 264–1 clústeres. En la práctica, el máximo volumen NTFS soportado

es de 232–1 clústeres (aproximadamente 16 TiB usando clústeres de 4 KiB).

Su principal inconveniente es que necesita para sí mismo una buena cantidad de espacio en disco duro, por lo que no es

recomendable su uso en discos con menos de 400 MiB libres.

El tamaño mínimo recomendado para la partición es de 10 GB. Aunque son posibles tamaños mayores, el máximo

recomendado en la práctica para cada volumen es de 2 TB (Terabytes). El tamaño máximo de fichero viene limitado por el tamaño

del volumen. Tiene soporte para archivos dispersos.

Hay tres versiones de NTFS: v1.2 en NT 3.51, NT 4, v3.0 en Windows 2000 y v3.1 en Windows XP, Windows 2003

Server, Windows Vista y v5.1 en Windows 2008. Estas versiones reciben en ocasiones las denominaciones v4.0, v5.0, v5.1, v 5.2, y v 6.0 en relación con la versión de Windows en la que fueron incluidas. Las versiones más recientes han incluido algunas

características nuevas, tales como cuotas de disco y puntos de montaje de volúmenes.

JFS Journaling File System (JFS) es un sistema de archivos de 64-bit con respaldo de transacciones creado por IBM. Está

disponible bajo la licencia GNU GPL. Existen versiones para AIX, eComStation, OS/2, sistemas operativos Linux y HP-UX

Fue diseñado con la idea de conseguir "servidores de alto rendimiento y servidores de archivos de altas prestaciones,

asociados a e-business". JFS se fusionó en el kernel de Linux desde la versión 2.4. JFS utiliza un método interesante para organizar

los bloques vacíos, estructurándolos en un árbol y usa una técnica especial para agrupar bloques lógicos vacíos.

Eficiente respaldo de transacciones (Journaling).

JFS, al igual que ReiserFS, sigue el principio de metadata only. En vez de una completa comprobación sólo se tienen en

cuenta las modificaciones en los metadatos provocadas por las actividades del sistema. Esto ahorra una gran cantidad de tiempo en

la fase de recuperación del sistema tras una caída. Las actividades simultáneas que requieren más entradas de protocolo se pueden

unir en un grupo, en el que la pérdida de rendimiento del sistema de ficheros se reduce en gran medida mediante múltiples procesos

de escritura.

Eficiente administración de directorios.

JFS abarca diversas estructuras de directorios. En pequeños directorios se permite el almacenamiento directo del contenido del directorio en Inode. En directorios más grandes se utiliza B-trees, que facilitan considerablemente la administración del

directorio.

Mejor utilización de la memoria mediante adjudicación dinámica de Inodes.

Con ext2 debe dar por anticipado el grosor del Inode (la memoria ocupada por la información de administración). Con ello

se limita la cantidad máxima de ficheros o directorios de su sistema de ficheros. JFS le ahorra esto, puesto que asigna memoria

Inode de forma dinámica y la pone a su disposición cuando no se está utilizando.

NOTA: -―Se basa en llevar un journal o registro de diario en el que se almacena la información necesaria para restablecer

los datos afectados por la transacción en caso de que ésta falle.

El procedimiento es básicamente el siguiente:

Se bloquean las estructuras de datos afectadas por la transacción para que ningún otro proceso pueda modificarlas mientras

dura la transacción.

Se reserva un recurso para almacenar el journal. Por lo general suelen ser unos bloques de disco, de modo que si el sistema se para de forma abrupta (corte eléctrico, avería, fallo del sistema operativo...) el journal siga disponible una vez reiniciado el

sistema.

Se efectúan una a una las modificaciones en la estructura de datos. Para cada una:

Se apunta en el journal como deshacer la modificación y se asegura de que esta información se escribe físicamente en el

disco.

Se realiza la modificación.

Page 12: Introducción a Unix y Ubuntu 12-04

12

Si en cualquier momento se quiere cancelar la transacción se deshacen los cambios uno a uno leyéndolos y borrándolos del

journal.

Si todo ha ido bien, se borra el journal y se desbloquean las estructuras de datos afectadas.‖-

HPFS Por sus siglas en ingles, High Performance File System, o sistema de archivos de altas prestaciones, fue creado

específicamente para el sistema operativo OS/2 para mejorar las limitaciones del sistema de archivos FAT. Fue escrito por Gordon

Letwin y otros empleados de Microsoft, y agregado a OS/2 versión 1.2, en esa época OS/2 era todavía un desarrollo conjunto entre

Microsoft e IBM.

Se caracterizaba por permitir nombres largos, metadatos e información de seguridad, así como de autocomprobación e

información estructural.

Otra de sus características es que, aunque poseía tabla de archivos (como FAT), ésta se encontraba posicionada físicamente

en el centro de la partición, de tal manera que redundaba en menores tiempos de acceso a la hora de leerla/escribirla.

XFS

Capacidad: XFS soporta un sistema de archivos de hasta 9 exabytes, aunque esto puede variar dependiendo de los límites impuestos por

el sistema operativo. En sistemas GNU/Linux de 32 bits, el límite es 16 terabytes.

Registro de bitácora (journaling):

XFS provee soporte para llevar un registro (journaling), donde los cambios al sistema de archivos primero son escritos a un

diario o journal antes de que se actualicen los datos del disco. El journal es un buffer circular de bloques del disco que no son parte

del sistema de archivos. En XFS el registro (journal) contiene entradas 'lógicas' que describen a un alto nivel las operaciones que se

están realizando, al contrario de otros sistemas de archivo con un registro (journal) 'físico', que guardan una copia de los bloques

modificados durante cada transacción. Las actualizaciones del registro (journal) se realizan asincrónicamente para evitar una baja en el rendimiento. En el caso de una caída repentina del sistema, las operaciones inmediatamente anteriores a la caída pueden ser

terminadas, garantizando así la consistencia del sistema. La recuperación se realiza automáticamente a la hora del montaje del

sistema de archivos y la velocidad de recuperación es independiente del tamaño del sistema de archivos. Incluso si alguna

información que fuese modificada inmediatamente antes de la caída del sistema no fuese escrita al disco, XFS se encarga de borrar

todos los bloques de datos sin escribir, eliminando así cualquier compromiso de seguridad.

Grupos de asignación:

Los sistemas de archivos XFS están particionados internamente en grupos de asignación, que son regiones lineares de igual

tamaño dentro del sistema de archivos. Los archivos y los directorios pueden crear grupos de asignación. Cada grupo gestiona sus inodos y su espacio libre de forma independiente, proporcionando escalabilidad y paralelismo — múltiples hilos pueden realizar

operaciones de E/S simultáneamente en el mismo sistema de archivos.

LVM (Logical Volume Manager):

Es posible aumentar la capacidad de sistemas de ficheros XFS: xfsgrowfs es ideal para particiones LVM

Page 13: Introducción a Unix y Ubuntu 12-04

13

UFS Un sistema de archivos UFS se compone de las siguientes partes:

Unos pocos bloques al inicio de la partición reservados para bootstrap (el cual debe ser inicializado separadamente del

sistema de archivos).

Un superbloque que contiene un número mágico (del inglés magic number) identificando esto como un UFS, y algunos otros números vitales describiendo la geometría y parámetros de puesta a punto del comportamiento.

Una colección de grupos de cilindros. Cada grupo de cilindros tiene estos componentes:

Un respaldo del superbloque.

Una cabecera de cilindro, con estadísticas, lista de espacio libre, etc. acerca de este bloque de cilindros, similar a los que se

encuentran en el superbloque.

Un número de inodos, cada cual conteniendo los atributos del archivo.

Un número de bloques de datos.

Los inodos son numerados secuencialmente. Los primeros inodos están reservados por razones históricas, seguidos por los

inodos del directorio raíz.

Los archivos de directorio contienen sólo la lista de archivos en el directorio y el inodo asociado para cada archivo. Todos

los metadatos (metadata) son mantenidos en el inodo.

NOTA: -"un inodo, nodo-i o nodo índice es una estructura de datos propia de los sistemas de archivos tradicionalmente empleados en los sistemas operativos tipo UNIX como es el caso de Linux. Un inodo contiene las características (permisos, fechas,

ubicación, pero NO el nombre) de un archivo regular, directorio, o cualquier otro objeto que pueda contener el sistema de ficheros.

El término "inodo" refiere generalmente a inodos en discos (dispositivos en modo bloque) que almacenan archivos

regulares, directorios, y enlaces simbólicos. El concepto es particularmente importante para la recuperación de los sistemas de

archivos dañados.

Cada inodo queda identificado por un número entero, único dentro del sistema de ficheros, y los directorios recogen una

lista de parejas formadas por un número de inodo y nombre identificativo que permite acceder al archivo en cuestión: cada archivo

tiene un único inodo, pero puede tener más de un nombre en distintos o incluso en el mismo directorio para facilitar su

localización."-

ext2 ext2 (second extended filesystem o "segundo sistema de archivos extendido") es un sistema de archivos para el kernel

Linux. Fue diseñado originalmente por Rémy Card. La principal desventaja de ext2 es que no implementa el registro por diario (en

inglés Journaling) que sí implementa su sucesor ext3, el cual es totalmente compatible.

ext2 fue el sistema de ficheros por defecto de las distribuciones de Linux Red Hat Linux, Fedora Core y Debian hasta ser

reemplazado recientemente por su sucesor ext3.

El sistema de ficheros tiene una tabla donde se almacenan los i-nodos. Un i-nodo almacena información del archivo (ruta o path, tamaño, ubicación física). En cuanto a la ubicación, es una referencia a un sector del disco donde están todas y cada una de

las referencias a los bloques del archivo fragmentado. Estos bloques son de tamaño especificable cuando se crea el sistema de

archivos, desde los 512 bytes hasta los 4 kB, lo cual asegura un buen aprovechamiento del espacio libre con archivos pequeños.

Los límites son un máximo de 2 terabytes de archivo, y de 4 para la partición.

ext3 ext3 (third extended filesystem o "tercer sistema de archivos extendido") es un sistema de archivos con registro por diario

(journaling). Es el sistema de archivo más usado en distribuciones Linux, aunque en la actualidad está siendo remplazado por su

sucesor, ext4.

La principal diferencia con ext2 es el registro por diario. Un sistema de archivos ext3 puede ser montado y usado como un

sistema de archivos ext2. Otra diferencia importante es que ext3 utiliza un árbol binario balanceado (árbol AVL) e incorpora el

asignador de bloques de disco Orlov.

Ventajas Aunque su velocidad y escalabilidad es menor que sus competidores, como JFS, ReiserFS o XFS, tiene la ventaja de

permitir actualizar de ext2 a ext3 sin perder los datos almacenados ni tener que formatear el disco. Tiene un menor consumo de

CPU y está considerado más seguro que otros sistemas de ficheros en Linux dada su relativa sencillez y su mayor tiempo de

prueba.

El sistema de archivo ext3 agrega a ext2 lo siguiente:

Page 14: Introducción a Unix y Ubuntu 12-04

14

Registro por diario.

Índices en árbol para directorios que ocupan múltiples bloques.

Crecimiento en línea.

Límites de tamaño

Ext3 tiene dos límites de tamaño distintos. Uno para archivos y otro para el tamaño del sistema de archivos entero. El límite

del tamaño del sistema de archivos es de 232 bloques:

NIVELES DEL JOURNALING Hay tres niveles posibles de Journaling (registro por diario)

Diario (riesgo bajo) Los metadatos y los ficheros de contenido son copiados al diario antes de ser llevados al sistema de archivos principal.

Como el diario está en el disco continuamente puede mejorar el rendimiento en ciertas ocasiones. En otras ocasiones el

rendimiento es peor porque los datos deben ser escritos dos veces, una al diario y otra a la parte principal del sistema de archivos.

Pedido (riesgo medio) Solo los metadatos son registrados en el diario, los contenidos no, pero está asegurado que el contenido del archivo es

escrito en el disco antes de que el metadato asociado se marque como transcrito en el diario. Es el sistema por defecto en la

mayoría de las distribuciones de Linux. Si hay un bajón de tensión o kernel Panic cuando el fichero se está escribiendo o está

empezando, el diario indicará que el nuevo archivo o el intento no ha sido pasado, por lo que sera purgado por el proceso de

limpiado

Reescritura (riesgo alto) Solo los metadatos son registrados en el diario, el contenido de los archivos no. Los contenidos pueden estar escritos antes o

después de que el diario se actualice. Como resultado, los archivos modificados correctamente antes de una ruptura pueden

volverse corruptos. Por ejemplo, un archivo pendiente de ser marcado en el diario como mayor de lo que actualmente es,

convirtiendo en basura al final de la comprobación. Las versiones antiguas de los archivos pueden aparecer inesperadamente

después de una recuperación de diario. La carencia de sincronización entre los datos y el diario es rápidamente subsanada en

muchos casos. JFS usa este nivel de journaling, pero se asegura de que cualquier basura es borrada al reiniciar.

DESVENTAJAS

Funcionalidad Como ext3 está hecho para ser compatible con ext2, la mayoría de las estructuras del archivación son similares a las del

ext2. Por ello, ext3 carece de muchas características de los diseños más recientes como las extensiones, la localización dinámica de

los inodos, y la sublocalización de los bloques. Hay un límite de 31998 subdirectorios por cada directorio, que se derivan de su

límite de 32 links por inodo. Ext3, como la mayoría de los sistemas de archivos actuales de Linux, no puede ser chequeado por el

fsck mientras el sistema de archivos está montado para la escritura. Si se intenta chequear un sistema de ficheros que está montado

puede detectar falsos errores donde los datos no han sido volcados al disco todavía, y corromper el sistema de archivos al intentar

arreglar esos errores.

Fragmentación No hay herramienta de desfragmentación online para ext3 que funcione en nivel del sistema de archivos. Existe un

desfragmentador offline para ext2, e2defrag, pero requiere que el sistema de archivos ext3 sea reconvertido a ext2 antes de

iniciarse. Además, dependiendo de los bits encendidos en el sistema, e2defrag puede destruir datos. No sabe como tratar la mayoría

de las nuevas características de ext3. Hay herramientas de usuario para desfragmentar como Shake y Defrag. Shake trabaja

localizando para todo el archivo como una operación, lo que generalmente causa que el localizador encuentre espacio continuo en

el disco. También intenta escribir archivos usados al mismo tiempo que otros. Defrag trabaja copiando cada archivo sobre sí

mismo. De todas formas solo funcionan si el sistema de archivos esta razonablemente vacío. No existe una verdadera herramienta

de desfragmentación para ext3. Como se viene diciendo, la guía de administración de Linux dice: "Los modernos sistemas de

archivos de Linux mantienen la fragmentación al mínimo manteniendo los bloques de un archivo juntos, aunque no puedan ser

guardados en sectores consecutivos. Algunos sistemas de archivos, como ext3, localizan efectivamente los bloques libres más

Page 15: Introducción a Unix y Ubuntu 12-04

15

cercanos a otros en el archivo. Por ello no es necesario preocuparse por la fragmentación en un sistema de Linux" Mientras ext3 es

más resistente a la fragmentación que Fat, nada evita que los sistemas ext3 se puedan fragmentar con el tiempo. Consecuentemente

el sucesor de ext3, ext4, incluye una utilidad de desfragmentación y soporte para extensiones (regiones contiguas del fichero).

Compresión El soporte para la compresión está disponible como un parche no oficial para ext3. Este parche es un porte directo de

e2compr pero necesita un mayor desarrollo ya que todavía no implementa el journaling. El actual parche es llamado e3compr.

No hay comprobación en el diario Ext3 no hace la suma de verificación cuando está escribiendo en el diario. Si barrier = 1 no está habilitado como una opción

de montaje, y si el hardware está escribiendo fuera de orden, se corre el riesgo de una corrupción muy amplia del sistema de

archivos en caso de que haya un fallo repentino del hardware.

ext4 ext4 (fourth extended filesystem o «cuarto sistema de archivos extendido») es un sistema de archivos transaccional (en

inglés journaling), anunciado el 10 de octubre de 2006 por Andrew Morton, como una mejora compatible de ext3. El 25 de

diciembre de 2008 se publicó el kernel Linux 2.6.28, que elimina ya la etiqueta de "experimental" de código de ext4.

Las principales mejoras son:

Soporte de volúmenes de hasta 1024 PiB.

Soporte añadido de extent.

Menor uso del CPU.

Mejoras en la velocidad de lectura y escritura.

MEJORAS EN COMPARACIÓN CON EXT3

Sistema de archivos de gran tamaño El sistema de archivos ext4 es capaz de trabajar con volúmenes de gran tamaño, hasta 1 exbibyte1 y ficheros de tamaño de

hasta 16 TiB.

Extents Los extents han sido introducidos para reemplazar al tradicional esquema de bloques usado por los sistemas de archivos

ext2/3. Un extent es un conjunto de bloques físicos contiguos, mejorando el rendimiento al trabajar con ficheros de gran tamaño y

reduciendo la fragmentación. Un extent simple en ext4 es capaz de mapear hasta 128MiB de espacio contiguo con un tamaño de

bloque igual a 4KiB.2

Compatibilidad hacia adelante y hacia atrás El sistema de archivos ext3 es compatible adelante con ext4, siendo posible montar un sistema de archivos ext3 como ext4 y

usarlo transparentemente.

Del mismo modo ext4 es parcialmente compatible hacia atrás con ext3 ya que puede ser montado como una partición ext3

con la excepción de que si la partición ext4 usa extents, se pierde esta posibilidad.

Extents están configurados por defecto desde la versión del kernel 2.6.23. Anteriormente, esta opción requería ser activada

explícitamente (por ejemplo mount /dev/sda1 /mnt/point -t ext4dev -o extents).

Asignación persistente de espacio en el disco El sistema de archivos ext4 permite la reserva de espacio en disco para un fichero. Hasta ahora la metodología consistía en

rellenar el fichero en el disco con ceros en el momento de su creación. Esta técnica no es ya necesaria con ext4, ya que una nueva llamada del sistema "preallocate()" ha sido añadida al kernel Linux para uso de los sistemas de archivos que permitan esta función.

El espacio reservado para estos ficheros quedará garantizado y con mucha probabilidad será contiguo. Esta función tiene útiles

aplicaciones en streaming y bases de datos.

Asignación retrasada de espacio en el disco Ext4 hace uso de una técnica de mejora de rendimiento llamada Allocate-on-flush, también conocida como reserva de

memoria retrasada. Consiste en retrasar la reserva de bloques de memoria hasta que la información esté a punto de ser escrita en el

disco, a diferencia de otros sistemas de archivos, los cuales reservan los bloques necesarios antes de ese paso. Esto mejora el

rendimiento y reduce la fragmentación al mejorar las decisiones de reserva de memoria basada en el tamaño real del fichero.

Page 16: Introducción a Unix y Ubuntu 12-04

16

Límite de 32000 subdirectorios superado En ext3 el nivel de profundidad en subdirectorios permitido estaba limitado a 32000. Este límite ha sido aumentado a 64000

en ext4, permitiendo incluso ir más allá de este límite (haciendo uso de "dir_nlink"). Para permitir un rendimiento continuo, dada la

posibilidad de directorios mucho más grandes, htree está activado por defecto en ext4. Esta función está implementada desde la

versión 2.6.23. htree está también disponible en ext3 cuando la función dir_index está activada.

Journal checksumming ext4 usa checksums en el registro para mejorar la fiabilidad, puesto que el journal es uno de los ficheros más utilizados en el

disco. Esta función tiene un efecto colateral beneficioso: permite de forma segura evitar una lectura/escritura de disco durante el

proceso de registro en el journal, mejorando el rendimiento ligeramente. La técnica del journal checksumming está inspirada en la

investigación de la Universidad de Wisconsin en sistemas de archivos IRON (Sección 6, bajo el nombre "checksums de

transacciones").

NOTA: -― Una suma de verificación, también llamado suma de chequeo o checksum, es una función hash que tienen como

propósito principal detectar cambios accidentales en una secuencia de datos para proteger la integridad de datos, verificando que no

haya discrepancias.‖-

Desfragmentación online Incluso haciendo uso de diversas técnicas para evitar la fragmentación, un sistema de larga duración tiende a fragmentarse

con el tiempo. Ext4 dispondrá de una herramienta que permite desfragmentar ficheros individuales o sistemas de ficheros enteros

sin desmontar el disco.

Chequeo del sistema de ficheros más rápido En ext4, los grupos de bloques no asignados y secciones de la tabla de inodos están marcados como tales. Esto permite a

e2fsck saltárselos completamente en los chequeos y en gran medida reduce el tiempo requerido para chequear un sistema de archivos del tamaño para el que ext4 está preparado. Esta función está implementada desde la versión 2.6.24 del kernel Linux.

Asignador multibloque Ext4 asigna múltiples bloques para un fichero en una sola operación, lo cual reduce la fragmentación al intentar elegir

bloques contiguos en el disco. El asignador multibloque está activo cuando se usa 0_DIRECT o si la asignación retrasada está

activa. Esto permite al fichero tener diversos bloques "sucios" solicitados para escritura al mismo tiempo, a diferencia del actual mecanismo del kernel de solicitud de envío de cada bloque al sistema de archivos de manera separada para su asignación.

Timestamps mejorados Puesto que los ordenadores se tornan en general cada vez más rápidos y que Linux está pasando a ser cada vez más usado en

aplicaciones críticas, la granularidad de los timestamps basados en segundos se está volviendo insuficiente. Para resolver esto, ext4

tendrá timestamps medidos en nanosegundos. Ésta función está actualmente implementada en la versión 2.6.23 del kernel. Adicionalmente se han añadido 2 bits del timestamp extendido a los bits más significativos del campo de segundos de los

timestamps para retrasar casi 500 años el problema del año 2038.

NOTA: -―Timestamp es una secuencia de caracteres, que denotan la hora y fecha (o alguna de ellas) en la cual ocurrió

determinado evento. Esta información es comúnmente presentada en un formato consistente, lo que permite la fácil comparación

entre dos diferentes registros y seguimiento de progresos a través del tiempo; la práctica de grabar timestamps de forma consistente

a lo largo de la información actual, se llama timestamping.

Los timestamps son típicamente usados para seguimiento de eventos (logging), en este caso, cada evento en un log es

marcado con un timestamp. En sistemas de archivos, la palabra puede referirse a la hora y fecha de creación, acceso o modificación

a un archivo que se queda registrada.‖-.

Page 17: Introducción a Unix y Ubuntu 12-04

17

HABLANDO DE LINUX…

¿Qué es Linux? Linux es un sistema operativo de gran difusión en la actualidad debido principalmente a que es de libre distribución.

Linux permite trabajar al usuario en modo monopuesto o en modo de red, permitiendo iniciar sesión localmente en la

máquina o de forma remota.

Es una versión de UNIX desarrollada para funcionar en plataformas de ordenador personal. También recibe el nombre de

GNU/Linux o sistema operativo libre con licencia pública GNU.

Su nombre proviene del núcleo de un sistema operativo desarrollado en 1991 por Linus Benedict. Torvalds.

La estructura general de un sistema operativo UNIX/Linux es la siguiente:

El sistema operativo está formado básicamente por 2 componentes:

Shell: Es el equivalente al intérprete de comandos de Windows y sirve para introducir órdenes, ejecutar programas, etc.

Núcleo: Como en todos los sistemas operativos, es la parte del sistema que interactúa con el hardware.

Elementos de la interfaz gráfica

Los elementos básicos del escritorio de Linux son muy similares a los de Windows:

Iconos

Ventanas

Barra de tareas

Menús de trabajo

Aplicaciones

Lugares

Sistema

Área de notificación

En Linux, a diferencia de lo que ocurre en Windows, podemos utilizar diferentes tipos de inferfaz gráfica. Las 2 más

importantes son:

Page 18: Introducción a Unix y Ubuntu 12-04

18

KDE

Page 19: Introducción a Unix y Ubuntu 12-04

19

Gnome

Entre ambos tipos hay grandes diferencias en cuanto a opciones disponibles y configuración. El uso de uno u otro depende,

en gran medida, del gusto personal de quien instala el sistema.

Algo sobre KDE De acuerdo con su página web, «KDE es un entorno de escritorio contemporáneo para estaciones de trabajo Unix. KDE

llena la necesidad de un escritorio amigable para estaciones de trabajo Unix, similar a los escritorios de Mac OS X o Windows».3

Las aplicaciones KDE están traducidas a aproximadamente 75 idiomas2 y están construidas con los principios de facilidad

de uso y de accesibilidad moderna en mente. Las aplicaciones de KDE 4 funcionan de forma completamente nativa en GNU/Linux,

BSD, Solaris, Windows y Mac OS X.

La «K», originariamente, representaba la palabra «Kool»,4 pero su significado fue abandonado más tarde.

La mascota del proyecto es un pequeño dragón llamado Konqi.

Page 20: Introducción a Unix y Ubuntu 12-04

20

Algo sobre GNOME Objetivos de GNOME

GNOME tiene dos objetivos principales:

* El entorno de escritorio GNOME, un intuitivo y atractivo escritorio para sus usuarios.

* La plataforma de desarrollo GNOME, una gran plataforma para la creación de aplicaciones que se integren en el escritorio.

El proyecto GNOME pone énfasis en la simplicidad y usabilidad, apoyándose en estas premisas:

* Crear un entorno de escritorio que siempre tenga el código fuente disponible para ser reusado bajo licencia de software

libre.

* Asegurarse que el escritorio pueda ser usado por cualquiera, sin importar habilidades técnicas o discapacidades físicas.

* Crear un proyecto disponible en múltiples idiomas (actualmente posee más de 100 versiones en diferentes idiomas).

* Facilitar la creación software que se integre cómodamente con el escritorio, permitiendo también a los programadores

elegir el lenguaje de programación.

La interfaz GNOME GNOME es similar a la mayoría de los entornos de escritorios tradicionales. Maneja ventanas, aplicaciones y archivos como

en la mayoría de los sistemas operativos actuales.

En su configuración por defecto, el escritorio posee un menú lanzador para acceso rápido a los programas instalados y a la

localización de archivos; las ventanas abiertas pueden ser accedidas por una barra de tareas alojada en el inferior de la pantalla, y

en la esquina superior derecha está el área de notificación, para que los programas muestren información mientras se ejecutan de

fondo. De todas maneras, estas características pueden ser movidas o reemplazadas según los deseos del usuario.

La apariencia de GNOME puede ser cambiada con el uso de temas, siendo los temas por defecto Bluecurve y Clearlooks.

SISTEMA DE FICHEROS DE LINUX Un sistema de ficheros es el modo en que el sistema operativo organiza los ficheros en el disco duro, gestionándolo de

manera que los datos estén de forma estructurada y sin errores.

La estructura de ficheros de Linux es una estructura jerárquica en forma de árbol invertido, donde el directorio principal

(directorio raíz) es el directorio /, del que cuelga toda la estructura del sistema:

Linux admite nombres de fichero largos y se puede utilizar cualquier carácter excepto /. De todas maneras no es

recomendable usar los siguientes caracteres, por tener significado especial en Linux:

\ ^ ~ ! # ? & ( ) ´ " ` ; · $ = ¿ ¡ < > @ { } * + -

Page 21: Introducción a Unix y Ubuntu 12-04

21

A la hora de diferenciar un fichero de otro, Linux distingue mayúsculas y minúsculas, por lo que los ficheros "texto1.txt" y

"Texto1.txt" son ficheros distintos.

TIPOS DE SISTEMAS DE FICHEROS EN LINUX Linux soporta gran variedad de sistemas de ficheros, desde sistemas basados en discos, como pueden ser ext2, ext3,

ReiserFS, XFS, JFS, UFS, ISO9660, FAT, FAT32 o NTFS, a sistemas de ficheros que sirven para comunicar equipos en la red de

diferentes sistemas operativos, como NFS (utilizado para compartir recursos entre equipos Linux) o SMB (para compartir recursos

entre máquinas Linux y Windows).

Los sistemas de ficheros indican el modo en que se gestionan los ficheros dentro de las particiones. Según su complejidad,

tienen características como previsión de apagones, posibilidad de recuperar datos, indexación para búsquedas rápidas, reducción de

la fragmentación para agilizar la lectura de los datos, etc. Hay varios tipos, normalmente ligados a sistemas operativos concretos. A continuación se enumeran los más representativos:

ext2: Hasta hace poco era el sistema estándar de Linux. Tiene una fragmentación muy baja, aunque es algo lento manejando

archivos de gran tamaño. Fue la continuación del sistema de ficheros ext, implementado en 1992 e integrado en Linux 0.96. Las

principales ventajas que tenía sobre ext eran las siguientes:

Compatible con sistemas de ficheros grandes, admitiendo particiones de disco de hasta 4TB y ficheros de hasta 2GB de

tamaño.

Proporciona nombres de ficheros largos, de hasta 255 caracteres.

Tiene una gran estabilidad.

Actualización.

ext3: Es la versión mejorada de ext2, con previsión de pérdida de datos por fallos del disco o apagones. En contraprestació,

es totalmente imposible recuperar datos borrados. Es compatible con el sistema de ficheros ext2. Actualmente es el más difundido dentro de la comunidad GNU/Linux y es considerado el estándar. Sus ventajas frente a ext2 son:

Actualización. Debido a que los dos sistemas comparten el mismo formato, es posible llevar a cabo una actualización a

ext3, incluso aunque el sistema ext2 esté montado.

Fiabilidad y mantenimiento.

ext4: Es la última versión de la familia de sistemas de ficheros ext. Sus principales ventajas radican en su eficiencia (menor

uso de CPU, mejoras en la velocidad de lectura y escritura) y en la ampliación de los límites de tamaño de los ficheros, ahora de

hasta 16TB, y del sistema de ficheros, que puede llegar a los 1024PB (PetaBytes).

ReiserFS: Es el sistema de ficheros de última generación para Linux. Organiza los ficheros de tal modo que se agilizan

mucho las operaciones con estos. El problema de ser tan actual es que muchas herramientas (por ejemplo, para recuperar datos) no

lo soportan.

swap: Es el sistema de ficheros para la partición de intercambio de Linux. Todos los sistemas Linux necesitan una partición de este tipo para cargar los programas y no saturar la memoria RAM cuando se excede su capacidad. En Windows, esto se hace

con el archivo pagefile.sys en la misma partición de trabajo, con los problemas que esto conlleva.

Además de estos sistemas de ficheros, Linux también ofrece soporte para sistemas de ficheros de Windows, como FAT,

FAT32 y NTFS. Tanto para FAT como para FAT32, Linux tiene soporte completo y estable de escritura y lectura, mientras que

para NTFS, y con las últimas versiones del kernel, solo se puede acceder de manera estable en modo lectura. En modo escritura

todavía está en fase experimental y no es estable.

DIRECTORIOS MÁS IMPORTANTES EN LINUX Veamos algunos de los directorios más importantes de Linux y lo que contienen:

/ es el directorio raíz. De aquí cuelgan todos los directorios del sistema. Dentro del directorio raíz encontramos varios

subdirectorios importantes:

/bin contiene ficheros de comandos ejecutables utilizables por todos los usuarios. Aquí tenemos los programas que pueden

lanzar todos los usuarios del sistema.

/sbin es para ejecutables de uso exclusivo por el superusuario. Son los necesarios para arrancar y montar el directorio /usr.

/home es un directorio donde se encuentran los directorios personales de los usuarios del sistema.

/usr contiene utilidades y programas generales de usuario:

/usr/bin contiene programas de uso general.

Page 22: Introducción a Unix y Ubuntu 12-04

22

/usr/share contiene archivos compartibles, independientes de la arquitectura.

/usr/share/doc contiene cierta documentación del sistema.

/usr/share/man contiene los manuales.

/usr/etc contiene archivos de configuración de uso global.

/usr/include contiene las cabeceras de C y C++.

/usr/lib contiene las bibliotecas de nuestros programas.

/usr/sbin contiene los programas de administración del sistema.

/usr/src contiene los códigos fuente de nuestros programas.

/dev contiene archivos especiales de bloques y caracteres asociados a dispositivos hardware. Aquí encontramos todos los

dispositivos físicos del sistema (todo nuestro hardware).

/lib contiene librerías y compiladores del sistema. Contiene las bibliotecas necesarias para que se ejecuten los programas

que tenemos en /bin y /sbin únicamente.

/proc contiene los archivos que reciben o envían información al núcleo. No deberíamos modificar el contenido de este

directorio.

/etc contiene los ficheros de configuración y utilidades para la administración.

/var contiene ficheros para el administrador. Este directorio contiene información variable, como registros, datos de los

servidores, etc.

/boot contiene los archivos de configuración del arranque del sistema, como por ejemplo GRUB.

/media contiene todas las unidades físicas que tenemos montadas: discos duros, unidades de DVD, pen drives, etc.

/opt sirve para admitir ficheros nuevos creados tras la modificación del sistema. Es un punto de montaje desde el que se

instalan los paquetes de aplicación adicionales. Podemos usarla para instalar aplicaciones que no vienen en los repositorios, por

ejemplo, aquellas que compilamos a mano.

/tmp es donde se almacenan los archivos temporales.

Cabe destacar que éstas son las ubicaciones de los directorios en Fedora. Para otras distribuciones algunos directorios

pueden tener un nombre diferente.

Además de los directorios que acabamos de ver, hay 2 directorios especiales:

Directorio actual (.): es un directorio especial que hace referencia al directorio en el que estamos. Si referenciamos al

directorio . nos estaremos refiriendo al directorio actual.

Directorio padre (..): es un directorio especial que hace referencia al directorio padre del directorio en el que estamos. Si

referenciamos al directorio .. nos estaremos refiriendo al directorio padre del actual. El único directorio que no tiene directorio

padre es el directorio raíz /.

Estos directorios son muy útiles a la hora de hacer referencia a rutas relativas.

TIPOS DE ARCHIVOS EN LINUX En Linux existen básicamente 5 tipos de archivos:

Archivos ordinarios. Contienen la información con la que trabaja cada usuario.

Enlaces físicos o duros (hard links). No es específicamente una clase de archivo sino un segundo nombre que se le da a un

archivo. Supón que dos usuarios necesitan compartir información de un mismo archivo. Si cada uno tuviera una copia del archivo

se soluciona el problema, pero las modificaciones que realice un usuario no las vería el otro. Sin embargo, si creamos un enlace

duro al archivo para cada usuario cada vez que uno de ellos modifique cualquier cosa en el archivo, el otro lo podrá ver puesto que

realmente están viendo y modificando el mismo archivo. El enlace sirve para localizar el archivo en su ubicación actual, pero no es

el archivo real, sino un segundo nombre que se le da. De esta forma, con tener un solo archivo real este se podrá utilizar por todos

los usuarios que lo necesiten mediante estos enlaces duros sin necesidad de duplicar o triplicar el archivo.

Enlaces simbólicos. También se utilizan para asignar un segundo nombre a un archivo. La diferencia con los enlaces duros

es que los simbólicos solamente hacen referencia al nombre del archivo original, mientras que los duros hacen referencia al inodo en el que están situados los datos del archivo original. De esta manera, si tenemos un enlace simbólico y borramos el archivo

original perderemos los datos, mientras que si tenemos un enlace duro los datos no se borrarán hasta que se hayan borrado todos y

cada uno de los enlaces duros que existen hacia esos datos en el sistema de ficheros. El conteo del número de enlaces duros que

tiene un fichero se realiza, como ya vimos, en el inodo correspondiente a los datos del fichero.

Page 23: Introducción a Unix y Ubuntu 12-04

23

Directorios. Son archivos especiales que contienen referencias a otros archivos o directorios.

Archivos especiales. Suelen representar dispositivos físicos, como unidades de almacenamiento, impresoras, terminales, etc.

En Linux, todo dispositivo físico que se conecte al ordenador está asociado a un archivo. Linux trata los archivos especiales como

archivos ordinarios.

EL SHELL DE LINUX Además del entorno gráfico, en Linux es muy importante saber usar el denominado Terminal o shell. Conceptualmente es

similar al intérprete de comandos de Windows y sirve para introducir órdenes y ejecutar programas.

Para acceder al Terminal iremos al menú de trabajo Aplicaciones y en la sección Accesorios veremos el Terminal. Veremos

que nos aparece una pantalla como la siguiente:

Las diferentes distribuciones de Linux incorporan gran variedad de terminales. Los tipos principales son los siguientes:

Shell Bourne (sh). Creado por S. Bourne, es el más utilizado en la actualidad. Su símbolo del sistema es $. Es el shell

estándar y el que se monta en casi todos los sistemas UNIX/Linux.

C-Shell (csh). Procedente del sistema BSD, proporciona funciones tales como control de trabajos, historial de órdenes, etc.

Ofrece importantes características para los programadores que trabajan en lenguaje C. Su símbolo del sistema es %.

Shell job (jsh). Incorpora algunas características de control al shell estándar del sistema.

Shell Korn (ksh). Escrito por David Korn, amplía el shell del sistema añadiendo historial de órdenes, edición en línea de

órdenes y características ampliadas de programación.

Bourne Again Shell (bash). Fue creado para usarlo en el proyecto GNU. BASH, por lo tanto, es un shell o intérprete de

comandos GNU que incorpora la mayoría de distribuciones de Linux. Es compatible con el shell sh. Además, incorpora algunas

características útiles de ksh y csh, y otras propias como la edición de línea de comandos, tamaño ilimitado del historial de

comandos, control de los trabajos y procesos, funciones y alias, cálculos aritméticos con números enteros, etc. Su símbolo del

sistema es nombre_usuario@nombre_equipo.

Tal y como pasaba en Windows, en Linux tenemos un conjunto de caracteres especiales muy útiles para realizar búsquedas

u otras operaciones sobre ficheros y directorios. En Linux, dicho conjunto de caracteres se denomina metacaracteres y son los siguientes:

Page 24: Introducción a Unix y Ubuntu 12-04

24

En general, todas las órdenes de UNIX/Linux son programas que están almacenados en el sistema de ficheros. Su sintaxis es

similar a la del entorno comando de Windows y es la siguiente:

orden [-opciones] [argumentos]