当前位置:嗨网首页>书籍在线阅读

05-闪存与RAM

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

7.2.2 闪存与RAM

引导加载程序还有另一种内在的复杂性,那就是它们需要存放于非易失性存储介质(比如闪存)中,但又常常加载到内存中执行。同样,这一复杂性源于引导加载程序的可用资源有限。在一个功能完备、运行Linux的计算机系统中,编译一个程序并从非易失性存储介质中读取并执行它相对比较容易。运行时程序库、操作系统和编译器会协同合作创造出必需的基础设施,将程序从非易失性存储介质加载到内存中,并将控制权转交给它。我们前面提到的“Hello World”程序就是一个很好的例子。在编译完这个程序之后,我们只需要在命令行中输入可执行程序的名称(hello),就可以将它加载到内存中并执行(当然,前提是PATH环境变量包含了这个可执行程序所在的目录)。

但是,在系统加电后,引导加载程序获得控制权时,这个基础设施是不存在的。相反,引导加载程序必须创造它自身的运行环境,并且在必要时将自身移动到RAM的合适位置。此外,如果需要在只读存储媒介中执行程序,情况就更复杂了。