"Weird. Do you have peculiar hardware or something?"
Pentium 4 2.4 ghz on a Gigabyte GA-8IG1000MK (Intel 865G chipset). I believe many of my problems come from the fact that the chipset handles both SATA drives and PATA drives internally. It worked okay when Linux treated SATA like SCSI (early 2.6 kernels did this), but nothing has been right since.
I don't believe anything there is particularly unusual.
"What do you mean by regressions? I know what the term means, obviously, but do you have examples in mind?"
The ones that bit me were the one that stopped the CD drive from being detected, the one that stopped CD burning from working properly (this affected nearly everyone, it would have effected you if you used 2.6.5 IIRC), and the one that won't let me set the MTU on my NIC. Also DMA stopped working for non-SATA drives at some point but I don't remember when.
There are a lot more. Read the LKML archives for more examples. Also, you can see their discussions about what to do about it.
-CD drive doesn't work when connected to the motherboard -CD burning broken (this affected everyone in 2.6.5 IIRC) -can't set the MTU on my NIC. -DMA doesn't work on non-SATA drives
"Giving up actual science-based measurements to defer to a technological system owned by the US government will forever put the science of navigation in the control of a single government who can scramble the system whenever they so choose."
Not only that, but a leap-hour centuries from now is a lot worse than leap seconds because it'll actually noticeably affect available daylight.
"Well, you have two options. Measure time acurately according to the way we orbit the sun, or try to corral it so that it is easly expressable by computers but ultimately out of sync with actual astronomical time."
The problem is that our clocks now measure time more accurately than the earth's rotation.
Overall it's slowing, but not at a constant rate. Things like changes in ocean currentls measurably affect it.
"Having your CDROM not work is hardly justification for calling 2.6 "one big regression fest"."
Not that alone, but there are other examples that have happened to me. Examples from others are equally abundant. Congrats if you've been lucky.
There was that memory leak that prevented burning from working, I've had DMA quit working on any non-SATA drive, I can't set the MTU on my network card. I believe the fact that I don't have more examples is a result of me giving up on new kernel versions and using the Debian-stable 2.6.9 kernel. I have workarounds for the bugs in that.
"What's more, any software, especially an operating system's drivers (for which specs are generally not easily forthcoming and who's hardware and firmware is plagued with bugs) is going to have regressions."
Yeah, it would do when they're making major changes in the stable version. Since others have done better and since the kernel developers themselves have done better in the past, I believe they can do better.
"Further, if you do find a regression, and donate the time to test patches, then 99.9% of the time it will be fixed. If you can't be bothered to do that - then why should anyone care about your whining?"
The issue is not that bugs don't get fixed. They can fix the bugs right now. The issue is that new development on the stable kernel introduces regressions that make it into releases. Fixes go into new versions, and new versions have new regressions that I don't know about and haven't worked around.
But then, my CD drive is on a Promise card because Linux can't use it when it's connected to the motherboard anymore.
It's not just a few pesky little bugs, it's huge crippling regressions, and I don't even want to upgrade because who knows what will bite me next time. At least I have a Promise card so I can work around the bugs in my current version.
2.6 is very close to being unusably bad. To me, the only cases where it's acceptable are where stability doesn't matter, like a desktop that can be wiped and reinstalled with something else in a half-hour.
In 2.6, the move was away from 'good enough' to 'not good enough'. I found the risk of regressions became too high for me to use it for anything important.
Every release had crippling regressions, so the pressure was to find a version with bugs I could work around and never upgrade. But that's no good for security, so I have abandoned 2.6 entirely for anything but desktops that I can wipe and reinstall with something else in half an hour.
They're usually "stable" in that they don't crash, but they're "unstable" in that things like drivers mysteriously stop working in each new release. A release will usually fix previous bugs, but it will also bring with it a whole new set of regressions that can be crippling.
Every OS does that, but the risk on Linux 2.6 was absurd.
2.6 has been one big regression fest, and despite its advantages I've always had to use something else for anything but desktop duty because the risk was too high.
There has to be a tradeoff between new features and sufficient stability to contemplate using the new features -- they aren't an advantage if they are inseparable from the bugs.
So far progress has been slow, the autoconf build system has been removed from all of the launchd(8) code, and launchctl(1) is building and semi-functional on FreeBSD-CURRENT (i.e. CoreFoundation hooks have been removed)
I'm currently working on porting "liblaunch" which is the core backend to both launchd(8) (the actual daemon) and launchctl(1), there are some mach/xnu specific hooks and calls that need to be remove and either reimplemented or worked around.
We're also waiting on a response from Apple on a possible BSD-licensed version of the code (it's currently under the APSL) Progress is slow, but steady.
Haven't worked with launchd, but there isn't an init system left that I don't hate so any hope of improvement is welcome.
also...
Florent Thoumie has updated the massively out-of-date platform page. Work continues to creating a 6.0 release of the PowerPC port.
With Apple giving up on it, is it really worthwhile to develop a PowerPC port? IBM and others will still sell PowerPC hardware, but it's not going to be a major desktop/small server platform anymore. Big server and embedded, sure, but the middle is going away and FreeBSD lives in the middle ground.
"Every user interface requires that you buy another monitor to have dual monitors. The only way dual screens apply to the user interface would be as to how easy it is to set them up once you have them."
Alright then. Easy interface with an unrelated but possibly prohibitive restriction on the hardware.
"You might as well argue that OS X sucks because it doesn't support right-clicking and a scroll wheel without buying a mouse with two buttons and a scroll wheel."
Can and have. By your definitions I would say the package as a whole is diminished because you have to go out and buy the mouse. The difference is that mice are cheap and all Macs can accept the upgrade.
"And implementing the network stack in the kernel space doesn't not make it a microkernel, either. It's a hybrid kernel, which is essentially a microkernel with some non-essential services placed into the kernel space instead of in a userland server. In other words, all hybrid kernels are microkernels, but not all microkernels are hybrid kernels. Your claim that it's "just as monolithic as Linux" is completely off-base."
A kernel that provides non-essential services cannot, by definition, be a microkernel.
If you think stuff like the WindowServer is a server in the microkernel sense, then I guess we can call it a hybrid, but it is surely not a microkernel.
"That depends on how you interpret "desktop workstation." I'd interpret that as the CEO's secretary's computer, not something a Lockheed Martin engineer is using to model aerodynamics. Not all workstations are technical in nature. Some simply need to be able to create and print documents, check and send e-mail and surf the Internet."
Much of our disagreement comes from our different usage of the word "workstation". Now that I know what you mean, I don't think I disagree with you on this issue.
"You're talking about capabilities which necessitate buying additional hardware. I'm talking about the user interface. Surely you can see the difference."
The user interface requires the additional hardware to do something I need. I don't see how I can look at it in isolation in a way that allows me to make purchasing decisions. Sure it's capable, but only in a set of circumstances that I find prohibitive.
"It most certainly is. Would you like me to list my ps -gaux output and show you the line that says "WindowServer"?"
Having a "WindowServer" doesn't make it a microkernel. Linux's entire GUI runs in userspace too and it's as monolithic as you can get. In Darwin the network stack, drivers, etc exist in the same address space in the kernel. They don't run as a separate server, which is what a microkernel does.
"No, it's a red herring. When you're comparing the UIs of different operating systems, the hardware they run on is completely irrelevant. It'd be a different story if we were talking about price/performance, but we're not."
I was talking about capabilities. If capabilities (like dual displays) are prohibitively expensive, it's impossible to remove it from consideration.
"I mentioned Linux's open source nature as the reason it would never make it to the desktop in any significant way, and all you've basically done is lecture me about how great it is for people who aren't typical computer users."
MacOS is better for typical computer users. I don't deny that. If they use MacOS they won't need to bother me to fix their computers so I'll be happy. Their computers will be working properly so they'll be happy. I'd love that.
"Of course it can. Which is what I've said. Linux is a great choice for servers and technical workstations, but it's totally unsuitable for Joe Sixpack."
I agree, but either that's not what you said or I misinterpreted what you said: "Less capable on the server end perhaps, but you're dreaming if you think Mac OS X is less capable as a desktop workstation than Linux, of all things."
I think Linux is a good workstation OS. It isn't great for some things. There are a few holes like video editing, but the same can be said of any OS out there. If I did video editing I'd probably want MacOS. I do programming and misc *nix stuff, and I want Linux.
"Uh... what does this have to do with anything we're talking about? And more messaging overhead is part of using a microkernel. It's a tradeoff."
It's just as monolithic as Linux. It's based on a microkernel and still has a lot of overhead, but it's not one anymore.
"Now, wait a sec...what software are you talking about? One of the strengths I've found with Macs is the command line stuff. I use zsh as my shell, and I have the full host of standard unix command line utilities."
I'm not saying it sucks, there's just some software that isn't available.
"Most of the command line stuff I've needed, I've either been able to find binaries for, or I've used fink, or I've just built from source."
The obvious example is Java, which is usually out of date on OS X. Psyco is also not supported on PowerPC. There's some internal apps at work that no one wants to port.
And so on like that. Just about everything of any importance has been ported, but it seems like I'm always having problems whenever I'm not on Linux. It's even a problem on OpenBSD x86, which can run most Linux binaries with system call emulation. Java still doesn't work.
"I was talking about operating systems. You're talking about hardware plus operating systems."
Apple's OS only runs on Apple's hardware. It's fair game.
"Not to say that open source is bad, but it's hardly a model for consistency."
Yes. Their flexibility costs them consistency. It is a tradeoff.
"The open source strength lies mainly in the server and technical side of the computing world. Apple have recognized that. That's why they've open-sourced the Darwin operating system but kept the higher level things like Quartz to themselves. They let the community work on the plumbing, but they want to do the interior decorating."
If your workstation needs to do technical stuff, the technical strength of Linux can be an advantage.
Darwin's plumbing leaves a lot to be desired next to Linux or FreeBSD. I understand that Apple wanted to control their kernel, but it has a lot of overhead compared to other OSes.
"You only ever run one program at time? Why do you need dual monitors and 2GB of RAM then?"
I run many of applications at once, none of which are CPU-bound except for stuff running in the background. 2 gigs of memory benefits me because I never have to swap and I have a huge amount of disk cache. For what I do, that's a lot faster.
I need a second monitor so I can have code in one and docs and terminals in the other. The only things that take a significant amount of CPU power are the compiles and the project once it's running, everything else is negligible.
"Seriously, the gains in application switching and overall system responsiveness have spoiled me. I'm not going back to single CPU systems ever again."
The responsiveness of the Linux 2.6 kernel (and FreeBSD 5.x if I were inclined to use it) has spoiled me. It's very good at figuring out which applications are interactive and it's good running them in short order when they become runnable. Some benchmarks I saw a while ago indicated that it can do it in under a millisecond. It slows down CPU-bound threads a little bit because they are preempted, but I don't care because they're chewing on stuff in the background. I don't notice if a 10-minute compile takes a few seconds longer.
As long as my music doesn't skip and Firefox stays responsive while I'm compiling a big project, I don't really care how it does it. I do care that I paid less than half of what Apple wanted for the minimum machine that would have met my needs (PowerMac with 2 gb memory).
Click-hold is a solution for some problems, but the number of combinations required is pretty large and there's really only three different one-button clicks that are easy to do (click, double-click, click-hold).
It uses the firewall, which won't even touch the network stack.
"Weird. Do you have peculiar hardware or something?"
Pentium 4 2.4 ghz on a Gigabyte GA-8IG1000MK (Intel 865G chipset). I believe many of my problems come from the fact that the chipset handles both SATA drives and PATA drives internally. It worked okay when Linux treated SATA like SCSI (early 2.6 kernels did this), but nothing has been right since.
I don't believe anything there is particularly unusual.
"What do you mean by regressions? I know what the term means, obviously, but do you have examples in mind?"
The ones that bit me were the one that stopped the CD drive from being detected, the one that stopped CD burning from working properly (this affected nearly everyone, it would have effected you if you used 2.6.5 IIRC), and the one that won't let me set the MTU on my NIC. Also DMA stopped working for non-SATA drives at some point but I don't remember when.
There are a lot more. Read the LKML archives for more examples. Also, you can see their discussions about what to do about it.
-CD drive doesn't work when connected to the motherboard
-CD burning broken (this affected everyone in 2.6.5 IIRC)
-can't set the MTU on my NIC.
-DMA doesn't work on non-SATA drives
"Giving up actual science-based measurements to defer to a technological system owned by the US government will forever put the science of navigation in the control of a single government who can scramble the system whenever they so choose."
Not only that, but a leap-hour centuries from now is a lot worse than leap seconds because it'll actually noticeably affect available daylight.
"Well, you have two options. Measure time acurately according to the way we orbit the sun, or try to corral it so that it is easly expressable by computers but ultimately out of sync with actual astronomical time."
The problem is that our clocks now measure time more accurately than the earth's rotation.
Overall it's slowing, but not at a constant rate. Things like changes in ocean currentls measurably affect it.
I wouldn't be whining about Linux if I were a BSD zealot. I'd go away and use BSD.
"Having your CDROM not work is hardly justification for calling 2.6 "one big regression fest"."
Not that alone, but there are other examples that have happened to me. Examples from others are equally abundant. Congrats if you've been lucky.
There was that memory leak that prevented burning from working, I've had DMA quit working on any non-SATA drive, I can't set the MTU on my network card. I believe the fact that I don't have more examples is a result of me giving up on new kernel versions and using the Debian-stable 2.6.9 kernel. I have workarounds for the bugs in that.
"What's more, any software, especially an operating system's drivers (for which specs are generally not easily forthcoming and who's hardware and firmware is plagued with bugs) is going to have regressions."
Yeah, it would do when they're making major changes in the stable version. Since others have done better and since the kernel developers themselves have done better in the past, I believe they can do better.
"Further, if you do find a regression, and donate the time to test patches, then 99.9% of the time it will be fixed. If you can't be bothered to do that - then why should anyone care about your whining?"
The issue is not that bugs don't get fixed. They can fix the bugs right now. The issue is that new development on the stable kernel introduces regressions that make it into releases. Fixes go into new versions, and new versions have new regressions that I don't know about and haven't worked around.
Open Source,
open to criticism.
I feel the 2.6 philosophy has been damaging to Linux, and I have as much of a right to criticise Linux as the yes-men have to praise it.
I would be a bit more conservative than that.
But then, my CD drive is on a Promise card because Linux can't use it when it's connected to the motherboard anymore.
It's not just a few pesky little bugs, it's huge crippling regressions, and I don't even want to upgrade because who knows what will bite me next time. At least I have a Promise card so I can work around the bugs in my current version.
2.6 is very close to being unusably bad. To me, the only cases where it's acceptable are where stability doesn't matter, like a desktop that can be wiped and reinstalled with something else in a half-hour.
In 2.6, the move was away from 'good enough' to 'not good enough'. I found the risk of regressions became too high for me to use it for anything important.
Every release had crippling regressions, so the pressure was to find a version with bugs I could work around and never upgrade. But that's no good for security, so I have abandoned 2.6 entirely for anything but desktops that I can wipe and reinstall with something else in half an hour.
"They've always seem pretty stable to me."
You're lucky.
They're usually "stable" in that they don't crash, but they're "unstable" in that things like drivers mysteriously stop working in each new release. A release will usually fix previous bugs, but it will also bring with it a whole new set of regressions that can be crippling.
Every OS does that, but the risk on Linux 2.6 was absurd.
2.6 has been one big regression fest, and despite its advantages I've always had to use something else for anything but desktop duty because the risk was too high.
There has to be a tradeoff between new features and sufficient stability to contemplate using the new features -- they aren't an advantage if they are inseparable from the bugs.
Glad Linus came around.
Indeed.
But Pentium Ms use less power so your point is irrelevant.
Pentium 4s and Xeons outperform G5s by quite a bit, and this Pentium M outperforms them.
"The idea behind Unix has always been to have small parts that do their own job, not some giant monster that does everything."
UNIX accepts integration when it makes sense, for example inetd.
"And many of those burgers have multiple versions."
An OS that doesn't have multiple versions is an OS that died before they could start fixing the bugs. All the survivors have huge numbers of releases.
also...With Apple giving up on it, is it really worthwhile to develop a PowerPC port? IBM and others will still sell PowerPC hardware, but it's not going to be a major desktop/small server platform anymore. Big server and embedded, sure, but the middle is going away and FreeBSD lives in the middle ground.
"Every user interface requires that you buy another monitor to have dual monitors. The only way dual screens apply to the user interface would be as to how easy it is to set them up once you have them."
Alright then. Easy interface with an unrelated but possibly prohibitive restriction on the hardware.
"You might as well argue that OS X sucks because it doesn't support right-clicking and a scroll wheel without buying a mouse with two buttons and a scroll wheel."
Can and have. By your definitions I would say the package as a whole is diminished because you have to go out and buy the mouse. The difference is that mice are cheap and all Macs can accept the upgrade.
"And implementing the network stack in the kernel space doesn't not make it a microkernel, either. It's a hybrid kernel, which is essentially a microkernel with some non-essential services placed into the kernel space instead of in a userland server. In other words, all hybrid kernels are microkernels, but not all microkernels are hybrid kernels. Your claim that it's "just as monolithic as Linux" is completely off-base."
A kernel that provides non-essential services cannot, by definition, be a microkernel.
If you think stuff like the WindowServer is a server in the microkernel sense, then I guess we can call it a hybrid, but it is surely not a microkernel.
"That depends on how you interpret "desktop workstation." I'd interpret that as the CEO's secretary's computer, not something a Lockheed Martin engineer is using to model aerodynamics. Not all workstations are technical in nature. Some simply need to be able to create and print documents, check and send e-mail and surf the Internet."
Much of our disagreement comes from our different usage of the word "workstation". Now that I know what you mean, I don't think I disagree with you on this issue.
"You're talking about capabilities which necessitate buying additional hardware. I'm talking about the user interface. Surely you can see the difference."
The user interface requires the additional hardware to do something I need. I don't see how I can look at it in isolation in a way that allows me to make purchasing decisions. Sure it's capable, but only in a set of circumstances that I find prohibitive.
"It most certainly is. Would you like me to list my ps -gaux output and show you the line that says "WindowServer"?"
Having a "WindowServer" doesn't make it a microkernel. Linux's entire GUI runs in userspace too and it's as monolithic as you can get. In Darwin the network stack, drivers, etc exist in the same address space in the kernel. They don't run as a separate server, which is what a microkernel does.
"No, it's a red herring. When you're comparing the UIs of different operating systems, the hardware they run on is completely irrelevant. It'd be a different story if we were talking about price/performance, but we're not."
... what does this have to do with anything we're talking about? And more messaging overhead is part of using a microkernel. It's a tradeoff."
I was talking about capabilities. If capabilities (like dual displays) are prohibitively expensive, it's impossible to remove it from consideration.
"I mentioned Linux's open source nature as the reason it would never make it to the desktop in any significant way, and all you've basically done is lecture me about how great it is for people who aren't typical computer users."
MacOS is better for typical computer users. I don't deny that. If they use MacOS they won't need to bother me to fix their computers so I'll be happy. Their computers will be working properly so they'll be happy. I'd love that.
"Of course it can. Which is what I've said. Linux is a great choice for servers and technical workstations, but it's totally unsuitable for Joe Sixpack."
I agree, but either that's not what you said or I misinterpreted what you said: "Less capable on the server end perhaps, but you're dreaming if you think Mac OS X is less capable as a desktop workstation than Linux, of all things."
I think Linux is a good workstation OS. It isn't great for some things. There are a few holes like video editing, but the same can be said of any OS out there. If I did video editing I'd probably want MacOS. I do programming and misc *nix stuff, and I want Linux.
"Uh
It's just as monolithic as Linux. It's based on a microkernel and still has a lot of overhead, but it's not one anymore.
"Now, wait a sec...what software are you talking about? One of the strengths I've found with Macs is the command line stuff. I use zsh as my shell, and I have the full host of standard unix command line utilities."
I'm not saying it sucks, there's just some software that isn't available.
"Most of the command line stuff I've needed, I've either been able to find binaries for, or I've used fink, or I've just built from source."
The obvious example is Java, which is usually out of date on OS X. Psyco is also not supported on PowerPC. There's some internal apps at work that no one wants to port.
And so on like that. Just about everything of any importance has been ported, but it seems like I'm always having problems whenever I'm not on Linux. It's even a problem on OpenBSD x86, which can run most Linux binaries with system call emulation. Java still doesn't work.
"I was talking about operating systems. You're talking about hardware plus operating systems."
Apple's OS only runs on Apple's hardware. It's fair game.
"Not to say that open source is bad, but it's hardly a model for consistency."
Yes. Their flexibility costs them consistency. It is a tradeoff.
"The open source strength lies mainly in the server and technical side of the computing world. Apple have recognized that. That's why they've open-sourced the Darwin operating system but kept the higher level things like Quartz to themselves. They let the community work on the plumbing, but they want to do the interior decorating."
If your workstation needs to do technical stuff, the technical strength of Linux can be an advantage.
Darwin's plumbing leaves a lot to be desired next to Linux or FreeBSD. I understand that Apple wanted to control their kernel, but it has a lot of overhead compared to other OSes.
"You only ever run one program at time? Why do you need dual monitors and 2GB of RAM then?"
I run many of applications at once, none of which are CPU-bound except for stuff running in the background. 2 gigs of memory benefits me because I never have to swap and I have a huge amount of disk cache. For what I do, that's a lot faster.
I need a second monitor so I can have code in one and docs and terminals in the other. The only things that take a significant amount of CPU power are the compiles and the project once it's running, everything else is negligible.
"Seriously, the gains in application switching and overall system responsiveness have spoiled me. I'm not going back to single CPU systems ever again."
The responsiveness of the Linux 2.6 kernel (and FreeBSD 5.x if I were inclined to use it) has spoiled me. It's very good at figuring out which applications are interactive and it's good running them in short order when they become runnable. Some benchmarks I saw a while ago indicated that it can do it in under a millisecond. It slows down CPU-bound threads a little bit because they are preempted, but I don't care because they're chewing on stuff in the background. I don't notice if a 10-minute compile takes a few seconds longer.
As long as my music doesn't skip and Firefox stays responsive while I'm compiling a big project, I don't really care how it does it. I do care that I paid less than half of what Apple wanted for the minimum machine that would have met my needs (PowerMac with 2 gb memory).
Click-hold is a solution for some problems, but the number of combinations required is pretty large and there's really only three different one-button clicks that are easy to do (click, double-click, click-hold).