做一个嵌入式Linux系统究竟要做哪些工作

作者&投稿:诗榕 (若有异议请与网页底部的电邮联系)
~

做一个嵌入式Linux系统究竟需要做哪些工作?也就是本文究竟要讲述哪些内容?我先介绍一个脉络,可以做为我们后面工作的一个总的提纲:

第一步、建立交叉编译环境

没有交叉开发经验的读者,可能一时很难接受这个概念。首先,要明白两个概念:一般我们工作的机器,称为开发机、主机;我们制作好的系统将要放到某台机器,如手机或另一台PC机,这台机我们称为目标主机。

我们一般开发机上已经有一套开发工具,我们称之为原生开发套件,我们一般就是用它们来写程序,那么,那什么又是交叉编译环境呢?其实一点也不神秘,也就是在开发机上再安装一套开发工具,这套开发工具编译出来的程序,如内核、系统工作或者我们自己的程序,是放在目标主机上运行的。

那么或许有初学者会问,直接用原生开发工具为目标主机编译程序不就完了?至少我当初是这么想的。一般来说,我们的开发机都是X86平台,原生开发套件开发的工具,也针对X86平台,而我们的目标主机可能是PowerPC、IXP、MIPS所以,我们的交叉编译环境是针对某一类具体平台的。

一般来讲,交叉开发环境需要二进制工具程序、编译器、C链接库,嵌入式开发常用的这三类软件是:

Binutils

G

uClibc

当然,GNU包含的工具套件不仅于此,你还要以根据实际需要,进行选择

第二步、编译内核

开发工具是针对某一类硬件平台,内核同样也是。这一步,我们需要用第一步中建立的工具,对内核进行编译,对于有内核编译经验的人来说,这是非常简单的;

第三步、建立根文件系统

也就是建立我们平常看到的bin、dev、proc这一大堆目录,以及一些必备的文件;另外,我们还需要为我们的目标系统安装一些常用的工具软件,如ls、ifconfig当然,一个办法是找到这些工具的源代码,用第一步建立的交叉编译工具来编译,但是这些软件一是数量多,二是某些体积较大,不适合嵌入式系统,这一步,我们一般都是用busybox来完成的,包括系统引导软件init;

最后,我们为系统还需要建立初始化的引导文件,如inittab

第四步、启动系统

在这一步,我们把建立好的目标、文件、程序、内核及模块全部拷贝到目标机存储器上,如硬盘。然后为系统安装bootloader,对于嵌入式系统,有许多引导程序可供我们使用。不过它们许多都有硬件平台的限制。当然,如果你是工作在X86,可以直接用lilo来引导,事实上,本文就是采用的lilo。

做到这一步,将目标存储设备挂上目标机,如果顺利,就可以启动系统了。

当然,针对某些特别的平台,不能像硬盘这样拷贝了,需要读卡器、烧录但是基本的方法是相通的!

第五步、优化和个性化系统

通过前四步,我们已经得到了一个可以正常工作的系统。在这一步里,就是发挥你想像的时候了




linux嵌入式开发需要学什么
linux嵌入式开发需要学如下:一:C语言 嵌入式Linux工程师的学习需要具备一定的C语言基础,C语言是嵌入式领域最重要也是最主要的编程语言,通过大量编程实例重点理解C语言的基础编程以及高级编程知识。包括:基本数据类型、数组、指针、结构体、链表、文件操作、队列、栈等。二:Linux基础 Linux操作系统的概念...

linux嵌入式开发是不是必须用linux才能开发?
嵌入式linux开发,肯定是要在linux系统下操作。同楼上所说,你也可以在虚拟机环境下开发。楼主这是没学呢打算学嵌入式开发,还是已经有些基础了呢?那么针对嵌入式开发要学哪些我简单的说一下,仅代表当前主流观点。嵌入式开发作为新人,第一步C语言,有很多人自认为自己C语言很厉害,但是实际上一个...

作为一个新人,怎样学好嵌入式Linux
如果你做出了LFS,证明你的Linux功底已经相当不错,如果你能拿LFS文档活学活用,再将Linux从源代码开始移植到嵌入式系统,我敢说中国的企业你可以混的很好。1、Linux基础 你得挑一个适合你的系统,然后在虚拟机安装它,开始使用它。 如果你想快速学会Linux,我有一个建议就是忘记图形界面,不要想图形...

