只接受发布货源信息,不可发布违法信息,一旦发现永久封号,欢迎向我们举报!
免费发布信息
莆田鞋频道-20货源网 > 全部资讯分类导航 > 行业新闻 >  国产操作系统最致命的短板,被这个开源软件补上了! 配资的智慧:小张与股票配资软件下载奇遇


  • 【莆田鞋厂家分类】
  • 【奢侈大牌包包厂家分类】
  • 【潮牌奢侈服饰鞋子厂家分类】
  • 【名表厂家分类】

厂家货源分类区域

 

国产操作系统最致命的短板,被这个开源软件补上了! 配资的智慧:小张与股票配资软件下载奇遇

发布时间:2024-09-11 14:54:08  来源:互联网整理  浏览:   【】【】【

国产操作系统最致命的短板,被这个开源软件补上了! 配资的智慧:小张与股票配资软件下载奇遇 

国产操作系统最致命的短板,被这个开源软件补上了!

“国产操作系统为什么没人用?”

“因为上面没有软件。”

“那么多软件,下载下来,一安装不就行了吗?”

“不行,现在的软件都是给Windows开发的,国产操作系统是基于Linux爆改的,软件跑不了。”

“那就给国产Linux开发软件啊?!”

“没人开发,因为国产操作系统没人用。”

“你这不就成了鸡生蛋,蛋生鸡的了,无解循环......”

这是我和一个朋友关于国产桌面操作系统的一次对话。

其实这几年国产桌面操作发展得相当不错,像Deepin,统信等根据国人的审美和操作习惯,做了很多本土化工作,并且内置了各种常用的软件如WPS Office、搜狗输入法、有道词典、网易云音乐等,用来做日常办公完全够用。

但是,国产操作系统做得再好,也只能涵盖一部分软件,对于Windows庞大生态生态中那千千万万的软件,只能望洋兴叹了。

如果你要用的软件不被国产操作系统支持,那怎么办?

最简单的方案是用类似VirtualBox这样的虚拟机,在虚拟机中运行Windows,然后在Windows上安装想要的软件。

这种一层摞一层的办法有用,就是效率太低,运行速度太慢:

有没有办法,既能在Linux上运行Windows软件,又能避免效率的损失呢?

有!这个软件叫做Wine。

Wine不是虚拟机,而是一个软件兼容层,它通过“转发”的方式,让Windows程序可以运行在Linux之上。

要想理解Wine的秘密,必须得从最底层看起。

0 1

可移植的CPU指令

比如这段代码:

int foo(int x) {

return x * x;

}

都基于x86 CPU编译(这一点儿很重要),在Linux上这样的:

在Windows上是这样的:

看起来差别相当大,对吧?

但是,由于两者生成的代码都是基于x86 CPU的,换句话说,CPU指令集(mov、imul、ret之类)是完全相同的。

Linux上可执行文件是ELF格式,下图的.text 区域就是CPU的指令

Window上的可执行文件是PE格式,CPU指令也在.text区域

既然.text区域的CPU指令在Windows和Linux之间是“可移植的”,你可能立刻会想到,如果有一个程序,可以把foo函数在Windows编译出的.text 给“取”出来,拿到Linux上执行,应该是可以运行的。

Wine其实就是这么干的,它把Windows可执行文件加载到内存中,分析一下,找到可执行代码的位置,跳转到这个地方执行就可以了!

0 2

系统调用

如果事情就这么简单,任何人都可以写一个Wine,Windows上的海量软件就可以轻松移植到Linux上,Windows生态的优势将不复存在。

但Windows的桌面霸主地位坚如磐石,这其中的关键就是:系统调用。

操作系统是对硬件功能的封装,它对外提供了一系列服务如读写硬盘、读写内存、进程管理等。

应用程序想使用这些服务,必须通过系统调用来进行,别无它法。

而Windows和Linux的系统调用,是完全不同的。

名称不同、参数不同、语义也不同。

一个稍微有用的应用程序,肯定要使用系统调用(无论是直接还是间接方式),那就立刻和操作系统绑定了。

比如这个hello world

#include

int main() {

printf("Hello!\n");

return 0;

}

在Linux上是这样的,它调用的是puts函数。

在Windows上编译后是这样的,调用的是printf函数。

puts和printf都C标准库的函数,C标准库最终还是走到系统调用那里,毕竟你要在控制台输出“Hello!”,这事儿只能操作系统来办。

要想在Linux上运行Windows程序,有两条路

(1)把Windows系统调用在Linux上重新实现一遍,这和重写OS差不多了

(2)把Windows系统调用拦截,转发到Linux的系统调用

Wine开发团队选择了第二条道路,当应用程序调用Windows 系统调用时,Wine进行“拦截”,然后转发到Linux的系统调用。

这个事情画个图很简单,实现起来太麻烦了。

