无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 17136|回复: 139
打印 上一主题 下一主题

收集微内核操作系统的资料

    [复制链接]
跳转到指定楼层
1#
发表于 2019-11-29 10:41:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2019 年很热闹。首先,外部世界很热闹,华为宣称自研微内核的操作系统——鸿蒙,并“开源”。我个人的内心也很热闹,即,碰巧对 Linux 内核产生了不信任(此处谈及“不信任”,应该朝着“严重”的方向去理解)。但不幸的是,这两个热闹是两张皮,扯不到一块来。说明白点:Linux 不值得信任,鸿蒙亦然,即,鸿蒙并不能填补由 Linux 的失信所造成的信任真空。此处不谈 Linux 为何不值得信任,若要了解我的想法,请在我的其他帖子中搜索来龙去脉。

好了,对鸿蒙的不信任,是源于对鸿蒙的预判。虽然鸿蒙宣称“开源”,但经过仔细分析,我发现这个“开源”是“靠不住”的。说明白点,鸿蒙对公众开源的可能性很低(您理解为“不可能”也行,因为世上没有绝对的不可能,都是相对的,所以,“不可能”也就粗略地等同于“可能性很低”)。像谷歌安卓那样的“半开源”,我都不认可它的“开源”属性,更何况其他一些所谓“开源”模式甚至都只能给“合作伙伴”共享,普通人根本就不能获得源代码。在我看来,“让读不让改”都不算“开源”,更何况连“读”都不给,这要是能算是“开源”的话,那也太侮辱“开源”这个概念了吧?至于说我为何“预判”鸿蒙的开源“靠不住”,我也不想解释。预判是我作出的,我解释给别人,也不一定能说服谁。有兴趣者,可以研究我最近的一些帖子。再者,那些“贸易战”以及“谁打压谁”,似乎与我的关系比较遥远,就顾不上了,不予涉及。

言归正传。本帖所说的“开源”,是指对公众开源,公众可以免费获得源代码,并且也能够自由地、不受约束地修改源代码。此处“不受约束”,是指在遵守“对修改后的源码进行开源”的前提下,不受其他约束(比如还得给某公司上税,或者还得经某公司同意,等等,五花八门)。其他那些五花八门的开源,都是“受限”开源(有时也说成“假开源”)。“受限开源”的实际例子有很多,此处不列举。不同的开源协议,保护的是不同人群的利益。“受限”开源,虽然广义上也算是开源,但在接下来的讨论中不把它当作“开源”来对待——不管它算不算开源,它没保护我的利益,我对它不感兴趣。

好的,Linux 失信,鸿蒙无信。生活还得继续。所以,要寻找其他操作系统了。

从哪一类 OS 开始找起呢?就从“微内核”的 OS 入手吧。

以上是“开宗明义”,作为“开场白”。
2#
 楼主| 发表于 2019-11-29 11:19:58 | 只看该作者
先看看 minix3:

http://www.minix3.org/

优点是比较成熟,与 NetBSD 的应用程序兼容。


缺点是 CPU 目前只支持 x86 和 ARM,而且都是 32 位的,不支持 64 位。开发也近乎停止了。
回复

使用道具 举报

3#
发表于 2019-11-29 11:36:01 | 只看该作者
是否可以简单理解为,“开源”指gpl,或者gpl兼容的其他协议(如lgpl,bsd,apache等)的开源?
回复

使用道具 举报

4#
 楼主| 发表于 2019-11-29 12:02:11 | 只看该作者
2013olly 发表于 2019-11-29 11:36
是否可以简单理解为,“开源”指gpl,或者gpl兼容的其他协议(如lgpl,bsd,apache等)的开源?

olly 大人您好。个人浅见,任何概念,都不能精确定义。人类所理解的概念,都是模糊的。用“稀里糊涂”的概念去解释另一个“稀里糊涂”的概念,这大概就叫做定义。

所以,概念的理解会不同。比如说,有广义和狭义之分。广义上能叫做“开源”的,狭义上就不一定能叫做“开源”了。而什么是“广义”、什么是“狭义”,这又是模糊的,不同的人有不同的理解。

总之,模糊的定义是可以的。精确、严密的定义是没有的。甚至就连“精确”、“严密”的概念本身,都是模糊的、不严密的,以及没法定义的。“说”者是“稀里糊涂”地“说”,“听”者是“稀里糊涂”地“听”。论坛上的争论、交流,都是如此。
回复

使用道具 举报

5#
发表于 2019-11-29 12:51:49 | 只看该作者
卡巴斯基有一个防火墙设备用的定制os,看规格比较强
回复

使用道具 举报

6#
发表于 2019-11-29 12:59:27 | 只看该作者
為何不点大師對linux內核不信任呢?

那大師的x86是用什麼操作系統?
我是用linux的。
Bsd / Linux / Windows / MacOS「黑蘋果」 還有什麼選擇?
回复

使用道具 举报

