gems-kernel/README.md
2024-06-03 11:16:15 -05:00

55 lines
2.5 KiB
Markdown

# <img src="gems.png" alt="Logo" width="5%"/> GEMS KERNEL
GEMS - GEMS is ESSENTIALLY MAYBE SPINEL
*Note: This is not Spinel, we are just trying to be better. ;)*
Note: GEMS is in *really early development*, and will probably be that way for ***quite a while.*** Note: This is highly based off of https://wiki.osdev.org/ and user Zesterer's Bare_Bones, however it is modified quite a bit to work for me.
Seriously... You can only boot to a small splash screen, you can't even type anything...
but it has Colors, Sounds, A panic system so it is definitely improving.
However, here are the dependencies (in ubuntu) in case you *want* to compile this
~~sudo apt install -y libc6-dev-i386 grub-common nasm gcc liblua5.1-0-dev liblua50:i386 liblua50-dev:i386 libc-dev:i386 linux-libc-dev:i386 libc6-dev:i386 qemu-system-i386 grub-pc-bin lua-socket xorriso gcc-9-multilib libc6-dev-i386 libc6-x32 gcc-multilib libc6-dev-x32 libc6-dev linux-libc-dev~~
Update: You might want to install these:
```
sudo apt install -y build-essential grub-common nasm gcc git qemu-system-x86 grub-pc-bin lua-socket xorriso gcc-10-multilib gcc-arm-none-eabi git nasm grub2
```
Oh and also: You really need an *i686 cross compiler,* I reccomend this one here for GNU/Linux (put it int the source directory): https://drive.google.com/file/d/0Bw6lG3Ej2746STJaM2dNbC05elE/view?usp=sharing
Or for macOS, run this brew command (requires homebrew)
```
brew install i686-elf-gcc nasm llvm objconv
```
To compile run:
```
cd source && ../build-with-iso.sh
```
Or on a Mac:
```
cd source && ./build-mac.sh
```
And then setup GRUB on macOS if you would wish to create an ISO, as explained here:
https://wiki.osdev.org/GRUB_2#HDD_Image_Instructions_for_OS_X_users
~~(Hint, download LUA 5.0 source here: https://www.lua.org/ftp/lua-5.0.tar.gz)~~ Update: We are switching to mostly custom C/ASM
Oh and a quick warning: *Test.sh / Qemu's PC SPEAKER is VERY LOUD. You will want to turn down your volume.*
# Other files
COC.md is the *old* Code of Conduct for historical purposes. Read the new one [here.](https://github.com/NodeMixaholic/NodeMixaholic-COC/blob/master/COC.md)
BUGS.md is for listing all the different bugs and their origins/source and status.
NOTES.md is for listing everything we have learned so far.
WSLHOWTO.MD is a tutorial on how to build and run GEMS in Windows.
## Note about Licensing...
THIRDPARTY software under the source/THIRDPARTY directory are under their own licenses, shown in their own directories, and not the main license.