91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內(nèi)不再提示

致敬經(jīng)典:在國產(chǎn)開源操作系統(tǒng) RT-Thread 重溫 UNIX 彩色終端

RT-Thread官方賬號 ? 2024-06-27 08:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言


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

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

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


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

Busybox


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

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

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

Smart 已適配的 Busybox 命令集

init進程介紹


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

init進程運行之后會加載解析/etc/inittab文件的內(nèi)容,根據(jù)腳本項目決定接下來的運行模式和需要啟動的命令。以下是本次體驗中使用的 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

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

ash介紹

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

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


系統(tǒng)登錄并執(zhí)行 top 命令效果


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

https://github.com/kward/shunit2

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

1#!/bin/sh
2#本腳本就是倉庫對應路徑 ./example/suite_test.sh 文件的內(nèi)容。
3#這是一個測試套件樣例,允許開發(fā)者將測試函數(shù)注冊到shUnit2框架中,
4#使其成為測試執(zhí)行的一部分。對應的,沒有注冊的函數(shù)不會在 report 中體現(xiàn)
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 中執(zhí)行這個文件,我們就成功在 RT-Smart 中運行了一個基于命令解釋器實現(xiàn)的單元測試 suite。

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

執(zhí)行測試套件 suite_test.sh


作業(yè)控制(Job Control)介紹


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

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

●jobs命令

●fg 命令

●bg 命令

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

●& 啟動后臺作業(yè)

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


Vim 掛起效果

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


后臺作業(yè)換入前臺效果


總結(jié)


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

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

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