7#
发表于 2019-11-29 13:10:31 | 只看该作者
不点 发表于 2019-11-29 12:02
olly 大人您好。个人浅见,任何概念,都不能精确定义。人类所理解的概念,都是模糊的。用“稀里糊涂”的 ...

额,我不是什么大人的,我现在连开发都基本没做过,只能仰望开源软件的开发人员的说...
回复

使用道具 举报

8#
发表于 2019-11-29 13:27:28 | 只看该作者
只能支持 确实没有这个方面的研究 纯支持
回复

使用道具 举报

9#
发表于 2019-11-29 15:57:53 | 只看该作者
楼主是想自己开发微内核系统
回复

使用道具 举报

10#
 楼主| 发表于 2019-11-29 17:35:26 | 只看该作者
ster1357A 发表于 2019-11-29 15:57
楼主是想自己开发微内核系统

谢谢朋友来捧场。不瞒您说,咱也是个外行,没能力开发内核,其实连看懂都难。只不过想看看别人开发的操作系统,看看热闹罢了。至于说开发,就让那些年轻、有朝气、有能力的人去开发吧。
回复

使用道具 举报

11#
 楼主| 发表于 2019-11-29 17:49:36 | 只看该作者
hkkitlee 发表于 2019-11-29 12:59
為何不点大師對linux內核不信任呢?

那大師的x86是用什麼操作系統?

感谢您的抬举;感谢您关注话题。

简单说,我发现 Linux 的宏内核里面,塞入了很多可疑代码。对 Linux 的维护者产生了不信任。抱歉,这里不深入谈论这个问题,如果实在感兴趣,您可以找以往的帖子。

另一个问题很容易回答。虽然不信任 Linux,但目前没有替代品,没有太多的选择余地,只好继续使用 Linux。这个问题与 Windows 的情况也可以进行类比:虽然不信任 Windows,但目前没有过多的替代品可以选择,于是有时候不得不继续使用 Windows。
回复

使用道具 举报

12#
发表于 2019-11-29 21:14:17 | 只看该作者
呃,尛内核么。。。

除了minix,还有一个开发了三十年,号称软件工程的最佳反例---GNU的 hurd 啊 !

hurd现在的版本氏0.9了,也不知再过十年,能否发布能用于生产系统的可靠1.0版本的hurd尛内核。。。

其实物联网时代,会给不少新系统内核机会的。
因为既不同于服务噐与PC领域,也不同于手板系统,物联网氏个新领域,也没多少终端用户依赖性。

同样,不只氏软件,硬件领域也能在物联网时代搞搞百花齐放,百家争鸣。。。

回复

使用道具 举报

13#
发表于 2019-11-29 21:30:56 | 只看该作者
本帖最后由 wintoflash 于 2019-11-29 21:35 编辑

https://github.com/HelenOS/helenos我第一次见到这玩意是在7,8年前,没想到现在还活着,还支持x86_64和IA64了。。。
回复

使用道具 举报

14#
 楼主| 发表于 2019-11-29 21:52:36 | 只看该作者
好的,再来看看 GNU Hurd:

https://www.gnu.org/software/hurd/

维基百科上说,它支持 IA32 和 i686,也就等于说,不支持 64 位。当然,也不支持 ARM 等其它架构。最新的发布是 2016 年,也处于停顿状态,缺乏吸引力。

另一个叫做 Debian/GNU Hurd 的发行版:

https://www.debian.org/ports/hurd/

同样也只支持 i686,不支持 64 位。像这样的情况,感觉是缺少人手,缺乏活力。


回复

使用道具 举报

15#
发表于 2019-11-29 22:50:51 | 只看该作者
应是最佳范例吧。

确实氏‘反例’,而不氏范例!
因为hurd开发了三十年,仍然不够成熟,至今不敢用于生产环境,所以至今版本号只氏0.9而已。。。

主要原因氏 RMS 的内核设计要求目标太高,实现太困难。所以三十年的开发期间多次变动,重新开发。

hurd的开发当然缺人,但不氏缺普通程序员,而氏缺超一流水准的开源程序员。
除非接下来十年内,hurd内核开发领域出现几个超级软件天才,才有可能将hurd搞成功。。。

支持32位和64位不氏关键问题,如果某个尛内核设计得非常好,原则上氏很容易移植到64位,甚至128位的cpu上面去运行的。。。

问题在于,优异的性能,良好的架构,平台移植性、维护性、扩展性,等等各方面,要解决的问题太多。
如果 minux 和 hurd 或 其他内核如果解决不了这些问题,那么在广阔的物联网领域仍然没戏。。。





回复

使用道具 举报

16#
发表于 2019-11-29 23:00:13 | 只看该作者
win2flash老大提的那个helenOS也氏一个尛内核,看它的github页面,有它的特别之处吧。。。
也不知道它能否在物联网领域找到自己的生存空间。。。
回复

使用道具 举报

17#
发表于 2019-11-30 14:20:52 | 只看该作者
cckp 发表于 2019-11-30 13:35
http://kolibrios.org
19 nov 2019

