I've been using linux for some time now, mostly for security testing purposes. I have to say, I really like what it CAN do. There are some parts of it that are absolutely ingenious. I'm impressed with some of the things people came up with, and even more impressed that they did it without any real compensation. I've seen some absolutely brilliant ideas and brilliant implementations performed within this operating system.
With that being said... Linux is a complete mess when it is looked at as a whole.
For one, due to the nature of linux, it lacks any real standardization. Things are implemented differently on different distributions. I have to look for some config files in different places on Suse vs. Fedora vs. Ubuntu. This is frustrating. Some of them start with different models and different rights levels... For instance, in Fedora, my PATH was basically neutered and I had to readjust things so that I could run basic system commands (even as root). I also had to add the initial user I created to the sudo'ers file (why? I made the user on install). Ubuntu was the exact opposite, and I pretty much had free reign of EVERYTHING (usability vs security I guess).
While tools like apt and yum, and rpm and deb package management make it nice and easy to install things... These packages can be months behind current releases.. and when you get current releases you have to play the dependency game. Not to mention that linux apps tend to break easily when you update libraries and such... Windows seems to have this down. Every app comes as a packaged installer, and you never lack any files or libraries. No compiling necessary; no having to debug a failed make or configure... Its just works. Like I said, package managers solve this problem, but no software makers distribute this way. Its often left up to someone else to package all together, and a lot of software is often out dated. (I've had a lot of experience with this and security tools).
For me, THE MOST ANNOYING aspect of linux is configuration. Windows has nice GUI configuration tools, with check boxes, help windows, popup explanations, etc etc. For everything with Linux I have to go into a text file and change some poorly described values. Now don't get me wrong, newer releases have included many more tools to configure the operating systems through a GUI (but there is still a lot missing). Still, most software isn't held up to this standard (save a few of the larger and more popular items). Instead, 90% of the time I have to edit a scantily documented config file (well, usually more like 4-5 config files for a single program). I always thought the registry was a mess in windows (and it is), but linux operates on what I'd call a decentralized registry. Its still a hodgepodge of values and settings, like the windows registry, but in Linux they are scattered over the entire drive.
Now the reason none of these problems are never going to be fixed is that there is no central force or authority controlling how things work. Everyone is left up to their own accord. Of course, this is linux... Its a bit on the hippie side. Linux is a lot like a plane that keeps taxiing to take off. It has everything it needs, but it can't decide where it wants to go. All the passengers want to go in different directions and want to fly their own way. The idea of letting everyone do their own thing prevents the structure needed to have this thing take off.
Its almost like Linux is perpetually stuck in the final phases of design & programming. All the parts are there, they all work.. but its not made into a cohesive product yet.
All in all, I don't dislike Linux. I use it, and it gets the job done.. but I'd never use it as a primary desktop. Its not ready for the average users by a long shot.
Oh, and one more thing... I hate vi. That has to be the stupidest design for a default text editor ever. Yes, I understand, its very effective if you get to know it.. However, a default text editor should not require a manual to learn and use.. Just type where the cursor is. For those that want the extra functionality, let them use their editor.. just don't make that complicated editor the default.
@Agent Smith The major
@Agent Smith
The major problem you seem to have with Linux--and I'm not saying you're wrong--seems to be the philosophy underlying not only Linux but the entire FOSS movement. Different teams doing similar things different ways. In fact, this is the underlying philosophy of a capitalist society, but with the motivating factor behind capitalism (capital) removed. Where's the incentive for competition and making the best possible product when your business model isn't capitalist, isn't socialist-- is... just... ist?
With regard to this:
"Things are implemented differently on different distributions."
If they weren't, what would be the point of different distributions? Is there a point? And are the different distros getting to that point or not?
I think the point is that
I think the point is that the different distros are fundamentally incompatible. I can't compile one binary, and have it run on all systems. You can't claim they are the same OS, if they are incompatible.
Having different distros doing their own thing is fine, IF, and only IF the core OS functions are similar. ie, the same package will install and run accross a range of systems. The same configuration file setup, etc. ie, the same base platform. If a distro wants different backgrounds in GNOME and themes (which is all that most distros seems to be), or they want their own GUI tools, or their own addons, etc, thats cool, because they are in addition to the base system.
Well, they are fundamentally
Well, they are fundamentally incompatible in the way that different versions of Windows are fundamentally incompatible. Despite the fact that WinNT, Win2000, WinXP, Vista and Win7 are all "NT" OSes at heart and are all "Wintel32" platforms doesn't mean that software that works on one will work on another. I realize that there is a temporal distinction between each "version" of Windows that doesn't comport with the distinction between different "distributions" of Linux, but hey, pick one and stick to it? I think even the typical computer user should have some appreciation of the fact that, hey, this thing has a name that is different from the name of that other thing. It's not just Linux, it's Fedora Core Linux, or it's Ubuntu Linux, or it's Puppy Linux. I think that if you have to install each separately as an entire OS, you may not KNOW, but you should reasonably EXPECT that there might be more than cosmetic differences.
I agree that this is certainly a flaw that keeps Linux from widespread adoption, but maybe the Linux community needs to realize that the FOSS philosophy is antithetical to widespread adoption. People do not want choice. FOSS looks attractive because people want cheap, but even more than they want cheap, they want EASY.
So unless all the dev teams decide to get together and unify this beast known as Linux (which will never, ever happen--and who are we to say it should? If we don't like it, we don't need it), this problem will continue.
Understand, of course, that
Understand, of course, that I am not arguing with you. We are both talking about Why Linux Sucks. I'm simply pointing out that Why Linux Sucks to us is part of Why Linux Rocks to a lot of people... and maybe they aren't wrong.
You'd expect to be able to migrate from Windows XP to Windows Vista without a hitch, but not the other way around. In reality, you'd have roughly the same number of hardware and software issues moving back to XP as you do moving "forward" to Vista.
But this is all meaningless--pointing out the flaws extant in Windows doesn't fix the ones in Linux.
I understand what you mean.
I understand what you mean. When I started using Linux though, I tried Mandrake, Definite Linux and Red Hat. I didn't expect them to be identical, but I did expect them to all be Linux. I had seen software for Linux in stores previously (such as a Linux version of Quake 2) and didn't see "Quake 2 for RedHat Linux", but just "Quake 2 for Linux". Go to any website which has a mix of third party software, and its always "Windows", "Mac", "Linux". Occasionally they enumerate the distros, but more often than not, they dont.
Same with programming books, its all programming for Linux. Lastly, I've heard of people wanting to switch to Linux, and THEN realizing they need to choose a distro, but not as much where people decide first they want to use Fedora, before deciding on Linux.
Maybe your experience was different to mine. You make a fair comment that SuSE would be expected to be different from Fedora and yes, there might be Fedora or SuSE specific programs (Yast comes to mind), but the distinction between "generic Linux program" and "distro specific program" is a little unclear, with a lot of software being somewhere in between.
But the real issue is that if I want to sell software, or hardware, and want to distribute that software, or drivers, I do NOT want to have to develop a version for every distro, or include instructions for every configuration. I think its great there are different distros, but a software developer who wants to develop for "Linux" rather than specifically for "Fedora Core" (where they might be developing system configuration program or upgrade helper or something), should be able to farily easily just develop for "Linux" and be assured that anyone running a Linux distro can install those hardware drivers or software.
The LSB has made progress, but I think there is some ways to go.
The directory structures
The directory structures underline a perceptual difference between Linux and windows/dos. That difference is a result of paradigm difference between the people that developed each.
In Linux, the kernel is on top. All is derived from the kernel. All exists to serve the kernel. The CPU, the hard disk, the floppies, the monitor, even the person at the computer is there to serve the kernel. If the GUI crashes and all users work for the day is lost, it’s all fine as long as the root kernel is still running. Everything derived from a conceptual process that has no physical manifestation. The root kernel. The fact is even denoted in the directory structure. There is nothing in front of the first slash, because root is just a concept that is not based on anything definable.
In windows, the kernel is dependent on the hardware for existence. Without a hard disk, there would be nothing to store the kernel on. No hard disk, no kernel. Therefore, the hard disk is a root device (one of many). The kernels job is to serve that, and all other root devices. (disk, ROM, RAM, CPU, Graphics, keyboard.…. ) It’s job is to make all root devices happy. It’s job is to make all root devices work. You need labels to keep track of multiple physical objects, the easiest ones are sequential numeric (1,2,3,4,5.….8.…) and alphabetic. (A,B,C,D,E,F……I…….) They are labels attached to physical objects. Each disk is a root device. All hierarchical data comes from that device, without that device, there is no data. You can not have directory structure without a device for the structure to be on. Therefore, the root of all directories is a label that denotes a physical object. “A,B,C,D,E…..” And you have a break point that denotes a transition between the physical and the nonphysical. The “ : ” symbol. Therefore, the use is physical label “A” a separator between physical/nonphysical “ : ” a symbol to denote that this is derived from a base directory and/or derived from a lower base.. “ \ ” So total usage is “C:\(put something here)”
And if it hasn’t become blatantly obvious, the perceptual difference explains the difference in the forward or backward slash. The \ and / symbols are derived from math. “1 / 2” One above two. “1 \ 2” one is below two. There connotation has been fixed for a long time. Hundreds of years to be exact. It has been ingrained into are little minds since grade school. How people use them will give you insights into there state of mind when they use them. How does that deal with windows/dos and Linux? There is two ways to build things. From the bottom up, and from the top down. Windows is built from the bottom up. Linux is built from the top down.
Remember. I used the terms “based on” and “dependent on” The hardware is the foundation. The software is based on that foundation. To denote something is higher than that you want to put it above the base. So the proper connotation would be C:\(higher object) or (higher object)/:C
In Linux, where the kernel is at top. It is god of it’s own little world. All are derived from it. So to denote something that is lower than root. The context would be (root)/(lower than root) or (lower than root)\(root)
If you look at both, you will notice Linux is top down, and win/dos is bottom up.
If you look at the web, the connotation holds true. The concept that the web is some higher source of information and all the web pages kind of dangle from it. Is supported by it’s use of the (protocol)://( “WWW” non physical concept derived from that protocol).(web address)
In a Linux world, the kernel is at the top. The user may be able to directly command the kernel but the user still isn’t root, the user is just able to control root from a distance. There is many disk, many users, many displays, but there is only one root. Only one kernel that inhabits that place.
In win/dos, the software is based on hardware. There is almost an unlimited number of programs processes but there is a limited amount of physical assets. And if you follow that logic back to it’s source. You will also find a physical root for dos and windows. All programs are there to serve the hardware. All hardware is there to serve the USER!!!!!!!! So proper directory structure is User:\c:\windows\start.exe all exist to serve the USER!!!!!!!!!!!
If you think about it, the name “root” is an incorrect usage in Linux. Root denotes a base, but in Linux, the root is at the top. It’s an upside down tree. The proper term would probably be something like “Top” or “God” or something.
All in all, they are different ends of the same piece of paper.
Windows is built from a user perspective. The is only one user. There is a few hardware devices that serve the user. There is several software programs that serve the hardware. There is almost unlimited numbers of servers (Linux servers) on the other end of the net that the software uses while surfing the web.
Linux is built from the server perspective. There is only one “root“ kernel. There is many server processes to run. There is many many users (windows machines) at the other end of the net.
Trying to use Linux (in it’s current state) to serve one person will not be very productive. It is not designed to do that. It would take a major redesign to get Linux into a user centric application.
Strip or greatly remove multi-user support.
Redesign the directory structure based on the user’s perspective.
Give the user ultimate control, Without a user, no one will run the operating system.
Design the system to make the user happy.
To make the user happy, the hardware has to be happy.
The OS is worthless unless the hardware is happy.
Like people using dos to run a million dollar CNC lathe. A lathe requires a real time operating system. Windows and Linux is not a real time OS. They are worthless on the lathe because they don’t make the lathe happy. They don’t make it work.
So stop with all the stupid distributions and revision until you design something so that hardware manufactures can write software to allow your Linux to make the hardware happy. Happy hardware means happy users, means more users installing Linux.
………………………………...........................................
Hmmm……. Something just occurred to me…… If Linux is god. The root god!!! Then all the people working on Linux is making a sacrifice for the god named Tux……. All to serve the root, all to serve Linux, all to serve Tux………
That explains why to work on it relentlessly without pay!!!!!!!!!!
What distro makes vi the
What distro makes vi the default text editor? If any do then I agree with you that that is stupid.
VI is probably the most user-friendly text editor out there (actually vim is better). That is user friendly towards someone who needs to contantly edit text files. Its a million (not really that much) times faster than gedit or something like that opening up for you to edit with.
"Instead, 90% of the time I have to edit a scantily documented config file (well, usually more like 4-5 config files for a single program)"
I disagree that config files are not documented, and if they arent you probably shouldnt be messing with that one. also windows is the same way with config files, you just have a much harder time trying to find them.
first your complaining about how the package managers dont have the up to date versions of programs but then you say stuff brakes when you install the up to date versions. Maybe it wasnt in the repositories for a reason...
About package managers I
About package managers
I agree with what he says about package managers. Sometimes an 8 month old version of the program isnt good enuff. Its not the users fault if the new libraries or new version of the program break things either. That shouldnt ever ever happen. Thats crap. It should run and work with no effort. Linux cant work like that. We've been able to just run things in Windows for about 9 years now.
vi is not user friendly. Neither is emacs actually. Their user unfriendly. Gedit is user friendly. Maybe this is why there is so much confusion if linux users think vi is friendly. I also think the OP meant that vi is included as a default cli text editor. If you need to boot without x windows then you need to use vi.
Standardization is being
Standardization is being worked on and the standard it self is very comprehensive already. What is missing is compliance disclosure. Several distributions are already follow the standard, some don't follow but will and some don't even care. I would be great to know which is which.
"For me, THE MOST ANNOYING aspect of linux is configuration."
System wide configuration files in /etc
User configuration files in $HOME
Every single GNU/Linux distribution I have seen (and I have seen many in over a decade) uses this organization. How is this "scattered over the entire drive"?!
The text configuration files in GNU/Linux have nothing to do with Windows Registry. They are completely different beasts.
You can use a GUI to change the configuration if you want. There are many for almost everything. There are even some integrated GUIs that can control most of the system's configuration (e.g. Mandriva Control Center). A valid critic would be the duplication of GUIs for the system configuration. Lacking GUIs is just not true.
I think your "plane that keeps taxiing" analogy is incorrect. GNU/Linux is like a fleet of plains, one per user. The engines and frame are the same but its shape, its color, its number of seats, its on board service, its in flight movie and its destination vary from almost the same to completely different and completely customizable.
"Oh, and one more thing... I hate vi." - Me too! :)
vi is not the default editor simply because in the console there is not such thing as a "default text editor". In X windows, the default editor is a X application (e.g. usually gedit or kwrite) but can be configured to be vi if you like. :)
Regards.
I think you've
I think you've oversimplified his point.
Configuration files are in /etc . OK. Have you looked at the /etc folder recently? The subfolders? The number of files?
It really is the same mess as the windows registry. They are both just as bad and they do in fact do the same thing.
I don't see how you can claim you can use a GUI to configure most programs. Maybe for the most basic core OS functions, and some larger programs, but almost everything else requires text based configuration. It really is very ass backwards. No matter what the only way to really control linux is through the command line. Its not always well documented either.
This comment is awesome and
This comment is awesome and spot on. You said some things I've been thinking about for years! The lack of a centralizing/controlling authority is really the ultimate downfall. Take the file system--/usr, /etc, /whatthe? These are esoteric and confusing labels to end users. Microsoft recently changed XP's C:\Documents and Settings folder to C:\Users in Vista to make it more understandable. Meanwhile, Linux and Unix are stuck with a concept from three or more decades ago that will never change because no one has the ability to seize root pieces of the OS like that to actually do something with them.
Jax
how about /home, is that
how about /home, is that confusing enough for you? if you ask me it makes more sense than c:\Users. why does windows make their \'s go the opposite way of every other OS out there. Also whats with those drive letters? Their much stranger than linux, in linux your CD drive is at /media/cdrom. your external USB drive is /media/disk. In windows they can keep changing, in linux you can make them stay the same every time. In windows its D:\ why, does that make any sense? in windows the root is C:\ in linux its just /, if you ask me / is easier than C:\ but either way you just have to get used to it, its different, that doesn't make it wrong.
As a matter of fact, in
As a matter of fact, in Windows, you no longer have to give a damn about c:\Users if you don't want to. Go to the Start menu (if they even call it that anymore) and there's your Documents, there's your Music, there's your Pictures, etc.
/home actually is pretty fucking confusing if you're not used to Linux. /home sounds like a starting point from which you have to go five steps or more to get to something useful. This, of course, is not Linux's fault. I can easily learn things like that, just like anybody who has a head instead of a brick on a stick protruding from their shoulders can learn what C:\ means.
Actually there is a reason
Actually there is a reason for the reversed slash in Windows.
It´s a unique designator that appears nowhere but in identifying the first character of a folder name. One story has it that DOS used this to safeguard against totally inept users typing math equations at the prompt.
Drive letters the same story... /media or e: hmmmm... which requires less analysis... Once again the uniqueness reduces the time and trouble identifying the user´s request and also cuts down on the risk of misinterpreted commands. The combination of one letter and the colon occurs nowhere else in the OS, thus making it extremely easy to interpret user input.
There is a rule I always follow when writing anything that has to listen to the end user...
¨Treat them like geniuses but assume they´re painfully stupid¨
Input is always a lot harder than output, and being able to quickly isolate successful vs uninteligible commands is greatly aided by the uniqueness of the identifiers used.
The current unix directory
The current unix directory structure (DS) has evolved for several decades and its current state represents a significant effort and is the result of a long learning process. The entire arrangement has very good reasons to be has it is.
"C:\Users", what a great accomplishment! LOL
"C:\Documents and Settings"!!! OMG LOL
"C:\" Drive letters! "These [REALLY] are esoteric and confusing labels"! LOL
In unix (and family) the user only needs to care about the directory structure in its own user directory (home). It should not have to go to /, /usr, /etc or any other system directory. It may not even have permission to do so.
Regards.
-In unix (and family) the
-In unix (and family) the user only needs to care about the directory structure in its own user directory (home). It should not have to go to /, /usr, /etc or any other system directory. It may not even have permission to do so.-
But when I have a new harddrive, it spawn a new letter, and if I remove one I know what directory disappears from my computer...
When everything is mapped under /media I have no visual clue about what will disappear when I remove an hard drive from the computer.
By the way read the fucking manual; cause actually it is the same in windows underneath...
Basically in windows you have letter to have some visual help, but you can also map everything under a single letter.
But from the common mortal it is way from being the simplest thing.
Again linux as a desktop fail...
Holy crap. I think the
Holy crap. I think the kernel has spoken. Only the god-kernel would refer to the user as "it."
LOD :D Dude, I think you are
LOD :D
Dude, I think you are wrong. That was the voice of the god kernel's avatar . :)
The user doesn't need to go
The user doesn't need to go into /, /usr, or /etc ? What are you smoking? If they want anything to work the way they want it they do indeed have to go in there. Take something like fedora where the default config is restrictive. Bust out your favorite text editor and start hackin' because the defaults arent goin' to cut it.
The System V design is not a bad form of organization. Its just not simple enough for most people. Drive letters are far better than /dev/sda or /dev/hda . I'll remember that my music is stored on E:, but its not as easy to remember whether its on /dev/hdb3 or /dev/hdb4.
what about "/"
what about "/"
meaningful???!!!
:-)
Yeah,I promise will not
Yeah,I promise will not touch anything in /etc and wont change any configuration, wait a second, who will do then ? You ?
We are not in corporate or university environment which has one god-like administrator do all configuration and lots of mortal users which only use applications. Remember that we are talking about desktop use of Linux. So unfortunately this box has no administrator other than me.
No, you dont just get it.
belive me, I don't touch
belive me, I don't touch /etc to configure my pc.
What kind of task need a manual editing of configuration files on a recent user-friendly distro?
Hey and touch pad is not
Hey and touch pad is not responsive, it the most annoying I've met
Hard to position cursor, taps do not work, mess, I could earn for 10 vista licenses instead of messing with ubuntu. Hate it
heh.. i install vi under
heh.. i install vi under windoze as my default text editor. gvim ftw.