成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何將 FreeDOS 作為嵌入式系統使用

系統 Linux
在 DOS 上建立一個嵌入式系統需要定義一個最小化的 DOS 環境來運行單個應用程序。幸運的是,設置一個最小化的 FreeDOS 環境是非常容易的。從技術上來說,啟動 FreeDOS 并運行 DOS 應用程序僅需要內核和一個 FDCONFIG.SYS 配置文件。

[[436520]]

現在,很多嵌入式系統都是在 Linux 上運行的。但是,在很久很久以前,嵌入式系統要么在一個定制的專有的平臺上運行,要么在 DOS 上運行。

FreeDOS 網站 宣稱,大多數人使用 FreeDOS 來完成三項主要任務:

  1. 玩經典的 DOS 游戲
  2. 運行老式的 DOS 軟件
  3. 運行一款嵌入式系統

但是,運行一個“嵌入式”系統的意義是什么呢?

嵌入式系統基本上是一款非常小的系統,專用于運行一個特定的任務。你可以把現在的嵌入式系統當作是 物聯網(IoT)的一部分,這包括傳感器、恒溫器和門鈴攝像頭。現在,很多嵌入式系統都是在 Linux 上運行的。

但是,在很久很久以前,嵌入式系統要么在一個定制的專有的平臺上運行,要么在 DOS 系統上運行。在現在,一些基于 DOS 的嵌入式系統仍然在運行,例如,收銀機或電話專用交換機(PBX)系統。舉個例子來說,在 2017 年,酷愛列車的人發現一個正在運行 FreeDOS 的俄羅斯的電動列車控制系統 (俄語: САВПЭ),它使用特殊的軟件來控制和監控郊區列車的線路,并發布乘客通告。

在 DOS 上建立一個嵌入式系統需要定義一個最小化的 DOS 環境來運行單個應用程序。幸運的是,設置一個最小化的 FreeDOS 環境是非常容易的。從技術上來說,啟動 FreeDOS 并運行 DOS 應用程序僅需要內核和一個 FDCONFIG.SYS 配置文件。

安裝一款最小化的系統

我們可以使用 QEMU 仿真器來模擬一個專用的、最小化的 FreeDOS 系統,并給它分配很少的資源。為了更準確地反映一個嵌入式系統,我將定義一個只有 8 MB 的存儲器和僅僅有 2 MB 的硬盤驅動器的虛擬機。

為創建這個微小的虛擬硬盤,我將使用這個 qemu-img 命令來定義一個 2M 的文件:

  1. $ qemu-img create tiny.img 2M
  2. Formatting 'tiny.img', fmt=raw size=2097152

下面的這行命令定義了一個 32 位的 “i386” CPU、8MB 的存儲器,使用 2MB 的 tiny.img 文件作為硬盤驅動器鏡像,使用 FreeDOS 1.3 RC4 LiveCD 作為 CD-ROM 介質。我們也將機器設置為從 CD-ROM 驅動器啟動(-boot order=d),盡管我們只需要用它來安裝系統。在我們完成所有的設置后,我們將從該硬盤啟動完成的嵌入式系統:

  1. qemu-system-i386 -m 8 -hda tiny.img -cdrom FD13LIVE.iso -boot order=d

使用 “現場環境模式Live Environment mode” 來啟動系統,這將為我們提供一個正在運行的 FreeDOS 系統,我們可以使用它來將一個最小化的 FreeDOS 轉移到硬盤上。 

