Category: Linux

解決編譯qvfb問題

安裝QTE后自然是裝qvfb,遇到編譯錯誤。google一下,解決。

1.拷貝/path-to-qt-src/tools/shared/deviceskin目錄下的deviceskin.cpp和deviceskin.h到qvfb目錄

2.在qvfb目錄下qmake -project生成Makefile

3.修改Makefile中的LIBS,加上-lXtst

4.然後make即可

內存雜記

在內核中,物理內存是用“頁”來管理的,頁大小取決於系統構架,X86上面是4096bytes,每一頁都由struct page(include/linux/mm_types.h)來描述
32位X86平台上,內核默認把4G地址空間分成兩部分,3GB給用戶進程,1GB給內核。虛擬地址空間0 -3GB被稱為用戶空間,3GB – 4GB被稱為內核空間

在物理地址上,0 – 1GB是給內核,1GB – 3GB給用戶。後者叫做ZONE_HIGH,前者中0 – 16MB部分叫做ZONE_DMA,16MB – 896MB 部分叫做ZONE_NORMAL,896MB之後還有128MB被內核數據結構佔用了。內核中低端896MB內存的地址是物理地址加上一個常偏移量(constant offset)得到的,這個地址叫做邏輯地址(logical address)。內核也可以訪問超過896MB的內存,不過需要開啟高內存支持(high memory support)

3個ZONE的要點:
1.ZONE_DMA就是用來做DMA的
2.ZONE_NORMAL叫做低端內存,這個ZONE裡面的內存,struct page的的virtual字段的內容就是logical address
3.ZONE_HIGH中的內存映射到ZONE_NORMAL中之後(用kmap()和kunmap())就可以被內核訪問。這個ZONE中是虛擬地址,而不是邏輯地址,所以這部分內存如果沒有kmap到內核空間,struct page的virtual字段就是NULL

kmalloc函數返回的是連續的內存,這些內存來自於ZONE_NORMAL。kmalloc返回的內存中留存了先前的內容,所以把這些內存暴露給用戶空間是不安全的。用kzalloc()可以獲得清零的內存。分配大量緩衝區或者不需要物理連續的內存時,用vmalloc()代替kmalloc()。

繼續越獄

帝都近日正在開派對,全國亞克蜥匯集到帝都一展和諧神力,網絡封鎖日益加重,原來的越獄方法已經失效。我怎麼繼續像往常那樣越獄出去娛樂呢?

好在puff已經發布了新的客戶端,繼續無視強大的和諧之力,但是puff免費版的強制斷線功能又讓我非常不爽。免費又方便的tor遭受和諧打擊也不能繼續越獄,即使用新的網橋也沒用。抱着一絲希望決定安裝development branch試試,哈哈,成功越獄。方法很簡單:

1.添加tor的development branch源

ganquan@debian:~$ cat /etc/apt/sources.list | tail -n 4
#for tor
deb http://deb.torproject.org/torproject.org sid main
deb http://deb.torproject.org/torproject.org experimental-sid main

2.導入源的密鑰

ganquan@debian:~$ gpg --keyserver keys.gnupg.net --recv 886DDD89
ganquan@debian:~$ gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -

3.由於torproject.org已經被牆,無法直接訪問,aptitude照樣不能拿到包子,所以需要給aptitude設置代理

ganquan@debian:~$ cat /etc/apt/apt.conf
Acquire::http::proxy "http://127.0.0.1:1984/";

經常翻牆的同學已經看到我給aptitude設置的是什麼代理了。

4.安裝開發分支的tor

ganquan@debian:~$ sudo aptitude update
ganquan@debian:~$ sudo aptitude install tor tor-geoipdb

裝好了再度越獄,成功。
EOF

vim以16进制方式显示文本

:%!xxd     —->切换到十六进制显示
:%!xxd -r  —->切回文本方式显示

全面轉到Debian sid

以前都是一直用testing,前段時間更換硬盤之後就開始用stable。今天轉到sid,以後應該是一直用sid了。

開發除了相關庫版本升級,其他沒什麼變化。