historia y sistemas unix
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/1.jpg)
Historia y Sistemas UNIXDra. Karina Figueroa
![Page 2: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/2.jpg)
Contenido• Historia• Evolución de los S.O.• Ambiente del sistema UNIX• Ambiente grafico• Ambiente de texto
• Compilando y debug en UNIX/LINUX
![Page 3: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/3.jpg)
![Page 4: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/4.jpg)
Evolución de los S.O.1. Antes de los S.O.2. Solo Hardware y aplicaciones3. Sistemas Batch4. Operación off-line5. Buffering6. Simultaneous Peripheral Operation On-line: Spooling7. Sistemas de multiprogramación8. Máquinas o procesadores virtuales9. Sistemas de tiempo compartido10. Computadoras personales11. Redes de computadoras personales12. Sistemas distribuídos o redes de estación de trabajo13. Sistemas multiprocesadores14. El presente
![Page 5: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/5.jpg)
Ambiente de LINUX• Estructura del núcleo• Archivos• Interfaz del usuario• Terminales de texto
• Aplicaciones instaladas por defecto
![Page 6: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/6.jpg)
Núcleo Linux
![Page 7: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/7.jpg)
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
![Page 8: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/8.jpg)
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
![Page 9: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/9.jpg)
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.
![Page 10: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/10.jpg)
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
![Page 11: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/11.jpg)
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
![Page 12: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/12.jpg)
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
![Page 13: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/13.jpg)
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
![Page 14: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/14.jpg)
inodo
![Page 15: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/15.jpg)
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
![Page 16: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/16.jpg)
i-nodo
![Page 17: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/17.jpg)
Acceso a archivos• El usuario propietario del archivo• Los usuarios que pertenecen al grupo• El resto de los usarios• Chmod comando
![Page 18: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/18.jpg)
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
![Page 19: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/19.jpg)
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
![Page 20: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/20.jpg)
Compilando y debug• Compilar en C• Debug en C
![Page 21: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/21.jpg)
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
![Page 22: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/22.jpg)
Modos y llamada de sistema
Tabla de despacho
Procedimiento de servicio
Programa 2 del usuario
Programa 1 del usuario
Modo usuario
Modo Kernel
1
2
3
4
![Page 23: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/23.jpg)
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
![Page 24: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/24.jpg)
Código escritura en archivo#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);
}
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");}
![Page 25: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/25.jpg)
Compilando y ejecutando• karina@~> gcc prueba.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 or directory */ • #define E2BIG 7 /* Arg list too long */• #define ENOMEM 12 /* Not enough core */• #define ENOTDIR 20 /* Not a directory */::
![Page 26: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/26.jpg)
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);
}
![Page 27: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/27.jpg)
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
![Page 28: Historia y Sistemas UNIX](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813a38550346895da221e4/html5/thumbnails/28.jpg)
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