当前位置: 首页 > news >正文

关于在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镜像文件,可以看到:

大功告成!

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

相关文章:

  • 稳定运行的以ElasticSearch数据库为数据源和目标的ETL性能变差时提高性能方法和步骤
  • new Proxy的应用
  • 《AI大模型趣味实战》第6集:基于大模型和RSS聚合打造个人新闻电台
  • QGroupBox取消勾选时不禁用子控件
  • 人工智能在医疗影像诊断中的应用与挑战
  • 【红黑树封装map和set】—— 我与C++的不解之缘(二十六)
  • Java之网络编程
  • [前端面试场景题]虚拟列表
  • OceanBase数据库基于脚本的分布式存储层性能深度优化
  • C++:背包问题习题
  • 022-spdlog
  • linux_vim
  • 把生产队的大模型Grok 3 beta用来实现字帖打磨
  • 【设计模式】单件模式
  • LLM中的强化学习算法——RLHF、PPO、DPO、GRPO
  • 关闭表单后再次打开时校验提示未清除
  • SQL中的索引是什么
  • Retrofit中Jsoup解析html(一)
  • 老龄化社会的行业分析——以日本为例
  • string常见的接口使用(3)
  • 纪念|“补白大王”郑逸梅,从藏扇看其眼光品味
  • 全军军级以上单位新任纪委书记监委主任培训班结业
  • 于东来再次回应玉石质疑:邀请前往胖东来深入考察,随时欢迎各方调查
  • 鸿蒙概念股强势上涨,鸿蒙电脑本月正式发布,生态链即将补全
  • 最长3个月免费住宿,南昌人才驿站(洪漂驿站)申请指南发布
  • 长线游、县域游、主题游等持续升温,假期文旅市场供需两旺