linux汇编编程调试工具:又一款纯汇编撸成的操作系统
linux汇编编程调试工具:又一款纯汇编撸成的操作系统嘿嘿,没错,这款新系统也是纯汇编撸成的,名叫 MenuetOS ,不过创作者不是战斗民族而是来自日不落大英帝国的大神们。说这些虽然有些伤感哈,不过为了振奋心情,现在我想带给大家一个好消息,那就是我又发现了一款新系统!文章链接:https://www.sysadm.cc/index.php/xitongyunwei/873-there-is-really-an-operating-system-written-entirely-in-assembler-fasm于是乎看过此文的不少小伙伴热血沸腾、直呼牛逼,他们高声呐喊要是我们也能出些大神那就太好了,至少不会被帝国主义卡脖子。此情此景我是非常感动的,但是我已经过了35岁的高寿,已经不能再投入火热的技术学习之中了,也不能再更多地为大家贡献自己的微薄力量了。
这个世界从来都不缺大神,然而大神们除了拥有惊人发量这点过人之处外,可能更加鲜为人知的却是三个字:闲得蛋疼!
没错,能称得上大神的多多少少有点吃饱了撑的,不过这只是我们外人看来的,作为大神他们从来不屑于我等小白的眼光,他们的眼睛只会一如既往地向前展望。
之前有幸为小伙伴们介绍过一篇文章,说的正是俄罗斯的大神们反对帝国主义垄断和压迫,走上了一条独立自主的光明大道,开发了一款纯汇编操作系统 KolibriOS 的可歌可泣的感人故事。
文章名称:《还真有一款纯汇编撸的操作系统 KolibriOS》
文章链接:https://www.sysadm.cc/index.php/xitongyunwei/873-there-is-really-an-operating-system-written-entirely-in-assembler-fasm
于是乎看过此文的不少小伙伴热血沸腾、直呼牛逼,他们高声呐喊要是我们也能出些大神那就太好了,至少不会被帝国主义卡脖子。
此情此景我是非常感动的,但是我已经过了35岁的高寿,已经不能再投入火热的技术学习之中了,也不能再更多地为大家贡献自己的微薄力量了。
说这些虽然有些伤感哈,不过为了振奋心情,现在我想带给大家一个好消息,那就是我又发现了一款新系统!
嘿嘿,没错,这款新系统也是纯汇编撸成的,名叫 MenuetOS ,不过创作者不是战斗民族而是来自日不落大英帝国的大神们。
虽然不是国产,但我们研究研究多少总是有好处的吧。
好奇吗?接下来我们就一起瞧瞧这款来自盎格鲁撒克逊大神们之手的 MenuetOS !
MenuetOS 究竟有什么特性,按照我个人的理解,我们还是找个镜像或什么先安装用用看,用着用着不就知道都有什么特性了嘛!
我们来到官网,首页非常简朴,堪称节约成本之业界楷模,是为了标榜占用系统资源极少吗?
为了不占用更多的篇幅,我就不在这儿贴图了。
官网链接:
制作可安装的 ISO镜像实际上 MenuetOS 被压缩得非常之小,以至于可以放到一张 1.44MB 的软盘上,因此官网上提供了软盘镜像下载。
图中上面那个箭头指的就是软盘镜像,而下面那个箭头指的是 Windows 下将镜像写入软盘的工具软件。
再看看这个 Windows 工具,它居然点名非要写到 A 盘,也就是软盘,其他盘一概不认。
可是这年头谁还有软盘啊,就算有软盘,软驱我也没地儿找去啊!
开局不利啊,这么坑爹吗?
其实不然,官方说了支持 64 位和 32 位系统,我们看到是正是 64 位的镜像。
而 64 位系统流行的今天怎么可能还用软盘呢,因此官网又提供了另外一种支持光盘镜像的方法。
我说呢,就算系统做得再小,也不能还抱着软盘这种老古董不放啊!
别高兴得太早哈,后面还有个小坑等着你呢!
如果你点击了前面的那个链接,你会发现你得到的并不是 ISO 镜像的下载链接,而是一份简要制作说明。
Create a bootable MenuetOS CD
=============================
Very Important: Make sure that your Bios fully supports the el-torito cd format.
Incompatible bios versions include:
- Phoenix Award Bios v6.00PG
- Insyde BIOS with Intel Macs
Bootable CD instructions:
1) Download and unzip isohdr.zip and 1.4MB Menuet image.
2) Combine the ISO-header with Menuet image
Dos: copy /b isohdr MenuetImage.img mboot.iso
Unix: cat isohdr MenuetImage.img > mboot.iso
Resulting mboot.iso size: 1527808 bytes.
3) Burn mboot.iso to CD and boot
CD burning application should recognize the used 'el-torito cd' format.
Note that the CD image is for booting only and does not include a ISO9660 filesystem.
简单地说,就是需要我们自动动手,将 ISO-header 引导信息与前面说的 MenuetOS 磁盘镜像合并来生成可引导的 ISO 镜像文件。
换句话说就是, 引导信息 磁盘镜像 = 可引导启动的完整 ISO 文件。
那具体怎么做呢?
先将 isohdr.zip 和 M6413970.zip 两个文件下载下来,刚才说了,前者是镜像引导文件,后者是系统主体文件。
官网下载链接:
然后将这两个压缩包分别解压,各自放出两个文件,一个叫 isohdr ,另一个叫 M6413970.IMG 。
将它们两个放一块儿,一会儿备用。
之后就是一条命令的事儿了,将两者合并。
; Dos/Windows 系统可以这么干
; /b 表示以二进制方式进行操作
copy /b isohdr M6413970.img MenuetOS.iso
; Unix/Linux 系统可以这么干
cat isohdr M6413970.img > MenuetOS.iso
说实话,以前学 copy 这个命令的时候,也就简单地合并过两个文本文件,没想到多年之后的今天,居然见识到了还可以这样合并引导文件。
我将合并后生成的镜像文件放在这儿,你们想要偷个懒的话就直接下载吧。
哎,你要仔细看的话就会发现,这玩意是真的很恐怖,一个镜像文件居然只有 1.45M ,还能再小点儿不?
MenuetOS64.iso(1.45M) & MenuetOS32.iso(1.45M)
下载链接:https://pan.baidu.com/s/1tEd1eFxNDCobJKsP_YU_LA
提取码:<关注公众号,发送000893>
初次使用接下来我们用制作好的镜像启动看看。
啧啧,毕竟短小而精悍,这启动速度刷刷的,你们瞧瞧!
文件资源管理器、文本编辑器,终端等基本的程序都有,不过用过后感觉还在起步阶段。
当然它还带有表格编辑软件以及像计算器之类的小程序。
还有,游戏肯定是少不了,这也许是大神们坚持下去的动力之一吧,毕竟大神也会累嘛,偶尔娱乐一下也很必要。
此外大神们还搞出了一些复古游戏,比如 Quake 和 Doom 等等,官网上另提供一个 CD 下载。
不过我怎么试都没试出来,最终也没玩上,有些遗憾!
网络如果你也像我用的是 VirtualBox 来体验的话,需要按照 MenuetOS 的要求做些小调整。
比如网卡连接方式选择 桥接模式 ,控制芯片要选择 Intel PRO/1000 T Server (83543GC) 。
然而就这么设置进入系统后,并不能直接使用网络,还得再费点功夫在系统里设置一下。
首先,点击桌面的 SETUP ,并在设置界面中应用网卡驱动。
然后,打开开始菜单,选择 SYSTEM > DRIVERS ,在驱动界面中确认网卡状态为正常工作状态。
还没完,再然后,点击开始菜单中的 INTERNET > SETUP > STACKCFG ,或是直接点击桌面的 STACKCFG 。
在网卡配置中,点中 Ethernet 一项,并在右侧确认 IP 地址,可以是服务器自动分配,也可以你自己手动设定。
OK,如果不出意外的话,你已经联网啦!
如果你是在实体机上测试,网卡是普通的 RTL8xxx 的螃蟹卡,那么它也有提供。
/FD/1/DRIVER/RTL8169
不过我专门找了台旧电脑,虽然驱动应用成功,但实际网络却并没有正常连通。
这可能是个坑,小伙伴们慎踩!
当我们正常联网后,我们就可以用它来做些什么了。
不过嘛,令人沮丧的是,MenuetOS 自带的这个 HTTPC 浏览器并不支持 https 协议,凑合着用吧,要求不能太高。
当然,除了 HTTP 之外,它还提供了 HTTP SERVER 和 ftp SERVER 等网络服务功能。
需要注意的是,当你用 ftp 客户端连接它时,记得要使用被动连接模式。
虽然你可能通过 ftp 成功连接到 MenuetOS 上,但我要告诉你的是,这玩意居然是只读的。
也就是说,它假装它能上传文件,其实并不保存任何文件,只能下载,原因等会儿会说。
音频和前面网络设定类似,我们需要先应用驱动程序,待音频设备激活后才能正常使用声卡。
通过 MenuetOS 自带的音频示例,我们能听到它发出哆唻咪发的音乐声。
顺便说下视频播放,我试了很多次,也按它的解码要求播放了符合标准的视频文件,奈何没有成功过。
不知道我哪里出错,如果有成功的小伙伴请告诉我一声哈。
开机初始设置前面我们说过的,这玩意虽然长得个子小,但它好像是个只读的系统,其实那只是它的某些开关在一开始就被关上了。
当我们看到 MenuetOS 开机启动时,就在那个黑色背景界面出现时快速按下 ESC 键,我们就能进入到配置程序中。
它默认的分辨率是 800x600 ,因此有大屏幕的小伙伴就可以在这儿给它改大一点儿了。
还有内存大小,默认只占用 640MB ,我配置了 1GB 内存,可改成 0x000400 。
还有一个前面没有提到的问题,那就是 USB 的使用问题。
系统默认是无法接入 USB 设备的,原因就在这儿,它压根就没给你开啊!
一个是 2.0 ,一个是 1.x 。
另外还有软盘写入以及硬盘、光盘的启用设定。
不过我测试过,并不能真的可以写入,可能是系统还有待完善吧。
其实网卡、声卡之类的设备都可以在这儿预先设定好,省得进入系统再改了。
虽然前面这些设置都可以在一开机的时候修改,但那是一次性的,重启后又没了。
怎么办呢?
其实我们可以这样,在开机的时候设定为 FD 可写,然后进入系统后,用文本编辑器修改 /FD/1/CONFIG.MNT 后保存。
之后一旦开启了相关设备,我们就可以正常接入使用了,比如接入 U 盘。
不过也不要太指望它能读写 U 盘里的东西哈。
写在最后这款 MenuetOS 从 2005 年直到现在都一直在更新,可以看得出,大神们不是真的闲,而是源自他们孜孜不倦的敬业奉献精神。
除了自身的爱好,对编程技术的热爱外,更多的是能让更多人从这款系统中受益的想法。
使用汇编就已经体现了他们对技术的要求更加专业、更加极致。
并且从一开始其设计标准也好、创意也好,都不是参考其他任何操作系统,更没有基于包括 Unix 或 POSIX 等我们熟知的常见标准。
而通过这样一种方式来设计并实现一个系统,虽然道路充满艰辛,但是无疑这种创新精神更加值得我们借鉴和学习。
就像有的小伙伴感叹的那样,我们也不缺大神,但何时我们的大神也能闲到撸一个有那么点意思的系统出来呢?
我想有比没有好,即使多等上几年也无妨,你们说呢?
网管小贾 / sysadm.cc