Mail Archives: djgpp/1996/06/27/02:08:17
On Wed, 26 Jun 1996, Garrido Freire, Fco. Javier ((R)JA.GAR. SOFT) wrote:
> Of course, this's not enough, I know, to implement multitasking.
> One of the most important things is to manage Input/Output devices.
> There should be a lot to say just about this: keyboard, screen, disk,
> memory, ... And functions: pipe, exec, dup, dup2, kill, getpid,
> getpgrp, popen, exit, chdir, ... and surely fork and wait, :)
Multitasking under DOG ain't hard. And it ain't authentic. It's possible
to write multithreaded programs using setjmp() and longjmp() -- and people
have done that. Your biggest problem is: the *&&%$%%^ non-reentrance of
DOG itself (although the BIOS is more robust..) which precludes a
multithreaded filesystem! what's "multitasking" without it? (although yes,
I put my foot in my mouth, Minix doesn't have a multithreaded filesystem
last I looked).
> Another good source of information is "Operating Sistems: Design
> and Implementation" by Andrew S. Tanenbaum. He gets a much better,
> authentic 'preentive' multitasking at a *8088*!!
That would be Minix.. Tanenbaum got into an argument with Linus Torvalds
over that.. but why stop there? I don't know how far along Linux ELKS is
(this is the version that will run on an 8088 and Z80) but if you're that,
incredibly insane to want multitasking on an XT..
If you desperately want multitasking under something-like-DOG, check out
the RSXWDK and RSXNT packages. I got these, but they don't seem to work
with DJGPP v2 (written for 1.x and the OS/2 EMX-GCC). I've taken a look at
the source, and DJGPP 1.x with the RSXNT libraries *does* support fork().
You'd have to be running under Windog though.
- Raw text -