原创 Linux內存初始化(下)

我們接着看linux初始化內存的下半部分,等內存初始化後就可以進入真正的內存管理了,初始化我總結了一下,大體分爲三步:物理內存進系統前用memblock模塊來對內存進行管理頁表映射zone初始化前兩步在linux裏分別對應如下操作:fi

原创 Linux內存初始化(上)

有了armv8架構訪問內存的理解,我們來看下linux在內存這塊的初始化就更容易理解了。創建啓動頁表:在彙編代碼階段的head.S文件中,負責創建映射關係的函數是create_page_tables。create_page_tables

原创 手把手教你入門AIoT(9)

本課程會深入淺出地介紹 MQTT 協議的各種特性,對每個協議特性都輔以具體代碼進行講解,並通過一個 IoT+AI 項目實戰來具體展現 MQTT 在移動端、Web 端的使用,MQTT Broker 的架設等場景。內容如下:1.MQTT協議

原创 Linus Torvalds:我們都老了,但Linux維護真的很難找

Linux 之父Linus Torvalds非常擔憂沒人繼續維護內核:“真的很難找到維護者!”在本周召開的Linux開源峯會與嵌入式大會上,  VMware的首席開放源代碼官Dirk Hohndel和Linux的創建者Linus Tor

原创 手把手教你入門AIoT(10)

本課程會深入淺出地介紹 MQTT 協議的各種特性,對每個協議特性都輔以具體代碼進行講解,並通過一個 IoT+AI 項目實戰來具體展現 MQTT 在移動端、Web 端的使用,MQTT Broker 的架設等場景。內容如下:1.MQTT協議

原创 誰說程序不能在指定地址運行?

我們知道程序在每次運行的時候地址都是不一樣的,linux之所以有這樣的設計也許是爲了安全性考慮,不利於黑客的攻擊。我們看一個簡單的程序:#include <stdio.h> #include <stdlib.h> int main(i

原创 進程內存管理初探

隨着cpu技術發展,現在大部分移動設備、PC、服務器都已經使用上64bit的CPU,但是關於Linux內核的虛擬內存管理,還停留在歷史的用戶態與內核態虛擬內存3:1的觀念中,導致在解決一些內存問題時存在誤解。例如現在主流的移動設備操作系

原创 算法複雜度O(1),O(n),O(logn),O(nlogn)的含義

接下來幾篇文章會介紹linux內核是如何調度進程的,在學習內核進程調度之前有必要搞懂這些準備知識!相信很多開發的同伴們在研究算法、排序的時候經常會碰到O(1),O(n),O(logn),O(nlogn)這些複雜度,看到這裏就會有個疑惑,

原创 手把手教你入門AIoT(6)

本課程會深入淺出地介紹 MQTT 協議的各種特性,對每個協議特性都輔以具體代碼進行講解,並通過一個 IoT+AI 項目實戰來具體展現 MQTT 在移動端、Web 端的使用,MQTT Broker 的架設等場景。內容如下:1.MQTT協議

原创 手把手教你入門AIoT(7)

本課程會深入淺出地介紹 MQTT 協議的各種特性,對每個協議特性都輔以具體代碼進行講解,並通過一個 IoT+AI 項目實戰來具體展現 MQTT 在移動端、Web 端的使用,MQTT Broker 的架設等場景。內容如下:1.MQTT協議

原创 位操作運算有什麼奇技淫巧?(附源碼)

位運算百度百科如下:程序中的所有數在計算機內存中都是以二進制的形式儲存的。位運算就是直接對整數在內存中的二進制位進行操作位操作的優勢位運算是一種底層的運算,往往比我們普通的運算要快上許多許多位運算是最高效而且佔用內存最少的算法操作,執行

原创 你想搞數據分析嗎?

最近有一些從事數據分析的粉絲在後臺問我:老師,簡歷到底應該怎麼寫呀?高頻出現的面試問題要怎麼答才能出彩呢?自己去求職面試,要麼簡歷入不了HR的法眼,要麼第一輪就被刷了,幾乎是面一個撲一個,十分痛苦和焦慮。雖然職位名稱都是“數據分析師”,

原创 Linux內存管理之MMU的過程

之前寫過一篇《CPU是如何訪問內存的?》的文章,簡單介紹了cpu訪問內存的過程。有了之前的感性認識,這篇站在arm的角度再深度講解一下,看完你會發現不理解arm原理就直接擼內核代碼簡直是耍流氓。ARMv8中的訪問內存流程我喜歡用圖的方式

原创 Android中的 eBPF 流量監控

eBPF 網絡流量工具結合使用內核與用戶空間實現來監控設備自上次啓動以來的網絡使用情況。它提供了額外的功能(如套接字標記、分離前臺/後臺流量,以及按 UID 劃分的防火牆),以根據手機狀態阻止應用訪問網絡。從該工具收集的統計數據存儲在稱

原创 CPU idle框架

在現代操作系統中,往往很多時候並不需要去執行cpu密集型的任務,而每當這個時候,如果去持續的執行循環去等待新的任務發過來,那需要消耗巨大的能量。所以設計人員設計出一種空閒狀態以此CPU進入低功耗模式。在Linux系統中,系統中的程序在C