linux和vxworks的区别是什么

Linux和VxWorks其实有很多区别,所以你得一一看。

内核结构的问题 VxWorks 使用微内核。
需要明确的是,它只处理最基本的事情,例如任务管理、内存管理和中断处理。
其他功能必须单独加载,例如插件。
这样,内核就很小,适合内存和处理能力较差的嵌入式设备。
我记得我做路由器的时候,常用的是VxWorks。
设备资源就这么多,小核效率很高。
就Linux而言,是宏内核包罗万象。
文件系统和网络协议栈都在内核中。
虽然功能齐全,但核心也很大。
我们的办公服务器运行Linux,系统文件只有几百MB,而VxWorks的文件可以有几十MB。

操作模式也不同。
VxWorks直接运行在实模式下,应用程序直接操作内存。
用户模式和内核模式没有区别。
任务之间共享地址空间,数据传输速度快,但稳定性较差。
我之前调试过VxWorks板。
其中一项任务出现错误,导致整个系统关闭。
这很烦人。
Linux采用保护模式,用户程序在用户空间,内核程序在内核空间。
如果要使用内核函数,就必须进行系统调用。
一旦权限切换,内存也不同了。
哪个更安全。
我们编写Python脚本是为了在Linux上运行,我们当然不希望内核程序随意改变数据。

内存管理也有很大不同。
VxWorks采用实存储管理,所有任务共享物理内存,用户程序可以直接访问物理地址。
但如果没有内存保护,如果程序崩溃,整个系统可能必须重新启动。
Linux采用虚拟存储管理。
每个进程都有自己独立的虚拟地址空间,通过页表翻译成物理内存。
因此,如果内存保护做得好,如果一个程序出现问题,不会影响其他程序。
我的同事做过一个测试,发现如果一个Linux进程可以掉电,其他进程可以继续运行。

执行单元和实时性能 VxWorks以任务为单位,支持硬实时,保证关键任务必须在规定时间内完成。
对于我们这些创建通讯工具的人来说,时间要求非常高,所以VxWorks是相当适合的。
Linux 默认情况下执行进程/线程,主要是软实时。
不过,也有一些补丁,例如 PREEMPT_RT,可以提高实时性能,但总体来说还是比较常见。
我们实验室的 Linux 服务器所做的数据分析是硬实时执行的。
There is no need.
请求内核服务方法 VxWorks只需直接调用函数,无需切换模式,响应速度快。
But security is bad.如果一个调用出现问题,整个系统可能会变得不稳定。
Linux 必须使用系统调用才能从用户模式切换到内核模式。
这个过程虽然缓慢,但安全。
When we write C code to call Linux system call, we need to add syscall instruction, which is more troublesome than direct function call in VxWorks.
设备驱动程序也有自己的规范。
BOOTROM 和 VxWorks 驱动程序捆绑在一起。
设备驱动程序和应用程序共享内存空间,数据交换速度更快。
但稳定性取决于驱动程序编写得如何。
Linux 驱动程序位于内核空间中,与用户空间分开。
交互效率低,但隔离性好。
此外,Linux 是开源的,并且有许多不同的驱动程序,因此很容易找到。
我们做嵌入式开发,所以Linux驱动选项很多,也存在一些问题。

不管怎样,Linux适合一般场景,VxWorks适合实时性要求高的嵌入式系统。
使用哪一种取决于项目的要求。

linux是哪个公司开发的

说实话,当我们谈论Linux这个大家都知道的操作系统时,但要真正了解它从何而来、如何工作,确实需要走一些弯路。
当我第一次接触Linux时,我还是一名学生,正在实验室里摆弄一台旧服务器。
当时Minix系统非常好用,但突然发现Minix的作者Linus Torvalds表示要停止更新了。
作为一名技术高手,我立刻就迷茫了——我该怎么办?我当时就想,我要怎么去尝试呢?
1 9 9 1 年在芬兰的那个时候,Linus Torvalds确实有足够的勇气去思考和去做。
他在赫尔辛基大学学习计算机科学。
当 Minix 失败后,他想构建自己的系统。
有趣的是,他根本没想过卖掉是为了钱,只是为了利息。
一旦他发布了源代码,嘿,这是一件大事——这东西是开源的!
说实话,Linux能够流行起来,关键在于它的开发模式。
与闭门独立运行的 Windows 和 macOS 不同,Linux 自诞生以来就被世界各地的开发者所使用。
后来查资料发现他们有一个邮件列表,很热闹。
各种专家、学生,甚至大公司的工程师都在那里讨论代码并提出补丁。
这还没有结束。
后来Git工具一出来,代码版本管理就开始了。

我有一个朋友在华为做集成开发。
他们正在做智能相机,系统空间很小。
他告诉我,如果你使用Linux,你就必须自己做足够的食物和衣服。
您需要知道哪些驱动程序无法打开以及如何分配内存以节省电量。
他花了三个月的时间将核心切割成像小刀片一样的东西。
最终,性能提升非常明显。
这就是 Linux 的力量——它给你自由,但你也必须了解其中的窍门。

说到与商业系统的区别,我感受最深的就是定制化。
想一想,Windows已经给你安装好了,一键使用就可以了。
您想删除一个组件吗?灾难!那么Linux呢?不喜欢这个图形用户界面?删除并重新安装其他的,甚至直接更改内核代码,只要你知道怎么做。
我之前帮朋友搭建过一次服务器。
男孩安装了Windows Server,但某种防病毒程序导致系统死机。
挣扎了很久,最终还是转用了CentOS。
一次性设置比 Windows 服务器更费力。

对于企业应用来说,不要小看Linux。
我一直在一家提供云服务的公司工作,他们的主要平台是基于Linux的。
技术专家告诉我,Linux最大的优点就是稳定性。
关键是出了问题还能找到人。
有一次他们凌晨三点升级了系统,但是系统一点动静也没有。
第二天,老板夸奖了他们的技术。
当然,这种稳定性是建立在开发者了解技术的前提下的。
如果连命令行都打不开,那就真的尴尬了。

不过话说回来,Linux确实是一个障碍。
如果你只想做一个普通用户,那么 Windows 或者 macOS 肯定会更舒服。
但如果你从事开发或者服务器,那么Linux绝对是其中之一宝藏。
我建议初学者从 Ubuntu 开始。
It's much easier to use than native Linux, but the kernel is still the same, and you'll get used to it gradually. Anyway, after ten years of working together, I really love and hate Linux, but I really can't live without it.