 |
|  |
 |
|
Asher
|
 |
Calgary, Alberta
Nov 1999 time: 22:17
|
|
http://news.zdnet.co.uk/software/li...39189593,00.htm
quote: The ups and downs of life with Linus
Ingrid Marson in Brussels
ZDNet UK
March 01, 2005, 18:15 GMT
FOSDEM: He may be the saint of the Linux community, but it sounds like Linus Torvalds - with his secret security fixes - could still be a challenge to work with
Linux kernel maintainer Alan Cox has given an insight into the experience of working with Linus Torvalds, the founder of Linux who maintains its development kernel.
During a talk last weekend at the Free and Open source Software Developers European Meeting, FOSDEM, on the challenges of maintaining a stable Linux kernel, Cox revealed that although Linus is good at developing code, he does not enjoy some of the other jobs that go along with software development such as bug fixing and beta testing.
"Linus is a good developer, but is a terrible engineer," said Cox. "I'm sure he would agree with that."
Cox explained that he and Torvalds sometimes have different approaches to fixing a problem, due in part to their different responsibilities. As the maintainer of the development kernel Torvalds needs make sure the kernel code is easy to maintain, while Cox is more interested in kernel stability and is not so worried about "hacking" the code to get it to work.
"One of the hard problems to fix are design errors," said Cox. "These are a pain because they need a lot of refactoring. Linus' approach is to re-write it to a better design. But to get a stable kernel you tend to do small horrible fixes. Linus is very keen to have maintainable code, while to have a stable kernel I'm keen to have code that works."
Cox said that Torvalds does not always let people know when he has fixed a security bug in the kernel. This can be a problem as the patch will take a while to make it to production, which means that hackers can exploit the vulnerability before it is made available to individuals and enterprises running Linux.
"Linus has this bad habit of fixing security holes quietly," said Cox. "This is a bad idea as some people read all the kernel patches to find the security holes."
Linux enjoys a reputation as a particulary secure operating system, compared to rivals such as Microsoft's Windows. Last month a mailing list was set up to help Linux kernel developers share information on security flaws.
Deciding what bugs to fix in the Linux kernel is not always easy, particularly as fixing it can impact other applications. Cox said he gives top priority to bugs that are reported soon after the release candidate is made available.
"Release candidates will pick out a lot of the stupid bugs, and what are plain stupid ideas," said Cox. "Two or three days after the release candidate we will have 150 emails with same bugs."
These early issues can be easy to fix as they are often obvious bugs. "Early problems you get are normally very easy to fix," said Cox. "As soon as the release comes out bug reports say 'You've broken this'. Almost immediately you go, 'Whoops, that’s my mistake'. Ten minutes later the fix is in the development tree."
But kernel bugs that appear easy to fix can be misleading. "Sometimes you see a fix and think 'this is perfect, move my fix into the kernel tree'," said Cox. "Later you think, 'I must have been drunk. Don't apply that patch'." |
I've always been of the opinion that the Linux kernel design is both antiquated and a kludgey mess. Then again, that opinion may have been influenced by my OS Design prof who had only bad things to say about it...
It's nice to see that Alan Cox seems to agree. Not everyone involved in the development process lacks good judgement...
|
|
|  |
 |
|
Ari Rahikkala
|
 |
