Slashdot Mirror


Benjamin Herrenschmidt On PPC/Linux, Apple and OSS

MacBoy writes "The folks over at ResExcellence have a great interview with Benjamin Herrenschmidt, kernel guru for the PPC/Linux camp. He offers up some history of Linux on Apple and PPC hardware, and some discussion on Apple's current and past contributions to the open-source and Linux communities. He makes some interesting comparisons of Linux on PPC vs. Intel hardware, such as the ease of getting important patches into the kernel on PPC compared to Intel. It's an interesting read, especially if you are amoung the many who covet the new Dual-CPU GHz G4 Macs and want to know a little more about the PPC/Linux community."

21 of 167 comments (clear)

  1. Question: by Exmet+Paff+Daxx · · Score: 4, Interesting

    PPC/Linux seems like an ambitious and technically interesting project, no doubt. Personally, though, I don't seem to understand the purpose. MacOs X is based on BSD, so you get all the nice Unix-like server features... and a decent GUI, something that Linux has never had. Are there some other advantages of Linux/PPC that I'm missing?

    --
    If guns kill people, then CmdrTaco's keyboard misspells words.
    1. Re:Question: by Anonymous Coward · · Score: 4, Interesting

      I have to admit that I wonder the same thing.

      A few years ago, running Linux on a Mac made sense -- MacOS and Linux are, to say the least, very different, and there are some real advantages to running Linux (e.g. turn a Mac into a firewall, web server, etc.). Heck, long ago I used to run A/UX, and more recently Yellow Dog Linux.

      But these days, MacOS X has everything LinuxPPC has, pretty much. It's open source, BSD is at least as nice as Linux, the Mach kernel is cool, and pretty much any application for Linux will run on MacOS X. So I don't see why anyone would run LinuxPPC instead of MacOS X (or even just Darwin, if you don't like the proprietary layers on top). Admittedly the filesystem in MacOS X is arranged a little differently from a standard Linux setup, but that's hardly cause for switching operating systems.

      So I am curious -- why do people pick LinuxPPC over Darwin or MacOS X?

    2. Re:Question: by acordes · · Score: 5, Informative

      People forget that the vast majority of the installed base of PowerPC chips is in embedded systems. Apple is a relatively small buyer of PowerPC chips. Linux is a great product for purposes such as those.

    3. Re:Question: by MaxVlast · · Score: 4, Insightful

      Umm, have you ever used it?

      > I don't have to mention the GUI do I. Apple's is
      > terribly slow and most of it is in fact useless.

      That's just from outer space. It can get bogged down, sometimes, but it remains extremely peppy and always responsive on my G4 400.

      > OS X costs $129.00

      And it's a bargain for that.

      > OS X hides many admin tools deep in the GUI

      Care to name one? The applications are in /Applications. The admin tools are in /Applications/Utilities. If that's deep, you need to stick to MS Bob.

      > Apple should have built OS X off of Linux if they were smart

      Or, they could have stuck with the system that the OS was developed on, the development environment that everything is targeted for, and the environment that they retain complete control of (and doesn't come with thousands of screaming teenagers.)

      --
      There should be a moratorium on the use of the apostrophe.
      Max V.
      NeXTMail/MIME Mail welcome
    4. Re:Question: by Bodrius · · Score: 5, Insightful

      I'm no Apple user, but I had the chance to play a bit with Macs for some weeks and I'm afraid you're dead wrong.

      I'm sure Linux is faster than OS-X for some tasks. Probably a lot of them, actually. But are those the tasks OS-X is geared to?

      A web-server? What do you need a GUI and Aqua for in a pure web-server? You don't put KDE and GLTron on your Linux webserver, do you? OSX without Aqua is not OSX, it's Darwin.

      OS-X is a desktop-geared operating system. It's made for interactive use, to play with Photoshop, 3D animation, movie editing, software development and whatever the user happens to require. It contains a web-server (and all the other servers) because it's useful for the user/developer. The user wants to see his personal webpage at once. The developer wants to code and deploy.

      System requirements? Can I run KDE/GNOME on "very little memory" anymore than I can run Aqua? I don't think so. I tried a couple of times, and I feel stupid for trying. Linux can survive in very little memory just like Darwin can, but Linux-OSX is no valid comparison.

      I don't understand either what you're saying about admin tools deep in the GUI. The shell is right there, waiting to be used as always and with all the tools one needs. So are their GUI front-ends, which I never had problems to find as a non-Mac user, and which are much simpler and convenient (the whole point of the GUI front-end) than any I have seen in Linux.

      What does Linux offer in advantage to the GUI's organization in OSX? Are you talking about KDE, or GNOME, or something else, any of which you could install over Darwin (if they can be installed in LinuxPPC)?

      Apple's GUI is not so slow these days (maybe it was in 10.0). At least it didn't seem to me when I used it, and it's not like I had the time to "get used to it". Not as responsive as my Win box, but much more responsive than my Linux with XFree. Useless? If you mean the pretty effects, transparency, etc... sure, but it's part of the Mac style. Aesthetics matter. If they didn't, you probably wouldn't be buying a Mac.

      Price? For a competent, fully-functional, user-friendly desktop system based on Unix? I would prefer free, of course, but if I were willing to pay for the Mac I'd pretty much buy the OS-X no questions asked. But of course, that's included in the price of the Mac.

      Apple did the smart thing using BSD/NextStep. Even if they didn't consider it a superior, more robust Unix as they said, it lets them avoid the politics that surround Linux. Just not having to deal with all the license zealotry and "Linux is always better" chanting is worth the price.

      --
      Freedom is the freedom to say 2+2=4, everything else follows...
    5. Re:Question: by Lars+T. · · Score: 3, Insightful
      Let's ignore that not even all Macs can run OS X, here's a quote from the interview:

      "The PPC tree has it's own complexities, mostly because we have to deal with a large set of very different machines and CPUs. From the PowerMacs, PRePs & CHRP, the 4xx and 8xx based embedded platforms, and even IBM pSeries and iSeries servers."

      --

      Lars T.

      To the guy who modded me down from perfect to terrible Karma - Apple haters still suck

    6. Re:Question: by MouseR · · Score: 4, Insightful
      How about price. Linux is free while OS X is not. OS X costs $129.00 at the Apple store.

      How much would you pay to get ProjectBuilder and InterfaceBuilder for Linux?

      We get 'em for free with Mac OS X, and also get a copy of Mac OS 9.2 for free.

      Oh sure, rant as much about OS 9. How often do you have to boot in Windows to do something (your favorite game, or perhaps Word).

      So, see it this way: for 130$, you get 4 distros:
      1. Darwin,

      2. Mac OS X (Quarts etc)
        Incredible dev tools
        Mac OS 9


      I say that's pretty good value for the buck. (Besides, if you buy a new machine, you get all that anyhow).
    7. Re:Question: by Fweeky · · Score: 4, Informative

      > we all know monolithic kernels are MUCH faster than microkernels

      Not really. A bit of extra message passing doesn't make for a hugely slower system. On the other hand, you get a smaller, neater, and above all, more modular system.

      > I don't have to mention the GUI do I. Apple's is terribly slow and most of it is in fact useless.

      Right, and Linux is overflowing with kickass GUI's and reliable, well designed system configuration tools that don't mess up your configs.

      > How about system requirements. Linux needs very little to run while OS X needs 128 MB RAM min

      Don't forget to add the cost of XFree86 and Gnome/KDE to your "very little", and don't go skimping into swap-hell, since this is aimed at desktop/workstation type environments.

      > How about price. Linux is free while OS X is not. OS X costs $129.00 at the Apple store.

      Add to the cost of Linux books, time you spend working things out, trying out and breaking various dist's. Apple target people who just want to Get Things Done - the real cost of learning and getting used to Linux is very high for such people.

      > Apple should have built OS X off of Linux if they were smart.

      Why would they want to use a big-ass barely designed kernel they can't even touch without having to hire teams of lawyers and beg their coders to be careful to stop their code being automatically GPL'd? What's so good about Linux that makes it so much better despite it's shortcomings?

    8. Re:Question: by jtdubs · · Score: 5, Funny

      The funny part is thus:

      Scenario:

      Pretend that OS X and linux are functionally equivalent. All of a sudden linux introduces accelerated support for alpha blending and better looking fonts and a beautiful animated GUI that blows OS X out of the water.

      Linux communities response:

      Woohoo! We are so much more l33t and advanced than OS X. Our fonts are better and everything is animated and pretty. We win!

      Scenario:

      Pretend that OS X and linux are functionally equivalent. All of a sudden OS Xintroduces accelerated support for alpha blending and better looking fonts and a beautiful animated GUI that blows linux out of the water.

      Linux communities response:

      Stupid Macs are so slow now. So they are pretty, but all those features are really worthless and just suck up RAM. The GUI just hides you from the command line, the fonts are just way to easy to read and take the challenge out of using unix, and the alpha blending is just a way to force me into buying more expensive hardware just to get the GUI to be responsive.

      Justin Dubs

  2. Oh, those dual G4's look nice by UnknownSoldier · · Score: 4, Informative

    I was going to ask if anyone has Linux running on the new dual G4's, but then I found this cool link

    http://linuxppc.org/hardware/dualg4/

    Anyone have benchmarks (under Linux) for the dual G4's and corresponding PCs for:
    - compiling the kernal
    - GIMP
    - Quake1/2 benchmarks

    I'd love to get the "other endian machine" and compile some game code on it. Anyone have any recommendations? How did id do the Quake3 port to Macs ?

    "PC Expert - Mac newbie"

    1. Re:Oh, those dual G4's look nice by shamino0 · · Score: 3, Insightful
      I develop network protocol stack code for a living.

      Endinanness isn't entirely trial and error. The big deal is that you must explicitly convert any value that you read from an external source (a network socket or a data file that may be read by a different implementation.) Similar conversions must be done whenever you write data to such an external destination.

      The biggest problem you find when porting code that wasn't designed for portability is people who decide to read a block of bytes from a file/socket and then cast a struct pointer onto it. This is inherently evil. It only works if the endinanness matches, and the compiler pads the struct identically to the external source.

      The solution is to parse the buffer byte-by-byte, arithmetically combine the bytes into their integer values, and then assign them into a struct. For instance, if I have code that is trying to read a 2-byte integer, followed by three 3-byte integers (ignoring possible I/O errors, for simplicity), this would be a bad and non-portable implementation:

      typedef struct foo
      {
      short a;
      longb[3];
      } foo;

      foo*fooptr;
      charbuffer[14];

      read(fd, buffer, 14);
      fooptr = (foo *)buffer;
      ...

      The above code assumes that the size of long and short will be exactly 4- and 2-bytes, respectively. It assumes that the integer representation matches that of the data stream. And it assumes that the compiler not insert any padding between the structure members.

      Using the same struct, this code would be portable across all platforms (assuming that the data is big-endian format. If the data is little-endian, the solution is left as an exercise for the reader):

      foofoobuffer;
      char buffer[14];

      read(fd, buffer, 14);
      foobuffer.a = (buffer[0] << 8) | buffer[1];
      foobuffer.b[0] = (buffer[2] << 24) | (buffer[3] << 16) | (buffer[4] << 8) | buffer[5];
      foobuffer.b[1] = (buffer[6] << 24) | (buffer[7] << 16) | (buffer[8] << 8) | buffer[9];
      foobuffer.b[2] = (buffer[10] << 24) | (buffer[11] << 16) | (buffer[12] << 8) | buffer[13];
      ...

      It's a bit more tedious to write and read, but it will work on all platforms, regardless of the internal representation of integers and structs. It will even work if the internal size of short and long variables is longer than the usual 16- and 32-bits (which is legal according to ANSI-C). And the ugliness can be mostly avoided through use of macros (or inline functions, if you prefer.)

      If your data format consists entirely of big-endian integers of 16- and 32-bit sizes, you can also use the system-provided ntohs(), htons(), ntohl(), and htonl() functions. If your data is little-endian format, or some other format, then you obviously must roll your own converters.

  3. linux and mac go together by rana · · Score: 3, Interesting


    Despite the early antagonism between the league for programming freedom and Apple, Macs and Unix went together pretty well. Long before samba, 680X0 Macs were sharing files quite nicely with unix servers. In many disciplines at universities, unix was used for heavy lifting, and macs were used for light word processing and making drawings.

    Linuxppc has benefited from the generally better hardware on the PowerPC (higher quality and reliability, and less diversity). Also, for much of the '90s, the PPC chip was faster for many things than ix86. Recently, I had a 90 MHz powermac running KDE, xemacs, and Netscape without a hitch for months without any hiccups (a little slow but definitely useable). Under MacOS the thing would lock up several times a day. OS X is not an option for these older macs.
    My old Mac died but I hope to get an ibook soon and put Linux on it. By the way, I wish there was something like fips for shrinking Mac partitions for people that want to dual boot.

  4. Answer: performance (among other things) by raulmazda · · Score: 5, Informative
    Aside from all of the other reasons, OS X is a dog in comparison with Linux.

    The lmbench numbers show that linux is significantly faster for certain operations. I have a copy of the results that I pointed to in an old post over here. Linux spanks OS X. It's a reason.

    Other reasons include access to all of the source of your OS and better support for certain things (pcmcia 802.11b card support? Better filesystems. More software already working).

    I personally run Debian on my laptop 99% of the time because my environment is the same everywhere, and apt-get kicks ass (fink on OS X is cool, but there isn't as much stuff available).

  5. Comparison between x86 and PPC performance? by Jayde+Stargunner · · Score: 3, Interesting

    Of course, the long-standing debate between Mac and Windows (I use the term generally) users has been that of their respective platform's performance. Sure, Max users complain that Windows is ugly, Windows user complain that Mac OS doesn't have enough apps...BUT, the big ticket is always when they start comparing Intel (or AMD) processors to their PPC competitors.

    With Linux on both platforms, I would be interested to see some comprehensive real-world benchmarks comparing the two platforms. Really, I'm rather tired of the "Megahertz-myth" PPC touters and the "RISC sucks" x86 campions arguing which is better without any solid numbers.

    -Jayde

    --
    What's a sig?
    1. Re:Comparison between x86 and PPC performance? by gmhowell · · Score: 3

      I agree, but then you still have the problem of whether GCC works better/optimizes-better-for-speed for x86 or PPC.

      --
      Jesus was all right but his disciples were thick and ordinary. -John Lennon
  6. x86 is not CISC any more by Zo0ok · · Score: 4, Informative
    Pipelining as a concept was introduced with RISC. The idea of RISC is that all instructions should take exactly ONE clyck cycle to execute (otherwise that fuctionality should be achieved by a series of other instructions).

    When (and only when) each instruction takes one clock cycle to execute you can divide each instruction inte several sub-tasks, for example Fetch - Decode - Execute - Store. Now a pipeline can be introduced:

    instruction 1 F D E S
    instruction 2 . F D E S
    instruction 3 . . F D E S
    instruction 4 . . . F D E S

    In this way work is parallellised. Four instructions are executed in parallell, during 4 clock cycles each, giving a throughput of 1 instruction per second.

    CISC basically means that instructions take different number of clockcycles to execute. With such an instruction set you can not use Pipelining.

    The i386 cpus today transform the CISC instructions into RISC instructions, and apply pipelining. For the price of a translator the major drawbacks with CISC are avoided.

    It is probably true that Intel has to put more research and silicon into a CPU than Motorola to achieve the same performance. But this is not because Intel are stuck with building a CISC cpu - it is because Intel must emulate the i386 CISC instruction set on a RISC cpu core.

  7. Day for PPCLinux is past but...... by marktwain · · Score: 3, Insightful

    With OS X the usefulness of Linux on the PPC platform is indeed brought into question, but article is still a good read.

    It's interesting, however, to note that Linux people still miss the whole point of finding out about Mac OS X. Don't like it? Don't use it. But if you're smart you'll develop for hit. Read the O'Reilly Network, or any any other article, for writing in cocoa for MacOS X.

    If there's anything missing in the viability of the comments about PPCLinux and its "questionable viability" you could well say the same thing about Linux in general as a desktop platform. It's going nowhere. Genome and KDE will not only never be the finished GUI that OS X is, but they also won't have the installed (and growing) desktop users that OS X has either.

    New games are shipping for OS X, not ports, but original games. The recent O'Reilly network article about writing for cocoa represents an idea which any geek interested in making a living doing something besides tweaking SQL databases may want to consider.

    Sure, the Mac OS X kernal, Darwin, itself offers much to users. But any Linux geek who likes to write code should give it even more serious consideration, its portability to other platforms, including Linux.

    If you're hung up on the idea of free software disregard this, but if you're looking for a good *nix OS check out OS X if you're smart.

  8. A couple of reasons. by dmaxwell · · Score: 5, Interesting

    Linux is often faster. Just like Intel Linux, it's possible to create a custom stripped down desktop with no fat. I've become accustomed to how things work on my Intel Linux machines and like having almost the same environment on my Pismo Powerbook. I also prefer the GNU utilities over the BSD ones (flame away...it's just a preference...get over it).

    OSX is also next to useless on older hardware. We use 233Mhz Beige G3 desktop as an internal server. It's running ssh, Apache-SSL, NTP, mySQL, Apache, and Netatalk. The Apache/mySQL setup powers our troubleticket/inventory system. The Netatalk/Samba combo makes files available to both Mac and Windows clients. It does all of this with very acceptable speed and reliablity. The machine has zero need for a GUI...and doesn't have one. I suppose I could use Darwin but the machine wouldn't do it's work any better and I would have to mess with fussy ports of the daemons. It has full apt-get goodness....I forgot to mention that it is dead easy to admin.

    So yeah, there are valid reasons to use Linux on PPC hardware.

  9. Benh is cool. by dmaxwell · · Score: 3, Informative

    I had a little trouble getting all of the modules to work with one of his 2.4.17rc kernels. I figured what the hey and emailed him. He straightened me right out. I suppose the world of PPC Linux is small enough that a leading light can have a little time for an end user like me.

  10. Why LinuxPPC is important IMHO by leereyno · · Score: 3, Interesting

    Lets forget about OS-X for a moment. What LinuxPPC does is fix the mac by providing a real operating system for it. There are macs where I work, and every time I'm stuck using one I start getting crazy notions in my head about taking a sledge hammer to them all, or finding some other way of destroying them. The reason has nothing to do with the hardware they are running. They're not super fast, but I'm not particularly picky in that area. What bugs me about them is the antique operating system they're running. If I wanted cooperative multi-tasking and no memory protection between apps, I'd run windows 3.1. When I sit down in front of a computer I expect the system to be responsive to me, regardless of what it is doing in the background.

    One day about a year ago I loaded up the PPC version of SuSE 7.0 onto one of the macs. Lo and behold!!! A new computer was born! Or at least it seemed that way. The computer actually seemed to run FASTER as well as being infinitely more responsive. I was also a great relief to escape from the Macs GUI, which I find cumbersome. It was like I was trying to run with a cinder block tied to my leg and someone just cut the cord. Unfortunately I eventually had to wipe Linux and reinstall MacOS-9 on it.

    Nowadays we have OS-X, which is about 6 years late, but better late than never. Its GUI isn't on par with KDE, but its far better than the previous MacOS versions. Its also responsive! Its great to actually be able to have my computer wait on me rather than the other way around. Its not terribly fast, but I'm not going to complain! Much better that it take longer to do things in the background but be more responsive in the foreground than it lock me out. Hopefully IBM/Motorola/Apple will be able to push the PPC architecture further in terms of clock rate.

    Then of course there are the standard form-factor PPC motherboards that will soon be available. Whether they will ever outperform an Athlon based system is doubtful, but the fact that they are there and available is a good thing.

    Lee

    --
    Muslim community leaders warn of backlash from tomorrow morning's terrorist attack.
  11. What are people doing with their RAM? by krmt · · Score: 3, Interesting
    Don't forget to add the cost of XFree86 and Gnome/KDE to your "very little", and don't go skimping into swap-hell, since this is aimed at desktop/workstation type environments.

    Nothing against OSX, but in all honesty even a fully loaded Linux desktop will take less RAM than OSX. I'm running a fully loaded KDE right now, with Mozilla (rumor says it's bloated), StarOffice 6.0, and Kmail, and my used (not cache) memory is only at 64MB. Note that only KDE and Kmail share many libraries.

    I don't know where people get this idea that you need a ton of memory to run these programs. Granted, 128MB is little on the high side if you're talking real low end, but these are desktop workstations, as you said. OSX requires that 128 at a bare minimum, and even that maxed out when I was using 10.0 (don't know if they decreased the RAM requirements as of 10.1, but I doubt it). Linux apps just don't take as much memory as people say. KDE gets you a solid UI with a lot of bells and whistles for relatively low memory cost. Plus, the inclined desktop user could simply run fluxbox or twm, which isn't possible without Darwin, in which case you can't easily switch to Aqua. OSX is great, but Linux has its advantages too.
    --

    "I may not have morals, but I have standards."