diff --git a/README.md b/README.md index 4d1af47..168cc7c 100644 --- a/README.md +++ b/README.md @@ -17,47 +17,38 @@
iceOS running under QEMU


-**iceOS** is a x86 monolithic kernel written in C from scratch. -This project doesn't aim to be a fully functional operating system -with tons of drivers and graphical applications, it's just a learning tool to teach myself concepts like Operating Systems, Computer Architecture and Digital Electronics. +**iceOS** is a x86 monolithic kernel written in C from scratch following the UNIX philosophy. This project is just a student learning tool to know more about operating systems, do not expect nothing more than a toy. + ## Installation ### Requirements -Before generating an ISO you have to compile a [cross compiler](https://wiki.osdev.org/GCC_Cross-Compiler) and you also have to install those packets: +Before building this project you need to setup a [cross compiler](https://wiki.osdev.org/GCC_Cross-Compiler). Also install the following packages: - nasm - bochs - grub -- mtools(if you are on Arch Linux) +- mtools(only for Arch Linux) -Then you can run these commands: +After that, you can build iceOS just by running the command listed below. 1. Type `make all` to compile the system and to create an ISO 2. Type `make run` to start it in QEMU or `make bochs` to start it with bochs(only for debug purposes). -Otherwise you can download an already compiled ISO file +You can also find a ISO file [here](https://github.com/ice-bit/iceOS/raw/master/imgs/iceOS.iso)(md5sum: `342691301699a73102fa6a57abea6989`) ## Features -iceOS already have/will have the following features: -- [x] Bare metal booting; -- [x] VGA driver; -- [x] Interrupts implementation; -- [x] PIC & PIT implementation; -- [x] PS/2 driver; -- [x] Heap implementation; -- [ ] Virtual File System -- [x] Support for x86 architecture; -- [x] GRUB as bootloader; +iceOS has the following features: +- [x] VGA driver +- [x] Interrupts +- [x] PIC & PIT driver +- [x] PS/2 driver +- [x] Heap +- [x] Paging +- [ ] VFS driver + +## Tutorial +I'm also writing a tutorial about this project. If you are interested about OS development and you're looking for a detailed _step-by-step_ tutorial, have a look at my [website](osdev.marcocetica.com). -## Resources -This project is made with different kind of resources and different kind of knowledges, before starting it i read/studied the following resources: -- [Structured Computer Organization - Tanenbaum (2013)](https://www.pearson.it/opera/pearson/0-5585-architettura_dei_calcolatori_6ed) -- [Operating System Concepts - Silberschatz (2016)](https://www.amazon.it/Sistemi-operativi-Concetti-ed-esempi/dp/8865183713/ref=pd_lpo_sbs_14_img_1?_encoding=UTF8&psc=1&refRID=4A5T2C7KKH7RA0K1T7RV) -- [The Art Of Electronics - Horowitz (2015)](https://www.amazon.it/gp/product/0521809266/ref=ppx_od_dt_b_asin_title_s00?ie=UTF8&psc=1) -- [OSDev wiki](https://wiki.osdev.org/Main_Page) -- [JamesM's kernel development tutorials](http://www.jamesmolloy.co.uk/tutorial_html/1.-Environment%20setup.html) -- [The Little Book About OS Development](https://littleosbook.github.io/) -- [I actually started this project thanks to skiftOS](https://github.com/skiftOS/skift) ## License -iceOS is released under GPLv3, you can obtain a copy of this license by cloning the repository or by visiting [this](https://opensource.org/licenses/GPL-3.0) page. +iceOS is released under GPLv3, you can obtain a copy of this license by cloning this repository or by visiting [this](https://opensource.org/licenses/GPL-3.0) page. diff --git a/imgs/screenshot.png b/imgs/screenshot.png index 8c1ed85..4ba687f 100644 Binary files a/imgs/screenshot.png and b/imgs/screenshot.png differ