精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

擁抱現代:在國產操作系統RT-Thread體驗tmux終端復用的魅力

RT-Thread官方賬號 ? 2024-07-28 08:35 ? 次閱讀

引言


嵌入式平臺性能飛速發展的時代,市場上如雨后春筍般涌現出各類高性能高性價比的新興平臺,為我們的開發帶來了諸多便利。RT-Thread Smart 正是為更好地利用這些性能優勢而生的一款解決方案。通過它,我們可以輕松復用豐富的 RT-Thread Smart 系統組件以及 POSIX ,UNIX,GNU 生態的軟件棧,實現更高效的驗證和功能開發。

4d5d8f82-4c79-11ef-817b-92fbcf53809c.png

我們通過終端環境中功能強大的終端多路復用工具 tmux 作為引子,在本文里展示眾多豐富的組件在多窗口多終端及遠程登陸應用上的實際體驗,同時了解RT-Thread Smart 系統對復雜應用依賴的各類基礎設施提供的完善支持。

在正文開始前,我們可以通過以下的視頻對這些功能的效果一睹為快。
上圖展示了通過終端工具 ssh 遠程登錄到 RT-Thread Smart 系統,并綁定一個原先創建,正在運行中的會話的效果。左邊窗口中通過 top 工具實時觀測系統占用率,右邊則是運行中的 tar 打包和 bz2 壓縮任務。同時,我們創建了一個新的窗口,執行了一個 ps 命令。

tmux 簡介


Tmux 是一個終端復用器,允許用戶在一個終端會話中管理多個終端會話。用戶可以在一個窗口中分割多個面板、創建多個窗口、以及在不同會話之間切換。更重要的是,它可以在會話分離后繼續運行任務,并在會話重新連接時恢復原來的狀態(正如我們在開篇中的視頻里展現的那樣)。這使得它非常適合需要同時處理多個任務和長時間運行任務的用戶。

配置遠程終端服務


rt-smart 已經支持基于 Dropbear 的SSH 服務器,從而可以使用主機電腦用SSH遠程登錄來使用板端Smart操作系統

https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-smart/introduction/rt-smart-experiences/rt-smart-experiences?id=%e6%8a%a2%e5%85%88%e9%a2%84%e8%a7%88

smart上手體驗 (rt-thread.org)

從以上鏈接可以獲取 smart-prebuild預構建鏡像。使用 prebuilt 版本啟動系統后,可以在 /etc/inittab中看到如下內容:

4d681d8a-4c79-11ef-817b-92fbcf53809c.png其中含有dropbear的啟動命令/bin/dropbear -F 2>/root/dropbear.log,故系統啟動時自動啟動dropbear ssh服務器。qemu啟動腳本則將qemu的22號端口映射到主機58080端口。


新建Tmux 會話與脫離


第一個啟動的 Tmux 窗口,編號是0,第二個窗口的編號是1,以此類推。這些窗口對應的會話,就是 0 號會話、1 號會話。當然,使用編號區分會話不太直觀。因此我們也可以為會話起名,便于記憶。

tmux new-s


使用上面的命令就可以創建一個指定名稱的會話。下圖展示了這個命令的使用。在創建會話后,我們可以如同普通 shell 那樣在tmux 中執行命令。

此外,在執行腳本的過程中,按下Ctrl+b d或者輸入tmux detach -t /命令,就會將當前會話與窗口分離。但是會話和里面的進程仍然在后臺運行。使用結果如同上圖最后操作的那樣,我們會看到 tmux 打印 “detached (from session test)”。同時,終端回到 shell 程序控制。


連接先前創建的 Tmux 會話


tmux attach -t /


我們使用上面的命令接入先前創建的會話。這時終端回到原有的會話現場。這給我們檢查之前創建的管道狀態提供了巨大便利。

下圖展示了會話創建后脫離并重新連接的過程:


我們先使用tmux new-s hello 命令創建了一個名為hello的會話,接著使用Ctrl+b d 組合鍵將當前會話與窗口分離,接著又使用tmux attach -t hello接入hello會話現場。這時我們可以看到腳本仍在正常執行。

4d6ba694-4c79-11ef-817b-92fbcf53809c.png

tmux switch -t /


此外,當我們創建了多個會話時,可以通過tmux switch 來切換不同的會話。這里以hello 為例子。


上圖中可以看到成功切換到hello,里面的進程仍在運行

4d7a7c6e-4c79-11ef-817b-92fbcf53809c.png

tmux rename-session -t /

此外,我們還可以通過命令重命名已經創建的會話。


對于不想要的會話也可以通過tmux kill-session -t /來結束掉。當會話結束后,我們使用 tmux ls 命令就看不到 test2 會話了,并且也不能用attach再進行連接。


Tmux 窗格管理


Tmux 可以將窗口分成多個窗格(pane),每個窗格運行不同的命令。以下命令都是在 Tmux 窗口中執行。

●使用tmux split-window可以劃分上下兩個窗格,tmux split-window -h可以劃分為左右兩個窗格。

●窗格劃分后,可以通過tmux select-pane -U/D/L/R 命令移動光標位置,或者使用快捷鍵 ctrl+b 。

