Ini adalah OS hobi lain, tetapi yang ini tidak mencoba menjadi klon UNIX lain. Bahkan, saya benar -benar tidak tahu apa yang sedang dicoba. Itu hanya semacam ... adalah.
Fitur saat ini meliputi:
Kami menggunakan cmake untuk membangun segalanya. Single CMakeLists.txt dalam direktori ini dapat membangun kernel, semua komponen ruang pengguna, dan alat secara otomatis. Anda harus memilih salah satu toolchains untuk digunakan dan meneruskannya ke CMake di bendera CMAKE_TOOLCHAIN_FILE .
build_toolchain.sh . File toolchain.diff berisi tambalan yang harus diterapkan pada sumber LLVM yang dicentang untuk membangun toolchain yang diperlukan untuk membangun kernel dan lahan user.
Selain CMake dan Toolchain LLVM khusus, mesin host perlu memiliki perpustakaan dan alat Cap'n Proto yang diinstal sedemikian rupa sehingga file protokol untuk layanan RPC dapat dibangun dengan benar jika diperbarui. Namun, versi saat ini dari sumber yang dihasilkan termasuk dalam repositori.
Anda dapat menggunakan skrip build_toolchain.sh untuk membangun toolchain untuk digunakan untuk menyusun sistem. Ini mengatur sebagian besar perpustakaan yang diperlukan: Anda juga harus membangun beberapa perpustakaan pendukung.
Sebelum menyusun pustaka di bawah ini, Anda mungkin perlu mengkompilasi dan menginstal perpustakaan C ke dalam sysroot; Perpustakaan ini berharap menemukan header tertentu di sana. Ganti string target kompiler yang diperlukan untuk target/platform saat ini.
Ini berisi fungsi pembantu dan hal-hal lain yang akan diandalkan oleh kompiler untuk hadir di semua perpustakaan yang tidak bebas. Secara default, skrip tampaknya tidak menyusun kompiler-RT untuk platform kami.
Untuk membangunnya, jalankan yang berikut dari dalam folder Sumber Toolchain:
cd llvm-project
mkdir build-compiler-rt
cd build-compiler-rt
cmake ../compiler-rt -DLLVM_CONFIG_PATH=../../../llvm/bin/llvm-config -DCMAKE_C_COMPILER_TARGET="i386-pc-kush-elf" -DCMAKE_ASM_COMPILER_TARGET="i386-pc-kush-elf" -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON -DCMAKE_TOOLCHAIN_FILE=~/kush/cmake/toolchain-i386-clang.cmake -Wno-dev -DCMAKE_SIZEOF_VOID_P=4 -DCOMPILER_RT_BAREMETAL_BUILD=ON
make -j40
mkdir -p ../../../llvm/lib/clang/12.0.0/lib/kush
cp lib/i386-kush/libclang_rt.builtins-i386.a ../../../llvm/lib/clang/12.0.0/lib/kush
Libcxxabi menyediakan lapisan portabel tingkat bawah untuk pustaka runtime C ++. Bangun seperti itu:
cd llvm-project
mkdir build-libcxxabi
cd build-libcxxabi
cmake ../libcxxabi -DCMAKE_TOOLCHAIN_FILE=~/kush/cmake/toolchain-i386-clang.cmake -DLIBCXX_TARGET_TRIPLE="i386-pc-kush-elf" -DLIBCXXABI_INSTALL_PREFIX=/Users/tristan/kush/sysroot/ -Wno-dev -DLIBCXXABI_ENABLE_THREADS=OFF
make install -j40
Setelah dibangun, Anda harus membangun libcxx, runtime C ++ yang sebenarnya:
cd llvm-project
mkdir build-libcxx
cd build-libcxx
cmake ../libcxx -DCMAKE_TOOLCHAIN_FILE=~/kush/cmake/toolchain-i386-clang.cmake -DLLVM_CONFIG_PATH=../../../llvm/bin/llvm-config -DLIBCXX_TARGET_TRIPLE="i386-pc-kush-elf" -DLIBCXX_INSTALL_PREFIX=/Users/tristan/kush/sysroot/ -DLIBCXX_INSTALL_HEADER_PREFIX=/Users/tristan/kush/sysroot/usr/ -DLIBCXX_CXX_ABI=libcxxabi -DLIBCXX_ENABLE_STDIN=OFF -DLIBCXX_ENABLE_RANDOM_DEVICE=OFF -DLIBCXX_ENABLE_FILESYSTEM=OFF -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF -D_LIBCPP_HAS_THREAD_API_EXTERNAL=ON
make install -j40
Sebagian besar bendera yang diatur pada akhirnya akan dihapus, ketika perpustakaan C dan sistem itu sendiri mengimplementasikan fitur yang diperlukan.
Diperlukan untuk stack backtraces dan dukungan pengecualian C ++.
cd llvm-project
mkdir build-libunwind
cd build-libunwind
cmake ../libunwind -DCMAKE_TOOLCHAIN_FILE=~/kush/cmake/toolchain-i386-clang.cmake -DLLVM_CONFIG_PATH=../../../llvm/bin/llvm-config -DLIBUNWIND_TARGET_TRIPLE="i386-pc-kush-elf" -DLIBUNWIND_INSTALL_PREFIX=/Users/tristan/kush/sysroot/ -DLIBUNWIND_USE_COMPILER_RT=ON -DLIBUNWIND_ENABLE_THREADS=OFF
make install -j40
Kami dapat mengaktifkan LIBUNWIND_ENABLE_THREADS ketika kami memiliki lapisan kompatibilitas pthreads.
Belum ada banyak dokumentasi tentang proyek ini.
Beberapa posting blog yang menjelaskan desain dan motivasi OS tersedia di sini.