- 博客(13)
- 资源 (6)
- 收藏
- 关注
转载 关于LINUX在中断(硬软)中不能睡眠的原因
http://bbs.chinaunix.net/thread-2115820-2-1.html我们都是从理论讲下面这些问题, 因为linux在很多地方做了保护, 所以直接sleep或者schedule()会导致内核异常.首先分清楚, 我们讨论的是不能sleep, 而不是不能preempt.1. 毫无疑问, 在关中断的时候不能sleep, 这点大家都知道, 因为时钟中断无法
2015-12-28 13:50:21 2140
转载 数据包接收系列 — NAPI的原理和实现
http://blog.csdn.net/zhangskd/article/details/21627963#comments本文主要内容:简单分析NAPI的原理和实现。内核版本:2.6.37Author:zhangskd @ csdn 概述 NAPI是linux新的网卡数据处理API,据说是由于找不到更好的名字,所以就叫NAPI(New A
2015-12-28 13:45:30 1533
转载 深入理解Linux网络技术内幕-设备注册和初始化(四)
在内核中,网络设备通过函数register_netdev和unregister_netdev在内核中注册和注销,这两个函数对实际操作函数register_netdevice和unregister_netdevice进行封装,在调用这两个函数之前负责上锁。 在分析网络设备的注册状态改变时,注销时多了一个NETREG_UNREGISTERING状态,这个状态表示将设备从内核
2015-12-28 11:32:43 1888
转载 深入理解Linux网络技术内幕-设备注册和初始化(三)
net_device结构是一个非常庞大的数据结构,其中的字段包含了从硬件层、网络层和传输层等各种功能涉及的参数,因此,其初始化也是分批由不同的函数完成的,相当于每个函数负责其中相关联的一些子集字段,大致分为:设备驱动程序:完成与硬件配置相关的IRQ、I/O内存以及I/O端口等字段通用设备类型:对同一类设备的一些共性字段由内核实现的通用类型初始化函数完成,如ether_setup、f
2015-12-24 16:46:24 1439
转载 深入理解Linux网络技术内幕-设备注册和初始化(二)
http://blog.chinaunix.net/uid-14518381-id-3693661.html NIC注册和注销的通用架构 Linux系统中NIC网络设备驱动程序利用网络代码进行注册和注销有其通用的架构,这里以PCI Ethernet NIC为例,其他设备类型只是所以函数名称和调用方式不同,主要依据于设备总线提供的接口。其中(a)为设
2015-12-24 16:45:14 2501
转载 深入理解Linux网络技术内幕-设备注册和初始化(一)
http://blog.chinaunix.net/uid-14518381-id-3689331.htmlNIC设备在内核中相关联的net_device结构初始化,并添加到内核网络设备数据块中注册之后,用户才能通过用户空间的命令开启设备,使其可用。设备的注册和注销是由内核完成的,而设备的开启和关闭是由用户控制的。网络设备注册的触发事件:加载NIC设备驱动程序:若N
2015-12-24 14:41:06 896
转载 简单DMA介绍
http://blog.csdn.net/eastmoon502136/article/details/8502087 最早接触DMA的时候是大三的微机原理,当时不是很理解,什么DMA模式啊,只知道是传输速度快,不经过CPU,但是到底是怎么样的不经过CPU呢?还是不理解。这次I2C控制器里面带了DMA的模式,所以有机会去接触下了。 而具体的DMA的意思是什么h
2015-12-23 20:44:24 3238
转载 libc、glibc和glib的关系
转自:http://my.oschina.net/moooofly/blog/126260http://nieyong.github.io/wiki_ny/glibc,%20eglibc%E5%92%8C%20glib%E7%9A%84%E5%8C%BA%E5%88%AB.html【glibc 和 libc】 glibc 和 libc 都是 Linu
2015-12-23 15:49:33 761
转载 关于Linux的Jiffies/Tick/HZ
关于Linux的Jiffies/Tick/HZ Linux核心几个重要跟时间有关的几个名词: HZ、tick、jiffies。 1.linux HZ Linux核心每隔固定周期会发出timer interrupt (IRQ 0),HZ是用来定义每一秒有几次timer interrupts。举例来 说,HZ为1000,代表每秒有1000
2015-12-15 14:09:03 1777
转载 Linux 系统内核空间与用户空间通信的实现与分析
多数的 Linux 内核态程序都需要和用户空间的进程交换数据,但 Linux 内核态无法对传统的 Linux 进程间同步和通信的方法提供足够的支持。本文总结并比较了几种内核态与用户态进程通信的实现方法,并推荐使用 netlink 套接字实现中断环境与用户态进程通信。1 引言Linux 是一个源码开放的操作系统,无论是普通用户还是企业用户都可以编写自己的内核代码,再加上对标准内核的裁
2015-12-04 12:41:48 1035
转载 在用户空间发生中断时,上下文切换的过程
先引用一篇博文,再总结一下相关问题。所谓上下文切换,实质就是寄存器堆的切换过程。这其中一部分需要硬件来切换,一部分需要软件来处理。当在用户空间发生中断时,首先由 x86 CPU 从硬件角度进行处理,然后才是 linux 内核的处理。当中断处理完毕,返回到用户空间时,最后的步骤也是交给 CPU 硬件来处理的。1、 X86 CPU 对中断的硬件支持CPU 从中断控制器
2015-12-04 12:39:31 993
原创 uboot环境变量地址
一般uboot分区中会有一个环境变量的分区dev: size erasesize namemtd0: 00200000 00020000 "NAND (RO) U-Boot Image"mtd1: 00200000 00020000 "U-Boot Env"mtd2: 01400000 00020000 "NAND (RW) Kernel Image"mtd3: 3
2015-12-02 15:52:47 2164
vim taglist文件
2016-11-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人