linux 2.6.11 bootsect.s解读

来源:互联网 发布:动物连体睡衣淘宝 编辑:程序博客网 时间:2024/06/05 20:04
/* *bootsect.SCopyright (C) 1991, 1992 Linus Torvalds * *modified by Drew Eckhardt *modified by Bruce Evans (bde) *modified by Chris Noe (May 1999) (as86 -> gas) *gutted by H. Peter Anvin (Jan 2003) * * BIG FAT NOTE: We're in real mode using 64k segments.  Therefore segment * addresses must be multiplied by 16 to obtain their respective linear * addresses. To avoid confusion, linear addresses are written using leading * hex while segment addresses are written as segment:offset. * */#include <asm/boot.h>SETUPSECTS= 4/* default nr of setup-sectors */BOOTSEG= 0x07C0/* original address of boot-sector */INITSEG= DEF_INITSEG/* we move boot here - out of the way */SETUPSEG= DEF_SETUPSEG/* setup starts here */SYSSEG= DEF_SYSSEG/* system loaded at 0x10000 (65536) */SYSSIZE= DEF_SYSSIZE/* system size: # of 16-byte clicks *//* to be loaded */ROOT_DEV= 0 /* ROOT_DEV is now written by "build" */SWAP_DEV= 0/* SWAP_DEV is now written by "build" */#ifndef SVGA_MODE#define SVGA_MODE ASK_VGA#endif#ifndef RAMDISK#define RAMDISK 0#endif#ifndef ROOT_RDONLY#define ROOT_RDONLY 1#endif.code16.text.global _start_start:# Normalize the start addressjmpl$BOOTSEG, $start2start2:movw%cs, %axmovw%ax, %dsmovw%ax, %esmovw%ax, %ssmovw$0x7c00, %spsticldmovw$bugger_off_msg, %simsg_loop:lodsbandb%al, %aljzdiemovb$0xe, %ahmovw$7, %bxint$0x10jmpmsg_loopdie:# Allow the user to press a key, then rebootxorw%ax, %axint$0x16int$0x19# int 0x19 should never return.  In case it does anyway,# invoke the BIOS reset code...ljmp$0xf000,$0xfff0bugger_off_msg:.ascii"Direct booting from floppy is no longer supported./r/n".ascii"Please use a boot loader program instead./r/n".ascii"/n".ascii"Remove disk and press any key to reboot . . ./r/n".byte0# Kernel attributes; used by setup.org 497setup_sects:.byte SETUPSECTSroot_flags:.word ROOT_RDONLYsyssize:.word SYSSIZEswap_dev:.word SWAP_DEVram_size:.word RAMDISKvid_mode:.word SVGA_MODEroot_dev:.word ROOT_DEVboot_flag:.word 0xAA55
 
Linux2.6不再使用bootsect.s来引导,而需要使用LILO。GRUB等Boot Loader程序。所以bootsect.s对于2.6来说
已经不再具有引导的功能,而只会打印错误信息。
原创粉丝点击