kolibrios是宏内核的吧
回复

使用道具 举报

18#
 楼主| 发表于 2019-12-1 00:23:08 | 只看该作者
HelenOS 支持的 CPU 较多:x86 的 32 位 和 64 位都支持。ARM 和 PowerPC 只支持 32 位。还支持 MIPS、SPARC。好像有人能让 HelenOS 支持 RISC-V,但官方还未支持 RISC-V。

HelenOS 不是 Unix 类的操作系统。因此,应用软件生态的建立,可能是个问题。
回复

使用道具 举报

19#
 楼主| 发表于 2019-12-1 00:54:57 | 只看该作者
Google 的 Fuchsia 支持 ARM64 和 x86-64。与 Unix 的兼容性是未知的。所支持的 CPU 不多,尤其是不支持 RISC-V。
回复

使用道具 举报

20#
 楼主| 发表于 2019-12-1 02:27:17 | 只看该作者
RT-Thread:“小而美” 的国产物联网操作系统
http://baijiahao.baidu.com/s?id=1651527495908474571&wfr=spider&for=pc
动点科技 2019-11-29 上海创言信息科技有限公司

随着物联网产业的迅猛发展,物联网设备的种类和数量也随之增长。据前瞻产业研究院发布的《2018-2023 年中国物联网行业报告》初估算,2017 年全球物联网设备数量达到 84 亿,2020 年将达到 204 亿。


物联网设备分布在各个不同的领域,功能各不相同,这对操作系统提出了巨大的挑战。而国产物联网操作系统 RT-Thread 依靠其 “小而美” 的特性贴合了当前物联网的需求。


据悉,RT-Thread 是由睿赛德科技开发的物联网操作系统。2006 年,RT-Thread 以开源的形式在社区发布,经过十几年的发展,在 AI、无线连接、工业车载、安防、电力能源、智能穿戴等各个热点领域都有应用,是国内以开源、中立、社区化发展起来的一款实时操作系统。其高可靠性、超低功耗、高可伸缩性和中间组件丰富易用等特性满足了物联网市场的需求,目前装机量超 2 亿台,被广泛应用于智能家居及安防、工业、穿戴、智慧城市等行业领域。


相比其他操作系统,RT-Thread 的主打特性是 “小而美”。对此,RT-Thread 创始人熊谱翔解释说,RT-Thread 的体积小,最小资源占用 1.2KB RAM 和 2.5KB flash,另外,它的 “小” 还体现在易裁减的特性,可以做到当客户需要一个适用的操作系统的时候,轻松地进行裁减,适应到需要的场景,不占用过多的资源。


而 “美” 则是指 RT-Thread 优化了使用和开发体验,增加了小程序、SMP 多核调度、PSA 安全支持等多项实用的新功能,使得 RT-Thread 系统能实现灵活极简的应用开发,能扩展至众多高性能、高安全的应用领域。


目前涉足物联网领域的大科技公司,比如华为的 LiteOS、三星的 Node.js、阿里的 AliOS Things、谷歌的 Android Things,依赖各自企业的服务和硬件,大多作为维护自身行业地位的工具。


随着开源模式被广泛接受,基于开源开发模式开放的技术更能赢得开发者的青睐。
因此,熊谱翔非常强调围绕 RT-Thread 建构的生态。熊谱翔表示,“在政治经济环境复杂多变的背景下,国产操作系统受到了更大的关注,而 RT-Thread 始终坚持社区化和中立的定位。”


RT-Thread 在 2006 年进行了社区开源,目前 RT-Thread 的开发者数量将近十万人。熊谱翔认为:“操作系统最重要的是生态,RT-Thread 非常注重社区生态建设,我们关注开发者,以开发者为中心。” 为了让开源社区生态不断壮大,睿赛德科技开展了嵌入式软件人才计划,促使开发者考取能力认证,进行 OS 知识培训,为企业提供人才服务。他们还与高校合作,开展大学计划,支持老师写书、教材和开课;并资助实验室和 IoT 项目开发;举行大学生竞赛、高校雄鹰计划等。


目前,RT-Thread 主要通过为企业用户提供技术服务、定制开发、技术授权、硬件销售、软件分成等方式盈利。


谈及下一代 RT-Thread 的技术发展,RT-Thread 创始人兼 CEO 熊谱翔表示,将从四个方向发展:


下一代 RT-Thread 将采用混合式微内核架构的模式,这样的架构具备内核小、启动快、功耗低、应用隔离、安全性高等的优点;采用轻型小巧的音视频框架,能对网络音视频进行优化,支持多种格式和流媒体协议。采用集成 AI 平台的轻型 AI 框架,支持异构处理器,集成本地语音识别、关键词唤醒、打断等功能;采用图形化集成开发环境,为更好地服务开发者,RT-Thread 提供了图形化、云端一体的集成开发环境,让开发者方便快捷地开发应用。据熊谱翔透露,这个产品将在 12 月 21 号正式发布,以免费开源的形式提供给开发者。


