My Unix is a general purpose operating system
January 23, 2013
When you start thinking about the present and future of Unix, one of the questions you are confronted with is what Unix is for.
One vision of Unix is that its focus is text-mode or headless servers that have a basically static location (in both physical and network terms) and exist to run daemons and services; websites, databases, disk storage nodes, fileservers, and so on. Let me be blunt: this is a very popular thing to do with Unix and is probably the dominant use of Unix today. It runs all the way from a devops organization virtualized in the cloud to one person running a single do-it-all server machine under their desk in a small organization.
My view of Unix is broader than this. For me, Unix is a general purpose operating system, one that is not just for servers but also for simple graphical environments (such as mine), full blown fancy desktops, laptops whether minimal or fancy, little simple machines, and many other places. I keep an open mind and feel that what is fundamentally Unix is capable of wide scope and applicability. In short, it scales in many directions.
(I will skip trying to summarize my reasons for why, but part of it is I feel that Unix has turned out to be a pretty good framework for interacting with computers.)
By Unix I mean more than the kernel and the core APIs. I mean, well, the metaphors and the framework and in general everything that makes Unix a familiar environment for general use. A machine can run a Unix kernel and have Unix-like APIs without being Unix; where the line is between Unix and non-Unix is ultimately one of feel (and varies from person to person).
There are environments where it's not clear if Unix fits. For example, I'm not sure much of the Unix framework really works in smartphones and it may not work well with tablets; we're going to have to see. Part of this is that the Unix framework is a general framework and is not necessarily a good fit to a very specialized, narrow device. Part of it is that the Unix metaphors may not be a good fit for some environments.
Sidebar: my views on some not-quite-Unixes
From what I know of it so far, Android seems clearly not a Unix in this sense although it uses a Unix kernel (yes, Linux is a Unix). Since I have low exposure to Android I may be wrong (and I'm open to having my mind changed).
Mac OS X is a fuzzy case but I consider it mostly not a Unix. If you use OS X as Apple intends you to, its Unix is simply a substrate for what it really is (in the same way its kernel uses Mach as a substrate without actually being Mach in any meaningful way). You can use an OS X box as a Unix machine but in some ways doing so seems to be swimming upstream.
(Part of this perception is based on the history of Apple and of Mac OS. To put it one way, I don't think that Apple has any interest in making Unix machines with a nice Apple desktop; that they arguably do is just a side effect, not a goal.)
Written on 23 January 2013.
* * *