Resources: Difference between revisions
Jump to navigation
Jump to search
[unchecked revision] | [unchecked revision] |
Content added Content deleted
m (Add warning that external tutorials tend to be old, have bugs, don't follow current community recommendations, and often aren't community edited.) |
(Clean up old stuff) |
||
Line 3: | Line 3: | ||
== Operating System Development == |
== Operating System Development == |
||
'''Warning''': External tutorials tend to be old, have bugs, don't follow current community recommendations, and often aren't community edited. |
'''Warning''': External tutorials tend to be old, have bugs, don't follow current community recommendations, and often aren't community edited. |
||
* [http://osdever.net/bkerndev/Docs/title.htm Bran's Kernel Development tutorial] and [[Bran%27s_Known_Bugs|the list of bugs]]. |
|||
* [http://www.osdever.net/ Bonafide OS Development] |
* [http://www.osdever.net/ Bonafide OS Development] |
||
* [http://www.nondot.org/sabre/os/articles The Operating System Resource Center] |
* [http://www.nondot.org/sabre/os/articles The Operating System Resource Center] |
||
* Christopher Giese's website |
|||
** mirror: [http://files.osdev.org/mirrors/geezer/johnfine/ John Fine's Home Page] |
|||
** mirror: [http://files.osdev.org/mirrors/geezer/osd/index.htm Write Your Own Operating System] |
|||
** mirror: (includes a .zip copy of the site) [http://redir.no-ip.org/mirrors/ redir.no-ip.org] |
|||
** .bz2: [http://dev.ifeelrandom.com/~geezer/~geezer.tar.bz2 dev.ifeelrandom.com ] |
|||
** mirror: [http://geezer.osdevbrasil.net osdevbrasil.net] |
|||
** mirror: [http://dev.ifeelrandom.com/~geezer/ dev.ifeelrandom.com] |
|||
** mirror: [http://files.osdev.org/mirrors/geezer/ files.osdev.org] |
|||
** mirror: [http://geezer.wz.cz/home.htm wz.cz] |
|||
** web.archive.com: [http://web.archive.org/web/*/http://my.execpc.com/~geezer/index.htm web.archive.org] |
|||
* [http://www.acm.uiuc.edu/sigops/roll_your_own/ How to Write an Operating System] |
* [http://www.acm.uiuc.edu/sigops/roll_your_own/ How to Write an Operating System] |
||
* [http://neuraldk.org/writing.php?FilterCat=Os+Development&FilterDev=All NeuralDK OSDev Tuts] |
* [http://neuraldk.org/writing.php?FilterCat=Os+Development&FilterDev=All NeuralDK OSDev Tuts] |
||
* [http://www.viralpatel.net/taj/home.php/ TAJ OS Development] (This link is broken since 2014) |
|||
* [http://www.brokenthorn.com/Resources/OSDevIndex.html BrokenThorn OS Development Tutorials] |
* [http://www.brokenthorn.com/Resources/OSDevIndex.html BrokenThorn OS Development Tutorials] |
||
* [http://www.osdcom.info/ OSDCOM] (This link is broken since 2014) |
|||
* [http://devnulled.ath.cx/~oslib The OsLib] (This link is broken since 2014) |
|||
* [http://www.nondot.org/sabre/os/articles/MiscellaneousSoftware/ OS FAQ, overall design, VM design, threads..] |
* [http://www.nondot.org/sabre/os/articles/MiscellaneousSoftware/ OS FAQ, overall design, VM design, threads..] |
||
* [http://www.nondot.org/sabre/os/articles/MemoryManagement/ Memory Management] |
* [http://www.nondot.org/sabre/os/articles/MemoryManagement/ Memory Management] |
||
* [http://www.nondot.org/sabre/os/articles/ProtectedMode/ Protected Mode] |
* [http://www.nondot.org/sabre/os/articles/ProtectedMode/ Protected Mode] |
||
* [http://www.jamesmolloy.co.uk/ Roll your own UNIX-clone OS] and [[James_Molloy's_Tutorial_Known_Bugs|the list of known bugs]]. |
|||
* [http://www.viralpatel.net/taj/operating-system-tutorial.php Operating System Tutorials] (This link is broken since 2014) |
|||
* [http://www.germsoft.com/Software/OS/Tut/Index.php Germsoft OS Tutorials and Resources] (This link is broken since 2014) |
|||
* [http://www.int6.org int6.org - System Programming Resources] |
|||
== Hardware Specifications == |
== Hardware Specifications == |
Revision as of 21:21, 2 December 2014
This page maintains a list of resources related to operating system development.
Operating System Development
Warning: External tutorials tend to be old, have bugs, don't follow current community recommendations, and often aren't community edited.
- Bonafide OS Development
- The Operating System Resource Center
- How to Write an Operating System
- NeuralDK OSDev Tuts
- BrokenThorn OS Development Tutorials
- OS FAQ, overall design, VM design, threads..
- Memory Management
- Protected Mode
Hardware Specifications
- Pierre's Library
- Ace OS 'specifications' page
- stockpile of hard-to-find datasheets (broken) archive.org version
- List of PS/2 documents
- ChipDB datasheet archive
Processors
BIOS
Motherboard Devices
Human Input Devices
Video
Storage
- official ATA working group
- another ATA/ATAPI website, includes reference driver
- an introduction to ATA/ATAPI commands. It contains a couple of ASM examples to read sectors and identify drives.
- Disk and Disc Drives
- collected links about Ultra DMA, on ATA drives and how PCI configuration comes.
Audio
Network and Communication ports
Buses
- Interconnect Buses
- official USB developers docs
- more USB info
- USB OHCI
- USB EHCI
- OHCI for FireWire
- OHCI mirror
Software Specifications
- Banana - Use these if you want
- Ralf Brown's Interrupt List
- The Boot Process
- Partitions
- File Systems
- Executable File Formats
- Plug'n'Play Specs
- Device Driver Interfaces
- FAT12-32
- The Art of Software Security Assessment
- Art of Exploitation
- Secrets of Reverse Engineering
- Subverting the Windows Kernel
Other Specifications
Source Code
- Miscellaneous Code
- OSD Code Snippet Index
- stockpile of documents at singlix.org
- a reference implementation for malloc()
Sample Kernels
Small Kernels
Larger Kernels
- BCOS
- Tabos
- Mobius
- Cosmos/Borealis
- Clicker
- MenuetOS
- Daidalos
- BlueIllusionOS
- Agnix Kernel
- SolOS
- Minix 3
- AMOS
- OSKit
Non-hobby Kernels
- Plan 9 from Bell Labs
- Linux (See also Linux Kernel Primer)
- OpenBSD
- L4
- K486
University Courses
- Advanced Operating Systems (NYU)
- Operating System Engineering (MIT) (2004) (2006)
- Introduction to Operating Systems (WISC)