public inbox for linux-8086@vger.kernel.org
 help / color / mirror / Atom feed
From: Alfonso Martone <a.martone@retepnet.it>
To: linux-8086@vger.kernel.org
Subject: Re: some ELKS suggestions
Date: Fri, 28 Mar 2003 18:17:42 +0100	[thread overview]
Message-ID: <200303281817.42589.a.martone@retepnet.it> (raw)

> I wasn't in on the early development of ELKS, so some of these
> answers are no more than educated guesses as to the history of
> the features you refer to.

I'm one of those who told his friends "Yay!! There's a Linux port on 
8086, and it's called ELKS 0.0.44!!!" :-) But, frustrated from that 
extreme experimental stuff, hangs, from time to time I checked out for 
newer releases...


> crash solid if it does. Remember that EVERY interrupt will use the
> kernel stack, so it isn't easy to calculate how much is needed. 64k
> happens to be as large as it can go, and that is probably the main
> reason for that choice.

64k of kernel stack seems to me too much on a system with less than 
512k RAM. I wrote so because I thought that the worst-case would be 
less than 5-6k (except system static data).


> Why can't SI and DI be used for parameters, esp if the parameter is
> an address?

Yes, it ain't forbidden. It just requires a few bytes more for byte 
handling (that is: if SI happens to contain a byte variable, then it 
cannot be written back to memory without using an 8-bit register: SI 
isn't splittable in SH/SL like AH/AL...).

There is another issue: parameter-passing via stack (even calling an 
interrupt) may be better than using registers. The INT 0x80 interface 
of ELKS kernel just works with the stack because kernel functions are 
written in C. This may suggest even to use a stack-based (instead of 
register-based) INT 0x80 interface...! (would save a number of bytes 
in the kernel and in the executables).


> > the kernel? ELKS kernel has already str[n]cpy, atoi, str[n]cat,
> You'd need to deal with far data and swapping. It gets horrible.

Far data handling is needed only if DS/SS were updated to the kernel 
stack: but the strcpy, sprintf, etc can just run using "userland" 
segment-registers because they don't require kernel level features.

Yes, dealing with swapping would be really horrible.


> > - you can stay in little (little, little, little) RAM;
> Its not clear how much you win, plus systems like UZI and OMU aready
> exist in C and are tons smaller than Linux

Uh... I come from Ye Olde Anciente Times, when men were men and wrote 
their own operating systems in full assembler source "burn-optimizing" 
even the latest byte. Of those times I regret only self-modifying code 
and excessive paranoid tricks (extreme clock cycle calculations etc).

alf

             reply	other threads:[~2003-03-28 17:17 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-03-28 17:17 Alfonso Martone [this message]
  -- strict thread matches above, loose matches on Subject: below --
2003-02-28  8:44 some Elks suggestions Alfonso
2003-03-03  0:33 ` Alan Cox
2003-03-03  1:12 ` Patrick Finnegan

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=200303281817.42589.a.martone@retepnet.it \
    --to=a.martone@retepnet.it \
    --cc=linux-8086@vger.kernel.org \
    /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