practica 3

Anuncio
Universidad de San Carlos
Facultad de Ingeniería
Ingeniería en Ciencias y Sistemas
Sistemas operativos 2
Practica no. 3 – Creación de un modulo cargarle para Linux
Actualmente las distribuciones Linux están siendo el reemplazo natural para los sistemas
Unix de antaño, compañías como Red Hat, Intel o Novell hacen grandes inversiones en el
desarrollo del kernel Linux para extender su funcionalidad.
Objetivos
•
•
•
Que el estudiante entienda las estructura del kernel Linux
Que el estudiante entienda la interacción del kernel y sus módulos
Que el estudiante pueda utilizar y crear módulos para el kernel Linux
Descripción
Linux es el núcleo o kernel del sistema operativo libre GNU/Linux. Lanzado bajo la licencia
pública general de GNU y desarrollado gracias a contribuciones provenientes de todo el
mundo, Linux es uno de los ejemplos más notables de software libre.
Linux fue creado por Linus Torvalds en 1991. Muy pronto, la comunidad de Minix
contribuyó en el código y en ideas para el núcleo Linux, desde su inicio hasta la fecha ha
tenido grandes cambios uno de los más revolucionarios saltar desde una arquitectura
monolítica a una modular.
Por su naturaleza libre Linux recibe aporte de varias empresas, hackers y organizaciones
fuera de kernel.org (el encargado de su desarrollo), por lo cual es interesante conocer
como se desarrolla un modulo para el kernel para extender su funcionalidad.
Los módulos de Linux se utilizan para algunas de las siguientes tareas:
•
Controladores de dispositivos
•
Controladores de sistemas de archivos
•
Llamadas al sistema
•
Controladores del stack de red
•
Reglas TTY
•
Interpretes de ejecutables
Ya que estas tareas requieren bastante conocimiento y diseño de nuevas estructuras de
software y hardware, solo se creara un modulo de prueba para que el estudiante entienda
los conceptos de la creación de módulos para Linux.
La practica consiste en crear un modulo dinámico y pueda ser insertado en tiempo de
ejecución, sus atribuciones deben ser:
•
Mostrar la información del creador del modulo para linux, en el campo autor debe
de indicar el nombre y el carnet
•
El modulo no tendrá mayores responsabilidades sin embargo debe ser evidente un
mensaje a la hora de cargar el modulo indicando el user space del proceso y el PID
del programa que lo inserto en el kernel, estos mensajes se evaluan con dmesg ya
que no existen salidas a terminal desde el kernel.
•
Además de esto el modulo debería crear el archivo /proc/miprimermodulo, donde el
contenido del mismo debe ser “hola soy el primer modulo de 200######” y este
archivo se debe leer con cualquier lector de archivos como less, more o cat.
Ponderación
Mensajes de carga y descarga del modulo – 40 puntos
Creación del archivo en /proc – 60 puntos
Ayuda
Ademas de la ayuda que estara disponible por parte del auxiliar del laboratorio, se
recomienda visitar los siguientes links:
Your First Loadable Kernel Module – Rob Day
http://www.linux.com/news/software/linux-kernel/23685-the-kernel-newbie-corner-yourfirst-loadable-kernel-module
Linux Loadable Kernel Module HOWTO
http://tldp.org/HOWTO/Module-HOWTO/
The linux kernel programing guide
http://www.linuxtopia.org/online_books/Linux_Kernel_Module_Programming_Guide/
Observaciones
• Se recomienda al estudiante usar una distribución orientada a desarrolladores con
fácil acceso al kernel como por ejemplo: Arch, Slackware o Gentoo. Esto no es una
limitante pero le facilitara el trabajo dado que las distribuciones Linux orientadas a
usuarios utilizan kernel sin personalización y es más difícil generar un kernel limpio.
•
Fecha de entrega: 17 de octubre de 2009
Descargar