Miscellaneous SoftwareOS FAQ, overall design, VM design, threads..
- General OS Design:
- Writing Your Own Operating System FAQ - by Stuart 'Dark Fiber' George
- This is a wonderful FAQ that touches on all kinds of interesting questions you may have when first starting out. A definate must read!
- "Bringing SMP to your UP Operating System" - by Sidney Cammeresi
- This article is a great into to adding SMP to your OS!
- Linux Source Code v0.0.1 - by Linus Torvalds et al
- Here's an excellent example operating system... the first release of the linux kernel. This release is nice because it is very simple, works, and is quite understandable. Evolution is a remarkable thing...
- Implementing Light Weight Threads - by D. Stein, D. Shah, Sunsoft Inc.
- "We describe an implementation of a threads library that provides extremely lightweight threads within a single UNIX process while allowing fully concurrent access to system resources. The threads are lightweight enough so that they can be created quickly, there can be thousands present, and synchronization can be accomplished rapidly. These goals are achieved by providing user threads which multiplex on a pool of kernel-supported threads of control. This paper focuses on scheduling and synchronizing user threads, and their interaction with UNIX signals in a multiplexing threads library."
- An OS Vade Mecum - by Raphael A. Finkel
- "Operating systems are complex mixtures of policy and mechanism, of algorithm and heuristic, and of theoretical goals and practical experience. This vade mecum tries to unify these diverse points of view and guide the novice step by step through the complexities of the subject. As a text, this book is intended for a first course in operating systems at the undergraduate level."
- Linux Kernel Internals (2.4) - by Tigran Aivazian
- This excellent page tracks some of the features in the 2.4.prexxx kernels. Tigran is an active kernel developer, so this gives some great insights into the tradeoffs and general architecture of the linux kernel.
- Source for 8086 BIOS
- This is the source code for an IBM-PC/xt compatible 10 mhz motherboard. It shows some interesting things about the (primitive) hardware and how to interface with it. It seems that Ya`akov Miles disassembled the code and commented it... he remarks that he optimized the code a bit... something I have noticed about my bios ... very bad and loopy code...
- Thread Segment Stacks - by Markus Pizka
- "This paper presents enhanced memory management concepts and their implementation providing better support for multithreading. The virtual address space of the multi threaded process is dynamically partitioned by a dynamic set of cooperating managers. Special thoughts are given to detect and solve possible thread stack and heap overflows and collisions. Both stacks and heaps associated with threads are organized non-contiguously with linear segments to fully exploit possibly large
virtual address spaces. Crucial for the efficiency of this approach are modifications of the compiler and parts of the runtime system. The proposed so-
lutions are implemented an evaluated on the SUN Sparc V9 architecture."
- Bringing SMP to Your UP Operating System - by Sidney Cammeresi
- This tutorial is intended to teach the fundamentals of symmetric multprocessing using Intel MP compliant hardware. This tutorial is not intended to be a complete explanation of how to implement an SMP-capable operating system, nor as a replacement for Intel's documentation, but it does cover some interesting entry level aspects to SMP OS design.
- Virtual Memory:
- Design Elements of the FreeBSD VM System - by Matthew Dillon
- This article leads the reader through an in depth discussion of the FreeBSD VM subsystem. It thoroughly explains the design decisions and tradeoffs made as well as the implementation goals and platform portability problems that were run into. This is a very interesting article for those just starting a VM, because it highlights many important issues that need be thought of...
- The "Virtual Memory Tutorial" - by By several People
- "This tutorial covers a range of topics that provides the user with a comprehensive view of virtual memory. The tutorial begins with the motivation for virtual memory and a brief historical perspective. The user is then given the theoretical basis for virtual memory and its effect on system performance. The module covers hardware implementation of virtual memory, observations of program structure and behavior that affect memory management, page replacement algorithms, performance factors in a multiprogramming environment, and virtual memory as it used in common real systems." This is an interesting tutorial on some virtual memory techniques... the layout of the information is especially interesting... :)
- The Linux Memory Management System Homepage - by The Linux-MM team
- "This site is supposed to provide full documentation on the Linux MM subsystem and to give a good overview of what's happening in the Linux MM community. If you have requests, ideas or contributions to make, please let us know." This site provides an excellent selection of MM/VM links and articles... check out their links section... very complete!
- Address Translation and Storage Management for Persistent Object Stores - by Sheetal Vinod Kakkad
- This Ph.D. dissertation describes a technique named "pointer swizzling at page fault time" to manage large persistant object stores. The techniques described are an interesting application of common VM hardware available today...
[about] [faq]
[updates]
[stats]
[author recognition]
[contributing]
[pending submissions]
[feedback]
[email]
[up]
(new!) sections have been updated in the last week...
(recent) sections have been updated in the last two weeks...