关注分享主机优惠活动
国内外VPS云服务器

物联网操作系统HelloX V1.88版本功能说明

摘要:用户模式功能已得到增强。 它的对应物是微内核,另一种操作系统架构。 在微内核架构中,操作系统内核功能(例如文件系统、网络协议栈和设备驱动程序)也被实现为进程,每个功能都是一个单独的进程,占用单独的地址空间。

经过HelloX开发团队近一年的努力,在HelloX V1的基础上添加的很多功能都完成了。 .86版本。 ,在进一步优化V1.86版本的部分功能后,HelloX V1.88版本正式形成。 经过比较彻底的测试和验证,现已正式发布。 所有相关代码已上传至github(github.com/hellox-project/HelloX_OS)。 对HelloX感兴趣的朋友,请下载、测试并提供进一步的反馈。

V1.88版本花了很长时间才完成。 主要原因是这一年来,我所负责的单位不断受到各种外部压力。 这些压力转嫁到员工身上,使员工的工作量和压力倍增,闲暇时间也大幅压缩。 我经常要到晚上10点以后才能完成工作,周六周日一般都会加班。 尽管工作压力巨大,HelloX 的发展仍然不间断。 另外,通过我们这一年多的经验,我们已经认识到基础软件的重要性和必要性,所以我们对代码质量的要求也很高。 HelloX 是基础软件,需要坚实的基础才能实现最大的弹性和外部适应性。

介绍V1.88的主要特性

除了保持V1.86的所有特性外,V1.88版本主要有以下特性:

支持高性能存储访问。 目前版本的HelloX已经支持FAT、N等比较完整的文件系统。TFS(只读)、裸文件系统等 但文件I/O性能不能满足您的要求。 目前文件I/O吞吐量约为20M BPS,磁盘访问是通过调用BIOS服务配合CPU模式切换来完成的,对整体效率影响较大。 在V1.88版本中,HelloX实现了完整的基于IDE/AHCI接口的硬盘驱动,并对FAT文件系统进行了全面优化。 系统文件I/O吞吐量可超过200M。 这样,HelloX就具备了充当网络NAS、文件服务器等的能力。 用户模式功能已得到增强。 每个应用程序都可以作为进程运行,拥有自己独立的地址空间(32位),并且可以在自己的地址空间中创建多个用户线程以实现并发。 陷入内核并通过系统调用访问内核功能。 不同进程之间的数据和程序代码严格隔离,最大限度保证系统整体安全。 V1.88版本中添加的TFTP服务器功能是在用户模式下实现的应用程序,可以按需加载和运行。 提供了比较完整的用户态代码库。 介绍了一种基于ptmalloc开源代码和ANSI标准C语言标准库的用户态堆内存管理算法。 用户可以按照常见的开发方法完成HelloX应用的开发。 无需开发Windows或Linux等操作系统应用程序。 不同的。 V1.88版本引入了开源CPUID代码库,只需少量修改即可编译为用户模式应用程序-cpuid.exe。 您可以在HelloX上查看各种CPU信息。 完整的 BSD 风格的套接字系统调用。 您可以通过在用户态调用socket API来开发网络应用程序。 V1.88版本通过socket API函数实现了两个功能:TFTP服务器和Telnet服务器。 支持TFTP协议的客户端可以通过TFTP协议与运行HelloX操作系统的服务器传输文件。 例如,HelloX生成的日志文件可以通过TFTP客户端下载到个人PC上进行分析。 在个人P在 C 上安装标准 Telnet 客户端软件。 这意味着您可以Telnet到hellox进行远程操作。 这与使用串行电缆、键盘或任何其他操作方法完全相同。 基于TFTP和Telnet可以实现hellox的远程管理和维护,极大的方便了管理操作。 我们增加了一套更丰富、更完整的调试和诊断方法,并实现了更丰富的日志输出功能。 内核模块生成日志信息。 日志信息由多频带内核线程收集并写入日志文件 (syslog/logfile.txt)。 如果发生系统崩溃,您可以下载日志文件进行故障排除。 由于系统有一个单独的内核线程负责收集和写入日志,因此日志信息首先发送到日志线程进行缓存,并在适当的时候真正写入文件系统。 如果系统上下文是(中断、系统调用等),则可以调用__LOG函数形成日志。

