Time of Update: 2018-12-03
Fast Link PulseAuto-Negotiation takes place using Fast Link Pulse (FLP) signals. These signals are a modified version of the Normal Link Pulse (NLP) signals used for verifying link integrity, as defined in the original 10BASE-T specifications. The
Time of Update: 2018-12-03
自第一台電腦誕生,其最小儲存單元就被永久的定格了——一個由8個位元(bit)組成的稱為位元組(byte)的單位。電腦的所有記憶體以位元組數組的方式進行編址。 當一個邏輯上長於一個位元組的整形資料放置在記憶體中時(比如16位,32位,和64位的整數),電腦設計者需要考慮這些位元組的儲存順序。一些體繫結構的設計者選擇了將位元組的邏輯順序與物理順序一致,即將邏輯上較低的位元組放置在物理上較低的位元組上;另外一些設計者則選擇了將位元組的邏輯順序與物理順序相反,即將邏輯上較低的位元組放置在物理上較高的位元
Time of Update: 2018-12-03
乙太網路(Ethernet)是一種電腦區域網路組網技術,該技術基於IEEE制定的IEEE 802.3標準,它規定了包括物理層的連線、電訊號和介質訪問層協議的內容。乙太網路是當前應用最普遍的區域網路技術。它很大程度上取代了其他區域網路標準,如令牌環、FDDI和ARCNET。曆經100M乙太網路在上世紀末的飛速發展後,目前千兆乙太網路甚至10G乙太網路正在國際組織和領導企業的推動下不斷拓展應用範圍。基於乙太網路的應用一定時期內是研究開發熱點。
Time of Update: 2018-12-03
段式管理:主存按段來進行分配和管理。這種方式中不按固定的長度對主存進行劃分,而是按程度模組(也叫段)的大小來對主存進行劃分。程式中的一個模組、數組、表格等分別對應主存中的一個段。段式管理的長處是主存的段與程式模組相對應,易於管理和維護。 段式管理 在真實位址模式下與保護地址模式下是不同的操作方法。其中不同的段式管理方式也是intel x86的真實位址模式與保護地址模式的本質區別。在真實位址模式下,線性地址 = 段寄存器的值*4+位移量。
Time of Update: 2018-12-03
譯者說明:文章的原文地址:http://www.linuxforums.org/articles/understanding-elf-using-readelf-and-objdump_125.html這是我第一次翻譯技術類文章,可能會有一些錯別字,尤其一些語句不通的地方。這可能是由於我用五筆打字,形成的筆誤,請大家批評指正。【】中的內容,是譯者作的注,注意:xxxx。斜體字是作者的注。通過readelf和objdump學習ELF首先,你應該瞭解一下elf 目標檔案三種形式:l 可重新導向檔案:
Time of Update: 2018-12-03
boot sector和MBR boot sector就是引導塊,可存在於硬碟,光碟片,軟碟機,TF卡上。MBR就是主引導載入程式(Master Boot
Time of Update: 2018-12-03
#include <stdio.h>struct line { int length; char contents[0];};struct block { int length; char contents[]; /* xx[] is at the end of the struct only. */// int text[20]; /* contexts[]只能在結構體的最尾處。 */};int main(){ struct line *thisline =
Time of Update: 2018-12-03
一、宏定義:主要是一些文法問題和技巧例如:#define FIND(s,e) (size_t)&(((struct s*)(0))->e)//求結構體內的變數相對於結構體的位移量#define SECONDS_PER_YEAR (360*24*60*60)UL//求一年中的秒數#define MIN(a,b) (((a)<=(b))?(a):(b))//求最小值#define SWAP(A,B) {A=A^B;B=A^B;A=A^B;} //注意是{ }不是(
Time of Update: 2018-12-03
現代編譯器常見的編譯過程:源檔案-->預先處理-->編譯/最佳化-->彙編-->連結-->可執行檔對於gcc而言:第一步 預先處理 命令: gcc -o test.i -E test.c 或者 cpp -o test.i test.c (這裡cpp不是值c plus plus,而是the C Preprocessor) 結果: 產生預先處理後的檔案test.i(可以開啟後與預先處理前進行比對,當然長度會嚇你一跳)
Time of Update: 2018-12-03
#include <stdio.h>struct line { int length; char contents[0];};struct line* get_struct_line(struct line *thisline){ thisline = (struct line *)malloc(sizeof(struct line) + 10); thisline->length = 10; return thisline;}int
Time of Update: 2018-12-03
BCM53262 Switch晶片支援靜態組播表人為設定,支援4K的組播地址索引。使用NuDog 310C雙網卡測試裝置,A口發送,B口抓取。一、發現B口網線在組播轉寄口插拔時,要10S左右才能正常收到組播報文? 可能是開啟了STP或RSTP功能,在產生樹未完成之前連接埠狀態不穩定,所以不能正常轉寄。二、BCM53262晶片預設支援未知組播洪泛;但若設定了靜態組播表,對於是表中組播MAC目的地址的報文,不論A口插在交換器哪個連接埠上,都只轉寄給表中對應連接埠。
Time of Update: 2018-12-03
所謂死結<DeadLock>: 是指兩個或兩個以上的進程在執行過程中,因爭奪資源而造成的一種互相等待的現象,若無外力作用,它們都將無法推進下去.此時稱系統處於死結狀態或系統產生了死結,這些永遠在互相等待的進程稱為死結進程.由於資源佔用是互斥的,當某個進程提出申請資源後,使得有關進程在無外力協助下,永遠分配不到必需的資源而無法繼續運行,這就產生了一種特殊現象死結。
Time of Update: 2018-12-03
1.使用者進程使用如open();的C庫函數。2從庫函數(open)中使用"int 0x80"或是syscall命令進入system_call。glibc 中的部分源碼//sysdeps/unix/sysv/linux/x86_64/sysdeps.hINLINE_SYSCALL--->INTERNAL_SYSCALL--->INTERNAL_SYSCALL_NCS--->syscall.# define INLINE_SYSCALL(name, nr, args...) \
Time of Update: 2018-12-03
MIIMII(Media Independent Interface(介質無關介面));或稱為媒體獨立介面,它是IEEE-802.3定義的乙太網路行業標準。它包括一個資料介面,以及一個MAC和PHY之間的管理介面。資料介面包括分別用於發送器和接收器的兩條獨立通道。每條通道都有自己的資料、時鐘和控制訊號。MII資料介面總共需要16個訊號。管理介面是個雙訊號介面:一個是時鐘訊號,另一個是資料訊號。通過管理介面,上層能監視和控制PHY。MII(Management interface)只有兩條訊號線。
Time of Update: 2018-12-03
1、三層轉寄是必然需要路由資訊的,而轉寄過程中的路由選擇決定了報文的最終出口如何,三層交換器只是將這種路由功能整合到交換晶片中去了。2、路由選擇存在精確匹配和最長相符兩種方式。2.1、精確匹配即目的IP地址與路由的地址資訊必須完全吻合;2.2、最長相符則是選擇所有包含了目的地址的路由中掩碼最長的一條。2.3、早期的三層交換器上其交換晶片多採用精確匹配的方式它們的硬體三層表項中只包含具體的目的IP地址並不帶掩碼資訊。比如在轉寄目的IP為2.1.1.2的報文時通過軟體尋找匹配了非直連路由2.1.1.
Time of Update: 2018-12-03
三層交換器的結構:ASIC晶片和CPUASIC晶片用於完成二層和三層的轉寄,內部包含用於二層轉寄的MAC地址表和用於IP轉寄的三層轉寄表。CPU用於轉寄的控制,主要維護一些軟體表項(包括路由表,ARP表),並根據軟體表項的轉寄資訊來配置ASIC的硬體三層轉寄表。真正決定高速轉交換轉寄的是ASCIC的二三層硬體表項,而ASIC的硬體表來源於CPU維護的軟體表項。假設A和B處於兩個不同網段的不同VLAN,中間通過三層交換器的SVI介面(交換器虛擬介面Switch Virtual Interface)
Time of Update: 2018-12-03
sem就是一個睡眠鎖.如果有一個任務試圖獲得一個已被持有的訊號量時,訊號量會將其推入等待隊列,然後讓其睡眠。這時處理器獲得自由去執行其它代碼。當持有訊號量的進程將訊號量釋放後,在等待隊列中的一個任務將被喚醒,從而便可以獲得這個訊號量。訊號量一般在用進程上下文中.它是為了防止多進程同時訪問一個共用資源(臨界區).spin_lock叫自旋鎖.就是當試圖請求一個已經被持有的自旋鎖.這個任務就會一直進行
Time of Update: 2018-12-03
BCM56224晶片支援4種QOS模式:基於連接埠(Port-ID)、基於MAC地址、基於802.1p、基於DiffServ的優先順序設定。基於802.1p、基於DiffServ的優先順序設定的寄存器在Register Definitions中很快找到;而基於連接埠的優先順序設定寄存器卻在802.1Q Vlan章節中。配置過程中會遇到QOS PAUSE Enable
Time of Update: 2018-12-03
設定網路連接埠的雙工模式和速率時,需要注意如下事項:設定連接埠雙工模式注意事項連接埠類型 雙工狀態設定注意事項百兆乙太網路電口 可以工作在 full、half 或 auto 模式下,可以根據需要對其設定 ;千兆乙太網路電 口 可以工作在 full、half 或 auto 模式下。但當速率設定為1000Mbit/s 後,只可以設定為 full
Time of Update: 2018-12-03
學習C關鍵詞的時候,我們看到了一個新面孔——volatile。在程式員面試寶典中提到“關鍵字volatile的面試例題是考查嵌入式編程”,中間有一段解析:回答不出這個問題的人是不會被僱傭的。我認為這是區分C程式員和嵌入式系統程式員的最基本的問題。搞嵌入式的傢伙們經常同硬體、中斷、RTOS等等打交道,所有這些都要求用到volatile變數。不懂得volatile的內容將會帶來災難。