Actividades a realizar

Actividad:

  1. Escuchar el audiocast "¿Qué es la programación de sistemas?" en la página Audiocasts de este mismo blog.
    1. 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.
    2. 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:
      1. Hoja de presentación
      2. Introducción
      3. Cuerpo de la investigación
      4. Conclusiones
      5. Bibliografía consultada (al menos 2 libros y no más de 2 páginas Web)
  2. Entregar un ensayo de al menos 3 cuartillas que discuta los conceptos de ensamblador, cargador, traductor y ligador. Deberá cumplir con los siguientes requisitos:
    1. Formato del ensayo en artículo para publicación científica-académica.
    2. Modelo de citas bibliográficas APA.
  3. Investigar los comandos de un editor en línea y realizar un ejercicio.
  4. 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:
    1. Hoja de presentación
    2. Generalidades de las cabeceras de los archivos ejecutables
    3. Desarrollo de cada tipo de cabecera
    4. Conclusiones
    5. 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 6

    Tarea e investigación indicada en clase el jueves 8 de marzo:
    1. Programar tres funciones matemáticas:
      1. Intercambio de datos de dos variables
      2. Elevar un número entero positivo al cubo
      3. Obtener la raíz cuadrada de un númeo entero positivo
    2. Crear un archivo-biblioteca con las tres funciones diseñanas
    3. Diseñar un programa principal que invoque a las tres funciones anteriores
    4. Compilar y enlazar con el archivo-biblioteca creado anteriormente
    5. Ejecutar el programa principal para comprobar el enlace correcto de las bibliotecas
    6. Instalar en GNU/Linux un editor hexadecimal
    ---------------------------------------------------------------------------------------------------------------------------
    ACTIVIDAD 9.
    ATENCION
    En la semana 7 el grupo presentará los siguientes temas que serán asignados el próximo lunes 12 de marzo en clase:

    Formato de archivos de Windows (Archivo: Formato de ficheros ejecutables Formato PE)
    1. Estructura de un archivo ejecutable
    2. Direcciones físicas, virtuales relativas y virtuales
    3. Image File Header
    4. Image Optional Header
    5. Image Data Directory
    6. Image Section Header
    7. Export Directory
    8. Import Directory
    9. Resource Directory
    10. Relocation Directory
    11. Debug Directory
    12. TLS Directory
    13. Directorio Load Config
    14. Delay Import Directory
    15. Bound Import Directory
    http://support.microsoft.com/kb/100108/es

    Formato de archivos GNU/Linux ELF (Libro: Tool Interface Standard (TIS) Executable and Linking Format (ELF) Specification)
    1. Executable and Linking Format (ELF)
      1. Object files
        1. Introduction
        2. File format
        3. ELF header
        4. ELF identification
        5. Sections
        6. Special sections
        7. String table
        8. Symbol table
        9. Symbol values
        10. Relocation
    2. Program loading and dynamic linking
        1. Introduction
        2. Program header
        3. Program loading
        4. Dynamic linking
    http://www.compago.it/clng_es/241-struttura-di-un-file-pe.html
    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:

    Los archivos PDF de los documentos:
    • 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:
    1. Uso del pizarrón
    2. Diapositivas
    3. Rotafolio
    4. Mapas mentales
    5. Mapas conceptuales
    6. Otras herramientas de aprendizaje
    7. Diseño de código fuente y ejecutable para demostración del tema, en el tema que aplique
    8. 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.
    9. 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).