Significant Interactivity Boost in Linux Kernel
An anonymous reader writes "The Linux kernel team is at it again. Linux creator Linus Torvalds recently proposed a patch to offer interactive processes a boost, greatly benefiting the X desktop, as well as music and movie players. O(1) scheduler author Ingo Molnar merged Linus' patch into his own interactivity efforts, the end result nothing short of amazing... The upcoming 2.6 kernel is looking to be a desktop user's dream come true."
Absolute astounding. I am in complete and utter shock over this. Truly, truly the most amazing thing I've ever seen or heard.
Now what the hell is this article about?
He bought a Slashdot subscription, and sees new articles before they're posted and constantly reloads him.
Erm, when was the last time you used Linux then? Running GNOME on RedHat 8 here, no problems with cut-and-paste between KDE/GNOME/Motif apps :-)
Uh...check out Windows 2000 scheduling algos. If anything, Linux is becoming the next MS
At it again? At what again? That sorta makes it sound like a girls gone wild video or something. Kernel Dev's Gone Wild volume 3, where Ingo and Linus bare their breasts for beads at a Linux user conference in Tampa Bay - no, that's just too strange...
Oh, one more thing:
Hello, my name is Ingo Molnar. You killed my father: prepare to die.
Robots are everywhere, and they eat old people's medicine for fuel.
There's no reason not to implement both high-throughput scheduling for big servers and low-latency scheduling for desktops in the same kernel... just mark each process table entry with a bit saying whether this process is 'interactive' (favour fairness and low response times) or 'batch' (favour total throughput and bigger timeslices at the expense of fairness).
-- Ed Avis ed@membled.com
Actually, Linus's patch doesn't improve things any better than the scheduler patch it is Linus's patch combined with the scheduler patch that make it such a huge improvement. Again... its the COMBO patch that's arousing so much excitement.
Inconceivable!
Heck, I use RH 7.3/KDE, and I frequently run 'doze in a VMware window. I can even copy/paste between Windows and Linux apps seamlessly!
I have no problem with your religion until you decide it's reason to deprive others of the truth.
Ouch, those are fighting words.....
'ta
Something forms itself from the silent void of the empty mailing lists and the noisy chaos of the crowded mailing lists. It shapes and protects us, it entertains and challenges us, it aids us in our journey through the ether world of software. It is mysterious; it is at once source code and yet object code. I do not know the name, thus I will call it the Tao of Linux.
If the Tao is great, then the box is stable. If the box is stable, then the server is secure. If the server is secure, then the data is safe. If the data is safe, then the users are happy.
In the beginning there was chaos in Unix.
Tanenbaum gave birth to MINIX. MINIX did not have the Tao.
MINIX gave birth to Linux 0.1 and it had promise.
Linux gave birth to v1.3 and it was good.
v1.3 gave birth to v2.0 and it was better.
Linux has evolved greatly from its distant cousins of the old. Linux is embodied by the Tao.
The wise user is told about the Tao and contributes to it. The average user is told about the Tao and compiles it. The foolish user is told about the Tao and laughs and asks who needs it.
If it were not for laughter, there would be no Tao.
Wisdom leads to good code, but experience leads to good use of that code.
The master Cox once dreamed that he was a Kernel. When he awoke he exclaimed: "I don't know whether I am Cox dreaming that I am a Kernel, or a Kernel dreaming that I am Cox!"
The master Linus then said: "The Tao envelopes you. You shall create great code for Linux."
"On the contrary," said Cox, "The Tao has already created the code, I will only have to find it and write it down."
A master was explaining the nature of the Tao to one of his students:
"Is the Tao in the VM subsystem?" he asked. "Yes," replied the master.
"Is the Tao in the scheduler?" he queried again. "The Tao is in the scheduler."
"Is the Tao even in the modules?". "It is even in the modules," said the master.
"Is the Tao in the Low-Latency Patch?"
The master frowned and was silent for much time.
"You fail to understand the Tao. Go away."
The Tao is the yin and the yang. It is the good and the evil, it is everything and yet it is nothing, it is the beginning and the end.
The Tao was there at the kernel compile, and it will be there when the kernel panics.
A novice user once asked a master: "Why compile in C when C++ is more popular?"
"Why a monolythic kernel when Mach is more popular?"
"And why use ReiserFS when ext2 is more popular?"
The master sighed and replied: "Why run Unix when NT is more popular?"
The user was enlightened.
A frustrated user once asked a master: "My kernel has panicked, should I post to lkml?"
"No," replied the master, "You will only bother the Tao."
"Should I rm -rf?"
"No, you will have wasted the Tao's time."
"Well should I search the web?"
"You will search for all eternity," said the master.
"Perhaps I should try FreeBSD?"
"Then you will have disgraced the Tao."
"I suppose I could try gdb," said the user.
The master smiled and replied: "Then you will have made the Tao stronger."
A stubborn user once told a master: "I run version 2.2. I always have, and I always will."
The master replied: "You are foolish and do not understand the Tao. The Tao is dynamic and ever changing. Linux strives for the perfection that is the Tao. It flows from version to version with peace."
"So my Linux does not have the Tao, so what?" said the foolish user. "Oh your Linux is of the Tao," said the master. "However, the Tao of Linux follows the Tao of the C library. One day the C library will change, and your Linux will be left behind." The user was silent.
An angry user once yelled at a master:
"My Linux has panicked! What lousy software it is, I hate it so!"
"You are insulting the Tao," said the master. "The Tao is everywhere bringing order to hundreds of networks, aiding thousands of users, and fighting that of which we call the 'lame.' Do not disrespect the Tao; however, the Tao will forgive you."
"I apologize," said the user, "And I will be more forgiving the next time the Tao fails me."
"The Tao has not failed you, it is you that has failed the Tao," said the master. "The Tao is perfect."
The Tao decides if a kernel shall compile, or if it shall abort.
The Tao decides if a kernel shall boot, or if it shall freeze.
The Tao decides if a kernel shall run, or if it shall panic.
But, the Tao does not decide if a box will have no hardware failures. That is a mystery to everyone.
A young master once approached an old master: "I have a LUG for Linux help. But, I fail to answer my students' problems; they are above me."
The master replied: "Have you taught them of the Tao?" he asked. "How it brings together man and software, yet how it distances them apart; how if flows throughout Linux and transcends its essence?"
"No," exclaimed the apprentice, "These people cannot even get the source untarred."
"Oh, said the master, "In that case, tell them to RTFM."
A master watched as an ambitious user reconstructed his Linux.
"I shall make every bit encrypted," the user said. "I shall use 2048 bit keys, three different algorithms, and make multiple passes."
The master replied: "I think it is unwise."
"Why?" asked the user. "Will my encryption harm the mighty Tao, which gives Linux life and creates the balance between kernel and processes? The mighty Tao, which is the thread that binds the modules and links them with the core? The mighty Tao, which safely guides the TCP/IP packets to and from the network card?"
"No," said the master, "It will hog too much cpu."
The core is like the part of the mind that is static. It is programmed at a child's creation and cannot be changed unless a new child is made; unless a new kernel is compiled.
The modules are like the part of the mind that is dynamic. It is reprogrammed every time one learns new knowledge; every time one learns better code.
One is yin, the other yang. Each is nothing without the other.
A novice came to lkml and inquired to all the masters there: "I wish to become a master. Must I memorize the Linux header files?"
"No," replied a master.
"Must I submit code to Bitkeeper?"
"No," replied the master.
"Must I meditate daily and dedicate my life to Linux?"
"No," replied the master again.
"Must I go on a quest to ponder the meaning of the Tao?"
"No. A master is nothing more than a student who knows something of which he can teach to other students."
The novice understood.
And thus said the master:
"It is the way of the Tao."
A user came to a master who had great status in lkml. The user asked the master: "Which is easier: implementing new features to the kernel or documenting them?"
"Implementing new features," replied the master.
The confused user then exclaimed:
"Surely it is easier to write a few sentences in the man page than it is to write pages of code without error?"
"Not so," said the master. "When coding, the Tao of Linux opens my eyes wide and allows me to see beyond the code, to let the source flow from my fingers, to implement without flaw. When documenting, however, all I have to work with is a C in high school English."
He who compiles from the stable tree is stubborn
and unwilling to change, but is guaranteed reliability.
He who compiles from the current tree is wise but perhaps too conformist, but is guaranteed steadiness.
He who compiles from the unstable tree is adventurous and is guaranteed new innovations: some good, some bad.
He who compiles straight from Bitkeeper is brave but guaranteed turbulence.
They are all of the Tao. One shall respect the old, and debug the new; none shall argue over which is greatest.
There once was a user who scripted in Perl: "Look at what I have to work with here," he said to a master of core, "My code is interpreted dynamically, the syntax is unique and simple, I have sockets, strings, arrays, and everything I could ever need. Why don't you stop meddling in C and come join me?"
The C programmer described his reasoning to the scripter: "Scripting is to C as ebonics is to Latin. If the scripter does not grow beyond that of which he scripts, he will surely {die}. Besides, without C, how can there be script?"
The scripter was enlightened, and the two became close friends.
For that matter, why are you trying to do two completely different work loads and environments with the same kernel? You compile the kernel tuned to batch workloads for the server, and recompile the kernel tuned to interactive workloads for the desktop. You have the source.
--binkley
Im sorry, its not the kernel that makes a desktop OS what it is, its the userinterface on top. Linux isnt going to be truely Desktop friendly untill X11 gets replaced with something that doesnt completely suck. You shouldnt need a high end video card to make X11 nice and smooth or have to use a stripped down UI. If Linux wants to set it self apart from all the other OS's its going to need its own desktop engine. I do agree that the 2.6 kernel is going in the right direction, I just belive the rest of the OS is being left really far in the past.
My 2 1/2 cents Canadian
Many people are not gonna compile their own kernel, especially those running something like Redhat in a corporate environment. It makes more sense to code it to work either way.
"As an avid Microsoft fan..."
And you admit this on Slashdot?! You are brave.
I believe in de-evolution. God made the world perfect, man fell, and its been going downhill ever since!
or alternativly...
make xconfig and enable/disable options for a perfect kernel.
Windows NT server and workstation have different scheduling priorities controled by a setting in the regersetery.
thank God the internet isn't a human right.
> Uh...check out Windows 2000 scheduling algos
Sure thing. What was the address of their anoncvs servers again? Oh wait, I forgot the "turn into a powerful government and sign a couple hundred non-disclosure agreements"-requirement.
Nahm I don't see how it would make "apt-get install foo" any easier.
Especially because even though apt-get automatically fetches and installs dependencies, it takes an hour to do so over dial-up. And no, home-priced broadband isn't available everywhere in the United States, let alone everywhere in the world.
Will I retire or break 10K?
... had i the possibility, i'd surely give you a (+10: Funny Troll)
:-)
you just made my day a bit happier
... which doesn't have cut and paste at all outside the "Edit" menu.
Now, I am a long-time user of Windows, but am (and have been always) increasingly tempted by switching to a Linux-based distribution, probably Redhat, on my main desktop machine.
With that lack-of-linux-knowledge, could someone explain why precisly this is a "Significant Interactivity Boost in (the) Linux Kernel"? Thank you.
I find some things jump a little (e.g. dragging windows around) at the moment (RH8, Athlon MP 1600, GeForce 2) in X.
:-)
On a 475MHz laptop with ATi Rage Pro video, it runs just as smooth as XP does (they both jump a bit when dragging windows around).
I know this shouldn't happen on the fast PC though. I must have something set up wrongly. Maybe the latest kernel will make it less noticeable though
Follow me
It's:
My name is Ingo Molnar. You kill -9'd my parent process. Prepare to die()
I cannot tell you how long I've been waiting for something like this. As an avid Microsoft fan, one of my biggest beefs was the inferior performance of the Linux GUI and its components. Although I will learn the console eventually, I will still probably use the GUI as my cheif method of computing since I find it very fast and efficient. Maybee this will finally blur the line between OS's enough to get more people to switch over./i.
One should remember that X was engineered for flexibility and extensibility rather than speed. So the kernel may make some things better, but it is probably not a major bottleneck in many applications.
Most home-users do not use the advanced features of X (such as XDM, and serving out the display over a network), so I think that one of the things that is necessary is the development of a GNOME suite over framebuffer, which would provide even better performance at the cost of stability. Since GNOME could also work on top of X, we could have a truly extensible environment that could suit home users and corporate users (who may use X).
LedgerSMB: Open source Accounting/ERP
Stop stealing that intellectual property from SCO already. Have you no shame? The gig is up: there's no way you could keep putting this stuff out without ripping off the hard working SCO programmers.
Fermat's other theorem: "I have a simple proof, but I can't write it down as I fear it's a DMCA violation to discuss it"
Except that doesn't work if the X app is being displayed locally but run remotely. Or at least it doesn't seem to.
Well, okay. Look. I just opened up my X server here on my mac os X box, sshed with X tunneling to my university's Solaris box, opened up xchat, selected some text, and attempted to paste it into a nearby xterm. Oh, hey, guess what, didn't work. I tried what you said. I selected some text, i clicked on the xterm, i tried middle-clicking and right-clicking. Nothing there. Care to tell me what i'm doing wrong?
Anyway, the whole select-to-copy thing is HORRIBLE GUI design. What if you want to select something in order to edit it without *blowing away* the clipboard? What if your hand slips and you select a couple letters of text by accident before you can paste something important into its destination? I, personally, have intense problems with the copy-paste thing because at some point i picked up the stupid habit of often scrolling by selecting text and dragging off the edge of the window, which will obliterate the textboard. And, worst of all, there's that nagging little question: let's say i'm editing a file, and i want to select some text in the part of the document i'm editing, "cut" it, scoll up to the top of the document, delete part of a paragraph, write a couple lines, and then paste what i just cut. What X's copy/paste means is that i must select the text i want to move to copy (making sure not to delete it yet, becuase it would be too easy to accidentally select text and copy over what i've written, losing it forever), scroll up, click where i want it to go, paste, and then delete and rewrite the text around it, scroll back down, and then delete the text i copied. Yeah, way to go on making the interface fit the needs of the user. Dammit.
And then there's the fact that, still, mostly due to the broken silliness of X copy&paste, most applications don't quite work the same, becuase they've all fucking implemented the clipboard in nonstandard ways because those unstandard ways are "better". Which they are, unless for some silly reason you want to copy and paste between applications. We've got the "clipboard" and the "cut buffer" and i don't know what either means, and lately some GNOME apps and such have taken to signing up with a sane (i.e., "copy" and "paste" are commands, and as such require a menu use or a key combination). And then vim has like its ten little internal clipboards, and emacs has some clipboard system i don't even pretend to know the first thing about, and i mostly use vim as my text editor in unix. And none of these apps i've ever seen give the option of choosing which copy/paste behavior you want: i mean, none of them will give you a nice little preference that says "select to copy" vs "select 'copy' from menu to copy" vs "have ten little internal cycling cut buffers with some arcane method of manipulation". And i still don't know how copy/paste within vim is supposed to interact with other X apps. I'd test it right now, but for some reason still unknown to me, i can't get gvim to run over my ssh-tunneling setup. When i try, it says:
X11 connection rejected because of wrong authentication.
XIO: fatal IO error 32 (Broken pipe) on X server "localhost:13.0"
after 0 requests (0 known processed) with 0 events remaining.
The connection was probably broken by a server shutdown or KillClient.
Maybe it doesn't like my MIT magic cookies, or something? But I digress. Face it. Copy and paste is still the most broken thing about X, and that's saying a lot. And maybe i'm just dense, but i still can't figure out how to change my X keyboard mapping on these silly Solaris boxes.
-- super ugly ultraman
bashing linux/x/kde/whatever speed, I'm willing to bet you've never doen a full build (ala Gentoo) and actually optimized it for your system...have you? KDE 3.1 is as fast or faster than windows XP on my 1ghz box...it took a while to build, but it's well worth it.
Many people are not gonna compile their own kernel, especially those running something like Redhat in a corporate environment. It makes more sense to code it to work either way.
;-) That means a desktop edition could install a low-latency version and a server edition could install a high-throughput version.
How about this radical idea--
Let Red Hat, SuSE, etc. compile different kernels with different options and install them as needed
LedgerSMB: Open source Accounting/ERP
Is here
On Fri, 28 Feb 2003, Andrew Morton wrote:
> >
> > Andrew, if you drop this patch, your X desktop usability drops?
>
> hm, you're right. It's still really bad. I forgot that I was using distcc.
>
> And I also forgot that tbench starves everything else only on CONFIG_SMP=n.
> That problem remains with us as well.
Andrew, I always thought that the scheduler interactivity was bogus, since
it didn't give any bonus to processes that _help_ interactive users
(notably the X server, but it could be other things).
To fix that, some people nice up their X servers, which has its own set of
problems.
How about something more like this (yeah, untested, but you get the idea):
the person who wakes up an interactive task gets the interactivity bonus
if the interactive task is already maxed out. I dunno how well this plays
with the X server, but assuming most clients use UNIX domain sockets, the
wake-ups _should_ be synchronous, so it should work well to say "waker
gets bonus".
This should result in:
- if X ends up using all of its time to handle clients, obviously X will
not count as interactive on its own. HOWEVER, if an xterm or something
gets an X event, the fact that the xterm has been idle means that _it_
gets a interactivity boost at wakeup.
- after a few such boosts (or assuming lots of idleness of xterm), the
process that caused the wakeup (ie the X server) will get the
"extraneous interactivity".
This all depends on whether the unix domain socket code runs in bottom
half or process context. If it runs in bottom half context we're screwed,
I haven't checked.
Does this make any difference for you? I don't know what your load test
is, and considering that my regular desktop has 4 fast CPU's I doubt I can
see the effect very clearly anyway ("Awww, poor Linus!")
NOTE! This doesn't help a "chain" of interactive helpers. It could be
extended to that, by just allowing the waker to "steal" interactivity
points from a sleeping process, but then we'd need to start being careful
about fairness and in particular we'd have to disallow this for signal
handling.
Linus
----
===== kernel/sched.c 1.161 vs edited =====
--- 1.161/kernel/sched.c Thu Feb 20 20:33:52 2003
+++ edited/kernel/sched.c Wed Mar 5 19:09:45 2003
@@ -337,8 +337,15 @@
* boost gets as well.
*/
p->sleep_avg += sleep_time;
- if (p->sleep_avg > MAX_SLEEP_AVG)
+ if (p->sleep_avg > MAX_SLEEP_AVG) {
+ int ticks = p->sleep_avg - MAX_SLEEP_AVG + current->sleep_avg;
p->sleep_avg = MAX_SLEEP_AVG;
+ if (ticks > MAX_SLEEP_AVG)
+ ticks = MAX_SLEEP_AVG;
+ if (!in_interrupt())
+ current->sleep_avg = ticks;
+ }
+
p->prio = effective_prio(p);
}
enqueue_task(p, array);
In X or CLI with mouse, how do you do a highlight - copy - highlight - replace?
This has been a aggravation to me since I got my first linux box running, and would have been usefull in this post when I pasted in aggravation from Kdict next to aggrivation then had to ctrl-arrowkey backspace.
A link to a page with these type of operations would be most handy.
This is where I keep my clever quotes "" Yup I only got a pair, so I better not waste em!
Wow, you can cut and paste text? I assume that preserves all font/style/size information, right? What if there's a graphic embedded in the text, does that come along for the ride?
...wearing a skin-tight topless leather jumpsuit, with cutaway buttocks and transparent crotch panel.
There was a time when idiots did not walk the earth.
Linux still screams, I have a single server with two gig's of ram in it that runs 100 desktops (KDE) simultaneously. Yes it indeed takes alot of ram to run all of the new software. But for a machine that runs 2200 processes that is a impressive feat. It is a dual processor box and I have yet to see it reach over 30% processor utilization, a testament to the efficency of the kernel.
Software today requires a ton of ram, this has nothing to do with efficency of the linux kernel.
Along with this goes the idiots that think there is something wrong with X. I run this stuff in a corporate environment and X windows is linux's biggest strength. Remove X Windows and I would have to eliminate our corporate use of Linux.
Got Code?
I like the idea of low-latency scheduling for desktops.
:-)
;-)
another revolution! [...] again
'Round and 'round as in revolutions per minute?
LedgerSMB: Open source Accounting/ERP
I am curious... which GUI do you use in Linux? What speed processor and how much RAM do you have? Which distribution (or kernel) of Linux do you use?
I ask because it has been my experience that Linux is already considerably more responsive (in terms of GUI performance) than Windows. I use KDE 3.1 with Linux 2.4.20 and I have 512 megs of RAM and a 1.46 Ghz processor.
Now, least people accuse me of trolling (or of pandering to the Linux crowd), I should point out that I am not sure why Windows is so unresponsive. It seems to have something to do with hard drive access. It seems to me that Windows XP is acting like I'd expect it to if I didn't have DMA enabled for my hard drives. Basically, whenever I access the hard drive, the GUI becomes almost completely unresponsive, sometimes taking almost a minute to fire up even a browser. I have checked, though, and I do have DMA enabled.
So I truly do not know what is going on with Windows, but in Linux I just don't have these problems. Under heavy disk access, it may take a few seconds to fire up a browser in Linux, but that's it. MP3s keep playing, my apps are still responsive, etc. etc.
Oceania has always been at war with Eastasia.
Don't be ridiculous. We are having a serious conversation here.
Never said they innovated anything, but the whole idea of Windows was to be a user responsive operating system. Thus they came up with the whole idea of floating priorities and boosts to foreground applications. In this case, they did come up with the concept before the OS community got there.
I don't like the idea of my foreground app getting a boost. It leads to more complex code that, in turn, can lead to support problems and bugs.
Smoothness when dragging stuff around probably has more to do with the 2D hardware on your graphics adaptor and the drivers for it. Even though this new kernel apparantly will make things feel snappier I still wouldn't be surprised if GUI jumpiness still happens. 3D acceleration seems to be the hot priority right now. Hence Quartz Extreme in OS X, since the video card is being optimized for 3D make everything look like it's 3D.
I can't wait to watch the 3D animation of the kernel source with this...the best part will be seeing the patch! :-)
" As an avid Microsoft fan, one of my biggest beefs was the inferior performance of the Linux GUI and its components."
That would depend on exactly what you talking about. Those linux users running something like Blackbox would laugh at you for saying so. I'd also suggest as a user of both, KDE and XP have about the same interactive performance as well.
There's no doubt Windows still has more polish than Linux as a whole when it comes to the desktop. And while anything that improves any of LInux's many "gui's" is a welcome event, Linux's gui's are hardly inferior performance-wise across the board like your implying.
"Maybee this will finally blur the line between OS's enough to get more people to switch over."
Performance doesn't rate very high on why windows users aren't switching over. Lack of familiar apps and games, lack of widespread OEM bundling, and lack of millions in marketing are what's keeping people from switching over.
If you wanna get rich, you know that payback is a bitch
Looks like someone is using the server locally on kerneltrap.org, as it's down...Hopefully they're getting something done at least :).
The Right Reverend K. Reid Wightman,
Or using that snazzy bootloader technology, both kernels can be compiled and the kernel that gets loaded is determined by a variable in lilo.conf, making it easier to set desktop or server room performance in a corporate environment.
"Beware of he who would deny you access to information, for in his heart, he dreams himself your master."
Now that we are on this topic, it might be a good time to ask this question: How can i get my box to boot a 2.5.x kernel?! I am no newbie to kernel configs, it looks like i did everything right, however i am greated by a "Booting linux kernel..." then my HD making noices for about a minute (but no output to console) and then ... nothing .. keyboard unresponsive, no output on console, nothing..
.64 and .64-bk3)
Is there some magic ingrediant i missed? I know modutils changed, but i don't even seem to get to a point where that could make the slightest difference
(had this with 2.5.61,
What's your point? If I give the code away, it's instantly a better program or system?
Second, please make sure you keep things straight. Open source doesn't mean free code distribution. I could sell the program and also include the code for that one sale. The linux kernel is licensed on a free source basis. Everyone can get the code without paying. I'd suggest picking up documents by RMS so you can clarify the different.
Every new release of Windows wasn't vastly slower and more bloated then the release before it...
Oh wait. No there wasn't.
If you wanna get rich, you know that payback is a bitch
*ingo > I tried something like this before, and it didnt work.
*linus >You can't have tried it very hard. In fact, you haven't apparently tried it hard enough to even bother giving my patch a look, much less apply it and try it out.
...
Are you _crazy_?
Normal users can't "just increase the priority". You have to be root to do so. And I already told you why it's only hiding the problem.
...
Get your head out of the sand, and stop this "nice" blathering.
Linus
Liberty.
Err, these are competing philosophies. You can't have both types of scheduling going on. Think about it: you have an interactive process which wants to use all the CPU all day long, and you have 6 server processes that want to have balanced scheduling for the clients they are handling. No matter what the scheduler chooses, it is being unfaithful to your bit for each process.
The better answer is to either a) make this option compile time, as someone mentioned, or b) make this option configurable (a la sysctl) at runtime. This would allow distribution maintainers to adjust the setting to match the type of installation they are doing, and users on stock installations to quickly adjust the kind of scheduling they have, just like the little check boxes in windows NT/XP.
-- Patience is a virtue, but impatience is an art.
I don't want to start an argument, but what would be the point of having grub (or lilo, if you like :-) offer desktop users the chance to load a server-tuned kernel? That would just make support issues for desktop help where none existed prior.
For the server, I'd also be doubtful of the utility of offering a desktop-tuned kernel to boot--especially with server blades--, but at least their assume an administrator would not get lost at a bootup screen. Contrariwise, it would make automatic reboots less attractive as either they would require manual intervention to pick a kernel to book, or there'd be an extra delay in the reboot for a timeout on kernel selection.
--binkley
things aren't that black and white anymore. take a machine which is processing video but I want to hit its web server to check status/watch a bit. On my desktop I transcode video but would like to watch video at same time. as it stands now i cannot. a good scheduler would be a godsend for me.
If you're using GNOME or KDE then, yes, I have to agree with you. But my dual 450MHz Xeon Linux machine with 256MB of RAM still blows the socks off those 2.5GHz monsters running XP. I use XFce as a window manager, and couldn't be happier. I run Apache (mod_perl, mod_php, and mod_ssl), ProFTPd, MySQL, NFS, NIS, OpenLDAP, Samba, Sendmail, and UW-IMAP, and there's still enough juice for it to function well as a workstation.
Magic. Got it.
This guy is way out there
Anyway, I hope Linus and Ingo now have some spare time for real dreams of power users with Linux desktops - drivers! I used to run Linux at work and at home (used to, because I got rid of the Intel box at home). Between these two machines, I had an NVIDIA card, lucent WinModem, CLIE, Zaurus and an NTFS partition that wasn't recognized by default Redhat kernel.
After every kernel upgrade, I had to recompile 5 drivers. CLIE and Zaurus drivers came in the form of patches that usually refused to apply, or caused a hang when the device was attached! Once I tried a 2.5 kernel because it had some features, like suspend and resume that I could really use. While the default configuration built Ok, once I enabled the drivers I wanted, I couldn't get the thing compiled even before applying my patches.
Yes, you could just run "Redhat operating system", never upgrade the kernel and wait a few months to install a new release. Then you might find binary drivers to download for the kernel for your particular kind and number of CPUs. But the whole point of Linux (on a personal desktop) is to have some fun and try new stuff out easily.
Linux developers really need to stabalize driver interfaces. I should be able to go to kernel.org and download the latest kernel *binary*, then install a binary driver from the CD-ROM that came from my NVIDIA card.
USB and Firewire buses should be exposed by kernel as network interfaces, accessible to user programs through socket API. In this way, USB drivers will be both easier to write/debug AND will not contribute to Oops. For the ultimate of cool, Wine should support Windows USB drivers (my Virtual PC does!) and I should be able to just install Palm and Zaurus desktops and use them rather trying to feed ttyUSBNN to kpilot.
Having a stable system that doesn't have to be rebooted to Windows to use some unsupported USB device is far more important than raw performance. I wish any system's developers - Linux, *BSD, Darwin, BeOS, etc - would concentrate on this goal before going back to play with cool toys.
Linux creator Linus Torvalds recently proposed a patch to offer interactive processes a boost, greatly benefiting the X desktop, as well as music and movie players. O(1) scheduler author Ingo Molnar merged Linus' patch into his own interactivity efforts, the end result nothing short of amazing... The upcoming 2.6 kernel is looking to be a desktop user's dream come true
The "feature" of biasing the scheduler either towards interactive proceses or to background processes has been around since NT 3.51, if I remember correctly. It was definitely in NT4, released in 1994 (again, IIRC). So, while this is welcome, it's not an innovation, and saying that Linus "proposed" it is misleading.
AmigaOS had something similar long before windows did, and amigaos was always a FAR more responsive system than windows, even from the first version.
AmigaOS and windows are both fairly similar in purpose and features tho, unix is more tailored to heavy duty server use, and thin clients, and ofcourse its far more powerfull and flexible. Thus you have a powerfull stable kernel, multiuser abilities, and features such as remote displays and authorization in X.
True, windows has tried to copy some of the age old unix features, but the basic design remains the same with extra things kludged in as an afterthought, and theres still no X style remote apps managed by your local wm, its whole desktop or nothing.
So while windows may be faster on a single machine, due to its simpler design, once you scale up.. to say one server serving hundreds of thin clients, unix really pulls into the lead.
http://spamdecoy.net - free throwaway anonymous email - avoid spam!
That's funny. I have exactly the opposite problem: Windows XP is fine, but KDE 3.0 seems to run slow with my 256 megs of ram and my 1.8 Ghz (Celeron) processor.
try this: /dev/hda
hdparm -c1 -d1
its the same as:
BUGS=0 in your config.sys
seriously, using hdparm will VASTLY increase the speed of most things in Linux.
Its not just a UI issues; it does relate to the kernel in that the kernels job is to manipulate process priorities and give CPU cycles where they "should best be given". This is actually best done at the kernel level, and NOT the GUI level, because the GUI does not know about the other non-GUI processes is "competing with". I've felt for a long time that something like this should be done in both Windows AND Linux.
Windows is TERRIBLE at this. Consider the following scenario, which most here who here run Windows XP will be able to identify with. You boot up, you've just logged in. The task bar is there on the screen, the start button there, you click on it. And nothing happens. You wait. Still nothing happens. You wait some more. You start to get annoyed and click the start button a few more times. The hard disk is grinding away while Windows XP does all sorts of "invisible stuff" in the background. The computer is about as responsive as a brick. Then after anything from 20 seconds to a minute, the start menu suddenly opens and closes rapidly in quick succession a half dozen times.
THIS IS NOT HOW COMPUTERS SHOULD BEHAVE. Its pathetic. This is a perfect example of the necessity of this. The task bar process doesn't know about all those other background processes hogging CPU after you log in; there is no elegant way for it to magically know when to set its priority temporarily high, and for how long. But the kernel can say, OK, the user is trying to press a button, we must respond, and temporarily boost the start bar (explorer.exe) process and block the others.
On desktop machines (i.e. not servers), user input is the most important thing. If the user presses a button, something must happen. The kernel should be continually shifting priorities around to where the user is focusing his/her input.
But the kernel can say, OK, the user is trying to press a button
Just to preempt those people who are about to jump down my throat because "the kernel is not supposed to know about things like buttons", I know that, but thats not what I meant. I was speaking on a more abstract / higher level, but obviously this can still be implemented in terms of lower down OS things, e.g. the Win32 message queue and HWND system: the "OS" *does* know when, for example, when mouse click messages are posted to the DefWndProc of an HWND, and it does know which process is associated with that HWND, etc. In the Linux OS design view, this isn't part of the kernel, no. But in Windows, this is just one layer above what Linux people would classify as being "the kernel"; in Windows there is a lower degree of separation between the two.
And where, pray tell can I find the algo's? Right. Never mind.
"What's your point? If I give the code away, it's instantly a better program or system?"
Why, yes.
If I have the code, it's more valuable to me.
I have to say that KDE 3.1 is pretty snappy on my measly PII 400 with 320 MB of RAM under Gentoo Linux.
Saying KDE is slow is fudding.
I always felt that one the advantages of *nix+X over that other OS was that the UI processes where not part of the kernel as a high priority, so that some UI glitch didn't lock the whole machine up. Sure, by doing so, it makes the system feel more responsive (feel responsive=feel faster if you don't know better, this is why M$ did this I propose), but fairly problematic when one of them misbhaves (and you can't switch to a console to kill of a rogue application). Or did I just miss the point ? SB
Since I would like to keep using my ass for sitting on, this is not the type of question to post to Torvalds, but maybe someone here can enlighten me:
Why is there not more effort being put into making the scheduler real-time and pre-emptive (and I don't mean pre-emptive at the application level, but all the way down to the driver level)?
I know the SMP support solve some of the pre-emptive issues, but all in all these scheduler patches sound very kludgy. Is it because the unix subsystem precludes such a thing, or is the kernel design just too far off to make this work, or is there simply no desire because these patches are considered a 'better' approach?
For example, are context switches extremely expensive for the Linux kernel?
This is NOT intended as flaimbait, just true interest.
You're absoluetley, positively correct. Instead of giving priority to either background or foreground processes like you can choose in windows, there should be an option to give priority to whatever the interactive user is trying to do.
Nothing like letting a linux box with say Redhat 7.3 (KDE), Evolution, 4 xterms, Mozilla, Galeon, XMMS get jittery.
Go to xterm, try to unzip a 1 gig zip file (on a HD on that box) and the open mozilla and drag the window around...
Wait wait wait, mouse quits moving... Then it starts jumping all over the screen. Time for a coffee.
This is part pager and part interactive task/busy background task thing that these patches try to fix.
That was a big turn off of the 2.4 kernel for me.
m
How could they possibly do this without assistance from SCO programmers? It's just too complex for mere mortals.
Sincerely,
SCO
Well on server machines, I figure the machines should still pay good attention to the admin.
If you need to kill a process, waiting seconds for each character/line to show can be a very bad thing.
For that matter, DOS was faster as well. Obvious guy says "Linux was faster because windows actually ran a real GUI."
-5 (Doesn't hate Windows)
MY GOD!!! Why didn't I think of that!!1!! I now see the light my brother! I was stupid enough to think that the thing should just work, but boy, was I majorly wrong! Thank you, thank you!!!
*snort*
word! AmigaOS had preemptive multitasking when most people were still using DOS on their PCs.
Now that you say it, I also realize that no Windows machine that I have been using has ever been as responsive as the old Amiga. Of course this is also a hardware issue: the Amiga had pretty strict timing for all I/O operations and memory access. The different subsystems had their own time slots in DMA, which was based on the video refresh timing. To a certain amount other subsystems, like the "Blitter", could steal DMA cycles from the CPU. There was even a chip, the "Copper", that could perform certain actions based on the position of the electron beam of the monitor. In my opinion, this chip was the key to most of the impressive effects that could be produced by the Amiga. OTOH, such a design is pretty hard to scale w.r.t. speed. In the end, the Amiga declined because Commodore neglected hardware development for too long.
There are various solutions to this problem. It sounds like the Linux kernel people are trying priority inheritance via the messaging system (local sockets). QNX has had that for over a decade. Because QNX does almost everything, including all I/O, by message passing, it has to do this right. In the UNIX world, message-passing was added quite late, in BSD, and X is one of the few interactive programs that uses socket communication on the local machine. Sockets are used mostly to talk across the network. So support for time-critical local sockets isn't very good. UNIX pipes were the original UNIX interprocess communication mechanism, and they were intended as batch-like devices. Sockets look, and work, a lot like pipes. This legacy is the real cause of the problem.
Of course, the reason Linux users actually want this feature is so that they can play their pirated MP3s in the background while using X-windows.
Not quite right. Every multi-tasking system since the first few in the 70s has had the concept of running interactive apps with a higher priority. It's a very obvious improvement.
The non-obvious improvements are things like making the applications that depend on, or are depended on, by the interactive app, run faster. There are also additional tweaks to this that that are being considered such as giving interactive programs a smaller time-slice, but more of them, so it'll do things like paint the windows properly in respose to your movements, but it won't bog the rest of the system down.
Technically, scheduling tweaks do add to code complexity, but only in such a tiny way. Linus's patch was five lines. And Linus is very concerned with making sure patches are self-contained and, when possible, aren't spread out, a few lines in many different areas. He's got a very good, very "correct" attitude about design. It comes from him being happy with Linux for years now, he's not rushing to any specific point so it becomes useful. He's willing to put the time in to do it right.
Anyways, this is to say that most kernel patches don't lead to complexity, most decrease the complexity of the code. Linus has often sent patches back to be done the "right way" instead of allowing a hack. This tweak is so small and self-contained that it can't really be said to add complexity to anything.
Finally, the annoying mouse hiccups will be gone. On slower machines, I never ran Linux because of this. Maybe we can use this on some more old labs now. Wonder what's going to be in the next M$ Halloween memo...
Actually, I find most software whether open or closed to be a complete waste due to poor design, language choice, unneeded complexity, and years of cruft. Especially the popular packages. While the good (what little there's of it) stuff is rarely in wide use. Why is bloat and complexity more popular than beautiful, simple designs? Furthemore, why do most people insist on using the legacy inferior crap when often better alternatives are available?
X: "network transparancy" is great, however it's not designed for low-bandwidth interconnects. With 24 and 32 bit modes even running X over a 100 Mbit LAN is unacceptable. Of course the bloat, gazillions of libraries, and "standards" don't help either.
X unrelated Unix hall of shame includes: BIND, Sendmail, INN, OpenLDAP, Mozilla, Apache 2.0, UW IMAP, Cyrus IMAP, the IMAP protocol itself, the SMTP protocol, the idiotic requirement for 7 bit data in email and Usenet, etc., etc. Feel free to add your favorite misdesigned, buggy or bloated monster here.
No it's the O/S fault it can't manage the start up. If it's not ready for input it shouldn't show the start button as clickable. This happens on Windows NT too.
Another thing: try this on Windows 98. While Windows 98 is booting up, just as the desktop gets drawn, press the windows key (or wait till the task bar is just shown).
Windows 98 crashes - you have to ctrl-alt-del and select shutdown.
I for one happen to love X11's method of copy & paste. It's so much faster and more convenient than under windows. I like being able to simply select something in one window, then middle-click it into another window without having to enter additional keystrokes or menu commands.
Whenever I'm on a windows box, I groan at having to manually copy after selecting, and not being able to paste with one mouse click.
Remember one person's UI annoyance is another person's UI bliss. }:) That's why we'll never agree!
Err, these are competing philosophies. You can't have both types of scheduling going on. Think about it: you have an interactive process which wants to use all the CPU all day long, and you have 6 server processes that want to have balanced scheduling for the clients they are handling. No matter what the scheduler chooses, it is being unfaithful to your bit for each process.
Check out the Solaris 9 Resource Manager, which can do both types. It allows you specify at a high level how much of the system's resources each group of processes gets under which conditions. You could say for example, group A (interactive) gets up to 100% unless group B (batch) needs some, in which case allow B up to 30% during the day and up to 70% at night. You could do this sort of thing in VMS over a decade ago. Also, even if the underlying OS doesn't give you the capability, an Oracle server running batch and interactive tasks can do it too.
Okay. In that case, perhaps you can tell me how to get Windows XP functioning nice and quickly while there's disk access. I certainly haven't been able to.
Alternatively, perhaps I can help you with your installation of KDE. Which version of KDE do you have? Do you have the prelink trick installed? Which kernel are you using?
Oceania has always been at war with Eastasia.
I've been doing some Safari reading since the Slashdot review a couple of weeks ago, and one book I'm reading is Solaris Internals: Core Kernel Components. One very interesting feature of Solaris is the concept of "scheduler classes". The Solaris kernel is fully pre-emptive and multithreaded. Threads are executed as one of four classes:
Timeshare scheduling class (the default) attempts to evenly share process time across threads.
Interactive class is used for improving performance with windowing applications.
System class is used by the kernel.
Real Time class is used for fixed priority, fixed quantum scheduling.
Now I'm no kernel hacker and couldn't explain the hardcore details if pressed, but this sounds pretty clever and Solaris is a very neat operating system. These scheduler classes are loaded as modules which strongly suggests that they can be plugged in and replaced if necessary.
In 2.4 there were patches that provided realtime and low latency scheduling for the kernel. The new O(1) scheduler is getting positive vibes from the developers from what I've read, but does it cover these bases or are patches still required? In other words, does Linux now scale from realtime embedded to low latency desktop to [whatever NUMA systems require]?
Having just applied the combo patch in question, I can attest to it's incredible improvement. My mouse pointer NEVER lags anymore even while make -j5 bzImage and bzip2'ing a large directory all while playing .ogg files.
This is wonderful. Kudo's and a round of whatever ya drink to the kernel crew.
"The clay can become a bear, but not while it lays cold and wet on the riverbank." -Orson Scott Card, Children of the m
whereis hdparm
you have to be root to issue the hdparm command (atleast on all the distro's i know)
and as far as this asshole goes:
Ah. The problem you're having is this: Red Hat 8.0 is not Linux.
dont listen to him/her, redhat is a great distro! I now use debian, but started on Redhat, and still recommend it!
Finding apps in Linux:
/usr/local/bin but that depends highly on your distro. Some distro's have a tendency to put user executables in /opt. /bin contains that which lives in C:\Windows\Command , /sbin contains administrator-only binaries (a distinction not found in Windows).
;-)
find / -name [appname]
Furthermore, try man hier to learn about the filesystem layout. Most apps should go into
As a rule of thumb:
If you're trying to get familiar with filesystem layouts on Unix, I suggest you give FreeBSD a whirl. It has a very consistent and clean filesystem tree. I found FreeBSD a great place to learn about actual Unix. As I'm typing this my other box is compiling Gentoo Linux, which looks promising too but I can't comment on it yet. In a few hours maybe
Good luck learning *NIX!
Learn from the mistakes of others. There isn't enough time to make them all yourself.
Once you installed Executive (http://www.megabaud.fi/~petrin/Executive2.html), which is a replacement for the standard Amiga OS task scheduler, you had terrific multitasking on your Amiga. Executive had a dynamic priority scheduler which boosted interactive apps (that got the focus) and that pushed cpu-hogging apps to lower priorities the longer they were running.
You could choose from a multitude of different scheduling mechanisms, dynamically. And you got a whole bunch of system information tools as a bonus.
Another thing that this will greatly improve on Linux is gaming. Gaming tends to be highly interactive, and lowering the operating system's latency will put an end to those little hiccups Linux games sometimes get.
Latency on Linux is totally going to stomp latency on a Microsoft OS. Can't wait to see the benchmarks on that!
So much for Linux being ahead of Microsoft, that said.. I would MUCH rather have a multiproc linux box than Windows server
I have mod points and I am not afraid to use them
Thanks, but have done already, and its as optimal as it gets. I've gotten rid of all the excess junk (e.g. Office startup stuff), and I've turned off all unnecessary services. Unfortunately, if you run Windows, you need to have crap like anti-viruses installed, and some of the other software that I'm also required to run at work bogs down the machine.
The first rule of kernel development is
Users are dumb.
Not necessarily the users using the system, but the users developing software for it. If you give them the option of choosing whether their program is scheduled as an interactive process or a batch they will always choose the wrong one.
"Why yes, that is my elitist attitude you are observing. Please be careful with... Doh!"
-Adam
Not at all. Indeed the lkml thread referenced was about getting good performance when there are some non-interactive processes such as gcc and some interactive ones such as MP3 players or the X server.
Suppose there are two CPU-bound processes marked as 'batch' and one process marked as 'interactive' which spends most of its time waiting for user input, but needs to respond quickly in short bursts when that input happens. The interactive process will get high priority and preempt the two batch processes when it needs to run; but when it goes back to sleep the two batch processes are scheduled with long timeslices.
-- Ed Avis ed@membled.com
Emphasis on chatty. X is accelerated, it's just overly bandwidth hungry among other things.
If it's not ready for input it shouldn't show the start button as clickable.
Indeed!
Which one of the ten or so architectures that Linux supports should that one official kernel binary be compiled for? i386, because it's what you use? PowerPC, because it's what I use? System/390, because IBM is the shiznit? All of them? Jeez, even Debian, which ships for more architectures than any other distribution, has trouble with that. (Part of why Debian is slow on releases is everything has to compile on PA-RISC and m68k, you know. Debian is not a PC operating system.)
Which compatibility options should be set? Do you want to run that kernel on a broken Toshiba laptop that needs a special flavor of APM to keep from locking up at startup? Do you have a PS/2 with MCA cards, and need that enabled, while nobody else uses it? (Why should the kernel I use suffer from your bloat?) Do you have some funky flavor of Alpha motherboard? Or perhaps do you have the latest Dell high-end server and need a couple of extra patches to keep your system from crashing on the nonstandard motherboard?
In short: If you want a kernel compiled for the particular weirdities of your hardware, get your OEM to do it, or buy from a VAR that does. Some OEMs already do this -- like Dell, on the workstations and servers they ship with Red Hat installed. (Rumors of Dell "dropping Linux support" are greatly exaggerated. They support it just fine on workstations and servers -- just not desktops, which are made with cheap WinHardware to keep the price down.) Yes, the Dell kernel comes with the nVidia driver already installed, since most Dells have nVidia cards. (Though that is changing -- recently, I've been seeing more Radeons in Dells, which is much easier on the software upgrade path.)
Hardware is weird. Even i386 is a lot less "standard", across the entire product universe, than Microsoft and Intel (and Dell!) would like you to think. And -- unlike Microsoft -- Linux (the kernel project, not some distro) does not abandon old hardware and tell people to spend money on upgrades before they can run the latest release. Because of this, it is essentially impossible to make one kernel that is perfect (or even adequate) for everyone. That is why there are so many options in "make menuconfig", and that is why you should expect to build your own kernel (or pay someone to do so) if you want the most out of your hardware.
I think Windows' problem is that on startup it is trying to start all services at the same time, which leads to a lot of unneccessary disk trashing (clearly the HD is the limiting part during Windows startup). A more reasonable procedure would be to start things in sequence. Unfortuantely, in Windows it's practically impossible to influence the timing of startup.
ha that is one funny comment eh!
Just so long as it isn't like the scheduling related to us by our OS prof, where one of the early time sharing systems gave a bit of a boost to terminals after they pressed the enter key.
:)
This way interactive processes gained a slight boost. Of course, they had to rethink their algorithm as soon as someone figured out that by hitting return a lot they could speed up their programs! Oops
The more you know, the less you understand.
The point i was trying to get at is X11 is not End user friendly by any means. Just because it may be powerfull doesnt make it good however most of the time it makes it difficult. Its difficult to configure (something you SHOULD NOT HAVE TO DO) and if you do try to do it by hand its terribly easy to screw up. In regards to the KDE vs WindowMaker someone commented on, I would have to say thats a case of Bloat Vs Streamlined (or stripped). KDE is easier for average Joe to walk up and use then WindowMaker. Since KDE is slow and bloated its also not worth while for Average Joe to use as his primary OS.
To be a good Desktop OS you need ease of use, at this moment X11 doesnt fit that description. Just because you may think Microsoft or even Apple is evil doesnt mean you shouldnt take design tips from them.
A possible solution would be a new X11 Compatable system for those who want it and a solid fast easy to use UI for it for those who dont. I also think we need a Unified UI Toolkit so everything across applications is the same.
It wasn't linus or any of those people ! This is just what SCO was talking about!! There stealing Unix (Tm) secrets and applying them to the linux kernel!
I'm sure the FBI will prove this with tracing phone calls from IBM's secret headquater to linus and his mery men just before this patch!
did you ever think "all that invisible stuff" is what the taskbar/explorer is depending on? A blocked process can not receive input. Would you be happy if the screen was a 'welcome to windows' screen instead of showing the desktop before you can interact? -- ms just wants to have the appearance of a smaller boot-up to desktop time. X does this to me ALL the time under heavy system load when the vm is swapping in/out pages and my hd sounds like it's making popcorn (i have to use several java apps -- yeah, i know). yeah you could 'renice' X to -10 but that's kind of a work-around and i don't know if that's a safe thing to do, IMO. saying 'something must happen' is not much of a thought-out design goal, IMHO. just my $0.02.
why run from Vincenzo?
For that matter, why are you trying to do two completely different work loads and environments with the same kernel? You compile the kernel tuned to batch workloads for the server, and recompile the kernel tuned to interactive workloads for the desktop. You have the source.
Plenty of people, particularly java developers, like to run local instances of various servers on the same box they use as a workstation. This can often increase a developer's productivity in certain development environments for small-to-medium sized projects.
Don't think every user is exactly like you and has no need for the proposed change. Proposals such as this, and their subsequent implementation, are the primary strength of open source.
Mmmmm, kind of. The only thing there is that the packages are binaries, and often a whole load of contents change. And you can't (sensibly) patch binaries. Well, you can but you shouldn't.
SCO will probally decide they own this to.
- Selecting the text you want to copy with the
mouse left button.
- Either:
-
Clicking in the destination window position with the left button to get focus and position the pasting point.
- Either:
Now, yes, Windows treats selection of text as simply a highlight function and not a copy, but 99% of the time when you've selected text, you want it copied into the clipboard. X Windows does this automatically and is the correct GUI behaviour - Windows has its default wrong.- Letting go of the mouse and pressing CTRL-C (some users might be able to hold onto the mouse with one hand and use the other to CTRL-C, but most won't) or
- Going to the Edit -> Copy menu item and
choosing that.
[Hint for those who need a clue stick: This is horrible GUI design]- Letting go of the mouse and pressing CTRL-V or
- Going to the Edit -> Paste menu item and choosing that.
[Hint 2 - It's still horrible GUI design]Now you've got the text in the clipboard, what do you want to do with it 99% of the time ? Yep, paste it into a window somewhere. Yet again, X does this by default when you press the middle mouse button...Windows ? Sorry, the default is to ignore the middle mouse button and you have to combo a left-click with either a menu selection or a key-press - BZZZT! It's the wrong default again.
Basically, X Windows has its defaults correct and Windows has them wrong - it's twice as fast for a user to cut'n'paste (which is all users do with selections 99.99% of the time) in X Windows than Windows.
I just might drop Linux.
Network transparency kicks some royal arse that the best efforts of VNC and Terminal Server can't compare to. I can just hop over to another box and run its software. It's near realtime on 100mb/s, and I can't wait to try it on 1gb/s ethernet.
Thankfully Linux is a kernel, not a commercial os and X will live on for at least a few more decades. Does anyone know of a compression scheme for X that would make internet use faster?
You can't judge a book by the way it wears its hair.
scripsit yomegaman:
Why the hell would I want it to? That's possibly the most obnoxious thing I can imagine. If I copy text from, say, a Web page, to an OpenOffice doc, I want that text to appear in the font face, style, and size of the current context, not what I copied from. Why on earth would I want it to be in the old face/style/size, just so I can waste time fixing it to match the rest of the text in my document?
In principio creauit Linus Linucem.
To paraphase Linus, his patch is not doing anything especially for X or the desktop. But for processes that have a particular behaviour, and this behaviour is easily seen in X. This patch combo tries to aid any interactive process. Whether an X server, or an IM server, etc etc. So this makes interactivity better all around. Bonus for desktop, bonus all round. Of course.. i could have totally misunderstood :)
Ah, please don't misunderstand. I think the proposed change is very excellent. It is that most non-developer uses of Linux do not require multiple kernels on the same host.
As a developer, I do edit, build and run more than one kernel, but the vast majority of desktop users never do such a thing.
--binkley
Is it also a benefit that any programmatic changes and tweaks, etc. are out in the open vs. a closed OS?
I'm think where the OS maker might through the commerical marketing "lens" see their way to tweak/improve some parts but not others or upgrading/degrading the system in ways that might help them sell more but in the end not be in all end users best interest?
http://www.hawknest.com/
Windows has had priority boosting for foreground processes since Windows NT 3.51 (at least). There is a slider in system properties that lets you enable how much.
By default it is set to maximum for Workstation editions, and off for Server editions. New technology it ain't.
"XML is like violence. If it doesn't solve your problem, use more." - Anonymous Coward
Thats the problem, your feature is my misfeature.
:)
For instance, I like it that a non-topmost window can have the keyboard focus. I like the click-drag to copy and click to paste. Those are features not defects.
What you're claiming is tantemount to ''Someone wants their desktop to have a pastel blue color that commercial offerings have had for years, and they are told to go look for an abandoned sourceforge page somewhere''
Desktop design no more revolves around my choice in background color than it revolves around your choice of copy&paste interface. Dare I ask you how easily I could find a program that gives the X semantics above to all windows programs? You'll probably tell me to look at some abandonded CNET download page somewhere. (HOW DARE YOU?!?!?!)
Just because someone somewhere in the past did it differently and you liked that style doesn't make it superior, or inferior.
Well if they had it in 2000 they lost it in XP. As I keep explaining to my users, Microsoft has extreme difficulty walking and chewing gum at the same time.
This example perfectly illustrates what linus was having problems with when Ingo suggested that users just nice X up. It hides the problem, but doesn't actually fix it. Windows XP plays tricks on users to make them think that it's faster than Win2K or even NT. It loads the GUI earlier than the previous OSes, but there is still a lot of shit happening on the system in the background when you first get to the desktop (services starting, background apps loading, etc...). This is what causes the delay in response to clicking on the Start button. To prove this to a friend with Linux, I set X to start up a lot earlier and disabled a few of the non-critical services in the init scripts and compiled a custom kernel. Total APPARENT boot time from "Joe User's" perspective was about 30 seconds. I have to wonder if it would be a hell of a lot faster with this new patch. The thing is that these changes DON'T actually make the system faster at all. It's pretty much the same as before, but the end-user experience is that it APPEARS faster. That seems to be what a lot of people miss in this discussion.
Un-news
..wish I could self mod myself to zero with this lame question. Asking because I don't know, and it's probably not possible. But do they make or has anyone made, a mobo with a dual processor for dual processor tasks, then a single processor someplace else on the board, for doing single processor worthy tasks? I would think that might be nifty if it was possible and the software could take advantage of it, especially with multitasking.
Again, I know, most likely lame.
Actually, there is a hierarchy to the way Windows starts up its services because there are dependencies. And, you can change the order of startup to some extent if you know how to work in the registry.
Un-news
Solaris has had a choice of schedulers for some time. I think this is more a demonstration that UNIX system programmers "get it" than that Open Source programming leads to superior results.
/dev/null -- I am referring to the development methodology/philosophy, not whether I can see the source w/out signing an NDA in blood.
Please direct any assertions that Solaris is "Open" to
What you are describing is as simple as having the window manager renice a program when it is brought to the top of the window stack.
The way that would be done on a unix would be a renice daemon so all processes could do a renice. Now remember this is unix, so what is the problem when we give foreground user appps a higher priority? Well there may be any number of users on the system. Thus there could be a large number of processes with increased priority and the system would grind to a stand still.
Sorry you cannot scale simple single user hacks to a multiuser system.
This is to add to their increasingly absurd claims that "Windows (95,98,Me,XP) boots in (60,40,20,10) seconds!" Yet another marketing-ploy-turned-lousy-programming by the great people in Redmond.
What they haven't (yet) realized is that most people don't want to have to turn off their computers ever. They are just forced to reboot all the time by crappy "features" such as these.
"I assumed blithely that there were no elves out there in the darkness"
You have just hit on a few things:
:P
1) The taskbar is probably the most broken thing about Windows XP. I have tons of responsiveness problems with it, and moving things around is pretty much completely broken.
2) Windows 2000/XP memory management just plain sucks.
There's a few things you can do:
First of all, turn off system hibernation. Most people never use this, and not only does this free up hard drive space equal to 1.5 times the amount of RAM you have, it cuts down on a lot of unneeded disk chatter.
Second, if you have 512MB RAM or more, I highly recommend turning off the swap file in Windows. Yes, that's right. Even if you are nowhere near 100% RAM utilisation, Windows absolutely insists on paging things out to swap. After turning off the swap file (and hibernation) on my Athlon XP 2400+/512 MB Dual-Channel DDR machine, the XP interface is easily twice as responsive.
KDE is still better, tho. Imagine that... an X-windows based interface faster than Windows Explorer...
The roots of education are bitter, but the fruit is sweet.
--Aristotle
kind of a lame comment - considering the majority of visitors to slashdot are win doze users....
Sure. Now use any method at all to copy between OpenOffice and Mozilla. Let me know when you figure that one out without using a third app. No, X11 cut and paste *is* broken (or rather, there is no standard) and it really ought to get fixed.
What they haven't (yet) realized is that most people don't want to have to turn off their computers ever. They are just forced to reboot all the time by crappy "features" such as these.
Completely wrong. Most people only care that their computers work reliably for up to 8 hours at a time, and shut them off when they're not in use.
Most people don't 24x7 uptime, and wouldn't want it anyway: computers use quite a bit of power, and power costs money.
Indeed, most people I know turn their computers off when not in use.
Mooniacs for iOS and Android
This is not the problem you think it is. The problem you are seeing is not because background processes are stealing CPU, it's because the shell is spawning new processes, and is blocked until the spawn is completed (synchronous process execution).
It does this so that it can notify you if a program in it's startup process fails to start for whatever reason.
If you have no programs being started by the shell, the shell becomes useable almost instantly when it appears (this includes the Run* keys in the registry, not just the Startup folders), even though background services are still starting.
This is somewhat exacerbated by some anti-virus programs which somehow block input until anti-virus is fully running.
If you need web hosting, you could do worse than here
What's being described here is called a priority inversion, where a high-priority task makes a request of some service running at a lower priority and gets hung up behind it.
Which is wrong. Did you read the article?
Priority inversion is, as you explained yourself, about a high priority task effectively getting a low priority by being dependend and therefore waiting on a low priority task.
The article is about tasks at the same priority[1]. The task scheduler distinguishes between interactive and non-interactive tasks in order to improve latency where the user cares.
Beforehand, the behaviour failed on a slow, loaded system to recognize the X server as interactive, because then X looks like a CPU-hog[2]. That resulted in freezes of several seconds[3]. Simply speaking, the patch solves this by passing some interactivity points between processes.
You could have easily seen that this is not about priority inversion as one of the suggested work-arounds was to simply increase the niceness of the X process (which wouldn't help, if priority inversion had been the problem).
Regarding QNX: As good as it is as a RTOS, as bad it fails to do something sensible when you have too much processes at the same priority. Having a reasonably working system presumes that each task is assigned an appropriate priority. Of course, the people at QNX did a decent job on the default priorities.
[1] It may have an impact on tasks of different priority. I did not care to investigate that aspect, because that is of minor importance to what the patch is about.
[2] And for the scheduler, interactivity is determined by a process going to sleep often (by waiting for interaction).
[3] For non-interactive processes it is beneficial to do them in larger hunks, i.e. let 5 seconds other processes do their work, then work 5 seconds, instead of having 0.01 second slices and do the switching all the time.
Keep an eye on which arguments are silently dropped in replies. Not always, but often times it's very telling.
How do you copy URLs into a browser? I usually end up doing something like this:
1) Select URL
2) Switch to browser window
3) Click on location bar in browser, being careful not to select anything
4) Hold down Delete for a while
5) Hold down Backspace for a while
6) Middle click in the location bar
Which takes forever. I suppose I could:
1) Switch to browser window
2) Select location bar contents
3) Press delete
4) Switch back to source window
5) Select url
6) Switch back to browser window
7) Middle click in location bar
Which is even more steps, but there's no "hold down delete and wait" step, which speeds things up a bit. But still, the other way:
1) Select URL
2) CTRL+C
3) Switch to browser window
4) Select location bar contents
5) CTRL+V
Make is very easy. I still can't figure out how to do this in a reasonable amount of time in Linux (assuming the apps are broken. Like, say, Evolution->Galeon)
Erik
X wouldn't be installed on a server, right? That means this could be implemented right off the bat with no adverse impact. It's scheduling in general we're talking about here. The jerkiness *is* pretty apparent and losing it would certainly help on the desktop.
Also, do not forget, the same "jerkiness" would be present, albeit not as apparent, in other daemon intense computing environments. So it should improve running Linux in general. Hooray I say!
"As an avid Microsoft fan..."
h tm
You wouldn't be the person who wrote this article would you? Running a web-server on Windows 3.x, playing MP3s in Windows 3.x, sharing files on Windows 3.x... etc. So many screen-shots!
http://www.froggy.com.au/mike.skinner/16bitwin.
Windows 3.11 does too!
h tm
In the Control Panel, Under Enhanced, you can adjust the Scheduling. Windows in Foreground defaults to 100ms and Windows in Background defaults to 50ms. The minimum timeslice can be altered from the default 20ms too. The "Exclusive in Foreground" checkbox can also be checked here.
http://www.froggy.com.au/mike.skinner/16bitwin.
Ah, you don't patch the binary, though (not usually). You just replace the whole file.
When you treat tasks differently, you're prioritizing them. All the priority information isn't necessarily encoded into the UNIX-type priority number. This is a nomenclature distinction between "priority" in the formal sense of "who gets the (a) CPU", vs. the classical UNIX representation of priority numbers.
or use X apps that don't "lob" pixmaps over the stream.
Obliquewindowmoving works fine, that's handled on the local end of things.
I'm playing xbill over my lan now on wifi(12mb/s), well written X apps work fine.
You can't judge a book by the way it wears its hair.
So, when will this be finalized?
Feature freeze was supposed to be back at the end of October. When can we have final bits?
(Before you ask, yes, I am more than capable of running a development kernel. But I'm old enough now to have other things to do with my life. I need the tested goods.)
Can we have 2.6? Soon, please?
Why not? People [patch binary executable files] all the time on other OSes. Games on Windows for one, come to mind.
No. As Gordonjcp mentioned they replace binaries, for precisely the reason you state next:
Now yes one will have to draw a line at which one sends the whole thing vs a diff (75%?).
A fellow often sees such an effect from a whole-program compiler optimization or from re-engineering to fix bugs, especially when the compiler uses a different register allocation or when the developer has added or removed a field or method from a class.
It's that or wait till everyone has Broadband.
I would rather not sit still for over seven years while the local cable monopolies and the local telephone monopolies get their collective poop together and push the price of broadband down to where dial-up is today. I know people who are still on 33.6 because they are banned from working and have parents too poor to fit a modem into their disposable income.
Will I retire or break 10K?
Maybe it's just me, but I *like* the X selection system. A windows-bound colleague of mine the other day exclaimed in jealousy when she saw me cutting and pasting between editors... Windows is just so damn clumsy.
To answer your question, I
1) Click on the browser desktop-icon to open a browser window
2) Highlight my URL with the 1st mouse button
3) Position my mouse over the URL bar, and click the middle button
4) There is no (4)
Simple, yes ?
Simon
Physicists get Hadrons!
>> check out Windows 2000 scheduling algos
> What's your point?
Isn't it quite obvious? Windows 2000 is kept wrapped up in NDAs. This makes it nearly impossible to "check out Windows 2000 scheduling algos" for the most of us.
Wether that is good or bad for Windows 2000 is not even implied with a single word.
"Between strong and weak, between rich and poor [...], it is freedom which oppresses and the law which sets free"
This is a common misconception. You're confusing the clipboard with the primary selection. Cut and paste works just like Windows', and is in fact more powerful.
X's clipboard is generally handled with interprocess communication, not buffers. If you select something, the application claims the primary selection. Middle-clicking somewhere else will ask the application to send the selection.
Copy and Paste use the clipboard, which is entirely separate. Edit/Copy in Mozilla claims the clipboard, setting its value to the current selection. As you have to select the text first, this must overwrite the primary selection, but selecting something else will change the selection without affecting the clipboard. Try selecting something in Mozilla, ^C, then select something else. Middle-click and ^V will enter different things. If you ignore the primary selection, this is exactly the same as Windows, but the ability to select and paste short items quickly using only the selection can be very useful - especially as it doesn't affect the clipboard.
Unfortunately it's impossible to use the clipboard in xterm; you have to use the selection. You can cut and paste between most other applications, though. Another problem was in an old implementation of (IIRC) Qt, which overwrote the clipboard whenever the primary selection changed. This is fixed in the latest version.
Another usefull tool that is often installed in a linux distro is "slocate" (secure locate, secure meaning that it takes permissions into consideration). If slocate is installed, it updates a database of file locations, usually on a daily basis. The slocate tool searches this database for the substring you supply.
bash> slocate
would find
I suppose I'm not too threatening, presently, but wait till I start Nautilus
Uf you're not familiar yet, see PicoGUI for an insight how they do things differently.
Ugh. I don't buy it.
To put it in perspective, lots of Unix has a big organization problem. X is just emblematic. It's "lower-level" APIs are a big stinking mess. Ever tried to program against it without a super-high-level bit of middleware? Then let's talk about how nice it is. If you're not up on this, try reading JWZ's rants on it (many written as he was porting Netscape)? X is a 4 foot high sandwich of crap, layer after layer between you and the display, full of massive, sucking complexity, the bugs, inefficiency... even during this supposedly wonderful "network transparent" windowing this foul stew shows its colors, as no combination of two applications or X servers quite looks the same. It's a verifiability nightmare, too, of course (and for instance, disabling X's many attempts to listen and talk on the network are one of the first things you do to secure a machine properly - and for real security, you avoid installing X altogether).
The API design itself is atrocious. The much-touted "flexibility" is really code for laziness - it was a lot of work to do a proper GUI, so no one did it. The mishmash of X server extensions, window managers, font handling systems, etc. that's been cobbled together has led to a nightmare for both programers and users, as any given application doesn't just require "X", but a complex recipe of libraries and versions, and an end-user experience where no two applications look or act the same... or even remotely similar... Where cutting and pasting between windows is a pipe dream, and young geniuses still struggle to configure fonts properly for linux distributors.
Or to just put it plainly, as my friend (who from time to time would write X windows gadgets) would say, it's only about twice as hard as managing the video memory yourself.
"And thank god it's not all standardized, or we'd never have had all those wonderful experiments with different ways to do a GUI that never actually happened." In practice, no system is immune from its initial design choices, and it's been an endless series of awful MacOS knockoffs, multi-button madness, color-pallete spinning goofiness. Is X11 a "GUI experimenters toolbench?" Then I think it's time for something a little more grounded in everyday realities of computer use.
I'm not even warmed up yet. I mean, X is still peppering the filesystem with a hedge-maze of exotically formatted text files describing the hex colors of every pixel of the trim of every window for a variety of appliations and classes in a complex inheritance and assignment scheme that few X developers even understand. Check it out, your XDefaults are "human readable."
Shall we even discuss its security model?
Modern Linux has tried to make its peace with X through wrappers, and we write against Tcl/Tk, Qt, inside the Gnome or KDE framework, and yet still the focus groups come back crying... we try to blame overfamiliarity with windows, but the problems are bigger... all of Unix (and of course Linux) suffers from the same class of problems that X does; as, for instance, an application needs to prompt you to insert a series of CD's, but there is no "single, authoritiative, standard" place to go find out what CD drives are installed on the computer, and what their device names are (yes, we know what they _usually_ are), and finding out if any of the CDs are already inserted involves parsing the text output of a proc file or a mount command, and so on and so forth... And all of this is being done by a messy bash script... so it's no surprise this functionatlity is broken even in, for instance, RedHat's own v8 package manager... I hope you can grasp the metaphor.
It's a mess. Patches won't clean it up. Frankly, it's time we took the whole GUI back to the drawing board. But even if MacOS is the end-all/be-all, we can do it a hell of a lot better than we do in X.
Following are some choice quotes from Don Hopkins' essay:
X-Windows is the Iran-Contra of graphical user interfaces: a tragedy of political compromises, entangled alliances, marketing hype, and just plain greed. X-Windows is to memory as Ronald Reagan was to money. Years of "Voodoo Ergonomics" have resulted in an unprecedented memory deficit of gargantuan proportions. Divisive dependencies, distributed deadlocks, and partisan protocols have tightened gridlocks, aggravated race conditions, and promulgated double standards.
X has had its share of $5,000 toilet seats -- like Sun's Open Look clock tool, which gobbles up 1.4 megabytes of real memory! If you sacrificed all the RAM from 22 Commodore 64s to clock tool, it still wouldn't have enough to tell you the time. Even the vanilla X11R4 "xclock" utility consumed 656K to run. And X's memory usage is increasing.
...
X was designed to run three programs: xterm, xload, and xclock. (The idea of a window manager was added as an afterthought, and it shows.) For the first few years of its development at MIT, these were, in fact, the only programs that ran under the window system. Notice that none of these program have any semblance of a graphical user interface (except xclock), only one of these programs implements anything in the way of cut-and-paste (and then, only a single data type is supported), and none of them requires a particularly sophisticated approach to color management. Is it any wonder, then, that these are all areas in which modern X falls down?
...
As a result, one of the most amazing pieces of literature to come out of the X Consortium is the "Inter Client Communication Conventions Manual," more fondly known as the "ICCCM", "Ice Cubed," or "I39L" (short for "I, 39 letters, L"). It describes protocols that X clients ust use to communicate with each other via the X server, including diverse topics like window management, selections, keyboard and colormap focus, and session management. In short, it tries to cover everything the X designers forgot and tries to fix everything they got wrong. But it was too late -- by the time ICCCM was published, people were already writing window managers and toolkits, so each new version of the ICCCM was forced to bend over backwards to be backward compatible with the mistakes of the past.
The ICCCM is unbelievably dense, it must be followed to the last letter, and it still doesn't work. ICCCM compliance is one of the most complex ordeals of implementing X toolkits, window managers, and even simple applications. It's so difficult, that many of the benefits just aren't worth the hassle of compliance. And when one program doesn't comply, it screws up other programs. This is the reason cut-and-paste never works properly with X (unless you are cutting and pasting straight ASCII text), drag-and-drop locks up the system, colormaps flash wildly and are never installed at the right time, keyboard focus lags behind the cursor, keys go to the wrong window, and deleting a popup window can quit the whole application. If you want to write an interoperable ICCCM compliant application, you have to crossbar test it with every other application, and with all possible window managers, and then plead with the vendors to fix their problems in the next release.
In summary, ICCCM is a technological disaster: a toxic waste dump of broken protocols, backward compatibility nightmares, complex nonsolutions to obsolete nonproblems, a twisted mass of scabs and scar tissue intended to cover up the moral and intellectual depravity of the industry's standard naked emperor.
Using these toolkits is like trying to make a bookshelf out of mashed potatoes.
- Jamie Zawinski
...
The fundamental problem with X's notion of client/server is that the proper division of labor between the client and the server can only be decided on an application-by-application basis. Some applications (like a flight simulator) require that all mouse movement be sent to the application. Others need only mouse clicks. Still others need a sophisticated combination of the two, depending on the program's state or the region of the screen where the mouse happens to be. Some programs need to update meters or widgets on the screen every second. Other programs just want to display clocks; the server could just as well do the updating, provided that there was some way to tell it to do so.
...
.Xdefaults", but if he happens to have copied Fred's .xsession, he does an xrdb .xresources, so .Xdefaults never gets read. Susie either doesn't xrdb, or was told by someone once to xrdb .Xdefaults. She wonders why when she edits .Xdefaults, the changes don't happen until she 'logs out', since she never reran xrdb to reload the resources. Oh, and when she uses the NCD from home, things act `different', and she doesn't know why. "It's just different sometimes."
.xresources (or was it a file that was #included in .xresources) of the form *fucked*fontList: 10x22, which he copied from Steve who quit last year, and that of course that resources is 'more specific' than his, whatever the fuck that means, so it takes precedence. Sorry, guy. He can't even remember what application that resource was supposed to change anymore. Too bad.
What this means is that the smarter-than-the-average-bear user who actually managed to figure out that
snot.fucked.stupid.widget.fontList: micro
is the resource to change the font in his snot application, could be unable to figure out where to put it. Suzie sitting in the next cubicle will tell him, "just put it in your
Joe Smartass has figured out that XAPPLRESDIR is the way to go, as it allows him to have separate files for each application. But he doesn't know what the class name for this thing is. He knows his copy of the executable is called snot, but when he adds a file Snot or XSnot or Xsnot, nothing happens. He has a man page which forgot to mention the application class name, and always describes resources starting with '*', which is no help. He asks Gardner, who fires up emacs on the executable, and searches for (case insensitve) snot, and finds a few SNot strings, and suggests that. It works, hooray. He figures he can even use SNot*fontList: micro to change all the fonts in the application, but finds that a few widgets don't get that font for some reason. Someone points out that he has a line in his
...
On the whole, X extensions are a failure. The notable exception that proves the rule is the Shaped Window extension, which was specifically designed to implement round clocks and eyeballs. But most application writers just don't bother using proprietarty extensions like Display PostScript, because X terminals and MIT servers don't support them. Many find it too much of a hassle to use more ubiquitous extensions like shared memory, double buffering, or splines: they still don't work in many cases, so you have to be prepared to do without them. If you really don't need the extension, then why complicate your code with the special cases? And most applications that do use extensions just assume they're supported and bomb if they're not.
Want to Know How to Cheat the GPL? Read On!
http://www.ubergeek.tv/switchlinux/
The roots of education are bitter, but the fruit is sweet.
--Aristotle
Excellent observation. As KDE has gotten snappier, I've noticed that it does this less frequently than Windows. Things take a noticeably longer to load, but once they are loaded they are generally more responsive to user input. I think this ends up being a big usability issue - because for those less familiar with the what the button is supposed to do, its meaning is made unclear when it doesn't respond. I.e., am I _supposed_ to click 5 times to make something happen?
Your scenario - which, by the way, I go through on a regular basis with XP (Home and Pro) - makes me think of a question about the GUI. You mention clicking the start button a million times. Shouldn't explorer (or MFC) be catching some of these extra clicks, too, and avoiding sending them to the graphics subsystem to force 10^4 repaints? Or could this perhaps be done at the level of the graphics toolkit, where certain widgets could be marked to catch only n events until a response is given?
Why does an interactive process want to use all the CPU? I'd guess a user could only load a decent app up to 15% of modern CPUs. After that, the user simply isn't physically capable of moving fast enough.
There are reasons why democracy does not work nearly as well as capitalism.
-- David D. Friedman
somebody said "Maybee this will finally blur the line between OS's enough to get more people to switch over."
um no - this will further widen the gap between the OSes.
Seriously, I switched to linux back in 1994, and while microsoft has made significant progress, ms windows still has quite a way to go before I would consider using it again. I see windows 2000 and xp every day at work, and while they have taken some baby steps towards linux-like reliability and performance, ms windows is just not all there yet - they have cute down pat, but cute only goes so far.
I find the performance of a modern linux desktop and a modern ms windows desktop to be in the same league, which is rather impressive since it's a comparison between the full client/server, network-transparent X window system, and a simple, single-user, local pc GUI.
Unless the user wants to spend half their waking days learning (or dealing with) the intricacies and bugs of bad desktop systems, definitely go Xandros.
For starters, Xandros is Debian based which does give the advantages that you mention in regards to stability and ease of upgrade. However, much more significantly Xandros takes care of all the manual work that you would need to put in (unless you want to go under the hood which it will let you do). Reasons to go Xandros:
1) Install. Hands down the best. Again read the reviews, but it has phenomenal hardware detection, handles all the partioning (including NTFS), allows for customization if you want it, and has a huge success rate.
2) Refinement. The engineers at Xandros touched pretty much every package on the system, fixing bugs in the open source versions of KDE and all the apps they package so that everything pretty much works like it should. They also did tight integration between the kernel, debian, and the desktop so that when you do something like stick in a usb flash memory, it pops right up in the file manager.
3) Compatibility. If you want to browse or run on windows networks, Xandros auto-configures samba for you (in case you haven't gotten that Phd yet). The delux version ($99) also comes with Code Weavers CrossOver so that you can run MS Office (still the best unfortunately), Lotus, and soon Photoshop.
4) Leadership. Not only is xandros the best desktop now, but they are working on very cool stuff and will likely extend their lead. I would strong recommend going with the technology leader here rather than dealing with enduring pain and lack of functionality.
Check out the reviews (posted at www.xandros.com) or do a search on any review done on it. It is the hands down winner. Make life easy for yourself...
Hunger is the best sauce.
It's already in linus' 2.5 tree - which means it will be in 2.5.65
The users I know would trade stability and $10/mo for instant access, so they leave their computers on all the time and they crash once a week. Maybe the users you refer to are more cost-conscious, or maybe they just want stability and would trade the two minutes it takes to boot and log in for a reliable system.
All I'm saying is that, given the opportunity, anyone would want both reliability and instant-access for zero cost. M$ knows this, and they know their products are not stable, so they market the (fictional) "fast boot times" of their OS's.
"I assumed blithely that there were no elves out there in the darkness"
Try the equivalent of "the other way" -- use
some keyboard accelerators.
1) Select URL
2) Click somewhere in location bar, not highlighting anything.
3) Ctrl-A
4) Ctrl-K
5) Middle-click in location bar, press enter
Or, if you are using Mozilla:
1) Select URL
2) Middle click somewhere in the browser pane
3) There is no 3
(You might have to enable this under preferences
somewhere -- i've had it this way for so long i've forgotten how)
Seems pretty fast to me.
X-Free my arse...X-Mess is more like it. You can rationalize it all you want, but the simple fact is, X-Free is a big giant mess.
Sure, network transparency, being able to run X remotely from another computer, is great, IF you want to do that. Most people don't. I have one computer at my home -- no need to ever use the GUI from remote. If I want to access it, I'll be accessing files and transferring them to a computer at work -- whcih is what ssh is for.
Because of the big mess that X-Free is, I set up a pretty minimal desktop GUI, which is fine with me. I've always hated candy-desktop appearances, like OS X. Me, I stick with WindowMaker (in combo w/ PWM), Xfce for my desktop, and no anti-aliasing along with plain themes and hide-away stuff. Also, I don't -- not on my Debian GNU/Linux OS, or Windows (w/c I use for games) -- make it redraw the windows as I move them. What a waste. I want instantaneous responses to my actions, so I get rid of all animations and crap like that.
So, my GUI's run pretty smoothly (except when I'm using Kazaa on Windows). However, that's only because of my minimalism, and doesn't justify or excuse X's sloppiness and enormous bloat. (I'm not going to complain about MS' bloat b/c MS never bothers to address real problems and I'm never upgrading WinME...I have all the games I want, and I think thatt future games coming out I'll want [like Tomb Raider 6] will support Win9x for a long long time).
Of course, there's other disgusting problems in X, like not being able to copy and paste between windows, and the atrocious lack of standards for that and other things. I don't think we should throw out X -- just massive rehaul to get rid of this slop, not bandaid-treatments. Also, make a version of it for normal home users, who won't be sharing GUI's between multiple PC's.
social sciences can never use experience to verify their statemen
You are correct. This difference was, why I used "niceness" vs. "priority". Niceness being the priority the user chooses, while priority being the one the system calculates.
That said, the article is still talking about tasks at the same priority (in your sense). Is is not about how much time of a minute a task gets (which is priority), but in how much slices the tasks gets it (which influences latency).
It may be that the "interactive points", which were tweaked, also influence the priority, but the part worth an article was that getting the latency right was much improved.
Keep an eye on which arguments are silently dropped in replies. Not always, but often times it's very telling.
Why the hell did you mod her/him down to 'flaimbait' ? Surely you cannot compare the GUI's provided by Microsoft and Apple to the Linux WM's/desktops. It's just not the same. Sure, the FS/OS community may in time catch up, but right now it's lagging begind.
... What's wrong with us anyway ? Are we so blinded by the satisfaction derived from the use of a *nix platform that we forget that the vast majority of users simply doesn't care about things like that ? And if that's the case, does it affect the development of better desktops for the 'ignorant masses' ?
... o O (why does that sound familiar ... why does that sound familiar ...)
And its for good reason : FS/OS WM/desktop programmers are just that : programmers. Not psychologists, not qualified GUI designers but just programmers (and pretty good at what they do, if I might add). Big corporations spend millions on psychology research etc. in order to create the best possible environment for _amateurs_. You and I may be happy may be utterly happy with the command line, or with recompiling KDE (with the appropriate CFLAGS etc) but most people ARE NOT (quite a few billion of them). They just don't care.
Why can't you understand it ? When my brother asked me to build a system for him, I build a Mandrake Linux box. That was a mistake. My brother hates computers, he only needs them for a few things : Word processing, movies, mp3's, internet surfing, gaming and using some local specialized financial software package. Linux just didn't do the trick for him. Win98/OpenOffice/BSplayer/Winamp/Mozilla worked perfectly on the other hand. Sure it crashes. Sure it's 'proprietary'. Sure it's not as efficient. But the bottomline is : does your everyday oblivious user really gives a fuck ? No. Plain and simple.
And NO, cut'n'paste doesn't always work great. (Try cut'n'pasting from some older apps like xfig to gedit or OpenOffice Word or whatever).
I've been a happy Linux user since late 1995. Sometime during 1996 I was able to ditch the Windows platform altogether. And, although I'm in the computer buisness for 20 years or so, these have been the happiest 8 years of my life (as far as computing is concerned). That's because I _love_ the commandline. I've used various WMs and desktops (olvwm, then AfterStep, currently Gnome). But I find my self ctrl-meta-F-ing as soon as the system boots up (unless I have to use Mozilla, or OpenOffice or do some gtk+ coding/testing). So the Linux platform is just PERFECT for me. I can not explain to you how happy I was when Linux first booted in my brand new P90. It almost brought tears to my eyes, honestly, having a full working system in my puny PC, that was just unbelievable. And I am certain that I will never have to go back to 'p' software ever again. But thats just me. Do you really expect your normal, everyday user to really care about stuff like that ? Are you mad ?
If only the FS/OS community finally realised that
Then again I don't really care. I like by *nix box, I work more efficiently with it. I really don't care whether Linux ever makes it to the desktop market. I really don't care. For I don't care for the desktop in any way. I'm pretty happy with Linux as it is. If any effort is made to improve it I would like to see it directed in other areas and not the desktop. Is OS world domination so important for you people anyway ?
-- "An evil exists that threatens every man, woman, and child of this great nation. We must take steps to ensure our domestic security and protect our homeland." Adolf Hitler 1933
"The Tao of Linux" is a fine piece of work. Wise and funny ... as the Tao of anything should be!
-kgj
Select text in Mozilla, go to OpenOffice, middle click. There. That wasn't so hard, was it?
You're completely wrong.
The word completely and the fact that you left out most of my posting (and concentrate on a minor part of it) don't go well together. Yes, my example was wrong (mixed up who was waiting). The other statements still stand.
Do you know anything about X11? The client is a seperate process.
Man, of course. Or else, talking about priority inversion, which is defined to happen between at least two tasks wouldn't make much sense. Opposite question: Did you read the lkml thread the article refers to?
It waits on the X server to do its drawing and get its input. There's the problem - the X server is not keeping up with the client. Nicing up a process to make it more responsive is a classic symptom of this.
Correct. But this has nothing to do with priority inversion, yet. This can happen just as well when both tasks have the same priority and there is just not enough free CPU power. And guess what? That is the discussed case.
Here, you can increase responsiveness (that is, decrease latency) by changing how big the slices are (i.e. whether to give 10x0.01 secs or 1x0.1 secs). While changing priority effectively changes how much time slices you get (2x0.1 or 5x0.1)
Priority inversion applies perfectly.
Only if you define priority to include everything what could influence the time until a task is executed (including interrupt mask and so on). Then, yes, time slice layout would be part of the priority and you'd call it that.
The classic understanding is more about which task is scheduled to come first and for preemptive kernels, also which task may preempt another.
Btw, due to the reference to QNX in the original post I understood that the classic sense was meant, because QNX only knows about explicit priorities (what Linux calls niceness) and does simply round-robin or FIFO for tasks of the same priority, depending on system settings. No other magic involved (at least according to the white papers).
Keep an eye on which arguments are silently dropped in replies. Not always, but often times it's very telling.
hows this for a radical idea: Scheduling policy and tuning need not be a compile-time decision.
Just be grateful X requests aren't sent in XML. Were X designed today, on today's "fast" hardware, some bright spark would probably decide that the advantages of making everything XML and putting an XML parser in the server outweigh the performance hit of parsing each request (which today's 2.4GHz SMP machines are up to, anyway).
Heh, nice to see them giving up and implementing the priority boost. I wish them the best luck implementing the detection of "foreground" tasks, with an user interface with so little contact with the processes it serves
Don't you know what this patch is about? Well, ever noticed how on Windows the three/four most used programs among the currently open tend to display their windows instantly when switching between them, not cause the disk to swap at all, be generally more responsive? It's because the Win32 subsystem gives foreground tasks a slight sheduling priority boost, and frees up background tasks' unused resources (the on-screen buffers of windows, I guess) as required by the foreground tasks' needs
You (and I mean you, random Slashdotter talking out of your ass) can easily see how X11 can't possibly compete on equivalent hardware, no matter how hard they try:
Make a difference - use Windows! (open source clone of Windows NT)
Are there any X11 developers out there (or at least someone in the know) that can comment on the actual PLANS for XFree? So far I see several legitimate criticisms, one being the hardware access/busy waiting issue, and another being the mess that is the way XFree reads resources. When I was first introduced to X, right off the bat, the fact that it was a "special" application that had its own drivers to do direct hardware access, and the mind-boggling resource system, stood right out at me. Although X is great for many things, and although a lot of people spew hot air about it, I feel there are legitimate outstanding issues. As someone who is highly anticipating Linux kernel 2.6, and the potential for Linux on the desktop, I think these are very valid concerns.
The XFree86 page is rather spartan, and I get NO idea what the roadmap for XFree looks like.
It's 10 PM. Do you know if you're un-American?
Sounds like a typical Linus idea to me. So obviously right that you can't imagine why you wouldn't do it.
It's got nothing to do with gui's. It's not a hack like the windows priority bar or nicing X. It basically states that if you have a CPU bound process which lots of interactive tasks use then the server should get a "caffeine" shot too.
X is just an easy example. It quickly gets CPU bound but can have lots of interactive clients depending on it. End result of this patch being the interactive clients respond better because the server is getting more processor in response to them existing. It automatically responds to usage patterns too.
Oh yeah, and for those who slam X you've missed the core formula here. There need to be enough people who see sizable and fixable weaknesses in X to create a demand for a replacement. By and large X is decent and getting better, so such demand is marginal. There have been efforts to "fix" X but most have withered and died. This is how open software works.
I guess you don't know any Mac users.
When I'm finished using the computer, I just get up and walk away. After a while, it realizes I'm gone, and goes to sleep. While asleep, it uses so little electricity it doesn't matter.
When I want to use the computer again, I walk up to it and touch the keyboard or mouse. There's my desktop again, instantly, with no boot time.
Now, why the hell would I ever want to turn it off?
The original poster is right. People turn computers off either because they have crappy computers that don't support deep sleep mode, or because they have crappy software that needs reboots.
GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
My browser window almost always already has a URL in the location bar. Basically, I'm wondering how you replace text? (like a url in the location bar)
Erik
That's sweet. Thanks for the tip.
Erik
I can think of plenty of times I've pasted text with style info and wanted it that way. Windows and Mac OS generally give you the option to paste with or without formatting (I think it's application dependent). X only appears to let you do it without, I guess just one more example of it's vaunted flexibility. Why is it that whenever someone points out something that's difficult or impossible to do with Linux the response inevitably is "Only an idiot would want to do that anyway!" Can't you guys admit even slight imperfections? It's ridiculous.
...wearing a skin-tight topless leather jumpsuit, with cutaway buttocks and transparent crotch panel.
in EE terms that would FM...Fucking Magic
If Mr. Edison had thought smarter he wouldn't sweat as much. --Nikola Tesla
(except for China)
It's 10 PM. Do you know if you're un-American?
OK, here's my question: I don't run dev kernels on my main box here, so how long can I expect to wait before this patch makes it into a stable kernel? I expect there's no chance it will be backported to 2.4, so the real question is how long until 2.6 (or 3.0?) comes out? I heard "early 2003" several months ago. Is that still a reasonable timeframe?
"Anything is better than IE, and you can quote me on that." -- Wil Wheaton.
If anything, Linux is becoming the next MS
Now, *that*, I have to say, is bordering on the flamebaitish -- yes, I see what you're trying to say, but that's a kind of offensive way to phrase it.
Uh...check out Windows 2000 scheduling algos.
It's not exactly the same thing, though even Linus mentioned it (rather offensively, IMHO, to Ingo). Windows has a simple heavy priority boost it gives to the foreground app. That works fine if you're working in a fairly modal manner on a single-user system and you have a desktop-with-foreground-and-background paradigm as a fundamental part of the OS.
Linux's scheduler takes a somewhat more ambitious (granted, that probably means you can trick it more nastily) approach, partly because it has a more general, more difficult task. From what I can tell from skimming the conversation, Ingo's work is something more along the lines of advancing the traditional UNIX approach of "this app didn't use (or is tending not to use) its full timeslice, maybe because it's blocking on I/O, so give it higher priority to get another timeslice than an app that *did* use its full timeslice". He's just doing somewhat more sophisticated automatic classification of whether an app is "interactive" or not.
Yes, on the very surface, it's similar in goal. Make the task that the user is working with get more cycles at appropriate times to reduce latency of interface response. However, the approach is very much different, and the potential benefits are higher (since this automatically addresses a wide range of apps, not just making the foreground app peppier to keep scrolling snappy).
I *will* give you that this has little to do with open source. I suspect that there are plenty of closed-source systems that have tried to do more advanced classification of apps as interactive or noninteractive.
May we never see th
That's right, it should 'just work'. If it doesn't just work for you, then it's your distro's fault. They should have done those things for you. It's not your fault, and it's not KDE's fault.
Democracy is two wolves and a lamb voting on what to have for lunch. Liberty is a well-armed lamb contesting the vote.
The interactivity still wasn't perfect, but it was noticably better. Now if I can just track down and apply Ingo's patch as well....
Democracy is two wolves and a lamb voting on what to have for lunch. Liberty is a well-armed lamb contesting the vote.
Qnx real time os and Be is multithreaded . Is linux behind these operating systems in handling processes or threads?
Isn't there a backport for this [the O(1) scheduler] for 2.4?
Herein lies the difference. My browser window always pops up with (I think it's about:blank or something similar) as its' initial URL - anyway the URL area is empty.
:-)
If I want to overwrite existing text, I double-click the offending URL and hit delete first, but in general I don't need to do this.
I use linux as my desktop at home and at work, I'm a programmer by trade. Since we all check in and out via CVS, it's up to me which OS I use. Linux makes my life a lot easier
I have a double-headed machine, normally with (say) 5 or 6 editor windows open - cutting and pasting is a common task, and it's just so much easier to do it all with the mouse, for me, at least. I guess everyone has their own way....
Simon.
Physicists get Hadrons!
An interactive program might use only 15% of the CPU *on average*, because most of the time it is waiting for user input, but it does need to use 100% CPU in short bursts to respond quickly to the user.
-- Ed Avis ed@membled.com
You sez:
"2.5.54 is far slicker on the desktop than 2.4.x
I don't blame ya.
With 2.4.x kinda die a s-l-o-w death, due to the super-sluggish-performance by that ultra-non-slick-maintainer
Muchas Gracias, Señor Edward Snowden !
You sez:
"Linux isnt going to be truely Desktop friendly
until X11 gets replaced with something that
doesnt completely suck."
For a much less-suck thingy, try enlightenment 0.17. Website at http://www.enlightenment.org
Muchas Gracias, Señor Edward Snowden !
Most people would kill it from the task manager. My question is, why does stuff hang all the time on Windows in the first place?
-Kevin
I find it amazing Linus and crew get any code done when they write a 5 line patch then spend 15 posts in lkml to debate it. And that's just Linus posts that kerneltrap found interesting.
"tar -zxf FOO.tar.gz; cd FOO; ./configure; make; make install"
No mouse, no stupid dialogs, just type it within seconds and turn off the power of your monitor. When the next time you turn on your monitor, there would be a fully-optimized software for you!
The speaker, a guy who I had not heard of before but had clearly been working on computer security for decades, argued that both Windows and Linux had fscked up security majorly by letting drivers run in ring 0 and thus giving them access to everything in the kernel (for instance, letting your video driver quietly monitor your network traffic). His argument was that the x86 had the facility to run drivers in ring 1, thus quarantining them from touching hardware they weren't supposed to.
I don't understand the internals of the x86 well enough to know how much actual security that would add, and I would also argue that I would much prefer an open source driver running with unlimited privileges to a closed-source driver in a sandbox.
The other issue is that shifting drivers out of ring 0 might affect performance quite a lot, and if there's no real gain in security (or stability, because it would also be some protection against a badly-written driver screwing the whole system), it's probably not worth the bother.
Any sufficiently advanced technology is indistinguishable from a rigged demo
--Andy Finkel (J. Klass?)
With the patch in question, the kernel automatically responds to a certain pattern of activity, regardless of whether it's X or some other process that is responsible for holding up interactive processes, and so the solution is far more generic.
A typical example would be with component architectures such as Bonobo or KParts. If some interactive task depends on a CPU hog of a component, this change would ideally give the component a boost too (I say "ideally" because the patch currently only look at Unix domain sockets, and I've got no idea whether either Bonobo or Kparts use Unix domain sockets for parts of their communication).
Okay, this was funny the first 10 times, but now it's starting to get old... Even 'In Soviet Russia, Interactivity boosts YOU!' is funnier. (I know, don't feed the trolls...)
Meep.
But that's completely different from what my post's parent said. He* said: ``all the CPU all day long''. That's not ``100% CPU in short bursts'' as you said. What you describe can easily be done on a server: give the interactive process the CPU when it wants it (can't be very often on a server, eh?) and use server scheduling the rest of the time.
* All posters are not male, but all posts are, and the antecedent of this pronoun is a post.
There are reasons why democracy does not work nearly as well as capitalism.
-- David D. Friedman
In reply I said that 15% could be the _average_ CPU usage but 100% CPU is needed occasionally when the user has just performed an action.
I agree with you: it is possible to give the interactive process 100% CPU when it wants it, in short bursts, and go back to server scheduling for the other processes. That is exactly the point I was making.
-- Ed Avis ed@membled.com
What you say is all true. However, when I post a question, and you reply, I assume you're answering my question. Furthermore, I assume you've read the thread, so you're replying in context. So, if you answer my question (how is the parent post's statement possible) you're explaining how it's possible. But you didn't explain how it's possible. Hence my reply.
Sorry for any inconvenience, I just realized all of this while reading your post.
There are reasons why democracy does not work nearly as well as capitalism.
-- David D. Friedman
I suppose there are several real-time efforts going on, but I'm curious about why this is one that Linus supports while he seemed set against the preemptible kernel. So is there a connection? Is this the next revision of the preemptible kernel code?
someone said "You mean here in the year 2003 Linux is going to get a decent desktop, like Macintosh got in 1984 or Windows in 1995?"
um no... Linux had a decent desktop years ago, but I'll admit that it was best suited to intelligent people.
What this is about is maintaining good GUI responsiveness and smooth multimedia playback in the presence of punishing, disk thrashing system activity - in other words, it's not about catching up to mac or windows, since neither mac nor windows have ever been there. We're talking really good stuff, not commodity pee cee type behavior.
Oh, as for your comment about X windows cutting and pasting, I don't know what to tell you - it was working fine for me in 1993, and it's still working fine. perhaps your problem lies between the headphones...
I always wondered, what would the specifications of the AAA chipset have been, had it ever been finished?
http://spamdecoy.net - free throwaway anonymous email - avoid spam!
Obviously you did not read much of the linux kernel mail list discussion. Kernel developers want their desktops to remain responsive while they're recompiling the kernel.
Well, they also want multimedia apps and X to run smoothly when other non-interactive loads are placed on the system, but if you had read the discussion, you'd see that nearly every message in the first half mentions dragging a big xterm window while a full multi-threaded kernel recompile is in process.
So, obviously SOME people do need low-latency desktop performance AND high-throughput to do real work at the same time. And that happens to be all kernel developers who recompile the kernel a lot!
Just because YOU never do anything that involves a lot of CPU time doesn't mean others do not also.
PJRC: Electronic Projects, 8051 Microcontroller Tools
Actually, it's closer to 170, which isn't much higher than with all the services off (~130). And, while this isn't a front-line server, the processes are hardly idle either.
I agree and run into this problem so much (under Windows) that I have developed a speedy workaround:
1. Select text, hit Ctrl+C (copy).
2. WindowsKey+R (run program), "notepad", Enter.
3. Ctrl+V (paste), Ctrl+A (select all), Ctrl+C (copy).
4. Alt+F4 (close Notepad).
5. Switch to Word or whatever, Ctrl+V (paste).
It takes a lot less time to do than it takes to describe, and copy-and-pasting through Notepad removes any and all formatting.
I know this is Slashdot and I should provide a Linux-specific way to do this but I primarily run Windows.
I feel fantastic, and I'm still alive.
They officially measure boot time as the time from turning on the power to the time when the "Start" button shows up on the screen.
So all sorts of things get twisted around, delayed, etc. by the OEMs just to make that damned button "clickable", even though the action which is supposed to follow that click won't happen for almost a minute.
Actually you can scale what M$ has done in their server environments to multiuser systems... Terminal Server is a multi user system, all though I agree with you Windows only works well when there is one user on a system.
I have mod points and I am not afraid to use them