Linux用作嵌入式 *** 作系统

Linux用作嵌入式 *** 作系统,第1张

Linux as an Embedded Operating System Linux有用作嵌入式 *** 作系统的潜力吗?本文讨论了Linux的特点 健壮 性 局限以及最重要的一点 它的实时特性 近年来 PC硬件使用的增加是高端嵌入式系统最重要的发展之一 这种 趋势造成高端系统硬件造价的大大跌落 从而使那些以前由于使用非P C结构的嵌入式硬件价格过高而不能做的项目成为可行的 但是嵌入式 PC平台上可选择的软件并不像硬件那样有诱惑力 你可以选择DOS 有 众所周知的局限性 微软Windows 缺乏实时性能 或者某种高端实时 *** 作系统 昂贵 专用 大多是不可移植的 Linux *** 作系统提供了另 外的有吸引力的选择 并且没有上面那些缺陷 Linux先前只是狂热的 Unix迷们闲时专门在台式电脑上使用 后来发展成为必须认真对待的高 级的 稳定的 *** 作系统 最近的发展之一是引入了实时性能 从而使L inux完成了重要的转变 即从爱好者的玩具成为适合嵌入式系统设计者 的有价值的工具 当然 其实时性能还没有那些高端RTOS那么高级 并 且Linux永远不会适合需要最小化RAM和ROM的系统 但是 对很多应用 来说 Linux的优势胜过了不足 现在 大家都知道在嵌入式系统中使用PC硬件的好处 与很多专为嵌入 式市场设计的硬件比较 PC硬件是大规模生产的 容易获得并且便宜 为VME总线设计的接口板价格是PC总线的两倍多 比如模拟和数字I/O板 网络接口 图像采集与处理板等 随着高性能PCI总线应用的增加 吞吐量不再是影响使用PC平台的问题 但是 *** 作系统功能上已经发生革命性的变化 在要求硬件价格降低的同 时 高端嵌入式系统要求更多高级的功能 如图形用户界面和网络支持 很多高端RTOS供应商已经提供了这些功能 一般是作为花更高价钱才 能得到的可选件 微软Windows也有这些功能 却不具备大多数嵌入式 系统要求的实时性能 也许有人想以DOS为基础用单独的第三方工具拼 凑一个系统 但这种努力将是白费并且不存在对这种系统的技术支持 现在需要的是一个便宜 成熟并且提供高端嵌入式系统所必须特性的 *** 作系统 因此 Linux *** 作系统近来开始吸引大家的注意 许多台式PC用户被它 的特点和健壮性所吸引 并且获得它只需支付通过FTP下载的网络费用 Linux带有Unix用户熟悉的完善的开发工具 几乎所有的Unix系统和 应用软件都已移植到了Linux上 Linux还提供了TCP/IP网络协议以及I nternet客户和服务器软件 还有可选择多种窗口管理器的X Windows C C++ Java和其他语言的编译器也可得到 用户会发现这些比Windo ws提供的更成熟 更完善 更易于使用 许多公司至少会有一位Linux 的热衷者 当出现用Windows解决不了的问题时(比如设置一台PC为拨 号服务器)会说 瞧 我们要是用Linux 现在 讨论Bill Gates是否有所担心是有些杂志的一个话题 重要的是 不属于任何一家公司的Linux开始被台式电脑用户接受 其中许多人并 不能被认为是电脑迷 这一方面是因为Linux的成熟 另一方面也因为 这几年Internet的盛行 Linux用户遇到问题时可以通过Internet新闻 组和邮件列表向网上成千上万的在线用户请教 你遇到的问题别人以前 肯定碰到过 一般他们都乐于帮忙 根据我的经验 通常使用网络资源 能比依赖RTOS技术支持部门更快地解决问题 你可能需要从十几条新闻 组其他成员回答的相关信息中搜寻 但至少有一个回答应该是有用的 相比较而言 你从技术支持部门仅得到一个回答 如果是错的 你不得 不重新开始整个过程 另外 致力于提供Linux支持的公司也已经出现 给那些觉得传统的技术支持手段更舒服的用户一个选择 并且所有L inux是提供源代码的 这使最困难的问题也有办法解决 某些嵌入式系统设计者会发现Linux本来的样子就很有用 对于没有实 时要求的应用 或者有实时要求但可以用一定的硬件或协处理器满足的 应用 Linux提供了Windows和DOS之外的选择 但是那样的应用几乎没 有 因此 用Linux实现一个实时 *** 作系统才是真正需要的 并且为了 用它实现高端嵌入式应用已经做了充分的工作 总的来说 有两条途径 来实现实时Linux 在此称之为POSIX路线和低层路线 POSIX和Linux POSIX是标准化类Unix *** 作系统必须具有的特征和接口的运动 POSIX的 思想是为了促进为Unix编写的软件的可移植性 使Unix程序员的工作更 容易 有些实时性的扩展 象POSIX b或IEEE b已经加入到标准 中 这些扩展中包括一些工具 比如信号灯 内存锁定 时钟和计数器 消息队列以及优先级抢先调度 以POSIX为基础来标准化实时 *** 作系统已经受到指责 这个标准又大又 笨 包含了许多适合台式Unix工作站但无助于嵌入式系统的特征 因而 显得很臃肿 标准制定群体被工作站制造商控制 他们不愿对RTOS供应 商和用户让步 还有 POSIX系统调用反映了Unix系统调用的复杂和笨 重 在VxWorks或pSOS+中仅需一两个调用即可完成的 *** 作可能需要十几 个POSIX调用 Unix程序员已经习惯了这种麻烦事 但是嵌入式系统程 序员却觉得很难受 许多Linux开发者正在为了在Linux中实现POSIX b的特征工作 这个活 动已经初见成效并且仍在继续 POSIX内存锁定工具和决定调度算法的 函数已经实现 另外 计数器函数和POSIX b信号仍未完成 也许最糟 糕的是 对任何真正的RTOS都至关重要的信号灯和消息队列也未实现 定义于POSIX c(或IEEE C)中的POSIX线程保证会为POSIX路线 的Linux开发实现 一个进程内可以有多个线程 共享相同的地址空间 这很符合我们熟悉的嵌入式系统中任务的概念 Linux已经部分实现 了POSIX线程 虽然POSIX路线对实现一个实时Linux做了保证 当前和可预见的将来只 有 软 实时的应用能用POSIX b函数来实现 移植POSIX b函数到L inux上时要面对的根本问题是Linux的内核是不可抢先的 因此 要想 不对内核大动干戈而实现 硬 实时特性恐怕是不可能的 通向实时Linux的低层路线 Low level Approach to Real time Linux 比POSIX路线更有意思的是实现硬实时Linux的努力 其中最有前途的要 数新墨西哥技术学院的实时Linux(RT Linux)项目 注意到Linux是一 个为台式电脑用户设计的 *** 作系统 研究者们断定 要想把实时功能移 植到为分时设计的OS上是不会有好结果的 取而代之的是 他们在 *** 作 系统的下面实现了一个简单的实时内核 而Linux本身也仅作为那个内 核上的一个任务来运行 Linux运行的优先级最低 随时可以被更高优 先级的任务抢先 RT Linux的设计理念是 对Linux作最小的改动 仅提供为了实现实时 应用必不可少的东西 这样就使RT Linux比较容易移植到新版本的Lin ux上 同时 RT Linux依赖于Linux来提供所需的几乎所有服务 而RT Linux仅提供低层任务创建 安装中断服务例程 并为低层任务 ISR 和Linux进程之间的通信排队 这种设计的结果之一是 一个RT Linux应用可以看作有两个域 实时和 非实时 放在实时域的函数能满足其实时要求 但是它们必须比较简单 因为可用资源很受限制 另一方面 非实时功能可以利用整个Linux 资源 但不能有任何实时要求 两个域之间的通信工具已提供 但是使 用RT Linux之前 嵌入式系统设计者必须确保所有需要实现的功能适合 两个域之一 使用RT Linux并不能变戏法似的使已经存在的Linux功能 具有实时性 例如 假设设计者有一个串口的Linux驱动程序 当串口 接收一个字节序列之后 在一个固定时间内 由实时任务打开并口输出 一行 这个驱动程序不能用 因为在非实时域内你不知道什么时候串口 驱动程序会唤醒实时任务驱动并口完成工作 因此 串口和并口驱动都 必须在实时域内 这就要求重新设计串口驱动程序 RT Linux的任务处理工具是基本的 rt_task_init()用来创建并开始一 个任务 能指定堆栈的大小和优先级 Linux本身以一个最低优先级的 实时任务运行 rt_task_make_periodic()以一定间隔周期性地设置任 务运行 rt_task_wait()阻塞任务 使用简单的抢先调度运行任务 实时任务与Linux进程之间通信的主要方法是FIFO rtf_create()创建 一个一定大小的FIFO 用rtf_put()将数据送入FIFO 如果FIFO满则返 回一个错误 类似地 rtf_get()从FIFO中取出数据 如果FIFO空则返 回一个错误 FIFO最显著的应用是数据流 例如 在一个数据采集应用中 可以用r t_task_init()和rt_task_make_periodic()设置实时任务使其以固定的 间隔从I/O板采样 这个任务用rtf_put()将数据发送到Linux进程 该 Linux进程应该是一个循环 不断从FIFO读出数据 也许还要写数据到 磁盘 或者通过网络发送 或者显示在一个X窗口中 FIFO象一个缓冲 因此Linux进程不必非有实时性不可 实现数据流系统看起来成为RT Linux设计者的主要动机 但是FIFO机制 提供了一个实现信号灯的很好方法 两态信号灯可以通过创建一个大小 为 的FIFO来实现 V *** 作即为rtf_put() 数据内容无所谓 同时忽略 返回的错误 P *** 作为rtf_get() 计数信号灯可以通过创建大小足够容 纳所期望V *** 作个数的FIFO简单地实现 由此可见 FIFO机制提供了实 时应用中任务同步所需的大部分功能 当前的实现在RTOS用户习惯的某 些功能上仍有欠缺 比如优先级禁止(防止优先级反转)和任务安全删 除 但是仔细设计几乎总能避免这些问题 此外 虽然FIFO *** 作可以在 没有数据(读FIFO)或没有空间(写FIFO)时阻塞 语法却相当复杂 阻塞能力看来不是设计的重点 然而 至少有一个提供FIFO阻塞 *** 作简 单语法的努力正在进行 同时还实现了阻塞超时 这是许多嵌入式应用 的重要特征 RT Linux简单 开放的设计允许用户相当容易地实现类似 的附加功能 RT Linux的一个有趣的方面是设计者使Linux内核 lishixinzhi/Article/program/Oracle/201311/17916

