OSDev Wiki:Wish List
Pages under construction (aka bobbuilder@mega-tokyo.com bobbuilder@osdev.org :)
- [DMA] info, what it is, how to set it up for floppy etc.
- FloppyDriver programming info, what to do, which ports to check etc.
- SerialPorts
- Continue on the [Getting Keyboard Input]
- MouseInput
- TimeDate handling: how OSes get/maintain their time() (mostly done?)
- [PIT] info (mostly done?)
- GdtForDummies (mostly done?)
- PowerManagement info
- [Deadlock]: what it is and how it can be prevented.
OS-FAQ´s wishlist (aka santa@mega-tokyo.com santa@osdev.org ;)
If you are new to os development and think that this FAQ lacks information on some area, you could post your request for more info here:
- Coding a delay(ms)
- more info on C heavy grub booted kernels (particularly at&t syntax asm style...)
- Device driver interface, how to make/use one
- how to set up a complete C++ runtime (including exceptions, RTTI, ...)
- harddisk tutorials and documents (PartitionTable, MBR, etc.)
- The [Ranish Partitioning Primer | http://www.ranish.com/part/primer.htm] is a good starting point IMHO.
- Query Hard Disk (for geometry and other useful bits of data)
- A comprehensive guide to setting up paging, physical, and virtual memory management.
- Some notes on the newer devices like [HPET timers|http://www.intel.com/hardwaredesign/hpetspec.htm] -- see this [thread|Forum:8322].
- An article on memory management. Review Solaris slab allocator, what is a buddy system, how Linux does it, overview of the NetBSD uvm, etc. -- this is partially started in [Algorithms and Tips for Memory Management]
- The most important thing an OS does: load and run programs. Using PIC with ELF programs, loading and running Microsoft COFF-in-PE files (assuming they are not Win32 programs of course; link to MSDN "Inside Windows" articles on PE), link vs. load addresses, etc. Also loadable kernel modules (for monolithic kernels): how do the modules find the kernel symbols, etc.
- More on C++: what support is needed to fully use C++ in a standalone environment? Why? Example code?
- C library stuff: examples of crt0.o and crt1.o (or crtbegin.o, crti.o and crtn.o whatever!) and what the purpose of these files is
- More on hardware programming. Demo ATA disk driver, demo ATAPI CDROM driver, or commentary of these drivers in Linux or one of the BSDs (or even Minix v3 [1]).
- File systems. A look at traditional file systems on Unix systems (e.g. the v7 file system), then move on to the BSD FFS, a look at FAT12, FAT16 and FAT32, a look at modern Unix file systems like Ext2 and journaling file systems (NTFS, Ext3, ReiserFS), implementing a journaling file system.
- Adding new object format to BFD (this is discussed in http://libosdk.berlios.de/wiki/index.php/Binutils)
- Your request goes here