William Case kirjoitti viestissään (lähetysaika maanantai, 17. huhtikuuta 2006 04:54): > To be more accurate about the BIOS question; one of the things > that has always bothered me -- and it may be a result of > stupidity -- is when I turn on my computer in a cold boot, > power first flows to the main BIOS (read Firmware Hub for > Intel) and then to the other auxiliary BIOSes. No, all components are powered on at the same time. (large servers may use power sequencing to limit the maximum start-up current draw, but that's not relevant to BIOS start-up). See: http://www.pcguide.com/ref/mbsys/bios/boot.htm > How does main BIOS, at this early stage, know were the > auxiliary BIOSes are and which ones to elbow into action They are at fixed addresses: video BIOS at 0xC000, other expansion cards between 0xC8000 and 0xF0000 at 2KiB boundaries. The main BIOS looks for a specific "magic number" at those addresses to see if there's an add-on BIOS chip. http://en.wikipedia.org/wiki/BIOS#Firmware_on_adapter_cards > You know, to get a real answer I am probably going to have to > slog my way through the BASH source code. Ruefully; I would > have thought that someone would have already done the slogging > and left a nice neat readable explanation for the world. A UNIX/Linux shell is basically really simple: see this CS course assignment: http://www.math.grin.edu/~walker/courses/213.fa04/lab-shell.shtml BASH adds various extra features like command history, filename completion etc. but the basic command interpreter works the same way: For each command line, 1. break the command line into tokens - the pieces separated by spaces 2. place the command tokens into an array of command-line strings 3. identify the location of the desired program by searching the user's PATH variable for the given program 4. use fork to spawn a child process, and use execv within the child process to actually run the desired program. -- Markku Kolkka markku.kolkka@xxxxxx