原创 Linux進程的5個數據區域---》bss段、數據段、代碼段、堆、棧

其實在程序運行時,由於內存的管理方式是以頁爲單位的,而且程序使用的地址都是虛擬地址, 當程序要使用內存時,操作系統再把虛擬地址映射到真實的物理內存的地址上。 所以在程序中,以虛擬地址來看,數據或代碼是一塊塊地存在於內存中的,通常我們稱其

原创 計算機語言基礎知識

/******************************計算機語言基礎知識******************************/ 【18】計算機基本結構(1) 馮·諾依曼模型a. 計算機硬件由5部分構成(輸入設備、輸出設備

原创 什麼是死鎖,產生的原因,如何避免死鎖

死鎖是指多個進程因競爭資源而造成的一種僵局,若無外力作用這些進程將永遠不可能向前推進。 原因:競爭資源,進程推進順序非法。必要條件:互斥條件,請求和保持條件,不剝奪條件,環路等待條件。 處理死鎖:預防死鎖,避免死鎖,檢測死鎖,解除死鎖

原创 關於Linux 內核中五個主要子系統的介紹

1.進程調度(SCHED): 控制進程對CPU的訪問。當需要選擇下一個進程運行時,由調度程序選擇最值得運行的進程。可運行進程實際上是僅等待CPU資源的進程,如果某個進程在等待其它資源,則該進程是不可運行進程。Linux使用了比較簡單的基

原创 Socket與http、tcp客戶端與服務器連接的區別!

1、TCP連接  要想明白Socket連接,先要明白TCP連接。手機能夠使用聯網功能是因爲手機底層實現了TCP/IP協議,可以使手機終端通過無線網絡建立TCP連接。TCP協議可以對上層網絡提供接口,使上層網絡數據的傳輸建立在“無差別”的

原创 Linux設備驅動之模塊

【1】linux內核模塊    可在運行的時候添加到內核中的代碼稱爲模塊 【2】模塊和應用程序的區別                             應用程序               模塊 1. 運行空間          

原创 Linux操作系統的組件

Linux內核、Shell、文件系統、應用程序 點贊 收藏 分享 文章舉報 zhangsan_3 發佈了37 篇原創文章 · 獲贊 3 · 訪問量 4萬+ 私信

原创 Linux內核源碼目錄結構

在對Linux內核學習的同時,我們首先應該對Linux內核源碼的目錄有一定的瞭解,下面是內核源碼目錄的大概結構說明,根據內核版本的不同略有差異,不過不影響學習。以2.6.28.6內核源碼爲例: arch目錄包括了所有和體系結構相關的核

原创 busybox 根文件系統製作

busybox是構造文件系統最常用的軟件工具包,它被非常形象地稱爲嵌入式Linux系統中的“瑞士軍刀”,因爲它將許多常用的Linux命令和工具結合到了一個單獨的可執行程序(busybox)中。   雖然與相應的GNU工具比較起

原创 網絡知識 及 TCP、UDP編程實現過程

***************網絡預備知識********************* Socket         是一個編程接口         是一種特殊的文件描述符 (everything in Unix is a file)  

原创 volatile關鍵字的使用

volatile的本意是“易變的” 由於訪問寄存器的速度要快過RAM,所以編譯器一般都會作減少存取外部RAM的優化,但有可能會讀髒數據。 當要求使用volatile 聲明的變量的值的時候,系統總是重新從它所在的內存讀取數據,即

原创 const關鍵字的作用

我只要一聽到被面試者說:"const意味着常數"(不是常數,可以是變量,只是你不能修改它),我就知道我正在和一個業餘者打交道。只要能說出const意味着"只讀"就可以了。儘管這個答案不是完全的答案,但我接受它作爲一個正確的答案。(如

原创 什麼是大端什麼是小端字節序?網絡字節序是大端還是小端的?

小端:低地址存放低字節,高地址存放高字節;  大端:高地址存放低字節,低地址存放高字節; 網絡字節序是:大端。 點贊 收藏 分享 文章舉報 zhangsan_3 發佈了

原创 make管理工具和Makefile

【1】Make管理工具 執行make命令,make管理工具會找Makefile文件,並把Makefile文件中的第一個目標作爲最終的目標, 當我們的Makefile中有多個目標的時候,我們可以自己指定要生成的目標。Make將只編譯改動的代

原创 網絡通信 基礎知識

【1】組播      單播方式只能發給一個接收方。      廣播方式發給所有的主機。過多的廣播會大量佔用網絡帶寬,造成廣播風暴,影響正常的通信。      組播(又稱爲多播)是一種折中的方式。只有加入某個多播組的主機才能收到數據。