内核Linux启动过程分析及DNS服务器毕业论文

首选dns服务器地址  时间:2021-01-17  阅读:()

Linux启动过程分析

长沙师范学校

电子信息工程 系 计算机应用嵌入式 专业 09 级

毕业论文设计

题目: Linux启动过程分析及DNS服务器姓名 盛郎平 学号 2009540830138

指导教师签名

2011年10月 13 日

Linux启动过程分析

引 言

Linux最初是由瑞典赫尔辛基大学的学生Linus Torvalds在1991年开发出来的之后在GNU的支持下 Linux获得了巨大的发展。 1个嵌入式Linux系统从软件角度看可以分为4个部分 引导加载程序bootloader  Linux 内核文件系统应用程序。其中bootloader是系统启动或复位以后执行的第1段代码它主要用来初始化处理器及外设然后调用Li nux 内核。 Linux 内核在完成系统的初始化之后需要挂载某个文件系统做为根文件系统Root Filesystem 。根文件系统是Linux系统的核心组成部分它可以做为Linux系统中文件和数据的存储区域。应用程序可以说是嵌入式系统的“灵魂” 它所实现的功能通常就是设计该嵌入式系统所要达到的目标。如果没有应用程序的支持任何硬件上设计精良的嵌入式系统都没有实用意义。从以上分析我们可以看出bootloader和Linux 内核在嵌入式系统中的关系和作用。 bootloader在运行过程中虽然具有初始化系统和执行用户输入的命令等作用但它最根本的功能就是为了启动Li nux 内核。在嵌入式系统开发的过程中很大1部分精力都是花在bootloader和Linux 内核的开发或移植上。如果能清楚的了解bootloader执行流程和Linux的启动过程将有助于明确开发过程中所需的工作从而加速嵌入式系统的开发过程。而这正是本文的所要研究的内容。

Linux启动过程分析

目 录

第一章绪论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4

1. 1 Linux操作系统. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4

1. 1. 1 Linux操作系统的历史. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4

1.1.2 Linux操作系统的特点. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

1.1.3嵌入式LINUX的应用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

2. 1 Linux的安装. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

第二章Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8

2. 1 Bootloader的概念和作用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8

2.2 Bootloader的执行过程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8

2.3 bootloader必须具备的功能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8

第三章Li nux内核的启动过程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

3. 1 Linux内核入口. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

3.2 start_kernel函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

3.3结论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

第四章Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13

4. 1 Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13

4.2常用Shell命令. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15

第五章总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20

Linux启动过程分析

第一章绪论

1. 1 Linux操作系统

1. 1. 1 Linux操作系统的历史

Linux操作系统刚开始时并没有被称作Linux Linus给他的操作系统取名为FREAX其英文含义是怪诞的、怪物、异想天开等意思。在他将新的操作系统上载到ftp funet。 fi服务器上时管理员Ari Lemke很不喜欢这个名称。他认为既然是Linus的操作系统就取其谐音Linux作为该操作系统的目录吧于是Linux这个名称就开始流传下来。在Linus的自传《Just for Fun》一书中 Linus解释说"坦白地说我从来没有想到过要用Linux这个名称发布这个操作系统因为这个名字有些太自负了。而我为最终发布版准备的是什么名字呢F re ax。实际上内核代码中某些早期的Make fi le -用于描述如何编译源代码的文件-文件中就已经包含有"F reax"这个名字了大约存在了半年左右。但其实这也没什么关系在当时还不需要一个名字因为我还没有向任何人发布过内核代码。而Ari Lemke他坚持要用自己的方式将内核代码放到ftp站点上并且非常不喜欢F reax这个名字。他坚持要用现在这个名字(Linux)我承认当时我并没有跟他多争论。但这都是他取的名字。所以我可以光明正大地说我并不自负或者部分坦白地说我并没有本位主义思想。但我想好吧这也是个好

Linux启动过程分析

名字而且以后为这事我总能说服别人就像我现在做的这样。 "

1.1.2 Linux操作系统的特点

嵌入式LINUX操作系统的概念