谈及未来的市场策略,熊谱翔的期望是在 2023 年完成 RT-Thread 装机量 20 亿台,其中联网终端占比 50% 以上;实现国内 IoT 终端市场份额 30%(年出货)左右,并在国外也具备一定知名度,让 RT-Thread 成为未来主流 IoT OS 之一。


随着物联网设备的连接越发广泛,RT-Thread 这样一款高性能、易裁剪的实时操作系统,会是整个物联网生态中重要的一环。


据了解,2019 年 11 月,RT-Thread 获得了近亿元人民币的 B 轮融资,由 GGV 纪源资本领投,君联资本追投。2018 年 6 月,完成数百万美元 A 轮投资,投资方为君联资本,2017 年获得华强聚丰和弛星创投近千万元天使轮投资。


回复

使用道具 举报

21#
 楼主| 发表于 2019-12-1 02:39:08 | 只看该作者
本帖最后由 不点 于 2019-12-1 03:47 编辑

RT-Thread 支持主流芯片架构:ARM Cortex-M, MIPS, X86, Xtensa, C-Sky, RISC-V

但目前好像还不支持 64 位。

刚才的消息中提到,下一代的 RT-Thread 将采用微内核。

另一个问题:Unix 兼容性不知是什么情况。


目前 RT-Thread 官网公布的合作伙伴有如下 20 个:


                        
        
回复

使用道具 举报

22#
 楼主| 发表于 2019-12-1 12:48:03 | 只看该作者
物联网操作系统亿元融资诞生
RT-Thread 一出好戏刚开始


张慧娟  2019-11-26
                                                                                                                                                                                                                                                                                                        

今日,物联网操作系统提供商 RT-Thread(睿赛德科技)正式宣布,获得近亿元人民币的 B 轮融资本轮融资由 GGV 纪源资本领投,上一轮投资方君联资本追投,Skillnet/上海赛哲作为本轮融资的独家财务顾问。

迄今为止,睿赛德科技总计完成三轮融资,前两轮分别是:2017 年由深圳华秋(华强聚丰)、驰星创投;2018年,获得君联资本 A 轮投资。

RT-Thread 是一个集实时操作系统(RTOS)内核中间件组件开发者社区于一体的技术平台,也是一个组件完整丰富、高度可伸缩、简易开发、超低功耗、高安全性的物联网操作系统。它具备物联网操作系统平台需要的所有关键组件,包括 GUI、网络协议栈、安全传输、低功耗组件等。

GGV 纪源资本是一家专注于全球早、中期企业的风险投资公司,管理共 13 支基金,累计 62 亿美元的资产。曾投资过阿里巴巴、滴滴出行、去哪儿、Airbnb、满帮集团、今日头条、小红书、小鹏汽车等近 300 家公司。目前为止,GGV 纪源资本投资的公司中有 60 家独角兽企业,37 家已经成功上市,并有 68 个并购项目。


为什么投RT-Thread?




GGV 纪源资本投资副总裁罗超表示,RT-Thread 定位于“小而美的物联网操作系统”,这是吸引他们投资的主要原因,因为这是未来的方向所在。“小”代表着可伸缩、易裁剪,和需求刚好符合,不多不少,直接匹配使用场景,这对未来的 IoT 操作系统是非常重要的能力,针对五花八门的应用,它都可以做到“小而美”。

另外他们看重 RT-Thread 在嵌入式开源社区的生态建设。“在这个生态领域,RT-Thread 如果说是第二,应该没有人说自己是第一”。罗超表示,“这是他们多年在开源社区积累下的基础和口碑,广泛的用户基础,决定了 RT-Thread 在开源社区将来所能达到的规模。”

“投资就是投方向、投团队。我和 RT-Thread 团队第一次见面就有惺惺相惜的感觉。RT-Thread 的创业班底很特别,都是长期活跃在技术论坛的志愿者大拿,他们共同奠定了早期的基础。当公司正式成立的时候,他们放弃了原来的高薪职位,从全国各地加入公司,颇有些振臂一呼、天下响应的感觉,这是一支凝聚力极强且打不死的团队。” 罗超说道。

经过 13 年的发展,RT-Thread 累积装机量超过 2 亿台,嵌入式开源社区活跃度行业第一,拥有开发者人数近十万,成为国人自主开发、国内最成熟稳定和装机量最大的开源 RTOS,被广泛应用于智能家居及安防、工业、穿戴、智慧城市等众多行业领域。

熊大和他的创业故事

熊谱翔,睿赛德创始人、CEO,RT-Thread 的第一行代码、第一个内核版本,都是他一行行亲手敲出来的。熊谱翔身上不时闪现出一种“反差萌”:谈起技术时像所有的理工男一样,专注、笃定;说起公司经营时,又是一种轻车熟路的自信。这是多年的职业经历赋予他的特质。他的创业故事更像是对代码痴迷之余的意外收获。

第一次见面,他的自我介绍是:你好,我是熊大。事实上,在《熊出没》播出前,他作为技术大拿已经被论坛坛友们尊称为“熊大”了,那是中国程序员开源社区中最受欢迎的 RTOS 之一。

