From b2043a7bdd14097862945e84091759b7a96dc378 Mon Sep 17 00:00:00 2001 From: lucic71 Date: Tue, 28 Jun 2022 19:40:51 +0300 Subject: [PATCH] Updated README --- README.md | 48 ++++++++++++++++++++++++++++++++++---- logo.png => demo/logo.png | Bin demo/screenshot.png | Bin 0 -> 5252 bytes 3 files changed, 44 insertions(+), 4 deletions(-) rename logo.png => demo/logo.png (100%) create mode 100644 demo/screenshot.png diff --git a/README.md b/README.md index 86bf5ce..425c313 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,60 @@ # lucicOS -![OS logo](logo.png) +![OS logo](demo/logo.png) lucicOS is an educational, UNIX-like operating system built from scratch using the following resources: * [OSdev](https://wiki.osdev.org/Expanded_Main_Page) * [Little OS Book](https://littleosbook.github.io/) * [JamesM kernel development tutorial](http://www.jamesmolloy.co.uk/tutorial_html/) - * [OS from 0 to 1](https://github.com/tuhdo/os01) + * [Intel manuals](http://web.eecs.umich.edu/~farnam/482/Winter99/intarch.html) + * [BrokenThron](http://www.brokenthorn.com/Resources/OSDevIndex.html) + +At the moment it is not aimed to be portable or support multiple architectures. +It is just my attempt to learn some important concepts about operating systems +and develop my coding techniques. + +It only supports x86 architecture. + +## Building the project It can be built using the following command: `./build.sh`. To run the OS in bochs, just run `./bochs.sh`, the same applies to qemu, just run `./qemu.sh`. +For building, running and testing, I use the following tools: + * i686-elf-gcc (GCC) 8.2.0 + * GNU ld (GNU Binutils) 2.31.1 + * GNU ar (GNU Binutils) 2.31.1 + * QEMU emulator version 2.11. + * Bochs ?? + +## Screenshots + +![Screenshot](demo/screenshot.png) + +## Features + At this moment there is still a lot of work to do in order to call this a real -Operating System. It has some modules for writing to VGA, for writing to -a serial port and it has support for entering in protected mode. +Operating System. +These are some features that I managed to understand and implement: + * VGA (writing on screen) + * Serial (writing on serial ports) + * Keyboard (reading characters/shortcuts from keyboard) + * Timer (Receiving data from Programmable Interval Timer) + * Physical and Virtual Memory Mangers + * Interrupt request and Interrupt Service Routines + * Global Descriptor Table and Protected Mode + +What I am currently working at: + * Moving the kernel in the Higher Half + * Writing a consistent Page Allocator + * Making a tutorial out of this project + +## License + +This project is licensed under BSD-2-Clause License. + +## Notes The only supported architecture is x86 because it has the richest documentation and all the tutorials on the internet are x86 oriented. diff --git a/logo.png b/demo/logo.png similarity index 100% rename from logo.png rename to demo/logo.png diff --git a/demo/screenshot.png b/demo/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..9f46230a282e4cf76ce2e5bc2639c2c225a504a4 GIT binary patch literal 5252 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 U7pKM12Or49z(T)P_fE{e0RL5y9{>OV literal 0 HcmV?d00001