首个采用中文编写的操作系统出现了!
对许多不擅长英语的编程萌新来说,乍一看代码中各类英文关键字 、变量名、函数名等,难免十分头大,甚至还会对自己能否学好编程提出质疑。
如此心境下,他们脑海中往往会冒出一种想法:“要是可以用中文编程就好了。”
你还别说,最近真有人落实了这个想法:一位湖南长沙的软件工程师 Jason.shao 用中文编写了一个操作系统,并自信道:“火龙操作系统是全宇宙首个采用中文编写的操作系统”!
一、自创了甲、乙、丙语言
既然要开发操作系统,编程语言必不可少——为了更好地“砍柴”,Jason.shao 自然要先“磨刀”,为此他创建了三种编程语言,取名还透着一分随性:
甲语言:一门对机器码助记语言,让人更容易理解的语言,发明目的是为了开发操作系统。
乙语言:一门对甲语言进行结构化过程化的语言,发明目的是为了提高开发效率。
丙语言:一门面向对象的高级语言,可以理解为把任何东西看做是一个对象,这个对象应该有什么样的属性,面向对象语言更容易用计算机去描绘这个世界。
“刀”磨好了之后,Jason.shao 便开始设计其“全宇宙首个采用中文编写的操作系统”。
据项目介绍,火龙操作系统使用其自创的甲语言和乙语言开发,支持 64 位多核多任务图形化、分页式内存管理,还拥有 Windows 11 界面风格,支持 x86_64、ARMv8(仅 QEMU 测试)架构。
与此同时,火龙操作系统具备一系列基础功能,甚至还在向区块链、元宇宙方向进发(第14、15条):
1.中文显示。
2.图片显示。
3.文本阅读。
4.支持32位真色彩,最高2560*1080分辨率。
5.实现300个常用win api,支持部分exe程序。
6.全新文件系统。
7.支持USB。
8.支持sb16、ac97、es1370、es1371、hda等声卡。
9.支持Ne2000、PCnet、intel 82545EM、intel 82574L、intel 82579LM等网卡。
10.支持物理机Tiger Lake核显,Vmeare svga Ⅱ虚拟显卡。
11.红白机游戏。
12.自举编译。
13.斯坦福兔子。
14.区块链元宇宙(正在进行中)。
15.元宇宙之镜像世界(正在进行中)。
光说无用,Jason.shao 还在项目介绍中特地展示了几张火龙操作系统的运行截图:
从运行效果来看,火龙操作系统的整体表现可圈可点,那么接下来需要验证的就是它是否真的由中文编写。
随便点开一个系统中的内存管理源代码:
有点不信邪?那就再打开一个图层管理代码:
由此可以看出,火龙操作系统的源码“画风”显然区别于往常见到的其他代码,满屏中文也印证了其“用中文编写”的特点。
二、“抄袭”风波?
然而,就在我们惊叹于 Jason.shao 真的可以用中文编写操作系统的时候,项目评论中 @dragon-os 的一条留言却激起了巨大讨论:
这个就是日本人川合秀实《30 天自制操作系统》里的“纸娃娃操作系统”,所谓的“甲语言”其实就是 asm 汇编语言,使用了拙劣的文本替换方式,把诸如 mov 这样的指令用蹩脚的“移送”来替换,就是换了个名称罢了。“乙语言”就是 c 语言。那个 z_tools 目录就是《30 天自制操作系统》源码光盘里的文件夹,太明显了。
《30 天自制操作系统》是什么?简单来说这是一本从计算机构造、汇编语言、C 语言等角度全面解说如何自制操作系统的书籍,旨在帮助开发者从零编写所有代码、30 天即可创建出一个具有窗口系统的 32 位多任务操作系统。
而据 @dragon-os 分析,火龙操作系统其实就是这本书里的“纸娃娃操作系统”,甚至项目中的“z_tools 目录”也是《30 天自制操作系统》源码光盘里的文件夹,盗用痕迹“太明显”。
面对负面质疑,项目作者 Jason.shao 直接在评论区回复道:
“请你仔细阅读 30 天自制操作系统的开源协议再来吐槽,作者明确说明了代码可以随意修改,修改后的代码也不必开源,拿来商用都是可以的,关于本项目之后的代码都不在开源!”
不仅如此,Jason.shao 也早在“参考文献”中,明确指出项目有引用这本书籍:
尽管 Jason.shao 已将事件起因解释清楚,但仍有部分开发者认为这种行为须注明来源:
@akemimadoka:“请注明基于《30天自制操作系统》的源码开发。”
@longware:“这种非 100% 自研,建议作者加个标注。”
不过也有很多人肯定 Jason.shao 勇于尝试的精神:
@安静书生:“不可否认,短期内没有任何意义,但是如果作者坚持下去了,有更多人参与进来,可能会引起革命性的变化,支持作者。”
@pcd:“思路还是挺好。 甲语言直接用编译器批量替换成机器码,乙语言用编译器转换成 C 语言然后用编译,丙语言直接使用 C# 批量替换编译。最妙的是这玩意儿竟然真的跑起来了!”
@久永:“无论成败如何,为行动者点赞,为开拓者喝彩!”
三、中文编程是否必要?
在众多评论中,还有一种中立的声音:“首先点赞, 但还是不明白用中文的意义何在”。
如文章开头所说,很多会产生“想用中文编程”这一想法的人中,最大的原因就是:英语不好。
那么不擅长英语是否真的会影响编程学习,中文编程必要吗?对于这个问题,答案可能因人而异。
支持中文编程
这一观点可结合“@qwas982 曾请求 C# 团队开发特制的中文版”这一事件,当时其对于中文编程的呼吁引起了诸多人关注。
针对“编程中没有多少英文相关的语法更费力的是背景知识学习”这一观点,身为多年程序员的@吴烜曾反对道:“编程仍然有英文语法相关性,需要学习背景知识不意味着不需要进一步降低学习编程语言的门槛。”
美籍华裔程序员 Brian 也曾发出感慨:“对我来说,英文的资源简直就是理所应当,以至于我根本难以想象如果代码或文档用别的语言写会是什么模样。如果不会英文的话,人们就会很容易埋没在那些起步更早、作出更大贡献的程序员的阴影之中。”
中文编程不必要
同时,也有部分开发者认为,想要中文编程的人大多是“编程门外汉”:以为自己之所以学不好编程,是因为不适应英语。
但实际上,换成“汉语”他们也还是不适应。因为他们不适应的不是英语,而是结构化思考和表达。中文编程看似会降低入门门槛,但不论中文还是英文,复杂的编程思维并不会变。
那么,对于以上观点,你有什么看法呢?欢迎大家发表评论进行讨论!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

