实时内核(Core)和实时操作系统(RTOS)有何不同?

大家都知道什么是实时操作系统,但是,大家熟知的实时操作系统,站在更广的角度来看,其实它就是一个实时内核。

一、实时内核和实时操作系统

一个实时内核是管理微处理器(MPU)、微控制器(MCU)或数字信号处理器(DSP)的时间和资源的软件,比如任务调度、信号量、队列等资源,它为应用程序提供了不可或缺的服务。

一个实时操作系统(RTOS)通常包含实时内核和其他高级服务,如文件管理,协议栈,图形用户界面(GUI)和其他组件等,大多数其他服务都围绕I / O设备。

拿µC/OS来说:Micriμm提供了一套完整的RTOS组件,包括嵌入式文件系统,TCP / IP堆栈,图形用户界面,USB设备和主机堆栈等,你只需要选择应用程序所需的组件即可。

同样,RT-Thread操作系统也如此,除了内核之外,还包含丰富的组件,如下图:

从这种角度来划分实时内核和操作系统,我们平时看到的众多RTOS,只算一个内核,报过之前很火的一个“微内核”,也在这个范围之内。

二、实时操作系统RTOS

实时操作系统是保证在一定时间限制内完成特定功能的操作系统。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。我们通常使用的操作系统在经过一定改变之后就可以变成实时操作系统。

随着技术的进步,实时操作系统的定义也随之变化。以前重点描述的是内核及相关资源。,现在重点是内核配套的组件。

就好比:以前写程序会注重考虑资源大小,现在处理器速度更快、资源更多,就会注重考虑代码复用率和维护性。

三、选择和学习RTOS

对于初学者来说,选择市面上使用率较多的RTOS来学习就行了,目前µC/OS、RT-Thread、FreeRTOS算是比较大众一点的RTOS,资源及配套的组件都有很多。

随着µC/OS的免费开源,目前µC/OS、RT-Thread、FreeRTOS都是一个不错的选择。

1.µC/OS使用Apache 2.0开源许可

地址:

https://www.micrium.com/rtos/licensing

2.RT-Thread 遵循 GPL V2 + 开源许可协议

RT-Thread 系统完全开源,3.1.0 及以前的版本遵循 GPL V2 + 开源许可协议。从 3.1.0 以后的版本遵循 Apache License 2.0 开源许可协议,可以免费在商业产品中使用,并且不需要公开私有代码。

地址:

https://www.rt-thread.org/document/site/tutorial/quick-start/introduction/introduction/

3.FreeRTOS使用MIT开源协议

地址:

https://www.freertos.org/a00114.html

怎么说呢,这三个RTOS都是一个不错的选择,现在大家也可以放心的使用了。

具体开源协议代表什么含义,可以参看我的之前分享的内容:开源协议是什么?开源等于免费吗?

免责声明:本文来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。

素材来源:网络

编辑整理:strongerHuang

‧  END  


推荐阅读:

专辑|Linux文章汇总

专辑|程序人生

专辑|C语言

我的知识小密圈

关注公众号,后台回复「1024」获取学习资料网盘链接。

欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~

嵌入式Linux

微信扫描二维码,关注我的公众号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465363.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux java远程调试_idea远程linux代码调试

如果线上代码出现问题,如何用本地idea排查问题查找问题?第一步:保证本地代码与线上代码一致;第二步:在线上tomcat文件中/tomcat/bin/catalina.sh文件中添加如下配置找到下面一行信息#----- Execute The Requested Comm…

[文档]. Xilinx - 编写有效的Testbenches

This application note is written for logic designers who are new to HDL verification flows, and who do not have extensive testbench-writing experience. 下载

mysql inner join where_详解mysql 使用left join添加where条件的问题分析

当前需求:有group和factor两张表,一个group对应多个factor,现在想查询有效的group和对应的有效的factor,两个表都有isDel逻辑删除标志。最开始的错误写法一:SELECT g.*,f.* FROM groups g LEFT JOIN factor f ON f.gro…

误打误撞的模板字符串

前情回顾:之所以用到模板字符串呢,是在这样一个场景中用到一个类似微信发朋友圈时选择图片时的一个场景,如图所示 当时脑抽是怎么想的呢,其实也很简单,当时想的就是新建div嘛,然后append到父容器就ok啦&…

工作的前两天

硬件问题 工作的第一天,我接触是硬件。 公司需要为服务器装入windows server 2003 的系统,可是问题一直在出现。 服务器原先的系统是装过SQL 2000 之后,系统就不能进去,总是提示密码错误。后来决定用ERD光盘破解密码,接…

java类型转换方法_Java中基本数据类型转换的方法

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼一、自动类型转换(隐式类型转换)整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。转换从低级到高级。自动转换有以下规律:小的类型自动转化为大…

