原创 Xml解析 --TinyXML-2

TinyXML-2 是小巧、精簡且高效的C++ XML 解析庫,可以被方便地應用到其他項目中。 github: https://github.com/leethomason/tinyxml2 簡而言之,tinyxml-2是一個xml解析器

原创 Linux內核(linux-5.2.9)--內核對象(對象的引用計數)

          一個分配好的內存對象可能會在多種場景中被多次傳遞並使用,在這種情況下,爲了能夠正確的使用內存對象,引入了“引用計數”功能。 防止內存泄漏:確保已分配的對象最終都會被正確釋放; 防止訪問已釋放的內存:確保不會使用已經被釋

原创 操作系統實踐之第二章(特權級變換*理論篇)

在IA32的分段機制中,特權級總共有4個特權級別,從高到低分別是0、1、2、3。數字越小表示對應的特權級越大。 較爲核心的代碼和數據,將被放在特權級較高的層級中(0:內核代碼;1/2:服務;3:應用程序)。處理器將用這樣的機制來避免低特權

原创 從0實現分佈式任務調度系統--MongoDB基礎操作

系統環境Centos7,下載並解壓 mongodb-linux-x86_64-3.0.6.tgz 進入解壓後的目錄,使用mkdir 命令新建一個 data 目錄: 啓動MongoDB服務:         nohup bin/mongo

原创 Json解析 --JsonCpp

1、下載scons http://sourceforge.net/projects/scons/files/scons/2.1.0/scons-2.1.0.tar.gz/download 2、解壓scons-2.1.0.tar.gz t

原创 多服務端實現配置文件實時同步 --lsync+rsync

很多企業需要多臺服務器提供某個服務已經司空見慣了,當我們需要修改某個配置文件的時候,爲了統一所有服務器上的配置,就需要文件同步的功能。不然一個個服務器去拷貝的話,一方面比較麻煩,另一方面也容易產生遺漏等問題。 rsync是linux系統下

原创 Ini解析 --iniparser

Iniparser是針對INI文件的解析器。ini文件則是一些系統或者軟件的配置文件。Iniparser庫的API可以對ini文件(配置文件)進行解析、設置、刪除等操作。 下載iniparser: Github: https://gith

原创 Centos7下使用CMake

在進行需要提供跨平臺服務的項目時,最好有相應的跨平臺項目構建工具。本文所述的CMake即其中比較好用的跨平臺構建工具之一。下文主要以C++語言爲例進行使用演示。 安裝C++所需的環境: yum install -y gcc gcc-c++

原创 從0實現分佈式任務調度系統--實現cron表達式定時任務

在Linux下會經常使用cron表達式完成一些定時任務。下面通過git上的一個項目來達到類似的效果。 獲取資源: https://github.com/gorhill/cronexpr 該包一共支持如下7個時間粒度設置,分別是:秒級,分,

原创 libevent+inotify實現配置文件實時讀取

有些配置文件需要被頻繁使用,但是又需要支持根據“場景”進行模式切換。如果每次都重新讀取勢必影響服務響應效率,折衷的方式是定時重新讀取,比如5分鐘。但最好的方式是在真正需要的時候在重新讀取,即,文件修改之後。 那麼如何得知所關注的文件已經被

原创 從0實現分佈式任務調度系統--etcd基礎操作

下載: etcd-v3.3.18-linux-amd64.tar.gz  ;解壓: tar -zxvf etcd-v3.3.18-linux-amd64.tar.gz 解壓後的情況如下: 其中etcd是服務端程序,etcdctl是客戶端

原创 獲取COM接口CoCreateInstance啓動的進程PID

CoCreateInstance是一個讓COM變得更加有趣和可用的工具。然而,它並沒有讓你知道一個非常重要的信息——新啓動的進程的id。也沒有其他的API可以告訴我們這一點。這就是微軟所謂的設計。 當我們啓動像Excel或者PowerPo

原创 操作系統實踐之第二章(分頁機制)

前面我們已經用代碼體驗了分段內存的相關操作,現在就來進一步學習分頁機制下的內存操作。不管是段還是頁,指的都是一塊連續的內存空間。一“頁”內存在80386中,是固定的4096字節大小,即4KB。 在未打開分頁機制時,線性地址等同於物理地址,

原创 操作系統實踐之第二章(保護模式下的分段尋址)

理論準備: 實模式下的尋址相信大家已經很清楚了,它分爲兩個部分,一部分是段基址,另一部分是段內偏移。段基址由段寄存器值左移4位表示,段內偏移則記錄了相對於某個段起始位置的偏移量,將這兩個值相加就得到了所需的物理地址。 在保護模式下,相對來

原创 操作系統實踐之第二章(實模式和保護模式)

在進入正文之前,我覺得有必要先交代一下實模式和保護模式之間的關係。 最早期的8086 CPU只有一種工作方式,那就是實模式,而且數據總線爲 16位,地址總線爲20位,實模式下所有寄存器都是16位。而從80286開始就有了保護模式,從803