Opened 14 years ago

Closed 8 years ago

#185 closed enhancement (fixed)

HelenOS installer

Reported by: Jakub Jermář Owned by:
Priority: major Milestone: 0.7.0
Component: helenos-infrastructure Version: mainline
Keywords: gsoc10, gsoc11 Cc:
Blocker for: Depends on: #127, #129
See also:

Description (last modified by Jakub Jermář)

Create a set of applications that would install HelenOS on a hard disk from within HelenOS.

Details
The installation should consist of several independent steps such as installing the boot loader, editing the partition table and creating and populating the target file system. The installer should interactively guide the user through the installation process and ask the user for details whenever more installation options emerge such as when there are more potential target disks detected or when the user might want to choose the type of or edit the partition table on the target disk or when there are more file systems to choose from. The installer can be a command line utility or it can use text pseudo graphics.

Even though the installer currently makes the biggest sense for the amd64 and ia32 platforms, the installer should anticipate future extending to other platforms supported by HelenOS. This basically means the installer architecture should allow for other installation methods, other partition table types and/or other file system creators to be added later.

This project is closely related to the following tickets that should be considered its integral parts:

#127 Partition editor
#129 Bootloader install

The installer should be able to install HelenOS on a system without any other operating system installed on it or add itself to some spare disk partition or disk and coexist with some other operating system installation. The idea is that after the installation it is possible to boot into the new HelenOS system created by the installer.

What Gains and Benefits will this bring?
Traditionally, HelenOS is run in the form of a live CD image or a net-boot image or can even boot off a hard disk, but one cannot easily install it at the moment. Now that HelenOS has supported permanent storage, it makes sense to make another step towards to the long-term goal of becoming self-hosting.
Difficulty
medium
Required skills
A successful applicant will have good skills of programming in the C language and the ability to survive in a non-standard non-POSIX application environment.
Documentation
  • DeveloperDocs
  • StringAPI
  • See the mkfat application for an example of a file system creator.
  • See the mbr_part and g_part servers for example of code that deals with various partition types.
Possible mentors
HelenOS Core Team, Martin Decky, Jiri Svoboda

Change History (12)

comment:1 by Jakub Jermář, 14 years ago

Component: unspecifiedinstall
Description: modified (diff)

comment:2 by Jakub Jermář, 14 years ago

Description: modified (diff)

comment:3 by Jakub Jermář, 14 years ago

Description: modified (diff)

comment:4 by Martin Decky, 14 years ago

Description: modified (diff)

comment:5 by Jakub Jermář, 14 years ago

Description: modified (diff)

comment:6 by Jakub Jermář, 13 years ago

Keywords: gsoc10 gsoc11 added; gsoc removed

comment:7 by Jakub Jermář, 13 years ago

Depends on: #127, #129

comment:8 by Jakub Jermář, 13 years ago

Milestone: 0.5.00.5.1

comment:9 by Jakub Jermář, 13 years ago

Type: taskenhancement

comment:10 by Jakub Jermář, 13 years ago

Keywords: gsoc10,gsoc11 → gsoc10, gsoc11

comment:11 by Jakub Jermář, 12 years ago

Milestone: 0.5.0

comment:12 by Jiri Svoboda, 8 years ago

Milestone: 0.7.0
Resolution: fixed
Status: newclosed

Implemented in mainline,2451. This is a simple installer prototype. It is functional, but very simple. There is no user interaction. The target device is fixed (because we cannot build a core.img yet). The target device must be empty prior to installation. The result of installation is a 'live hard disk', because, same as the live CD, it boots from a ram disk and does not have any persistent file system mounted by default.

Note: See TracTickets for help on using tickets.