自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多线程中使用fork()导致分页

最近和同事一起处理了一个 fuse 的大bug;首先看堆栈:Core was generated by `/sf/cluster/bin/pmxcfs'.Program terminated with signal SIGABRT, Aborted.#0  0x00007f2debdcc475 in raise () from /lib/x86_64-linux-gnu/libc.so.6(gdb...

2018-04-28 17:41:18 1190

原创 为什么CSDN做的越来有丑了??

为什么CSDN做的越来越丑了?真不知道CSDN的产品经理怎么当的,视觉设计师是怎么做的,真是做的越来越差了。丑的我都无法接受了。不要站在自己的角度,不要站在公司的角度,也不要站在技术的角度 去做产品,这样只能把产品做死。我们应该站在用户角度、使用者的角度 来思考问题。因为你们产品是给这两者来使用的,要了解他们的本质需求。可能你们自己觉得挺好的,有创新,有改进。那是因为你们对自己产品

2018-02-06 11:21:29 1817 6

转载 linux文件系统之mount流程分析

本质上,Ext3 mount的过程实际上是inode被替代的过程。例如,/dev/sdb块设备被mount到/mnt/alan目录。那么mount这个过程所需要解决的问题就是将/mnt/alan的dentry目录项所指向的inode屏蔽掉,然后重新定位到/dev/sdb所表示的inode索引节点。在没有分析阅读linux vfs mount代码的时候,我的想法是修改dentry所指向的inod

2017-09-01 10:04:00 3691

原创 linux c删除文件中指定内容行或指定行

1、增加个临时文件;把源文件内容逐个字节或者逐行读取出来,然后修改或者丢弃,放到临时文件中,当把源文件中所有内容过滤后,再把临时文件全部覆盖回源文件;2、读取到内存中修改;把整个文件读取到内存中,然后修改,再覆盖回到源文件;我们应该怀疑下,为什么 shell 命令可以很方便的删除、修改文件内容,这绝对不会有临时文件产生,也不会占用多大内存,或者可以说占用的内存不会随着文件的大小而改变?

2017-04-16 00:16:37 15756 1

转载 linux文件读写流程

在《linux内核虚拟文件系统浅析》这篇文章中,我们看到文件是如何被打开、文件的读写是如何被触发的。对一个已打开的文件fd进行read/write系统调用时,内核中该文件所对应的file结构的f_op->read/f_op->write被调用。本文将顺着这条路走下去,大致看看普通磁盘文件的读写是怎样实现的。 linux内核响应一个块设备文件读写的层次结构如图(摘自ULK3):

2017-03-29 17:26:56 2839

转载 网络IO虚拟化

IO 虚拟化简介前面的文章介绍了KVM的启动过程,CPU虚拟化,内存虚拟化原理。作为一个完整的风诺依曼计算机系统,必然有输入计算输出这个步骤。传统的IO包括了网络设备IO,块设备IO,字符设备IO等等,在KVM虚拟化原理探究里面,我们最主要介绍网络设备IO和块设备IO,其实他们的原理都很像,但是在虚拟化层又分化开了,这也是为什么网络设备IO虚拟化和块设备IO虚拟化要分开讲的原因。这一章介绍

2017-03-28 11:30:51 1706

转载 CPU虚拟化

上一篇文章笼统的介绍了一个虚拟机的诞生过程,从demo中也可以看到,运行一个虚拟机再也不需要像以前想象的那样,需要用软件来模拟硬件指令集了。虚拟机的指令集直接运行在宿主机物理CPU上,当虚拟机中的指令设计到IO操作或者一些特殊指令的时候,控制权转让给了宿主机(这里其实是转让给了vm monitor,下面检查VMM),也就是一个demo进程,他在宿主机上的表现形式也就是一个用户级进程。用一张

2017-03-28 09:01:02 1240

转载 QEMU启动过程

虚拟机启动过程第一步,获取到kvm句柄kvmfd = open("/dev/kvm", O_RDWR);第二步,创建虚拟机,获取到虚拟机句柄。vmfd = ioctl(kvmfd, KVM_CREATE_VM, 0);第三步,为虚拟机映射内存,还有其他的PCI,信号处理的初始化。ioctl(kvmfd, KVM_SET_USER_MEMORY_REGION, &mem);第四步,将

2017-03-27 16:47:08 5424

转载 QEMU镜像格式:qcow2 与 raw

qcow2 的基本原理qcow2 镜像格式是 QEMU 模拟器支持的一种磁盘镜像。它也是可以用一个文件的形式来表示一块固定大小的块设备磁盘。与普通的 raw 格式的镜像相比,有以下特性:更小的空间占用,即使文件系统不支持空洞(holes);支持写时拷贝(COW, copy-on-write),镜像文件只反映底层磁盘的变化;支持快照(snapshot),镜像文件能够包含多

2017-03-27 11:47:50 4269

转载 RRD 数据库简介及操作

RRD 数据库简介及操作最近公司在部署了一套小米开源的监控平台 — open-falcon ,有机会认识了 RRD (更多被称作 RRDTool)。好久没 blog 了,今天跟大家分享一下这个数据库。RRD 简介RRDtool refers to Round Robin Database tool .Round robin is a technique that

2017-03-23 09:33:34 17017 1

转载 编写守护进程的实例

守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用 的进 程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。 比如,作业规划进程crond,打印进程lpd等。守护进程的编程本身并不复杂,复杂的是各种版本的

2017-03-21 15:24:22 865

原创 qemu-kvm内存虚拟化原理

关系:客户机虚拟地址---> 哈希表 ---> 影子页表 ---> 虚拟地址--->宿主物理地址; 哈希表之所以用物理地址映射(到影子页表是用虚拟机地址的)是因为每个客户机只有一个哈希表,而虚拟地址每个客户机有多个进程对应的虚拟机地址,也有多个影子表。而物理地址只有一个;以通过物理地址唯一来对应哈希表唯一,并且影子页表也是通过cr3来确定唯一;

2017-03-20 11:59:18 1609

转载 libvirt的virsh命令和qemu参数转换

运行虚拟机有多种方式,其中可以使用qemu-system-x86或者qemu-kvm来运行虚拟。另外还可以使用libvirt的virsh命令从xml文件定义来运行虚拟机。而网上许多的教程或者示例使用qemu命令参数来运行的,如果使用libvirt来运行可能会无从下手,不知道对应的参数。libvirt从Domain的配置文件启动虚拟机虚拟机(有时Domain,guest都表示虚拟机的

2016-12-28 16:45:46 7082

原创 node + express 中ejs页面中文乱码问题

1、在页面上设置  2、如果还不行,那就是文件本身不是utf-8的格式;linux中的文件格式一般是utf-8的,而Windows上的格式一般是gb2312 和 iso-8859-1 的;因为有的时候我们是在Windows上调试页面,调试满意后再上传到linux,就会导致这样的问题;查看文件的格式:file -i main.ejsmain.ejs: text/html;

2016-12-15 00:57:23 4617

原创 父进程为1号进程(ppid=1)的僵尸进程处理和分析

但是,父进程为1号进程的进程 其实也是有可能成为僵尸进程的。下面说几种情况:1、进程还在被其它进程使用,退出;2、进程的子线程还在执行任务,但主线程已经死掉了(可能主线程已经被杀了,systemd停止服务时会发SIGTERM信号);3、进程阻塞在某一IO请求上,这时控制权已交到内核手上,这时如果子进程被KILL掉, 那么就成为父进程ID为1的僵尸进程,这个进程不会退出,会一直阻塞直到IO请求被满足;

2016-11-02 21:02:10 34769

转载 病毒分析--mirai物联网病毒

物联网僵尸网络病毒“Mirai”在上月参与发起了针对KrebOnSecurity安全站点的大规模分布式DDoS攻击,新一类僵尸网络从各种容易被感染的物联网设备中发起,流量巨大防不胜防。“Mirai”可以高效扫描物联网系统设备,感染采用出厂密码设置或弱密码加密的脆弱物联网设备,被病毒感染后,设备成为僵尸网络机器人后在黑客命令下发动高强度僵尸网络攻击。本文针对Mirai源码进行详细分析。1. 

2016-11-01 17:30:01 13802 1

转载 qemu中虚拟网卡概念

注册博客园已经好长时间,一直以来也没有在上面写过文章,都是随意的记录在了未知笔记上,今天开始本着分享和学习的精神想把之前总结的笔记逐步分享到博客园,和大家一起学习,一起进步吧!2016-09-20  17:11:05 其实之前已经有分析过网桥的原理,但是当时对其理解还是局限于表面,对于其本身的实现原理并没有结合linux源代码进行分析,那么本次实际上是要分析qemu对于网卡

2016-10-10 20:30:06 3803

转载 qemu网络虚拟化之数据流向分析二

2016-09-27 上篇文章大致介绍了qemu网络虚拟化相关的数据结构,本篇就结合qemu-kvm源代码分析下各个数据结构是如何初始化以及建立联系的。这里还是分为三个部分:1、Tap设备区2、Hub区3、NIC区1、Tap设备区在net.c中有数组记录下net client 初始化的相关函数 1 static int (*

2016-10-10 20:13:58 1011

转载 qemu网络虚拟化之数据流向分析一

插曲:  今天下午欣喜的想写点关于qemu网络部分的功能,但是中途出现了点小插曲,电脑被某人搞得死机了,并且文章也没有保存。结果,,,就只能重新写了!!所以这里强烈建议开发团队提供自动保存的功能!言归正传,前段时间自己写过关于Linux 内部网桥的实现原理以及数据包从物理网卡到达Linux网桥进行转发,再到Tap设备的流程。从qemu网络虚拟化整体框架来看,这部分只能算是前

2016-10-10 17:58:58 1177

转载 使用strace, ltrace寻找故障原因的线索

2012-03-23 wcdj在GNU/Linux环境下,当程序出现“疑难杂症”的时候,如何快速定位问题呢?本文介绍strace/ltrace的一些使用方法,内容主要来自个人的读书笔记(可见参考文献)。strace/ltrace 是一类不错的工具,在工作中经常会用到,其主要可以用于:(1) 了解一个程序的工作原理(可以了解Linux下很多常用的命令实现的原理);(2

2016-08-18 20:03:14 1025

转载 systemd详解

CentOS 7 使用systemd替换了SysV。Systemd目的是要取代Unix时代以来一直在使用的init系统,兼容SysV和LSB的启动脚本,而且够在进程启动过程中更有效地引导加载服务。systemd的特性有:支持并行化任务同时采用socket式与D-Bus总线式激活服务;按需启动守护进程(daemon);利用 Linux 的 cgroups 监视进程;

2016-08-17 10:47:05 1225

转载 走进Linux之systemd启动过程

编译自:http://linoxide.com/linux-how-to/systemd-boot-process/作者: Aun Raza原创:LCTT https://linux.cn/article-5457-1.html译者: zpl1025本文地址:https://linux.cn/article-5457-1.html2015-5-17 20:33    评

2016-08-17 10:44:27 5168

转载 recovery: ASCII cpio archive (SVR4 with no CRC)——cpio格式的recovery解压缩和重新打包的方

中兴U930HD手机CPU采用的是联芯科技的LC1810,该平台系统的recovery.img 和boot.img 的打包格式跟其他平台(如高通、MTK、英伟达等)不一致,研究了半天终于将930HD的recovery替换了,步骤如下1、用第三方工具root手机之后,采用dd命令导出recovery.img到sd卡adb shellsudd if=/dev/block

2016-07-08 18:59:03 2027

转载 linux panic分析

Oops: 0000 [#1] PREEMPT SMP               Modules linked in: capidrv kernelcapi isdn slhc ipv6loop dm_multipath snd_ens1371 gameport snd_rawmidi snd_ac97_codecac97_bus snd_seq_dummy snd_seq_oss

2016-07-02 09:28:57 1093

转载 查看设备、文件被哪个进程使用

lsof简介  lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接 和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通

2016-06-27 11:36:23 19559

转载 System.map解析

第一部分:System.map的作用有关System.map文件的信息好象很缺乏。其实它一点也不神秘,并且在整个事情当中它并不象看上去那么得重要。但是由于缺乏必要的文档说明,使其显得比较神秘。它就象耳垂,我们每个人都有,但却不知道是干什么用的。注意,我并不会是百分之一百正确的。例如,一个系统很可能没有/proc文件系统支持,但是大多数系统肯定有。这里我假定你是“随大流的”,并有一个典型配置

2016-06-20 23:41:33 1121

转载 linux宕机后根据地址来查看哪个函数出错

本文以获取内核函数 sys_open()的地址为例。   1)从System.map文件中直接得到地址:      $ grep sys_open /usr/src/linux/System.map     2)使用 nm 命令:      $ nm vmlinuz | grep sys_open     3)从 /proc/kallsyms 文件获得地址:

2016-06-20 23:26:44 1445

转载 do ... while(0) 的妙用

在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。    但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。1. do...while(0)消除goto语句。通常,如果在

2016-06-16 16:04:17 466

原创 SSD卡驱动中trim命令的实现原理

有关trim命令的简介 可以看下http://blog.csdn.net/yuzhihui_no1/article/details/46519701这里就大概的说下驱动中对trim命令的实现吧,由于对公司代码的保密性,这里就不沾贴代码了,就大概的说下实现原理;首先是块设备的基本框架:队列 queue和绑定队列的函数先说说一般的块设备框架,

2016-05-06 00:00:13 2550

原创 linux文件系统之读流程 SYSCALL_DEFINE3(read, xxx)

SYSCALL_DEFINE3(read, unsigned int, fd, char __user *, buf, size_t, count);fget_light();fcheck_files();ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos);1、struct iovec结构体 struct iovec { void __user *iov_base; /*

2016-05-05 00:50:55 3326

转载 struct file 和 struct file_struct

在具体介绍这几个结构以前,我们需要解释一下文件描述符、打开的文件描述、系统打开文件表、用户打开文件表的概念以及它们的联系。1.文件对象在Linux中,进程是通过文件描述符(file descriptors,简称fd)而不是文件名来访问文件的,文件描述符实际上是一个整数。Linux中规定每个进程能最多能同时使用NR_OPEN个文件描述符,这个值在fs.h中定义,为1024*1024(2.0版

2016-05-02 21:35:33 5829

原创 linux中页缓冲和块缓冲之概念

页缓冲在《linux内核情景分析》一书的第5.6节文件的写与读一章中说明的很详细,这里摘抄下来;在文件系统层中有三隔主要的数据结构,file结构、dentry结构和inode结构;file结构:代表目标文件的一个上下文,不同进程可以在同一文件上建立不同的上下文,而且同一进程也可以通过打开一个文件多次而建立起多个上下文。因此不能在file结构上设置缓冲区队列,因为这些file结构体之间都不共

2016-04-27 22:41:01 6410

原创 linux内存管理--实际分配函数 buffered_rmqueue

不管是快速分配还是慢速分配,实际分配内存的都是 buffered_rmqueue()函数,其他的都是在选择从哪个地方来分配比较合适;还是先来说说各个参数:struct zone *preferred_zone 表示分配所能接受的最大zone类型struct zone *zone  表示就在该zone上分配内存;int  order  表示分配页的阶数gfp_t gfp_flag

2016-04-27 22:39:41 5814

原创 linux内存管理--slab

struct kmem_cache *kmem_cache_create(const char *name, size_t size, size_t align, unsigned long flags, void (*ctor)(void *)) { return kmem_cache_create_memcg(NULL, name, size, align, f

2016-04-27 22:38:26 4275

原创 linux内存管理--高端内存映射

void *kmap(struct page *page){ might_sleep(); if (!PageHighMem(page)) return page_address(page); return kmap_high(page);}/** * page_address - get the mapped virtual ad

2016-04-27 22:30:03 1074

原创 linux内存管理--vmalloc

/** * vmalloc - allocate virtually contiguous memory * @size: allocation size * Allocate enough pages to cover @size from the page level * allocator and map them into contiguous kernel

2016-04-27 22:29:10 4345

原创 linux内存管理--慢速分配内存页 __alloc_pages_slowpath

page = __alloc_pages_slowpath(gfp_mask, order, zonelist, high_zoneidx, nodemask, preferred_zone, migratetype);static inline struct page *__alloc_pages_slowpath(g

2016-04-27 22:27:56 4145

原创 linux内存管理--分配内存页(快速) get_page_from_freelist

page = get_page_from_freelist(gfp_mask|__GFP_HARDWALL, nodemask, order, zonelist, high_zoneidx, alloc_flags, preferred_zone, migratetype);static struct page *get_page_fr

2016-04-27 22:26:58 4905

原创 linux内存管理--伙伴系统分配内存准备工作

linux内核内存管理的代码改变的有点大,主要是细节方面;首先从 __get_free_pages()开始总结起:unsigned long  __get_free_pages(grp_t  gfp_mask, unsigned int order)/* * Common helper functions. */ unsigne

2016-04-27 22:26:07 1683

原创 __get_free_pages

说下分配策略,这个分配策略主要是获取到节点的编号(也就是得到 pgdat 结构体);下面是分配策略的结构体static inline struct page *__alloc_pages(gfp_t gfp_mask, unsigned int order, struct zonelist *zonelist){

2016-04-27 22:24:51 1989

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

linux内核情景分析 高清+目录

linux内核情景分析 高清+目录 linux内核情景分析 高清+目录

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

《ARM嵌入式Linux系统开发从入门到精通》.pdf

本书以应用最广泛的新一代ARM9处理器为对象,介绍了ARM Linux系统移值,包括嵌入式系统开发入门,ARM Linux的驱动程序开发,Qt GUI开发,最后通过实例来讲述Qtopia Core开发过程。 本书通俗易懂,可作为高等院校电子类、电气类、控制类、计算机类等专业本科生、研究生学习嵌入式Linux的参考书目或自学教材。本书涵盖了嵌入式Linux系统中最重要的3个部分:ARM Linux系统移植、ARM Linux驱动程序开发以及Qt GUI开发

2014-08-11

ARM体系结构与编程+杜春雷.pdf

本书分14章对ARM处理器的体系结构、指令系统和开发工具作了比较全面的介绍。其中包括ARM体系介绍、ARM程序设计模型、ARM汇编语言程序设计、ARM C/C++语言程序设计、ARM连接器的使用、ARM集成开发环境CodeWarrior IDE的介绍及高性能的调试工具ADW的使用。并在此基础之上介绍一些典型的基于ARM体系的嵌入式应用系统设计时的基本技术。通过阅读本书可以使读者掌握开发基于ARM的应用系统的各方面的知识。 本书既可作为学习ARM技术的培训材料,也可作为嵌入式系统开发人员的参考手册。

2014-08-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

深入理解Linux内核第3版.pdf

深入理解Linux内核第3版.pdf 第三版原文

2014-08-11

空空如也

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

TA关注的人

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