应用开发,就是根据你所研究的领域进行有选择的硬件开发、以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式 *** 作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分包括 *** 作系统软件(OS)(要求实时和多任务 *** 作)和应用程序编程。嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。

嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。推荐北京精仪达盛、亚龙、天煌等品牌的硬件产品,如系统开发板、DSP、ARM等。

下面说你工作时要用稿的知识

1.处理器技术1)通用处理器2)单用途处理器3)专用处理器

2.IC技术1)全定制/VLSI2)半定制ASIC3)可编程ASIC

3.设计/验证技术

嵌入式系统的设计技术主要包括硬件设计技术和软件设计技术两大类。硬件设计领域的技术主要包括芯片级设计技术和电路板级设计技术芯片级设计技术的核心是编译/综合、库/IP、测试/验证。编译/综合技术使设计者用抽象的方式描述所需的功能,并自动分析和插入实现细节。库/IP技术将预先设计好的低抽象级实现用于高级。

当然、一个出色的职业经理,除了商务,这些技术方面,也是必须要懂的。

希望以上对你有所启示,不懂了可以留言、。

驱动开发和应用开发的前景?你想问的是学好这些需要哪些基本功力是吧?真正的技术是积累出来的,多看专业书。等你学习到一定阶段你就会发现什么驱动,什么应用都是雕虫小技而已,现在慢慢学,不用急。多留心就好

