La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Historia y Sistemas UNIX Dra. Karina Figueroa. Contenido Historia Evolución de los S.O. Ambiente del sistema UNIX Ambiente grafico Ambiente de texto Compilando.

Presentaciones similares


Presentación del tema: "Historia y Sistemas UNIX Dra. Karina Figueroa. Contenido Historia Evolución de los S.O. Ambiente del sistema UNIX Ambiente grafico Ambiente de texto Compilando."— 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. 1.Antes de los S.O. 2.Solo Hardware y aplicaciones 3.Sistemas Batch 4.Operación off-line 5.Buffering 6.Simultaneous Peripheral Operation On-line: Spooling 7.Sistemas de multiprogramación 8.Máquinas o procesadores virtuales 9.Sistemas de tiempo compartido 10.Computadoras personales 11.Redes de computadoras personales 12.Sistemas distribuídos o redes de estación de trabajo 13.Sistemas multiprocesadores 14.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 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 ls mkdir cd mv Comandos Linux man top ls –l echo cat more cp history last w ps talk write wall

19 Comandos sobre archivos chmod ugo+rwx chown : grep awk codigo diff wc head tail sed Redireccionamiento < entrada > salida | pipe

20 Compilando y debug Compilar en C Debug en C

21 Llamada de sistema Qué son? 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 Tabla de despacho Procedimiento de servicio Programa 2 del usuario Programa 1 del usuario Modo usuario Modo Kernel

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 #include 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); } 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"); }

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 7/* 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); perror("Mensaje"); 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 Comparar la estructura con la de Linux Ventajas y desventajas

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 Dra. Karina Figueroa. Contenido Historia Evolución de los S.O. Ambiente del sistema UNIX Ambiente grafico Ambiente de texto Compilando."

Presentaciones similares


Anuncios Google