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."
but wouldn't something like this be better based on Gentoo? If it's going to be modular and simple to use for the majority I think it'd be better off with package management more along the gentoo line, instead of debian, which while good is more suited to hackish, more finely grained options?
This seems like a pretty good idea, I am sure that many people would adopt it. However, it sounds an awful lot like Linux From Scratch, or Gentoo. I'm assuming that a distribution like the one proposed must be a binary one to appeal to the masses.Overall, though, this sounds like a good way to attract more people to the Linux community.
What I don't get is how this is different from, say, Debian or Gentoo at all. At the end of his blog he says "If this sounds a lot like Debian, that's because it is in many ways", goes on to list the ways, and then doesn't list any differences other than an Anaconda installer. So, is this debian that installs like redhat and lets you choose packages? I mean, it doesn't sound like there's anything new here at all.
You can mod your friends, you can mod your nose, but you can't mod your friend's nose.
Sounds like a great idea - but surely that's what you get from the gentoo linux system - you custom build a verison of linux that not only has 'just the components you need' in it, but also is (or can be) specifically tailored to suit your hardware and peripherals etc. I can see an avenue for component based distributions taking off, however. The two challenges with Gentoo are 1) the need to compile everything from scratch (which can take ages) and 2) the almost vertical learning curve required to get the resulting linux system to work (work out of the box? - not really!). Presumably the component model might allow both of these to be addressed...
Morphix is modular, and can be adapted with less effort
The base, the Knoppix part contains the kernel, kernel modules, hardware detection, etc. This base is left untouched. You can either a change a mainmod or add lots of minimodules.
The are four basic images to start off with. So making you own LiveCD is much easier.
It even possible to save you files, configuration and setting to the Morphix CD you using, ready for next boot up.
Did I mention the GUI installer ...
Brendan Mentioned before and here
He says a basical iso is avaible and "More components and a component-aware, Anaconda-based installation mechanism will be added in the coming weeks".
Heh, compiling everything for oneself through an intuitive gui sounds pretty cool to me !
Gentoo now accessible to the unwashed masses (which I'm part of), Yay !
I think it would be good from a security stand point to be able to quickly build the most minimal system, but there is still probably a lot of stuff in the Kernel that isn't needed. Still it would be great to have a tool that was based on the reserve of package dependency and removed everything you didn't want/need.
http://www.hawknest.com/
Wouldn't it be neat if you could go to a website, enter in a list of all the hardware on your computer, enter in the applications or types of applications you want to use, and then download a customized installation CD with only what you want included? Then if you changed any hardware or wanted more software, you'd revisit the site, enter in the changes, and then download a patch including required modules, applications, and a script that installed/configured the changes?
That would be cool.
... is, in my opinion, one of the more interesting Linux distro's around right now.
...
Its not so much a distro, as a 'meta-build system', for building and packaging your own distro.
To me, this is the best solution, and while these sorts of build-system efforts are still in their infancy, I can see a day when you just answer a few questions, press a button, and get a custom CD designed -exclusively- for the application you've defined.
That's pretty nice. As a Linux user since the minix post, I'm excited about more and more of these sorts of 'smart build environments' becoming the 'distro construction set' de jour
; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
Would be a program that would generate a Linux distribution based on your desires.
It would be a wizard that would ask you questions about what you want. For example, do you want a server or a desktop distro, do you want KDE or Gnome, do you want office software, games, web browsers.
After you answer all the Questions it would make you give it a Name, Such as MooKore Linux, and it would genreate an ISO filled with the RPMs for you for you to install.
found here
I know this is way off topic, but im just bothers me the most. /. has M$ banners sometimes.
every time i read a linux article on some news site they have a *BIG* microsoft ad with something like the "get the facts" shit, "win-dev stuff" or "unix services", even
this guys are spending LOTS of money in the wrong place...
what person that goes to read an ian announcement have ever thought to buy a M$ product?
well ive had to say it
s4nt
Disclaimer: sorry for bad english
Wow - he managed to write 600 words without really explaining what he wants to do.
Is he just saying that distributions should go for niche markets by allowing greater customisation? So instead of installing everything of the 3 CDs you only install what you want? Kind of like every other distro?
Or is it more than that? Some kind of pluggable component system akin to Debian's virtual package "provides" system? So you can have different packages that provide standard services (mail, desktop, web-serving etc.) through common interfaces to the other components.
Isn't this really more along teh lines of marketing hype then it is general user useful?
Come on now, we no longer have sub 50Mhz CPUs (but many times that and getting faster),all the expensive backup media we used to use has been replaced with CD/DVD writers (and that's only going to improve), general storage/access media (hard drives) are far more massive in storage space than the old 120Meg drives and and even far more inexpensive (the larger the drive the cheaper per Meg you pay)....ETC...
And HEY, we can even use more ram bits for dates, avoiding things like Y2K... Or is not gigs of ram not enough?
Is it really a value to have injected additional parts complexity to have to deal with?
What is the trade off? You use up a little less drive space, maybe make a fraction better use of your CPU, use a little less ram space and backup media....in exchange for....
Additional complexity to allow you to screw things up more often...
Hell, just wait 6-18 months and get a new faster, larger storage, more ranm, etc... system.... The cost difference will be less than what you might spend in maintaining componentalized linux.
Hell, I really like the Live CD concept, where it determines what hardware you have and auto-configures.....but all from a standard full package.
But by having MANY different genome sets, we resist total annihilation by having some people resistant to different things.
Likewise, if linux worked this way, we'd be safer from virii, hacks and other attacks.
The problem we have here is that linux is designed for linux users. Like myself, I prefer gentoo. It fits my person style and I just love emerge-ing all kinds of junk and making my own kernel.
I would like to see a linux distribution the exact opposite. One that I could give to people fed up with windows. It should detect all the hardware like knoppix. Then it will bring up a simple GUI style disk formatting tool, like the mandrake installer. Then after I select which partitions it should just install, no more questions asked. When its done all the hardware should be working. One of every necessary software application should be installed. The gui will be simply laid out with big pretty buttons. One that says Web Browser, another for Word Processor, etc. Wine, lilo and other things will be configured perfectly and automatically without user input. There will also be another big button that says "install software". It will have a big nice easy to use app that sorts softwares by categories, shows screenshots and readable descriptions of different programs. With a single click these programs will be installed and new icons will be created. With another click these programs should also be automatically updated to the newer versions without breaking anything. And of course easy uninstallation is a must too.
I see no reason why this isn't possible. Why hasn't anyone (that I know of) done it yet?
The GeekNights podcast is going strong. Listen!
I was just about to say "Cool! I want to make my own distro!".. but then I noticed the total and complete lack of documentation and ran away with my tail between my legs.
Is there a HOWTO that actually has some content? (A quick Google turns up nothing...)
DJ kRYPT's Free MP3s!
There are thousands of fanboys waking up (or getting ready for bed :P) across America right now that are reading this, and all of them are thinking, "Well, this or that distro already does it!" You've all missed the point.
:P) Seriously, though. Linux is linux; let's not make a fuss. It's just nice to see a movement away from the techniques of the past - RPM, in particular, which doesn't make custom rollouts terribly easy.
Has it occured to you that his writing isn't directed towards those of us that already use Linux? Could it be that the founder of Debian would possibly want to make a little money on his toils and ventures by selling his ideas to Suits and PHBs?
No, that couldn't be. Could it?
Yes. (And no, I'm not saying this is a bad thing.)
Stop thinking the world revolves around you (us) and your (our) zealotrous love of your distro. (Particularly you gentoovian freaks with your distcc clusters!
~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
That Linux distros are taking the shotgun marketing approach, unlike Microsoft who has painstakingly researched what end users want in an Operating System and for the most part, has delivered exactly what the majority of PC users want. Granted, Linux is destined for the server market for the time being so a distro packed with services is appropriate for the most part, but if Linux ever wants any substantial share of the desktop commodity its going to need to do some serious work on several fronts like UI, ease of use, intuitiveness, size and speed.
End of Line.
I maintain 3 Gentoo servers (1 of them LTSP, the other two file/print/web) One of the servers has 4 gentoo desktop machines connected to it. I have a portage/distfiles NFS share, I use distcc and I find it really, really low maintenance. My desktops have kde 3.2, publishing stuff, OO, while the servers have Apache, Qmail, etc. Very different installs, all managed the same way. After 4-5 years of Redhat the /etc folder was still very mysterious to me. After 4-5 months of Gentoo everything began to make sense. I switched to Gentoo some time around Redhat 8.0 (can't remember exactly, but my machines were running 7.x when I swapped 'em). Never had a problem.
Hal Spacejock: Science Fiction with Nuts
Amen. That, and the fact that Gentoo tends to install everything from a source package, even if I only want a small utility that comes from the big source package. Debian is still the distro I've used that could be contained in a sub-100MB partition and still work perfectly without trying to eat up more space. (try *that* with Gentoo. The portage tree alone eats up at least a few hundred MBs of space)
For example, I had to install the whole ntp package -- server and client, to use the ntpdate client, whereas in Debian there's usually a separate package for each utility that still makes sense when used independently.
Of course, Gentoo has the advantage of letting the user choose compilation options, but nothing prevents you from compiling from source in debian yourself. The support is, admittedly not as good as that of Gentoo though.
Don't quote me on this.
When he talks about a bottom-up distro, there's really nothing more bottom-up than gentoo. Gentoo basically downloads the source off of the developer's web site, cvs, whatever, and compiles it.
...enjoy pre-registering for your Phantom.
;)
If that's too "bottom-up," well, then write a tool that generates binary packages off of the gentoo portage tree, and then a pretty installer that uses them. You could run an apt-style repository on a gentoo box, and then have this new distro just combine the binary packages from gentoo. However, you have to make standardizations on certain libraries, and then you're in exactly the same position of debian or red hat. So what's he talking about, a red hat that's more "modular?" He really didn't do a good job of describing what he has in mind or why it's different from debian.
Why doesn't he just add features to existing distros? Face it, if the linux geeks don't see any unique features in a distro, it's going nowhere. Sure, impressing the PHB's is great and all, but who's going to use it? Who's going to work on it?
In short, the article really fails to give us anything meaningful to talk about. Some of you people seem ready to start gushing before you've even heard any details, saying how the PHB's love this stuff, but all I can say is...
But there is another kind of evil that we must fear most... and that is the indifference of good men.
It's monolithic nature has been one of my major gripes with Linux. This is most apparent in the kernel itself; the sources are distributed in one big (and I mean BIG) tarball containing sources for nigh on every architecture and every device supported. Then when you configure the beast, many options cannot be built as modules, so it's either bloat your kernel or miss out.
The same is true for many distributions. Although a lot of software comes in packages, installations tend to range from quite heavy to almost ridiculous (about 1 GB). And the kernel, again, tends to be a fairly monolithic one, supporting a few filesystems that are unlikely to all be used, etc.
I have to say that Debian tends to be quite OK. The base install is, what? 100 MB? And to that you can just add what you need, dependencies solved for you and all. The kernels you apt-get are usually modular (although the generated ramdisks haven't always worked for me, and cannot be edited due to their being in cramfs). Still, it's annoying that when I want a feature added to my kernel, I have to reconfigure, recompile (I don't' keep the object filesaround - they take too much space), reinstall, and reboot. Sure, I could get a faster computer and a bigger hard drive, but even then, having plenty of something is no excuse to waste it.
Please correct me if I got my facts wrong.
I think that's the point of the article and the component aware components they're building the distro from. Seems to me like they're trying to solve dependency issues, like the one you brought up, by just making the package not support features that aren't installed, you don't need more binaries to do this, just smarter ones that determin what is avalible at runtime rather than compile time.
Or I could be wrong, but that would seem more sensible to me. Instead of looking at vim and saying ok.. it supports this and this and this, and I'll need all these packages to make it do everything, you look at what you want to do and make vim sort out what it can do at runtime, so that if you want to add some more features later, vim just does what it's meant to.
First of all, a well designed application shouldn't have that kind of conditional compile time dependancies. It's possible to do that all at runtime.
Secondly, debian supports building from source right in the debian package system. It's not possible yet to build the entire distribution (due to incomplete and circular build dependancies), but when you've installed a base platform, it's quite easy to rebuild the stuff you need with whatever optimizations you prefer, all while still making it easy to do binary only installs.
Admitted, that last bit of functionality didn't really take off until gentoo led the way, but I remember compiling my own optimised debian packages in the previous century, so...
I've spent quite a lot of time thinking about this. Wouldn't building one "base" package, without any extra features. And then supplying binary diff's for extra features be a possible scenario. Yeah, I think it'd need some new features here and there for this to be possible, but in many scenarios 99% of the built libraries are unchanged by a --with-package.
What's GNAA? Expand, please.
I believe the "troll" moderation is inherently unfair, since it's inherently ill-defined and therefore ripe for misuse to punish people for posting unpopular opinions. I think it should be abolished. Since I don't have Rob and Jeff's ear, this is the best I can do.
Disinfect the GNU General Public Virus!
Your post makes sense on one level...
:) it isn't like you do all this by hand fetching...
But think of it it another way: What if instead of a RPM / binary server providing the package - it could built it on demand? And caching schemes could be used... so common packages aren't built allt he times. And ways to build local mirrors for repeat installs.
This type of binary modularity could be the kind of thing that really differs Linux / Open from Microsoft / Apple style of "one binary fits all" packaging.
The long filenames could easily be managed by computers. That is what they are good at, keeping names stored / organized for you
Yes, I'm aware SCO has sued folks, and that Stallman has not. That is the way their claims differ. They are similar in that SCO claims that any system based on Unix must necessarily be Unix; Stallman claims that any system including GNU utilities and such is the GNU system, and should be named as such.
Don't believe me? Check out this excerpt from http://www.gnu.org/gnu/thegnuproject.html:
Because of this decision, the GNU system is not the same as the collection of all GNU software. The GNU system includes programs that are not GNU software, programs that were developed by other people and projects for their own purposes, but which we can use because they are free software.
Stallman claims this even though the authors of the software in question may not want their software to be considered part of the GNU system, just as IBM doesn't wantJFS to be considered part of SCO's Unix.
Disinfect the GNU General Public Virus!
I'll admit that my knowledge of processor architecture is quite limited, but it seems to me that inlining functions would prevent cache misses since you're just running a long sequential block of code instead of jumping around to run code from different parts of memory.
Alphanos
I use Slackware on my machine. All the binaries are compiled generic i486/586 (As of just recently, Volkerding stopped compiling i386 binaries, AFAIK), and it is blazingly fast. Far faster than Mandrake or Red Hat on the same machine.
It's a P3-850mhz machine with ~320mb of RAM. Mandrake/Red Hat just crawl.
What's always bugged me is how many Linux distros lump most of their installed programs in just a few directories. I think that has been one thing that has kept me from using Linux as a main OS for the longest time. Is there a current distro that actually seperates installed applications?
*It's not what you can do for the Dark Side but what the Dark Side can do for you!*
How?
How do I tell Debian to download VIM, apply my compile optimization flags and optional components, compile the package, and install it?
This is a serious question, I've been looking for a way to do this.
WeRelate.org - wiki-based genealogy
A binary distribution needs to provide a different binary for every possible combination of those, if it's going to allow fine-grained choice around what the Linux system has installed. Either that, or you have to turn off a lot of functionality which could be turned on, in case the dependencies aren't installed.
There are thousands of apache modules out there, but I can get pretty much any combination of them without recompiling. What you're talking about is a design flaw in vim, not a fundemental fact of computing. Look at Emacs with it's LISP based adons. No recompling needed.
ReadThe ReflectionEngine, a cyberpunk style n
if this had just been generic in scope i may have been interested but as he had to say that this is just what they are doing with progeny if just falls flat on is back as a media stunt for progeny...
what was he realy saying in what way the current distros where to monolithic. if i dont want a server i dont install that server, how can it be made more modularized?
the only part that cant change in a distro is the bottom level libs. if they are changed you will have to change every binery that link to them unless the lib is binary compatible with the old one. so the only way to make a distro truly modular is to package everything as static linked and then we are looking at a explosion in storage space needs!
comment first, facts later. http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm
>Your "Multiplexer" is analogous to a Bittorrent tracker, basically you are trying to apply a peer to peer model to dmake or distcc.
distcc, in essence, is peer-to-peer. I'm not proposing using distcc as-is, but it's an example of the solution, and it works well for its part. Much of the complexity (scheduling, networking) is contained within that application -the only thing the multiplexer needs to do is to maintain a database of available computers.
>Even if you were to wave magically produce such software and install it on ~10000k PCs, I still don't think it would be efficient enough to work.
Have you tried compiling an application using even ten computers instead of one? Even with such small grids the speed increase is dramatic. See the distcc stats for examples of compilation speedups. Certainly, large amounts of available computers would be a great help.
> Anything the user fetchs gets precompiled in the background when the CPU is idle and saved for later.
This assumes that all compilers (or, alternatively, operating systems) are completely rebuilt so that they can work in the background -this is not something compilers are known for. And this will take probably exponential time compared to the current situation.
>Sure, it will require some extra space to store binaries that have not been installed yet, but that is trivial, especially compared to the storage, bandwidth, and complexity issues of YOUR idea.
'Some' extra storage if you precompile all the packages of your distro? You're using Slackware 2.0, right? I do conceed that some bandwith is required in my idea, but I do not understand how the storage would be an issue?
>Um, your idea is much _MUCH_ worse in this regard, but I agree it is important, which is why the GUI I propose would allow you to set all these friggin settings on a per package basis.
Okay. This is my problem (and this is what my last comment went towards): how do you set the settings in these packages? You would manually have to A) select the package and B) change the settings, then C) schedule it for precompilation. We can already do this. The only difference is that the compilation will be much slower and that you'll have a fancy GUI.
Additionally, I don't understand why my idea is bad for options. Each build will, as I wrote, send the compilation options (say, USE variables and compiler settings in Gentoo speak) along with the translation unit so that the package is compiled just as the user wanted it to be.
>The whole POINT is to make it easy for the user to compile stuff with the settings they wish.
That may be your point. My point was enabling users to easily select the compilation options they want and make compiling from source a viable option for everyone. I certainly agree that a nice GUI is an awesome thing for a package management system, but it's just that -a facade. It's not going to actually change anything.
>Try coding this beast yourself.
I would be glad to partake in such an endeavour -I'm not a kernel hacker nor a distributed computing guru, but I'm sure I could help.
I can be reached at spam-slashdot [NEARBY] elvendesigns [PERIOD] com.
Marxist evolution is just N generations away!
Seriously. There are more than 100 distros. Probly lots more. Someone will inform me.
Why do we need so many?
Consider the consumer OS: there are already too many windozen (NT4, 95, 95sr2, 98, 98se, ME, W2K, XP) -- that that's a handful compared to Linux distros.
How is my grandma (OK, my ma, grandma writes letters long hand and has no PC) supposed to choose a Linux version?