[FreeVMS] Using the Bochs images?

BERTRAND Joel joel.bertrand at systella.fr
Fri Nov 26 10:14:11 CET 2010


Roar Thronæs a écrit :
> On Thu, Nov 25, 2010 at 02:25:58PM +0100, BERTRAND Joel wrote:
>>
>> 	Of course, I will reuse a lot of code from 0.3.15. Today, I'm only
>> working on virtual memory on top of L4 and I need some help. Kernel
>> initialization is done and kernel tries to start init.exe (to load
>
> I do not know the L4 microkernel you are using, or whether it makes
> some restrictions on mm or i/o.
>
> Is it possible to port the entry.S and pager, or do you have to do
> things differently?

	I think we have to write a pager that only uses L4 syscalls. A this 
time (I don't know if you have downloaded last snapshot), I only use 
assembly for mutexes (one function) and for bootstrap (one function). If 
we can write a virtual memory pager that only uses L4 syscalls, it shall 
be easy to port kernel on new archs.

	I'm working on iguana pager. But this pager is only idempotent as BSD 
or Linux server uses its own pager. I have fixed a lot of bugs in these 
functions but this pager requires a lot of work yet. I've just found a 
strange bug when kernel tries to load a binary file in a fixed memsection :

%MEM-I-ACCMAP, accepting mapping
%MEM-I-ACCMAP, virtual  $0000000000047000 - $0000000000047FFF
%MEM-I-ACCMAP, physical $0000000000046000 - $0000000000046FFF
%SYSBOOT-I-SYSBOOT, adding capabilities to INIT.EXE clist
TO BE FIXED ! vm/vm_alloc.c line 394
20000b0 20010af 3ffffff
%MEM-I-ACCMAP, accepting mapping
%MEM-I-ACCMAP, virtual  $0000000002001000 - $0000000002001FFF
%MEM-I-ACCMAP, physical $0000000000047000 - $0000000000047FFF
%MEM-I-ACCMAP, accepting mapping
%MEM-I-ACCMAP, virtual  $00000000020AD000 - $00000000020ADFFF
%MEM-I-ACCMAP, physical $000000000009C000 - $000000000009CFFF
%MEM-I-ACCMAP, accepting mapping
%MEM-I-ACCMAP, virtual  $0000000002159000 - $0000000002159FFF
%MEM-I-ACCMAP, physical $000000000009D000 - $000000000009DFFF
%MEM-I-ACCMAP, accepting mapping
%MEM-I-ACCMAP, virtual  $0000000002204000 - $0000000002204FFF
%MEM-I-ACCMAP, physical $0000000000406000 - $0000000000406FFF
%MEM-I-ACCMAP, accepting mapping
%MEM-I-ACCMAP, virtual  $00000000022B0000 - $00000000022B0FFF
%MEM-I-ACCMAP, physical $0000000000407000 - $0000000000407FFF
%MEM-I-ACCMAP, accepting mapping
%MEM-I-ACCMAP, virtual  $000000000235B000 - $000000000235BFFF
%MEM-I-ACCMAP, physical $0000000000B5A000 - $0000000000B5AFFF

Loop until all physical memory is allocated and kernel hangs on 
pagefault error.

	I don't know how actuel pager works, but if we reuse it, we have to 
implement it in init.exe task. It's an other solution. What's your opinion ?

	Regards,

	JKB


More information about the FreeVMS mailing list