1 / 28

Historia y Sistemas UNIX

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 y debug en UNIX/LINUX. Evolución de los S.O. Antes de los S.O. Solo Hardware y aplicaciones Sistemas Batch

byron
Download Presentation

Historia y Sistemas UNIX

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. Evolución de los S.O. • Antes de los S.O. • Solo Hardware y aplicaciones • Sistemas Batch • Operación off-line • Buffering • SimultaneousPeripheralOperation 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

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

  5. Núcleo Linux

  6. Tipos de archivos • Archivos para el filesystem • Archivo regular • Directorio • Link simbólico • Hardlink (directorio) • Softlink (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

  7. 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

  8. 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 inodocon el que el filesystem lo identifica.

  9. 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

  10. 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

  11. 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

  12. 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

  13. inodo

  14. 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

  15. i-nodo

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

  17. Comandos de Linux • Abrir una terminal • Comandos “clásicos” • ls • 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

  18. Comandos sobre archivos • chmodugo+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

  19. Compilando y debug • Compilar en C • Debug en C

  20. 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

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

  22. 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 errnodel archivo de encabezado errno.h

  23. Código escritura en archivo #include <strings.h> #include <fcntl.h> #include <stdio.h> #include <errno.h> main() { intfd; 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"); }

  24. Compilando y ejecutando • karina@~> gccprueba.c • karina@~>a.out • Escribiendo en un archivo • Error no. 2 en open • karina@~>grep 2 /usr/include/sys/errno.h • #define ENOENT 2 /* No such file ordirectory */ • #define E2BIG 7 /* Arglisttoolong */ • #define ENOMEM 12 /* Notenoughcore */ • #define ENOTDIR 20 /* Not a directory */ : :

  25. 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); }

  26. 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

  27. Compilar un kernel • /usr/src/linux • makexconfig • makedep • makebzImage • Añada una entra en lilo y grub • Lilo.conf • Image=/boot/bzImage.myKernel • Label=myKernel • root=/dev/hda5 • read-only

More Related