Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Linux Software

Has Linux Development Become Too Political? 218

1010011010 asks: "Has Linux development become too political, bottlenecked and ego-driven? Witness the recent exchange between Hans Reiser, of ReiserFS fame, and Alexander Viro (VFS maintainer) on Linux-Kernel; Hans, and others, were griping about Viro refusing patches and ideas on principle, and Viro keeps telling people to shut up and read the code. It's obvious that the kernel needs better documentation and fewer penis-size contests, but it also needs better 'roadmaps' and plans -- i.e., documentation in advance of changes. Does anyone have a current "org chart" for Linux kernel development? Is Linux Kernel Development sustaintable as a coalition of little feifdoms?" Such things are concerns, but sometimes it can be that very ego that drives a project. Behind technology, there are the politics of that technology. Being human, is there any way we can avoid this? Should we?
This discussion has been archived. No new comments can be posted.

Has Linux Development Become Too Political?

Comments Filter:
  • by Anonymous Coward
    It seems wrong not to include ReiserFS just because Ext3fs ain't completed... Let us have ReiserFS until exst3fs is ready, then do rewrite the VFS-code and everyone will be happy... =)
  • by Anonymous Coward
    Hmm... I thought the idea behind Linus Torvalds heading development was his lack of ego as far as good code is consderned. I guess he doesn't have any leadership over those *FS guys.

    The problem is that Hans Reiser carefully timed his tirade / paranoid ranting to coincide with Linus' annual 3-week trip back to Finland, and Linus doesn't read Linux-kernel when he travels.
  • by Anonymous Coward
    I think that this will be the real test of the Bazaar model, as described by Eric S. Raymond in his paper "The Cathedral and the Bazaar" [microsoft.com].

    This model has so far worked fine for smaller projects like gcc, emacs, vi, and gnutella. But now we are finally seeing a project that has grown a lot since its conception and the rules are changing. More and more people are getting involved in the development of the Linux kernel. These people have different backgrounds, varying levels of coding skills, some are better communicators than others etc.

    Can this model remain successful under those circumstances? Or is the Linux kernel going to become another Tower of Babel, disintegrating into chaos?

    My opinion is that the kernal development needs to become more centralized, with firm management. I think it is time for an IPO.
  • Are -YOU- developing a major part of the Linux kernel? If so then you can develop it however you like.. if you aren't then shut up and let those who are get back to work!
  • by Anonymous Coward
    Very cunning indeed -- using a name that fools us into thinking you are a male, denying us our right to ask you for sex. Now that I know better, will you fuck me?

    :)

  • by Anonymous Coward
    The problem with things not being in the kernel isn't patching, it's finding the patches or device drivers. Linux needs a way to keep device drivers, kernel patches, something like LhD http://www.linhardware.com with the Device Driver database and compatibility info. All neat, organized and easily accessible.
  • Perhaps you're too new to Linux to remember it but one of the old filesystems, xiafs, was also named after it's creator, Frank Xia.

  • Okay, so I don't care what Larry Wall says, hubris _still_ isn't a good thing.

    hubris
    n : overbearing pride or presumption

    Being a pedant isn't so great either.
  • Well then it still reduces the amount of space you can use as to recapture that lost space from the partition merry-go-round you'd need to enlarge the ReiserFS partitions.

    Agreed, but this is something for the reiserfs crew to implement. FWIW, I'm unaware of a free util for resizing ext2 at all, is there one?

    I have to wonder what the holdup with ext3 is.

    Well, S. Tweedie keeps saying he doesn't have time to do anything, so thats keeping ext3. I just don't understand it. Add it to the kernel, flag it experimental and be done with it. It's really as simple as that guys. How long could it hold up 2.4.0? A week if that.

    Hmm.. sounds like S.T. should could use some help, being so swamped and all. There must be _somebody_ who has the skills/desire to help him out. Unless of course, he doesn't _want_ any help (Hubris, anyone?). A backward compatible journalled fs is to much of a good thing to let languish like that.

    Simple, don't build it as a module...

    I know, however my reply was to someone who was saying "I don't see what the problem is, just build it as a module!"

    Really however, if I want my root partition to be ReiserFS I shouldn't be penalized for that decision.


    Okay I missed the post you responded to but again, I agree with you. It's not inconceivable that at some point RedHat will have to include reiserfs or lose sales... Nah, what was I thinking, they have enough deals/PR to not include it ever.

    think a lot of CS types need to take a reality check and tone down the egotism, they aren't so great.

    I don't know who you're refering to when you talk about egotism.

    vi or EMACS, Perl or Python, Gnome or KDE, man or info, ad nauseum.
    The flame wars break out because people take things as personal attacks and egotism contributes to the lashing out in response.
    I just recently had a Solaris admin tell me that he thinks of linux like linux users think of windows. Then he went on to curse Larry Wall because he had major headaches for 6 months trying to cross compile a perl module for a linux machine under Solaris.... Between that little gem and his acknowledgement that commercial unix man pages often contain mistakes (and any corrections never get incorporated by the vendors), I had a hard time not giggling.

    Oh, the irony.

    I spent a good amount of time as an audio engineer (no more, thanks), and as far as I can tell you the hackers ain't got nuthin' on the "rock stars" when it comes to egos.

    I've heard it said that one of the things that makes Linus a good leader is his _humility_. I guess it's a matter of balance.
  • The "Cathedral" model was supposed to reflect FSF development, including Emacs, "Bazaar" one was shown on the examples of Linux kernel and fetchmail. ESR himself participated in Emacs and fetchmail.
  • Case in point: Which distributions allow me to use ReiserFS filesystems on installation?

    SuSE, since 6.3

    Well I haven't heard of one of them, so I am going to say a tenative zero.

    No comment

    This is a problem. If I want to use ReiserFS for all my filesystems (root, usr, etc) I have to install a distribution using ext2, download ReiserFS and patch it into my kernel, make new partitions formatted with ReiserFS, copy everything over, and blow away the ext2 ones.

    Admittedly a pain when you have no existing Linux install, but if you already have an installed system you can prepare a kernel before hand with reiserfs not as a module and put it on the installer floppy

    1. This effectively reduces the amount of disk space that can be used because you can't resize the partitions (not exactly sure about this, correction?)

    Here is your correction.
    /usr/src/linux/fs/reiserfs/utils/resize_reiserfs
    It's not perfect. AFAIK it shrinks only.

    2. It's a huge hassel to get a journaling filesystem which linux should have in the kernel by now!

    I think thats why the original question was asked. reiserfs works, I've been using it for a while. It's debateable whether or not you would want to use it in certain situations, but it _is_ here and it _does_ work. I have to wonder what the holdup with ext3 is.

    3. Stock boot CD/Floppies will no longer be able to access the root/usr filesystems because.... ReiserFS isn't in their kernels!

    Err.. I think I answered this already.

    4. I'd really like to see how you can load a module from a filesystem you can't read. (ReiserFS built as a module loading from a ReiserFS root filesystem, enjoy that chicken and egg)

    Simple, don't build it as a module. Or, gasp, keep your / as ext2! (wise-ass mode on) On a properly configured system the root file system is going to be around 500M. It doesn't take an inordinate amount of time to fsck. (w-a off). This reminds me of installing on a system with ATA66.. you need to install on vanilla IDE bus first then patch, edit a pile of config files, move disks around, hope you got all the edits right...

    As you can see, this makes using ReiserFS cumbersome at best. Jumping through massive hoops just to get functionality other *nix's have had for years (Journaling Filesystems) is pathetic really.

    Jumping through hoops isn't restricted to this one issue, personally, I think a lot of CS types need to take a reality check and tone down the egotism, they aren't so great.

    You have to realize, that when you write parts of the kernel or kernel modules, you are part of a community. You need to be able to work with everyone because the end goal is the same: Making Linux a better system.

    Sounds good, but talented people are stubborn and inflexible, it gets worse once there is some recognition. Then it's a slippery slope to keep from winding up like Bob Metcalfe. Hubris is never a good thing, I don't care what ESR says.

    Could you please tell Viro that? He doesn't seem to want to work with anyone, especially to fix a gaping feature hole. Pretty sad really, when "maintainers" are working to the detriment of Linux.

    Well, hopefully we won't be reminiscing in n years how linux peaked at 2.2..
  • >Including ReiserFS is a bad idea pure and simple. Ext3fs should be the
    >default.
    >Could you take a few seconds of your precious time and explain us why
    >?
    >I guess not. You're probably trolling...

    Can you explain why support for ReiserFS should be placed into the kernel when people working on the kernel don't want it there?
  • Moderation Totals:Flamebait=1, Interesting=2, Overrated=1, Total=4.

    Just goes to show that people don't agree on stuff. Even Slashdot Moderators.
  • Someday look up the 'general staff' system that the prussians introduced into warfare back in the war with france.. a long time ago.

    It was a radical new way of managing people, and it worked against a system that was totally about control and presenance of upper managing figures.
  • Erm... ReiserFS (which is partly what this discussion is all about) _is_ journalled, so you don't have to run fsck at the beginning, just a rollback. Of course, a `transactioned' FS might be something else entirely -- what do I know? ;-)

    /* Steinar */
  • Hmmm... I use Slackware and Debian, and generally never have any problem getting other people's software to use... That's the point of having the source instead of using RPMs :-)

    (Of course, if there's a prebuilt package for _your_, you can always use that...)

    /* Steinar */
  • I don't know for sure, but I think you'll find both GCC and Emacs are larger (in loc) that the Linux kernel.

    OS kernels are certainly complex, in terms of concurrency and so on, but they are not particularly large.
  • Umm... bullshit.
    Precisely.

    Concerning 2: The concensus of the list at present is not that "generic journalin" (sic) is a good idea, but rather that the VM system needed some way to apply pressure to journaling filesystems which have to pin pages in memory, and that a generic journaling layer would be one solution to do that. There are plenty of other approaches being discussed as well.

    You are also making crossed-purpose demands; in 7 you state that the VFS is becoming more and more and more critical - absolutely! So you want us to (in 1+4) perform a major modification to the structure and allocation strategy of inodes, and to (in 3) open up the VFS architecture to whatever flaky whiz-bang "extensible" modification to its semantics anyone wants? Give me a break. When dealing with core APIs, "extensible" and "unstable" may not be identical, but they are certainly fraternal. Remember the KISS principle?

    Granted, I too would like better VFS documentation, and would like it now, too. Richard Gooch has historically done a good job documenting it longer-term, while day-to-day patches from Al do tend to include at least notes about what the interface is expecting and expecting to break. Welcome to bleeding-edge development.

    So what's your agenda? This kind of venom is rarely loosed without an ulterior motive, especially by someone who was presumably posting an innocent and curious "Ask Slashdot" question.

  • Many important people are afraid of Linux's development system, or lack of it. OTOH, *BSD is pretty widely accepted anywhere but Linux isn't as much as some would like it to.

    I'm sorry, but did you just basically say that Linux wishes it was as widely accepted as BSD?

    I think your information is about three years out of date.

    --
  • Torvalds.

    --
  • Politics in software: this could be the oldest story /. ever covered. This is *so* not new.

    Remember, Linux was started because of political differences between Linus and Andy Tanenbaum. And I am by no means suggesting that *that* was the first flamewar. This stuff happens all the time. The biggest difference with Open Source is that we all see it.

    I'll admit that there is a story here, but the story is not the fact that politics have *suddenly* broken out in the Linux kernel.
  • > Sure, if Minix had evolved into what Linus wanted he wouldn't have gotten started... but it's a mistake to claim that the conflict was in any way pivotal.

    I'm afraid I don't see your logic. On the one hand, you admit that things would have turned out differently were it not for this fundamental conflict of visions, while on the other hand you deny that this was pivotal. Seems to be the very definition of a pivotal moment.

    Now, I'll certainly admit that there was *more* to it than a simple flamewar or difference of opinion. But you have to admit that Linux was born out of the fire. While I never meant to imply that this *single* moment spurred the creation of Linux, it was certainly *a* significant event.

    My only real point, of course, was to simply argue that flames are not a new thing in the Open Source world (nor any other, for that matter).
  • Would anyone who uses this FS on their box please post a little bit about what's so good about it? The only thing I could tell from reading the posts in the kernel archive is that it's a journaling FS.

    Realistically, this argument is silly. It doesn't matter if code "gets in the kernel". As long as it is available and can be patched into the kernel, then that's just fine!

    You have to realize, that when you write parts of the kernel or kernel modules, you are part of a community. You need to be able to work with everyone because the end goal is the same: Making Linux a better system. When I started writing the Matrox Marvel video capture drivers [sourceforge.net] for Linux, I just wanted something that I could use to grab screenshots from a web-cam. It's been a while since I released the code, and the development has really taken off, with other more capable and more talented people. Although I haven't done too much development on this project lately, I know that sometimes there are disagreements, and the best way to resolve them is to think about what is best for Linux as a whole. Although "getting your code into the kernel" may seem [neat/eleet/prestigious/etc] it may not be best for the overall system.

    That's whats great about loadable modules. If your code is not ready for the kernel, you can still release it and people can compile it as a module. People can STILL use your code, while the community makes the decision about kernel inclusion.
  • SuSE Linux as of 6.4 (I don't remember if it was available in 6.3) offers the use of ReiserFS as your primary FS on all your partitions except /boot because LILO has some problems with it. SuSE's kernel modifications are very good and I reallyu enjoy the use of a journalling FS, it is something Linux as a desktop OS really needs. But the fact SuSE has to offer it as an extra is something we're seeing alot more of. Things the kernel dudes don't like need to be hacked by distros and inserted into said distro. This causes a rift between Linux as an OS and a distro as an OS. Most of you are surfing around on some company's distro and you for sure know people who believe Redhat and Linux are synonyms. The whole development for Linux is going to fork, there will be the canonized kernel and "official" shit from the kernel dudes and there will be highly patched kernels released by distro companies. The GPL allows for you to change the entire kernel structure as long as you provide the source to it. If one distro becomes large enough they can decide to build an incompatible kernel that will only run Redhat or insertyourdistrohere software. We already see incompatibilities between different kernels, what the fuck are we going to do when one kernel build doesn't work with another?
  • In fact we often hear that developers are reluctant to write documentation; this is true for everybody else.


    Personally, I very often see this true. But it is especially true of developers (particularly hackers) who perceive documentation to be a waste of their time.

    A few hackers, such as ESR, don't mind writing documentation. As a result you see certain projects have excellent documentation with other projects having almost non-existant documentation. For ESR, my example would be fetchmail [ccil.org]. This program is not only very well written, its extremely well documented, although I have to believe that the documentation was NOT written in a bazaar mode like the program itself is.

    That faq-o-matic is very interesting, though. I hadn't heard of it prior to your posting this.

  • Making noise is one of the things that keeps the open source system healthy. I think that in general the Linux kernel has had good stewardship, and though I personally have not had direct interactions with Al Viro, I think that extends to him as well.

    I agree with this statement, especially the first part. Anyone not sure that making noise keeps open source healthy, particularly in the bazaar mode of development that is present in Linux, should read the writings of ESR [ccil.org], particularly Homesteading the Noosphere [tuxedo.org] and possibly the Cathedral and The Bazaar [tuxedo.org]. (Not necessarily in that order though :)

    I think this should change. I think that the design documentation we need should be readily available - it has to be posted somewhere where everybody can get at it, and contribute to it.

    Yeah, current documentation would be great. But I don't think that documentation lends itself well the bazaar mode of development. The "roadmaps" you speak of reek very much of "requirements documents" and I don't think you will find any of those in Linux development.

  • ...the Open/Free/whatever *BSD way of doing things, with a "core" making decisions according to what others have to say is the right direction.

    Many important people are afraid of Linux's development system, or lack of it. OTOH, *BSD is pretty widely accepted anywhere but Linux isn't as much as some would like it to.

    The recent flames between Vero and Reiser just show that, maybe, the Linux way of doing things isn't good enough anymore. Now that it has reached a certain level, some organisation à la *BSD wouldn't be a bad thing.

    Just my .02

  • I cannot see a single from Hans Reiser neither on linux-kernel, nor on linux-fsdev. *NOT A SINGLE ONELINER PATCH* This pretty much tells it all.
  • 2. Huh? If you have any technological gripe with ext3fs journaling code then this is sure not the best forum. Whats wrong with creating a fs/journalling (or whatever other) subdirectory to implement generic transaction-handling subsystem for journalling filesystems? Sharing code is a fundamental property of the Linux kernel.

    6. See points 1-5,7

    You appear to have the wrong type of attitude towards Linux development. Posting your technical questions on Slashdot instead of linux-kernel & | linux-fsdev is one example of this.

  • sorry - I did not mean to offend you. The reason why this conversation got more testy is 1010011010's (IMO) baseless personal attacks against a highly respected member of the kernel developer community. Over issues which were either agreed to and solved 1.5 months ago, or issues which can and are being discussed on the apropriate forums. Few if any kernel developers read this thread and it looks too one-sided if I keep answering all his points - linux-kernel@vger.rutgers.edu or linux-fsdevel@vger.rutgers.edu is the right forum where everyday VFS development goes on.

    Your point about VFS development being 'too fast' in the past couple of months for the casual, eventually non-Linux FS maintainer to follow, I have to agree with you. I do think this is and was a necessery evil. All of fs/*.c and fs/*/*.c got way too messy over the years and nobody really maintained it consistently. This is what Alexander started doing around early 2.3. I do have code that has internal VFS dependencies, and I had my share of interface breakage as well - we've got to live with this. The VFS is one of the most complex pieces of Linux. Documentation is advancing IMO - check out 2.4.0-test2, it has more and more VFS functions documented properly, check out fs/dcache.c for example.

    The 'right attitude' IMO is to point out flaws on the apropriate mailing lists, and ask for suggestions how to get around that particular flaw. If your question does not get answered then you have a reason to complain. I'm 100% sure nobody asked any questions about a generic transaction engine on linux-fsdevel ever for example (I just checked the archive to be sure) - 1010011010's implicit and (IMO) bad-faith conclusion was that 'it must be ext3fs-centric'. I think that is the kind of attitude that is very contraproductive.

    Does this answer your points sufficiently?

  • Are you reading the linux-fsdev mailing list? All I can see is a non-issue, the ->read_inode2() solution was *agreed to by* Alexander Viro, despite the feature and code freeze.

  • There are no generic kernel contributions in that patch. The only generic kernel change is a 15 lines change in fs/inode.c, which is flagged by the author as: 'reiserfs specific hack right here.'. Such 'hacks' are *specifically* the things that prevent a patch from going into the main kernel.

    To repeat it, Hans Reiser has not contributed to the Linux kernel on any public mailing list so far in any meaningful way. Looks like he doesnt really care about Linux, but he expects Linux to do everything for him. Not a very sympathetic position to me.

  • Check out Alexander Viro's email on linux-fsdev (Message-ID: ):

    "... you have my
    vote for temporary inclusion of the *@!#^* ->read_inode2(). AFAICS it's
    the least of anyone's problems.".

    [and check out the subject of this slashdot thread...] THERE IS NO PROBLEM.

    Also check out another email on linux-fsdev, , where it becomes clear that Hans Reiser has fundamental misunderstandings wrt. how the Linux VFS works, and Alexander Viro explains him how things work. How does this fit your paranoid conspiracy theories??

  • What's your point? Reiserfs might have had lots of releases, so did devfs and still it got into the kernel without much whining.

    Linus always agreed to journaling filesystems in principle. Given conceptual agreement it always depends on the quality of said patch wether it gets accepted. Thats all.

  • ramfs/cramfs is not possible in 2.2. The 2.3 pagecache redesign enabled ramfs/cramfs.

    Linus objected to specific devfs patches for more than 2 years. It took alot of time for Richard Gooch to fix all the issues that devfs had. While Linus supported the *idea* of devfs, it took from early 1998 to this year, with more than 100 releases, that devfs be accepted into the mainstream 2.4 kernel.

  • 'no whining' was in reference to Richard Gooch, the author of DevFS.

    Obviously on linux-kernel you'll find a thread about just about any kernel subsystem, with various people representing all mathematically possible positions.

    The fact that there were heated discussions about DevFS, and still it made into the kernel appears to support my point that decisions are made on a technical basis and not based on advocacy.

  • read_inode() cannot be changed right now cleanly due to 2.4 being imminent - end of story. So Alexander Viro has proposed already about two months ago to include a temporary read_inode2() VFS call for the sake of ReiserFS.

    The point is, if ReiserFS people were actively participating in Linux VFS development (and Linux development), then they could have cleaned this up properly during 2.3. ESPECIALLY if all you have is an ugly kludge, and not a good/generic solution! So Hans Reiser was demanding an extension that only ReiserFS needs - why doesnt he / didnt he code it himself?

    About the conspiracy bit - you raised this whole non-issue, so I thought you believed in it. If we agree then why have you raised this non-issue, asking wether Linux development got 'too political'?

  • Once again, I believe that the point was that atm it is damn difficult to port a JFS to Linux. How can one use the familiar one if the familiar one does not exist on our platform?
  • I believe that he meant not leveraging one over the other, but leveraging the benefits of a JFS on Linux over other, less-capable OSes. What does one do in a predominantly Linux environment? The ideal, after all, is world domination:-)

  • >I don't think that documentation lends itself
    >well the bazaar mode of development

    Not sure ! you just need to have the right tool.

    There is actually an excellent tool for writing documentation in a "Bazar way", it's called FAQ-O-MATIC; the Java Apache project has implemented an excellent instance at :

    http://locus.apache.org/jyve-faq/Turbine.

    In fact we often hear that developers are reluctant to write documentation; this is true for everybody else. People are often shy from writing a big document from scrach, as they often don't know where to begin ! what to put in it ! this is what writers call "The white page anguish". But as soon as you come with something to begin with, or a draft, people are often willing to contribute small chuncks of information, to correct or complete things. This why the Net, and especially forums are so great to achieve complete information about a particular subject. This is in fact what Open Source is all about.

    Everybody agree that what Open Source so badly needs is "Documentation", I really believe that tools like FAQ-O-MATIC can be great to achieve this in a Bazar way.

    Wiki tools are great too.
  • I have only gotten to know the *BSD developpment process recently, reading up on it to find out why there are *BSDs rather than one BSD. The impression I got out of it (I'm referring to the Net- OpenBSD split) was that the BSD way seems to be far from optimal.

    I think formalizing the process by creating a core group would introduce much more politics and ugly flames rather than reduce them.

    I'm not involved in Linux Kernel development (nor would I have the skills), but I lurk around the main lists and have found that the current way is fascinatingly efficient.

    By all practical means, there _is_ a core group formed by those who can impose their opinions trough the work they have contributed or the knowledge they have in their specific field. Then, there's Linux, who acts as "benevolent dictator". This is the best form of organization imho, because it is based on good old-fashioned trust (however, it is also the most vulnerable to commercial outside interests).

    Frankly, I think Linux development has already proven itself to be more efficient than BSDs trough the years by the lack of spectacular splits (just compare...).

    Many important people are afraid of Linux's development system, or lack of it. OTOH, *BSD is pretty widely accepted anywhere but Linux isn't as much as some would like it to.

    I'm not sure I agree with you here. Despite being younger, Linux has seen a much steeper adoption curve than BSD. This is imho again, and I don't have any numbers to back it up, so please correct me. However, it as been argued that it was precisely because of the more rigid organization at BSD that alot of people have turned to Linux, where they seem to be able to get their patches integrated more rapidly.

    Finally, just to clear things up: I don't mean to slam BSD in any way. I've recently installed FreeBSD on a test machine and have been playing around with it extensively (love it)... Why Linux didn't reuse the BSD tcp/ip stack I still haven't understood. But having recently read up on the ugly flame wars which lead to the creation of OpenBSD, I don't want to see this happen for Linux.
  • There's no shortage of people who would be willing to do this kind of documentation work if they were able to. Right now there seem to be some roadblocks in the way.

    I also think it's possible that anyone with a good enough grasp of the latest kernel and how it works is more than likely writing code rather than writing docs.

    I would really like to see a documentation project similar to TLK that is kept as up-to-date as possible. Unfortunately the rate of change of the kernel, the immense amount of traffic of the lists and the years of experience required to understand and interpret the latest changes, rules out most people. Those it doesn't seem to be writing code :)

    I would happy to be corrected by someone like Joe Pranevich [linuxtoday.com] for example...

  • I work on mainframes and have done for a large number of years. Configuring and compiling a Linux kernel using (for example) 'make menuconfig' is something I have no problems with. Installing new .rpms is also trivial.

    Patching the kernel to support ReiserFS is something else completely - I have no idea how to do this at all. Does this make me computer-illiterate? I use Linux for my job, you may (for all I know) be a kernel maintainer but for me it is a desktop and server OS.

    Linux has been trying to move into the mainstream for a while now, a reliable Journaling FS that can be activated simply is something I *need* - hardware errors and even some kernel problems (try rebooting with a smbmounted directory loaded) mean that I sometimes need to hit that button. Why are you trying to reserve Linux as a niche-OS for the ultra pure-at-heart?

  • Realistically, this argument is silly. It doesn't matter if code "gets in the kernel". As long as it is available and can be patched into the kernel, then that's just fine!

    While this is true for most drivers, when it comes to filesystems it really does matter.

    Case in point: Which distributions allow me to use ReiserFS filesystems on installation? Well I haven't heard of one of them, so I am going to say a tenative zero. This is a problem. If I want to use ReiserFS for all my filesystems (root, usr, etc) I have to install a distribution using ext2, download ReiserFS and patch it into my kernel, make new partitions formatted with ReiserFS, copy everything over, and blow away the ext2 ones.

    1. This effectively reduces the amount of disk space that can be used because you can't resize the partitions (not exactly sure about this, correction?)

    2. It's a huge hassel to get a journaling filesystem which linux should have in the kernel by now!

    3. Stock boot CD/Floppies will no longer be able to access the root/usr filesystems because.... ReiserFS isn't in their kernels!

    4. I'd really like to see how you can load a module from a filesystem you can't read. (ReiserFS built as a module loading from a ReiserFS root filesystem, enjoy that chicken and egg)

    As you can see, this makes using ReiserFS cumbersome at best. Jumping through massive hoops just to get functionality other *nix's have had for years (Journaling Filesystems) is pathetic really.

    You have to realize, that when you write parts of the kernel or kernel modules, you are part of a community. You need to be able to work with everyone because the end goal is the same: Making Linux a better system.

    Could you please tell Viro that? He doesn't seem to want to work with anyone, especially to fix a gaping feature hole. Pretty sad really, when "maintainers" are working to the detriment of Linux.

    -- iCEBaLM

    -- iCEBaLM
  • Non-(kernel developers) should stay the heck out of this discussion. Political infighting is never helped by the uninformed butting in of outsiders.

    Outsiders? Is that how the users of the kernel these folks are writing are known as? Outsiders?

    outsider n : someone who is not a member of a group [syn: foreigner]

    Hrmm... Well, I don't know about you, you may wish to be an outsider, and thats your right, however I'm going to be using this kernel, I have time and money invested into linux, and I see a gaping hole which needs to be filled, which there is also a viable solution for which seems to be getting blocked.

    Most every other *nix on the planet has journaling filesystem options for it, but not Linux, atleast not in the kernel. "Oh but you can patch it" and thats great, but it's also a huge headache. ReiserFS is a viable solution. Where is my proof? Well "the proof is in the pudding", namely large sites such as mp3.com and sourceforge.net use ReiserFS to reliably store massive amounts of data. If VA Linux systems can trust ReiserFS to store large amounts of open source projects such as Mesa, DRI, slash, OpenUT, Ghostscript, etc, then I think it needs to go into the kernel as atleast experimental.

    Linux simply *needs* a journaling filesystem, period, and it needs it today. When will 2.4.0 get released? 2 months? 3 months? Then 2.5 will start up and possibly RFS will get into there, but when will 2.6.0 get finalized? A year? Maybe two? I reiterate, Linux needs a journaling filesystem *today*.

    I don't care what you kernel hackers have to do to get it in there, but as a user of the code you people are writing, you need to fix this feature hole, and you need to put aside your "well hans will make money so we're not going to include it" bent, and you need to work with the Reiser team to get it in, as ext3 is nowhere near complete, neither is JFS/XFS for Linux, and ReiserFS works.

    -- iCEBaLM
  • Agreed, but this is something for the reiserfs crew to implement. FWIW, I'm unaware of a free util for resizing ext2 at all, is there one?

    Well, there's ext2resize [freshmeat.net] and GNU Parted [freshmeat.net] but I've never used either.

    Hmm.. sounds like S.T. should could use some help, being so swamped and all. There must be _somebody_ who has the skills/desire to help him out. Unless of course, he doesn't _want_ any help (Hubris, anyone?). A backward compatible journalled fs is to much of a good thing to let languish like that.

    I'm not sure on this one, there has to be someone else, sure, but I don't know if people have asked to help, submitted patches or not, etc. We need a journaling filesystem, it's too long in the making...

    vi or EMACS, Perl or Python, Gnome or KDE, man or info, ad nauseum.

    Pico, C, enlightenment, text. :)

    The flame wars break out because people take things as personal attacks and egotism contributes to the lashing out in response.

    I agree with you, but I'm not so sure the case is so cut and dried here. I think someone doesn't want to include RFS, not based on its technical merits, but for some other reason. I mean there simply is no reason NOT to include it. I've read through the lkml archives and I haven't seen one, not one good reason not to include ReiserFS in the kernel and flag it experimental.

    I spent a good amount of time as an audio engineer (no more, thanks), and as far as I can tell you the hackers ain't got nuthin' on the "rock stars" when it comes to egos.

    I think we all know this from the rantings that unnamed [metallica.com] rock band. Thank god too, if we had people as bad as THEM in our community I think we'd have a full blown civil war.

    -- iCEBaLM
  • One current problem with the VFS is that it makes it impossible to use some filesystem drivers as modules. Essentially, if the filesystem isn't Ext2, or cannot be made to look like Ext2 to the VFS, it cannot operate well if at all as a loadable module, because it has to patch the VFS.

    Absolutely pathetic, this basically lowers all filesystems to the common denomonator that is ext2, and then tries to raise less feature rich filesystems to ext2 (DOS FAT for one.. Unix permissions? I don't think so!).

    This obviously needs to be virtualized with a FS API where the filesystem can tell the VFS what it supports, what it doesn't, etc, instead of making the filesystem act like ext2, this should all be done "on the fly".

    As I understand, many large sites already use ReiserFS (sourceforge for one). If VA Linux can depend on RFS for a huge site hosting massive numbers of open source projects such as Mesa, Open UT, Ghostscript, Slash, DRI, Sawfish, Python, Linux UDF, etc, I think it should be an option in the kernel for Joe User so he can store his porn reliably and not have to fsck every 10 mounts...

    This is just absolutely pathetic.

    -- iCEBaLM
  • 2.1. There is no common journaling API so his work, xfs work and ext3fs work cannot be converged. Especially at user space level. And this API is nowhere close.

    And why should they be converged? All three of those no doubt journal QUITE differently, and making them all journal in the same way by making them use a journaling API would be really stupid.

    Which filesystem do you model the API for, ext3? So XFS, JFS and RFS will have to end up adapting to journal like ext3, so whats the point of picking the other two? You end up having 3 filesystems which work the same way negating the reason to use one over the other, useless.

    -- iCEBaLM
  • I stand corrected, SuSE and Mandrake seem to support ReiserFS on install.

    Here is your correction.
    /usr/src/linux/fs/reiserfs/utils/resize_reiserfs
    It's not perfect. AFAIK it shrinks only.


    Well then it still reduces the amount of space you can use as to recapture that lost space from the partition merry-go-round you'd need to enlarge the ReiserFS partitions.

    I think thats why the original question was asked. reiserfs works, I've been using it for a while. It's debateable whether or not you would want to use it in certain situations, but it _is_ here and it _does_ work. I have to wonder what the holdup with ext3 is.

    Well, S. Tweedie keeps saying he doesn't have time to do anything, so thats keeping ext3. I just don't understand it. Add it to the kernel, flag it experimental and be done with it. It's really as simple as that guys. How long could it hold up 2.4.0? A week if that.

    Simple, don't build it as a module. Or, gasp, keep your / as ext2! (wise-ass mode on) On a properly configured system the root file system is going to be around 500M. It doesn't take an inordinate amount of time to fsck. (w-a off).

    I know, however my reply was to someone who was saying "I don't see what the problem is, just build it as a module!"

    Really however, if I want my root partition to be ReiserFS I shouldn't be penalized for that decision.

    Jumping through hoops isn't restricted to this one issue, personally, I think a lot of CS types need to take a reality check and tone down the egotism, they aren't so great.

    While I understand it isn't restricted to this one issue, as I have to deal with some patches to get hardware to work, I don't know who you're refering to when you talk about egotism.

    Well, hopefully we won't be reminiscing in n years how linux peaked at 2.2..

    It would be sad...

    -- iCEBaLM
  • . . . we should resolve this point properly. Have a debate and vote on it.

    Now, to do that we must first decide who is eligible to vote, and then how many votes each such person gets. Then we must establish the rules of order for the voters and non-voting stakeholders to comment.

    Perhaps we should issue an RFC first? Let's appoint a committee to come up with a first draft.
    1. Lots of empties [tux.org]. But anyway, why should the VFS know about specific details of other filesystems? Does it provide an advantage to those filesystems? Give us your thoughts, please. I.e., answer the questions. In case you haven't noticed, people aren't just harshing on poor Viro -- we actually want to know the answers to some questions! I.e., we're willing to engage in constructive dialogue. Why is there a big, ugly union in the VFS rather than having all filesystems use the generic pointer? Why is not not silly to require the VFS to understand FS-specific data? For control? Or is there a valid technical reason that it's better, at the expense of making otehr filesystems do ugly hacks?


    2. Why do you think soft-updates are better then journaling? I really want to know. Someone else said that the "generic journaling" is really just going to be a way to deal with making sure inodes and transactions play nice. Is that true? Or what? You still haven't answered the question. Will the generic journaling turn out to be Ext3 journaling, or not? If not, what will it be?


    3. Heh. Erez Zadoklike a friend of mine named Cyrus. His FiST [columbia.edu] stuff looks interesting; I looked it over several months ago. But back to my question, Why can't the VFS be made stackable and extensible? Or to phrase it taking your reply into account, why must an add-on kit be used? Do you not want to do it in the VFS itself? Why? Why not? Can you please answer the question?

    4. You patch filesystems when you patch the VFS, was my understanding. So if you change the VFS to remove the union, as you said in your answer to #1, then what would you do? If someone wrote that patch for you, and went ahead and patched all the other filesystems to make it easier to deal with, what would you do? It has everything to do with the VFS, if you remove the union. You still didn't answer the question.

    5. yeah, you're not Linus. But what percentage of your patches do get accepted, and how much debate and review do they go through before hand? Open question to Linus: so, what "technical merits" must a patch exhibit before you will include it? And is there any plan to provide open future-design docs?

    6. Yeah. A little. So little as to almost not matter. Your attitude is still "read Ext2." Which pretty much clashes with your answer to #4. If you don't patch filesystems yourself, then why do you always tell people that Ext2 is the reference documentation for the VFS? Presumably you're keeping it up to date with your VFS changes.

    7. The VFS is being used in more places -- shared memory, for instance. As it becomes more important to more kernel systems, should it not be made more flexible and documented better? Next year, each of your VFS patches VFS will break even more stuff. If the VFS had a cleaner interface, and better design docs and roadmaps, then VFS changes would not be so much of a problem. Do you agree that the VFS needs a cleaner, more capable, less frequently changed, better documented interface? Or not? Why in either case?


  • So you're saying that if Reiser re-submitted that same code outside the rest of the fs driver, it might be accepted? Oh, and removed the "hack comment?"

    It's because the VFS function isn't capable, and isn't being fixed, that he had to add a second function to do the same thing,

    Granted, Reiser has some problems with presentation... but it's not like ideas and even actual, working code have not been supplied.


  • Ah, but "temporary inclusion of the *@!#^* ->read_inode2()" is different than changing read_inode() itself, and actually providing decent functionality in the VFS rather than just including hacks. For instance, why not read_inode() with NULL as the second argument rather than read_inode2?

    Granted Hans can be a little incendiary. Often the manner of presentation can overwhelm what is said, as with Hans calling Viro an asshole and Viro calling everyone whiners/wankers/etc.

    What paranoid conspiracy theories? HANS has said that there's a "RedHat Conspiracy." I've said no such thing, because I don't think there is. WTF?

  • One current problem with the VFS is that it makes it impossible to use some filesystem drivers as modules. Essentially, if the filesystem isn't Ext2, or cannot be made to look like Ext2 to the VFS, it cannot operate well if at all as a loadable module, because it has to patch the VFS.


  • DevFS: Linus mandated its inclusion. End of story. Also, it is a simple filesystem, like Ext2, and doesn't tickle problems with the VFS.

    shmfs [linux.org]: don't know history of this one, but it is a simple filesystem; prob. doesn't hit the VFS limitations.

    ramfs/cramfs [kernelnotes.org]: simple filesystems, look like Ext2. Actually support fewer features than does Ext2.

    Reiser: Linus said that ResierFS would not be included in 2.4. It also has to do a lot of work around shortcomings of the VFS, for which Viro has been unhelpful. Fat chance it'll be included when working against that. It's irrelevant that Reiser makes his living off of his FS, although stupid of him to make that argument.

    The whole "ReiserFS thing" is not a red herring. Regardless of how "together" Hans gets his act, fact remains that his ideas and patches are being ignored. And he's bringing up real problems. HFS has to resort to some of the same silly kludges as he does. This problem has been popularized by Reiser, but isn't just Reiser's problem.

    SurfsUp said 2.5 was going to focus on fixing the VFS. I hope so. A generic, stackable filesystem interface would be a good thing.

  • Great! Zappe [slashdot.org] might be doing that as well. Perhaps you two can talk...
  • A "common journaling api" is not a good idea. It will force all journaling filesystems to look like whatever journaling is chosen to add to the vfs. It'll be the same situation we have now, taken to the next level. Currently, for filesystems to work well in the kernel, they have to either be Ext2, or be made to look like Ext2, because the VFS in its current state is really a "Virtual Ext2 Filesystem". If a common journaling framework were to be added, as Viro has suggested, than I imagine all filesystems would then need to look and work like Ext3 to operate properly. Plus, FSes that don't need or want journaling would still have the bloat. Journaled ISO9660? Journaled Fat? WTF?


    So if there is a problem with ReiserFS conforming to the current VFS layer then ReiserFS should be adapted


    Problem is, ReiserFS cannot "adapt." There's fundamental limitations in the VFS, like in read_inode() for example, that prevent filesystems more complicated the Ext2 (i.e., any filesystem designed more recently than 1975) from working well, or at all, without patching the VFS.

    I imagine XFS, JFS, and other more advanced filesystems are having to work around the same problems, because they cannot be made to look like Ext2. HFS -- a filesystem in the kernel already -- has to do a lot of workarounds. I can't imagine doing a full NTFS is possible with the current VFS, because the VFS makes it difficult to impossible to pass a context around with inode requests (for security, for example).

    These aren't changes asked for "on a whim." They're changes that will benefit current filesystems and make it easier to add new filesystems. The VFS, if it were truely virtual, would not need to be patched to support new filesystems. As it is, there's a big union of filesystem-specific data in the VFS. It's silly to have specific filesystem info hardcoded in the VFS. Not very virtual, is it?

    The VFS needs to provide a clean, extensible (stackable), implementation-neutral interface for filesystems.

  • All good and well for a single userspace program designed to meet specific, limited needs, but the kernel msut support all programs. If the kernel limits something, there's no way around it, w/o forking Linux.

    The kernel is like a common carrier. It shouldn't mandate only certain types of development, but seek to be as extensible and flexible as it can.

    Incidentally, the suggested changes to the VFS won't prevent existing filesystems from working. it'll just make it easier to develop new ones, and make non-Ext2 filesystems more efficient (because less kludging will have to be done).

    If Linux development becomes limited and closed off, people will go somewhere else. I can't wait for the Hurd ot come out and provide a little competition in the GNU space... competition good... regis bad... heh

  • You can learn the kernel and start submitting patches that would be acceptable to Linus on their technical merits. That's how it works. I would be glad to see anyone joining the VFS/fs work.


    Umm... bullshit. That's not how it works. In reality, you do whatever you want, while criticizing everyone else for not being able to work inside your VFS. Address the real issues, Viro! Stop complaining and trying to change the topic!

    1. Why is there a big, ugly union in the VFS rather than having all filesystems use the generic pointer? Why is not not silly to require the VFS to understand FS-specific data? For control? Of is there a valid technical reason that it's better, at the expense of making otehr filesystems do more ugly hacks (HFS as well as Reiser)?
    2. Why do you think that "generic journalin" is a good idea? Will the generic journaling turn out to be Ext3 journaling, or not? If not, what will it be?
    3. Why can't the VFS be made stackable and extensible?
    4. If someone submitted a patch for all current filesystems to make them use the generic pointer, and did away with the union, would you take it? Why or why not?
    5. What kind of technical merits make a patch acceptible to Linus? If it really Linus that's the bottleneck here?
    6. what evidence is there that you actually would be glad to see anyone joining the VFS/fs work? Your behavior so far has been defensive, hostile and arrogant. I'm not discounting all the work that you've done -- thank you -- but why do you have to make it so hard to work with you? If you provided a few design documents, people could leave you alone a lot more. With your "read the code, whiner" attitude, everyone has to plow through your latest breaks-everything undocumented patch to figure out how to conform again. If people had ANY inkling where you were going beforehand, they could be a little less reactive (and reactionary).
    7. The VFS is becoming more and more important to the Linux kernel, with shmfs, devfs, etc. It's turning into the Plan9-ing of Linux, which is a good thing. So why shouldn't it be more capable and extensible?



    Answer our questions and provide design documents/criteria/roadmaps/etc or keep wanking - nobody can deprive you of that right.


  • Sorry, I meant OpenBSD... I really did ;)
  • There is nothing inherently wrong with that, but from a cleanliness point of few it is not very nice. If another option is available, this is also not the nicest way to resolve the problem. We have a court system where there is a blanket (the law) that makes certain cases always come out one way. Usually, it is not handled on a case by case basis. If it was, then the court system would fall into anarchy. I think people generally hate this method for that very reason, and will try to find another, more structured way to do it if possible. However, in this case, I don't really think there is one.
  • He. If you think you know C, you should recognize that strcpy() implementation as a verbose version of K&R2 page 106. If you don't, you probably haven't read K&R, and it then immediately follows that you don't know C. ;^) Also, I think your idea that all code should be commented sort of goes against the idea of idioms in languages. The above snippet is an idiom, and an experienced C programmer will recognize it immediately as such. Of course, someone with less experience wouldn't, but then it becomes a learning experience!
  • "considering the circumstances behind the split of NetBSD and FreeBSD"

    I think you mean OpenBSD and NetBSD. FreeBSD developed out of 386BSD, and NetBSD developed out of Net/2. Fundamentally different projects.

    OpenBSD and NetBSD split because Theo de Raadt wanted to change some of the way NetBSD did some of the things. He also made some rather unfortunate remarks because he is hot headed. Everyone threw around insults. People became afraid of Theo, and they revoked his CVS commit access to the NetBSD CVS servers. Theo got a complete copy of the NetBSD tree and spent a year and some with a few other developers auditing everything, and posting regular reports to Bugtraq. NetBSD did not merge any of the code changes because of political reasons. FreeBSD merged some of the pathes.

    It's very easy for tempers to run out of control, especially people who haven't learned proper people skills (which, unfortunately, is a larger than average percentage of heavy computer users). These kernel developers need to talk out their problems instead of threaten or otherwise bandy about their particular "we're being discriminated against!" flags or accusations. Sometimes they do sit down and talk agreeably, and sometimes they don't. This is a complex situation, made more difficult by Hans wanting to get into Frozen code. Linus has not made it easier by making the freeze somewhat slushy at will for important changes, because Hans sees this as a further excuse to crow about his own code not being integrated.

    I think this will we resolved when 2.5.x starts out. By then, Hans and Stephen (of ext[23] fame) will hopefully have discussed how to add generic journalling functionality to the VFS (where the Linux Kernel can better access it to ensure cleanlyness of journally metadata between the buffer cache, journally area, and other places), instead of keeping it separate (and thus bloating the kernel by lack of code resuse). We shall see.
    ---
  • An enlightened despot can be a good thing, yes, but what happens when he exits the scene?

    One of the great advantages democracy has over most tyrannies is that elections replace the problem of succession inherent in most single-leader systems. It was partly to uphold this principle that George Washington refused to stand for election a third time, even though he could have won without any trouble.

    Linus is young so this isn't likely to ever be a serious problem, but sometimes the most important thing a leader can do is to name his eventual successor.

    -cwk.

  • (no, that's not an oxymoron).

    Linux, like the early internet, is a well organized anarchy. Stuff gets done when people get around to getting it done.

    If Viro -- or anybody else, for that matter -- really gets out of hand, somebody else is always free to light their own torch and lead a ragtag team of developers out of (or into) the wilderness. It's never a wasted effort because, even if you 'fail', the better aspects of your work can be folded into the 'winning' fork.

    If documentation is REALLY needed, hunt down someone who would be willing to work on it. If they do a good enough job, they'll probably be commissioned to write a book about it.

    Live life on the edge and risk getting blown away, or huddle in with the masses where you'll be relatively safe, but you'll never feel the wind in your face. Either choice is fine. Both choices are yours.

    Linus, Rizer, Viro, etc. simply chose the former path. So did Kennedy, Hitler, Ghandi and Gates.
    --

  • I've read some well written posts which point out that open source may not be enough and that open design (what can we expect coming down the road) may be a good idea.

    In this response [slashdot.org], Al Viro's point 2 reads:
    2. Keep your attributions straight, I don't think that journalling is a good idea at all. Personally, I prefer soft-updates.

    If I understand the context, Al Viro does not support journalling. Could all those journalling fs authors and design teams have gotten it so wrong? Or, is one man's agenda making a complex situation unecessarily more difficult.

    If I've misunderstood the context of your post, Al Viro, I apologize in advance. If, however, you really don't think that journalling is a good idea, then could you explain why and save the ext3fs, XFS, JFS, ReiserFS, et al developers some time while they continue to go down a blind alley.

  • Consider for a moment the issue of culture differences. Some cultures, including European ones, typically have different values than others. For example, in Germany if you are a team leader, your employees expect you to know _everything_ and always have an answer to any situation, even if it isn't the correct answer. A team leader that doesn't have an answer may be criticized quite harshly by employees in private, and by other team leaders.

    In North America we don't always expect people to have all the answers, we tolerate it when people don't know the answer to something (usually) and often try to find the answer. If a team leader doesn't know an answer, it is common for the employee with the question to continue the search for the answer, but not common for the employee to frown upon his/her boss' lack of knowledge.

    That is just one example, but culture differences can play a major role in the relationships of people, and how people interpret the words of others.

    Culture differences are important to bear in mind when dealing with all people. People from some cultures communicate in a form that is, inherently, more negative than others, and quite a bit different from what some cultures can be used to. Hence, the issue of cultural conflicts.

    So the "excited ... and making comments about other people" comment in this thread may actually be a result of cultural differences, if one of the two men involved is from another culture. That may be how some cultures communicate - through language typically more exciting and personal than we are used to in North America.

    Also, consider that even if a person learns fluent English, that doesn't mean he/she learns the culturally-specific generalities of communication typical in English-speaking countries.

    Always keep cultural differences in mind when talking to people from other cultures, it may help you avoid unnecessary conflicts.

    This whole inspired debate may be nothing more than the country of origin of these two gentleman. It may, in fact, have nothing to do with politics.
  • Free Software =! Open Source Software! Actually, technically what you're saying in this is: Free software is equal to not (!) Open source software. I believe what you mean to say is: Free Software != Open source software. Nice little rant, but get your syntax right. :)
  • by nomadic ( 141991 )
    "Being human, is there any way we can avoid this?"

    Don't know about that.

    Should we?

    While I don't know if we can, or should, get rid of it completely, it's probably a good idea to minimalize it to a certain extent. A lot of it seems to come from insecurity; I've noticed a lot of people, especially techies, are extraordinarily thin-skinned when it comes to disagreements or questions. They interpret mild differences of opinion as attacks on their knowledge, and respond accordingly. Look how many threads on slashdot devolve into constant bickering over some technical minutiae that in the grand scheme of things don't really amount to much.
  • IBM to start shipping Caldera, Dell to start shipping Red Hat. MS has been ordered to break up. Several companies are intergrating Linux based OS's into previously, unchartered territory - handhelds, navigation systems, etc.

    Thar's money to be made with that there Linux stuff.

    And because of that, companies, individuals and venture capitalists are all struggling to figure out how they can enter, lead and make the most money off this market. It reminds me of the PC wars of the early 80's. Everyone just about used the 8088 hardware/BASIC combination, now it was a matter of whistles, bells and marketing to push your TRS 80 over the Timex Sinclair over the Commodore.

    Argue, steal, criticize and so on and so on.

    Things will either get better or worse. But they will definitely get interesting.
  • Having read through about 50 messages on the thread handilly linked to anonymously, I found some of the original flames, and a lot of stuff posted since then.

    It seems to me that the flames served their purpose - everything in reply was civilised and co-operative, and an awfull lot of discussion, and quite a bit of work seems to be getting done.

    I am particularly impressed with the way that everybody is handling the meatier questions of design - with a mixture of intuition, KISS, reusing what is available (where helpful only), looking at each others code, and setting it up for general future use.

    I am left wondering if that is what happens all the time after a flame, or if /. (and presumably others) have had a calmic (karmic?) effect by putting up the hysterical headline they did, and forcing the debate into the 'public' eye.

    If so, you could say that the /. flame has had it's desired effect too.

    Whatever the reasons, this is good, clear evidence (to any heretics out there) of the workings of open-source, and the self-correcting system of open debates that surround it.

  • 1. That may actually work, but I think that you are missing the real source of ->read_inode() ugliness. It's not a union in the inode, it's the fact that ->read_inode() itself is ill-defined. IMO iget() should eventually go away - the only reason why it is still there is knfsd and Roman's patches look pretty interesting in that respect. I suspect that one of possible solutions is to have a variant of iget() that would return the marked inode instead of doing ->read_inode(). And let the fs (in foo_lookup()) call that, check whether inode is marked (== new) and if it is - fill it directly. I.e. do whatever your read_inode() would do, but with the arguments passed explicitly instead of trying to fit them into ->i_ino. Filesystems that do not allow links are already doing something similar (they are pretty much guaranteed an icache miss). If you want more details - let's take it to fsdevel, OK? It's _not_ a 2.4 project, though. Allocation is completely separate beast.
    2. I'll say... generic IO stuff _does_ belong to VFS, unless you are going to redefine meaning of the word.
    3. Care to show something better? If you know how to do it - I'm sure that Erez will be rather interested in your help.
    6. You know how it happens? Interface-changing patch gets submitted to Linus and there is no way in hell to tell how many iterations it will take and when it will go into the tree. And iterations may be rather fast. It's not a CVS, Linus does not use it. He has every right to prefer other methods - no point complaining, but the reality is that process _is_ different. Summary of which version of patch do you want? All of them, slightly changing and separated by 5-10 minutes? Wow. I know that I would not be happy about that, but tastes differ. If you think that I don't get the same problems - well, I have a nice bridge for you. For non-trivial changes summary usually goes _after_ the final variant gets into the tree. Tough.
    Oh, well... I'm going down right now, if you want to talk about the read_inode() and union-killing stuff - let's take it to fsdevel where it belongs. BTW, same goes for another variant - the problem I see with it is that we would have to put the icache into a large bunch of caches (size of element is a constant) and that's going to make icache eviction interesting.
  • 1. Search l-k archives for the last couple of weeks and you'll see there my posting proposing (one more time) exactly that, with details on implementation. Subject to approval of individual fs maintainers. BTW, any fs _may_ use ->generic_ip - quite a few do exactly that. Reiserfs can use it right now and could do so a year ago. At that point decision on each fs belongs to fs maintainers, in that case - to Hans. All infrastructure is there since long and many filesystems are using it. Oh, and that contributes _nothing_ to HFS problems.
    2. Keep your attributions straight, I don't think that journalling is a good idea at all. Personally, I prefer soft-updates.
    3. Check the work of Erez Zadok. He has a stacking toolkit and working filesystems based on it. With the current VFS. There are problems with his code, but they are mostly semantical (i.e. nobody knows what is actually the right thing in several corner cases). Again, his code works with current VFS.
    4. And what would I do with it? Split in per-fs parts and send to fs maintainers? Sure, I can do that, but this stuff has nothing with VFS at this stage, each fs may do such switch quite fine and decision definitely belongs to maintainers.
    5. I'm _not_ Linus. Ask him. BTW, I don't get 100% patch inclusion (nobody does).
    6. read fsdevel. Design stuff is posted and discussed there.
    7. Huh???

    BTW, _all_ the stuff you are asking about is available in archives of l-k and fsdevel. I understand that you simply don't have free time to read it, but I'm sure that you can understand that other may have no time for retyping it for you. And get a clue, already - search would take less than it took you to type your posting.
  • You know, it's not a CPSU and there is no party line (if somebody happens to have such a beast - FWIC they may shove it up their arse, I'm not playing these games). There are two more or less similar technics, with different tradeoffs and benefits. So far nobody had actually done a comparison of them on the same kernel and fs layout (OK, there was a recent work on FreeBSD, but there are some subtle points). Nothing prevents having both implemented, moreover, they will require more or less the same functionality from the whole whorehouse - VM, VFS-to-devices glue, etc. At that point nobody can actually say "this variant is clear win". The only honest way is to do one you consider more promising, do it as best as you can and compare. Then (hopefully) learn from the details of that comparison and see what can be improved. Lather, rinse, repeat...
    It's not like we had to have One True Fs(tm) - there is no such thing, simply because there are different tasks, different loads and solution that is good for one may suck for another.
    So no, I don't think that journalling folks are wasting their time. I also don't think that s-u folks are doing that. The only agenda I have here is curiosity - I want to know how far can these variants be pushed. And it means that cheating is not an option - not to mention anything else, it simply defeats the purpose of the exercise ;-)
    In other words, personal opinion is exactly that - personal opinion. Personally I find s-u more attractive, but I'm pretty interested in seeing Chris, Stephen, XFS folks, [substitute the list of journalling projects] doing their best. So far everyone needs the same infrastructure and I'm quite happy to see what Chris and Stephen are doing. Moreover, once it will be there we are not going to stomp on each other's toes - after that point work belongs to individual filesystems.
    I have no strong opinions on the way this stuff will look like - needs are similar enough and guys doing that are in much better position to decide - they have more or less debugged code to look at, and that's a big help.
    In principle, the less code duplication they will get, the better (less pain to catch bugs afterwards), but IMO it's for them to decide. AFAICS they are working together quite fine, so the best thing for everybody who doesn't actively participate right now (e.g. for me) is to avoid interfering.
  • by tilly ( 7530 ) on Sunday June 25, 2000 @05:25AM (#977797)
    People who follow the kernel threads summary are well aware that this topic shows up there.

    For instance look here [linuxcare.com] for an example of Linus apologizing for his behaviour, and then there is Donald Becker's problems [linuxcare.com]. Past complaints [linuxcare.com] have shown up as well.

    Unfortunately I cannot right now find the post I was most interested in pointing out that the confrontational atmosphere limits participation by people from different cultures. (Specifically Japan.)

    OTOH let me wrap up with my all-time favorite discussion of design philosophy, which happens to (coincidentally?) show Linus' flaming abilities [linuxcare.com]...

    In short I think there is an issue. Can it be fixed? Should it be fixed? I don't rightly know...

    Cheers,
    Ben
  • by SurfsUp ( 11523 ) on Sunday June 25, 2000 @10:21AM (#977798)
    1.Why is there a big, ugly union in the VFS rather than having all filesystems use the generic pointer?

    This is a big ugly wart that has to be fixed. But there's another way to handle it than forcing everything through the generic pointer: just include the length of the fs-specific data in the fs registration struct. Then all the nasty includes can be unwound. I proposed this a few months ago but didn't get any feedback one way or the other so I didn't code the patch. After getting some email about it later along the lines of "good idea, where's the patch?" I decided to do it after all, but by that time 2.4 was getting too close and this really isn't the kind of change you want to make when you're on the putting green. As soon as 2.5 comes out I'll do it and submit it, we'll see what happens. All the filesystems have to be changed at the same time (though trivially) so basically the patch has to be coded and submitted all on the same day. And if it doesn't get accepted the first time around (the likely case) the process will have to be repeated a couple of times.

    This is by way of saying that I hope that that particular issue hasn't got long to live. (on to the next...)
    --
  • I do not intend to avoid Carma Whore allegations as I get blasted on casual basis anyway to make sure that my carma is down with no artificial assistance.

    So summary (from all threads):

    1. Al is not one of the most pleasant characters to deal with. As he himself says: "I am a BOFH, not a nurse". But he is usually right. And if you subtract the inflammatory tone so typical for *nix dicsussions he is right here as well. That is besides the fact that Al was not the only accused and at one point Reiser was throwing accusations left right and center.

    2. I like what Hans does, but:

    2.1. There is no common journaling API so his work, xfs work and ext3fs work cannot be converged. Especially at user space level. And this API is nowhere close.

    2.2. As per Hans statement he has more than 6 more additional months of roadmap for features and cannot freeze. Kernel is in feature freeze right now. So ReiserFS should not go in. So if there is a problem with ReiserFS conforming to the current VFS layer then ReiserFS should be adapted.

    2.3. There has been a flurry of new VFS level features. bind mounting, multiple mounting of partitions, devfs related stuff, etc. IMHO: these all have some very serious security implications that must be flushed all the way to userland. Before that VFS should not be modified at anyone's whim. That is besides the fact that kernel is in freeze and the discussion on modifications is moot.

    3. Overall: IMHO in this case Hans p... is shorter. That is besides the fact that it is shorter by definition due to his licencing practices.

    YetAnotherLinuxUser (and sometimes sysadmin).

    P.S. This is not the only thread. There are few more.

  • by RedGuard ( 16401 ) on Sunday June 25, 2000 @04:11AM (#977800)
    Yeah, it seems from the discussions on linux-kernel that having a transaction filesystem
    leading to problems with too many pages being
    dirty because the vm system can't write out ones
    that are required for a transaction, so some sort
    of major modification is required to fix things.
    NT has a similar write-throttling mechanism.

  • by Ancipital ( 19821 ) on Sunday June 25, 2000 @05:00AM (#977801) Homepage
    First off, you can have a read for yourself, at
    http://devlinux.com/projects/reiserfs/ - also,
    Underhand.net's very own Kurt has a nice page
    about converting your box to reiser, if you're interested,
    at http://kurt.andover.net/Reiser-filesystem-HOWTO.ht ml


    Well, I use reiser on my x86 based squid at work,
    and it's pretty damned nippy. It saves quite a bit
    of space, gives me a 15% speedup on reads, and is
    journalling. Of course, with journalling, unlinking is a little slow, but that's less
    critical for me.


    Of course, I don't like the three lines of ads on startup; I want to see
    important messages about the health of my box, not spam for mp3.com, SuSe
    and so forth. It didn't take long to knock that bit out, but it shouldn't
    have been needed. When linux becomes spamware is when I choose to untrash
    my FreeBSD boxes :)


    It's a pretty nice fs, all in all. However, as much as I admire his work,
    I can't condone Hans R's rather hotheaded behaivior, esp towards Viro.
    The kernel guys have a lot of factors to juggle, and have to (in theory)
    make changes based on the biggest potential upside. Where there are
    disagreements, the maintainer makes the call, because he/she/it is the
    maintainer.


    I think we can do without fireworks in the kernel list. This filesystem
    isn't really needed for endusers right now, it won't kill people if they
    have to patch it in.


    I know that Hans and others have put loads of very hard work into the code,
    and I am sure we all applaud them for their efforts, and the quality of the
    results. However if it's not right for the direction of the kernel, and
    the vfs stuff etc, it's more than a little arrogant to expect the kernel
    supertanker to be turned on a dime, just for one FS.


    I genuinely suspect that the problem is as much in Hans' approach as the
    code itself, and that if he were to cool down a little, there could be a way
    to mesh a lot of the excellent work he's done into the kernel proper. Of
    course, it would involve him losing a little face, but it's a question of
    priorities. If he swallowed his pride, maybe he'd be better off, and hell,
    the rest of us would too, since some of his work is absolutely first class.


    Like I say, my work squid runs on his FS, it's not like I think it's utter carp- it runs like a dream..


    It's not really appropriate to try and send the pugilistic villagers up the
    hill to Castle Viro to burn the place down quite yet; he, and the other
    kernel guys, are doing a sterling job- there's no reason to tear them to
    bits because of one brilliant but misguided loose cannon. (There's a mixed metaphor for you)


    Oh, and this 2.4.0-test2 kernel is doing pretty well so far, too :-)


    Just my two cents.. YMMV, etc.


    Oh and my own spam for mp3.com, visit http://www.mp3.com/tib -it still sucks.


    (Sorry about the cruddy formatting, bad hair day)

  • by FascDot Killed My Pr ( 24021 ) on Sunday June 25, 2000 @03:47AM (#977802)
    ...but I know what's wrong.

    Non-(kernel developers) should stay the heck out of this discussion. Political infighting is never helped by the uninformed butting in of outsiders.

    Yeah, yeah "maybe we have a better view from the outside". But just imagine YOU are a coder working on a project with a bunch of people you know are competent but who don't agree with you. In comes a consultant to "help you out". How do you feel about the consultant? Now imagine that you were working on the project voluntarily and for no money. And further imagine that there is no "management" to appeal to make the coders listen to the consultant's ideas.

    One of three things will happen:

    1) Everyone will be rational and form a consensus.
    2) Opinions will polarize and the project will fork.
    3) Squabbling will continue.

    Nope, I'll watch this one from the sidelines and I suggest you all do too.
    --
  • by CocaCola ( 30016 ) on Sunday June 25, 2000 @01:05PM (#977803)
    while I'm not Alexander Viro, I try to answer your points.

    1) the VFS union has been around since early Linux, and was designed by Linus - this has nothing to do with Alexander Viro. Feel free to submit patches.

    2) journaling will be what people submit. Right now ext3fs has a generic journalling subsystem, ie. any other filesystem can use the same transaction engine. Feel free to submit patches if you disagree.

    3) feel free to submit patches that make the VFS stackable. Be wary of deadlock, recursion and generic complexity issues.

    4) the answer is 'if done right then yes, sure.' Feel free to submit a patch.

    5) Feel free to submit patches to Linus.

    6) your observation does not match that of mine. As a matter of fact I dont have a vested interest in ReiserFS.

    7) sure, feel free to submit patches.

    I hope to not sound arrogant, but your VFS-related comments so far did not show a great deal of experience. Writing a filesystem does not necesserily mean you understand the VFS! Please make sure you understand what you are talking about - best way of learning is to post your comments to the linux-kernel and/or linux-fsdev mailing lists, not Slashdot.

    Alexander Viro has brought alot of simplification to the 2.4 VFS: despite having 35% more filesystems, the total linecount of filesystem-specific code got 30% smaller. Alexander took lots of filesystems-specific hacks and made them a generic VFS feature. I dont think you want to argue with the fact that this makes the Linux filesystem architecture much more flexible. Ext2fs got only 12% smaller in 2.4, so it's mostly other filesystems that benefitted. (ext2fs got so much attention during the years due to its large 'user mindshare' that it was pretty clean already.)

  • by CocaCola ( 30016 ) on Sunday June 25, 2000 @03:40AM (#977804)

    How come other filesystems have no 'problems' getting into the Linux kernel? How come that the number of filesystems in 2.4 is 35% more than in 2.2? Why is it that every kernel developer who contributes on a daily basis acknowledges Alexander Viro's hard work of cleaning up the VFS? Witness Mandrake and SuSE kernel developers defending Alexander Viro in the other thread, so it's ridiculous to shout 'Red Hat conspiracy'.

    New filesystems in 2.4:

    shmfs (a much bigger change to the VFS and MM layer than any journaling filesystem. Stephen Tweedie wrote a journaling ext3fs on almost-vanilla 2.2 VFS, so it's not rocket science.)

    ramfs/cramfs. Features compressed file data - not a triviality either.

    devfs. Despite Linus' reservations against devfs, it's in the 2.4 kernel.

    This whole 'Reiserfs' argument is a red herring. Hans Reiser has to get his act together, and he should start contributing to the Linux codebase on a daily basis so that he can integrate potential extensions cleanly. Hans Reiser's problem could be rather that he financially depends on Reiserfs to succeed?

  • by be-fan ( 61476 ) on Sunday June 25, 2000 @06:46AM (#977805)
    While the very open style of development has been very succesful for Linux, it is not without it's flaws. Because it is open, people who maintain pieces of the code (such as VFS) actually have a lot of power over what happens to that code. In theory they don't, because people can always write their own code, but I don't think there is anybody who is willing to fork the kernel over this issue. Thus, egos and ego clashes get in the way of development. I'm sure this also occurs in the BSD development teams (considering the circumstances behind the split of NetBSD and FreeBSD) but is just less public due to the more closed nature of the development. Actually, I think such development problems are present in every large Open project simply because there is no management breathing down your neck to stop bickering and do something to further development. Given the fact that people will always have egos, and that nobody wants to close up Linux's development, I'm afraid there is probably nothing to be done, other than resolve issues on a case by case basis.
  • Actually, Al, I have been working with the VFS, and alot of the problems is the undocumented, unnanouced way in which the VFS gets changed. I try reading through linux-kernel, but the volume of messages is WAY too much to sort through daily. And linux-fsdev is a low volume list that rarely gets a post. So the way that i find out about changes is to have my filesystem break in some wierd way, and find the diffs for ext2, go through them, and see what changed. And i also haven't seen any reason for the symlink change, other than an "aesthetic". (If there are reasons, please feel free to direct me to them.) So one of the gripes that Reiser had that is valid -- that the changes to the VFS are kept opaque, and you end up having to read the source to ext2 to figure out what the hell is going on. Meanwhile, I am trying to write a filesystem, which is a rather mammoth task in itself.

    And as another point, from a logistical issue, there have been a couple "feature freezes" announced for Linux 2.4. Which makes people really hesitent to send in patches since by all rights they will probably be ignored. Feature freeze to me ususally means bugfixes only. Yet the VFS has changed ENTIRE SEMANTICS for certian functions since the last two "feature freezes." This by itself is a little odd. Since you have name recognition with Linus, it's easier for you to get patches recognized than anyone new to the kernel team, yet the level of change is the same.

    So as a polite request, could we utilize linux-fsdev more for the VFS traffic, and just keep good summaries of what VFS patches are going in? That by itself would help clear up alot of the debates.
  • by Speare ( 84249 ) on Sunday June 25, 2000 @06:57AM (#977807) Homepage Journal

    Not a flame.

    mav[LAG] thinks it's possible that anyone with a good enough grasp of the latest kernel and how it works is more than likely writing code rather than writing docs

    I've known a lot of technical writers who have decided to focus their energies on English, and not C. They can understand how something works, and not be compelled to write more code on top of something that few people understand.

    I've also known a few of these gifted technical writers who also have the knack of talking at length with programmers, asking the right questions and rephrasing things and asking again, thus forming a translator from "arrogant coder who expects everyone to read source code" speak into "interested technophile who wants to understand algorithms" speak.

    As a matter of teaching people to program, I always insist that a person write out their algorithm in English, as comments, then each comment becomes a statement or two of real code. Then, importantly, leave the original comments in. It's all about the algorithms, people, not the reserved tokens and the use of operators. I wish more "advanced" programmers did this design-in-comments technique, because it (1) makes cleaner algorithms, (2) makes documentation for later readers, (3) makes it easier to port later.

    Lastly, I know a LOT of programmers who would be a lot better if there were definitive 'state of the art' examples of source code, along with carefully written English discussions of what the source code is doing. If you don't know C, you don't know what while (*s) *d++ = *s++; does. If you're just learning C, it helps to see /* copy to the end of the source */ nearby.

  • by smcavoy ( 114157 ) on Sunday June 25, 2000 @03:09AM (#977808)
    I noticed the thread in the KC on Linux care and was kinda suprised to see some not so professional communication, as I read some of the response it became clear that the e-mail that started it was made out of frustration (you've spent years working on something and then you're told, it's not ready yet). I think initial responses had a little too much ego, but as they go on, they get down to business. I think this model will work in the long run, as long as people STAY OPEN MINDED, and are willing to listen and explain. Beware the darkside!
  • by fluxrad ( 125130 ) on Sunday June 25, 2000 @03:41PM (#977809)
    you're right bro! the kernel needs to be as flexible as possible and allow support for as many programs as possible.

    That's why i think linus and alan cox should have a web browser integrated into the operating system so that you can't remove it. I want to see something like IE5 in there! yeah! that would be good!!

    in all seriousness - the linux kernel, ironically, is the same thing as neo-mail....it was a free 'program' (if you'll allow me a little license here) - that Linus originally intended for himself because he didn't want to have to pay inordinately high prices for other *nix distributions. That being said, linus (and AC now) have pretty much absolute say over what goes into the kernel, and more importantly, what doesn't. - I think the politics of the kernel have little to do with what's going on around it. Up to now, Linus and AC have been very good about keeping cool heads. If this changes, maybe other people will use other operating systems...their choice.

    Right now, I use linux because it's the best choice for me, if that changes, i'll use another OS, probably (Open|Free)BSD. This is exactly like the NeoMail example. If it's right for you, use it, if it isn't - don't. No skin off your back, no skin off the developer's back.

    Linus hasn't made any money off linux (aside from the peripheral gains like fame, and he'll never have to pay for a buger when he's around John 'maddog' Hall) - So, who cares about ego so long as he's still building a good OS. Like i said, if that changes, people will move on.

    When software pissing matches go to far....people don't need to talk about the consequences...they just happen. Look at MS - all people see coming out of Redmond now days is a big river of piss...and look where it's getting them. Bad software is bad software, regardless of the reasons. Maybe it's shitty code, maybe it's shitty managerial decisions (brought on by whatever reason). But either way, it's a natural process.


    FluX
    After 16 years, MTV has finally completed its deevolution into the shiny things network
  • Two developers arguing about the best way to do something is a crisis in Linux politics?

    Gimme a break. The whole idea of open source is that (like some kind of chaotic genetic algorithm) it will weed out the best way to do things.

    My criticism of Linux is that, in a case like the JFS, it fails to leverage the commercial entities who have a lot to offer -- SGI and IBM. It was just several months ago that SGI seemed strongly interested in moving it's JFS to Linux. IBM has made similar offerrings, as I recall.

    Apache has done very well working with the com types, but Linux seems to prefer hiding in a cave, with a score of unrelenting primitives camped at the opening, shouting "Ugga Bugga!" at any which seek to enter, and poking them with a sharp stick.

    Go ask Joerg Schilly(sp?) about scsi generic. Surely SGI, Sun, IBM or Adaptec could do something about the horrid state of CD Writing under Linux.
  • by rutger21 ( 132630 ) on Sunday June 25, 2000 @03:02AM (#977811)

    Again a CS 101'er... I do not believe a thing such as Linux VM system has no actual design behind it. Of course, there is. But why isn't there some readily available design-doc of all important parts of Linux on the Internet?

    Maybe Linux development could be made two-layered: open-designed and open-sourced. In stead of leaving the design issues to a few, many could contribute ideas at higher level. Then we hopefully get what we all want: the best design combined with the best implementation.
  • by numo ( 181335 ) on Sunday June 25, 2000 @04:41AM (#977812)
    Making noise is one of the things that keeps the open source system healthy.

    Yes. And being software developers and not diplomats the language used is not always the most polite in the world - I personally think it is fully OK, but not everyone thinks so. I am not a kernel hacker, but I already have the experience of being flamed down by one of the gurus (well - he was right :-)), after which I responded by sitting down for a day and identifying a though bug in his code :-) Someone else might respond with "Fsck you" and never again read l-k.

    The current discussion regarding ReiserFS is not very significant, although it would be sad if it ended with Hans giving up his high-quality work. What bothers me more is that IMHO we are approaching a limit where the current way of project management won't work in the long term and there is very little being done about it. Just a few points:

    • There is no version control system - instead we play games with x.y.z-test-pre-ac-aa-whatever and if something goes wrong, we binary-search the exact version where it happened instead of getting clue from changelog.
    • There is no issue tracking system (the TODO saga on the l-k is better than nothing, but...).
    • The design papers are missing (even a separately archived and publicized relevant mail threads would help).
    • There is no regression testing (no doubt the developers of the particular subsystem have something, but it is not readily available).
    Some problems were identified and adressed - the big delay between 2.0 and 2.2 due to missing definition of the target feature set and (hopefully) the horrible state of 2.2.0 when it came out due to allowing non-bugfix changes in the last pre-versions. Alan Cox does a great job at integrating and testing the patches.

    I hope that when the 2.4.0 comes out, the core developers will look back and discuss what can work for next years and what cannot.

  • by Backline ( 202972 ) on Sunday June 25, 2000 @06:15AM (#977813) Homepage
    >A person who claims women have no egos and >agendas probably believes in the Tooth Fairy. or is a very cunning woman with an ego and an agenda.


    ==============================
    http://www.geek-ware.co.uk
  • by JAPH Doggy ( 96000 ) on Sunday June 25, 2000 @05:44AM (#977814)
    Little spats like that have been happening since the beginning; I remember some real doozies back around '92, '93. I wouldn't worry about it.

    In fact, stuff like this happens no matter what, whenever you bring a number of people together... some people are going to argue. Just with OSS, they end up doing it in public... for all the world to see.

    You should accept it, expect it, hell... even enjoy it... but still realize that nothing has changed.

    --

  • by techwatcher ( 112759 ) on Sunday June 25, 2000 @02:50AM (#977815)

    Obviously, it is a good idea to avoid ego-involvement, or conflicts stemming from same, in coding as in other human endeavors. Can this be achieved in the free OS movement? Possibly, but not with current tools.

    • A great manager (there are very few) has two major functions with regard to her project members:
    • Bring out the best in each individual, in part by encouraging and supporting each as each requires. Different personalities have different "hot buttons," needs, respond to different incentives; although many techies think little about social factors, and probably most believe we are all fundamentally alike, this is not true.
    • Facilitate communicate in such a way that the individuals become a close team -- focussing on common goals, building common understandings, softening the edges of edgier personalites. (The latter is achieved by "translating," as in, "I think what Bill means is..., did I understand your comment, Bill?")

    So, the open source movement clearly has two problems to solve if participants want to work together more effectively. First, it has no managers with these skills, since only techies are involved, and they (naturally) have to spend most of their time focussing on learning new technical skills. Second, really effective project management software for remote or diffuse projects doesn't yet exist.

    Btw, more bandwidth won't solve the latter problem, because even perfect video conferencing doesn't allow the same kind of interaction that live meetings run by great managers achieve. For example, social researchers have determined that just the presence in a room of a mirror increases "objective self-awareness" (which generally inhibits free and creative exchanges). The mere presence of a tape recorder -- even if it's not turned on!-- has the same effect. So imagine what effect the recorders for video conferencing have....

    That said, pro-active documentation (which I used to recommend when I managed documentation at Bear, Stearns in the early '80's) can certainly remove some of the potential conflicts,if nothing else by helping individuals who need to work alone choose areas not impinged on by others! The possible trade-off is that the strength of the open source movement is precisely a not-necessarily-scripted characteristic, its willingness to embrace a totally new (better or more comprehensive) answer or approach to already solved problems.

  • by Anonymous Coward on Sunday June 25, 2000 @02:31AM (#977816)
    Start here [kernelnotes.org].

    (Posted anonymously to avoid karma whore allegations)
  • by Morgaine ( 4316 ) on Sunday June 25, 2000 @08:39AM (#977817)
    It's going to take more than just good documentation to keep Linux from developing out of control and spiralling down towards instability. Most non-trivial software heads in the general direction of loss of control as it grows, but operating systems are specially vulnerable to this syndrome because they are highly concurrent systems, and concurrency offers opportunity for problems to emerge with the greatest of ease.

    For Linux to remain stable, one of two things are going to have to happen. Either extremely heavy-handed personal control by people with a supreme grasp of everything that's going on in the kernel and who won't be deflected from their straight and narrow path --- that's where we are now, so be careful not to throw the baby out with the bathwater when knocking it. Or, fight the problem with technology and abandon the single monolithic unprotected space approach and partition the kernel into a large number of interacting but separate domains using the MMU plus well-specified and relatively stable internal interfaces. Needless to say, the second of these approaches would result in an utterly different kernel altogether, but at least it would have a longer life expectancy.

    The current kernel is as brilliant as it is because of the brilliance of the people that are keeping it from falling apart under force of change. But there is a limit to human intellect, at least in the current pre-nanotech timeframe. The current developers should accept that, and work towards a kernel design that reduces dependency on their brilliance by providing an effective assortment of hardware-assisted guarantees. Learn from the user-space design of Unix. It's a good model.
  • by Rik van Riel ( 4968 ) on Sunday June 25, 2000 @06:47AM (#977818) Homepage
    At least, while there were some overheated email going in both directions, there never were political arguments involved there's no reason to fear that Linux development will fork or halt as a result of infighting.

    Truth is that in the heat of the email thread both sides wrote up some things that just weren't there. And after yesterday's invention of the "VFS flamefest" here on Slashdot, it seems logical that some of the people who weren't on linux-kernel but were on Slashdot yesterday get a bit worried.

    Well, I guess this is how rumours come into existance :) Lets forget this whole thing and get back to coding like we always do...

  • by artdodge ( 9053 ) on Sunday June 25, 2000 @02:42AM (#977819) Homepage
    I encourage Slashdot readers to look up the recent exchanges between Hans, Al, Alan Cox (all-over-the-kernel guy), Rik van Riel (VM guy), and others, and form your own opinions about the involved parties.

    Calling the kernel a "coalition of little feifdoms" is wildly inaccurate, because as the core systems of the kernel become more integrated with each other (think f.e. of the tangled web of interaction between VM/VFS/buffer cache/dcache/icache/swap cache/etc...), the "heads" of each work more and more cooperatively. Sure they still flame each other (time was, being called "pinhead" in linux-kernel was a mark of high esteem), but the amount of respect and degree of deference shown to each other's expertice is truly admirable.

    Of course, politics show up every now and then... there are still people who think DevFS integration is the seventh sign of the coming of the antichrist. But even those who vehemently opposed it are now helping to make it really good by adapting the dcache and VFS to work better with it.

    IMVHO, Hans made something of a spectacle of himself on the list. He ran around accusing everyone he could find of being corrupted by corporate influences (RedHat was his favorite target, since Alan and SCT of ext3 fame both work for them), while simultaneously admitting he had a strong financial incentive to get ReiserFS integrated with the kernel.

    Of course, there are two sides to every story; Hans has been working on/with this thing for a long time, and has sunk a lot of his own blood, sweat, and tears into it, so I don't blame him for getting a little fanatical about it now and again. :-)

  • by SurfsUp ( 11523 ) on Sunday June 25, 2000 @02:34AM (#977820)
    Making noise is one of the things that keeps the open source system healthy. I think that in general the Linux kernel has had good stewardship, and though I personally have not had direct interactions with Al Viro, I think that extends to him as well.

    On the other hand, I think the system could be improved a lot. There are some annoyances. For example, there is little, if any, documentation available on the one of the most critical aspects of the kernel, namely the buffer cache component of the VFS. It seems that you are expected to either learn about it yourself by reading every post on Linux Kernel, and every line of code in the filesystem tree, plus all patched versions. If you get stuck, you can play 20 questions on the kernel list, trying not to appear too clueless and at the same time trying not to appear so clueful that you will get flamed on grounds that you should have figured it out yourself. If your post to the kernel is phrased correctly then one of the VFS gurus will answer it - usually clearly and accurately, but not necessarily completely. And the game goes on.

    The good news is that you *can* get the information you need. The bad news is that you are expected to jump through a lot of hoops to get it, and the information seems to be dolled out as a kind of payment for playing the game correctly and politely.

    I think this should change. I think that the design documentation we need should be readily available - it has to be posted somewhere where everybody can get at it, and contribute to it. There's already a place for it: kernel.org. Why isn't there more there than just kernels and patches?

    (The Linux Doc project is a good source of documentation, but not for in-progress kernel work.)

    There's no shortage of people who would be willing to do this kind of documentation work if they were able to. Right now there seem to be some roadblocks in the way.
    --
  • by Bedemus ( 63252 ) on Sunday June 25, 2000 @03:02AM (#977821) Homepage
    It seems to me that the issues above shouldn't even be referred to as political -- it can't really be compared to politics because a maintainer is granted absolute control over what's officially in a piece of software, he or she has to be in order to effectively do their job without a huge bureaucracy getting in the way of decisions being made in a timely manner. Since that involves making judgement calls based on one's own opinion (though hopefully taking other viewpoints into account!), there are bound to be cries of "unfair!" from the development community at times.

    I'm the author of an open source project entitled NeoMail [sourceforge.net]. As an aside -- yes, my real nick is Neo, not Bedemus, everyone started calling me that after I spent way too much on a Neo outfit for my work's halloween dress-up day and started wearing an ankle-length trenchcoat during the colder months -- I know, I'm a loser. :) When I set out to design NeoMail I had a certain audience in mind, essentially the same one as all open source authors when they start out -- myself.

    Now, once I had something that worked pretty well for me (I had poured at least a month or so of effort into it at that point -- was taking on the project just to see if I could, teaching myself Perl in the process), I posted the code on the web and announced its release on Freshmeat. Immediately, the mails started pouring in -- some bug reports, which are always appreciated -- but more and more suggestions as to what people would like to see. Most of these suggestions were from non-programmers, and therefore included no patches or anything, just opinions as to where NeoMail should head.

    I quickly realized that I'd better start narrowing the scope of NeoMail beforehand, otherwise I'd NEVER reach 1.0! A few things were decided up front:

    • NeoMail would require no extra software be installed, aside from the necessary Perl 5 distribution and included modules, a web server, and an MTA.
    • NeoMail would not be designed to do POP3, IMAP, etc. There were plenty of solutions doing this already, and it would have been easier to use Net::POP3 than to code local mbox spool handling myself, but it just wasn't the direction I wanted to head in. NeoMail served a certain niche quite well, and a chief benefit was that it didn't require users to even have access to a real system account for it to work.
    • Plenty more -- you get the idea. I'd list everything here but how do I know people have even read this comment this far? :)
    Next, the arguments started.
    "Why don't you use thus-and-such module to add thus-and-such feature?"
    "Because NeoMail doesn't need that feature, and it'll make for a hairier install for admins having to hunt down additional modules to install."
    "Yes it does need that feature."
    "No it doesn't, and if it does, code it yourself -- that's why I made it open source!"
    "But I don't code, why don't you add the feature and just make it an option so it doesn't increase system requirements?"
    "Because I only have so much spare time, and after a while when you're dealing with an interpreted (yes, compiled before execution, but you know what I mean :)) language, extra features that aren't getting used just become bloat unless they're modularized, and I just don't want NeoMail to go there -- it adds complexity for the user."
    "Fine, then I'll be forced to go elsewhere for my webmail solution." (This one always floored me! Made it sound like I had a commercial interest in them using my software!)
    "That's your right, thanks for trying NeoMail anyway though."
    "Wait, I was just kidding -- PLEASE won't you add this feature?"
    And so on, ad nauseum.

    Eventually, come arguments actually convinced me to add something, but only if I thought it would benefit the majority of users. I was writing a webmail solution for normal people, not geeks like me. :) When people started saying they wanted NeoMail to import and use their pine or mutt settings, I tried to explain that the vast majority of people that actually are using NeoMail aren't the admins installing NeoMail, but their users, who likely don't even know that pine's a mail client, not a tree. That's the problem when you release your work to a community of people like you -- eventually if you don't fight the urge to do it, your tool will become so big and complex that only people like you will be able to use it. That isn't always a good thing.

    Now, I understand that filesystems are much more complicated than my humble webmail solution, but I think that what people need to realize is that just because someone is the maintainer of a piece of code that allows user contributions doesn't mean that the individual is morally obligated to include everything that comes across their desktops, no matter how well thought out or convincingly argued the matter is. The individual is, after all, the maintainer, and if you don't like it you're always free to add the feature for your own use -- that is, unless you're seeking to satisfy your own ego by getting your code included and a credit in the CHANGES file. The door swings both ways, you know.

    I'd post more -- have a lot of thoughts on this -- but if I don't click "Submit" soon, I can almost guarantee nobody's going to read to the end of this little rant!

    --
    NeoMail - Webmail that doesn't suck... as much.

  • by Al Viro ( 204510 ) on Sunday June 25, 2000 @05:42AM (#977822)
    [apologies for over-the-head reply, folks]
    Has Linux development become too political, bottlenecked and ego-driven? Witness the recent exchange between Hans Reiser, of ReiserFS fame, and Alexander Viro (VFS maintainer) on Linux-Kernel; Hans, and others, were griping about Viro refusing patches and ideas on principle, and Viro keeps telling people to shut up and read the code.
    Sigh... Folks, what about getting the story straight? 1. Hans (or anyone in Reiserfs team, for that matter) did not submit any patches _to_ VFS. The only piece that modifies VFS itself is, as all sides agree, ugly but fixable and did not cause any objections. 2. Patch contained a large chunk of code that obviously was not reviewed for a couple of years, which is a bad thing, especially for interface code. Again, all sides seem to agree on that. 3. "Others" in that context probably means Richard with devfs stuff? Well, the problem with devfs was that it did _not_ change VFS. Instead it tried to do everything in a filesystem and that gave a huge bunch of races and major ugliness. Richard refused (search l-k archives) to move the relevant parts of changes into VFS. Many times. After being asked to do that, since that would make things much cleaner. 4. Ideas are good when the author knows what he is talking about. In particular, if the idea starts with "let's make this to do that" it would better be supported by understanding how "this" currently works or willingness to redo it completely and make sure that nothing breaks. If it is there - fine, things get discussed (tons of examples in archives). If not - too bad. 5. Reading the code is definitely useful thing - especially if you want to change that code. No? 6. Rumors about the need to submit stuff through me are greatly exaggregated (read: provably are pure BS). Discussing the stuff on maillists _is_ needed. _Submitting_ it to me (or anybody other than Linus) is not. 7. During 2.3 there had been several large changes of VFS. If you are claiming that Andrea, Ingo, Stephen and I are the same person... <shudder>
    As for the "external pressure" - get a grip. Really. As far as I'm concerned this stuff is done on technical merits. You can't build a pressure sufficient to make me act against that. And I mean it - I consider self-respect more valuable than having a paid job. YMMV. You can't force anyone of us to do what you like. You can learn the kernel and start submitting patches that would be acceptable to Linus on their technical merits. That's how it works. I would be glad to see anyone joining the VFS/fs work. Learn it and go ahead. Or keep wanking - nobody can deprive you of that right.

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...