原创 操作系統深度研究(75頁PPT)

內容覆蓋操作系統基本概念、分類、關鍵技術,體系架構,發展歷程和主流國產操作系統廠商分析。文中報告節選自興業證券經濟與金融研究院已公開發布研究報告,具體報告內容及相關風險提示等詳見完整版報告。研究報告:操作系統深度:國產大潮起,海闊龍正躍

原创 蘋果要和 ARM 在 WWDC 舉辦「婚禮」,定義下一個 10 年

從 x86 到 ARM,暗藏的是蘋果全終端生態一體的野心。就在 ARM 中國上演宮斗大戲時,另一條關於 ARM 的動態更值得關注。近日,據彭博社 Mark Gurman 披露,蘋果或將在 6 月 22 日舉行 2020 年開發者大會 W

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

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

原创 Android中使用 eBPF 擴展內核

Android 包含一個 eBPF 加載器和庫,它可在 Android 啓動時加載 eBPF 程序以擴展內核功能。這可用於從內核收集統計信息,進行監控或調試。eBPF 簡介擴展型柏克萊封包過濾器 (eBPF) 是一個內核中的虛擬機,可運

原创 線程和線程調度的簡單實現

提要上一篇文章中講述了線程機制原理,這篇則是根據線程機制的原理簡單實現線程,並在初始化線程後實現簡單的線程調度。非常簡單的構建線程,PCB的結構很簡單,線程棧也很小。線程調度的實現相對於大型操作系統來說也很簡單,是在現有的條件下實現的簡

原创 Android進程管理:從Kernel到LowMemoryKiller

進程管理在Android系統中是個舉足輕重的模塊,因爲它與大家日常開發息息相關,相信大家都對進程的概念有所瞭解。然而對於大多數應用開發者來說,關於進程只知道有幾個耳熟能詳的概念:進程啓動期間涉及到fork、對進程的優先級管理涉及到adj

原创 CFS任務的負載均衡

負載均衡的系列文章共分爲三篇,第一篇爲框架篇,描述負載均衡的相關原理、場景和框架。本篇作爲該系列文章第二篇,主要通過對任務放置場景(task placement)的均衡分佈進行分析,以便加深讀者對內核調度器實現任務均衡分佈的理解。本文基

原创 或許是迄今爲止第一篇講解調試Android卡頓問題的文章吧

前言fps,是 frames per second 的簡稱,也就是我們常說的“幀率”。在遊戲領域中,fps 作爲衡量遊戲性能的基礎指標,對於遊戲開發和手機 vendor 廠商都是非常重要的數據,而計算遊戲的 fps 也成爲日常測試的基本

原创 Systrace 的原理、流程及定製

一、原理和基本流程Systrace是android性能調試優化的常用工具,它可以收集進程的活動信息,如界面佈局、UI渲染、binder通信等;也可以收集內核信息,如cpu調度、IO活動、中斷等;這些信息會統一時間軸,在Chrome瀏覽器

原创 王小二:安卓 app vsync的一些思考

前言昨天在IT之家留言說如果應用無法滿足120hz的繪製,假設如果繪製一幀的時間如果大於1/120秒,哪怕是多了1毫秒,就會導致應用在120hz的手機上也就變成了60hz。後來仔細想想這句話說的並不是特別嚴謹,爲什麼這麼說呢?一、證明我

原创 Linux可執行文件與進程的虛擬地址空間

作者簡介:本文由西郵陳莉君教授研一學生賀東昇編輯,樑金榮、張孝家校對建議結合之前的《linux的內存尋址方式》看。Linux可執行文件與進程的虛擬地址空間一個可執行文件被執行的同時也伴隨着一個新的進程的創建。Linux會爲這個進程創建一

原创 linux的內存尋址方式

爲什麼要內存管理:早期的程序都是直接運行在物理地址上,也就是說這個程序所需要的空間不超過該機器的物理內存就不會有問題,但實際場景中都是多任務,多進程的,這種物理地址reserved給各個進程是不靠譜的。舉個栗子:假如有3個程序a,b,c

原创 一個小實驗鞏固下進程管理

先回顧下之前的三篇文章:Linux進程在內核眼中是什麼樣子的?Linux 進程線程是如何創建的?Linux 是如何調度進程的?通過這三篇文章的學習我們知道,無論內核進程還是用戶進程,都是可以用task_struct來描述的,那麼本篇我們

原创 從底層到上層扒的 Binder 內褲都不留

一. 前言這篇文章我醞釀了很久,參考了很多資料,讀了很多源碼,卻依舊不敢下筆。生怕自己理解上還有偏差,對大家造成誤解,貽笑大方。又怕自己理解不夠透徹,無法用清晰直白的文字準確的表達出 Binder 的設計精髓。直到今天提筆寫作時還依舊戰

原创 王小二:十分鐘讓你明白AIDL

前言我在[003]AIDL是什麼中介紹的AIDL,但是好像還有朋友不明白問我,那我就來寫一個終極版的文章,讓你十分鐘徹底明白AIDL,以下代碼全爲手寫。目標Server進程註冊一個Binder服務到SM,該Binder服務提供兩個接口: