SO WINIX
Winix es un sistema operativo mínimo, aficionado, educativo y de estilo UNIX para el microprocesador de arquitectura Waikato RISC (WRAMP).
Inspirado en el sistema operativo Minix1, Winix incluye un kernel con funciones completas como administración de procesos y memoria, sistema de archivos en memoria, control de excepciones y un shell de espacio de usuario con línea de comando interactiva. Y, para divertirte un poco, incluso puedes jugar el clásico juego de serpiente simplemente escribiendo snake
en la línea de comando.
Manifestación
jugando a la serpiente
Usando Pipe en Shell
Características
- Gestión de la memoria del kernel: memoria virtual, mapeo de páginas
- Gestión de procesos: hilo del kernel, creación de procesos.
- Control de excepciones y manejador de interrupciones.
- Sistema de archivos en memoria que admite la mayoría de las API POSIX
- Un shell Bourne que admite múltiples tuberías y redirección
- Gestión de la memoria del usuario: malloc() free()
- Rutina de usuario con soporte
ucontext.h
- Volcado de Stacktrace, análisis de fallas de segmentación
Comandos admitidos
- serpiente
- caparazón
- gato
- CP
- eco
- grep
- historia
- es
- mkdir
- mv
- PD
- persona con discapacidad
- habitación
- estadística
- prueba
- tocar
- tiempo de actividad
- WC
- df
- du
- en
- cola
Prueba unitaria
pruebas
Cómo correr
Descargue el último Rexsimulator desde aquí
Se requiere NB mono
para ejecutarse en un entorno Linux/MacOS, descargue las instrucciones
Descargue el último winix.srec
binario de WINIX desde aquí
Ejecute Rexsimulator.exe
Haga clic en Quick Load
, seleccione winix.srec
Cargando winix
Cómo compilar
NB: se requiere el entorno Linux para la compilación.
Requisito previo
Debian/Ubuntu
sudo apt-get install xutils-dev gcc
Clonar y compilar
git clone https://github.com/halfer53/winix.git
cd winix
make -j $(( `nproc` + 2 ))
Consejos de depuración
Depurar Makefile
Similar a Linux kbuild, Winix admite la opción detallada, puede depurar Makefile estableciendo detallado en 1
Núcleo de depuración
kprintf()
: es tu amigo.
trace
: escriba trace en el shell para imprimir todas las llamadas al sistema en el puerto serie 2
Llamada al sistema admitida
- veces
- salida
- tenedor
- horquilla
- ejecutivo
- brk
- alarma
- sigaccion
- sigret
- esperar
- matar
- getpid
- winfo
- error
- dprintf
- sistemaconf
- sigsuspender
- pendiente
- máscara sigproc
- establecerpgid
- getpgid
- abierto
- leer
- escribir
- cerca
- crear
- tubo
- mknod
- chdir
- chown
- chmod
- estadística
- fstat
- duplicar
- dup2
- enlace
- desconectar
- getdent
- acceso
- mkdir
- sincronizar
- buscar
- máscara
- fcntl
- ioctl
- conjunto
- nanosueño
- ponte rápido
- señal
- sbrk
- estadísticas
- obtenercwd
- tenedor
- setitimer
Créditos
Pablo Monigatti