La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Historia y Sistemas UNIX

Presentaciones similares


Presentación del tema: "Historia y Sistemas UNIX"— Transcripción de la presentación:

1 Historia y Sistemas UNIX
Dra. Karina Figueroa

2 Contenido Historia Evolución de los S.O. Ambiente del sistema UNIX
Ambiente grafico Ambiente de texto Compilando y debug en UNIX/LINUX

3

4 Evolución de los S.O. Antes de los S.O. Solo Hardware y aplicaciones
Sistemas Batch Operación off-line Buffering Simultaneous Peripheral Operation On-line: Spooling Sistemas de multiprogramación Máquinas o procesadores virtuales Sistemas de tiempo compartido Computadoras personales Redes de computadoras personales Sistemas distribuídos o redes de estación de trabajo Sistemas multiprocesadores El presente

5 Ambiente de LINUX Estructura del núcleo Archivos Interfaz del usuario
Terminales de texto Aplicaciones instaladas por defecto

6 Núcleo Linux

7 Tipos de archivos Archivos para el filesystem
Archivo regular Directorio Link simbólico Hard link (directorio) Soft link (archivos) Dispositivos de entrada y salida o drivers Archivos de dispositivos Block-oriented Transfiere datos en bloques (DD) Archivos de dispositivos Character-oriented Transferencia byte por byte (modem) Para la intercomunicación de procesos Pipe Socket

8 Directorios / raíz /bin /usr/bin /sbin /lib /usr/lib /tmp /home /etc
utilidades de sistema de bajo nivel /usr/bin utilidades de sistema de alto nivel /sbin uitlidades como super usuario /lib Librerías de programas /usr/lib Librerías de programas de alto nivel /tmp Temporal /home Directorios personales /etc Archivos de configuración /dev Dispositivos de hardware /proc Un pseudo-filesystem usado como una interfaz con el kernel

9 Descriptores de archivos
Unix hace una clara distinción entre el contenido de un archivo y la información acerca de un archivo. Los archivos no tiene ninguna información de control (longuitud, fin de archivo, delimitador). Cada archivo consiste de una secuencia de bytes. Con la excepción de dispositivo de un archivo y los archivos especiales del filesystem Toda la información necesaria por el filesystem se mantiene en un archivo llamado inodo. Cada archivo tiene su propio inodo con el que el filesystem lo identifica.

10 archivos Al menos deben tener Tipo de archivo
Núm de hard links asociados al archivo Longitud en bytes del archivo ID dispositivo (i.e., un identificador del dispositivo que contienen al archivo) Núm de inodo que identifica al archivo UID del propietario del archivo ID del grupo del archivo Timestamps que especifican el estatus del inodo en el tiempo Fecha de modificación Permisos de acceso al archivo

11 Sistema de archivos El sistema de archivos Unix se sitúa dentro del núcleo del S.O. Se encarga de darle estructura en archivos a una partición del disco Implementa el sistema jerárquico de nombres y directorios

12 Superbloque Almacena Tamaño de los bloques Número de inodos Número de bloques Etc Por ejemplo ver: en Linux (/usr/include/linux/ext2_fs.h) Definición de superbloque ext2_sb Definición de inodo, ext2_inode

13 Inodo Es la estructura de datos que representa un archivo. Existe un inodo por cada archivo Almacena: El largo del archivo Permisos (12 bits) Número de usuario Número de grupo Fecha y hora de creación, modificación y consulta Núm de enlaces duros El tipo: archivo normal, directorio, link simbólico, dispositivo 12 punteros a bloques en disco que contienen los datos del archivo Un puntero de indirección simple Un puntero de indirección doble Un puntero de indirección triple

14 inodo

15 Inodos Los inodos se enumeran como 0,1,2,…
El inodo 0 es el directorio raíz de la petición Cómo se busca un nombre? Por ejem /usr/bin/X11/xfig Ubicar partición /, /usr, /home y /tmp Buscamos el archivo bin Buscamos X11 en el inodo donde se encuentra bin Buscar xfig en el inodo donde se encuentra X11

16 i-nodo

17 Acceso a archivos El usuario propietario del archivo
Los usuarios que pertenecen al grupo El resto de los usarios Chmod comando

18 Comandos de Linux Abrir una terminal Comandos “clásicos”
mkdir <directorio> cd <directorio> mv <origen> <destino> Comandos Linux man top ls –l echo cat <archivo> more <archivo> cp <origen> <destino> history last w ps talk write wall

19 Comandos sobre archivos
chmod ugo+rwx <archivo> chown <user>:<group> <archivo> grep “<expreg>” <archivo> awk “codigo” <archivo> diff <archivo1> <archivo2> wc <archivo> head <archivo> tail <archivo> sed “<expreg>” <archivo> Redireccionamiento < entrada > salida | pipe

20 Compilando y debug Compilar en C Debug en C

21 Llamada de sistema Qué son? Como se usan? Ejemplos
Son llamados a procedimientos del kernel Necesitan un cambio de privilegios Básicamente Se realiza almacenando el num de llamada al sistema en el registo EAX Almacena los argumentos de la llamada Ejecuta una excepción (código en ensamblador) Se usa el num de llamada al sistema como índice para una tabla de apuntadores de código Obtener la dirección de comienzo del código Se ejecuta con privilegios de kernel Como se usan? Se enumeran en /usr/src/linux-2.x/include/asm-i386/unistd.h Ejemplos Close, corresponde a close() Hay una lista de descriptores entry.S

22 Modos y llamada de sistema
usuario Programa 2 del usuario Programa 1 del usuario 1 4 Tabla de despacho Procedimiento de servicio Modo Kernel 3 2

23 Llamada de Sistema En su mayoría regresan dos tipos de valores:
menor a cero: hubo un error en la ejecución cero o mayor a cero: todo salió bien Si hubo error es posible ver la naturaleza del error a través de la página del manual de la llamada y de la variable errno del archivo de encabezado errno.h

24 Código escritura en archivo
if ( read(fd,fd,sizeof(frase)) < 0 ) { perror("Error en read"); exit(2); } printf("Se leyo: %s \n",frase); close(fd); printf("Fin del ejemplo \n"); #include <strings.h> #include <fcntl.h> #include <stdio.h> #include <errno.h> main() { int fd; char frase[80]; printf(“Leyendo de un archivo \n"); if ( (fd = open(”archivo", O_RDONLY)) < 0) printf("Error no. %d en open \n",errno); exit(1); }

25 Compilando y ejecutando
gcc prueba.c Escribiendo en un archivo Error no. 2 en open 2 /usr/include/sys/errno.h #define ENOENT 2 /* No such file or directory */ #define E2BIG /* Arg list too long */ #define ENOMEM 12 /* Not enough core */ #define ENOTDIR 20 /* Not a directory */ :

26 Una opción más completa
if ( (fd = open(”archivo", O_RDONLY)) < 0) { printf("Error %d en open\n",errno); perror("Mensaje"); exit(1); } if ( read(fd, fd ,sizeof(frase)) < 0 ) printf("Error %d en read\n",errno); exit(2);

27 Tarea Investigar el sistema de archivos FAT
Comparar la estructura con la de Linux Ventajas y desventajas Investigar el sistema de archivos vFAT

28 Compilar un kernel /usr/src/linux make xconfig make dep make bzImage
Añada una entra en lilo y grub Lilo.conf Image=/boot/bzImage.myKernel Label=myKernel root=/dev/hda5 read-only


Descargar ppt "Historia y Sistemas UNIX"

Presentaciones similares


Anuncios Google