原创 搜狗輸入法在Linux Mint系統上的問題總結

系統環境:linux mint 18.3  1,、在Linux Mint系統上安裝搜狗輸入法後,任務欄不顯示搜狗輸入法圖標? 搜狗輸入法下載。 下載完成後雙擊或者sudo dpkg -ivh <path>安裝搜狗輸入法。安裝完成後右下角不

原创 數據結構之深入理解紅黑樹

概述 本文將會透徹理解什麼是紅黑樹,有什麼特點、優點與缺點,與其它樹結構(二叉查找樹、平衡二叉樹、2-3-4樹)有什麼區別和聯繫。寫作本文的目的旨在加深自己的理解,文中許多內容參考了網絡上的文章並根據自己的理解進行了整理。 第一部分:什麼

原创 Linux內核微觀設計——語句表達式和max/min/container_of宏(學習了!!!)

語句表達式的定義 GNU C 對 C 標準作了擴展,允許在一個表達式裏內嵌語句,允許在表達式內部使用局部變量、for 循環和 goto 跳轉語句。這樣的表達式,我們稱之爲語句表達式。語句表達式的格式如下: ({ 表達式1; 表達式2;

原创 數據結構之內核隊列kfifo

kfifo概述 據wiki介紹,環形緩衝區(ring buffer),也稱作圓形隊列(circular queue),圓形緩衝區(circular buffer),循環緩衝區(cyclic buffer),是一種用於表示一個固定尺寸、頭尾

原创 backtrace調試程序段錯誤

1、backtrace的用處 一般察看函數運行時堆棧的方法是使用GDB(bt命令)之類的外部調試器,但是,有些時候爲了分析程序的BUG,(主要針對長時間運行程序的分析),在程序出錯時打印出函數的調用堆棧是非常有用的。主要用於程序異常退出時

原创 內核數據結構之linux哈希表實現分析

1、內核哈希表衝突解決方法 hash 最重要的是選擇適當的hash函數,從而平均的分配關鍵字在桶中的位置,從而優化查找 插入和刪除所用的時間。然而任何hash函數都會出現衝突問題。內核採用的解決哈希衝突的方法是:拉鍊法,拉鍊法解決衝突的做

原创 Linux內核微觀設計——max/min/container_of宏(學習了!!!)

這裏再次分析總結gitbook中的兩個宏,一個是max/min宏,一個是內核第一宏container_of。 max/min宏 內核中的樣子: #define min(x, y) ({ \ typeof(x) _min1 = (

原创 內核數據結構之認識哈希表

關於哈希表 散列表(Hash table,也叫哈希表),是根據關鍵碼值(Key value)而直接進行訪問的數據結構。也就是說,它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度。這個映射函數叫做散列函數(哈希函數),存放記錄

原创 數據結構之內核隊列record使用例子

關於kfifo的實現參考   數據結構之內核隊列kfifo 例子來自內核下的samples/kfifo/record-example.c  /* * Sample dynamic sized record fifo implement

原创 靜態庫的格式

靜態庫只是一些目標文件的打包,沒有對目標文件內容進行任何修改。 The ar format has never been standardized; modern archives are based on a common for

原创 locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory”

locate是Linux系統中的一個查找(定位)文件命令,和find命令等找尋文件的工作原理類似,但 locate是通過生成一個文件和文件夾的索引數據庫,當用戶在執行loacte命令查找文件時,它會直接在索引數據庫裏查找,若該數據庫太久沒

原创 Exynos 4412的啓動過程

1. 啓動介質 在芯片手冊 "Booting Sequence"一節說了Exynos 4412支持從以下設備介質啓動: NAND flash memory SD/MMC memory card eMMC memory USB device

原创 ELF文件系列第六篇ELF文件運行視圖相關結構

介紹 這節首先描述程序頭的格式和運行程序相關的ELF文件結構,然後是程序的裝載過程。程序頭可以算是程序結構的一個總綱,它指明瞭文件中各個段的位置,還包含一些用於創建內存鏡像的必要內容。準備一個程序的內存鏡像,可以大體上分爲裝載和連接兩個步