ART-Pi Smart 硬件規(guī)格情況

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

    關(guān)注

    37

    文章

    7401

    瀏覽量

    129275
  • UNIX
    +關(guān)注

    關(guān)注

    0

    文章

    296

    瀏覽量

    43040
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    4203

    瀏覽量

    46110
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1611

    瀏覽量

    44811
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    硬實時·廣生態(tài)·強賦能,中國工業(yè)報解讀RT-Thread工業(yè)發(fā)展之路|新聞資訊

    近日,《中國工業(yè)報》深度報道了RT-Thread(睿賽德)工業(yè)邊端操作系統(tǒng)領(lǐng)域的發(fā)展路徑。報道指出,憑借25億臺的全球裝機量與近20年的開源積淀,
    的頭像 發(fā)表于 02-02 18:53 ?360次閱讀
    硬實時·廣生態(tài)·強賦能,中國工業(yè)報解讀<b class='flag-5'>RT-Thread</b>工業(yè)發(fā)展之路|新聞資訊

    【好書推薦】RT-Thread第22本相關(guān)書籍!《嵌入式實時操作系統(tǒng)開發(fā)實踐》| 技術(shù)集結(jié)

    隨著物聯(lián)網(wǎng)、智能家居與工業(yè)控制等領(lǐng)域的快速發(fā)展,嵌入式實時操作系統(tǒng)的應用愈發(fā)廣泛。RT-Thread作為國產(chǎn)開源RTOS的代表,憑借其出色的實時性、組件化設(shè)計和強大的生態(tài)體系,已成為眾
    的頭像 發(fā)表于 10-16 18:46 ?684次閱讀
    【好書推薦】<b class='flag-5'>RT-Thread</b>第22本相關(guān)書籍!《嵌入式實時<b class='flag-5'>操作系統(tǒng)</b>開發(fā)實踐》| 技術(shù)集結(jié)

    RT-Thread睿賽德榮獲工博會“CIIF信息技術(shù)獎”,“1+X+N”戰(zhàn)略推動國產(chǎn)操作系統(tǒng)體系化發(fā)展 | 新聞速遞

    第二十五屆中國國際工業(yè)博覽會(工博會)上,國產(chǎn)嵌入式操作系統(tǒng)領(lǐng)軍企業(yè)RT-Thread睿賽德憑借其嵌入式
    的頭像 發(fā)表于 10-10 10:05 ?1019次閱讀
    <b class='flag-5'>RT-Thread</b>睿賽德榮獲工博會“CIIF信息技術(shù)獎”,“1+X+N”戰(zhàn)略推動<b class='flag-5'>國產(chǎn)</b><b class='flag-5'>操作系統(tǒng)</b>體系化發(fā)展 | 新聞速遞

    學習強國深度報道 RT-Thread“1+X+N”戰(zhàn)略,國產(chǎn)操作系統(tǒng)賦能高端制造引關(guān)注|媒體視角

    近日,國產(chǎn)嵌入式操作系統(tǒng)領(lǐng)軍企業(yè)RT-Thread睿賽德工博會發(fā)布的“1+X+N”戰(zhàn)略體系,獲得了國家級權(quán)威媒體平臺“學習強國”的重點報道。該報道從產(chǎn)業(yè)高度深入剖析了
    的頭像 發(fā)表于 09-29 17:37 ?1200次閱讀
    學習強國深度報道 <b class='flag-5'>RT-Thread</b>“1+X+N”戰(zhàn)略,<b class='flag-5'>國產(chǎn)</b><b class='flag-5'>操作系統(tǒng)</b>賦能高端制造引關(guān)注|媒體視角

    【好書推薦】RT-Thread第20本相關(guān)書籍!《嵌入式實時操作系統(tǒng)RT-Thread原理與應用》| 技術(shù)集結(jié)

    01內(nèi)容簡介ContentSummary本書為讀者提供了一個全面、系統(tǒng)RT-Thread學習指南,旨在幫助初學者及有經(jīng)驗的開發(fā)者掌握RT-Thread實時操作系統(tǒng)和STM32嵌入式微
    的頭像 發(fā)表于 08-24 10:05 ?1005次閱讀
    【好書推薦】<b class='flag-5'>RT-Thread</b>第20本相關(guān)書籍!《嵌入式實時<b class='flag-5'>操作系統(tǒng)</b><b class='flag-5'>RT-Thread</b>原理與應用》| 技術(shù)集結(jié)

    經(jīng)濟日報:國產(chǎn)嵌入式操作系統(tǒng)領(lǐng)軍企業(yè)RT-Thread正在持續(xù)把新思想、新技術(shù)留給上海|媒體視角

    經(jīng)濟日報報道RT-Thread睿賽德2025世界人工智能大會落下帷幕,一系列亮眼成果為上海AI產(chǎn)業(yè)注入動力。作為國產(chǎn)嵌入式操作系統(tǒng)領(lǐng)軍企業(yè),RT-Thread睿賽德
    的頭像 發(fā)表于 08-05 21:02 ?1123次閱讀
    經(jīng)濟日報:<b class='flag-5'>國產(chǎn)</b>嵌入式<b class='flag-5'>操作系統(tǒng)</b>領(lǐng)軍企業(yè)<b class='flag-5'>RT-Thread</b>正在持續(xù)把新思想、新技術(shù)留給上海|媒體視角

    界面專訪RT-Thread睿賽德:累計25億裝機量,國產(chǎn)操作系統(tǒng)“全棲戰(zhàn)士”如何靠“開源”突圍?| 媒體視角

    近日,RT-Thread睿賽德創(chuàng)始人&CEO熊譜翔先生,2025年第五屆RISC-V中國峰會期間,接受了界面媒體的專訪。作為國產(chǎn)開源嵌入式操作系統(tǒng)
    的頭像 發(fā)表于 08-04 14:11 ?1842次閱讀
    界面專訪<b class='flag-5'>RT-Thread</b>睿賽德:累計25億裝機量,<b class='flag-5'>國產(chǎn)</b><b class='flag-5'>操作系統(tǒng)</b>“全棲戰(zhàn)士”如何靠“<b class='flag-5'>開源</b>”突圍?| 媒體視角

    2025 CCF:國產(chǎn)操作系統(tǒng)RT-Thread睿賽德需求中扎根,開源中生長| 新聞速遞

    8月2-3日,由中國計算機學會主辦的“2025CCF中國開源大會”滬舉行。RT-Thread睿賽德創(chuàng)始人、上海開源信息技術(shù)協(xié)會理事長熊譜翔受邀出席,與眾多專家學者一同探討
    的頭像 發(fā)表于 08-04 14:11 ?1420次閱讀
    2025 CCF:<b class='flag-5'>國產(chǎn)</b><b class='flag-5'>操作系統(tǒng)</b><b class='flag-5'>RT-Thread</b>睿賽德<b class='flag-5'>在</b>需求中扎根,<b class='flag-5'>在</b><b class='flag-5'>開源</b>中生長| 新聞速遞

    RT-Thread 遇上 Rust:安全內(nèi)核 RusT-Thread 的誕生

    老師的推薦,很快我們就被其極高的安全特性,強大的包管理系統(tǒng)和編譯器以及豐富的社區(qū)支持所折服。然后我們調(diào)研時注意到了RT-Thread。它有著經(jīng)典
    的頭像 發(fā)表于 08-02 11:03 ?3533次閱讀
    <b class='flag-5'>RT-Thread</b> 遇上 Rust:安全內(nèi)核 RusT-<b class='flag-5'>Thread</b> 的誕生

    權(quán)威認證!RT-Thread操作系統(tǒng)100%國產(chǎn)自主可控,鑄就睿擎工業(yè)平臺安全基石? !

    工業(yè)自動化、電力控制、軌道交通等高端裝備領(lǐng)域,操作系統(tǒng)的安全可靠與自主可控是關(guān)乎產(chǎn)業(yè)命脈的核心訴求。作為國產(chǎn)嵌入式實時操作系統(tǒng)(RTOS)的領(lǐng)軍者,
    的頭像 發(fā)表于 07-11 17:05 ?3042次閱讀
    權(quán)威認證!<b class='flag-5'>RT-Thread</b><b class='flag-5'>操作系統(tǒng)</b>100%<b class='flag-5'>國產(chǎn)</b>自主可控,鑄就睿擎工業(yè)平臺安全基石? !

    RT-Thread榮獲2025優(yōu)秀開源項目 | 新聞速遞

    6月底,RT-Thread睿賽德受邀參與由上海開源信息技術(shù)協(xié)會主辦的2025上海開源創(chuàng)新精英薈。上海市商委副主任張杰出席會議并致辭。RT-Thread嵌入式
    的頭像 發(fā)表于 07-04 09:04 ?2637次閱讀
    <b class='flag-5'>RT-Thread</b>榮獲2025優(yōu)秀<b class='flag-5'>開源</b>項目 | 新聞速遞

    玄鐵加入RT-Thread 高級會員合作伙伴 | 戰(zhàn)略新篇

    今天起,玄鐵XuanTie正式成為RT-Thread高級會員合作伙伴。此次合作標志著雙方將在嵌入式操作系統(tǒng)創(chuàng)新、RISC-V生態(tài)構(gòu)建及行業(yè)應用落地等領(lǐng)域展開深度協(xié)同,加速推動開源技術(shù)的產(chǎn)業(yè)化進程
    的頭像 發(fā)表于 06-23 20:22 ?1104次閱讀
    玄鐵加入<b class='flag-5'>RT-Thread</b> 高級會員合作伙伴 | 戰(zhàn)略新篇

    【直播預告】《實時操作系統(tǒng)應用技術(shù)—基于RT-Thread與ARM的編程實踐》教學脈絡及資源簡介

    直播預告直播主題:《實時操作系統(tǒng)應用技術(shù)—基于RT-Thread與ARM的編程實踐》教學脈絡及資源簡介開放時間:2025年5月29日(周四)20:00主講老師:王宜懷課程類型:視頻直播觀看平臺
    的頭像 發(fā)表于 05-26 17:50 ?1252次閱讀
    【直播預告】《實時<b class='flag-5'>操作系統(tǒng)</b>應用技術(shù)—基于<b class='flag-5'>RT-Thread</b>與ARM的編程實踐》教學脈絡及資源簡介

    RT-Thread審核團招募: 深度參與開源RTOS社區(qū)治理與演進

    開源實時操作系統(tǒng),正持續(xù)優(yōu)化社區(qū)協(xié)作流程,現(xiàn)面向全球開發(fā)者招募審核團(ReviewTeam)成員,共同維護代碼質(zhì)量,推動RT-Thread生態(tài)繁榮發(fā)展!什么是RT
    的頭像 發(fā)表于 05-21 18:02 ?1251次閱讀
    <b class='flag-5'>RT-Thread</b>審核團招募: 深度參與<b class='flag-5'>開源</b>RTOS社區(qū)治理與演進

    中新社:RT-Thread攜“睿擎平臺”亮相工博會 | 媒體視角

    4月23日,成都國際工業(yè)博覽會拉開帷幕。中國新聞網(wǎng)專訪RT-Thread睿賽德,以“國產(chǎn)操作系統(tǒng)再亮劍,睿擎平臺開啟工業(yè)新時代”為題,報道了“睿擎工業(yè)開發(fā)平臺”工博會上首發(fā)亮相。中國
    的頭像 發(fā)表于 04-24 11:16 ?1272次閱讀
    中新社:<b class='flag-5'>RT-Thread</b>攜“睿擎平臺”亮相工博會 | 媒體視角