diff options
| author | Michal Idziorek <m.i@gmx.at> | 2014-08-31 18:02:55 +0200 |
|---|---|---|
| committer | Michal Idziorek <m.i@gmx.at> | 2014-08-31 18:02:55 +0200 |
| commit | febc4ebf85bea86f48a5cd18daec53ba34d8de57 (patch) | |
| tree | 4b264a75b6f7ed381b6b62ebb2e5f8ba5f848463 /README.md | |
| parent | 594279ba194f5327ac120a09360065717709d468 (diff) | |
Minor cleanup of README
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 47 |
1 files changed, 26 insertions, 21 deletions
@@ -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; |
