原创 深入理解軟件包的配置、編譯與安裝【轉】

從源代碼安裝過軟件的朋友一定對 ./configure && make && make install 安裝三步曲非常熟悉了。然而究竟這個過程中的每一步幕後都發生了些什麼呢?本文將帶領你一探究竟。深入理解這個過程將有助於你在LFS的基礎

原创 Special Shell Variables

The Bourne shell has a number of special “automatic” variables that it maintains for informational purposes. These vari

原创 Makefile和Makefile.sh在同一級目錄下引發的問題

問題描述: . ├── Makefile └── Makefile.sh file:Makefile all: @bash Makefile.shfile:Makefile.sh #!/bin/sh echo "test" ls

原创 Building System之編譯前的準備工作

Android系統編譯前的準備工作,我個人認爲由如下三個步驟完成。接下來,我就逐一分析每一步驟都幹了什麼事情。 1、安裝jdk、設置環境變量JAVA_HOME。 2、source build/envsetup.sh 3、lunch <pr

原创 Valgrind —— Android使用摘要

## valgrind 官網地址:http://www.valgrind.org/ ## 源碼下載地址位於官網首頁的LOGO正下方Current release: valgrind-3.10.1 1、編譯Android版本valgri

原创 linux下邏輯地址-線性地址-物理地址圖解

一、邏輯地址轉線性地址     機器語言指令中出現的內存地址,都是邏輯地址,需要轉換成線性地址,再經過MMU(CPU中的內存管理單元)轉換成物理地址才能夠被訪問到。 我們寫個最簡單的hello world程序,用gccs編譯,再反編譯後

原创 Building System之 get_abs_build_var() && get_build_var()

1、get_abs_build_var() 和 get_build_var()的實現都在build/envsetup.sh中。 2、在buld目錄下grep這兩個函數可知:這兩個函數只在build/envsetup.sh腳本中使用。 言

原创 Go: Yaml support for the Go language

安裝 yaml.v2 go get gopkg.in/yaml.v2 代碼示例 yaml_v2.go package main import ( "fmt" "os" "gopkg.in/yaml

原创 Android中native進程內存泄露的調試技巧(一)

基於Android5.0版本 Android爲Java程序提供了方便的內存泄露信息和工具(如MAT),便於查找。但是,對於純粹C/C++ 編寫的natvie進程,卻不那麼容易查找內存泄露。傳統的C/C++程序可以使用valgrind工具,

原创 Linux Kernel 學習路線

看了下各位大神的推薦路線,總結如下:   0. 跟着項目走; 1. 學會用、熟練用linux系統; 2. Linux Kernel Development. 3. Understanding the Linux Kernel. 4. L

原创 神奇的系統請求鍵SysRq

什麼是SysRq It is a 'magical' key combo you can hit which the kernel will respond to regardless of whatever else it is doi

原创 vim script for kernel coding

vim的一個插件, 對於編寫kernel代碼很有幫助 使用方法就是簡單的放在~/.vim/plugin目錄下 ======================================= Subject: vim script for

原创 Linux內存管理之三 頁的分配和釋放

Linux對內存區內的頁框的分配和釋放,採用的算法是夥伴系統。 如上圖,Linux分配頁時,只能分配2^n個頁。內核維護MAX_ORDER個鏈表,每個鏈表記錄着連續的空閒頁。第一個鏈表中的每一項爲1個空閒頁,第二個鏈表中的每一項爲2個空

原创 Linux內存管理之二 內存節點和內存分區

UMA和NUMA:UMA(Uniform Memory Access),即一致性內存訪問。這種情況下,CPU訪問內存的任何位置,代價都是一樣的。NUMA)(Non Uniform Memory Access),即非一致性內存訪問。這種情況

原创 python操作postgre數據庫

python操作postgres數據庫,可使用psycopg2模塊 官方地址: http://initd.org/psycopg/ 下載源碼編譯,編譯命令來自README.rst python setup.py build 編譯出錯: