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

大功告成!

以上為個人學習心得,有誤請指出,感謝不盡!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/74492.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/74492.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/74492.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用CSS3實現炫酷的3D視差滾動效果

使用CSS3實現炫酷的3D視差滾動效果 這里寫目錄標題 使用CSS3實現炫酷的3D視差滾動效果項目概述核心技術實現1. 3D空間的創建2. 視差層級設置3. 動畫效果實現流星動畫月亮發光效果 技術難點與解決方案1. 層級重疊問題2. 性能優化3. 響應式適配 開發心得總結 項目概述 在這個項目…

作業12 (2023-05-15 指針概念)

第1題/共11題【單選題】 關于指針的概念,錯誤的是:( ) A.指針變量是用來存放地址的變量 B.指針變量中存的有效地址可以唯一指向內存中的一塊區域 C.野指針也可以正常使用 D.局部指針變量不初始化就是野指針 回答正確 答案解析: A:正確,指針變量中存儲的是一個地址,指…

【ESP32S3】esp32獲取串口數據并通過http上傳到前端

通過前面的學習&#xff08;前面沒發過&#xff0c;因為其實就是跑它的demo&#xff09;了解到串口配置以及開啟線程實現功能的工作流程&#xff0c;與此同時還有esp32作為STA節點&#xff0c;將數據通過http發送到服務器。 將這兩者聯合 其實是可以得到一個&#xff1a;esp32獲…

《鴻蒙攜手AI:解鎖智慧出行底層邏輯》

在科技飛速發展的當下&#xff0c;智慧出行成為人們對未來交通的美好期許&#xff0c;而鴻蒙系統與人工智能的深度融合&#xff0c;正為這一愿景的實現提供強大助力。從技術原理角度深入剖析&#xff0c;鴻蒙系統究竟如何支撐人工智能在智慧出行場景中的應用呢&#xff1f;這背…

MyBatis-Plus緩存機制深度解析與SpringBoot整合實戰

