自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2)
  • 资源 (21)
  • 收藏
  • 关注

原创 一种bug的check方式

宏定义如下:#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))这个函数也就是在check

2014-07-31 14:25:22 1543

转载 insight-6.8调试工具安装

错误信息:qiang@LinuxSir:~$ sudo arm-elf-insight Tk_Init failed: Can't find a usable tk.tcl in the following directories:     /usr/local/share/tk8.4 /usr/local/lib/tk8.4 /usr/lib/tk8.4 /usr/l

2014-07-28 17:43:20 828

GCC中文手册 中国linux论坛man手册翻译计划

GCC中文手册 中国linux论坛man手册翻译计划

2009-09-05

GDB完全中文手册 GDB是一个强大的命令行调试工具

GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全 是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个 简单的已有工具的命令,就可以做出一个非常强大的功能。 于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更为强劲的功能。而Windows下的 图形软件基本上是各自为营,互相不能调用,很不利于各种软件的相互集成。在这里并不是要和Windows做个什么比较, 所谓“寸有所长,尺有所短”,图形化工具还是有不如命令行的地方。(看到这句话时,希望各位千万再也不要认为我 就是“鄙视图形界面”,和我抬杠了 ) 我是根据版本为5.1.1的GDB所写的这篇文章,所以可能有些功能已被修改,或是又有更为强劲的功能。而且,我写得非 常仓促,写得比较简略,并且,其中我已经看到有许多错别字了(我用五笔,所以错字让你看不懂),所以,我在这里 对我文中的差错表示万分的歉意。 文中所罗列的GDB的功能时,我只是罗列了一些带用的GDB的命令和使用方法,其实,我这里只讲述的功能大约只占GDB所 有功能的60%吧,详细的文档,还是请查看GDB的帮助和使用手册吧,或许,过段时间

2009-09-05

GNU make中文手册 ver3.8

开始在Linux环境下开发时, 对于make这个东西没有多少了解。工作中网络、 Linux 社区论坛给了我很大的帮助。这些对我就像启蒙的教育一样重要、一样有影响力。特别 感谢那些前辈们的经验总结。特别感谢 make 程序的设计开发者们。也特别感谢“info make”原文的作者。 介绍一下 make程序的设计开发者 : Richard Stallman GNU project 的创始人。于 1984 年起开发自由开放的操作系统 GNU(Not Unix 的首字母缩写),以此向计算机用户提供自由开放的选择。GNU 是自由软件,任何用 户都可以免费拷贝和重新分发以及修改。 今天,各种 GNU/Linux版本,都基于由 Linus Torvalds 领导开发的Linux 内核。 Richard Stallman 是 GNU C 编译器的首要作者。除此之外 Stallman 还编写过GDB,GNU Emacs 等 GNU应用程序。 1990年,Stallman被授予麦克阿瑟基金奖;1991年,因为在 70年代开发了第一 个 Emacs 编辑器而获得了由计算机协会颁发的Grace Hopper 奖;1996年获得瑞典皇 家科学院名誉博士头衔。 1998年,他与 Linus Torvalds 一起获得了 EFF授予的先锋奖。 1983年,Stallman 曾写下了如下一段自传: “1953年,我在曼哈顿的一个实验 室工作,然后在1971 年到了 MIT (麻省理工学院)人工智能实验室。我的爱好包括交友、 各国民间舞蹈、 飞行、烹饪、物理、录像、双关语、科幻小说、当然还有就是编程。 而 我正是靠最后一样爱好来维生。一年以前我与相伴10年的“老友”--PDP-10分手了。虽然我们仍然“相爱”,但是这个世界却让我们不得不分道扬镳。在这段时间,我仍然 住在麻省的剑桥。在我的记忆里,“Richard Stallman”是我的俗名,人们可以叫我 “RMS”。” 他的事迹和他的软件以及他的思想,虽然以前听说过他,但是对他的思想不是很了 解。最近通过网络和一些资料对他的事迹有更多地了解。对他的思想和个人情操致上我 的敬意。 他的主页:http://www.stallman.org/ 。 徐海兵 2006 – 05 -29

