Jump to ratings and reviews
Rate this book

The Design of Os/2

Rate this book
Written by the leading architect of 32-bit OS/2 and an operating systems expert, this book examines in detail the internal structure of the new 32-bit version of OS/2. The comprehensive coverage provides insights into the decisions and philosophy underlying the design of OS/2.

Paperback

Loading...
Loading...

About the author

Michael S. Kogan

8 books2 followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
1 (50%)
4 stars
0 (0%)
3 stars
1 (50%)
2 stars
0 (0%)
1 star
0 (0%)
Displaying 1 of 1 review
Profile Image for Steve.
79 reviews26 followers
February 10, 2013
Covers OS/2 1.X and 2.X, 16-bit and 32-bit, and DOS emulation.

The first chapter is a little awkward with the authors attempting to justify OS/2's future despite Microsoft having pulled out of the deal a year or so earlier. The authors don't even discuss this divorce, saying only that IBM and Microsoft agreed that systems with less than 4MB of memory should be DOS/Windows and greater should be OS/2.

The book continues with a detailed technical discussion of the 8088 and explains what was added to the 286, 386, and 486. Next, they go over features in the 386 that a protected mode OS could take advantage of: GDT, LDT, TSS, and Privilege Levels. Being mostly familiar with the Unix world, I was surprised at how many Intel-specific features OS/2 relied on. Instead of generic context switching structs, they heavily used the TSS (task state segments), which have never been shown to be faster. They also use LDTs and a large number of GDTs. Modern OS hobbyists learn to shy away from these features and only setup what is strictly required for their design in order to keep things portable.

One clever detail this book describes is how OS/2 has a different syscall interface than Unix. Instead of setting up a register and triggering an interrupt, OS/2 syscalls are provided by DLLs and accessed via call gates that result in higher privilege levels. It's a more flexible design wherein your kernel doesn't need to statically link syscalls at compile time. A CALL seems faster than an interrupt so I think it's worth emulating although I'm not sure how to setup call gates that result in different privilege levels in a portable way.

My favorite chapter was on IPC, OS/2 provides queues, pipes, cheap RAM semaphores (never requiring you to enter the kernel) as well as more expensive kernel-based event semaphores and "muxwait" semaphores. As was so often the case, OS/2 rarely broke new ground and so provided signals and exceptions as well even though they had the opportunity to do much better.

The book is dense but having recently developed a hobbyist Unix clone, I was able to absorb the details and appreciate the differences from other x86 OSs. This book is definitely recommended for the osdev crowd.
Displaying 1 of 1 review