代码|“全宇宙首个”用中文编写的操作系统!作者还自创了甲、乙、丙编程语言?

整理 | 郑丽媛
出品 | CSDN(ID:CSDNnews)
对许多不擅长英语的编程萌新来说 , 乍一看代码中各类英文关键字 、变量名、函数名等 , 难免十分头大 , 甚至还会对自己能否学好编程提出质疑 。
代码|“全宇宙首个”用中文编写的操作系统!作者还自创了甲、乙、丙编程语言?
文章图片

如此心境下 , 他们脑海中往往会冒出一种想法:“ 要是可以用中文编程就好了 。 ”
你还别说 , 最近真有人落实了这个想法:一位湖南长沙的软件工程师 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 也曾发出感慨:“对我来说 , 英文的资源简直就是理所应当 , 以至于我根本难以想象如果代码或文档用别的语言写会是什么模样 。 如果不会英文的话 , 人们就会很容易埋没在那些起步更早、作出更大贡献的程序员的阴影之中 。 ”
  • 中文编程不必要
同时 , 也有部分开发者认为 , 想要中文编程的人大多是“编程门外汉”:以为自己之所以学不好编程 , 是因为不适应英语 。
但实际上 , 换成“汉语”他们也还是不适应 。 因为他们不适应的不是英语 , 而是结构化思考和表达 。 中文编程看似会降低入门门槛 , 但不论中文还是英文 , 复杂的编程思维并不会变 。
那么 , 对于以上观点 , 你有什么看法呢?
参考链接:
  • https://so.csdn.net/so/search?q=%E8%8B%B1%E8%AF%AD%E4%B8%8D%E5%A5%BD%E8%83%BD%E5%AD%A6%E7%BC%96%E7%A8%8B&t=&u=
— END—
本文为《新程序员004 》内容 , 《新程序员004》即将上市 , 敬请期待 。
— 推荐阅读 —
? 腾讯各事业群裁员比例没有网传30%那么高;郭明錤称苹果汽车团队已解散;Go 1.18 发布 , 正式支持泛型|极客头条
?CTO 梁军离职 , 市值蒸发 59 亿 , 核心技术人才仅剩 3 人!寒武纪“动荡”的 6 周年
? “当了十年IT程序员 , 我转型做自动驾驶开发的这五年!”

    推荐阅读