Slashdot Mirror


Mac OS Mach/BSD Kernel Inseparable

Anonymous Coward writes: "One of the more significant statements of the session [at Apple's WorldWide Developer's Conference] came when Magee told the audience that the Mach kernel and the BSD layer which lays upon it are inseparable. "Every application [that runs in Mac OS X] is a BSD application," said Magee. "You can't keep the system running without the Mach kernel and the BSD layer." This quashes the public rumour that Apple will be able to ship a "lite" version of Mac OS X which will contain only the smallest possible bit of BSD, or another that questions Apple reluctance to move its tools to Linux."

23 of 181 comments (clear)

  1. Remember... by Darchmare · · Score: 4

    Remember, just because MacOS is a completely BSD-based system, doesn't mean you'll be able to tell it. Apple has stated that the Terminal won't ship with the OS, and you won't be finding very many Unixisms.

    Of course, the first thing some of us will be doing is installing a terminal and maybe a few other things, and we'll have all the gooey Unixness that we need. But really, Apple has no interest in scaring off their core markets...

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

    --

    - Jeff
    1. Re:Remember... by the+eric+conspiracy · · Score: 3

      Apple has stated that the Terminal won't ship with the OS, and you won't be finding very many Unixisms.

      Latest I have heard is that Terminal won't be part of the standard install, but it will ship on the System software CD as an optional component.

    2. Re:Remember... by John+Carmack · · Score: 5

      I specifically asked Steve Jobs about this last time I talked with him (several months ago), and he said that terminal won't be hidden away.

      Not that he isn't allowed to change his mind about things...

      I was pushing for including at least the command line compile/link tools with every install, but NeXT had an established history of having the development tools all on a separate CD, so it doesn't look like that is going to happen.

      John Carmack

  2. It will be assimulated by Pengo · · Score: 4


    How long will it take before the gui interfaces, easy administration.. etc, is completely ripped off and used as a template of solid user interface design for unix. In something like kde/gnome/icewm .. whatever they have a great design and are technically there, but are lacking (IMHO) a bit in the ease of use dept. I believe that we are going to learn a LOT about how to do a simple interface and design on top of a unix core. (Though, I thought the same thing about BeOS.. (I know it's not Unix.. but unix-like).. and we haven't really taken much off of it)

    I just purchased a G4 for one of our graphics designers at my work and I must say .. it's fast. She is pleased with it's performance.. but it's still got OS/9.. which (IMHO) multi-tasks like Windows 3.11. Very sad.

    Anyways.. I hope that OS/X kicks some ass in the industry.. I hope that we can learn a lot from it. If it is everything that I hope it is.. (hehe).. I will probably be replacing my computer. BTW, does anyone know if this will spark more interest from the Adobe group to start portin their applications to Linux? (Should be easier with a BSD/Mach port already done...)

  3. Re:system administration by friedo · · Score: 3

    There will be very intuitive graphical interfaces to all the network services and other configuration things; rumor has it that they've also standardized all the config files into XML, which you can also edit by hand.

  4. Re:system administration -- NetInfo! by gerti · · Score: 3
    MacOS X uses NetInfo and associated tools (commandline as well as gui-tools are available) to configure just about anything.

    There's also a gui Preferences application to configure things like monitor settings, date and time, apps to start at login, etcetera.

    More information about Netinfo is available here:

    http://til.info.apple.com/tech info.nsf/artnum/n60038

  5. Re:BSD = short trip to linux by Vanders · · Score: 3

    Probably less trivial than you think.

    MacOS X has extra layers that many apps use/will use, such as Carbon, and the other Apple specific API's that they've included. You won't find these on anything but a MacOS X box. Don't think that Apple will make these API's & libraries available to BSD developers either. Without these libraries, the MacOS X programs arn't going to compile on your *BSD box.

    Doing it the other way & compiling BSD tools on MacOS X would be a trivial task though, with a suitable shell & compiler installed.

  6. What GNU/Linux can learn from OS/X by mfterman · · Score: 5

    The thing that GNU/Linux can learn is a cleaned up and unified configuration system. To my mind the area where GNU/Linux really needs to clean things up is over in /etc (and maybe /dev and /var and a few of the other utilitarian filesystems). Create a unified, consistant and extendable XML setup for system, application and user configuration files.

    The main advantage here is that it allows for the creation of universal configuration tools that don't have to be recoded every time a new application comes out. Just plop in a new XML file (and possibly a DTD) and all of a sudden you've got a whole new application to manipulate easily. Not to mention developers have a nice little API for creating and managing configurations that allows system defaults and user overrides of said defaults transparently.

    Little things like file bundles should be included in this restructuring as well. There are some nice nifty little bits in Mac OS/X. Apple really cleaned up some of the nastier bits of Unix when they tossed out historical precedents. Not that I totally agree with all of their decisions, but a lot of Unix simply evolved rather than was desgined coherently. It's time those parts were cleaned up. A lot of the usability issues with Unix are going to be stalled until they are.

    Note that this does not mean babyfying Linux in any way. The thing with file bundles is you can open them up if you want granularity. Going to XML for all the configuration files in /etc (as well as pulling in configuration files from elsewhere and giving them structure) is there to make things consistant. If anything it will be easier for those writing administration scripts to work if said configuration files are standardized and organized. Quite the opposite.

    I'm using GNU/Linux here because some things are handled at the kernel level but a large chunk of it is in the GNU tools that are traditionally bundled with Linux. Both need some modification here to come up with a coherent and unified system.

    Migration is going to be a nightmare (remember glibc?) however once migration is done things can really start to move forward in terms of usability. The GNOME/KDE people would love to be able to set up pretty GUI-based configuration tools to manage everything, and the Perl/Python people would be in heaven because they could write real libraries to manipulate those things (not to mention all the people who use those libraries).

    Backwards compatibility is all fine and well, but we all know of how backwards compatibility can drag back progress in the computing world. This is one of those cases where things have reached the point that areas need to be scrapped and rebuilt in the name of future progress.

  7. Re:system administration by i,+Mac · · Score: 4

    While that may be true for many Mac users, I think you'll find those of us who have been working on them for as many years as you have been working on a PC are as competent on our OS as any Linux guru is on Linux.

    Having been using a Mac for 10-12 (I stopped counting after 7) years, when I decided to build myself a PC and install Linux on it, want to know what the only problem I had was? Didn't seat the RAM correctly so the computer beeped when I turned it on.

    If you want to talk about some Mac users, fine. But don't slight all of us because there are quite a few gurus.

    Now, if you're talking about Mac users coming to Windows or Linux, geez! Windows is nowhere near as intuitive or consistent as a Mac, and it does take people some time to get up to speed.

    As for Linux, there's a definite learning curve. If you don't believe that, you're deluded. But I'm a Mac user, and GEE, I figured it out. I'm posting this from Linux.

    Go back to your AC hole or limit your statement to the _subset_ of Mac users who are thick fuckers. And compare the size of that subset to the _subset_ of Windows users who are thick fuckers.

    And finally, recognize that when it comes to Linux, most all of us were thick fuckers when we started; the difference between us is how long it took to understand it all.

  8. Re:system administration by the+eric+conspiracy · · Score: 3

    rumor has it that they've also standardized all the config files into XML, which you can also edit by hand.

    I don't think this is a rumor - I have seen this mentioned in Apple developer docs.

    XML has got to be the best config file format; other text formats have problems with being parsed after you hand edit them; this should not.

  9. Re:system administration by Darchmare · · Score: 4

    Let me guess, you think it's a good thing if people had to spend 10 minutes poking under the hood messing with stuff just to start their cars, right?

    Some people are more interested in getting work done than fucking around with machines that should be there to serve them instead. I personally have no problem screwing around with the innards of my OS, writing shell scripts, and so on. But should my mom be forced to? I certainly don't think so.

    To call people names simply because they want to get work done - the original intent of computing technology - rather than make it a hobby is pretty arrogant.

    (And yes, I've worked tech support in the past and have had a lot of laughs ... But the people I supported, albeit without any real computing knowledge, were some of the smartest people I've ever known. Lack of computing knowledge has no bearing on someone's intellegence or lack thereof.)

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

    --

    - Jeff
  10. Re:BSD = short trip to linux (via GNUStep) by Carl · · Score: 3

    You are right that the modern version of the classic MacOS libraries (Carbon) libraries won't be available (yet?) on GNU/Linux. But don't forget that the new Cocoa library is just a modern variant of the NextStep/OpenStep libraries that are already available as GNUStep that is under active development.

  11. Interesting experiment by FascDot+Killed+My+Pr · · Score: 4

    This is not flamebait or a troll, but it is somewhat unkind to (current) Macs and other popular views. Deal with it.

    Up until now MacOS has had a good GUI only. The OS itself hasn't been very powerful. On the other hand, the various Unices have been the exact opposite. Windows has been a (not-so-)happy medium.

    So what happens when you put a good GUI on top of a good core? The obvious answer is: You take over the world. But what if you don't? That is, what if the real power of Unix is the combination of power AND the know-how of the people who took the time to learn it?

    If this happens, will we finally see an end to the countless "GUI for Linux" projects (not to mention advocates)? Or will these people never admit that a computer isn't like a car? (Cars provide a linear service--travel. Computers provide a non-linear service--emulation of any machine [in the mathematical sense]).

    If we look around at the non-computing world, do we see any simple AND powerful products in the hands of Average Joe? (A CD player is more advanced than a record player--but is it more powerful?) I can't think of any...

    I think the reason for this is clear: Powerful devices require thought. Simple devices are designed to not require thought. These goals don't mesh very well.

    Understand, though, I'm not saying "any GUI is a bad GUI" and I'm not saying "you can't get better than [cli|X|whatever]". I AM saying "Beyond a certain point, GUIs enter a region of tradeoff between power and simplicity. What is that point and how will we know when we've reached it?"
    --
    Have Exchange users? Want to run Linux? Can't afford OpenMail?

    --
    Linux MAPI Server!
    http://www.openone.com/software/MailOne/
    (Exchange Migration HOWTO coming soon)
    1. Re:Interesting experiment by Graymalkin · · Score: 4

      What kind of power are you talking about that a Unix with a GUI lacks? A GUI is nothing more than a graphical way of communicating with your computer. The OS itself has almost no power, it's job is to provide applications with resources to compute what they need to compute. The real work gets done on the applications and the ability of the OS to keep those applications running. The OS is the road while the applications are the cars that get your ass from point A to point B. There is no reason that the road should have no signs telling you where you're going or be a stetch of dirt just because some people don't want a smooth ride. These kind of Unix arguments make me think of the "..when I was a lad we didn't have..." stories. I'm tired of hearing them. Unix like anything else has to evolve to fit a new set of needs. OSX is designed to let people work graphically. Letting people do that does not take away from the "power" of the machine. The point of the computer is to have its processor used to its fullest extent. What good would a grand new G4 do me if I were typing up docs in emacs or pico?

      --
      I'm a loner Dottie, a Rebel.
  12. Re:Nothing really new here by orabidoo · · Score: 3

    well, if x86 users have made WINE to run Windows apps under Linux, nothing's preventing Linux on Mac users to write a MacOS X compatibility layer...

  13. Yawn. No MacOSX anything, on anything but MacOSX by ironduke-particle · · Score: 4

    To recap: the underlying MacOSX operating system is Mach 4.4, which is bsd based, and (believe it or not) does *not* use the Mach microkernel. Ask Avie Tevanian if you have to. Mach ideas, microkernel ideas, but not the Mach microkernel.

    This operating system has clever copy-on-write VM features and other things that mean that on some tasks it is severely performant.

    The Darwin project is distinct from MacOSX.

    To the best of my knowledge, Apple have never had any plans to ship their "tools", whatever they may be, on any but a few platforms -- MacOSX, and Win32 with some compatibility stuff running. The Win32 products appear now to be destined to become only a development platform for WebObjects. WebObjects deployment code, as distinct from the WebObjects or MacOSX developer tools, appears to be going highly-crossplatform with the pre-announcement of a pure-Java-only WebObjects5; but this has nothing to do with MacOSX.

    Apple appears to remain committed to opensource development of Darwin, and the bsd-layer CLI stuff which will be common to MacOSX will presumably be opensource and kernel-independent.

    Terminal.app will almost certainly ship with MacOSX; but probably as an optional administration package. Apple remains committed to a MacOSX in which the user need never see a command line unless they want to.

  14. Re:system administration by Darchmare · · Score: 4

    ---
    No. But by the same token, those people who want to screw around with the innards should not be prevented from doing so.
    ---

    Of course not. And there have been plenty of Mac users who have screwed up their machines in the process of learning the voodoo that is ResEdit.

    But in the end, there are different operating systems for different people. Some are better for those who don't want to poke around (MacOS), and some are better for those who do (Unix/Linux).

    That's why MacOS X should be so interesting - can Apple pull off both, making an OS simultaneously intuitive and usable for the masses, while still giving tons of power to those who want to customize their experience? Maybe, it's hard to say. I have used recent developmental versions of OSX and yep, the shell and everything it entails is still there if you want it.

    I have some issues with the new UI (Dock sucks, lack of Apple menu, etc) but it has some time for improvement. I can imagine Unix/BSD types swarming over it and making a pretty good high-end user environment, though...

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

    --

    - Jeff
  15. Re:I don't get it by Read+The+Fine+Manual · · Score: 5
    I am speculating here, but my guess is that MacOS X's kernel is a descendant (at least in spirit) of the old NeXT OS (NeXTStep?) which was a Mach-2.5-based BSD system. When Apple bought NeXT, they probably decided to use NeXT's existing OS technology and talent to build their own new OS; I guess that is about the only reason why Darwin (the BSD OS core MacOS X uses) today is Mach-based.

    So why did NeXT use Mach in the first place? I'm speculating again. I guess they started out from OSF/1, and the OSF/1 developers had your goals (a) and (b) in mind.

    Remember: The Open Software Foundation (OSF, now a merged with the Open Group) was a group of vendors that wanted to develop an Unix platform independent from then-AT&T's UNIX. OSF/1 was to be their kernel. DEC used it to build DEC OSF/1 (now Compaq Tru64 UNIX or whatever it is called this week), and I guess that NeXT took it to build NeXTStep.

    The first version of OSF/1 (the one out of which vendors made successful products) was a BSD single server on top of Mach 2.5. At the time it was developed, it was not yet well established that Mach-based systems are slow. In fact, the Mach-2.5-based OSF/1 probably was not that slow: Mach 2.5 had considerably less bloat than Mach 3.0, and it was not really a microkernel-based system as it was closely integrated with a BSD kernel - that is, the microkernel and the BSD server shared the kernel address space (this is sometimes called ``colocation''; the OSF recently rediscovered this technique to speed up MkLinux on top of Mach 3.0). Only with the advent of Mach 3.0, the first ``real'' microkernel, people started to notice that there is something wrong with Mach's original approach.

    That said, it does not necessarily follow that microkernel-based system, or even Mach-based systems in particular, need to be slow. I do microkernel-related research myself, and my group has shown with L4Linux that a Unix single server can be implemented with very reasonable overhead on top of a ``real,'' second-generation microkernel - in this case, L4 (macrobenchmarks indicate that L4Linux has an overhead of about 2% to 3% when compared to the original monolithic Linux kernel).

    I do not really know MacOS X's architecture well enough to give a well-informed statement, but my guess is that they have enough talent to avoid the most stupid mistakes.

  16. Re:Innovation - NOT! by rabidMacBigot() · · Score: 3
    The Apple is again back to its old tricks, namely copying Microsoft's innovations. First Microsoft announces that Windows and IE are inseparable, and what you know, Apple follows their lead.

    Ridiculous!

    Tell me - how long have you thought that MacOS X's BSD layer is a web browser?

  17. Arrogance? On Your Part, Maybe by xenotrope · · Score: 3

    What if someone developed a car that didn't require oil changes, ran on solar power (so you never needed to get fuel), was incredibly solid, etc? By the attitudes of some here, this would be a bad thing. I'm not sure why, but I'm guessing it's a combination of job security and arrogance.

    You bet it would be a bad thing, and not because of "job security" or "arrogance." I don't know who you think you are to tell us what is and isn't an acceptable amount of system maintenance. You forget that your audience here consists wholly of geeks, of hackers, and of like-minded joes who are curious enough to want to know the intimate details of their system and possess the brains to figure out how to learn them.

    To suggest that we are bitter and spiteful people who demand complexity or lack of user-friendliness in order to preserve our careers is a lie and an out-and-out insult to me and everyone else here who is like me. Your analogy of the no-maintenance supercar isn't just a good one, it's a great one, and I will tell you why.

    Would you be comfortable driving around in something which you didn't have the first clue about how it worked? Perhaps. A lot of people would, but not here. Not on Slashdot. We're geeks, hackers, and like-minded joes, remember? We don't only want to know how this supercar can do what it does, we have to. Not a hacker alive would be content to drive around and not wonder about what sort of mechanical magic that pulsed and purred under the hood of his vehicle.

    Likewise, a computer system or car that requires attention and tuning is infinitely better, simply because we, as geeks and hackers, are capable of understanding what needs attention, what needs tuning. And we thrive upon it. To perpetuate the car analogy, it is that need to know what kind of oil the car needs, and how often it needs it, that fulfills us, emotionally and spiritually.

    Perhaps you may want to invest some time into reading Zen and the Art of Motorcycle Maintenance. You can find a copy at amazon, or possibly even your local library. It will help you to understand this, at least to some small degree. Don't worry. I recommend this book to emphasize the Zen, not the motorcycle maintenance. This entire discussion isn't about "ease of use" or "user-friendliness." It's about value. It's about the meaning of things, not the things themselves.

    I wouldn't drive your supercar if it meant I couldn't look under the hood. Similarly, I wouldn't trust a computer system if I couldn't pick it apart. I agree with you on the first point of your so-called argument. The amount of service a machine needs should be variable dependent on the user. However, on your second point, you fall flat on your face.

    Never forget that while you are here, reading Slashdot, you are shoulder to shoulder with thinkers, puzzle-lovers, and people who cannot leave a mystery unsolved. If you are only capable of seeing this love of knowledge as "arrogance," I can only conclude that you are the arrogant one.



    ---

    --

    ---
    Remember when "Truth, Justice, & the American Way" wasn't contradictory?
  18. Re:Darwin == base of MacOS X by Shadow+Knight · · Score: 4

    The Darwin project is distinct from MacOSX.

    I'm afraid this is completely incorrect. Darwin == MacOS X - Quartz and everything on top. For reference, I suggest you look at: Apple's Public Source website, Apple's MacOS X website, this block diagram and page, and Fred Sanchez's Advogato diary. The gist of all that is that MacOS X kernel developers and Darwin developers use the same CVS sources. The kernel is identical. Also, all of Darwin is included with MacOS X, as the underlying foundation.


    Supreme Lord High Commander of the Interstellar Task Force for the Eradication of Stupidity

    --

  19. Re:I don't get it by John+Carmack · · Score: 4

    The real answer is just inertia from NeXT, but there are some true technical advantages to the mach base.

    The mach interfaces for virtual memory and task communication have more scope than the standard unix ones. I was rather surprised when I found out that linux memory management is still basically based on sbrk (although you can fake up virtual memory objects with mapped files yourself).

    There definately is some weirdness when you can have so many different types of threads: mach threads/tasks, unix tasks (threads also?), AppKit threads, and possibly some form of Carbon threads. They all come down to mach primitives, but they aren't interchangable.

    John Carmack

  20. Try to see another viewpoint by TheInternet · · Score: 3

    People make fun of mac users because the macies rave on about how wonderful their system is... and this is the same system that goes down completely, or locks hard, if an application screws up, or if the system runs out of memory, or....

    So you're suggesting that Linux would actually be a suitable replacement for most Mac users?

    I don't think people like the poor memory management and CPU time slicing of Mac OS, but they (errr.... "we"), consider the user interface, manageability, and workflow aspects of it to be worth it. Aside from consumers, creative content people like Macs because the technology doesn't get in the way of the creative process. By contrast, a programmer's job is the techology, so it can't really get in the way.

    I wish I could understand why people occassionally believe that no viewpoint other than their own could possibly have any validity, particuarly on issues like this which are very much subjective and reliant on personal tastes. It's such a sterotypical thing to hear on slashdot that appearance and ease-of-use are irrelevant as long as it runs from the command line and is open source.

    Do you hang up code printouts on your wall instead of paintings? :) (kidding!)

    - Scott


    ------
    Scott Stevenson

    --
    Scott Stevenson
    Tree House Ideas