原创 Linux系統調用 - write

write()系統調用向指定的文件描述符內寫入指定字節數的內容,函數原型: ssize_t write(int fd, const void *buf, size_t count); 其中參數count表示最多寫入的字節數,返回值表是真正

原创 Linux系統調用 - open

open() 系統調用很有可能是Linux開發者用到的第一個系統調用,它打開一個指定目錄上的文件或設備,必要的時候會創建一個。 函數原型:int open(const char *pathname, int flags, ...); 其中

原创 Linux系統調用 - read

read()系統調用的原型:ssize_t read(int fd, void *buf, size_t count); 功能:從指定的文件描述符中讀取最多count個字節的數據到指定的buf中去。如果傳入的count是0,這個系統調用什

原创 Linux系統調用列表(CentOS 7 64bits)

本系列計劃把Linux的所有系統調用都扒一遍,詳細解釋每個系統調用的功能,用法,使用示例,應用場景和注意事項。 系統中支持的系統調用列表及編號都定義在 /usr/include/asm/unistd.h文件下。 以下的列表來源於64位的C

原创 在Android真機上使用gdb單步調試

首先需要一臺root過的手機,安裝好BusyBox工具箱,並連接到一臺配置好adb的調試PC。   1、從NDK的prebuild目錄下找到對應手機平臺的gdbserver,上傳到手機,運行遊戲,然後運行 gdbserver --atta

原创 Linux內核分析(二)時間片輪轉多道程序系統內核的簡單實現和代碼分析

作者:于波 原創作品轉載請註明出處 參考:《Linux內核分析》MOOC課程http://mooc.study.163.com/course/USTC-1000029000       這篇博客是Linux內核分析課程第二週課程的作業,要

原创 Linux內核分析(八)Linux中的進程調度與進程切換

本文將包括以下內容: 1. Linux中進程調度的時機 2. Linux的進程調度函數schedule()處理過程分析 3. 進程上下文切換過程分析   一、Linux中進程調度的時機     進程調度函數schedule在Linux的源

原创 Linux內核分析(一)通過彙編代碼,理解程序在計算機中是如何運行的

作者:于波    聲明:原創作品轉載請註明出處    來源:《Linux內核分析》MOOC課程http://mooc.study.163.com/course/USTC-1000029000     首先說一下背景,這篇博文是網易雲課堂中

原创 Linux內核學習總結

 Linux內核是一個提供硬件抽象層、文件系統管理、多任務管理等功能的系統軟件,主要模塊包括:CPU和進程管理、存儲管理、文件系統、設備管理和驅動、網絡通信、系統調用等。而本課程主要聚焦在CPU和進程管理模塊,幫助我們理解程序在Linux

原创 Linux內核分析(七)系統調用execve處理過程

本文的內容包括: 1. 用execve系統調用加載和執行一個可執行程序的代碼演示 2. 用gdb跟蹤系統調用execve的執行過程 3. execve系統調用處理過程分析   一、如何用execve系統調用加載一個可執行程序 下面的代碼可

原创 Linux內核分析(四)Linux系統調用初探

系統調用是操作系統爲用戶態進程提供的一組可以與硬件設備進行交互的接口,可以幫助應用程序開發者從處理底層硬件的細節中解放出來。所以系統調用的上層就是我們的應用程序,而下層就是操作系統管理下的各種硬件設備和其他資源。應用程序是通過中斷的方式向

原创 Linux內核分析(六)Linux新進程創建處理過程

Linux創建新進程使用fork系統調用,系統調用的前期和一般的系統調用並沒有什麼特別的區別,而區別在於fork處理過程do_fork的內部。do_fork的處理過程可總結爲: 1. 複製父進程的程序控制塊; 2. 修改複製過來的進程控制

原创 Linux內核分析(五)Linux系統調用中斷處理過程

上一篇博文我們用匯編的方式實現了對系統調用open的引用,這一次我們來深入到系統調用處理的內部,來看看Linux到底是如何處理系統調用的。       系統調用函數system_call的代碼可以在arch/x86/kernel/entr

原创 Linux內核分析(三)Linux內核啓動過程分析

作者:于波 聲明:原創作品,轉載請註明出處 參考:《Linux內核分析》MOOC課程http://mooc.study.163.com/course/USTC-1000029000       這是網易雲課堂《Linux內核分析》課程第三

原创 Linux鏈接腳本詳解

轉載自:https://www.cnblogs.com/li-hao/p/4107964.html   一、 概論 每一個鏈接過程都由鏈接腳本(linker script, 一般以lds作爲文件的後綴名)控制. 鏈接腳本主要用於規定如何把