Will Honea wrote in a message to Roy J. Tellason:
WH> Roy J. Tellason wrote to Charles Gaefke on 04-29-1998
RT> I wonder why they decided that the initial loading had to
RT> be done by the BIOS code? There's probably a good reason
RT> for that design choice, but it's not apparent to me.
WH> Some of us 'old timers' have some interesting tales re:
WH> bootstrap - which is what the initial startup really is.
WH> You have some limited amount of generic functionality built
WH> into the machine. In the case of the PC, that's the BIOS.
WH> It's barely smart enough to pick a device and read cylinder
WH> (track) 0, head 0, sector 1 (which is the first sector but
WH> they start that at 1 for some reason lost in the dim, dark
WH> past).
What's even more fun is how in some circumstances that "first sector" would
be _physical_ sector 0, but _logical_ sector 1...
WH> It knows just enough to read 512 bytes to a predefined location
WH> in memory, then transfer control to a specific location in that
WH> memory. That's it - no more, no less. Notice that there is no
WH> mention of a file or file system - just a raw read of a
WH> specific disk sector. Now you have a small program in memory
WH> and IT knows just enough to locate the next bit of info to
WH> read. It may even be smart enough to be able to find a file by
WH> name for a specific OS format, but that's it. So you load a
WH> bit larger program which can do even more. Pretty soon you
WH> have the OS in the system and you are off and running, but the
WH> initial steps depend on some non-volatile code segments that
WH> literally pulls the system up by it's bootstraps.
WH> To date myself, the boot process on the first computer I ever
WH> got my hands on physically was an SDS4000 - all of 8k of 24 bit
WH> core memory, not bad.
My "first" was a Heathkit H11, basically a PDP-11/03, which we had 56k of
ram in and that was all you could stuff in there.
WH> It had reasonably smart channel controllers that could read a
WH> block of data from the start of a tape. To boot, you set 24
WH> toggle switches to issue the channel command to read the first
WH> block of data when you stepped the computer, then you had to
WH> toggle in another instruction to make ther computer go to the
WH> proper address in that block to start the rest of the process
WH> that pulled that machine 'up by it's bootstraps'. There was a
WH> similar setup on the first generally available micros, the old
WH> Altairs.
To get that H11 up you sat there at the (hard copy) console and typed in 20
lines or so of a "boot loader", and then told it to go to the address you'd
specified, at which point it would load in an "absolute loader" tape, which
you'd then use to load your BASIC tape (we're talking paper tape here!), or
whatever.
WH> Computers suffer severe memory problems - they remember NOTHING
WH> when power goes off. You have to re-educate them every time
WH> you power up. This, BTW, ignores the case where the entire OS
WH> is in ROM and always ready to go (bet you never heard of OS/2
WH> on EPROMS, but it's there!).
Is it really? I subscribe to Embedded Systems Programming (and moderate the
fido EMBEDDED echo), and have never run across any reference to it in there.
One time during the years I've been getting that magazine, the included some
disks with it, a set of 4 cdroms on "WinCE". Unfortunately they're
essentially a set of coasters as they neet NT to be up and running in order
to read them! Not that I was that interested anyhow, but...
email: roy.j.tellason%tanstaaf@frackit.com
---
---------------
* Origin: TANSTAAFL BBS 717-432-0764 (1:270/615)
|