|Number of watchers on Github||297|
|Number of open issues||1|
|Average time to close an issue||8 days|
|Average time to merge a PR||about 9 hours|
|Open pull requests||0+|
|Closed pull requests||0+|
|Last commit||about 4 years ago|
|Repo Created||almost 7 years ago|
|Repo Last Updated||about 2 years ago|
|Organization / Author||dom96|
|Do you use nimkernel? Leave a review!|
|View nimkernel activity|
|View on github|
|Fresh, new opensource launches 🚀🚀🚀|
Trendy new open source projects in your inbox! View examples
This is a small 32bit (i586) kernel written using the Nim programming language.
I have been wanting to do this for a while but it wasn't until people in the #nim IRC channel inquired about Nim OS dev and the rustboot kernel inspired me that I finally did it.
It doesn't do much, but it doesn't need to. Its purpose is to provide a starting point for anyone wishing to write an OS in Nim.
It still manages to do a little more than fill a screen with a certain color. Nimkernel implements:
writeStringfunction which shows a string on screen in a specified position.
rainbowfunction which shows a string with a rainbow-like text foreground color differentiation in a specified position.
Note: The error at the bottom is intentional, it is used to show that the error handling works properly.
You are required to have:
* You can always grab the nake library manually from here.
I have performed this setup on a Arch Linux machine, but all other distros should work too.
For more information take a look at the OSDev article.
You will need to download the source of binutils and gcc.
cd into a suitable directory in which you would like to download, unzip
and build the cross compiler. Then perform the following actions:
$ wget ftp://sourceware.org/pub/binutils/snapshots/binutils-2.24.51.tar.bz2 $ tar -xf binutils-2.24.51.tar.bz2 $ mkdir build $ ./binutils-2.24.51/configure --target=i586-elf --prefix=$PWD/build/ --disable-nls $ make -j4 $ make install
Note: I did not use the binutils suggested by the osdev article as they did not build for me, YMMV.
You may then grab the GCC source and build it:
$ wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.bz2 $ tar -xf gcc-4.9.2.tar.bz2 $ ./gcc-4.9.2/configure --target=i586-elf --prefix=$PWD/build/ --disable-nls --enable-languages=c --without-headers $ make all-gcc -j4 $ make install-gcc
You should then have a i586-elf-gcc and i586-elf-as executable in $PWD/build/bin/ or somewhere thereabouts. You should then add it to your PATH permanently or temporarily by doing:
Follow the instructions in the Nim repo to bootstrap Nim and put it in your PATH.
You can then compile the nakefile and therefore compile nimkernel:
$ nim c nakefile $ ./nakefile run
This will automatically build and run the kernel using QEMU.
Nimkernel is licensed under the MIT license.