Linus Does Not Scale
EmilEifrem writes: "Seems like everybody's getting more and more frustrated by Linus' (in-) ability to handle patches. Rob Landley just wrote an "RFC on Penguin Patch Management" wherein he proposes a "Penguin Patch Lieutenant" system that he believes would scale better. The full discussion can be found on the Linux kernel mailing list. Linus seems to dislike it, as usual, source code maintenance tools/organization are for wimps!, but a lot of others find it a good idea. Anyway, it's a very good read."
Why is there not a CVS for the linux kernel?
It's got to be a pretty small group of people who are annoyed by Linus' in-ability to handle patches... specifically those writing the code! I'd think it pretty important to keep those folks happy, since without them our beloved little OS wouldn't progress as quickly as it does.
"This above all, to thine own self be true"
To make a long story short; Because Linus doesn't want one. It has been proposed many, many times, but Linus has always shot it down. Logistically, it would be a bear anyway.
You know... If we had a Beowulf Cluster of Linuses...
*rimshot*
How about a RAIKA? A redundant array of Kernel Admins? Maybe keep them hot-swapable? That way, if one goes out to the pub, the other one can keep things going....
OK, I'll just shut up now...
Objects in the blog are closer then they ap
I can see where Linus is coming from; Linux and Linus Torvalds are inextricably linked in the public perception, so any huge blunders that occur with the Linux kernel will sully his reputation. If it's his reputation on the line, he probably wants to keep control of potential disasters close to him.
Better to get blamed for your own mistakes than for someone elses.
but is there really anything wrong with using CVS?
Tarsnap: Online backups for the truly paranoid
Linus seems to dislike it, as usual, source code maintenance tools/organization are for wimps!
This attitude seems pretty common, even to me, and I don't run Linux. Linus takes a lot of flack for his methods of running the kernel development, mostly from people who think that they have a better way.
Try to remember something. It's his baby. It's his kernel. He doesn't owe you a goddamned thing. And if you've got a better way, start your own Unix style OS project.
(Reminds me of the book _The Moon is a Harsh Mistress_ -- after the Revolution on the moon is complete, then all of the armchair politicos come out of the woodwork to say how it should be. The analogy to the current situation is an exercise left for the reader.)
--saint
I thoroughly agree. Like many people I hold a fair bit of respect for Linus. However, Linux is starting to get to the stage where one man cannot possibly keep up with what's going on.
With this proposed system he could still maintain control, yet pass on the mundane task of merging. Seems like a great idea.
-- main(s){printf(s="main(s){printf(s=%c%s%c,34,s,34
I personally think this is a good idea. Coordination would speed up development and improve the linux kernel
You know, with Linus's many comments about kernel latency and pre-emptive kernels, you'd think that he'd be all for imrpoving kernel development latency!
Moderation: Put your hand inside the puppet head!
not integrated into the kernel? That is FRIGHTENING!!!
It wont be long before the MS camp picks up on this and starts to use it as a weapon - not that we havnt had to wait a year or two for bug fixes from them in the past. But Mr Torvalds isn't doing himself or us any favours on this one.
David U.
# Hack the planet, it's important.
How long before the Linux kernel is forked by someone that actually does version management with CVS? Linus' Linux versions could be patched back into the CVS/Linux code, while developers could focus on the actual problems at hand instead of messing with patches, submissions and the general frustration of getting you patchest dropped by Linus.
Before everyone flames Linus for his dislike of CVS and other management tools ....
From Kernel Trap:
His general point is summarized with this statement, "One 'patch penguin' scales no better than I do. In fact, I will claim that most of them scale a whole lot worse". He goes on to explain this statement quite thoroughly, adding: " In short: don't try to come up with a 'patch penguin'. Instead try to help existing maintainers, or maybe help grow new ones. THAT is the way to scalability".
Say what you want about Linus' attitude - Having a kernel lieutenant probably wouldn't help either. Either way, there's only so much one person can do.
It all worked before because (1) Linus could wrap his head around the entire mass of kernel code, and (2) the kernel itself was much simpler, and (3) there were far fewer people submitting code to Linux.
This is all out the window now. The kernel is very large, and continues to grow, and Linus can no longer track the project just using his head.
In short, Linux is growing up. What it grows up to be I guess we'll see in a year. Either it starts using professional tools to manage this increasingly professional project, or the bloat (yes, the kernel is bloating) leads to unmanageable chaos, and the bloom goes off the Linux rose.
Slashdot angers me. Long story short, it's a bad solution for a problem already being fixed properly.
For those who don't care to read the discussion, Linus essentially feels that this is a bad idea because no general patch manager is going to scale better than he does or get burnt out less quickly than Alan Cox.
He then goes on to say that the solution to the problem of the scalability of one maintainer is to partition the different subsystems of the kernel to such an extent that there would be precious few patches that actually require a knowledge of the entire kernel source.
this same subject pops up. It's the same on Debian lists: every now and then people say how frustrated they are with the slow pace of releases and propose some new scheme which usually doesn't even differ from the old one.
Software problems are solved by coding. The core kernel people, like core Debian people, have thought about these things before, and are doing their best. All these blatherings do is waste everyone's time.
For example, there was a bug in the ne2000 driver that Alan Cox points out here. According to Mr. Cox, "this is one tiny example of maybe thousands of other similar flaws lurking. There is no obvious automated way to find them either."
Lots of corporate/management types have the negative impression of Linux as an OS that has no professional control over kernel development. It's seen as a souped-up hotrod modified in the garage that runs like a dream but could fall apart at any minute. Hell, even a lot of BSD people see it this way. If (*if*) a goal of the Linux community is to gain wider acceptance or be taken more seriously, one way to do that might be to give more than one person final say over the kernel.
Yeah, it's Linus' baby -- but once IBM is advertising your OS during the superbowl, it might be ok to expand the development structure a little bit.
Who is Linus?
That kid with the blanket out of Peanuts cartoons. Everyone knows that!
"Information wants to be paid"
I thought somewhere along the way, the developers that be, agreed to accept a star method. Where people submit their patches to the Lieutennants (sp?) and then they do most of the work, and then just pass them on to Linus as appropriate?
Maybe we just need more Lieutennants?
Maybe we just need fewer patches!
I will take no stance on this issue, as i only work with things that are profitable to me - I'm not a religious fanatic when it comes to Linux, *BSD, or any other operating system - I'll defend them all on their benefits and acknowledge their weaknesses. But i do need to propose the question: Do you think any other "upstart" operating system could gain the popularity and momentum of Linux?
A prediction, pulled from my ass: Here's what I think will happen.
i) A respected developer (Alan Cox, perhaps) who already has their own patch tree will open it up via some source management system
ii) Other developers, including those frustrated ones, will begin to use it, including keeping it roughly in sync with the official tree.
iii) The forked tree will develop as fast/faster than Linus' tree (assuming the pro-CVS people are right)
iv) LT will realise that its not a bad idea, and essentially adopt the forked tree as his own, complete with CVS.
In short, theoretical arguments for CVS will continue to cut little slack with LT. A demonstration of its effacacy will be very persuasive.
If (iii) is untrue, the argument will be moot anyway (why have source control if it doesn't help?)
Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
I think this problem points out the biggest issue in regards to Linux--its almost anarchist style of code development.
I think the folks at IBM and Oracle ought to seriously have a LONG talk with Linux Torvalds himself and convince him to create a true clearinghouse where every improvement is approved by a committee. That way, Linux improvements happen in an organized fashion, which makes things way easier for developers and IT managers.
The basic premise he makes is one that many developers seem to miss. To quote Linus:
From that, he goes on to point out that people tend to have a small group of people they work well with and trust; perhaps 5 - 10 people. So, in essence, if Linus appoints 5 - 10 maintainers of major subsystems (which he has), and each of them has 5 - 10 people the trust to maintain specific aspects of their subsystem, then there is no problem.We're not there yet. But that is the only direction I can see that will work, long term. It just takes time for the appropriate people to move into their spots; trust takes time to build, and the structure has taken time to modularize enough to allow this to work.
And, though I would prefer to see it in use just to make the maintainers' jobs easier, CVS will do nothing to solve the problem. It is a tool, not a process. We need a process. Actually we have a process, it just isn't fully implemented yet.
No, strike that. We have two processes. The first, used by the bulk of the kernel hackers, is not fully implemented yet. The second, used by a minority of the kernel hackers and a large part of the pretenders, is simple: whine alot, and, when that doesn't work, whine some more.
Linus says it much better, and in his own unique ... er ...
Idium, sir?
Yes, in his own, unique idium.
Now, how to move forward and expand the circle without diluting the value that he brings. Something like CVS can help, but the base problem isn't technical and the solution won't be technical, either.
The real problem is factoring out that part of the Linus load that Linus does better than anybody else can do, and offload other parts to those who can do them better than a loaded-down Linus.
The hard part for everyone, Linus included, is to understand how much the "other" part feeds into Linus's ability to do the "Linus" part.
Sometimes, even mundane tasks help you to maintain the vital connection needed to do the great things well.
I'm just glad I'm not the one having to work all of this out!
When ideals and/or ego enter the fray you have to be careful. This could alienate the very people that are needed at this time and cause Linux to loose steam. Yes, it's his toy, yes he can take his ball and go home. But hopefully this won't cause a major split similar to what happend to Unix in the 60's/70's.
Personally, I hope I'm wrong.
The simple truth is that interstellar distances will not fit into the human imagination
- Douglas Adams
I think it's only a matter of time before the official Linux kernel development switches to a "core group" model working against a private source tree using version management software rather than a straight hierarchy. Core developers can check in, everyone else sends patches. When it happens it will be quick and the scalability benefits will be obvious.
I'm not saying this as flamebait or to say so-and-so is wrong. I have a great deal of respect for Linus Torvalds but his brain-child has outgrown him and at some point he needs to let it go outside the house.
So you wouldn't be able to call it Linux? If you think you can do it better than Linus then by all means do! As long as you release the source code you are within GPL.
Copy the Linux kernel source to another location, and import it into a CVS database under a new name. Of course, then you're playing with Linux the game which BSD plays with all software projects. You'd better be sure you can organise your code to easily import features and fixes when Linus gets something you don't have.
--- Nothing clever here: move along now...
If it becomes necessary, we can always fork and branch the development tree further though that will further burden the main development branch so we'd like to avoid it if at all possible.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
I think most people who read the email assumed that the "patch penguin" was a machine with out reading the email. But the proposal is that someone (Dave Jones) take everyone's patches and filter them on to Linus.
It's not that Linus doesn't like organization, it's that he likes patches to come from maintainers. If Dave Jones gets all the patches he's going to be as overloaded as Linus is.
There is absolutely nothing wrong with using CVS. Your question raises a larger issue, however. As with any large project, it is difficult if not impossible for one person to have knowledge of the entire scope. Linux has become bigger than Linus.
From its very beginning, Linus has kept a tight rein on Linux, and everybody in general let it go if for no other reason than he's a smart guy and by God, he wrote the thing! Don't get me wrong. That was a Good Thing (tm). Now, however, we are finding that it is becoming less and less practical for Linus to handle all of the patches.
Linux is becoming more and more like a cathedral and less and less like the bazaar. Whether he likes it or not, for Linux to continue to thrive (perhaps even to continue as we know it) Linus is going to have to decentralize the way patches are brought into Linux. I don't claim to have all the answers, but there must be a way to make a CVS-a-like system work and keep Linus' ability to make the final say if he wants to. Another alternative is for Linus to put more trust in his maintainers and let them accept patches for their respective subsystems.
The problem here is the star network topology that we have with respect to patches. If Linus is not willing to release his hold on the center of that star, then Linux could have a MAJOR problem!
Ben
Correct me if I wrong, but I don't see any good reason why a very big project (Linux kernel) still has one maintainer for active development.
Now I'm no kernel hacker, but I do think the current system could use some improvement. Wouldn't it make sense for the kernel to be split into sections (device drivers, memory/thread manager, etc) with each section having a maintainer and one "integration manager"? (Applicable areas that could be subdivided, like drivers, could divide by type again.) If the system were properly modular, the integration manager would just have to make sure that the interfaces between the systems were well designed, don't change frequently, are thourally examined between changes, and that when they must change they are reimplemented nearly simultaniously in all affected subsystems. (Hopefully, any given subsystem could also undergo rewrites without affecting other subsytem code.) Again, I'm not seriously looked into the kernel code (yet!) so I have no idea how things work right now... but the scale IMHO requires a division of the labor. (Formatting the code to match would serve to further reduce the labor involved in maintainance.)
Do you like Japanese imports?
So everyone is supposed to have their own copy of the tree to make patches to? Without a 'source' CVS to sync it up to before submitting a patch, why would anyone WANT do that?
What if I submit my patch, and make changes that conflict with SamtheEagle's source tree he's workting off of?
I think there should be a source CVS tree, that Linus maintains. Before I submit my patch, I should sync my CVS to Linus', and apply the patch. Then submit the patch, referring to the current tag on the source CVS maintained by Linus. That way, Linus can apply all patches serially, and make requests to developers to resync submitted patches, when a new CVS tag is created.
No 'patch' management program, just a way to serialize patches for applying to the source.
"I can't give you a brain, so I'll give you a diploma" - The Great Oz (blatently stolen sig)
I think I'm not alone when I say that, when I came to linux a few years ago, I was very impressed. Stability, speed, tons of functions, and a lot of configuration...
Well, that was all well and good. What was not all well and good is that, like so many others, I didn't actually write anything for the kernel. I assumed it was in good, and (as I have no real OS-level programming experience) more capable hands. I know that was what I was thinking when I explained to others why linux was so cool, and would always keep getting better. People would keep on sending in improvements, and these improvements, when approved for absolute stabiity (Alan Cox's old job mentioned in the leter, wasn't it?), they would be integrated into the sacred source.
Sigh. Well, that assumes the improvements get accepted or even seen in the first place, doesn't it? Linux is a huge development project (I mean, come on, it's an OS), and anything made in last I don't know how many years of development of any significant size had ought to have a tighter system of management; human or not. I'm a little worried that Linus has any opposition to these sorts of things. I'm actually amazed that linux got this far without more- I always assumed there were some definite mechanisms of the sort involved (hence my regret for never messing with the "sacred source"). I always just assumed there were.
Now I am surprised there wasn't a call to action before this. In a project of this nature, with so many people, projects, and significant economic forces putting their investments of time, money, and effort into this, you'd think that something would have been done when good patches started getting dropped. If that is the case something has to be done now.
Like I said, I never messed with the source. I never fixed anything; I never submitted patches; therefore I never had this problem. In short, I never knew. I was never involved, and never felt I had to be- I mean, better heads than mine were on the job, right (I said the source was "sacred")? Well, not all heads are better at everything, and I think that the more heads invoved, the better off this would be (at the very least, we would have reached this crisis point sooner and come to some decision on how to handle it). Maybe if some of the right people got in on it earlier, an appropriate management system would have been advocated and introduced- and these problems would have been minimized.
Possibly not. But more has to be done on this. Linus' counterpoints are well argued, but if lots of valuable code patches are really being (uneccesarily) lost due to the current system, are they good enough?
That's right! To help humans and the activities of these humans. Now, here we have a complex organisation-related problem (software versioning), which takes a lot of effort and energy from the human(s) involved. Instead of using computers and specialized software to HELP the humans involved and thus make the process a lot simpler, the human(s) involved disagree and try to keep the process non-automated and without computers.
Hello? What if a big company says: "To hell with computers, we do all our business-directing by hand, without decision support systems etc..", is that a clever move? No! Humans are not capable of processing a lot of complex data CORRECTLY. Computers do. Use them, whenever they can help. To avoid using computers in software versioning is IMHO one of the most stupid things you can do. What do you think, that Microsoft used Bill Gates' brain to organise the 35 million lines of sourcecode of Windows 2000?
Never underestimate the relief of true separation of Religion and State.
The economic conditions and overall attitude of the IT world was a lot less foreboding then. In the IT shops i've been in recently, Linux is a word not to be thrown around, especially on anything the investors may read. If, say, HURD or a BSD could do such a trick, i believe it would take at least $x amount of time before the world would be ready for it.
From that, he goes on to point out that people tend to have a small group of people they work well with and trust; perhaps 5 - 10 people. So, in essence, if Linus appoints 5 - 10 maintainers of major subsystems (which he has), and each of them has 5 - 10 people the trust to maintain specific aspects of their subsystem, then there is no problem.
There is theoretically no problem, when there are small 'patches' (or better: fixes for glitches) which fall totally in 1 subsystem's area. However, what if a patch spans more than one subsystem? Or better: what if a patch needs changes on another subsystem? In an OS, it's placing foundation on foundation, layer on layer, they all depend on the layers/functionality blocks below that layer. You can't just say: "Hey, John, you do VFS and you, Dave, you do the VM", because the VM needs services of the VFS and vice versa.
If you have a designmanifest which has to be implemented, you can point to people which control certain parts of the project, WHICH don't have to be subsystems necessarily (vertical segmentation), but can be seen as horizontal segmentation: one group does the core layers, other groups do the layers ontop of those core layers.
Never underestimate the relief of true separation of Religion and State.
What is the solution? There are lots of possibilities, but they all come down to either changing to some other programming language, or emulating what other programming languages have built in "by hand".
Something like an Objective-C runtime, where you can replace classes and methods at runtime and where most important function calls go through the runtime, would allow most of the kernel functionality to be changed and enhanced by separately developed modules without requiring patching all over the place. Such runtimes are very efficient and would probably not make a lot of difference in terms of performance. Another approach is a Mach-like microkernel. If people want to stay with plain C, another solution is to add lots of hooks for everything (kind of like you have in Emacs).
Even if this were to make the kernel run a little slower, what good is it to have a kernel that runs blindingly fast but doesn't do what I want and doesn't have drivers for the devices I want to use?
I'm reading lots of comments on this list about "the patch penguin will scale only as well as Linus, or maybe worse", or "Linus is right". But I'm not so sure that I agree. Having read the original proposal and the entire thread (as of last night around 1am EDT) I think that the proposal is a way of getting Linus to do what he does best (architecture) and relieving him from the mundane duties like trying to make sure that a submitted patch actually applies properly. Once the patch penguine does that kind of stuff, then Linus can review it.
Of course the advantage of this is that the mundane stuff can be done in parallel to the architectural stuff.. thus allowing more than one thing to get done at a time. Where as Linus himself can only do this serially.
The reason that this is important is that there is a very large backlog of patches that are simply not getting applied. Allegedly the whole VM issue could have been resolved if Linus had enough time to look at and apply RvR's patches. What this means is that Linux, with the inability of kernel maintainers to effectively submit patches, is turning into Minix. Remember that Linux was born out of Linus & others reaction to the fact that patches submitted to Minix couldn't get applied and redistributed (for copyright reasons). Which meant that in order to get a reasonable system, you first had to download the unpatched code, then go through a little patch-o-rama. It was ineffective. The current patch log reminds some of that situation, and has some fearing a potential kernel fork.
Of course, the biggest question that I have for the proposal is that Rob wants to just "formalize" a position that already exists and is being done, to some extent, already. If the position is already in place and already operating, then why is there still a patch backlog? How does formalizing it actually improve the situation?
Key to financial independence: Spend less than you earn. Save and invest the difference. Do it for a long time.
Disclaimer: I'm a FreeBSD fan and generally consider Linux et al to be one of the most choatic and sloppy large-scale development projects ever created. Just being a Linux user requires dealing with an absolutely insane about of pointless choas; I fear to imagine what trying to be a maintainer must be like...
That said...
"Just use CVS" isn't anything remotely close to an answer. SCM, release control, whatever you'd like to call it is 99% about the PROCESS, not the tools. CVS is a tool. It's a great tool and one I highly recommend, but at best it's 1% of a solution. It seems quite obvious that Linus's current process is incredibly flawed. It would seem a drastically different process needs to be devised. Only once you have figured out what your process is going to be can you even start shopping for tools (CVS, whatever) to help you create it (and even then...the tools are only 1%, if you even have tools. The PROCESS is what's important).
Of course "CVS forks" of Linux failed. Anyone with even the slightest understanding of CM could have easily predicted such an end. You've got a handful of people, not even the top people, trying to constantly fold in the efforts of thousands of contributers all using a completely different process (ad-hoc patches emailed to devnull@linus.org). What did you expect?
You have two choices. Devise a workable process which Linus will agree to (with or without CVS, whatever). Or, you can devise a workable process that everyone else is happy with...and simply throw Linus off his paper throne. The first option will likely never, ever happen...at least if every single word Linus has ever uttered on the subject isn't true. The second option might actually welcome the dawn of a non-choatic Linux, one which wouldn't be so easily cast aside as a cheap toy made by a small man with a big ego.
Linux/Linus Flame (-1k Karma)
My
some of us want to continue building the house on the solid foundation that was laid by linus et. al.
really... at some point you have to say that your base is "good enough" and we dont need to start over repouring the foundation. screw that. we've got a good thing going, now lets get some killer apps running...
... hi bingo
If you read Linus' reply to this you'll see he argues that the 'patch penguin' merely replaces him with someone else, and does not actually help distribute the work. He also comments that it may be better to submit patches to subsystem maintainers.
This being the case, why not just automate that? Subsystem maintainers are effectively maintainers for a known group of source files. Its not hard to figure out (automatically) from a patch which files are affected - and from that, which maintainer(s) the patch is relevant to. Given how Linus describes his 'trust network' it looks like he wants a hierarchy of subsystem managers who can merge patches for him to accept upstream. I can see that scaling a lot better than the proposal in the article.
For this to work of course, you'd have to hope the patches had reasonably local scope - if most patches affect >1 subsystem this isnt worth doing at all.
- Baz
The whole kernel thing has to stop being like the Holy Roman Church and more like a democracy. Although commercial, closed software benefits from a hierarchical leadership system where a small number of people have the final say on where a product is going, an open project that is so visible as Linux needs a more "for the people, by the people" approach. I understand the need for one person to maintain a semblance of control, the entire decision process as far as Linux is concerned is hampered by the autocratic style under which it has operated since it began to grow so explosively.
Linux doesn't need a "patch manager", it needs a House Of Commons or a Congress or whatever you want to call it. It can't do away with the president and the chiefs of staff, but it has to have a heck of a lot more checks and balances than it does now. And it definitely needs to be a lot less autocratic.
Eventually, we're going to see more and more forks as people begin to understand that the OS is no longer Alan and Linus' own private playground but a heritage of the people who use it every day. While they bicker and fight over who gets to play king on a given week, someone is going to pull the rug from under them. Royalty has always been tolerated while the populace is enamored with its trappings, but revolutions do happen once in a while.
I'm sure Linus is healthy and a good driver, but as misfortune befell a former colleague at another job (her car was parked at a light on the off-ramp which was below the highway, a driver from the other direction suffered a cardiac arrest, crossed the median and opposite lanes and went airborne, landing on her car as she waited for the light to change. Gone, just like that,) unfortunate things happen. It would be very tragic for his wife and child to lose a father. It would be a disaster for Linux, as the unifying person would be gone and in the aftermath someone would have to take control. I imagine Linus has already considered this, but his tight grip on the kernel is a bit worrying. He should delegate more.
A feeling of having made the same mistake before: Deja Foobar
Equally, get IBM/RHAT/other sponsor to donate a whole load of different hardware. Write a autobuilding process that runs lots of little tests -- puts up ethernet connections, pings the framebuffer, etcetc. If the machine is down, then the most recent patches broke it.
Mozilla development does this, but is obviously easier as it's not the Operating System they're testing, just a single application.
-- Azaroth
"...source code maintenance tools/organization are for wimps!"
I almost don't believe what I'm hearing. How do you manage development branches? How do you roll back your code to undo an enhancement you thought would work? How do know which bug fixes are tied to a particular instance of code? Wimp? More like "anyone who ISN'T using source code maintenance is a fool."
A lot of people have said CVS could not work, agreeing with Linus. Yet FreeBSD uses a CVS tree with multiple committers, and has had no serious problems that I am aware of. Infact, I would say they have had less problems than linux has had in the last few years.
cjk
Toothpaste likes you
You will forget this sig before you next see it
This is a basic principle of leadership/management that the Army calls "span of control".
It has been proven (through all kinds of research) that any one person has difficulty controlling much more than 10 individuals, with 8 being a practical maximum.
This is why military units are organized in strict tree structures - at no point does any one leader exceed his span of control.
So an 8-man infantry section is controlled by a Section Commander (which can be further broken down to 2 4-man fire teams, but rarely). 4 sections report to a Platoon Commander. 4 Platoons report to a Company Commander. 4 Companies report to a Battalion Commander, and so on through Regiments, Brigades, Divsions, and so forth.
In this manner, the several thousand men in a large formation like a Division can be commanded by one man.
Further aiding the General in charge of the Division is that each sub-unit is granted a certain amount of autonomy within certain boundries. As you go up the chain, orders become more general (2 Battalion is to attack objective Oscar) and as you go down the chain, orders become more specific (Bob, you're carrying the machine gun)
While Linux development does not require this level of structure (and indeed, would probably suffer if this many authority-resistant cats were forced into such a regimented structure) the basic principle of "span of control" is still applicable.
The obvious correct solution is to modularize the kernel into subsections with clearly defined areas of responsibility, with a "mini-Linus" (who Linus trusts) granted control over each module.
Not suprisingly, this is what Linus has suggested.
The trick (and the catch) is two-fold. Firstly, you have to find people who are both responsible enough to be able to act as a "mini-Linus" without dropping the ball (which means Linus has to trust them too) and secondly, the kernel has to be modular enough so that changes in Module A do not step on or otherwise negatively impact code in Module B.
That's a hard row to hoe.
What I find a little distressing is that there appears to be a whiff of revolution in the air; of people talking about overthrowing Linus (and Alan Cox seems to be among them) This will not solve the problem. It is not that **Linus** doesn't scale, but rather that any single maintainer doesn't scale. Any revolution will just be "same shit, different name"
CVS doesn't solve the problem either, as anyone with commit privilages can jsut dump anything they want in there, and it becomes canon. Linus' function as a shit filter is very very important. every patch *must* be audited by someone with very high standards before it goes in.
I hope the crew rallies around Linus - as usual, he's right.
DG
Want to learn about race cars? Read my Book
Some 20 years ago, another open source operating system development group[*] had the same problem. At that point, several people had access to the source tree, each one supervising a certain area, reviewing and accepting patches for his area.
When that wasn't enough any more, several people were brought aboard to handle one area.
That's how things still work today, with a core team doing architectural guidance, developers who have write access to the source tree and who can make modifications on their own, of sent in by contributors and reviewed by the developers.
- Hubert
[*] The Computer Science Research Group, working on the Berkeley System Distribution's Unix variant.
Sorry but Linus Does Not Scale is a false statement. Who could say that (s)he could do better than Linus does.
It is an organizational problem. I think a system like bugzilla or another colaborative framework could be the solution.
The only matter is to find someone who as time and capalbilities to do and deploy it.
its easy to see why there will be no consolidated cvs tree for linux. that would make it too bsdish in developmental terms. shock horror gasp! we cant go against the gnu dogma! having subsystem maintainers (aka 'core') commit patches, well we cant move from a 'bazaar' to a 'cathedral' can we? that'd be sleeping with the enemy.
no sig for you
How about we set up a fund so that Linus can work on Linux full-time, instead of needing a day job? That's not a permanent fix, but it would help for a while.
As "president" of FreeBSD. Then he had the courage to step down and become a "normal" member of the "core-group", a collective in which every member has the main responsability for a part of the FreeBSD code. Apart from the core group there are other committers but the core group decides who these are and can revoke commit-rights in cases of abuse.
This is a nice distributed system that continues to work very well when the load gets higher; also noone is indispensible, noone has to be afraid what would happen to FreeBSD if a certain person would somehow drop out.
Of course Linus has every right in the world to remain the status quo, even if it damages Linux. After all Linux is his baby and he can do with it what he likes. Whether it is a good idea to rely on an OS with this kind of a leadership structure is another matter however. But noone can force Linus to change, since he doesn't force anyone to use Linux (take it or leave it).
Imagine the terror of a 50 foot tall Finnish programmer wandering the streets.
Now let's just hope RMS doesn't scale either.
Microsoft must be laughing
Well, I can't claim any insider knowledge, but I bet that all kind of crap goes on within the MS development teams that we never hear about.
When you've got a lot of bright people working hard on a very big, complex thing, something would be very wrong if you didn't get these kind of problems arising occasionally.
Personally, I think Linus is right, and all those people who are bitching should sit down and think for a moment, and perhaps think of ways they can help to make Linus's very hard task a little easier, rather than just complaining.
Assuming the kernal can get to the point where it can be successfully modularized to the point where changes in a given module are localized to the scope of that module (and let's be honest, that's a Mighty Big "If") then Linus doesn't have to give up the level of fine-grained control he likes. He can focus his attention on individual trouble spots, secure in the knowledge that the "mini-Linusen" are holding the fort while his attention is elsewhere.
Successful Generals lead from the front. Really successful Generals (Patton!) are not only at the front, but have the ability to select the portion of the front which most needs them at that particular instant.
WWI taught that lesson. Generals who sit behind the front lines waiting for information to reach them are too far away in both distance and TIME to be able to affect the outcome of the battle.
But I agree that the sticky part is getting this structure set up. Once in place, it works, and it offers the best chance of success from all points of view (quality control for Linus, patch responsiveness for individual coders)
I think the first step is for everyone working on the kernel to - on their own - determine who their subsection maintainer is, and only submit patches to them: this is another principle of leadership called "chain of command" and frees up Linus to do more "battalion" orders and less "Bob" orders.
But it has to be done SOON. I think it's clear that Linus IS losing control of the kernel - no WAY should that bogus "preemptable kernel patch" that keeps circulating have the life that it does - and Linus' control has been key to the quality control that has worked so well to date. The less influence Linus has, the more willing people are to put up with bogus and wrong code in the kernel, and the more quality suffers.
DG
Want to learn about race cars? Read my Book
If people submit crap into CVS (or Subversion, or Aegis, or SCCS, or CSSC, or RCS, or whatever fabled system may be out there), what you've got is crap in the kernel.
Automated tools have merits, but one demerit is that they make it easier for people to submit a thousand bad
patches per day
The wonderful relevant quote, from Mitch Radcliffe:
Computers
let you make more mistakes faster than any other
invention in human history, with the possible exception of handguns
and tequila.
Any would-be fork has to put a lot more thought into the political processes than into the technicalities of which version management software to use, otherwise you're arming the teeming masses with tequila and handguns, and that's hardly going to lead to reliable kernels :-).
If you're not part of the solution, you're part of the precipitate.
Linus and team are architects of technology, the distributions are architects of product. This same scenario goes on in the large Unix system development houses too.
Often there is conflict between the two in terms of goals/objectives, key values, processes, tools, practices, timelines, etc...
Understanding the key values of each team is critical in developing the correct practices, tools, and processes for the teams.
The challenge, I think, for the Open Source Community is to develop tools that will respond to different team values and practices, which results in providing support for the individuals to achieve their objective.
Regards,
Kramer
I think there is a possible solution, if we look
closely at what Linus was saying. He talks about
evolution. He talks about him not being
indispensable. He likes module maintainers. This
is all a part of the solution. The only problem is
that people percieve multiple competing kernels as
a big problem.
The perfect solution would be to have each module
maintainer release their own kernels, maybe not
naming it like -ac but -scsi or -net. These kernels
should only have only those module patches and must
be synced with Linus's kernel. Anybody developing
a patch needs to look into which kernel suits his
work most and sends it to the maintainer. The
maintainer adds it if it fits his kernel, other
wise the guy needs to try a different maintainer.
Once a patch is accepted into one of kernels its
the maintainers headache to sync with Linus. Linus
will be happy and everybody knows that their
changes have been included.
In many of the posts (yes I read the whole thread) people state things like this:
"I perceive this to be true. Any objections? Now, since we've agreed this is a global constraint, here is a consequence of the aformentioned thing that I believe to be obvious and thus not requiring any objective support"
Then the other kernel hackers argue about the conclusions (which are typically quite logical) rather than the premises.
Here's an example from Linus: Now, I personally have worked with well over a hundred people, and I know that there are other humans who can do it (granted, it's a somewhat rare ability - like programming or musical talent). But nobody bothers to point out that Linus is committing the fundamental logical fallacy of ascribing his own attributes to all other humans.
More from the same post:and again:
Linus, I have tremendous respect for you (and I still regret the conversation we had at LinuxWorld that I'm sure you don't remember) but I think that these "obvious truths" are not obvious at all, and that more "thinking things through" may be required on your part. You do not have the same social or organizational abilities as all other humans.
Alan is one of the very few people on the LKML (as far as I can see) with the balls to say that important stuff is being dropped because the authors don't have name-recognition with Linus. Ingo has that name-recognition, so his patches get respect, and consequently he finds ways to excuse the (mis)handling of others' patches. Sorry, Ingo, but that's what I see.
--Charlie
Here's the Linux version:
-- @rjamestaylor on Ello
I think Professor Tanenbaum is laughing.
Its a lot easier to controll religious sheepeople than to control cats. If the typical religious person differed in perspective from the 'flock' as much as kernel developers differed from Linus, we'd have about 1000x more religions, or, at least a lot less religious thought. Both good things.
For me, I prefer cats.. They're so busy diagreeing with each other that they don't have time to fuck over my life.
I think some of you are forgetting that Linux is open source. If you want a version of Linux that has a different style of upgrading features and providing patches than what Linus does, then start your own version of Linux so you can do it the way you see fit. Isn't this one reason it's open source?
Its sloppy, yes, if you keep up with the bleeding edge. But, the bleeding edge is always sloppy. Linux, because it has the number of developers and a well known mailing list exposes that slop to the public.
I wonder, how sloppy would freeBSD development be if you synced your kernel hourly with the dev kernels? How buggy would it be? What does the interdeveloper mail look like in the freebad world?
I run kernels over a year old. There's no slop. I'm (mostly) happy. In about 6 months, I'll switch to 2.4.
If you want less slop, stick with a distribution kernel. They've chosen and tested it out to be stable and reliable.
IMHO (very humble in this case as far al kernel hacking goes, but I have been writing software for a decade, using various source control systems for half of that) the fact that Linus doesn't use any kind of source control/version tracking system is immature, stupid, counterproductive and just plain wrong on his part. It's shortsighted that a project of that size and importance depends on the buddy-system (ie Alan Cox has the source as well, etc..) for backups and revision tracking. When I write a few 100's of lines of utility code that i intend to keep, you bet it's in CVS!
No, CVS or other source control is not a magic bullet, you have to use it right. But if you don't have one, you don't even have a gun.
I'm not saying he should have a CVS tree with every joe haxor and their dog allowed to write to it. But no version history and change tracking capability at all! Gibber!
My Karma: ran over your Dogma
StrawberryFrog
First of, Linus is Right. There, I said it. Why?
Because 10 is the practical limit to the number of people any project manager can be expected to directly deal with. And five is 'almost perfect'. Now, I will agree that, from a technical standpoint, Linus might need a second, not just for the "Bus Factor", but also for sanity-checking sake, to help smooth out issues where others might complain that Linus is playing napoleon. "Well, Alan agrees with me, so suck it"
I also think that we need to start thinking of development along honest PM guidelines. And Linus is right, here again. The maintainers for the various modules should be accepting and testing packages. OR, we need a set of people who will be responsible for various functional units of kernel design, a Portability Penguin, a Process Penguin, a Memory Subsystem Penguin, a Filesystem Penguin, a Networking Penguin, &c, who collect patches from the various maintainers. An org. chart where any single node has more than ten connections is useless, just as Linus suggests. These various, and God Help me, Project Managers, would be responsible for accepting patches and making sure they worked with the more core systems, and that things should be checked from whatever the most central modules are to the rest. And it all needs to be documented. There needs to be a Documentation Penguin, too. Dear god, people. Maybe we should all go read the Mythical Man-Month or something.
But then, I'm a freak. You can't build a car in a Bazaar.
(How many down-mods do I get for a catchy title like that??)
I think the problem is that the developers are arranged in the reverse of how they need to be. Linus has chosen the role of point man for advanced development. All very well, it's his baby. But lots of people, like me, need a stable kernel. We want the ultimate sign-off to come from quality control. The problem is that QC is subordinate to Linus. The patch penguin proposal doesn't do anything to fix the problem.
Ala Cox did a fine job on 2.2 as QC manager. Linus was off putting in new stuff. Trouble was, a lot of those neat new things never made it up to the quality needed for inclusion into a stable kernel. As a result, 2.2 stagnated somewhat, and when Linus decided 2.4's time had come, there was a major hiccup.
Will the same thing happen to 2.4/2.5? I wouldn't bet against it, unfortunately. It looks like cleaning up the mess that Linus left (like the VM issues) is going to take a while. By that time, 2.5 may be too far ahead to incorporate new stuff while maintaining quality.
If my thesis is right, what is needed is some way to bridge the gap between the development and the stable branches. Perhaps the "group of developers" can fill this, with the equivalent of a perl pump-king doing the final QC, with the final say as to what gets in and what doesn't. This would reduce the discontinuities when Linus says, "OK, now we're ready to start doing 2.6 or 3.0."
Maybe it's a revolt, but isn't this a revolution?
Nobody is stopping anyone from writing a kernel patch management system. Perhaps, after a dozen or attempts, somebody will write a system that is simple enough, fast enough and good enough by various other criteria so that enough people will gradually start using it in large numbers, just like sourceforge, slashcode, cvs or diff and patch.
The likelihood that anyone will get it right on the first attempt is low. So, I think it would be courting disaster for the Linux kernel development community to commit to such a system in advance.
Did ANYBODY on /. actually read the ML Thread on this problem the kernelpeople have?
/.ers should read the actual thread before they post every instant and absurd mindfart that comes to them. Be it about jelousy amongst kernelhackers or Linus supposedly bossing around or whatever other sorts of utter bullshit.
Rob Landley and Linux Torwalds aren't bashing their heads in on one another nor is ANYBODY of the Kernel Team about to 'dethrone' Linus. Whatever that may be.
In fact Landley suggest a "Patch Penguin' to actually EMPOWER Linus in his actuall job as an arcitect of Linux.
Linus in turn says that officially shifting patchin jobs to somebody else (the said Patch Penguin) won't save the problem of, for instance, people being to lazy to clean up their code dependencies.
Linus wants to see a sort of 'web of maintainers' where everyone knows and works with a overseeable amount of others (just like he does) rather than a big patcheritis boiling around a main single/pair/group of developers.
It may, IMHO of a absolute non-kernel savy guy, kinda boil down to the monolitic/modular kernel discussion that comes up every know and then.
Then again, on the other hand I gather the impression that Rob Langley and Linus Torwals aren't that far apart in seeing the issue that needs to be addresses rather than seeing different ways of aproaching a solution to it.
Anyhow,
We suffer more in our imagination than in reality. - Seneca
for software precisely because the "general to specific" heiearchy breaks down.
It's not enough for Linus to wave his hands and say "we need a new VM", and then Joe hacker writes one.
Joe hacker, on the bottom, is fixing typos and writing documentation. Actually, Joe Hacker is probably working on apps.
The brigade commander, in your analogy, is writing the VM in bits and pieces. Linus has to go through it carefully and apply the diffs or not. Software is all about details. There are ways (e.g. modularity and interfaces) of splitting up the work, but only to a certain extent.
Imagine a war fought almost entirely by the general staff, with their subordinates serving as assistants and sopport staff -- it's the reverse of your analogy: A small group of people at the very top write most of the code.
When in doubt, have a man come through a door with a gun in his hand.
OpenOffice and KOffice
Linus' Linux and
So there is now talk of forking Linux.... I believe that almost everyone would be better off with a single open-source system. Sorry to those whose egos might be offended: Linux/KDE+OpenOffice. The rest waste OSS resources.
Please think. Dividing weakens. Uniting strengthens.
This does nothing to help those that take on the task of seeing which "bits of crap" should stick, and which should be dropped on the floor.
I don't see that SCM automation does too much more than accelerate the rate at which crap gets thrown at the kernel.
As for the JVM-like thing, it seems unlikely to me that this would be fundamentally helpful. You would see performance really sucking, because DSP-like stuff (like image processing, audio processing, GUI rendering) massively benefits from being compiled for a specific architecture.
If you're not part of the solution, you're part of the precipitate.
After all, not everything that's (+1, interesting) has to be a good idea. ;)
Anyway, you aren't actually accopmlishing anything but attaining buzzword compliance by slapping the
"CVS" label on what is already occuring.
Think about it. At any point in time, you are still going to have your patch synched against only one 'tag' of the CVS tree. Multiple patches are going to arrive with the same 'tag', none of the patches are going to be commited to the CVS tree (and trigger a tag increment) until they satisfy Linus. If multiple patches are submitted that conflict with each other -- well, you've done nothing to change that.
In fact, there is no functional difference between what you describe and just downloading the lates kernel source and syncing your patch against that. Except it's called "CVS" instead of "kernel.org", and if the tags get incremented faster than kernel revisions then you've actually -increased- the amount of re-synching and re-submitting that needs to be done.
The enemies of Democracy are
The high-tech "telepresence" stuff is great - when it is working. The US Army has had the luxury of fighting against opponents that have not had either the equipment or the desire (or perhaps failed to see the need to) disrupt the communications networks.
:)
Had Iraq been capable of jamming communications, locating and targeting transmitters, or throwing up a better deception plan, the Yanks might have had a tougher time.
Not to mention that sometimes the damned stuff just breaks down. Radios will do funky things out in the bush.
In my armoured recce troup, we used to practice communicating with hand signals and lights all the time. We assumed that any radio transmission longer than about a second would give away your exact position, and that any transmission _at all_ would give away that you were there, somewhere.
The high-tech stuff is really, really nice when you can use it, but don't assume that it will always be availible to you.
A few years ago, there used to be this NATO-wide tank gunnery competition called the Canadian Army Trophy. Part of it involved a move-and-shoot range where pop-up targets were shot at.
When the Yanks first brought out the M1 Abrams, its thermal sight was better than anything anybody had fielded before. It was so good that it picked up the heat from the motors that lifted the pop-up targets - and the Yanks cleaned house.
The next year, the motors on the targets were insulated, and a large number of fake-motor-heat-sources were seeded on the range. Suddenly, the fancy-shamcy thermal sights were feeding _disinformation_ - and the American performance dropped off considerably.
The bottom line is that technology is no substitute for sound procedures. It may augment them, but it cannot replace them.
DG
Want to learn about race cars? Read my Book
But we have to also obtain or evolve the techniques neccessary to make a clone one-eighth Linus' size!
(Sorry, sorry, I'm just trying to see how quickly I can burn up 50 karma. :-) I agree with your analysis, by the way. It's very well put.)
You cannot apply a technological solution to a sociological problem. (Edwards' Law)
The model that Linus is advocating is in fact a peer to peer network with maintaines acting as super peers. This seems to be a sound way to scalability for me !
my little sister, the Lynnette you mention, barely knows which side of the keyboard to use . .
So why don't whe go for a mini-Alan instead. Someone must know a couple of Alena's . . .
:_)
hawk
the Bazaar is getting crowded. To put it mildly.
Lars T.
To the guy who modded me down from perfect to terrible Karma - Apple haters still suck
...although I concede that trust comes from competence. But what does this have to do with anything?
If you're going to overhaul (or in this case, overthrow) an established system, you need to do it with much fear & trembling. Look, I see this all the time as a manager. A new project is given to a manager. That manager hires someone competent and works with that person to build something from nothing. If the project takes off, you can end up hiring a lot of people to help support that project. It is possible for all those new hires to be more competent than the original, lead developer. But that original, lead developer now has management's trust. That lead developer, who got the damn thing off the ground in the first place, has an opinion that -- like it or not -- counts for more than the other developers. You can call that unfair, but certain people are just better rounded than others -- they have social skills, they can explain things well, they understand the market pressures, or whatever. Not to mention that it's their baby and you don't fuck around with stuff like that. As a manager, if I stomp all over the lead developer's project, that lead developer may not want to lead the next project! Sure, I can call on one of the other people brought in to help, but those other people may not be leaders.
I'm not saying that such an effort is doomed. But I am suggesting that, if you want to propose that Linus relinquish some authority, you damn well better have a value proposition for him. Shouting "this needs to be a democracy" is what you want, not what Linus wants. He's looking at that as a management nightmare, a removal of a power structure that is in place because, whatever it's faults, it was the structure that worked. If it doesn't work well anymore, you either have to convince Linus, or you have to convince everyone else to stop trusting the person in authority. That is a massive undertaking.
My Greasemonkey scripts for Digg &
Linus doesn't use CVS or any source control system because he doesn't have a clue about how it works, and how cooperative software development should be done. Please stop giving him points for his ignorance. Period.
BSD people have been doing very productive and cooperative software for years being based on CVS. It's interesting how they have created more stable and better quality code than the Linux community have achieved, even using the impossible-to-imagine decentralized structure.
I really wonder why someone in the Linux community who actually have a clue on software management don't setup a CVS tree, give the right permissions to the maintainers and deprecate the dumb Linus centralized model. May it happen that guys as Alan Cox and Marcelo Tosatti are clueless about CVS as well?
(sorry for the flamebait, it's just that this whole situation is too disgusting)
The notion of trust seems central to this debate -- who can be trusted to apply patches that will make the kernel better? And it reminds me of structures for establishing trust in the world of cryptography -- who do I trust to tell me that this public key really belongs to the person to whom it's supposed to belong?
The ideas about kernel patches being discussed remind me of the distinction between a "web of trust" and "certification authorities" in the world of cryptography. Certification authorities are the conventional means, which are used by the most popular web browsers. Some authority, like Verisign or Thawte, is universally accepted as trustworty, and if they sign a key, then it can be trusted. The web of trust was advocated by Phil Zimmermann and built into PGP, and AFAIK, PGP is the only context in which it's ever been applied (or even proposed). It's an attempt to reflect our everyday notion of trust -- I decide who I trust, on whatever basis I choose, and if someone I trust has signed a key, then I trust it. I can also decide if I trust people I don't know, if they are trusted by people I trust. There's no need for a central authority in a web of trust (although I might choose to include CAs in my web and trust them).
Rob Landley is suggesting that we entrust the patch penguin with the job of filtering patches towards Linus, but Linus sees the PP as a kind of central authority, and prefers to have a web of individuals around hom who he can trust.
Like Phil Zimmermann, Linus is arguing that his model is much more similar to the way that people decide to trust each other in real life. In the world of crypto, certification authorities have always been regarded with suspicion for reasons just like this -- why should I trust Verisign more than my friends? In the kernel world, Linus is saying, isn't it better and more intuitive to trust a group of people I know well, who can distribute the work amongst each other?
The analogy breaks here a bit. CAs in the crypto world are suspicious because we don't if they're corrupt -- maybe they're full of Enron managers. In the kernel world, we need to trust maintainers with their skill and above all, ability to handle the workload. Corruption is not the problem (I hope not, anyway.)
But, to take the analogy further, one should also note that PGP web of trust never really worked well as a practical matter. Most people using PGP had an island of people around them whom they trusted, with few connections outside of their immediate clique. I don't recall *ever* receiving a key from a stranger that was evaluated as trustworthy because of its position in the web topology.
So I'd say that Linus has a point in saying that the web model fits our common-sense intuitions about trust. But if Rob Landley says that it's not functioning well, the experience of PGP gives some support to his argument.
Always keep a sapphire in your mind
From what I know, the only way Theo eats, pays rent, or goes to the movies, is if he breaks his ass working on OpenBSD. I.e. it is his full time job and he takes it seriously. And the quality shows the the history of OpenBSD's security and reliability. Linus on the other hand has stated many times that he has a life outside of Linux and many other things to do. Fine. Linus, you are a better man than most, and we all owe you a great deal of gratitude. But now that people are using Linux in banks, hospitals, billion dollar companies, etc, maybe Linus should pass his hobby onto some people that will treat it like a profession.
Sorry if I'm out of line.
-... ---
Frankly, I don't see there being much done. And hell, even when they make a desicion in congress, they send it off to some department that'll actually handle it. Guess what? You don't got any department to command around.
Oh and democracy, for living in a democracy (and elsewhere) you usually pay *taxes* that fund that society. How do you support the Linux kernel? How many patches have you written? The reason you get the vote is because you go no choice accepting the government backed by the people, but you're free to not use linux even if you were the last one on earth not using it.
And if you seriously believe people will fork the kernel here and there, I'd want something of what you're smoking. Quite simply the kernel needs a simultanious effort, one man patching it will realize the 100 other patches in another kernel branch makes that one much better.
Kjella
Live today, because you never know what tomorrow brings
Slash kids just aren't up on the classics.
Anyway: Larry Wall isn't stupid. There are reasons they use a pumpking in the perl world. Note: the pumpking is indeed expected to burn out, that's why they rotate the responsibility. The subtext of the dispute between Linus and Landley seems to be that Landley thinks Linus's job can be neatly split into a creative and a routine function, and Linus seems to think that this isn't so easy.
Or maybe he likes doing the "routine" stuff too, and doesn't want to off load it.
The world is watching America, and America is watching TV
... and the only thing broadcasters watch are ratings.
-
- - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
Surely he can't, if all the free software advocates are to be believed?
Reading the advocacy on /. and elsewhere, there are two points that come up again and again in favour of free software/open source ideas. Firstly, because you can see the source, you know you're not being screwed behind your back. Secondly, because you can develop from the source yourself, you can't be cut out of the loop; there's no "vendor lock-in".
This is going to be a fantastic test of whether the FS/OS movement is for real, or just a hype machine driven by wannabe code wizards. If it's as solid a development methodology as people so often claim, if it's as robust a platform to depend on as people so often say, then no one individual -- not even Linus Torvalds -- can stop the movement.
Linux lives or dies by the contributions of volunteers. If they don't like what they see, one day enough volunteers will get together to start work on an alternative, with organisation they do like at the top. They'll branch the code base, leave Linus behind, and go their own way. Linux will stagnate, and NewDifferentlyNamedFreeOS will replace it.
Of course, whether that would be in the interests of the Linux community, or of Linus, remains to be seen.
And of course, whether the concept above is even realistically possible, also remains to be seen. I guess this is where we find out if the much-evangelised benefits of FS/OS make the cut.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.