[FreeVMS] Re: Plan


Subject: [FreeVMS] Re: Plan
roart@nvg.ntnu.no
Date: Fri Nov 09 2001 - 12:08:02 CET


On Thu, Nov 08, 2001 at 06:18:05PM -0700, Bruce Allen wrote:
>
> Great Plan!!!
>
> Does anyone think modifying the Linux Kernel to behave like VMS is
> important?
> VMS features like condition handlers, distributed lock management and ASTs
> are
> all kernel based?

Testing could be done in user-space, though.
(But that depends on your own tastes)

> I have read the "VMS on Mach 3.0 Kernel" paper written a while back and it

Is now on ftp.nvg.ntnu.no:/pub/vms/freevms/

> several ways to implement VMS functionality in a 'NIX environment and how to
> work around
> the KESU issues by using separate virtual address spaces.

I have just read that paper briefly.

One problem might be it was done on a VAX, so there are a lot of issues
not touched.
Mentioned though was to find (VAX) hardware dependencies.
That has since been implemented in PALcode (cirka).
We might need to implement some PALcode in software, and then some.
(I have already had to write queue support)
IPLs seem to be part of PALcode (Linux does not have IPLs, but we may
borrow from FreeBSD (which only "emulates", since PC does not have IPLs))

> I am very interested in starting with the Linux kernel and modifying it to
> behave like the real thing.
> I also want to help out as much as I can with what the group feels are
> important goals.
>
> System Services and the RTL are key pieces for the programmer to feel at
> home with.
> One issue is that in Linux does not have a working set concept in its
> kernel. Even if you

It really lacks a lot, yes.

> write an adjust working set or lock working set system service there are no
> Linux kernel
> data structures to manipulate.

You may have to take bits from the struct pcb to the struct task_struct
in a transitonal period, maybe put everything in and do some
defines/typedefs (like typedef struct task_struct pcb)?

It is really a roadmap/plan thing, but someone should really do it to
see how it feels/will be like, so as to be better prepared/experienced
to make the roadmap/plan.

> So my questions are:
> 1. Should I start on the kernel?
> 2. Help out on other parts of the project?

You might start, but you would soon find you need some datastructures and
some routines to build on.

You may use the Internals books to write the headers etc.
It is also possible to use what's in sys$common:[decc$lib.reference...]
or extract from sys$library:SYS$LIB_C.TLB and SYS$STARLET_C.TLB (maybe others).
Do something like
lib/tex/ext=* sys$library:SYS$LIB_C.TLB/out=test.txt
to get it all into one file, or iterate over the result of
lib/tex/list sys$library:SYS$LIB_C.TLB/out=sys$output with like variable X
lib/tex/mod=X sys$library:SYS$LIB_C.TLB/out=X.H
(But do not copy in it's entirety)

-Roar Thronæs

-- 
Liste de diffusion FreeVMS
Pour se désinscrire : mailto:freevms-request@ml.free.fr?subject=unsubscribe



This archive was generated by hypermail 2b25 : Fri Nov 09 2001 - 12:08:34 CET