Tarea no. 1: Introducción Sistemas Operativos

Anuncio
Tarea no. 1: Introducción
Sistemas Operativos
Profesor: Andrés Becerra Sandoval
1. Instale una distribución de Linux, o use una que ya tenía. Reporte: nombre de la distribución, versión del kernel, versión de glibc, versión de gcc,
manejador de paquetes.
2. Ejecute en un emulador de terminal: $ ps -ef . ¿Que hace?. ¿Que tienen
que ver los resultados que arroja con los conceptos del curso?
3. Ejecute: $ free . ¿Que hace?. ¿Que tienen que ver los resultados que
arroja con los conceptos del curso?
4. Ejecute $ firefox . ¿Que pasa con el control de la terminal, puede volver
a ejecutar $ ps -ef ?
5. Ahora ejecute $firefox&, en otra terminal que sucede ahora con la terminal ¿puede controlarla de nuevo, que significado tiene & en unix?
6. Compile el siguiente programa (con gcc programa.c el compilador crea
a.out que puede ejecutarse con ./a.out):
# i n c l u d e < s t d i o . h>
i n t main ( ) {
while ( 1 )
p r i n t f ( "x" ) ;
return 0;
}
7. Ejecute el programa, ¿que sucede?. ¿Que pasa cuando digita la combinación
de teclas CTRL-C (con insistencia si es necesario) en la terminal?
1
8. Ejecute el programa otra vez. ¿Que pasa cuando digita la combinación de
teclas CTRL-Z (con insistencia si es necesario) en la terminal? ¿Puede ahora
ejecutar $ ps -ef ? ¿Que significado tiene CTRL-Z?
9. Ahora sobre la terminal ejecute $ fg ¿Que sucedió? ¿Que le pasó al programa que se estaba ejecutando en el lapso entre el CTRL-Z y la ejecución
de $ fg?
10. Compile y ejecute el siguiente programa de copia de archivos :
# i n c l u d e < f c n t l . h>
# i n c l u d e < u n i s t d . h>
i n t main ( ) {
i n t in , out ;
int len ;
char c ;
i n = open ( " t e s t . t x t " , O_RDONLY ) ;
o u t = open ( " o u t . t x t " , O_WRONLY | O_CREAT | O_RDONLY ) ;
w h i l e ( ( l e n = r e a d ( i n ,& c , 1 ) ) > 0 )
w r i t e ( o u t ,& c , 1 ) ;
close ( in ) ;
close ( out ) ;
return 0;
}
a) Ahora compilelo con $ gcc -E nombrearchivo ¿que archivo
se creó?, ¿que contiene?
b) Ahora compilelo con $ gcc -S nombrearchivo ¿que archivo
se creó?, ¿que contiene?
11. Ejecute $ man fg . Ejecute $ man man ¿Que es man?
12. Baje el kernel estable de linux de www.kernel.org. ¿que versión bajó?
13. Descomprima el kernel. Entre a arch/x86/syscalls y vea el archivo syscall_table_XX.tbl, donde XX es la arquitectura suya de 32 o 64 bits. ¿cuantas llamadas al sistema hay?
14. Ahora revise al archivo arch/x86/boot/main.c. Este es el archivo que contiene la función principal en el kernel de linux, ¿que entiende de la función
main? ¿Quien le pasa parámetros al kernel?
2
Descargar