原创 記一次構建基於arm的linux根文件系統的曲折歷程

1. 前言         要研究操作系統,移植linux到嵌入式設備上運行是很好的實踐方式,可以大大的加深對操作知識的理解,計算機是一門理論與實踐緊密結合的學科,光有理論是不行的,還得多實踐。但是,這要求比較多的相關知識,以及對linu

原创 Kernel panic - not syncing: Requested init /linuxrc failed (error -13).

開發板平臺exynos-4413,使用busybox-1.31.1製作ext4根文件系統。 Kernel panic - not syncing: Requested init /linuxrc failed (error -13). 這

原创 編譯isl和cloog庫出現:fatal error: gmp.h: No such file or directory

當編譯is和cloog庫l時出現錯誤:fatal error: gmp.h: No such file or directory,這個錯誤很奇葩。 編譯isl是需要依懶gmp庫的,一般加上前綴--with-gmp即可,但是我這次無論怎麼操

原创 Linux移植遇到的一些問題及解決方法(arm開發板)

1. 前言    自上次研究嵌入式系統以後,已經過了12年了,這期間,linux內核和硬件都發生了非常大的變化,加這方面的開發人員相對較少,碰到一些問題,需要耗費比較多的時間和精力來搜索資料和自己研究,對於沒於耐心和基礎的人來說,確實不容

原创 string類find函數返回值判定

代碼示例 int main()  {      string s = "Alice Bob Charlie";      size_t position;      position = s.find("none");      i

原创 多目錄Makefile編寫

         對於在Linux下編程來說,編寫一個好的Makefile是非常重要的,寫好了可以給編譯帶來極大的便利。而網上對於多目錄下Makefile的編寫講解的非常少, 有很多都不能達到目的。這裏參考了網上一篇Makefile,它是

原创 IPV4地址和子網理解

1. 前言 雖然IPv6會在未來逐漸替代IPV4,但是IPV4還會在還當長的時間內存在,並繼續發揮作用,所以有必要對IPV4地址和子網有個比較清晰的理解。 2. 關於IPV4地址的表示這裏不在詳述,主要是怎麼去理解地址的分類和子網劃分。

原创 操作系統中的缺頁

      缺頁是引入了虛擬內存後的一個概念。操作系統啓動後,在內存中維護着一個虛擬地址表,進程需要的虛擬地址在虛擬地址表中記錄。一個程序被加載運行時,只是加載了很少的一部分到內存,另外一部分在需要時再從磁盤載入。被加載到內存的部分標識爲

原创 學習彙編踩過的坑及優秀彙編教材推薦

1. 引言 在學校時沒有好好的學好彙編這門重要的基礎課程,總是聽很多老師說這門課程工作後很少用到,有衆多C,C++,JAVA等等高級語言。於是乎,這門課程草草結束,也沒有幾個學懂,即使有幾個同學有心學習,也是苦於晦澀難懂的教材,無從下手。

原创 VMWare下CentOS7無法啓動網絡

今天在VMWare中啓動CentOS使用的是橋接模式,突然不能上網了,看不到IP地址,使用命令systemctl status network.service 查看網絡,顯示網絡啓動失敗。網上有很多解決方案,但是我的情況都不是這些,好好的

原创 C語言多線程中使用errno全局變量的問題

        在C語言中,不管理Unix/Linux還是Windows下,每次系統調用或庫函數調用後,如果判斷返回值不對,需要調用errno全局變量來判斷具體錯誤。既然errno是全局變量,那麼如果在多線程函數中它不會被別的線程充掉嗎?

原创 從源碼構建gcc交叉編譯環境

       本文使用linaro公司製作的交叉編譯gcc源代碼進行安裝,那種製作好的交叉編譯工具鏈安裝不是咱的追求,不在學習範圍。 網上有很多安裝說明都是針對現成的工具鏈安裝,而且語焉不詳,很多問題沒有講解清楚。使用源碼編譯安裝,會加深