随笔分类 -  os

上一页 1 2 3 4 5 6 ··· 23 下一页

Ingo Molnar 的实时补丁
摘要:一、简介 Ingo Molnar 的实时补丁是完全开源的,它采用的实时实现技术完全类似于Timesys Linux,而且中断线程化的代码是基于TimeSys Linux的中断线程化代码的。这些实时实现技术包括:中断线程化(包括IRQ和softirq)、用Mutex取代spinlock、优先级继承和死 阅读全文

posted @ 2022-03-08 17:09 tycoon3 阅读(101) 评论(0) 推荐(0)

task_tick
摘要:调度器类 而依据其调度策略的不同实现了5个调度器类, 一个调度器类可以用一种种或者多种调度策略调度某一类进程, 也可以用于特殊情况或者调度特殊功能的进程. 其所属进程的优先级顺序为 stop_sched_class -> dl_sched_class -> rt_sched_class -> fai 阅读全文

posted @ 2022-03-08 10:26 tycoon3 阅读(146) 评论(0) 推荐(1)

抢占(PREEMPTION)是如何发生的
摘要:进程切换有自愿(Voluntary)和强制(Involuntary)之分,在前文中详细解释了两者的不同,简单来说,自愿切换意味着进程需要等待某种资源,强制切换则与抢占(Preemption)有关。 抢占(Preemption)是指内核强行切换正在CPU上运行的进程,在抢占的过程中并不需要得到进程的配 阅读全文

posted @ 2022-03-07 20:32 tycoon3 阅读(970) 评论(0) 推荐(0)

C语言 函数和程序结构 宏替换#define
摘要:宏定义的形式如下: #define 名字 替换文本 这是一种最简单的宏替换 —— 后续所有出现名字记号的地方都将被替换为 替换文本 。 #define 指令中的名字与变量名的命名方式相同,替换文本可以是任意字符串。通常情况下, #define 指令占一行,替换文本是 #define 指令行尾部的所有 阅读全文

posted @ 2022-02-24 18:09 tycoon3 阅读(1008) 评论(0) 推荐(0)

git patch
摘要:有这样的 目录层次 x/xx/xxx/xxx/ttt.c而 我的 当前位置 是在 x/下 ,执行git diff> test.patch 在test.patch补丁文件里的路径信息是这样的:- - - a/xx/xxx/xxx +++b/xx/xxx/xxx 如果 应用 test.patch 的时候 阅读全文

posted @ 2022-02-21 15:07 tycoon3 阅读(196) 评论(0) 推荐(0)