在 C 语言中,char 和 wchar_t 的主要区别在于字符编码:char 使用 ASCII 或扩展 ASCII,wchar_t 使用 Unicode;char 占用 1-2 个字节,wchar_t 占用 2-4 个字节;char 适用于英语文本,wchar_t 适用于多语言文本;char 广泛支持,wchar_t 依赖于编译器和操作系统是否支持 Unicode;char 的字符范围受限,wchar_t 的字符范围更大,并使用专门的函数进行算术运算。

Tauri框架下Rust语言熟练度对桌面程序开发的影响Tauri作为一款使用Rust构建的桌面应用开发框架,凭借其轻量级和...

复制粘贴代码并非不可行,但需谨慎对待。代码中环境、库、版本等依赖项可能与当前项目不匹配,导致错误或不可预料的结果。务必确保上下文一致,包括文件路径、依赖库和 Python 版本。此外,复制粘贴特定库的代码时,可能需要安装该库及其依赖项。常见的错误包括路径错误、版本冲突和代码风格不一致。性能优化需根据代码原用途和约束重新设计或重构。理解并调试复制的代码至关重要,切勿盲目复制粘贴。

H5、小程序和APP的主要区别在于:技术架构:H5基于网页技术,小程序和APP为独立应用程序。体验和功能:H5轻便易用,功能受限;小程序轻量级,交互性好;APP功能强大,体验流畅。兼容性:H5跨平台兼容,小程序和APP受平台限制。开发成本:H5开发成本低,小程序中等,APP最高。适用场景:H5适合信息展示,小程序适合轻量化应用,APP适合复杂功能应用。

C语言条件编译是一种根据编译时条件选择性编译代码块的机制,入门方法有:使用#if和#else指令根据条件选择代码块。常用条件表达式包括STDC、_WIN32和linux。实战案例:根据操作系统打印不同消息。根据系统位数使用不同的数据类型。根据编译器支持不同的头文件。条件编译增强了代码的可移植性和灵活性,使其适应编译器、操作系统和CPU架构变化。

如何使用JavaScript或CSS控制浏览器打印设置中的页首和页尾在浏览器的打印设置中,有一个选项可以控制是否显�...

无法以 root 身份登录 MySQL 的原因主要在于权限问题、配置文件错误、密码不符、socket 文件问题或防火墙拦截。解决方法包括:检查配置文件中 bind-address 参数是否正确配置。查看 root 用户权限是否被修改或删除,并进行重置。验证密码是否准确无误,包括大小写和特殊字符。检查 socket 文件权限设置和路径。检查防火墙是否阻止了 MySQL 服务器的连接。