- Escuchar el audiocast "¿Qué es la programación de sistemas?" en la página Audiocasts de este mismo blog.
- Identificar los elementos importantes y diseñar un mapa mental (ver: http://freemind.sourceforge.net/wiki/index.php/Main_Page) con definiciones cortas de cada uno de ellos. NOTA: Dos (2) o más mapas mentales iguales se invalidarán.
- Investigar al menos 2 entornos visuales para utilizarse en la programación de sistemas. Entregar engargolado y de forma individual. Al menos 5 cuartillas en el siguiente formato:
- Hoja de presentación
- Introducción
- Cuerpo de la investigación
- Conclusiones
- Bibliografía consultada (al menos 2 libros y no más de 2 páginas Web)
- Entregar un ensayo de al menos 3 cuartillas que discuta los conceptos de ensamblador, cargador, traductor y ligador. Deberá cumplir con los siguientes requisitos:
- Formato del ensayo en artículo para publicación científica-académica.
- Modelo de citas bibliográficas APA.
- Investigar los comandos de un editor en línea y realizar un ejercicio.
- Investigar y presentar diferentes cabeceras de archivos como PE, Coff, MZ, y ELF.
ACTIVIDAD 1: La entrega es la semana 2 de clases
ACTIVIDAD 2: La entrega es en la primera sesión de la semana 3 de clases
ACTIVIDAD 3: La entrega y presentación del ejercicio (incluya imágenes) es en la segunda sesión de la semana 3 de clases.
ACTIVIDAD 4: La entrega es en la tercera sesión de la semana 3 de clases, bajo el siguiente formato:
- Hoja de presentación
- Generalidades de las cabeceras de los archivos ejecutables
- Desarrollo de cada tipo de cabecera
- Conclusiones
- Bibliografía
ACTIVIDAD 5.
Diseñar un programa en lenguaje C que permita escribir (capturar) una línea de texto en la terminal y después de oprimir la tecla Enter, que devuelva como resultado el número de palabras escritas.NOTA. Debe ser escrito, compilado y ejecutado en Linux.
Productos a entregar:
- Código fuente del programa
- Código ejecutable del programa
- Vídeo de la terminal donde se mostrará el código fuente capturado, el proceso de la compilación y la ejecución del programa. Deberá ser narrado. SUGERENCIA: utilizar el programa Camtasia si tienen instalado virtualmente a Linux o investigar programa de software libre para instalarse en Linux que permita capturar video de la pantalla.
Deberá entregarse en CD en la segunda sesión de la cuarta semana de clases.
Actividad 6.
Diseñar un programa que reciba una línea de texto y que permita corregir un error de escritura permitiendo borrar un carácter a la izquierda utilizando la tecla backspace.NOTA. Debe ser escrito, compilado y ejecutado en Linux.
Productos a entregar:
- Código fuente del programa
- Código ejecutable del programa
- Vídeo de la terminal donde se mostrará el código fuente capturado, el proceso de la compilación y la ejecución del programa. Deberá ser narrado con tu voz.
Deberá entregarse en CD en la primera sesión de la quinta semana de clases.
ACTIVIDAD 7.
Diseñar en una hoja de rotafolio una tabla de cuatro columnas que contenga lo siguiente:SISTEMA OPERATIVO | SISTEMA DE ARCHIVOS | CABECERA DE ARCHIVO | COMENTARIOS |
En la columna de comentarios deberá explicar la relación entre el sistema de archivos de un determinado sistema operativo y la cabecera de sus archivos.
Deberá presentarse el lunes 5 de marzo en clase para ser explicado al grupo.
LECTURA DEL CAPÍTULO 7, "ENTRADA Y SALIDA" DEL LIBRO EL LENGUAJE DE PROGRAMACION C DE KERNIGHAN Y RITCHIE
ACTIVIDAD 8.
INDICACIONES PARA LA SEMANA 6Tarea e investigación indicada en clase el jueves 8 de marzo:
- Programar tres funciones matemáticas:
- Intercambio de datos de dos variables
- Elevar un número entero positivo al cubo
- Obtener la raíz cuadrada de un númeo entero positivo
- Crear un archivo-biblioteca con las tres funciones diseñanas
- Diseñar un programa principal que invoque a las tres funciones anteriores
- Compilar y enlazar con el archivo-biblioteca creado anteriormente
- Ejecutar el programa principal para comprobar el enlace correcto de las bibliotecas
- Instalar en GNU/Linux un editor hexadecimal
ACTIVIDAD 9.
ATENCIONFormato de archivos de Windows (Archivo: Formato de ficheros ejecutables Formato PE)
- Estructura de un archivo ejecutable
- Direcciones físicas, virtuales relativas y virtuales
- Image File Header
- Image Optional Header
- Image Data Directory
- Image Section Header
- Export Directory
- Import Directory
- Resource Directory
- Relocation Directory
- Debug Directory
- TLS Directory
- Directorio Load Config
- Delay Import Directory
- Bound Import Directory
Formato de archivos GNU/Linux ELF (Libro: Tool Interface Standard (TIS) Executable and Linking Format (ELF) Specification)
- Executable and Linking Format (ELF)
- Object files
- Introduction
- File format
- ELF header
- ELF identification
- Sections
- Special sections
- String table
- Symbol table
- Symbol values
- Relocation
- Program loading and dynamic linking
- Introduction
- Program header
- Program loading
- Dynamic linking
http://www.sco.com/developers/gabi/latest/ch4.intro.html
Sistema de archivos ext4
http://dns.bdat.net/documentos/sistema_ficheros/html/
Sistema de archivos ZFS de Unix Solaris
http://docs.oracle.com/cd/E24842_01/html/820-2314/zfsover-1.html#scrolltoc
Sistema de archivos deNTFS y FAT de Windows
http://www.zator.com/Hardware/H8_1_2a1.htm
Diseño del QuickSheet (Chuleta) para el compilador GCC con los argumentos más usados.
Diseño del QuickSheet para el ensamblador NASM con los argumentos más usados.
NOTA:
- Formato de ficheros ejecutables Formato PE
- Tool Interface Standard (TIS) Executable and Linking Format (ELF) Specification
Se encuentran en skydrive de la cuenta de la EE.
Características y requisitos de presentación:
Cada equipo integrado, presentará su tema y será calificado para la segunda evaluación parcial. Deberán utilizar diversos recursos audiovisuales como:
- Uso del pizarrón
- Diapositivas
- Rotafolio
- Mapas mentales
- Mapas conceptuales
- Otras herramientas de aprendizaje
- Diseño de código fuente y ejecutable para demostración del tema, en el tema que aplique
- En el caso de los sistemas de archivos Ext4, ZFS, NTFS y FAT, deberán mostrar los sistemas operativos instalados correspondientes y presentar ejemplos que expliquen sus respectivos sistemas de archivos.
- Las QuickSheet deberán ser exahustivas, claras y prácticas con explicaciones de los argumentos relevantes de forma concisa y no más de dos páginas de extensión cada una. Deberán explicar el uso de cada argumento con un ejemplo (diseñar los códigos-ejemplo necesarios).