Núcleo Educativo basado en Linux Rogelio Domínguez Hernández Director: Dr. Jorge Buenabad Chávez rdominguez@computacion.cs.cinvestav.mx CINVESTAV-IPN Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 1/24
Contenido Objetivo General Objetivos Particulares Calendario Historia Linux Características de Linux Estructura Actual de Linux Propuestas para su simplificación Estructura Propuesta Por definir Referencias Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 2/24
Objetivo General El objetivo principal de la tesis es desarrollar un núcleo basado en Linux, conservando su estructura general, pero simplificando su composición, eliminando subsistemas y manejadores de dispositivos, de tal manera que pueda ser estudiado durante un curso de Sistemas Operativos. De ésta manera los estudiantes que decidan realizar investigación sobre Sistemas Operativos, ya contarán con los conocimientos necesarios para implementar sus desarrollos sobre una plataforma con un campo de aplicación muy grande. Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 3/24
Objetivos Particulares Se espera desarrollar una versión simplificada de Linux: que incluya: Un Planificador de Procesos. Un Administrador de Memoria. Un Sistema de Archivos Un Administrador de Entrada/Salida También se espera obtener la documentación suficiente que explique de forma detallada el funcionamiento del núcleo desarrollado. Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 4/24
Calendario Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 5/24
Calendario Actualizado Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 6/24
Historia de Linux Linux 0.01 - Octubre 1991 Linux 1.0 - Marzo 1994 Linux 1.2 - Marzo 1995 Linux 2.0 - Junio 1996 Linux 2.2 - Enero 1999 Linux 2.4 - Enero 2001 Linux 2.6 - Diciembre 2003 Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 7/24
Linux 0.01 Desarrollado en 1991 por Linus Torvalds Número de Archivos: 76 Número de Líneas: 8, 413 Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 8/24
Linux 2.6.9 Desarrollado en 2004 por 1,000 desarrolladores constantes. 100 desarrolladores con sueldo. Número de Archivos: 13, 518 Número de Líneas: 5, 689, 632 Costo de desarrollo aproximado con el modelo COCOMO: Más de US $ 176, 000, 000 Meses de desarrollo aproximados con el modelo COCOMO: 8,07 Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 9/24
Arquitecturas Soportadas En total son 19 arquitecturas soportadas por el núcleo de Linux. Alpha (64 Bits) ARM (32 Bits) i386 (32 Bits) IA-64 (64 Bits) M68K (32 Bits) MIPS (32 y 64 Bits) PPC y PPC64 (32 y 64 Bits) SPARC y UltraSPARC (32 y 64 Bits) Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 10/24
Características(1/2) Multi-Procesamiento Simétrico(SMP) Arquitectura de Memoria No Uniforme(NUMA) HyperThreading HIGHMEM(entre 1 y 4 GB) y PAE (Physical Address Extension: de 4 a 64 GB) ISA,PCI,AGP,USB,FireWire IDE/ATA, SCSI, S-ATA ALSA (Advanced Linux Sound Architecture) Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 11/24
Características(2/2) Ext2fs, Ext3fs, ReiserFS, XFS, JFS, NFSv4, InterMezzo, AFS IPv4, IPv6, IPsec, AppleTalk, IPX, Bluetooth, IrDA Planificador O(1) Administrador de Memoria con varios algoritmos O(1) Administrador de Entrada/Salida predictivo Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 12/24
Estructura General Llamadas al Sistema Administrador de Archivos Administrador de Red Administrador de Memoria Administrador Entrada/Salida Controlador de Red Administrador de Procesos Controlador de Disco Controlador de Terminal Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 13/24
Administrador de Archivos Administrador de Archivos Virtual File System Ext3 XFS JFS ReiserFS HFS+ ROMFS CRAMFS SysFS NFS Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 14/24
Administrador de Entrada/Salida Administrador Entrada/Salida Controlador de Disco Controlador de Terminal Controlador de Dispositivo SCSI IDE/ATA AGP VGA USB FireWire PCI Teclado Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 15/24
Cómo simplificarlo?(1/2) Eliminando soporte para: Arquitecturas. Sólo se incluirá soporte para la arquitectura i386. SMP, NUMA y HyperThreading. HIGHMEM y PAE. ISA,PCI,AGP,USB,FireWire SCSI, S-ATA Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 16/24
Cómo simplificarlo?(2/2) Eliminando: ALSA Sistemas de Archivos. Sólo se incluirá Ext3fs y un nuevo sistema de archivos. El Administrador de Red o Sólo se incluirá soporte para IPv4. Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 17/24
Estructura General Llamadas al Sistema Administrador de Archivos Administrador de Red Administrador de Memoria Administrador Entrada/Salida Controlador de Red Administrador de Procesos Controlador de Disco Controlador de Terminal Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 18/24
Administrador de Archivos Administrador de Archivos Virtual File System Ext3 Nuevo Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 19/24
Administrador de Entrada/Salida Administrador Entrada/Salida Controlador de Disco Controlador de Terminal Controlador de Dispositivo IDE/ATA VGA Teclado Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 20/24
Por definir(1/2) Linux utiliza varias caché para mejorar el rendimiento del sistema: Caché de objetos(slab Allocator) Caché de páginas Caché de buffer s Caché de entradas de directorios(dentry) Se definirá si es conveniente eliminar algunas de ellas. Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 21/24
Por definir(2/2) El sistema de archivos desarrollado será tipo Unix: Superbloque Nodos-i Permisos Ligas Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 22/24
Resultados Esperados Núcleo de Linux simplificado. Documentación del núcleo desarrollado. Con el objetivo de que puedan ser utilizados en cursos avanzados de Sistemas Operativos. Y fomentar la investigación en el área de Sistemas Operativos. Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 23/24
Referencias David A. Wheeler. Linux Kernel 2.6: It s Worth More!. http://www.dwheeler.com/essays/linux-kernel-cost.html Jerome Pinot. Supported Architectures For Linux. http://ngc891.blogdns.net/kernel/docs/arch.txt John O Gorman. Operating Systems With Linux. Palgrave, 2001. John O Gorman. The Linux Process Manager. Robert Love. Linux Kernel Development. Daniel P. Bovet, Marco Cesati. Understanding The Linux Kernel. Mel Gorman. Understanding The Linux Virtual Memory Manager. Jeff Bonwick. The Slab Allocator: An Object-Caching Núcleo Educativo basado en Linux - Rogelio Domínguez Hernández - 09/11/04 p. 24/24 Kernel Memory Allocator. USENIX Summer 1994