下面是窗格管理的快捷鍵使用大全:

Ctrl+b %:劃分左右兩個窗格。


Ctrl+b ":劃分上下兩個窗格。
Ctrl+b :光標切換到其他窗格。是指向要切換到的窗格的方向鍵,比如切換到下方窗格,就按方向鍵↓。
Ctrl+b ;:光標切換到上一個窗格。
Ctrl+b o:光標切換到下一個窗格。
Ctrl+b {:當前窗格與上一個窗格交換位置。
Ctrl+b }:當前窗格與下一個窗格交換位置。
Ctrl+b Ctrl+o:所有窗格向前移動一個位置,第一個窗格變成最后一個窗格。
Ctrl+b Alt+o:所有窗格向后移動一個位置,最后一個窗格變成第一個窗格。
Ctrl+b x:關閉當前窗格。
Ctrl+b !:將當前窗格拆分為一個獨立窗口。
Ctrl+b z:當前窗格全屏顯示,再使用一次會變回原來大小。
Ctrl+b Ctrl+:按箭頭方向調整窗格大小。
Ctrl+b q:顯示窗格編號。`在這里插入代碼片`


下面展示使用快捷鍵分割窗口和切換光標位置的過程:


Tmux 窗口管理


除了將一個窗口劃分成多個窗格,Tmux 也允許新建多個窗口。我們可以使用 tmuxnew-window命令創建新窗口,通過tmux select-window -t 命令用來切換窗口,通過tmux rename-window命令用于為當前窗口起名(或重命名)。

這些命令同樣有快捷鍵替代:

Ctrl+b c:創建一個新窗口,狀態欄會顯示多個窗口的信息


Ctrl+b p:切換到上一個窗口(按照狀態欄上的順序)。


Ctrl+b n:切換到下一個窗口。


Ctrl+b :切換到指定編號的窗口,其中的是狀態欄上的窗口編號。


Ctrl+b w:從列表中選擇窗口。


Ctrl+b ,:窗口重命名。

使用快捷鍵進行窗口的創建,切換,重命名過程如下:


同樣如果想要關閉某個窗格可以使用Ctrl+b x組合命令,這里不再演示

tmux 中使用 scp 實現安全文件傳輸


RTT內核用作ssh服務器,我們就可以通過scp來向其傳輸文件。以通過終端工具傳輸 mksd 腳本為例。我們首先配置好 RT-Smart 服務器的地址和用戶名,密碼。然后可以直接拖動客戶端操作系統上的文件到左側文件系統視窗中。此時會自動建立 scp 進程完成文件拷貝。


在 Tmux 背后是……


Tmux 的這些強大功能依賴于操作系統的幾個核心機制。首先是會話和進程組,Tmux 利用這些機制來管理和組織不同的終端會話和進程。每個 Tmux 會話可以包含多個窗口,而每個窗口又可以包含多個進程,這些進程被組織成進程組,以便統一管理。

其次,終端和偽終端是 tmux 實現多窗口和分割面板的基礎。偽終端提供了一個虛擬終端設備,使得用戶可以創建和管理多個虛擬終端,這些終端可以獨立運行并顯示各自的輸出。

此外,Tmux 是一個基于前后端架構的應用。前端負責用戶輸入和顯示輸出,而后端負責實際的任務管理和執行。前后端通信及異步事件處理也依賴于 libevent 庫。libevent 是一個輕量級的事件驅動編程庫,它基于 Unix 域套接字(UDS)、netlink 等基礎設施,為進程間雙工通信、多播和內核異步事件通知提供了高效的實現。這使得 tmux 能夠在需要處理大量并發事件時,依然保持高效、穩定的運行。

信號處理也是 tmux 功能的關鍵部分。Tmux 可以在會話分離和重新連接時通過內核提供的 SIGCONT、SIGSTOP 等POSIX 作業控制信號正確地管理和恢復進程狀態,確保任務能夠持續運行而不受干擾

4d7e6162-4c79-11ef-817b-92fbcf53809c.png

上圖總結了 Tmux 在 RT-Thread Smart 的運行環境中的各類軟硬件組件。它們保證了 RT-Thread Smart在多個方面為程序應用提供了便利和靈活。無論是進程間通信、與內核進行信息交換、還是通過netlink 處理異步事件,抑或是通過偽終端與終端仿真器進行交互,用戶程序都能夠更加輕松地操作系統,提高工作效率。RT-Smart 系統提供的豐富系統組件為嵌入式開發帶來了更多可能性,讓我們在這個快速發展的技術世界中走得更快、更遠。

結語


本文我們介紹了 RT-Thread Smart 系統在支持復雜應用方面的強大能力。從多窗口終端管理的 tmux 到遠程登錄的 SSH,RT-Thread Smart 展現了其在嵌入式開發中的靈活性和高效性。

希望通過本文,能夠讓更多的開發者了解并使用 RT-Thread Smart,在這個充滿活力的平臺上實現更多精彩的應用。讓我們一起期待,在未來的嵌入式開發旅程中,RT-Thread Smart 將繼續為我們帶來更多驚喜和便利。

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

    關注

    37

    文章

    6491

    瀏覽量

    122597
  • 終端
    +關注

    關注

    1

    文章

    1060

    瀏覽量

    29695
  • RT-Thread
    +關注

    關注

    31

    文章

    1225

    瀏覽量

    39223
