随笔分类 - Linux misc
摘要:转自:https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316692.html 简介 strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数
阅读全文
摘要:调用过程: 用户空间->内核空间INT 0x80(封装在C库函数中) -->system_call(系统调用处理程序)-->系统调用服务例程 -->内核程序系统调用时通过软中断指令INT 0x80实现的,这条指令会让系统跳转到一个预先设置好的内核地址,指向系统调用处理程序system_call。 系
阅读全文
摘要:linux系统调用kernel code kernel\include\uapi\asm-generic\unistd.h kernel/sys.c SYSCALL_DEFINE2(setpgid, pid_t, pid, pid_t, pgid) { struct task_struct *p;
阅读全文
摘要:Symbols/Function Pointers: %pF versatile_init+0x0/0x110 %pf versatile_init %pS versatile_init+0x0/0x110 %pSR versatile_init+0x9/0x110 (with __builtin_
阅读全文
摘要:可能有错,更新中。。。用2级页表将用户空间的0-3G线性地址映射到256MBSDRAM的物理地址3000 0000-3FFF FFFF中 2^10=1024=0x400 2^12=4096=0x1000 2^14=16384=0x40001个页目录-->覆盖3GB物理内存范围(可以4GB)1个页目录
阅读全文
摘要:进程是操作系统的一个核心概念。每个进程都有自己唯一的标识:进程ID,也有自己的生命周期。一个典型的进程的生命周期如图4-1所示。 进程都有父进程,父进程也有父进程,这就形成了一个以init进程为根的家族树。除此以外,进程还有其他层次关系:进程、进程组和会话。 进程组和会话在进程之间形成了两级的层次:
阅读全文
摘要:What is the purpose of the controlling terminal? Say that I have opened some program from the terminal, and I have redirected its stdin and stdout and
阅读全文
摘要:The /proc/PID/smaps is an extension based on maps, showing the memory consumption for each of the process's mappings. For each of mappings there is a
阅读全文
摘要:kernel cash时打印寄存器值以及寄存器指向的地址前后128字节的值 arch/arm64/kernel/process.c void __show_regs(struct pt_regs *regs) { int i, top_reg; u64 lr, sp; if (compat_user
阅读全文
摘要:概述 经常有用户问我,使用USB2XXX的USB2IIC功能的时候,从机地址应该怎么传递的问题,这个问题的根源在于不同的I2C从机厂商采用了不同的I2C总线地址约定,导致在说I2C总线的时候总是容易搞混,本文主要针对这个问题对I2C总线地址进行详细的说明。 7位寻址 在7位寻址过程中,从机地址在启动
阅读全文
摘要:要先修改linux kernel 源代码的顶层Makefile CC = $(CROSS_COMPILE)gcc 修改为CC = $(CROSS_COMPILE)gcc -g这样编译的内核模块就带有debug信息 #arm-linux-objdump -S -D opps.ko>log#vi log
阅读全文
摘要:地址分布虚拟地址都用64位无符号数表示。用户虚拟地址从高位的63到低位的48都是0,内核虚拟地址则相反,63~48都是1. TTBR x(Translation table base register)的选择是通过虚拟地址的第63 bit位来确定的。swapper_pg_dir只包含内核地址映射,而
阅读全文
摘要:在使用perf排查问题时,我们经常会发现[kernel.kallsyms]这个模块。这到底是个什么东西呢? 简介: 在2.6版的内核中,为了更方便的调试内核代码,开发者考虑将内核代码中所有函数以及所有非栈变量的地址抽取出来,形成是一个简单的数据块(data blob:符号和地址对应),并将此链接进
阅读全文
摘要:from: http://blog.chinaunix.net/uid-28414100-id-5753227.html 内核源码中#ifndef _ARM_ERRNO_H#define _ARM_ERRNO_H#define EPERM 1 /* Operation not permitted *
阅读全文
摘要:from: https://www.cnblogs.com/kex1n/p/8296623.html 1. sigprocmask函数提供屏蔽和解除屏蔽信号的功能。 从而实现关键代码的运行不被打断。 函数声明如下: int sigprocmask(int how, const sigset_t *s
阅读全文
摘要:from: https://www.cnblogs.com/subo_peng/p/5325326.html 【摘要】本文分析了Linux内核对于信号的实现机制和应用层 的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触
阅读全文
摘要:首先: \r就是"回到行首",\n就是"到下一行" 即:\r是回车,\n是换行,前者使光标到行首,后者使光标下移一格。通常用的Enter是两个加起来的,即\r\n 直接这么说你可能没啥感觉,但是真正到了编码的时候你就发现了——全TM是吭先举个栗子瞅瞅: printf aaaa \r\n bbbbbb
阅读全文
摘要:NAME pthread_setname_np, pthread_getname_np - set/get the name of a thread SYNOPSIS
阅读全文
摘要:一:Linux虚拟地址空间布局 (转自:Linux虚拟地址空间布局) 在多任务操作系统中,每个进程都运行在属于自己的内存沙盘中。这个沙盘就是虚拟地址空间(Virtual Address Space),在32位模式下它是一个4GB的内存地址块。在Linux系统中, 内核进程和用户进程所占的虚拟内存比例
阅读全文
摘要:Tainted kernels:Some oops reports contain the string 'Tainted: ' after the programcounter. This indicates that the kernel has been tainted by somemech
阅读全文