Updated README
This commit is contained in:
parent
5103ee5ede
commit
b2043a7bdd
48
README.md
48
README.md
|
@ -1,20 +1,60 @@
|
||||||
# lucicOS
|
# lucicOS
|
||||||
|
|
||||||
![OS logo](logo.png)
|
![OS logo](demo/logo.png)
|
||||||
|
|
||||||
lucicOS is an educational, UNIX-like operating system built from scratch using
|
lucicOS is an educational, UNIX-like operating system built from scratch using
|
||||||
the following resources:
|
the following resources:
|
||||||
* [OSdev](https://wiki.osdev.org/Expanded_Main_Page)
|
* [OSdev](https://wiki.osdev.org/Expanded_Main_Page)
|
||||||
* [Little OS Book](https://littleosbook.github.io/)
|
* [Little OS Book](https://littleosbook.github.io/)
|
||||||
* [JamesM kernel development tutorial](http://www.jamesmolloy.co.uk/tutorial_html/)
|
* [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
|
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`.
|
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
|
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
|
Operating System.
|
||||||
a serial port and it has support for entering in protected mode.
|
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
|
The only supported architecture is x86 because it has the richest documentation
|
||||||
and all the tutorials on the internet are x86 oriented.
|
and all the tutorials on the internet are x86 oriented.
|
||||||
|
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Binary file not shown.
After Width: | Height: | Size: 5.1 KiB |
Loading…
Reference in New Issue