Um sistema operacional x86 simples escrito em C.
O kernel é carregado pelo GRUB2. A configuração da inicialização está localizada em rootfs/boot/grub/grub.cfg .
O kernel é carregado pelo GRUB2 usando o protocolo MultiBoot 2. O kernel é carregado em 0x100000 e é carregado no modo de 32 bits.
O kernel analisa o MBR e encontra sua própria partição. Não suporta partições estendidas. Em seguida, ele configura o sistema de arquivos e o monta.
O kernel suporta FAT12 e FAT16. Ele pode ler arquivos e diretórios. O kernel não pode escrever para FAT12/16.
O kernel suporta ext2. Ele pode ler arquivos e diretórios. O kernel não pode escrever para ext2.
O kernel suporta syscalls através da instrução int 0x80 . Atualmente, os seguintes syscalls são suportados:
sys_writesys_readsys_opensys_closesys_statsys_getpidsys_forksys_execvesys_exitO kernel pode analisar os arquivos ELF e executá -los. Também pode carregar símbolos de depuração de si mesmo.
Atualmente, o kernel é construído como um único binário. No futuro, será dividido em módulos. O kernel carregará os módulos do sistema de arquivos.
O kernel suporta a série de cartões de rede Intel 82540EM. Pode enviar e receber pacotes. Os seguintes protocolos são suportados:
O kernel é construído no topo de um LIBC primitivo. Está localizado no kernel/libc . Há também um system/libc que é usado pelos programas do UsuáriosPace e no futuro gerará uma biblioteca compartilhada.