1. 程式人生 > >宋寶華: Linux中的1024——給閱碼場Linuxer們的節日祝福

宋寶華: Linux中的1024——給閱碼場Linuxer們的節日祝福

1024是程式設計師的狂歡節。基於二進位制的原理,程式設計師通常會把1024當做一個整數而不是1000。程式設計師這個行業處理“bit”,當然這個行業“苦逼”,這也讓我輕鬆地記住了一個單詞——bitter。bitter的意思就是“苦的”,bit後面加er字尾,是人,這裡只是會意記單詞。

er通常表明比較loser的人,英語裡面一般地位崇高的人,字尾是-or。比如

carpenter  木匠 vs. doctor 博士

programmer 程式設計師 vs. professor 教授

coder碼農 vs. director 總監

為啥咱們不叫programmor,不叫codor,原因應該是很清楚了。人艱不拆,當然我們也不要妄自菲薄,這裡僅僅是開一個玩笑,讓大家在自己的節日裡比較歡樂。

作為一個Linux程式設計師,我們Linux中的1024有哪些呢?

Linux中的1024

CFS排程演算法中nice值是0的程序的權重;

CPU CGroup一般的初始權重;

ext4檔案系統的block size可以是1024;

普通使用者不能用1024以下的網路埠

CFS排程演算法中nice值是0的程序的權重

在CFS排程演算法中,

vruntime += delta* NICE_0_LOAD/ se.weight

NICE_0_LOAD就是1024,所以nice是0的程序,虛擬時間軸和物理時間軸是匹配的。

CPU CGroup一般的初始權重

當採用CPU CGroup的時候,這個CGroup會自動獲得一個權重,它的初始值一般為1024。

這代表了一個群與另外一個群在競爭CPU時候的權重, cpu.shares越大,此群享有更多的競爭優勢。

ext4檔案系統的block size可以是1024

mkfs.ext4一般會把小分割槽的block size格式化為1024,大分割槽的block size格式化為4096。block size是硬碟在檔案系統裡面分配的最小單元。

這點從/etc/mke2fs.conf檔案可以看出:

當然,對於一個分割槽,我們也可以直接用mkfs.ext4 -b 1024來指定分割槽block size是1024。譬如:

下面我們用dumpe2fs /dev/vmem_diska命令觀察一下:

普通使用者不能用1024以下的網路埠

譬如,下面程式碼從埠如果是1022,程式執行時bind會報錯:

列印的出錯資訊如下:

Error: : Permission denied

但是我們如果用sudo跑,是可以的:

當然,普通使用者可以直接用1024以上的埠:

改為8000後,普通使用者跑上面的程式也不會出現許可權錯誤。

相信Linux裡面還有很多的1024,我們主要從程序、檔案系統、網路子系統裡面抽取了部分案例,聊供諸君一笑。

祝Linux閱碼場的使用者朋友們節日快樂!

祝有情人終成眷屬!!

願世界和平!!!