熊谱翔在开源软件领域的经历可以追溯到大学时,这个数学天才刚一接触到 Linux 就被迷上了,他认为这是“一种简单优雅到让人感动的软件代码”。大学四年的业余时间,几乎都献给了 Linux。

毕业后,熊谱翔加入阿尔卡特担任工程师,后来曾在 Marvell 等多家通信企业、半导体企业任职。工作之余,他还是喜欢逛技术论坛,解答或者和大家一起探讨技术问题。

也就是那时,他发现了一个新方向:市面上缺少一种真正小尺寸、开源,并且符合 Linux 简约代码风格的嵌入式实时操作系统。2005 年,他开始着手这项工作;2006 年,以开源、社区化的方式发布了 RTOS 第一版内核,取名 RT-Thread,实时线程的意思。

它的出现,不仅解决了开发者的需求,也引发了很多共鸣。来自各大 IT 公司的程序员,陆续加入这一开发行列,在本职工作之余进行编码、调试,贡献着各自的力量。直至 2015 年,他们中的骨干力量,从各自的公司辞职,和熊谱翔一起全职运营 RT-Thread。

物联网操作系统,是一个长期被低估的默默无闻的领域。过去 5~10 年间,中国的高科技产业开始高速发展,诞生了一批以 BAT 为代表的互联网明星企业。事实上,所有的高科技行业,都离不开底层芯片、操作系统的迭代发展。难能可贵的是他们从业余时间的投入开始,一坚持就是十几年,凭的就是这份对技术的热情,和不为外界所动的坚持。

物联网盛宴才刚开始,大厂并非通吃

在 AI、5G 的推波助澜前,物联网在国内经历了很长一段不温不火的时期。当时,业界的着手点主要在消费级产品,与智能家居相关度很大。而事实证明,这其中有些场景是刚需,有些则不是。

2018 年是一个比较明显的转折点,物联网向 to B 领域的渗透开始大规模发生,不论是楼宇、工厂还是物流,这些重型的第二产业的整个环节几乎都与物联网有交叉。

为什么会出现这种情况?罗超的观点很有趣,他认为物联网与传统产业的结合,就像一道数学命题:小明、小红从 A、B 两点各自出发、相向而行,忽然有一天找到交点相遇了。

因为传统工业设备比较落后,当进行现代化改造时,一个巨大的痛点浮出水面:数据的获取成为突出问题,更无从谈基于数据的管理。怎么办?最初工厂开始逐个项目去定制、开发,但是,这对时间、金钱投入都是巨大的挑战。

小明、小红相遇的前提是存在的:一边需求很旺,一边技术相称。物联网的价值主要体现在:能在传统机械化和现代智能化的运作方式之间建立一个新的管道,即信息化。只有把信息化和数据化先做好,才有可能实现未来的智能化。就像七八十年代的一句话“要想富先修路”,物联网就是这条通往未来的公路。通过软件+硬件+大数据结合的方式,把这条公路修好是当务之急,未来才能赋能中国百业发展。

那么,为什么需要专门的物联网操作系统?它能发挥出什么样的价值?

就像在桌面机时代占据霸主地位的 Windows 系统,却不能在手机上成为标配,而是形成了以 iOS 和 Android 为主的两大阵营。一个最基本的原因就是 Windows 对于手机来说太“重”了,手机这种对空间、能耗都更严格的应用,需要一个更小、更轻便的操作系统。

物联网现在面临的是同样的问题。第一,小到电灯,大到工厂的机械臂,都需要芯片实现控制、数据传输等,所需算力无需太高、内存不需太大,但是对功耗要求很严苛;第二,物联网时代的应用场景更丰富、功能更为多样化,导致了需求的分散,各种接入设备之间的通信协议种类繁多,设备规格差异大,因此操作系统也需做到尽可能灵活,且占用运行资源、功耗要低

物联网操作系统终于迎来了发展史上的黄金时期,不过,现在正处于大浪淘沙的阶段。

RT-Thread 并不是这个领域唯一的玩家。国内外科技巨头早已注意到了这个大蛋糕。早在 2014 年,Intel 收购的 Wind River 就发布了 VxWorks 7;同年,ARM 推出 mbed OS;后来,微软在 Win 10 基础上发布了 Windows 10 IoT Core。与此同时,国内开源系统也纷纷发布,以阿里的 Yun OS、华为的 LiteOS、腾讯的 TencentOS tiny 等为主要代表。

大公司有技术、有资金、有生态,像 RT-Thread 这样的小公司优势何在?

大公司和小公司的玩法会有不同。大公司首先会构建自己的生态体系,其操作系统一定会优先满足自己生态中的场景和设备。就算是开源的,操作系统作为底层的接口非常敏感,小公司是否愿意进入他的生态中?大公司之间是否会采用对方的操作系统?这都是很大的疑问。正因如此,像 RT-Thread 这样独立的、第三方操作系统的价值就体现出来了。

