1.build kernel之时的各个configuration选项。 2.当kernel启动之时,可以参数在kernel被GRUB或LILO等启动程序调用之时传递给kernel。 3.在kernel运行时,修改/proc或/sys目录下的文件。 这里我简单讲的就是第二种方式了,kernel在grub中配置的启动参数。 首先,kernel有哪些参数呢? 在linux的源代码中,有这样的一个文档...
1. cputime: 图1 cputime更新流程图 cputime模块代码位于kernel/sched/cputime.c。 当每次timer中断来临时,kernel经过由中断处理函数调用到irqtime_account_process_tick()(需要使能特性宏CONFIG_IRQ_TIME_ACCOUNTING,将irq/softirq的统计囊括其中)。通过判断当前task是否为softirq/user tick/idle进程/guest系统进程/内...
那处理 32 位的 jiffies 就比较重要,Linux 提供 API 函数来处理绕回: 如果 unkown 超过 known,time_after函数返回真,否则返回假。如果unkown没有超过known的话time_before函数返回真,否则返回假。time_after_eq 函数和 time_after 函数类似,只是多了判断等于这个条件。time_before_eq也类似。 /* 比如我们...
//file:kernel/include/asm-generic/param.h # define HZ CONFIG_HZ /* Internal kernel timer frequency */ 可见HZ由CONFIG_HZ定义,但是CONFIG_HZ则是编译时自动生成的,可以从.config中找到具体的值 //file:kernel/.config CONFIG_HZ=250 在代码中也可以直接打印出HZ的值,其代码如下 ktime_test_init T...
Linux内核介绍 Linux内核是一种开源操作系统内核,它是基于Unix系列操作系统的设计思想和原则。...Linux内核编译首先准备一台Linux机器,查看内核版本:uname -r 根据获取的linux kernel版本,在www.kernel.org上面下载合适的kernel版本。...install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex...
在嵌入式系统中,尽管Linux本身不是实时操作系统,但通过实施PREEMPT-RT补丁、合理调度、优化中断处理、限制内核干扰以及结合硬件加速等策略,可以显著提高其实时性能。 1、使用实时Linux(PREEMPT-RT) PREEMPT-RT是一个补丁集,可以将Linux内核转变为更具实时性能的版本。
Linux 是一个宏内核(monolithic kernel)系统。设备驱动程序可以完全访问硬件。Linux 内的设备驱动程序可以方便地以模块化(modularize)的形式设置,并在系统运行期间可直接装载或卸载。 Linux 内核组成部分: 进程管理(process management)、定时器(timer)、中断管理(interrupt management)、内存管理(memory management)、模块管...
软实时(Soft real time system) 如果实时任务在截止日期之后产生结果仍然对系统有用,尽管会导致性能下降,则该任务是软实时任务。 软任务通常与系统-用户交互有关,有点延迟什么的并不影响,只是体验稍差点。因此,它们包括: 用户界面的命令解释器; 处理来自键盘的输入数据; ...
Kernel->user space relay support (formerly relayfs)– 在某些文件系统上(比如debugfs)提供从内核空间向用户空间传递大量数据的接口 。保持默认状态。 Initial RAM filesystem and RAM disk (initramfs/initrd) support– 初始 RAM 文件系统是一个 ramfs,它由引导加载程序(loadlin 或 lilo)加载,并在正常引导过程之前...
6.2 解决错误:can't create /proc/sys/kernel/hotplug: nonexistent directory 一、篇头 本文作为使用qemu学习、调试Linux系统的第二篇,将自己制作一个小型的Linux系统,这个系统包含我们自己编译的5.15.102稳定版内核,以及自己制作的根文件系统,内含busybox提供的丰富工具。