Хобби, которая поможет мне узнать о ядрах, чтобы в конечном итоге попасть в развитие ядра Linux. В настоящее время он поддерживает:
Я стремлюсь сделать код читаемым и хорошо организованным. Блог следует за разработкой этого проекта, здесь https://jmnl.xyz/, а Wiki предоставляет больше информации о проекте и его внутренних органах.
Установите следующие пакеты:
xorriso для Debian/Ubuntu; libisoburn на Archlinuxgrubmtoolsimagemagickqemu (рекомендуется)bochs (необязательно)clang + Development Packages, например, base-devel на Archlinux (необязательно)Бегать
make toolchain
Чтобы построить кросс-компилятор, необходимый для компиляции Snowflakeos. Эта команда будет загружать и запускать сценарии сборки для gcc и binutils с серверов GNU FTP, а также установит кросс-компилятор в toolchain/compiler .
Makefile того, чтобы построить свой собственный набор инструментов, вы можете скомпилировать Snowflakeos с помощью clang вашей системы: просто не понаправду.
# CC=clang
# LD=ld
# AR=ar
# AS=as
# CFLAGS+=-target i386-pc-none-eabi -m32
# CFLAGS+=-mno-mmx -mno-sse -mno-sse2 Если ваш дистрибутив предоставляет вам Cross Compiler, вы можете сэкономить время и использовать его. Для этого вы должны отредактировать следующие переменные в основном Makefile , чтобы они соответствовали исполняемым файлам вашего Cross Compiler:
AR=$(HOST)-ar
AS=$(HOST)-as
LD=$(HOST)-ld
CC=$(HOST)-gcc --sysroot=$(SYSROOT) -isystem=/$(INCLUDEDIR)
Вы можете редактировать HOST или жесткий код имена исполняемых файлов напрямую.
Бежать тоже
make qemu # or
make bochs
Чтобы проверить Snowflakeos в виртуальной машине. Посмотрите на цикл редактирования/отладки, чтобы узнать больше о том, как компилировать и запустить Snowflakeos.
Тестирование этого проекта на реальном оборудовании возможно. Вы можете скопировать SnowflakeOS.iso на USB -диск с помощью dd , как вы делаете, когда вы делаете живой USB другой ОС, и загружать его напрямую.
Обратите внимание, что это редко когда -либо проверяется, кто знает, что он будет делать :) Я хотел бы услышать об этом, если вы попробуете это, на каком оборудовании и т. Д.
Взносы наиболее приветствуются в любой форме! Проконсультируйтесь CONTRIBUTING.md и Wiki этого проекта для руководства.