Um Hobby OS para me ajudar a aprender sobre coisas do kernel, para eventualmente entrar no desenvolvimento do kernel do Linux. Atualmente, ele suporta:
Eu pretendo tornar o código legível e bem organizado. Um blog segue o desenvolvimento deste projeto, aqui https://jmnl.xyz/, e o wiki fornece mais informações sobre o projeto e seus internos.
Instale os seguintes pacotes:
xorriso para Debian/Ubuntu; libisoburn no Archlinuxgrubmtoolsimagemagickqemu (recomendado)bochs (opcional)clang +, por exemplo, base-devel de archlinux (opcional)Correr
make toolchain
Para construir o compilador cruzado, precisava compilar flagos de neve. Este comando baixará e executará scripts de criação para gcc e binutils de servidores GNU FTP e instalará o compilador cruzado no toolchain/compiler .
Em vez de construir sua própria cadeia de ferramentas, você pode compilar os flagos de neve com clang do seu sistema: simplesmente descommentando o seguinte grupo de linhas no Makefile principal:
# CC=clang
# LD=ld
# AR=ar
# AS=as
# CFLAGS+=-target i386-pc-none-eabi -m32
# CFLAGS+=-mno-mmx -mno-sse -mno-sse2 Se a sua distro fornecer um compilador cruzado, convém economizar tempo e usá -lo. Para fazer isso, você deve editar as seguintes variáveis no Makefile principal, para que elas correspondam aos executáveis do seu compilador cruzado:
AR=$(HOST)-ar
AS=$(HOST)-as
LD=$(HOST)-ld
CC=$(HOST)-gcc --sysroot=$(SYSROOT) -isystem=/$(INCLUDEDIR)
Você pode editar HOST ou codificar os nomes dos executáveis diretamente.
Execute também
make qemu # or
make bochs
Para testar os flagos de neve em uma VM. Consulte o ciclo de edição/depuração para obter mais opções sobre como compilar e executar flagos de neve.
É possível testar este projeto em hardware real. Você pode copiar SnowflakeOS.iso para uma unidade USB usando dd , como faria ao fazer um USB ao vivo de outro sistema operacional e inicializá -lo diretamente.
Observe que isso raramente é testado, quem sabe o que fará :) Eu adoraria ouvir sobre isso se você tentar, em qual hardware, etc ...
As contribuições são muito bem -vindas, de qualquer forma! Consulte o Wiki CONTRIBUTING.md e o Wiki deste projeto.