据github统计,HelloX V1.88在原有的基础上共更新了130多个源代码文件,更改或添加了约3万行源代码我做过。 。 V1.88版本的代码总行数约为20万行(不包括用户模式应用程序代码)。 HelloX V1.88内核编译的二进制文件大小约为565K。

V1.88 用户态功能介绍

用户态处理功能是HelloX V1.85版本引入的新功能。 主要目的是为了方便各种应用。 应用程序与内核完全隔离,创建安全稳定的执行环境。 用户模式功能的存在或不存在是区分通用操作系统和嵌入式操作系统的指标之一。 HelloX V1.88 极大增强了用户模式功能。 然而,用户态的功能广泛而深入,需要考虑的因素并不比内核本身少。 因此,在未来的版本中将会对用户模式功能进行进一步的改进和增强。

大多数嵌入式操作系统没有用户模式功能。 在嵌入式领域它包括操作系统内核、应用程序和各种驱动程序。 大多数情况下,它是由解决方案制造商提供的,并且不存在不受信任的应用程序或设备驱动程序。 此外,引入进程后,进程之间的频繁切换会降低系统的整体性能。 因此,事实证明,嵌入式操作系统通常不实现用户模式功能。

但是HelloX定位于复杂的应用场景,比如物联网网关等需要动态加载和执行第三方应用的场景。 如果没有安全隔离,程序就可以直接访问彼此的数据,从而产生重大的安全风险。 同时,我们无法保证第三方应用程序的质量。 如果没有地址空间分离,如果你的应用程序出现问题,整个系统很可能崩溃。 经过深思熟虑,HelloX最终在V1.85版本中引入了用户态处理功能。

只有按需动态加载的第三方应用程序才会作为进程运行。 HelloX 内核本身的功能继续在内核内运行,包括 TCP/IP 协议栈、网卡驱动、USB 驱动和文件系统。 我们相信这些功能是可靠的并且是系统所需要的(如果缺少它们,操作系统内核将无法提供完整的功能,即使不受影响),因此我们这样做是没有意义的。 与内核分离。 这是典型的“宏核”架构。 与之对应的是另一种操作系统架构:微内核。 在微内核架构中,文件系统、网络协议栈、设备驱动等操作系统内核功能也以进程的形式实现。 每个函数都是一个独立的进程,占用独立的地址空间。 尽管此实现提供了额外的内核安全性,但由于进程间通信 (IPC) 效率低下,它显着降低了系统性能。 当然,微内核架构下提升系统整体性能的技术手段有很多,但从工程角度来看,笔者还是建议使用宏内核来实现整个操作系统。 然而,微内核的一些好处可以被充分吸收来改进宏内核架构。 例如HelloX实现将TCP/IP协议栈、日志管理、以太网管理等实现为独立线程(运行在内核态)。这使得模块更加独立。 由于不涉及用户模式上下文切换,因此 IPC 性能得到保证。 总体来说,“宏内核+微内核”组合的好处就显现出来了。

HelloX V1.88的用户态特性主要包括:

地址空间独立和分离。 每个进程都有自己独立的线性地址空间,在32位CPU上大小为4G(包括内核空间)。 不同进程之间的地址空间是完全独立的。 相同的内存地址代表每个进程的不同物理内存位置。 进程的线性地址空间进一步分为内核空间和用户空间。 用户空间范围从 1G 到 3G(总共 2G)。 只要明确提出内存分配请求,用户应用程序就可以自由访问这部分内存空间。 内核空间分为两部分:0到1G之间和3G到4G之间。 内核空间映射到每个进程,不能被应用程序代码直接访问。 要访问内核空间,必须通过系统调用进入内核态。 然而,内核可以自由访问用户地址空间。 基于安全考虑,HelloX V1.86版本的内核并不直接访问用户空间,而是通过内核交换区。 内存保护。 运行在用户态的应用程序只能访问1G到3G之间的用户空间,不能直接访问内核空间。 即使在用户空间中,也必须通过系统调用(VirtualAlloc)预先分配,然后才能访问。 否则,仍然会抛出异常。 不同进程之间的用户空间是完全隔离的,互相看不到。 然而,HelloX内核还提供了一个称为VirtualMap的系统调用。 它将公共内存同时映射到两个进程,以实现高效的进程间数据共享。 应用程序是动态加载的。 HelloX 现在可以从外部存储介质动态加载 PE 格式的可执行文件并创建一个进程来运行它们。 当您加载 PE 格式的应用程序时,HelloX 会执行详细的格式检查并拒绝运行有问题的应用程序。 如果 HelloX 检查通过,则会创建一个新进程并开始运行。 需要注意的点是:来自外部媒体的应用程序在用户模式下加载、验证和运行。 HelloX 实现了一个称为用户代理的模块,该模块旨在加载外部应用程序。 内核做尽可能少的工作,并将尽可能多的工作放入用户模式。 Loadapp是HelloX提供的一个用于加载和运行用户态应用程序的工具。 在 shell 界面中,输入 loadapp + 应用程序的路径名来加载并运行它。 系统调用函数。 系统调用函数必须在假设实现了用户态处理的情况下实现。 用户模式代码不能直接访问内核。 要请求内核服务,必须通过系统调用进入内核模式。 系统调用利用CPU的硬件机制通过固定的统一接口进入内核态。 在执行特定的内核代码之前,系统调用的内核模式部分会对调用参数进行详细的检查,以确保请求是合法的。 例如,用户指定的内存地址必须在用户空间中定位和分配。 如果检查失败,则系统调用失败,进程被认为有恶意行为并被强制终止。 内核对象隐藏。 HelloX的内核代码通过内核对象指针访问内核对象。 例如,当等待 Mutex 对象时,传递给 WaitForThisObject 函数的参数是指向 Mutex 对象的指针。 然而,通过指针让用户模式访问内核对象是非常危险的。 尽管用户模式无法通过指针直接访问内核对象,但应用程序可以伪造内核对象指针来发起系统调用。 此时,系统内核很难检查该指针是否无效。 如果执行了不必要的操作,则可能导致内核对象不存在,从而导致错误的操作。 这就是为什么大多数操作系统(包括HelloX)都以句柄的形式访问内核对象。 每当创建内核对象时,HelloX 内核都会向进程的句柄表添加一个项目,并将该项目的索引值返回给用户态。 用户模式使用该索引值(句柄)来发起系统调用。 内核收到用户态的系统调用请求后,首先根据这个索引值查询句柄表,看是否存在对应的内核对象。 否则,表明系统调用非法。 如果有对应的东西检查内核对象,进一步检查内核对象的状态、类型等。 只有验证正确才真正操作内核对象。 用户模式应用程序开发库。 一个完整的操作系统除了提供最基本的系统调用外,还必须提供用户态应用程序开发库,例如C语言标准库。 C标准库封装了操作系统提供的API,并将其作为标准化函数暴露给外界。 这样,程序员在开发用户态应用程序时,只需调用C标准库中的函数即可,无需调用操作系统API,使应用程序的可移植性大大提高。 HelloX V1.86支持ANSI C89版本的标准库函数。 使用ANSI C89版本开发的应用程序无需修改即可直接移植到HelloX。 1.86版本移植了很多C语言程序。 其中包括CPU管理程序cpuid。 用户模式内存管理器。 实现C标准库函数不仅仅是对操作系统API的封装,也是更复杂的用户态系统函数的实现。 例如,用户态内存管理(即标准C库函数中的malloc/free/calloc等函数)无法直接映射到操作系统提供的API。 这是因为操作系统提供了不同的内存分配API。 大多数用户应用程序需要的内存请求通常很大(4K 或更大)。 这需要在用户模式下提供内存重新分配功能。 换句话说,它从操作系统“批发”内存,将其分成更小的内存块,然后“零售”给用户应用程序。 这个用户态内存管理程序和操作系统内核的内存管理功能一样简单。 并发效率、争用、内存使用效率等问题必须仔细考虑。 业界有很多开源算法。 HelloX V1.86移植了业界广泛使用的内存管理库ptmallc,作为用户态内存分配器进行线程安全的处理。

