内容简介
· · · · · ·

A book about modern operating systems. Topics are broken down into three major conceptual pieces: Virtualization, Concurrency, and Persistence. Includes all major components of modern systems including scheduling, virtual memory management, disk subsystems and I/O, file systems, and even a short introduction to distributed systems.

ASIDE : SOMETIMES LIFE ISN’T PERFECT
Even when you design a beautiful system, sometimes all the corner cases don’t work out exactly as you might like. Take the mkdir example above; one could redesign mkdir to have different semantics, thus making it idempotent (think about how you might do so); however, why bother? The NFS design philosophy covers most of the important cases, and overall makes ...

2012-11-04 21:081人喜欢

ASIDE : SOMETIMES LIFE ISN’T PERFECT
Even when you design a beautiful system, sometimes all the corner cases don’t work out exactly as you might like. Take the mkdir example above; one could redesign mkdir to have different semantics, thus making it idempotent (think about how you might do so); however, why bother? The NFS design philosophy covers most of the important cases, and overall makes the system design clean and simple with regards to failure. Thus, accepting that life isn’t perfect and still building the system is a sign of good engineering. Remember Ivan Sutherland’s old saying: “the perfect is the enemy of the good.”

官网在线阅读地址（请不要下载）： http://pages.cs.wisc.edu/~remzi/OSTEP/ "Ideas are not pulled out of the air; they come from smart and hard-working people" “...thus the real point of the educational process: to go forth, to study many new and fascinating topics, to learn, to mature, and most importantly, to find something that lights a fire for you." 加油吧！

DESIGN TIP: TRANSPARENCY
When considering how to add new functionality to a system, one should always consider whether such functionality can be added transparently, in a way that demands no changes to the rest of the system. Requiring a complete rewrite of the existing software (or radical hardware changes) lessens the chance of impact of an idea.

2012-10-18 09:38

DESIGN TIP: TRANSPARENCY
When considering how to add new functionality to a system, one should always consider whether such functionality can be added transparently, in a way that demands no changes to the rest of the system. Requiring a complete rewrite of the existing software (or radical hardware changes) lessens the chance of impact of an idea.

DESIGN TIP : SEPARATION OF POLICY/MECHANISM
In many operating systems, a common design paradigm is to separate high-level policies from their low-level mechanisms. You can think of the mechanism as providing the answer to a how question about a system; for example, how does an operating system perform a context switch? The policy provides the answer to a which question; for example, which process...

2012-10-05 21:46

DESIGN TIP : SEPARATION OF POLICY/MECHANISM
In many operating systems, a common design paradigm is to separate high-level policies from their low-level mechanisms. You can think of the mechanism as providing the answer to a how question about a system; for example, how does an operating system perform a context switch? The policy provides the answer to a which question; for example, which process should the operating system run right now? Separating the two allows one easily to change policies without having to rethink the mechanism and is thus a form of modularity, a general software design principle.

More generally, any policy (such as RR) that is fair, i.e., that evenly divides the CPU among active processes on a small time scale, will perform poorly on metrics such as turnaround time. Indeed, this is an inherent trade-off: if you are willing to be unfair, you can run shorter jobs to completion, but at the cost of response time; if you instead value fairness, response time is lowered, but at ...

2012-10-07 22:25

More generally, any policy (such as RR) that is fair, i.e., that evenly divides the CPU among active processes on a small time scale, will perform poorly on metrics such as turnaround time. Indeed, this is an inherent trade-off: if you are willing to be unfair, you can run shorter jobs to completion, but at the cost of response time; if you instead value fairness, response time is lowered, but at the cost of turnaround time. This type of trade-off is common in systems; you can’t have your cake and eat it too.

DESIGN TIP : TOM WEST’S LAW
Tom West, famous as the subject of the classic computer-industry book “Soul of a New Machine” [K81], says famously: “Not everything worth doing is worth doing well”, which is a terrific engineering maxim. If a bad thing happens rarely, certainly one should not spend a great deal of effort to prevent it, particularly if the cost of the bad thing occurring is small....

2012-11-01 21:33

DESIGN TIP : TOM WEST’S LAW
Tom West, famous as the subject of the classic computer-industry book “Soul of a New Machine” [K81], says famously: “Not everything worth doing is worth doing well”, which is a terrific engineering maxim. If a bad thing happens rarely, certainly one should not spend a great deal of effort to prevent it, particularly if the cost of the bad thing occurring is small.

官网在线阅读地址（请不要下载）： http://pages.cs.wisc.edu/~remzi/OSTEP/ "Ideas are not pulled out of the air; they come from smart and hard-working people" “...thus the real point of the educational process: to go forth, to study many new and fascinating topics, to learn, to mature, and most importantly, to find something that lights a fire for you." 加油吧！

One of our advisors, David Patternson, used to always encourage us to measure a system and demonstrate a problem before building a new system to fix said problem
Patterson's Law: measure then build
一查，作者当年在UCB的导师还就是D. Patterson，这话讲得好硬气啊。。。

2016-09-21 01:42

One of our advisors, David Patternson, used to always encourage us to measure a system and demonstrate a problem before building a new system to fix said problem