鸟哥linux 私房菜

对于任何系统如果我们要加快系统性能,内存的大小很重要,这个影响很大。尤其是对Linux的服务器环境。 CPU就像大脑而内存就像心脏和肚子之类的 一开始我是这么认为的,看完后才知道内存和硬盘也是大脑的一部分,内存就是处理大脑信息…

你知道GNU C 对C语言的扩展吗?

为了方便使用,GNU C在标准C语言的基础上进行了部分方便开发的扩展。这里讲解一些开发中可能会用到的,或者使用频率比较高的内容。零长度数组和变量长度数组GNU C 允许使用零长度数组,比如:char data[0];GNU C 允许使用一个变量定义…

java 反射 内存_Java内存到反射入门

Java内存到反射入门(一)初识Java内存平常我们最常提到的的JAVA分区是这三个分区其中方法区是一个特殊的堆,功能如图上所示。初识反射:框架设计的灵魂反射的功能:将类的各个组成部分封装为对象,并在程序运行的过程中可以调用它们。…

stopping hbasecat: /tmp/hbase-elastic-master.pid: 没有那个文件或目录

stop-hbase.sh 挂了。。。 原因其实也简单,默认情况下hbase的pid文件保存在/tmp目录下,/tmp目录下的文件很容易丢失,不知道为什么他不会自动创建一个非临时目录,大概是因为权限不好控制,需要手动来? 修改为…

工作和在学校最大的区别是什么?

很多人在学校的时候过得很舒服,但是一旦进入工作状态,或者说职场状态的时候,就会表现的不是那么好。或者紧张、或者迷茫,学校和职场是两种不同的环境,需要我们调整下,一下是朱老师的文章,希望对…

莞尔一笑

当ATM机发善心的时候…… 看,连冷冰冰的机器都有善心,可现实中的有些人………… 有一次ATM机取400元吐出4000元,银行呼吁市民还钱。之后银行收到一封信,内容如下: 1、请在我规定的时间到我家来取,时间是早上…

java查询多条_Mybatis查询多条记录并返回List集合的方法

实体对象如下:/**使用lobmok插件*/GetterSetterNoArgsConstructorToStringEqualsAndHashCodepublic class Vendor {private String vend_id;private String vend_name;private String vend_address;private String vend_city;private String vend_state;private String vend_zi…

服务容错模式

0.背景 随着服务框架和服务治理体系的逐步成熟,服务化已成为系统设计的趋势。随着业务复杂度的增加,依赖的服务也逐步增加,出现了不少由于服务调用出现异常问题而导致的重大事故,如: 1)系统依赖的某个服务发…

从大学到结婚,我和小云的这13年

看了龙哥的文章,感触很深,我有好几次想写一篇我和小云的文章,记录下自己和小云这些年一起经历的很多事情,但是每每都停下来去做了觉得更重要的其他事情,这次真的决定要写了。我和小云是大学同学,我们大一认…

PHP realpath() 函数

realpath() 函数返回绝对路径。 该函数删除所有符号连接(比如 /./, /../ 以及多余的 /),返回绝对路径名。 若失败,则返回 false。比如说文件不存在的话。 语法readlink(linkpath) 参数描述linkpath必需。规定要检查的连接路径。说…

xshell如何运行java_利用Xshell往应用服务器上部署项目

1.首先查询中间件的进程Idps -ef|grep ./startapusic2.然后杀掉进程kill -9 16833.再次查询进程,查看是否关闭成功,如果没有/bin目录下的东西了说明关闭成功4.利用ls查看当前路径下的文件5.启动中间件./startapusic6.如果显示地址已在使用,则…

详解Linux内核在arm上的启动过程

Linux内核加载过程通常,Linux内核都是经过gzip加载过之后的映像文件。bootloader复制压缩内核到内存空间。内核自解压。运行内核。编译完成的Linux内核存放在哪里?./vmlinux elf格式未压缩内核。arch/arm/boot/compressed/vmlinux 压缩以后的elf格…

回头再见他

VMWARE的DRS和容灾什么的没关系,,全称是Ditributed Resource Scheduler, 是帮助在ESXserver之间分配物理资源的,同时它还可以用来管理资源,比如你可以把100台ESX物理机的资源做成一个资源池,然后对关键性的应用服务器设…

java 数据库 properties_原生Java读取properties连接数据库

将数据库的驱动、url、用户名、密码等信息以键值对的形式存放在properties文件中,工具类初始化时从配置文件中读取所要连接数据库的信息。当需要更改连接的数据库时,只需要更改配置文件即可,而不必改写工具类的代码。1.在项目中创建一个prope…