From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 15 07:04:16 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 215AD16A47E for ; Thu, 15 Jun 2006 07:04:16 +0000 (UTC) (envelope-from gs_stoller@juno.com) Received: from outbound-mail.nyc.untd.com (outbound-mail.nyc.untd.com [64.136.20.164]) by mx1.FreeBSD.org (Postfix) with SMTP id 72B3C43D49 for ; Thu, 15 Jun 2006 07:04:15 +0000 (GMT) (envelope-from gs_stoller@juno.com) Received: from webmail04.nyc.untd.com (webmail04.nyc.untd.com [10.141.27.144]) by smtpout01.nyc.untd.com with SMTP id AABCKCBU5AAK3MMA for (sender ); Thu, 15 Jun 2006 00:03:55 -0700 (PDT) Received: (from gs_stoller@juno.com) by webmail04.nyc.untd.com (jqueuemail) id LSVW3CSS; Thu, 15 Jun 2006 00:03:00 PDT Received: from [67.84.52.37] by webmail04.nyc.untd.com with HTTP: Thu, 15 Jun 2006 07:02:11 GMT X-Originating-IP: [67.84.52.37] Mime-Version: 1.0 From: "gs_stoller@juno.com" Date: Thu, 15 Jun 2006 07:02:11 GMT To: jhb@freebsd.org, keramida@ceid.upatras.gr, langd-freebsd-hackers@leo.org, anderson@centtech.com, xfb52@dial.pipex.com, parv@pair.com, rizzo@icir.org, darren.pilgrim@bitfreak.org, des@des.no X-Mailer: Webmail Version 4.0 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain Message-Id: <20060615.000300.15626.148175@webmail04.nyc.untd.com> X-ContentStamp: 22:11:1941679759 X-UNTD-OriginStamp: /s5f1SIGSI3+WdnoYQ8yRCaKp419qRprifUVXBiIvBy/tc/3oaN5YA== X-UNTD-Peer-Info: 10.141.27.144|webmail04.nyc.untd.com|webmail04.nyc.untd.com|gs_stoller@juno.com X-Mailman-Approved-At: Thu, 15 Jun 2006 11:35:17 +0000 Cc: freebsd-hackers@freebsd.org Subject: Options for boot program X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Jun 2006 07:04:16 -0000 My way of operating is to multi-task almost all the time. As such, while working on one task, if another task on which I am also working (but had to pause in it because some information or equipment that the task needed wasn't available) of higher priority suddenly became available/operable, then I would want to know about this so that I could switch to the higher priority task. Thus I want that the computer should tell me that it needs input for one of its tasks, or that some task is showing output that I may want to see (this usually means error messages rather than standard output). The best way for the computer to tell me these things (i.e., to call my attention to itself) is by sound (because the ear detects from all around, while the eye detects only from in front of itself [so I would have to be looking at the screen]). Thus I can do other things and be called back to the computer as needed. Hence I want the boot program to sound a bell (possibly several times with a short interval to wait between successive times, and proceed immediately when I respond [and not wait for a set # of bells to be sounded]) if it is waiting for input (say, as to which slice to boot), and the amount of time (in seconds) that it waits for that input, and if it doesn't get any input before this time period expires, it boots the current default slice. I want to set the length of this time period (to wait before booting the current default slice). I realize that other users of the boot program may want it to behave differently than I do. Consequently, each user should be able to tell the boot program how he wants it to behave regarding these matters, and other matters that some user may be able to describe. A programmer of the boot program should not impose his preferences on the users of the boot program, but code in a way that allows them to get their preferred operation from the boot program. This can't be easily/safely done by options in the call of the boot program because the boot program isn't called (as we are familiar with it). It is read into RAM from the boot sector and then control is transferred to it, and all this is done by the BIOS or a small program built into the hardware of a computer. One way to make the boot program aware of a user's preferences is to store these preferences (options) in the boot sector, say the last byte or two of that sector. That way, this data will not have a chance of being in the midst of code. The setting of these bytes can be done as part of the installation of the boot program, and/or have a special patch program that patches just this area (even after installation so if the owner wants to change his options after installation, he can easily do so). I would like to suggest some minor changes to the boot program for FreeBSD , mainly in the area of options that the user can set when installing it. Hopefully the space available for the boot program will be big enough to allow these changes. By the way, is there more space available (e.g., more sectors on the platter/cylinder) for the boot program? Where can one get the code for the boot? Also, how much space is available for the boot code? Also, can one add more slices (so there are more than 4) to the system, and have ways of booting them. Another thing that could be done is to introduce "logical slice" (the term has been used before), say by allowing more than 8 partitions per slice and allowing the user to be able to specify which set of 5 to mount (and these 5 form a "logical slice").