[Reprint] linux-grub Historical Introduction

linux-grub Historical Introduction

HTTPS: // baijiahao.baidu.com/s?id=1623284658075331489&wfr=spider&for=pc 

also be used to change the password ..

 

 

GNU GRUB is a very powerful boot loader is the first program that runs when the computer starts, which is responsible for load transfer control to the operating system kernel software.

 

GRUB originated in 1995 when Erich Boleyn tried to Mach 4 microkernel University of Utah (now known as GNU Mach) to start GNU Hurd. Erich and Brian Ford designed the Multiboot Specification, because they decided not to join a large number of incompatible way to start your PC.

 

Over the next few years, GRUB is extended to meet many needs, but soon discovered that it is designed to expand to keep up with it does not, we have reached without any further changes if it is difficult to break existing functionality .

GRUB2

 

In about 2002, Yoshinori K. Okuji began to study PUPA (GNU GRUB preliminary general-purpose programming architecture), aims to rewrite the core of GRUB, making it cleaner, safer, more powerful and more powerful.

 

PUPA was eventually renamed to GRUB 2, the original version of GRUB was renamed to GRUB Legacy.

 

GRUB Legacy continues for low-maintenance, but the last version (0.97) was completed in 2005, at the time of writing, it seems unlikely that there will be another version.

 

By about 2007, GNU / Linux distributions start GRUB 2 will be used to a limited extent, by the end of 2009, by default, will install multiple major releases.

 

GRUB features

 

GRUB main goals:

 

1, the user, the basic functions should be simple and clear;

 

2, feature-rich, to support a variety of kernel parameters custom configuration;

 

3, used to start the backward compatibility FreeBSD, NetBSD, OpenBSD and Linux. Support for proprietary kernel (such as DOS, Windows NT and OS / 2) by chain loading function.

 

In addition to the specific compatibility mode (chainload mounted format and Linux), the cores will be the same for all the multi-state startup guide specification.

 

GRUB has the following features:

 

1, identifying more executable format: a.out supports many variations, ELF. Symbol table will be loaded.

 

2, supports non-multi-boot kernel: the lack of support for many multi-boot compatibility free 32-bit kernel (primarily FreeBSD, NetBSD 2, OpenBSD and Linux). Also supports other chain loads the boot loader.

 

3, loading multiple modules: full support for multi-boot function loading multiple modules.

 

4, loading profile: the guide supports having a predetermined human-readable text command profile. You can also dynamically load another configuration file and the default GRUB configuration file embedded in the image file. A list of commands (see Commands) are a superset of the command-line support. An example of the configuration of the configuration file provided.

 

5, provide menu interface: interface can use the menu lists a programmable timeout preset boot command. The number of entries of the guide is no fixed limit, the current implementation of a few hundred space.

 

6, has a flexible command-line interface: accessible from the menu fairly flexible command-line interface can be used to edit any preset commands, or start from scratch to write a new command set. If no configuration file, GRUB will be returned to the command line; the command list is a subset of the configuration file support. Edit command is very similar to bash the command line (see command line editing in bash characteristics), with completion TAB command, equipment, partition and file in the context of the directory.

 

7, support for multiple file system types: transparently supports many file system types and useful display block list notation. Currently supported file system type is Amiga Fast FileSystem (AFFS), AtheOS fs, BeFS, BtrFS (including raid0, raid1, raid10, gzip and lzo), cpio (big-endian and little-endian bin, odc and newc variants), Linux ext2 / ext3 / ext4, DOS FAT12 / FAT16 / FAT32, exFAT, HFS, HFS +, ISO9660 (including Joliet, Rock-ridge, and a plurality of files), JFS, Minix fs (version 1, 2 and 3), nilfs2, NTFS (including compression), ReiserFS, ROMFS, Amiga intelligent file system (SFS), Squash4, tar, UDF, BSD UFS / UFS2, XFS, and a ZFS (including lzjb, gzip, zle, mirror, stripe, raidz1 / 2/3 and encryption) in AES-CCM and AES-GCM) is.

 

8, supports automatic decompression: You can decompress gzip or xz3 compressed file. This function is automatically and transparently for the user (i.e., all functions operate on the contents of the specified file is not compressed). This greatly reduces the file size and loading time, especially for floppy disk is a big advantage. Certain kernel modules should be loaded in a compressed state, it is possible to specify different load command modules to avoid decompression module.

 

9, access to any data on the device is installed: support any or all of the soft or hard disk read identification data from the BIOS, regardless of the setting of the root device.

 

10, independent of the drive geometry translation: with many other different boot loader, the GRUB convert a particular drive does not matter. Install and run a converted drive can be converted to another conversion, GRUB configuration will not have any adverse effect or change.

 

11, detects all the installed RAM: GRUB can generally find all the installed RAM on a PC compatible machine. It uses advanced BIOS query technique to find all memory regions. Since the Multiboot Specification (see Multiboot Specification describes motivation), not all of the kernel use this information, but GRUB provides it for those who do.

 

12, supports logical block address mode: In a conventional magnetic disk calls (called CHS mode), geometrical conversion problem that can not access the BIOS 1024 cylinders, thus limiting access to the space of at least 508 MB, and up to 8 GB. GRUB can not universally solve this problem, because all the machines are not using a standard interface. However, some newer machines having a new interface, i.e., logical block address (LBA) mode. GRUB automatically detects LBA mode is available, and use it when available. In LBA mode, GRUB can access the entire disk.

 

13, supports network booting: GRUB is basically a disk-based boot loader but also has network support. You can use the TFTP protocol to load the operating system image from the network.

 

14, support for remote terminal: To support the computer does not have the console, GRUB provides remote terminal support, so that you can control GRUB from a remote host. Currently only implements a serial terminal support.

 

Improved GRUB2

 

1, may be manually edited directly in the GRUB /boot/grub/menu.lst document, to edit the startup file; has a profile in GRUB2 grub in / etc / default / grub, then edit the corresponding option is generated using grub-mkconfig grub.cfg file.

 

2, GRUB2 boot menu items are generated automatically start from / boot, not a menu.lst configuration.

 

3, partition number changes: The first partition is now 1 rather than 0, but the first device is still 0 to start counting, such as hd0.

 

4, customizable interface more flexible, theme support in GRUB2.

 

5, the automatic search for available cores and available hard disk system.

Guess you like

Origin www.cnblogs.com/jinanxiaolaohu/p/12348672.html