在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

致敬經典:在國產開源操作系統 RT-Thread 重溫 UNIX 彩色終端

RT-Thread官方賬號 ? 2024-06-27 08:35 ? 次閱讀

引言


上篇文章里我們向大家介紹了 RT-Thread v5.1.0 的一些新特性。其中包括了終端環境的進一步完善。終端是人機交互的重要接口。實用的終端工具可以顯著地提升系統使用者的幸福指數。舉例來說,當我們想要修改一些系統配置,或是編寫腳本時,一個好用的文本編輯器總是不可或缺。以 UNIX 文本編輯器 Vim 為例子。得益于 v5.1.0 內核對于 POSIX 的支持,我們拉取源碼構建燒錄后,就可以在 RT-Thread Smart 上享受到原滋原味的 Vim 編程體驗啦。

2216e982-341d-11ef-a655-92fbcf53809c.png

在 smart 上編輯 ./rt-thread/tools/building.py


感覺如何?如果你不滿足于淺嘗輒止,請不要擔心。接下來的文章里我們將向你繼續分享 RT-Thread Smart 中的終端環境組成和使用。

Busybox


被業內稱之為瑞士軍刀的BusyBox,嵌入式Linuxer對它肯定不會感到陌生,甚至熟悉到忽略他無時無刻的存在。它在單一的可執行文件中提供了精簡的Unix工具集,可運行于多款POSIX環境的操作系統

RT-Thread Smart 已適配了上百種 Busybox 命令。而 Busybox 也是 Smart 當前的終端環境的一個重要組成部分。其中包括 init 提供的初始化和系統管理,ash提供的命令解釋、腳本執行、作業控制等。接下來我們結合實際例子深入探索這些部分的實際應用和能力。

22217bea-341d-11ef-a655-92fbcf53809c.png

Smart 已適配的 Busybox 命令集

init進程介紹


init(為英語:initialization的簡寫)是 Unix 和 類Unix 系統中用來產生其它所有進程的程序。它以守護進程的方式存在,其進程號為1。系統在引導時加載內核后,便由內核加載init程序,由init程序完成余下的引導過程,比如加載執行級別,加載服務,啟動Shell/圖形化界面等等。

init進程運行之后會加載解析/etc/inittab文件的內容,根據腳本項目決定接下來的運行模式和需要啟動的命令。以下是本次體驗中使用的 inittab 腳本。

1#Copyright(c)2006-2024,RT-ThreadDevelopmentTeam
2#
3#SPDX-License-Identifier:Apache-2.0
4
5#MountFilesystem
6:mkdir-p/dev/shm/dev/pts/proc
7:mount-a
8
9#Rungetty&login
10console:/sbin/getty115200/dev/console
11
12#Restartbussiness
13:/sbin/init

根據這個腳本,init 進程會首先創建掛載點,然后通過 mount 命令掛載文件系統。等到上序進程都退出后,啟動 getty 獲得 console TTY 設備作為會話控制終端。getty 接著會啟動 login。它在 TTY 設備上等待用戶登錄,并在用戶名、密碼校驗成功后啟動 shell 程序,也就是 busybox ash 。

ash介紹

Almquist shell,經常被簡稱為 A Shell 或 ash,一種Unix shell,源自于Bourne shell,由肯尼斯·艾昆斯特(Kenneth Almquist)在SVR4上建立了這個分支。它的特色是快而且輕巧,兼容于POSIX,在后來的BSD版本上,它取代了Bourne shell。在BusyBox中,實現了類似于ash標準的shell的程序。

結合上文介紹的初始化過程配置,在系統登錄完成后,就會看到 ash 打印的命令提示符。此時一個 ash 進程就運行在 RT-Thread Smart 內核中實現用戶交互,命令解析。


系統登錄并執行 top 命令效果


既然來到shell中,那就不得不忽略其強大的腳本執行功能。shell 腳本的兼容度對于批處理、自動化測試來說非常重要。我們通過一個流行的 shell 腳本單元測試工具 shUnit2 展示這個功能。

https://github.com/kward/shunit2

