资源描述:
《Linux体系结构及嵌入式Linux的移植与应用.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、2009年5月西安邮电学院学报May2009第14卷第3期JOURNALOFXI’ANUNIVERSITYOFPOSTANDTELECOMMUNICATIONSVol114No13Linux体系结构及嵌入式Linux的移植与应用田磊(西安邮电学院电子与信息工程系,陕西西安710121)摘要:Linux作为一种优秀的免费操作系统,成为嵌入式领域中所选用操作系统的重要组成部分。本文通过对Lin2ux内核体系结构的分析,在基于S3C2410微处理器的ARM9开发板上移植了嵌入式Linux操作系统,最后以实例的形式给
2、出了测试方法,该方法同样适用于后续的开发工作。关键词:嵌入式系统;移植;内核;应用程序中图分类号:TP3文献标识码:A文章编号:1007-3264(2009)03-0102-04别:一类是和标准Linux一样运行在有硬件存储管引言理器(MMU)的处理器上,另外一类通常针对无硬件存储管理器(MMU)的CPU进行裁剪和移植,它嵌入式操作系统不同于一般意义的计算机操作所具有的一些特点下面将陆续介绍。系统,它有占用空间小、执行效率高、方便进行个性(3)虚拟文件系统(VirtualFileSystem):隐藏化定制和软
3、件要求固化存储等特点。Linux操作系了不同硬件的具体细节,为所有设备提供提供统一统是一种性能优良、源码公开且被广泛应用的免费的接口。虚拟文件系统可再分为逻辑文件系统和设操作系统,由于其体积小、可裁减、运行速度高等优备驱动程序两部分。逻辑文件系统指Linux支持的点,因此可以作为研究嵌入式操作系统和非实时操文件系统,如ext2、jffs和nfs等。设备驱动程序是作系统的典范。本文通过Linux体系结构的分析,具体操作硬件控制器的代码。以及一个移植Linux的具体范例,介绍了嵌入式(4)网络接口(Network
4、Interface):负责支持标Linux的移植方法。准的网络通信协议和各种网络硬件设备。其中网络通信协议部分负责实现各种标准的链路层、网络层1Linux系统内核的体系结构和传输层协议;而设备驱动程序负责对网络硬件进行具体操作。1.1Linux内核的体系结构(5)进程间通信(InterProcessCommunica2(1)进程调度(ProcessScheduler):负责控制进tion):支持进程间各种通信机制。其通信手段主要程对CPU的使用。CPU是计算机系统中最核心的有:信号、文件锁、管道、等待队列、信
5、号量、消息队资源,调度程序负责在可运行进程中公平地选择,使列、共享内存、套接字。其中之一成为运行进程,从而充分利用CPU的资1.2Linux体系结构与移植的关系源。同时,它也负责保证内核及时对硬件进行操作。S3C2410是一款包含16kB一体化的Cache/(2)内存管理(MemoryManager):标准LinuxMMU芯片,这一特性使开发人员能够将Linux等的内存管理支持虚拟内存,进程的代码、数据和堆栈系统移植到该处理器中。标准的Linux内核是支持的总量可以超过实际内存的大小。而Linux大致可MMU
6、的,所以应把标准的Linux内核移植到以根据平台有无存储管理单元(MMU)分为2个类S3C2410之上。收稿日期:2008-10-31作者简介:田磊(1980-),男,天津人,西安邮电学院电子与信息工程系助教。第3期田磊:Linux体系结构及嵌入式Linux的移植与应用·103·Linux内核的编译、修改、移植实际上与上层的连接入和PC机同网段的局域网。应用程序,如命令解释器shell、登陆程序login相关在Linux终端下运行minicom命令,键入Ctrl的,这些程序应根据需要来进行定制。Linux的内
7、+a后再按o,进入接口选择界面,将串口参数设置核为上层应用提供一个与具体硬件不相关的平台;如图2所示。同时在内核内部,它又把代码分为与体系结构、硬件相关部分以及可移植的部分;这样减小了内核运行的开销,增强了内核代码的模块独立性。2基于ARM平台的Linux的移植方法2.1编译开发环境的建立将开发板所带光盘中里Linux目录下的YUANFENG.tar.gz拷贝到根目录下:[root@localhostmnt]#mount/mnt/cdrom//挂载光盘驱动器[root@localhostmnt]#cpYUAN
8、FENG.tar.gz/图1编译内核的初始界面[root@localhost/]#tarzxvfYUANFENG.tar.gz//对文件解压缩[root@localhost/]#cd/YF2410执行脚本:[root@localhostYF2410]#./YFINSTALL.sh脚本文件执行完后,编译开发环境(arm-linux-gcc-2.95.3)就安装成功了,同时也安装了一个tftp-serv