原创 中文編碼雜談

http://github.thinkingbar.com/charset-study/ http://www.zhihu.com/question/20650946 http://www.ruanyifeng.com/b

原创 named.ca

/var/named/named.ca是一個非常重要的文件,包含了Internet的根服務器名字和地址,DNS接到客戶端主機的查詢請求時,如果在Cache中找不到相應的數據,就會通過根服務器進行逐級查詢。

原创 字符集編碼(待整理)

http://www.utf8everywhere.org/ http://bbs.chinaunix.net/thread-1230313-1-1.html ======== 字符集 就是一個映射表計算機通過它找到對應的字符;unico

原创 gfp_mask含義

gfp_mask標誌在alloc_page,kmalloc函數中都有用到。該標誌可以分爲三類:行爲修飾符,區修飾符,類型修飾符。        行爲修飾符表示內核應當如何分配所需的內存,在某些特定的情況下,只能使用某些特定的方法分配內

原创 Linux根目錄下主要目錄功能說明及常用分區方案

Linux文件系統的最頂端是/,稱爲Linux的root,所有的目錄、文件、設備都在/之下。 文件類型:普通文件、目錄文件、鏈接文件和特殊文件。可以用file命令來識別。 普通文件:如文本文件、c語言源代

原创 分頁管理機制(線性地址轉換到物理地址)

    80386開始支持存儲器分頁管理機制。分頁機制是存儲器管理機制的第3二部分。段管理機制實現虛擬地址(由段和偏移構成的邏輯地址)到線性地址的轉換,分頁管理機制實現線性地址到物理地址的轉換。如果不啓用分

原创 C/C++位域(Bit-fields)

前言 很早想說說這個問題了,經常也會有很多公司拿位域出來考人,呵呵要真的想弄清楚還要一點點的分析。 這裏先看看網宿的一道筆試題目: //假設硬件平臺是intel x86(little endian) typedef unsigned

原创 Linux環境下兩種彙編風格的切換(AT&T,Intel)

The following i386/x86-64 specific disassembler options are supported for usewith the -M switch (multiple options shoul

原创 樓層扔雞蛋問題

有限層數和蛋數,求即使最壞情況下需要的最少判斷次數 兩個軟硬程度一樣但未知的雞蛋,它們有可能都在一樓就摔碎,也可能從一百層樓摔下來沒事。有座100層的建築,要你用這兩個雞蛋確定哪一層是雞蛋可以安全落下的最高位置。可以摔碎兩個雞蛋。(參

原创 Linux全英文安裝後中文亂碼問題解決方案

下面的步驟來一遍就沒問題了。 locale       查看目前系統的語言情況 locale –a   查看系統對所有語言的支持 LANG=zh_CN.utf8修改一下LANG變量看看 首先下載安裝下面這兩個包: rpm -ivh fo

原创 讓CentOS6 yum源支持更多rpm包的升級(使用第三方軟件庫EPEL、RPMForge與RPMFusion)

在CentOS下運行yum install flash-plugin或yum install mplayer的時候,提示庫裏沒有找到這個軟件?爲什麼會這樣?因爲CentOS是RHEL編譯過來的,去掉了所有

原创 Linux中的邏輯地址,線性地址和物理地址轉換關係

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

原创 精簡LINUX內核配置及快速編譯的方法收集

如果經常編譯新內核(不管是什麼目的),或者需要修改內核的某些代碼做測試,雖然make會選擇的編譯有必要重新編譯的部分,但是如果修改了某個核心的頭文件。可能需要重新編譯很多內容,所以把不需要使用的模塊不編譯是能節省不少時間的。編譯內核大部分

原创 linux下fork的運行機制詳細解析

要求如下:已知從這個程序執行到這個程序的所有進程結束這個時間段內,沒有其它新進程執行。      1、請說出執行這個程序後,將一共運行幾個進程。      2、如果其中一個進程的輸出結果是“pid1:1001, pid2:1002”,寫

原创 一個全是32位整數的大數組,除了其中一個數字出現2次外,其餘的數字都出現了3次。如何找出那個只出現了兩次的數字?

#include <stdio.h> int a[] = {433,657,9876,42,9876,657,42,433,433,657,42}; int find_twice(int a[], int length) {