这一点可以手机时代的 Android 系统为佐证。当 A 厂不敢用 B 厂,B 厂也不敢用 C 厂,最后发现还是用最开源的、最中立的操作系统为好,这从经济投入、稳定性都是最佳选择。

物联网时代也将延续这样的发展轨迹。“RT-Thread 在整个 RTOS 的大背景下,价值会越来越凸显出来”,罗超说道。

物联网操作系统需要资本和生态支持

目前,RT-Thread 拥有良好的软件生态,支持市面上所有主流的编译工具如 GCC、Keil、IAR 等,工具链完善、友好,支持各类标准接口,如 POSIX、CMSIS、C++ 应用环境、Java Script 执行环境等,方便开发者移植各类应用程序。商用支持所有主流 MCU 架构,如 ARM Cortex-M/R/A, MIPS, X86, Xtensa, C-Sky, RISC-V,几乎支持市场上所有主流的 MCU 和 Wi-Fi 芯片。目前,已与 8 家主流芯片商、6 家知名终端商、2 家大运营商、3 家云服商形成了稳定的合作关系。

有了新一轮资本的加持后,RT-Thread 将继续扩张研发团队,开发优化新一代微内核操作系统及其相关软件和工具。同时,公司将投入更多资源,加大 RT-Thread 生态社区的建设力度,如社区运营、能力认证、大学计划等,构筑更高的生态壁垒。深圳华秋作为创投资方之一,其旗下的电子发烧友网将依托强大的产业链资源继续助力 RT-Thread 生态建设。

针对未来的竞争格局,熊谱翔表示,物联网软件生态的繁荣将由 AIoT 操作系统逐渐主导。在这一过程中,物联网操作系统平台将会逐渐收敛到 2~3 家。

RT-Thread 将向中高端 AIoT 应用领域持续拓展。近年来,通过加快版本迭代更新的速度,实现了如 AT 组件、脚本开发环境的优化支持,以及通常只有 Linux 这种大型 OS 才支持的 SMP 多核调度等。

微内核是面向未来的新一代架构,RT-Thread 经过充分验证评估后在今年年初开始推进。对于未来的 AIoT 产业所需的低资源占用、高安全等特性,它能够在性能与成本间实现更好的平衡,整体能力也将大幅提升。

此外,还有增加音视频框架的支持、集成 AI 平台、实现端云一体的图形化 IDE 等,都是 RT-Thread 下一代操作系统的亮点。


预计到 2023 年,RT-Thread 将达到 20 亿台装机量,其中联网终端占比 50%,年出货实现国内物联网终端市场份额 30% 以上。

在中高端应用上被越来越多的用户所青睐,正成为最受欢迎的实时操作系统——熊谱翔认为,一切仅仅是开始。在国际环境复杂多变的大背景下,国产操作系统还将迎来更大的发展机遇,特别是 RT-Thread 坚持社区化和中立的发展战略和定位,坚信“无生态不 OS”的理念,各个行业的重量级合作伙伴不断增加,软硬件生态持续优化,社区扩张呈加速态势。RT-Thread在 RTOS 应用拓展、社区运营和商业模式上的探索和创新在世界范围内都具有开创性,将会给行业带来深远的影响。


                                                        
                                       




回复

使用道具 举报

23#
发表于 2019-12-1 12:55:14 | 只看该作者
本帖最后由 wintoflash 于 2019-12-1 12:57 编辑

我现在看这些吹牛逼的文章就反感。宣传的牛逼吹得越响,用于开发的投入就越少。
https://github.com/RT-Thread/rt-thread
这个好像不是面向桌面的OS,
回复

使用道具 举报

24#
 楼主| 发表于 2019-12-1 15:45:11 | 只看该作者
wintoflash 发表于 2019-12-1 12:55
我现在看这些吹牛逼的文章就反感。宣传的牛逼吹得越响,用于开发的投入就越少。
https://github.com/RT-Th ...

不知 wintoflash 有没有心仪的一款 os 推荐一下?
回复

使用道具 举报

25#
 楼主| 发表于 2019-12-1 17:19:32 | 只看该作者
找到了 RT-Thread GUI 的信息,先转贴知乎上 2018 年的文章:

https://zhuanlan.zhihu.com/p/45431187

RT-Thread 三探——LCD 驱动移植(使用GUI  Engine)
何处不江南专注于编程的嵌入式工程师

继网络之后又一个比较重要的功能--GUI

对于 RT-Thread 使用的 GUI 我还没有什么概念,本文只是针对 LCD 驱动部分的移植,并使用 GUI 运行本身提供的 demo 样例。

当然还是和 ETH 一样,在 STM32F4xx-HAL 的 BSP 中是没有 LCD 的驱动文件的,还是从 STM32F429 BSP 中复制过来,在此基础上移植就好啦。

移植步骤:

在此可以稍微介绍下 RTT 基本的结构,RTT 这个系统主要由下面几个部分组成:

