![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux内核分析
zzsfqiuyigui
这个作者很懒,什么都没留下…
展开
-
详解likely和unlikely函数
内核源码:linux-2.6.38.8.tar.bz2 参考文档:http://gcc.gnu.org/onlinedocs/gcc-4.6.2/gcc/Other-Builtins.html#Other-Builtins 在Linux内核中likely和unlikely函数有两种(只能两者选一)实现方式,它们的实现原理稍有不同,但作用是相同的,下面将结合linux-2转载 2012-06-13 23:28:41 · 8405 阅读 · 1 评论 -
Linux下进程调度与优先级的深入分析
1)初识调度为配合系统对进程的调度,采用两种方式进行处理1.1)协同多任务处理当进程因为事件的等待,而自动放弃CPU资源,而使其它进程得以使用CPU,这时称之为协同多任务处理.其实如果进程都采用协同多任务处理时,系统将会轻松的调度进程,以分配资源1.2)抢先式多任务处理当进程不进行I/O,比如计算型运算应用时,一直占用大量的CPU时间,这时系统将会利用中断,转载 2016-04-05 00:59:13 · 5413 阅读 · 0 评论 -
Linux的进程调度时机(Schedule函数何时调用)
转自:http://blog.csdn.net/songjinshi/article/details/23262923Linux在众多进程中是怎么进行调度的,这个牵涉到Linux进程调度时机的概念,由Linux内核中Schedule()的函数来决定是否要进行进程的切换,如果要切换的话,切换到哪个进程等等。Linux进程调度时机主要有:1、进程状态转换的时刻:进程终止、进程睡转载 2016-04-05 00:50:13 · 1128 阅读 · 0 评论 -
linux进程调度之总章:一些片汤话
转自:http://blog.chinaunix.net/uid-24774106-id-3372932.html?page=2 最近几天结合源码看了很多linux进程调度的文章,虽然掌握了个大概,但是越看,细节越多,写这篇文章的信心也就越不足,曾有系列文章叫鼠眼看linux进程调度,很符合我现在的心境,就像盲人摸象,学到一些东西,很惊喜,但是总有一种力不从心的惶恐。但是好久没写博文了,还是写转载 2016-04-05 00:46:47 · 533 阅读 · 0 评论 -
ARM linux解析之压缩内核zImage的启动过程
ARM linux解析之压缩内核zImage的启动过程semilog@163.com首先,我们要知道在zImage的生成过程中,是把arch/arm/boot/compressed/head.s 和解压代码misc.c,decompress.c加在压缩内核的最前面最终生成zImage的,那么它的启动过程就是从这个head.s开始的,并且如果代码从RAM运行的话,是与位置无关的,转载 2015-02-11 12:32:40 · 4922 阅读 · 0 评论 -
Linux系统下配置双网卡路由表的配置
如果eth0为192.168.10.123/255.255.255.0,eth1为192.168.20.231/255.255.255.0,则命令格式如下:#route add -net 192.168.10.0 netmask 255.255.255.0 dev eth0#route add -net 192.168.20.0 netmask 255.255.255.0 dev eth1转载 2014-08-16 14:31:00 · 663 阅读 · 0 评论 -
Linux路由应用-使用策略路由实现访问控制
一般而言,访问控制并不是路由模块完成的,而是防火墙的职责,如果你使用Linux的,这是iptables的职责。然而有时候,特别是在策略很多的情况下,使用iptables会极大降低网络性能,这是Netfilter的filter表的本质决定的,具体的优化参见《 Linux的Netfilter框架深度思考-对比Cisco的ACL》。 Linux有一个很实用的特性可以在某些情形下代替ipta转载 2014-08-26 23:03:51 · 1745 阅读 · 0 评论 -
linux 技术博客和网站
http://blog.chinaunix.net/xmlrpc.php?r=blog/index&uid=20352533&pattern=abstract原创 2014-07-17 10:13:28 · 820 阅读 · 0 评论 -
嵌入式Linux系统移植-使用crosstool创建自己的交叉编译器
l 前言在嵌入式系统移植的过程中,必不可少的一样东西是交叉编译器,只有使用交叉编译器才可以把原先在宿主机(相信大多数人所使用的宿主机会是Linuxx86系统的)上所编写的程序交叉编译成开发板(如ARM系统或PPC系统)所识别的二进制形式。对于一些成熟的移植过程来说,互联网上存在已经制作好的交叉编译器,只要下载过来解压缩配置后就可以使用了。但在使用这些交叉编译器的过程中可能存在着一些问题原创 2012-10-21 11:12:47 · 4000 阅读 · 0 评论 -
NAT工作原理及应用
1.背景: 一:路由表的快速增长。有数据表明,1990年,只有大约5000条路由被存放在路由表中,到1995年,这个数字达到了35,000,而2000年则 达到了120,000条,而且这个数值会保持60%~100%的增长率。这使得大量的网络设备由于处理速度跟不上而很快被淘汰。 二: IP地址即将耗尽。现在广泛采用的IPv4设计于1981年,使用32位二进制数。从95年开始全球的IP转载 2012-12-03 15:39:38 · 4103 阅读 · 0 评论 -
NAT原理与配置
NAT中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。 出现的目的:NAT 为了解决 IPv4 地址耗费问题转载 2012-11-30 14:35:54 · 1146 阅读 · 0 评论 -
二层交换机的工作原理
二层交换机工作于数据链路层,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。数据链路层主要通过接收物理层提供的比特流服务,在相邻节点之间建立链路,对传输中可能出现的差错进行检错和纠错,向网络层提供无差错的透明传输。在数量链路层传输的基本单位为“帧(Frame)”。每一帧包括一定数量的数据和一些必要的控制信息。转载 2012-11-30 10:04:58 · 12368 阅读 · 0 评论 -
浅谈Linux内核动态模块的编译
Linux内核给开发者提供了灵活的模块加载方式,开发者可根据需要适当地选择静态或动态的方式将模块加入内核当中。静态加载的时候我们只需将驱动文件添加到对应的文件夹中并修改相应的Makefile和Kconfig即可,但是通过动态加载模块的方式,如果只是编译一个小的驱动文件而对内核大动干戈,那样编译的时间不仅长而且修改内核配置文件也是一件多余的工作。那么我们是否可以在不修改内核的前提下单独编译它是如何编转载 2012-10-12 07:16:38 · 884 阅读 · 0 评论 -
linux内核分析之调度算法——CFS调度分析
前面对linux调度算法的框架进行了介绍,在这里对CFS(完全公平调度)算法进行分析。CFS允许每个进程运行一段时间、循环轮转、选择运行最少的进程作为下一个运行进程,而不再采用分配给每个进程时间片的做法了,CFS在所有可运行进程总数基础上计算出一个进程应该运行多久,而不是依靠nice值来计算时间片。nice值在CFS中被作为进程获得的处理器运行比的权重:越高的nice值(越低的优先级)进程获得转载 2012-08-15 00:08:24 · 7821 阅读 · 0 评论 -
Linux进程管理之CFS调度器分析
------------------------------------------本文系本站原创,欢迎转载!转载请注明出处:http://ericxiao.cublog.cn/------------------------------------------一:前言CFS调度在2.6.23版本的kernel中被加入.引用Ingo Molnar的一句话:80%的设计可转载 2012-08-14 23:50:04 · 1359 阅读 · 0 评论 -
linux2.6.29 CFS调度详细分析
转载地址:http://blog.chinaunix.net/space.php?uid=20940095&do=blog&id=66041众所周知,linux最新的内核采用了CFS的调度机制,网上也有不少文章对CFS调度的源码做了详细的分析,但是大部分的文章太注重细节了,所以没有把CFS的原理进行一下从整体上的概括,基于这个原因,本文要从CFS调度的基本原理以及在公平调度类的整个执行过程为主转载 2012-08-15 09:36:17 · 1265 阅读 · 0 评论 -
linux非实时任务调度CFS算法分析
CFS算法是基于一个理想的,精确的多任务CPU设计的(在这种CPU下,各个任务的运行速度是一致的),实际上这个CPU并不存在,因此,算法模拟了硬件的实现,通过分割CPU的时间使得每个任务的运行时间总是相等的。实现上,在每个任务控制块的调度实体上有一个变量vruntime保存了本任务的运行时间,调度时找时间最小的任务运行,使得最后每个任务的运行时间都相等。当然,不会当运行时间最小的任转载 2012-08-15 00:05:56 · 1699 阅读 · 0 评论 -
Python调用windows下DLL详解 - ctypes库的使用
在Python中某些时候需要C做效率上的补充,在实际应用中,需要做部分数据的交互。使用python中的ctypes模块可以很方便的调用windows的dll(也包括linux下的so等文件),下面将详细的讲解这个模块(以windows平台为例子),当然我假设你们已经对windows下怎么写一个DLL是没有问题的。 引入ctypes库 [python] view p转载 2016-09-15 00:55:21 · 1521 阅读 · 0 评论