随笔分类 -  Linux系统

Cgroup学习笔记3—代码实现—相关结构和全局变量
摘要:基于 LInux-5.10 一、相关结构 1. 通过多次的 #define 和 #undef SUBSYS 宏来展开 cgroup_subsys.h 中通过 deconfig 使能的 cgroup 子系统来填充相关结构体。 在 include/linux/cgroup-defs.h 中以 SUBSY 阅读全文

posted @ 2023-03-03 11:34 Hello-World3 阅读(937) 评论(0) 推荐(0)

Uid和Gid
摘要:1. Android中Uid定义在 Process.java 中 //frameworks/base/core/java/android/os/Process.java public class Process { public static final int ROOT_UID = 0; //De 阅读全文

posted @ 2023-01-17 14:38 Hello-World3 阅读(273) 评论(0) 推荐(0)

tracer ftrace笔记(12)—— trace文档翻译与实验——/sys/kernel/tracing/README
摘要:基于 Linux-5.10.110 一、翻译 /sys/kernel/tracing # cat README tracing mini-HOWTO: # echo 0 > tracing_on //禁用trace的快速方法# echo 1 > tracing_on //重新启用trace的快速方法 阅读全文

posted @ 2023-01-16 13:00 Hello-World3 阅读(1162) 评论(0) 推荐(0)

GDB-5——gdb tui在gdb中显示程序源码
摘要:一、简介 gdb 在调试的时候不能很好的展示源码。gdb 里面可以用 list 命令显示源码,但是 list 命令显示没有代码高亮,也不能一眼定位到正在执行的那行代码在整个代码中的位置。可以使用 gdb 自带的 gdbtui。 二、使用方法 1. 开启gdb tui模式 方法一:使用 gdbtui 阅读全文

posted @ 2022-11-08 11:57 Hello-World3 阅读(1931) 评论(0) 推荐(0)

GDB-4——Android设备中使用GDB调试程序的例子
摘要:一、一个简单的例子 1. 实验Demo (1) Android.mk LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES:= mytest.c LOCAL_MODULE:= mytest LOCAL_C_FLAGS + 阅读全文

posted @ 2022-11-08 11:54 Hello-World3 阅读(674) 评论(0) 推荐(0)

GDB-3——GDB实用调试技巧
摘要:1. 将 print 显示的字符串或字符数组显示完整 当我们使用 print 命令打印一个字符串或者字符数组时,如果该字符串太长,print 命令默认显示不全的,我们可以通过在 gdb 中输入 set print element 0 设置一下,这样再次使用 print 命令就能完整地显示该变量所有字 阅读全文

posted @ 2022-11-08 11:51 Hello-World3 阅读(991) 评论(0) 推荐(0)

GDB-2——GDB调试多线程
摘要:一、简介 前一博文实际上已经介绍了多线程的调试方法,这节专门进行一下总结。 二、调试多线程 1. 使用 gdb 将程序跑起来,然后按 Ctrl + C 将程序中断下来,使用 info threads 命令查看当前进程有多少线程。 2. 使用 thread <线程编号> 可以切换到对应的线程,然后使用 阅读全文

posted @ 2022-11-08 11:46 Hello-World3 阅读(4221) 评论(0) 推荐(1)

GDB-1——GDB初探
摘要:一、GDB简介 在 Linux 编程中,通常使用 gdb 来调试 C/C++ 应用程序。若想调试内核可以使用GTAG(不方便,需要硬件上飞线)或使用Qemu,清华大学相关网址上有介绍Qemu是怎么配置的。 二、给被调试程序加调试信息 1. gcc 编译程序时加上 -g 编译选项以便能晰地看到调试的每 阅读全文

posted @ 2022-11-08 11:42 Hello-World3 阅读(837) 评论(0) 推荐(1)

tracer ftrace笔记(10)—— trace内容分析
摘要:基于Linux-5.10 一、trace打印格式 1. 在把 raw trace 数据格式化成用户可读的形式时,trace数据分成两部分:一部分是 common 信息,一部分是用户自定义的 trace 信息,这两部分分开格式化。 common信息: 这部分有系统根据当前是 “Normal forma 阅读全文

posted @ 2022-10-11 16:57 Hello-World3 阅读(1201) 评论(0) 推荐(0)

tracer ftrace笔记(9)—— TRACE_EVENT 初始化
摘要:基于Linux-5.10 一、内核启动时遍历 trace_event_call 初始化流程 1. TRACE_EVENT()多次展开定义了各种实现函数以后,最终把本 event 的所有的函数和数据存放在一个类型为 struct trace_event_call 的顶层变量中,并且会把指针存放到 se 阅读全文

posted @ 2022-10-11 16:22 Hello-World3 阅读(708) 评论(0) 推荐(0)

