Fiwix
Fiwix es un kernel de sistema operativo escrito desde cero, basado en la arquitectura UNIX y totalmente enfocado a ser compatible con POSIX. Está diseñado y desarrollado principalmente como un sistema operativo aficionado y, dado que también sirve con fines educativos, el código del núcleo se mantiene lo más simple posible para beneficio de los estudiantes y entusiastas del sistema operativo. Es de tamaño pequeño (menos de 50.000 líneas de código), se ejecuta en la plataforma de hardware i386 y es compatible con una buena base de aplicaciones GNU existentes.
Características
- Escrito en lenguaje ANSI C (ensamblaje utilizado solo en las piezas necesarias).
- Compatible con la especificación GRUB Multiboot v1.
- Kernel no preventivo en modo protegido completo de 32 bits.
- Para procesadores i386 y superiores.
- Multitarea preventiva.
- Compatible con POSIX (principalmente).
- Grupos de procesos, sesiones y control de trabajos.
- Comunicación entre procesos con tuberías, señales y sockets de dominio UNIX.
- UNIX System V IPC (semáforos, colas de mensajes y memoria compartida).
- Mecanismo de bloqueo de archivos BSD (POSIX restringido a archivos y avisos únicamente).
- Divisiones de memoria virtual (usuario/kernel): 3GB/1GB y 2GB/2GB.
- Paginación bajo demanda con función de copia en escritura.
- Compatibilidad de llamadas al sistema Linux 2.0 ABI (principalmente).
- Soporte de formato ejecutable ELF-i386 (vinculado estática y dinámicamente).
- Algoritmo de planificación basado en Round Robin (aún sin prioridades).
- Capa de abstracción VFS.
- Compatibilidad con Kexec con la especificación de arranque múltiple v1 y los protocolos de arranque de Linux.
- Compatibilidad con el sistema de archivos EXT2 con tamaños de bloque de 1 KB, 2 KB y 4 KB.
- Soporte para sistemas de archivos Minix v1 y v2.
- Compatibilidad con el sistema de archivos PROC similar a Linux (solo lectura).
- Soporte para pseudosistema de archivos PIPE.
- Soporte del sistema de archivos ISO9660 con extensiones Rock Ridge.
- Soporte para dispositivos RAMdisk.
- Compatibilidad con imágenes de disco RAM inicial (initrd).
- Soporte de aplicaciones basadas en SVGAlib.
- Soporte de bus local PCI.
- Soporte de dispositivo serie QEMU PCI.
- Compatibilidad con el adaptador de gráficos QEMU/Bochs.
- Controlador Intel PIIX3 PCI ISA IDE.
- Controlador de teclado compatible con mapas de teclas de Linux.
- Soporte para ratón PS/2.
- Compatibilidad con dispositivos Framebuffer para tarjetas gráficas compatibles con VESA VBE 2.0+.
- Compatibilidad con consola Framebuffer (fbcon).
- Soporte de controlador de puerto serie (RS-232).
- Soporte de consola serial remota.
- Soporte de consola de depuración estilo QEMU Bochs.
- Soporte de controlador de impresora de puerto paralelo.
- Implementación básica de un generador de números pseudoaleatorios.
- Controlador de dispositivo de disquete y gestión de DMA.
- Controlador de dispositivo de CD-ROM IDE/ATA ATAPI.
- Controlador de dispositivo de disco duro IDE/ATA.
Compilando
El comando necesario para construir el kernel Fiwix es make clean ; make
. Esto creará los archivos fiwix (el núcleo mismo) y System.map.gz (la tabla de símbolos) en el directorio raíz del árbol del código fuente.
Antes de compilar, es posible que desee modificar la configuración del kernel cambiando los valores predeterminados en include/fiwix/config.h
e include/fiwix/limits.h
.
Tenga en cuenta que el kernel no hace nada por sí solo, necesita crear un entorno de espacio de usuario para utilizarlo. Al arrancar, el kernel monta el sistema de archivos raíz e intenta ejecutar /sbin/init
en él, por lo que deberá proporcionar este programa usted mismo. Afortunadamente, FiwixOS proporciona un entorno de espacio de usuario completo similar a UNIX para probar el kernel de Fiwix.
Instalación
Puede proceder a instalar FiwixOS en un disco duro arrancando desde el CD-ROM o desde un disquete. Si eligió este último, también necesitará insertar el CD-ROM de instalación para poder instalar los paquetes que forman todo el entorno del sistema.
Deje que el sistema arranque y cuando esté listo, simplemente escriba install.sh
.
Los requisitos mínimos de hardware son los siguientes:
- Arquitectura estándar IBM PC-AT.
- Procesador i386 (con procesador de punto flotante).
- 4MB de memoria RAM (se recomiendan 128MB).
- CD-ROM IDE/ATAPI o disquete (3,5", 1,44 MB).
- Disco duro ATA de 1GB.
Tenga en cuenta que este es un kernel en sus primeras etapas y es posible que tenga errores graves y funciones rotas que aún no se han identificado o resuelto.
Déjame repetir eso.
Tenga en cuenta que este es un kernel en sus primeras etapas y es posible que tenga errores graves y funciones rotas que aún no se han identificado o resuelto.
*****************************
*** USE AT YOUR OWN RISK! ***
*****************************
Referencias
- Sitio web
- IRC
- Lista de correo
Licencia
Fiwix es un software gratuito con licencia según los términos de la licencia MIT; consulte el archivo de LICENCIA para obtener más detalles.
Copyright (C) 2018-2024, Jordi Sanfeliu.
Créditos
Fiwix fue creada por Jordi Sanfeliu.
Puedes contactar conmigo en [email protected]. Véase también el archivo CRÉDITOS.