原创 IPv6下網絡編程socket
大家都知道,隨着互聯網上主機數量的增多,現有的32位IP地址已經不夠用了,所以推出了下一代IP地址IPv6,寫網絡程序的要稍微改變一下現有的網絡程序適應IPv6網絡是相當容易的事。 對於我們來說就是IP地址變化了,所以程序裏在用到IP地址
原创 基於linux-2.6.31的IPV6的數據包發送及轉發流程分析
發送及轉發的流程爲:dst_out--->ipv6_output----> ipv6_output 2à ipv6_output_finish 或者ip6_forward-àip6_forward_finish-à dst_out ---
原创 linux路由內核實現分析(四)---路由緩存機制
路由緩存機制 rtable結構 struct rtable { union { struct dst_entry dst; } u;
原创 艱難地寫文檔
上個周寫了一個周的文檔,真是讓我都快吐了。第一次一下子寫那麼多文檔,雖然大部分是複製修改老版的文檔,但是就是這樣讓我也感到寫文檔的艱澀。回想自己高中時寫作文就不太上心,很多時候都是照搬照抄,現在都後悔死了,當初不好好學習寫
原创 內核與用戶空間共享內存
一、用到的API與數據結構 先看用戶空間使用的API #include <sys/mman.h> void *mmap(void *start, //映射的範圍首地址,通常設NULL,讓系統自動選地址,映射成功後返回該地址
原创 並查集學習
原文地址:http://hi.baidu.com/fandywang_jlu/blog/item/b49e40 並查集的學習告一段落,整理總結一下與大家共勉~ 並查集:(union-find sets)是一種簡單的用途廣泛
原创 項目管理成功的20個祕密
在最好的情況下,管理軟件項目也是很困難的。不幸的是,許多新項目經理實質上沒有受到任何就職培訓。這裏有20個成功的管理經驗供項目經理參考。 1. 定義項目成功的標準 在項目的開始,要保證風險承擔者對於他們如何判斷項目是否成功有統一的認識
原创 用戶態和內核共享內存編程
例子中,用戶態程序的KERNEL_VIRT_ADDR 就是內核模塊打印的地址p,這裏是hard coding(先加載內核模塊,再把打印的地址賦值給KERNEL_VIRT_ADDR),可以採用其他的方式傳遞。 2.6內核驗證。 內核模塊==
原创 配置Redhat AS 5本地源
配置Redhat AS 5本地源 a) 創建/mntcdrom,/home/yum b) 將鏡像文件rhel-5.2.iso(64位系統鏡像,可能名字會有區別,mount命令時進行相應的修改)傳至/home/yum c) 執行如下命
原创 linux路由內核實現分析(二)---FIB相關數據結構
FIB結構 用於保存路由規則,路由的查找過程如下: 1, 在緩存中搜索路由表項,如果能查到,就直接將對應的一項作爲路由規則 2, 如果不能查到,就從FIB規則中換算出來,並且在路由緩存中添加表項 fib_table結構 st
原创 基於linux-2.6.31的IPV6的數據包接收流程分析
接收的流程爲:ipv6_rcv--->ipv6_rcv_finish---->dst_input-àip6_input-àip6_input_finish 或者ipv6_rcv--->ipv6_rcv_finish---->ip6_ro
原创 砝碼問題
Problem有一組砝碼,重量互不相等,分別爲m1、m2、m3……mn;它們可取的最大數量分別爲x1、x2、x3……xn。 現要用這些砝碼去稱物體的重量,問能稱出多少種不同的重量。 Input第一行爲一整數t,表示有t組測試數據。 每組測
原创 gethostbyname用法
使用這個東西,首先要包含2個頭文件: #include <netdb.h> #include <sys/socket.h> struct hostent *gethostbyname(const char *name); 這個函數的傳入值
原创 sk_buff結構詳解
struct sk_buff可能是linux網絡代碼中最重要的數據結構,它表示接收或發送數據包的包頭信息,幷包含很多成員變量供網絡代碼中的各子系統使用。 這個結構被網絡的不同層(MAC或者其他二層鏈路協議,三層的IP,四層的TC
原创 突破人生的瓶頸(心靈之燈)
人生“四度” 平時除了看新聞外我很少看電視,但是那天除外。 那天晚上寫完稿子,隨意打開了一個頻道,是央視三套的藝術人生“爲何慶魁加油”。我不喜歡主持人以煽情的方式,不停發掘主人公內心傷痛淚水的慣用風格。本想換臺,考慮到劇作家何慶魁