Slashdot Mirror


The Challenges Of Integrating Unix And Mac OS

Schemer writes: "Wilfredo Sánchez, the lead developer on Darwin has posted his usenix paper, 'The Challenges of Integrating the Unix and Mac OS Environments' on the Web. In it he describes the difficulties and solutions to the problems encountered while trying to adapt BSD Unix for use with MacOS X. It's a very good read, even if you aren't a fan of the Macintosh." The OS X team have been dealing with the serious complications of mixing one established, beloved interface with another -- this is a thoughtful look from the inside at how they've dealt with it, and a good explanation of some underlying assumptions and conventions of each OS.

59 of 215 comments (clear)

  1. Getting 2 together as one . . by Money__ · · Score: 2

    maybe they should talk to Hemos?
    ___

  2. He's got bigger problems than integration by imac.usr · · Score: 4
    just ask the guys at Stepwise who wrote this....

    Apple might consider spending a little effort on keeping some of its biggest supporters -- developers -- happy.

    --
    I use Macs for work, Linux for education, and Windows for cardplaying.
    1. Re:He's got bigger problems than integration by gwernol · · Score: 3

      just ask the guys at Stepwise who wrote this....

      Apple might consider spending a little effort on keeping some of its biggest supporters -- developers -- happy.

      Don't forget that Mac OS X is (very approximately) the combination of two previous operating systems: Mac OS 9 and OpenStep. The Mac OS 9 developers outnumber the OpenStep developers by about 1000:1

      Stepwise represents only the OpenStep developers, not the Mac OS 9 developers. Apple has given the OpenStep developers a forward path through the Cocoa API layer, and several of the complaints in the Stepwise article are actually bogus.

      But at the end of the day, Apple has limited resources and is trying to ship an OS within a time limit. It makes much more sense for the company to focus on getting Mac OS 9 developers on board (via the Carbon API layer) even if this is at the expense of some of the support they might, in an ideal world, give to the OpenStep community.

      Apple is putting a huge effort into supporting its developer base, its just choosing where to prioritize. It knows that right now its Mac OS 9 developers are more important. Seems like a pretty sensible strategy to me.

      --
      Sailing over the event horizon
    2. Re:He's got bigger problems than integration by MrBogus · · Score: 3

      Bottom line is that, after years and years in denial, the NeXTStep crowd just figured out about 6 months ago that their high budget OpenStep-on-Wintel consulting market is dead. They just can't/won't adjust to selling software and services on a low-end home user platform, and are lashing out at Apple.

      Most of the Mac user base seems pretty happy about the direction of OS X and Apple in general -- it just the folks that had heavily invested in Objective C/OpenStep who are complaining. Would they be happier if NeXT had just gone out of business?

      (I know NeXT had it's technical merits -- however the plain facts are that it was a bust in the marketplace. It makes sense to migrate that tech to someplace that someone will actually use it.

      If Apple was a little smarter, they would have maybe thrown the NeXT guys a bone. They're a well-spoken, long-winded, bitchy little bunch, and having them talk trash continually can't be good when you are just about to launch your most important product in a decade.)

      --

      When I hear the word 'innovation', I reach for my pistol.
  3. Nope, don't like at all ... by tilleyrw · · Score: 2

    From starting with 'case preserving' but 'case insensitive' filenames ... ??? WTF???

    Excuse me for being overly indoctrinated with Li/*nix -- but something seems wrong with this.

    If your foundation is not stable, then anything you build will also be unstable. I feel this to be the case with this filesystem.

    --
    This post encoded with ROT26. If you can read it, you've violated the DMCA. Handcuffs please, sergeant.
    1. Re:Nope, don't like at all ... by gwernol · · Score: 4

      From starting with 'case preserving' but 'case insensitive' filenames ... ??? WTF???

      Excuse me for being overly indoctrinated with Li/*nix -- but something seems wrong with this.

      I think you may have slightly misunderstood the thrust of the original article. The point was Apple has no choice in this. Everyone realises that its a less-than-perfect situation, but the new Mac OS X has to be able to work with the filesystems from Mac OS 9. This is an absolutely essential feature. Because HFS and HFS+ (the Mac OS 9 filesystems) are indeed both 'case preserving' and 'case insensitive', Mac OS X has to be able to handle this sort of filesystem. As Wilfredo says, in practice its not nearly as large a problem as it would appear at first glance. Which isn't to say its never a problem, of course...

      If your foundation is not stable, then anything you build will also be unstable. I feel this to be the case with this filesystem.

      This seems like a pretty large leap. The use of HFS+ as a Mac OS X filesystem is not at all "unstable". I have three machines running Mac OS X with pure HFS+ filesystems throughout. This really isn't an issue at all. The filesystem is about the most stable part of the entire OS :-)

      --
      Sailing over the event horizon
    2. Re:Nope, don't like at all ... by Snocone · · Score: 3

      Transparent and flawless? I guess you've never talked to anybody who went through the 68K/PPC conversion kicking and screaming, eh?

      Actually, I made a lot of money cleaning up after those idiots.

      Programs I wrote in 1984 compile perfectly today. Anyone who followed Apple's rules for compatibility, which are 95% unchanged since the days when Inside Macintosh came in three-ring binders (I'm pretty much as old-school as a Mac developer gets) didn't have any significant problems then, and hasn't upgrading to Carbon today.

      Now, before people jump all over me about API limitations, yes I realize that there's a lot of places where jobs have to be done in a non-compatible fashion. That's holding me up Carbonizing right now because all four projects I'm responsible for at my day job do CD ripping and there's no OS X equivalent of DV 22 yet. But if you were smart enough to ISOLATE those portions of the code which you knew would eventually be a problem, replacing them was straightforward then and is straightforward now. Well, will be once I get the new APIs anyway, I imagine.

      So, to turn your question back ... guess you've never talked to any Mac OS developer with a CLUE, eh?

  4. The age-old confusion that Mac people make by Sneakums · · Score: 2
    Apple succeeded in making Mac OS a best-of-breed operating system for personal computers: Mac OS has set the standards against which modern graphical user interfaces are now modeled.

    Not a good start to the article. The operating system that Apple developed is poor at best; a single application crash almost always brings down the machine.

    The interface, on the other hand, feels solid and reliable; serious thought went into every part of it.

    Nice GUI, shame about the OS.

    --
    "Where, where is the town? Now, it's nothing but flowers!"

    1. Re:The age-old confusion that Mac people make by Sneakums · · Score: 2

      The first sentence I quoted, which you omitted in order to support your flawed retort, states:

      Apple succeeded in making Mac OS a best-of-breed operating system for personal computers

      Now, operating system means operating system. If he meant GUI, he should have said GUI.

      --
      "Where, where is the town? Now, it's nothing but flowers!"

    2. Re:The age-old confusion that Mac people make by vsync64 · · Score: 2
      Also, Mac OS 9.0.4 is significantly more stable than previous versions. It's probably the most stable Mac OS version out there, greatly exceeding Windows, despite Windows' "protected memory," (or lack thereof.)

      I'd say that speaks more to the quality of software available for MacOS than anything else. If the OS is less protective, that means programmers have to be a little more careful with their pointers. Contrast that with Windows, where even with its better memory management (which is highly questionable), commercially available software crashes it on a regular basis, or slows the system down to a crawl.

      Application programmers are just lazy now, is all.

      --
      TO BUY A NEW CAR WOULD MAKE YOU SEXUALLY ATTRACTIVE.
    3. Re:The age-old confusion that Mac people make by Sneakums · · Score: 4
      Application programmers are just lazy now, is all.

      A facetious statement at best. Application programmers have to rely on large bodies of code over which they have little or no control, e.g. MFC and other class libraries/frameworks.

      And to say that a poor OS encourages good application engineering is silly, to say the least. An OS with memory protection, such as Windows NT, Unix or Mac OS X, makes it much more practical and efficient to debug applictions suffering from stray pointers, etc.

      --
      "Where, where is the town? Now, it's nothing but flowers!"

    4. Re:The age-old confusion that Mac people make by vsync64 · · Score: 2
      And to say that a poor OS encourages good application engineering is silly, to say the least. An OS with memory protection, such as Windows NT, Unix or Mac OS X, makes it much more practical and efficient to debug applictions suffering from stray pointers, etc.

      I wasn't making any such claim, because it would be silly. A friend of mine used to code on Macs, and I've worked with Windows quite a bit. I absolutely despise both systems for their pathetic attempts at multitasking and memory management.

      My point was that even with MacOS, a poorer operating system than Windows in that arena, there is a higher quality user experience (from when I've used 'em, anyway). That would imply apps on MacOS are better behaved.

      --
      TO BUY A NEW CAR WOULD MAKE YOU SEXUALLY ATTRACTIVE.
    5. Re:The age-old confusion that Mac people make by Raven667 · · Score: 2

      It would probably read more correctly if he had said "Mac OS is a best-of-breed desktop environment for personal computers". Obviously the core kernel of MacOS is utter crap, that's why they are moving to Mach/BSD, to bring the OS kernel into the 90's.

      --
      -- Remember: Wherever you go, there you are!
    6. Re:The age-old confusion that Mac people make by gutter · · Score: 2

      > Even the users that would rather not know about the internals of the system will encounter it sometimes.

      I agree with this. Fortunately, current versions of the MacOS aren't as bad as people make it out to be.

      > So they were right to focus on marketing instead of programming?

      Now that's just stupid, and not what he said at all. Focusing on the user dosn't have anything to do with marketing. Why do you think mac users are so loyal, because we like the commercials? No. It's because the MacOS is the only OS I've ever used that feels like it was designed with the user's needs in mind.

      For an example of user-focused design, take a look at directory layout. If you are designing a system for use by non-techies, you want it to be obvious where files go, and what they are for. You have a 'System Folder' where all the system files go, and not /etc, /dev, /var, and so on. There is no reason you couldn't have a /system, and put all those things in there, but Linux/Unix isn't designed from the user point of view.

      That's what people around here don't understand - a good easy to use GUI takes a lot more than a pretty window manager and a nice file manager. It has to go much deeper than that.

      --
      Check out DRM-free movies at http://www.bside.com
    7. Re:The age-old confusion that Mac people make by Darchmare · · Score: 2

      If the net result is that it's safer on the road, and fewer people die, then wouldn't it stand that it's a Good Thing?

      Frankly, for Apple's intended market, far more time is gained in having a halfway usable GUI than in the occasional crash takes away.

      Your argument seems to be based on some theoretical idea of perfection ("An OS should never crash! Ever!") rather than practicality ("If the OS occasionally crashes, but I'm much more productive on it, then I would rather use it instead."). You can't get over this perceived flaw that, apparently, isn't hurting the average person.

      [not to say that stability isn't important, or that the MacOS could use some work in that regard - but it just seems that stability is your only criteria for judging the OS, when Apple's market has a much different idea in what they want.]


      - Jeff A. Campbell
      - VelociNews (http://www.velocinews.com)

      --

      - Jeff
    8. Re:The age-old confusion that Mac people make by Darchmare · · Score: 2

      So, let me get this straight - you're basing the perceived merits or lack thereof of an OS on the work of a single 3rd party application by a single company?

      And this company is, of all people, Netscape?



      - Jeff A. Campbell
      - VelociNews (http://www.velocinews.com)

      --

      - Jeff
    9. Re:The age-old confusion that Mac people make by Darchmare · · Score: 2

      Hrm, okay. Just checking.



      - Jeff A. Campbell
      - VelociNews (http://www.velocinews.com)

      --

      - Jeff
  5. Not the best of impressions... by carlfish · · Score: 4

    My greatest impression from reading the paper was one of a schizophrenic system. The differences between the two systems that form the basis for OSX seemed not to have been resolved, instead they were patched over with an additional layer of complexity, and a great deal of hope applied that the two different OS's at the core wouldn't misbehave and contradict each other.

    Usually, this is the sort of thing that makes software developers run screaming down to the pub.

    Charles Miler
    --

    --
    The more I learn about the Internet, the more amazed I am that it works at all.
    1. Re:Not the best of impressions... by vsync64 · · Score: 2
      Usually, this is the sort of thing that makes software developers run screaming down to the pub.

      Really? It actually seemed like a pretty decent job to me, especially in the area of where to draw the line between the 2 environments. Like, MacOS programs won't delete a file that's in use, but BSD can. Which is all well and good, because if you crack open a terminal window and start rm-ing stuff, you had darn well better know what you're doing!

      Heh... I remember some guy's review of MacOS X. He complained that if he did "cd directory-of-dock; ln -s ~/* .", the dock slowed down and became hard to see. (This with like 2000 files in that directory.) It was pretty funny, assuming he was joking. Well, it was pretty funny period; if he wasn't kidding, it was just funny in a different, more pathetic way. =)

      --
      TO BUY A NEW CAR WOULD MAKE YOU SEXUALLY ATTRACTIVE.
    2. Re:Not the best of impressions... by cowscows · · Score: 3
      Well, it is to a degree, two fairly different systems cobbled together. This was mostly done in the name of backwards compatability though, to keep all the older mac software running happily. That's what Carbon is all about. Apple is hoping that developers will write all their new stuff for Cocoa, which isn't just a combination of the two OS', but rather an evolution that takes parts from both, as well as some new and improved stuff. Writing for it won't be making a program that'll run under both MacOS and BSD, but one that'll run under OS X.

      There aren't really two operating systems at the core, the core is basically unix. All the complexity is abstracting unix so that the older MacOS standards can make sense out of it. As long as developers can shake those old MacOS standards, and write for the OSX standards, they'll do fine.

      --

      One time I threw a brick at a duck.

    3. Re:Not the best of impressions... by Detritus · · Score: 2

      Why should he write his application for Cocoa? Mac OS X hasn't been released yet and it will be quite a while before it becomes the dominant OS on the Mac. If he writes it for Carbon, it will work on current and future Mac systems.

      --
      Mea navis aericumbens anguillis abundat
  6. File MetaData by wowbagger · · Score: 4
    One of the things that I've seen being discussed in the Kernel development threads is adding metadata support to Linux. This would allow for "resource forks", "file types", "file icons" and all sorts of other stuff that actually would be useful. Many of the problems described in the article were also brought up in the kernel thread: how do we cp/mv/tar the whole file (metadata and all) but allow open() to just get the "data fork".


    The interesting question is: should the day come that Linux implements metadata, could/would the Apple team merge the same Unix API into the BSD layer of OS-X?

    1. Re:File MetaData by plsuh · · Score: 2

      The interesting question is: should the day come that Linux implements metadata, could/would the Apple team merge the same Unix API into the BSD layer of OS-X?

      This is an excellent thought, but, I think the opposite should be considered -- Apple (building on the work done at NeXT) has come up with a design for application resource packaging that has been tested and tweaked through several generations at this point. Can the Linux team overcome its own "NIH" issues and look at adopting this as an api for Linux apps? Ditto the *BSD teams. Certainly the GNUStep teams are looking into this, but I think the core teams need to be looking into it as well.

      As a WebObejcts developer, I can attest to the fact that having such a single app bundle structure can make your life a lot easier. For instance, when you go to deploy a large app on a server, some security regimes require that the actual servers should not have development tools such as a compiler available on them (to make life more difficult for crackers). As a result, you need to do your build on a staging machine and then copy over all of the bits and pieces to the production machine. This process is much easier if all you need to do is tar up one or two directories, ftp them over, and then untar them, rather than digging through the various places where stuff could end up and ftp'ing them over one by one, and trying to make sure you got them all, because there's a lot of stuff in the /usr/share tree of your develoment machine.

      For more info, look at the Mac OS X System Overview, on page 71, where the bundle format is specified. There's a lot more to it than just the format of the directory structure; there's also default search paths, versioning (for frameworks), and more.

      Just so you know, I'm a Consulting Engineer with Apple iServices, but the opinons here are my own, not Apple's.


      --Paul
    2. Re:File MetaData by spitzak · · Score: 2
      I hope Linux/Unix never does this.

      When you open the file you should be able to read all the data. It is a lot easier for any program that open()'s a file to just skip the "metadata" if it only wants the "data". The Mac system makes it impossible to make simple programs that copy files and also provided a fertile breeding ground for viruses.

      What is needed is perhaps "meta directories" which are directories that look like regular files to most programs, but if you open a subfile by name in them you get that subfile: ie you can open "foo" and read data, or you can open "foo/bar" and get a subsctream of data. The parent data would be the entire contents of all subdirectories, so that a brain-dead "cp" would reproduce the entire tree somewhere else.

      This would not conflict with anything (because you have been unable to read() a directory in any modern Unix) and would be incredibly useful.

    3. Re:File MetaData by wowbagger · · Score: 2

      The Mac system makes it impossible to make simple programs that copy files and also provided a fertile breeding ground for viruses.
      Please explain to me how metadata provided a breeding ground for viruses. I guess I don't see this.

      As for the "metadirectory" approach - that was actually discussed. You might go look at the archives and read the discussion: many of your concerns were discussed there.

    4. Re:File MetaData by wowbagger · · Score: 2

      Apple (building on the work done at NeXT) has come up with a design for application resource packaging that has been tested and tweaked through several generations at this point. Can the Linux team overcome its own "NIH" issues and look at adopting this as an api for Linux apps? Ditto the *BSD teams. Certainly the GNUStep teams are looking into this, but I think the core teams need to be looking into it as well.
      I didn't mean to imply that Linux should come up with it's own solution and Apple should then be forced to use it. However, Apple is coming at this with a very focused perspective: make old Mac programs work alongside Unix-like programs. The Linux kernel team were discussing it in a more general manner: metadata good, how do we implement it? It's possible that Apple might make choices that are more optimal within the limited problem space Apple is trying to solve that are suboptimal in the larger problem space. In that case, I'd want the more globally optimal solutions.

      Obviously, if Apple comes up with a globally (near-)optimal solution (and doesn't immediately lock it up with patents), then everybody else (Linux, *BSD, even Microsoft) should be man enough to join in.

    5. Re:File MetaData by Detritus · · Score: 3
      OS/2 supports metadata in the form of extended attributes. NT tried to get rid of extended attributes but added stream support to files in the NTFS file system, although I'm not aware of any programs or operating system functions that use them.

      OS/2 solved the problem of copying a file with metadata by providing an API function (DosCopy) to copy files.

      --
      Mea navis aericumbens anguillis abundat
  7. Re:The real problem as far as "plain users" care by vsync64 · · Score: 2
    (Though I've only gotten as far as reading about the integration of the filesystems. That's one of my few complaints about Java, using the file_seperator token is just plain annoying/tedious, though it looks like that won't be an issue for working with this system, but I haven't finished reading yet.)

    That actually seems like it'll be their biggest problem. The paper states that MacOS X will translate slashes in Mac filenames into colons when read from BSD. Um, the colon is like the universal token separator under UNIX. (Paths, passwd, etc).

    A similar problem occurs where I work. The directory naming convention for packages is packagename,vX.X. Unfortunately, some programs use a comma as the separator, and you can figure out what happens.

    Personally, I never get hurt by this, because I use the intersection of available characters from all OSes in my filenames. That means things like colons, slashes, commas, and usually spaces (just for easy shell access) are always out.

    --
    TO BUY A NEW CAR WOULD MAKE YOU SEXUALLY ATTRACTIVE.
  8. Re:Warning: article contains bad grammar by Sneakums · · Score: 2

    "More subtle" is perfecly valid English. The construction works better for some words than other; it's fine in this case.

    --
    "Where, where is the town? Now, it's nothing but flowers!"

  9. Re:The real problem as far as "plain users" care by vsync64 · · Score: 2
    Actually, the paper is the other way around. The originally-MacOS-based HFS+ filesystem uses colons as its path seperator (Mac HD:Application:Simpletext), while UNIX uses slashes (/bin/echo).

    I said "filenames", not "pathnames". MacOS will let you have a file called "baz:foo/bar" ("foo/bar" in the "baz" directory). BSD programs will see it as "baz/foo:bar". Now, try accessing that file in a colon-delimited environment, like your password file. Or your path.

    --
    TO BUY A NEW CAR WOULD MAKE YOU SEXUALLY ATTRACTIVE.
  10. Re:quicktime for *nix by gwernol · · Score: 2

    Since the core of the OS X is unix. Does this mean that quicktime will be ported to other *nix systems?(i.e. linux)

    No. QuickTime runs on top of the Carbon API layer on Mac OS X. The Carbon layer is effectively the previous Mac OS 9 API and libraries running on top of the Mac OS X BSD and Quartz layers. Moving QuickTime from Carbon/Quartz to another UNIX is no easier than moving it from Mac OS 9 to another UNIX.

    If you ported Carbon and Quartz from Mac OS X to (say) Linux, then you could relatively easily move QuickTime over to Linux, but that would be a massive effort and isn't going to happen any time soon.

    --
    Sailing over the event horizon
  11. Re:quicktime for *nix by vsync64 · · Score: 2
    Since the core of the OS X is unix. Does this mean that quicktime will be ported to other *nix systems?(i.e. linux)

    People keep asking this, and the answer is probably not. The BSD layer is in the middle, underneath all the GUI stuff. Anything graphical is written using Apple's proprietary APIs.

    I can imagine, though, that if you're running on PPC, something like Wine might work out. And of course, you can run MacOS under Linux/PPC right now with Mac-on-Linux. (Hey, anyone know if MacOS X will work under that?)

    --
    TO BUY A NEW CAR WOULD MAKE YOU SEXUALLY ATTRACTIVE.
  12. My Own Complaints about MacOS by goingware · · Score: 2
    When I decided to stop being a MacOS developer and become a BeOS developer, I wrote I'm Worried about My Future. That's Why I'm a Be Developer.

    Sad to say, I've had similar experiences with Be, Inc.'s treatment of developers. While I feel that the BeOS is a technically superior operating system for desktop machines, I think the only sensible route for a small third-party developer is to develop for an operating system which is GPL'ed.

    Mike

    Tilting at Windmills for a Better Tomorrow

    --
    -- Could you use my software consulting serv
  13. ALBODs by roystgnr · · Score: 2

    One of the things that I've seen being discussed in the Kernel development threads is adding metadata support to Linux.

    The nicest idea I've seen is Application Logical Bundles of Data (ALBODs), which look like a tarball if you open(), stat(), etc. them, and look like a directory if you opendir(), readdir(), etc with them. Check out Treating Multiple Files as One for Kernel Traffic's summary of the linux-kernel discussion last year on this topic.

    This would allow applications to do the kind of substorage that they need to efficiently; a word processor document may have jpegs, spreadsheet tables, etc. embedded into it; things that can be more efficiently stored and manipulated as a directory full of files than as a single file. However, people don't want to manage a directory for each document, they want to manage a file. So, only new applications (or wily users; imagine being able to copy the images out of a document with "cp my.doc/*.jpg ~") that know to expect an albod actually try treating it as a directory; old tools that try to treat it as a file just get a file, so "cp my.doc my2.doc" still works without changing cp.

    Unfortunately, this wouldn't let you add forks to normal files, and in fact adding forks to normal files seems impossible without breaking POSIX semantics and rewriting a bunch of old programs. You got it exactly right: "cp", "tar", "ftp", "apache", and a billion other programs act on files by simply doing an open() and read or mmap on the file. If we provide metadata at the end of that reading, then it gets copied correctly, but the program actually using the file probably breaks. If we don't provide metadata that way, then applications work unchanged, but we need to change all the applications that copy files around. And either way, what happens when you use FTP, scp, HTTP, etc to transfer your file around? Do you send the other end a tarball and leave it to the resource fork aware receiver to handle it ok? It'd be a mess.

  14. yes, but... by Ukab+the+Great · · Score: 5

    Mac OS is built like a tank in the areas that really count in the area of average user computing. A program can be installed at any time and that won't kill other, existing programs. Similarly, a program that is already installed will never preclude another program from being installed (like RPM does). And if you delete all the mac OS configuration files, programs can still run. How many times has someone installed one windows program and this has totally killed another working program? Or the registry got corrupted in one particular area and dragged other areas down with it? Or how many times has someone has tried installing a linux application, only to find out they have to screw around with environment variables to even get the program to start up. Mac OS doesn't have these problems, and in the Reality That Is The Average Joe Consumer Desktop(tm), crashing is far less of a concern than something not running at all or something screwing up the computer. A crash in this area of computing is an annoyance, something failing to work at all is completely unacceptable.

    Let's do a test. On a unix system, do rm -rf /etc, on windows delete the registry, and on MacOS, trash the preferences folder. Reboot and see which computer has the most functionality that an average computer user requires. Guarentee you it won't be the first two. Which is unfortunate since it would be great if linux and windows had the system/application integrity that consumer level usage requires. True, anyone geek enough could fix the first two computers, but keep in mind that most average joe computer users are not like us geeks.

    1. Re:yes, but... by Schnedt+McWapt · · Score: 2

      On a unix system, do rm -rf /etc, on windows delete the registry, and on MacOS, trash the preferences folder.

      Oh, puh-leese! First off, don't log on as Root. Go ahead and try to delete /etc. On NT, configure it so you don't run all the time with Administrator level priveledges. Try to delete the Registry.

      Yikes? There's no protection whatsoever like that on the Mac? You mean your 7 year old daughter can just go in there and waste the whole system without knowing it???

    2. Re:yes, but... by dtremit · · Score: 2
      Yikes? There's no protection whatsoever like that on the Mac? You mean your 7 year old daughter can just go in there and waste the whole system without knowing it???

      MacOS 9 has multi-user functionality which locks down the system folder, limits the applications a given user can use, etc. It's more functional in that respect than Win98. And Apple's had that confounded shell, At Ease, around for years. With a simplified, big button interface, it's great for your 7-year-old daughter.

      The real risk on any platform isn't the innocent 7-year-old; you can set up almost any OS to withstand their attack. It's the user who thinks he knows what he's doing, but doesn't, that's the real risk. If the person with the root/admin password doesn't know what he's doing--and this is the case with most home PCs--user protections are irrelevant.

      --
      "It is absurd to divide people into good or bad. People are either charming or tedious." --Oscar Wilde
    3. Re:yes, but... by Kaufmann · · Score: 2

      A program can be installed at any time and that won't kill other, existing programs.

      Tell that to Noteheads, Inc. Don't get me wrong, their Igor 1.0 Light is an excellent product by all other accounts: a musical expert system, written from head to toe in Common Lisp, which is just ridiculously full-featured: at 27 megs of RAM wastage, it's a classical composer's best friend. I've never seen a better composition program. And it's free (as in beer).

      However, its installer suffers from a chronic case of the Software Egocentrism Syndrome. For starters, it's non-modal: you can't switch to other programs while installing it. That's annoying enough.

      Even worse, however, is the fact that, when you done, a non-modal "notice" window pops up.

      It says "your computer must be restarted".

      It's only got one button: "Restart".

      "But I was in the middle of..."

      "Your computer must be restarted."

      "But I was chatting with..."

      "Your computer must be restarted."

      "Lord! Why hath thou forsaken me?!?"

      Ah well. Just my software installation pet peeve.

      --
      To the editors: your English is as bad as your Perl. Please go back to grade school.
    4. Re:yes, but... by tbo · · Score: 2

      That's not entirely true...

      >A program can be installed at any time and that won't kill other, existing programs.

      This doesn't apply to Microsoft products :-) Installing Internet Explorer 5, Outlook Express 5, and Outlook for Exchange in the wrong order will break one or more of those applications. Of course, Microsoft's sloppy practices with shared libraries are hardly Apple's fault. There are a few other programs where deleting the preferences hoses the app, but that's also because the programmers didn't do things the way they're supposed to.

      A lot of the Chewy Goodness of the Mac OS is actually due to programmers voluntarily following conventions Apple has set out (i.e., the Human Interface Guidelines). Apple deserves credit for thinking beyond the OS to the entire user experience.

      IMHO, the Mac GUI is simply the best thing out there (I haven't given BeOS a fair shot yet, though). What's behind the scenes in Mac OS 9 isn't nearly as nice. As a programmer, I hate how Mac memory management works. Handles might have been a good idea 16 years ago, but they sure suck now. All the pascal crap floating around in the OS is annoying, too. Of course, the user never sees any of that...

      OS X should be the best of both worlds. As for the case-sensitivity weirdness, there's a simple solution: if you want backwards compatibility with Mac OS 9, use HFS+. If you want a case-sensitive file system, use UFS. You can even mix and match to get everything you need.

    5. Re:yes, but... by Alex · · Score: 2

      However the posters original point is still valid, which operating system deals with loosing all of its configuration information best?

      Unix - trash /etc - your screwed, boot into single user mode and hope you have a recent backup, or copy another similar machines into place and then restore by hand.

      NT - trash the registry - I don't know I don't run NT, how well does it deal with this?

      MacOS - trash the preferences - All applications are restored to default settings, generally if you are having problems with a MacOS program or with the OS the best thing to do is to move individual preference files.

      Which one is best for Joe User? (which is who we are talking about here remember)

      With MacOS, at worst Joe is going to have to ring up his ISP's helpdesk and get them to run him through setting up his account again and resetting his password.

      With Unix he'd better have a friend who knows about linux - or he's going to have to rebuild the machine.

      With NT/98 I suspect it involves a rebuild, or at least some windows administration skills.

  15. Bill Gates' worst nightmare? by Black+Parrot · · Score: 2

    Wanna bet Bill Gates is losing sleep over the possibility of an essential merger between the Mac and Linux communities, based on a (presumably) evolving interoperability and transparent portability between the two?

    --

    --
    Sheesh, evil *and* a jerk. -- Jade
  16. MetaData is cool. by be-fan · · Score: 3

    Meta data is a seriously nifty concept if implemented correctly. BeOS has a similar (though much superior, read up on it) system called attributes. Not only does it allow for info such as icon to be stored within an attribute attached to the file, but it allows things like bookmarks to be implmented entirely as attributes. The cool thing about that is that since attributes are indexed by the file system, they are searchable database style! The contacts database is a set of files with attributes, and just by moving a file into a directory you get an instantly searchable database of contacts. Of course, it necessitates some additional stuff. open() can't read attributes (and it probably won't be able to read meta data, an alternate OS call would have to be implemented). Also, you'd have to switch to something like the .zip format because gzip and tar don't preserve attributes or metadata. If it can be done within the Linux architecture, I think it should. ReiserFS is getting database functionality eventually, and if you could connect the two, you could do some nifty tricks. (And isn't that what Linux is all about? :)

    --
    A deep unwavering belief is a sure sign you're missing something...
  17. Probably a better way to do this. by be-fan · · Score: 2

    I think the NT guys have the right idea on how to support backwards compatibility with two different OS architectures (don't laugh!) Microkernel OSs (like NT) use servers to provide system services to applications. In NeXT there is a BSD system server running on top of Mach. NT has POSIX, OS/2, DOS, and Win32 servers running on top of the NT kernel. What the MacOS X people should have done is have a BSD/Cocoa server along with a Carbon server running next to it. What they chose to do is layer it instead (Carbon / BSD /Mach). I have a bad feeling that comes more from the macrokernel approach of MacOS than any conscious design decision.

    --
    A deep unwavering belief is a sure sign you're missing something...
    1. Re:Probably a better way to do this. by be-fan · · Score: 2

      I'm sorry, but you're information is totally wrong. NT is a microkernel, it does messaging, and the OS/2, DOS and POSIX servers are actual servers. True, the Win32 server provides I/O support for the other servers and the microkernel runs drivers and other servers in kernel space, but they are still seperate servers and communicate by passing messages. Read BYTE circa 1993 to read about the introduction of WindowsNT. One issue in particular deals with microkernel OSs and covers WinNT, WorkplaceOS (the planned successor to OS/2), QNX, Chorus, and Taligent. One section in particular about "personalities" tells that NT uses servers to provide the OS/2, DOS, and POSIX personalities.

      --
      A deep unwavering belief is a sure sign you're missing something...
    2. Re:Probably a better way to do this. by be-fan · · Score: 2

      Of course, these issues would still exist, but the whole architecture is made cleaner through the server approach and is just easier to manage.

      --
      A deep unwavering belief is a sure sign you're missing something...
  18. Re:Warning: article contains bad grammar by jonnythan · · Score: 2

    I'm shocked by you, grammar nazi. Though you usually find a couple of the more egregrious grammar errors in documents and miss the more subtle ones, I find it amazing that you make so many in your posts.

    To be fair, my first nit to pick is style and not grammar: "imroper, non-American, and redundant grammar" is indeed redundant from your point of view ;). Additionally, according to my 20 volume OED (as well as dictionary.com), "Arian" refers to one born under the sign of Aries or relating to the Roman bishop Arius. Perhaps you were looking for "Aryan," which refers to the Nordic Caucasian gentiles of Nazism.

    I've seen various other grammar errors in your other posts, but have refrained from pointing any of them out to you. I suggest you pick up a copy of Sleeping Dogs Don't Lay : Practical Advice for the Grammatically Challenged or, preferably, Elements of Grammar. In any case, you can always email me for grammar tips; I proofread theses and papers for fun. To the morrow.

  19. Re:Windows 95, five years later. by jmegq · · Score: 2
    Am I the only one who thinks these design decisions seem awfully similar to what MS choose to do for backwards copatability with DOS?

    Quite possibly...

    We now, once again, has a filesystem which is sort of compatible but loses information

    You mean like Linux's support of the DOS filesystem? If I copy a Linux file to my DOS partition and back, I lose the permissions. With MacOS X, it's less radical than that; that only happens when someone uses the same physical volume on both MacOS 9 and MacOS X (which for most users will be exceedingly rare).

    (compare long file NAM~1s).

    That's not a good comparison; the NAM~1s creep up all over the Windows "experience", from FTP transfers and the like. Getting default permissions on a file instead of the real permissions? Bah, most users would hardly notice, especially if sensible defaults are used.

    We have "special" directories which the user "should" not look into.

    No, we have a UI that hides certain uncommmonly-user-manipulated directories from the user. Much like files beginning with a period in Unix. If you know they're there and want to muck with them, well, go ahead, but be sure you know what you're doing. Besides, the bsd-ish directories aren't hidden from MacOS X users in the shell window.

    We even have the very same double-root kludge: the underlying os (DOS/unix) expects one structure, and the user another, so we have a "real" root which users are not supposed to know about, and then the friendly /usr/lib/desktop, no doubt.

    MacOS X's structure is fairly elegant in this domain, please see the online docs at apple's website for a clue about how this is done.

    And programs are supposed to move to a "package" model for un/installation, like the "add/remove program" item in the Control Panel. I predict it will take five years for Apple, too, to get that trick to work.

    Well no, it's the "add/remove program" item and uninstaller type of nonsense that they're trying to get away from. Instead, they have all of an application's resources bundled up together in a single directory. This way, the user can do the intuitive thing: drag the Application from the installer disk onto their own disk, and it's installed. Drag it to the trash, and it's gone. No registry entries to clean up, no preferences folders or extensions or random little files laying around. One nice big handle to pick up a whole app by.

    This is not to say that the problem could have been solved much better (although I personally think they should have discarded much more of the Unix side of the system -- they have no obligation to be backwards-compatible there!).

    I think it's highly debatable whether Unix is something one is "backwards" compatible to, especially in this audience :) Going to a Unix-based OS is a very bold move, and rather than reinvinting the guts of a high performance scalable OS, they've chosen to adapt to one. With that decision comes the obligation to actually interoperate with said OS.

    But the net result is a less elegant system than any of the ingredients (MacOS, Unix, NeXt) that went into the brew. This makes MacOS X a much less interesting OS alternative for me.

    From what perspective is this less elegant? (and have you seen linux source code!?) It's far more elegant than letting these issues fall on the floor; instead the average user, and average developer, get a tightly integrated OS with some impressive functionality. Apple's been very good about smoothing technology transitions (e.g., x86->ppc), and this continues to be true.

    My $.02

  20. pragmatism and/or idealism by jonbrewer · · Score: 2

    This article goes a long way towards rebuilding my respect for Apple, which began to wither years ago when Copland never appeared.

    For a long time I really wanted Apple to come out with a new OS that would kick the pants off of System 7, and I could have cared less about backwards compatibility. I would have bought all new applications, converted my old data, and kissed the old Finder goodbye. I bet some developers at Apple would have liked to have started from scratch too.

    I'm glad they didn't, because they would have left a lot of people out in the cold.

    The fact that Apple is making HFS work with a unix filesystem shows that they care about thier customers. My grandfather has been a Mac user since he gave up his TRS-80 in 1988. He's published three books and dozens of papers on his two Macs. (his current a 7100 that still runs beautifully) I really think he is a poster Mac user. He is very intelligent, creative, and he has no interest at all in how his computer works - it's just a tool to him.

    Tell my grandfather that to use a new operating system he'd have to give up programs he's used for 10 years, and convert all his files for use in a new filesystem, and he'd tell you that his current Mac OS was just fine.

    While PC users (myself included) have been sucked into the complete hardware / software upgrade every 2.5 years cycle, the core constituency of Mac users hasn't - and asking them to change everything just wouldn't work.

    So please read the complaints about the mechanics of OSX in this discussion keeping in mind the balance between pragmatism and idealism Apple has kept.

    Idealism: Make a perfect OS
    Pragmatism: Make it backwards-compatible
    Idealism: Care about the customer enough to be pragmatic.

    :-)

    1. Re:pragmatism and/or idealism by Graymalkin · · Score: 2

      Many of Apple's customers are ones that have been customers for many years, there are plenty of these customers along with brand new ones that just want something to get on the internet. If you've been using Photoshop or Premiere for years on the Mac and knows all the ins and out and shortcuts to get things done quickly, why would you want to switch to a different OS? That is why people go from their trust 7100 and 9600's to the G4 Macs. They want to use the same software, they just want it to run a bit faster.

      --
      I'm a loner Dottie, a Rebel.
  21. My thoughts on file "resources" (icons, etc...) by Anonymous Coward · · Score: 2

    Of all the ways of dealing with file resources, I think only the Windows format has got it right. When I speak of resources here, I will limit my discussion to the icon for an executable file.

    In my opinion, whoever came up with "data" and "resource" forks in Mac OS was an idiot. What you have is a file that is effectively two files. This is fine as long as the files are only delat with on a Mac, but when you get into file servers or trying to FTP these files across the internet, all sorts of complications arise. The two files have to be somehow combined into one. This makes it really difficult to deal with Mac files on other OS'es, as the author explains.

    On Unix/Linux X applications there is, as far as I know, no way to imbed an icon in an execuatble file. If one is even included, it must come along as "icon.xbm" and be put into /usr/share/icons or somewhere. Personally, I have always hated this. I like programs to have a known icon associated with them. For one, it makes them easier to recognize when using other's systems.

    Windows, or the PE executable format, I believe, has it right. The icon (and other resources) are embedded in the file, and are shown as the default icon, even though they can be changed, if you so desire.

    I conclude that Unix/Linux needs either a new executable format that will allow for standardized resource embedding, or an addition to the existing executable format (whose name I forget) to allow this.

    I'd like to hear other's opinions on this. I think this is one thing that would help make Linux a better desktop OS.

    1. Re:My thoughts on file "resources" (icons, etc...) by Snocone · · Score: 2

      In my opinion, whoever came up with "data" and "resource" forks in Mac OS was an idiot.

      That's because you misunderstand the problem space of the original Macintosh design. The Resource Manager was a rather elegant way to gain most of the benefits of virtual memory with no physical resource cost and a reasonably minimal runtime overhead. On a single 400k floppy 8 MHz 68000 with 22K of usuable RAM, coming up with the Resource Manager was not idiotic. Perhaps not an act of utter genius, but somewhat clever at the very least, I would think.

      I conclude that Unix/Linux needs either a new executable format that will allow for standardized resource embedding...

      That's a great idea! We call them "Packages" in OS X. Help yourself to the design. We don't mind, really.

  22. OT: yer sig by levendis · · Score: 2

    gratuitous talking heads reference?

    --
    ---- I made the Kessel Run in under 11 parsecs.
  23. Re:integrating win9x with unix? by Graymalkin · · Score: 2

    Do you have the faintest clue why it is not feasible to port Mac OS over to x86 hardware? If you can put Unix and user friendly on the same box then you're going to rush boxes out the door. The problem here is that Apple produces their software and hardware and therefore don't need to worry much about third party driver support with their hardware. When you port OS X over to Intel hardware you're got people wanting to stick it on their 400$ chump change PC with parts that have absolutely no drivers for the new OS. If you've ever tried getting X to work on a POS cheap PC you're really out of luck. Since hardware vendors are reluctant to spend the money to produce Linux drivers, why the fuck would they produce OS X drivers? I don't think GNU Beta home brew drivers are going to fly with the ease of use crowd.

    --
    I'm a loner Dottie, a Rebel.
  24. Re:u~soft knows zip of ultitasking/threading/corin by Graymalkin · · Score: 2

    The problem with Win95 and 98 was that they run apps in a virtual machine; there is an 8, 16, and 32 bit VM that is launched when an 8, 16, or 32 bit program is launched. DOS apps are each run in their own separate VM which means they won't kill other DOS apps (usually). The main stability problem is in the 16 bit arena. All 16 bit processes are run in one large memory space and cooperativly multi-tasked. This means a fault is one 16 bit app (library, extension, ect) will take out all of the 16 bit apps. Things arent really run in a layered fashion, 16 bit resources are just managed in one big heap on top of the process scheduler which make it seem like you're working through layers. Unix also has a process scheduler which does the same thing as the one in Windows, it is the basis of multi-tasking and premptive multitasking. The ability ro run KDE apps in GNOME has nothing at all to do with the system's scheduling and process handling, it has to do with the libraries that are available. As long as a program can access the libraries it needs it can run since both GNOME and KDE are running on top of X.

    --
    I'm a loner Dottie, a Rebel.
  25. not necessary by mattc · · Score: 2

    Have you heard of the 'file' command? It isn't perfect, but it works most of the time.

  26. Namespace problems by Lemmy+Caution · · Score: 2
    I use similar configs. My problem is what to call my hybrid beasties:

    WindeX?

    U-knows?

    I thik maybe I should call it maybe the McGuyver Operating Environment. (MOE.)

  27. Problem with hard links?! by harmonica · · Score: 2

    I didn't understand why they cannot integrate hard links, the author only seems to explain the consequences, not the reason for it. Anyone care to explain?!

  28. Server operating systems on laptops by daviddennis · · Score: 2

    A lot of people, including me, have notebooks as their primary computing platform. I run Linux on an IBM ThinkPad 770Z and it works great as a development platform for my server-based applications.

    So I agree with the original complainers - it would be a bummer for the OS not to work on PowerBooks.

    D

    ----

  29. Re:u~soft knows zip of ultitasking/threading/corin by scrytch · · Score: 2

    There is no 8 or 32 bit virtual machine. I don't know where you get your info. DOS has *never* been 8 bit. Its main selling point when it was released was that it was 16 bit and CP/M was not.

    --
    I've finally had it: until slashdot gets article moderation, I am not coming back.