X

Comments on Jaguar by anonymous Tenon Engineer

Comments on Jaguar by anonymous Tenon Engineer

CNET staff
5 min read

Comments on Jaguar by anonymous Tenon Engineer

Mac OS X, Apple's new operating system based on BSD Unix, offers Macintosh users greater flexibility, stability, and multitasking ability than previous versions of Mac OS. Although it has many strengths, Apple still has more to do in a number of areas relevant both to a Unix and server environment.

Backward Compatibility

In the ever-advancing and fast-moving computer software business, end-users must count on software version numbers to ensure compatibility and to know whether a certain release of software is the latest. The convention has always been that, within major version numbers, compatibility is assured. For example, an application written for Mac OS 8 should work on all versions of OS 8 from 8.0 to 8.6.1. Customers rely on this backward compatibility to protect their investment in software and to avoid unnecessary upgrades. Microsoft has taken this concept to the extreme -- even most software written for Windows 3.1 will run on the latest version of Windows.

Apple has been remiss in not preserving backward compatibility with different Mac OS X versions. From Mac OS X version 10.0 to Mac OS X version 10.2.2, there are countless library and operating-system changes that jeopardize backward compatibility with all but the simplest applications.

The upgrade to Jaguar, Mac OS X 10.2, from Mac OS X 10.1 caused severe problems. The first one involved Apple switching to the ncurses library from standard curses. Apple did this by changing the C library, the core of a Unix system. Any application linked against the system C library that used curses had to be recompiled. Apple's decision to make such a drastic change and to sacrifice backward compatibility caused difficulties for third party developers. Vendors of Unix-based software, in many cases, had to release entirely new versions of their software due to this issue alone.

Also in the move to Jaguar, Apple changed its core GUI libraries. Many applications that were built and ran fine on Mac OS X version 10 and Mac OS X version 10.1 had to be rebuilt to work properly on Jaguar. Applications that were not rebuilt would crash. Even the update from Mac OS X version 10.2 (and 10.2.1) to Mac OS X version 10.2.2 caused applications from many vendors to fail. And downgrading to Mac OS X 10.2.1, Apple's recommendation, was an unacceptable option for website administrators, for example, who need minimal downtime.

Filesystem Performance and Strength

While many users report increased performance after moving from Mac OS X version 10.0 and 10.1 to Mac OS X version 10.2, many areas of performance have been unaddressed. The most serious of these areas is filesystem performance.

Mac OS X offers two filesystem choices: HFS and UFS. UFS was the filesystem of the NeXT operating system and Mac OS X Server 1.2. UFS is a true Unix filesystem. HFS is based on the original Macintosh filesystem, HFS, which was designed for a non-Unix operating system.

UFS sounds like the answer to Macintosh users who are tired of having to regularly run Norton Utilities to keep their files safe and computers running without crashes. Unfortunately, UFS is a much as 10-15 times slower than HFS . Clearly Apple has work to do in this area.

The Package Installer

As software packages become increasingly complex, both independent-software vendors and operating-system vendors have tried to find ways to make software easy to install and uninstall.

Microsoft Windows 95 was the first commercial operating system in widespread desktop use that provided a software-independent way to add and remove software packages. This feature alleviated the need for users to hunt around their hard disk to remove files in use by a particular application.

RedHat and Debian each designed packages for use in their distributions of Linux that encapsulate a software application into a single package file. Installations, upgrades, and software package removals are seamless.

It is important for software packages to provide dependency information. Dependency information protects against a user installing an application without other applications or libraries that it depends upon. A software package should also warn the user if a file included in the package will conflict with a file in use by another package. Furthermore, a package should provide information about what features or capabilities it provides. This is useful for satisfying software dependencies.

Apple's package management system contains none of these features. Apple's Package Installer's problems range from failure to run without restarting the computer first to improperly installing packages. End-users often have to install Mac OS X packages two or three times before Apple's package installer installs the files properly and runs the correct pre- and post-installation scripts. Packages contain no dependency information. There is no information about what capabilities a package provides. There is no easy way to uninstall packages on Mac OS X.

With Apple's package installation utility, a rogue vendor could easily overwrite another vendor's application without prompting the user. Apple's own packages readily overwrite user configuration files without warning. Uninstallation, while not in any way easy, can be a severe problem since it removes installed files without saving any configuration files that the user may want to keep.

For a first-class operating system, OS X needs a package management system at least as good as what Microsoft provides with Windows. Even Windows prompts the user if a package is about to overwrite a user's files. In order to be competitive, Mac OS X's package management system needs to go beyond Windows. Something akin RedHat's RPM or Debian's DEB package format should be included to provide users with easy and reliable ways to install and remove packages from their systems.

Removing Features

As Mac OS X has evolved, Apple has removed important and often helpful features from its operating system. Mac OS X Server 1.2 included a feature that allowed a user to remove packages graphically -- right from the GUI. Mac OS X version 10 does not include this feature.

In Mac OS X version 10.2.2, Apple removed the command-line adduser utility. This caused the failure of a number of Unix-based applications that relied on this feature. It also made it very difficult for website administrators, some of whom do not have console access, to add users remotely using the command line.

Conclusion

Although Apple has done a great job of bringing Unix to the desktop, Apple still has more work to do, especially for those who are looking to replace traditional Unix and Unix-like operating systems with Mac OS X.

Resources

  • More from Late-Breakers