summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorMichal Idziorek <m.i@gmx.at>2014-08-31 18:02:55 +0200
committerMichal Idziorek <m.i@gmx.at>2014-08-31 18:02:55 +0200
commitfebc4ebf85bea86f48a5cd18daec53ba34d8de57 (patch)
tree4b264a75b6f7ed381b6b62ebb2e5f8ba5f848463 /README.md
parent594279ba194f5327ac120a09360065717709d468 (diff)
Minor cleanup of README
Diffstat (limited to 'README.md')
-rw-r--r--README.md47
1 files changed, 26 insertions, 21 deletions
diff --git a/README.md b/README.md
index 13cfb16..2e16ed7 100644
--- a/README.md
+++ b/README.md
@@ -24,15 +24,24 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-Notes
------
+Supported Platforms
+-------------------
+
+FoolOS is tested/developed on the following emlators/machines
+
+* bochs 2.6.6 (compiled with )
+ (./configure --enable-clgd54xx --enable-a20-pin --enable-debugger --enable-disasm --enable-e1000 --with-x --with-x11)
+* qemu 1.1.2
+
+* Virtual box 4.1.18 (disable nested paging etc)
+* My Laptop (Acer Aspire 1810TZ)
+* My Desktop (Q6600 on Asus p5n32-e sli plus)
Features
--------
All features are only very rudiemntary and buggy.
-* Runs in bochs (with cirrus), qemu and virtual box (disable nested paging etc)
* PIT support / Timing
* PIC support & Interrupt handling framework
* PCI bus scanning
@@ -48,29 +57,25 @@ TODOS
Some things I would like to add someday:
* port c lib and gcc
-* Filesystem (probably FAT)
+* Filesystem (probably ext2)
* e1000 driver
* networking stack / webserver
-* user space / ELF binaries support
-* mouse
+* user space / ring3 / ELF binaries support
+* mouse support
* simple window manager
* support multiple processors!
+* 64-bit support
+* alternatively grub as bootloader
+* implement a real shell (in user mode)
+* kernel should run in high memory (~3gb) virutal mem. why? except v86 tasks?
Issues
------
-* timer in bochs is waay too fast!?
-* memory map may be larger than mbr, but 0x0000 is used to check for end.
-* memory map location is hardcoded
+* memory map and other locationd are hardcoded
* the first ~4mb of physical mem are reserved by mem manager (hardcoded)
-* bootloader loads only 50 sectors of kernel into mem. 25KB!
-* Makefile is hardcoded and contains some mistakes too!
+* bootloader loads only 52 sectors of kernel into mem. 25KB!
* size of bitmap to track free blocks of physical memory is hardcoded to max.
-* physical memory manager allocator naively implemented.
-* kernel should run in high memory (~3gb) virutal mem. why? except v86 tasks?
-* redesign keyboard interrupt handler (faster!)
-* redesign command handling (not inside the interrupt!!!)
-* implement a real shell (in user mode)
MEMORY LAYOUT
@@ -80,7 +85,7 @@ FLOPPY IMAGE
------------
0x0000 - MASTER BOOT RECORD
0x0200 - kernel image (contains sotrage for interrupt desc. table)
-0x8000 - file system will go here
+0x8000 - file system will go here?
RAM
---
@@ -106,14 +111,14 @@ RAM
boot loader puts the vesa modes here!
0x9000
+ esp (stack counts down)
+
+0x9000
physical memory manager bitmap!!!
0xb000
memory above this is used for dma (by our floppy.c driver)
-0x9000
- esp
-
REFERENCES
==========
@@ -132,6 +137,7 @@ REFERENCES
* http://pdos.csail.mit.edu/6.828/2011/labs/lab6/
* http://wiki.osdev.org/Virtual_8086_Mode
* http://pdos.csail.mit.edu/6.828/2011/xv6.html
+* http://www.nongnu.org/ext2-doc/
* man syscalls (posix syscalls?)
@@ -146,7 +152,6 @@ Keyboard Driver
//use uint8_t for proc_pos and buff_pos and a BUF_SIZE of 256 for auto wrap!?
// kb input ringbuffer
-#define BUF_SIZE 256
kb_scancode kb_buff[BUF_SIZE];
buff_pos=0;