Time of Update: 2018-12-04
Linux0.01核心基本上分析完了,高版本的核心也看了一點。有一點心得與大家分享 一下吧!這裡我並不打算說具體的技術方面的東西,而是針對讀核心的方法,談談自己 的一點感受。 我前段時間主要看的是0.01版本的核心。Linux0.01是Linux的"祖師爺"Linus完成的最早 的一個Linux版本,其核心編譯後僅僅只有512K,麻雀雖小,五髒俱全,0.01包括了從軟 盤啟動、檔案系統、控制台管理的作業系統完整功能,並提供了不少標準的使用者介面, 具體有kernel,
Time of Update: 2018-12-04
Linux 0.11 核心中,在進行地址映射操作時,我們需要首先分清3 種地址以及它們之間的變換概念:a. 程式(進程)的虛擬和邏輯地址;b. CPU 的線性地址;c. 實際實體記憶體地址。虛擬位址(Virtual Address)是指由程式產生的由段選擇符和段內位移地址兩個部分組成的地址。因為這兩部分組成的地址並沒有直接用來訪問實體記憶體,而是需要通過分段地址變換機制處理或映射後才0 640K 1M核心模組 高速緩衝區虛擬盤主記憶體區顯存和BIOS
Time of Update: 2018-12-04
//擷取子網路遮罩的函數 QString GetLocalNetMask(){ int sock_netmask; char netmask_addr[50]; struct ifreq ifr_mask; struct sockaddr_in *net_mask; sock_netmask = socket( AF_INET, SOCK_STREAM, 0 ); if( sock_netmask == -1) {
Time of Update: 2018-12-04
Linux 下網路編程中的select #include <sys/select.h> #include <sys/time.h> int select (int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset, const struct timeval * timeout); Return >0:就緒描述字的正數目 -1:出錯 0 :逾時 struct
Time of Update: 2018-12-04
1) fstat, stat, lstat 系統調用 #include<unistd.h> #include <sys/stat.h> #include<sys/types.h> // Linux系統不需要,UNIX需要 int fstat(intfildes,struct stat *buf);返迴文件描述符相關的狀態檔案的資訊,這些資訊被儲存在一個stat結構體中,stat結構體幾乎儲存了所有的檔案狀態資訊。int stat(const char
Time of Update: 2018-12-04
//擷取本機IP地址函數QString GetLocalIp(){ int sock_get_ip; char ipaddr[50]; struct sockaddr_in *sin; struct ifreq ifr_ip; if ((sock_get_ip=socket(AF_INET, SOCK_STREAM, 0)) == -1) { printf("socket create
Time of Update: 2018-12-04
default=1timeout=5hiddenmenutitle windows xproot (hd0, 0)chainloader +1title ubuntu 9.10root (hd1, 1)kernel /boot/vmlinuz-2.6.31-15-generic ro root=/dev/sdb1### BEGIN AUTOMAGIC KERNELS LIST## lines between the AUTOMAGIC KERNELS LIST markers will be
Time of Update: 2018-12-04
linux file locklinux的檔案鎖分為兩種:一種是advasory lock,只能保證進程內對同一個檔案鎖的互斥有效,但是多個進程可以同時對一個檔案加互斥的鎖,所以這種鎖是加在file 結構上;一種是mandatory lock,這種鎖可以保證多個進程無法對同一個檔案都加上互斥鎖,所以這種鎖是加在inode 結構上的。當加mandatroy lock時,如果已有進程在檔案上加了互斥鎖a,那麼進程建立的file_lock
Time of Update: 2018-12-04
擷取硬碟空間:#include <sys/stat.h>#include <sys/vfs.h>...{struct statfs buf;long lFreeSpaceSize;/************************************************** Enought space on flash for update application?*************************************************/
Time of Update: 2018-12-04
//獲去GateWayQString GetGateWay(){FILE *fp;char buf[512];char cmd[128];char gateway[30];char *tmp;strcpy(cmd, "ip route");fp = popen(cmd, "r");if(NULL == fp){perror("popen error");return "";}while(fgets(buf, sizeof(buf), fp) != NULL){tmp
Time of Update: 2018-12-04
//擷取子網路遮罩的函數QString GetLocalNetMask(){int sock_netmask;char netmask_addr[50];struct ifreq ifr_mask;struct sockaddr_in *net_mask;sock_netmask = socket( AF_INET, SOCK_STREAM, 0 );if( sock_netmask == -1){perror("create socket failture...GetLocalNetMask/
Time of Update: 2018-12-04
顧名思義,TcpDump可以將網路中傳送的資料包的“頭”完全截獲下來提供分析。它支援針對網路層、協議、主機、網路或連接埠的過濾,並提供and、or、not等邏輯語句來協助你去掉無用的資訊。tcpdump就是一種免費的網路分析工具,尤其其提供了原始碼,公開了介面,因此具備很強的可擴充性,對於網路維護和入侵者都是非常有用的工具。tcpdump存在於基本的FreeBSD系統中,由於它需要將網路介面設定為混雜模式,普通使用者不能正常執行,但具備root許可權的使用者可以直接執行它來擷取網路上的資訊。因此
Time of Update: 2018-12-04
//擷取本機MAC地址函數QString GetLocalMac(){int sock_mac;struct ifreq ifr_mac;char mac_addr[30]; sock_mac = socket( AF_INET, SOCK_STREAM, 0 );if( sock_mac == -1){perror("create socket falise...mac/n");return
Time of Update: 2018-12-04
//擷取本機IP地址函數QString GetLocalIp(){ int sock_get_ip; char ipaddr[50]; struct sockaddr_in *sin; struct ifreq ifr_ip; if ((sock_get_ip=socket(AF_INET, SOCK_STREAM, 0)) == -1) { printf("socket create
Time of Update: 2018-12-04
SystemTap 是一種新穎的 Linux 核心診斷工具,提供了一種從運行中的 Linux 核心快速和安全地擷取資訊的能力。SystemTap 是核心研發人員和系統管理員的福音,因為這使得他們能夠通過編寫或重用簡單的指令碼來收集核心的即時資料,而無需再忍受修改源碼、編譯核心、重啟系統的漫長煎熬。本文介紹了 SystemTap 的安裝、使用和基本原理,並用一些有趣的例子揭示了 SystemTap 提供的強大能力。 在 SystemTap 出現之前,對於 Linux
Time of Update: 2018-12-04
(1)網路介面的命名 這裡並不存在一定的命名規範,但網路介面名字的定義一般都是要有意義的。例如: eth0: ethernet的簡寫,一般用於乙太網路介面。 wifi0:wifi是無線區域網路,因此wifi0一般指無線網路介面。 ath0: Atheros的簡寫,一般指Atheros晶片所包含的無線網路介面。 lo:
Time of Update: 2018-12-04
轉載:http://kerry.blog.51cto.com/172631/300757(很好的blog)linux檔案描述符導致squid拒絕服務 前幾天因工作需要在RHEL4.8上面架設了一個squid雙網代理,剛開始測試一切正常,然後就在前台負載平衡伺服器把這個Proxy 位址加上,運行一段時間後,客服反映有一些玩家無法進入遊戲房間,通過cacti監控發現大量的失敗串連,正常的串連只有900多 初步判斷為linux核心限制了串連數,通過google一下發現linux預設檔案描述符只有1
Time of Update: 2018-12-04
redhat 、suse、turbo linux獲得資料庫伺服器認證的比較多;ubuntu是基於Debian開發的,好像對硬體支援的最好。(需要驗證,個人通過網上資料搜尋得出的個人結論。僅作參考)案頭版ubuntu可以採用下面兩款linux作業系統:ymlf是個人版作業系統,是基於ubuntu linux的,整合了很多的軟體,方便國人使用。Linux
Time of Update: 2018-12-04
層級: 初級鄧延軍 (deng.yanjun@163.com), 碩士研究生, 西安電子科技大學軟體工程研究所2002 年 9 月 09 日本文從磁碟,檔案及檔案系統,記憶體和編譯等方面詳細的講述了如何對Linux系統效能進行調諧。不管是Linux伺服器還是客戶機或者使用者單機,按照本文提供的調諧方法,均可不同程度地改善Linux系統的效能。1. 引言實踐證明Linux是高效能、穩定可靠而又相當靈活的作業系統,近年來,世界上許多大軟體公司紛紛推出各種Linux伺服器系統及Linux下的應用軟體。
Time of Update: 2018-12-04
電腦使用記憶體來儲存臨時資料,但由於記憶體容量有限,所以需要在硬碟上開闢一塊臨時儲存空間,這就是交換分區。交換分區也有討厭的一面。硬碟的速度比記憶體慢很多,更不用說CPU中的緩衝和寄存器了。正式因為這個原因,當電腦使用交換分區時,你會發現,當前程式乃至整個電腦運行緩慢。所幸,現在記憶體已經很便宜了。如果你有足夠的記憶體,可以在命令列終端停用交換分區:echo "vm.swappiness=10" > /etc/sysctl.d/20-swappiness.conf 此命令適用於大多數Lin