以应用为中心 以计算机技术为基础软件、硬件可裁剪适应应用系统对功能、可靠性、成本、体积、功耗要求严格的专用计算机系统称为嵌入式系统。

一个最小的嵌入式系统的基本组成为①一个用作引导的可用设施工具②一个具备内存管理进程管理和定时器服务的LINUX微内核③一个初始进程④硬件的驱动程序⑤一个或几个应用进程以提供必要的应用功效。

1.1.3嵌入式LINUX的应用

嵌入式系统的涵盖面是非常广泛的其中家电市场包括机顶盒、数字电视、可视电话、家庭网络等信息家电工业市场包括工业控制设备、仪器商用市场包括掌上电脑、瘦客户机、 POS终端等通信市场包括WAP手机、无线P DA等。 目前被广泛看好的是信息家电市场 国内有很多开发厂商正加大投入、开发和研制新的产品嵌入式LINUX将是他们首选的操作系统。

2. 1 Linux的安装

安装L inux有二种方式硬盘直接安装和虚拟机安装。

一、 硬盘直接安装

把硬盘中的一部分空间开辟出来专门用来安装Linux,通过制

Linux启动过程分析

作一个双启动菜单在开机时由用户选择进入Windows系统或者L inux系统。

二、 虚拟机安装

在Windows系统中安装一个专门的“虚拟机”软件这个软件负责在Windows系统之上运行另一个操作系统可以是另一个Windows或者是Li nux等任何操作系统。

常用的虚拟机软件有VMware和Virtual PC运行时相当于生成了一台没有安装任何软件的“祼机”这台“祼机”可以看作是一台独立的、功能完全的计算机成为虚拟机它与安装“虚拟机”软件的计算机没有任何耦合关系运行虚拟机的真实的PC称为宿主机甚至能够把虚拟机和宿主机搭建成一个网络。通常可以利用“虚拟机”软件来安装体验新的操作系统面对原有的Windows系统没有任何影响当不需要这个虚拟机时只要从硬盘上把虚拟机的镜像文件删掉即可。

安装好VMw ar e软件后首先要建立一个新的虚拟机为这个新的虚拟机指定将来要安装的操作系统、规划内存和硬盘容量、设置网络连接方式、指定虚拟机文件的存放路径等其中比较重要的是VMware网络配置共4种方式。如果用户拥有多个IP适合选择侨接方式给虚拟机分配一个对立的IP此虚拟机就相当于网络上的一台独立计算机与宿主机在网络上的物理地位相同如果只有一个IP可用则可选择网络地址转换Network Address Translat ion,NAT方式虚拟机和宿主机共用一个IP;Host only方式可以使虚拟机和

Linux启动过程分析

宿主机二者构成一个网络实现数据传输 custom方式不大常用在此不作介绍。

虚拟机软件配置完成后可以接着利用物理光驱或者光盘镜像为这个虚拟机安装一个Li nux操作系统。

Linux启动过程分析

第二章Bootloader

2. 1 Bootloader的概念和作用

Bootloader是嵌入式系统的引导加载程序它是系统上电后运行的第一段程序其作用类似于PC机上的BIOS。在完成对系统的初始化任务之后它会将非易失性存储器通常是Flash或DOC等中的L inux 内核拷贝到RAM中去然后跳转到内核的第一条指令处继续执行从而启动Linux 内核。由此可见 bootloader和Linux 内核有着密不可分的联系要想清楚的了解Li nux内核的启动过程我们必须先得认识bootloader的执行过程这样才能对嵌入式系统的整个启过程有清晰的掌握。

2.2 Bootloader的执行过程

不同的处理器上电或复位后执行的第一条指令地址并不相同对于ARM处理器来说该地址为0x00000000。对于一般的嵌入式系统通常把Flash等非易失性存储器映射到这个地址处而bootloader 就位于该存储器的最前端所以系统上电或复位后执行的第一段程序便是 bootloader。而因为存储bootloader 的存储器不同bootloader的执行过程也并不相同。

2.3 bootloader必须具备的功能

1)初始化RAM

Linux启动过程分析

