全部学习汇总: https:///GreyZhang/little_bits_of_linux

         今天做下面这段代码的分析:

495_linux内核学习_bootsect中的几个常量以及信息定义梳理_Linux

         这些主要是一些信息定义,更多能够看到的是汇编代码的使用。

         27行,其实可以类比C语言定义一些全局变量,但是这些其实都是段定义。

         18~34行,其实可以理解为一个段的切换。应该是让编译器知道,分析到了这个地方的时候,接下来的信息存放到当前指定的分段。

         这样,begtext段存储到.text区、begdata段存储到.data区、begbss段存储到.text区。

         关于36行到41行的解释,我直接在代码中增加了说明,这样更有针对性。

495_linux内核学习_bootsect中的几个常量以及信息定义梳理_Linux_02

         接下来的43~45,按照资料说法是说明系统跟文件系统与引导程序使用同样的设备、交换区与引导程序使用同样的设备。不过,单纯从这里似乎看不到是如何说明的。而这部分,在代码中还有另一处引用。

495_linux内核学习_bootsect中的几个常量以及信息定义梳理_Linux_03

         这里似乎是定义了两个word类型的量,同时分配到两个指定的段。具体的使用方式,这个后面或许可以再深入学习下。这一次分析,暂且不去深入了。

495_linux内核学习_bootsect中的几个常量以及信息定义梳理_Linux_04

         这部分略微简单一点了,其实是跟工具有关的了,这里其实指定了程序的入口。很多嵌入式也有类似的技术点,一般嵌入式中的main函数就是从这里进入的。