UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA EN INFORMTICA Y SISTEMAS
CURSO: SISTEMAS OPERATIVOS AO DE ESTUDIOS: TERCERO
Ing. Hugo Barraza Vizcarra 1/9
LABORATORIO N 04
EL SISTEMA DE FICHEROS Y DIRECTORIOS
1. OBJETIVOS
Analizar el rol del sistema de ficheros en un Sistema Operativo. Analizar el sistema de ficheros EXT3 de Ubuntu Linux. Analizar el sistema de ficheros NTFS de Microsoft Windows.
2. FUNDAMENTO TERICO
Los sistemas de ficheros de un Sistema Operativo tienen como objetivo organizar la informacin que tenemos en el Sistema. El sistema de archivos forma parte del sistema de ficheros (FAT16, FAT32, NTFS, EXT3). Los discos duros (HDD) por lo general tienen la informacin organizada en sectores, que se reparten en cilindros que pertenecen a discos, que su vez podan tener una o mltiples cabezas. Esta estructura no guarda relacin alguna con la forma en que un usuario la puede observar a travs del Sistema Operativo (al menos, tanto en Linux como en Windows). El usuario final encuentra la informacin almacenada en ficheros que se encuentran a su vez en un sistema de directorios y subdirectorios propio del sistema operativo.
Existen distintas estructuras de sistemas de ficheros, los sistemas operativos modernos usan la estructura tipo rbol. En una estructura tipo rbol, los directorios se ordenan de forma jerrquica. Cada directorio puede tener uno o ms subdirectorios. De este modo, en cada subdirectorio se puede encontrar uno o ms. A partir de ah, las diferencias entre los sistemas de ficheros empiezan a aflorar. En algunos sistemas de ficheros est permitido que un mismo fichero est en varios directorios. En otros, como Windows, cada unidad de almacenamiento del sistema contiene su propio sistema de ficheros; en Linux, todos los dispositivos conectados al ordenador se integran en una nica jerarqua de directorios. Notaremos esas caractersticas y diferencias a lo largo de esta prctica.
3. PROCEDIMIENTO
1. Inicia Ubuntu. En primer lugar, debemos que asegurarnos que tenemos instalado las Guest Additions (men Dispositivos de la mquina virtual), que nos permitirn montar unidades externas como si fueran discos duros. En el caso que recin lo hayas instalado, reinicia la mquina virtual para que los cambios surtan efecto.
Cuando la mquina haya arrancado de nuevo, teclea el siguiente comando:
$pwd
Ejecuta tambin en la terminal man pwd y apunta el significado del comando.
Qudate con la idea de que pwd son las siglas de print working directory.
2. Aparte de saber en qu directorio estamos, es importante saber tambin a qu directorios nos podemos dirigir desde nuestro directorio actual. Ejecuta el comando que ya conocemos:
$ls -l
De la lista que se muestra, todas las lneas que comienzan con d corresponden a directorios. Esto quiere decir que nos podemos dirigir a ellos por medio de cd nombre_directorio.
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERA ESCUELA ACADMICO PROFESIONAL DE INGENIERA EN INFORMTICA Y SISTEMAS CURSO: SISTEMAS OPERATIVOS AO DE ESTUDIOS: TERCERO
Ing. Hugo Barraza Vizcarra 2/9 3. Comprueba el significado del comando cd (change directory) y anota su significado:
4. Dirgete ahora al directorio Escritorio por medio del comando:
$cd Escritorio
5. Comprueba la ruta completa del directorio en el que te encuentras ahora por medio del comando:
$pwd
6. Vamos a comprobar ahora los contenidos del directorio en que nos encontramos:
$ls
7. Si recin acabas de instalar Ubuntu, es muy probable que la carpeta est vaca. En la estructura de rbol propia del sistema de directorios, podra decirse que hemos llegado a una de las hojas (o de los fines) del rbol (y por tanto no podemos seguir bajando en la estructura de directorios). Sin embargo, aun estando vaca, todas las carpetas en los sistemas basados en Linux contienen dos directorios. Teclea el comando:
$ls -la
En primer lugar, debes recordar que la opcin -l se usa para mostrar directorios y ficheros en long format (es decir, con su tipo, permisos, nmero de enlaces o de contenidos, propietario, grupo, tamao y fecha. Responda a las siguientes preguntas: Para qu sirve la opcin -a del comando ls?
El directorio . es una abreviatura que siempre equivale a mi directorio actual (y se encuentra en cualquier directorio de Linux). Aunque el directorio . pueda parecer de poca utilidad por el momento, resultar prctico ms adelante para hacer operaciones como copiar ficheros de un directorio dado a mi directorio actual.
Veamos ahora el significado del directorio ... Ejecuta el comando. UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERA ESCUELA ACADMICO PROFESIONAL DE INGENIERA EN INFORMTICA Y SISTEMAS CURSO: SISTEMAS OPERATIVOS AO DE ESTUDIOS: TERCERO
Ing. Hugo Barraza Vizcarra 3/9
$cd ..
Ejecuta pwd.
El directorio .. es una abreviatura que significa sube un nivel en el rbol de directorios. Tambin se encuentra en todos los directorios del sistema. Comprubalo por medio de:
$ls -la
8. Vamos seguir subiendo por el rbol de directorios de nuestro sistema. Repite el comando:
$cd ..
9. Ahora deberas encontrarte en el directorio /home. Cul es la finalidad de este directorio?
Qu carpetas aparecen en este directorio en tu ordenador? Qu usuarios propios (es decir, no para uso interno del sistema) hay en tu ordenador? (Recuerda que lo puedes comprobar por medio de less /etc/passwd).
Observa que el directorio /, tambin conocido como raz, no tiene nada que ver con el usuario root. El directorio raz hace referencia a que el mismo es el origen del rbol de directorios, y por tanto todos los contenidos de tu ordenador (ficheros, discos duros que puedas manejar, unidades USB) estarn por debajo de este directorio. Podemos seguir subiendo por el rbol de directorios? Ejecuta los comandos:
$cd .. ; pwd
El carcter ; concatena los dos comandos (primero se ejecuta cd .. y a continuacin pwd).
Has ascendido un nivel en el rbol de directorios?
11. Vamos ahora a hacer un breve repaso de lo que nos podemos encontrar en el directorio raz de un sistema Linux (puede que haya alguna pequea diferencia entre distribuciones, pero en general todas las distribuciones mantienen una estructura muy similar). Ejecuta:
$ls -la
Observa el propietario de todos los directorios que se encuentran en el directorio raz. Tendremos permisos de escritura en el directorio raz (sin usar sudo)? Ejecuta el comando: UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERA ESCUELA ACADMICO PROFESIONAL DE INGENIERA EN INFORMTICA Y SISTEMAS CURSO: SISTEMAS OPERATIVOS AO DE ESTUDIOS: TERCERO
Ing. Hugo Barraza Vizcarra 4/9
$mkdir hola
(Puedes comprobar la funcin de mkdir por medio de man mkdir). Qu ha sucedido? Vamos a ver brevemente qu contiene cada uno de los directorios que cuelgan del directorio raz. Ejecuta de nuevo:
$ls -la
En http://www.linux-es.org/node/112 puedes encontrar una descripcin detallada de la utilidad de cada uno de ellos. En http://www.pinoytux.com/linux/linux-file-directory- structure tienes una representacin grfica que tambin debe serte til. Apunta en tu informe su significado. Es importante que retengas algunas ideas. En qu directorio encontraras los dispositivos de almacenamiento externos (CDROM, USB)? En qu directorio(s) encontraras los comandos que se ejecutan desde la consola? En qu directorio encontraras los directorios de inicio de los usuarios?
Hay una opcin del comando ls que permite mostrar el contenido de cada directorio de forma recursiva (explorando de este modo toda la estructura de directorios de la mquina Linux que se encuentre por debajo de nuestro directorio actual). Ejecuta el comando (usamos sudo para que pueda listar el contenido de todos los directorios):
$sudo ls -R
Evidentemente la salida del comando no ha sido de gran ayuda. Sin embargo, s puede serlo si quieres explorar todos los directorios que cuelgan de uno dado (y no todos los de la mquina, como acabamos de hacer).
Antes de seguir trabajando con directorios, es importante distinguir la diferencia entre rutas absolutas y rutas relativas (problema que ya tratamos a la hora de hablar de los enlaces en html). Desde el directorio raz dirgete al directorio home de alumno:
$cd /home/alumno
Ahora dirgete a su Escritorio; comprueba que para llevar a cabo tal tarea, los dos comandos siguientes seran correctos:
$cd Escritorio
$cd /home/alumno/Escritorio $pwd
La primera ruta que hemos especificado (que no empezaba por /) es una ruta relativa al directorio en que nos encontrbamos cuando hemos ejecutado el comando cd Escritorio (es decir, /home/alumno). Por eso, el resultado final es /home/alumno/Escritorio.
En el segundo caso (que empezaba por /) la ruta es absoluta. Empezando desde el directorio raz, / nos dirigimos al directorio home, dentro de ste a alumno y despus a Escritorio.
12. Vamos a recuperar ahora las variables de entorno que ya vimos en una prctica anterior. Ejecuta el comando:
$set | less
Apunta el valor de la variable $HOME. Ejecuta ahora:
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERA ESCUELA ACADMICO PROFESIONAL DE INGENIERA EN INFORMTICA Y SISTEMAS CURSO: SISTEMAS OPERATIVOS AO DE ESTUDIOS: TERCERO
13. Los usuarios tambin pueden definir sus propias variables de entorno por medio del comando export. Ejecuta el comando:
$export mi_escritorio=/home/alumno/Escritorio $set | less
Encuentras la variable definida entre las variables del entorno? Ejecuta ahora el comando:
$cd $mi_escritorio; pwd
Las variables definidas por medio de export (o de set) slo son vlidas para la sesin de la shell que se encuentre abierta. Si quieres hacerlas permanentes (para futuras sesiones) debes introducirlas (con precaucin), por ejemplo, en el fichero .bashrc (que se encuentra en tu directorio $HOME). El uso de variables puede ser cmodo para crear atajos a carpetas. Otro atajo para la variable $HOME de cada uno de los usuarios viene dado por cd ~. Comprueba el resultado de ejecutar:
$cd ~; pwd
14. Vamos a ver ahora cmo se puede montar una unidad externa o carpeta en nuestra mquina Linux. Como ya hemos aprendido, en los sistemas Linux todos los directorios de la mquina cuelgan o descienden del directorio raz. Sin embargo, si queremos aadir una unidad externa (de red o simplemente de almacenamiento, como un USB o un CD), e independientemente de que el sistema de ficheros (FAT32, NTFS) de la unidad a montar sea distinto del de la mquina origen (posiblemente ext3 ext4), podemos hacerlo a travs del comando mount. Investiga cual el motivo por el cual en Linux es necesario montar dispositivos, mientras que en Windows no lo es.
Para poder montar una carpeta o directorio de nuestra mquina Windows en Linux, haremos uso de la interfaz que nos facilita VirtualBox para ello. Dentro de la opcin Dispositivos del men de la mquina virtual, en la opcin Carpetas Compartidas, pulsa el icono (Agregar carpeta compartida). En el men Ruta carpeta debes identificar la carpeta de tu sistema Windows que pretendes montar. Eso incluye, por supuesto, tu unidad de USB. Elige una carpeta de la mquina Windows (el Escritorio, tu USB, el directorio C:) y asgnale un nombre en el campo Nombre carpeta (a ser posible un nombre sin espacios en blanco; apntalo porque UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERA ESCUELA ACADMICO PROFESIONAL DE INGENIERA EN INFORMTICA Y SISTEMAS CURSO: SISTEMAS OPERATIVOS AO DE ESTUDIOS: TERCERO
Ing. Hugo Barraza Vizcarra 6/9 luego lo necesitars para poder montar la unidad). Pulsa Aceptar.
Recupera ahora la shell Linux. En primer lugar, crea la carpeta donde quieres que se monte el directorio o unidad externa (por ejemplo, en el escritorio de Linux /home/alumno/Escritorio) por medio del comando:
$mkdir Carpeta_Windows
Comprueba que la operacin se ha completado con xito (ls l). Ahora ejecuta el comando: $mount t vboxsf Nombre_Carpeta Carpeta_Windows
(donde Nombre_Carpeta debes sustituirlo por el nombre que asignaste en el men de VirtualBox a la unidad o directorio de Windows). Qu ha sucedido?
Se corresponden con los que tienes en la carpeta montada en Windows? El hecho de haber usado sudo para montar la carpeta hace que las operaciones de escritura y borrado sobre la misma deban hacerse por medio de sudo.
De igual modo a como hemos hecho entre la mquina virtual y la mquina Windows en este caso, podemos montar en una mquina Linux cualquier otra particin que se encuentre en su mismo disco duro (ste sera el caso en que no tuvieras Linux en una mquina virtual sino en una particin). Puedes encontrar los pasos a seguir (similares a los que hemos mostrado, aunque cambiando alguna de las opciones) en http://www.guia- ubuntu.org/index.php?title=Montar_particiones.
Suponiendo que hayas terminado de operar con la carpeta montada, puedes desmontar la misma por medio de:
$sudo umount Carpeta_Windows
15. Recupera los comandos que has usado hasta ahora en la sesin por medio de history. Redirgelos a un fichero de nombre comandoslinux. Al final de la prctica debers al Aula junto al informe de la laboratorio.
Pasamos ahora a ver la estructura de directorios propia de los sistemas Windows, con la que por lo general estamos ms familiarizados.
16. Abre un intrprete de comandos de Windows (cmd). Vamos a repetir algunos de los ejercicios que hemos hecho en Linux y ver lo que sucede. Para conocer el directorio en que te encuentras en Windows puedes usar el comando:
>cd
Apunta el nombre del directorio en que te encuentras. Observa que en Windows, las rutas de carpetas y directorios se especifican por medio de la barra \, en lugar de usar /.
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERA ESCUELA ACADMICO PROFESIONAL DE INGENIERA EN INFORMTICA Y SISTEMAS CURSO: SISTEMAS OPERATIVOS AO DE ESTUDIOS: TERCERO
Ing. Hugo Barraza Vizcarra 7/9 17. Vamos a ver ahora el comando que nos permite listar el contenido de un directorio (ls en Linux):
>dir Observa las dos primeras entradas del directorio. Las reconoces de Linux?
18. El comando dir nos permite usar algunas opciones adicionales. Puedes comprobarlas por medio de:
>help dir
Vamos a observar ahora quin es el propietario de cada uno de los ficheros de la carpeta en que nos encontramos. Para ello debes usar:
>dir /Q
19. Vamos a ascender ahora por el rbol de directorios de nuestra mquina Windows. Ejecuta el comando:
>cd ..
20. Comprueba en qu directorio te encuentras por medio de cd.
>cd
21. Vamos a comprobar tambin el valor del directorio .:
>cd . >cd
22. Subimos un nuevo nivel:
>cd ..
Ahora deberas encontrarte en la unidad C:. La unidad C: corresponde con una de las particiones de nuestro disco duro. Cada particin del mismo, o cada unidad externa (CDROM, disquetera, USB) tienen una letra propia, y dan lugar a un rbol de directorios propio. Observa y apunta en un informe la diferencia de esta organizacin con la propia de Linux.
23. Si tienes alguna otra unidad habilitada en tu disco duro (por ejemplo, un USB introducido en F:, o un cd introducido en D:), puedes acceder a ellos por medio de:
>F:
24. Comprueba que ests en C: (por medio de cd). Si es as, ejecuta el comando:
>dir
Observa los contenidos del directorio C:. Trata de identificar algunas de las carpetas ms relevantes en el mismo (posiblemente sea ms difcil que en Linux). Observa en particular las carpetas Windows, Program Files y Users. Cul ser su utilidad?
25. En Windows, al igual que en Linux, podemos trabajar con rutas relativas y rutas absolutas. Las rutas absolutas siempre sern de la forma Unidad:\ruta\archivo, mientras que las relativas sern simplemente ruta_relativa\archivo.
Desde el directorio en que te encuentras ahora, puedes explorar todo el rbol de directorios de la unidad C: (que no de todo el sistema, como en Linux). Ejecuta el comando:
>tree UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERA ESCUELA ACADMICO PROFESIONAL DE INGENIERA EN INFORMTICA Y SISTEMAS CURSO: SISTEMAS OPERATIVOS AO DE ESTUDIOS: TERCERO
Ing. Hugo Barraza Vizcarra 8/9
La informacin obtenida quiz no sea de gran utilidad, pero s que debera servir para comprobar la estructura de rbol del sistema de directorios, y cmo unas carpetas se encuentran dentro de otras.
Ejecuta de nuevo el comando sobre la carpeta Users:
>tree Users
Observa cmo se distribuye la informacin en dicha carpeta.
26. En Windows tambin podemos hacer uso de las variables de entorno para dirigirnos de forma ms sencilla a directorios. Ejecuta el comando:
>set
Apunta el valor de la variable HOMEPATH. Ejecuta ahora:
>cd %HOMEPATH%
En qu directorio te encuentras? Tambin podemos definir nuevas variables de entorno por medio del propio comando set:
>set escritorio=C:\Users\Alumno\Desktop
Comprueba ahora el resultado de ejecutar:
>cd %escritorio%
(Las variables de entorno que se definen por medio de set en el intrprete, al igual que en Linux, tampoco son permanentes; si quieres hacerlas permanentes tienes que hacerlo en Equipo -> Propiedades -> Configuracin Avanzada del sistema -> Opciones avanzadas -> Variables de Entorno).
27. Ejecuta el comando:
>DOSKEY /h
Qu ha sucedido? Redirige la salida del mismo a un fichero comandoswindows.
28. Comprueba que el fichero contiene la informacin que necesitas por medio del comando:
>type comandoswindows
29. Sube al Aula el informe de laboratorio, as como los ficheros comandoslinux y comandoswindows.
4. INDICACIONES
Para la elaboracin de su informe de laboratorio, tome en cuenta las siguientes indicaciones: a. El informe se presenta de manera individual y se debe subir antes de la fecha y hora indicada al ambiente virtual. b. Se sugiere que use el siguiente esquema: Cartula. Objetivos. Fundamento terico. UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERA ESCUELA ACADMICO PROFESIONAL DE INGENIERA EN INFORMTICA Y SISTEMAS CURSO: SISTEMAS OPERATIVOS AO DE ESTUDIOS: TERCERO
Ing. Hugo Barraza Vizcarra 9/9 Procedimiento y desarrollo. Conclusiones. Referencias bibliogrficas. c. En su cartula, considere como mnimo los siguientes puntos: Como cabecera: Nombre de la Universidad / Facultad / Escuela. Nmero y nombre del informe de laboratorio. Nombre del curso / Nombre de los docentes. Nombre del estudiante / Cdigo universitario. Ao / Seccin / Horario. Fecha de elaboracin (da que se realiz el laboratorio). Fecha de entrega del informe (da que debe presentar el informe). d. Use como mnimo 5 referencias bibliogrficas (libros, artculos, webs, etc) y ctelas en su fundamento terico. Debe usar el estilo APA para citar material bibliogrfico. e. Las conclusiones, la cantidad conclusiones debe ser la misma que la cantidad de objetivos y estas deben estar estrechamente relacionadas entre ellas.