![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux源码分析
文章平均质量分 61
ibless
这个作者很懒,什么都没留下…
展开
-
linux系统调用sched_setaffinity内核实现分析
在讲解具体实现之前,我们先来看一个场景:启动一个进程,并且在启动的时候就绑定该进程运行的CPU,如下图(我们是在KVM中启动一个虚拟机,该虚拟机启动时就进行了CPU绑定):可以看到虚拟机进程vCPU确实被绑定在了0-11,24-35号CPU上,下面我们使用taskset修改该进程绑定的CPU上,比如修改为12-23,结果如下:可以看到上面设置失败,于是我们编程再次尝试一下,程序...原创 2018-12-10 17:13:02 · 4886 阅读 · 1 评论 -
Linux中/prc/pid/status中部分信息源码
/proc/pid/status中关于内存信息源码//源码路径: /fs/proc/task_mmu.cvoid task_mem(struct seq_file *m, struct mm_struct *mm){ unsigned long data, text, lib, swap; unsigned long hiwater_vm, total_vm, hiwater_rss, ...原创 2018-12-20 15:39:12 · 531 阅读 · 0 评论 -
Linux内核中获取系统负载源代码
Linux内核中获取系统负载内核中获取系统负载源代码内核中获取系统负载源代码//源码路径/fs/proc/loadavg.c#define LOAD_INT(x) ((x) >> FSHIFT)#define LOAD_FRAC(x) LOAD_INT(((x) & (FIXED_1-1)) * 100)static int loadavg_proc_show(st...原创 2018-12-20 14:53:59 · 293 阅读 · 0 评论 -
Linux系统调用(syscall)原理
原文网址:http://gityuan.com/2016/05/21/syscall/引言:分析Android源码的过程中,要想从上至下完全明白一行代码,往往涉及app、framework、native一直到kernel,可能迷失到代码世界,明白了系统调用原理,或许能帮你峰回路转,找到进入kernel函数的入口。本文主要讲解ARM架构相关源码:/bionic/libc/kernel/...转载 2018-10-26 21:00:06 · 341 阅读 · 0 评论 -
Linux内核中list_for_each()和list_for_each_safe()
今天看Linux内核代码,看到了list_for_each_safe()函数,想仔细的研究一下。下面是源代码:list_for_each()的定义:/** * list_for_each - iterate over a list * @pos: the &struct list_head to use as a loop cursor. * @head: the he...原创 2018-08-22 21:24:54 · 2725 阅读 · 2 评论 -
Linux内核中do{...}while(0)意义
原文网址:http://www.spongeliu.com/415.htmllinux内核和其他一些开源的代码中,经常会遇到这样的代码:do{ ...}while(0)这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢?实际上,do{...}while(0)的作用远大于美化你的代码。查了些资料,总结起来这样写主要有以下几点好处:...转载 2018-08-13 22:40:43 · 1574 阅读 · 0 评论 -
Linux内核中的链表
1 链表简述在讲Linux内核中的链表之前,我们先来看一下平时所见的链表:/*平时所见的单向链表*/struct entry{ int data; char * desc; struct entry *next;}/*平时所见的双向链表*/struct entry{ int data; char * desc; struct entry *prev; struct...原创 2018-08-12 21:06:48 · 988 阅读 · 1 评论 -
linux内核中的likely()和unlikely()宏的作用
原文链接:https://blog.csdn.net/jasonchen_gbd/article/details/44968395在看linux内核代码的时候,经常会看到likely(x)和unlikely(x)宏的使用。那这两个宏有什么作用呢?这两个宏在内核中的定义如下:# define likely(x) __builtin_expect(!!(x), 1)# define unli...转载 2018-08-14 21:43:12 · 245 阅读 · 0 评论 -
Linux中计算特定CPU使用率
Linux中计算特定CPU使用率需求解决方案拓展参考需求在Linux中可以通过top指令查看某一进程占用的CPU情况,也可以查看某一个CPU使用率情况(先top指令,然后按数字“1”键即可显示每一个CPU的使用情况),如下图:而我们的需求是:如何得到一个CPU的占用率呢?解决方案1. 背景知识在/proc/stat中可以查看每一个CPU的使用情况的,如下图:其中cpu(0/1/2...原创 2018-12-23 20:03:51 · 15826 阅读 · 2 评论