I've been using Macintosh operating systems since 1991 and the days of System 6, before multi-tasking, when one program at a time was all you could use and God help you if you wanted to run anything RAM-intensive. I can remember when the entire system software would fit on a single 3.5" floppy disk. Looking back at that, one thing strikes me: how far we've come.
First, Some Background:
OSX reinvents many of the classic Mac ideas, including that of the Finder, the application that controlled and regulated other applications. Classic Macintosh System 7, OS8.X, and 9.X were half-kludged multitasking operating systems on top of a design that was not truly built to hold them; they lack such "modern" OS features as proper memory management and multi-threading. OSX changes all of that; its layered design makes for more stability and more flexibility.
OSX, as many know already, is based on a BSD 4.4 kernel (nicknamed Darwin), with a typical Apple GUI design (Aqua) on top of it. Aqua is run by the graphics display system, Quartz, which replaces the more-than-ready-for-retirement QuickDraw. More information about the OSX framework can be found from Apple's OSX information page. There is a layer that emulates a previous version of the software, OS 9.1, which is called, appropriately enough, "Classic".
Classic allows pre-OSX programs to run in a virtual environment, while developers gear up to release OSX versions, or for those users who don't want to upgrade to newer versions of programs they've fallen in love with. However, because of the architecture, Classic is not a true emulator; rather, what it does is replace system calls for pre-OSX functions with their corresponding OSX counterpart. Because of this, the end-user does not experience the speed hit often found when running other OS emulators such as VirtualPC.
What of OSX-native software? It comes in two flavors: Carbon and Cocoa. Carbon programs are a blend between OSX and pre-OSX architecture. It is a collection of APIs and shared libraries that "bridge the gap" between OSX and classic MacOS. Developers, rather than having to rewrite applications from scratch, will instead only have to concentrate on the parts that assume classic MacOS system calls and APIs. Carbon applications are also able to run under Mac OS 8.X and 9.X. Then, there's Cocoa, which are the NeXT interfaces used for NextStep and Open Step. It's a dynamic language, designed to work with the full OSX graphical environment -- and it's designed to keep shareware and Free Software developers happy. Considering that for years, Mac users have depended on shareware and freeware to augment the meager commercial software offerings, this is a good thing.
More information on OSX can be found on Apple's site. Beware: technical details are well-buried beneath all the marketing glitz.
I grabbed a copy of OSX from the local CompUSA on Thursday, March 28th. It's OSX build 4K78, a simple retail copy. It was installed on a 350MHz G4 with 320MB of RAM and two hard drives: one 40GB drive partitioned into two 20GB HFS+ partitions (aero and terra), and one 80GB drive with a single HFS+ partition (oniero). My previous OS 9.0.4 install was on aero; terra was a blank partition.
Note that OSX requires at least 128MB of RAM and a PowerMac G3 or G4 processor. It does not support the original PowerBook G3 models, nor does it support G3 or G4 upgrade cards. If you've got an older machine, or an older machine that has been upgraded, you're probably out of luck. There have been reports of people running OSX with the 64MB of RAM that was factory default for Macintosh machines up until recently, but from the impression that I get, it would be roughly like attempting to run Windows 98 with 16MB of RAM.
Before The Install:
First impressions upon opening the box: the documentation provided was clearly geared towards the "average user", rather than an advanced Macintosh user or someone familiar with Unix. The booklet is thirty pages long, and contains instructions for installation and basic troubleshooting, but little else. Pictures abound, which is good for those of us who are more visually oriented, but means that less technical information can fit.
Part of installing OSX is installing OS9.1, if it is not already available. The Classic layer won't work with OS9.0.4 and before. Apple thoughtfully provides an OS9.1 CD bundled with OSX. Also in the box is the OSX Developer Tools kit, which has more goodies than I can begin to relate; suffice it to say that it's a complete developer environment, right out of the box.
When originally partitoning my 40GB drive, I'd been looking ahead to the eventual OSX install, and created a separate partition for the new System folder. In reading the discussions on Apple's OSX discussion site, I think that's what saved me many of the headaches that other users experienced, and I would strongly advise others to do the same. It also means that if things don't work, you can go back to using your previous operating system just by changing the Startup Disk in Control Panels.
I'd been running a small web, mail, and ftp server on my machine for my friends (kekkai.org, if you're curious), and I was doing my best to minimize downtime while I did the install. My biggest concern ahead of time was making sure that there would be replacements for all these services.
The install process:
Installing OSX will be familiar to anyone who's installed Mac software before. Pop in the OS9.1 CD, install that, and reboot. Switch the OS9.1 CD for the OSX CD, hit the installer icon, and off we go.
The installer reboots your computer into OSX to perform the install, and that's the first look that I got at the new GUI. Hmm, not what I'm used to, but I can get used to it. My total install took about 20 minutes.
Once you finish installation, the computer reboots and brings you into the setup manager, where you create the first user account and give it a password. This will be the administrator account, so choose what you want to use. One thing that Apple doesn't mention is that the "short name" is the username that users of Unix are familiar with; choose it carefully. You'll be living with it for a while. Here is also where you set up your Internet accounts; I strongly suggest doing it here. Finding these screens later can be a bit tricky. (Yes, this means that you should write down all your settings before you do the install. I didn't; I was lucky that one of the other machines on our network had all the appropriate IP addresses still saved. One day, I will learn.)
The default install leaves "root" as an inactive account, and Apple strongly advises that users should leave it this way. Don't, whatever you do, name your first user account "root"; I didn't try to, so I don't know if the system will accept it or not, but I can imagine that it would create headaches later.
Once you've installed the software, you're up and ready to go. You'll find yourself looking at the new desktop. The Dock, a Windows-like taskbar (without many of the irritations of the taskbar; you can drag applications that are not open, for instance, into the Dock, and then click the Dock icon to open the program) is sitting across the bottom of your screen; you can change the resolution, or set it to auto-hide, which was one of the first things that I did. Your user directory should be already open. Each user directory contains folders for Desktop, Documents, Library, Movies, Music, Pictures, Public, and Sites; the latter is where the default configuration of Apache looks for web files.
Oh, didn't I mention Apache? Silly me.
Meeting The Underlying Technology:
Apple has finally tossed most of its proprietary technology out the window, replacing it with the familiar BSD services that we've all come to know and love. AppleTalk is now TCP/IP; web sharing is now Apache; file sharing is now ftp. They keep their familiar Apple names and Aqua interfaces, but turning on File Sharing, for instance, enables the ftp daemon, and turning on Web Sharing makes Apache start listening.
The good news for casual users is that the process is mostly seamless. You don't need to know anything about the BSD layer to enable these services; all you need to do is open the System Preferences panel and make the appropriate changes through Aqua. The bad news for Unix users or administrators is that the BSD layer is poorly documented, and that documentation is hiding what feels like ten layers deep on the Developer CD. Existing BSD documentation won't always apply, either. For someone like me, who's only had mild exposure to BSD administration -- though I've been a user on a BSD system for nearly seven years -- wading through all the appropriate config files will be a nightmare. For a casual user, it will be nearly impossible.
The good news for everyone is that integrating BSD technology with the Aqua GUI has been very well-thought out. If all you want to do is run an internal network or share some web files, you never need to touch the command line.
My Mac Has A Command Line!
It takes some getting used to, let me tell you. Getting to the command line is as simple a matter as opening the included terminal program; it brings you right to your home directory. This is the only way you can access the more Unix-like parts of the file structure; directories like /etc and /bin are hidden from the user when viewed through Aqua. As much as this irritates me, I will admit that it's probably best; no need to confuse Mom and Dad.
As I mentioned before, OSX installs with the root account disabled, and Apple advises against enabling it; tasks can be accomplished with sudo. If you do want to enable it, a management utility called Netinfo Manager ships with the system. Simply authenticate yourself using the Domain menu and active root; it will ask you to choose a root password. I've heard rumors that doing so will mean that Apple won't provide support, however; do so with care.
Other than that, once you're "under the hood", Darwin behaves precisely like its BSD cousins. The default shell is tcsh.
Time And Effort:
I was up and running in about an hour; that would have been the end of it, if I hadn't been trying to enable server services. Figuring out Apache's config files (and trying to make it use a different directory -- a different partition, even -- as its document root) took me about two hours; arguing with sendmail is an ongoing process, even the next day. I'm sure that those with more Unix background than I would be able to do it a lot faster. For the average user, though, switching to OSX would probably take several hours to configure, and then they'd be up and running.
So, what's the verdict?
or, "What I like, or what Apple did well"
- There's a new file management system in the Finder. Previously, opening a folder would spawn a new window, which would quickly clutter your desktop -- particularly if you opened windows larger to view more information. Now, there's a choice of two methods; with one, opening a folder will simply replace the current window, while with the other, clicking on a folder opens that folder in the same window, in a pane to the right of the already-open directory. This saves space on your desktop, and makes it easier to work with multiple windows. However, if you're not careful, you can quickly "lose" yourself.
- As I mentioned, the root account is not enabled, by default. For the average user, this will never be a problem, and indicates that Apple's design team was being security-conscious.
- Likewise, sendmail, apache, telnet, ftp, and other insecure services aren't running by default. The user has to explicitly turn them on.
- My classic applications run nearly perfectly under Classic mode. You can set Classic mode to start up automatically when you turn the computer on; it takes about a minute to start, and from then on, you can open as many classic applications as you'd like. So far, I've tested Photoshop 5.0, BBEdit 4.5, iCab Preview 2.4/PPC, SoundJam 2.5.2, and ICQ Beta 2.0. None of them have experienced any difficulties, and indeed, ICQ is far better behaved under Classic mode than it was under OS9.0.4. The only problem I had was with the mailserver I was formerly using; that made direct calls to the Users & Groups control panels, which has changed significantly under OSX. I won't miss it; OSX has sendmail. Once I can figure the damn thing out, of course.
- Ports of UNIX software are showing up already, and many software houses are already releasing OSX versions of their applications; unsurprising, as the Public Beta was available for a long time before the final release. Installing UNIX applications under OSX is a bit tricky, but not precisely difficult.
- Protected. Memory. Space. I've managed to crash the OSX port of iCab no fewer than six times already, and nothing else was affected. If I'd tried that under OS9.0.4, I probably would have wound up spewing some vile curses and getting up to hard-reboot the machine when it locked so badly that it stopped responding to the keyboard reboot. This, to me, is potentially the "killer app" of OSX; it's sad that it's taken this long to get it, but now that we have it, I don't know how I lived without it.
- Adding a new user to the computer is as easy as it ever was, with the Users panel of the System Preferences -- and then I can flip to the command line and set their directories up to use the symlinks I want them to have access to.
- The Dock is the most wonderfully-behaved interface I've touched in a while. The icons are clean and easy to distinguish, hovering the mouse over an icon causes its title to pop up, and you can "peel off" an application's window to send it to the Dock separately. Setting it to "auto-hide" minimizes the annoyance factor, too. Hitting clover-tab activates the Dock and moves from application to application, making keyboard navigation -- long a flaw of Apple's -- much easier.
- Many people complain that OSX crawls on their machines; many people with faster machines than I have have reported this. I, personally, haven't experienced it at all. I've done some timing of things, and on the whole, OSX is faster than OS9.0.4. Admittedly, I wasn't running OS9.1, which might be their basis of comparison. It might also have something to do with my install setup. It does occasionally slow down when going from a Classic application to a Cocoa application.
or, "Poor design and user experience flaws"
- As I mentioned, the documentation is spotty at best, and very well-hidden. Apple did a wonderful job of making Unix available to the average user, but seems to have forgotten that not everyone who will be using this system is an average user. There's a level of user in between "complete Unix newbie" and "Unix guru", and more people than you might think fall into that gap. Better documentation would have eased a lot of my headaches.
- Some of the default permissions need to be changed. Files that were created before OSX's install belong to the first administrator account created; their group is "unknown". An import program, or a GUI for file administration, would have saved some time. Also, to get sendmail working right, I had to mess with a lot of default permissions, particularly on / and /etc.
- Aliases of folders don't translate into symlinks on the Unix side of things. I recognize that this would have taken a LOT of kernel hacking, but man, would it have been nice to have. Symlinks, on the other hand, do translate into Aqua aliases; that helps.
- When turning services on through the File Sharing System Preferences panel, a user is actually enabling partially-insecure services such as telnet and ftp. However, there's no dialogue warning the user that this is what s/he is doing. I would have liked to see a warning: "Don't do this unless you know what you're doing."
- Obviously, the Unix command-line won't recognize files with spaces in their name. Ideally, this would have been solved by invisibly changing " " to "_" under Darwin; again, impractical. Failing that, a note in documentation to use "?" in lieu of the space would have been nice; I knew it, and I suppose that Apple figured that anyone familiar enough with a command line to use the command line would also know it, but I know a lot of people who are familiar with a command line but whose education was spotty enough that this solution wouldn't have been immediately obvious.
- The OS is complete, but some features aren't. The most obvious lack is that there is no DVD player yet, due to a lot of complicated political maneuvering. Third-party hardware support is intermittent, and depends on the hardware manufacturer. Given the choice between shipping now, or shipping later and being more feature-robust, I'm glad they chose shipping now; they had announced deadlines. However, it's irritating.
- The GUI has changed just enough that configuring things like desktop background, color themes, scroll bar behaviour, etc. all take a while to figure out. Dammit, Apple, document! It's hidden on one page of the nearly-useless manual.
- OSX uses TCP/IP for networking, rather than AppleTalk. This makes communicating with an OS9.X computer rather difficult. My roommate's iMac can talk to my G4, but my G4 won't mount her filesystem for me. Again, it's something I can live with for what I get in exchange, but it's irritating.
- The one quibble I have with the otherwise-excellent Dock is that it's nearly impossible to distinguish between applications that are currently running, and applications that a user has simply dragged into the Dock for ease of use. Running applications do have a little arrow underneath them, but it's difficult to see; some other visual clue, such as a color change, would be easier.
or, "God that's annoying; I hope they fix it."
- The Aqua fonts are ugly. I heard a lot of people bitching about this before I installed, and I thought that it was just that the fonts were different -- but they're not. They're ugly. The anti-aliasing is blurry in places, and they're far, far too large. You can't see more than about 20 characters of a filename in the default window view before it collapses itself: "thisisaverylongfilename.txt" becomes "thisisavery...name.txt" until you resize the window. Shrinking the fonts is possible, but it also shrinks the icons.
- Launching Classic applications occasionally keeps the screen from redrawing properly; if you have a Classic application running in the background, while you are in Aqua, and the Classic application redraws the screen, the screen will jump and leave white lines all over the place. Opening a Classic application causes visible screen redraw, and can cause headaches if the monitor refresh rate is set low enough.
- Some Classic preferences don't hold over from session to session. The ones I've encountered so far have been system sounds and BBEdit file wrap.
- Classic media players such as SoundJam produce audible dropouts and skips when switching from a Classic application to a Carbon application. Irritating when playing MP3s under your Classic setup. It also occasionally kicks in when a stray mouse movement causes the Dock to pop up.
- There is no obvious way to minimize all Classic applications in the background; double-clicking a Classic app titlebar will not hide it in the Dock. Previously, under OS9.X and before, you would switch to the Finder and choose "Hide Others" from the applications menu -- which doesn't exist under Aqua.
- Downloading something using a Carbon web browser will cause the focus to switch back over to the Finder if you have StuffIt Expander set to automatically decode things. This results in Expander not being invoked properly, and focus being shifted from whatever Classic application you're using. I've lost a few lines of typing before I noticed.
- One of the most irritating glitches: copy and paste won't always work from a Classic application to a Carbon application and vice-versa. Irritating when working from my Classic mail reader and trying to paste a URL into my Carbon web browser.
The Crash Test:
It doesn't break. No matter what I do to this operating system with normal use, I haven't been able to get it to freeze completely yet. Individual applications will freeze and need to be restarted -- the Finder thoughtfully provides a Force Quit menu item -- but once the errant application is down, the rest of the system just keeps ticking. The beauty of multi-threading also means that even if one application is frozen, I can keep going with work in others until I notice.
I did have a problem this morning when I woke up and tried to get the computer to listen to me; I think it relates to the power-saving Sleep settings under Classic mode. I tweaked a few more things, and hopefully it won't happen again.
Is It Ready For Prime Time?:
My answer to this is going to have to be a guarded "yes". For me, the benefits that I get from the new operating system design outweigh the hassle of setting things up -- and there was more than a bit of hassle setting things up. For a home user, especially one who isn't afraid of a little bit of tweaking, I'd also have to say yes. For end-users who aren't familiar with the Macintosh, or users who want to run Classic games, DVD player applications, CD burners, or third-party hardware: don't throw away your OS9 CD yet. Wait for the next version, which should be released in June.
Home businesses and small offices should weigh the benefits and disadvantages carefully, and perhaps try a test install on a single machine before committing the entire network. I've heard that OSX is hard to uninstall, so installing on a separate partition is probably the way to go.
I think Apple's got a winner here: the stability of BSD, with the all the Apple experience in GUI design. It's stable, it's flexible, and it's clean. Once they get third-party hardware working better, clean up the documentation a little more to make it more accessable, and possibly tweak the Classic interface until it behaves a little better, it'll be golden.
If I hadn't been using BSD for years already, I'd have been lost the moment I stepped outside of the GUI. I suppose Apple wants it that way, to keep people from destroying their system through one careless command and then blaming the operating system, but come on, Apple! Don't rely on the user base to do all your documentation for you!
And now, if you'll excuse me, I'll just be over here marveling at the fact that my Mac has a command line. My Mac has a command line. I'll get over this soon .... no, I won't. Who am I trying to kid.
[posted from iCab Preview 2.4/OSX, a Carbon application, using OSX]