historia y sistemas unix

28
Historia y Sistemas UNIX Dra. Karina Figueroa

Upload: byron

Post on 05-Jan-2016

40 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Historia y Sistemas UNIX

Historia y Sistemas UNIXDra. Karina Figueroa

Page 2: Historia y Sistemas UNIX

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
Page 4: Historia y Sistemas UNIX

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

Ambiente de LINUX• Estructura del núcleo• Archivos• Interfaz del usuario• Terminales de texto

• Aplicaciones instaladas por defecto

Page 6: Historia y Sistemas UNIX

Núcleo Linux

Page 7: Historia y Sistemas UNIX

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

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

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

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

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

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

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

inodo

Page 15: Historia y Sistemas UNIX

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

i-nodo

Page 17: Historia y Sistemas UNIX

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

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

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

Compilando y debug• Compilar en C• Debug en C

Page 21: Historia y Sistemas UNIX

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

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

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

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

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

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

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

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