I've been told that for Linux, efficiency trumps all other attributes. For OpenBSD, security seems like the number one attribute. Something like Exokernel would put flexibility at the top. For Solaris, robustness and compatibility are good candicates for being in the top three.
Other operating systems have attributes they explicity don't care about. Plan 9 creators decided against compatibility (with UNIX) in favor of doing everything over the "right" way.
So, what do you think the top five (increased from three) attributes for Solaris, Linux (you can even break it down by distribution), OS X, the various BSDs, and any other OS you are interested in? This is a list of the top five design goals of the OS, not necessarily what attributes it actually displays.
Here's a list (not complete) of some attributes to consider:
- robustness
- maintainability
- security
- interoperability/compatibility/standardization
- useability
- efficiency/performance/speed
- portability
- flexibility
- scalability
- correctness
Here's my first pass, I'll update this based on any comments.
| Solaris |
robustness, compatibility, scalability, security |
| Linux |
performance (changed from efficiency), portability |
| FreeBSD |
compatibility, robustness, maintainability |
| OpenBSD |
security, portability, standardization, correctness |
| NetBSD |
portability, interoperability, security |
| OS X |
useability, robustness |
| Generic μkernel |
flexibility, useability |
| Windows |
profits, lock-in, global domination (from comments) |
If an OS is not here, its because I was not able to come up with anything I felt comfortable with. Oh, and I am not only talking unix-like OSes. I did not leave Windows out intentionally, I just don't know enough about it to know what its design goals are.
For anyone who may be following it, I will get back to the 64-bit processor series in the next post.