关于在vscode中的Linux 0.11 应用程序项目的生成和运行

首先我们需要需要查看镜像文件
查看软盘镜像文件 floppyb.img 中的内容
在 VSCode 的"Terminal"菜单中选择"Run Build Task...",会在 VSCode 的顶部中间位置弹出一个
可以执行的 Task 列表,选择其中的"打开 floppyb.img"后会使用 Floppy Editor 工具打开该项目中的
floppyb.img 文件,用于查看软盘镜像中的文件。其中的 linuxapp.exe 文件就是刚刚生成的 Linux 0.11
应用程序,可以注意查看一下该文件的修改日期,如图 1-4 所示。查看完毕后关闭 Floppy Editor。

在 VSCode 的"Terminal"菜单中选择"Run Build Task...",会在 VSCode 的顶部中间位置弹出一个
可以执行的 Task 列表,选择其中的"打开 floppyb.img"后会使用 Floppy Editor 工具打开该项目中的
floppyb.img 文件,用于查看软盘镜像中的文件。其中的 linuxapp.exe 文件就是刚刚生成的 Linux 0.11 应用程序。如果没有的话可以手动添加进去
Linux 0.11 启动后,在 Bochs 的 Display 窗口的终端中使用"mcopy b:linuxapp.exe
linuxapp"命令将软盘 B 中的可执行文件 linuxapp.exe 拷贝到硬盘的当前目录中,并命名为
linuxapp

在终端输入"linuxapp"命令运行上一步拷贝的文件 linuxapp,此时会提示"无法运行二进制文
件"信息,原因是 linuxapp 文件没有可执行权限。使用"ls -l linuxapp"命令查看该文件
的权限,可以看到其只有 r(read)和 w(write)权限,而没有 x(execute)权限

使用"chmod +x linuxapp"命令使之具有可执行权限。再次使用 ls 命令确认文件权限修改后,
就可以运行该文件了

接下来我们讲如何 在 Linux 0.11 操作系统中编写应用程序
首先我们在Linux 0.11 启动完毕后,在其终端中使用下列命令创建
一个 newapp 文件夹,并进入该文件夹

使用 vi 创建一个源代码文件 add.c,在其中定义一个函数 int add(int x, int y),计算并返回
两个参数之和

进入页面后:

后面编写程序:
注意3点最基础操作:
1.随意按一个值为唤醒写操作,就可以在里面输入代码了
2.如果输错了,需要按电脑左上角esc退出,然后调整左右光标到对应的那一个字符按x删除,再进入编辑模式同第一点
3.按esc后输入:和wq退出保存
其余操作可以看其他vi编辑器操作

复制代码
删除文本的命令可以分为删除单个字符和删除多个字符两类。其中,删除单个字符的命令包括下面两种情况。
x 命令:删除光标处的字符。若在 x 之前加上一个数字 n,则删除从光标所在位置开始向右的 n 个字符。
X 命令:删除光标前面的字符。若在 X 之前加上一个数字 n,则删除从光标前面那个字符开始向左的 n 个字符。

删除多个字符的命令包括下面几种情况。
dd 命令:该命令删除光标所在的整行。在 dd 前可加上一个数字 n,表示删除当前行及其后 n-1 行的内容。
D 命令或 d$ 命令:两个命令功能一样,都是删除从光标所在处开始到行尾的内容。
d0 命令:该命令删除从光标前一个字符开始到行首的内容。
dw 命令:该命令删除一个单词。若光标处在某个词的中间,则从光标所在位置开始删至词尾。同 dd 命令一样,可在 dw 之前加一个数字n,表示删除 n 个指定的单词。
d( 命令:该命令删除到上一句开始的所有字符。
d) 命令:该命令删除到下一句开始的所有字符。
d} 命令:该命令删除到上一段开始的所有字符。
d{ 命令:该命令删除到下一段开始的所有字符。
d<CR> 命令:该命令(<CR>表示回车)删除包括当前行在内的两行字符

退出保存后像上一步那样写main.c

vi main.c

然后写代码:

下面编写 makefile 文件管理项目
Make 工具可以用来管理一个项目中多个源代码文件的编译和链接过程,也可以用来管理多个模块间的
依赖关系,甚至是软件的安装过程。
控制台vi makefile,然后写以下代码:

:wq退出后记得sync保存到本地磁盘
并在 Linux 0.11 的终端使用下面的命令将刚刚编写的文件复制到软盘 B 中

复制代码
mcopy add.c b:add.c
mcopy main.c b:main.c
mcopy makefile b:makefile

最后关闭闭 Bochs 虚拟机

在打开floppyb.img镜像文件,可以看到:

大功告成!

以上为个人学习心得,有误请指出,感谢不尽!

相关推荐
安装虚拟机的老师傅1 分钟前
【2025最新】Windows系统装VSCode搭建C/C++开发环境(附带所有安装包)
c语言·windows·vscode·其他
铁锚2 分钟前
一个WordPress连续登录失败的问题排查
java·linux·服务器·nginx·tomcat
程序视点23 分钟前
Linux中find命令用法核心要点提炼
linux·linux命令·linux指令·linux的find命令
cwywsx42 分钟前
Linux:进程控制2
linux·运维·算法
熙曦Sakura43 分钟前
【Linux网络】 HTTP cookie与session
linux·网络·http
南棱笑笑生1 小时前
20250512给NanoPi NEO core开发板在Ubuntu core20.04系统下重新编译boot.img
linux·运维·ubuntu
Ha-gd1 小时前
Linux基础开发工具一(yum/apt ,vim)
linux·服务器
charlie1145141912 小时前
内核深入学习3——分析ARM32和ARM64体系架构下的Linux内存区域示意图与页表的建立流程
linux·学习·架构·内存管理
Caron_xcb2 小时前
大数据——解决Matplotlib 字体不足问题(Linux\mac\windows)
大数据·linux·matplotlib
水水沝淼㵘3 小时前
嵌入式开发学习日志(数据结构--顺序结构单链表)Day19
linux·服务器·c语言·数据结构·学习·算法·排序算法