Unreported loss of streaming in atomic read operation
Oct 1999 time: 07:17
|
|
I hope you realised that whether you're right or not, your opinion has nothing to do with Alan Cox's opinion . The article didn't state anything about whether Linux's design is good or not, it stated that Linus is not a good engineer because he only really cares about hacking the code to make it better for further hacking, while a good engineer should try to keep the product stable and hunt bugs zealously.
Now, I actually disagree with Alan Cox. Torvalds is a good programmer, nothing remarkable as a computer scientist, though. He's much more remarkable as... wait for it... a manager and as an advertiser.
If you've ever read the LKML, you've probably noticed that one of the things that people just love doing there is flaming away at each other as if they had more time for inventing new, interesting kinds of verbal abuse than for developing the kernel. It's a very libertarian place and definitely chaotic at times, but the people there still manage to get things done. I don't really know how it works, and honestly my only guess is that Torvalds somehow figured out how to either attract only very thick-skinned people or make those who would get insulted by aspersions being cast on their skills grow a thicker skin. Nowadays he somehow manages the place by not really managing it at all...
As an advertiser... well, this is a bit simpler. That man keeps giving interviews and throwing soundbites left and right *under the pretense that all he's really interested in is hacking the kernel*. He spends hours convincing people that he's not spending hours convincing people about things, and for some reason it seems to work.
I'm not going to argue with you about the design or the quality of the kernel itself, BTW. I'll just leave you with this quote, after all, quotes make you smart :
"Dont forget that Linux became only possible because 20 years of OS research was carefully studied, analyzed, discussed and thrown away."
-- Ingo Molnar
|
|
|  |
 |
|
Asher
|
 |
Calgary, Alberta
Nov 1999 time: 22:17
|
|
I agree with the statement that he's not a good engineer, in that the software is not well-designed. He may be a good software developer, as in a programmer, but I don't think he's even very good with that, either.
I very much disagree with Ingo Molnar's quote, mainly because it doesn't make any sense. The purpose of Linux was a free Minix clone, and was started by an undergrad student and hacked and kludged from that point on. It's not because of 20 years of OS research that was studied, it was based on having a free clone of Minix with what basic OS knowledge a Finnish undergrad student has.
If Linus actually knew about making maintainble code, the last thing he would've done was opt for a monolithic kernel.
As for his management abilities, I again very much disagree. What evidence do we have for his abilities? The incredibly-delayed 2.4 kernel? The buggy, delayed release of the 2.6 kernel? The "secret" undocumented security fixes? The fact that he's a megalomaniac with a "what I say goes" attitude?
Ironically, it was Windows NT that started with the perspective of 20+ years or research and OS development, where the designers (who happened to be far more qualified than Linus) rethought a lot of the OS design and threw out what didn't work, and tried some new things.
You'll be hard-pressed to find someone who studies Operating System design at a high academic level to say the Linux kernel is a better design than the NT kernel.
|
|
|  |
 |
|
Ari Rahikkala
|
 |
Unreported loss of streaming in atomic read operation
Oct 1999 time: 07:17
|
|
quote: Originally posted by Asher
I agree with the statement that he's not a good engineer, in that the software is not well-designed. He may be a good software developer, as in a programmer, but I don't think he's even very good with that, either. |
I don't really care much about Linus's programming ability, to be honest. If he really was too bad for the job and somebody else was better, I trust the kernel *would* be forked.
quote: As for his management abilities, I again very much disagree. What evidence do we have for his abilities? The incredibly-delayed 2.4 kernel? The buggy, delayed release of the 2.6 kernel? The "secret" undocumented security fixes? The fact that he's a megalomaniac with a "what I say goes" attitude? |
You're one to talk about delays, aren't you ?
On the secret security fixes: Go ahead and work them out, the diffs are public . It's just a case of sanity: They don't want to scream to every script kiddie out there "Hey! This bug here is a security bug! Go exploit it before sysadmins upgrade their machines!"
On the megalomania: He can afford it. Again, if people thought there was something wrong with it, the project would be forked.
quote: Ironically, it was Windows NT that started with the perspective of 20+ years or research and OS development, where the designers (who happened to be far more qualified than Linus) rethought a lot of the OS design and threw out what didn't work, and tried some new things.
You'll be hard-pressed to find someone who studies Operating System design at a high academic level to say the Linux kernel is a better design than the NT kernel. |
I'd love to discuss operating system design, but I simply don't know enough about it to put up a fight . I'll get back to you when I see a working production-quality free software microkernel that I can study and compare to the monolithic kernels... I hear The Hurd can now run on L4 well enough to execute Banner, so in a few dozen years they might be far enough to be worth looking at .
|
|
|  |
 |
|  |
 |
