9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Digby Tarvin <digbyt@acm.org>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] Bits of Plan 9 I wish were more popular...
Date: Thu,  3 Jul 2008 17:25:10 +0100	[thread overview]
Message-ID: <20080703162509.GA14782@skaro.cthulhu.dircon.co.uk> (raw)
In-Reply-To: <1a2bf3f90e7e54101acbd732969be516@quanstro.net>

On Thu, Jul 03, 2008 at 08:51:22AM -0400, erik quanstrom wrote:
> > The only issue is that I can't justify the time needed to write Plan 9
> > drivers when a usable system already exists.
> >
> > > Still you could use 9vx to run plan9 on top of this system, that way you could maybe
> > > migrate the system gradually.
> >
> > Unless vx32 can run real-time tasks (pretty sure it cannot) that's not
> > much use.  Almost every bit of my code (all except a very thin command
> > interface) is living in a loadable kernel module
> >
> > Don't you want Kalman filters in *your* OS kernel?
>
> it seems suprising that it all runs in the kernel.
> doesn't linux support real-time user processes?

It all depends on how strict your interpretation of real-time is.

The situation with Linux is similar to what I recall existed in SVR4,
There is 'real-time domain' scheduling, the POSIX.4 API for finer timing
control, and you can lock processes in core to prevent them from
swapping/paging... its ok if there is a bit of buffering to smooth out
the occasional delay, such as for multimedia applications, but if
delayed response to an interrupt could cause your reactor to go
critical then it probably isn't good enough. Unix just wasn't designed
for hard real-time.

The standard solution used in LinuxRT and RTAI is essentially to run
Linux on top of a real-time kernel. Your real-time applications then
run in real-time on the same machine as your Linux apps with some
limited ability to comunicate with them, but don't have access to Linux
system calls or libraries.

Putting your time critical code into the kernel is another way to
get more predictable response times - particularly if you can do the
time critical stuff in an interrupt service routine. but again you
forgo the normal Linux/User API and library access, and you have to
be careful of drivers and other parts of the kernel which may be
masking interrupts.

It is a bit like the attempts to retrofit multi-tasking to DOS.
You are better off designing somethign that has real-time in mind
from the start and then retrofitting the Unix/Linux compatability.

Regards,
DigbyT
--
Digby R. S. Tarvin                                          digbyt(at)digbyt.com
http://www.digbyt.com



  reply	other threads:[~2008-07-03 16:25 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-03 12:51 erik quanstrom
2008-07-03 16:25 ` Digby Tarvin [this message]
2008-07-03 17:51   ` Joel C. Salomon
  -- strict thread matches above, loose matches on Subject: below --
2008-07-02 22:30 Joel C. Salomon
2008-07-02 23:13 ` Steve Simon
2008-07-03  4:50   ` Joel C. Salomon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080703162509.GA14782@skaro.cthulhu.dircon.co.uk \
    --to=digbyt@acm.org \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).