First Law of Sane Personal Computing

Assuming physically-intact hardware, the user shall retain full control of the machine at all times.  In particular, the handling of the keyboard, mouse, and other human interface devices must take absolute priority over all other processing.  The user shall have the ability to issue commands and receive immediate confirmation of said commands at all times, regardless of system load.

Personal computer operating systems known to obey this law:

0 (possibly 1[*]

Notes and observations:

Right now, the only part of a standard PC which behaves this way is the power switch.  And I have seen exceptions even here.

To be continued.

[*] Corrections are welcome.

This entry was written by Stanislav , posted on Tuesday August 24 2010 , filed under Hot Air, Philosophy, SoftwareSucks . Bookmark the permalink . Post a comment below or leave a trackback: Trackback URL.

8 Responses to “First Law of Sane Personal Computing”

  • AMEN!!! I couldn't agree more. A device that prioritized user input over all other processing seems like a no brainer. I can only assume that it's incredibly difficult to do this or the trade-offs are too great, otherwise most OSes would be doing this.

  • Terry Davis says:

    Rules for insane computing:
    1) User and all programs should have kernel (ring 0)access at all times. It's your frigging machine, do what you like without supid hassles like permissions.

    Operating Systems obeying this:
    1) The 64-bit LoseThos Operating System

    I'm funded from social security disability for being insane.

  • MSpreij says:


    Amen, amen, amen.

  • MSpreij says:


    Amen, amen, amen.

    FWIW, BeOS tried doing this.

  • another says:

    I'm pretty sure exceptions might exist, but only for stuff like 3D rendering, etc...

    • Alpheus says:

      Even then, it's only ok if humans *explicitly* gives up the control. But I would go so far as to say, is it too much to ask to give keyboard and mouse absolute priority? If I truly wanted my computer to ignore signals from me, I could do it by keeping my fingers off of the keyboard and mouse!

  • Alpheus says:

    This is the first time I've encountered this post, but this topic itself has been on my mind for months now.

    There's nothing more deeply annoying than opening up yet another Chrome tab (yes, I happen to have dozens of tabs in dozens of windows -- I pursue branches of thoughts, and when I need to focus on one, I ignore the others, until I want to come back to them, and bookmarking isn't a sane way to store/retrieve temporary lines of thought) and the entire system crawls to a near complete standstill -- to the point where I have to drop into a text terminal and kill Chromium processes, which, even without graphics, can take forever.

    Or, for that matter, I attempt to run a naive solution to an Euler problem in Haskell, and the system freezes up.

    How hard can it be to write a scheduler that makes sure that, above all else, if a signal comes from a mouse or a keyboard, it is handled immediately? Yes, humans are so slow that space between signals should be given high priority, but when it comes to moving a mouse or typing on a keyboard, heck, when i comes to running a program (or a tab) that a human has its focus on, on a scale of "niceness" from -19 to 20 (where -19 is given the highest priority to run, and 20 given the lowest), these things should be -100!

    (And I don't know if that exclamation point is meant to provide emphasis, or is meant to be a factorial for 100 before it's made negative....)

    • Stanislav says:

      Dear Alpheus,

      The PC architecture (in particular: rampant use of DMAism) makes writing a "First Law"-compliant OS scheduler very difficult there. If not impossible.

      It also doesn't help that the "heft" and unwieldiness of OS-level threads more or less forces application programmers to write their own ad-hoc, invariably-buggy schedulers. (E.g. your Chrome's.)


Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

MANDATORY: Please prove that you are human:

86 xor 96 = ?

What is the serial baud rate of the FG device ?

Answer the riddle correctly before clicking "Submit", or comment will NOT appear! Not in moderation queue, NOWHERE!