|
LDiCesare
|
|
La Ferté sous Jouarre France
Jan 2001 time: 05:17
|
|
quote: As the maintainer of the development kernel Torvalds needs make sure the kernel code is easy to maintain, while Cox is more interested in kernel stability and is not so worried about "hacking" the code to get it to work.
"One of the hard problems to fix are design errors," said Cox. "These are a pain because they need a lot of refactoring. Linus' approach is to re-write it to a better design. But to get a stable kernel you tend to do small horrible fixes. Linus is very keen to have maintainable code, while to have a stable kernel I'm keen to have code that works." |
Reading this, to me, Linus codes better than Cox. At least his approach is safer in the long run. If Cox advocates makings small dirty hacks so you have something stable versus keeping the code maintainable, well, he's gonna run into a wall someday. You can fix with a kludge (hotfixes/service packs in the commercial world) but in the long run, you must refactor and rewrite. So to me, Cox is essentially saying he's a worse programmer than Torvalds here.
|
|
|  |
 |
|  |
 |
|
Urban Ranger
|
|
Apolyton Duke of Off-Topic
|
|
quote: Originally posted by Asher
I agree with the statement that he's not a good engineer, in that the software is not well-designed. |
That's not what Cox actually said, if you RTFA.
quote:
"One of the hard problems to fix are design errors," said Cox. "These are a pain because they need a lot of refactoring. Linus' approach is to re-write it to a better design. But to get a stable kernel you tend to do small horrible fixes. Linus is very keen to have maintainable code, while to have a stable kernel I'm keen to have code that works." |
[empahsis mine]
quote: Originally posted by Asher
I very much disagree with Ingo Molnar's quote, mainly because it doesn't make any sense. The purpose of Linux was a free Minix clone |
What are you talking about? Minix is already free. Trovalds wanted to write his own Unix clone, so he started with Minix code.
quote: Originally posted by Asher
It's not because of 20 years of OS research that was studied |
That's okay. None of the mainstream operating systems are.
quote: Originally posted by Asher
If Linus actually knew about making maintainble code, the last thing he would've done was opt for a monolithic kernel. |
Go ahead, display your "awesome" knowledge. 
The Linux kernel is monolithic in the sense that a lot of device support, etc. goes into the kernel (although if you are careful you can take them out as modules). But, you can highly optimise GNU/Linux for your system, completely unlike another (in)famous operating system.
It is not monolithic in the sense that thousands of lines of code are in one big blob, with functions from various parts mixed together. Again unlike the same other operating system.
quote: Originally posted by Asher
Ironically, it was Windows NT that started with the perspective of 20+ years or research and OS development, where the designers (who happened to be far more qualified than Linus) rethought a lot of the OS design and threw out what didn't work, and tried some new things. |
Is that why a bad device driver can bring down an entire NT system?
quote: Originally posted by Asher
The incredibly-delayed 2.4 kernel? The buggy, delayed release of the 2.6 kernel? The "secret" undocumented security fixes? |
My sides. 
This wouldn't be nearly as funny if Windows aren't as bad.
Incredibly delayed - first Windows 2000, then "Longhorn."
Buggy - Microsoft software is notorious for bugs. Everybody knows that.
quote: Originally posted by Asher
You'll be hard-pressed to find someone who studies Operating System design at a high academic level to say the Linux kernel is a better design than the NT kernel. |
That's fallacious, since the source code for NT is not open for public viewing.
Last edited by Urban Ranger on 03-03-2005 at 07:34
|
|
|  |
 |
|
Asher
|
 |
