If I Had My Own Distro...
Gentu writes "Adam Scheinberg writes an interesting editorial explaining what he would do if he was a developer and he had a Linux distribution. His suggestions are pretty radical, and in places resembles of what Apple had done to MacOSX with the help of BSD as the underlying technology. But if this is what it takes to get Linux into the next level, it might worth the consideration."
Prediction: Linux From Stratch mentioned in first 50 posts.
I would call it "AssHat" and make it look like Windows but covered in tinfoil.
me karma am bad
Wait a minute here, I am confused. How could you not have your own distro, I mean, it seems that everyone else does.
Join Tor today!
I did. I've never looked back on the desktop. Servers still run Linux.
(I've posted this before, but it is 100% relevant to this article and something I want people to think long and hard about.)
.RPM or .DEB, in which case it is already figured out for you (Mandrake-branded site will default to .RPM, etc).
Forget copying the Windows UI, that's absurd.
Someone is going to get on that machine, go to Start -> Programs looking for "Microsoft Excel" and feel like an idiot or be completely frustrated because they couldn't find it.
NO ONE has complained that people stay away from OS X "because it doesn't look like Windows." WHY are we trying to pretend that's the reason people don't try Linux?
If you want Windows people to use Linux, we need distributions to do a few things:
Ditch 3 of the 4 programs that do the same thing. Seriously. Why do I need 4 CD-R burning programs? Just give me the one that works the best, that's *all I care about* - and make sure it's labeled "CD Burner" so I don't have to decipher "gkdesbUISO." Contrary to what people here may think, we do NOT need to include every single Web Browser available. Don't put every alternative in the "Programs" menu - you hide the extra versions, and it only comes out when someone says they are an "advanced" user. Or perhaps a help option that says, "Software Doesn't Do What You Want? Try These:"
Distro installers should have a "I have never used Linux before, but I have been using Windows for 5 years" option. This will offer extra help in the form of, "If you are looking for this, you will now use this instead."
Make sure "regular" users *only* need the first CD. In the case of a 3 CD distro like Mandrake, make the additional CDs required only for developers and/or international users.
When you setup the desktop, be it either Gnome or KDE, you need to include a few "What do I do now?" icons on the desktop. I'm not talking about your "Welcome," because most of these people are illiterate or too lazy to read them, I'm talking about a few icons such as "Games," "Mozilla Web Browser," and "OpenOffice Applications." Do NOT just call the web icon "Mozilla," because these people have no idea what Mozilla even is.
I don't know if one exists yet, but we need yet-another new standard Linux portal. One that can be branded with Mandrake, RedHat, etc, but has software reviews, HOWTOs, special tips, best applications in each category, downloads, news, a forum, etc. And when you click to download a file, it is either a
Apple has the portal down to an art--take heed as it will go a long way to making them feel like they are both a part of something, and that they've just entered a Brave New World as opposed to being made to feel like an idiot because they can't find anything or get anything done.
The thing that most mainstream distros seem to be doing well, is that as soon as they are installed, 99% of the applications you will ever need are already installed and setup. With Windows, you're stuck with installing all of your software off of CD again, downloading everything again, etc, etc.
Prove me wrong now.
Jason Fisher
OKAY
it would have AVRIL LAVIGNE
AND ICE CREAM
AND A SODA PUMP WITH UNLIMITED REFILLS
And UT2K on a BIG SCREEN
Also I wouldn't have to write shit in perl just to make it do stuff it should already do out of the box.
It would also be nice if I didn't have to go that scary admin with a huge UC Berkely Beard for advice (he smells like chlorine and fish).
P.S. ICE CREAM
Who are y oo ?
Gentoo. Customize as much as you want. most of his first page can be taken care of with static links anyhow.
In SOVIET RUSSIA... erm...NSA AMERICA, the Internet logs onto YOU!
Prediction: Reply to parent will state that parent is a self-fullfilling prophecy.
paintball
The goal of the MHS project is to define a Modern Hierarchy Standard for UNIX-like operating systems which will further enable them to evolve, innovate, grow, and compete with Windows and other modern OSes.
/bin => /System/Commands /sbin => /System/Commands /boot => /System/Boot /dev => /System/Devices /etc => /System/Config /lib => /System/Libraries /proc => /System/Process /mnt => /Mount /opt => /Apps /tmp => /Temp /home => /Users /usr/bin => /System/Executables /usr => mostly placed under /System /var => mostly placed under /System
/Apps directory rather than cramming everything into /usr.
Specifically, MHS technology will provide the following benefits:
100% Application Directory Oriented
Internationalization of Directory Names
More Intuitive Directory Names
Fewer Root Directories
Support for Case-Insensitive File Systems
Full Coexistence with Legacy FHS
Increased System Flexibility
A new hierarchy will be a big enough change to make distributions switch to application directories.
Set of environmental variables pointing the location of major system directories.
Applications would no longer need to hard code directory names.
System level directories grouped together under a common directory. (/System)
Currently, the directories are expected to be moved to the following locations:
All paths will be lower-case on a case-sensitive file system. As shown otherwise.
Application developers and distribution makers will need to use the
The autoconf family of tools will be patched to support the new hierarchy which will make most applications translate easily.
Although it can still be done, MHS will not support the same level of shareability (i.e. mounted over a network) as the legacy FHS standard.
FHS can be emulated via symlinks and MHS can be emulated on existing FHS systems. A kernel/file system hack of some kind may be done to have the legacy directories disappear in directory scans, to help improve user friendliness.
In addition to the standard, the project is developing a set of scripts that will setup the new hierarchy on existing FHS compatible systems.
The standard will not be finalized until a Linux distribution ships based upon it.
seems great on my dual Pentium Pro. one of the nice things about Gentoo is you roll your own kernel and all the programs are compiled by source using your custom set of options, so SMP support is no worse than it would be in the kernel itself overall.
In SOVIET RUSSIA... erm...NSA AMERICA, the Internet logs onto YOU!
One of the things I love most about the Mac is its drag+drop installations. You won't have to worry about system dependancies (as much) if you just make the drag+drop installer include all the libraries that the application in question needs, in the application's folder. Mozilla can have its own private version of GTK. Rhythmbox can have its own version of gstreamer, etc.
--
Yes, I posted this on OSnews.
Napster-to-go says "Fill and refill your compatible MP3 player", which is a lie. It's not MP3. It's WMA with DRM.
My distro will also:
observe my web surfing habits, and automatically download buttloads of pr0n based upon my preferences
telecommute and perform all my tasks for me
make coffee for me in the morning
take care of 'morning wood' for me
b*tch out telemarketers who call
do my laundry
fix Wine so all Windows games work on it
and spam Microsoft when its idle
Hell if you're gonna fantasize, fantasize BIG!
The article illustrates one of the problems I see with the various distros out there. There's just SO much availible, I just don't know where to start. It's rather intimidating. Also, why should I have to learn the ins and outs of 2 or more DEs (KDE, Gnome and maybe others) to get all the functionality that should be availible in one. I think this is one of the reasons why people put up with Windows despite Microsofts draconian EULAs: there's a consistant look and feel there that just isn't availible on linux (yet).
/usr didn't mean USER but rather Unix System Resources. WTF?)
And on a similar note, I definitly agree with the authors idea of changing default directory names to be more user friendly (it wasn't up until 2 years ago that I found out that
I was the only person to run it too. I first installed Linux back in 1993, and except for the basic kernel and compiler (which were SLS) I manually tracked down the sources to everything I needed and compiled it myself. I kept everything up to date by myself, and even went through some standard library changes, and the big move to the ELF executable format. I had networking, and X running twm very well on my 386SX. When I switched computers, I'd just make a boot disk, make a filesystem, move a big tarball from one machine to the other with floppies, untar it, and reconfigure everything by hand. I learned so much about how UNIX works in those years, but it eventually became too much work to keep it all running. I was spending most of my time tracking down sources, compiling, installing, and configuring my machine.
So, I installed Red Hat 4.0 and later moved to Debian. I'd recommend that everyone should have the opportunity to build a linux system from scratch, even if it's just a fairly simple single floppy boot disk distribution. Get the kernel and filesystem installed. Build init from sources on another machine. Download a prebuild gcc compiler from the net, and the sources to gcc, and build a stage two compiler and install it. Get the XFree86 sources and compile them. Same goes for xterm and the other utilities.
This is a much different experience than installing Red Hat, or Slackware, or Gentoo, and I promise you'll learn a lot and have fun at the same time.
If tits were wings it'd be flying around.
Ok, so this guy has an article about how confusing it is that there's a zllion GNU/Linux distros, and he wants to add one more -- his own? His own distro which does everything backwards from other distros, so that users can't use any of the help-documents that apply to all GNU/Linux distros?
/boot -- the portion you boot from. /dev -- where devices (like your CDROM) are. /mnt -- where devices are mounted and accessible from. /root and /usr -- where most of the applicaitons are. Then there's /home -- where the user's stuff is. How exactly doesn't this make sense? My suggested improvements would be renaming /dev to /devices, /usr to /user, and /mnt to /mounted-devices.
His complaints abou the file-system hierarchy are noted. However, I believe he is wrong. There is
I think this guy's comments are certainly not taylored towards making a good GNU/Linux distributiion overall -- but only one that is good for people with 1+GHz systems. Only allowing people to choose what are clearly the most bloated applications? I don't think so. Obviously, this guy doesn't give a flying fuck about anyone who wants to use Linux for older computers.
Rather than eliminating choices, the distributions should give users the information to make better choices. Mark one e-mail client as the preferred "light" client, and several others as preferred "well-featured" clients for various environments. Also, for categories (in Gentoo) like net-mail, provide a spreadsheet of features and which e-mail clients have those features, as well as binary-sizes, RAM-sizes, and benchmarks of run-time performance, load-time; also, user ratings.
social sciences can never use experience to verify their statemen
Where can I get a CD that I put in my computer, click the appropriate "Yes/Ok" buttons a few times, and have Linux on my computer, with a web browser and a word processor, that all my hardware automatically works with, including my internet connection through my router to my cable modem, as well as my video and sound cards, that automagically downloads any updates I need, and works with anything I happen to plug into the USB port?
Where would I get something like that?
The very fact that I don't know whether something like that exists, much less where to get it, is exactly why people use windows.
paintball
He covers a lot of overlooked stuff. A lot of the people working on having a desktop-ready linux seem to think that you can just throw on some clone of LinuxConf or YaST that you made yourself and call it a day.
Not true.
The math and CS departments at my school have started maintaining machines running Red Hat in any computer lab they can exercise any control over. Naturally, students who aren't familiar with linux try them out. Seeing as how I work the helpdesk and I'm the one everybody seems to come to for help with installing linux anyway, I end up helping them out a lot, and I've noticed a few things.
The author's comments on the filesystem are dead-on, but don't go far enough. I've helped users who are trying to save files on the desktop, and they expect the desktop to be an option in file pickers. I would like it to be there, too - having to go to "/home/uname/Desktop" is not intuitive, and it's a pain in the ass. This should be something that is global to all file handling dialogs. KDE does it in a half-assed way (I don't know about Gnome 2), and it doesn't really help much anyway since all applications seem to want to write their own dialogs from scratch, anyway.
KDE and Gnome need to come to an agreement on some common dialogs, work on a design for these dialogs and how they will work, and then implement them using a shared library that both will access. I don't care how it is implemented - the dialogs can be written in straight X11 so it looks the same on both, or the library can check for what environment is being used and pop up a dialog that is written using GTK+ or QT. As long as they look and work the same, I'm happy.
Another one is networking. We've tried finding a good way to help students who aren't good with Linux to access our campus network resources. LinNeighborhood is the best we've come up with so far, and that doesn't even get to the configuration issues that pop up for people trying to get their own linux boxen connected to the network. Come on, people. Most everyone using Samba is connecting to Windows networks. Windows networks usually have pretty much the same configuration. Why the heck can't we have distros that set up Samba by default, have Samba's default configuration be for a standard Windows network, and give users a decent system? On top of it, there is no good network browser. Apple gives me splat-K and pops shares up on my desktop. Windows gives me Network Neighborhood and acts as if all shares on a network are already in my filesystem. LinNeighborhood makes me mount everything, then forces me to go into the filesystem again and find where I mounted the share, and it asks me for my username and password every step of the way. In this case, I like the Apple model best. Give me a "connect to server" option in my start menu, and when I connect to a server, pop up an icon on my desktop.
While we're on the subject of things just popping up without any hassle, if your distro isn't using DevFS yet, get it switched the heck over. If the driver you're writing isn't DevFS compatible, get it working that way.
Anyway, I could go on and on, but the point is, there are a whole lot of details involved in a good desktop OS. Linux is a great desktop OS for me, but I am comfortable enough with Linux to handle the hassle, and I've made it over the 2-year learning curve. Anyone who thinks that drag'n'drop and a somewhat working office suite makes a complete desktop OS for the general public needs to get a clue.
There's not a single thing he mentioned that Mac OS X doesn't have. Not one single thing. If he hadn't mentioned it once in his article I would guess that he had either never heard of it, or was making a thinly veiled jab at the OS community for not achieving anything that comes close to the usability of Mac OS X.
I think Linux could benefit from scrapping X and developing a new, fast GUI system like Windows or MacOS. X is too dependent on networking protocols and is just pretty goddamn slow all-around. It will take a lot of effort to make something like this happen, but if Apple could do it why can't the open source community do it too? Instead of developing Window Manager # 123480, people need to collaborate and make a common, consistent, and standard layout that all programs can use, without all the bloat of the gtk+ and QT toolkits.
One thing that I didn't see him mention was a standardized GUI help facility with a search feature. It seems that most times I open a help file it is usually either a text file or html which only allows me to find keywords on the particular page I am looking at. xman doesn't count because it is not slick, is not showing text formatting correctly, is not hyperlinked, and man pages are being maintained less and less these days.
Since I started using linux (and I've been very happy with it) I've been saying a few things around "what it needs" in order to be a full-on desktop computer. Apps aren't the problem (Openoffice is great, mozilla/galeon/konqueror are great, Evolution is great, sylpheed is great etc. etc. etc.). The problem is overall use.
First of all, it needs a good package system. RPMs almost do it. Apt is great, but hasn't yet been implemented in a decent distro with user-friendliness abound (Not to mention debian stable trees are in serious need of more consistent updating. Gnome 1.6 just doesn't do it for me.)
Basically, what's in dire need is a decent implementation of a software installer. Something similar to RPMs with a decent program-specific gui. I guess what I'm really hoping for is self-extracting shell scripts. But the main problem I have with this is running them from a graphical mode. These days, I use mandrake's software installer, though that does nothing to help configure the programs themselves for my personal use, something that InstallShield has a definate advantage of. The Software Installer has a great implementation of urpmi and handles dependencies rather well.
Package management is the main difference between distros and is the one thing that makes one distro better/worse than another, other than installers. Frankly, though, I think that Mandrake and Red Hat installers have gotten to the point where they're about as good as a Windows installer. They just need a "really dumb user mode" that holds your hand down the whole way.
I dislike what the author of the article says about removing legacy support. This is what really bugs me about Lindows and Xandros: They're more user friendly but they do so by eliminating a lot of the advantages of linux other than the very low-level "keep it from crashing" stuff. I think the important idea is to render all the low-level uber-user stuff obsolete but still keep it available. Removing Legacy support falls right underneath this category. One of the main issues people have had with MacOS releases and Windows is that they only work on top-of-the-line hardware and the like.
Yeah, sure, some stuff _should_ require top-of-the-line hardware. I don't expect that UT2003 should run on my old 486. But the OS that runs it should, imo. Cross-compatibility for legacy hardware is probably one of the main reasons linux came into being and is one of the main reasons for its stability. This is what open source is thoroughly about: Making something everybody can use.
The main thing that linux needs though if you ask me on a developer standpoint is a user-friendly and powerful software package manager. Rpms and debs just don't do it. However, the _really_ important thing in getting linux to the end user in a nice package is simply to promote its use. The more it gets used, the more support there will be for it, the more support the better drivers and the like there will be. One of the main problems I've seen with people using stuff like Drake or Redhat is problems getting their hardware to run perfectly (under X and the like, soundcards and so on). There need to be better auto-detection and driver support, as there always has been. Probably the main reason I'm still using Linux today as my primary OS is that the first time I used Mandrake, _everything_ got detected right off the bat. Of course, I had problems with the software in 8.2, but by the time I got to where I am now, in 9.1, the ONLY problem I have is with getting wine running (Bamboo doesn't have the wine with glibc support, and I'm getting a plethora of other problems with the Cooker build).
So yeah. I guess that's all I wanted to say about that. Distro's are getting very close to being a feasible alternative for the desktop to Windows. It just needs more exposure and fewer people writing Windows-only apps.
Karma: Non-Heinous
I'd do away with packages & installers altogether in favor of directory-based applications a la RiscOS and MacOS. You can how this could work with the ROX project.
Drag 'n drop installation! Think of the possibilities! Of course if you have OS X anywhere you don't have to imagine it...
-- Cerebus
Knoppix is a Linux distro that pretty much does what you want - it tries hard to detect almost any hardware and seems to succeed pretty well. You can try it out just by burning or buying a CD, no need to install on your hard disk until you're happy it does what you want. It's also Debian-based so 'apt-get' will get you the latest packages and figure out dependencies. Not so easy to install on an HDD but overall I'm very impressed - the closest I've seen to a plug-and-play Linux CD. See http://www.knoppix.net/ for more information, but beware that the site is not as polished as the distro.
If you have DHCP on your network, it auto-configures everything, so within a few minutes (takes time to boot KDE from CD) you have a working Linux workstation even if the PC normally runs Windows.
If I had a Linux distro (If I had a Linux distro)
I'd wanna support your mouse (I would really support your mouse)
If I had a Linux distro (If I had a Linux distro)
I'd load a GUI for your mouse (Maybe KDE 3 or Gnome)
And if I had a Linux distro (If I had a Linux distro)
Well, I'd autoprobe your hardware (Hey, that's a nice NVidia card!)
If I had a Linux distro I'd fill your drive...
If I had a Linux distro
I'd load every package under the sun
If I had Linux distro
C'mon, you know it'd be lots of fun
If I had Linux distro
Maybe we could put like a little tiny package manager in there
You know, we could just like, run the package manager
Like, look at all the names and stuff
There would already be a huge list and everything
Like little packaged apps and everthing
They have packaged apps but they don't have packaged distros
Well, can you blame 'em
Uh, yeah
If I had a Linux distro (If I had a Linux distro)
Well I'd compile everything from scratch (Except Mozilla, that's just cruel)
And if I had a Linux distro (If I had a Linux distro)
Well I'd include O'Reilly books (Yep, with the llamas and the emus)
And if I had a Linux distro (If I had a a Linux distro)
Well I'd install millions of games (Ooh, all them crazy Minesweeper clones!)
And If I had a Linux distro I'd fill your drive...
If I had a Linux distro
You'd have every GUI under the sun
If I had a Linux distro
Well you know you can't use just one
If I had a Linux distro
We wouldn't have to eat Kraft Dinner
But we would eat Kraft Dinner
Of course we would, we'd just eat less
'Cause we wouldn't be making a dime off this thing
That's right, we'd probably have to eat Ramen, actually
Mmmmmm, noodles
If I had a Linux distro (If I had a Linux distro)
Well I'd update it every night (Just 'cause bleeding edge is cool)
And if I had a Linux distro (If I had a Linux distro)
Well, I'd bloat the kernel to death (Video4Linux and throw in ALSA!)
If I had a Linux distro (If I had a Linux distro)
Well I'd include a monkey (Haven't you always wanted a monkey?)
If I had a Linux distro
I'd fill your driiiive...
If I had a Linux distro, If I had a Linux distro
If I had a Linux distro, If I had a Linux distro
If I had a Linux distro
I'd be killed.
--
Sorry, but as soon as I saw the title of this story this had to be written.
End of lesson. You may press the button.
I think the artical speaks for itself... if he made that distro available I would not touch it and I doubt many others would either.
1) I am quite happy with the present directory structure. I do not want a bunch of symlinks - they are confusing and utterly unnecessary.
2) His idea of what apps to include probably will not coincide with mine. For instance - is he planning on including emacs? How about gcc and g77?
I'm sure he thought about gcc but I'll bet he forgot about g77.
3) He never mentioned the most important aspect of a distro - that is its upgradeability. This is the reason I switched to Debian... Debian can be painlessly upgraded.
I have an old machine with RedHat 6.1 in it. I bought a copy of Mandrake 8.0 Mandrake is NOT installed (does anybody want it?). The reason is the question of doing an upgrade. I _KNOW_ that the moment I try to upgrade that redhat box that it will break all over the place. If I wipe the drive I lose 3 years of work. In fact - if I were to take it out from behind the firewall - it would be hacked within the hour!
For me it was cheaper to go buy ANOTHER computer and leave the old one as it was.
4) He made no mention of security.
5) He has missed the most important areas where Linux needs work. I'd like to offer My Humbol Opinion. The work needs to be in the area of the functionality of a loopback mount. We need to be able to stuff a directory tree into a single file and have the OS mount it automatically - similar to the loopback but with the following difference.
When you do a loopback mount - the whole file system sees it. I want a mount where ONLY a single process tree sees it. This allows one to EASILY create a chroot jail for a user.
Several years ago I tried with Kurt Seifried to create a true chroot jail in linux - we failed.
This automatic mount to a single application could be say bash mounting into a given file or it could be a daemon mounting into a file or it could be an application mounting into a given file. This would make it possible to stuff a complete app into a single file which can be unzipped and pointed too. By doing this, different versions of an app could be simultaneously present in the machine and a user could switch back and forth with a simple pointer change. The pointer could be a symlink.
We are already partway there with the loopback and chroot. Where the problem is stems from the apps that are NOT chrooted. As an admin when I install say something like wxWindows - I would prefer to see only one file. As a user I prefer to see all the files in the package.
This is one step away from a true Virtual Machine for Linux - which we also need. Probably it can be done using User Mode Linux. But I think it should be supported right in the distro.
IMHO - the present filesystem was designed to be lightweight. When disks were 40MB it probably made sense. Now that disks are past 40GB I don't think it makes sense. When they pass the TB mark in a couple years - well - IMHO they are almost unmanagable now.
The underlying reason that this author cannot un-install the apps is because the apps are allowed to spew files all over the system. Most sysadmins don't even know where the files go and they simply trust the developers came up with a reasonable organization. If we go to a filesystem that allows us to force an app to live within a single file - then we can easily remove any old app - we simply delete the file it lives in. People can easily deal with a single file - where the problems come from is when we have 1000's of files and the make clean doesn't work right.
IBM had this concept fully developed years ago under VM/TSO. It was called a Partition DataSet back then.
If we had this concept in linux then for instance X-Windows might live in a file called XFree86_4.1.0.1.PDS and we might use something like ln -s XFree86_4.1.0.1.PDS startx
If so - then when startx is run - the PDS is mounted and the
Point one:
...without all the bloat of the gtk+ and QT toolkits.
X is too dependent on networking protocols and is just pretty goddamn slow all-around.
X is hardly dependent on networking protocols. Local client access to the server happens over Unix Sockets, a very low-latency, architecture-independent solution. Nor is X that slow. X ran jes' fine on my old 386 with 8 MB of RAM and 256K CL graphics card. Let's see the "fast GUI system like Windows or MacOS X" do that.
I think this is the core problem, not X.
Point 2:
Instead of developing Window Manager # 123480, people need to collaborate and make a common, consistent, and standard layout that all programs can use...
If Linux were a business, I'd agree with you. However, Linux is not a business; it's essentially a hobby. Linux' success is based not on the application of business practices, but by a bunch of people having fun writing software.
Sure, there's a lot of businesses interested in Linux, and contributing to Linux for their own needs. But this is after-the-fact; businesses have already accepted Linux. Now they are customising it to fit their own needs, or supporting it out of the understanding that what is good for Linux is good for business.
Anyway, this is all a lot of armchair quarterbacking. Linux is Linux is Linux. Telling a bunch of volunteer developers what they *should* be working on (instead of providing positive and useful feedback on they projects they *are* working on) shows both ingratitude and lack of understanding of the entire Free/Open Source culture.
Microsoft is to software what Budweiser is to beer.
1) A manual.
... I'LL GO INSANE.
No more man pages. Ever. I am as sick to death of plowing through all that crap as I know all of you are. If I have to deal with one more half-written, closely-worded, semi-irrelevant man page that doesn't even talk about the stuff I think I know I want to do but I have to read it because I think the command I think I want MIGHT have something to do with what I think I want to do
2) A good GUI.
Good means fast. Good means internally consistent. Good means programmatically consistent. Good means the programs actually USE the GUI. One thing I really like about Windows? Add/Remove Programs. It's right there. Talking about package this and package that makes everyone's eyes glaze over.
3) A good set of apps.
As the other guy said, let's quit jamming every stupid little command line piece of shit into every distro. Most of us never bother with them, and that's half the reason RedHat is 94 DVDs and can only fit on a shelf that's got concrete reinforcements. OK, I'm exaggerating, but seriously -- if the "competition" fits on ONE CD, how "bloated" is that?!
4) A good use of the Linux kernel and the Linux philosophy (such as there is one).
Do we really need to see 50,000,000,000,000,000 lines of kernel messages whenever we boot? Do we really need to have every messy, nasty part of the kernel hanging out and exposed? I'm sorry, but the more I work with Linux, the less I appreciate its design -- it's ten thousand times as crufty as anything else out there. I'm sick of getting library errors 'pon unpacking a distro straight from the CD, sick of not being able to figure out how to do X on this particular distro (which package manager is it again?... where do I find that?... uhhh...), sick of the fact that we have a GUI which most programs don't bother to fully exploit (no consistent mechanism for adding and removing an icon, for Christ's sake!)
5) A good level of internal consistency.
Linux needs to PICK ONE THING AND STICK WITH IT.
Sometimes a little internal consistency is not a bad thing. I don't need 300 shells and 129 different ways to boot. I need something that works, and I need to know that if something goes wrong with it, I can get better answers than "oh, here's the source code, you figure it out." I'm amazed more people are not as shocked by the essential contempt that such an attitude shows for the end user (i.e., the people who want to, you know, USE the computer instead of have to learn 30 programming languages to do every lousy thing).
There. Flame away.
This article has some (really) good ideas, but there's some pretty bad ones that would cause problems right from the word go. For example:
My developers are going to meet and agree on ONE desktop environment. Yes, we'll include the libs for the other major one we leave out.
Already you've fallen into the trap of pandering to the existing Linux crowd. Why ? Most of the other things you're doing are already going to drive away these people. Pick (or create) a GUI. Stick to it, customise it, tweak it "just so". Don't waste any developmental effort on another - let others do that if they _really_ want to. Every minute spent on including or developing stuff for the "other GUI" is time you could have spent making yours better.
[...] graphical, heavy on eye candy, with few visible options but lots of "Advanced" buttons.
Bad idea. "Advanced" buttons just allow for more mistakes to be made by newbies. If you *really* want to give the option for users to perform an "advanced" install (in which case you should really sit down and ask yourself *WHY*), then make it a well documeted *boot-time* option that can't be stumbled on accidentally. SImilarly with things like filesystems - pick on and stick to it.
I'm already stripping out a number of apps, so what I'm not going to worry about are libraries and system files. Even the minimal install will include every common system tool my develops can think of.
This is another bad idea. It's this sort of reasoning that *causes* library versioning problems. Include _only_ the libs necessary to support your included software and development on your "default" platform. Again, if other people really want to get app XYZ that requires libs ABC and HIJ to get working, they will. The only time this might be an issue for you is when your users are asking for a service your existing software doesn't provide.
On the whole, the ideas here are pretty good. It's obvious your objective (dream ?) is to create an OS X equivalent on x86, which is an admirable (and achievable IMHO) goal. However, you're also trying to pander to existing userbase by including options for this, options for that, etc. Don't - it's one of the biggest reasons Linux distros are difficult to approach for people who don't have the knowledge to make the necessary decisions between all those options. If you _really_ want to make "something new" then you have to make choices and stick by them. Certainly don't go out of your way to hinder people trying to port/develop for the new platform, but by the same token don't waste any of your development time and money re-implementing features (note: *features*, not specific bits of software) that already exist on your platform, just because a handful of users prefer a slightly different version.
The whole concept of distribution installation is getting a little frayed around the edges. Installing a distribution made sense when everybody had CD drives and few people broadband connections. It is making less sense now. It will make even less sense 5 years from now. Why not do something new for a change? How about a distribution that is only available on the net? How about using a P2P caching file system?
Think in terms of something that is a cross between NFS (20 years old) and BitTorrent. For example, when I access:
it goes off and downloads and locally caches the binary. If it needs any librarys, it downloads and caches them as well. The bottom line is that the user only downloads those files that they actually use and they do not have to decide beforehand what they want. Just use it! If it isn't cached on your disk, the system fetches it. If you want to upgrade, just change your path from: to:No install program needed, just start using the new bits. When a cached file hasn't been used in a year or so, it just gets deleted by the underlying system.
Please note, the Open Source community does not have to figure out how to charge for files downloaded, unlike some big commercial software companies out there. Thus, the Open Source community can make it easier to install and upgrade than the commercial counterparts.
Yes, I'm glossing over a bunch of very important issues (security, multiple platforms, configuration files, load distribution, etc.), but it is time for people to start thinking about doing things in new ways rather than the way we were doing them for the past 10-30 years. I'm suggesting that we actually innovate for a change.
-WayneX is too dependent on networking protocols and is just pretty goddamn slow all-around
IMO, X is NOT what is slow! It is KDE/Gnome/[insert slow desktop/window manager here]. If you want to see the speed of X all by itself, try typing 'X' at the command line. The X server pops up damn near instantaneously (minus anything useful though) on my P4 1.7Ghz, and it is still quite fast on my K6-2 450 (yeah I still have one of those). Also, I have noticed that recent versions of Gnome have improved startup times. Faster than KDE on the same machine in my personal experience. (I still use KDE though.)
All I have to so is switch to a lighter destkop (i.e. twm) and the startup time from 'startx' to "ready for use" is dramatically reduced. I see plenty of "X sucks" lately, but I don't see it as being X.
Just my 2
"I'm going to remove a lot of choice from the user, because, to many, it's more a gamble than a choice."
I agree whole-heartedly with that. When your basic desktop user is switching from Microsoft to Windows, all of those choices are guaranteed to blow his mind. Postfix? Sendmail? Qmail? Procmail, mailx, mailutils, maildrop, mailbase, getmail, fetchmail, mutt, elm, squirrelmail, kmail, sylpheed, evolution!? I don't know, I just want to check my mail! Why are there so many choices in the "mail" section!?
What ALL distros lack is sufficient documentation on what all of these packages are and why you would need them. Gentoo's description of fluxbox: "Window manager based on Blackbox -- has tabs." Yeah, that about sums it up. Now I know exactly what it is... uh huh. To anybody who needs a description of fluxbox, that's not enough. Imagine the user coming from Windows and reading that description. What's a window manager? What's blackbox? What are tabs? Do I need this?
The way to fix this isn't to just force the user to take a certain window manager. It's to give real documentation. A page, or two, or three. Better yet: screenshots. A picture is worth a thousand words, right? Each window manager could have 5 or 6 screenshots viewable from the installer, or maybe a little automated tour.. a slideshow or video that demonstrates its features. Every program should be well documented. Those that can't be described completely yet simply should include some sort of a graphical demonstration. Documentation should include who it's targeted at, what it does, and why you would need it. This could include a list of common tasks it is used for.
Similarly, a well-documented installer should have an index where users can search for specific actions like "reading mail" or "web browsing". Under each topic should be a list of available programs to do that task. Current installers allow you to choose pre-defined setups like "workstation" or "server". There should be more than just a few pre-defined choices, and they should explain in great detail what they install and why. Obviously, there are some people who just want to click "install" and have everything setup for them. But those who are really trying to get into Linux won't just want to have a box pre-configured for them. It's MUCH more valuable to have each choice explained. "This is fluxbox. Fluxbox is a window manager. A window manager is... Fluxbox was chosen because you selected the 'fast and lightweight' setup. Fluxbox's competition is:... Fluxbox was chosen instead of its competition because..." Sure, it would take forever. I know I would have preferred to have taken a long time but known exactly what was going on rather than installing in 10 minutes and taking two years to learn what all of my software is for.
Maybe a distro intended solely for introducing linux is in order. Not like Lindows and Lycoris which "introduce" you to linux by isolating you from it, but something that is more of an interactive tutorial.
Scratched Emulsion
The directory aliasing, is rather trivial. I do something like this as part of my default installs by hand in a few minutes (example /root to /home/root, /tmp to /var/tmp, /var/www to /home/apache, etc...).
As for a repository of rpms that are distribution specific most distributions do do this. So your question about why they don't is moot. The issue with software occur when people try to install rpms from other distributions.
As far as libraries, certainly to a limited extent you could simply install all libraries but then frankly if you are going to do that go whole hog and just the apps as well and have only one software configuration you need to support. In general though you may not resolve all the issues of dependencies. Often apps need libraries compliled with particular settings. So if you are really going in this direction you are not only assuming quite a bit of harddrive space but also 2-3x as much ram. For a newbie distribution that isn't neccesarily that horrible but it should be understood.
Take a simple example. What languages are you going to compile into your interfaces for messages? English only (very limiting). Or maybe English and Spanish (now you have just added a lot because you now have to support some non ascii fonts)? But then are you going to have right to left support so that people can use Arabic and Hebrew? What about cyrillic support for eastern europenas. How about Unicode and if so will all Asian fonts have to use something like UTF8 (i.e. Asian text will be 50% larger than using a 16 bit font)? Most unix code will allow you to complile versions for various font sets, very few support arbitrary font systems and those that do are very complicated (see Oracle's excellent documentation on national language standards for a very good discussion).
Finally on the issue of apps you are showing ignorance here. Either you install one of each major type of app or you give people wildely different experience and install/offer lots of different apps. People always say "why do I need 12 different text editors" but what they forget is:
Emacs -- virtual lisp environment editor
note two choices which are incompatable if you want X support: GNU with X extensions or XEmacs
Also Emacs21 introduced library incompatabilities so you often want to offer 20 and 21 versions.
VI/VIM/Elvis/Viper -- vi environment. BTW often people who use one of these are quite picky
pico -- very simple editor
joe -- full features wordstarish editor
if we are going to offer joe what about jed?
beav -- good hex editor, also useful for people who need EBCDIC
yudit -- better for unicode users
etc... Mainstream Linux distributions on the whole handle this situation quite well:
a) Very nice default choices
b) Wide range of packages for people with specialized needs
c) The ability to install the thousands of other packages which are even more specialized.
The fact that you couldn't even make simple choices:
-- gnome only
-- open office only (though why pick gnome since OO isn't gnome specific)
etc... means you wouldn't be able to go the unified route.
NetBSD rules! Anyway, Gentoo Linux is an interesting new distribution with some great features. Unfortunately, it has attracted a large number of clueless wannabes who absolutely MUST advocate Gentoo at every opportunity. Let's look at the language of these zealots, and find out what it really means...
"Gentoo makes me so much more productive."
"Although I can't use the box at the moment because it's compiling something, as it will be for the next five days, it gives me more time to check out the latest USE flags and potentially unstable optimisation settings."
"Gentoo is more in the spirit of open source!"
"Apart from Hello World in Pascal at school, I've never written a single program in my life or contributed to an open source project, yet staring at endless streams of GCC output whizzing by somehow helps me contribute to international freedom."
"I use Gentoo because it's more like the BSDs."
"Last month I tried to install FreeBSD on a well-supported machine, but the text-based installer scared me off. I've never used a BSD, but the guys on Slashdot say that it's l33t though, so surely I must be for using Gentoo."
"Heh, my system is soooo much faster after installing Gentoo." .debs can be rebuilt with a handful of commands (AND Red Hat
supplies i686 kernel and glibc packages), my box MUST be faster. It's nothing
to do with the fact that I've disabled all startup services and I'm running
BlackBox instead of GNOME or KDE."
"I've spent hours recompiling Fetchmail, X-Chat, gEdit and thousands of other programs which spend 99% of their time waiting for user input. Even though only the kernel and glibc make a significant difference with optimisations, and RPMs and
"...my Gentoo Linux workstation..."
"...my overclocked AMD eMachines box from PC World, and apart from the third-grade made-to-break components and dodgy fan..."
"You Red Hat guys must get sick of dependency hell..." .rpms together on the command line, and that problems
hardly ever occur if one uses proper Red Hat packages instead of mixing
SuSE, Mandrake and Joe's Linux packages together (which the system wasn't
designed for)."
"I'm too stupid to understand that circular dependencies can be resolved by specifying BOTH
"All the other distros are soooo out of date."
"Constantly upgrading to the latest bleeding-edge untested software makes me more productive. Never mind the extensive testing and patching that Debian and Red Hat perform on their packages; I've just emerged the latest GNOME beta snapshot and compiled with -09 -fomit-instructions, and it only crashes once every few hours."
"Let's face it, Gentoo is the future."
"OK, so no serious business is going to even consider Gentoo in the near future, and even with proper support and QA in place, it'll still eat up far too much of a company's valuable time. But this guy I met on #animepr0n is now using it, so it must be growing!"
-
well, thanks for the cut and paste, but that relates to basically nothing I said in parent. Because your post was so amusingly idiotic, i will of course respond.
.debs can be rebuilt with a handful of commands (AND Red Hat supplies i686 kernel and glibc packages), my box MUST be faster. It's nothing to do with the fact that I've disabled all startup services and I'm running BlackBox instead of GNOME or KDE."
.rpms together on the command line, and that problems hardly ever occur if one uses proper Red Hat packages instead of mixing SuSE, Mandrake and Joe's Linux packages together (which the system wasn't designed for)."
NetBSD rules! Anyway, Gentoo Linux is an interesting new distribution with some great features. Unfortunately, it has attracted a large number of clueless wannabes who absolutely MUST advocate Gentoo at every opportunity. Let's look at the language of these zealots, and find out what it really means...
NetBSD is not my preference, Gentoo is simply an easier way of going about a linux from scratch source-approach than the actual LFS system is, and has a thriving community willing to help the less knowledgeable.
"Although I can't use the box at the moment because it's compiling something, as it will be for the next five days, it gives me more time to check out the latest USE flags and potentially unstable optimisation settings."
I rarely update my system. I do it whenever I either have some downtime, or will be away from my computer for a significant amount of time, like if I have a busy weekend coming up. (yes, I do actually do things other than use my computer.)
"Apart from Hello World in Pascal at school, I've never written a single program in my life or contributed to an open source project, yet staring at endless streams of GCC output whizzing by somehow helps me contribute to international freedom."
Idealism doesn't even enter into it. Yes, I program. No, I haven't contributed to any released opensource projects yet but I do have some things in the works. Nothing earth-shattering, as most of those are either in the works or I am not at that level of skill yet. I do not proclaim l33tness before the n00bs, nor do I consider myself to be particularly knowledgeable apart from areas I have worked on myself.
"Last month I tried to install FreeBSD on a well-supported machine, but the text-based installer scared me off. I've never used a BSD, but the guys on Slashdot say that it's l33t though, so surely I must be for using Gentoo."
Not a sentence of this applied to me. I have used Debian, Red Flag, Red Hat, Mandrake, Slackware, tinfoil hat, hal99 or whatever, and core linux. I found Gentoo to be a better fit for my needs, and also was better at handling dependency checks than the alternatives.
"I've spent hours recompiling Fetchmail, X-Chat, gEdit and thousands of other programs which spend 99% of their time waiting for user input. Even though only the kernel and glibc make a significant difference with optimisations, and RPMs and
Perhaps my machine spends more time compiling, but I spend more time not having to deal with it compiling. Portage does it for me, when I am not at my computer anyhow. I don't see how this is a logical arguement at all. You must use Windows XP. And I do use FluxBox, but its a matter of preference.
"...my overclocked AMD eMachines box from PC World, and apart from the third-grade made-to-break components and dodgy fan..."
Actually I roll my own. hand picked parts, good fans, good quality power supplies and drives, and yes I run AMD but no it's not out of Intel hatred. Also, I don't overclock.
"I'm too stupid to understand that circular dependencies can be resolved by specifying BOTH
Not true. I successfully used Red Hat without such problems for about a year. I found its defaults wanting. The best part of Gentoo for me is customization from the start at low l
In SOVIET RUSSIA... erm...NSA AMERICA, the Internet logs onto YOU!
I've scrolled halfway through the posts and haven't seen anyone say it, so I will: He's describing Debian.
/system/commands "idea" is a clunkly thought out version of /etc/alternatives. His "One bog site where you can download packages that are guaranteed to work with your distro" describes the official apt repository nicely. His description of dependancy hell sounds like the experience of a RPM user--I wont say that Debian never has pckage problems, but I will say that I've only ever seen them in Unstable--on my Debian system dependancies are never an issue.
/bin and /usr/bin and /usr/local/bin (and on Debian at least their uses are clearly defined) but one bin directory for users and one for root should be enough. (The argument is (of course) partitioning. Mount /usr ro! /bin is on / so that the system always boots and everything else can be remote! I don't have an answer; maybe the HURD and its fancy merging directory thing will be the solution.) Debian can dictate such a change, if it could be agreed upon.
Okay, not now Debian, but a friendly Debian. His
I don't mean to sound like a Debian-loving zealot (though I probably am...) but 50% of what he wants Debian already does. Of the rest:
The revamped directory structure is a must. I've looked at it every way I can, but as far as I can see the old unix layout (while close to my heart) is not going to make desktop users happy. I've heard all tha counter arguments (and made most of them myself) so don't bother. I dissagree with his names, and I don't like the way MacOSX does it either, but something has to be done. Even if it isn't renaming (people can learn any names, after all) it should be depreciating certain practices and/or not allowing them. I know there are good reasons for
Limiting choice. This is a Very Bad Idea. limited choice is never, ever good--this is my firm conviction. But that doesn't mean there can't be sensible defaults. Make everything work automatically and TOGETHER automatically, and have all of the choices there for those who go looking. Maybe limiting packages on the install CD is worthwhile... but the choice should always be there. Debian limits nothing, and its default setup does not work perfectly... but it has potential. I can see it pulling itself up by its bootstraps and becoming a system that works together with itself.
Graphical installers. I'll say it one more time, I've said it before: screen one of the installer should be DOS/curses style and say "Easy install or Advanced install?" This is not to say everything he said about having the graphical install have advanced buttons isn't true; that's necessary as well. What this means is that the idiots can pick "Easy" while I pick "Advanced" and I get my sure-to-work-on-this-VGA-piece-of-shit installer complete with cfdisk partitioning and all of the gory details. There should never be a total reliance on a fully GUI install. Debian's installer is awful and could use some kind of option like this.
Liscense. BSD-style is nice, but GPL is Free. Non-GPL is not an option.
Kernel. This is another point in favor of Debian. It's (at least potentially) kernel agnostic. Linux today, NetBSD tomorrow, the HURD on Friday. A truly Complete Debian would allow you to pick any (supported) kernel you wanted at install time... be it Linux, or *BSD, or whatever. Doesn't matter.
As far as source goes... the debian way seems good. apt-get source. You can't do it by mistake, and it's not like archive material so few would get it "because it's free". Bandwidth problem largely solved (or at least not seriously aggravated) and you don't piss off zealots like me.
I will close by saying it again: Don't reinvent what Debian already does. Build a debian-based distro (a script could repackage many applications to use any new dir layout you choose). What this guy wants is a Friendly Debian and a little bit of proprietary code.
I want my Cowboyneal