收藏 人收藏

    評論

    相關推薦

    RT-Thread Studio操作系統

    stm32f407+rtthread 使用 ec20 ppp撥號開發環境一、工程創建二、模塊添加三、參數配置四、測試開發環境IDE:RT-Thread Studio操作系統
    發表于 08-24 07:44

    國產操作系統再“超越”,RT-Thread推動AIoT產業變革

    讓它運行多個操作系統,包括RT-Thread Smart、RT-Thread的RTOS,以及Linux或者安卓等等。熊譜翔解釋開發該組件的原因,是因為一些場合,對多算力、多核芯片也需
    發表于 01-04 08:00

    基于RT-Thread操作系統衍生rt-smart實時操作系統簡介

    ,例如 ARM Cortex-A 系列芯片,MIPS 芯片,帶 MMU 的 RISC-V 芯片等。rt-smart RT-Thread 操作系統的基礎上啟用獨立、完整的進程方式,同
    發表于 06-22 17:56

    RT-Thread編程指南

    RT-Thread編程指南——RT-Thread開發組(2015-03-31)。RT-Thread做為國內有較大影響力的開源實時操作系統,本文是RT
    發表于 11-26 16:06 ?0次下載

    RT-Thread用戶手冊

    RT-Thread用戶手冊——本書是RT-Thread的編程手冊,用于指導RT-Thread實時操作系統環境下如何進行編 程。
    發表于 11-26 16:16 ?0次下載

    RT-Thread Smart微內核操作系統發布!

    9月1日,由上海睿賽德電子科技有限公司舉辦的RT-Thread Smart微內核操作系統發布會于北京圓滿落幕,發布會以見微為主題,邀請到中國工程院院士、產業專家、高校教授及行業從業人員100余位蒞臨
    的頭像 發表于 09-09 10:49 ?2555次閱讀

    國民技術攜手RT-Thread共同推進MCU與RT-Thread操作系統廣泛適配

    日前,國民技術股份有限公司與知名物聯網操作系統廠商睿賽德科技(RT-Thread)簽署會員合作協議,正式成為RT-Thread高級會員。國民技術將基于通用MCU和RT-Thread物聯
    的頭像 發表于 12-16 09:56 ?2204次閱讀

    Github RTOS榜單star榜第一:國產開源RT-Thread物聯網操作系統簡介

    RT-Thread 簡介作為一名 RTOS 的初學者,也許你對 RT-Thread 還比較陌生。然而,隨著你的深入接觸,你會逐漸發現 RT-Thread魅力和它...
    發表于 02-07 11:51 ?0次下載
    Github RTOS榜單star榜第一:<b class='flag-5'>國產</b>開源<b class='flag-5'>RT-Thread</b>物聯網<b class='flag-5'>操作系統</b>簡介

    RT-Thread實時操作系統安裝向導

    RT-Thread 是一個集實時操作系統(RTOS)內核、中間件組件和開發者社區于一體的技術平臺,由熊譜翔先生帶領并集合開源社區力量開發而成,RT-Thread 也是一個組件完整豐富、高度可伸縮
    發表于 04-02 09:43 ?7次下載

    RT-Thread學習筆記 RT-Thread的架構概述

    的種種優越之處。RT-Thread 是一款完全由國內團隊開發維護的嵌入式實時操作系統(RTOS),具有完全的自主知識產權。經過 16 個年頭的沉淀,伴隨著物聯網的興起,它正演變成一個功能強大、組件豐富的物
    的頭像 發表于 07-09 11:27 ?4280次閱讀
    <b class='flag-5'>RT-Thread</b>學習筆記 <b class='flag-5'>RT-Thread</b>的架構概述

    RT-Thread操作系統已經成功部署至芯馳E3

    近日,國內領先的車規芯片企業芯馳科技與國內領先的車載RTOS(實時操作系統)企業睿賽德科技(RT-Thread)共同宣布:RT-Thread操作系統全面支持芯馳科技E3系列 MCU芯片
    的頭像 發表于 09-09 09:15 ?1109次閱讀

    RT-Thread操作系統的FreeRTOS兼容層

    的兼容項目中。 1 概述 這是一個針對RT-Thread國產操作系統的FreeRTOS操作系統兼容層,可以讓原有基于FreeRTOS操作系統
    的頭像 發表于 01-14 00:55 ?1408次閱讀

    【師資培訓】基于RT-Thread操作系統使用LVGL實戰教學

    20230731師資培訓 RT-Thread R T-Thread 作為 國產開源嵌入式 物聯網操作系統 , 具有 中立第三方 / 構架先進 / 功能強大 / 社區繁榮等特點,能夠加速
    的頭像 發表于 07-24 19:35 ?1093次閱讀
    【師資培訓】基于<b class='flag-5'>RT-Thread</b><b class='flag-5'>操作系統</b>使用LVGL實戰教學

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

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

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

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