Dear coreboot developers,
I'm trying to get the boot process definition cleared out in a discussion at debian-devel on replacing the sysvint script system with something event based like systemd or upstart. In the list below, please help me to refine it, and especially make a distinction on what is needed to: 1) get the computer up and running 2) all services needed are completed
Of special interest is what parts is taken care of different tasks in the boot procedure, and where serial/parallel processes are possible.
As I see it we have several tools in the boot process: 1) coreboot/BIOS 2) A workload, like grub2 3) The init scripts/systemd/upstart 4) On linux: udev communicating with the kernel, something else on other architectures
In my opinion the boot process definition can be split in two parts: 1) Initial boot, taken care of by sysvinit: Mainly order based or serial 2) secondary boot, taken care of by udev on Linux, something else on other arches: Mainly event-based or parallel
Am I completely out in the blue here? Thank you in advance for your opinion!
Hello,
In line with the recent discussion, lets aim at defining what _boot_ is:
- initializing the RAM: yes
- initializing the CPU(s): yes
- loading the kernel: yes
- initializing the graphics card: yes for text mode, graphics mode can
come later
- initializing the HDD(s): yes, if boot devices.
- setting up swap: yes
-initializing the keyboard and mouse : yes, see below wrt USB
- initializing the serial device: no, only if used for debugging.
- initializing the the parallel port: no
- initializing the audio card: can be done later
- initializing USB devices: yes if keyboard, mouse or boot device, other
things can be done later.
- starting up the network: yes if network booting, other things can be
done later.
- starting an MTA: no
- staring sshd: no
- starting X: no, that is not a _boot_ task, other things can be done
later. This excludes network-manager and what follows with it.
- of course there are missing pieces here, you can help me filling them
in... or reject/not comment on this as usual as many of you would.
Thank you for your attention!
Please,
I been subscribing to this list for many years now. I assume you have an opinion, can you give me some feedback please.
Maybe more appropriate names are: 1) Boot manger 2) Services manager
On Wed, 2012-05-02 at 10:51 +0200, Svante Signell wrote:
Dear coreboot developers,
I'm trying to get the boot process definition cleared out in a discussion at debian-devel on replacing the sysvint script system with something event based like systemd or upstart. In the list below, please help me to refine it, and especially make a distinction on what is needed to:
- get the computer up and running
- all services needed are completed
Of special interest is what parts is taken care of different tasks in the boot procedure, and where serial/parallel processes are possible.
As I see it we have several tools in the boot process:
- coreboot/BIOS
- A workload, like grub2
- The init scripts/systemd/upstart
- On linux: udev communicating with the kernel, something else on other architectures
In my opinion the boot process definition can be split in two parts:
- Initial boot, taken care of by sysvinit: Mainly order based or serial
- secondary boot, taken care of by udev on Linux, something else on
other arches: Mainly event-based or parallel
Am I completely out in the blue here? Thank you in advance for your opinion!
Hello,
In line with the recent discussion, lets aim at defining what _boot_ is:
- initializing the RAM: yes
- initializing the CPU(s): yes
- loading the kernel: yes
- initializing the graphics card: yes for text mode, graphics mode can
come later
- initializing the HDD(s): yes, if boot devices.
- setting up swap: yes
-initializing the keyboard and mouse : yes, see below wrt USB
- initializing the serial device: no, only if used for debugging.
- initializing the the parallel port: no
- initializing the audio card: can be done later
- initializing USB devices: yes if keyboard, mouse or boot device, other
things can be done later.
- starting up the network: yes if network booting, other things can be
done later.
- starting an MTA: no
- staring sshd: no
- starting X: no, that is not a _boot_ task, other things can be done
later. This excludes network-manager and what follows with it.
- of course there are missing pieces here, you can help me filling them
in... or reject/not comment on this as usual as many of you would.
Thank you for your attention!
The boot order is the following(semplified for clarity):
1)First the BIOS (or coreboot combined with seabios) get executed. The BIOS or coreboot+sea bios reside in a flash memory that is on the mainboard. 2)Then the BIOS(or coreboot) loads grub grub usually resides on a hard disk. 3)grub which loads a kernel The kernel usually resides in a filesystem on a partition under /boot/ 4) the kernel once it finished booting usually loads /sbin/init and then the boot process continue in userspace(the init daemon loads udev, and various services, and at the end your display manager which at the end will start your desktop environment). /sbin/init usually resides in a filesystem on a partition under /sbin/init
I think wikipedia should have many pointers on the boot process.
Denis.