lilo.c:main()
|-- cfg_open(config_file);
|-- cfg_parse(cf_options);
|-- bsect_open(boot_dev, map_file, install, delay, timeout);
| |-- open_bsect(boot_dev);
| `-- map_create(map_file);
|-- cfg_parse(cf_top)
| `-- cfg_do_set();
| `-- do_image(); // "image=" bölümü için walk->action
| |-- cfg_parse(cf_image) -> cfg_do_set();
| |-- bsect_common(&descr, 1);
| | |-- map_begin_section();
| | |-- map_add_sector(fallback_buf);
| | `-- map_add_sector(options);
| |-- boot_image(name, &descr) veya boot_device(name, range, &descr);
| | |-- int fd = geo_open(&descr, name, O_RDONLY);
| | | read(fd, &buff, SECTOR_SIZE);
| | | map_add(&geo, 0, image_sectors);
| | | map_end_section(&descr->start, setup_sects+2+1);
| | | /* bsect_common()içinde iki sektör yaratıldı,
| | | * bootsect için ise başka bir sektör*/
| | | geo_close(&geo);
| | `-- fd = geo_open(&descr, initrd, O_RDONLY);
| | map_begin_section();
| | map_add(&geo, 0, initrd_sectors);
| | map_end_section(&descr->initrd,0);
| | geo_close(&geo);
| `-- bsect_done(name, &descr);
`-- bsect_update(backup_file, force_backup, 0); // önyükleme sektörünü güncelle
|-- make_backup();
|-- map_begin_section();
| map_add_sector(table);
| map_write(¶m2, keytab, 0, 0);
| map_close(¶m2, here2);
|-- // ... önyükleme sektörünün yeniden yerleştirilmesini yap
|-- // ... bsect_wr'yi doğru yere ayarla
|-- write(fd, bsect_wr, SECTOR_SIZE);
`-- close(fd);