Difference between pages "User:Axel" and "FLOP:Boot-Update Redesign"

(Difference between pages)
(personal info added)
 
(Created page with " This page describes a proposed rewrite of boot-update. The goals in rewriting boot-update are as follows: # Refactor code # Add UEFI support # Simplify Kernel Layout == Re...")
 
Line 1: Line 1:
{{Person
+
 
|Full name=Alexander I.Grafov
+
This page describes a proposed rewrite of boot-update.
|Email=grafov@gmail.com
+
 
|Geoloc=55.75, 37.62
+
The goals in rewriting boot-update are as follows:
|Location name=Moscow, Russian Federation
+
 
|Roles={{Role
+
# Refactor code
|Role type=User
+
# Add UEFI support
|Role desc=User
+
# Simplify Kernel Layout
}}
+
 
|Maintains=
+
== Refactor Code ==
|Blogs=
+
 
}}
+
Boot-update could use some code simplification. This will be accomplished by using a simpler design using templates for text generation, and also simplifying the kernel layout (described below.)
 +
 
 +
== UEFI Support ==
 +
 
 +
Boot-update currently doesn't support UEFI booting directly, and must be manually configured via the [[UEFI Install Guide]]. Part of this proposal involves adding UEFI support to boot-update.
 +
 
 +
== Simplify Kernel Layout ==
 +
 
 +
Currently, all kernels and initramfs images are installed into <tt>/boot</tt> directly and typically have the names <tt>kernel-SUFFIX</tt> or <tt>bzImage-SUFFIX</tt> and <tt>initramfs-SUFFIX</tt>. Boot-update needs to find the kernel and initramfs images and associate them with each other, and then parse the filename for version information.
 +
 
 +
This is not an optimal way to organize kernels. A much cleaner approach would be to have a <tt>/boot/kernels/VERSION/</tt> directory that contains files <tt>initramfs.gz</tt>, <tt>bzImage</tt>, <tt>System.map</tt>, etc. without any suffix. boot-update would then scan <tt>/boot/kernels</tt> and make all directory names available as kernels that could be booted. This simplifies kernel management as everything related to a particular kernel is organized in its own sub-directory.
 +
 
 +
In addition, special text files could exist in the <tt>/boot/kernels/VERSION/</tt> directory, such as <tt>label</tt>, which could contain a regular text name for the kernel that appears in the menu. A <tt>/boot/kernels/VERSION/grub.cfg</tt> could allow users to manually specify a <tt>grub.cfg</tt> section that is used to boot this kernel, which boot-update would use if found. touching <tt>/boot/kernels/VERSION/default</tt> would allow a user to set the default kernel for booting. These types of changes would reduce the complexity contained in the <tt>/etc/boot.conf</tt> file, as more configuration data would be stored on the filesystem itself.
 +
 
 +
[[Category:FLOP]]

Revision as of 04:14, 3 December 2013

This page describes a proposed rewrite of boot-update.

The goals in rewriting boot-update are as follows:

  1. Refactor code
  2. Add UEFI support
  3. Simplify Kernel Layout

Refactor Code

Boot-update could use some code simplification. This will be accomplished by using a simpler design using templates for text generation, and also simplifying the kernel layout (described below.)

UEFI Support

Boot-update currently doesn't support UEFI booting directly, and must be manually configured via the UEFI Install Guide. Part of this proposal involves adding UEFI support to boot-update.

Simplify Kernel Layout

Currently, all kernels and initramfs images are installed into /boot directly and typically have the names kernel-SUFFIX or bzImage-SUFFIX and initramfs-SUFFIX. Boot-update needs to find the kernel and initramfs images and associate them with each other, and then parse the filename for version information.

This is not an optimal way to organize kernels. A much cleaner approach would be to have a /boot/kernels/VERSION/ directory that contains files initramfs.gz, bzImage, System.map, etc. without any suffix. boot-update would then scan /boot/kernels and make all directory names available as kernels that could be booted. This simplifies kernel management as everything related to a particular kernel is organized in its own sub-directory.

In addition, special text files could exist in the /boot/kernels/VERSION/ directory, such as label, which could contain a regular text name for the kernel that appears in the menu. A /boot/kernels/VERSION/grub.cfg could allow users to manually specify a grub.cfg section that is used to boot this kernel, which boot-update would use if found. touching /boot/kernels/VERSION/default would allow a user to set the default kernel for booting. These types of changes would reduce the complexity contained in the /etc/boot.conf file, as more configuration data would be stored on the filesystem itself.