原创 Linux內核五大組成部分

內存管理 ---支持多進程,同時支持虛擬內存 進程調度--負責管理進程對CPU的使用 虛擬文件系統--提供多種文件系統,負責抽象硬件,實現訪問接口 網絡接口--提供多種協議,負責硬件與外界通信 進程間通信--子系統實現在單個Linux系統

原创 內核中重要的數據結構

任務鏈表(Task List):流程調度程序爲每個活動的流程維護一個數據塊。這些數據塊存儲在稱爲任務列表的鏈接列表中。進程調度程序始終維護一個指示當前活動進程的當前指針。 內存映射(memry map):內存管理器基於每個進程存儲虛擬地址

原创 爲什麼建議多用glibc而不是系統調用

用戶空間運行的進程,他們各自擁有獨立的虛擬地址空間,而內核則有單獨的地址空間。 內核空間分爲三類 系統調用層;它是屬於最上層,它提供了用戶空間和內核空間通信的方式。 Linux內核,應該更加確切的說是獨立於體系結構的內核代碼,這些通用的代

原创 進程調度器可分爲四大模塊:

調度策略模塊負責判斷哪個進程可以訪問CPU;設計該策略是爲了使進程可以公平地訪問CPU。 體系結構相關模塊特定於體系結構的模塊設計有一個公共接口,用於抽象任何特定計算機體系結構的詳細信息。這些模塊負責與CPU通信以掛起和恢復進程。這些操作

原创 智能指針的作用

智能指針的標準版本, 智能指針可大幅度提高動態內存代碼的魯棒性

原创 程序員&&架構師的區別

程序員畏果:果是未來,懼怕未來,止步不前,一事無成 架構師畏因:因是當下,恐懼當下,果斷出擊,必有所得

原创 閱讀框架源代碼方法

領悟思想:放棄一切代碼,體委代碼設計框架的初衷和目的 把握設計:放棄細節,體位代碼接口和宏觀設計 體味細節:j基於頂層抽象設計,逐漸展開代碼 穿越時空的交流盛宴,應該應用以上三步法

原创 四個架構圖解決三個屬性

業務架構圖:業務在達到一定層次可以模塊化 數據架構圖:什麼樣的存儲體系,預見數據規模和增長速度 部署架構圖:多少計算資源和分佈式系統支撐 技術架構圖什麼樣的中間件支撐實現三個屬性   三個屬性 :可擴展性,可伸縮性,安全性     四個架

原创 mosquitto示例之tls-psk-bridge問題

C++ 代碼 #ifndef LIBMOSQUITTO_TLS_PSK_BRIDGE_HPP #define LIBMOSQUITTO_TLS_PSK_BRIDGE_HPP #include <errno.h> #include <st

原创 ubuntu 分辨率配置

Ubuntu16.04調整屏幕分辨率至1920*1080   1、輸入命令:cvt 1920 1080 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MH

原创 示例之libmosquittto_callback_test

callabck源代碼 #ifndef LIBMOSQUITTTO_CALLBACK_TEST_HPP #define LIBMOSQUITTTO_CALLBACK_TEST_HPP #include<stdio.h> #includ

原创 示例之libmosquitto_single_test

#ifndef LIBMOSQUITTO_TEST_SINGLE_HPP #define LIBMOSQUITTO_TEST_SINGLE_HPP #include<stdio.h> #include<stdlib.h> #includ

原创 mosquitto概要分析---常用數據結構

1.主要數據結構  struct mosquitto(mosquitto_internal.h) 保存客戶端連接的所有信息  struct mosquitto_db(mosquitto_broker.h) 對所有內部數據的統一管理,保存所

原创 從代碼角度優化編譯速度

加快代碼編譯速度 1.在頭文件中使用前置聲明,而不是直接包含頭文件 2.類的成員,函數參數等儘量使用引用指針,爲前置聲明創造條件 3.Pimpl模式,Private Implementation,使得類的接口與實現完全分離,

原创 C++的PIMPL實現

private Implementation 1.降低模塊耦合度 2.降低編譯依賴,提高編譯速度 3.接口與實現分離,提高接口穩定性 原理:在公共接口裏封裝私有數據和方法,將類的實現細節放在分離的指針訪問類中。