![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux内核问题
文章平均质量分 84
_kerneler
这个作者很懒,什么都没留下…
展开
-
伙伴算法/slab算法/物理页面分配与释放
一:伙伴系统算法(解决外碎片问题)1:原理Linux伙伴算法把所有空闲页面分为10个块组,每组中的块的大小是2的幂次方个页面。比如,第0组中的块都为2的0次幂(1个页面),第一组块的大小都是2的一次幂(2个页面),第9组中块的大小是2的9次幂(512个页面),每一组中,块是大小相同的,并且形成一个链表。简单说明算法工作原理分配:假设要求分配的块的大小是128个页面(由多个页面组成的块叫做页面块),该算法先在块大小为128个页面的链表中查找,看是否有这样的空闲块,如果有,就直接分配;如果没有,该算法会原创 2022-05-17 15:59:59 · 952 阅读 · 0 评论 -
ftrace
探秘ftracez转:https://richardweiyang-2.gitbook.io/kernel-exploring/00-index-3/04-ftrace_internal?from=timeline是ftrace作者的pdf:https://richardweiyang-2.gitbook.io/kernel-exploring/00-index-3/04-ftrace_internal?from=timeline最根本的来说,ftrace的实现需要基于编译器的一个功能: fentr原创 2021-03-21 14:35:51 · 491 阅读 · 0 评论 -
【Linux】Linux的虚拟内存详解(MMU、页表结构)
内存是程序得以运行的重要物质基础。如何在有限的内存空间运行较大的应用程序,曾是困扰人们的一个难题。为解决这个问题,人们设计了许多的方案,其中最成功的当属虚拟内存技术。Linux作为一个以通用为目的的现代大型操作系统,当然也毫不例外的采用了优点甚多的虚拟内存技术。虚拟内存为了运行比实际物理内存容量还要大的程序,包括Linux在内的所有现代操作系统几乎毫无例外的都采用了虚拟内存技术。虚拟内存技术,可让系统看上去具有比实际物理意义内存大的多的内存空间,并为实现多道程序的执行创造了条件。虚拟内存的概念总所周转载 2020-11-05 11:09:39 · 1707 阅读 · 0 评论 -
如何查看进程开启了多少线程
为什么要知道某个进程开启了多少线程?好奇,这个很重要性能调优概念澄清这里所说的线程指的是内核级别的线程,不是用户态线程,所谓用户态线程是指不依赖操作系统而是在用户态下实现的执行流调度。这里的线程个数指的是进程运行时的线程个数,这个数值会随着线程的创建和销毁而动态变化。本文主要关注Linux平台。背景知识与原理/proc/{pid}/proc/{pid}下记录了每个进程运行时的所有关键信息,那这些信息是谁来生成的呢,答案是Linux内核。Linux内核在执行你写的程序时,将所有关键信息写到转载 2020-11-04 18:06:25 · 3919 阅读 · 1 评论 -
中断亲缘性设置
转载链接:http://smilejay.com/2012/02/irq_affinity/https://www.vpsee.com/2010/07/load-balancing-with-irq-smp-affinity/例如:将不同网卡的中断与CPU绑定,这样可以大幅度提升网卡的效率。不同的设备一般都有自己的IRQ号码(当然一个设备还有可能有多个IRQ号码)通过命令:cat /proc/interrupts查看如:cat /proc/interrupts | grep -e “CPU转载 2020-09-18 18:55:13 · 1110 阅读 · 0 评论 -
/proc 介绍 /var/log 介绍
proc/目录结构(部分):cmdline 内核命令行cpuinfo 关于Cpu信息devices 可以用到的设备(块设备/字符设备)filesystems 支持的文件系统interrupts 中断的使用ioports I/O端口的使用kcore 内核核心映像kmsg原创 2020-09-15 11:35:02 · 496 阅读 · 0 评论 -
ttyS、ttySAC、tty、ttyn区分
1、ttyS串行端口终端(/dev/ttySn) 串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。计算机把每个串行端口都看作是一个字符设备。有段时间这些串行端口设备通常被称为终端设备,因为 那时它的最大用途就是用来连接终端。这些串行端口所对应的设备名称是/dev/tts/0(或/dev/ttyS0), /dev/tts/1(或/dev/ttyS1)等,设备号分别是(4,0), (4,1)等,分别对应于DOS系统下的COM1、COM2等。若要向一个端口发送数原创 2020-08-07 16:39:00 · 568 阅读 · 0 评论 -
根据oops信息,通过addr2line找问题
转:https://blog.csdn.net/W1107101310/article/details/80611880?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecas原创 2020-07-13 18:17:06 · 512 阅读 · 1 评论 -
内核启动过程 从uboot到内核
uboot阶段uboot学习之五-----uboot如何启动Linux内核https://www.cnblogs.com/yr-linux/p/5495734.html内核阶段http://blog.chinaunix.net/uid-20672257-id-2891129.html原创 2020-06-08 22:43:19 · 99 阅读 · 0 评论 -
linux 系统磁盘管理(主分区和逻辑分区)
转:https://www.cnblogs.com/du-z/p/10870162.html1、linux系统分区应了解的常识硬盘分区实质上是对硬盘的一种格式化,然后才能使用硬盘保存各种信息,在创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录(即MasterBoot Record,一般简称为MBR)和引导记录备份的存放位置.MBR概述:全称为Master Boot Record,即硬盘的主引导记录;是位于磁盘最前边的一段引导(Loader)代码。它负责磁盘操作系统(DOS)对磁盘进原创 2020-06-04 20:56:29 · 4110 阅读 · 0 评论 -
squashfs 文件系统的制作与使用
简介quashfs是以linux 内核源码补丁的形式发布,附带mksquashfs工具,用于创建squash文件系统。squashfs可以将整个文件系统或者某个单一的目录压缩在一起, 存放在某个设备, 某个分区或者普通的文件中. 如果你将其压缩到一个设备中, 那么你可以将其直接mount起来使用; 而如果它仅仅是个文件,你可以将其当为一个loopback 设备使用. squashfs文件系统的设计令人欣喜. For archiving purposes, 它可以让你更加灵活的使用, 而且它比.tar.g原创 2020-06-02 19:48:31 · 10099 阅读 · 0 评论 -
kernel与.ko的version magic匹配
转:http://blog.chinaunix.net/uid-24708340-id-5057664.html我是直接在源码下打了个git最近做一个底层源码版本管理的工作:本地调试OK的内核源码,驱动源码,文件系统等,作为一个工程上传至SVN服务器,以便同事们可以方便共享同步代码;1.问题:本地编译的一整套底层代码down到设备跑都正常,但是由这套代码上传SVN服务器而后checkout出来的代码编译的文件,则出现驱动文件加载不上的情况(驱动以模块方式加载),打印如下log: version ma原创 2020-05-20 15:08:11 · 2574 阅读 · 0 评论 -
挂载jffs2文件系统 NO such dev
原文链接:https://blog.csdn.net/u013401853/article/details/75046583在板子里面使用如下命令**mount -t jffs2 /dev/mtdblock7 /var/dr_bin/**挂载文件系统时遇到几个问题,如下:提示No such device问题报错提示如下:mount: mounting /dev/mtdblock7 on /var/dr_bin/ failed: No such device这个是由于系统不支持jffs2文件系统导原创 2020-06-02 15:44:25 · 1250 阅读 · 0 评论