Linux kernel
天上宫阙,今夕何年
知者行之始,行者知之成
展开
-
<systemd问题定位手段>
串口控制台:启动阶段按‘e’,编辑linux启动命令行,添加以下内容,可让systemd记录大量有效的调试信息systemd.log_level=debug systemd.log_target=console console=ttyS0,38400进入救援模式或紧急模式systemd.unit=rescue.target 或 1添加到内核命令行。若无法进入,尝试下面步骤:systemd.unit=emergency.target 或 emergency 添加到内核命令行。在此模式下,需要重新以可.原创 2021-06-11 12:02:57 · 1099 阅读 · 1 评论 -
《systemd的cgroups模块--资源隔离》
安装完cgroups,系统会出现目录:/sys/fs/cgroup创建cpu资源控制组,限制cpu使用率最大为50%cd /sys/fs/cgroup/cpumkdir testcpuecho ‘10000’ > ./testcpu/cpu.cfs_period_usecho ‘5000’ > ./testcpu/cpu.cfs_quota_us创建内存资源控制组,限制内存资源最大使用为10MBcd /sys/fs/cgroup/memorymkdir testmemecho原创 2021-06-01 11:59:11 · 491 阅读 · 0 评论 -
《Linux的sysctl指令--设置内核参数》
sysctl -a : 列出系统中所有核心设置这些核心设置都对应着/proc/sys/下的同名文件永久修改生效,可以修改配置文件/etc/sysctl.confecho “net.ipv4.icmp_echo_ignore_all = 1” >> /etc/sysctl.conf直接生效:sysctl -p [ | /etc/sysctl.conf ]...原创 2021-05-31 15:11:23 · 194 阅读 · 0 评论 -
Linux内存管理——大页内存
为什么要支持大内存分页:如果频繁的出现TLB miss,程序的性能会下降地很快,如果一个页4M,对比一个页4K,前者可以让TLB多存储1000个页地址映射关系。确认是否支持配置大页内存,可敲如下命令(注意区分大小写):cat /proc/meminfo | grep HugeHugePages_Total: 0HugePages_Free: 0Hugepagesize: 2048 kB设置OS共享内存最大值:echo 4294967295 > /proc/sys/kernel/s原创 2021-05-17 15:50:58 · 617 阅读 · 1 评论 -
cpu架构常识
单核 --> 由于功耗墙的存在 --> 多核架构(smp/numa)smp:对称多处理系统(每个核都是对等的,所有核通过总线访问所有内存)numa:非统一内存访问架构(非对称)原创 2021-05-07 14:49:43 · 105 阅读 · 0 评论 -
arm寄存器详解(持续完善中)
arm微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。任何时候,通用寄存器R14~R0,程序计数器PC,一个状态寄存器都是可以访问的。原创 2021-04-29 11:28:23 · 253 阅读 · 0 评论 -
Linux启动过程
BIOS:完成最小硬件初始化;控制权交接给引导加载程序;引导加载程序:从磁盘或者网络调用操作系统内核;内核:提取并执行initrd(一个初始ram磁盘映像),它查找根文件系统,在找到并挂载根文件系统后,initrd将控制权交接给存储在OS映像上的主机系统管理器(systemd);systemd:检测所有剩余的硬件;挂载所有必要的文件系统;生成所有配置的服务;systemd启动过程initrd启动过程关机过程...原创 2021-04-23 17:26:48 · 69 阅读 · 0 评论 -
Linux文件系统——文件系统的创建、删除、扩展,逻辑卷lvm
逻辑卷管理(LVM)的分层结构图:创建和管理lvm逻辑卷:创建磁盘分区(重复以下步骤创建若干个磁盘分区)fdisk /dev/sdan //创建新分区p //选择分区类型为主分区3 //选择分区号3+1G //选择扇区范围,为从默认扇区开始1G的范围t //选择分区类型(lvm的分区类型代码为8e)3 //选择分区38e //选择分区类型8e(lvm)p //查看分区信息d //删除磁盘分区w //保存配置磁盘分区分好后,准备物理卷(PV)pvc原创 2021-04-22 17:35:52 · 692 阅读 · 3 评论 -
Linux内核:kdump和vmcore核心转储
kdump默认将vmcore文件生成在/var/crash路径下设置kdump生成vmcore核心转储文件路径的配置文件:/etc/kdump.conf原创 2021-02-25 15:13:35 · 549 阅读 · 0 评论 -
Linux内核:中断的cpu亲和性
cat /proc/interrupts : 查看中断都发生在哪些cpu上cat /proc/irq/80/smp_affinity : 查看某个中断(80号)亲和性绑定在哪个cpu上原创 2021-02-25 11:25:46 · 1399 阅读 · 0 评论 -
Linux学习地图
linux学习的基本路径(1.5Year):预备知识:熟悉bash命令;熟悉posix接口;熟悉内核模块或驱动编程; 了解linux,知识点:c语言,/proc,/sys,正则表达式,线程编程, socket编程,字符设备驱动,数据结构和算法基础 学习资料:《UNIX环境高级编程》,《UNIX网络编程》卷一卷二, 《Linux驱动程序设计》,《Linux程序设计》,《bash高级编程》 《C程序设计语言》,《程序设计实践》,《数据结构》学习重原创 2021-01-26 15:16:25 · 225 阅读 · 0 评论 -
/proc/sysrq-trigger详解
/proc/sysrq-trigger详解 1. 立即重新启动计算机echo b > /proc/sysrq-trigger2. 立即关闭计算机echo o > /proc/sysrq-trigger3. 导出内存分配的信息 (可以用/var/log/message 查看)echo m > /proc/sysrq-trigger4. 导出当前CPU寄存器信息和标志位的信息echo p > /proc/sysrq-trigger5. 导出线程状态信息echo...原创 2020-12-30 16:20:11 · 1544 阅读 · 0 评论