原创 (轉載)Linux內核網絡設備操作部分閱讀筆記收藏

網絡設備的初始化 網絡設備初始化就是調用具有__init 前綴的net_dev_init函數完成的,網絡設備初始化包含兩個部分(在linux內核2.4辦源代碼分析大全一書的第550頁有詳細說明),就是: 在系統初始化期間對系統已知的網絡設

原创 2.4和2.6在任務調度上的不同

檢查點: A) 返回用戶空間/返回內核空間: ----2.4 :只在返回user space的時候纔會檢查任務是否需要被調度. ----2.6:除了保留這個檢查點,新增了返回內核空間的檢查點, 這個檢查點調用preempt_schedul

原创 (轉載)Linux內核內存池管理技術實現分析收藏

一.Linux系統內核內存管理簡介 Linux採用“按需調頁”算法,支持三層頁式存儲管理策略。將每個用戶進程4GB長度的虛擬內存劃分成固定大小的頁面。其中0至3GB是用戶態空間,由各進程獨佔;3GB到4GB是內核態空間,由所有進程共享,但

原创 LINUX 書籍

原创 (轉載)Linux 彙編語言開發指南 收藏

 一、簡介 作爲最基本的編程語言之一,彙編語言雖然應用的範圍不算很廣,但重要性卻勿庸置疑,因爲它能夠完成許多其它語言所無法完成的功能。就拿 Linux 內核來講,雖然絕大部分代碼是用 C 語言編寫的,但仍然不可避免地在某些關鍵地方使用了彙

原创 內核等待隊列

相信很多寫程序的人都寫過 socket 的程序。當我們 open 一個 socket 之後,接着去讀取這個 socket,如果此時沒有任何資料可供讀取 ,那 read 就會 block 住。(這是沒有加上 O_NONBLOCK 的情形),

原创 (轉載)深入Linux網絡核心堆棧

 創建時間:2003-08-22文章屬性:翻譯文章提交:raodan (raod_at_30san.com)==Phrack Inc.==              卷標 0x0b, 期刊號 0x3d, Phile #0x0d of 0x

原创 rootkit

 在網絡安全中經常會遇到rootkit,NSA安全和入侵檢測術語字典( NSA Glossary of Terms Used in Security and Intrusion Detection)對rootkit的定義如下:A hack

原创 kernel_thread

內核線程實際上就是一個共享父進程地址空間的進程,它有自己的系統堆棧.內核線程和進程都是通過do_fork()函數來產生的,系統中規定的最大進程數與線程數由fork_init來決定:[/arch/kernel/process.c/fork_

原创 GCC源碼分析(2):從C代碼到GIMPLE

* 從C代碼到GIMPLE    上一部分我們分析了gcc中的“樹”,這些樹是源程序在編譯器內部的表示形式。本部分試圖來分析gcc是如何將源代碼變成這種內部表示的。本文以C語言的翻譯過程爲例。    首先,我需要找到cc1的控制流

原创 (轉載)零拷貝技術研究與實現收藏

  零拷貝技術研究與實現作者:樑健(firstdot)E-MAIL:[email protected] 一.基本概念零拷貝(zero-copy)基本思想是:數據報從網絡設備到用戶程序空間傳遞的過程中,減少數據拷貝次數,減少系統調用,實現C

原创 Linux PROC文件系統詳細介紹

proc文件系統是一個僞文件系統,它只存在內存當中,而不佔用外存空間。它以文件系統的方式爲訪問系統內核數據的操作提供接口。用戶和應用程序可以通過proc得到系統的信息,並可以改變內核的某些參數。由於系統的信息,如進程,是動態改變的,所以用

原创 DMA

當我們向計算機中加入了一塊新的聲卡或其它適配卡時,安裝程序可能會提醒我們應該選擇一個DMA通道。那DMA是什麼呢? DMA(Direct Memory Access),即直接存儲器存取,是一種快速傳送數據的機制。數據傳遞可以從適配卡到內存

原创 (轉載)linux內核進程調度以及定時器實現機制

 一、2.6版以前內核進程調度機制簡介 Linux的進程管理由進程控制塊、進程調度、中斷處理、任務隊列、定時器、bottom half隊列、系統調用、進程通信等等部分組成。 進程調用分爲實時進程調度和非實時進程調度兩種。前者調度時,可以採

原创 GCC源代碼分析(1): GCC中的樹

    本文分析GCC4.3.1的源代碼。如某位牛人所說,我並不打算做“參考手冊”式的源碼分析,而是打算做“航海日誌”式的。* GCC中的樹    對於GCC的前端和高級的分析和及優化而言,樹是其核心的數據結構。經過語法分析的源程