Writing an OS Installer

Programming, for all ages and all languages.
Post Reply
ks44
Posts: 3
Joined: Fri Aug 22, 2014 4:50 am

Writing an OS Installer

Post by ks44 »

My question relates to operating systems though nothing to do with actually writing and compiling source code for one.

I already have an operating system compiled and packaged to a bootable image which I can 'dd' to a USB stick. I can then boot an x86 machine from this USB stick however this does not install anything on the machine's hard drive i.e. I have to boot from the USB stick each time. What I want to achieve is something like an OS installer such as you would find in any Linux distribution, however I am uncertain of the steps needed to be undertaken by the installer.

A simple way would perhaps be to 'dd' the image directly to the hard disk but I would like to try and avoid this method if possible as it requires a skilled operator to do this. Another way would be to image the hard disk (once I had 'dd'-d the binary image to a hard disk first) and used a commercial image installer to clone the disk. again I would like to avoid this as cloning might be time consuming plus I think it's hardware dependent.

Could anyone give me some pointers on how I can create an OS installer or perhaps the steps an installer would have to go through. Could anyone give me any indication how Linux distros achieve their installation? I'm just after a starting point really and any help would be appreciated.
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: Writing an OS Installer

Post by Combuster »

I could go into details on all sorts of things and whatnot, but you might want to read the instructions of a manual installation process to find out what the Linux installation process really entails. Of course if you take a more popular distro, most of these steps are automated by the installer - with various shortcuts.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
ks44
Posts: 3
Joined: Fri Aug 22, 2014 4:50 am

Re: Writing an OS Installer

Post by ks44 »

Combuster wrote:I could go into details on all sorts of things and whatnot, but you might want to read the instructions of a manual installation process to find out what the Linux installation process really entails. Of course if you take a more popular distro, most of these steps are automated by the installer - with various shortcuts.
Thanks Combuster I'll take a look at that.
User avatar
Love4Boobies
Member
Member
Posts: 2111
Joined: Fri Mar 07, 2008 5:36 pm
Location: Bucharest, Romania

Re: Writing an OS Installer

Post by Love4Boobies »

ks44 wrote:What I want to achieve is something like an OS installer such as you would find in any Linux distribution, however I am uncertain of the steps needed to be undertaken by the installer.
So what you are saying is that you don't know what an installer does but you want one...
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]
User avatar
AndrewAPrice
Member
Member
Posts: 2299
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Re: Writing an OS Installer

Post by AndrewAPrice »

An installer basically.. installs the operating system.

Generally, it goes;
- Partitioning and formatting the disk
- Copying the base OS onto the disk
- Installing a bootloader
- Copying any extra applications onto the disk (text editor, web browser, media player, any included games, etc.)
- Perform any user configuration (set up the root password, create a default account, etc.)

Many installers support mouse movement, connect to the network (wired or wifi) to download updates, let you load drivers at install-time (if you have an unconventional storage device.)

How I would do it:

Create a live CD (or floppy, or bootable network image) version of my operating system. Then I can share disk and network drivers between my installer and OS. Replace my shell with an installation wizard that walks you through the above steps.
My OS is Perception.
ks44
Posts: 3
Joined: Fri Aug 22, 2014 4:50 am

Re: Writing an OS Installer

Post by ks44 »

MessiahAndrw wrote:An installer basically.. installs the operating system.

Generally, it goes;
- Partitioning and formatting the disk
- Copying the base OS onto the disk
- Installing a bootloader
- Copying any extra applications onto the disk (text editor, web browser, media player, any included games, etc.)
- Perform any user configuration (set up the root password, create a default account, etc.)

Many installers support mouse movement, connect to the network (wired or wifi) to download updates, let you load drivers at install-time (if you have an unconventional storage device.)

How I would do it:

Create a live CD (or floppy, or bootable network image) version of my operating system. Then I can share disk and network drivers between my installer and OS. Replace my shell with an installation wizard that walks you through the above steps.
Thanks MessiahAndrw. I think (in my case) I would only have to do the first three steps you suggest as there is no need to install additional software - all required software I could build into the 'base' image. I'm getting some ideas now what I have to do.
Post Reply