design help requested and offered

Rick A. Hohensee (rickh@Capaccess.org)
Sat, 01 Dec 2001 22:45:48 -0500


I have the display portions of a new design for a text editor working on
Linux, using the console vt102 emulation. It's written in osimpa, which is
my shasm assembler-in-Bash with some composites, i.e. "macros", i.e. sub-C
high-level stuff. Unlike Randy Hyde's HLA, I don't do DO/WHILE and so on.
For intra-routine flow control I have labels, "jump", "when", and
execution arrays. osimpa also has nifty copy-on-write-parameter-passing
( COWPP(TM) :o) procedures, but I haven't bothered with them for this
editor thing. I just call/return and push/pull or use a temp or whatever
when I run out of registers. The handiest thing for apps is the Linux
syscall wrapper, which is pretty simple and flexible.

This means osimpa is useable. As a little message to myself I gave away my
K&R2. I suspect osimpa is easier to learn than C. It codes a bit slower, I
suppose, but it's clearly very easy for an assembler. I also believe it's
very close to being portable across commodity one-stack CPUs, and can be
made entirely so with minimal performance loss. It's greatest strengths
probably lie in coding an OS. There is no high/low-level seam. (Well, not
like C/asm, but not self-extensible like Forth either.) It has one install
dependancy, a unix-sh-like command interpreter. The osimpa script is
116k, including gobs of help text. It doesn't prevent anything. It's
trivial to extend the compembler itself. It's not bad for a one-stack
system.

When I get the editor comfy, I'll be about due to have a go at my kernel
design. I have a PC bootsector that can handle interrupts from pmode in
pmode or in real mode. I do mean sector, 512 bytes. I'm not really a
details
guy though. All my stuff is rough sketches, although I've been working on
some of these cartoons for ten years. The kernel sketch is in

ftp://linux01.gwdg.de/pub/cLIeNUX/interim/
and I think the filename
is "design". The ABOUT file in that ftp directory is like a readme. The
idea that allowed it to stop swirling long enough to write it down was
"everything is a device". Any process can publish itself as a device-like
service. It resembles OOP and a microkernel, but both resemblances are
accidents. Those were not goals, and still aren't. Modeling my 3-stack
machine at some level is still a goal. Some of it will be quite alien, but
some of it will be easier for a unix kernel hacker to mentally model than
it is for me. Comments cordially requested. Particularly comments of the
"if I understand what you mean, part BLA doesn't work" variety. Many
aspects of this design could be inflicted on e.g. a Linux 1.0.x, which I
kinda started to do persuant to my asm("") rant here, but I have had my
fill of pointers to void.

A (deeply knowledgeable) Lisp weenie on IRC with an OS project of his own
was kind enough to review my design and typed "Ok, looking at this as an
overview, I see a re-invention of UNIX, only worse."

*bow*

Peace, love, hard realtime with three stacks

Rick Hohensee
cLIeNUX user 0

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/