摘要:
/***Copyright(C)1991,1992LinusTorvalds**EnhancedCPUdetectionandfeaturesettingcodebyMikeJagdis*andMartinMares,November1997.*/.text#include<linux/threads.h>#include<linux/init.h>#include<linux/linkage.h>#include<asm/segment.h>#include<asm/page_types.h>#include<asm/pgta 阅读全文
摘要:
/**linux/boot/head.S**Copyright(C)1991,1992,1993LinusTorvalds*//**head.Scontainsthe32-bitstartupcode.**NOTE!!!Startuphappensatabsoluteaddress0x00001000,whichisalsowhere*thepagedirectorywillexist.Thestartupcodewillbeoverwrittenby*thepagedirectory.[Accordingtocommentsetcelsewhereonacompressed*kerne... 阅读全文
摘要:
/**Theactualtransitionintoprotectedmode*文档:*/arch/x86/include/asm/segment.h【1】*/arch/x86/boot/pmjump.S【本文】*/#include<asm/boot.h>#include<asm/processor-flags.h>#include<asm/segment.h>#include<linux/linkage.h>.text.code16/*16位汇编*//**voidprotected_mode_jump(u32entrypoint,u32boot 阅读全文
摘要:
/**Preparethemachinefortransitiontoprotectedmode.*从实模式向保护模式跳转*文档:*/arch/x86/include/asm/segment.h【1】*arch/x86/boot/pm.c【2】本文*arch/x86/boot/a20.c【3】*/#include"boot.h"#include<asm/segment.h>/**Invoketherealmodeswitchhookifpresent;otherwise*disableallinterrupts.**bootloaderhooks*当加载器运行的 阅读全文
摘要:
1.1 GRUB2特色本文所用GRUB2版本为1.99,GRUB2是为了取代GRUB而完全重写的第二版,引用:GRUB 2, which is a rewrite of GRUB, is alive and under development. GRUB 2 aims at merging sources from PUPA in order to create the next generation of GNU GRUB. A mailing list and a wiki have been setup for discussing the development of GRUB 2.G 阅读全文
摘要:
1问题使用GRUB2不能正确引导X86_64 linux-2.6.21 bzImage内核。为解决这一问题,本文展开研究GRUB2加载方式,X86_64 bzImage生成结构、解压缩和启动过程。2 X86_64 bzImage生成结构bzImage的生成步骤如下:1)内核vmlinux是由arch/x86_64/kernel/vmlinux.lds文件链接规则由LD链接而成的elf64格式文件;本文称之为第一个vmlinux;2) objcopy将vmlinux转成二进制的vmlinux.bin;本文称之为第一个vmlinux.bin;3) gzip将vmlinux.bin压缩成vmlinu 阅读全文
摘要:
本文简要介绍X86-32架构下的Linux kernel被boot loader(如grub)加载到内存后,如何从最初的实模式,切换到保护模式,并开启分页机制。本文不涉及boot loader如何将内核加载到内存,因为这是boot loader的事,跟内核自己无关(当然他们之间一定要有种事先约定的协议来沟通)。因为启动代码并不经常变化,所以对这部分的分析基本适用于较早的2.6.24至现在的3.0.4版本。为了简化起见,我们主要关注不启动PAE机制的一般情况。看这篇文章前,先确定你对实模式,保护模式及分页机制的基本原理有了解。 先来看boot loader将内核加载到什么位置。下图... 阅读全文