1、最重要的实时内核
2、shell
3、一些常用库(Lwip,文件系统,AT Command)
4、一些中间层(如设备抽象,SAL)
5、一些不那么常用的软件库(各种软件package,如图像识别,GUI,iot支持,数据库等)

这次要使用的 GUI 就在 package 的 system packages 中。

关于 RTT 整个系统的理解,我也会在领会了之后在文章中慢慢写出来供大家探讨。那么先,回到移植上来:

1、首先在 env 中使用 menuconfig,开启 GUI Engine。






然后保存退出,别忘了在 env 中使用 pkgs --update 更新软件包,然后重新生成 mdk5 的工程。

接下来就是在 STM32F429 的 BSP 中找到 drv_lcd.c .h 文件,复制到 STM32F4xx-HAL,Driver 文件夹中,并添加到 mdk 工程中,如下图:




该驱动主要需要根据不同的接线更改几个部分:

一、将 FMC 修改为 FSMC。因为 STM32F429 外设是 FMC,而 STM32F407 的外设是 FSMC,这个地方需要首先修改。




二、修改 FSMC 相关引脚,因为引脚复用关系,所以有可能使用的 FSMC 引脚与 STM32F429 使用的不相同,这个部分需要根据原理图修改。



三、修改 LCD RAM 的地址,以及 NAND Section 的选择。根据接线的不同,修改这些参数。




四、修改背光控制引脚。根据原理图,初始化背光控制引脚,并打开背光。



还有一点可能是一个小 BUG,在源文件中,使用宏

INIT_BOARD_EXPORT(rt_hw_lcd_init);

将初始化代码添加到自动初始化中,但是这种初始化会使得 lcd 在串口初始化之前就被初始化,初始化无论是否打开 DEBUG 宏,内部的调试都无法输出。解决这个问题可以使用如下宏

INIT_APP_EXPORT(rt_hw_lcd_init);

将初始化导入到 APP 之前的阶段,这样就可以输出调试信息了。

接下来导入一个 GUI 的 demo 程序。


  1. struct rtgui_win *main_win;
  2. rt_bool_t dc_event_handler(struct rtgui_object *object, rtgui_event_t *event);

  3. static void rt_gui_demo_entry(void *parameter)
  4. {   
  5.     struct rtgui_app *app;
  6.         //struct rtgui_dc *dc;
  7.    
  8.     DEBUG_PRINTF("gui demo entry\n");
  9.         
  10.         /* create gui app */
  11.     app = rtgui_app_create("gui_demo");
  12.     if (app == RT_NULL)
  13.     {
  14.         DEBUG_PRINTF("rtgui_app_create faild\n");
  15.         return;        
  16.     }
  17.    
  18.         /* create main window */
  19.         main_win = rtgui_mainwin_create(RT_NULL, "UiWindow", RTGUI_WIN_STYLE_NO_TITLE | RTGUI_WIN_STYLE_NO_BORDER);
  20.     if (main_win == RT_NULL)
  21.     {
  22.         DEBUG_PRINTF("main_win is null\n");
  23.         rtgui_app_destroy(app);
  24.         return;
  25.     }
  26.         
  27.         rtgui_object_set_event_handler(RTGUI_OBJECT(main_win), dc_event_handler);
  28.         
  29.     DEBUG_PRINTF("rtgui_win_show\n");
  30.         rtgui_win_show(main_win, RT_FALSE);
  31.    
  32.     DEBUG_PRINTF("rtgui_app_run\n");
  33.         rtgui_app_run(app);
  34.    
  35.     DEBUG_PRINTF("rtgui_win_destroy\n");
  36.         rtgui_win_destroy(main_win);
  37.    
  38.     DEBUG_PRINTF("rtgui_app_destroy\n");
  39.         rtgui_app_destroy(app);        
  40. }

  41. rt_bool_t dc_event_handler(struct rtgui_object *object, rtgui_event_t *event)
  42. {
  43.     struct rtgui_widget *widget = RTGUI_WIDGET(object);

  44.     if (event->type == RTGUI_EVENT_PAINT)
  45.     {
  46.         struct rtgui_dc *dc;
  47.         rtgui_rect_t rect;
  48.                
  49.                 rt_kprintf("\r\n RTGUI_EVENT_PAINT \r\n");
  50.                 rtgui_win_event_handler(RTGUI_OBJECT(widget), event);
  51.         
  52.         rtgui_widget_get_rect(widget, &rect);
  53.         DEBUG_PRINTF("widget react x1: %d, y1: %d, x2: %d, y2: %d\r\n",
  54.                                 rect.x1, rect.y1, rect.x2, rect.y2);

  55.                 dc = rtgui_dc_begin_drawing(widget);
  56.                 if(dc == RT_NULL)
  57.                 {
  58.                         DEBUG_PRINTF("\r\n dc is null \r\n");
  59.                         return RT_FALSE;
  60.                 }

  61.                 rtgui_dc_draw_line(dc,0,0,240,320);
  62.                 rtgui_dc_draw_line(dc,0,320,240,0);
  63.         //rtgui_dc_draw_text(dc, __DATE__, &rect);
  64.         rtgui_dc_draw_text_stroke(dc, __DATE__, &rect, HIGH_LIGHT, BLUE);
  65.         
  66.         rect.y1 += 20;
  67.         rect.y2 += 20;
  68.         rtgui_dc_draw_text_stroke(dc, __TIME__, &rect, HIGH_LIGHT, BLACK);
  69.         
  70.         
  71.                 rtgui_dc_end_drawing(dc, RT_TRUE);
  72.     }
  73.         return RT_FALSE;
  74. }

  75. int rt_gui_demo_init(void)
  76. {
  77.     rt_thread_t tid;
  78.     tid = rt_thread_create("mygui",
  79.         rt_gui_demo_entry, RT_NULL,
  80.         2048, 25, 10);

  81.     if (tid != RT_NULL)
  82.         rt_thread_startup(tid);
  83.    
  84.     return 0;
  85. }