作为一个新人,怎样学习嵌入式Linux
你可以边工作边学习,从事嵌入式周边行业的(嵌入式应用方面)所以可以学一学嵌入式的图形开发工具:QT,这个很有意思。然后慢慢的想嵌入式方向发展。这是一个漫长的过程。如果想速成也可以报班学习。另外就是Unix c部分的网络编程很重要这个地方要学好。学好了也可以从事linux的网络协议栈相关工作。

linux系统与嵌入式linux有什么区别和关系?
Linux以它的高效性和灵活性著称,Linux模块化的设计结构,使得它既能在价格昂贵的工作站上运行,也能够在廉价的PC机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。嵌入式Linux 嵌入式Linux系统就是利用Linux其自身的许多特点,把...

LINUX网络嵌入式设备
一般flash中的东西,是有具体应用来决定的,开头一般都是bootloader代码,后面有一个image文件,公司的网络系统,需要一个启动配置文件,也简单的放在flash中: Bootloaer一般放在开头,便于执行。后面的则也可以直接这样按照物理空间分配,复杂一点,也可以做成文件系统fs,如嵌入式linux。主要包括一些配置文件,log信息文件。最重...

嵌入式linux怎么学
在学习嵌入式Linux之前,肯定要有C语言基础。汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会)。C语言要学到什么程度呢?越熟当然越好,不熟的话也要具备基本技能。比如写一个数组排序、输入数字求和什么的。学C语言唯一的方法是多写程序多练习,编译出错没关系,自己去解决;执行出错没关系,自己去分析。以前...

linux与嵌入式系统的关系
linux和嵌入式系统是相互于相互交叉使用的。嵌入式系统的定义就是软硬件可裁剪,在实际项目中,对产品的功耗、存储等要求严格,所以就会涉及将完整的Linux系统进行精简瘦身,节约存储提高效率,这就是所谓的系统移植、裁剪。此工作需要对Linux内核极其熟悉。Linux驱动开发:嵌入式产品上面的各种外设的驱动开发...

请问用Linux做一个操控的嵌入式系统,怎么搭建平台好?
1、我知道的嵌入式LINUX基本都是用ARM做的,没接触过你说的这个平台。不过我猜测道理应该是想通的。2、ARM 做的时候是由宿主机和开发板两部分组成的。先得把内核烧写到开发板上,做上RAMFS文件系统,UBOOT,ZImage 等等。3 在LINUX环境下搭建交叉编译环境,这样编译出来的程序是可以LOAD到开发板上进行...

学嵌入式linux需要先学什么?
学嵌入式Linux要先学以下几点:1.C语言。要有C语言的基础,当然越熟练越好,不熟也没关系,具备基本技能就可以:比如写一个数组排序、输入数字求和什么的。C语言的学习就是多些多练。2.Linux基础Linux操作系统的概念、安装方法,详细了解Linux下的目录结构、基本命令、编辑器VI ,编译器GCC,调试器GDB和 Make 项目管理工...

祥云县18644743956: 做一个嵌入式Linux系统究竟要做哪些工作 -
蒲姬乌灵: 1、Linux 基础安装Linux操作系统 Linux文件系统 Linux常用命令 Linux启动过程详解 熟悉Linux服务能够独立安装Linux操作系统 能够熟练使用Linux系统的基本命令 认识Linux系统的常用服务安装Linux操作系统 Linux基本命令实践 设置Linux环境变...

祥云县18644743956: 嵌入式linux系统开发的具体步骤?
蒲姬乌灵: 第一步、建立交叉编译环境 没有交叉开发经验的读者,可能一时很难接受这个概念.首先,要明白两个概念:一般 我们工作的机器,称为开发机、主机;我们制作好的系统将要放到某台机器,如手机或另一 台PC机,这台机我们称为目标主机....

祥云县18644743956: 虚拟机嵌入式Linux开发前要做什么? -
蒲姬乌灵: 1、准备安装文件,一般是一个安装可执行文件和一个破解key生成器,安装后一路next到最后,生成一个能用的key复制进去就完成了VMware软件安装;2、运行软件,建立一个新的虚拟机,起个名字,或者直接选择RedHatLinux,然后选择虚...