qemu device tree uart
摘要:qemu static const MemMapEntry virt_memmap[] = { [VIRT_DEBUG] = { 0x0, 0x100 }, [VIRT_MROM] = { 0x1000, 0xf000 }, [VIRT_TEST] = { 0x100000, 0x1000 }, [ 阅读全文

posted @ 2022-02-18 19:13 tycoon3 阅读(138) 评论(0) 推荐(0)

findnode_nofail Couldn't find node /chosen: FDT_ERR_NOTFOUND
摘要:qemu-system-riscv64 -M virt -m 512M -smp 2 -bios fw_jump.bin -kernel Image -append "rootwait root=/dev/vda console=ttyS0" -drive file=rootfs.ext2,form 阅读全文

posted @ 2022-02-18 11:53 tycoon3 阅读(786) 评论(0) 推荐(0)

中断中为什么不能sleep | Linux内核
摘要:在面试官:为什么在中断里不能sleep | Linux 内核一文中,作者逐层深入地讲解了为什么中断中为什么不能sleep,并给出了ISR 里处理耗时工作的解决办法,建议先行阅读。 文中把问题“中断中为什么不能sleep”逐步精确为“为什么在 Linux 里,ISR 被设计成不能睡眠”,讲得很好。但是 阅读全文

posted @ 2022-02-16 20:35 tycoon3 阅读(979) 评论(0) 推荐(0)

spinlock 和抢占
摘要:为了防止死锁,spinlock需要关中断和禁止抢占 场景分析 对于spin lock,其保护的资源可能来自多个CPU CORE上的进程上下文和中断上下文的中的访问,其中,进程上下文包括:用户进程通过系统调用访问,内核线程直接访问,来自workqueue中work function的访问(本质上也是内 阅读全文

posted @ 2022-02-16 20:25 tycoon3 阅读(940) 评论(0) 推荐(0)

objdump section
摘要:attribute有属性的含义,一般出现在代码中是用来定义“编译属性”的,当我们需要将C语言代码中的某个部分编译后链接到某个特定的段时,就需要在这个部分前面加上__attribute__((section(段名))),例如在代码中使用了__attribute__ ((section(".isr_ve 阅读全文

posted @ 2022-02-16 15:59 tycoon3 阅读(245) 评论(0) 推荐(0)

linux 添加用户ssh 密钥登陆
摘要:不能root要用普通用户 #!/bin/bash name=$1 useradd -m $name -s /bin/bash sub=`echo $name|md5sum|head -c 5` echo "$name:$name$sub" >> user.txt echo "$name:$name$ 阅读全文

posted @ 2022-01-25 17:53 tycoon3 阅读(104) 评论(0) 推荐(0)

gdb riscv 寄存器
摘要:For help, type "help". Type "apropos word" to search for commands related to "word". 0x0000000000001000 in ?? () (gdb) b xPortStartFirstTask Breakpoin 阅读全文

posted @ 2022-01-19 12:15 tycoon3 阅读(383) 评论(0) 推荐(0)

clocksource 出错cu: rcu_sched kthread timer wakeup didn't happen for 89211 jiffies
摘要:[ 467.024565][ C2] rcu: Stack dump where RCU GP kthread last ran: [ 467.031360][ C2] Task dump for CPU 2: [ 467.035629][ C2] task:swapper/2 state:R ru 阅读全文

posted @ 2022-01-18 17:16 tycoon3 阅读(497) 评论(0) 推荐(0)

gdb display/20i 反汇编
摘要:方法1. display 查看当前执行及后20行汇编指令 (gdb) display /20i $pc # trampoline ``` kvmmap(TRAMPOLINE, (uint64)trampoline, PGSIZE, PTE_R | PTE_X); ``` ``` (gdb) disa 阅读全文

posted @ 2022-01-12 20:16 tycoon3 阅读(361) 评论(0) 推荐(0)

sed 转义字符
摘要:用' ' root@ubuntu:/home/ubuntu# sed -i s,mabi=lp64d,mabi=lp64d \$\(CFLAGS\),g `grep mabi=lp64d -rl * ` sed: -e expression #1, char 23: unterminated `s' 阅读全文

posted @ 2022-01-08 14:50 tycoon3 阅读(311) 评论(0) 推荐(0)

Linux内核内存分配函数之devm_kmalloc和devm_kzalloc
摘要:本文介绍Linux内核内存分配函数devm_kmalloc()和devm_kzalloc()。 一、devm_kmalloc 文件:drivers/base/devres.c,定义如下: /** * devm_kmalloc - Resource-managed kmalloc * @dev: De 阅读全文

posted @ 2021-12-30 19:36 tycoon3 阅读(928) 评论(0) 推荐(0)

设备树 - compatible 属性
摘要:compatible 属性 compatible 属性也叫做 “兼容性” 属性,这是非常重要的一个属性!compatible 属性的值是一个字符串列表, compatible 属性用于将设备和驱动绑定起来。字符串列表用于选择设备所要使用的驱动程序。compatible 属性值的推荐格式: "manu 阅读全文

posted @ 2021-12-30 15:49 tycoon3 阅读(1895) 评论(0) 推荐(0)

linux 中断映射
摘要:中断映射的大体过程如下: irq_of_parse_and_map static int bcm2835_mbox_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; int ret = 0; struct r 阅读全文

posted @ 2021-12-24 10:39 tycoon3 阅读(1443) 评论(0) 推荐(0)

source insight
摘要:直接刪除sidb 阅读全文

posted @ 2021-12-23 11:21 tycoon3 阅读(46) 评论(0) 推荐(0)

ARM64 的 memcpy 优化与实现
摘要:如何优化 memcpy 函数 Linux 内核用到了许多方式来加强性能以及稳定性,本文探讨的 memcpy 的汇编实现方式就是其中的一种,memcpy 的性能是否强大,拷贝延迟是否足够低都直接影响着整个系统性能。通过对拷贝函数的理解可以加深对整个系统设计的一个理解,同时提升自身技术实力。 罗马不是一 阅读全文

posted @ 2021-12-11 10:53 tycoon3 阅读(4790) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 ··· 23 下一页

导航