因为L inux 内核一般都会在RAM中运行所以在调用Linux 内核之前bootloader必须设置和初始化RAM为调用Linux 内核做好准备。初始化RAM的任务包括设置CPU的控制寄存器参数以便能正常使用R AM以及检测RA M大小等。

2)初始化串口串口在Li nux的启动过程中有着非常重要的作用它是Linux 内核和用户交互的方式之一。 Li nux在启动过程中可以将信息通过串口输出这样便可清楚的了解Li nux的启动过程。虽然它并不是bootloader必须要完成的工作但是通过串口输出信息是调试bootloader和Linux 内核的强有力的工具所以一般的bootloader都会在执行过程中初始化一个串口做为调试端口。

3)检测处理器类型

Bootloader在调用Linux内核前必须检测系统的处理器类型并将其保存到某个常量中提供给L inux 内核。 Li nux 内核在启动过程中会根据该处理器类型调用相应的初始化程序。

4)设置Li nux启动参数

Bootloader在执行过程中必须设置和初始化Linux的内核启动参数。 目前传递启动参数主要采用两种方式 即通过 struct param_struct和struct tag 标记列表 tagged list两种结构传递。

5)调用Li nux内核映像

Bootloader完成的最后一项工作便是调用Linux 内核。如果Linux 内核存放在Flash中并且可直接在上面运行这里的Flash

美国云服务器 1核 1G 30M 50元/季 兆赫云

【双十二】兆赫云:全场vps季付六折优惠,低至50元/季,1H/1G/30M/20G数据盘/500G流量/洛杉矶联通9929商家简介:兆赫云是一家国人商家,成立2020年,主要业务是美西洛杉矶联通9929线路VPS,提供虚拟主机、VPS和独立服务器。VPS采用KVM虚拟架构,线路优质,延迟低,稳定性强。是不是觉得黑五折扣力度不够大?还在犹豫徘徊中?这次为了提前庆祝双十二,特价推出全场季付六折优惠。...

HoRain Cloud:国内特价物理机服务器,镇江机房,内地5线BGP接入,月付499元起

horain怎么样?horain cloud是一家2019年成立的国人主机商家,隶属于北京辰帆科技有限公司,horain持有增值电信业务经营许可证(B1-20203595),与中国电信天翼云、腾讯云、华为云、UCloud、AWS等签署渠道合作协议,主要提企业和个人提供云服务器,目前商家推出了几款特价物理机,都是在内地,性价比不错,其中有目前性能比较强悍的AMD+NVMe系列。点击进入:horain...

LOCVPS:VPS主机全场8折,德国/荷兰/美国KVM终身7折

LOCVPS发来了针对元旦新年的促销活动,除了全场VPS主机8折优惠外,针对德国/荷兰KVM #1/美国KVM#2 VPS提供终身7折优惠码(限量50名,先到先得)。LOCVPS是一家成立于2012年的国人VPS服务商,提供中国香港、韩国、美国、日本、新加坡、德国、荷兰、俄罗斯等地区VPS服务器,基于KVM或XEN架构(推荐优先选择KVM),均选择直连或者优化线路,国内延迟低,适合建站或远程办公使...

首选dns服务器地址为你推荐
2g内存价格同是2G内存价格差别那么大租车平台哪个好共享汽车现在哪个平台的比较好?电视直播软件哪个好电视直播软件哪个好播放器哪个好什么播放器好用yy空间登录怎么搞YY空间qq网盘在哪里QQ网盘在哪里360云盘网页版最近360云盘网页版登陆后,找不到文件共享群了。哪位知道在哪里可以进去文件共享群?强生月抛第一次戴隐形眼镜月抛的好不好?强生月抛的怎样啊广东联通网络传真如何使用广东联通如意传真?什么快递最便宜哪个快递公司最便宜且快啊?
天津服务器租赁 谷歌域名邮箱 新通用顶级域名 草根过期域名 sugarsync 免备案cdn 免费网站监控 xfce 2017年万圣节 512m内存 免费smtp服务器 java虚拟主机 150邮箱 777te 52测评网 e蜗 常州联通宽带 联通网站 广州虚拟主机 lamp是什么意思 更多