啟動到 LiveCD 環境之中(Jim Hall, CC-BY SA 4.0

我們需要在虛擬硬盤驅動器上為我們的程序創建一個分區。為此,從命令行中運行 FDISK 程序。FDISK 是 FreeDOS 上的一個標準的 磁盤分區 實用程序。使用 FDISK 來創建一個單個硬盤驅動器分區,占用整個(2 MB)硬盤驅動器。 

FDISK,在創建 2 MB 分區后(Jim Hall, CC-BY SA 4.0

但是,在你重新啟動 FreeDOS 之前,FreeDOS 不會看到新的硬盤驅動器分區 — FreeDOS 僅在啟動時讀取硬盤詳細信息。退出 FDISK ,并重新啟動 FreeDOS 。

在重新啟動后,你需要在新的硬盤驅動器上創建一個 DOS 文件系統。因為這里只有一個虛擬硬盤,FreeDOS 將識別其為 C: 驅動器。你可以使用 FORMAT 命令來在 C: 驅動器上創建一個 DOS 文件系統。使用 /S 選項將把操作系統文件(內核,外加一個 COMMAND.COM shell 的副本)轉移到新的驅動器上。 

格式化新的驅動器來創建一個 DOS 文件系統(Jim Hall, CC-BY SA 4.0   你已經創建了硬盤驅動器并將其格式化,現在,你可以安裝應用程序,這些應用程序是將會在新安裝的嵌入式系統上運行的。

安裝專用的應用程序

嵌入式系統實際上只是一個運行在一個專用系統上的單一用途的應用程序。這些應用程序通常是為其將要控制的系統而自定義構建的,例如,一臺收銀機、顯示終端、或控制環境。在這個演示中,讓我們使用一個來自 FreeDOS 1.3 RC4 安裝光盤中的程序。它需要足夠小,以適應我們為其創建的 2 MB 微型硬盤驅動器。這可以是任何東西,所以,為了好玩,讓我們把它變成一個游戲。

FreeDOS 1.3 RC4 包含一些有趣的游戲。我喜歡的一個游戲是一個名稱為 “Simple Senet” 的棋類游戲。它是一個基于 Senet 的古埃及棋類游戲。游戲的細節對這個演示并不重要,我們將安裝它,并將其設置為嵌入式系統的專業應用程序。

為安裝應用程序,在 FreeDOS 1.3 RC4 LiveCD 上,進入 \PACKAGES\GAMES 目錄。你將在其中看到一個很長的軟件包列表,而我們想要的 SENET.ZIP 。 

來自 FreeDOS 1.3 RC4 的一個游戲軟件包列表(Jim Hall, CC-BY SA 4.0

為解壓縮 “Simple Senet” 軟件包到虛擬硬盤上,使用 UNZIP 命令。所有的 FreeDOS 軟件包都是 Zip 文件,因此,你可以使用任意與 Zip 兼容的檔案實用程序來管理它們。FreeeDOS 1.3 RC4 包含創建 Zip 檔案文件的 ZIP 和提取 Zip 檔案文件的 UNZIP 。它們都來自 Info-Zip 項目 。

  1. UNZIP SENET.ZIP -d C:\FDOS

通常,使用 UNZIP 來提取 Zip 文件到當前目錄中。在命令行結尾的 -d C:\FDOS 選項將告訴 UNZIP 來提取 Zip 文件到 C:\FDOS 目錄之中。(-d 指的是“目的地”)。 

解壓縮 Simple Senet 游戲(Jim Hall, CC-BY SA 4.0

為了讓嵌入式系統啟動時運行 “Simple Senet” 游戲,我們需要告訴 FreeDOS 來使用 Senet 作為系統的 “shell” 。 默認的 FreeDOS 的 shell 是 COMMAND.COM 程序,但是,你可以在 FDCONFIG.SYS 內核配置文件中使用 SHELL= 指令來定義一個不同的 shell 程序。我們可以使用 FreeDOS 的 Edit 來創建新的 C:\FDCONFIG.SYS 文件。 

(Jim Hall, CC-BY SA 4.0

如果你需要定義其它的參數來支持嵌入式系統,你可以將其添加到 FDCONFIG.SYS 文件之中。例如,你可能需要使用 SET 動作來設置環境變量,或者使用 FILES= 或 BUFFERS= 語句來調整 FreeDOS 內核。

運行嵌入式系統

在全面地完成嵌入式系統的定義之后,現在,我們可以重新啟動計算機來運行嵌入式應用程序。運行一個嵌入式系統通常僅需要有限的資源,因此,在這個演示中,我們需要調整 QEMU 命令行來只從硬盤驅動器(-boot order=c)中啟動,而不再定義一個 CD-ROM 驅動器:

  1. qemu-system-i386 -m 8 -hda tiny.img -boot order=c

當 FreeDOS 內核啟動時,它將讀取 FDCONFIG.SYS 文件以獲取啟動參數。然后,它將使用 SHELL= 行的定義來運行 shell 。這將自動地運行 “Simple Senet” 游戲。 

作為一個嵌入式系統運行 Simple Senet(Jim Hall, CC-BY SA 4.0

我們已經使用了 “Simple Senet” 來演示如何在 FreeDOS 上設置一個嵌入式系統。根據你的需要,你可以使用任何你喜歡的獨立應用程序。在 FDCONFIG.SYS 中使用 SHELL= 行將其定義為 DOS 的 shell ,FreeDOS 將在啟動時自動地啟動該應用程序。 

不過,在這里有一個限制。嵌入式系統通常不需要退回到一個命令行提示符之中,因此這些專用應用程序通常不允許用戶退出到 DOS 之中。如果你設法退出了嵌入式應用程序,你可能會看到一個 “Bad or missing Command Interpreter” 的提示,你將需要在其中輸入一個新的 shell 的完整路徑。對于一個以用戶為中心的桌面系統來說,這將是一個問題。但是在一個嵌入式系統上,它只專注執行一種工作的,那么,你也永遠不需要退出嵌入式應用程序。

 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2024-07-26 08:00:00

2020-06-15 07:00:00

Linux嵌入式系統

2011-05-25 09:08:23

MeeGo平板電腦

2022-07-20 21:03:05

FreeDOS文本編輯器

2021-12-19 22:34:45

Linux容器系統

2022-01-03 23:33:40

Linux組件系統

2021-10-26 21:50:10

Rust嵌入式開發

2022-02-14 23:17:16

Gitlab嵌入式工具

2009-12-17 18:38:56

Fedora 7嵌入式

2009-04-11 15:22:24

Linux 2.6內核應用

2009-06-26 16:18:40

Windows Emb

2021-12-24 17:01:29

Linux工具系統

2009-06-04 16:19:52

GlassFish作為

2020-07-03 07:00:00

Linux組件

2011-01-06 15:11:09

嵌入式linux

2023-09-18 14:39:39

2011-04-25 10:25:43

OpenEmbedde嵌入式Linux

2017-12-21 10:43:44

Linux嵌入式終端

2010-01-12 17:32:40

ARM平臺

2024-02-28 08:00:54

Web嵌入式嵌入式系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 不卡欧美| 99视频在线免费观看 | 欧美日韩电影免费观看 | 亚洲综合一区二区三区 | 国产在线精品免费 | 亚洲bt 欧美bt 日本bt | 91久久国产综合久久91精品网站 | 日韩一区二区黄色片 | 天天拍天天操 | 日韩精品在线播放 | 国产传媒在线播放 | 国产精品日韩 | 日本爱爱 | 久久机热 | 偷偷操视频 | 日本人做爰大片免费观看一老师 | 色婷婷久久久久swag精品 | 天天艹天天干天天 | 中文字幕一区二区三区四区五区 | 在线色 | 中文字幕精品视频 | 国产高清在线精品一区二区三区 | 九九免费 | 噜噜噜噜狠狠狠7777视频 | 一区二区视频 | 国产精品我不卡 | 免费在线一区二区 | 操人视频在线观看 | 久久成人一区 | 日韩精品视频一区二区三区 | 亚洲三区在线观看 | 国产一区二区小视频 | 国产高清久久 | 亚洲成人一区二区 | 欧美精品影院 | 国产精品国产精品国产专区不卡 | 成人字幕网zmw | 精品不卡| 免费一级淫片aaa片毛片a级 | 一区二区在线看 | 免费国产一区二区视频 |