自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (18)
  • 收藏
  • 关注

原创 sk_buff整理笔记(五、队列管理函数)

分析sk_buff结构及相关结构的队列管理函数:初始化函数,skb_queue_head_init(struct sk_buff_head *list);插入函数,kb_queue_head(),skb_queue_tail();出队列函数,sk_buff *skb_dequeue(struct sk_buff_head *list),sk_buff *skb_dequeue_tail(struct sk_buff_head *list);清空队列函数,skb_queue_purge(struct sk_b

2014-08-31 22:37:54 7166

转载 程序员,你迷茫吗?

你如果是早上6点爬起床,刷牙洗脸,随便吃点早点,接着跑去挤地铁公交,尽量小心的不被挤成饼。挤地铁公交,使劲的小心不被挤成饼。中午一个小时吃饭,半个小时睡午觉。晚上无偿加班到9点10点,周六还必须常薪上班。如果你还梦想着进入Goole,Facebook,还想着房、车、美女啥的,那就别放假,多写代码多学习,你哪来的看时间去迷茫去忧伤啊!你要是想到以后吃不起肉,旅不起游,看不起最新大片,连买瓶三

2014-08-26 11:29:06 1524

原创 sk_buff整理笔记(四、克隆与复制)

上面的pskb_copy()函数和skb_clone()函数类似:skb_clone()函数克隆出来的skb结构不能修改其共享数据区的数据,而pskb_copy()函数也是一样的,克隆出来的skb及数据区不能修改共享的分片结构数据区内容。所以如果想要修改分片结构数据区的内容,则必须要用skb_copy()函数来克隆skb结构体。skb_copy()函数是对skb结构体真正的完全复制拷贝。不仅是sk_buff结构体还有data指针指向的数据区(包括分片结构)以及分片结构中指针指向的数据区,都各自复制拷贝一份。

2014-08-25 21:41:07 6981 1

转载 一致性hash算法 - consistent hashing

consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在cache 系统中应用越来越广泛;1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object 的 

2014-08-25 17:27:52 1469

原创 sk_buff整理笔记(三、内存申请和释放)

内核对于sk_buff结构的内存分配不是和一般的结构动态内存申请一样:只分配指定大小的内存空间。而是在开始的时候,在初始化函数skb_init()中就分配了两段内存(skbuff_head_cache和skbuff_fclone_cache )来供sk_buff后期申请时用,所以后期要为sk_buff结构动态申请内存时,都会从这两段内存中来申请(其实这不叫申请了,因为这两段内存开始就申请好了的,只是根据你要的内存大小从某个你选定的内存段中还回个指针给你罢了)。如果在这个内存段中申请失败,则再用内核中用最低层

2014-08-21 22:00:46 9554 2

原创 sk_buff整理笔记(二、操作函数)

sk_buff整理笔记(一、数据结构)这一篇要讲的是内核为sk_buff结构提供的一些操作函数:(a)skb_put(), (b)skb_push(), (c)skb_pull(), and (d)skb_reserve(); 四大指针分别是:head、data、tail、end;这四个指针都是指向了数据区的,数据区中存放的是协议头和数据。head和end指针是每个数据包一样的,也是有这两个指针来确定数据区的大小的。最开始的时候head、data、tail三个指针都是指向一起的,当有协议数据加进来时才更

2014-08-20 23:21:05 8787 1

原创 sk_buff 整理笔记(一、数据结构)

对sk_buff结构体以及相关的sk_buff_head结构体、sk_buff结构体数据区、sk_shared_info分片结构体、分片结构体的数据区的常用成员字段进行透彻的分析。以及分析这几个结构体的关系与一个sk_buff数据包的形成和其data指针的变化。 (1)sk_buff->data_len:只计算分片中数据的长度,即是分片结构体中page指向的数据区长度。这个在分片结构体中会再详细讲解下。 (2)sk_buff->len:表示当前缓冲区中数据块的大小的总长度。它包括主缓冲中(即是sk_

2014-08-18 21:47:11 31135 23

原创 linux内核之hlist哈希链表的应用---C语言代码实现(内核态)

本文是继linux内核之链表操作解析 之后对linux内核中链表和哈希链表的操作宏以及操作函数的一个应用; 第一步:是定义数据类型,主要是哈希链表,因为用的是拉链法(也叫数组链表)处理碰撞,所以也可以当作是链表的一个应用。对哈希链表来说除了定义数据项节点外还要定义个哈希表。对数据项解释下,hNode是链表连接的,key是真正的数据。key是个比较复杂的结构体,姑且认为他里面有个整型成员,作为关键字,其他成员不管。注意点:数据项节点中的成员尽量都不要用指针(尤其时hNode成员一定不能用指针),因为:第一、在

2014-08-17 18:59:03 3217

原创 什么是可重入

问题就是:什么是可重入?如果执行结果和没有发生中断时顺序执行得到的结果一样就表明该函数是可重入的。(是每次不管有没有异步事件发生,该函数执行的结果都是一样的才算是可重入函数)。内核中断情况下:用可重入函数来分析下在内核发生中断时运行情况,当CPU执行到该函数内时,突然接到一个中断信号,CPU将对保存现场(把一些参数,返回地址,执行状态之类的保存到堆栈中去),然后去执行中断服务程序;当执行完中断服务程序后,CPU就会还原现场,把一些参数,返回地址,执行状态之类的进行出栈,然后CPU再次进入该函数,从上次执行的

2014-08-15 00:02:22 4828 7

原创 hlist哈希链表的实现--C代码实现程序

hlist 哈希链表的实现--C代码实现程序(用户态)。在前面已经对哈希链表进行了全面的讲解,包括哈希链表的定义,哈希链表的哈希函数以及怎么处理哈希碰撞问题。如果不是很熟悉哈希链表的一些的概念的可以先稍微看下hlist 哈希链表介绍,我想这会帮助你了解接下来要看到的:hlist 哈希链表的实现--C代码实现程序(用户态)。

2014-08-14 22:14:45 2336 1

原创 结构体变量之间的比较和赋值原理

结构体变量之间的比较方法和赋值原理:结构体变量之间可以直接赋值我想大家都知道了。但结构体变量之间可以做比较吗?答案肯定是不行的,因为比较符号只作用于基本数据类型。如果是用C++或者Java来编程时遇到结构体变量之间的比较,那还好办直接对操作符重载就可以了。但如果是用C语言来编程遇到它呢?很多人说那可以自己写个函数啊,自己想怎么实现就怎么实现,况且写个结构体变量之间的比较程序又不是什么难事。但我想问的是你遇到的结构体里面的成员才多少个?如果是一个结构体中包含多个结构体(而结构体中又包含了结构体,比如ovs中的

2014-08-12 22:39:33 10596 1

原创 结构体成员在内存中分配与对齐

结构体成员在内存中的分配和对齐。所谓自身对齐就是说:存放变量的地址要是该变量数据类型大小的整数倍。如:存放int型数据的地址一定要是4的倍数,存放short型数据的地址一定要是2的倍数。 非对齐存储:CPU在读取(说明下32位系统有32根地址线,所以CPU每次都读取32位也就是4个字节的数据)数据时,首先读取0x00地址到0x03地址上的4个字节数据,然后分析只有0x03地址上的数据才是CPU想要的,所以保留这个字节的数据。接着读取0x04地址到0x07地址内的4个字节数据,分析可的只有0x0

2014-08-10 11:01:32 2019

原创 博弈论策略

规则:有N个棋子,有两个玩家。每个玩家可以从剩下的棋子中取走1-3个。最后取走剩下所有的棋子着为赢家。       例:(引用原文)有21个棋子,有A,B两个玩家。A先开始,请问A要怎么做才能确保自己一定赢?

2014-08-09 18:22:57 1800

原创 uboot第一阶段start.s简单分析

下面是自己理解和查资料得出的一些解释。作为自己的笔记,里面还有些知识块不是理解非常透彻。希望指教。还有个这不是单纯的uboot ,而是一个移植的uboot,但是没看清楚,分析到后面发现有移植部分,想了下还是将错就错吧。设置中断向量表用globl来定义全局变量,因为这个中断变量在其他模块中也要用到。把中断标号赋值给pc,其实真正的中断服务子程序地址在下面再次定义。

2014-08-09 17:59:27 1201

原创 C/C++程序编译时和运行时内存区域分配

c程序内存分配区域问题。记得以前学《Unix高级环境编程》时书中有提到c程序内存分配问题。然后有次面试时,问到这个问题我根据书上的内容来回答的,面试官却说回答的对了一半,当时很纳闷怎么会对了一半呢。下面来解释下。        先来说下c程序编译内存分配:        1.栈区(stack):存放局部变量和参数,申请和释放都由编译器自动完成。        2.堆区(he

2014-08-09 17:56:30 4474 1

原创 系统位数和内存关系

以下系统位数都用32位来举例。   第一,8bit(位)  == 1 byte(字节);1024 byte == 1 kb( kbyte)这是基础必须得知道。   第二,字是机器的字长,是对应二进制的长度。比如:32位系统,字就表示32位==4个字节。   第三,我们所说的系统位数其实是说的数据总线,就是cpu处理能力,强调的是数据的处理能力。32位系统每个周期就能处理32

2014-08-09 17:53:50 7257

原创 UART串口编程

基础知识:1.波特率:每秒传输的二进制位数,bps。2.UART用的是标准TTL/CMOS逻辑电平,可以通过MAX3232转换成RS-232逻辑电平。RxD/TxD数据线以位为最小数据传输单位。3.帧:有效传输单位,具有完整数据意义。里面包含:起始位,数据位,校验位,停止位。一帧数据可以有5-8个数据位,从最低位开始传输,传输前约定好

2014-08-09 16:52:19 5461

原创 时钟频率详解和编程

晶振:其作用是产生原始的时钟频率,这个频率经过频率发生器的倍频或分频后就成了电脑中各种不同的总线频率;其本身不振荡但和外电路产生谐振。 一般来讲系统都会有2个锁相环。这里就拿三星的S3C2440来作为例子吧。S3C2440有2个锁相环(PLL--- phase locked loop),一个是MPLL,一个是UPLL;MPLL用于CPU及其他外围器件。UPLL用于USB提供48MHz.外部时钟

2014-08-09 16:47:18 3541 1

原创 ARM的工作模式和中断流程

ARM体系结构中有七个工作模式:0b10000  usr  用户模式,一般的,唯一没有特权的模式,也是正常工作模式,不能切换到其他模式0b10001  FIQ  快中断模式,用于高速数据传输,快中断响应的工作模式0b10010  irq   中断模式,通用中断处理,一般中断响应的工作模式0b10011  supervisor 管理模式,操作系统保护模式,复位和软件中断响应的工作模式

2014-08-09 16:22:14 2274

原创 未决寄存器置1怎么区分是中断请求还是清中断

不管是SRCPND源未决寄存器清中断还是INTPND未决寄存器 清中断都是往里面置1。这让大家很疑惑,因为当中断请求发生时,也是往这些未决寄存器中置1。那么怎么来区分是中断请求还是清中断呢??         查看了下s3c2440数据手册,上面只是说:“A。如果你从中断服务程序返回却没有清除该位,中断控制器将操作好像又有同一个中断源的中断请求到来。换言之,如果SRCPND的一个特

2014-08-09 16:16:38 2389

原创 ARM中断源和中断过程分析

中断源分析中断分为两大类,由中断源来区分:内部中断,其中断源由内部外设提供。如:DMA/UART等外部中断,其中断源由外部请求中断。如:EINTn先来分析下59个中断源:35个内部中断源和24个外部请求中断源。(官方说是60个中断源)

2014-08-09 16:13:49 3532

原创 ARM中断进入和退出分析

0x00复位(reset): 1   svc 复位引脚有效产生复位异常中断,程序跳转到子程序执行;复位情况加电,复位按键;直接跳转到复位中断服务子程序0x04未定义指令(undefined instruction):6   und0x08软件中断:用户自定义的中断指令,目的是为了获取到特权 6   svc0x0c指令预取中止 5   abt0x10数据访问中止 2   

2014-08-09 16:01:25 3451

原创 什么是大小端模式,写个程序判断本机是大端还是小端模式

面试常见问题:什么是大小端?写个程序判断本机是大端格式还是小端格式?先来简单的讲下什么是大小端模式,以及两个模式的区别:所谓大小端模式就是存储数据时,数据的高低位怎么存储在地址的高低位上。(位指的是bit,一个char类型数据有8位) 大端模式:数据的高位,存放在地址的低位。(高位存低位,低位存高位) 小端模式:数据的高位,存放在地址的高位。(高位存高位,低位存低位) 我们的pc机一般都是小端模式,个人感觉这也更符合我们的习惯,在地位置的就是低位数据。下面举个

2014-08-09 15:11:56 7459 2

原创 linux内核开发平台工具:VMware远程连接服务器

linux内核开发平台工具:VMware远程连接服务器;因为做内核开发的经常会遇到系统崩溃的现象,而我们开发的时候不可能直接在服务器上进行模块的加载和卸载。一般是在服务器上用VMware做个虚拟机开发,经过多次调试没问题时,才放到服务器上。我们一般是远程登录服务器上的虚拟机开发。当我们程序让虚拟系统崩溃时,要到服务器上重新开启虚拟机里面的系统。(还有做网络内核开发,一旦卸载了原来的模块,那就没有ip地址,也就不能远程登录控制了)如果服务器近的话还好,如果很远就比较麻烦了。现在这方法就是解决这个问题的。

2014-08-07 23:02:09 1795

原创 linux内核之container_of()应用

linux内核之container_of()应用,因为我觉得在 linux内核之container_of()详解 文章中已经讲的非常详细了,再写什么也觉得是狗尾续貂了,没必要。可是今天自己做openvswitch内核开发时,发现自己也用错几个地方。所以就写个简单的程序来说明下怎么使用container_of()这个宏吧;如果涉及到内核中 hlist_for_each_entry(),hlist_for_each_entry_continue(),hlist_for_each_entry_safe()等等,

2014-08-06 23:12:00 2065 2

原创 linux内核之哈希链表解析

本文只是对linux内核中的链表进行分析。内核版本是linux-2.6.32.63。文件在:linux内核/linux-2.6.32.63/include/linux/list.h。本文对list.h文件进行简要分析,有必要的地方还会以图进行说明。

2014-08-03 14:59:52 4591

原创 linux内核之链表操作解析

本文只是对linux内核中的链表进行分析。内核版本是linux-2.6.32.63。文件在:linux内核/linux-2.6.32.63/include/linux/list.h。本文对list.h文件进行简要分析,有必要的地方还会以图进行说明。代码分析:

2014-08-03 14:39:08 1945

原创 linux内核之链表结构分析

linux内核之链表结构分析,先来说下linux内核链表设计的第二个巧妙点:链表节点没有数据项。为什么这么设置呢,是因为设计者无法预计数据项是什么类型,总不能为每种数据类型都设计堆链表操作函数吧,所以干脆不设计数据项,这样设计出来的链表操作函数就既有了通用性。而至于数据项呢,使用者想怎么设计就怎么设计。关键点是数据项结构体中包含链表项,这与我们自己平常设计的的链表节点有点不一样。

2014-08-03 13:29:48 1206

原创 TS流中从流解析出段和表详细信息

1.transport_error_indicator字段是否为1,这是个错误标识字段,如果为1,则表明接下来的这个段在传输过程中出现错误,解析时可以跳过这个段。 2.payload_unit_start_indicator字段表明后面是否有个文件指针,用来表明有效负载的。如果有则表明这个包是这个段的起始包,有效负载的开始位置在调整字段后面有个文件指针来指定。这是判断一个段开始的唯一标识。 3.adaption_field_control字段表明为控制调整字段,解析时,只要解

2014-08-03 12:23:06 2700 1

原创 TS流中从段解析出详细的表信息

做了一个月左右的机顶盒开发,学到了点东西,希望记录下来以表明我在数字电视行业做过。PSI表和SI表我就不做太多详细的解释,百度下到处都是。现在以网络NIT表来做下各个字段的解释。NIT表:     网络信息表NIT传递了与通过一个给定的网络传输的复用流/TS流的物理结构相关的信息,以及与网络自身特性相关的信息。在本标准应用的范围内,original_network_id 和 t

2014-08-03 12:22:25 3616

原创 Nand Flash和Nor Flash 启动区别

Nor Flash 中有单独的地址线,和数据线是分开的。读取数据时和一般的SRAM相近。而Nand Flash中地址线和数据线是共用的,所以要等程序运行后来控制分析是地址信息还是数据信息。 Nor Flash中有分配地址。开发板上一般外接SDRAM来作为大量的存储,2440板子上共有8banks,其中6个是ROM或者SRAM,其他2个还可以是SDRAM。前面七个banks起始地址是固定

2014-08-03 12:20:20 1028

原创 用C语言宏定义寄存器地址解释 和 关键字 volatile

#define GPFDAT (*(volatile unsigned long*)0x56000000)分析解释;以及,volatile关键字:别称易失变量:容易丢失的变量;因为编译器为了程序的效率,在编译时会进行一些优化。可有时候我们不希望对某些变量进行优化,所以在变量前加上个volatile关键字,编译器就不会对该变量进行优化了,而是老老实实到内存中再去读取数据。(优化了后可能是把该变量的值存放在某个临时的寄存器中,要用时,直接到寄存器中读取,因为寄存器读取数据比内存中要快很多)。

2014-08-03 12:16:23 9017

原创 linux内核之container_of()详解(即:list_entry()的详解)

#define list_entry(ptr, type, member) ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member))) 减号右边分析:(unsigned long)(&((type*)0)->member) (type*)0: 把0地址强制转换成type结构体的地址,表示0地址处存放了type类型的结构体变量,为什么在0处强转为结构体地址,这也是个设计巧妙点;((type*)0)->member:这个表示指向结构体

2014-08-03 12:09:28 3032 1

原创 hlist 哈希链表介绍

什么是哈希链表(又称为散列表)?哈希链表的定义是什么?哈希函数是什么?怎么构建哈希函数才是最合理,有哪几种构建方法?怎么处理哈希碰撞问题?有C语言实现的具体哈希链表。 哈希表又称散列表,是为了加快元素查询而设计的一种数据结构。基本原理是:把需要查询的关键字通过映射函数(散列函数)映射到相应的存储地址,然后直接访问元素。需要存储或者查询的元素一般称为关键字(Key value),而这个映射函数一般称为散列函数,映射到的存储地址一般称为散列表。 用散列表数据结构和其他数据结构的优劣区别

2014-08-02 17:23:33 2689

Ubuntu下openssh-server安装

Ubuntu下openssh-server安装,里面有安装步骤

2017-07-11

bashdb-4.2-0.8

bashdb是一个类GDB的调试工具,使用GDB的同学使用bashdb基本无障碍, bashdb可以运行断点设置、变量查看等常见调试操作

2017-07-08

gcc-3.4.0.tar.gz

gcc-3.4.0.tar.gz

2016-10-10

Linux那些事儿.pdf

Linux那些事儿.pdf

2015-10-08

嵌入式Linux之我行系列

本书是根据相关的博客做的PDF格式的电子书,欢迎到原作者的博客去看看。 这个是目录: ·嵌入式Linux之我行——虚拟机中安装Linux ·嵌入式Linux之我行——虚拟机中实现Linux与Windows之间的文件传输 ·嵌入式Linux之我行——开发环境的建立与Eclipse的使用 ·嵌入式Linux之我行——配置内核时出现“ncurses-devel”错误 ·嵌入式Linux之我行——C+CGI+Ajax在S3C2440中的应用 ·嵌入式Linux之我行——嵌入式数据库sqlite在2440上的移植 ·嵌入式Linux之我行——嵌入式数据库sqlite在2440上的应用 ·嵌入式Linux之我行——Linux-2.6.30.4在2440上的移植之内核 ·嵌入式Linux之我行——Linux-2.6.30.4在2440上的移植之文件系统 ·嵌入式Linux之我行——Linux-2.6.30.4在2440上的移植之RTC时钟驱动 ·嵌入式Linux之我行——Linux-2.6.30.4在2440上的移植之DM9000E网卡驱动 ·嵌入式Linux之我行——Linux-2.6.30.4在2440上的移植之USB驱动 ·嵌入式Linux之我行——Linux-2.6.30.4在2440上的移植之MMC/SD卡驱动 ·嵌入式Linux之我行——Linux-2.6.30.4在2440上的移植之LCD驱动 ·嵌入式Linux之我行——Linux-2.6.30.4在2440上的移植之触摸屏驱动 ·嵌入式Linux之我行——Linux-2.6.30.4在2440上的移植之UDA1341声卡驱动 ·嵌入式Linux之我行——u-boot-2009.08在2440上的移植详解(一) ·嵌入式Linux之我行——u-boot-2009.08在2440上的移植详解(二) ·嵌入式Linux之我行——u-boot-2009.08在2440上的移植详解(三) ·嵌入式Linux之我行——u-boot-2009.08在2440上的移植详解(四) ·嵌入式Linux之我行——u-boot-2009.08在2440上的移植详解(五) ·嵌入式Linux之我行——u-boot-2009.08在2440上的移植详解(六) ·嵌入式Linux之我行——s3c2440的IO静态映射的分析 ·嵌入式Linux之我行——内核访问外设I/O资源的方式 ·嵌入式Linux之我行——深入理解DM9000在mini2440上的驱动 ·嵌入式Linux之我行——LCD背光驱动在2440上的实例开发 ·嵌入式Linux之我行——LED驱动在2440上的实例开发 ·Linux内核常用的一些宏的收集 ·嵌入式Linux之我行——按键驱动在2440上的实例开发(带去抖动) ·嵌入式Linux之我行——ARM MMU工作原理剖析 ·嵌入式Linux之我行——设备文件系统剖析与使用 ·嵌入式Linux之我行——PWM在ARM Linux中的原理和蜂鸣器驱动实例开发 ·嵌入式Linux之我行——S3C2440上RTC时钟驱动开发实例讲解 ·嵌入式Linux之我行——S3C2440上看门狗(Watchdog)驱动开发实例讲解 ·嵌入式Linux之我行——S3C2440上ADC驱动实例开发讲解 ·嵌入式Linux之我行——S3C2440上触摸屏驱动实例开发讲解 ·嵌入式Linux之我行——S3C2440上LCD驱动(FrameBuffer)实例开发讲解(一) ·嵌入式Linux之我行——S3C2440上LCD驱动(FrameBuffer)实例开发讲解(二) ·嵌入式Linux之我行——RamDisk块设备驱动实例开发讲解 ·嵌入式Linux之我行——S3C2440上MMC/SD卡驱动实例开发讲解(一) ·嵌入式Linux之我行——S3C2440上MMC/SD卡驱动实例开发讲解(二) ·嵌入式Linux之我行——内核通知链机制的原理及实现(转载) ·嵌入式Linux之我行——S3C2440上Flash驱动实例开发讲解(一)

2015-07-20

深入Linux设备驱动程序内核机制.pdf

深入Linux设备驱动程序内核机制.pdf 深入Linux设备驱动程序内核机制.pdf 深入Linux设备驱动程序内核机制.pdf

2015-06-29

PCI-E和FPGA

PCI-E和FPGA

2015-05-22

NVM-Express 1.2

NVM-Express-1_2-Gold-20141209.pdf

2015-05-21

Oracle VM VirtualBox 桥接模式驱动

Oracle VM VirtualBox桥接模式驱动;具体的使用请参考我的博客 http://blog.csdn.net/yuzhihui_no1?viewmode=contents中的《Linux下的网络配置命令》

2015-03-10

x86汇编从实模式到保护模式(pdf、相关代码、软件工具)

x86汇编从实模式到保护模式(pdf、相关代码、软件工具),注:没有14~17章,谁有麻烦给我份,谢谢!!

2014-12-11

软件开发电子书百宝箱

里面包含了所有软件开发所需要的电子书,有C语言、C++、Java、PHP、shell等等语言的开发电子书。也有windows下的各种开发电子书,更有unix/Linux编程开发,以及驱动 内核之类的(ldd3,深入理解linux内核等)电子书

2014-08-11

Linux设备驱动程序(中文版第三版含例题)

Linux设备驱动程序(中文版第三版)里面包含例题

2014-08-11

Linux设备驱动程序(每章一个文件)

Linux设备驱动程序。分章阅读,每一个pdf文件就是一章。

2014-08-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除