我问你你学习这一系列的东西是为了什么?开公司还是当老师?还是没事自己搞研发?现在时代的产品要求的是全方面的人才,艺多不压身,你着重往JAVA方面发展吧。但是C也是必须的,

知道吧小弟,出来了就是工程师,想要比别人优秀,就要让自己的水平在你所在的领域游刃有余,要让你工作的地方没你不行。至于怎样达到这个水平,哪是你自己的事了。

呵呵,我做了嵌入式十年了,应该不算菜鸟吧。我来回答你的问题。
1:嵌入式系统有那些?
常用企业常用的有linux、wince、vxworks,还有一些手机的系统也算是嵌入式的系统android(google基于linux)、symbian、windows mobile,还有一些uC/OS、RTLinux、eCos、uclinux、QNX、LynxOS、EEOS。基本上常见我都列出来了。
2:嵌入式开发环境是什么?
linux uclinux ecos uc/os android RTlinux这些都可以用GCC来编译程序,具体是什么GCC和你的处理器有关系,比如arm,就用arm-linux-gcc,mips的处理可能就是用mips-linux-gcc,名字不固定,但是一般都是基于gcc来开发和移植的。还有wince主要是用platform builder来开发的。
在企业的应用中,当然开发环境其实不是固定的,关键是看芯片厂商根据不同的嵌入式系统提供的不同的开发环境。
3:嵌入式处理器有那些?
主流的处理器,如arm,目前ARM处理器主要有6大系列:ARM7、ARM9、ARM9E、ARM10、ARM11,SecurCore。还有与Intel合作实现的StrongARM和XScale处理器。
还有其他的处理器。比如MIPS处理器、PowerPC处理器,这些是市场上主流的。
当然,国产也有一些芯片,比如龙芯,但是这些其实不算什么分类,都是类MIPS的。
4:其实这些都是一些基本的介绍,如果你想深入了解这些东西,那需要一定的时间的。关于这些方面的知识,该怎么学习呢?我刚才看到一篇很不错的文章,是一个专科生介绍自己如何自学嵌入式,并找到嵌入式的工作,里面介绍了他的学习方法和学习过程,希望对你有帮助。
专科生学嵌入式到找到工作的前前后后--学习的榜样
先做个自我介绍,我07年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了。09年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学了。
退学后我也迷茫,大专都没有毕业,我真的不知道我能干什么,我在纠结着我能做什么。所以辍学后我一段时间,我想去找工作,因为我比较沉默寡言,不是很会说话,我不适合去应聘做业务。我想应聘做技术的,可是处处碰壁。
一次偶然的机会,我才听到嵌入式这个行业。那天我去新华书店,在计算机分类那边想找本书学习。后来有个女孩子走过来,问我是不是读计算机的,有没有兴趣学习嵌入式,然后给我介绍了一下嵌入式现在的火热情况,告诉我学嵌入式多么的有前景,给我了一份传单,嵌入式培训的广告。听了她的介绍,我心里痒痒的,确实我很想去学会一门自己的技术,靠自己的双手吃饭。
回家后,我就上网查了下嵌入式,确实是当今比较热门的行业,也是比较好找工作的,工资也是相对比较高。我就下决心想学嵌入式了。于是我去找嵌入式培训的相关信息,说真的,我也很迷茫,我不知道培训是否真的能像他们宣传的那样好,所以我就想了解一段时间再做打算。
后来,我在百度知道看到一篇让我很鼓舞的文章《如何学习嵌入式》,是一个嵌入式高手介绍没有基础的朋友怎么自学入门学嵌入式,文章写的很好,包含了如何学习,该怎么学习。他提到一个方法就是看视频,因为看书实在太枯燥和费解的,很多我们也看不懂。这点我真的很认同,我自己看书往往看不了几页。
我在想,为什么别人都能自学成才,我也可以的!我要相信自己,所以我就想自学,如果实在学不会我再去培训。

