Mail Archives: djgpp/1997/11/03/14:00:20
From: | group <group AT fake DOT com>
|
Newsgroups: | comp.os.msdos.djgpp
|
Subject: | Coding Challenge
|
Date: | Sun, 02 Nov 1997 18:03:34 -0500
|
Organization: | NetUnlimited, Inc.
|
Lines: | 59
|
Message-ID: | <345D06C6.D67@fake.com>
|
NNTP-Posting-Host: | uhura-15.netunlimited.net
|
Mime-Version: | 1.0
|
To: | djgpp AT delorie DOT com
|
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp
|
A Challenge to all DJGPPers:
For quite some time we have had LWP and its addition like JTLWP and
PDMLWP to provide multithreading within a single executable. Although
these
libs provide for multithreading with in an exec. there is no facility
for
handling command line multitasking of more than one executable in
traditional
Unix style.
The Challenge:
Write a taskmanager for DOS/DJGPP.
( hereafter I will refer to the taskmanager as djmtask )
Specifications:
1) djmtask would server the djgpp community in general and
would be GLP. djmtask would be made for the community by
the community. One version of djmtask could be chosen
by community consensus as the standard we could all use.
2) djmtask would act like a secondary kernal. once started
from the dos command line djmtask would, start Protected
mode, take over command line reading and be responsible
for starting all other executables thereafter.
3) djmtask command line interface should conform to standard
linux/unix properities as follows
a) "program.exe &" starts process in background
b) "pid.exe " lists processes and their id #s
c) ALT key plus F1-F10 key switches between 10 virtual
command line terminals.
d) programs may call djmtask to start a completely new
process. Note: this does not start a new "thread"
Threads are still handled internally by the exec.
using LWP or an altered version thereof.
e) "kill #" ends process id #
4) General properties and reasonable limitations;
djmtask may work with non-reentrant lib code
in any way found most useful/stable.
Disabling multiprocessing during BIOS etc. non-reentrant
functions,
using only co-operative yielding etc..
5) Extras
Provide for a common data area, ie. clipboard
Provide for a common graphics environment by sharing *screen
pointer.
This is a community project as much as a challenge so working
in groups
could be beneficial.
GOOD LUCK !
- Raw text -