Calgary, Alberta
Nov 1999 time: 22:17
|
|
quote: Originally posted by Urban Ranger
What are you talking about? Minix is already free. Trovalds wanted to write his own Unix clone, so he started with Minix code. |
Brush up on your history old man, Minix 1.0 was $169, which spurred Linus to create Linux.
Minix 2.0 and beyond were free.
quote: That's okay. None of the mainstream operating systems are. |
NT and OS/2 were...if you knew your history and who designed them, at least.
quote: Go ahead, display your "awesome" knowledge. 
The Linux kernel is monolithic in the sense that a lot of device support, etc. goes into the kernel (although if you are careful you can take them out as modules). But, you can highly optimise GNU/Linux for your system, completely unlike another (in)famous operating system.
It is not monolithic in the sense that thousands of lines of code are in one big blob, with functions from various parts mixed together. Again unlike the same other operating system. |
It is monolithic by definition. Period. Linus admits it. I have no idea why you're arguing this.
The linux kernel is monolithic...straight-up, undeniable fact from the creator and maintainer himself. The fact that you don't entirely agree is just saying a lot about what you think you know, but don't.
quote: Is that why a bad device driver can bring down an entire NT system? |
I said pseudo-microkernel for a reason. Hell, NT 3.0 still kept the device driver in userland. It was moved into kernelspace for performance reasons in NT 4.0 and beyond.
quote: That's fallacious, since the source code for NT is not open for public viewing. |
You don't need the source code to talk about its design -- its design is well documented.
Even then, pretty much any University professor and researcher is given access to the NT source code, once they ask and sign some agreements not to distribute it.
It's only fallacious to you because the people who actually know their sh*t disagree with the fundamentals behind the Linux kernel.
There's some fundamental reasons why the Linux kernel has far more security vulnerabilities than the NT kernel, and the main reason is the entire kernel shares the same memory space -- while Darwin/MachBSD and NT do not.
It's easier and more "oldschool" to do it like Linux did, it's considered proper to do it like NT and Darwin did.
|
|
|  |
 |
|
Asher
|
 |
Calgary, Alberta
Nov 1999 time: 22:17
|
|
Read this before you talk anymore, UR. It'll help you understand just what you're talking about.
http://www.bellevuelinux.org/obsolete.html
Some excerpts:
quote: 1. MICROKERNEL VS MONOLITHIC SYSTEM
Most older operating systems are monolithic, that is, the whole operating
system is a single a.out file that runs in 'kernel mode.' This binary
contains the process management, memory management, file system and the
rest. Examples of such systems are UNIX, MS-DOS, VMS, MVS, OS/360,
MULTICS, and many more.
The alternative is a microkernel-based system, in which most of the OS
runs as separate processes, mostly outside the kernel. They communicate
by message passing. The kernel's job is to handle the message passing,
interrupt handling, low-level process management, and possibly the I/O.
Examples of this design are the RC4000, Amoeba, Chorus, Mach, and the
not-yet-released Windows/NT.
While I could go into a long story here about the relative merits of the
two designs, suffice it to say that among the people who actually design
operating systems, the debate is essentially over. Microkernels have won.
The only real argument for monolithic systems was performance, and there
is now enough evidence showing that microkernel systems can be just as
fast as monolithic systems (e.g., Rick Rashid has published papers
comparing Mach 3.0 to monolithic systems) that it is now all over but
the shoutin`. |
|
|
|  |
 |
|
Ari Rahikkala
|
 |
Unreported loss of streaming in atomic read operation
Oct 1999 time: 07:17
|
|
quote: Originally posted by Asher
But the Linux geeks (including Linus himself IIRC) flamed MS for not making vulnerabilities public until they have a fix... |
They'd flame MS for introducing world peace if that occurred, but anyway.. as far as I understand, the logic goes like this: "A company that writes non-free software can't be trusted to spend its resources on fixing security bugs instead of, say, adding new features, since you can't actually see what changes have been made between versions. Therefore, it's better in the long run that their vulnerabilities are made public since that pressures the company to fix them". Free software is different here since you can read the diffs...
quote: If the problem is the fundamental design, why would you both forking it? There are better open source alternatives to develop, like BSD. No point in forking and hacking an already hacky mess to be better...
|
I thought Linux and at least FreeBSD actually were rather similar architecturally, but again, I didn't claim to know much about OS design in the beginning of this thread and I don't claim to know much about it now.
|
|
|  |
All times are GMT. The time now is 05:17. Apolyton Time is 00:17. |
top of page
|
|
|
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is ON
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|