一、MyBatis-Plus緩存機制全景解析 MyBatis-Plus在MyBatis原生緩存基礎上進行了深度增強,形成了多層次的緩存體系: 1. 緩存層級架構 應用層 ├── MP擴展緩存(多租戶/邏輯刪除) ├── 二級緩存(Mapper級別,跨Session共享) └── 一級緩存(SqlSession級別,默認開…

Day38 | 1365. 有多少小于當前數字的數字、941. 有效的山脈數組、1207. 獨一無二的出現次數、283. 移動零、189. 輪轉數組

1365. 有多少小于當前數字的數字 題目鏈接&#xff1a;1365. 有多少小、于當前數字的數字 - 力扣&#xff08;LeetCode&#xff09; 題目難度&#xff1a;簡單 代碼&#xff1a; class Solution {public int[] smallerNumbersThanCurrent(int[] nums) {Map<Integer,Inte…

數據人的進階之路:四年數倉實踐與成長思考

前言 在數據倉庫開發的過程中&#xff0c;常常會遇到很多值得思考的問題&#xff0c;它們不僅關乎技術的深度&#xff0c;也涉及業務理解、個人的成長&#xff0c;甚至是數據行業未來的價值。回顧過去的經歷&#xff0c;有很多問題反復出現&#xff0c;甚至成為繞不開的課題&am…

大文件分片上傳及斷點續傳實現

使用 支持分片上傳及斷點續傳 前端使用 vue 2 后端使用 springboot 源碼在私信

圖解AUTOSAR_SWS_IOHardwareAbstraction

AUTOSAR IO硬件抽象層詳解 基于AUTOSAR標準的IO硬件抽象層設計與實現指南 目錄 1. 概述2. 架構設計 2.1 模塊架構概覽2.2 內部組件結構2.3 與其他模塊的交互接口 3. 狀態機 3.1 狀態定義3.2 狀態轉換3.3 狀態行為 4. ADC信號處理流程 4.1 初始化流程4.2 轉換請求和處理4.3 通知…

Python正則表達式(一)

目錄 一、正則表達式的基本概念 1、基本概念 2、正則表達式的特殊字符 二、范圍符號和量詞 1、范圍符號 2、匹配漢字 3、量詞 三、正則表達式函數 1、使用正則表達式&#xff1a; 2、re.match()函數 3、re.search()函數 4、findall()函數 5、re.finditer()函數 6…

北京交通大學第三屆C語言積分賽

作者有言在先&#xff1a; 題解的作用是交流思路&#xff0c;不是抄作業的。可以把重點放在思路分析上而不是代碼上&#xff0c;畢竟每個人的代碼風格是不一樣的&#xff0c;看別人的代碼就跟做程序填空題一樣。先看明白思路再看代碼。 還有就是&#xff0c;deepseek真的很好用…

機器學習之條件概率

1. 引言 概率模型在機器學習中廣泛應用于數據分析、模式識別和推理任務。本文將調研幾種重要的概率模型,包括EM算法、MCMC、樸素貝葉斯、貝葉斯網絡、概率圖模型(CRF、HMM)以及最大熵模型,介紹其基本原理、算法流程、應用場景及優勢。 2. EM算法(Expectation-Maximizati…

硬件基礎--03_電流

電流 十九世紀初:[電流方向]是指正電荷的移動方向。 后來:對于金屬導體&#xff0c;正電荷沒移動&#xff0c;其實是電子在移動。 為了定義的統一性[電流方向]仍然定義為正電荷的移動方向 所以:[電流方向]與[電子移動方向]是相反的。 概念:電荷的定向移動&#xff0c;形成了電…

multi paxos協議

1. Redo Log 同步的核心目標 ?數據一致性&#xff1a;確保所有副本在事務提交后具有相同的數據視圖。?容錯性&#xff1a;在主副本故障時&#xff0c;從副本能快速接管并恢復數據。?高吞吐&#xff1a;通過批量同步和并行處理提升效率。 2. Multi Paxos 協議的同步流程 M…

借壹起航東風,中國工廠出海開啟新征程

在經濟全球化不斷深入的當下&#xff0c;中國工廠正以積極的姿態投身海外市場&#xff0c;渴望在全球商業版圖中占據一席之地&#xff0c;綻放獨特的光彩。然而&#xff0c;出海之路充滿了挑戰與艱辛&#xff0c;品牌塑造困難重重、詢盤量不穩定、營銷成本居高不下等問題&#…

【MySQL】監控MySQL

目錄 使用狀態變量監控MySQL 使用性能模式&#xff08;Performance Schema&#xff09;監控MySQL 1.性能模式 2.性能模式設置表 3.sys模式 使用狀態變量監控MySQL 使用 show status 語句評估系統運行狀況。 可以添加范圍修飾符global或session來顯示全局或本地狀態信息。…

在linux系統上卸載并重新安裝Docker及配置國內鏡像源指

前言 Docker 作為容器化技術的核心工具&#xff0c;廣泛應用于開發、測試和部署環境。但在某些情況下&#xff08;如版本沖突、配置錯誤等&#xff09;&#xff0c;可能需要徹底卸載并重新安裝 Docker。此外&#xff0c;國內用戶直接訪問 Docker 官方鏡像源可能速度較慢&#…

Mysql內置函數篇

&#x1f3dd;?專欄&#xff1a;Mysql_貓咪-9527的博客-CSDN博客 &#x1f305;主頁&#xff1a;貓咪-9527-CSDN博客 “欲窮千里目&#xff0c;更上一層樓。會當凌絕頂&#xff0c;一覽眾山小。” 目錄 7.函數 7.1 日期函數 函數總&#xff1a;?編輯 獲得當前日期 獲得…

小愛控制OK影視搜索視頻

在adb connect ip以后&#xff0c;可以這樣打開Ok影視&#xff0c;并且進行控制 pm list packages -3 #只顯示第三方 dumpsys package com.fongmi.android.tv |grep Activity #返回 com.fongmi.android.tv/.ui.activity.HomeActivity am start -n com.fongmi.android.tv/.u…

電機倍頻曲線的一些奇異特性-原因分析及應用

這里對感應電機倍頻曲線的特征進行了說明&#xff0c;然后將其特性用于電機轉差率和工況的測量。先給出可以直接利用的結論&#xff1a; 電機的工況和轉差率譜線會體現為5x,7x譜線調制在基頻附近。兩條調制過攜帶s信息的譜線距離基頻譜線的距離。 與真實轉速相對同步轉速的頻差…