主意一定,我就去搜索嵌入式的视频,虽然零星找到一些嵌入式的视频,但是都不系统,我是想找一个能够告诉我该怎么学的视频,一套从入门到精通的视频,一个比较完整的资料,最好能有老师教,不懂可以请教的。
后来我又找到一份很好的视频,是在嵌入式学习网推出的一份视频《从零基础开始学嵌入式》,网址:>

一、DM

软件名称:达梦数据库(DM)。

开发商:武汉华工达梦数据库有限公司。

软件描述:

达梦数据库具有如下技术特色:支持多个平台之间的互联互访、高效的并发控制机制、有效的查询优化策略、灵活的系统配置、支持各种故障恢复并提供多种备份和还原方式。

具有高可靠性、支持多种多媒体数据类型、提供全文检索功能、各种管理工具简单易用、各种客户端编程接口都符合国际通用标准、用户文档齐全。

二、OpenBASE

软件名称:OpenBASE。

开发商:东软集团有限公司。

软件描述:

主要包括OpenBASE多媒体数据库管理系统、OpenBASEWeb应用服务器、OpenBASEMini嵌入式数据库管理系统、OpenBASESecure安全数据库系统等产品。

所有的这些产品涵盖了企业应用、Internet/Intranet、移动计算等不同的应用领域,具有不同的应用模式。

形成了OpenBASE面向各种应用的全面的解决方案。多媒体数据库管理系统OpenBASE是OpenBASE产品系列的核心和基础,其它的产品都是在其基础上,根据各自应用领域的不同特点发展、演变而成的。

三、OSCAR

软件名称:神舟OSCAR数据库系统。

开发商:北京神舟航天软件技术有限公司。

软件描述:

神舟OSCAR数据库系统基于Client/Server架构实现,服务器具有通常数据库管理系统的一切常见功能,此外还包括一些有助于提高系统对工程数据支持的特别功能,而客户端则在提供了各种通用的应用开发接口的基础上,还具有丰富的连接、 *** 作和配置服务器端的能力。