2009-09-05

Intel CPU指令速查手册

intel cpu 指令速查手册, 你会用到的~

2011-11-15

rfc1035 中文翻译版本

rfc1035 中文翻译版本

2024-05-06

rfc1034中文,翻译文档

rfc1034中文,翻译文档

2024-05-06

Hardware Assisted Virtualization Intel Virtualization Technology

intel 虚拟化文档 1

2014-08-13

Palnitkar_verilog HDL数字设计与综合(第二版)课后习题答案

Palnitkar_verilog HDL数字设计与综合

2022-09-16

imp2.tar.gz

linux内核态与用户态通信方式

2014-01-06

算法:C语言实现1-4部分

算法c语言实现,大家都知道,堪比算法导论的书。

2011-12-05

算法:C语言实现

算法的经典巨著~ 堪比算法导论,值得一看的经典之作

2011-12-05

算法导论教师手册 算法导论习题答案

算法导论教师手册 算法导论是很经典的算法书,这个不多介绍了 算法导论课后习题答案

2010-03-12

Windows程序设计(C语言)

本书介绍了在Microsoft Windows 98、Microsoft Windows NT 4.0和Windows NT 5.0下程序写作的方法。这些程序用C语言编写并使用原始的Windows Application Programming Interface(API)。如在本章稍后所讨论的,这不是写作Windows程序的唯一方法。然而,无论最终您使用什么方式写作程序,了解Windows API都是非常重要的。

2009-07-15

计算机组成原理 pdf

计算机体系结构、计算机组成原理和微型计算机技术是计算机科学与技术的核心课程。长期以来,大家普遍感觉到这3们课程的教材陈旧,彼此交叉重复过多,不能适应我国培养面向21世纪的人才需要,迫切希望能对他们统一规划,全盘考虑,各有侧重,避免简单的重复。因此,编写的此书

2010-04-28

nasm教程 nasm chinese book

这本书的目的是为了让读者更好地理解计算机在相比于编程语言如Pascal的更底层如何工作。通过更深刻地了解计算机如何工作,读者通常可以更有能力用高级语言如C和C++来开发软件。学习用汇编语言来编程是达到这个目的的一个极好的方法。其它的PC汇编程序的书仍然在讲授着如何在1981年使用在初始的PC机上的8086处理器上进行编程!那 时的8086处理器只支持实模式。在这种模式下,任何程序都可以寻址任意内存或访问计算机里的任意设备。这种模式不适合于安全,多任务操作系统。这本书改为叙述在80386和后来的处理器如何在保护模式(也就是Windows和Linux运行的模式)下进行编程。这种模式支持现在操作系统所期望的特征,比如:虚拟内存和内存保护。使用保护模式有以下几个原因: 1. 在保护模式下编程比在其它书使用的8086实模式下要容易。 2. 所有的现代的PC操作系统都运行在保护模式下。 3. 可以获得运行在此模式下的免费软件。 关于保护模式下的PC汇编编程的书籍的缺乏是作者书写这本书的主要原因。 就像上面所提到的,这本书使用了免费/开源的软件:也就是,NASM汇编器和DJGPP C/C++编译器。它们都可以在因特网上下载到。本书同样讨论如何在Linux操作系统下和在Windows下的Borland和Microsoft的C/C++编译器中如何使用NASM汇编代码。所有这些平台上的例子都可以在我的网页上找到:http://www.drpaulcarter.com/pcasm. 如何你想汇编和运行这本教程上的例子,你必须下载这些样例代码。 注意这本书并不打算涵盖汇编编程的各个方面。作者尽可能地涉及了所有程序员都应该熟悉的最重要的方面。

2010-04-28

深入分析Linux内核源码 陈莉君著