Windows的系统调用非常多,源码又不公开,全是黑匣子,我们不知道Windows内部到底是如何实现的,Windows文档又很差......(大胆猜测一些,微软是故意的)。

更要命的是,这些系统调用还存在一些错误、缺陷、奇怪的副作用,Wine在拦截转发的时候,这些错误和缺陷不但不能修复,还必须原封不动地去复现它们。

如果不这么干,那些Windows软件在Linux上运行起来的行为就不同了。

这还不算完,别忘了Windows游戏啊,它们都在调用微软的DirectX,这是微软专门为游戏开发提供的API,仅支持Windows。

在Linux平台下也有个对应的东西,原来叫OpenGL,现在新一代的图形API叫做Vulkan。

很明显,DirectX和Vulkan是不同的东西。

为了把DirectX调用转换成Vulkan,Valve(Steam就是他们家的)和CodeWeavers(主要赞助Wine)合作开发了Proton。

Proton 最初于 2018 年 8 月 21 日发布,当时Valve还发布了一个 27 款游戏的名单,这些游戏经过测试和认证,性能与 Windows 原生版本相同,无需最终用户进行调整。其中包括《毁灭战士》(2016 年)、《雷神之锤》和《最终幻想 VI》等。

0 3

总结

看了Wine干的这些事情,你肯定会感慨,让Windows应用在Linux上顺利地跑起来可真不容易啊。

这是没办法的事情,谁让Windows是桌面操作系统的老大呢?

微软通过Windows系统调用API和DirectX等API,构建了非常宽的护城河。

开源的Wine在这个护城河上建立一座桥,这座桥虽然还不完美,但足以让大量的Windows应用来到Linux的世界快乐地玩耍。

相信国产操作系统一定会充分地利用Wine这样开源界的成果,让自己的生态变得更加丰富。

ps,本文用到的例子来源于https://werat.dev/blog/how-wine-works-101/,这篇文章有更多细节,感兴趣的话可以看看。

全文完,觉得不错的话点个赞或者在看吧!

近期爆文:


配资的智慧:小张与股票配资软件下载奇遇

在一个充满机遇的股市世界里,小张,一位渴望在投资领域更进一步的年轻投资者,决定探索股票配资软件,以期在资金管理上找到新的突破口。在一次偶然的机会下,小张与“股资宝”软件相遇,这不仅改变了他的投资方式,也开启了一段关于下载、探索与成长的奇妙旅程。

1. 梦想的种子

小张在股市的探索中,渐渐意识到资金管理的重要性。他了解到,通过股票配资软件,可以在一定程度上放大投资本金,提高资金利用率,从而在市场波动中抓住更多机会。小张决定,寻找一款可靠且功能强大的股票配资软件,以提升自己的投资效率。

2. 探索的开始

在互联网的海洋中,小张开始了他的搜索之旅。他浏览了多个软件下载平台,阅读了无数的用户评论和专业评测,最终,“股资宝”软件以其专业性、安全性以及良好的用户口碑,吸引了小张的注意。小张决定,下载“股资宝”软件,开启他的配资探索之路。

3. 智慧的启封

下载并安装“股资宝”软件后,小张被其简洁的界面和丰富的功能所震撼。软件不仅提供了股票配资服务,还拥有实时市场分析、智能风险预警系统等高级工具,帮助投资者做出更明智的决策。小张开始深入学习软件的使用技巧,逐渐掌握了如何通过配资服务,优化自己的投资组合。

4. 挑战与成长

在使用“股资宝”软件的过程中,小张不可避免地遇到了市场波动带来的挑战。但他发现,软件的智能风险预警系统,能够在市场出现异常波动时,及时提醒投资者,帮助他们做出快速反应,避免潜在的损失。每一次挑战,都让小张更加成熟,他学会了如何在不利的市场环境中,保持冷静,调整策略。

5. 成功的曙光

随着时间的推移,小张在“股资宝”软件的帮助下,逐渐掌握了股票配资的精髓。他利用软件提供的智慧与策略,结合对市场的深刻理解,开始在股市中实现稳定的收益。小张意识到,成功的股票配资,不仅需要对市场有深刻的理解,更需要对配资软件的熟练掌握,以及对自己投资策略的持续优化。

结语

小张与“股资宝”软件的故事,不仅是一段关于下载、探索与成长的奇妙旅程,更是一次关于智慧、勇气与挑战的深刻体验。在充满机遇与风险的股市中,小张的经历告诉我们,每一次尝试,都是对市场规律的探索,每一次投资,都是向成功迈进的一步。小张的旅程,不仅是一段个人成长的历程,更是对所有投资者的启示,指引着他们向着更加智慧和稳健的投资方向前进。在“股资宝”软件的引领下,真正的智慧,永远是对市场风险的深刻洞察与对个人能力的持续提升。

责任编辑:
© 莆田鞋频道-20货源网