Linux内核分析
文章平均质量分 53
老杨的码农生活
热衷于Android系统分析,专注于tcp/ip协议,钻研linux Kernel,关注网络安全。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
趣谈LINUX系统的进程间通信
讲述LINUX进程间通信和项目间合作沟通的类比原创 2022-08-12 17:28:37 · 704 阅读 · 0 评论 -
优化性能问题的一般方法
我们可以从系统资源瓶颈和应用程序瓶颈,这两个角度来分析性能问题的根源。从系统资源瓶颈的角度来说,USE法是最为有效的方法,即从使用率、饱和度以及错误数这三个方面,来分析 CPU、内存、磁盘和文件系统 I/O、网络以及内核资源限制等各类软硬件资源。从应用程序瓶颈的角度来说,可以把性能问题的来源,分为资源瓶颈、依赖服务瓶颈以及应用自身的瓶颈这三类。资源瓶颈的分析思路,跟系统资源瓶颈是一样的。 依赖服务的瓶颈,可以使用全链路跟踪系统,进行快速定位。 而应用自身的问题,则可以通过系统调用、热点函数,原创 2022-02-11 14:30:35 · 839 阅读 · 0 评论 -
Linux性能工具速查
我们可以从系统和应用程序两个角度,来进行性能优化。从系统的角度来说,主要是对 CPU、内存、网络、磁盘 I/O 以及内核软件资源等进行优化。而从应用程序的角度来说,主要是简化代码、降低 CPU 使用、减少网络请求和磁盘 I/O,并借助缓存、异步处理、多进程和多线程等,提高应用程序的吞吐能力。性能优化最好逐步完善,动态进行;不要追求一步到位,而要首先保证能满足当前的性能要求;性能优化通常意味着复杂度的提升,也意味着可维护性的降低。如果你发现单机的性能调优带来过高复杂度,一定不要沉迷于单...原创 2022-01-20 20:43:33 · 234 阅读 · 0 评论 -
Linux的oom killer机制学习
我们项目在跑大量用户时,经常会出现进程死掉的情况,dmsg看到是oom机制杀掉了,刚好乘机学习一下linux的oom机制。 OOM(Out of Memory)机制是Linux内核的自我保护机制,当系统内存不够使用时会触发,系统会挑选一个占用内存较多的进程来杀掉释放内存。 Linux内核允许程序申请比系统可用内存更多的内存(malloc),这个特性称为overco...原创 2019-04-03 09:29:20 · 600 阅读 · 0 评论 -
Unix 网络 IO 模型及 Linux 的 IO 多路复用模型
本文主要探讨的问题有以下两个:Unix 中的五种网络 IO 模型; Linux 中 IO 多路复用的实现。基本概念在介绍网络模型之前,先简单介绍一些基本概念。文件描述符 fd文件描述符(file descriptor,简称 fd)在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向...原创 2019-05-24 17:12:05 · 389 阅读 · 0 评论 -
Linux下五种网络IO模型
本文我们主要来了解一下Unix/Linux下5种网络IO模型:blocking IO, nonblocking IO, IO multiplexing, signal driven IO, asynchronous IO的基本原理,更好的理解在高级语言中的异步编程,一起来看看吧,希望对大家学习linux有所帮助。 写在前面 为了更好的理解下面提到的Linux下5种网络IO的概念,...原创 2019-05-24 16:45:03 · 2338 阅读 · 1 评论 -
linux系统负载Load Average
一、什么是Load Average?系统负载(System Load)是系统CPU繁忙程度的度量,即有多少进程在等待被CPU调度(进程等待队列的长度)。平均负载(Load Average)是一段时间内系统的平均负载,这个一段时间一般取1分钟、5分钟、15分钟。二、如何查看Load?top,uptime,w等命令都可以查看系统负载:[shenjian@dev02 ~]$ u...原创 2019-04-30 13:29:22 · 510 阅读 · 0 评论 -
linux 32位和64位系统调用区别
32 位的系统调用:64 位的系统调用:原创 2019-04-15 15:15:09 · 1696 阅读 · 1 评论 -
Linux 协议栈IP分片和重组分析
最近项目在调试map-t技术,涉及到mtu,ip分片和重组问题。下图是IP协议头的数据字段的示意:如图所示,IP协议理论上允许的最大IP数据报为65535字节(16位来表示包总长)。但是因为协议栈网络层下面的数据链路层一般允许的帧长远远小于这个值,例如以太网的MTU(即Maximum Transmission Unit,最大传输单元)通常在1500字节左右。所以较大的IP数据包...原创 2019-04-03 10:37:39 · 2304 阅读 · 0 评论 -
Linux 之Netlink机制
Linux中用户态和内核态进行通信的方式有很多种,原创 2014-06-25 16:06:15 · 1103 阅读 · 0 评论 -
Linux & X86上Segmentation fault原因分析
Table of Contents1 简介 2 导致段错误的3种常见内存访问方式 2.1 用户模式访问内核空间 2.2 访问尚未建立的内存空间 2.3 写访问只读空间 3 系统对段错误的处理 3.1 CPU对段错误的捕获 3.2 内核对段错误的处理 3.3 用户程序对段错误的处理 4 小结1简介在Linux上写C程序,段错误(Segmentation ...原创 2019-04-08 14:57:23 · 832 阅读 · 0 评论 -
kernel kvm的bug
最新在kvm虚机上进行项目开发测试,发现系统负载很大,但是又没有什么进程占用cpu,表象就是虚机里我们敲自己的confd命令反应会特别的慢,后来google搜索后发现原来这个是kernel的一个bug,链接如下,大家遇到此问题可以参考一下,好似linux 4.4后续已经修复了这个bug。https://github.com/hishamhm/htop/issues/289...原创 2019-04-08 14:48:21 · 567 阅读 · 0 评论 -
top命令的Load average 含义及性能参考基值
uptime命令[root@node-3 smgr]# uptime 14:34:18 up 5:33, 8 users, load average: 0.55, 0.53, 0.52和top命令[root@node-3 smgr]# toptop - 14:35:45 up 5:34, 8 users, load average: 0.19, 0.41, 0.48...原创 2019-04-08 14:39:29 · 2863 阅读 · 5 评论 -
Linux内核中进程上下文和中断上下文的理解
首先明确一个概念:中断上下文和中断处理的上下半部是天差地别的一对概念。用户空间与内核空间 有了用户空间和内核空间,整个linux内部结构可以分为三部分,从最底层到最上层依次是:硬件-->内核空间-->用户空间。如下图所示: 需要注意的细节问题:(1)内核空间中存放的是内核代码和数据,而进程的用户空间中存放的是用户程序的代码...转载 2019-04-01 15:53:06 · 1093 阅读 · 0 评论 -
Linux内核中进程上下文和中断上下文的理解
首先明确一个概念:中断上下文和中断处理的上下半部是天差地别的一对概念。用户空间与内核空间 有了用户空间和内核空间,整个linux内部结构可以分为三部分,从最底层到最上层依次是:硬件-->内核空间-->用户空间。如下图所示: 需要注意的细节问题:(1)内核空间中存放的是内核代码和数据,而进程的用户空间中存放的是用户程序的代码和数据。不...转载 2019-04-04 08:52:48 · 740 阅读 · 0 评论 -
Linux同步锁机制分析
RCU,Read-Copy Update,读-拷贝修改,对于被RCU保护的攻下原创 2014-06-18 11:04:49 · 921 阅读 · 0 评论 -
关于KVM的相关理解
最近在做x86平台上的Android系统集成原创 2014-05-30 17:30:01 · 910 阅读 · 0 评论 -
Linux驱动编码步骤总结
最近在看linux驱动方便的资料,总结了下linux驱动开发8大步骤,以供后续开发学习借鉴使用: 1. 建立Linux驱动框架,lsmod、insmod、rmmod也即显示所有加载模块,加载模块和卸载模块。 装载驱动涉及建立设备文件、分配内存、module_init宏指定;卸载驱动删除设备文件,释放内存和module_exit宏指定 2. 注册和注销设备文件原创 2014-05-30 17:01:30 · 1019 阅读 · 0 评论 -
Linux的Netfilter机制分析
Netfilter作为新一代防火墙架构,包过滤框架,在此框架基础上实现了包过滤、状态检测、网络地址转换和包标记等功能,内核开发人员可以在数据链路层、网络层实现HOOK,来实现自己的功能。用户空间的iptables工具套件,就是一个很好的Netfilter功能实现。 Netfilter在协议栈的五个关键点设置了HOOK, NF_IP_PRE_ROUTING、NF_...原创 2014-06-27 14:35:51 · 844 阅读 · 0 评论
分享