[FreeVMS] Auto-discard notification

BERTRAND Joël joel.bertrand at systella.fr
Fri Jun 14 11:58:42 CEST 2013


 >On Thu, Jun 13, 2013 at 11:44:57AM +0200, BERTRAND Jo�l wrote:
 >> 	Today, FreeVMS 0.4 requires :
 >> - a pager (FreeVMS/sources/freevms/vm/vm_pager.c)
 >> - some drivers (console, hard disk, network)
 >> - a swapper
 >> - a command line
 >> - some volunteers to keep webpages alive.
 >>
 >I will be happy to help somehow.  But I'm not a great VMS expert,
 >and I think I will be only able to start writing only some
 >drivers and/or propose a hardware abstraction ala NetBSD (for
 >example).
 >
 >Cheers,

	I'm not sure that FreeVMS requires today great VMS experts. I'm 
currently trying to update git repository to push all modifications I 
have made since 2010. I think that this week-end, you will able to find 
a disk image that boots under qemu and you will see if you can help this 
project. I will upload L4/X2 documentation too.

	Here is console output (with some comments) :

riemann:[~/openvms] > qemu-system-x86_64 -hdc freevms.img -smp 1 -serial 
stdio -m 128M -k fr -display none

// Grub is loading kickstart. Kickstart loads into memory several
// modules.

KickStart 0.12.56 for FreeVMS
Detected multiboot compliant loader
Reserving 8MB for kernel memory
  L4/X2 kernel    (0x0011b000-0x0018c00a)   => 0x0095a000
   (0x0011c000-0x00175510) -> 0x00800000-0x00859510
   (0x00176000-0x0017de70) -> 0x0095a000-0x00961e70
  sigma0          (0x0018d000-0x001a6b30)   => 0x00080000
   (0x0018d0c0-0x00193080) -> 0x00080000-0x00085fc0
  vmskernel.sys   (0x001a7000-0x001f4775)   => 0x01003d10
   (0x001a70b0-0x00220f18) -> 0x010000b0-0x01079f18
Launching kernel ...

// Kickstart launchs L4/X2 microkernel (kernel mode)

L4Ka::Pistachio - built on Dec  7 2010 08:23:14 by bertrand at cauchy using 
gcc version 4.4.5 20100728 (prerelease)

// starting L4 root server over sigma0 (idempotent memory mapper).

 >>> FreeVMS 0.4.0 (R)

%SYSBOOT-I-SYSBOOT, leaving kernel privileges
%SYSBOOT-I-SYSBOOT, launching FreeVMS kernel with executive privileges
%SYSBOOT-I-SYSBOOT, booting main processor
%SYSBOOT-I-SYSBOOT, computing page size: 4096 bytes
%SYSBOOT-I-SYSBOOT, CPU0 EXTFREQ=1001 MHz, INTFREQ=1648 MHz
%SYSBOOT-I-SYSBOOT, parsing command line: /boot/vmskernel.sys 
root=dqa0.0 console=opa0    nodbg$virtual_memory    dbg$sys_pagefault 
  dbg$vms_pagefault