复制代码


移植工作到此也就基本结束了,接下来就没有最期待的 Shell 环节了(。。。)毕竟是移植 GUI,直接看屏幕也就 OK 啦,拍照留念。



编辑于 2018-09-27



回复

使用道具 举报

26#
 楼主| 发表于 2019-12-1 17:43:23 | 只看该作者
关于 GUI,在 csdn 上能找到很多文章,比如下面这两篇:

2014 年:【RT-Thread】——GUI 服务器 https://blog.csdn.net/liaoxu02/article/details/36180779

2017 年:RT-Thread 学习笔记(四)——添加 RTGUI 组件 https://blog.csdn.net/skawu/article/details/78507468

这也说明,GUI 的问题很早就有研究了。
回复

使用道具 举报

27#
发表于 2019-12-1 18:18:55 | 只看该作者
不点 发表于 2019-12-1 15:45
不知 wintoflash 有没有心仪的一款 os 推荐一下?

除了Linux,我还真不知道有其他"能用"的开源操作系统。
我在三个月前完全放弃Windows,使用的Linux发行版是Manjaro。
回复

使用道具 举报

28#
 楼主| 发表于 2019-12-4 22:58:27 | 只看该作者
wintoflash 发表于 2019-12-1 18:18
除了Linux,我还真不知道有其他"能用"的开源操作系统。
我在三个月前完全放弃Windows,使用的Linux发行 ...

嗯,确实。我们也不能寄希望于某个系统能够“一步登天”。Linux 发展了快 30 年,还没冲破 Windows 的天(甚至可能连地都没拱出来)。有“不同”即可,不能过多强求。哪怕是纯粹打酱油,用看戏的态度来对待这些新生的操作系统,也都是合情合理的。当初有好多人(包括我)对待 Linux,就是“观望”的态度。就拿我来说,直到现在,我对 Linux 的命令都很陌生,只会用一些简单的,如 ls,cat,vi 之类。从这个意义上来说,如果某个新系统能有命令行可用,我可能就分不清它比 Linux 是强还是弱,因为我对 Linux 一样是不了解的。由于实际上我对 Linux 的认识是一张白纸,那么我对 Linux 也就没有很强的依赖感。无论学 Linux 还是学某个新系统,都是一样的困难。当然了,万事万物是普遍联系的,如果新系统没人写教程,那也会影响我对它的学习。如果缺乏傻瓜化桌面应用,那也会影响我的学习。
回复

使用道具 举报

29#
发表于 2019-12-4 23:25:04 | 只看该作者
除了Linux,我还真不知道有其他"能用"的开源操作系统。
我在三个月前完全放弃Windows,使用的Linux发行版是Manjaro。


屮觉得只有没有三个依赖的情况下才能完全放弃windows:
1、不依赖各种复杂windows游戏;
2、不依赖各种行业windows应用软件;
3、不依赖各种只有windows驱动的专门硬件;

屮年纪大了,能够不怎么玩游戏了,但氏2,3的依赖不可能去除,虽然屮用windows的时侯很少。

开源桌面系统,除了Gnux之外,其实还有freeBSD、netBSD、Minix发行版。
不过它们相比Gnux系统,硬件支持更差,配套可用软件也更少些,使用体验还比不上Gnux。。。




回复

使用道具 举报

30#
发表于 2019-12-5 09:45:40 | 只看该作者
gnuxwy 发表于 2019-12-4 23:25
屮觉得只有没有三个依赖的情况下才能完全放弃windows:
1、不依赖各种复杂windows游戏;
2、不依赖各 ...

1、不依赖各种复杂windows游戏;

我常玩的Steam游戏都有Linux版本。
2、不依赖各种行业windows应用软件

我用的相关软件也有Linux版本。
3、不依赖各种只有windows驱动的专门硬件;

没有。
我换成Linux是因为Win10更新之后各种驱动都出现了问题,根本没法用。
之前用Windows也是主要用它的WSL环境,更新之后WSL经常出问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-12-10 20:11

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表