Date: Thu, 27 Jun 1996 14:06:36 +0800 (GMT) From: Orlando Andico To: Garrido Freire cc: djgpp AT delorie DOT com Subject: Re: Multitasking in DOS (fwd) In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII 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.