Talk:Operating System Design/Contents

suggestion
The book contents should be improved in many aspects. I am going to discuss some of them in order to improve the book. Here is the overall material commonly covered in an OS textbook.
 * Introduction and History
 * Process
 * Process Concept
 * Process States
 * Inter Process Communication
 * Process Scheduling
 * Synchronization
 * Deadlock
 * Thread (Light Weight Process)
 * Memory Management
 * Basic Models
 * Virtual Memory
 * Segmentation
 * Paging
 * Filesystem
 * File Abstraction
 * Issues
 * Performance
 * Fault-tolerance
 * Security and Protection

WARNING
Unless somebody objects I am going to hijack this book project and start over. I can't write a complete book on this subject but I can do about 75% and I can provide what I hope is a rational overall structure.

I am much more interested in the history of and rationale for operating systems than I am in the details of the popular contemporary systems. Myself I use Linux these days, but my experience goes back to the ten card loader for the IBM 704.

old stuff
You will find that for a book to be successful it is better to allow people to contribute and colloborate directly - You might find the controversial ASQ page has much of interest for you. Anyway good luck Lobster 12:54, 16 Oct 2004 (UTC)

Thanks, Lobster. I'll change it now. If people want to contribute it would be prefered that they discuss it here first though. Wranga

change title
There are some who feel that a title such as 'my perfect OS' - could not be the title of a text book - (that it is just opinion) so I would suggest giving it some serious title such as "Perfecting Operating System Design" - it sounds silly but these people are control freaks and prefer everyone to conform to their vision limitations - I warn you now :-) Also turn your editing to minor edits as you are still developing the book - good luck :-) Lobster 07:38, 17 Oct 2004 (UTC)

operating system wiki
The TUNES project also involves creating an improved operating system. They have a wiki now:
 * TUNES wiki http://cliki.tunes.org/index

So, does "My Perfect OS" have any new idea that haven't already been discussed to death over on the TUNES wiki ?

Also check out the ideas at
 * Killer Operating System http://c2.com/cgi/wiki?KillerOperatingSystem

ReactOS
ReactOS is almost similar to "My Perfect OS" -- Bijee

Linux Considerations
Requirements to be modular, open, and easy to use are already being rapidly satisfied in many Linux distributions.

Here are a couple of friendly desktops:


 * Ubuntu Linux
 * Morphix - Very modular!

Because Linux is already so advanced, much of the work is already done. Additionally, many linux distributions are accompanied by LiveDistros which give you a full operating system that boots from a cd, dvd, usb stick, or other bootable media devices. These bootable LiveDistros are useful because there are already tools out there to remaster these, giving you your own, unique operating system customized to include your own desktop background, browser bookmarks, applications and more.

Software Analogs
Here's a list of software that is free and can easily be added to My Perfect OS


 * http://www.demosoftware.net/docs/gfdl/equivalents_english_table.html

This is pointless...
This book is pointless, quotes like

"The OS should almost definitely be built upon FreeDOS (http://www.freedos.org/) (or on its 32 bit counterpart, FreeDOS-32 (http://freedos-32.sourceforge.net/)) like Windows 9x is upon MS-DOS. This would enable users to access and maintain and repair their computers when the GUI isn't working."

and

"Linux is best as a server, but average PC users are not familiar with its concepts and simplicity, hence will never be much of a competition to MS Windows."

clearly show that this has been written by a bunch of people too lazy to learn some simple linux command line tools.

go rtfm rather than making up bullshit.

---

While the above user is a wee bit harsh... I see a little truth in it. I don't exactly see where this book is going, nor how I can make this book better. --Dragontamer

ReactOS
You may as well just make a reactos distro reactos.com (they've been having some server problems recently) if your going to clone directx api at least help them do it. they're working on cloning windows itself. (which would make something that's just similary programmed obsolete.)

Where Are MacOS
Where is MacOS i think it was missing!

Embedded Systems
In the Embedded Systems book, We talk alot about Real-Time OS's, and i think that perhaps we could post links between these two books. -- 22:16, 28 November 2005 (UTC)

"< Operating System Design" links point to cover page rather than contents page.
The "< Operating System Design" links point to the cover page rather than the contents page, meaning that people have to click through to the contents page again every time they exit a chapter. Irrevenant 09:05, 24 April 2006 (UTC)

Rearrange Titles
I think this book should have the TOC rearranged some. It's very messy, and does not go in the actual order of development. You SHOULD NOT be working on getting a process into memory UNTIL you have memory management of some type.

Threads versus Processes
A Thread is basically a subset of a Process. Some of the management is removed but generally the same issues exist. Wouldn't the discussion of Threads be better off as a subset of Processes.

The list at the top of this page is a decent start, but omits Initialisation. The order of topics being covered can vary depending on whether you want to go through order of development, or order of running, but the basics that should be covered are:
 * Initialisation
 * Boot Loaders (including multi stage ones)
 * Hardware Initialisation (after the OS has loaded)
 * Tasks (Processes if you prefer)
 * Definition
 * Scheduling
 * First Come First Served
 * Run Shortest First
 * Run First to Complete
 * Time slicing
 * Pre-emption
 * Prioritising
 * Concurrent processing
 * Deadlock
 * Livelock
 * Interprocess Communication
 * Semaphores
 * Shared Memory
 * Threads (Lightweight processes)
 * Memory Management
 * Basics
 * Allocation Algorithms
 * Segmentation
 * Virtual Memory
 * Paging
 * Swapping
 * Fault Tolerance (Page Deallocation tables)
 * File Systems
 * Abstractions
 * Allocation Algorithms
 * Performance
 * Fault Tolerance
 * RAID
 * Moving Bad Blocks
 * Journalling
 * Security
 * Access Controls
 * Users
 * Resources
 * Privileges

Continuing Work
I see that some edits have been done... I've tried to tidy some of the pages up a bit, and mostly I'm working from memory here so if I make mistakes please correct me. It seems like some of the pieces that have been added are very minor, but still if we can get some more pages in place perhaps we can make this actually useful...

I've not added any specific implementation chunks in as I'm not sure what the best way to do it would be... Explicit copies of portions of Open OSes that match the descriptions, or custom pseudocode that at least helps the would be learner to understand what they would need to write? Any thoughts any one? --Zwack 17:51, 28 October 2007 (UTC)