![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux kernel
文章平均质量分 80
wyt357359
这个作者很懒,什么都没留下…
展开
-
/proc 目录下各进程创建过程
/proc/ 下各进程是动态创建的,其创建过程如下 (内核版本为 2.6.30): mount -t proc proc /proc .get_sb = proc_get_sb, proc_fill_super root_inode = proc_get_inode(s, PROC_ROOT_I...原创 2018-12-09 17:53:59 · 1112 阅读 · 0 评论 -
新建文件的 uid gid 设置流程 (以jiffs2为例)
内核版本(4.15) do_sys_open do_filp_open path_openat do_last lookup_open ...原创 2019-07-22 23:05:32 · 557 阅读 · 0 评论 -
linux内核信号处理过程
基于 uClibc (0.9.33) 和 kernel(4.15)1. signal ( uClibc 中的定义及实现)__sighandler_t signal (int sig, __sighandler_t handler) 其实际是基于 sigaction 来实现的。 sigaction 每个体系各自实现,对于arm体系: libc\sysdeps\linux\a...原创 2019-08-04 11:26:08 · 1343 阅读 · 0 评论 -
Linux C内联汇编用法
参见:https://blog.csdn.net/surfacedust/article/details/17138675转载 2019-08-04 09:01:18 · 148 阅读 · 0 评论 -
linux arm 进程调度时机
基于 3.10.90 内核代码在 kernel\sched\core.c 里, 对于 __schedule 有如下注释:/* * __schedule() is the main scheduler function. * * The main means of driving the scheduler and thus entering this function are: * ...原创 2019-02-08 11:10:39 · 366 阅读 · 0 评论 -
linux arm 进程切换之 __switch_to (注释)
内核版本 3.10.90arch\arm\kernel\entry-armv.S/* * Register switch for ARMv3 and ARMv4 processors * r0 = previous task_struct, r1 = previous thread_info, r2 = next thread_info * previous and next are...原创 2019-01-29 21:52:43 · 2552 阅读 · 0 评论 -
linux arm 异常及中断处理过程 2 --- entry-common.S / entry-header.S (注释)
内核版本(3.10.90)1. arch\arm\kernel\entry-common.S /* * "slow" syscall return path. "why" tells us if this was a real syscall. */ENTRY(ret_to_user) /* 执行路径 : *...原创 2019-01-29 20:26:41 · 588 阅读 · 0 评论 -
linux arm 异常及中断处理过程 1 --- entry-armv.S (注释)
内核版本 3.10.90 arch\arm\kernel\entry-armv.S /* * Interrupt handling. */ .macro irq_handler#ifdef CONFIG_MULTI_IRQ_HANDLER ldr r1, =handle_arch_irq mov r0, sp /* 通过 svc_entr...原创 2019-01-29 20:15:47 · 1424 阅读 · 0 评论 -
ARM汇编中^、!、cxsf符号和movs等指令使用
转载来自 http://www.sohu.com/a/74272814_119709.macro restore_user_regsldr r1,[sp, #S_PSR]ldr lr,[sp, #S_PC]! @ !用来控制基址变址寻址的最终新地址是否进行回写操作,@ 执行ldr之后sp被回写成sp+#S_PC基址变址寻址的新地址msrspsr,r1 @ 把cpsr的值保存到s...转载 2019-02-05 23:00:56 · 3762 阅读 · 0 评论 -
linux arm 内核解压缩过程(注释)
内核版本 3.10.90对应文件:arch\arm\boot\compressed\head.S (下面的代码有删减) .section ".start", #alloc, #execinstr /* .start 段,在 arch\arm\boot\compressed\vmlinux.lds.in ...原创 2019-01-27 21:34:33 · 1273 阅读 · 0 评论 -
linux arm 内核解压后启动过程(注释)
内核版本 3.10.90内核在解压后执行时会跳转执行的代码为:arch\arm\kernel\head.S 中的/* * Kernel startup entry point. * --------------------------- * * This is normally called from the decompressor code. The requirement...原创 2019-01-27 21:58:25 · 242 阅读 · 0 评论 -
文件打开时内核权限检查流程
内核版本(4.15)DAC: Discretionary access control 自主访问控制 . DAC是传统的Linux的访问控制方式,DAC可以对文件、文件夹、共享资源等进行访问控制。 在DAC这种模型中,文件客体的所有者(或者管理员)负责管理访问控制。DAC使用了ACL(Access Control List,访问控制列表)来给非管理者用户提供不同的权限,而root用户...原创 2019-07-31 21:36:15 · 837 阅读 · 0 评论