What's Wrong with Unix? 1318
aaron240 asks: "When Google published the GLAT (Google Labs Aptitude Test) the Unix question was intriguing. They asked an open-ended question about what is wrong with Unix and how you might fix it. Rob Pike touched on the question in his Slashdot interview from October. What insightful answers did the rest of Slashdot give when they applied to work at Google? To repeat the actual question, 'What's broken with Unix? How would you fix it?'"
Several frustrating points (Score:5, Insightful)
In my opinion, here are some headaches that have plagued a wary UNIX engineer or two:
IEEE and Posix, X/Open, etc. provide a basis for standardizing UNIX interfaces, but adherence tends to be spotty
Difficult to implement a microkernel architecture
XPG3 aside, a de facto "common API" has never really been acheived
In many cases, code scrutiny is difficult or impossible
Progress and innovation tends to occur within the context of aquisitions (i.e. UnixWare)
The COFF symbolic system is terrible (OK, I know it's a deprecated, but still...)
PIT initialization (time management)
Kernel tuning (anyone fiddled with the /etc/conf/cf.d subdir on OS5?)
These are just a few things, in my experience. That said, UNIX has had some great days.
OS X (Score:5, Insightful)
Problems that remain are being able to create one seamless environment with shared memory and such, but the rest of the *NIX world is still having those problems as well.
You can argue about the specifics and details of many things, but in terms of a UNIX workstation, OS X pretty much has it all for our needs.
Program Installation Locations (Score:5, Insightful)
EVERYTHING right now goes in
Right now, if I want to uninstall a program, I have to remove it from about 10 different places, many of which aren't obvious (/etc,
Find a way (maybe symlinks
In a word... (Score:3, Insightful)
Printing - more specifically, Postscript Printing.
This sillyness of having to generate postscript so Ghostscript can generate PCL so you can print is just wrong - empty brained, someone forgot to wake up wrong.
PCL is available on every major printer on the market today - it IS the standard. PostScript is a has-been. Dump it today.
That is what is wrong with *nix and what I would do to fix it is require all software to support PCL printing directly.
Does it reliably enable true modern computing? (Score:5, Insightful)
While I agree that the core OS has not moved much in decades, I also see very little motivation for this as much of the required functionality has moved up the stack to the application layer.
cynical view (Score:5, Insightful)
Unix is great!, unless:
- You just want a plug and pray answer
- You just want a word processor
- You just want
If someone is only looking for a single application, it is hard to shove such a versitile system down their throat.
Solution:
Create a truely modular UNIX/OS that does not depend on any single environment(init/SYSV). Make a pluggable API-level interface that you can plug anything from a single application to a complete system environment into. Then get someone to develop EXACTLY what you want.
Idiotware without the bloat.
Laughing all the way,
-- Kei
Has to be said (Score:3, Insightful)
Easy! (Score:5, Insightful)
Sure, man pages exist, but even once you learn that man does what help really should the man pages are generally written by programmers for programmers.
Newbie guides generally don't get any further than a small command summary, which doesn't really show any strengths of unix over using a gui [or windows!]
The best thing I think would be to provide more "whole system" examples/help rather than help for each individual command. Take some nice simple topics [how to add many users, how to determine network utilization programatically, how to determine open ports and what process is using them...] which are painful to do on windows and use a variety of unix tools to solve them.
Re:Several frustrating points (Score:5, Insightful)
The C language (Score:5, Insightful)
User Friendly (Score:2, Insightful)
Re:In a word... (Score:2, Insightful)
Postscript is an intelligent way to abstract non-Postscript printing. Postscript is well documented, and is in itself a useful print language.
Otherwise we'd be back in MS-DOS. Do you remember when each application had its own audio, video, and print drivers?
ahz
8-bit UI unusable in a 32-bit world (Score:3, Insightful)
As a result, we've got upper- and lower-case flags doing completely different operations (-r and -R for "remove" and "restore," for example), we've got case-sentitive filenames which just make it so easy to tell the difference between "Index," "iNdex," "inDex," "indEx" and "indeX."
UNIX was designed when plain text was king and the only nudies you ever saw were ASCII art.
As a result, there's no way from looking at the filename to tell what program the file should be processed with.
UNIX was designed under the guidelines of "do one thing well, do it quickly and get out of memory."
Those design decisions permeate UNIX and the *NIX community even today. When I read the newsgroups, I still see tips on how to do things that involve piping a file through 17 filters to do something that can be done on Windows with four mouse clicks.
So how would I fix these problems?
1) Make filenames and command flags case-insensitive. The few cycles you spend doing case comparisons will quickly pale in comparison to the time savings you experience in tech support situations where a touch typist accidentally hits space too soon and types "emacS."
2) Several files that do not have extensions usually have some information about their default parser in line #1. Either parse it, or start using file extensions in *NIX.
3) Start making UI's that only initially expose the 20% of the UI that 80% of people will use. There's no reason for a CD-burning package to have a checkbox on the main screen about verifying post-gap length for 99% of the people in the world.
Anyway, that's my opinion.
In no specific order: (Score:5, Insightful)
-ancient directory organization which doesn't take modern computer usage into account (more powerfull single workstations)
-bad historically grown naming ("home", "usr", "var", etc.) and incosequent File System Herarchy Standard
-crappy vendor support
-unix printing still sucks big time (see 'vendor support')
-grafics system and font handling
-inconsistent standards of configration
-histrically grown elitist utility naming (large anoyance)
That's all I can come up with right now. Note that some of these are dealt with by certain unix variants. Printing and pretty much everything else is a breeze on OS X for instance. Configuraion and installation with Debian Linux is very smooth and goes great length to keep those countless OSS utilities manageable. And Solaris 10 seems to have the one or other card up its sleve to deal with security risks that result in the allmighty root.
Coming to think of it: Can't we just have an OS with OS X ease of use, Debians installation system, Solaris 10 low-level features and Windows Vendor support? We'd all be set and 100% satisfied.
Non Free. (Score:3, Insightful)
Re:Program Installation Locations (Score:4, Insightful)
Deleting the install directory doesn't do jack.
That's why windows has uninstallers.
How long did you say you used windows? Seems like you ought to know this by now.
Re:OS X (Score:2, Insightful)
Fix it from the bottom up (Score:3, Insightful)
For example:
Re:Program Installation Locations (Score:4, Insightful)
or...
On my Fedora box I have rpms made for Red Hat, rpms made not for Red Hat (go figure), source installs with configuration scripts, source installs with instructions, source installs with nothing whatsoever, programs with install scripts that install to the directory tree how they see fit, programs with install scripts that install nowhere (./), and python sources that just sit there coming straight out of a tar. Meanwhile I have nethack sitting around in
No! (Score:3, Insightful)
"1) Make filenames and command flags case-insensitive. The few cycles you spend doing case comparisons will quickly pale in comparison to the time savings you experience in tech support situations where a touch typist accidentally hits space too soon and types "emacS.""
That problem is so much easier to fix than changing 20+ years of UNIX design.
UNIX is case sensitive for a reason. Do you think you can just go through all the source files, replace strcmp with strncasecmp, and have a system that works the way you want? No, you'd have to work things on multiple levels, regression test countless applications, etc. You could, for example, make internal shell commands case insensitive, but that's not the same thing.
Plus, by making the switches all case insensitive, you've suddenly halved the number of possible arguments for any program unless they use the GNU extension. POSIX args are 1 character only!
PS: "2) Several files that do not have extensions usually have some information about their default parser in line #1. Either parse it, or start using file extensions in *NIX."
This is done already. As long as the file is marked executable, the shell will properly lauch the parser. You can even add BINARY formats to the kernel. Check out this way to make all MONO programs run automagically:
if [ ! -e
mount -t binfmt_misc none
fi
if [ -e
echo ':CLR:M::MZ::/usr/local/bin/mono:' >
else
echo "No binfmt_misc support"
exit 1
fi
Honestly, most people who come up with "problems" in UNIX either fail to understand the reasons for certain design ideas, or aren't aware of pre-existing solutions to their problems. The init scripts and system startup sequence (in general) in UNIX is a much bigger problem, and one of the Gnome guys is making a great replacement for it.
Re:cynical view (Score:3, Insightful)
I've never met a computer that was really "plug and play". They always seem to have issues, at least for me. About the only thing that worked right away was my microwave. Even new cars don't seem to work perfectly from the start. We all might want something that you plug it in and it works, but the popularity of cheap digital cameras that are notoriously unreliable seems to prove that ease of use and reliability is not a consumer's primary criteria for a purchase.
Re:Several frustrating points (Score:4, Insightful)
No decent scripting language? In Unix?
In UNIX, sure. Show me the default scripting language in UNIX v6. Bourne Shell is the closest thing you get.
Yes. It literally means "etcetera". It is intended to hold all the junk that didn't fit anywhere else. It was a sloppy solution; instead of finding a place for all those scripts, binaries and conifguration files they all get dumped in
Oh and you're the only one talking about the Window registry.
How is message passing IPC better than sockets or shared memory or named pipes?
1) The sending and recieving process don't need to know about each other before hand 2) You can easily broadcast events to all listeners 3) Much easier to send arbitary data 4) Much easier to manage; no need to mess with sockets APIs 5) Much safer; no need to share memory between process.
ACLs are coming, but I believe that POSIX permissions make privilege management very simple, very straightforward, and very effective. ACLs may provide finer-grained permissions, but nothing that cannot be done via groups and permissions.
You can believe what you like about POSIX permisions but those of us who have to deal with big systems know that they suck. They suck big, coarse grained, poorly thought out rocks through straws. The are very simple, very straighforward, but that makes them useless for proper security because they're too simple. If you think that ACL's have no advantage over POSIX permisions you're wrong a second time on this.
The SUID is still a horrible solution, and come to that so is the "All or nothing" attitude of the All Mighty UID 0. ACL's solve all of that.
Lots :-) (Score:3, Insightful)
Re:Program Installation Locations (Score:5, Insightful)
I can't work out if you're trolling or just genuinely ignorant. Under Windows, everything goes in your selected installation directory... except for the bits that don't. Some have to go in the system directories and there are usually registry entries made. In contrast, if you tell a Unix application to install in a given directory, it generally does, and doesn't pollute the file heirarchy outside of your chosen location. If you're installing it from an RPM or dpkg, then it usually does the same, but it's effectively using a shared install directory between multiple apps. But why do you care where it puts the files? Use the package manager to tell you which files came with which package, and to remove the package if you're done with it.
Re:Program Installation Locations (Score:2, Insightful)
This is, of course, is false. When you install a program, shared system libraries go into the \windows or \winnt directory. Program related files and executables go into \Program Files. Settings specific to a particular user go into \Documents and Settings\<user>\Application Data.
Not to mention the registry, but not going there today.
I totally agree, it would be nice to have everything located in a simple manner, shared libraries go into a shared directory, everything else goes into /usr/bin/<program name>/
A link is created in wherever, and that's it.
Re:Here's a start: (Score:5, Insightful)
I think most of us on the Unix Haters list were Lisp machine or VMS hackers who were pretty upset that a piece of utter crap was winning the O/S standards wars at the time.
The forward by Dennis is actually an anti-forward, more of a backward. At the time he was working on Plan-9 which takes all the best ideas from UNIX and junks them, leaving only the unrefined crud that is best ignored.
The book is somewhat uneven in its criticisms, I don't think that the gripes abous X-Windows hit the mark as well as when they are explaining the file systems lossage.
Ultimately the problem with Unix is that it is built the way that cars used to be built before Henry Ford, its a computer O/S for folk who like to spend their time tinkering with their system and like endless opportunities for low grade intellectual stimulation because thats an end in itself for them.
Unix still has the same major architectural deficiencies. The inter process communication is not up to much, the concurrency model is weak, the user interface is eratic and there is no consistency. Documentation is a complete joke.
Re:Several frustrating points (Score:4, Insightful)
Re:libs (Score:2, Insightful)
The same goes for improving algorithms
Re:Several frustrating points (Score:5, Insightful)
A good set of standards. (Score:4, Insightful)
Linux isn't friendly for:
* Installing apps
* Guiding the Joe user to a friendly painless installation of the OS itself
* customizing
* configuring
in other words... everything.
As many linux fans that there are here, the only *great* thing that Linux has, is its security and stability. Everything else is more or less, a mess. The apps, they're great! But only AFTER you manage to intall and configure them.
And on the other side, we have a wonderful MS Windows in which everything (BUT security and stability) is great, but security and stability is a mess. I admit it, Linux infrastructure is very well thought... but the rest? The problem is that Linux (or unix for that matter) was made "by nerds, for nerds". Windows was made "by executives, for Joe users". What we need is an OS made "by nerds, for Joe users".
And that means not rejecting as "blasphemy" everything that MS Windows has. There are many good points in windows, but (i'm generalizing, but this is my impression) linuxers are too busy defending their "way of life" against the competition, that they can't improve it. They have formed themselves a mindset saying "Linux is perfect. We don't need no stinking windows thingies. Anyone who says so has been too much in contact with the evil windows, and must be deprogrammed". If someone dares say "but..." he's just rejected as some microsoft borg slave.
And they've repeated this lie so many times that they've ended up believing it. They make this whole bunch of "user-friendliness" *patches* for Linux, so they can believe that it's good the way it is.
Well, guess what. It isn't. Give me a Linux with the user-friendliness of windows (and I DON'T mean the GUI - i mean the versatility, plug-n-play, ability to easily install new apps without the
What I mean is:
Linux (as a whole) is a good set of implementations. What it needs is a good set of standards, and ONLY THEN, develop good implementations of these.
Want an example? We have KDE, QT (is that spelled right?), and I forgot if there was any other.
So there are apps compatible with QT that can't run on KDE, and viceversa.
Maybe you guys haven't still seen the big picture, but what I see of Linux development is more or less this:
a) Some guy makes a good thingy for Linux.
b) Many guys follow him
c) Another guy makes another good thingy that does the same than the first one, but it's incompatible.
d) Many guys follow him.
e) GOTO a)
From a religious perspective, compare with Roman Catholicism and protestantism. Roman Catholicism would be Windows (one pope called Bill Gates who dictates what is true and what isn't) and Linux would be the protestant denominations incompatible with each other. Some survive, some die... etc.
Sociologically, protestant denominations are very similar to Linux implementations. They share one very limited creed (the Bible / the Linux Kernel), but how that applies in their lives (the implementations) vary. SO MUCH that they can't be united (I remember the SCUMMVM team - or was it another? - splitting because a guy liked one editor, and the other guy liked another editor. And they argued so much about this that the whole dev team dissolved.
Linux needs a "pope". Or a government council (like the W3C) which says which way apps will interact with each other, with the kernel, and with the hardware.
Let me rephrase it: Linux needs STANDARDS. Linux needs something like "a W3C" government which publishes a standard, uniformed API of doing things. Like what the w3c did with the DOM (and so we can prevent things like the "browser wars" happening in Linux.
One of the reasons WinXP flourished is that it had a standard way of doing things. Make them compatible with the API (even if its security is as solid as a gruyere cheese), and they r
And Apple is Open, what's the problem. (Score:5, Insightful)
The only stuff they don't give you is the source code to Aqua and their in-aqua userland apps, which makes sense, because giving that stuff away would be business suicide.
When Apple said they were going 'open source' it didn't say they were going to release the source to their core apps, like the Finder and iPhoto, but they've been very generous about contributing the code they borrowed and modified back to the community.
It should also be noted that Apple gives back to the projects they work on, GCC has come quite a way on the PowerPC since 3.0 thanks to Apple.
In my opinion, Apple's strategy is one I'd like to see some vendor take with Linux, you take the kernel and mod it for high-performance desktop apps, get GTK+ running on an accelerated OpenGL framebuffer, tweak and simplify a slew of apps and SELL it. As long as the mods to existing software make it back to the community, it's a net gain for all of us.
Re:KSpaceDuel (Score:2, Insightful)
If I was google, I would hire you.
I realise 100% you were talking in jest, but you were thinking outside the box, most of the other suggestions have been seen in one form or another before.
Re:Several frustrating points (Score:3, Insightful)
Re:Several frustrating points (Score:3, Insightful)
Re:Several frustrating points (Score:5, Insightful)
I've been happily using Linux on my home PC for about 4 years, but the filesystem layout has always been an annoyance.
Without a package manager, it's practically impossible to remove a program; even with a package manager, you can't even determine how big a given package is! (if you know how to with Portage, I'd like to know). A better filesystem layout (perhaps the way MacOSX, GoboLinux or RoX does it) would make package managers obsolete.
A lack of standard configuration layout is another thing: why should people have to learn hundreds of config file formats? Yes, comments help, but it'd be nice if they weren't needed. Why not come up with one standard text-based config format/filesystem layout and get everyone to use it? This would also save programming time, as you could create a library (with a name like libconfig or something similar) and not have to worry about parsing configuration settings. The Windows Registry Hell can be avoided by using a text-based format(e.g. like Java properties files or XML).
A standard configuration layout (with suitable metadata) would also go a long way to allowing a standard graphical system configuration utility (Whatever happened to linuxconf? I loved that app!), making Unix/Linux that much more accessible to ordinary people.
Replies, flames, etc.
Re:In no specific order: (Score:3, Insightful)
Agreed, but there's no reason I should have to become that user if all I want to do is listen on port 80.
Re:A good set of standards. (Score:3, Insightful)
* Installing apps
Apt-get or urpmi or yum. Your distribution will use one of those, and you will have no problems. It's far easier than windows.
* Guiding the Joe user to a friendly painless installation of the OS itself
Windows installation is more painful than Debian, but that's immaterial: Joe User should never be installing an OS. Knoppix makes for a ``friendly painless installation of the OS'', but I still say that Joe User probably shouldn't be doing that.
* customizing
* configuring
If you want simple, you can't have those two. If you want to customize and configure, you have to accept some complexity. You have to be willing to make choices. One area where Linux could still improve is in having sensible defaults, so that you don't have to make those choices right at the start. Linux is much better on this than it was when I started using it, with Redhat 6.0. Again, Debian really shines here: I haven't had to do much customizing or configuring with Woody or Sarge. I suspect that the latest Redhat, et cetera, is similarly improved.
And don't come tell me it's much better than windows. I ALREADY know that.
Yes, there's always going to be room for improvement.
Exploitable race condition is endemic (Score:3, Insightful)
The shell needs further enhancement to make this clean so it is reasonable to expect people to write multi-process and multi-binary programs securely.
My list. (Score:5, Insightful)
Here are the general problems I have with Unix and Unix-like operating systems:
(Note that this isn't to say that every Unix-style system has a bad threading model -- some of them are pretty good, and others are getting better. But it's currently difficult to write decent cross-platform multithreaded Unix code when some Unicies you know in advance have really crappy threading subsystems).
Okay -- now don't get me wrong -- there are a lot of things to like about Unix and Unix-like environments. But those are the items I personally have problems with in the general case (and again, not all Unicies exhibit all of these issues. In particular, Mac OS X doesn't suffer from any of them, and is my current OS of choice for doing development and as my personal workstation desktop environment).
Yaz.
Re:Several frustrating points (Score:2, Insightful)
Re:Several frustrating points (Score:3, Insightful)
The installation process alone, as one of the parents said, can sometimes be nothing short of excruciating, and after that a newbie still has to learn to get around a completely unfamiliar system, and use it normally. Finally, to be able to customise your lovely little Unix box to bend to your will at the slightest command - anything from adjusting your desktop environment (or lack thereof) to tweaking the kernel For Great Justice - you've shown yourself to be considerably more skilled with your OS of choice than the majority of computer users.
So maybe some Unix devotees really do deserve to have an elitist attitude. I'm not saying they should, just that some people have something to show for it.
Re:Several frustrating points (Score:3, Insightful)
Certainly microkernal design has some compelling advantages. The same advantages any layer of abstraction adds, greater code reuse and easier code maintenance. Effectively we get the same benefits from keep a consistant binary format/software interface. However, the benefits of abstraction often come with performance penalties, and often inhibit innovation if they are not designed perfectly the first time.
The issue is as much one of programer organization as it is of engineering superiority. Micro-kernels or monolithic kernels can all accomplish the same things but they work better in differnt organizations. A corporation which often has sharp organizational distinctions between groups coding differnt sections, the money to invest in R&D to define an efficent and extensible interface and often lacking the flexibility to allow one individual to dictate his coding styles a microkernel is quite appealing. In contrast for an open source project, which often lacks expertise when they first begin coding a solution, the explicit interfaces in the microkernel would strangle them with all their bad design choices. Moreover, enthusiasm and many eyes allows them to both handle the extra code maintenance and ensure consistant coding style without rigidity.
Finally I just don't understand the point of your argument. Linux is bad because Linus is not personally an expert on microkernel vs. monolithic kernels? Can I equally well say your post is bad because you are not an expert either but simply relying on what others say.
Religious battles in coding are just stupid. Despite what many CS professors want to believe deciding between differnt design models is more about psychology than engineering. It is difficult for even one person to hold all the code they wrote clearly in their mind and impossible for a group project, so we evolve tools like microkernels to compartmentalize our programs and help us solve the organizational problems of programming. Howwever, it is just downright silly to forget that the ultimate goal is to solve the psychological problem of getting people to create a large project. Clearly Linus has managed to overcome this problem and if you think better why not go do it yourself.
It is plain stupid to value theory over results.
Re:Several frustrating points (Score:5, Insightful)
I strongly agree. Snide comments such as "BSD isn't for you," especially if the person trying to install it seems interested in learning about it, isn't going to help the Unix installed base grow. Such trolls hurt the *nix community in general because they are turning away prospective users.
If anything, us Unix users should be trying to convert as many people as we can to our OS, not turning them off and turning them away.
Re:Here's a start: (Score:5, Insightful)
IMHO, none of that matters to the typical end user (Score:1, Insightful)
I like Linux. A lot. I use it all the time, and I develop for it as well. I feel that it will not make a lot more inroads into more general acceptance until some of these things are cleaned up. Users don't generally care if there is a D bit in the protections. They generally don't care if the OS has cool things like logical volumes (like those provided the Amiga's "Assign" command) even if they are really neat, and let me forestall some arguments by saying that I agree that they are. Users care if the machine is easy to use, if the tools they want and/or need are available, and if the machine feels fast -- no one likes buying a 3 GHz machine with a couple gigs of ram and watching a minor application take 10 seconds to load.
So mostly, people don't run Linux. And that's what I think is wrong. But fix it, and they will come. IMHO. As for Unix... I really don't care. :)
Re:Several frustrating points (Score:5, Insightful)
That's complete nonsense. Installing and running Unix hardly counts as one of the more difficult intellectual tasks. It's hard, sure, if you're used to something different, but the description 'windows people' includes novelists, artists and nuclear scientists who just don't give a damn about the stupid OS their computer runs.
Would you like it if an artist made fun of your pens and call you and your friends BIC people? Well, that's how stupid this sounds.
Re:OS X (Score:5, Insightful)
Re:Several frustrating points (Score:2, Insightful)
You know what? I will figure this stuff out. And yeah, I probably will have an elitist attitude when I'm through... but guess what. It will be against all the inconsiderate pricks that wouldn't take the time to help me with some "n00b" questions that I am sure they had at one time too.
And back to my original point... if someone just coming into linux gets attitude from "the gang", they will probably get tired of it and switch back to what everyone else is using... cause I don't know about you guys, but who the hell needs another hassle in their life than to learn all of this stuff when all they want to do is just USE THE COMPUTER.
Re:Program Installation Locations (Score:4, Insightful)
However I've installed Firefox on ten different distros (probably more now) and never once seen an icon for it appear automatically in my GNOME menu. Why is this so broken? APT, Synaptic, RPM, yum, etc. are all basically broken from my point of view, but we put up with them because it's worth the fuss. Millions of computer users can't even find a new icon on the DESKTOP, much less dink around with non-standard filesystem heirarchies (which distro do you use?) and symlinks.
Pet peeve of the day (which happens to be relevant to this thread) : Windows downloads are only a fraction the size of equivalent Linux apps. Try OO.o, Firefox, etc. My Xandros 3 install had to download 40MB (using the lovely APT) which doesn't compare well to a 4MB download for Windows.
Seriously, you should look into using something more current than Windows 3.11.
To compare apples to apples:
OO.o: [openoffice.org]
Windows - 45MB
Linux - 77MB
Firefox (with installer):
Windows - 4803KB [mozilla.org]
Linux - 8422 KB [mozilla.org]
Thunderbird:
Windows - 5877 KB [mozilla.org]
Linux - 10113 KB [mozilla.org]
I've heard enough about bloody shared libraries that evidently NEVER get shared, and instead I end up with five different incompatible versions of glibc/GTK/whatever and it's also annoying to wait while APT downloads an EXTRA 300% of the listed download size. If making *NIX installers like Windows means that I'll have all the advantages, and all of the downfalls, then I'll take it thank you very much. It's a great deal better than what we've got now.
Re:Here's a start: (Score:5, Insightful)
I prefer MSDN [microsoft.com]. Call me when Unix has something that even approaches the ease of use and the amount of readable samples, explanations etc. of key APIs.
And no, the System V paper manuals don't count.
Re:Several frustrating points (Score:1, Insightful)
Your case can be handled with "POSIX" permissions very easily.
Permissions are associated with directory entries, and NOT inodes. A specific inode may have as many directory entries (hard links) as you want, and each of these can have different permissions.
The PROBLEM is that typically hard links cannot be made to directories. Which does complicate things a bit.
Ratboy
Re:Several frustrating points (Score:5, Insightful)
1. Reiserfs etc are the results of 30 years of research that, well, hadn't happened 30 years ago. the i-node/u-node business was the best there was. Then.
2. Multics had general, configurable, role-based, magic ACLs; UNIX lost them on purpose becuse it wasn't well suited to a big games system and word-processor, which is what UNIX was meant for originally.
3. When I was a kid we hardly HAD processes, much less IPC. Having named pipes was a helluvan innovation.
4. That's not the operating system, that's book-keeping.
5.
If you were to go back to System 3 UNIX, you'd have most everything you're asking for here. It wouldn't be as powerful, but it'd be uniform.
Re:Several frustrating points (Score:5, Insightful)
Re:And Apple is Open, what's the problem. (Score:3, Insightful)
Yes, Apple lost a huge portion of the home user and educational market, they're aiming to get a foothold in the data-processing sector, where *NIX is already in use. Releasing ALL the source except the consumer-friendly bits would obliterate their chance with shops like the government and large data-oriented customers. Why buy milk from Apple when you can roll-your-own Apple cow?
Also, there's a LOT in the OS that Apple probably CAN'T release, it's licensed from other folks, or it was written under different rules.
Apple does a lot of work for the OSS community, they give back more than most companies do, and they should be praised for it, just like IBM (they do a TON of stuff for the OSS community).
I thought the Linux/OSS users were going to get behind vendors that supported us and buy their products, that's what we said back in the '90s when hardware support was VERY hard to come by. The time has come, and if it's not all you thought it would be, think about all the Linux companies that went belly-up and why. There's a happy middle-ground between going totally nuts with the code-sharing and giving back while keeping a marketable product to yourself, Apple and IBM have found it.
Now think about this:
Apple gave us a BSD OS, tuned for multimedia and desktop use, something we've been working on for a while now. They'll give us Darwin, and sell us OS X. But you can take Darwin, install a ports system of your choice on it (gentoo, darwinports, apt-get, etc.) and use it just like any other system. You get OpenDirectory, which is quite possibly the best thing to happen to computers since ethernet (really, read about it!), you get xorg, and you get drivers that provide 100% functionality with Apple-branded hardware.
Re:In a word... (Score:3, Insightful)
You are Linux. You are a small, free OS that has only a few percent of the market. You don't control how the printing industry designs their products; you obey their decisions.
Re:Several frustrating points (Score:2, Insightful)
The big problem with Linux, BSD, etc, is few are being paid to develop for these platforms, thus we dont have a lot of people who can work full time to improve things. We need to find a way to pay developers of open source projects so they can work full time on these projects. With that I think we would see an increase in quality including lots of nice GUI tools for non-techie users.
I think furthermore techie and non-techie users can both share the same system and techies can have full control and low level access to the system well non-techies can have the easy to use GUIs at the same time. GUI configurators can be made to automatically produce the human readable config files, thus we can have both config files, GUI tools, and a rich command line environment.
As far as Unix itself, I think overall the system is very good and no changes should to the core concepts should be made, the directory layout is good, the basic concepts are good, X WIndows is good. I have heard people say that the X Windows API is prehistoric. Nonsense, its just a low level API and its designers didnt make the mistake of just offering a bunch of high level widgets but created an API providing graphical primitives high level widgets can be created with. X API is designed for widget construction, not for direct use by applications.
Basically what is needed is more full time developers, including for the GUI tools.
Re:IMHO, none of that matters to the typical end u (Score:5, Insightful)
Actually there are a number of examples which put the lie to your charge, apart from the obvious case where a linux admin doesn't even install a GUI. (linux gives you that flexibility) But a number of commercial vendors provide programs which run on any modern linux distro with X windows, e.g. netscape - but in practical terms, any modern linux distro ships with both qt and gtk apps. So any app built on either native xlib, qt or gtk will run on any modern linux system.
Linux has a pretty poor cache and swap system, combined with zero user level control over cache and swap. As a result, over time, the OS runs slower, and s l o w e r and s... l.... o..... w...... r....... until you restart, and then it's back to being fairly snappy until it fills up memory again with things it shouldn't be caching,
LOL, mod parent up funny - linux memory management is actually pretty decent. I don't buy into the hype about running slower and slower and finally needing a reboot, that sounds like too much microsoft thinking. Our mail servers which are currently on a 700+ day uptime are processing messages just as fast as they were when first booted.
Sorry, your story just doesn't hold up.
Re:Several frustrating points (Score:2, Insightful)
I think your post also provides a pretty good answer to the original question. What good is an operating system to average computer users if you have to be more skilled than the average computer user to do anything with it?
Re:You guys should maybe step back... (Score:1, Insightful)
Hi. I'm an mcse and I'm not a moron (or so I believe). Pleased to meet you.
My false modesty tells me I shouldn't toot my own horn, hence the AC.
I've been managing unix like boxes for several years now.
I got my mcse because my company needed me to (sales purposes, don't ask) and paid for it. I learned a great deal about windows servers/workstation I didn't know about. Most of it positive. I still wouldn't put an unfirewalled windows machine on the internet. Today, I admin a couple of windows servers, plus several solaris, freebsd and linux boxes.
As I said above, it is a selling point (our customers like MS and Cisco certs more than anything else). And if tomorrow I find myself looking for a new job, it probably won't hurt to have them on my resume.
Re:OS X (Score:2, Insightful)
Re:That's not just unix. :P (Score:1, Insightful)
OSX is not the end all solution (Score:2, Insightful)
The reason Apple is able to devote time to making the GUI pretty, or creating these great applications is the limited hardware base they support. Mac OSX has nowhere near the hardware support provided by Linux or Windows. Don't get me wrong, the PowerPC architecture is great, however, the lack of other options concerns me. I personally try to avoid vendor lock-in as much as possible.
I personally would like to see better vendor support (Ie ATI ).
Also, while competition is great, it would be nice if the main windowing systems (KDE or Gnome [QT Vs GTK])were more compatible with each other (or we just choose one). Being able to run QT apps in GTK without loading all the extra KDE nonsense would be nice....
Last note, greater standardization would be good too. Choosing *one* package management system that could be deployed across all dristros would be nice (Perhaps incorporate the best of the existing package management systems into one, cross distro system). It would make it easier for developers (only one package to make), admins (got a few different distros? ), and the general public (if more people use this utility, chances are a greater portion of those people will donate money, time, or other resources to the project).
The W3C is an interesting idea, but *it* may not be the best idea. First of all, having a central organization setting standards does *not* mean those settings will be followed. Take, for instance, CSS. The standards are clearly defined by the W3C, however creating CSS documents that look exactly the same across IE and Gecko browsers is not easy. Moreover, people complain that getting features into the kernel takes a long time already, adding bureaucracy will only increase the delays....
Excellent points are made in many of these replies, and what we need is to take the best of everything; the clean GUI of OSX, the standardization provided by a consortium including industry vendors, greater vendor support, and unify some of our efforts.
Competition is good, but only so long as it does not ultimately make the users life more difficult.
Re:Several frustrating points (Score:2, Insightful)
Why?
To what end? As a *BSD person, what do you really care how many people run NetBSD instead of Windows 2000? Does it matter? Does it affect your life somehow? What, in the proverbial nutshell, do you bloody care? If I was a windows user and you came along with your attitude that you "should be trying to convert" me, I'd want to smack you.
In many cases the response "Slackware isn't for you" may be perfectly true. Maybe that person should cut his teeth on Fedora or Gentoo or one of the other easy distros where things are done for you rather than one where you have to already be a genius to get it working. That's fine. If starting out at moderate complexity is too overwhelming, then maybe that user should start out with something easier.
A lot of times, however, the situation is even more simple than that. As someone who spent 4 good years of my life on a #linux helping people get off the ground with all variations of that particular OS, I can tell you there are some people who just simply should stay with the Redmond distribution. Some people want you do actually do it for them. I'm not exagerating. Some people literally ask if they can give you a root shell to configure X for them. Look... Learning to use a new OS and being stumped by the new paradigm is one thing. Being a lazy (l)user is another altogether.
Based on my personal experience, 2 out of 10 times the "X just isn't for you." means "pick something a little less complicated to cut your teeth on. The other 8/10 it means "No... I'm not going to spoon feed you your applesauce. When you're willing to actually _LEARN_ something, then you can try something other than that which you know by heart, but until then, go away."
Re:And Apple is Open, what's the problem. (Score:2, Insightful)
I haven't bought one, but it sure is the reason I recommend it to others (if by OS you include applications like the Finder, but not iLife etc.).
The expose' feature is wonderful.
The heavy drag-n-drop integration is beyond anything I'd ever even thought of, and makes it a complete joy to use.
The dock is really cool. I like that it magnifies as you go over the icons, that it points to which applications are open, and that it keeps a thumbnail of minimized windows.
The ability to install an application just by moving a single file into the "Applications" directory is phenomenal.
The single-menu-bar is a fantastic idea.
The system preferences are easy to set and use. Setting up mobile networking was a snap.
And I'm sure I've only scratched the surface.
UNIX new year's resolutions (Score:3, Insightful)
- redo the whole privileged port thing. When only root could become UID 0 and start a process on a port under 1024, maybe this meant something. Today, it's a joke
- kill the GNU info format. Could anything possibly be less useful that INFO pages?!? Sheesh. Manpages have become a standard - Everything should have a manpage.
- Manpages must provide at least 5 example command strings for sample usage with description of what those options do.
- In the days of UNIX, we all knew what were system binaries and what was GNU/other. We used
- Central area for Internet-based config files. Try to set web/ftp proxy information in a single location and have it honored by more than one or two programs
- Strict adherence to commonly used environment variables like HTTP_PROXY, NO_PROXY by any internet-enabled app. There should be more like NNTPSERVER, SMTPSERVER, IMAPSERVER, POPSERVER
- Do we really need
- Do we really need
- for application foo, what should go in
- sar was great, but I need a year's worth of data, and I would really like to have some trend analysis automatically done and know that my bottleneck over the past week has been XXX and was due to process YYY
- mail programs should all be able to default to using
- Make X11 session state transportable. I want t o be able to transport my entire X session from one Xserver to another Xserver without losing the state of any apps. (not just a view via VNC... the whole GUI app)
Re:Several frustrating points (Score:5, Insightful)
It's an Operating System. Some people enjoy using it. I do; I love the things I can do with my unix boxes so easily that come so difficult on other systems (Windows.)
You can use it if you want to. There's so many great people working on making it better, easier, etc, that in the end it MAY very well be just as easy to handle as Windows. It's not there yet. What's the rush? So you can install it easier before you know the system?
You're inexperienced in the Internet world if you think that the Linux userbase is a bunch of "inconsiderate pricks." You should see some of the Windows help forums, or the help forums of... anything else, really. There's a lot of pricks out there, you can't avoid that. I have not found this to be any greater with Linuxish forums, mailing lists, etc. In fact, I find that Linux help groups are a lot BETTER then most; there's usually quite a few people that are really knowledgable and willing to help.
Your experience with being called a n00b could be due to the fact that you've been asking the same tired old questions, without reading any of the redily available information online or using the search function on forums. There's a lot of people that WANT to help you - even though you're a complete stranger - but these same people don't want to trudge through the same questions they've already answered a hundred times over.
If you just want to "USE THE COMPUTER" then just USE WHAT YOU KNOW HOW TO USE. Nobody is forcing you to use it. You get to justify the reasons all by yourself, and if you can't justify the learning curve to the benefits, then why do it?
Really, it doesn't matter. I'm not trying to get everyone to use Linux. I'm not telling my sister to install it. Neither is anyone else, really. You might hear from someone how great they think their Linux system is, and even say "you should give it a shot!" but it doesn't matter if you use it or not. Moving forward, when all the peices fall into place and your Linux distribution of choice is at the right level of comfort for you, we won't even have this discussion.
So relax; let the people developing this great system do their thing. When the state of the system is right for you, you'll know it. It'll happen, and until then do yourself a favor and don't worry about it.
Quote from you: " Not to mention that that this is the whole reason why linux will never be a mainstream desktop operating system..."
You really should add "today." at the end of that. Tomorrow, who knows?
Comment removed (Score:3, Insightful)
Re:In no specific order: (Score:1, Insightful)
It IS the OS's fault that I have to start a daemon as user root in order to use ports less than 1024. Sure, I can have the daemon immediately switch users, but this is inherently insecure. This is especially an issue if I have to run a closed-source daemon for whatever reason; I should be able to sandbox it easily and completely. Not possible with one big root.
Often software writers have used SUID to get around these issues. This merely compounds the security problems, of course, and UNIX does a poor job at providing good alternatives to SUID. Modern versions of Linux and BSD can provide an authenticated named pipe, but this is not cross-platform. It's a real mess.
Re:That's not just unix. :P (Score:2, Insightful)
If you'd spent slightly longer in #debian, you'd know that we're absolutely flooded with people who aren't prepared to learn things, and just want those who already know to do everything for them. When questions are asked by someone who is having troubles which the documentation (which they have read) does not solve, they do generally get helpful and correct answers quickly. I got struck down repeatedly when I first started going there, and was not a complete "n00b" either. However, I'm not so thin-skinned as to take it personally, and now I'm more at home with reading things for myself, which is the right way to be.
In any case, with regard to your grandma, you ought to send her to the Debian Reference [debian.org] instead ;-)
Re:Several frustrating points (Score:2, Insightful)
I look at it like this. I have written very little of the code that I use on a daily basis. I have paid VERY little money for it (I have made financial contributions to some projects). The thing I can do to "pay" for the software I use is to help other people when they have a problem. However, whenever I have tried to go on IRC to help people, I am treated with the same attitude that you describe. "Nice" people don't hang out there because all they get is a bad attitude that they don't need or deserve. Therefore, you aren't likely to find "nice" people to help you on IRC.
It is a shame that these people tarnish the name of Linux for anyone, especially since most of them are of the oppinion that it is a superior OS.
Why Unix is dead (Score:2, Insightful)
There are four relevant parts to Unix:
When Ransom Love bought Unix on a lark (my IPO was so huge... look, I can buy Unix...), the value of the name except as a trophy dropped to nil.
The public domain code and it's functionality lives on in BSD where some find it useful. Perhaps one day this branch will prove as versatile as Linux, but I doubt it.
The proprietary code and its functionality nobody in their right mind would want, because "The Future is Open(R)(TM)".
The POSIX architecture has been reimplemented in Linux in a more consistent way than using most proprietary *nix wares, and in parallel the technology of operating systems have been advanced to support more advanced concepts.
Before the parts were rent asunder, they ruled the server room. Now they have been broken apart, and like humpty dumpty, they'll not be put together again.
Unix is dead.
Getting help from Linux gurus (Score:5, Insightful)
You don't ask a question directly; rather, you write something like "Linux sucks because it can't do X but Windows can.".
To use your USB mouse example, you probably went on a board or IRC somewhere and wrote: Note that you asked a reasonable question and thanked people in advance for their help.
This is a recipe for disaster.
The board gurus will pounce on you like a
Instead, you should have written something like: You will have Linux gurus crawling out of the woodwork to show you that, yes, Linux does support a USB mouse, and the reason you couldn't get it to work was probably one of the following: X, Y, or Z, and here is how to work around or fix the problem, and here is where you can find additional information, and here is where you can get drivers or other needed software, or a more user-friendly front end, etc., etc.
Note that their attitude will be as snotty (or snottier) as with the nice method of asking, but you will get the information that you require.
Note to mods: The above may appear to be flamebait or an attempt at humor, but this method actually works.
Try it!
Re:OS X (Score:1, Insightful)
Re:IMHO, none of that matters to the typical end u (Score:3, Insightful)
Really?
For the end-user, it's as simple as an apt-get, rpm or emerge command (or whatever package manager you use).
Ah, you're talking about the developer? About installing software that is not packaged? Well, try that on windos. Come back when you're done, like 2006 or so.
There is no standard "windowing" GUI
Which is a huge advantage.
I happen to hate the XP/windos standard GUI, and there's nothing I can do about it. I tried a few replacements, they all suck, are incomplete, break the system or simply don't work because the friggin GUI is so tied into the OS kernel.
On Unix, you can choose which GUI suits you best. I prefer to choose myself instead of having some marketing monkey in Redmond make my choices for me.
Linux has a pretty poor cache and swap system, combined with zero user level control over cache and swap. As a result, over time, the OS runs slower, and s l o w e r and s... l.... o..... w...... r....... until you restart,
Troll
tom@nox:~$ uptime
10:04:32 up 132 days, 17:49, 3 users, load average: 0.08, 0.06, 0.07
tom@lemuria:~$ uptime
10:00:18 up 156 days, 2:00, 1 user, load average: 0.02, 0.03, 0.00
tom@Mandor:~$ uptime
10:02:44 up 31 days, 21:01, 1 user, load average: 0.02, 0.01, 0.00
All of these are systems that are in constant use as desktop (nox) or servers (lemuria and Mandor). They're very snappy. I've driven one of them (nox) close to the thrashing point once, brought it back and it's been running well ever since, without a reboot.
You, my friend, have fucked up your system, that's all. Don't blame it on the machine.
Oh, and it's a very, very good thing that regular users have no control over cache and swap. If you don't grasp the security and reliability dangers inherent in giving them that control, you should give back your root access.
The GUI, in the user sense, is an afterthought. You have to go to the command line to configure and/or adjust and/or install many things.
Again, this is a strength, not a weakness. When your GUI breaks on windos, OS X or any other GUI-only system, you're fucked. On Linux, I can drop to the commandline and within a minute or two everything is running fine again. Sure, it may not really be faster than a reboot, but if you have stuff running in the background, then you don't really want to reboot.
Re:Getting help from Linux gurus (Score:3, Insightful)
What's wrong with Unix? (Score:2, Insightful)
What's Wrong IS What's Right (Score:3, Insightful)
No one solution is right for everyone so there is much fragmentation and LOTS of features that are completely customizable. That is what is both wrong and right. And then you have the ever increaseing revisions which have an amazing amount of dependancies. Which again is both what is wron and what is right.
You can not have your FOSS and eat it too. It is this way by design.
Re:Several frustrating points (Score:3, Insightful)
For a good introduction to this concept, see the book Crossing the Chasm [wikipedia.org].
Re:needs some VMS stuff (Score:3, Insightful)