Post a Comment
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).
-Erwos
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.
Abstraction
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).
Standardisation
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.
Software Installation
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?
-Erwos
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.
http://simplygnustep.sourceforge.net/
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:
http://www.osnews.com/comment.php?news_id=2674&limit=no
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".
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.
-Nathan
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
Yup, exactly.
Butters said
"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.
Quag7 said:
"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
laughable.
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.




