From febc4ebf85bea86f48a5cd18daec53ba34d8de57 Mon Sep 17 00:00:00 2001 From: Michal Idziorek Date: Sun, 31 Aug 2014 18:02:55 +0200 Subject: Minor cleanup of README --- README.md | 47 ++++++++++++++++++++++++++--------------------- 1 file 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 --- @@ -105,15 +110,15 @@ RAM 0x8300 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; -- cgit v1.2.3