对用户模式功能的支持标志着HelloX从嵌入式操作系统向通用操作系统的转变。 作为计算机领域最基础的软件,支持多种应用场景是操作系统长期生存的基础。 具有高性能、实时性、可靠性的通用操作系统自然比嵌入式操作系统适应性更强,更容易响应外部需求。风景很丰富。 通用操作系统和嵌入式操作系统并不相互排斥,而是可以有机结合的。 随着计算机内存的不断增加,影响通用操作系统性能的传统机制(例如内存交换和延迟页面加载)已变得不再那么重要。 通过去掉这些特性,保留用户态特性,并优化调度机制、加载机制、中断响应等,可以有效地集成嵌入式和通用操作系统。 HelloX的后续版本将会朝这个方向发展。

与之前版本的原则一致,HelloX V1.88版本的开发过程中,我们始终注重“稳定性和可靠性”,原则是“直接应用”,不留盲点,所有代码都经过详细、严格的内部测试。

V1.88 网络功能概述

网络功能一直是HelloX操作系统最重要的功能,与之前的版本相比,HelloX Networking功能V1.88中的功能进一步增强,增加了对Intel服务器网卡82547的支持,将DHCP服务器功能移至用户模式,对各种网络线程进行多核重新分配,以及集成网络接口管理框架设计和实现等。 /p>

在原有定制软路由器黑盒的基础上升级了新的软路由器“blue-white”。 因为这款路由器的前面板有蓝色和白色两种颜色。 最新升级的路由器可以支持4到8个千兆以太网接口(最初只有2个接口),并且可以通过控制台接口(RS232)进行配置。 下图是前面板:

所有 1,000 千兆以太网接口都是点对点的,可以配置为 WAN 接口(用于连接运营商)或 LAN 接口(用于连接运营商)。 操作员)本地交换机或 WLAN AP)。 配置管理通过串口(控制台接口)进行,个人电脑可以通过类似超级终端的软件控制Blue-white,如上图所示。

由于大多数WiFi芯片都不是开源的,blue-white目前不提供WLAN AP功能。 需要外部二层AP设备提供WLAN信号接入。 软路由整体成本在600元左右,但通过大规模定制可以进一步降低成本。 然而,虽然与基于SoC的家用路由器相比,它没有功耗或成本优势,但其计算能力是传统家用路由器无法比拟的,也是作为物联网网关的关键优势。

最近搬了新家,所以设计了一个基于blue-white的家庭网络并尝试操作。 整体网络结构如下:

提供商 运营商的光调制解调器处于第 2 层桥接模式。在运行中,blue-white充当整个家庭网络的核心网关,启动与运营商网络的pppoe连接,并向下游设备(IP TV、两个WLAN等)分配IP地址。 美联社等)。 家电、电脑、pad、手机等都是通过WLAN AP访问的。 其中,IP TV多频段通过物理网线连接到blue-white。 这样就可以将持续产生大量流量的电视与产生突发网络流量的其他终端设备隔离开来,使它们互不影响。 下面是blue-white运行的截图。

作为用户模式应用程序,CPUID 被加载并执行您可以稍后查看完整的 CPU 信息。

到目前为止,蓝-白已经工作一个多月了,性能稳定,如果长时间出行,请关闭低电流开关,关闭回到家后打开它即可,如果您与运营商的 PPPOE 会话中断,您可以重拨连接。 实际网络速度约为 230M(有限)。 -left:0;">

在你的生活中。HelloX 应用于实际环境,并不断开发和优化以满足实际需求。与“不这样做”完全不同。