%SYSBOOT-I-SYSBOOT, selecting root device: DQA0.0
%SYSBOOT-I-SYSBOOT, selecting console device: OPA0
%SYSBOOT-I-SYSBOOT, initializing memory
%MEM-I-AREA, $0000000000000000 - $000000000007FFFF: physical memory
%MEM-I-AREA, $0000000000086000 - $000000000009FBFF: physical memory
%MEM-I-AREA, $0000000000100000 - $0000000000108FFF: physical memory
%MEM-I-AREA, $000000000010B000 - $00000000001F4FFF: physical memory
%MEM-I-AREA, $0000000000221000 - $00000000007FFFFF: physical memory
%MEM-I-AREA, $000000000095A000 - $0000000000FFFFFF: physical memory
%MEM-I-AREA, $0000000001010000 - $00000000075FFFFF: physical memory
%MEM-I-AREA, $0000000007E00000 - $0000000007FFDFFF: physical memory
%MEM-I-AREA, $0000000000001000 - $FFFFFEFFFFFFFFFF: virtual memory
%MEM-I-AREA, $000000000009FC00 - $00000000000FFFFF: mapped IO
%MEM-I-AREA, $0000000007FFE000 - $FFFFFFFFFFFFFFFF: mapped IO
%MEM-I-AREA, $0000000007600000 - $0000000007DFFFFF: reserved by kernel
%MEM-I-AREA, $0000000000800000 - $0000000000859FFF: reserved by kernel
%MEM-I-AREA, $000000000085A000 - $0000000000959FFF: reserved by kernel
%MEM-I-AREA, $0000000000832000 - $0000000000832FFF: reserved by kernel
%MEM-I-AREA, $FFFFFFFFFFC00000 - $FFFFFFFFFFC00FFF: reserved by kernel
%MEM-I-AREA, $00000000FEC00000 - $00000000FEC00FFF: reserved by kernel
%MEM-I-AREA, $0000000000080000 - $0000000000085FC0: reserved by kernel
%MEM-I-AREA, $0000000000080000 - $0000000000084817: modules
%MEM-I-AREA, $0000000000084818 - $0000000000084837: kernel
%MEM-I-AREA, $00000000010000B0 - $000000000100EA77: modules
%MEM-I-AREA, $000000000100EA78 - $000000000100F257: kernel
%MEM-I-AREA, $00000000001F5000 - $000000000020120A: modules
%MEM-I-AREA, $0000000000202000 - $000000000020B97A: modules
%MEM-I-AREA, $000000000020C000 - $0000000000212C3A: modules
%MEM-I-AREA, $0000000000213000 - $0000000000219C3A: modules
%MEM-I-AREA, $000000000021A000 - $0000000000220C3A: modules
%MEM-I-AREA, $000000000010A000 - $000000000010AFFF: boot information
%MEM-I-AREA, $0000000000109000 - $000000000010933F: boot information
%SYSBOOT-I-SYSBOOT, reserving memory for preloaded objects
%MEM-I-ALLOC, allocating $0000000000080000 - $0000000000084817
%MEM-I-ALLOC, allocating $0000000000084818 - $0000000000084837
%MEM-I-ALLOC, allocating $00000000010000B0 - $000000000100EA77
%MEM-I-ALLOC, allocating $000000000100EA78 - $000000000100F257
%MEM-I-ALLOC, allocating $00000000001F5000 - $000000000020120A
%MEM-I-ALLOC, allocating $0000000000202000 - $000000000020B97A
%MEM-I-ALLOC, allocating $000000000020C000 - $0000000000212C3A
%MEM-I-ALLOC, allocating $0000000000213000 - $0000000000219C3A
%MEM-I-ALLOC, allocating $000000000021A000 - $0000000000220C3A
%MEM-I-ALLOC, allocating $000000000010A000 - $000000000010AFFF
%MEM-I-ALLOC, allocating $0000000000109000 - $000000000010933F
%MEM-I-F_ALLOC, bootstrapping Fpage allocator at virtual addresses
%MEM-I-F_ALLOC, $0000000000001000 - $000000000007FFFF
%MEM-I-S_ALLOC, bootstrapping Slab allocator at physical addresses
%MEM-I-S_ALLOC, $0000000000000000 - $000000000007FFFF
%MEM-I-FREE, freeing region $0000000000086000 - $000000000009EFFF
%MEM-I-FREE, freeing region $0000000000100000 - $0000000000108FFF
%MEM-I-FREE, freeing region $000000000010B000 - $00000000001F4FFF
%MEM-I-FREE, freeing region $0000000000221000 - $00000000007FFFFF
%MEM-I-FREE, freeing region $000000000095A000 - $0000000000FFFFFF
%MEM-I-FREE, freeing region $0000000001010000 - $00000000075FFFFF
%MEM-I-FREE, freeing region $0000000007E00000 - $0000000007FFDFFF
%MEM-I-VM_ALLOC, adding $0000000000085000 - $0000000000108FFF to VM 
allocator
%MEM-I-VM_ALLOC, adding $000000000010B000 - $00000000001F4FFF to VM 
allocator
%MEM-I-VM_ALLOC, adding $0000000000221000 - $0000000000FFFFFF to VM 
allocator
%MEM-I-VM_ALLOC, adding $0000000001010000 - $FFFFFEFFFFFFFFFF to VM 
allocator
%JOBCTL-I-MAX_THRDS, setting maximal concurrent threads to 262085
%DEV-I-INIT, initializing devices tree
%NSR-I-INIT, initializing names tree
%SYSBOOT-I-SYSBOOT, spawning PAGER.SYS with executive privileges
%SYSBOOT-I-SYSBOOT, creating PAGER.SYS UTCB pages
%SYSBOOT-I-SYSBOOT, reserving 4096 bytes for 4 pager threads

// PAGER.SYS is loaded by FreeVMS kernel in the same memory space.
// Pagefaults come from memory requests sent by $3C process id
// (PAGER.SYS) to freevms kernel pagefault handler. See
// http://www.freevms.net/article35.html

%SYS-I-PAGEFLT, pagefault request from $3C at $0000000000800200
%SYS-I-PAGEFLT, pagefault request from $3C at $0000000000007FE8
%SYS-I-PAGEFLT, pagefault request from $3C at $0000000000801C50
%SYS-I-PAGEFLT, pagefault request from $3C at $00000000008023C8
%SYS-I-PAGEFLT, pagefault request from $3C at $0000000000300000
%SYS-I-PAGEFLT, pagefault request from $3C at $000000000100C598

// All ELF segments from PAGER.SYS have been loaded, PAGER.SYS is
// started. Problem : PAGER.SYS does not do anything.

%RUN-S-STARTED, PAGER.SYS process started
%PAGER-I-SWPADDR, setting swapper base address at $0000000007FFE000
%PAGER-I-SWPSIZE, setting swap size to 0 byte

// Here, FreeVMS kernel has to start some modules like disk drivers,
// console driver... But to load these modules, PAGER.SYS has to be
// written to offer real memory mapping, not idempotent mapping.
// PAGER.SYS is in sources/freevms/vm

%RUN-S-STOPPED, PAGER.SYS process stopped
qemu: terminating on signal 2

	Before trying to write drivers, next step will be to write a minimal 
PAGER.SYS. I can help you to do that if you want.

	Regards,

	JKB


More information about the FreeVMS mailing list