Linux操作系统移植本科毕业设计论文精品.docx
- 文档编号:9328192
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:55
- 大小:1.63MB
Linux操作系统移植本科毕业设计论文精品.docx
《Linux操作系统移植本科毕业设计论文精品.docx》由会员分享,可在线阅读,更多相关《Linux操作系统移植本科毕业设计论文精品.docx(55页珍藏版)》请在冰点文库上搜索。
Linux操作系统移植本科毕业设计论文精品
本科毕业设计
题目基于S3C2440的Linux操作系统移植
基于S3C2440的Linux操作系统移植
摘要
随着电子产业的发展和智能时代的到来,嵌入式产品以其个性化定制的特点已经深入发展到各个领域。
操作系统嵌入式设计流程的重要环节,在安装操作系统后,电子产品就能像电脑一样运行各种软件,完成复杂的功能。
本课题研究的是将Linux系统移植到S3C2440的TQ2440开发板上,本文前两章介绍Linux操作系统、ARM体系结构的基础知识,以及系统开发工具,操作命令,交叉编译器,并且建立开发环境。
之后几章分别介绍嵌入式开发的几个主要流程,包括Bootloader、内核、文件系统、驱动。
将Uboot移植到tq2440上,然后移植最小系统,使开发板能够正常启动,最后是构建根文件系统、在内核中加入串口、LCD驱动,这样就可以建立一个完整的嵌入式系统,本文除了理论基础知识的讲解还有具体的操作,系统的完成了嵌入式设计的开发流程。
关键词:
S3C2440;Linux;内核移植;驱动
THELINUXOPERATINGSYSTEMBASEDONS3C2440RASPLANTATION
Abstract
Withthedevelopmentofelectronicindustryandintelligentera,embeddedproductswiththecharacteristicsofpersonalizedcustomizationhasbeendevelopedintovariousareas.Animportantpartofembeddedoperatingsystemdesignprocess,intheinstallationoftheoperatingsystem,electronicproductscanbelikeacomputerrunningsoftware,completethecomplexfunction.
ThisresearchistheTQ2440developmentboardLinuxsystemportingtoS3C2440,basicknowledgeofthefirsttwochaptersintroducedtheLinuxoperatingsystem,ARMsystemstructure,aswellasthesystemdevelopmenttool,operationcommand,compiler,andtheestablishmentofthedevelopmentenvironment.Afterafewchapterintroducesseveralmainprocessofembeddedsoftware,includingBootloader,kernel,filesystem,drive.PortingUboottoTQ2440,andthentransplantedtheminimumsystem,makethedevelopmentboardcanbeanormalstart,finallyGouJiangenfilesystem,addingserial,LCDisinthekerneldriver,soyoucanbuildupacompleteembeddedsystem,inadditiontothistheorytoexplainthebasicknowledgeandspecificoperation,thesystemcompletedtheembeddeddesigndevelopmentprocess.
Keywords:
S3C2440;Linux;kernelporting;driver.
前言
通信网络技术和集成电路设计的高速发展使嵌入式系统已成为了IT业的一个焦点。
回顾嵌入式技术的发展过程,早期的嵌入式系统被认为是人们熟知的单片机。
通常,这种系统以8位或6位MCU为核心,适合一些简单的传感器,伺服控制,显示设备等,实现一定的测量,信息处理,自动控制和显示功能。
系统的组网通常利用CAN、RS-232等总线方式,通信协议比较单一,一般孤立于Internet之外。
随着嵌入式与网络技术的结合,手机、PDA、路由器、Modem等复杂的高端嵌入式应用不断涌现,这使得人们需要设计更加复杂的嵌入式系统。
这种需求推动了微电子技术地发展,使得32位处理器被广泛使用,这种处理器可以方便的运行嵌入式操作系统;而基于嵌入式操作系统,人们又可以开发复杂度更高的嵌入式软件,嵌入式技术的发展趋势包括行业标准化、SOC成为应用主流、嵌入式开发工具更加强大、嵌入式软件的复杂度越来越高、面向网络的嵌入式系统成为必然、建立嵌入式计算的新型模型等若干方面。
嵌入式Linux在嵌入式领域发展迅速、需求旺盛,但是嵌入式Linux的人门很难,相对于嵌入式常识的匮乏更大的困难是缺乏完善的知识结构:
只了解硬件或者是只了解软件,对于有志于从事底层系统开发需要,应该改造Bootloader、专研内核、为新硬件编写驱动程序的,对于想从上层软件转到底层软件开发的人,应该看懂电路原理图,看得芯片数据手册,清楚的知道软件是怎样和硬件发生作用。
总之嵌入式是一门实践性很强的学科,学习不应该局限书本,书本只是辅助资料,只有不断地检测硬件调试程序才能掌握这门技术。
由于Linux的开源和可移植性高的特性,以及ARM处理器,性能好价格低廉的特点,本文将会在S3C2440的tq2440上进行系统移植,主要包括:
嵌入式系统Linux介绍、Bootloader原理分析和移植、操作系统内核的移植、文件系统的分析和制作、内核驱动。
1嵌入式linux简介
本课题移植的是Linux操作系统内核,这里简单介绍Linux的特点,以及开发平台的建立使用。
1.1linux发展概述
20世纪60年代时,大部分计算机都是采用批处理的方式。
为了改变这种现状,美国电报及电话公司(AT&T),通用电器公司(GE)及麻省理工学院(MIT)计划合作开发一个多用途,及时及多用户的操作系统,也就是MUTICS.但是由于项目太过复杂,几年下来几乎没有取得任何成果,1969年贝尔实验室退出这个项目。
但是贝尔实验室的有个工程师KenThompson为了让他的游戏运行快一点。
找来一位天才工程师DennisRitchie,他们用汇编语言写了一个简单的操作系统Unics。
1973年两人发现用汇编语言移植过于困难,先后用B,C语言重写了UNIX,1978年伯克利大学,在UNIX上进行改进,推出了自己的UNIX.同时AT&T公司成立了USG将UNIX变成商品化的产品。
这种商业态度,让当时许多UNIX爱好者和软件开发者感到痛心疾首和忧虑,他们觉得这种限制不利于产品的长期发展,于是一个叫做RichardStallman的领军人物站了出来,他倡导开源概念,认为如果大家能将自己所学贡献出来,这个系统会更加优秀,之后他创立GUN,开发了一套与UNIX兼容的软件,然后又创立自由软件基金会(FSF)为GUN计划提供技术,法律以及财政支持。
自20世纪90年代以来,GUN计划开始大量生产或收集各种系统所必备的主件,比如函数库,变压器,调试工具,文本编辑器,网站服务器,以及一个UNIX的使用者接口。
由于种种原因,GUN一直没有开发出内核,直到1991年linux内核才真正出现。
之后越来越多的计算机爱好者,程序员通过网络,社区,邮件,论坛参与到linux系统的不断完善中。
1.2linux的优点
(1)低成本开发系统
因为linux的代码是开源的,任何人都可以免费使用和修改。
这样不仅降低了成本而且提高产品开发的效率。
(2)可用于多种处理器平台
Linux可支持X86、PowerPC、ARMXSCALE、MIPS、DSP、FGPA等多种体系结构,并且已经被移植到多种硬件平台。
这对于受时间限制,经费的研究与项目开发是很有帮助的、Linux采用统一的标准对硬件进行管理,应用层屏蔽系统层,系统层的改动与平台改动有关,于应用无关。
(3)可定制内核
Linux具有独特的内核模块动态裁剪机制,它可以根据用户的需求,实时的将某些模块插入或者删除内核,实现动态的的改变。
裁剪后的内核最小可达到150KB以下,适合嵌入式项目中对系统资源有要求的情况。
在2.6内核中加入了许多嵌入式个性化选项,如构建用于不需要用户界面的设备的小占板面积内核选项。
(4)性能优异
Linux系统内核精简,用于网站服务器高效而且稳定稳定,能够充分发挥硬件的功能,用于个人计算机,功能丰富,界面友好易操作,因此它比其它操作系统的运行效率更高。
(5)良好的网络支持
Linux是第一个实现TCP/IP协议栈的操作系统,它有完整支持网络的内核结构,并提供了包括10GB,100GB以及1000GB的以太网,还有TokenRing,无线网络和光纤甚至卫星的支持。
大大满足了如今嵌入式设备对网络功能的需求。
1.3Linux应用领域
(1)Internet/Intranet:
这是目前Linux用得最多的一项,它可提供包括Web服务器、Gopher服务器、FTP服务器、SMTP/POP3邮件服务器、DNS服务器、Proxy/Cache服务器等全部Internet服务。
Linux内核支持IPalias、PPP和IPtunneling,这些功能可用于建立虚拟服务、VPN(虚拟专用网)、虚拟主机等。
主要运行于Linux之上的ApacheWeb服务器。
(2)由于Linux拥有优秀的网络功能,因此它可用于大型分布式服务,如动画制作、数据库及文件服务器科学计算等。
(3)作为可在低平台下运行的Unix的完整(且免费)的实现,广泛应用于各级院校的教学和科研工作,如墨西哥政府已经宣布在全国的所有中小学配置Linux并为学生提供Internet服务。
(4)桌面和办公应用。
目前这方面的应用微软Windows使用人数很多,其原因一方面在于Linux桌面应用软件的数量远不如Windows应用,另一方面也因为自由软件的特性使得其几乎没有广告支持(虽然StarOffice的功能并不亚于MSOffice,但知道的人并不多)。
如今,通常可以通过两个途径获得Linux的发行版:
①直接从Internet下载,例如RedHat站点:
;②更为方便的方法是购买Linux发行商推出的CD-ROM,这样不仅可以节省下载的时间和费用,还可以使用CD-ROM直接启动快速安装,并且CD-ROM上往往还包括非常庞大的应用软件集(多达数百兆),包括各种服务器软件、X-Window、桌面应用、数据库、编程语言、文档等,安装和使用都非常方便。
1.4Linux系统安装
1.4.1虚拟机安装
虚拟机指通过软件模拟的具有硬件系统功能的,运行在一个完全隔离环境中的完整计算机系统。
目前流行的虚拟机软件是VMware,VirtualBox和VirualPC,他们都能在Wondows系统上虚拟个计算机。
本课程安装的是VMwareWorkstatian6.5,安装步骤如下:
(1)双击下载好的VMwareWorkstatian6.5软件打开安装程序,如
图1.1:
图1.1虚拟机安装界面
(2)进入图1.2所示界面。
图1.2选择典型安装
(3)选择next,进入安装界面,如图图1.3:
图1.3安装进度
(4)安装完成后,输入序列号。
(5)选择“重新启动计算机按钮”。
(6)到这里虚拟机安装完成,工作界面如图1.4:
图1.4安装完成界面
1.4.2Linux安装
启动虚拟机后接着就是安装Linux系统,本课题选择的是安装Fedora10。
(1)打开虚拟机选择要安装的系统文件如图1.5:
图1.5Fedora安装文件
(2)设置虚拟机内存和网络。
(3)进入分区设置界面,挂载硬盘。
(4)进入系统安装软件界面,将系统自带的软件安装齐全,如图1.6:
图1.6系统自带软件安装
(5)软件安装之后经过一段时间的等待系统会自动安装完成。
如图1.7:
图1.7系统自动安装进度
(6)安装完成后,登陆配置网络。
并安装虚拟机工具。
(7)在windows中新建两个文件,设置与Linux交互目录。
1.5Linux常用工具
1.5.1文本编辑器
(1)gedit图形化文本编辑器
Gedit是一个图形化文本编辑器,像Windows中的记事本文件一样可以打开、编写并保存文本文件。
还可以将其他图形化桌面程序中的文本剪切和粘贴到编辑器中。
Gedit有一个清晰而又通俗易懂的界面,使用活页标签,因此可以不必同时打开多个文件打开多个gedit窗口。
(2)文本编辑器vi
在Linux操作系统中,如果不使用图形化的桌面,读取并修改某个文件或配置文件,可以使用vi编辑器来创建文本文档、书写脚本、编辑文本;另外,vi编辑器的文本模式查找功能比gedit命令更加强大,它可以在日志文件中以精确的方式查找信息,并且Linux安装程序会自动安装附带的vi编辑器。
几乎所有的Linux用户和系统管理员都使用vi编辑器完成自己的而工作。
因为vi编辑器不是图形化的软件,所以一定程度上受到了其他文本编辑器的挑战。
但是vi编辑器出色的灵活性和强大的功能使它得以广泛应用。
1.5.2软件包管理
Linux系统上的所有软件部分成可安装、升级或删除的RPM软件包。
这部分描述了如何使用图形化和命令行工具来管理RedHatLinux系统上的RPM软件包。
RPM软件包管理器是开放打包系统,任何人都可以使用。
它在Linux和UNIX系统上运行。
RedHat,Inc.鼓励其他销售商在他们自己的产品上使用RPM技术。
对于终端用户来说,RPM简化了系统更新。
安装、删除安装、升级RPM软件包使用简短的命令就可完成。
RPM维护一个已安装软件包和它们文件的数据库,因此,可以在系统上使用功能强大的查询和校验。
如果喜欢图形化界面,可以使用软件包括管理工具来执行许多RPM命令。
在升级中,RPM处理配置文件时非常谨慎,因此绝对不会丢失原先定制的配置。
这是使用普通的.Tar.gz文件所无法达到的。
对于开发者来说,RPM允许用户把软件编码和程序打包,然后提供给终端用户。
1.6Linux的常用命令
cd命令:
改变工作目录。
mkdir命令:
创建一个目录(类似DOS下的md命令)。
rmdir命令:
删除空目录。
rm命令:
在linux中创建文件很容易,系统中随时会有文件变得过时且毫无用处。
用户可以用rm命令将其删除。
该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。
对于链接文件,只是删除了链接,原有文件均保持不变。
pwd命令:
在Linux层次目录结构中,用户可以在被授权的任意目录下利用mkdir命令创建新目录,也可以利用cd命令从一个目录转换到另一个目录。
然而,没有提示符来告知用户目前处于哪一个目录中。
要想知道当前所处的目录,可以使用。
pwd命令:
该命令显示整个路径名。
ls命令:
ls是英文单词list的简写,其功能为列出目录的内容。
这是用户使用频率最多的命令,因为用户需要不时地查看某个目录的内容。
该命令类似于DOS下的dir命令。
cp命令:
该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,就如同DOS下的copy命令一样,功能非常强大。
mv命令:
用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。
该命令如同DOS下的ren和move的组合。
ln命令:
该命令在文件之间创建链接。
这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称。
对于这个新的文件名,我们可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题。
Find命令:
在目录结构中搜索文件,并执行指定的操作。
此命令提供了相当多的查找条件,功能很强大。
cat命令:
在标准输出上显示文件;连接两个或多个文件。
more命令:
在终端屏幕按屏显示文本文件。
Passwd命令:
用来更改使用者的密码wh命令:
该命令主要用于查看当前在线上的用户情况。
这个命令非常有用。
如果用户想和其他用户建立即时通讯,比如使用talk命令,那么首先要确定的就是该用户确实在线上不然talk进程就无法建立起来。
又如,系统管理员希望监视每个登录的用户此时此刻的所作所为,也要使用who命令。
W命令:
该命令也用于显示登录到系统的用户情况,但是与who不同的是w命令功能更加强大,它不但可以显示有谁登录到系统,还可以显示出这些用户当前正在进行的工作,并且统计数据相对who命令来说更加详细和科学,可以认为w命令就是who命令的一个增强版。
chmod命令:
chmod命令是非常重要的,用于改变文件或目录的访问权限。
用户用它控制文件或目录的访问权限。
该命令有两种用法。
一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
hgrp命令:
功能:
改变文件或目录所属的组。
chown命令:
更改某个文件或目录的属主和属组。
这个命令也很常用。
例如root用户把自己的一个文件拷贝给用户xu,为了让用户xu能够存取这个文件,root用户应该把这个文件的属主设为xu,否则,用户xu无法存取这个文件。
Login命令:
login的作用是登录系统,它的使用权限是所有用户。
Shutdown命令:
shutdown命令的作用是关闭计算机,它的使用权限是超级用户。
Halt命令:
halt命令的作用是关闭系统,它的使用权限是超级用户。
Reboot命令:
reboot命令的作用是重新启动计算机,它的使用权限是系统管理者。
Mount命令:
mount命令的作用是加载文件系统,它的用权限是超级用户或/etc/fstab中允许的使用者。
Umount命令:
umount命令的作用是卸载一个文件系统,它的使用权限是超级用户或/etc/fstab中允许的使用者。
Exit命令:
exit命令的作用是退出系统,它的使用权限是所有用户。
Last命令:
last命令的作用是显示近期用户或终端的登录情况,它的使用权限是所有用户。
通过last命令查看该程序的log,管理员可以获知谁曾经或企图连接系统。
df命令:
显示磁盘文件系统与使用状况。
top命令:
实时显示process的动态。
crontab命令:
crontab是用来让使用者在固定时间或固定间隔执行程式之用,换句话说,也就是类似使用者的时程表。
-uuser是指设定指定user的时程表,这个前提是你必须要有其权限(比如说是root)才能够指定他人的时程表。
如果不使用-uuser的话,就是表示设定自己的时程表。
kill命令:
杀死僵死的进程。
Ifconfig命令:
用于配置网卡。
Netstat命令:
显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。
nslookup命令:
查询一台机器的IP地址和其对应的域名。
它通常需要一台域名服务器来提供域名服务。
如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP地址对应的域名。
ping命令:
ping命令用于查看网络上的主机是否在工作,它向该主机发送ICMPECHO_REQUEST包。
有时我们想从网络上的某台主机上下载文件,可是又不知道那台主机是否开着,就需要使用ping命令查看。
mail功能:
读取及发邮件。
finger命令:
finger命令的功能是查询用户的信息,通常会显示系统中某个用户的用户名、主目录、停滞时间、登录时间、登录shell等信息。
tar命令:
tar可以为文件和目录创建档案。
利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。
gzip命令:
gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。
unzip命令:
该命令用于解扩展名为.zip的压缩文件。
2ARM体系结构介绍
本课题针对的是操作系统移植侧重于软件,因此关于硬件,只是简单地介绍一下ARM体系结构和和s3c2440的主要硬件。
2.1ARM体系结构的发展
体系结构,定义了指令集和基于这一体系结构下处理器的编程模型。
基于同种体系结构可以有多种处理器,所面向的应用领域不同,每个处理器性能也就不同,但每个的实现都要遵守这一体系结构。
ARM体系结构为嵌入式项目开发提供低功耗高性能的系统性能。
目前ARM体系结构一共定义了8个版本,从版本1到版本8,ARM体系的指令功能不断扩大。
不同系列的ARM处理器,性能差别很大,应用范围对象也不尽相同,但是,如果是相同的ARM提醒结构,那么基于它们的应用软件是兼容的。
V1版本的处理器并没有实现商品化,采用是26位,寻址空间是64MB,在目前的版本中已不再是用这种结构。
与V1结构的ARM处理器相比,V2结构的ARM处理器的治理结构有所完善,比如增加了乘法指令并且支持协处理器指令
从V3结构开始,ARM处理器的体系结构有了很大的改变,实现了32位的地址空间,指令结构相对前面两种结构有所完善。
V4结构的ARM处理器增加了半字指令的读写和写入操作,增加了处理器模式,并且有了T变种—V4T,在Thumb状态下支持的是16位的Thumb指令集。
V5结构的ARM处理器提升了ARM和Thumb两种指令的交互能力,同时有了DSP指令—V5E结构,JAVA指令—V5结构的支持。
V6体系结构包含ARM体系结构中所有的4种特殊指令集:
Thumb指令(T),DSP指令(E),Java指令(J)和Media指令。
V7架构采用了Thumb-2技术,它是在ARM的Thumb代码压缩技术的基础上发展起来的,并且保持了在代码对现存ARM解决方案的完整的兼容性。
Thumb-2技术的代码量比纯32位代码少占用31%的内存,减少了系统资源开销,同时能提高出38%的性能。
ARMv7架构还采用了NEON技术,将媒体处理能力和DSP提高了近4倍。
并支持改良的浮点运算,满足下一代3D图形、游戏物理应用以及传统嵌入式控制因为的需求。
ARMv8架构是基于32位的ARMv7而来,保留了TrustZone安全执行环境、NEON、虚拟化等关键技术特征ARMv8架构包括AArch64和AArch32两种执行状态,前者引入了一套新的一套指令集“A64”专门用于64位处理器,而后者用来兼容现有32位ARM指令集。
2.2ARM处理器简介
2.2.1ARM7处理器系列
ARM7内核采用冯.诺伊曼体系结构,数据和指令使用同一条总线。
内核有一条3级流水线,执行ARMv4指令集。
ARM7系列处理器主要用于对功耗要求比较苛刻的消费类产品。
其主频可达130MIPS。
包括ARM7TDMI、ARM7TDMI-S、ARM7EJ-S和ARM720T四种类型。
2.2.2ARM9处理器系列
采用了5级指令流水线,ARM9处理器能够运行在比ARM7更高的时钟
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux操作系统移植本科毕业设计论文 精品 Linux 操作系统 移植 本科 毕业设计 论文