Um sistema operacional totalmente vibe coded, ou melhor, vibe mas com muitas patas e mãos no código...
C
48
91 commits
updated May 17, 2026
VibeOS e um sistema operacional x86 BIOS em 32-bit com bootloader proprio, AppFS modular para apps e uma arquitetura hibrida em estilo microkernel: o kernel ainda concentra mediacao privilegiada e alguns backends de hardware, enquanto init, service-hosts e apps sobem por interfaces explicitas de servico.
O repositorio ja nao e mais a demo minima original. Hoje o fluxo real e:
BIOS -> MBR -> VBR/stage1 -> stage2 -> KERNEL.BIN -> kernel -> init -> AppFS -> userland.app/startx -> shell e apps
Este repositorio e um projeto experimental. Ha bastante codigo funcional, mas tambem existem partes incompletas, inconsistentes ou ainda em transicao arquitetural.
Leia o projeto como:
Ja esta materialmente funcionando:
MBR -> FAT32 boot -> stage2 -> kernelring3/CPL3 nas arenas de usuariouserland.app carregada do AppFS no boot normalAinda em fechamento:
compat-azaliaO plano consolidado atual esta em docs/FINALIZATION_EXECUTION_PLAN.md.
Os arquivos tecnicos detalhados em docs/ estao em ingles. Se voce quer a visao mais fiel ao codigo atual, comece por:
Planos, migracoes e guidelines historicas agora ficam em docs/guidelines/, incluindo:
storage, filesystem, video, input, console, network e audio existem e fazem parte do caminho normalring3 real, stack de usuario propria e fault containment por taskboot/mbr.asm: MBR BIOSboot/stage1.asm: VBR/FAT32 bootstrapboot/stage2.asm: loader principal e handoff para o kernelkernel/: kernel principalkernel/microkernel/: limites de servico e bridges atuaiskernel/process/: processos e schedulerkernel/memory/: paging, physmem e heapkernel/drivers/: input, video, storage, timer, debug, PCI, USBkernel/cpu/, kernel/apic.c, kernel/smp.c: topologia, LAPIC e bring-up SMPuserland/userland.c: userland.app, shell externa autostartada no bootuserland/modules/: runtime e bibliotecas comunsuserland/applications/: desktop e apps nativos/modularesapplications/ported/: utilitarios e apps portadosHoje existem dois "mundos" de storage:
Requisitos minimos praticos:
nasmmakepython3qemu-system-i386 ou qemu-system-x86_64mkfs.fat ou equivalentemtools opcional para operar a FAT por userspace (mcopy/mmd)Toolchain:
i686-elf-*gcc, ld, objcopy, nm, ar, ranlib)Build principal:
make
Alvos uteis:
make ou make all: build completo da imagemmake full: limpa e recompila tudomake img: gera a imagem bootavelmake imb: gera a imagem final para gravacao/uso externomake legacy-data-img: gera so build/data-partition.imgmake clean: limpa artefatosArtefatos importantes:
build/mbr.binbuild/boot.binbuild/stage2.binbuild/kernel.binbuild/kernel.elfbuild/data-partition.imgbuild/boot.imgbuild/generated/app_catalog.hbuild/lang/userland.appReferencia curta de comandos: docs/guidelines/QUICK_BUILD.md.
Execucao normal:
make run
O perfil padrao de make run agora e propositalmente mais proximo de um notebook antigo classe T61:
-cpu core2duo-smp 2,sockets=1,cores=2,threads=1,maxcpus=2-machine pc-vga stdExemplos de override:
make run QEMU_RUN_SMP=1
make run QEMU_RUN_CPU=pentium
make run QEMU_RUN_MACHINE=q35
Debugs uteis:
make run-debug
make run-headless-debug
make run-headless-core2duo-debug
make run-headless-ahci-debug
make run-headless-usb-debug
O fluxo esperado hoje e:
MBR -> FAT32 boot.stage2 prepara o ambiente e entrega controle ao kernel.init tenta carregar userland.app do AppFS.startx sobe o desktop grafico.O shell embutido permanece como fallback/rescue path, nao como steady-state esperado.
Alvos uteis:
make validate-phase6
make validate-smp
make validate-audio-stack
make validate-audio-hda-startup
make validate-gpu-backends
Esses fluxos escrevem relatorios em build/.
Para iterar no bootloader sem regravar a imagem inteira:
make build/stage2.bin build/boot.bin
python3 tools/patch_boot_sectors.py --target /dev/sdX --vbr build/boot.bin --stage2 build/stage2.bin
Se voce mudou kernel.bin, assets ou o conteudo FAT32/AppFS, gere build/boot.img de novo.
ring3 real agora existe para apps externos carregados em arenas de usuario, mas nao para todo componente fora do microkernel; hosts e alguns servicos ainda estao em migracaoO repositorio usa GPLv3 no root em LICENSE.
Arvores importadas de terceiros dentro de compat/, lang/vendor/ e similares podem manter suas licencas originais. Veja tambem THIRD_PARTY_LICENSES.md.
Um sistema operacional totalmente vibe coded, ou melhor, vibe mas com muitas patas e mãos no código...
C
48
91 commits
updated May 17, 2026
VibeOS e um sistema operacional x86 BIOS em 32-bit com bootloader proprio, AppFS modular para apps e uma arquitetura hibrida em estilo microkernel: o kernel ainda concentra mediacao privilegiada e alguns backends de hardware, enquanto init, service-hosts e apps sobem por interfaces explicitas de servico.
O repositorio ja nao e mais a demo minima original. Hoje o fluxo real e:
BIOS -> MBR -> VBR/stage1 -> stage2 -> KERNEL.BIN -> kernel -> init -> AppFS -> userland.app/startx -> shell e apps
Este repositorio e um projeto experimental. Ha bastante codigo funcional, mas tambem existem partes incompletas, inconsistentes ou ainda em transicao arquitetural.
Leia o projeto como:
Ja esta materialmente funcionando:
MBR -> FAT32 boot -> stage2 -> kernelring3/CPL3 nas arenas de usuariouserland.app carregada do AppFS no boot normalAinda em fechamento:
compat-azaliaO plano consolidado atual esta em docs/FINALIZATION_EXECUTION_PLAN.md.
Os arquivos tecnicos detalhados em docs/ estao em ingles. Se voce quer a visao mais fiel ao codigo atual, comece por:
Planos, migracoes e guidelines historicas agora ficam em docs/guidelines/, incluindo:
storage, filesystem, video, input, console, network e audio existem e fazem parte do caminho normalring3 real, stack de usuario propria e fault containment por taskboot/mbr.asm: MBR BIOSboot/stage1.asm: VBR/FAT32 bootstrapboot/stage2.asm: loader principal e handoff para o kernelkernel/: kernel principalkernel/microkernel/: limites de servico e bridges atuaiskernel/process/: processos e schedulerkernel/memory/: paging, physmem e heapkernel/drivers/: input, video, storage, timer, debug, PCI, USBkernel/cpu/, kernel/apic.c, kernel/smp.c: topologia, LAPIC e bring-up SMPuserland/userland.c: userland.app, shell externa autostartada no bootuserland/modules/: runtime e bibliotecas comunsuserland/applications/: desktop e apps nativos/modularesapplications/ported/: utilitarios e apps portadosHoje existem dois "mundos" de storage:
Requisitos minimos praticos:
nasmmakepython3qemu-system-i386 ou qemu-system-x86_64mkfs.fat ou equivalentemtools opcional para operar a FAT por userspace (mcopy/mmd)Toolchain:
i686-elf-*gcc, ld, objcopy, nm, ar, ranlib)Build principal:
make
Alvos uteis:
make ou make all: build completo da imagemmake full: limpa e recompila tudomake img: gera a imagem bootavelmake imb: gera a imagem final para gravacao/uso externomake legacy-data-img: gera so build/data-partition.imgmake clean: limpa artefatosArtefatos importantes:
build/mbr.binbuild/boot.binbuild/stage2.binbuild/kernel.binbuild/kernel.elfbuild/data-partition.imgbuild/boot.imgbuild/generated/app_catalog.hbuild/lang/userland.appReferencia curta de comandos: docs/guidelines/QUICK_BUILD.md.
Execucao normal:
make run
O perfil padrao de make run agora e propositalmente mais proximo de um notebook antigo classe T61:
-cpu core2duo-smp 2,sockets=1,cores=2,threads=1,maxcpus=2-machine pc-vga stdExemplos de override:
make run QEMU_RUN_SMP=1
make run QEMU_RUN_CPU=pentium
make run QEMU_RUN_MACHINE=q35
Debugs uteis:
make run-debug
make run-headless-debug
make run-headless-core2duo-debug
make run-headless-ahci-debug
make run-headless-usb-debug
O fluxo esperado hoje e:
MBR -> FAT32 boot.stage2 prepara o ambiente e entrega controle ao kernel.init tenta carregar userland.app do AppFS.startx sobe o desktop grafico.O shell embutido permanece como fallback/rescue path, nao como steady-state esperado.
Alvos uteis:
make validate-phase6
make validate-smp
make validate-audio-stack
make validate-audio-hda-startup
make validate-gpu-backends
Esses fluxos escrevem relatorios em build/.
Para iterar no bootloader sem regravar a imagem inteira:
make build/stage2.bin build/boot.bin
python3 tools/patch_boot_sectors.py --target /dev/sdX --vbr build/boot.bin --stage2 build/stage2.bin
Se voce mudou kernel.bin, assets ou o conteudo FAT32/AppFS, gere build/boot.img de novo.
ring3 real agora existe para apps externos carregados em arenas de usuario, mas nao para todo componente fora do microkernel; hosts e alguns servicos ainda estao em migracaoO repositorio usa GPLv3 no root em LICENSE.
Arvores importadas de terceiros dentro de compat/, lang/vendor/ e similares podem manter suas licencas originais. Veja tambem THIRD_PARTY_LICENSES.md.