首页 头条 首个采用中文编写的操作系统出现了!

首个采用中文编写的操作系统出现了!

Mar 22, 2022 am 10:18 AM
中文 操作系统

对许多不擅长英语的编程萌新来说,乍一看代码中各类英文关键字 、变量名、函数名等,难免十分头大,甚至还会对自己能否学好编程提出质疑。

如此心境下,他们脑海中往往会冒出一种想法:“要是可以用中文编程就好了。”

你还别说,最近真有人落实了这个想法:一位湖南长沙的软件工程师 Jason.shao 用中文编写了一个操作系统,并自信道:“火龙操作系统是全宇宙首个采用中文编写的操作系统”!

7a58311967dcc747582f2f26be26dbd.png

一、自创了甲、乙、丙语言

既然要开发操作系统,编程语言必不可少——为了更好地“砍柴”,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 还在项目介绍中特地展示了几张火龙操作系统的运行截图:

400447ee174e9513e634a5351985a83.png

cda86f72fa4b6198a0ebcdb2a10a0f1.png

e6d2bd1ba7e9e11defaebc74137f37a.png

从运行效果来看,火龙操作系统的整体表现可圈可点,那么接下来需要验证的就是它是否真的由中文编写。

随便点开一个系统中的内存管理源代码:

ffe989354065afb8a9fe877f060c4b6.png

有点不信邪?那就再打开一个图层管理代码:

61627290b2b67aed35bd77aafac08ae.png

由此可以看出,火龙操作系统的源码“画风”显然区别于往常见到的其他代码,满屏中文也印证了其“用中文编写”的特点。

二、“抄袭”风波?

然而,就在我们惊叹于 Jason.shao 真的可以用中文编写操作系统的时候,项目评论中 @dragon-os 的一条留言却激起了巨大讨论:

这个就是日本人川合秀实《30 天自制操作系统》里的“纸娃娃操作系统”,所谓的“甲语言”其实就是 asm 汇编语言,使用了拙劣的文本替换方式,把诸如 mov 这样的指令用蹩脚的“移送”来替换,就是换了个名称罢了。“乙语言”就是 c 语言。那个 z_tools 目录就是《30 天自制操作系统》源码光盘里的文件夹,太明显了。

1ca77e839c1c908d277bf72ed8c3d98.png

《30 天自制操作系统》是什么?简单来说这是一本从计算机构造、汇编语言、C 语言等角度全面解说如何自制操作系统的书籍,旨在帮助开发者从零编写所有代码、30 天即可创建出一个具有窗口系统的 32 位多任务操作系统。

而据 @dragon-os 分析,火龙操作系统其实就是这本书里的“纸娃娃操作系统”,甚至项目中的“z_tools 目录”也是《30 天自制操作系统》源码光盘里的文件夹,盗用痕迹“太明显”。

面对负面质疑,项目作者 Jason.shao 直接在评论区回复道:

“请你仔细阅读 30 天自制操作系统的开源协议再来吐槽,作者明确说明了代码可以随意修改,修改后的代码也不必开源,拿来商用都是可以的,关于本项目之后的代码都不在开源!”

不仅如此,Jason.shao 也早在“参考文献”中,明确指出项目有引用这本书籍:

0dac4478b81d5267049466d97c160b7.png

尽管 Jason.shao 已将事件起因解释清楚,但仍有部分开发者认为这种行为须注明来源:

@akemimadoka:“请注明基于《30天自制操作系统》的源码开发。”

@longware:“这种非 100% 自研,建议作者加个标注。”

不过也有很多人肯定 Jason.shao 勇于尝试的精神:

@安静书生:“不可否认,短期内没有任何意义,但是如果作者坚持下去了,有更多人参与进来,可能会引起革命性的变化,支持作者。”

@pcd:“思路还是挺好。 甲语言直接用编译器批量替换成机器码,乙语言用编译器转换成 C 语言然后用编译,丙语言直接使用 C# 批量替换编译。最妙的是这玩意儿竟然真的跑起来了!”

@久永:“无论成败如何,为行动者点赞,为开拓者喝彩!”

三、中文编程是否必要?

在众多评论中,还有一种中立的声音:“首先点赞, 但还是不明白用中文的意义何在”。

如文章开头所说,很多会产生“想用中文编程”这一想法的人中,最大的原因就是:英语不好。

那么不擅长英语是否真的会影响编程学习,中文编程必要吗?对于这个问题,答案可能因人而异。

  • 支持中文编程

这一观点可结合“@qwas982 曾请求 C# 团队开发特制的中文版”这一事件,当时其对于中文编程的呼吁引起了诸多人关注。

针对“编程中没有多少英文相关的语法更费力的是背景知识学习”这一观点,身为多年程序员的@吴烜曾反对道:“编程仍然有英文语法相关性,需要学习背景知识不意味着不需要进一步降低学习编程语言的门槛。”

美籍华裔程序员 Brian 也曾发出感慨:“对我来说,英文的资源简直就是理所应当,以至于我根本难以想象如果代码或文档用别的语言写会是什么模样。如果不会英文的话,人们就会很容易埋没在那些起步更早、作出更大贡献的程序员的阴影之中。”

  • 中文编程不必要

同时,也有部分开发者认为,想要中文编程的人大多是“编程门外汉”:以为自己之所以学不好编程,是因为不适应英语。

但实际上,换成“汉语”他们也还是不适应。因为他们不适应的不是英语,而是结构化思考和表达中文编程看似会降低入门门槛,但不论中文还是英文,复杂的编程思维并不会变。

那么,对于以上观点,你有什么看法呢?欢迎大家发表评论进行讨论!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

char与wchar_t在C语言中的区别 char与wchar_t在C语言中的区别 Apr 03, 2025 pm 03:09 PM

在 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 的字符范围更大,并使用专门的函数进行算术运算。

不会Rust也能用Tauri开发桌面应用吗? 不会Rust也能用Tauri开发桌面应用吗? Apr 04, 2025 pm 11:42 PM

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

爱心代码复制粘贴 爱心代码免费复制粘贴手机 爱心代码复制粘贴 爱心代码免费复制粘贴手机 Apr 04, 2025 am 06:48 AM

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

H5和小程序与APP的区别 H5和小程序与APP的区别 Apr 06, 2025 am 10:42 AM

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

C语言条件编译:新手入门到实战应用的详尽指南 C语言条件编译:新手入门到实战应用的详尽指南 Apr 04, 2025 am 10:48 AM

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

如何通过JavaScript或CSS控制浏览器打印设置中的页首和页尾? 如何通过JavaScript或CSS控制浏览器打印设置中的页首和页尾? Apr 05, 2025 pm 10:39 PM

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

如何在网页上使用本地安装的字体文件? 如何在网页上使用本地安装的字体文件? Apr 05, 2025 pm 10:57 PM

如何在网页上使用本地安装的字体文件你是否在网页开发中遇到过这样的情况:你已经在自己的电脑上安装了一...

无法以 root 身份登录 mysql 无法以 root 身份登录 mysql Apr 08, 2025 pm 04:54 PM

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