This is G o o g l e's cache of http://www.lp.se/ftp/mailinglists/FREE-VMS.1999-10.
G o o g l e's cache is the snapshot that we took of the page as we crawled the web.
The page may have changed since that time. Click here for the current page without highlighting.
Google is not affiliated with the authors of this page nor responsible for its content. |
These terms only appear in links pointing to this page: ftp
|
|
Archive-Date: Tue, 5 Oct 1999 14:23:49 +0200
Message-ID: <37F9EDE9.A2338FB4@radar.no>
Date: Tue, 05 Oct 1999 14:24:09 +0200
From: Magne =?iso-8859-1?Q?M=E6hre?= <magne@radar.no>
Reply-To: Free-VMS@lp.se
MIME-Version: 1.0
To: Free-VMS <Free-VMS@lp.se>
Subject: Boot process
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
I've been hacking on some code to create an ODS-2 volume
on a disk (or partition) from Linux. What I'd like to do
is to make the disk/partition bootable via LILO, and load
a VMB.EXE - equivalent.
I'd like to know a little more on what happens at this stage
in "real" VMS? I understand that WRITEBOOT.EXE creates the
bootstrap block, but what is exactly written? Is it just
a pointer to where VMB.EXE is located on the disk, or is
it actual working code (I tried to disassemble the
bootstrap, but it didn't tell me much) ?
--Magne
================================================================================
Archive-Date: Tue, 5 Oct 1999 16:02:11 +0200
MIME-Version: 1.0
Date: Tue, 5 Oct 1999 10:56:55 -0500
Message-ID: <000ED7C3.C21492@advocatehealth.com>
From: David.Dachtera@advocatehealth.com (David Dachtera)
Reply-To: Free-VMS@lp.se
Subject: Re: Boot process
To: Free-VMS@lp.se
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
Content-Description: cc:Mail note part
I think you might do better to try to reverse-engineer
WRITEBOOT. That would tell you more about what it does.
Doing so to the boot block just tells you what's in the
boot block. From the little I know about WRITEBOOT, you
tell it the name of the boot file (VMB or APB) and the
path to it, and WRITEBOOT will translate the addres of
that file into cylinder / sector / head and extent size
(how many sectors - VMB or APB must be contiguous), and
write those data into the boot block along with the
necessary boot code to find that extent and load it into
memory at a pre-determined address.
Also, remember: since the boot BLOCK (singular) is only
512 bytes, you're likely not to find any embedded strings
or messages. It's gotta do a lot in very little code. All
it really does is locate and load VMB (or APB) and then
transfer control to it.
If you try to reverse-engineer VMB (or APB) you're likely
to find that while begins to provide more support for
ODS-2, it doesn't do much beyond locate and load things
like SYS.EXE (which I believe is the most primitive part
of the VMS kernel, but don't quote me 'cuz I'm kinda
guessing here) and SYSBOOT (which I believe begins the
process of setting up the in-memory data structures,
including loading - and to a limited degree, verifying -
the system parameters; again, just a guess, I really
don't know for certain).
Although the LILO paradigm does provide a frame of
reference, I would discourage using that as a model.
You'd do better, IMHO, to analyze and emulate the actual
VMS boot process. Others will, I'm sure, disagree with
me. Seems to me you'd do best to write boot code that can
read ODS-2 for starters, with perhaps some common
strategies for booting from diskette, ATAPI ZIP drives,
EIDE hard disks, Orb (2 GB) and ZIP (250 MB) drives,
and/or SCSI hard disks, ZIP, Jaz and/or Orb drives in
ODS-2 format. ODS-2 eats up a lot of space on a diskette;
so, you probably can't load much that way besides maybe
the primary and secondary bootstraps. Still, it may prove
useful at some point in the development process.
Also, remember that "real" VMS doesn't know about disk
"partitions" - it considers the whole disk as a single
unit of storage. Building partition support into the boot
straps and loaders might be useful, but would differ from
the way "real" VMS works.
A disk "partition" might be compared to a logical/virtual
disk container file. That is to say, the VMS operating
system must be fully loaded and running before that level
of support becomes available.
(Orb drive info.: http://www.castlewood.com/ )
David J. Dachtera
dba DJE Systems
http://home.earthlink.net/~djesys/
______________________________ Reply Separator _________________________________
Subject: Boot process
Author: Free-VMS@lp.se at PO_EXTERNET
Date: 10/05/1999 7:24 AM
I've been hacking on some code to create an ODS-2 volume
on a disk (or partition) from Linux. What I'd like to do
is to make the disk/partition bootable via LILO, and load
a VMB.EXE - equivalent.
I'd like to know a little more on what happens at this stage
in "real" VMS? I understand that WRITEBOOT.EXE creates the
bootstrap block, but what is exactly written? Is it just
a pointer to where VMB.EXE is located on the disk, or is
it actual working code (I tried to disassemble the
bootstrap, but it didn't tell me much) ?
--Magne
================================================================================
Archive-Date: Tue, 5 Oct 1999 16:42:37 +0200
MIME-Version: 1.0
Date: Tue, 5 Oct 1999 11:34:17 -0500
Message-ID: <000ED9AA.C21492@advocatehealth.com>
From: David.Dachtera@advocatehealth.com (David Dachtera)
Reply-To: Free-VMS@lp.se
Subject: Re: Boot process
To: Free-VMS@lp.se
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
Content-Description: cc:Mail note part
Here's some more info. about boot-time stuff in "real"
VMS...
Intel machines, with no known exceptions, lack an
"intelligent console". They locate their boot device
device according to rules setup (or defaulted to) in the
BIOS. The idea of passing parameters to the boot process
is a foreign concept.
Early VAX-11 machines weren't much different. They needed
to read and load from a QIC-like tape device such things
as the primary boot-strap, the data indicating the boot
disk and boot file name, etc.
VAX 8200's (and others) replaced the tape device with
diskettes which made system management somewhat easier,
but still required a running system to manage the
boot-time scenario.
Then, newer VAXes, including the now famous MicroVAX(-II)
began to include a "console" subsystem. The console
provides a rather primitive terminal interface with a
command line. The system manager could now specify the
device that VAX/VMS should be booted from, as well as
specifying parameters by way of the registers. Many
system managers are familiar with console commands such
as "B/R5:1" which would result in a "conversational" boot
(SYSBOOT solicits input from the console terminal before
proceeding, allowing changes in system parameters),
"B/R5:10000000" indicating that VAX/VMS should use "SYS1"
as the value of SYS$TOPSYS, which means that the system
will find it's node-specific parameters, files, etc. by
way of the SYS$SYSDEVICE:[SYS1...] path, etc. which is a
key part of the way that VMS clusters work and
distinguish one node's files from another's on a common
system disk.
At one point in earlier discussions (probably last year
some time), it was suggested that the early work on
VMS/x86 ("Free-VMS") include an emulation of the way that
some early VAXes would boot by way of a "console
diskette", thus obtaining key boot time information such
as which disk to boot from, flags to be passed to the
boot straps, SYSBOOT and the kernel, etc. Perhaps THIS is
where the LILO paradigm can be useful.
Hopefully, this info. will save some digging through the
mailing list archive.
David J. Dachtera
dba DJE Systems
http://home.earthlink.net/~djesys/