Updated README and added some new images

This commit is contained in:
2024-03-10 18:09:19 +01:00
parent e708fe137e
commit 9a0dbd31d5
12 changed files with 17 additions and 14 deletions
+12 -9
View File
@@ -5,10 +5,9 @@ Idk why i called it that it was 3am and i needed sleep
## About ## About
Kern is a 32-bit OS based on the x86 architecture written in NASM Assembly and C. Kern is a 32-bit OS based on the x86 architecture written in NASM Assembly and C.
I'm working on a basic command line as well as a custom filesystem (filetable for now).
It supports a basic command line and has a custom filesystem. _Since 32-bit switch, a lot of features have been removed because they were dependent on BIOS interrupts_
_Note: The filesystem is currently a basic filetable._
## Usage ## Usage
If you want to try kern for some reason, you can. If you want to try kern for some reason, you can.
@@ -16,22 +15,26 @@ You might be able to find some releases, or build it using the build.sh script.
For building, you'll need these tools: For building, you'll need these tools:
- [NASM](https://www.nasm.us/) - [NASM](https://www.nasm.us/)
- [GCC](https://gcc.gnu.org/) on linux
- A cross compiler on mac (installation `$ brew tap nativeos/i386-elf-toolchain && brew install i386-elf-binutils i386-elf-gcc`)
- [QEMU](https://www.qemu.org/) (for emulation) - [QEMU](https://www.qemu.org/) (for emulation)
Then just run `./build.sh` and it should build and run qemu.
I personally wouldn't recommend running this on real hardware, because it's untested and will just probably break you pc, but if you really want to, you can try it, but don't blame me if something goes wrong. I personally wouldn't recommend running this on real hardware, because it's untested and will just probably break you pc, but if you really want to, you can try it, but don't blame me if something goes wrong.
If you don't know how to do something, try the 'help' command! If you don't know how to do something, try the 'help' command!
## Some images ## Some images
The command prompt: \ Text editor **concept**: \
![CLI image](other/example.png) ![Vim like editor](other/editor.png)
Built-in code editor: \ Available character set: \
![Code Editor](other/editor.png) ![IBM VGA 8x16 Character set](other/charset.png)
Graphics mode test: \ Available colors: \
![Graphics Test](other/graphics.png) ![16 VGA Colors](other/colors.png)
_These images may be outdated, Idk_ _These images may be outdated, Idk_
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 38 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 47 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

+2 -1
View File
@@ -4,11 +4,12 @@
#include "irq.h" #include "irq.h"
void main() { void main() {
// Interrupts
setupIdt(); setupIdt();
setupIsrs(); setupIsrs();
setupIrqs(); setupIrqs();
clear(0x0f); clear(0x0f);
print("kern.\n\n", 0x0f); print("kern.\n", 0x0f);
} }
+3 -4
View File
@@ -51,13 +51,12 @@ void clear(uint8_t attr) {
} }
void printHex(uint8_t d, uint8_t attr) { void printHex(uint8_t d, uint8_t attr) {
char digits[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; char hexDigits[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
uint8_t low = d & 0x0f; uint8_t low = d & 0x0f;
uint8_t high = (d & 0xf0) >> 4; uint8_t high = (d & 0xf0) >> 4;
putc(digits[low], attr); putc(hexDigits[low], attr);
putc(digits[high], attr); putc(hexDigits[high], attr);
} }
void setCursorPos(uint16_t offset) { void setCursorPos(uint16_t offset) {