在使用过程中,随着越来越多的物联网设备连接到HelloX网关,我个人体会到了物联网操作系统的现实性和价值。我越来越感觉到了。 人们越来越认识到物联网网关的重要性。 想象一下,物联网网关可以看到所有物联网设备的通信模式,包括平均消息长度、传输间隔、带宽、时间分布、MAC地址和通信协议类型等信息。 这些信息使您可以通过大数据和 AI 技术来识别设备类型和设备功能,并有意地与物联网设备进行通信,而无需对 IP 数据包进行详细(不合规)分析。 请配合。 单个物联网网关是本地网络的控制中心,而所有物联网网关组成的更大网络是整个世界的控制中心。 HelloX专注于物联网网关方向,进行深入的技术研究。 为人类建立安全、可靠、智能的物联网数字中心

操作系统与其他操作系统的区别

HelloX操作系统包括 包含内核和设备司机。 系统软件与当今使用的主要操作系统不同,具有程序、用户空间应用程序和物联网套件等一组功能。

Linux:Linux主要定位为操作系统内核和基础管理维护工具。 它定位为通用操作系统内核,可应用于物联网领域,但并不针对物联网领域进行特殊优化或定制。 HelloX 包括操作系统内核和物联网套件。 专为物联网定制,是物联网领域的专业操作系统。

Android:智能手机操作系统。 Android 不实现操作系统内核。 相反,它直接使用Linux作为内核。 在此基础上,我们将开发支持智能手机的支持功能和组件。 HelloX的思想和Android类似。 两者都是面向特定的应用场景,并针对该场景进行深入开发。 但与Android不同的是,HelloX本身实现了内核功能,并没有引用其他内核。

Harmony:与Android一样,它是一个针对智能移动设备的操作系统。 它也是基于Linux内核的。 它针对智能移动终端场景进行了深入开发,实现了软件总线等技术,方便不同类型移动终端之间随时随地的交互和协作。 HelloX 是一个物联网操作系统。 拥有完全自主开发的内核和物联网执行环境,支撑万物互联。 鸿盟操作系统设计了内核抽象层,可以封装和抽象不同的内核。 因此,理论上,HelloX可以作为鸿盟的内核之一。

Euler:服务器,云计算,从它的定位和描述来看,它更针对后端专业应用场景。 Euler也是在Linux内核上开发和改进的,是与行业合作伙伴共建信息基础设施的核心软件组件。

综上所述,HelloX操作系统包括:该套组件,包括内核、支撑模块、物联网执行子系统等,拥有完全自主知识产权,遵循BSD开源协议。 这并不是说使用 Linux 内核不是一个真正的操作系统,而是说使用单独的内核作为核心组件有显着的好处。 您还可以选择退出开源以提高安全性。 可以在不考虑开源合同约束的情况下对内核进行更改。 您可以以最大的自主权独立规划您的内核开发路径……但是开发全新的内核也面临着巨大的挑战。 它的应用场景广泛,用户基础庞大,必须经过大量的测试才能保证内核的稳定性和可靠性。

进一步的发展方向

HelloX作为一款物联网操作系统,始终专注于物联网领域的应用,为马苏量身定制一套最优的解决方案。 系统软件解决方案。 我们认为仅支持一个核心是不够的。 物联网和智能硬件的有效发展壮大需要更多技术的支持,如人工智能、分布式计算、机器学习等。 但稳定、可靠、可扩展的物联网操作系统是这些技术的完美土壤。 为了生存。

同时,我们相信物联网的一个关键组成部分将是物联网接入网关。 无论何种应用场景,物联网网关在连接用户和现实世界的物联网世界中都发挥着核心作用。 随着5G等技术进一步深入工业领域,工业制造数字化转型持续加速,物联网网关的需求预计将增加。 因此,HelloX未来将首先瞄准并深化这一物联网应用场景。 物联网网关首先是更安全、更高效的宽带接入网关,还能够支持物联网应用。 下图提供了对 IoT 网关的理解。

未经允许不得转载:主机频道 » 物联网操作系统HelloX V1.88版本功能说明

评论 抢沙发

评论前必须登录!