1.1 GNU与Linux的成长 1.2 Linux的开发模式和运作机制 1.3走进Linux内核 1.3.1 Linux内核的特征 1.3.2 Linux内核版本的变化 1.4 分析Linux内核的意义 1.4.1 开发适合自己的操作系统 1.4.2 开发高水平软件 1.4.3 有助于计算机科学的教学和科研 1.5 Linux内核结构 1.5.1 Linux内核在整个操系统中的位置 1.5.2 Linux内核的作用 1.5.3 Linux内核的抽象结构 1.6 Linux内核源代码 1.6.1 多版本的内核源代码 1.6.2 Linux内核源代码的结构 1.6.3 从何处开始阅读源代码 1.7 Linux内核源代码分析工具 1.7.1 Linux超文本交叉代码检索工具 1.7.2 Windows平台下的源代码阅读工具Source Insight 第二章 Linux运行的硬件基础 2.1 i386的寄存器 2.1.1通用寄存器 2.1.2段寄存器 2.1.3状态和控制寄存器 2.1.4 系统地址寄存器 2.1.5 调试寄存器和测试寄存器 2.2 内存地址 2.3 段机制和描述符 2.3.1 段机制 2.3.2 描述符的概念 2.3.3系统段描述符 2.3.4 描述符表 2.3.5 选择符与描述符表寄存器 2.3.6 描述符投影寄存器 2.3.7 Linux中的段 2.4 分页机制 2.4.1 分页机构 2.4.2页面高速缓存 2.5 Linux中的分页机制 2.5.1 与页相关的数据结构及宏的定义 2.5.2 对页目录及页表的处理 2.6 Linux中的汇编语言 2.6.1 AT&T与Intel汇编语言的比较 2.6.2 AT&T汇编语言的相关知识 2.6.3 Gcc嵌入式汇编 2.6.4 Intel386汇编指令摘要 第三章中断机制 3.1 中断基本知识 3.1.1 中断向量 3.1.2 外设可屏蔽中断 3.1.3异常及非屏蔽中断 3.1.4中断描述符表 3.1.5 相关汇编指令 3.2中断描述符表的初始化 3.2. 1 外部中断向量的设置 3.2.2中断描述符表IDT的预初始化 3.2.3 中断向量表的最终初始化 3.3异常处理 3.3.1 在内核栈中保存寄存器的值 3.3.2 中断请求队列的初始化 3.3.3中断请求队列的数据结构 3.4 中断处理 3.4.1中断和异常处理的硬件处理 3.4.2 Linux对异常和中断的处理 3.4.3 与堆栈有关的常量、数据结构及宏 3.4.4 中断处理程序的执行 3.4.5 从中断返回 3.5中断的后半部分处理机制 3.5.1 为什么把中断分为两部分来处理 3.5.2 实现机制 3.5.3数据结构的定义 3.5.4 软中断、bh及tasklet的初始化 3.5.5后半部分的执行 3.5.6 把bh移植到tasklet 第四章 进程描述 4.1 进程和程序(Process and Program) 4.2 Linux中的进程概述 4.3 task_struct结构描述 4.4 task_struct结构在内存中的存放 4.4.1 进程内核栈 4.4.2 当前进程(current宏) 4.5 进程组织的方式 4.5.1哈希表 4.5.2双向循环链表 4.5.3 运行队列 4.5.4 等待队列 4.6 内核线程 4.7 进程的权能 4.8 内核同步 4.8.1信号量 4.8.2原子操作 4.8.3 自旋锁、读写自旋锁和大读者自旋锁 4.9 本章小节 第五章进程调度 5.1 Linux时间系统 5.1.1 时钟硬件 5.1.2 时钟运作机制 5.1.3 Linux时间基准 5.1.4 Linux的时间系统 5.2 时钟中断 5.2.1 时钟中断的产生 5.2.2.Linux实现时钟中断的全过程 5.3 Linux的调度程序-Schedule( ) 5.3.1 基本原理 5.3.2 Linux进程调度时机 5.3.3 进程调度的依据 5.3.4 进程可运行程度的衡量 5.3.5 进程调度的实现 5.4 进程切换 5.4.1 硬件支持 5.4.2 进程切换 第六章 Linux内存管理 6.1 Linux的内存管理概述 6.1.1 Linux虚拟内存的实现结构 6.1.2 内核空间和用户空间 6.1.3 虚拟内存实现机制间的关系 6.2 Linux内存管理的初始化 6.2.1 启用分页机制 6.2.2 物理内存的探测 6.2.3 物理内存的描述 6.2.4 页面管理机制的初步建立 6.2.5页表的建立 6.2.6内存管理区 6.3 内存的分配和回收 6.3.1 伙伴算法 6.3.2 物理页面的分配和释放 6.3.3 Slab分配机制 6.4 地址映射机制 6.4.1 描述虚拟空间的数据结构 6.4.2 进程的虚拟空间 6.4.3 内存映射 6.5 请页机制 6.5.1 页故障的产生 6.5.2 页错误的定位 6.5.3 进程地址空间中的缺页异常处理 6.5.4 请求调页 6.5.5 写时复制 6.6 交换机制 6.6.1 交换的基本原理 6.6.2 页面交换守护进程kswapd 6.6.3 交换空间的数据结构 6.6.4 交换空间的应用 6.7 缓存和刷新机制 6.7.1 Linux使用的缓存 6.7.2 缓冲区高速缓存 6.7.3 翻译后援存储器(TLB) 6.7.4 刷新机制 6.8 进程的创建和执行 6.8.1 进程的创建 6.8.2 程序执行 6.8.3 执行函数 第七章 进程间通信 7.1 管道 7.1.1 Linux管道的实现机制 7.1.2 管道的应用 7.1.3 命名管道(FIFO) 7.2 信号(signal) 7.2.1 信号种类 7.2.2 信号掩码 7.2.3 系统调用 7.2.4 典型系统调用的实现 7.2.5 进程与信号的关系 7.2.6 信号举例 7.3 System V 的IPC机制 7.3.1 信号量 7.3.2 消息队列 7.3.3 共享内存 第八章 虚拟文件系统 8.1 概述 8.2 VFS中的数据结构 8.2.1 超级块 8.2.2 VFS的索引节点 8.2.3 目录项对象 8.2.4 与进程相关的文件结构 8.2.5 主要数据结构间的关系 8.2.6 有关操作的数据结构 8.3 高速缓存 8.3.1 块高速缓存 8.3.2 索引节点高速缓存 8.3.3 目录高速缓存 8.4 文件系统的注册、安装与拆卸 8.4.1 文件系统的注册 8.4.2 文件系统的安装 8.4.3 文件系统的卸载 8.5 限额机制 8.6 具体文件系统举例 8.6.1 管道文件系统pipefs 8.6.2 磁盘文件系统BFS 8.7 文件系统的系统调用 8.7.1 open 系统调用 8.7.2 read 系统调用 8.7.3 fcntl 系统调用 8 .8 Linux2.4文件系统的移植问题 第九章 Ext2文件系统 9.1 基本概念 9.2 Ext2的磁盘布局和数据结构 9.2.1 Ext2的磁盘布局 9.2.2 Ext2的超级块 9.2.3 Ext2的索引节点 9.2.4 组描述符 9.2.5 位图 9.2.6 索引节点表及实例分析 9.2.7 Ext2的目录项及文件的定位 9.3 文件的访问权限和安全 9.4 链接文件 9.5 分配策略 9.5.1 数据块寻址 9.5.2 文件的洞 9.5.3 分配一个数据块 第十章 模块机制 10.1 概述 10.1.1 什么是模块 10.1.2 为什么要使用模块? 10.2 实现机制 10.2.1 数据结构 10.2.2 实现机制的分析 10.3 模块的装入和卸载 10.3.1 实现机制 10.3.2 如何插入和卸载模块 10.4 内核版本 10.4.1 内核版本与模块版本的兼容性 10.4.2 从版本2.0到2.2内核API的变化 10.4.3 把内核2.2移植到内核2.4 10.5 编写内核模块 10.5.1 简单内核模块的编写 10.5.2 内核模块的Makefiles文件 10.5.3 内核模块的多个文件 第十一章 设备驱动程序 11.1 概述 11.1.1 I/O软件 11.1.2 设备驱动程序 11.2 设备驱动基础 11.2.1 I/O端口 11.2.2 I/O接口及设备控制器 11.2.3 设备文件 11.2.4 VFS对设备文件的处理 11.2.5 中断处理 11.2.6 驱动DMA工作 11.2.7 I/O 空间的映射 11.2.8 设备驱动程序框架 11.3 块设备驱动程序 11.3.1 块设备驱动程序的注册 11.3.2 块设备基于缓冲区的数据交换 11.3.3 块设备驱动程序的几个函数 11.3.4 RAM 盘驱动程序的实现 11.3.5 硬盘驱动程序的实现 11.4 字符设备驱动程序 11.4.1 简单字符设备驱动程序 11.4.2 字符设备驱动程序的注册 11.4.3 一个字符设备驱动程序的实例 11.4.4 驱动程序的编译与装载 第十二章 网络 12.1 概述 12.2 网络协议 12.2.1 网络参考模型 12.2.2 TCP/IP 协议工作原理及数据流 12.2.3 Internet 协议 12.2.4 TCP协议 12.3 套接字(socket) 12.3.1 套接字在网络中的地位和作用 12.3.2 套接字接口的种类 12.3.3 套接字的工作原理 12.3.4 socket 的通信过程 12.3.5 socket为用户提供的系统调用 12.4 套接字缓冲区(sk_buff) 12.4.1 套接字缓冲区的特点 12.4.2 套接字缓冲区操作基本原理 12.4.3 sk_buff数据结构的核心内容 12.4.4 套接字缓冲区提供的函数 12.4.5 套接字缓冲区的上层支持例程 12.5 网络设备接口 12.5.1 基本结构 12.5.2 命名规则 12.5.3 设备注册 12.5.4 网络设备数据结构 12.5.5 支持函数 第十三章 启动系统 13.1 初始化流程 13.1.1 系统加电或复位 13.1.2 BIOS启动 13.1.3 Boot Loader 13.1.4 操作系统的初始化 13.2 初始化的任务 13.2.1 处理器对初始化的影响 13.2.2 其他硬件设备对处理器的影响 13.3 Linux 的Boot Loarder 13.3.1 软盘的结构 13.3.2 硬盘的结构 13.3.3 Boot Loader 13.3.4 LILO 13.3.5 LILO的运行分析 13.4 进入操作系统 13.4.1 Setup.S 13.4.2 Head.S 13.5 main.c中的初始化 13.6 建立init进程 13.6.1 init进程的建立 13.6.2 启动所需的Shell脚本文件 附录: 1 Linux 2.4内核API 2.1 驱动程序的基本函数 2.2 双向循环链表的操作 2.3 基本C库函数 2.4 Linux内存管理中Slab缓冲区 2.5 Linux中的VFS 2.6 Linux的连网 2.7 网络设备支持 2.8 模块支持 2.9 硬件接口 2.10 块设备 2.11 USB 设备 2 参考文献

2009-09-05

Linux 2.4.0内核源代码

Linux内核源代码情景分析 配到的Linux内核代码

2011-11-06

imp1.tar.gz代码

linux内核态与用户态通信方式 的代码

2014-01-06

程序员的SQL经典-第一本专门为程序员编写的数据库图书

第一本专门为程序员编写的数据库图书 《程序员的SQL金典》 1将子查询、表连接、数据库语法差异等用通俗易懂、诙谐 幽默的语言讲解出来 2配合大量真实案例,学了就能用,在短时间内成为数据库 开发高手 3高度提取不同数据库的共同点,仔细分析不同点,并给出 解决方案,同时学会 MSSQLServer、MYSQL、Oracle、DB2 4国内第一本讲解开窗函数实际应用的图书

2009-07-15

File System Forensic Analysis

文件系统讲解,绝对经典书籍 NO。1;想要了解文件系统的就仔细读读吧~收获颇多

2011-11-11

空空如也

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

TA关注的人

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