提供与Oracle、SQLServer、DB2等主要大型商用数据库管理系统以及TXT、ODBC等标准格式之间的数据迁移工具。

四、KingbaseES

软件名称:金仓数据库管理系统KingbaseES。

开发商:北京人大金仓信息技术有限公司。

软件描述:

交互式工具ISQL;图形化的数据转换工具;多种方式的数据备份与恢复;提供作业调度工具;方便的用户管理;支持事务处理;支持各种数据类型;提供各种 *** 作函数;提供完整性约束;支持视图;支持存储过程/函数;支持触发器。

五、iBASE

软件名称:iBASE。

开发商:北京国信贝斯软件有限公司。

软件描述:

包括五个部分:iBASEReliaxServer全文检索服务器。

iBASEWeb网上资源管理与发布系统。

iBASEIndexSystem文文件管理与发布系统。

iBASEWebrobot网络资源采编发系统。

iBASEDMC数据库管理中心。

扩展资料:

国产最新商业数据库系统:

一、阿里的数据库系统

软件名称:OceanBase&PolarDB

官方称为“完全自主研发的金融级分布式关系数据库”。下面是其官网的介绍:OceanBase对传统的关系数据库进行了开创性的革新。

在普通硬件上实现金融级高可用,在金融行业首创“三地五中心”城市级故障自动无损容灾新标准,同时具备在线水平扩展能力,创造了4200万次/秒处理峰值的纪录(注:当时TPS官宣为256w)。

现在OceanBase的版本已经2x了,OceanBaseTPC-C的评测刷遍了朋友圈,TPS达到了100w(6088wtpmc),榜单第一。

二、腾讯的数据库系统

软件名称:TDSQL

其官网简介:分布式数据库(TencentDistributedSQL,TDSQL)是腾讯打造的一款分布式数据库产品,具备强一致高可用、全球部署架构、分布式水平扩展、高性能、企业级安全等特性。

同时提供智能DBA、自动化运营、监控告警等配套设施,为用户提供完整的分布式数据库解决方案。

目前TDSQL已经为超过500的政企和金融机构提供数据库的公有云及私有云服务,客户覆盖银行、保险、证券、互联网金融、计费、第三方支付、物联网、互联网、政务等领域。TDSQL亦凭借其高质量的产品及服务,获得了多项国际和国家认证,得到了客户及行业的一致认可。

三、华为的数据库系统

软件名称:GaussDB

全球首款AI-Native数据库,内部有100、200、300多个版本,应该是基于PostgreSQL开发的。在国内,可能除了阿里,就到华为的团队了(高斯实验室)。和不少高校建立了合作。

嵌入式软件和非嵌入式软件账务处理之间有很大的区别。嵌入式软件是指将软件程序和数据存储在一个设备中,并且设备的 *** 作系统可以直接访问和控制软件程序。这种软件可以实现账务处理,并且可以实现账务处理的快速和高效的处理。
而非嵌入式软件则是指将软件程序和数据存储在单独的服务器或网络中,并且可以通过网络访问和控制软件程序。这种软件可以实现账务处理,但是处理的速度和效率较低,因为需要通过网络来访问和控制软件程序。

翻字典,看看“嵌入”这个词是什么意思就行了……
不过就是把这个系统,嵌入到另一个设备上的意思,嵌入也就意味着这个系统不是商品,而是被系统嵌入的东西才是最终的商品,这个嵌入式系统只是这个商品设备的一个功能或者一部分。
Linux 系统准确的应该是叫做 GNU/Linux 发行套件,其实就是 Linux 内核 + GNU 项目的软件 + 其他软件组成的 *** 作系统。对于嵌入式来说,他的硬件支持很广泛,而且因为是一大堆软件拼凑整合而成,所以他的灵活性很高。不需要的软件完全可以不用,只保留最需要的东西。而且是开放源代码的,你可以根据需要按照软件的协议进行修改再发布。
和 XP 系统从“系统”上来说,没区别,都是系统。
但你:1、能把 Windows XP 改成只有 1M 大小吗?2、你能让 Windows XP 在 MP3 上运行吗?3、你能让 Windows XP 已纳秒为单位进行快速实时相应处理吗?4、你能让微软给你 Windows XP 源代码,你自己修改来适应你自己焊接出来的硬加吗?
其实 Windows 也有嵌入式版本。而且还是两个,一个叫 WinCE ,一个叫 Windows XP Embedde 。前者支持很多硬件架构,而且体积小功能少。后者就是基于 XP 的官方减肥版。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/13365003.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-22
下一篇 2023-07-22

发表评论

登录后才能评论

评论列表(0条)

保存