kptr_restrict 内核文件简介
摘要:一、简介 系统为了保护内核符号地址不被泄露, 而用的一种保护手段, 从而使除 root 用户外的普通用户不能直接查看符号地址。原因在于内核文件 kallsyms.c 中的显示符号地址命令中做了如下限制: seq_printf(m, "%pK %c %s\n", (void *)iter->value 阅读全文

posted @ 2022-07-11 21:28 Hello-World3 阅读(1847) 评论(0) 推荐(0)

Documentation/power/freezing-of-tasks.rst 翻译
摘要:来自:kernel-5.10 冻结任务 (C) 2007 Rafael J. Wysocki <rjw@sisk.pl>,GPL 一、什么是任务冻结? 任务的冻结是一种机制,在休眠或系统范围的挂起(在某些体系结构上)期间,用户空间进程和某些内核线程可以通过该机制进行控制。 二、 它是如何工作的? 为 阅读全文

posted @ 2022-01-08 22:14 Hello-World3 阅读(333) 评论(0) 推荐(0)

给Linux内核提交代码
摘要:参考: 给Linux内核提交代码: https://wushifublog.com/2020/01/29/%E7%BB%99Linux%E5%86%85%E6%A0%B8%E6%8F%90%E4%BA%A4%E4%BB%A3%E7%A0%81/ 阅读全文

posted @ 2021-12-08 10:37 Hello-World3 阅读(229) 评论(0) 推荐(0)

tracer ftrace笔记(3)——宏展开和hook和注册——lengency
摘要:一、ftrace的宏 1. struct tracepoint 结构 使用 struct tracepoint 变量来描述一个 trace point。 //include/linux/tracepoint-defs.h struct tracepoint { const char *name; / 阅读全文

posted @ 2021-11-07 23:15 Hello-World3 阅读(3875) 评论(0) 推荐(0)

prctl系统调用设置进程名
摘要:1. prctl 系统调用函数 $ man 2 prctl //prctl - operations on a process //#include <sys/prctl.h> int prctl(int option, unsigned long arg2, unsigned long arg3, 阅读全文

posted @ 2021-11-03 22:58 Hello-World3 阅读(1413) 评论(0) 推荐(0)

Cgroup内核文档翻译(8)——/dev/cpuctl/*
摘要:# ls /dev/cpuctl/* /dev/cpuctl/cgroup.clone_children /dev/cpuctl/cgroup.sane_behavior /dev/cpuctl/notify_on_release /dev/cpuctl/tasks /dev/cpuctl/cgro 阅读全文

posted @ 2021-03-01 16:50 Hello-World3 阅读(567) 评论(0) 推荐(0)

Cgroup内核文档翻译(8)——Documentation/cgroup-v1/pids.txt
摘要:Process Number Controller 抽象 进程号控制器用于允许cgroup层次结构在达到一定限制后停止任何新任务被 fork() 或 clone() 。 由于在不达到任何kmemcg限制的情况下达到任务限制很简单,因此PID是基本资源。 因此,必须通过限制cgroup中任务数量的资源 阅读全文

posted @ 2021-01-19 00:48 Hello-World3 阅读(454) 评论(0) 推荐(0)

Cgroup内核文档翻译(6)——Documentation/cgroup-v1/devices.txt
摘要:设备白名单控制器(Device Whitelist Controller) 1.说明: 实现一个cgroup来跟踪并强制执行对设备文件的打开和mknod限制。 设备cgroup将设备访问白名单与每个cgroup相关联。 白名单条目具有4个字段。 'type' 是 a (all), c (char), 阅读全文

posted @ 2021-01-10 23:43 Hello-World3 阅读(632) 评论(0) 推荐(0)

Cgroup内核文档翻译(4)——Documentation/cgroup-v1/cpuacct.txt
摘要:CPU记帐控制器(CPU Accounting Controller) CPU记帐控制器用于使用cgroup对任务进行分组,并计算这些任务组的CPU使用率。CPU记帐控制器支持多层次结构组。 记帐组会累积其所有子组的CPU使用率以及直接存在于该组中的任务。可以通过首先挂载cgroup文件系统来创建记 阅读全文

posted @ 2021-01-08 00:46 Hello-World3 阅读(407) 评论(0) 推荐(0)

Cgroup内核文档翻译(3)——Documentation/cgroup-v1/cgroups.txt
摘要:CGROUPS 由Paul Menage <menage@google.com>根据Documentation/cgroup-v1/cpusets.txt提供 来自cpusets.txt的原始版权声明:部分版权所有(C)2004 BULL SA。部分版权所有(c)2004-2006 Silicon 阅读全文

posted @ 2021-01-04 01:24 Hello-World3 阅读(1384) 评论(0) 推荐(0)

导航