clase13

Anuncio
Procesos: Estructura de
Minix (3)
Dr. Alonso Ramírez Manzanares
7-Oct-2010
Ejemplos de archivos de
cabecera
(ver
el
libro)
string.h Definición de funciones de cadena.
signal.h Define todas las señales ANSI an POSIX (ejemplos,
interrupcion, abandonar, matar, etc.). Tambien se define la
estructura sigaction en linea 769 usada en funcion 797.
fcntl.h para las llamadas open() y fcntl().
stdlib.h Funciones comunes (¿cuál es la diferencia entre malloc
() y calloc()? ).
termios.h Para el control de las terminales TTY (Teletypewriter),
habilitar echo 1152, definir la veocidad de envio de info (1184),
tamaño de ventana en 1297.
a.out.h define el formato de los archivos executables de usuario
(línea 1400), ver número magico en 1426.
Kernel
Cuando MINIX se compila, todos los archivos
de /kernel, /mm y /fs generan archivos
objeto, los cuales se junta para formar los
executable kernel, mm y fs. Algo similar con
init en /src/tools.
El binario del SO esta compuesto por la
concatenación (lo concatena la utilería
installboot) de los anteriores que podrá cargar
y ejecutar el programa monitor de arranque.
Organización de la
memoria, despues de
desconcatenar y
cargar el binario del
SO.
Haciéndolo muy
reducido, puede
caber en 640K de
memoria!!
Tenemos 3 o más
programas
independientes que
se comunican por
mensajes.
Archivos de cabecera
Los archivos de cabecera de programas de
usuario estan en /usr/include/
Para programas de sistema usamos cabeceras
en /usr/include/sys/
Ejemplos de archivos de
cabecera (ver el libro)
ansi.h prueba si el compilador cumple con requisitos de Standar
C.
limits.h Define tamaños de tipos del lenguaje (ejemplo: tamaño
máximo del path de un archivo [172], número de archivos abiertos
de un proceso [16], etc).
errno.h números de error devueltos (negativos para sistema y
positivos para programas de usuario).
unistd.h constantes requeridas por POSIX y prototipos de
funciones importantes (ejemplo: def de in/out std). También ver
def. de size_t y ssize_t en linea 405. Aqui estan declarados los
prototipos de las llamadas al SO.
Ejemplos de archivos de
cabecera
(ver
el
libro)
string.h Definición de funciones de cadena.
signal.h Define todas las señales ANSI an POSIX (ejemplos,
interrupcion, abandonar, matar, etc.). Tambien se define la
estructura sigaction en linea 769 usada en funcion 797.
fcntl.h para las llamadas open() y fcntl().
stdlib.h Funciones comunes (¿cuál es la diferencia entre malloc
() y calloc()? ).
termios.h Para el control de las terminales TTY (Teletypewriter),
habilitar echo 1152, definir la veocidad de envio de info (1184),
tamaño de ventana en 1297.
a.out.h define el formato de los archivos executables de usuario
(línea 1400), ver número magico en 1426.
Archivos de cabecera de
sistema
sys/types.h muchos tipos de datos empleados
por minix (ver linea 1653, # de links y confrontar
con limits.h)
sys/ioctl.h macros para operaciones de
control de dispositivos (incluso para tarjeta de
sonido en línea 1922)
Archivos de cabecera de
sistema
sys/sigcontext.h define la estructura sigcontext,
usada por la llamada sigreturn, usada por el mecanismo
que atrapa señales. Esto se define dependiento de cada
tipo de microprocesador.
sys/stat.h En 2300, define la estructura de
información de los archivos.
sys/dir.h define la estructura de los archivos que son
directorios.
sys/wait.h Macros relacionadas con wait(), por ejemplo
define el regreso por izquierda dependiendo de la
terminación del proceso.
Archivos de cabecera de
MINIX /include/minix/
config.h ahi se define la maquina donde va a correr.
Aqui podemos hacer cambios y recompilar el sistema.
Por ejemplo, definir la máquina.
El compilador el es Amsterdam Compiler Kit __ACK__.
Este compilador define el tamaño de la palabra en bytes
en 2627 (ver como se usa esto en la línea 2647).
Lineas más editadas en la linea 2671, se ve como se
habilitan y deshabiltan servicios.
Archivos de cabecera de
MINIX
/include/minix/
const.h Uso de Extern, el
cual podemos definir y
tambien redefinirlo como una
cadena nula. Tenemos cosas
como max min en 2949,
directorios en 2981, etc.
type.h, la definición de
mensaje en lineas 3135,
usando union (m_type lo
veremos más adelante).
El tamaño de la estructura puede cambiar dependiendo
del tamaño de los datos primitivos
Archivos de cabecera de
MINIX /include/minix/
callnr.h cuando se hace llamada al sistema, se envia
un mensaje al MM o al FS, el número de llamada se
define aqui (linea 3400).
com.h definiciones empleadas en mensajes del MM y el
FS a las tareas de entrada/salida (E/S). También se
definen los números de las tareas (negativos, para
diferenciarlos de los procesos). También se definen los
tipos de mensajes, ejemplo, GET_TIME (linea 3604) que
se usa en la estructura de mensaje en 3137 en type.h.
Descargar