原创 linux文件的普通權限和特殊權限

     linux文件的權限一般是讀(r)、寫(w)和執行(x),其次還有兩個特殊的權限,使用字母表示分別是r和t。            普通權限:rwx      r:讀權限,4,表示該用戶可對文件進行讀取      w:寫權限,2

原创 美麗的繭

      作者:簡媜       讓世界擁有它的腳步,讓我保有我的繭。當潰爛已極的心靈再不想做一絲一毫的思索時,就讓我靜靜回到我的繭內,以回憶爲睡榻,以悲哀爲覆被,這是我唯一的美麗。    曾經,每一度春光驚訝着我赤熱的心腸。怎麼回事呀

原创 libvmi在qemu上的patch解讀—kvm-qemu-v2.8-libvmi.patch

(1)打開一個UNIX socket,用於對客戶機物理內存的訪問。具體做法:創建在固定的端口上建立本地通信的監聽服務,服務程序設置爲函數memory_access_thread(……)。(2)accept連接請求,調用函數connecti

原创 &符號取出的地址到底是什麼

&,取地址符號,可以獲得一個變量在內存中的存儲地址,但是獲得的地址有異同,有的是偏移地址,有的是全局虛擬地址。1、對於棧中的變量來說,&地址取得的是變量的偏移地址:測試程序:test.c 編譯後運行,結果如下:  查看test的maps文

原创 在Xshell中使用sz、rz進行本機和遠程主機(或虛擬機)之間文件的傳輸

藉助XShell,使用linux命令sz可以很方便的將服務器上的文件下載到本地,使用rz命令則是把本地文件上傳到服務器。       其中,對於sz和rz的理解與記憶我用瞭如下的方法(很多時候容易搞混):       sz中的s

原创 QEMU內部:整體架構和線程模型

原文地址:http://blog.vmsplice.net/2011/03/qemu-internals-overall-architecture-and.html 全文翻譯如下: 1 概述   這是講解QEMU內部原理的系列博客的

原创 qemu多線程技術的實現

1 qemy_mutex_*   qemu_mutex_init –> pthread_mutex_init、qemu_mutex_destroy –> pthread_mutex_destroy、qemu_mutex_lock –> p

原创 QEMU/seaBIOS啓動流程分析

1 QEMU函數執行流程   machine_init(pc_machine_init) –> pc_machine_init(void) –> 註冊QEMUMachine結構體變量pc_i440fx_machine_v2_3 –> pc

原创 QEMU是如何以後臺進程運行的?

當使用libvirt啓動QEMU後,QEMU進程便成爲後臺進程在運行,剛剛分析了QEMU啓動的代碼,將其轉換爲daemon進程的過程簡單解釋如下(QEMU-2.3.0): 1 概述   QEMU在被libvirt啓動的時候,可以傳入一

原创 libvirt問題之virbr0虛擬網卡啓動出錯

1、錯誤提示 root@sunshine:~/libvirt# virsh net-start default 錯誤:開始網絡 default 失敗 錯誤:內部錯誤:Failed to apply firewall rules /

原创 招聘之筆試題目

1 阿里—編程測驗 題目 給出一個有向無環圖,有向邊“A -> B”的含義是:節點A依賴於節點B,並且每個節點給出一個附加消耗值Vi,i => [1, n],定義一條有向鏈條爲”從入度爲0的節點”沿着有向邊一直到達一個”出度爲0的節點”的

原创 malloc()函數有始有終

1 malloc() malloc()函數是申請一塊堆區內存的常用函數,簡單應用如下: #include<stdio.h> #include<stdlib.h> int main(int argc, char *argv[]){

原创 高精度整數加法、減法與乘法

更新:2018/8/26 內容:採用int數組模擬高進制位的加法與乘法。 1 高精度加法與乘法 (手懶,直接上代碼哈……) #include<stdio.h> #include<string.h> #include<stdlib.h>

原创 linux系統編程之signal信號處理程序

1 信號處理程序 1.1 概述 信號,軟中斷信號,用來通知進程發生了某些事件,是一種軟件層面上對中斷機制的一種模擬。信號本身是一段非常小的信息,一般都只是一個整數。 信號的目的有兩個:(1)通知進程一個特定的事件發生了;(2)讓進程執行

原创 fork()之父子進程頁表權限的設置

1 fork()系統調用 fork()系統調用用來生成子進程,而現有Linux系統運行在寫時拷貝的機制下,於是fork()函數在爲子進程建立內核中各種管理結構的時候,並沒有將真實的物理資源分配給子進程,而只是將父進程的物理資源共享給子進程