shUnit2 本質是一套 shell 腳本庫,包含了眾多預定義函數。我們利用它,可以用簡單的腳本實現復雜的單元測試過程。將克隆下來的倉庫放入根文件系統的 /root 文件夾之后,可以在 ./shunit2/example 下看到一些樣例代碼。這里給出一個測試 suite 腳本。

1#!/bin/sh
2#本腳本就是倉庫對應路徑 ./example/suite_test.sh 文件的內容。
3#這是一個測試套件樣例,允許開發者將測試函數注冊到shUnit2框架中,
4#使其成為測試執行的一部分。對應的,沒有注冊的函數不會在 report 中體現
5suite(){
6suite_addTestsuite_test_one
7
8suite_test_two
9}
10
11suite_test_one(){
12assertEquals11
13}
14
15suite_test_two(){
16assertNotEquals12
17}
18
19#LoadandrunshUnit2.
20.../shunit2

在 ash 中執行這個文件,我們就成功在 RT-Smart 中運行了一個基于命令解釋器實現的單元測試 suite。

22259afe-341d-11ef-a655-92fbcf53809c.png

執行測試套件 suite_test.sh


作業控制(Job Control)介紹


在解釋作業控制前,我們先要簡單介紹一下它的概念。對于當前操作者來說,能夠操作的命令控制臺終端shell是一個獨立的shell,并根據是否可以直接操作當前shell的程序來將shell中的作業分為前臺與后臺兩種狀態。能夠直接在shell上交互的程序稱為前臺狀態,而不能直接交互的程序為后臺狀態。如果把所有的前后臺程序都統一稱作作業(job),那么可以基于當前的shell對所有的job來進行作業控制,從而稱作job control。

如上所述job control就是基于當前的shell前后臺作業來實現作業管理的,典型的管理有:將一個前臺程序ctrl+c終止掉,或將一個新的作業啟動放入后臺(&后綴啟動),或將一個后臺程序放入前臺(fg命令)。其它的操作例如還有:jobs命令查看所有后臺作業狀態,ctrl+z暫停一個前臺作業并放入后臺,bg將一個后臺作業轉入后臺運行等等。常用的操作命令集如:

●jobs命令

●fg 命令

●bg 命令

●ctrl+c/ctrl+z/ctrl+d/ctrl+\

●& 啟動后臺作業

那么作業控制有什么具體的應用呢?假設一個日常生活中的常見場景,首先我們使用 Vim 創建一個文件開始編輯。編輯過程中,可能突然需要做別的事情。此時就可以像 GUI 中的“最小化”操作一樣,通過 Ctrl^z 掛起 Vim 并回到 ash。通過 jobs 命令我們可以看到 Vim 掛起后更新為作業 %1 并處于停止狀態(Stopped)。


Vim 掛起效果

當我們想要繼續編輯時,就可以在 ash 中使用 fg 命令指定 Vim,將其恢復到前臺運行。這類似 GUI 中的“最大化”操作。當我們在 Vim 完成文檔編輯操作并退出后,可以通過 jobs 命令看到作業已經清空。通過 cat 命令我們看到文件已經成功保存。


后臺作業換入前臺效果


總結


基于 Busybox ,我們介紹了 RT-Smart 終端環境的使用體驗,看到了“瑞士軍刀” BusyBox 強大的功能。通過實際的啟動腳本示例,展示了 init 進程如何加載和初始化系統,通過 shUnit2 展示了 ash 提供的強大腳本執行能力,并借助 Vim 展示了job control 的前后臺控制特性。

不知道大家是否對 RT-Smart 的能力有了進一步了解。如果您對 RT-Thread Smart 的應用和功能感興趣,可以在RT-Thread 官方發布的 ART-Pi Smart 開發板上了解、學習和開發 RT-Thread Smart 系統與應用。這是首個運行 RT-Thread Smart 的 ARM Cortex-A7 開發板,具有強大的硬件性能和豐富的外設接口。

222a79ac-341d-11ef-a655-92fbcf53809c.png

ART-Pi Smart 硬件規格情況

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 操作系統
    +關注

    關注

    37

    文章

    6896

    瀏覽量

    123759
  • UNIX
    +關注

    關注

    0

    文章

    296

    瀏覽量

    41580
  • 開源
    +關注

    關注

    3

    文章

    3408

    瀏覽量

    42714
  • RT-Thread
    +關注

    關注

    31

    文章

    1305

    瀏覽量

    40393