祥云县18644743956: 想从事嵌入式linux方面的工作,请问各位大侠们谁能告诉我应该做什么应该学什么,跪求!!! -
蒲姬乌灵: 我最近在做一个项目,用的嵌入式linux,但也是初学者. 嵌入式linux开发有以下几个步骤. 1.在linux系统下搭建arm-linux交叉编译环境,这样你在pc上编译的程序才能在arm上运行.我是在ubuntu8.04下搭建的,直接用arm-linux-gcc解压,再写...

祥云县18644743956: 嵌入式linux需要掌握哪些技能 -
蒲姬乌灵: 嵌入式linux系统一般而言是基于不同的类型处理器(比如ARM、PowerPC...),它一般具有以下特点:能够运行相应嵌入是内核,外设资源有限(或者只有很少的资源:比如少量内存,没有图像显示界面)、成本较低,针对专业领域设计.如果想要设计深层次编程一般是指:linux驱动程序编写,这部分会涉及到基本的硬件只是架构,内核的一些运行机制:进程管理、内存分配、文件系统,另一是指:linux应用程序的编写.其实这些设计的知识都很多:比如:基本处理器架构、指令,C语言是必须掌握的,操作系统的先关知识,刚刚开始可以先选择一个使用比较广泛的处理器平台,然后边实际试验边补充知识,这样你才知道你要学的有哪些东西.

祥云县18644743956: linux 嵌入式开发 主要是做什么工作,工作内容是什么,linux 嵌入式开发 需要掌握哪些技能 -
蒲姬乌灵: 我9月份刚找完工作,现在是在搞飞思卡尔的单片机,主要是我喜欢这个方向.嵌入式一般有两个方向,应用和底层系统.写应用的一般是写网络编程也就是TCP/IP 和linux高级编程 ,写图形介面的也有,去面试过几家,有安防公司,游戏公司之类的.写底层的一般就是写单片机,FPGA,linux内核定制,驱动之类的.这类的工作要求有点小高.有些公司还会要求你会PCB,起码要看得懂电路原理图,可以跟据原理图来写程序,一般一些工业控制公司会招这样的人,不过招的不多,而且都是要求有几年的工作经验,起码要写过几个嵌入式的项目,而且不同的公司要求也大不相同(主要是各个公司用的芯片不同).

祥云县18644743956: Linux嵌入式的开发流程是什么呢, 具体的详细点的有吗? -
蒲姬乌灵: 下面就由福州卓跃教育具体介绍下嵌入式系统开发流程.操作系统一般使用Redhat Linux,选择定制安装或全部安装,通过网络下载相应的GCC交叉编译器进行安装,或者安装产品厂家提供的相关交叉编译器;二、配置开发主机,配置...

祥云县18644743956: 作linux嵌入式开发,要学些什么东西?? -
蒲姬乌灵: 第一步:linux平台上的开发,包括vi,gcc,gdb,make, linux基本操作 第二步:加厚c语言功底《c专家编程》《c缺陷和陷阱》 第三步:学习unix环境高级编程《unix环境高级编程》 第四步:arm体系结构 第五步:arm应用程序开发 以后:驱动开发

祥云县18644743956: 从linux内核到嵌入式系统的构建.可以简单说一下基本步骤吗. -
蒲姬乌灵: 这样说吧,先给你普及一下嵌入式系统的组成: 一般来说,嵌入式操作系统大都由三部分组成,分别是bootloader、kernel、rootfs,也就是引导启动程序,内核,根文件系统. 所以要构建一个嵌入式系统不是从linux内核开始的,完整步骤应该...

祥云县18644743956: 如何制作嵌入式Linux文件系统 -
蒲姬乌灵: 用 busybox 解压缩后 运行 make menuconfig 进入配置项 设置参数 如你是那种文件系统 保存退出 make&&make install 生成文件系统 保存在当前目录下_install下 为了支持某些运算 需要添加某些库文件 最简单的方法 把 arm-linux-gcc lib目录下的 库文件 全部 copy 到 文件系统下 lib目录

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网