OSDev Wiki:Wish List: Difference between revisions

(Got rid of c++ runtime entry in urgent as per: talk page.)
m (XtexChooser moved page Wish List to OSDev Wiki:Wish List)
 
(81 intermediate revisions by 33 users not shown)
Line 1: Line 1:
Below you will find a list of items that we 'need' on the OSDev wiki. They are divided in specific categories. Feel free to add a new item to the list if you would like more information on a specific topic.
== Pages under construction (aka bobbuilder@osdev.org :) ==
* Check the [[:Category:Stubs|Stubs]] list
* Check the [[:Category:In Progress|Work in progress]] list


If you want to help the wiki out or have some spare time, feel free to log in and add information about any of the requested topics or help maintain the wiki.
==OS-FAQ´s wishlist (aka 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:


===Urgent===
== Urgent (High Priority) ==
* A comprehensive guide to setting up paging, physical, and virtual memory management.
* 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 [[Page_Frame_Allocation]].
* 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.
:* [[ELF]] loading, relocating and dynamic linking.
* Device driver interface, how to make/use one.
* 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 http://www.minix3.org).


* [[Page_Frame_Allocation|Memory management]]: Review Solaris slab allocator, overview of the NetBSD UVM.
===Less Urgent===
* harddisk tutorials and documents (PartitionTable, MBR, etc.).
:* The [http://www.ranish.com/part/primer.htm Ranish Partitioning Primer] is a good starting point IMHO.
:* Query Hard Disk (for geometry and other useful bits of data).
* 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.
* more info on C heavy grub booted kernels (particularly at&t syntax asm style...).
* A map of the BIOS data area (like http://www.bioscentral.com/misc/bda.htm)
* Information on the theory behind command lines and text UI's.
* Naming OSes - http://www.osdev.org/phpBB2/viewtopic.php?t=15250
:* This has been sort of started in [[Beginner Mistakes]]. [[User:Yayyak|Yayyak]] 23:18, 26 October 2007 (CDT)


* Program Loading/Running (e.g. [[ELF]])
===Not very urgent at all really===
:* Link versus load addresses.
* Adding new object format to BFD (this is discussed in http://libosdk.berlios.de/wiki/index.php/Binutils).
* Coding a delay(ms).
* 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.
* Some notes on the newer devices like [http://www.intel.com/hardwaredesign/hpetspec.htm HPET timers] -- see this [[Topic:10882|thread]].


* Newer Hardware
:* STARTUP IPI driver interface dedicated page


* [[Device Driver Interfaces]]
* Your request goes here
:* How does one make or implement one?
:* Loadable/Unloadable drivers.
:* How is DMA, bus, ... access done using a consistent driver interface?
:** Partially implemented in [[Uniform Driver Interface]]

* The Database of Knowledge
:* Scan the forums for (huge) posts from Brendan/(Com)buster/Solar/... and somehow transfer their knowledge to the wiki.

== Less Urgent (Normal Priority) ==
* [[Printing]]
:* [[Printer Command Language]]
* [[File Systems]]
:* Information regarding missing file systems (see the above link: ext3, ext4, UDF, exFAT, ...).
:* How to implement a journaling file system.
:* [[VFS|Virtual File Systems]]: Information about directory caches.
*[[AML]]
:*An AML reference
:*More information on AML
::*How to parse
::*Where found
::* How to use

== Not Very Urgent (Low Priority) ==
* [[Microkernel]]
:* How to create a complete microkernel from scratch (IPC, process management, but not necessarily drivers).

* [[Virtio]]
:* Benefits of using virtio (and let the host take care of the rest)
:* Subsystems (nic, block, console, 9P etc.)
:* PCI discover (Vendor id: 0x1AF, Device id: 0x103F)
:* Device initialization
:* Setting up virtio in QEMU/KVM/other

== Other ==
* [[:Category:Stubs|Stubs]]: Pages that exist, but are in need of expansion or merely have placeholder information.
* [[:Category:In_Progress|In Progress]]: Pages that might need some help getting finished.
* [[Special:Wantedpages|Wanted Pages]]: Pages that are referenced within other wiki pages but don't exist.
* [[Special:Wantedcategories|Wanted categories]]: Categories that are referenced within other wiki pages but don't exist.
* [[Special:Unusedcategories|Unused categories]]: Categories that are completely empty.
* [[Special:Lonelypages|Orphaned pages]]: Pages that are not yet referenced by any other wiki page (they are on the wiki, but no other page links to them).
: If you created a new page you can add it to the relevant expanded [[:Category:Main Page Templates|Main page templates]], or even to the categorized main page if it concerns an important or wide range of topics.
* [[Special:Uncategorizedpages|Uncategorized pages]]: Pages that are in need of one or more [[Special:Categories|categories]].
* [[Special:Uncategorizedcategories|Uncategorized categories]]: Categories that aren't placed in any parent category (optimally, the only category without a 'parent' category should be the root category).
* [[Special:BrokenRedirects|Broken Redirects]]: Pages that redirect to non-existent pages.
* [[Special:Deadendpages|Dead ends]]: Pages that lack links to other articles.


[[Category:Wiki administration]]
[[Category:Wiki administration]]

Latest revision as of 10:25, 9 June 2024

Below you will find a list of items that we 'need' on the OSDev wiki. They are divided in specific categories. Feel free to add a new item to the list if you would like more information on a specific topic.

If you want to help the wiki out or have some spare time, feel free to log in and add information about any of the requested topics or help maintain the wiki.

Urgent (High Priority)

  • Program Loading/Running (e.g. ELF)
  • Link versus load addresses.
  • Newer Hardware
  • STARTUP IPI driver interface dedicated page
  • How does one make or implement one?
  • Loadable/Unloadable drivers.
  • How is DMA, bus, ... access done using a consistent driver interface?
  • The Database of Knowledge
  • Scan the forums for (huge) posts from Brendan/(Com)buster/Solar/... and somehow transfer their knowledge to the wiki.

Less Urgent (Normal Priority)

  • Information regarding missing file systems (see the above link: ext3, ext4, UDF, exFAT, ...).
  • How to implement a journaling file system.
  • Virtual File Systems: Information about directory caches.
  • An AML reference
  • More information on AML
  • How to parse
  • Where found
  • How to use

Not Very Urgent (Low Priority)

  • How to create a complete microkernel from scratch (IPC, process management, but not necessarily drivers).
  • Benefits of using virtio (and let the host take care of the rest)
  • Subsystems (nic, block, console, 9P etc.)
  • PCI discover (Vendor id: 0x1AF, Device id: 0x103F)
  • Device initialization
  • Setting up virtio in QEMU/KVM/other

Other

  • Stubs: Pages that exist, but are in need of expansion or merely have placeholder information.
  • In Progress: Pages that might need some help getting finished.
  • Wanted Pages: Pages that are referenced within other wiki pages but don't exist.
  • Wanted categories: Categories that are referenced within other wiki pages but don't exist.
  • Unused categories: Categories that are completely empty.
  • Orphaned pages: Pages that are not yet referenced by any other wiki page (they are on the wiki, but no other page links to them).
If you created a new page you can add it to the relevant expanded Main page templates, or even to the categorized main page if it concerns an important or wide range of topics.