From: sandeep <sandeep@codito.com>
To: linux-8086@vger.kernel.org
Subject: Re: EDE - Personal Suggestions and Ideas
Date: Fri, 28 May 2004 13:39:59 +0530 [thread overview]
Message-ID: <40B6F3D7.7050009@codito.com> (raw)
In-Reply-To: <20040527155128.GE21172@duckman.distro.conectiva>
hi Eduardo,
Since my earlier mail was focussed wrt to 8086/88, I am continuing with that
only as reference when voicing few suggestions.
> You are right, but this is true only if you assume that the program
> don't try to mess with the segment registers by itself, or store in
> memory the values of the segment registers for using them later. That
> is what was being discussed.
That issue comes with user writing assembly programs and messing around.
To start with the work, why not assume that user will only be writing C programs
for time being and gcc/any other compiler (and corresponding c libraries) can be
modified to handle the above issues.
I am hopeful, as the work progresses, ideas will take better shape.
AND guidelines can be laid for the assembly programmer. IF (s)he doesn't follow
(s)he himself will be responsible for trashing the system.
Here are my 2 cents on the issues (and a lot needs improvement and filling the
gaps) --
* to start with (a dirty design), compiler generated code, limits code, data and
stack to 64KB maximum (CS/DS/SS) and uses only 64KB (ES) for dynamic memory
allocations.
* in case data/code is more than 64KB, it should be managed via code and data
overlays. these overlays could be 4/8/12/16 KB in size (to keep things simple
may be can start with 8KB) mapped into fixed location in CS/DS segments. no far
pointers, only near pointers.
with this in place OS always have to bother with only 4 segments maximum
(suggestions in my previous mail wrt 8086/88). in the scheme so far we don't
endup with the need to store segment id anywhere in some variables. but in a
logical sense total space for program in memory at any time is fixed at maximum
256KB, though we have much more memory available for user program.
This next idea possibly hides alternatives to current idea.
* we want to go beyound 256KB now. we cookup one table [with fixed limit] that
is kept as a part of program related information, that informs where in memory
the segments related to program are currently located and what is their length,
that helps OS to track them and relocate them.
for ex. ((seg1,len1),(seg2,len2).....(segN,lenN))
all the segs are saved onto disk, when process got moved out, we remember the
order, and next time wherever we put them in memory, appropriately update them
in this list concerning programming related information. assuming whenever the
new segments are loaded into segment registers by program, they are picked up
from this table. other values of CS/DS/ES/SS are anyways handled in same manner
as in earlier mail.
* similar treatment can be given to far pointers (allow only global/static far
pointers for time beings) that get stored in same section, that can be handled
in some special manner. all these far pointers have segment-offset format and
the segments part can be updated in similar manner via the OS, some bit of
housekeeping/supporting information will be used for this. this will keep far
pointers fine across program removal and put-backs.
--
regards
sandeep
--------------------------------------------------------------------------
Loose bits sink chips.
--------------------------------------------------------------------------
next prev parent reply other threads:[~2004-05-28 8:09 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-05-25 14:23 [Fwd: Re: EDE - Personal Suggestions and Ideas] Miguel Bolanos
2004-05-25 17:10 ` David Given
2004-05-26 6:20 ` AW: " Mario Premke
2004-05-26 10:09 ` David Given
2004-05-26 10:30 ` Gábor Lénárt
2004-05-26 11:43 ` AW: " Mario Premke
2004-05-26 11:57 ` Gábor Lénárt
2004-05-26 12:39 ` AW: " Mario Premke
2004-05-26 13:06 ` Gábor Lénárt
2004-05-26 14:17 ` David Given
2004-05-26 15:10 ` Gábor Lénárt
2004-05-26 16:00 ` Andrey Romanenko
2004-05-26 16:49 ` David Given
2004-05-26 17:19 ` Eduardo Pereira Habkost
2004-05-27 9:09 ` Gábor Lénárt
2004-05-26 17:42 ` Andrey Romanenko
2004-05-26 23:19 ` David Given
2004-05-27 6:07 ` EDE - Personal Suggestions and Ideas sandeep
2004-05-27 15:51 ` Eduardo Pereira Habkost
2004-05-28 8:09 ` sandeep [this message]
2004-05-28 8:10 ` Gábor Lénárt
2004-05-28 10:11 ` David Given
2004-05-28 11:23 ` Andrey Romanenko
2004-05-28 12:14 ` David Given
2004-05-29 5:28 ` Dan Olson
2004-05-28 10:30 ` sandeep
2004-05-26 22:34 ` AW: [Fwd: Re: EDE - Personal Suggestions and Ideas] Harry Kalogirou
2004-05-27 9:00 ` Gábor Lénárt
2004-05-27 6:04 ` Dan Olson
2004-05-27 7:14 ` Andrey Romanenko
2004-05-27 9:32 ` David Given
2004-05-27 10:19 ` Gábor Lénárt
2004-05-27 21:07 ` Tommy McCabe
2004-05-28 7:39 ` Gábor Lénárt
2004-06-01 13:46 ` Gabucino
2004-06-02 9:03 ` AW: [Fwd: Re: EDE - Personal Suggestions and Ideas][OT] Javier Sedano
2004-05-26 11:34 ` AW: AW: [Fwd: Re: EDE - Personal Suggestions and Ideas] Mario Premke
2004-05-26 12:09 ` Gábor Lénárt
2004-05-27 5:56 ` Dan Olson
2004-05-26 22:42 ` Harry Kalogirou
-- strict thread matches above, loose matches on Subject: below --
2004-05-25 13:33 EDE - Personal Suggestions and Ideas Miguel Bolanos
2004-05-26 10:06 ` Gábor Lénárt
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=40B6F3D7.7050009@codito.com \
--to=sandeep@codito.com \
--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