Linux内核源码下载地址 官网链接 https://www.kernel.org/ 国内下载(推荐) http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/ 选择对应的版本下载即可 ...
分类:
系统相关 时间:
2021-06-08 22:48:21
阅读次数:
0
前言 事实证明,读过Linux内核源码确实有很大的好处,尤其在处理问题的时刻。当你看到报错的那一瞬间,就能把现象/原因/以及解决方案一股脑的在脑中闪现。甚至一些边边角角的现象都能很快的反应过来是为何。笔者读过一些Linux TCP协议栈的源码,就在解决下面这个问题的时候有一种非常流畅的感觉。 Bug ...
分类:
其他好文 时间:
2021-05-25 17:42:11
阅读次数:
0
prepare_kernel_cred - Prepare a set of credentials for a kernel service 使用指定进程的 real_cred 去构造一个新的 cred,不是引用,不是引用,不是引用,而是创建一个新的 cred 源码版本:Linux Kernel ...
分类:
系统相关 时间:
2021-02-24 13:11:59
阅读次数:
0
be32_to_cpup()接口是干什么的呢? 转换一个无符号的, 大端, 32位值到一个cpu的大小端值(如果cpu为大端序,就将数值直接返回此值;如果cpu为小端序,就将数值转换为小端序) be32_to_cpup()接口的定义(linux内核源码的版本为5.9) #define be32_to ...
分类:
系统相关 时间:
2020-10-21 20:22:30
阅读次数:
38
这几天一直在忙别的事,完事了,看了点文件系统相关的部分,就看看 read 在内核里面的实现 这是大概的函数调用链,但是我不会一个一个全部去分析,我只看主要的 man 手册描述 via:https://man7.org/linux/man-pages/man2/read.2.html NAME rea ...
分类:
系统相关 时间:
2020-06-25 17:39:42
阅读次数:
113
ctrl+Alt打开terminal,uname -a查看linux内核版本。我这里安装的ubuntu的内核版本为5.4.0-29-generic。 socket.h中只有函数声明,要获得c文件得解压linux内核源码。 extern int socket (int __domain, int __ ...
分类:
其他好文 时间:
2020-06-14 20:33:35
阅读次数:
52
Linux内核源码分析 -- 同步原语 -- 自旋锁 spinlock_t typedef struct spinlock { union { struct raw_spinlock rlock; #ifdef CONFIG_DEBUG_LOCK_ALLOC # define LOCK_PADSIZ ...
分类:
系统相关 时间:
2020-06-08 00:16:40
阅读次数:
138
Linux内核源码分析 -- 同步原语 -- 信号量 semaphore 源码位于 include/linux/semaphore struct semaphore { raw_spinlock_t lock; // 保护信号量的自旋锁 unsigned int count; // 现有的资源的数量 ...
分类:
系统相关 时间:
2020-06-07 19:39:35
阅读次数:
105
一、背景 Linux系统出现性能瓶颈时,往往因个别函数长时间占用CPU造成,解决问题的第一步就是定位到引起问题的函数,perf就是这样的工具,它是Linux内核源码提供的工具。 二、核心概念 1. 数据采集 perf通过采样的方式,记录CPU正在执行的函数名及函数的调用栈,通常采样频率是每秒99次, ...
分类:
系统相关 时间:
2020-05-02 17:23:05
阅读次数:
559
在使用 deepin + vscode 查看linux源码时,发现比较恶心的问题,跳转到指定函数特别慢,偶尔还跳转不过去,在vscode 中安装一个插件就好了 1. vscode 安装插件名:C/C++ GNU Global 2. 在deepin中安装一个软件:sudo apt install gl ...
分类:
系统相关 时间:
2020-02-14 18:48:09
阅读次数:
353