Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Preparado por:
Profesor:
● Jorge, Javier
Desafío #1
¿Qué es checkinstall y para qué sirve?
Desafío #2
¿Qué funciones tiene disponible un programa y un módulo?
1
ejecutan las aplicaciones de usuario con restricciones de acceso, mientras que el
espacio de kernel es donde se ejecuta el núcleo del sistema operativo con acceso
total a los recursos del sistema. Esta separación ayuda a garantizar la estabilidad y
seguridad del sistema operativo, ya que los programas de usuario no pueden
interferir directamente con el funcionamiento del núcleo o acceder a recursos críticos
del sistema.
Espacio de datos
Los drivers son una clase particular de un módulo. Ya que en los sistemas unix los
dispositivos se mapean como archivos, a estos los encontraremos en el directorio
/dev. Este directorio contiene archivos de dispositivo para todos los dispositivos de
hardware conectados. Estos archivos se utilizan como una interfaz entre los
dispositivos y los procesos que los utilizan además de proporcionar funcionalidad
para el hardware específico.
2
Cargar Módulo
Figura N° 4. Mensajes del Kernel observados con dmesg, luego de cargar “mimodulo.ko”.
3
Figura N° 6. Confirmación de la carga de “mimodulo” con lsmod.
En las Figuras N°6 y N°7 se observa que el módulo fue cargado correctamente en
el Kernel. En la Figura N° 6 se muestra el uso de la herramienta lsmod, que lista los
módulos cargados de forma dinámica, mediante el uso de las herramientas insmod o
modprobe. En la Figura N° 7 se inspecciona /proc/modules para localizar el módulo
cargado.
4
Figura N° 13. Inspección de “des_generic” con modinfo.
5
significa que las variables, funciones y clases definidas en un módulo no
están automáticamente disponibles en otros módulos o programas, a menos
que se importen explícitamente.
● Los programas suelen tener objetivos específicos, como realizar una tarea
determinada, resolver un problema o proporcionar una interfaz de usuario
mientras que los módulos tienen como objetivo proporcionar funcionalidades
específicas que pueden ser utilizadas por otros programas o módulos.
● Los programas son entidades independientes y autónomas que se ejecutan
por sí mismas mientras que los módulos se crean con el propósito de ser
reutilizados y pueden ser importados y utilizados en diferentes programas o
módulos para aprovechar las funciones y características que proporcionan.
● Los programas suelen ser archivos únicos que contienen todo el código
necesario para realizar una tarea específica mientras que los módulos se
crean para modularizar y organizar el código en unidades más pequeñas y
especializadas.
6
Firmar Módulo
7
Figura N° 17. Ejecución del script keygen.sh y creación de llaves.
Teniendo las llaves pública y privada se utilizó la herramienta mokutil para agregar
las llaves a la lista de llave del propietario de la máquina (MOK) y al llavero del
sistema (.builtin_trusted_keys).
Figura N° 18. Ejecución de mokutil para agregar las llaves al llavero del sistema.
8
Figura N° 19. Inscripción de llaves desde la consola UEFI, con aplicación MokManager.efi.
9
Hacer un makefile que compile todos los componentes de la
carpeta
A continuación se muestra el contenido del archivo Makefile que compila todos los
componentes del repositorio
all:
@echo "Compiling module..."
@cd module && $(MAKE) -f Makefile
@echo "Compiling syscalls..."
@cd ../part1/syscalls && $(CC) -c copiar_archivo.c -o
copiar_archivo.o
@cd ../part1/syscalls && $(CC) -c ejemplo_printf.c -o
ejemplo_printf.o
10