国产 *** 作系统:
1、深度Deepin
国产 *** 作系统哪个最好,首推其中的当属“深度deepin”。深度deepin是基于Linux内核的国产系统,是目前众多国产 *** 作系统中相对比较成熟、用户口碑也比较好的系统。
日常使用的话,Deepin已经初步具备了替代windows的可能,例如简单办公、在线看视频、听音乐等,完全没有问题,甚至还能玩一些简单的游戏。2019年,华为开始销售预装有Deepin *** 作系统的笔记本电脑。
2、统一 *** 作系统UOS
统信UOS统一 *** 作系统基于Linux内核研发,支持龙芯、飞腾、兆芯、海光、鲲鹏等芯片平台的笔记本、台式机、一体机和工作站、服务器。现阶段,UOS提供专业版系统、家庭版系统、社区版系统、服务器 *** 作系统。
系统根据国人审美和习惯设计,美观易用,安全可靠,可为各行业领域以及国家相关部门提供成熟的信息化解决方案。2022年4月25日,统信UOS开发者平台正式上线。
3、优麒麟UbuntuKylin
优麒麟是全球开源项目,由麒麟软件有限公司主导开发,致力于设计出“简单轻松、友好易用”的桌面环境。作为中国国产 *** 作系统排名前十,优麒麟自创立以来已经有十年的历史沉淀和技术沉淀,得到了国际社区的认可。
截至2022年,优麒麟已累计发行20个 *** 作系统版本,全球下载量超过3800万次,活跃爱好者和开发者20+万人。
4、红旗Linux
国产 *** 作系统哪个最好:红旗Linux深耕自主化国产 *** 作系统领域二十余年,已具备相对完善的产品体系,并广泛应用于关键领域。
现阶段红旗Linux具备满足用户基本需求的软件生态,支持x86、ARM、MIPS、SW等CPU指令集架构,支持龙芯、申威、鲲鹏、飞腾、海光、兆芯等国产自主CPU品牌,兼容主流厂商的打印机、手写板、扫描q等各种外设。
5、中标麒麟NeoKylin
中标麒麟 *** 作系统采用强化的Linux内核,分成通用版、桌面版、高级版和安全版等,能满足不同客户的要求,已在央企、能源、政府、交通等行业领域广泛使用。
中标麒麟 *** 作系统符合Posix系列标准,兼容浪潮、联想、曙光等公司的服务器硬件产品,兼容达梦、人大金仓数据库、湖南上容数据库、IBMWebsphere、DB2UDB数据、MQ等系统软件。
6、中兴新支点
中兴新支点桌面 *** 作系统,国产电脑 *** 作系统,中央一政府采购和中直机关采购入围品牌。
中兴新支点桌面 *** 作系统基于Linux核心进行研发,不仅能安装在电脑上,还能安装在ATM柜员机、取票机、医疗设备等终端,支持龙芯、兆芯、ARM等国产芯片,可满足日常办公需求。值得一提的是,系统可兼容运行Windows平台的日常办公软件。实用性更强。
7、RT-Thread
这既是一个集实时 *** 作系统(RTOS)内核、中间件组件和开发者社区于一体的技术平台,也是一个组件完整丰富、高度可伸缩、简易开发、超低功耗、高安全性的物联网 *** 作系统,软件生态相对较好。
截至2022年,RT-Thread的累积装机量就已超过14亿台,被广泛应用于车载、医疗、能源、消费电子等多个行业,是国人自主开发、国内最成熟稳定和装机量最大的开源RTOS。
8、银河麒麟
国产 *** 作系统有哪些:银河麒麟是原是在“863计划”和国家核高基科技重大专项支持下,国防科技大学研发的 *** 作系统,之后品牌授权由给天津麒麟,天津麒麟2019年与中标软件合并为“麒麟软件有限公司”。银河麒麟是优麒麟的商业发行版,使用UKUI桌面。
目前已有部分国产笔记本搭载了银河麒麟系统,例如联想昭阳N4720Z笔记本、长城UF712笔记本等。
9、鸿蒙HarmonyOS
华为鸿蒙HarmonyOS系统是面向万物互联的全场景分布式 *** 作系统,支持手机、平板、智能穿戴、智慧屏等多种终端设备运行,提供应用开发、设备开发的一站式服务。
鸿蒙OS也是当下独占鳌头的国产手机 *** 作系统。凭借在互联网产业创新方面发挥的积极作用,鸿蒙OS在2021年世界互联网大会上获得“领先科技成果奖”,为国产 *** 作系统排名榜前十。
10、中科方德桌面 *** 作系统
“中科方德”是最主要的国产 *** 作系统厂商之一,受到国家重视。旗下产品“方德桌面 *** 作系统”,可良好支持台式机、笔记本、一体机及嵌入式设备等形态整机、主流硬件平台和常见外设,截至2022年软件中心已上架运维近2000款优质的国产软件及开源软件。
系统采用了符合现代审美和 *** 作习惯的图形化用户界面设计,易于原Windows用户上手使用。
怎样使用计算机实时作业系统小型多功能计算机都配有实时作业系统即RTOS。这样不但提高了主机的利用率,方便了使用者使用装置,更重要的是它具有对受控装置请求服务时响应时间快的特点。
多使用者同时使用计算机的作业系统多个人同时可以访问,比如Linux系统,多个人可以同时登陆(远端登入),网路上的计算机应该是联网使用者的计算机
什么是非抢先式实时作业系统? 什么是抢先式实时作业系统? 大体说下:一般的作业系统进行时间片轮询,换句话说,一个程式的时间片用光了就得停下来让其他的程式用,直到再次轮到这个程式的时候才能够执行,这种由系统决定中断的方式局势 抢占式 作业系统,反过来,由程式决定自己是否退出的就是 非抢占式的作业系统。
实时 *** 作是另一个概念了,一般的传统Linux并不是实时作业系统。RTOS实时作业系统的单独定义如下:
实时作业系统是保证在一定时间限制内完成特定功能的作业系统。例如,可以为确保生产线上的机器人能获取某个物体而设计一个作业系统。在“硬”实时作业系统中,如果不能在允许时间内完成使物体可达的计算,作业系统将因错误结束。在“软”实时作业系统中,生产线仍然能继续工作,但产品的输出会因产品不能在允许时间内到达而减慢,这使机器人有短暂的不生产现象。一些实时作业系统是为特定的应用设计的,另一些是通用的。
据外媒报道,谷歌在上周推出了物联网作业系统Android Things,后者是谷歌为物联网装置开发的Android分支系统。结合谷歌为物联网装置推出的通讯协议Weave,Android Things将在谷歌物联网战略中发挥重要作用。Android Things是谷歌面向物联网装置市场推出的最新系统,这让物联网市场的竞争进一步升温。目前,微软正在向发烧友和原始装置制造商(OEM)推广其Windows 10 IoT系统。
什么是实时作业系统 实时作业系统,简称RTOS(Real Time Operat-
ing System) UNIX是分时系统,定时器的优先顺序
最高以UNIX为基础,允许对中断处理的优先顺序
做些调整,使系统对外部事件的响应速度保证不大于
某一特定的时间间隔,就构成了实时系统,如Lynx,
OS-9等作业系统如果作业系统能做到不宕机,且
响应速度有保证就可以用于各种控制目的了
用于控制目的时,多工是必要的,而多使用者往
往并不需要,尤其是在嵌人式应用中因此可以将
UNIX多使用者那部分功能去掉,并根据嵌人式应用的
特点,舍弃一部分不必要的功能,以适应嵌人式应用
万方资料
学习园地 327
中要求占用记忆体少的特点,这就是嵌人式多工实时
作业系统在这里," *** 作"二字已经失去了本来的含
义
RTOS的开发工具允许使用者针对不同的应用对
象对RTOS的核心进行裁剪,压缩,以适应各类应
用,并提供应用程式的除错环境
从理论上讲,无论UNIX还是基于UNIX思想
的RTOS,都包含了计算机软体理论最精华的那一部
分从实践上说,它们亦是被无数应用系统证明是完
全成功的
实时系统是指能在确定的时间内执行其功能并
对外部的非同步事件做出响应的计算机系统其 *** 作
的正确性不仅依赖于逻辑设计的正确程度,而且跟这
些 *** 作进行的时间有关"在确定的时间内"是这个
定义的核心也就是说,实时系统是对响应时间有严
格要求的例如,一个视讯播放系统要从CD-ROM
中读取高压缩率的资料,并将其解压缩,送到显示设
备解压缩的工作必须在很短的时间(毫秒级)内完
成,否则会出现画面的不连续假设影象每帧的停留
时间为30ms,那么该系统必须在这段时间内将下一
帧从CD-ROM中读出并完成解压缩30ms就成为
一个时间限制,每次处理均在30ms内就是实时的,
一万次处理有一次处理时间大于30ms也不是好的
实时系统
一个系统具有实时性并不说明该系统的响应和
处理速度非常快;而一个高速系统也未必是实时系
统特定的实时系统有其具体的时限(或速度)要求,
该时限要求对不同系统千差万别高能粒子甄别系
统的甄别处理要求在微秒或纳秒级时间内完成;而实
时资料库查询系统仅要求在使用者键人请求后几秒内
得到查询结果所以设计实时系统之初,应该明确目
标系统的实时要求是秒级的,还是毫秒,微秒级的,避
免盲目追求高速度,造成浪费
实时系统通常分为硬实时和软实时系统前者
意味着存在必须满足的时间限制,而后者意味着偶尔
超过时间限制是可以容忍的
实时作业系统是基于计算机的,是管理计算机硬
件资源并提供人机命令或程式设计介面的系统,它能在固
定的时间内对一个或多个由外设发出的讯号做出适
当的反应与普通(分时)作业系统不同,实时 *** 作系
统强调了系统对外部非同步事件响应时间的确定性,这
已经逐渐接近嵌人式系统的设计思想了
实时作业系统和分时作业系统的另一个重要区
别在于二者的任务排程方式不同
常见的分时排程演算法有时间片轮转排程,优先顺序
排程,多重伫列,最短作业优先,保证排程演算法以及彩
票排程演算法这里不详细描述这些演算法
实时排程演算法主要有三种,比较经典的是事件发
生率单调演算法(Liu和Layland, 1993)该演算法事先
为每个任务分配一个与事件发生频率成正比的优先
级,排程程式总是排程优先顺序最高的就绪任务,必要
时将剥夺当前任务的CPU使用权,让高优先顺序的任
务先执行这种演算法被证明是最优的,也是为大部分
实时核心所采用的排程方式
另一种流行的实时排程演算法是最早截止优先算
法当一个事件发生时,对应的任务被加到就绪伫列
中,该伫列按照截止期限排序,截止期限最短的优先
级最高对周期性事件,截止时间即为事件下次发生
的时间
第三种演算法首先计算各任务的富裕时间,称作裕
度(laxity)如果一个任务需要执行200ms,而它必
须在250ms内完成,则其裕度为50ms该演算法称为
最少裕度法,即选择裕度最少的任务
尽管通过这三种演算法中的任何一个都可以将分
时作业系统转化为实时作业系统,但实际上,由于前
者的任务切换时间太长,实时效能都比较低,所以实
时系统一般都采用专用的实时作业系统这些实时
作业系统的主要特征有:
规模小,
中断被遮蔽的时间很短;
中断处理时间短;
任务切换很快
常见的实时作业系统有VxWorks, VRTX/OS,
pSOS+,RTMX,OS/9和Lynx OS等等
如何定义实时作业系统
对于什么是实时系统,POSIX 1003b 作了这样的定义:指系统能够在限定的响应时间内提供所需水平的服务。而一个由 Donald Gillies 提出的更加为大家接受的定义是:一个实时系统是指计算的正确性不仅取决于程式的逻辑正确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会发生系统出错。
实时系统根据其对于实时性要求的不同,可以分为软实时和硬实时两种型别。硬实时系统指系统要有确保的最坏情况下的服务时间,即对于事件的响应时间的截止期限是无论如何都必须得到满足。比如航天中的宇宙飞船的控制等就是现实中这样的系统。其他的所有有实时特性的系统都可以称之为软实时系统。如果明确地来说,软实时系统就是那些从统计的角度来说,一个任务(在下面的论述中,我们将对任务和程序不作区分)能够得到有确保的处理时间,到达系统的事件也能够在截止期限到来之前得到处理,但违反截止期限并不会带来致命的错误,像实时多媒体系统就是一种软实时系统。
一个计算机系统为了提供对于实时性的支援,它的作业系统必须对于 CPU 和其他资源进行有效的排程和管理。在多工实时系统中,资源的排程和管理更加复杂
去网上下个定时开关机,,实时提醒就 OK;a啦 ```
供多个使用者同时使用计算机的作业系统称为B
作业系统使使用者使用计算机必备的一种什么?作业系统是使用者使用计算机必备的一种软体
嵌入式实时作业系统 嵌入式实时作业系统ucos ii的分析2010年01月06日 星期三 上午 01:15摘要:近年来,在微控制器系统中嵌入作业系统已经成为人们越来越关心的一个话题。本文通过对一种原始码公开的嵌入式实时作业系统ucos ii的分析,以51系列微控制器为例,阐述了在微控制器中使用该嵌入式作业系统的优缺点,以及在应用中应当注意的一些问题。
关键词:实时作业系统;ucos ii;微控制器
引言
早在20世纪60年代,就已经有人开始研究和开发嵌入式作业系统。但直到最近,它才在国内被越来越多的提及,在通讯、电子、自动化等需要实时处理的领域所曰益显现的重要性吸引了人们越来越多的注意力。但是,人们所谈论的往往是一些著名的商业核心,诸如VxWorks、PSOS等。这些商业核心效能优越,但价格昂贵,主要用于16位和32位处理器中,针对国内大部分使用者使用的51系列8位微控制器,可以选择免费的ucos ii。
ucos ii的特点
1.ucos ii是由Labrosse先生编写的一个开放式核心,最主要的特点就是原始码公开。这一点对于使用者来说可谓利弊各半,好处在于,一方面它是免费的,另一方面使用者可以根据自己的需要对它进行修改。缺点在于它缺乏必要的支援,没有功能强大的软体包,使用者通常需要自己编写驱动程式,特别是如果使用者使用的是不太常用的微控制器,还必须自己编写移植程式。
2.ucos ii是一个占先式的核心,即已经准备就绪的高优先顺序任务可以剥夺正在执行的低优先顺序任务的CPU使用权。这个特点使得它的实时性比非占先式的核心要好。通常我们都是在中断服务程式中使高优先顺序任务进入就绪态(例如发讯号),这样退出中断服务程式后,将进行任务切换,高优先顺序任务将被执行。拿51微控制器为例,比较一下就可以发现这样做的好处。假如需要用中断方式采集一批资料并进行处理,在传统的程式设计方法中不能在中断服务程式中进行复杂的资料处理,因为这会使得关中断时间过长。所以经常采用的方法是置一标志位,然后退出中断。由于主程式是回圈执行的,所以它总有机会检测到这一标志并转到资料处理程式中去。但是因为无法确定发生中断时程式到底执行到了什么地方,也就无法判断要经过多长时间资料处理程式才会执行,中断响应时间无法确定,系统的实时性不强。如果使用μC/OS-II的话,只要把资料处理程式的优先顺序设定得高一些,并在中断服务程式中使它进入就绪态,中断结束后资料处理程式就会被立即执行。这样可以把中断响应时间限制在一定的范围内。对于一些对中断响应时间有严格要求的系统,这是必不可少的。但应该指出的是如果资料处理程式简单,这样做就未必合适。因为ucos ii要求在中断服务程式末尾使用OSINTEXIT函式以判断是否进行任务切换,这需要花费一定的时间。
3.ucos ii和大家所熟知的Linux等分时作业系统不同,它不支援时间片轮转法。ucos ii是一个基于优先顺序的实时作业系统,每个任务的优先顺序必须不同,分析它的原始码会发现,ucos ii把任务的优先顺序当做任务的标识来使用,如果优先顺序相同,任务将无法区分。进入就绪态的优先顺序最高的任务首先得到CPU的使用权,只有等它交出CPU的使用权后,其他任务才可以被执行。所以它只能说是多工,不能说是多程序,至少不是我们所熟悉的那种多程序。显而易见,如果只考虑实时性,它当然比分时系统好,它可以保证重要任务总是优先占有CPU。但是在系统中,重要任务毕竟是有限的,这就使得划分其他任务的优先权变成了一个让人费神的问题。另外,有些任务交替执行反而对使用者更有利。例如,用微控制器控制两小块显示屏时,无论是程式设计者还是使用者肯定希望它们同时工作,而不是显示完一块显示屏的资讯以后再显示另一块显示屏的资讯。这时候,要是ucos ii即支援优先顺序法又支援时间片轮转法就更合适了。
4.ucos ii对共享资源提供了保护机制。正如上文所提到的,ucos ii是一个支援多工的作业系统。一个完整的程式可以划分成几个任务,不同的任务执行不同的功能。这样,一个任务就相当于模组化设计中的一个子模组。在任务中新增程式码时,只要不是共享资源就不必担心互相之间有影响。而对于共享资源(比如串列埠),ucos ii也提供了很好的解决办法。一般情况下使用的是讯号量的方法。简单地说,先建立一个讯号量并对它进行初始化。当一个任务需要使用一个共享资源时,它必须先申请得到这个讯号量,而一旦得到了此讯号量,那就只有等使用完了该资源,讯号量才会被释放。在这个过程中即使有优先权更高的任务进入了就绪态,因为无法得到此讯号量,也不能使用该资源。这个特点的好处显而易见,例如当显示屏正在显示资讯的时候,外部产生了一个中断,而在中断服务程式中需要显示屏显示其他资讯。这样,退出中断服务程式后,原有的资讯就可能被破坏了。而在μC/OS-II中采用讯号量的方法时,只有显示屏把原有资讯显示完毕后才可以显示新资讯,从而可以避免这个现象。不过,采用这种方法是以牺牲系统的实时性为代价的。如果显示原有资讯需要耗费大量时间,系统只好等待。从结果上看,等于延长了中断响应时间,这对于未显示资讯是报警资讯的情况,无疑是致命的。发生这种情况,在μC/OS-II中称为优先顺序反转,就是高优先顺序任务必须等待低优先顺序任务的完成。在上述情况下,在两个任务之间发生优先顺序反转是无法避免的。所以在使用ucos ii时,必须对所开发的系统了解清楚,才能决定对于某种共享资源是否使用讯号量。
ucos ii在微控制器使用中的一些特点
1.在微控制器系统中嵌入ucos ii将增强系统的可靠性,并使得除错程式变得简单。以往传统的微控制器开发工作中经常遇到程式跑飞或是陷入死回圈。可以用看门狗解决程式跑飞问题,而对于后一种情况,尤其是其中牵扯到复杂数学计算的话,只有设定断点,耗费大量时间来慢慢分析。如果在系统中嵌入 ucos ii的话,事情就简单多了。可以把整个程式分成许多工,每个任务相对独立,然后在每个任务中设定超时函式,时间用完以后,任务必须交出 CPU的使用权。即使一个任务发生问题,也不会影响其他任务的执行。这样既提高了系统的可靠性,同时也使得除错程式变得容易。
2.在微控制器系统中嵌入ucos ii将增加系统的开销。现在所使用的51微控制器,一般是指87C51或者89C51,其片内都带有一定的RAM和 ROM。对于一些简单的程式,如果采用传统的程式设计方法,已经不需要外扩储存器了。如果在其中嵌入ucos ii的话,在只需要使用任务排程、任务切换、讯号量处理、延时或超时服务的情况下,也不需要外扩ROM了,但是外扩RAM是必须的。由于ucos ii是可裁减的作业系统,其所需要的RAM大小就取决于作业系统功能的多少。举例来说,μC/OS-II允许使用者定义最大任务数。由于每建立一个任务,都要产生一个与之相对应的资料结构TCB,该资料结构要占用很大一部分记忆体空间。所以在定义最大任务数时,一定要考虑实际情况的需要。如果定得过大,势必会造成不必要的浪费。嵌入ucos ii以后,总的RAM需求可以由如下表达式得出:
RAM总需求=应用程式的RAM需求+核心资料区的RAM需求+(任务栈需求+最大中断巢状栈需求)·任务数
所幸的是,μC/OS-II可以对每个任务分别定义堆叠空间的大小,开发人员可根据任务的实际需求来进行栈空间的分配。但在RAM容量有限的情况下,还是应该注意一下对大型阵列、资料结构和函式的使用,别忘了,函式的形参也是要推入堆叠的。
3.ucos ii的移植也是一件需要值得注意的工作。如果没有现成的移植例项的话,就必须自己来编写移植程式码。虽然只需要改动两个档案,但仍需要对相应的微处理器比较熟悉才行,最好参照已有的移植例项。另外,即使有移植例项,在程式设计前最好也要阅读一下,因为里面牵扯到堆叠 *** 作。在编写中断服务程式时,把暂存器推入堆叠的顺序必须与移植程式码中的顺序相对应。
4.和其他一些著名的嵌入式作业系统不同,ucos ii在微控制器系统中的启动过程比较简单,不像有些作业系统那样,需要把核心编译成一个映像档案写入ROM中,上电覆位后,再从ROM中把档案载入到RAM中去,然后再执行应用程式。ucos ii的核心是和应用程式放在一起编译成一个档案的,使用者只需要把这个档案转换成HEX格式,写入ROM中就可以了,上电后,会像普通的微控制器程式一样执行。
结语
由以上介绍可以看出,ucos ii具有免费、使用简单、可靠性高、实时性好等优点,但也有移植困难、缺乏必要的技术支援等缺点,尤其不像商用嵌入式系统那样得到广泛使用和持续的研究更新。但开放性又使得开发人员可以自行裁减和新增所需的功能,在许多应用领域发挥着独特的作用。当然,是否在微控制器系统中嵌入ucos ii应视所开发的专案而定,对于一些简单的、低成本的专案来说,就没必要使用嵌入式作业系统了。
微控制器和处理器
微控制器 - 微控制器英文写法是 Microcontroller Unit,简写为MCU。微控制器是将计算机运行所需要的一些资源(如ROM、RAM、I/O、定时器、ADC、DAC等)集成到了一个芯片上,可称之为单片微型计算机(Single Chip Microcomputer),俗称为单片机。因软件存放在微控制器的存储器中,与硬件紧密配合使用,又称之为嵌入式微控制器(Embedded Microcontroller Unit,EMCU)。
处理器 - 处理器又称为中央处理器(CPU,Central Processing Unit),处理器一般需要依赖外部的硬盘或存储介质进行运行,系统资源丰富、复杂。是计算机、电脑、平板和手机等的核心
根据处理性能的不同,运行的 *** 作系统也有所不同。微控制器多运行实时 *** 作系统(RTOS),对任务时间性要求比较高。处理器多运行Windows、Linux、Android、iOS等 *** 作系统,对任务处理能力要求比较高。
物联网 *** 作系统的特点
一般地,对实时性控制要求比较高的应用MCU用不到RTOS,如电机控制等。而随着物连接到网络的发展,对通信协议有了新的需求,RTOS就可以比较好地对通信进行管理。物联网 *** 作系统没有严格的定义,可以将物联网 *** 作系统特性,简单地概况如下:
连接 - 互联互通、互 *** 作性
安全 - 设备安全、通信安全、数据安全
能效 - 设备能耗管理
通信 - 支持通信协议,如低功耗蓝牙、以太网、Thread、 Wi-Fi、Zigbee、6LoWPAN、LPWAN(LoRa、NB-IoT…)等等
标准 - 开放标准,开放的标准有利于设备的互联互通
微控制器 *** 作系统
ARM mbed OS - ARM公司专为物联网 (IoT) 中的“物体”设计的开源嵌入式 *** 作系统,主要支持ARM Cortex-M微控制器
FreeRTOS - 非常流行的嵌入式 *** 作系统,支持多种微控制器
Contiki OS - Contiki是一个开源的物联网 *** 作系统。 Contiki将小型低成本、低功耗微控制器连接到互联网。Contiki是构建复杂无线系统的强大工具箱。
LiteOS - 类UNIX *** 作系统,多用于无线传感网络
RIOT - 物联网友好的 *** 作系统。RIOT实现了所有物联网相关的开放标准,支持连接、安全、耐用和隐私。
TinyOS - 适用于低功耗无线设备,用于无线传感器网络
Huawei LiteOS - 华为公司的 *** 作系统。Huawei LiteOS是轻量级的开源物联网 *** 作系统、智能硬件使能平台,可广泛应用于智能家居、穿戴式、车联网、制造业等领域,使物联网终端开发更简单、互联更加容易、业务更加智能、体验更加顺畅、数据更加安全。
μTenux - 基于ARM Cortex M0-M4的开源物联网嵌入式 *** 作系统。内核源于T-kernel。
RT-Thread - 中国的开源嵌入式实时 *** 作系统
ChibiOS/RT - 提供了一个嵌入式应用的完整开发环境(RTOS、HAL、外设驱动、支持文件和工具)
Micrium uCOS - 免费商业化应用需授权,2016年为Slicon Labs收购
Unison - Unison RTOS是面向IoT和M2M通信嵌入式应用的实时 *** 作系统
Zephyr - Zephyr项目是一个可扩展的实时 *** 作系统(RTOS),支持多种硬件架构,针对资源有限的设备进行了优化,并以安全性为基础构建。由Linux基金会托管。
eCos - eCos是面向嵌入式应用的免费开源实时 *** 作系统。高度可配置性使得eCos能够根据精确的应用需求进行定制,提供最佳的运行时性能和优化的硬件资源占用。
TI-RTOS Kernel - TI公司的RTOS
NXP MQX - NXP(原Freescale公司)的RTOS
处理器 *** 作系统
Android Things, Google物联网 *** 作系统
Windows 10 IoT,微软物联网 *** 作系统
SylixOS,是一款嵌入式硬实时 *** 作系统
还有更多的 *** 作系统,在此不一一列出。
1.嵌入式Linux
嵌入式Linux(EmbeddedLinux)是标准Linux经过小型化裁剪处理之后的专用Linux *** 作系统,能够固化于容量只有几KB或者几MB的存储器芯片或者单片机中,适合于特定嵌入式应用场合。目前已经开发成功的嵌入式系统中,大约一半的系统使用嵌入式Linux。
这与它的父辈—Linux自身的优良特性是分不开的。
首先,Linux系统具有鲜明的层次结构且内核完全开放。Linux由很多体积小且性能高的微内核和系统组成。在内核代码完全开放的前提下,不同领域和不同层次的用户可以根据自己的应用需要很容易地对内核进行裁剪,在低成本的前提下,设计和开发出真正满足自己需要的嵌入式系统。
其次,Linux具有强大的网络支持功能。Linux诞生于因特网并具有UNIX的特性,这就保证了它支持所有标准因特网协议,并且可以利用Linux的网络协议栈开发出嵌入式TCP/IP网络协议栈。
再次,Linux具备一套完整的工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,并且可以跨越嵌入式系统开发中仿真工具的障碍。一般,嵌入式 *** 作系统的程序调试和跟踪都是使用仿真器来实现的,而使用Linux系统做原型的时候就可以绕过这个障碍,直接使用内核调试器来进行 *** 作系统的内核调试。
最后,Linux具有广泛的硬件支持特性。无论是RISC还是CISC,无论是32位还是64位处理器,Linux都能在其上运行。Linux最通常使用的微处理器是IntelX86芯片家族,但它也能运行于嵌入式处理器上,这意味着嵌入式Linux将具有更广泛的应用前景。
嵌入式Linux同Linux一样,具有低成本、多种硬件平台支持、优异的性能和良好的网络支持等优点。另外,为了更好地适合嵌入式领域的开发,嵌入式Linux还在Linux基础上做了部分改进,如将其内核结构由整体式结构改为微内核结构,并且还提高了系统的实时性。
嵌入式Linux同Linux一样,也有众多的版本,不同的版本针对不同的需要在内核等方面加入了特定的机制。
目前,朱有鹏老师提供了有关Linux最全面深入系统性的教学课程,可以搜索朱有鹏物联网大讲堂,官网观看免费视频。
2.VxWorks
VxWorks *** 作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时 *** 作系统(RTOS),VxWorks具有以下优点。
·实时性好。其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,使得它们产生的延迟很短。另外VxWorks提供的多任务机制中对任务的控制采用优先级抢占和轮转调度机制,充分保证了可靠的实时性。
·可靠性高,从而保证了用户工作环境的稳定。
·集成开发环境完备、强大,方便了用户的使用。
但是,由于VxWorks源码不公开,它部分功能的更新(如网络功能模块)滞后。VxWorks的开发和使用都需要交高额的专利费,这就大大增加了用户开发的成本。
3.QNX
QNX由加拿大QNX软件系统有限公司开发,广泛应用于自动化、控制、机器人科学、电信、数据通信、航空航天、计算机网络系统、医疗仪器设备、交通运输、安全防卫系统、POS机、零售机等任务关键型应用领域。
QNX独特的微内核和消息传递结构使其运行和开发时非常方便。QNX具有非常好的伸缩性,用户可以把应用程序代码和QNX内核直接编译在一起,使之为简单的嵌入式应用生成单一的映像。
4.WindowsCE(推荐课程:WindowsCE系统定制与驱动开发培训班)
WindowsCE是微软公司开发的一个开放的、可升级的32位嵌入式 *** 作系统,是基于掌上型电脑类的电子设备 *** 作系统。WindowsCE的图形用户界面相当出色,WindowsCE具有模块化、结构化、基于Win32应用程序接口以及与处理器无关等特点。
WindowsCE继承了传统的Windows图形界面,用户在WindowsCE平台上可以使用Windows95/98上的编程工具(如VisualBasic、VisualC等),使用同样的函数,使用同样的界面风格,Windows上的绝大多数应用软件只需简单修改和移植就可以在WindowsCE平台上继续使用。但是WindowsCE开发平台较为昂贵,在一定程度上限制了其发展。
5.PalmOS
PalmOS在PDA领域有着很大的用户群,一度占领PDA *** 作系统90%以上市场份额。PlamOS最明显的特点是精简,它的内核只有几千个字节,同时用户也可以方便地开发、定制,具有较强的可 *** 作性。
6.C/OS
源代码公开,代码结构清晰、明了,注释详尽,组织有条理,可移植性好,可裁剪,系统短小精悍,是研究和学习实时 *** 作系统的首选,但在工程应用领域使用较少。
物联网应用工程师的人才群体,主体应该包括IT和OT工程师。
从事方向大概有:智慧交通、环境保护、政府工作、公共安全、平安家居、智能消防、工业监测、环境监测、老人护理、个人健康、花卉栽培、水系监测、食品溯源、敌情侦查和情报搜集等多个领域而具体
工作岗位有:硬件设计师、嵌入式固件开发人员、无线通讯专家 、后端开发人员 、前端开发人员 、应用开发人员 、自动化与系统集成工程师 、数据科学家等。
硬件设计师:大多数物联网项目都涉及某种形式的定制硬件设计。硬件的复杂度因项目而异。在某些情况下,使用硬件模块和参考设计,基础知识和电气工程知识就足够了。而有些更复杂的项目则需要更多的经验和专业知识。常见的技术有印刷电路板(PCB)设计、无线电频率与天线设计、时钟,信号路由相关的经验、低功耗设计和功耗优化等
嵌入式固件开发人员:让硬件发挥作用,你就需要嵌入式开发人员。他们是从事最底层、最接近裸机硬件的软件开发人员。这样的软件称为固件(介于软件和硬件之间的固件)。一般这些开发人员的背景结合了电气工程、计算机体系结构和软件开发。嵌入式开发人员的工作需要与最终硬件的原型版本打交道,因此通常他们的办公桌看起来都很凌乱。 常见的技术有编程语言(C、汇编语言、C++)、实时 *** 作系统(RTOS)经验(FreeRTOS、Contiki、Zephyr)、嵌入式Linux、源代码版本控制、物理和信息安全等
无线通讯专家:大多数物联网项目都是无线的,但无线技术都很难,因为无线集物理与软件的双重复杂度于一身。通常无线通信专家都来自无线通信、网络协议和软件开发。对于大型物联网系统来说,拥有无线通信的专长才能适当地确定网络与通信模式。而消费级物联网系统则需要无线通信专长来确保通过蓝牙顺利地将设备连接到用户的智能手机。 常见的技术有网络模拟、无线网格网络、对无线传播技术的掌握、对功耗的掌握、协议(TCP/IP、IPv4、IPv6、RPL、TLS、WiFi、蓝牙、6lowpan、ZigBee、LoRA、MQTT、CoAP)
后端开发人员:在物联网系统中,后端需要处理数据库和应用程序逻辑。通常,后端都部署在云主机中,并负责存储来自物联网设备的数据、对用户进行身份验证、为前端以及与其他系统的集成提供API。 常见的技术有编程语言(JavaScript、Go、Python、Ruby)、数据库(MySQL、MongoDB、Redis)、开发运维经验、云平台(亚马逊的AWS、Heroku、微软的Azure)
前端开发人员:大多数物联网项目都有网页形式的前端。用户可以通过这类网页与系统交互。因此,这些网页需要做到易于使用、安全、可在最常见的Web浏览器中运行并保持最新状态。这些前端是用HTML开发的,而且通常都会采用某些现有的JavaScript前端框架。前端开发人员需要通过大量输出到网页上的文本来创建视觉体验。 常见的技术有UI/UX设计、用户访谈与人机交互的经验、HTML、CSS、Javascript、Web开发框架(Vuejs、React、Bootstrap)
应用开发人员:许多面向用户的物联网项目都需要使用移动应用作为用户界面。随着项目的推进,移动应用体验的重要性越来越突出。通常,我们需要开发和维护两个版本:iOS和Android。有时也可以开发混合原生应用(通常用HTML开发)。大多数应用开发人员都清楚原生与混合框架的优缺点。 常见的技术有Android、iOS开发原生/混合框架(Phonegap/Cordova、Ionic、Angular、React、Vue)、编程语言(Java、Swift、Objective C、JavaScript)
自动化与系统集成工程师:许多物联网项目都需要与现有软件集成。软件集成是一项经常被低估的任务,我们常常需要花费大量精力,运用一套特定的技术才能取得成功。此外,一旦软件集成开始,你就必须确保集成保持正常运行。这时我们就需要采用自动测试。系统集成和自动化工程师需要拥有大量实践经验和勇气,因为这是一项艰巨的工作。 常见的技术有自动测试框架(Jenkins、Mocha、Travis)、REST API、编程语言(Javascript、Java、Python、Bash)
数据科学家:物联网项目都需要围绕数据展开,而且你需要充分利用这些数据。在项目的早期阶段,这部分的工作可能很简单,只需将关键绩效指标放入Excel工作表中进行比较即可。但是随着项目的发展,你需要针对数据展开更深入的分析。这时就需要数据科学家的帮忙。数据科学家可以通过复杂的数据,寻找模式以及可付诸行动的信息,而这才是数据的最终价值。 常见的技术有统计、人工智能、机器学习、数据挖掘、编程语言(Matlab、R、Python)
这有两层意思:第一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;第二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信。因此,物联网的定义是通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网相连接,进行信息交换和通信,以实现对物品的智能化识别、定位、跟踪、监控和管理的一种网络。物联网与互联网的不同在于,互联网关注的是“人与人”之间的信息交换和共享,而物联网则进一步扩展,实现“物与物”、“人与物”之间的信息交换和共享。物联网大致可分为终端应用层、网络层(进一步分为网络接入层和核心层)、设备管理层、后台应用层等四个层次。其中最能体现物联网特征的,就是物联网的终端应用层。终端应用层由各种各样的传感器、协议转换网关、通信网关、智能终端、刷卡机(POS机)、智能卡等终端设备组成。这些终端大部分都是具备计算能力的微型计算机。物联网 *** 作系统,就是运行在这些终端上,对终端进行控制和管理,并提供统一编程接口的 *** 作系统软件。
与传统的个人计算机或个人智能终端(智能手机、平板电脑等)上的 *** 作系统不同,物联网 *** 作系统有其独特的特征。这些特征是为了更好的服务物联网应用而存在的,运行物联网 *** 作系统的终端设备,能够与物联网的其它层次结合的更加紧密,数据共享更加顺畅,能够大大提升物联网的生产效率。
系统作用
除具备传统 *** 作系统的设备资源管理功能外,物联网 *** 作系统还具备下列功能:
屏蔽物联网碎片化的特征,提供统一的编程接口:所谓碎片化,指的是硬件设备配置多种多样,不同的应用领域差异很大。从小到只有几K内存的低端单片机,到有数百M内存的高端智能设备。传统的 *** 作系统无法适应这种“广谱”的硬件环境,而如果采用多个 *** 作系统(比如低端配置,采用嵌入式 *** 作系统,高端配置设备,采用Linux等通用 *** 作系统),则由于架构的差异,无法提供统一的编程接口和编程环境。正是这种“碎片化”的特征,牵制了物联网的发展和壮大。物联网 *** 作系统则充分考虑这些碎片化的硬件需求,通过合理的架构设计,使得 *** 作系统本身具备很强的伸缩性,很容易的应用到这些硬件上。同时,通过统一的抽象和建模,对不同的底层硬件和功能部件进行抽象,抽象出一个一个的“通用模型”,对上层提供统一的编程接口,屏蔽物理硬件的差异。这样达到的一种效果就是, 同一个APP,可以运行在多种不同的硬件平台上,只要这些硬件平台运行物联网 *** 作系统即可。这与智能手机的效果是一样的,同一款APP,比如微信,既可以运行在一个厂商的低端智能手机上,又可以运行在硬件配置完全不同的另一个厂商的高端手机上,只要这些手机都安装了Android *** 作系统。显然,这样一种独立于硬件的能力,是支撑物联网良好生态环境形成的基础。
物联网生态环境培育:拉通物联网产业的上下游,培育物联网硬件开发、物联网系统软件开发、物联网应用软件开发、物联网业务运营、网络运营、物联网数据挖掘等分离的商业生态环境,为物联网的大发展建立基础。类似于智能终端 *** 作系统(iOS、Andriod等)对移动互联网的生态环境培育作用;
降低物联网应用开发的成本和时间:物联网 *** 作系统是一个公共的业务开发平台,具备丰富完备的物联网基础功能组件和应用开发环境,可大大降低物联网应用的开发时间和开发成本;提升数据共享能力:统一的物联网 *** 作系统具备一致的数据存储和数据访问方式,为不同行业之间的数据共享提供了可能。物联网 *** 作系统可打破行业壁垒,增强不同行业之间的数据共享能力,甚至可以提供“行业服务之上”的服务,比如数据挖掘等;
为物联网统一管理奠定基础:采用统一的远程控制和远程管理接口,即使行业应用不同,也可采用相同的管理软件对物联网进行统一管理,大大提升物联网的可管理性和可维护性,甚至可以做到整个物联网的统一管理和维护。
体系架构
一般来说,物联网 *** 作系统由内核、通信支持(WiFi/蓝牙、2/3/4G等通信支持、NFC、RS232/PLC支持等)、外围组件(文件系统、GUI、Java虚拟机、XML文件解析器等)、集成开发环境等组成,基于此,可衍生出一系列面向行业的特定应用,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)