[發明專利]一種shell的實現方法有效
| 申請號: | 201910243881.2 | 申請日: | 2019-03-28 |
| 公開(公告)號: | CN110007923B | 公開(公告)日: | 2022-12-06 |
| 發明(設計)人: | 程招招;羅侍田;陳家明;古小健;王建忠 | 申請(專利權)人: | 深圳市創聯時代科技有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F8/30 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 518000 廣東省深圳市寶*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 shell 實現 方法 | ||
本發明公開了一種shell的實現方法,包含以下步驟:步驟a1,通過宏指定需要添加的shell信息的類型;步驟a2,通過鏈接腳本編譯步驟a1中的shell信息到相應的段,并編譯生成相應的elf文件;步驟a3,解析步驟a2中的elf文件,提取并刪除所述elf文件中的所有shell信息,將shell信息添加等級并排序后再重新添加到elf文件中,然后利用elf文件生成相應的bin文件;步驟a4,調用執行相應的shell信息。本發明的有益效果是:查找速度快:該方法所添加的shell信息是有序的,所以查找可以通過二分法或其他方法快速定位,占用空間少,豐富了shell命令的多樣性。
技術領域
本發明涉及嵌入式系統軟件開發技術領域,特別涉及一種shell的實現方法。
背景技術
Shell是指“提供使用者使用界面”的軟件(命令解析器),它接收用戶命令,然后調用相應的應用程序以滿足用戶的需求。Shell管理用戶與系統之間的交互,可以簡單的描述為:shell等待用戶輸入,向系統解釋用戶的輸入,并且處理各種各樣的系統輸出結果。
而shell命令是嵌入式開發中常用的手段,目前shell的實現方式有:
1.通過鏈表的方式實現,該方法將shell信息填充在一個表格中,并將shell信息表通過鏈串起來,shell的函數查找通過遍歷鏈表實現。
2.通過編譯器直接生成相應的段實現,即通過將shell函數信息表編譯到固定的段,在連接腳本中找到確定該段的起始結束地址,shell信息的獲取也是通過遍歷整個表格。
3.執行帶符號表的elf文件,通過讀取解析elf文件獲取shell函數的信息。elf在計算機科學中,是一種用于二進制文件、可執行文件、目標代碼、共享庫和核心轉儲的標準文件格式。
以上三種實現方式均存在缺點和不足:1.通過鏈表的方式實現,shell使用復雜,管理鏈表使用內存較多,shell函數比較單一,添加一個shell命令時,需要添加數組,還需要調用安裝命令,使用起來很不方便;2.通過編譯器生成相應的段實現,其中典型的u-boot就是這種方式實現的,缺點是函數單一,shell信息未經排序,shell函數查找需要遍歷整個表格查找過程比較慢;3.通過查找elf文件符號表的方式占用空間大,不適合嵌入式開發。
發明內容
為克服上述背景技術shell實現方式中的缺陷和不足,本發明提出一種shell的實現方法,其功能是通過如下技術方案實現的。
一種shell的實現方法,包含以下步驟:步驟a1,通過宏指定需要添加的shell信息的類型;步驟a2,通過鏈接腳本編譯步驟a1中的shell信息到相應的段,并編譯生成相應的elf文件;步驟a3,解析步驟a2中的elf文件,提取并刪除所述elf文件中的所有shell信息,將shell信息添加等級并排序后再重新添加到elf文件中,然后利用elf文件生成相應的bin文件;步驟a4,調用執行相應的shell信息。
進一步的,所述步驟a1中,shell信息分為常規shell命令,拓展shell和全局函數調用三個類型。
進一步的,所述常規shell的命令參數由命令執行者解釋,具備固定的函數原型。
進一步的,所述拓展shell命令可以執行任何函數,拓展shell的命令參數由shell模塊進行參數解析,調用拓展shell函數時需要按照一定格式輸入參數。
進一步的,所述全局函數所述全局函數是程序中常規shell命令和擴展shell命令未涵蓋的全部函數,調用全局函數時,參數由shell模塊進行參數解析,shell命令行需要按照一定格式輸入參數。
進一步的,在所述步驟a2中,將shell信息編譯到不同的段中的具體過程為:首先設置常規shell的變量、函數、幫助信息和拓展shell的變量、函數、幫助信息,然后在鏈接腳本中指定保存的段。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳市創聯時代科技有限公司,未經深圳市創聯時代科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910243881.2/2.html,轉載請聲明來源鉆瓜專利網。





