Advertisement

Your Unix and why you use it

Started by June 24, 2003 06:38 AM
69 comments, last by Flarelocke 21 years, 2 months ago
quote: Original post by CoffeeMug
quote: Original post by -vic-
And i think someone has already given a fine explanation why you need to compile drivers into the kernel (was it Null and Void? Can't remember...)

I can't find the explanation... Anyway, I am willing to bet it's an explanation of Linux's shortcomings that make the compilation necessary. There is no reason a modern OS should resort to compiling drivers into the kernel.


Someone please share this explanation with us, because i too can't remember very well the reason... from what i remeber, the problem is not Linux - it's something related to the companies not writing drivers for Linux, or something like that.

quote:
quote: Original post by -vic-
I find it funny you like Gentoo so much...

Gentoo lets me get a clean, efficient, usable system. This is something I feel I get with Windows every time I do a fresh install. Gentoo is the only distro that seems to give me this ability. If they had a nice install it would be even better, but they don't. At least once I have everything set up my system is usable, unlike other Linux distros.


That Gentoo is efficient i have no doubt about it, but i don't know how it can be more usable than the others... after all, X, Gnome, KDE, they're all the same no matter which distro you use.

Victor.



[edited by - -vic- on July 1, 2003 11:40:27 AM]
c[_]~~
quote: Original post by Ravuya

Kernel 2.4.something this summer, running 2.2.19 right now because it''s stable.

Resist everyone
Talk on RavForum(tm)


Linux 2.4 is stable!

I use GNU hurd, because I like it

our new version has many new and good features. sadly, the good ones are not new and the new ones are not good
Advertisement
quote: Original post by -vic-
That Gentoo is efficient i have no doubt about it, but i don''t know how it can be more usable than the others... after all, X, Gnome, KDE, they''re all the same no matter which distro you use.

As far as I am concerned, bloat kills usability. With bloated distros there are so many useless dependencies that if one package goes wrong, you can say good bye to your entire system. On Gentoo I can easily install X without all the useless extra packages, I can put Gnome or KDE and install my favorite web browser (Opera) without installing Mozilla that seems to screw up the whole system. With my default Mandrake install, KDE just doesn''t work (shows me a red screen), Gnome is also very buggy. If one app crashes, I have to kill X and restart it. This does not usually happen to Gentoo installs from what I''ve heard.

quote: Original post by tortoise
Apple did a great job ditching X. Things like Apple and OSX is what the Unix world needs more of.

When X works, it''s just fine. But when things go wrong it''s often a complete nightmare.


I agree, but the reason why Apple could do it and the Linux/BSD community cannot is because Apple has their own software that they use and everything. On the other hand, there is some firmly embedded software in the Linux/BSD community that relies heavily on X, and to do away with it completely would involve completely rewriting a lot of software.
I use Redhat Linux 9 on my main computer. I prefer Linux over Windows because its a much more comfortable programming enviroment with many great free tools and libraries. Besides some of the more academic(Im a CS student). software stuff is only available for unix''s

In general i think Linux has become pretty slick, its still not for computer newbies, but in some aspects the Gnome/KDE GUIs have better functionality than the Win gui. X doesnt perform anywhere near as fast as the win gui though

I use Eclipse for Java and C++ programming, Quanta Plus for web stuff, Emacs for Latex etc. I have a windows xp partition which is mostly used for playing games.

When im in Windows XP im playing, when im Linux im working/studying

I''ve never really considered the other unixes, mostly because Linux seems to have the broadest support, and you need a solid base of users to play your games!
What''s so bad about X? I know its performance is not the best, but... is there anything else X sucks at?

Victor.
c[_]~~
Advertisement
Now things are just getting stupid.

quote: I happen to believe that the #1 problem with Unix usability is X. It has far outlived its usefulness. It gets in the way with progress. It''s architecturally ugly and unnecessarily complex (I can''t think of many people in their right mind who''d rather program with Xlib than even Win32).
The only problem with usability in X right now is that you can start it without Gnome or KDE. It''s too minimalist to be useful out of the box.

No one actually does program in Xlib anymore except the people who write Qt and Gtk. I don''t know what you mean by "architecturally ugly and unnecessarily complex", but you''re probably wrong. X''s architecture is simple:

Local client -> network loopback -> X server
Remote client -> network -> X server

quote: But now, it''s incredibly important to provide users with a consistent interface, which require the windowing system to implement both. Otherwise, we''re stuck with the current mess of 1,000,000 different possible GUI''s.
No, it''s not important to provide users with a consistent interface. It''s important to provide users with whatever GUI they want. It is, in most cases anyway, their computer, after all. IMNSHO, people should pick one UI and agree to put it on by default under all distributions, and anyone with the know-how to switch is welcome to do so.

quote: In my humble opinion, Unix has existed longer than it technically deserves to. In many ways, it reminds me of x86 architecture in that it is very respectable in what it can do, but leaves a lot to be desired in how it actually does those things. The architecture of the typical Unix operating system is frightfully unchanged from its early days. In fact, even NT has a more "modern" kernel than the typical Unix (of course, it must be noted that I''m talking about the NT _kernel_, which has nothing to do with Windows or even Win32).
If by "modern" you mean crappy, then you would be correct. The NT kernel pays lip service to modern microkernel architecture, but doesn''t even come close to QNX or the Hurd. So many superfluous things are added to the NT kernel that it''s almost a farce to even claim it''s a "micro" kernel. (there are other aspects of microkernels that make it more than just fat vs. skinny -- message passing and such are different between micro and macro kernels)

As for the rest of the Unix architecture, point out some concrete problems with it. Sound difficult? There''s now alsa. Printing? CUPS. /dev is gibberish? Use devfs. Graphics? X. But X doesn''t use...? Yes it does, it just uses an extension for it.

quote: 1. The notion that Linux developers should focus on a kernel and let others deal with higher level modules. This causes a great deal of incompatibility and generally crap software. An OS is a lot more then just kernel and the right thing to do for Linux developers is design a set of standard APIs and let others write software for them. An example is a huge amount of incampatible GUIs.
There''s going to be some point at which you have to say "Okay, here''s the API. Anything beneath this API is my territory, and anything above it is your territory". The linux developers have chosen to draw the line so that they have a manageably small territory.

The standard APIs you''re talking about is called POSIX, except where things like sound fall outside the scope of POSIX.

quote: 2. Function names like "fork" may have been fine forty years ago, but they are not fine today. It''s about time a new set of APIs was designed and old APIs were depricated.
You mean god handed down a new set of commandments and we didn''t get the memo? Commandment 1: Thou shalt not use short function names.

Please elaborate.

You didn''t actually think it meant a 4 pronged decimeter-long utensil made of stainless steel, did you? Fork is perfectly descriptive of what''s happening. Two copies of the same process are made, and fork() returns from those processes with different return values -- for the parent the pid of the child and for the child, 0.

quote: 3. Why does one need to compile the drivers into the kernel in order for them to work efficiently?
It''s called context switching. In order to preserve the integrity of the kernel''s memory space (i.e. prevent malicious programs from tampering with it), the kernel needs to ensure that its own memory is not accessible from user-space programs. Then, in order to switch between kernel-space and user-space, these protections need to be switched on and off. This takes a little bit of time. Obviously if it happened more often, then it would take more time.

Anyway, many people like it that way. The FSF likes it because it ensures that drivers are GPL''d.

quote: 4. A common configuration standard (XML anyone?) must be enforced in order to ever design good config tools.
It''s happening, albeit slowly, and probably won''t ever happen with some things (small projects maintained by one person, for which very little setup is needed). Things like Apache and Samba will probably get around to it. XFree86 might, if it catches on, and if the problems with development are worked out.

quote: Gentoo is the only distro that seems to give me this ability
Well, this is a property of source-based distributions. Others include Sorcery and its forks (Lunar and Source Mage).

quote: That Gentoo is efficient i have no doubt about it, but i don''t know how it can be more usable than the others... after all, X, Gnome, KDE, they''re all the same no matter which distro you use.
Well, not quite. I use a source-based distribution (Source Mage), and my Mozilla''s different from yours because it''s compiled with gcc 3.3 (gets rid of that bug that prevents optimization of the JS code), and I can select exactly the things to compile in (which is basically everything, but I *could* deselect things if I wanted.)

In addition, things are newer in source-based distributions because incrementing a version is simpler. (most of the time, just increment the version number in a script, at least in sorcery and its forks)

quote: Linux 2.4 is stable!
Well, techically. The early 2.4 kernels were called "the Kernel of Death" because they weren''t as stable as expected (2.4.0 was less stable than 2.2.0, for example). About 14 minor versions later, it''s no longer the kernel of death, and is, in fact, quite stable.

quote: With bloated distros there are so many useless dependencies that if one package goes wrong, you can say good bye to your entire system.
Yep. Thank goodness for cast --fix (which is, I''m told, the leg Source Mage has up on Gentoo). Ah, the fond memories of forcing a glibc upgrade and watching everything down to ls break.

quote: With my default Mandrake install, KDE just doesn''t work (shows me a red screen), Gnome is also very buggy. If one app crashes, I have to kill X and restart it. This does not usually happen to Gentoo installs from what I''ve heard.
Dang. That''s one buggy setup. I''m pretty sure gdm acts as a watchdog these days (notifies you when an app crashes). With Gnome-1.4 (I''m now on 2.2), this happened all the time. Now it doesn''t happen at all (granted, more has changed than just the version numbers)

quote: What''s so bad about X? I know its performance is not the best, but... is there anything else X sucks at?
Yep. Being well liked

X is bad because people with experience with windows like to complain about the absurdity of a vital system being run through the network (In linux, the loopback (127.0.0.1) is always on. In windows when you have no network device installed, the loopback is not functional). X is bad because it does half-hearted attempts at drivers, rather than just not doing them at all. (if X did not attempt them, people would complain that no driver exists. Since X does attempt them, people think the whole of X is buggy slow, and bloated.) Even the difference between an old official Nvidia driver and a new official Nvidia driver makes a world of difference.

X is not slow -- I can launch Mozilla while compiling the kernel and mozilla will load, download, and display a page before IE''s splash screen would have disappeared in Windows. (gotta love these compiler optimizations, brand new Nvidia drivers, and up-to-date mozilla)
---New infokeeps brain running;must gas up!
quote: Original post by CoffeeMug
Even I (an avid Windows supporter) was able to easily take advantage of OpenOffice and thought it was a pretty good tool. What exactly is it about OpenOffice that turned you off?
This was three years ago. Back then, it was still named StarOffice. Feel free to extrapolate.

I''ve pretty much decided on OS X Panther as my next platform (which implies purchasing a Mac; I''m holding off until Powerbook G5s are announced). I read the product pages recently and was quite impressed at all that comes with it, from iChat AV to Xcode to Expose to the revamped Finder to FontView. All on top of solid BSD Unix.

quote: Original post by 666_1337
I use GNU hurd, because I like it
Hoot!
quote: Original post by Flarelocke
The only problem with usability in X right now is that you can start it without Gnome or KDE. It''s too minimalist to be useful out of the box.

No one actually does program in Xlib anymore except the people who write Qt and Gtk. I don''t know what you mean by "architecturally ugly and unnecessarily complex", but you''re probably wrong. X''s architecture is simple:

Local client -> network loopback -> X server
Remote client -> network -> X server
Actually, the architecture makes sense, but the protocol needs help. X transmits ever single graphical operation over the network; a higher-level protocol that first described high level objects (only once) and subsequently transmitted events modifying the states of those objects would be nice.

quote: No, it''s not important to provide users with a consistent interface. It''s important to provide users with whatever GUI they want. It is, in most cases anyway, their computer, after all. IMNSHO, people should pick one UI and agree to put it on by default under all distributions, and anyone with the know-how to switch is welcome to do so.
I agree. What would be nice - and note that I keep saying "nice", because I understand that people are free to do whatever they want - would be to see GUIs that interoperated completely and could assume a user-specified "native" look and feel, so your KDE and GNOME apps could look just like your Window Maker apps, if that was your preference.

Unlikely, but hey, I can dream.

quote: As for the rest of the Unix architecture, point out some concrete problems with it. Sound difficult? There''s now alsa. Printing? CUPS. /dev is gibberish? Use devfs. Graphics? X. But X doesn''t use...? Yes it does, it just uses an extension for it.
I would be interested to see a completely headless Unix-inspired OS architecture. Essentially, all the fundamental tools we know would be micro-services running on the machine which would allow the construction of composite apps even in GUI mode. Command-line tools would simply interface these micro-services.

I''ll probably explain this better in a new thread somewhere else.

quote: Anyway, many people like it that way. The FSF likes [compiled-into-the-kernel drivers] because it ensures that drivers are GPL''d.
Great for the FSF. Okay technically. Not great for people who want to be end users.

quote: It''s happening, albeit slowly, and probably won''t ever happen with some things (small projects maintained by one person, for which very little setup is needed). Things like Apache and Samba will probably get around to it. XFree86 might, if it catches on, and if the problems with development are worked out.
The accelerator needed would be tools for generating configuration file formats (per-application configurations) and integrating that with the core application (a derivative of a standard XML parser, basically). Doable, if someone thought of it and was interested.
quote: Original post by Flarelocke
If by "modern" you mean crappy, then you would be correct.

If you want to learn about the workings of NT kernel, I suggest you to buy this book. Perhaps it will change your opinion.
quote: There's going to be some point at which you have to say "Okay, here's the API. Anything beneath this API is my territory, and anything above it is your territory". The linux developers have chosen to draw the line so that they have a manageably small territory.

Nothing stops the developers from publishing important APIs on various levels above that point. They don't have to implement it, just need to publish a set of reasonable interfaces. POSIX is very limited in scope, we need a few more guidelines than that.
quote: You mean god handed down a new set of commandments and we didn't get the memo? Commandment 1: Thou shalt not use short function names.

If you were a Linux user learning Win32 and you see a "knife()" function, would it be immediately obvious what it does?
quote: It's called context switching.

What does context switching have to do with it?? Noone is suggesting to run the drivers in different processes. You just link to them dynamically instead of statically, that's all. There is absolutely no context switching involved.


[edited by - CoffeeMug on July 1, 2003 8:33:14 PM]

This topic is closed to new replies.

Advertisement