Lately, we’ve all read a lot of articles about desktop Linux – so many that it’s getting hard to tell them apart. One says “Why Linux Sucks,” the next “My Success With Linux.” Even Michael Robertson of Lindows.com joined the fun with his “Why Desktop Linux Sucks, Today.” But very few people have proposed anything radical, and I believe that’s what’s needed to take GNU/Linux to the next level.
The polish that Red Hat and Mandrake have added to their consumer-grade Linux offerings have meant a lot to users like me, those who use it as their main desktop OS. Finally, these distributions are starting to look like a professional quality operating system. One of the main problems, the way I see it, is what I call “marketspace crowding.” There are so many distributions, so many flavors that are, when it really boils down to it, just semi-clones of one another with one good tool or one little tweak added or modified. The idea of roll-your-own distribution has left the market saturated with many similar distributions, and even those “in the know” don’t know how to properly choose a distribution. The solution should be to make your distribution stand out, and in order to do that, you can take advantage of the opportunity to do some things right.
So, if I had the capital and connections to make a new distribution, I’d take full advantage of the opportunity. The market doesn’t need another carbon copy of the current Linux market leaders. It needs something new, something fresh, something that really rocks the Linux community’s world. So I’m in charge of my own personal Linux distribution, DistroX, and here’s what I’m telling my staff and engineers.
Let’s start by delving right into it: let’s address some Unix-wide issues, that will make our development unique. The file system is a nightmare for a normal user. This has been covered in exhaustive detail by hundreds of articles, but if I’m going to run my own distribution, I’m going to make a sensible directory structure: /users, /apps, /system, /hardware, /downloads, /logs, /servers, /shared, and more. Then, using symlinks, we’re going to recreate the current basic layout of the standard Linux/BSD filesystem to assist developers in porting applications. For example, our system would probably include the following the symlinks:
/home -> /users
/var -> /logs
/var/www -> /system/websites/
/etc/httpd – > /servers/httpd/
/dev/hdc -> /hardware/cdrom/
/mnt -> /hardware/drives/
This will encourage new users to explore their computer, not fear it, as many do. Apple has this right – Mac OS X’s file system is human readable, and not intimidating at all. [Note: The above symlinks are just used to illustrate the mimicked filesystem, not final decisions. Please don’t comment on the actual links referenced above]
The next idea is fairly controversial, and it comes in two parts: first, our goal is not necessarily to follow LSB guidelines, nor to be compatible with other distributions. Our goal is ease. Dropping legacy support and not being dependant on RPMs will open up the doorway for my engineers to revolutionize Linux software installation. Again, this topic has been discussed in detail in the past, so I won’t get into the specifics, but a drag-and-drop software install/uninstall is clearly the preferred method by desktop users. I barely know hown to uninstall software on Linux past “rpm -e program” and on Windows, my control panel used to be filled with a number of programs whose uninstall failed, and in the process, wiped out that single .ini file that directed the uninstall (to get rid of them, registry tweaking was necessary). The second part of this step is to set up an actively developed software repository on the internet. Users aren’t stupid, they don’t need a hand holding front end, but they do need easy access to programs, and an online facility dedicated solely to my distribution is definitely a plus for me as a potential customer. Incidentally, I don’t know why this type of thing isn’t more popular with today’s large distributions – it would be nice if there was a single site where you could go for install packages specific to your distribution that were guaranteed to work.
In following that, a good amount of resources will be allocated to developing an online community a la Gentoo. Forums would be well maintained and cared for religiously. Help would be granted unconditionally. Contests would be held regularly and other promotional stunts to get and keep people interested. An active community means more developers, more porting, and more word-of-mouth. Conferences, training, certificatons would all be investigated. Anything we can do to make people try our distribution would be considered.
Choice. It’s what Linux and BSD offer that, to some, is the biggest draw. 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. But my distribution will not, as many large companies have, concentrate all of our resources on making one environment look nice and then include a second that pales in comparison. I’m going to remove a lot of choice from the user, because, to many, it’s more a gamble than a choice. If I customize Gnome to be unique for my distro, I don’t want people to unknowingly choose KDE. Or vice versa. If you’re an expert, and require the another DE, you can download the source and try to compile it yourself, visit our forums, or even assist us in porting it so we may offer a downloadable package customized for our distro. I’ll include one IM program (gaim), one FTP program (gFTP or Kbear), one e-mail client (Evolution), one office suite (OpenOffice.org, but also kedit and kwrite, which serve different functions). I may choose to include two or more browsers – as they are frequently used and that choice is not likely to cause confusion. I won’t list all my application choices, but the point is, I won’t include applicationss for the sake of including applications only. Only those that offer a different and distinct experience or that offer something unique will be considered for inclusion.
Installers have been a hot topic of discussion lately too – mainly because they’re all getting pretty good and now. It’s a race to who can make the one that the crowds feel make the most sense. Anaconda has come a long way and leads the pack, SuSE YAST has received praise, and Mandrake’s redesigned install is clean, fast, and easy. New breed distros like ArcLinux, LindowsOS, and Lycoris have really gotten the rapid install process down pat. I believe the perfect is somewhere in the middle – graphcal, heavy on eye candy, with few visible options but lots of “Advanced” buttons. Full control is necessary for experts, but simple steps for newbies. Some essential tools: NTFS resizing, coexisting with other Linux installs, and a configurable boot manager. I’d really like to see Linux boot on ATA RAID. When this project is more stable, we’ll incorporate that ASAP. Lastly, in the installation category, each step will have easy-to-read documentation on screen, such as ‘Which file system should I choose?’ along with recommendations – “DistroX recommends UFS file system for all desktop computers. This file system provides crash recovery/protection and has been thoroughly tested. If you intend to run your computer as a server, click here for more suggestions.” People should never get scared during an install, but I don’t want to remove all options from the install process. None of the BSD’s use graphical installs yet (though the OpenBSD project does have GOBIE under development). Many complain that installing a BSD with a DE is still one of the toughest tasks out there. Ours will be fully graphical and thoroughly tested. Public betas will solicit feedback until we’re convinced it’s as easy as a Windows install.
On the subject of installs, I’m not going to worry about “bloat.” 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. We don’t want anyone, anytime, to have dependancy problems. We’ll include everything we can think of, and if we come upon and app that needs something not in the default install, we’ll include it in the install files on our application website. Dependacy problems are an issue of the ’90s – there’s no excuse for them today. On my home machine, I’ve come across this scenario: I download program A. In order to compile it, I need lib X, Y, and Z. I download them all. Library Y fails to compile because it requires B and C. I download B and have to upgrade C. But B depends on E. And E seems to be installed. 45 minutes later, I quit. On my distro this will never happen, because our install files will include everything. Hard disks are large and cheap these days. We will simply maintain: a worthwhile desktop system needs disk space. Broadband is increasingly common. Packages should include all files necessary for use.
Another thing I’m about which I’m concerned is after market add ons. Red Hat ships without mp3 support and may not be the last distro to do as such. I’ve maintained that the workaround here is to add a menu entry to the launch bar: “Install MP3 support.” The script that runs fetches the mp3 plugins, installs them, and then, after confirming successful install, removes the entry from the menu. Same with DVD plug-ins, nVidia drivers (if an nvidia card is detected), and other after-market add ons. This will allow further compliance with licenses. Perahps a “Run Once” menu should be present, or even a script that installs all the necessary after market add ons and then removes itself.
My distro would be available for download on throttled public FTP servers and also from some sort of contributor/buyer FTP servers. My contributors and paying customers can also download my apps at high speed. I don’t mind people seeding BitTorrent or anything, I just don’t want to pay for the bandwidth. Last I checked, availability was rarely the reason people did or didn’t try a distribution. On that note, my source code CDs are not available for public download either. That’s bandwidth I don’t care to pay for. Source, or what we release of our source, will be available to those that request it for postage only – I’ll GIVE it to anyone who wants it and is willing to pay for the postage – the CD’s are on me. The cost of CDs is negligible, and the cost of postage will weed out the “getting it ’cause it’s free” crowd. I don’t want to milk the developers, I just don’t want the whole world downloading 2 or 3 extra CDs by mistake. As a company, we want to be smart, we want to share, and we want developers to feel loved, but most importantly, we want to make money to stay afloat. So we need to be smart.
Defaults are very important – one thing I’ve noticed is that there are few system-wide defaults with most Linuxes. For example, click on a link in Evolution, I get Mozilla. Click on a link in gaim, I get Konqueror. Want to change that behavior? I change it in gaim. But Evolution’s default won’t change. And Mozilla always defaults to MozillaMail. There is a way around this. The way I understand it, pretty much everything on a GNU/Linux system runs commands terminal-style. Perhaps the way to get system-wide default is to have a given directory, say, /system/commands, that appears to be the equivalent of /usr/local/bin or /usr/bin – that contains the executables from the command line. Except, in our distro, the real files are kept in /system/bin. /system/commands is full of aliases. Then, when you change your default browser through our control panel – all the known browser commands – konqueror, mozilla, opera, galeon … they all change to aliases of your selected browser. Now, obviously, menu commands have to map to the hypothetical /system/bin, since we don’t want to effectively stop those programs from ever launching – just from launching via standard systems commands. This is all very complex, and would surely be an engineering feat, but until Linux/BSD as a whole is cleaned up and standardized, it’s a possible solution.
If this were reality, and I truly had a venture capitalist’s backing on this project, I should mention that I’d probably have to reconsider Linux as a whole. We’re a company first and foremost, and so our goal is to stay in business and make money. We’d have to achieve this in two ways:
a) first off, we should probably base our distribution on the FreeBSD system. FreeBSD has many drivers, boots much quicker than Linux, is very clean code, and most importantly, has a much more liberal license. The GPL provides little room for making money on software, only support (see many comments by RMS, Bruce Perrins, and Eric Raymond, as well as the history of Cygnus for more on this). In order to develop an OS and provide the right environment for it to grow, we need to be a viable commericial company. In order to do this, we must protect some of our code. The second part of this scenario, strangely, is the exact opposite.
b) we’re going to share some of our code. As much as we will borrow from other coders, we will share some of our improvements with the community. As we all know, companies that are reluctant to share source code are frequently shunned by the knowing community. We will be good open source citizens, but we will protect some of our investment. The decision to use FreeBSD may not be a popular one at first, but it would ultimately be what sets us apart from the pack. Our distribution will be based on years of proven rock solid stability fused with a modern approach to user interaction.
Now, let me be the first to say that much of what I propose here may not be technically, or more likely, financially, feasible. However, I believe that the open source community gets things done by discussing what we’d like to see and eventually, the most popular opinions make their way back to the developers and the commericial companies. Clearly, Linux and FreeBSD on servers is working and popular. Linux on the desktop has come a long way, but even companies with a novelty – Xandros and their integration into Microsoft domains, LindowsOS and their Click-N-Run, etc, still aren’t really making any noticeable dent in the desktop community. Linux can’t be scary, and all we’ve seen so far is a pretty face to the undecipherable mess underneath. If you don’t agree with me, show the filesystem layout to your mother and ask her where an application might be located. Even I couldn’t tell you for sure – /usr/bin? /usr/local/bin? /bin? ~/.appname? /opt? /etc? It’s a total guess. DistroX is going to make sense because it’s going to be built that way from the get go.
I’m of the belief that someone is going to have to do something drastic to see real change. There should be a real, distinct difference between a “packaging company” and an “operating system company”. The first step, in my mind, is to decide you’re not just going to release “YALD,” or “Yet Another Linux Distribtion.” What do you think?
About the Author:
Adam Scheinberg is a regular contributor to OSNews.com. He recently moved to Orlando, FL, where he is looking for a network administration position. He uses Mandrake Linux 9.1 as his main desktop OS.
Great writeup and love to see more of your thoughts..
but damnit.. you blew the lid off of our project
Not trolling here, but it sounds like a free version of Mac OS X. Based on FreeBSD, cleaner filesystem, drag and drop installs, etc. And in my opinion this is great! A free Mac OS X-like OS that runs on x86 hardware is a sure winner. However, ask Apple how long, and how expensive it was to develop Max OS X, and you’ll see why it’s not free.
“Users aren’t stupid, they don’t need a hand holding front end”
Now that is funny.
Anyway, I only agree with half of this article. Cleaning up the file system hierarchy would be nice. And a disto that included only one or two of each app (OOo instead of KOffice for example) would be nice too. Certianly cut down on the CD’s.
But I believe the author has some unrealistic goals. Such as including every library known to man to eliminate dependency problems.
… I wouldn’t use that distribution. The text shows me that the author does not have a real clue what he is talking about. Okay, where do I start?
Licenses. The article says he is using the FreeBSD kernel because the BSD license allows him to turn the kernel into a commercial product. But then he says he would choose GNOME over KDE for the (LGPL!) license, which does not allow that.
Filesystem layout. I would recommend the author to read about what POSIX is. POSIX defines a standard layout for the file system. If you drop that, you lose 30 years of compatibility. The users of this distribution are really going to have a hard time installing third-party programs. And if everything is solved with symlinks, it will just be a real big, ugly mess. If you look at MacOS X, it still has the directory structure the author does not like anymore — those directories are only hidden in the Finder.
Including “every” library or dependency by default. This is just about impossible, as there are so many of them.
I could go on much longer, but I think you get my point.
Hell yea it is. Besides modifying actual programs like gnome for ease of use, all of this could be done in less than a week. Possibly even an installer. I like your ideas…and i think you, or anyone, should attempt this to see how hard it really is. I don’t see it as that hard if you base it on things we already have in the community. Still, no one is going to download it. Everyone has already paid for windows on their computers…all the technically illiterate you want are not going to get this unless you get a deal with Dell or Compaq or someone else. Linux has to prove itself somehow, we need this distro running in coffee shops, libraries, and other places to get some exposure!
Sueing microsoft will be the only way to get other operating systems a chance to succeed. The government did a half assed job with the monopoly. There is still the problem of microsoft pressuring computer manufacterers to include winxp . This is the real monopoly power of microsoft to distort the market. Linux and other oss’ would gain much greater market share if they didn’t have to deal with microsoft buying out the entire market. Dell,Compaq,Gateway and HP are complicit with microsoft.
Ok, just got to say that i don’t agree with your changes of the catalog structures. /hardware just sounds plain silly, the only one that would work imo is /logs.
This must be a boring world if this is being called radical. What the article describes is to me nothing more than preconfiguration with the addition of bundles or static linked apps.
No UI changes (how about common keyboard shortcuts and menu item order?), no enhanced application compatibilty (Common scripting language anyone? Using Python to automatically d/l stock tickers, create a graph in OO and publishing it for the web in the gimp, for example.), not even forcing any application to UI guidelines (GIMP. Menu bar. Hello?). Implementing something like MacOS X’ services, common standard for configuration files (which ideally are being stored in the same place), proper use of metadata and fast searching.This still would be very conservative and not anywhere near “radical”, as it all would be just imitating existing systems.
What’s wrong with /hardware? How is that any different from /dev, except maybe that it’s easier to understand?
Anyway, let me make it clear, since you apparently didn’t understand when I explicitly said “Note: The above symlinks are just used to illustrate the mimicked filesystem, not final decisions. Please don’t comment on the actual links referenced above”
The actual filesystem layout described is less important that the FACT that it would be made so. Please – no more comments on the described layout of the filesystem.
POSIX defines a standard layout for the file system. If you drop that, you lose 30 years of compatibility.
So…how long do you think we should stick with POSIX? 10 more years? Another 30 years? 100 years? Or should we just do it like the most popular desktop operating system and ignore POSIX now? Even then you can run POSIX inside a sandbox on non-POSIX systems, as Cygwin does it on Win32 or the geek gadgets do it on AmigaOS.
COmpatibility or not, you’re thinking like a sheep. The only way *nix based systems will ever make any real advanced is to say “F compatibility.’ Screw POSIX. We’ll go it on our own. That was the whole point behind custom building packages.
We’ll have to hope to attract developers based on the fact that they can make commercial products. You’re not BOUND to a license.
Come on I know you guys are smart, this shouldn’t be hard to do. We need a end to dependancy isues, simple sulution iclude them in the .rpm & have them only install if you don’t have them. Make a total GUI config toole, compile your software before you put it on the web. We want some more ease of use, & we all are not stupid cause we don’t want to recompile a kernel for CDRW support. Be nicer to everyone starts somewhere, don’t call a windows user stupid cause s/he doesn’t know how to do something in linus or wants a easier way to do something. Writing a script to do a task is not everybodies idea of fun. Something can be easy, but still secure & stable. So stop talking & start doing.
Windows has a terrible file system layout. The whole thing is one big mess. POSIX would be much better.
Anyways this would never fly. Too many conflicting license issues (BSD, GPL, LGPL, proprietary stuff). It would reak of lawsuits and of course MS would take any of the good from it and resell it because of the BSD license. Thus stomping out competiton.
when the author wrote he’d include only one desktop environment, i stopped reading. I am NOT one of those who “appreciate” having choices made for me by _limiting_. Yes, I realize that many hanker after the “simplicity” of having the choices all made for you, but that’s not me. Different strokes for different folks. Yes, I know I can download Gnome or KDE – but if I’m gonna roll my own, well then, I’ll roll my own and don’t need his distro. To _me_, either you give me both the major DE or there is no reason for me to use your distro – I’d sooner roll my own. Fortunately, many distros do include the major DEs. So, for me, his distro fails right there. Not saying it is bad, just not for me. And that’s how we get to the whole point of Linux – different choices for different folks – long live freedom of choice!
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.
So…how long do you think we should stick with POSIX? 10 more years? Another 30 years? 100 years?
I vote for 100 years. Obviously the Posix standards will evolve but I think Linux should be an http://www.unix-systems.org/“>Open . Linux users are Unix users who value open source. Open systems was a major accomplishment of the 1980s and I for one am not willing to casually throw that away.
As for the basic argument, POSIX has no problem with sym linking off a bunch of directories to create a Mac like structure. You are allowed to emulate the Unix file system you don’t actually need to implement it. The best example is VMS which emulates a unix filesystem on top of the native database filesystem (which BTW is something I think Linux should do).
it is makeing the user think they are not being help whenthey actualy are 😉
Customize Knoppix and give it to the world.
It is really easy!
( I know what im talking about. Cause i have actually done it )
There are some fairly nice ideas, but it wouldn’t solve many of the time wasting annoyances that keep me using Windows and Mac OS. For example there’s nothing to fix the painfully inconsistent GUI and the complexity of installing new peripherals.
I don’t really see a lot of call to revamp the directory layout. How many of you go through c:windows on a daily basis and can tell me exactly how everything in it is laid out? Not many, I would imagine. That’s because there’s no reason to go into that directory, and even less incentive to explore it.
Adam misses that particular gem of knowledge in his article – the problem is not so much about the filesystem layout as that you need to go into it so damn often. This points to a lack of GUI config tools. I know there’s more we could do: perhaps a module loader or a better XF86 configuration tool, for instance. With careful thought, we _can_ make GUI tools that are real replacements for commandline stuff, even that stuff which has lots and lots of arguments. Perhaps it’s time to write a scriptable front-end engine?
Next, he just needs to say “everyone should include Synaptic and apt-rpm with their distros”. He’s obviously barking up the wrong treee when he blames dependency problems on the very concept of RPM – the depedency problem is because there’s no way to automatically resolve them. Apt-rpm fixes this. And, incidentally, the site he claims doesn’t exist is called FreshRPMs. Proves wonderfully useful RPMs that are guaranteed to work with RH9.
Community support, OK, that’s vanilla, hardly a revolutionary idea.
Not sure if I agree with removing choice of DE and applications – if he’s really trying to run a business, pissing off 50% of the userbase by forcing them to switch programs doesn’t sound like a good plan to me. Perhaps customizing the menus so that the best stuff is quicker to get to would be a happy medium.
Again, kind of obvious ideas on the installer.
Apparently, his company is going to be based somewhere where copyright laws don’t exist, too. I got news for you: DVD playback needs to be licensed, and not licensing it is a fun way to get sued. MP3 playback is a trickier issue, though. Those “aftermarket addons” aren’t coming with RedHat for a reason, pal. Good idea with the nVidia drivers, though.
“The GPL allows little room for making money on software.” This is true. It also allows a ton of room for making money on the support of software. RedHat is doing fine with this model, and is breaking even at this point. But, remember, even a little closed code in the wrong places will earn you swift and nasty backlash from quite a bit of the community.
The idea for a new Linux distribution is nice, but I think it’s ultimately “improving” in some places which aren’t needed, and ignoring other places which need it more (PDA compatibility and joystick setup come to mind).
I somewhat agree with Benny Siegert. This plan doesn’t really sound like paradise, more like hell. Even more incompability won’t change a damn thing.
My vision of a future free operating system based on GNU/Linux (yes GNU/Linux, not FreeBSD) would be more like this:
Let’s assume Red Hat 9 as the status quo.
100% GUI driven
RH 9 is heading this way but it’s still a long way to go. RPM handling via the GUI needs to be more reliable. The “ask for password” concept if needed is great but needs to be extended. For example sometimes you _need_ to be able to modify a configuration file on your root filesystem. This is nothing evil in itself, but it is neccessary that the user can find the file with Nautilus and edit it with gedit, not find it with ‘cd’ and edit it with ‘vi’.
KDE has this “run konqueror as superuser” features which is better than nothing but a bit ugly.
I don’t believe that twenty symlinks will make the filesystem more easy to read. All it would do is create even more folders there to confuse the user. I rather believe in abstraction and that a regular user should not be exposed to it. I don’t know MacOSX but what Benny wrote makes sense (the finder not showing system folders). It should not show them usually but still keep everything in place and accessable for maintenance by experts. Note that this does not stop anyone from becoming an expert if he _wants_ to. It should not be necessary though unless something is broken (in this case you could pay someone to repair it or do it yourself, just like you can do with a car).
Instead of trying to force everyone to use your libraries, interoperability and consistency should be reached through open standards. This is already in heavy process, the system tray is a great example for this. Those things have to just work and developers need a way to support it without beeing forced to use a desktop- or toolkit-dependant library or method. Another important piece is a common freedesktop HIG. Both parties (KDE and GNOME) need to drop any kind of NIH, sit together and come up with something unique that at least covers the most general parts. This would allow third party developers to create applications which integrate well into the free desktop, no matter how it was developed.
I believe that there is nothing wrong with RPM, but that there should be an alternative way to install “applications” (as opposed to system libraries). It has to be a distribution independant system to distribute binaries of your application and it should work without explicit support by the distribution. Thus everyone who creates a package in this format would know for sure that everyone on a unix desktop can install it. In other words, something like the Autopackage project tries to offer.
Better Performance and even more Polished Interfaces
I don’t think I have to explain this. More stability wouldn’t hurt either.
I strongly believe that all of the above can and will (eventually) provide a free Linux desktop which works very well. Not like Windows, like BeOS or like MacOS, but simply good. RedHat has my support, because I think they are on the right track.
The use of a BSD kernel is essential for the commercial success of a distribution, because of the licensing issues of the GPL. I wonder why nobody ever tried to release a FreeBSD based distro as polished as the Linux distros that pop up everywhere. I would certainly buy something like that.
Kinda OT, but someone brought it up. Does anyone know of any modern distributions which have good support for Arabic and Hebrew?
What’s wrong with /hardware? How is that any different from /dev, except maybe that it’s easier to understand?
What’s wrong with /dev? It is well-known, easier to type and stands for device, which is what most people call their hardware anyway. More descriptive names for files residing in the /dev directory would be nice though. Many distros do this for you to some small degree already by offering a simlink /dev/cdrom to point to /dev/hdb.
Gnome and KDE. Give me a break. I’m waiting to see what happens with the Simply GNUstep project.
I’d like to have a 1 CD distro. WindowMaker as the one and only desktop. Mozilla, Nedit, Gimp, Openoffice.org, XMMS, a few games and other apps. That’s it. Anything else be downloadable. I don’t have the time to waste trying to configure system just to get it to do simple tasks. That’s the one thing I liked (and continue to like) about Be.
They all do, just some of them you have to set up yourself. There are many good references that can be found via a google search.
If you don’t want to do it yourself, I think SuSE provides the option for Arabic and Hebrew support during install, but I’m not sure. I know they do a fine job of Japanese though.
Right. I have my own opinion about the filesystem layout.
Compatibility can be quite important. Therefore, it is really needed that /bin, /usr and such still exist. And what does any “joe user” ever need to do with those? Nothing! Because…
There is /opt, specially made for applications. Maybe create a symlink /Applications to it (maybe even create a symlink /Documents to /home).
Right. Now the installer of this distro installs a generic set of applications and libraries in the default locations (such as libssl, libpng, tar, vi).
Now I want to install OpenOffice or KOffice. Following steps needed:
1. Grab the Office ISO image. Probably about 150 MB.
2. Burn it.
3. Insert it
4. Click the CD icon
5. Extract openoffice.tgz or koffice.tgz
6. Move the result to /Applications.
How this solves dependency problems? Why not have /opt/openoffice/lib, /opt/kde/lib and such for application-specific libraries?
In this manner you also save bandwidth. If you want to setup a webserver, you don’t need to download a cd with OpenOffice because mod-php is also on it.
I think that including all known libraries is a stupid and counterproductive way of going about things. Look at Windows DL-HELL for an example.
I think there should be 3 levels of libraries in a system:
1 – System – A subset of libraries that only the OS Distributor should be able to modify (unless specifically allowed by the system administrator). This would be things like the KDE or GNOME Libraries, GCC, etc.
2 – Application – A subset of libraries that applications can change if they are explicitly given permission to by the user. For example, I want to install the latest version of Someemailapp 2, which requires LibBC92-3 to work properly. The software package will ask me if A.) I want to download and install that package myself, B.) If I want it to download and install the latest version from it’s last known good location, which is set by the programmers, or C.) If I want to install the software using the embedded (or optionally downloaded) version of the library. I picture a system in which we could choose do download from each software website which package we want, Minimal, Standard, and Kitchen Sink, which would determine which libraries are included, with all libraries typically used included with the standard package.
This would be the most common library style. See number 3 for added idea.
3 – One-time – Say I want to run a program that I will use to generate a result and then I would uninstall it. There’s no reason for me to spend a ton of time hunting down libraries for a one-time use application. Thus, when I install the software, I can specify whether or not I want to delete libraryx after I’m done running the program. The library would be kept in a binary archive which I would use to reinstall that library when it’s needed, only if it’s needed. This would keep my /system/libraries dir clean, and prevent conflicts.
The one flaw in my plan is conflicts of libraries. There are three ways of handling libraries. One dir (/system/libraries), the libraries being in the program dir (/programs/program/libraries) or a dir based on which level the library is (for level 1, it would be in /system/os/libraries, for 2, /system/shared/libraries, and for 3, /programs/program/libraries)
I dunno, this is off the top of my head, but I think it would be a much better way than bundling a ton of libraries with the os that would be out of date in 3 weeks.
Actually Jason what you are asking for is the old fashioned system:
System – /lib
Application – /usr/lib
one time – /usr/local/lib
In my case, it doesn’t seem to work that way. I dunno, maybe I’m too much of a n00b to know what I’m talking about 🙁
LinuxSTEP filesystem hierarchy is very well tought … you should take a look on it : http://www.linuxstep.org/documentation/
It’s a longer goal than SimplyGNUstep, but imho a worth one.
I do like the idea of overhauling installers. What would be nice to have an installer with some of the defaults the author mentions. Most installers do this to some degree, but not to the level of granularity I’d like.
I’d like to see stage-based installation which would have reasonable defaults for DE (I think KDE is a better choice for a default – and this is coming from a Gnome user), editor (nano), standard partitioning.
But I’d like to see the following on *each page* of the installer:
Button: More information – what is all of this?
Button: Install default / beginner
Button: Advanced configuration – GUI
Button: Adanced configuration – Command line
I think an ideal distribution could reasonably cover the entire range of installation possibilities, from something simple like Mandrake’s install, to something very granular like Gentoo’s. Most installers I’ve seen give you the Beginner-Advanced-Custom option at the beginning, and this affects the entire install process. I think it makes more sense to do it per page – on the partitioning page, the software install page, and so forth. The idea here is that nothing is forced on the user if they don’t want it, but they can get a totally brainless, automatic install if they want, or mix and match. I imagine mixing and matching “skill levels” would be quite popular, depending on your level of expertise. Never should control, however, be taken away from those who want it. This is one of the things I absolutely hate about Windows.
Also, I really think all distributions ought to use something like portage, ports, or apt-get. I really think this is the best way to handle dependency issues rather than clogging up a hard drive with unneeded libraries. It would be nice to see two standards emerge that all vendors would emulate (they could additionally build their own packaging systems but it would be nice to see a standard) – one for installing precompiled packages with dependency resolution, and one for downloading and compiling source. (This is complicated of course because of different directory layouts and the like, but you could have a distro-specific configuration file which would tell the package system what dirs are where).
Even though these systems are not perfect, they are so drastically better than dealing with RPMs that I really would like to just see RPMs done away with completely. I can’t even imagine using a distro that I had to mess around with dependencies and the like, after using distros like Debian. In my opinion, the lack of decent package management is the #1 problem with most distros, and this problem *has been solved*, it’s just a matter of other distros adopting it and coming up with a standard. I am prejudiced toward Gentoo’s system, but this should be discussed and debated, in terms of an overall standard.
Second, I’d like to see a developer project dedicated to fixing *dumb inconsistencies* in DEs – one perhaps independent of the KDE and Gnome projects, that has an interest in integrating things. The continuing inconsistencies of things like cut and paste (“clipboard”) is intolerable. I’d do this myself if I knew my ass from my elbow in terms of code. I sense that these things aren’t very interesting to developers (which I understand). It’s dirty, tedious work, though, that has to be done.
A personal peeve is font handling, which seems needlessly complicated, in terms of making anti-aliasing work properly (which I have had problems with using multiple how-tos, on different distros. Maybe I just have bad luck or am incurably stupid), and dealing with different kinds of fonts. One big problem is I have absolutely no interest in understanding how fonts work; I just want my screen to be readable. ttmkfdir, mkfontdir, adding paths to the XFree configuration, setting environment variables (as with Gnome) to turn anti-aliasing on, etc. is just irritating to me. I’d obviously like to keep all of this in a format where people can still granularly tweak things and set things up, and as allergic as I am to automation and GUIs for configuration, this would be the one exception, and I’d like it to be standard across all DEs. (I know GUIs exist now for this – I seem to remember KDE has one, but I’d like to see this standardized across DEs).
As for offering a variety of apps, no problem doing this but only if the user selects an “Advanced” or “Custom” install option. For beginners, the easiest and most popular set should be installed.
Now as for getting people to use Linux. My theory is that the single greatest factor that would contribute to this cause is Microsoft coming up with a licensing scheme that completely eliminates piracy. I’ve noticed that quite a few people I know simply pirate Windows. If everyone had to lay cash down for it – especially something like a yearly fee – I think we’d see a pretty significant migration of people to free operating systems. I’m not saying I hope this happens, but if it does, I think this will drive people to Linux and the BSDs.
There will always be a segment of the population who will not use Linux no matter how good you make it, how Windows-like you try to make it, or how much you cater to their every whim. Just as there are people who have made Linux advocacy a religion, there are tribes of very bitter people who have made bashing it a life-mission. I’m not sure anyone should care about catering to them. If people want to pay money for Windows, that’s up to them. As a matter of fact, I’m not sure I care about Windows, or Windows users at all, anymore. I’m not sure the energy spent on winning hearts and minds is worth it. If we’re all using Linux because it’s so great, why should we care? I really don’t. I advocate Linux to people I know who would benefit from it and enjoy it and be turned on by it, but not universally. A lot of the things people want to make Linux do (be more Windows like) is not in my personal interest, and I wonder how much it’s in the interests of any Linux user, or if it’s of any interest to most developers (I doubt it). It’s gotten to a point where installing Linux is easy enough that people who still complain are probably never going to be happy, and probably wouldn’t significantly benefit from using Linux. I really don’t like Windows, but it seems to work for a certain segment of the world.
As I watch the development and user community, it is becoming increasingly obvious that winning over Windows users is not relevant to the success of Linux. I wonder what kind of music fans people are who are always harping on market share. I listen to what I like, regardless of how many other people like it.
I take a similar attitude toward my OS.
I think we should mainly focus on making Linux better for Linux users.
umm..the LGPL allows for comercial use. it lets you link to libs and such that ae LGPLed and NOT release yor code. changes to the LGPLed software do not hav to be returned either.
Just a couple of not4es. I think overall this is good.
One system that handles system-wide defaults is Debian, just look in the /etc/alternatives folder and it is full of symlinks for different types of apps. The way I change my default terminal? change /etc/alternatives/x-terminal-emulator to point to the one I like. Now some unofficial packages do not take advantage of it and I think DE based ones do not always either (I at least know my KDE packafes use it but not stuff like web browser).
One thing that IU think would be great for end-users is access to local files like remote, shares that are given out and collected in one main directory in their home. Then you can give them morep ermission to access the main drive. That cn he;lp with the file systehm heirarchy, but it does need to be changed. I would think it possible to have normal LibC and VFS-LibC. The VFS one could make the system look like any other file heirarchy wise to allow wide compatability. You oculd have a POSIX, MacOS, MacOSX, and Windows VFS. It would make porting between systems a piece of cake within that respect and not have to make as many downstream patches that you need to maintain.
Agreed 100%. Check our discussion here for more:
At first, I was irritated by “dependency hell”. But come to think of it, it’s the basis of the idea of free software. Freedom to use whatever software you want, not only for end users, but developers as well. I can’t think of a good example off the top of my head, but I do recall trying to install KDevelop and running into a dependency issue where it required a certain library that at first glance doesn’t seem relavent to KDevelop.
Software developers should start staticly linking the little libraries where appropriate or including the needed source files and give credit where credit is due, rather than expect the end users to install the entire library just for the few little bits of functionality that the larger app needs. We have large hard drives in this day and age, and if your argument that staticly linking libs into apps will make fatter programs, well it’s not like you’re saving me any space by forcing me to install a bunch of other little libraries just for bits of functionality. I’d rather the app be big and not worry about chasing after support libs.
And when the libs that your program depends on changes, update your source, test it, and release the update to your app. It’s very possible that an update to a lib may break compatibility with progams that depend on it, although rare and I’ve never seen it myself, but it’s still something to think about.
The problem I have with most distros is that they like to install user-end applications initially–as in during the install, before the first boot. The user is thrown into a supposedly “does everything out of the box” desktop and then has to figure out “how to do everything.” This is where many newbies fail. They install a linux system, then can’t figure out what programs do what, or why what they are doing doesn’t work.
I advocate “from the ground up” distributions that install a base system and allow the user to build up his applications in an intuitive, possibly guided manner.
I’d like to see such a project grow out of Gentoo. As a moderately experienced linux user (who definately runs into a problem or two from time to time), I appreciate this distro because it automates everything that I want to be automated, and leaves everything else to the user.
However, this is not ideal for the newbie. If you look at the gentoo install documentation http://www.gentoo.org/doc/en/gentoo-x86-install.xml you will find that for the newbie, there are not really many choices you need to make. An automated ncurses/gui installer option for newbies would be ideal–and an option to add xfree86 and a choice of window managers/desktop environments to the base install.
On first boot, place a document/wizard in a painfully obvious place that screams “Start Here,” much like the painful arrow thingy that points to the start menu in Windows on the first boot. It will guide through choices of alternative window managers, browsers, email clients, etc. and possibly include links to reviews and screenshots to inform the user.
Gentoo already has a mindless package management system for applications, libraries, and services, with automatic dependency checking in forward and backward directions. One command for updating all of your packages to the latest version!! Plus, the base system includes a compehensive set of libraries, compilers, and other system tools.
As for your suggestions regarding directory structure, I think the current hierarchy is fine, but the names can use some work:
/conf instead of /etc (what does that mean anyway)
/sys/apps replaces /sbin, /bin, and parts of /usr/bin
/user/apps replaces the rest of /usr/bin and /usr/local/bin (and /opt, which is horrible)
/user should contain the /home directories
/user/yourname/conf should contain local config file
/sys should replace /dev
I’m not gunna talk about device names (hda1, etc.) because I’m not quite sure what to do about this.
I like the /log idea, and it should be separate from the spools and mailboxes, which should be in /var, since I don’t think there is a particularly better name besides possibly /tmp or /temp
/boot is fine, but all other non-root filesystems should be mounted under something along the lines of /remote or better yet /rem, since that can mean remote or removable.
Along those lines, there should be a wizard for accessing any storage volume, be it remote (network resource) or removable (cdrom, usb storage, etc.) that should ask to modify a new file: /user/yourname/conf/fstab (or something with a better name than fstab) that should try to mount these filesystems when you log in. I don’t believe there is a mechanism for this yet and there should be. Resources in this local fstab should be mountable without root access.
Bottom line . . . The “newbie” distros are in my opinion less user friendly than the power-user distros could be if they had a simple installer and let the user add their own applications simply from a clean slate. Almost like windows, but done the linux way. This could work with debian, too, although I myself have never been able to get it installed correctly (gentoo is easier and MUCH better documented, even if it requires a little more typing). Good luck to all!!
Give me GUI tools to configure everything, but make the CLI an option also once I’ve figured everything out and am ready to turn off the bloat.
When it comes to installing packages, give me a list of them and a link or button I can click on to grab the latest stable version (or command line works too). And no, I’m not talking about DEBIAN stable either. For example, the latest final/stable version of Mozilla is 1.3. AFAIK, the Debian stable version is 1.01. If I want to change that, I modify /etc/sources and then I apt-get mozilla and get whatever version happens to be in Debian unstable at the time and hope it works. Nah, fuck that. In Windows, I go to the Mozilla website, download 1.3, and I know there’s a 99% chance it’s going to work. I can only download from the website in Linux if a) There’s a package available for my distro (and even then, you run the risk of dependency problems) or b) I want to compile it from source.
I wrote a big long response to this, and just erased it and started over.
If you want to make a distribution that is nothing like Unix, please do us a favor and call it “Nothing Like Unix”. Or “Nothing Like *nix” if the licensing doesn’t come through for you.
There is a Unix spirit, and a lot of people who prefer Unix and Unix-like systems because of this spirit and, while they appreciate that Unix needs to grow and change, they don’t want to throw out the good ideas, the essence of the system, in the process.
There seems to be a growing army of people from another camp, who don’t use Unix for development, don’t care about pipes and filters and standard ways of doing things, who can’t even read Kernighan’s “The Unix Operating System” (an easy and good read, dated, but when you are done you’ll at least be able to remember what ‘/dev’ is, and won’t be tempted to call it ‘/hardware’ or ‘/MyWeirdWireyLectronicalishStuff’), and just want a funky alternative to Windows for some reason.
I am obviously part of the former camp, and would just like these people who seem to dislike Unix, MacOS, AND Windows to find a different pool to pee in, please.
Even if you have the most revolutionary wonderful easy distro on earth – you still won’t be guarenteed success (case to point: NeXT, Be). Having a good applications line-up, a clearly defined niche, a good third party developer relationship. In addition to having hardware makers supporting you – OEMs and IHVs (being one isn’t all too bad either).
Then you are guarenteed success. Windows 3.1 was successful, even though it was practically crap in comparison with competitors. Why? Because of the above said reasons.
…er, and before you all lynch me, I meant “The Unix Programming Environment”
Just take a look at ROX OS. Maybe that’s what the author is looking for. It’s kinda derived from RISC OS – wich is IMHO one of the finest OS, even it is not free/GPL/BSD/… ROX OS website: http://lemmit.kaplinski.com/home/green/Linux/ .
is part 2 and 3 impossible to access? I only get part 1 again when trying the links to 2 and 3…(Phoenix)
> If you want to make a distribution that is nothing like Unix, please do us a favor and call it “Nothing Like Unix”. ..There is a Unix spirit
You are wrong. What is Unix anyway?? The philosophy, the filesystem or the libraries? Or the kernel architecture?
MacOSX is neither of what you want Unix to be, but it still IS a Unix. You like it or not.
It is because of people like you that Unix is still today as arcane as it was 10 and 20 years ago. Because you don’t like evolution. It makes you shiver. You dread in the possibility you will lose the l33t position you got among your friends and co-workers of being the “unix head”.
Things will need to evolve people. And that includes Unix. MacOSX is one step, Adam’s effort could be another one. Heck, even Linux itself is an evolution over unix, but it is elitists like you who can’t grasp the idea of “new”.
Sorry, fixed now.
Hmmm, if this project were to take shape SciTech for one would undoubtedly watch with much anticipation as this sounds like something that would have been hatched around the water cooler here in our office.
eugenia i dont know what insulted you but i dont think its ok to insult people like that. its allways the same scheme. please stop getting personal in discussions like this. we all know you love macosX, but most of us cant afford a mac. yes we are poor and we hate apple for pricing their hardware too high.
one thing noone seems to understand here:
the user does just need his home directory and should never need to dig around somewhere else. the changes described are purely aestethical. of course we could call /dev -> /hardware and stuff like that, but it won’t hide the fact that joe user should never under any circumstances go there. all this stuff is strictly for the system. or do you dig around in your /windows dir that much (or /dev @ apple ). what linux needs more is a common configuration, stable API’s and libraries 3rd party developers ( who sell apps ) can use. most of it exists allready, the only problem being common configuration frontends for home users – but these are being worked on, as is freedesktop.org’s pioneering for desktop standards (drag and drop etc.). its just progressing nicely and i dont understand what the fuzz is about. its ready when its ready and if you want to do something do it.
Eugenia a OS X lover?
When pigs fly.
>we all know you love macosX, but most of us cant afford a mac.
Who spoke of buying a Mac?? And WHO said that I love Mac OSX???? This is laughable!!! Read the Apple stories we carry on OSNews, everyone is bashing on me for “hating” OSX!! You people *really* don’t understand me!!!
You CONFUSE yourselves and thinking “Eugenia likes XX” and “Eugenia dislikes XX”, while NONE of the two is real. Depending on the discussion and what we are discussing each time, I might present some good points of an OS, and on another discussion, a week later or something, I will present some other, bad points of the said XX OS. But people only read the one or the other discussion and GET THEIR OWN opinions as to what ‘Eugenia likes or dislikes’. VERY FEW people get the idea though!
> eugenia i dont know what insulted you but i dont think its ok to insult people like that
I replied to *that* guy saying that Unix is good as it is today. I find that position silly (in exactly the same way that HE named his comment with the header “This is just silly.”).
On my home machine, I’ve come across this scenario: I download program A. In order to compile it, I need lib X, Y, and Z. I download them all. Library Y fails to compile because it requires B and C. I download B and have to upgrade C. But B depends on E. And E seems to be installed. 45 minutes later, I quit.
Been there, done that.
At apt-get.org you can usually find backports of newer
versions of major apps that will run just fine on Debian
Stable, so there is not usually necessary to “roll the
dice” by ringing in a SID ringer.
>Eugenia a OS X lover?
>When pigs fly.
Thank you Rajan R.
OSX is a good evolution over Unix, it has a *usable* experience, but it is not a panakea, neither the best OS the world has ever seen. It is still slow, with laughable scrolling and resizing performance.
But it IS a WELCOME evolution over Unix.
That the Linux folks should be looking at systems like OpenStep and MacOS X if they are serious about adapting an environment based on Linux to become a desktop OS.
Most of the problems with Linux on the desktop are caused by an inability to just junk the broken system that’s causing you the problems of usability in the first place and rebuilding a new system in it’s place.
It seems clear that both NeXT and Apple did this with their OS’s.
MacOS X isn’t any more or less UNIX-like than Linux, the difference is that when building OS X Apple took special care to consider the problems of the metaphors or lack there of in the system and how they would effect not only the user, but the rest of the system as it were to be built on those metaphors.
For the last 6 months I’ve been wanting to build my own Linux distro which solves some of these problems, but time hasn’t been available.
Most of the obsticles are really quite trivial, they have just never been addressed. Creating a clear yet bridgable division between the user environment and the underlying UNIX-like layer of the OS is the key.
A good way to achieve this is to start with a notion that to the user the desktop environment should seem like the whole OS. Adding support for something like application bundles and framework bundles, giving the DE seemingly it’s own autonomous organized and complete structure in the file system which is descriptive and clear in it’s partitioning scheme. Much like how /System/Library, /Library, and ~/Library are in MacOS X.
Well anyway the solutions are already there to be implemented. Somebody else already had the expense of thinking them up and implementing them first. Mimicking them ought not to be overly difficult.
“Well why don’t you just do it yourself if you think you know all the answers?”, I hear coming from the crowd.
Okay fine I will.
smoke, I wish you were right. But you’re missing something: in a perfect world, all a user needs is her/her home dir. But as is, and as I see things for a long time, that’s not the case. In Windows, Linux, everything, I end up screwing around. I bought an mp3 player recently, I needed to start screwing around with /etc/fstab and going out to the terminal to type
mount -t usbdevfs /mnt/sda1 /mnt/archos
In a perfect world, I’d plug it in and it would work. Instead, my distro brought up GTKam. That’s why it’s easier for a user if you could just guess that /hardware/usb/device1 was this device. I never would have known to look for a SCSI harddrive unless I had the internet. Like eveyrthing else about Linux, it’s not intuitive.
We’re bombarded, even in these forums, with the visionless. It’s the ignorance of every generation to feel they are the best, and that apparently flows down to OSes. People can’t imagine anything different than the status quo. That’s why you build to solve today’s problem and avoid tomorrow’s. Work towards everything being in /Users/Username/ but understand that ain’t happening just yet.
Great article overall, but I believe you are not going far enough.
Linux is going to die. If you doubt it, check the latest screenshots and reports on Windows 6.0 (“Longhorn”) and you will doubt it no more.
Fighting back is pretty simple, actually : going anew. Choosing a flavor of BSD (Net,Open,Free) and building from it’s stability. We don’t want licensing issues here, so we do EVERYTHING from scratch – just keeping the basic and proven functionality and stability of BSD, which has a no-problem license to start with.
It seems like a huge task, but one that if promoted well enough would gather a huge (coder and non-coder) following. A new desktop, with Apple’s appeal, Windows’ (semi) task-orientation and BeOS’s simplicity. This, coupled with a new HTML engine (no Mozilla’s Gecko here with it’s license), an efficient library policy and integrated install-remove policy as well (I mean individual change-recording journals associated with each library and so on) would result in a next-generation free OS that would be a breeze to use and to evangelize about.
Another key issue would be leadership of the project. No Ceasar-model as Linus Torvalds, but a more democratic model, like FreeBSD’s elected Core Team.
I believe it would work. And I have no doubt it would ROCK!
>We’re bombarded, even in these forums, with the visionless
“On first boot, place a document/wizard in a painfully obvious place that screams “Start Here,” much like the painful arrow thingy that points to the start menu in Windows on the first boot. It will guide through choices of alternative window managers, browsers, email clients, etc. and possibly include links to reviews and screenshots to inform the user.”
This or some variation of it is a good idea.
I would never do a full install. I always build up from a
minimum install. This would be a chance for the Distro to
briefly state its case for the default choice per major
app category and make the others available.
“I think an ideal distribution could reasonably cover the entire range of installation possibilities, from something simple like Mandrake’s install, to something very granular like Gentoo’s. Most installers I’ve seen give you the Beginner-Advanced-Custom option at the beginning, and this affects the entire install process. I think it makes more sense to do it per page – on the partitioning page, the software install page, and so forth. The idea here is that nothing is forced on the user if they don’t want it, but they can get a totally brainless, automatic install if they want, or mix and match. I imagine mixing and matching “skill levels” would be quite popular, depending on your level of expertise. Never should control, however, be taken away from those who want it. This is one of the things I absolutely hate about Windows.”
Agreed. No reason why Distros can’t be a Noob or Expert as they want to be. So you can drive around in first or 5ht gear.
These are examples of just working with the stuff we have now better.
As far as needing BSD, Lgpl takes care of 3rd party
developer issues. BSD just assures you are a farm team
for Microsoft or Apple to cherry pick your efforts.
Speaking of apple I see that gpl didn’t stop them from
using konqui and khmtl for Safari.
In the end , people will look back and realize it was the
GPL that made all the difference.
…is one of the main reasons i dont switch to linux completely. command line interface is great and pretty standard throughout platforms/distros/etc but there is no standard gui and when i install i am faced with 100s of choices (none of which do the job) kde/gnome/icewm/fluxbox/fvwm/windowmaker/etc/etc/etc
Speaking of apple I see that gpl didn’t stop them from
using konqui and khmtl for Safari.
In the end , people will look back and realize it was the
GPL that made all the difference.
Can’t you get it through your thick head? Some people LIKE writing software for EVERYONE to use. Not everyone hates corporations and “commercial use.” Give it a rest.
There is a new directory standard already in the works that will be very simmilar to what was discussed here.
Check it out at http://mhs.sf.net
There is already a perl script that will setup the symlinks on an existing system….
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 jsut make the drag+drop installer include all the libraries that the application in question needs. Mozilla can have its own private version of GTK. Rhythmbox can have its own version of gstreamer, etc.
“Can’t you get it through your thick head? Some people LIKE writing software for EVERYONE to use. Not everyone hates corporations and “commercial use.” Give it a rest. ”
Sorry, I don’t know what you are talking about.
I merely pointed out that despite some people here suggesting that a new ideal dream distro should ditch Linux
kernel because the gpl brings licensing “baggage”, that
it didn’t stop a proprietary Company like Apple with working with gpl’d khmtl from KDE.
Linux is for everyone to use. Micosoft is free to use
it as long as they follow the wishes of the developers.
Just like anyone who wants to use MS software has to follow their wishes or the BSA busts down the door.
The idea that Microsoft with it onerous licensing restriction is less restrictive than gpl software is
I agree on the bandwidth concern front, but on the other hand, making sources inconvenient closes the flow of ‘free’ patches from the ‘community.’
Would your idea of a business model allow for public CVS/CVSWeb/cvsup servers for the savvy, or are you trying to suggest mimicking the closed development model more closely?
You’re also concerned about bandwidth costs for sources, but as far as I can tell, don’t seem to have a problem with free downloads of the OS, so 1. Don’t provide source ISOs, 2. ???. 3. Profit! Is 2. meant to be “Sell shrinkwrapped and support, with free downloads” as RedHat, or “Only offer shrinkwrapped/supported,” as Lindows?
Just curious; the Linux scene needs both styles of distro.
If you want all the stuff you said in there you need to buy a Mac
>If you want all the stuff you said in there you need to buy a Mac
Not really. Why limit yourself to only Apple products? What if you want to run it on a x86 commodity machine? Then, Adam’s ideas do have a “market”.
http://www.linuxfromscratch.org is a really good site which details how to build your own linux box from source code. The basic instructions end with a development capable system pingable on a network, and from there instructions are available which tell you how to add the features you want to the system. The associated discussion lists are top notch.
>linuxfromscratch.org is a really good site which details how to build your own linux box from source code.
You obviously did not read the article. What Adam describes is a system that is changed fundamentally, it requires REAL ENGINEERING. Not a simple customization that systems like the one you suggest offer.
It is very important to understand the difference between “packaging company” (95% of the Linux distros today) and an “operating system” company who do way more than just throw in applications in the CDs.
To drive innovation, you will have to throw legacy behind and move on. We see little innovation in the Linux land today. This HAS to change if Linux wants to go forward in its “desktop domination” plans that some people want it to go.
you write “throttled public FTP servers and also from some sort of contributor/buyer FTP servers”. if we are evolving then let’s do away with ftp. it seems so insecure. we need a well thought out and maintained, as secure as possible, mechanism for verifying the file and the identity of the server. what about using webdav ?
I think most of what he mentioned can be done, and probably wouldn’t take very long. Ideas such as the file structure etc need some polishing, and instead of including every single library, maybe it would be more prudent to make it really simple to download and install what you dont have when installing a new package. Maybe a central repository that can setup whatever libraries your missing?
I like the idea of an easy to install BSD as well. But BSD doesn’t have the momentum that Linux presently has. But then is that a bad thing?
Anyway, if anyone wants to do this/discuss this further. I’d love to contribute.
I think all you need to do is create a graphical installer for debian a package that creates the symlinks , and a package like harden that prevents the user from installing a 2nd desktop environment. and then a main package that requires those two. basically create a few debian packages install debian and type apt-get isntall DistroX and your system is done. And get some support for Debian/FreeBSD
Desktop users aren’t gonna want to explore the filesystem. It doesn’t matter what directories are named. Besides, you could just have a set of folders on the desktop with those names, without needing to have a system chock full of symlinks in the root directory. There could be an i18n layer on top of that, which is not possible with pure symlinks.
Mandrake, and presumably other distros, have such massive repositories of apps, i.e. Mandrake contrib, the selections can be browsed and installed with a couple of clicks. (Admittedly, it’d be nice to have Mandrake-contrib added automatically post-install).
If you’re only using that repository, then there are NO dependency issues if the maintainers are doing their job. So there is no need for a replacement urpmi.
Also note that Mandrake does have a system for switching default executables, but currently it is just used for things like gcc.
Sorry, I got turned off right at the start with all the crazy symlinking. Come on, what’s the point of linking /users to /home?? Right off the bat, you’re making a horrible mess of the filesystem. And that’s only my first complaint about this.
Now I remember why I do Linux from Scratch now.
I only have one word to say Organization. This is what Mac OS X and Windows have that Linux doesn’t.
I’ve been a happy mandrake user for a couple of years now. It just works. It doesnt’ support every piece of hardware, but that’s not linux’s fault. It’s the manufacturer’s fault.
The system is stable. I have to do very little via text-file editing any more. I have nearly all linux apps available via contrib, and if something isn’t packaged via rpm I just install it to /usr/local.
i’ve had maybe one or two applications crash, over a several month period, on MDK9.1 – gaim and mozilla, the ones I use the most.
The overall system organization is logical, if you know what the names mean. After a while, you don’t even think about it. So what they don’t make perfect sense? who pushes the START button to shut off the computer? Windows users know that that is just the way it is…and I know the same thing about why /usr isn’t where user directories are.
I’m happy. I’m more than happy, I’m content. My OS does all I need it to. It works. It is stable. It is secure. The abstraction is pretty good. And that makes me happy.
I personally think that it’s very funny that an article like this is even needed. I am currently running Windows + litestep + cygwin for one reason: it gives me the comfort and power of a unix/posix OS, and the UI CONSISTANCY that I’ve come to expect of a quality desktop OS, which is COMPLETELY ABSENT on my wonderful linux installs.
The biggest improvement that can possbily be made to unix/linux IMO, as a SINGLE UI standards document that EVERY distro complies with. Some standard shortcuts for common tasks (copy and paste, anyone?), a SINGLE copy clipboard for the entire OS (including the CLI environment) some attention to UI facts that have been known for ever, some SIMPLE pre-development paper usability prototypes, etc..
Here’s a secret to usability testing that linux/unix developers don’t seem to know.. you can find over 95% of your usability problems by testing with as few as 5 users. Usability testing doesn’t have to be difficult. Get a few friends to check out some paper prototypes. Then build a “functional” GUI prototype, get them to test that.. fix problems, wash, rinse, repeat… USABILITY FIRST.
Apple has been developing from usability standards since the early eighties. Microsoft has done the same since the mid eighties. Why is there STILL no widely adopted UI standard for UNIX based OS’s? THERE IS NO EXCUSE. This, more than anything else, is the barrier to mass adoption. Everybody has been concentrating on the installers. It’s EASIER and FASTER to install a modern linux system than it is to install Windows XP, but XP is still beating the crap out of linux in terms of popularity.
The answer is not “sue microsoft”… the answer is to BEAT microsoft on the usability front. We can beat them. You think they have resources? We have millions of developers world-wide. They’re winning because they’re more organized than we are. They’re winning because despite the fact that their OS kernel sucks, their OS is 100x more usable than linux. That is an indisputable fact, and anybody can conduct the usability tests to prove it. We could change all that if we were more organized.
The unix developer community is a scattered mess of individual egos doing their own dinky projects and not communicating with each other.
Want to change the filesystem? Why don’t we all help out the MHS project? (http://mhs.sourceforge.net/)
Seems like a good place to start.
Pretty well said Eric.
OK I think most things are right in this article. But one thing is, IMHO, not going to be achieved, ever.
The “dependency” problem.
I use gentoo now (and I know many others are doing the same), and used SuSE before. Both suffer the dependency problem; SuSE solves it by ignoring new packages until the next major version (like, there is STILL no gnome-2.2 available…), gentoo solves it with compiling, compiling, compiling. That’s not such a big problem, if you have a fast CPU…
anyway, even with gentoo there are some problems. There are *always* some actual, still maintained packages that needs the absolutly new version (maybe CVS 2.2.1 of lib XYZ.
And than there is this old program using this old version of lib XYZ (like, 1.3.3, not .h compliant with new version).
So, gentoo installs *both* of them.
And since GNU/Linux dev is proceeding faster and faster, this problems will increase. And they really can not be solved by simply bloat (!and that’s what the author is talking about here!) the DistroX with *all* available libs. Because that’s not simply all libs, but at least two (soon three) major release of each lib. I really don’t like that.
And the KDE vs. Gnome problem won’t solve by just dropping one. There are to many apps for the other one a user might like, and even if they work (see bloated libs above), they won’t look nice, will use different theme types, etc.pp.
What I like about gentoo is the possibility to choose.
What I would like to see is a distro that installs clean, unbloated and *working* for the default DAU.
I think, even if it’s sad, that those two things are not going to be achieved with a POSIX complient, free system so soon. But there might be two solutions; one for me (upper one), and one for DAUs (lower one) – and that is possible for about… 12 months or so.
I really hope SuSE could reestablish my good thinking about them by making something as stable as version 7.0… :/
Anyway, I hope I can afford a PowerBook soon…
The MHS project is a really good initiative. I hope at least “one” of the Linux distros converts to it. Are you reading Mandrake??? Lindows? Xandros? Lycoris?
100% ACK. damn right.
But, in fact, I gave up.
I started programming for the Windows environment about 1993, using Borland Turbo Pascal for Windows V.1.5 – and guess what… there was a BOOK (*one* additional book!) in the package explaining how a UI should be designed following the microsoft guidelines.
That’s 10 years ago. The unix world is still a mess. I mean, most “main” programs are OK now, there is OO (which is simply a UI copy of MSO, IMO, and has really *NO* own creativity in making things better), Mozilla is really usable, and some more programs which are OK.
But on the other hand, there are still GUIs featuring things like major buttons in the upper right corner, first needed informations in the second tab screen (like, in my #1 favorite for bad GUI (sorry, but IMHO…) xcdroast) which has to be *opened* before anything else will work, and stuff like that.
I mean, OK, M$ spends millions of dollars hiring peoble that do nothing else than UI design. But why can’t we do this?
That’s why I stick to PalmOS development… *sigh*
I’m been thinking about this issue for a while, and it seems a lot of people around the internet have been having similar ideas over the past few years as I’ve been looking around on the issue.
Looking at my first impressions of using UNIX for some development as I slowly migrate away from Windows, and I have come to one conclusion on the current state of the UNIX style filesystem (and to some extend current hierarchical directory structures) are beginning to get extremely outdated.
I’ve been pondering for months and coming up with some ideas on how I think Linux, or a BSD variant of your choice, could evolve into a far more powerful and readible system.
They way I see that the UNIX filesystem should develop is to first leave the hierarchical directory structure and use a more Database orientated approach to the naming of files using tagged meta-data. Even windows is going this way, and in all honesty I consider this definitely the way forward.
For one this would make searching a large FS a heck of a lot faster.
This is only a few abstract ideas, as I can see instead of initially having directories off the ‘root’, you would instead have resources such as ‘Hardware’, ‘Libraries’, and ‘Applications’ or anything else that could be custom defined within the schema.
Say in the ‘Hardware’ resource, this would develop more like the devfs system in Linux, but since any style of meta-data could be used since this FS is a database for all intents and purposes it could define all the installed hardware.
For ‘Libraries’ this could simply be a table listing all the installed libraries on the system, indexed by name, and version – this gets rid of any possibility of something like DL-Hell. You could have more than one effective namespace for this too, having a complete one for the system editable by ‘root’, another for each specific user, and one more that could be attached to an installed application.
(This could allow the easy drag-and-drop installs, although I’ve not tried giving Mac OS X a whirl, that would require me owning a Mac.)
The installed ‘Applications’ on the system as well could be stored in a table the same way, for the system, and individual users and could UNIX style commands for running at the equivalent of a terminal window. Along with this other data could be stored, including Configuration within the filesystem itself as attached meta-data or something more complicated defined by how this Filesystem schema could be developed.
Even your own documents could be handled like this, as you could tag the document with any kind of meta-data you could think of it would let you organise your files they way you wanted. Or this could allow a more Task Orientated design to how users look at files.
Making this extensible would be the only way I could see something like this actually working, allowing some sort of plug in module system for say handling a new ‘WebRoot’ resource, or something similar.
It may sound a bit like rambling, I’m just dumping ideas to the keyboard. Feel free to poke holes, I don’t mind the criticism.
how’s this – OS X on PC – no overpriced sub par hardware just a disk with the OS on it and thats it.
I’m sorry, but there have been too many of these types of articles; by definition, they are written by people who have no deep understanding of the stuff, the others are too busy.
What a bunch of baloney, shame on you! I have to say this, otherwise the non-experts would think that there is content to your thoughts. I’ve been using SuSE for 5 years now, and not a day passes when I don’t learn something new and interesting. Your glib remarks show that you don’t have any idea of what it takes to produce anything really deep and well-done.
While you’re at it, why don’t you write articles on
“If I owned a University”
“If I owned the NYC ballet”
“If I owned NASA”
I wouldn’t be so hard on you if you weren’t hurting Linux and open-source with your comments.
A linux distribution that doesn’t use linux… er.. riiight.
A graphical applicationinstaller: use mandrake’s graphcal install software program.
Don’t like the filesystem, don’t use it. users aren’t supposed to mess around in /dev or /proc sheeeesshh!!
Although your article is well written, it seems to me to be missing an essential point: If I was a basic user, why do I want to look at the file system? I want to be able to open my documents, read email and browse the web, not look around “under the hood”.
The underlying filesystem is irrelevant to a basic user. Sure, /dev or /proc don’t mean anything to most users, but why should they care? As long as the basic tasks that most users need to complete can be done easily from the DE, what does it matter?
Your comment is the one that is embarrasing.
>I wouldn’t be so hard on you if you weren’t hurting Linux and open-source with your comments.
Now, that is laughable.
I used Linux since 1 year and a half but not as my main OS.
I installed Mandrake 8.1,Red Hat 7.2,7.3 and today installed Mandrake 9.1 but I’m still not impressed:
Mozilla crashing after 10min of use,still no recognition of either my printer nor my scanner not to say my webcam.
My machine is a normal one,not so bad, P3 1Ghz with 384 MB RAM.
Linux is still slower than Windows XP Pro but that doesn’t mean that I like Windows.It is the best OS for desktop use.
I haven’t tried Mac OS X but it seems rock solid because of it’s Unix base.
I disagree with much of what you have said – in the sense that it’s either present (eg Mandrake has very good software installation [although you have to set up urpmi first]), or the filesystem – which is actually quite logical when you think about it.
But I think that the idea of having menu items for “DVD support cannot be distributed for legal reasons; click here to download” is an excellent one. This, I would like to see…
I also think that, while comapnies must make a living, if one *had* to choose, I’d rather see Linux go the Debian route than the semi-proprietary route. Although I hope we won’t have to make a choice.
50% of what you describe would be simple to do, hack it together, throw it against the wall, and see if it sticks.
this sounds like a great idea to me.. it really doesn’t matter about symlinks and stuff – just the concept he has here is what I’ve been saying about Linux for years. You could really help the Linux community with this.
Just because I really like this idea, I’ll provide webspace (on a fast server), forums, basic orginazation, etc. I’ll even help develop/test/do whatever – but we need developers and other staff. If you’re interested, email me at firstname.lastname@example.org
This article has some 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.
I like this article and I agree that FreeBSD is more stable and trustworthy than Linux.
The reason that Linux rulez the desktop is that it has drivers for 10x as many devices.
If you want to bring FreeBSD to the desktop, come up with a simple process for porting Linux drivers to FreeBSD, or better yet, a method for using Linux drivers under FreeBSD without any modification.
Funny people actually bring up the POSIX issue plus various other trival issues. The author has clearly stated that the goal would be similar to Gentoo or even Debian — that being packages built specificly for that distribution. It might require some additional care, but the POSIX issue really is a none issue if all package’s are provide by a sole vendor.
i think the dependency problem could be sorted by using gentoo instal method this is excellent.
and about the file system layout, well you can symlinks maybe to point to binaries to original place like he mentioned ?
one other major thing is kernel compiles, ok its not hard, but although make menuconfig is noce, i think it should be made more logically, i mean not everyone knows what scheduling is or maybe what certain fesature is called etc… all this should be made in plain easy idiot proof english etc…
just my toughts…
You should have read what I wrote and deleted… I thought what I posted was the palatable version.
Never said MacOS X wasn’t Unix. Where did you get that from?
I am not now, nor have I ever been ‘leet’. I like evolution just fine. Unix isn’t the same as it was 10 or 20 years ago. Though being a Unix-head does suit me just fine.
I don’t mind things that are new. I think there are lots of neat operating system projects out there, like Zeta, FreeVMS, SkyOS, to name a few. They aren’t just adulterated Unices, and they don’t pretend to be.
Unix is the philosophy, yes. We have seen POSIX implemented by OSs that didn’t have this spirit (like WinNT). The filesystem? So far, yeah, it is. It may not be the best choice, but if the only real objection is you can understand it the first time you encounter it, I don’t see a good reason to change it. The kernel architecture? Well, yeah, the system call interface, though obviously underneath you are free to do whatever you need to.
But let’s just get straight to the reason I said what I did (which was: don’t call it Linux/Unix if it isn’t). I don’t want to show up for work one day having to use DistroX, or find that half of the packages that used to compile just fine on a dozen platforms now don’t because of some kooky changes they made to pander to something made for people who could use any old kernel to make this monstrosity, and don’t appreciate what it is they are trying to change.
I do kind of like starting a post with “You are wrong.” That’s pretty cheeky …
>> If you want to make a distribution that is nothing like Unix, please do us a favor and call it “Nothing Like Unix”. ..There is a Unix spirit
>You are wrong. What is Unix anyway?? The philosophy, the >filesystem or the libraries? Or the kernel architecture?
>MacOSX is neither of what you want Unix to be, but it still >IS a Unix. You like it or not.
>It is because of people like you that Unix is still today >as arcane as it was 10 and 20 years ago. Because you don’t >like evolution. It makes you shiver. You dread in the >possibility you will lose the l33t position you got among >your friends and co-workers of being the “unix head”.
>Things will need to evolve people. And that includes Unix. >MacOSX is one step, Adam’s effort could be another one. >Heck, even Linux itself is an evolution over unix, but it >is elitists like you who can’t grasp the idea of “new”.
Please. While, yes, graphical installers/conf tools are necessary, I don’t see how your model could improve anything. If I were to fire up my gentoofm and see a listing of /Apps, /System, /ThisIsWhereThoseNiceConfigurationFilesGo, I would vomit and find myself some ArcaneUnixBasedOS v. 0.0.3 to make myself feel 31337 over. I like Linux, and I want to keep using it, and I very much wish it had the graphical glitz of BeOS. This “distro” is basically a somehow even more brain-damaged version of (Lindoze | Linblows | Lindow$). I like my Linux on the desktop, not least because it runs on a Celeron 433, and I want it to be everything for everybody. This strand of “make Linux better for the desktop by making it worse for the poweruser” is troubling to me.
(This is slightly OT, but I think the problem with Linux on the desktop is the lack of a good DE. I like IceWM, and Gnome, and KDE. However, these have problems. The mistake Linux DEvelopers seem to make is emulating Windows, rather than OSX. The latter is an example of an advanced, well-integrated environment, and while I would hate to see an exact copy, I’d love something that has as much of a feel of “I can have as many useless doodads and bells and whistles as I want”. I’m sure that with the 2.6 kernel, this thing could run without embarassing latency. KDE is making progress this way, but it is way too Wind-y. Of course, more power to those that want an XP-like, or Workbench-like, or Photon-like DE. Linux == choice.)
There is absolutely no reason to make such a change to the FHS–come on, I’ve only been using a non-Windows OS (Debian) for 6 months, and I wouldn’t think of changing the file system. What would be nice, is if your standard file manager (Nautilus, say), would take a tip from MS and special-case the FHS directories, so explanatory tooltips would pop up. Advanced users can switch to another file manager (Nautilus/Konq are bloated, IMHO).
It is possible to make Linux better for the newbie home user WITHOUT destroying its 1337ness. Many of these changes only need to be made within a desktop environment, or file manager, or whatever. I sort of fail to grasp the reason for the lack of a “install-this-package-in-user’s-home-dir” option anywhere–it could be disabled for better security. And the rpm and deb packaging systems lend themselves WONDERFULLY to “Add/Remove Programs” schemes!
In short: I like my Linux. I like my BeOS. I like evolution, I like tradition. But please, don’t kill the tradition only to degenerate it.