|
Home News Distribution Developers Bookmarks |
The only influence a good distribution can do is hasten this by accelerating
Linux growth. It will not create application software out of thin
air, nor drivers, nor translations.
I) Forget about Unix tradition: Linux is NOT Unix.a) Two different ways of life: Unix and Linux.Unix was used in Universities and medium or big sized companies who were big enough to buy the expensive Unix computers. It was not used for mundane tasks because it was not cost effective against Macs or Wintel machines. The tasks reserved to Unix required highly trained and educated people. These people had had teachers to give them an introduction to Unix and they had had a system administrator to care for the box during their training. Unix could afford a difficult user interface because it was handled to"elite" people who had learned it in a comfortable environment. But Unix remained a niche system, and if Linux follows its steps it will go to the same place than Unix. To obscurity.Linux is not expensive. Sure it can do about everything proprietary
Unixes can do but the fact it is not expensive allows it to go where Unix
never went: in homes, in small companies and on the desktop of average
personnel. The needs, constraints and training in these contexts
are vastly different.
b) Linux at homeIf you are at home that means you will be confronted to system administration from minute one. Configure your box first and learn later how to copy a file. In addition you won't have the luxury ofsomeone teaching you lesson one, then lesson two. Problem solving will force you to tackle everything at the same time. The task is quite simply daunting. Of course, you should have a book, but a book is not a teacher: you cannot ask for a better explanation of something you don't understand. Compound this with the fact that most distributions and books treat Linux as just another Unix and pay little attention to home user problems like software adequate for dial-up IP and discontinuous access to the net. This is bad enough if you are a hacker, but to spread Linux everywhere
means that we have consider people like Mac users. Most Mac users
are not interested in computers and don't need to become power users
for their job. Most of them bought a Mac because they wanted to be
productive from day one without spending weeks in training. Obviously
the Unix shell is not the tool for attracting people like them to Linux
and that means we have to provide an alternative.
c) Linux in small companies Linux could take small companies by storm in the server role: here the guy taking the decisions is under direct supervision of the boss and the money he spends is boss's money so there is a higher pressure to keep costs down than in the bureaucratic big companies. But there are three features in a small company we have to keep in mind.
d) Linux in the desktopJust because Unix never made significant inroads in the dektop doesnot mean Linux has to be restricted to a server and programmer's workstation role. A secretary could write memos in a cheap Wintel machine instead of an expensive Unix workstation so she was handled aWintel. But this no longer holds against Linux. Linux is cheaper than Windows, can be administered from a distance, is not subject to virus attacks and doesn't crash five times a day. The choice is clear. But we have to include a good GUI and get rid of the "real men useTeX" mindset. TeX is great in the hands of certain people and for certain documents. Here what is needed is X-based Wysywyg word processors, speadsheets and presentation software. When we cannot find a good free tool we should ensure that the user knows about commercial ones. e) Separating Linux from Unix.Linux can go where no Unix has gone before, but not by blindly following Unix tradition. Unix has not been designed for the mass market. Before someone burns me for heresy let's remind that this in fact the real Unix spirit. Ken Thompson never told Unix had to be user hostile. In fact he separated the shell from the kernel in order to allow different users getting different user interfaces. Linux must keep the classic Unix interface for powerusers, but there is no reason other people cannot get a different one.II) Design guidelines.a) Mindset.If a feature is useful for 10% of cases but makes no difference for the remainder then add it. If a feature helps 90% of users and annoys the remaining 10% then add it (providing the importanceof benefits and losses are comparable). If a feature would annoy a hacker and help a beginner then add it: the hacker can find easily how to remove it. You have to forget about yourself and your tastes: you must be able to think like someone who knows nothing, is not a hacker and is learning Linux without assistance. b) A superb installation is... relatively unimportantThe best installation we could do is quite simply get PC manufacturers do the job. They will do it if Linux market share reaches critical mass. But if the user only gets unfriendly programs, software who was not designed for the job or cryptic docs then even that ideal install will have achieved nothing.The RedHat's 5.2 that we use as base has an install who is not so bad: it detects hardware, can handle partitionning without user intervention and package selection is pretty easy. Its two main drawbacks are scarcity of online help and the fact it acts as if PPP didn't exist the latter meaning that after install the PPP user has to configure his networking without the same kind of handholding the LAN user gets during install. But for a home user no PPP means no access to help. nother point of improvement would be to boot directly into XDM if X is configured (we can allow ourselves to do this now that LILO tells the user how to reboot no X in case of problems). c) Docs: the "Now what?" syndromAfter install many users find themselves completely at lost. Read thenewsgroups and you will see postings like "I typed X and only got a grey screen". In addition there is a risk many of the nice programs we include never being used due to advice got in books or newgroups like "Use VI, elm, tin". To avoid our efforts being wasted it is important to have a small guide pointing the user to the right tools and detailing how to get out of some common pitfalls.Of primary importance is to making the doc attractive, readable and easy to find the info. If you look at a HOWTO collection you will find that this a reference rather than pedagogical work, in addition there is no hiercrchy: important docs and obscure ones, docs for advanced users and for beginners are all at the same level and that makes hard to find where is what you are looking for. I have seen people using Windows or NT because they didn't knew about a Linux program: we will have to ship one of the databases of Linux software like the LSM. Woven Goods could be a good choice: it includes all the LDP documents, an LSM, plenty of info about Linux software all in very nice HTML. Caldera used to include it but no more. I don't know why. Perhaps it is due to its size and the fact it has not been translated AFAIK. Speaking of translations, Linux could afford to have docs available
only in English as long as its users were computer nerds but normal people
are not good at foreign languages. Man pages and most HOWTOs have
been translated but only few programs have been internationalized and
e) Learning from Microsoft."Learn from your enemy and you will ever be victorious" Sun Tzu"Microsoft makes crappy operating systems but they make good user
Look at the last versions of DOS before Windows 95. They made
a file manager (Dosshell) to be the default and forced experienced users
to edit the AUTOEXEC.BAT. In Linux we make the power user get his
favorite interface out of the box and the defenceless new user is supposed
to discover about "mc" and then the way to make it his default shell.
This illustrates what is wrong in Linux designer's thinking: design for
Linux the same way than for Universitry Unix. It would be a
good idea to provide an option at user creation "advanced user" or "beginner"
with the later being dropped into mc instead of the shell. Of course
in most cases this would be a moot point because we hope to make XDM the
default root level but it is still worthwile to
In Microsoft products like Windows 95 and MS Word the user gets a tip
each time he starts it. This ensures the user learns the main tricks
and ways to get out of problems. In fact Micrfosoft's software frequent
crashes are not due to bugs. This is a feature intoduced to ensure
the user reads many messages and learns fast. :-) This a trick (also used
in GIMP) we should take advantage of: display a tip each time the user
logs in.
f) What is wrong with RTFMThere was a time the Matrox Mystique was the most popular card. Too bad it wasn't supported by XFree and for months after it was supported there were people with old versions asking why it didn't work. Of course they were mercilessly flamed. Nobody pointed that the X configurator could have told flatly "This card is unsupported". Nobody pointed that the X configurator could have told: "This version is 11 months old, you should look for an upgrade"."RTFM in case of problem" is the answer you give to a user who knows were is the doc, is able to find its way through it, has only one problem to solve (like when you try to add a service to a working box) instead of half a dozen (like when you have just finished installation) and isn't forced to look at the book to know how to display a file. If the user doesn't fill these requisites then the program should point at what is wrong. It is atonishing how often this simple principle "Put the info under the user's nose" is forgotten in Linux world. When there is a FAQ in newsgroups that doesn't mean users are lazy, that means _we_ did something wrong. g) Networking: the road to help Commercial Unix users have hotlines, university users can ask to friends or teachers but Linux needs to spread at home and the Net is very often the only way to get help for a home user. That means that we should introduce PPP configuration in installation. We also need a good curses-based PPP configurator in case the user does not configure at install time. KDE has a very good configurator but we can't rely on it: What happens if the user needs help about X? In many countries phone time is billed at extorsionist rates therefore
we should optimize for the connection being as short as possible.
Mail and news clients should allow offline reading. Some
About small mail and news servers there is the problem they don't have Linuxconf modules like sendmail. For mail IBM's "postfix" could be a good compromise because it is able to use either sendmail configuration files or a native (and simpler) mode, but we have to carefully check its copyright A proxy server can allow substantially faster (and thus cheaper) web
surfing, however IMHO the batch retrieving allowed by wwwoffle is more
important for small organizations and home users than the proxy interconnection
allowed by Squid (the proxy shipped by RedHat). Again
Another interesting proxy is "junkbuster" who removes the ads from web pages. If we ship two proxies we have to design a clean and transparent mechanism for chaining them Finally UUCP is sorely neglected in Linux distributions. It is dead in America but its speed and low requirements makes it still useful in Europe, ex-communist countries and Third World. h) Replace cronWe can no longer live with the absurd paradigma that the user will keep his box powered on 24 hours a day. The replacement for cron should accept regular crontabs for compatibility, be self-tuning (use cron mechanisms if the machine is powered on when the task is programmed and alternative mechanisms if a task was not run at programmed time) and unobstrusive (try to run tasks when load is low) AFAIK "anacron" falls short on the unobstrusive part.i) Get a better booter than LILOLILO is a hacker's booter. You have to perform a special operation when installing a new kernel, don't get menus at boot time, support for national keyboards is tricky and you can do nothing until you reboot.Other booters should be investigated. The one I most like is the booter you got in the now defunct Linux Universe. You got menus, could add a kernel at boot time, explore the filesystem in case you didn't rembered where it was, change booter parms at boot time and change keyboard on the fly. It seems there will not be copyright probems but there are parts who need a Microsoft or Borland assembler unless someone translates them into gas syntax. j) Pushing aside the "mother of all Unix haters".Every time I find a Unix hater I ask him why. So far none has told me about the shell or the cryptic commands as the main reason. ALL of them pointed to VI as the culprit. (Emacs does not seem to cause this kind of allergia :-)."VI is the editor you will find in all Unixes". Well, in most jobs you could download another editor even in the case you are using another Unix, and in addition we hope Linux will crush other Unixes so to hell with their editor. VI has made Unix lose many users, don't let the same happen to Linux. We don't plan removing VI, but:
k) The user should not have to recompile the kernel.It is our duty to ship kernels complete and good enough for the user never needing to recompile them except for sport and very experimental features. In 2.0 the performance increase you get by recompiling the kernel (if the distribution editor did a half decent work) is nearly nil, despite whatvulgata could say. See my analysis in the Independence-features RPM. About the only case you need to do it is if you are using a multiprocessor box. This could change in 2.2 specially when using better compilers than gcc 2.7 so perhaps we will be forced to ship several kernels and have the installation choose one according to processor type and chipset. l) X should be the default mode.Nowadays the memory and CPU frugality of curses-based applications is not important. People used to windows will dislike this kind of apps and in addition they find themselves clueless in front of the command line. We should make XDM the default boot mode (with LILOtelling how to boot non X). m) Consistent GUIs Traditional X has had nearly every application having its own look and feel. This is disconcerting for the user. Fortunately Linux now has complete GUIs were every application shares the same look and feel and in addition have richer intercommunication protocols than when using different toolkits. We should keep neutrality in KDE-Gnome rivality, ie ship both. m) Selecting application programs Programs must be user-friendly (of course) and good looking (to an unexperinced
user ugly programs cause an instinctive feeling of being buggy and feature
poor). If they need having resources set to make
n) GamesSVGAlib games must run setuid root so evreryone is a security risk. In addition a number of cards are not supported in SVGAlib. We should avoid them. We can make exceptions in rare occasions because unfortunately X is not adequate for action games (not without GLX who is not supported in XFree).Networked games can be played in America and in Universities but in Europe phone is too expensive and this restricts their use to people having several computers in the same home. o) Delivering ready to use applicationsWe must try to get installations requiring as little user intervention as possible. X apps must get their way into menus, resource files provide good looks out of the box, parms who can be deduced automatically mustfind their way in config files (think in a networking client who needs the machine hostname) and so on. Whenever possible we should avoid automatic edition because it is relatively dangerous specially in case the user has manually edited the file. Instead we hould use file inclusion or directory scanning (look at /etc/profile.d for examples) if at all possible. p) Plug and play cardsUsing the isapnp tools is very difficult, this makes using most sound cards a daunting ordeal. The Turbo Linux distribution has a GPLed tool whose main drawback is being curses based. There is alsoa Gnome front end to isapnp but for one part it is unfinished work and in addition this lets KDE or classic X ers out. q ) SambaHaving Linux sharing disk space with Windows boxes is not uncommon be it in the server or client role. Linuxconf allows to configure Samba so unless there is a significantly easier configurator I think we could let the things the way they are. What is needed is a tool for on the fly mounting of Windows shares from Linux. There is a tool called TkSmb but last time I checked it had a very primitive setup. Of course we could modify it.r) PrintingWe ship ghostscript 5.10 and we should introduce in the printer configuration database the additional printers respective to the ghostscript 4 shipped in plain RedHat.s) LinuxconfHaving a central program like Linuxconf for configuring everything is a great plus, but the drawback is ittends to freeze situations. The most popular or traditional programs have Linuxconf modules and that makes more difficult to newer and easier programs gaining the upper hand. Sendmail for instance is difficult to configure even with Linuxconf but the user would tend to try his luck with Sendmail even when not requiring as powerful MTA. Therefore it would be great if we were able to provide Linuxconf modules when shipping alternatives to classic servers.
|