收藏 人收藏

    評論

    相關推薦

    RT-Thread操作系統應用開發寒假師資培訓

    的應用技能,睿賽德科技聯合全國大學生嵌入式大賽組委會將于2025年1月16-29日陜西省西安市舉辦RT-Thread操作系統物聯網應用開發師資培訓。本次培訓旨在通
    的頭像 發表于 12-06 01:06 ?184次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>操作系統</b>應用開發寒假師資培訓

    RT-Thread聯合河北大學發起嵌入式操作系統專業班-保定站

    RT-Thread官方將在11月23至24日河北省保定市(河北大學)發起為期兩天的嵌入式操作系統專業培訓班暨RT-Thread師資培訓!本次培訓將會深入講解RT-Thread嵌入式實時
    的頭像 發表于 11-16 01:09 ?301次閱讀
    <b class='flag-5'>RT-Thread</b>聯合河北大學發起嵌入式<b class='flag-5'>操作系統</b>專業班-保定站

    混合部署 | 迅為RK3568上同時部署RT-Thread和Linux系統

    RT-Thread介紹 RT-Thread 是一個高安全性、實時性的操作系統,廣泛應用于任務關鍵領域,例如電力、軌道交通、車載系統、工業控制和新能源等。它的加入讓 RK3568 能夠
    發表于 11-01 10:31

    開源共生 商業共贏 | RT-Thread 2024開發者大會報名啟動!

    開發者大會將以“開源共生,商業共贏”為主題,將于2024年12月21日全天在上海臨港中心舉行。開源RT-Thread如何實現商業化?這一直是外界對RT-Thread
    的頭像 發表于 10-29 08:06 ?506次閱讀
    <b class='flag-5'>開源</b>共生 商業共贏 | <b class='flag-5'>RT-Thread</b> 2024開發者大會報名啟動!

    睿賽德科技正式推出RT-Thread開源 4+服務,助力企業用戶發展

    RT-Thread始于2006年,是100%由中國開發者編寫的開源嵌入式操作系統。經過10多年的發展,已經成為國內最流行的嵌入式操作系統,廣泛應用于工業、電力、軌道交通、智慧城市、智能
    的頭像 發表于 10-15 08:07 ?403次閱讀
    睿賽德科技正式推出<b class='flag-5'>RT-Thread</b><b class='flag-5'>開源</b> 4+服務,助力企業用戶發展

    混合部署 | 迅為RK3568上同時部署RT-Thread和Linux系統

    RT-Thread介紹 RT-Thread 是一個高安全性、實時性的操作系統,廣泛應用于任務關鍵領域,例如電力、軌道交通、車載系統、工業控制和新能源等。它的加入讓 RK3568 能夠
    發表于 09-18 10:54

    新書發布——《RT-Thread嵌入式實時操作系統內核、驅動和應用開發技術》

    我們非常高興地宣布,由鄭苗秀、沈鴻飛和廖建尚編著的《RT-Thread嵌入式實時操作系統內核、驅動和應用開發技術》一書正式發布。本書的編寫團隊由多位在嵌入式和實時操作系統領域有著豐富經驗的專家組
    的頭像 發表于 09-03 08:06 ?732次閱讀
    新書發布——《<b class='flag-5'>RT-Thread</b>嵌入式實時<b class='flag-5'>操作系統</b>內核、驅動和應用開發技術》

    RT-Thread內部機制大揭秘,帶你深入操作系統內核

    一、RT-Thread概述RT-Thread是一款具有顯著優勢的開源嵌入式實時操作系統。它不僅具備輕量級、實時性強的特點,還擁有廣泛的開源
    的頭像 發表于 08-01 08:11 ?3975次閱讀
    <b class='flag-5'>RT-Thread</b>內部機制大揭秘,帶你深入<b class='flag-5'>操作系統</b>內核

    睿賽德科技CEO熊譜翔 ——基于RT-Thread操作系統的安全車控系統實踐

    操作系統非常看重生態,RT-ThreadSafetyAuto操作系統也是這樣,通過兼容開源RT-Thread
    的頭像 發表于 07-13 08:35 ?1645次閱讀
    睿賽德科技CEO熊譜翔 ——基于<b class='flag-5'>RT-Thread</b><b class='flag-5'>操作系統</b>的安全車控<b class='flag-5'>系統</b>實踐

    RT-Thread 新里程碑達成——GitHub Star 破萬!

    RT-Thread實時操作系統開源項目GitHub上的star數量突破一萬!截止發文,RT-Thread作為實時
    的頭像 發表于 07-04 08:35 ?516次閱讀
    <b class='flag-5'>RT-Thread</b> 新里程碑達成——GitHub Star 破萬!

    實時操作系統RT-Thread及FreeRTOS

    RT-Thread與其他很多RTOS如FreeRTOS的主要區別之一是,它不僅僅是一個實時內核,還具備豐富的中間層組件,如下圖所示。FreeRTOS和RT-Thread是兩種常見的嵌入式實時操作系統
    的頭像 發表于 05-29 08:10 ?4112次閱讀
    實時<b class='flag-5'>操作系統</b>之<b class='flag-5'>RT-Thread</b>及FreeRTOS

    新書發布——《實時操作系統應用技術:RT-Thread與ARM編程實踐》

    RT-Thread又一本新書《實時操作系統應用技術——基于RT-Thread與ARM的編程實踐》發布,標志著RT-Thread生態和實時操作系統
    的頭像 發表于 05-11 08:35 ?880次閱讀
    新書發布——《實時<b class='flag-5'>操作系統</b>應用技術:<b class='flag-5'>RT-Thread</b>與ARM編程實踐》

    RT-Thread 操作系統應用開發線上師資培訓通知

    的標準配置。基于RTOS的編程技術將更加深入到高校電子信息類、計算機類、軟件工程類、自動化類,以及人工智能與物聯網等方向的教學實踐中。RT-Thread作為國產開源
    的頭像 發表于 04-30 08:35 ?384次閱讀
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>操作系統</b>應用開發線上師資培訓通知

    RT-Thread榮獲“最具影響力IoT操作系統獎”

    2024年3月30日,第十一屆開源操作系統年度技術會議(OS2ATC)西郊賓館舉辦!RT-Thread作為國內領先的開源
    的頭像 發表于 04-12 08:37 ?469次閱讀
    <b class='flag-5'>RT-Thread</b>榮獲“最具影響力IoT<b class='flag-5'>操作系統</b>獎”

    RT-Thread斬獲“最具影響力IoT操作系統獎”

    2024年3月30日,第十一屆開源操作系統年度技術會議(OS2ATC)西郊賓館舉辦!RT-Thread作為國內領先的開源
    的頭像 發表于 04-10 09:51 ?646次閱讀
    主站蜘蛛池模板: 中文字幕88页 | 亚洲网站在线观看 | 岬奈奈美在线 国产一区 | 免费观看黄色网址 | 六月丁香婷婷网 | 日本一区二区三区不卡在线看 | 欧美精品aaa久久久影院 | 午夜精品福利在线 | 成年黄网站免费大全毛片 | 欧美黑人黄色片 | 四虎影视在线影院在线观看 | 亚洲第二色 | 国产成人高清精品免费5388密 | 欧美一卡2卡三卡四卡五卡 欧美一卡二卡3卡4卡无卡六卡七卡科普 | 天堂资源在线种子资源 | 色婷婷久久免费网站 | 五月婷婷影视 | miya亚洲私人影院在线 | 欧美69xxx| 欧美三级在线免费观看 | 午夜国产精品久久久久 | 欧美色图亚洲自拍 | 又黄又视频 | 男女性接交无遮挡免费看视频 | 婷婷激情综合五月天 | 91伊人网| 日本午夜大片免费观看视频 | 亚洲免费小视频 | 国产精品国产午夜免费福利看 | 四虎最新免费观看网址 | 国产午夜视频在线观看第四页 | 天堂网址 | 下农村女人一级毛片 | 亚欧免费视频一区二区三区 | 天天草狠狠干 | 清纯漂亮小美女准备啪啪 | 99色综合| 久久久久激情免费观看 | 激情在线视频 | 黄乱色伦短篇小说h | 同性男男肉交短文 |