
linux内核
丛林溪水鱼
这个作者很懒,什么都没留下…
展开
-
开源虚拟机软件
虚拟化现在已经成为主流技术,对于大企业来说。大玩家包括EMC、IBM、微软,当然他们致力于专利软件的推广。下面我们就看看有哪些不错的开源虚拟化软件。 1、 开源虚拟机 KVM KVM (全称是 Kernel-based Virtual Machine) 是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko 提供和虚拟化核心架构和处转载 2012-07-26 14:23:24 · 3396 阅读 · 0 评论 -
内核线程
1 > 线程和进程的差别线程机制支持并发程序设计技术,在多处理器上能真正保证并行处理。而在linux实现线程很特别,linux把所有的线程都当作线程实现。linux下线程看起来就像普通进程(只是该进程和其他进程共享资源,如地址空间)。上述机制与Microsoft windows或是Sun Solaris实现差异很大。这些系统提供专门支持线程机制(轻量级进程)。在现代操作系统中转载 2012-12-31 14:06:07 · 2143 阅读 · 0 评论 -
linux UML
make clean;make all;make modules;make modules_install;make install 将其编译成名为getpid的执行文件”gcc –o getpid /getpid.c”, 我们使用KDB来产看它进入内核后的执行路径。l 激活KDB (按下pause键,当然你必须已经给内核打了KDB补丁);设置内核断点 “bp转载 2012-12-31 14:17:11 · 6779 阅读 · 0 评论 -
调试linux内核模块
1:前言: 最近几天学习Linux-2.6平台上的设备驱动,所以要建立内核及内核模块的调试平台.虽然网上有很多相关教程,但多是基于2.6.26以前的通过补丁安装的,过程非常复杂,而且问题比较多.linux从 2.6.26开始已经集成了kgdb,只需要重新编译2.6.26(或更高)内核即可.kgdb安装及模块调试过程也遇到不少问题,网上网下不断的搜索与探索,才算调通.现转载 2012-10-01 14:42:50 · 7432 阅读 · 0 评论 -
Linux内核的Oops
2010-11-14 23:13 by wwang, 7485 阅读, 14 评论, 收藏, 编辑什么是Oops?从语言学的角度说,Oops应该是一个拟声词。当出了点小事故,或者做了比较尴尬的事之后,你可以说"Oops",翻译成中国话就叫做“哎呦”。“哎呦,对不起,对不起,我真不是故意打碎您的杯子的”。看,Oops就是这个意思。在Linux内核开发中的Oops是什么呢?其实,它和上转载 2012-12-21 09:51:01 · 518 阅读 · 0 评论 -
kernel 网桥代码分析
作者:林海枫本文地址:http://blog.youkuaiyun.com/linyt/archive/2010/01/14/5191512.aspx注:本文由作者所拥用,欢迎转载,但请全文转载并注明作者,请勿用于 任何商途。本文分析的kernel版本为:2.6.24.4,网桥代码目录为:linux-2.6.24.4/net/bridge。本文着重分析网桥的基本功能,关于STP的功能,我想转载 2013-12-20 14:35:58 · 864 阅读 · 0 评论 -
Linux内核映像中的内核配置信息生成与获取详解
在三年前做android手机内核移植的时候,如果需要自己重新编译内核的话,内核配置都是从手机中运行的内核中获取的,这个方法也是从XDA学来的:/proc/config.gz。最近重游LDD3的时候,在调试那章中又认真看了一下:(摘自《LDD3》第四章)CONFIG_IKCONFIGCONFIG_IKCONFIG_PROC这些选项出现在“General setup(一般设置)”菜转载 2014-01-10 15:08:51 · 1551 阅读 · 0 评论 -
linux内存pae
http://en.wikipedia.org/wiki/X86-64物理地址扩展(Physical Address Extension),又释实体位置延伸,是x86处理器的一个功能,让中央处理器在32位操作系统下存取超过4GB的实体内存。PAE为IntelPentium Pro及以上级别的CPU(包括除了总线频率为400MHz的这个版本的奔腾M之外的所有新型号奔腾系列处理器)转载 2014-01-16 09:41:33 · 2002 阅读 · 0 评论 -
linux虚拟内存空间布局
Linux系统虚拟内存空间一般布局示意图 说明: 1)线性地址空间:是指Linux系统中从0x00000000到0xFFFFFFFF整个4GB虚拟存储空间。 2)内核空间:内核空间表示运行在处理器最高级别的超级用户模式(supervisormode)下的代码或数据,内核空间占用从0xC0000000到0xFFFFFFFF的1GB线性地址空间,内核线性转载 2014-01-15 09:29:13 · 3203 阅读 · 0 评论 -
NAPI相关
NAPI:首先说一下它出现的原因:接收通过中断来进行,当系统有一个处理大流量的高速接口时, 会一直有更多的报文来处理. 在这种情况下没有必要中断处理器; 时常从接口收集新报文是足够的.使用的条件:接口必须能够存储几个报文( 要么在接口卡上, 要么在内存内 DMA 环).接口应当能够禁止中断来接收报文, 却可以继续因成功发送或其他事件而中断.在net/core转载 2014-02-28 13:17:25 · 803 阅读 · 0 评论 -
ovs记录
kthread_create与kernel_thread的区别从表面上来看,这两个函数非常的类似,但是实现却是相差甚远。kthread_create是通过work_queue来实现的,kernel_thread是通过do_fork来实现的。 kernel thread可以用kernel_thread创建,但是在执行函数里面必须用daemonize释放资源转载 2012-09-03 15:59:06 · 859 阅读 · 0 评论 -
linux内核调试
使用qemu进行内核源码级调试 (2011-08-23 22:58)标签: 转载 原文地址:使用qemu进行内核源码级调试 作者:chinahhucai内核源码调试对于内核初学者而言是一件有一定难度的事.工欲善其事,必先利其器,要想成功地进行内核源码级的调试,首先,必须现找到一个合适的工具,下面,笔者就来介绍内核源码调试的一款工具QEMU.QEMU是一转载 2012-09-30 15:42:51 · 2178 阅读 · 0 评论 -
linux内核定时器
1.linux内核定时器基本结构和函数1)struct timer_list 一个struct timer_list对应了一个定时器。#include 以下列出常用的接口:struct timer_list { /*....*/ unsigned long expires;//定时器服务函数开始执行时间 void (*f转载 2012-10-03 13:57:18 · 1104 阅读 · 0 评论 -
linux数据结构
链表,队列,映射,二叉树等数据结构是程序设计中常用的数据结构。为了统一这些数据结构的操作接口,Linux内核开发者实现了一些标准的操作接口及实现(使用了大量的GNU扩展特性),以达到代码重用,开发者应该尽量使用这些标准接口,避免实现自己的再创造,虽然那样看起来很酷,很有劲。 有关链表 传统的双向链表实现方法是在链表元素中加入两个指针,然后用这些指针来构造双向链表。如转载 2012-11-01 10:04:19 · 1571 阅读 · 0 评论 -
linux内核内存管理
1、kmalloc()/kfree()static __always_inline void *kmalloc(size_t size, gfp_t flags)内核空间申请指定大小的内存区域,返回内核空间虚拟地址。在函数实现中,如果申请的内存空间较大的话,会从buddy系统申请若干内存页面,如果申请的内存空间大小较小的话,会从slab系统中申请内存空间。有关buddy和slab,请参见《转载 2012-11-06 16:48:56 · 2790 阅读 · 0 评论 -
linux内核增加系统调用
定义要实现函数的功能,编写函数,在这里我们主要是添加一个系统功能调用,在/kernel目录下添加源文件myapi.c,同时修改该目录下的Makefile文件将该源文件加入内核编译的目标中去,只需要Makefile中的开始部分的obj-y =***语句最后添加myapi.o依赖项即可,sys_userlog函数的具体实现见后面的部分,在此为了测试给出如下简单的定义: #inclu转载 2012-11-27 08:59:35 · 615 阅读 · 0 评论 -
中断的上半部和下半部
一、什么是下半部中断是一个很霸道的东西,处理器一旦接收到中断,就会打断正在执行的代码,调用中断处理函数。如果在中断处理函数中没有禁止中断,该中断处理函数执行过程中仍有可能被其他中断打断。出于这样的原因,大家都希望中断处理函数执行得越快越好。另外,中断上下文中不能阻塞,这也限制了中断上下文中能干的事。基于上面的原因,内核将整个的中断处理流程分为了上半部和下半部。上转载 2012-11-20 11:03:35 · 2822 阅读 · 0 评论 -
softirq
本文对 Linux 内核软中断的执行流程进行了分析,并尽可能的结合当前运行环境详细地写出我的理解,但这并不表明我的理解一定正确。这本是论坛里的一篇帖子,发出来是为了抛砖引玉,如果您在阅读本文时发现了我的错误,还望得到您的指正。今天无意中看了眼 2.6 内核的软中断实现,发现和以前我看到的大不相同(以前也是走马观花,不大仔细),可以说改动很大。连 softirq 的调用点都不一样了,以前是三转载 2012-11-21 13:14:22 · 861 阅读 · 0 评论 -
linux 上下文和自旋锁
因此,中断(或软中断)禁止用于防止同一CPU上中断(或软中断)对共享资源的非同步访问。而自旋锁则防止在不同CPU上的执行单元对共享资源的同时访问,以及不同进程上下文互相抢占导致的对共享资源的非同步访问。在对称多处理器,仅仅禁止某个CPU的中断是不够的,当然我们也可以将所有CPU的中断都禁止,但这样做开销很大,整个系统的性能会明显下降。此外,即使在单处理器上,如果内核是抢占式的,也可能出现不同进转载 2014-02-20 14:40:01 · 2773 阅读 · 0 评论