Toward a New Kind of Linux Distribution
An anonymous reader writes "Progeny co-founder Ian Murdock wrote a weblog entry that has been reprinted at Newsforge. He talks about how current distros are built from the top down, making a 'one-size-fits-all' solution of technology. He proposes making a modular solution that encompasses building modules so distros can include only the technology they need to suit their purpose, kinda like building from the bottom up. Interesting read, good arguments, potential for a new Linux community."
One size fits all is good. That is why everyone knows how to use a PC (and Windows) and why Unix is a support nightmare. The last thing we need is another Unix/Linux dialect.
I don't know about the distro he's using, but my build of Gentoo only has the packages I want (plus their requirements).
The bottom up model is being used by distros other than Gentoo, too. He's not breaking any new ground or creating any unique ideas IMHO.
Looks can be deceiving. Or CAN they?
In order for Linux to appeal to the masses, these "choices" must be available in an easily installable "package". It would be great to install only those options you need, want or require. And, I think most important, is the time it takes to set up the system.
The only appreciable difference he could offer (which he did not, but could) is binary packages instead of having to compile everything from source.
Of course, part of the reason Gentoo is from source, and why less modular distributions are so monolithic, is that many UNIX programs require specific options at compile time to modify their behavior to fit just right on your system.
Apart from having a huge compile farm which you'd hand the equivalent of your USE flags in Gentoo, and get back a binary built just right for your system, I don't see any particularly clever way to do this.
"Give away the stone, let the oceans take and transmutate this cold and faded anchor." - Maynard James Keenan
Point is it doesn't matter. He has an itch, didn't see anyone willing to scratch so is doing it himself. Maybe it will satisfy others peoples itches as well but if it doesn't it doesn't matter. His itch is being scratched. A non-commercial distro with 1 user who is satisfied is 100% succesful.
Better then all those whiners who want someone else to fix their problems.
But isn't redhat and mandrake and suse modular anyway? Not like they force me to install apache or a window manager. Just the if I want say xmms I bloody well going to have to install X for reasons that should be obvious. You may want MS to stop bundling IE but then don't go complaining that Windows Light doesn't come with a browser installed.
As for putting everything on the CD. Well yes I thought that was pretty nice. Since they want you to buy the thing it means that people with modems don't have to download several gig of extra data just to get a working desktop. KDE is about the only real offender insisting on installing games on every distro I tried.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
That site had better have a monster cpu power and bandwith avaible... It would be slashdotted in a matter of milisecond...
Gentoo is compartamentalized, but not in anyway that other distros such as debian isn't.
Both Debian and Gentoo are heavily optimizable, you choose the componates that you want etc etc.
Bot have your advantages and disavantages.
Debian's is that the developement cycles that forever to make sure that everything is working correctly, but you get a reliable computer that is usefull for hundreds of different applications.
and Gentoo's big disadvatage is that it's worthless for anything other then home desktop, but you can play around with newest technology.
(could imagine administrating a hundred gentoo boxes buy yourself and getting someone to actually think it's a good idea to pay you to run a OS on them that takes a average of two days to get installed?)
And no compiling for speed is DEFINATELY NOT WORTH IT JUST FOR A PERFORMANCE ADVANTAGE in 95% of the apps you would use on a daily basis.
But IMHO people are naturally moving towards comparmentalized OSes anyways in Linux. Weither or not they realise it.
Think about, APT and other decent package managers have caught on in a big way. Fedora can use both Apt and or Yum.
Using package managers it's easy to customize any install and the BIGGEST advantage is that it's simple to keep everything up to date and to install new programs.
A BIG advantage over closed source stuff. (once you get it set up.)
Now if most linux distros agree to stick to a common Filesystem Hierarchy system (http://www.pathname.com/fhs/) then you can use all sorts of packages together.
I could use Fedora packages, apt packages, debian packages, gentoo build scripts and all sorts of stuff and pluss get support for closed sourced software easily in any distro of my choosing.
If Debian doesn't have a new enough XFree86 build you can install it from Fedora and build the latest KDE 3.x beta from portage scripts from Gentoo.
That's what we should aim for, and a common FHS is pretty close. People are beginning to learn the best way to do stuff and the directory systems are beginning to be more and more common to all Linux distros.
In a few years I hope the consept of numbered linux distro releases will be gone and we will move to a stable/unstable model similar to Debian.
Hint: update to something made within the last year and there's no difference between installing/updating gentoo and any other OS, and you get the advantage of gentoo's optimization in space and speed. I know which I'd go for.
I installed debian with a full kit of KDE in under an hour on an iMac 400. You're saying there's some new hardware that can build that equivalent with gentoo within 60 minutes?
Bullshit.
Hint: update to something made within the last year and there's no difference between installing/updating gentoo and any other OS, and you get the advantage of gentoo's optimization in space and speed. I know which I'd go for.
Yeah, that 7+ hours compiling KDE/GNOME just flies by
Although I dont think Ian raises any particularly unique arguments, the article is a susinct introduction to the elements that emphises Linux's strong points.
The thing that aroused my interest in Linux was not its cost, but its ability to be used in projects that were not limited to traditional PC software.
Imbedded linux will (as long as MS doesnt rethink its licensing) rule the non-pc computing world.
It makes perfect sence. Who cares how your C64 watch works, as long as it does.
It seems unlikely that "componentized Linux" is the answer because only imbedded linux realy needs to get down to the "Linux from scratch" kind of level - otherwise, you'll probably be looking for a higher level distro.
I think this is the way security works best.
Let's imagine we have a monoculture of Linux boxes, all quite similar, all based on a huge install 'dump' of one massive base system.
There's a lot there for an intruder to play with. Makes it easier even, for automated intruders (worms etc) too.
Now, imagine there's Linux as a majority, but split into so many different specific tasks that there's few similarities between them, except for a micro base system; where even the kernels differ in their capabilities due to function. it CAN'T ever become a monoculture even if the same 'distro' group were preparing these systems, unless suddenly the entire world was running webservers, or were running desktop office machines, or running desktop home machines, or running as cluster nodes etc.
Of course, the extra fiddling around of several well-defined task based versions of linux is a pain in the butt then, but hey - just a thought.
If by some Act of God, Linux were to become what you say it should, then the people who currently use and support it would instead switch to BSD or Darwin or OpenBeOS or some other open, polymorphic OS. Because that's what they want, not Linux for the sake of Linux.
The down side of freedom is that you need to make choices, and the down side of making choices is that you need to do some research. If you want a developer to do all that for you, then you should stick with an OS from company that will do that. Microsoft excels at it, and if that's a little bit too controlling for you, you should be quite happy with Mac. (Seriously, OS X is a great centrally-designed system.) But what see as "what's wrong" is what others see as "what's right". Deal.
http://alternatives.rzero.com/
Almost all Linux distros are componentised. OK everyone let's hear it: "Linux is not Windows."
We've got distros mainly because we aren't all kernal coders who know all the in's and out's of every single chipset. Quite frankly I don't know who even has the time (but apparently some of you do). We have generic groups of packages/aptget/emerge/etc. to allow for faster deployment. And that's another beautiful part to Linux: Choices!
Yes, perhaps it's overwhelming at first, but you can build it from the ground up if that's what you really want or just pile it on thick and zesty!
The author wants to promote Progeny and "Componentized Linux", and I think there's always room for Yet Another Distro (YAD), but to say the others are doomed to fail because they came on 3 CD's (Think Fidora) is misleading. Mandrake 9.1 came on 3 CD's but it certainly won't force you to install all of it. In fact, you can just select a kernal only option, and it won't even ask for the other two disks. Not only that, but you can hand select only the packages you want. How cool is that?
So I guess what I'm trying to say is that most linux distros have options to allow their users to build it pretty much from the ground up. The reason for the different distros lies in what their vision of the ultimate system looks like when it's totally loaded down.
Can somebody who actually READ THE ARTICLE tell me how much more moduler than apt-get install packageX it can be?
Sounds to me like a front end "Install Web Server?" "Install Development TOols?" choices that proxy a few packages is all this is about.
Aren't all Linux distros these days already got some sort of package managing that manages every file? Even the base Libc? How more moduler can you get???
Hmm, well, it seems you might be slow, so I'm going to state this just about as clearly as I can.
It's impossible for Gentoo to be as fast as binary-only distributions because it has to the job of the binary distribution (the "make install" part) in addition to the compilation. Which, by the way, is slow (with any program or reasable size) on any hardware. I do use an athlon XP 1600+ which is fairly old (and did indeed perform quite poorly at installing Gentoo packages), but even on a Dual Xeon system, I wouldn't want to have to compile KDE from source.
But the most important thing to note is that many people do use old hardware. Why not support them as well? My work computer is a P3 700, and it runs Debian quite smoothly, and installs even big packages in less than a minute (of course, it helps that my work connection gets > 1megabyte/second to MIT's Debian mirrors). Why should that hardware not be viable? Just because you think everybody should use source only distributions? I don't think so.
AND
it makes your machine more secure because:
A) You have less services, so less chance one of them is going to be hacked.
B) You have less programs on your machine so less (I did not say none) chance somebody who DOES break into your machine will be able to do any actual damage.
Bryan
One size fits all,
Be you short or be you tall,
Be you wide or be you slim,
Be you her or be you him.
Now please, don't start to scream and yell,
We never said it would fit well.
There are times and places where one size fits all may be vaguely suitable for a good many, even the majority of, people. If one happens to be exactly that "one size" you might even wonder why anyone would ever want something else.
There are also, however, times when one size fit's all, no matter how close the fit, is simply intolerable and a wee bit of tailoring is in order.
If you don't feel the need of another Linux "dialect" than ignore it. Those that do may find the new "dialect" finally makes life bearable.
KFG
It's different because, while Debian components work on a package level, he's talking about a modular level.
That is, a collection of packages that work together thematically. For example; a simple productivity module which includes mozilla firefox, evolution, and openoffice. Or a multimedia module which includes xmms, mplayer, and a smattering of DVD players. Or a server module, which includes apache, samba, et al.
It's like turning the course focus on a manual microscope instead of the fine focus. You get more faster, but it's not as accurate to your specific needs.
It's different because, while Debian components work on a package level, he's talking about a modular level.
That is, a collection of packages that work together thematically. For example; a simple productivity module which includes mozilla firefox, evolution, and openoffice. Or a multimedia module which includes xmms, mplayer, and a smattering of DVD players. Or a server module, which includes apache, samba, et al.
Kinda like tasksel then?
Jay (=
Outdated hardware is a *stronger* reason to put a binary-only distro. 1) because you won't have to compile it 2) because being old hardware, optimizations won't affect it a lot since the models which need optimization are the *newer* ones (ie: would yoy optimize a gentoo distro for your i386 machine when you have i386 packages from debian? Please....)
Actually, Debian is close.
$ apt-cache search vim | grep vim
kvim - Vi IMproved - KDE 3.x version
vim - Vi IMproved - enhanced vi editor
vim-doc - Vi IMproved - Documentation files
vim-gnome - Vi IMproved - GNOME2 Version
vim-gtk - Vi IMproved - GTK2 Version
vim-latexsuite - Brings the LaTeX power to Vim
vim-lesstif - Vi IMproved - LessTif Version
vim-perl - Vi IMproved, with perl scripting support
vim-python - Vi IMproved, with python scripting support
vim-ruby - Vi IMproved, with ruby scripting support
vim-scripts - plugins for vim, adding bells and whistles
vim-tcl - Vi IMproved, with tcl scripting support
vim-vimoutliner - a script for building an outline editor on top of Vim
vimacs - Emacs emulation for Vim
vimpart - Vim Component for KDE
And you could always choose to compile the thing from source yourself. But I prefer the convenience.
(btw, I'm posting from a Gentoo machine.)
Don't quote me on this.
You realize he's the one that invented the term "free software" right? I mean seriously, how can his be a misdefinition when he's the one that came up with it in the first place?
Or did you come up with a definition of free software and then pretend it's the real one?
There are several reasons that distros are built top down and you would think that Ian would know.
Linux packaging isn't bad at all, it is actually the lack of any standards that hurts the natural evolution of a modular Linux.
GCC/glibc are moving targets. You can't depend on linking between two versions of GCC or glibc, so all the apps we package today will be of questionable use tomorrow.
All other libraries suffer from the same problem. There is no guarantee that you can upgrade or install anything on the system without breaking random other applications.
There are far too many compile time options in applications. Instead of checking for dependencies at runtime and acting on that information, the applications have to be built either for a minimal system configuration, possibly dropping features, or built with every possible dependency, making installation require far too many dependencies.
Until these issues are cleared up, there is no other way to create a distribution than top down so that all dependencies are known and accounted for or built from source.
If tyranny and oppression come to this land, it will be in the guise of fighting a foreign enemy. - James Madison
Hm.
:)
An interesting attempt would be to combine the source and binary packaging systems at the distribution level. You noted well that having all the different variations as binaries would require countless binaries to be distributed. The following solution would be a bit more involved.
Let's have a distribution, Distributimized Linux. In the package management system (or website or whatever), a user can click on a package they desire. This brings up a menu (or a screen or a page) in which the user can select the configuration options, dependencies, optional features and so on. Satisfied, the user will send in the request to receive this compiled to a binary.
This could be done directly by the distro computing farms but since it might be a bit too intensive for one party to handle the compilation of hundreds of packages daily, a better option would be to force the use of something like distcc for anyone using the distro. The central package management multiplexer would form the distributed compiling network from suitable computers and set it to work on the build. Then -in considerably less time than compiling it on your own- the binary would be dropped into the requester's computer, it would just execute the make install.
A problem to overcome is overloading -an individual computer should not be used in a distcc (or whatever) network more than X times per hour (could possibly be configurable at the user end (for example heavier loads when you're not there) but ensuring some minimum value) to ensure that any single system would not be bogged down. Another great advantage would be if each computer could build packages for at least one other platform, so that my x86 box could support compilation for Joe's KDE package for his Solaris.
I'd be happy to partake in a distribution like that, be it making one or using it
Marxist evolution is just N generations away!
Um, no...
This is not a SCO-like demand. SCO hasn't shown any proof of its claims. RMS's claim, OTOH, that the current distros have far more GNU code than Linux kernel code, is a fact. Go look at any distro if you don't believe it. And stop trying to use bandwagon buzzwords and name calling to make your arguments. Actual facts work much more nicely. If you want to prove it, go do a GNU vs. Linux SLOC count (or whatever metric would make sense) of a major distro.
Two wrongs don't make a right.Maybe I'm wrong, but you apparently just don't 'get it'. We live in a society increasingly dependent on technology. If our basic human rights become exclusively delivered by tech (they become more so daily), and tech is one big maze of toll roads, then we lose those rights. RMS doesn't misuse the word freedom; he apparently understands its meaning far more deeply than you do.
Compilation Enhancements
I hear the argument about faster executables a great deal, and it isn't a bad argument. However, Gentoo will allow you to install binary packages, and similarly Debian will allow you to install from source packages. More than that, you can actually find or create apt repositories with dependencies that are multiplexed across a set of architectures (for example, the nerim.net Mplayer repository; just tell it "mplayer-k7" and you get all the nice optimizations for Athlons with it).
Modularity
Again, Debian can be quite modular. Have you heard of Knoppix or Morphix? They are very popular, and quite modular. There are probably more Debian derivitives than any other distro because they are so modular. I realize that Gentoo might also be good in this regard, but if it isn't provably better, I don't see a reason by Debian still wouldn't be a great choice for this project.
What makes you a troll is comparing Stallman to SCO. Sorry if you can't see that- it's not your beliefs that make you a troll, it's the shrill and foolish way in which you shoose to express those beliefs.
I'm sure you'll counter with "well, stallman's action in this case is like SCO." Well, if Stallman had his way, what SCO is doing would be not only illegal (which it probably already is) but vigorously prosecuted. Your comparison papers over differences that are as wide as the ocean.
microsoftword.mp3 - it doesn't care that they're not words...
This is merely your redefinition of the term "free". You're touting hippie freedom, do whatever you want man, we wont stop you. Stallman touts speech freedom, do whatever you want with this code, but you can't stop anybody from doing the same thing to your code. His is closer to the traditional American idea of freedom, everybody has the same rights as anybody else and your freedom stops the second you try to infringe those rights. So again, yours is the redefinition. Yours has no concept of rights or limits on freedom, which is intrinsic to the traditional idea of consitutional freedom in America.
No, I'm not the one redefining the term "free". Stallman's idea of freedom is exactly equivalent to those who would outlaw hate speech in the name of freedom: they suppress speech because they disagree with it. Similarly, Stallman disallows some reuse of his so-called "free" code because he disagrees with it.
Further, Stallman's idea of freedom is not truly free because it denies freedoms to programmers who wish to actually make money from the fruits of their labors. (Yes, I know the GPL doesn't prohibit selling code licensed under it. However, it only allows selling one copy, practically speaking, since the code can be given away by anyone who buys a copy.) It also denies the user the freedom to choose a software package that combines the best of both worlds.
Thus, Stallman's definition of "freedom" is truly free only to those who buy into his utopia. To the rest of us, it's a hollow shell.
I believe the Founding Fathers would agree with my view on the subject, because they universally held that free speech must extend even to those concepts that some find offensive or objectionable. The only limits on freedom are those necessary to prevent actual harm to others. Stallman's limits are not that narrowly drawn, since some of the activities they prevent are not harmful to anyone.
Disinfect the GNU General Public Virus!
If you're using gentoo, then you should know your USE flags are set in /etc/make.conf and they turn assorted features explicitly on or off. (Anything you do not explicitly specify will go to defaults.) Here's mine:
USE="crypt -cups curl doc flac imagemagick\
jpeg mbox mmx mpeg nocd pam perl png postgres\
python readline samba ssl tiff usb"
Note that as my USE flags are currently set, among other things which are defaults, vim will get support for python. If I put tcl, gtk, lesstiff and so on in my USE it would automatically be compiled with support for each of these things.
In other words, if you put an easier installer on the front of it, and slapped together a cute little program to help you maintain USE flags from the list of available flags, then you would have the very distribution we're talking about here. What's more, when you change your USE flags, as packages are upgraded they will be recompiled with the new flags, and support for new software. All you have to do to update software to support your new stuff is to re-emerge it with the new USE flags. You can rebuild the entire tree with emerge -e world, though I'm not sure what order it will happen in. You probably want to rebuild, say, glibc first with whatever your current gcc and binutils is, then the toolchain again with your new glibc. The complete system can be transferred by doing an emerge -eB which will create all the binary packages you need. (If compiling for a different architecture, you will need to tweak certain variables in make.conf on the command line using the 'env' command, or perhaps several 'env' commands, including changing the location of PKGDIR.)
Having a bunch of different premade builds of vim is one way to go, but with the current power level of even most portable devices a recompilation scheme begins to make a lot of sense, especially if you can do it in the background while doing other things, as you can for most upgrades.
I'm putting gentoo in a virtual machine for use as an application server for my Midori Linux-equipped (M4I actually) i-Opener, so that I will be able to ssh someplace and run some applications. I know that I will be able to optimize it to minimize its impact on my PC.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
"Similarly, Stallman disallows some reuse of his so-called "free" code because he disagrees with it."
He does no such thing. It's a license. If you don't agree with it then don't distribute it. That's your freedom.
"Further, Stallman's idea of freedom is not truly free because it denies freedoms to programmers who wish to actually make money from the fruits of their labors."
Again you are completely wrong. The GPL does not prevent an author from making money from the fruits of their labors. It prevents them from making money off of MY labors. You see the difference?
"To the rest of us, it's a hollow shell."
Only if you are too stupid or lazy to write your own code. If you are leech on society who likes to kick back and let other people work hard and then suck away their property for your self then I can see how this would not work for you. Too bad America has become so used to getting welfare from the govt because now they want welfare from everybody else too.
Stallman or anybody does not owe you code. Nobody owes you code. You need to get off your ass and work instead of whining about how you are not allowed to make money off of other people's code.
"I believe the Founding Fathers would agree with my view on the subject, because they universally held that free speech must extend even to those concepts that some find offensive or objectionable."
Absolutely. Nobody argues with that. But apparently your limited IQ is not able to grasp a simple concept. Code is not speech. It's not protected by the constitution.
Finally ask yourself this. Why do you demand the stallman give you his code. Don't you think MS or Oracle have more and better code then stallman. How come you are not throwing a hissy fit because MS won't give you code? Aren't they infringing your right to make money?
The best way to support the US war effort is to continue buying American products.
Once again your tiny little feeble brain is confusing speech with code. Stallman and the FSF are very much likely to defend your speech no matter what you say. What they don't like is you stealing their code. Advocating freedom is different then advocating theft. No proponent of freedom says that you should be free to steal other peoples stuff.
They don't have the same definition of freedom that you do and you are really pissed because of that. So pissed off that you want to "disinfect" them. I suppose that means killing them or something because I don't know how else you would disinfect something.
Somehow you have gotten into your head that freedoms means you can do whatever the fuck you feel like whenever you feel like it. I hate to break this to you but that's not the way it works. Having absolute freedom means denying everybody else of their theirs. You are not free to rape women because you think they are pretty and you are not free to steal other peoples code. Just because you are not allowed to rape your next door naighbor that does not mean you are not free. No definition of freedom allows for something like that (except yours of course).
You should read the speech professor Moglens speech at harward. Their idea of freedom is one of a self healing commons. An enduring and irrevocable freedom. In order to achieve this kind of a perpetual freedom they have invented the GPL and you know what it works.
The reason you are pissed off is ample evidence that it works. You want to make money off of their backs. You want to take their code and make it your own, you want to sell it and make money off of it and they won't let you. By preventing leeches like you from stealing from the commons without giving back they ensure long term existance of the same commons.
The best way to support the US war effort is to continue buying American products.