From Exile to X11: A Journey Through Time
by Dan Benjamin03/14/2003
The Mac began its life as a creative tool geared toward designers, desktop publishers, writers, artists, educators, and people new to computers. Because of its simple, direct, and consistent interface, non-technical people who thought they didn't like or couldn't use computers found they could become proficient--even accomplished--Mac users in no time flat.
Over time, the Mac became the de facto standard for the creative and education industries, heralded as the computer that even your grandmother could use. In response to this perception, and perhaps because of it, Apple and people developing for the Macintosh continued to create software for this audience, and for these types of users.
All the while, PCs were seen as business machines, devices used by people wearing suits and sitting in cubes. It's no wonder that PCs were quickly adopted in the enterprise. When people needed an inexpensive network management console, dumb terminal, or X Station (things rarely found in a two-person graphic design shop), the PC was already right there, in the enterprise and on the users' desks. So that's what was made to function.
The Penguin and The Devil
Unlike proprietary versions of UNIX which were expensive and required special hardware, Linux and FreeBSD could run on any PC around, even (and perhaps especially) on old, unused hardware that was available for experimentation. IT folks everywhere were the first to adopt these free operating systems, experimenting with them in darkened server rooms. While management scoffed at this new, unproven technology at first, we were on the eve of gigantic change across the enterprise.
Change came in many forms. Some companies switched to open source platforms to save money, others just to keep up with the competition. Eventually the change would come to even the most old-fashioned corporate IT organizations, sometimes even by accident. Say the UNIX web server fails catastrophically at 2AM and, in a last ditch effort to save the day, IT support swaps over an old PC running FreeBSD to take over serving the corporate web site--and realizes it's faster, more stable, more reliable, and free.
Meanwhile, the network landscape itself was changing. Mainframes, hulking beasts, began to go the way of the dinosaur, replaced by less costly and more nimble UNIX-based client/server systems that featured the X Window System, a graphical user interface that worked consistently across most UNIX operating systems. The X Window System (usually referred to as "X11") allowed applications running on one machine to display on another. The network manager could sit at her desk and command visual applications running on machines anywhere across her network--or the Internet.
And rather than spend many thousands of dollars on a full-fledged UNIX system to connect to her remote systems, she can simply install Linux or FreeBSD on her desktop machine, and she has all of the access and all of the utilities and tools she needs.
Unfortunately, while most open source operating systems have good reliability and (thanks to KDE and Gnome) decent user interfaces, they lack the support of commercial applications like Photoshop, Office, Dreamweaver, and other tools that are invaluable when working in the corporate environment. They also lack the acceptance and ease of use that Windows has in the corporate arena.
Enter Mac OS X
When Apple purchased NeXT, it inherited NeXT OS--a true UNIX operating system, which, combined with FreeBSD and a completely new GUI, became Mac OS X. Every Mac running OS X has, behind the scenes, a true UNIX operating system, with all of the power and capability of a Linux, FreeBSD, or UNIX server found in an enterprise datacenter, but hidden away behind a smooth, easy to use interface.
Want proof? Just run Terminal (located in /Applications/Utilities) and you'll be greeted with a command prompt--just like any good UNIX system. Interestingly, many people think of Terminal as "an application that lets you type commands." In a way, this is true, but it's useful to think of Terminal as a window into the true operating system itself. In fact, it is the GUI you're used to seeing (windows, mouse, graphics) that is the application, and the white text on a black background that is truly the interface.
|
Related Reading
Mac OS X in a Nutshell |
These UNIX underpinnings are what allow Macs to run Apache, PHP, and MySQL--champion applications of the open source UNIX movement. In fact, almost any Linux or UNIX application made can run on or be compiled for OS X, including the X Window System itself.
Running X11 applications alone isn't a big deal. In fact, it may seem unimportant to the average Mac user. But if Macs are to become a success in the enterprise, supporting X11 applications is critical. This is because many servers in datacenters are run "headless," meaning they have no keyboard or monitor attached. This means that all graphical applications, such as Gimp, CVSup, Mozilla, Oracle's installation and management tools, and many other applications require an external X Window system to be used. In the past, this meant that you needed to either maintain a separate UNIX or Linux system just for this purpose, or you needed to run an X Window Server on your Windows system--an expensive affair (decent X Window servers for Windows cost upwards of $600 per seat).
What Is the X Window System?
X11 provides developers with a way to create graphical applications that can run on any UNIX or UNIX-like system, such as Linux, FreeBSD, or Sun Solaris. In fact, this is the only way to make a graphical application for a UNIX system. When a developer creates an X11 application, she knows it's going to work on just about every UNIX system out there--and now, thanks to Apple's recent release of X11 for Mac OS X, thousands of existing X11 applications will run on OS X as well.
This is because Mac OS X is (beneath that pretty Aqua interface) a true UNIX system, with all of the power and capabilities that implies. This is why so many UNIX applications, like Apache, MySQL, PHP, run on Mac OS X.
You can think of X11 as an application that tells Mac OS X how to display the windows, buttons, and widgets found in an X11 program. After you launch the X11 application, you can run any existing X11 application around. One of the benefits of running X11 applications on OS X is that they inherit the Aqua GUI and, if your Mac supports it, can take advantage of Quartz rendering for speed and reliability.
And there's one more thing that makes the release of X11 for OS X really important. X11 is more than just an application--it's also a protocol, a way for machines to talk to each other. Once you're running X11 on your Mac, you'll be able to launch X11 applications on any UNIX machine on your network (or across the Internet) and have them display on your Mac as if you were running them locally. Imagine launching an application on a Linux server in Houston and watching the interface appear on your Mac's screen in your Miami office as if it was running on your own machine. Pretty powerful stuff. But I'll get to that in the companion article, "Hands on X11."
Dan Benjamin is the President of Hiveware, a software solutions company specializing in Enterprise and Web application development.
Return to the Mac DevCenter.
You must be logged in to the O'Reilly Network to post a talkback.
Showing messages 1 through 14 of 14.
-
X11 != GUI
2003-03-18 07:21:29 anonymous2 [Reply | View]
X11 has no control over the scrollbars, buttons, comboxes, or any other aspect of the user interface. X11 is simply a protocol for moving big, square rectangles of graphics (ie windows) around on the screen. In order to draw buttons and widgets, you need a toolkit. The Qt toolkit has the capability to interface with Aqua, making UNIX programs look like true MacOS apps (even though they AREN'T!) but most UNIX applications will still look like UNIX on your Mac.
-
"window into the true operating system"---indeed!
2003-03-17 16:19:29 halliday [Reply | View]
Dan Benjamin states:
<quote>
Interestingly, many people think of Terminal as "an application that lets you type commands." In a way, this is true, but it's useful to think of Terminal as a window into the true operating system itself. In fact, it is the GUI you're used to seeing (windows, mouse, graphics) that is the application, and the white text on a black background that is truly the interface.
</quote>
Unfortunately, this is a blatant misunderstanding of the nature of Unix-like systems. Even in the bad-old-days of character terminals, even the shells---the command interpreters ("sh", "csh", etc.) that took (take) your command line input and did (do) useful things like listing the contents of a directory, or running a program---were (are) simply programs than ran (run) atop the operating system just like any other program. This was always intentional, and fundamental to the design of UNIX and it's layered, "shell" like structure (hence the reason the command interpreters were [are] called shells).
While it is true, and useful, to recognize that the GUI is simply an application, running on the underlying operating system, it is blatantly false to suppose that the shells are in any way "truly the interface"---they are likewise simply applications, running on the underlying operating system. (Shells are just simpler applications, than the GUI application, that need fewer specialized resources from the OS.)
Just a friendly correction. :-) (I write this publicly, not to chastise Dan, but in the hope of helping educate anyone who reads this article.) -
"window into the true operating system"---indeed!
2003-04-22 05:27:35 anonymous2 [Reply | View]
I think your definition of an "operating system" may differ from the definition used by others such as myself.
UNIX was designed from the very beginning to be a "toolkit". When you installed a base UNIX system you got a bevy of small, powerful utilities that could be strung together into applications using shell scripts. It is at this level -- the "toolkit" level -- that I place the term "operating system".
Based on your description of an operating system, I can only guess that you're refering to the UNIX kernel as the operating system (i.e. the kernel is at the center, then the "shell" wraps around it, then there are apps and utilities that run in the shell, etc. I consider the operating system to be at the "shell" level).
If my definition of an operating system were to be used, the terminal actually would be a "window into the true operating system" as that would be the only way to gain access to the scriptable command line tools that make up the UNIX "toolkit".
Just my 2 shares of VA Linux stock... -
"window into the true operating system"---indeed!
2003-03-18 03:53:52 danbenjamin [Reply | View]
I'm amazed at the feedback this sentence is generating :-)
Actually, I'm glad the level of readership contains people at the technical level to provide this explanation. You're right, of course, but I was trying to present a simple analogy for those uninterested in the deeper technical details. Many readers aren't this technical, but I agree that things should be accurately represented.
Thanks for pointing this out.
Perhaps I should have written something more like "In fact, the GUI you're used to seeing (windows, mouse, graphics) is just one way of manipulating your machine. Terminal is another, somtimes more direct route."
Thanks to all for the feedback!
-
Command line is no closer than GUI
2003-03-17 12:55:47 anonymous2 [Reply | View]
Quote:
----
Interestingly, many people think of Terminal as "an application that lets you type commands." In a way, this is true, but it's useful to think of Terminal as a window into the true operating system itself.
----
Actually this couldn't be more false. Neither
the GUI or the command line is closer to the true operating system.
I have been using Unix systems for >10years now, and it is only in the last 2-3 years that I came to realize that.
A shell is no closer to the system/kernel than an X11/Cocoa/Carbon/... application is.
A failure to understand that shows a lack of understanding of how unix systems are structured.
Eric
-
Display PostScript - Sorely missed NeXT technology
2003-03-17 10:57:20 anonymous2 [Reply | View]
X Windows is great, if you've got X Windows software, but the fact is, native OS X applications are where it's at for most of us. With NeXTstep (which used a technology called Display PostScript, or DPS) rather than Quartz, you could run NeXT software remotely as well. Essentially just like running X Windows software.
Wouldn't it be cool to have a network with a server farm of application hosts and a bunch of diskless Macs? Need Word or Excel, just run it on the server and export the display to the client.
I use Linux servers frequently and love that I can use the GUI tools via X11 on OS X. But this would actually be a bit harder on OS X. Especially if the server is running OS X server (since the tools would only exist on the server). I REALLY miss this about NeXTstep. Now we're stuck with VNC or equivalent tools. Useful, but not as cool.
-
RE:The article isn't quite as offensive as the summary for the link that brought me here...
2003-03-16 09:10:01 anonymous2 [Reply | View]
Agreed anonymous! I would emphasize that one of the biggest reasons for windows hegemony is hidden in that one word - compatible. apple decided early on not to license the hardware and simply not compete with literally hundreds of companies making pc's.
as an aside - it was only the little sojourn into licensed cloning that woke up the cupertinians to the need for speed. I love my Power Tower 250 (now with a Newer Tech g3) and give it some of the credit for the survival of the operating system.
-
The article isn't quite as offensive as the summary for the link that brought me here...
2003-03-15 10:46:20 anonymous2 [Reply | View]
I clicked on this link in O'Reilly's MacDevcenter e-mailing because the summary was so outrageously stupid. The article is merely naive. (My Mac's have ran X11 since my Quadra 900).
I find this lead-in, from the summary, misleading and stupid:
"How did the Mac evolve to a tool primarily for creative types and anti-geeks to a Unix-based platform with a complete X11 implementation?"
Besides the obvious mistaken 'to' in place of 'from', I take issue with Mac being a tool for 'anti-geeks'. The Mac is and has always been a tool for everybody, and in my mind, especially for geeks. Every geek I know worth his salt is a fan of the Mac UI. The only consistent complaint from the programming types (myself included) has been that it was hard to develop for. None of the tools were free, or even cheap, and Mac toolbox documentation was outrageously priced. For a hobbyist like myself, it was out of the question. I poked around a little with Think C in the late eighties but in the end it wasn't worth my effort when I could get as much Borland C or Pascal info as I needed for practically nothing, and do it on a cheap PC.
The hardware became an issue too, as there wasn't any place within 100 miles anyone could take a Mac for repair, and you couldn't order parts from Apple. I checked into getting authorized as a Mac Service Center (I was fixing everyone's Macs with spit and baling wire anyway) but Apple wanted me to carry ~$65K inventory in parts. Stupid, stupid. Not something I could justify for something I did in my spare time just because I loved the machines. The Mac was my favorite machine (although I also especially loved VAX's) until the introduction of the NeXT cube in 1988. No one was happier when the merger happened. The merge of the two OS's is remarkably well done, though the UI for Mac OS X is in my opinion less functional than either of its predecessor's. They'll get there though. The things we took for granted in classic MacOS were developed over time. If you don't think so, try booting a Mac II into 6.0.5 and see how crippled you feel. I have, recently. It booted in 11 seconds though, which was impressive.
The thing that made the PC king was simply IBM's reputation for building 'serious business machines', which the clone manufacturer's were able to leverage by labeling hardware as 'IBM compatible', and Microsoft was later able to usurp by slowly shifting focus from machine to software platform "IBM compatible" --> "PC compatible" --> "DOS compatible" -->"MS Windows compatible". Idiot magazine writers played up 'IBM compatible", suits read these worthless rags, swallowed it without question, and we end up with Windows PC's all over the place and worthy OS's like OpenStep, VMS, and now MacOS X marginalized. We true geeks had nothing to do with it.
One last issue...the definition of "geek" here is very narrowly defined...there are geeks of every stripe, and it is with those types that the Mac first made inroads...I came to the Mac via HyperCard for a NASA project, later worked in setting up an advertising composing department at a newspaper (very much looked down on by the paste-up oriented types on one end and the IBM mainframe film typesetting types on the other). I trained the woman who later became my wife (and who is definitely not a computer geek) on the Mac, because *I* loved the machine, but also considered it to be the 'right' machine for anybody. I consider myself both a publishing geek and a computer geek. The Mac found traction first with publishing geeks...but it was the LaserWriter and PageMaker that did that.
Lastly, my home network here includes VAXen and an Alpha running VMS, an Alpha running OSF/1, A NeXT, a PMAX running BSD, 2 MacOS X machines, a laptop with W2K on it just for the VPN gateway at work, and my daughter's Mac running OS 9. My daughter has had a Mac since she was 2, and did her first programming (in MicroWorlds Logo) on a IIsi when she was 4. I think she might be a geek :-). -
The article isn't quite as offensive as the summary for the link that brought me here...
2003-03-15 13:36:29 tjtrujillo [Reply | View]
Great post whomever you are!!!! I would add price. I use to buy XT's and AT's buy the pallet load for a large insurance company (and later models too!) The Mac's always were $1500 + more expensive than the competitor. From the standpoint of price, if all you people are doing is crunching spreadsheets all day or writing doc's, your not going to convince any person with P&L responsibility to spend the extra $$'s, no matter what you say about design, slightly easier to use etc. Its a numbers game that Apple never understood, or did not want to understand.
-
Re: MacOS 9 Had X Servers
2003-03-15 03:53:21 anonymous2 [Reply | View]
Um, I think the point, at least from what I read, is that you don't NEED X winders servers. You can run X11 applications remotely or locally with OS X. A bit of a difference.
-
MacOS 9 Had X Servers
2003-03-14 19:59:45 anonymous2 [Reply | View]
Um, I don't understand the point of this article. The mac has had X servers for years from white pine, tenon, etc that ran on OS 9. -
MacOS 9 Had X Servers
2003-03-15 06:09:50 bbum [Reply | View]
But OS 9 did not have any of the features of a modern Unix server and, hence, the X environment on OS 9 was crippled. While the X servers on OS 9 could do a wonderful job of displaying remote X sessions, they could not easily take direct advantage of many of the X based applications; you couldn't run many of hte X based apps directly on the OS 9 platform without there having been a difficult porting effort.
End result; the OS 9 based X platform lagged behind the rest of the X community. This is not true of the OS X X environment.






its really sad whoever was the editor knows nothing about NeXT Apple UNIX and their relationships
Regards
John Jones