話不多說,先上圖 Master-Worker模式 1、Nginx 在啟動(dòng)后,會(huì)有一個(gè) master 進(jìn)程和多個(gè)相互獨(dú)立的 worker 進(jìn)程。2、接收來自外界的信號(hào),向各wo...
話不多說,先上圖 Master-Worker模式 1、Nginx 在啟動(dòng)后,會(huì)有一個(gè) master 進(jìn)程和多個(gè)相互獨(dú)立的 worker 進(jìn)程。2、接收來自外界的信號(hào),向各wo...
最近在代碼中使用了Linux AIO接口,其需要通過O_DIRECT方式打開文件,同時(shí)在IO時(shí)要求塊大小對齊。 對于塊大小對齊,找到了一個(gè)解釋:Why does O_DIRE...
SCSI分層 Linux內(nèi)核中SCSI代碼結(jié)構(gòu)分為三層,它們和塊設(shè)備驅(qū)動(dòng)的關(guān)系如下圖所示: iscsi initiator要實(shí)現(xiàn)SCSI底層,即負(fù)責(zé)將scsi命令封裝成網(wǎng)絡(luò)報(bào)...
virtio Virtio是IO虛擬化中的一個(gè)優(yōu)化方案,屬于para-virtulization的一種實(shí)現(xiàn),即Guest OS中需要運(yùn)行virtio的驅(qū)動(dòng)程序,通過virti...
在動(dòng)態(tài)ftrace原理中已經(jīng)介紹了內(nèi)核通過gcc -pg -fentry為函數(shù)增加5 Byte的stub,系統(tǒng)啟動(dòng)后這5 Byte被修改為NOP指令:66 66 66 66 ...
gcc的-pg選項(xiàng) ftrace 支持動(dòng)態(tài)trace,即可以跟蹤內(nèi)核和模塊中任意的全局函數(shù)。它利用了gcc的-pg編譯選項(xiàng),在每個(gè)函數(shù)的開始增加一個(gè)stub,這樣在需要的時(shí)候...
KVM介紹 KVM (Kernel Virtual Machine) 是Linux Kernel的一個(gè)模塊。另外還有一個(gè)用戶空間的工具QEMU來控制KVM去創(chuàng)建、配置和管理V...
通過GDB和QEMU調(diào)試Linux內(nèi)核已經(jīng)有很多介紹了,但基本都是制作簡單的根文件系統(tǒng)。有時(shí)候需要調(diào)試的模塊或者場景需要用到發(fā)行版的Linux,因此本文介紹調(diào)試CentOS內(nèi)...