自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (15)
  • 收藏
  • 关注

原创 用一个宏实现求两个数中的最大数

  在面试或者笔试中,经常会碰到“用一个宏实现求两个数中的最大数”这个题目,大家看到这个问题,觉得很容易实现,认为这有什么难度呢,随手就是一个三目运算符表达式;  如果能写出上边这个宏,你这道题的考试就能交差了,然后觉得对自己来说就是随手一写的事儿,那可就大错特错了。因为以上写法的宏定义,虽然也能拿到分数,但是在面试者或者笔试阅卷者看来,你也不过如此,你也只是茫茫人海中平凡的一员。那么对于这道平淡无奇的题目来说,如何给考官一个眼前一亮?...

2022-06-03 17:07:40 640

原创 Ubuntu+Hexo+Github搭建个人博客

Ubuntu+Hexo+Github搭建个人博客目录文章目录目录1. 简介环境2. Git安装及配置2.1 安装Git2.2 创建Git仓库2.3 配置git仓库2.4 添加公钥3. Node安装4. Hexo安装及配置4.1 安装hexo4.2 初始化hexo文件夹4.3 Hexo操作4.4 将git库和hexo链接起来5. 更换主题6. 博客迁移6.1 常规迁移6.2 特殊情况1. 简介...

2020-04-06 11:14:23 499 1

原创 Hexo+Github搭建个人博客

Hexo+Github搭建个人博客目录文章目录目录1. 简介环境简介2. Github仓库创建和配置2.1 创建Git仓库2.2 配置git仓库2.3 把本地公钥添加到github中3. Node安装4. Hexo安装及配置4.1 安装hexo4.2 初始化hexo文件夹4.3 Hexo操作4.4 将git库和hexo链接起来5. 创建博客文章Hexo常用命令6. 更换主题7. 参考文章1....

2020-04-06 11:12:44 613

原创 Linux设备驱动程序学习----3.模块的编译和装载

模块的编译和装载更多内容请参考Linux设备驱动程序学习----目录1. 设置测试系统第1步,要先从kernel.org的镜像网站上获取一个主线内核,并安装到自己的系统中,因为学习驱动程序的编写,最好使用标准内核。第2步,必须在自己的系统中配置并构造好内核树,这样可以得到一个更加健壮的模块装载器,可以使内核的模块要和内核源码树中的目标文件连接。同时也需要这些目标文件存在于内核目录树中。这样...

2019-08-25 22:21:07 263

原创 Linux设备驱动程序学习----2.内核模块与应用程序的对比

内核模块与应用程序的对比更多内容请参考Linux设备驱动程序学习----目录1. 内核模块与应用程序的对比内核模块和应用程序之间的不同之处:大多数中小规模的应用程序是从头到尾执行单个任务,而模块却只是预先注册自己以便服务于将来的某个请求,然后初始化函数立即结束。即模块初始化函数(hello_init)的任务就是为以后调用模块函数预先做准备。模块的退出函数(hello_exit)将在模块...

2019-07-28 11:08:57 352

原创 Linux设备驱动程序学习----1.设备驱动程序简介

设备驱动程序简介更多内容请参考Linux设备驱动程序学习----目录1. 简介  Linux系统的优点是,系统内部实现细节对所有人都是公开的。Linux内核由大量复杂的代码组成,设备驱动程序可以作为进入Linux内核世界大门的切入口。  设备驱动程序在Linux内核中,是一个个独立的黑盒子,在调用内部接口时某个特定硬件做出响应,这些接口隐藏了设备的工作细节。用户的操作通过独立于特定驱动程序...

2019-07-27 10:28:16 172

原创 Linux设备驱动程序学习----目录

目录1.设备驱动程序简介2.内核模块和应用程序的对比3.模块编译和装载4.模块的内核符号表##### 5.模块初始化和关闭##### Linux设备驱动程序学习----6.模块参数##### Linux设备驱动程序学习----7.用户空间编写驱动程序Linux设备驱动程序学习----模块构造快速参考Linux设备驱动程序学习----字符设备驱动程序...

2019-07-20 21:05:42 209

原创 阶段性自我反思及学习动员----2019.07.07

自我反思及学习动员Time is flying! 转眼间,工作已经这么多年了,按理说,在职场经过这么多年时间的洗礼,我也应该被洗成职场老手了;然而事实上,老的只是年龄,技术方面一点也不老,甚至还比不过一个刚入职的职场新人。深刻反思有上述中的不安全感,究其原因,有如下反思:1、缺乏反思;自己在工作、学习中碰到过不少问题,在解决问题之后没有花费时间和精力去做好总结和记录,致使好多碰到过的问题...

2019-07-20 21:02:42 230

原创 Qemu搭建ARM vexpress开发环境(三)----NFS网络根文件系统

Qemu搭建ARM vexpress开发环境(三)----NFS网络根文件系统标签(空格分隔): Qemu ARM Linux经过上一篇《Qemu搭建ARM vexpress开发环境(二)----通过u-boot启动Linux内核》,已经实现了通过u-boot加载Kernel启动开发板,并且挂载根文件系统,本文讲述通过NFS网络挂载根文件系统。通过NFS网络根文件系统,可以实现开发板在通过...

2019-07-01 21:33:31 387

原创 Qemu搭建ARM vexpress开发环境(二)----u-boot启动kernel

Qemu搭建ARM vexpress开发环境(二)----u-boot启动kernel标签(空格分隔): Qemu ARM Linux在上文《Qemu搭建ARM vexpress开发环境(一)》中已经简单讲述了通过Qemu模拟直接启动Linux内核,并挂载SD卡根文件系统的方法,这种方法是直接启动内核,与实际应用中ARM板的启动方式:u-boot、kernel、rootfs有些不同。现在就来...

2019-07-01 21:30:49 573

原创 Qemu搭建ARM vexpress开发环境(一)

Qemu搭建ARM vexpress开发环境(一)标签: Qemu ARM Linux嵌入式开发离不开硬件设备比如:开发板、外设等,但是如果只是想学习研究Linux内核,想学习Linux内核的架构,工作模式,需要修改一些代码,重新编译并烧写到开发板中进行验证,这样未必有些复杂。然而Qemu的使用可以避免频繁在开发板上烧写版本,如果进行与外设无关,仅仅是内核方面的调试,Qemu模拟ARM开发环...

2018-10-07 20:35:41 1829

原创 Linux内核设计与实现----进程管理

先占下位置,以后再补充详细内容

2018-01-13 18:48:09 190

原创 Linux内核设计与实现----从内核触发

先占个位置,以后再补充内容

2018-01-13 18:44:12 177

原创 Linux内核设计与实现----Linux内核简介

先占个位置,以后再补充欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B

2018-01-13 18:34:21 225

原创 安装交叉编译工具arm-linux-gcc命令未找到的问题

安装交叉编译工具arm-linux-gcc命令未找到的问题

2017-12-12 11:51:02 33368 7

原创 linux-3.5内核编译失败的问题

linux-3.5内核编译失败的问题

2017-12-12 11:47:34 1489

原创 xUbuntu系统ssh远程登录时突然断开问题

xUbuntu系统ssh远程登录时突然断开问题

2017-12-12 11:43:43 325

原创 Debug格式化输出----基于C语言

Debug格式化输出—-基于C语言

2017-12-12 11:31:36 491

原创 ctags-vim代码间快速跳转

ctags–vim中代码间快速跳转1、说明在Linux环境下使用vim进行驱动程序编写和维护的时候,会经常需要调用Linux内核的函数或宏定义,在驱动程序和kernel代码之间频繁跳转是件很繁琐的事,使用ctags包可以轻松实现函数或宏定义的跳转。2、配置方法假设:系统中已经安装ctags。 举例: 以在Linux内核代码linux-3.5创建tags为例,建议先将linux-3.5内核代码

2017-12-05 19:35:35 495

原创 RaspberryPi2B使用bcm2835c库控制GPIO

RaspberryPi2B使用bcm2835c库控制GPIO网上有很多RaspberryPi控制GPIO的方法,有Python、WiringPi、bcm2835 C library使用bcm2835 C库控制GPIO时,发现不管怎么设置,GPIO都没有反应,没有输出控制的值。

2017-12-05 19:16:32 1042

原创 操作系统学习笔记----进程/线程模型

操作系统学习笔记—-进程/线程模型

2017-11-28 18:36:46 421

原创 Hi3518EV200平台ADC多通道采样

Hi3518EV200平台ADC多通道采样流程Hi3518EV200 ADC本文针对Hi3518EV200平台处理器,通过ADC单次采样方式,实现对多通道(1~4通道)ADC进行采样控制。本文仅仅是对Hi3518EV200芯片ADC的用法的介绍,不涉及ADC具体的工作原理、转换原理等细节内容。废话不多说,直入正题!

2017-11-22 18:59:00 4184 1

原创 Hi3518EV200平台直接操作GPIO输入或输出高低电平

在系统启动完成后,不加载GPIO相关驱动,不启动应用程序时,可以通过使用himm工具直接操作寄存器,控制GPIO设置为输入,或者设置为输出,可以设置输出高、低电平

2017-05-18 19:21:12 5609 1

原创 Tiny4412 ARM开发环境搭建—NFS网络根文件系统制作

Tiny4412从SD卡启动的简单网络文件系统制作

2017-01-21 14:13:01 1035

原创 Tiny4412 ARM开发环境搭建—Minicom串口工具安装及配置

Tiny4412 ARM开发环境搭建Tiny4412 ARM开发环境搭建简介在64位系统上安装32位的库安装工具1 安装及配置串口工具以Minicom为例11 Windows系统连接串口12 Linux系统连接串口13 虚拟机Linux系统连接串口1. 简介2. 在64位系统上安装32位的库ARM开发板是如果使用的系统是64位的,

2017-01-14 20:44:04 2713

原创 【读书笔记】深度探索 HAL与驱动开发

深度探索 HAL与驱动开发1.1 Android系统架构 Android的系统架构分为4层。 第1层:Linux内核 主要包括Linux的驱动程序以及内存管理、进程管理、电源管理等程序。Android使用Linux2.6作为其内核,不同Android版本的驱动可能并不通用。 主要讲开发第1层的驱动程序,以及再不同Linu

2016-10-08 12:20:48 2155

原创 Ubuntu环境下busybox编译报错处理

Ubuntu环境下busybox编译报错处理:In file included from scripts/kconfig/lxdialog/checklist.c:24:0:scripts/kconfig/lxdialog/dialog.h:31:20: fatal error: curses.h: 没有那个文件或目录compilation terminated.

2016-09-23 08:57:26 792

原创 ctags--vim中代码间跳转

在Linux环境下,ctags在vim实现代码间的快速跳转

2016-09-05 15:14:26 5736

原创 Tiny4412 ARM开发环境搭建--交叉编译环境搭建

Tiny4412交叉环境搭建交叉编译环境:在PC机(x86平台)上开发程序,在ARM板上运行,提高开发、编译速度。环境:Tiny4412SDK1506开发板需要软件:arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz  检测系统是否已经安装有交叉编译环境:# arm-linux-gcc -vbash: arm-linux-gcc:

2016-07-09 10:38:10 2226

深入浅出数字信号处理[江志红编著][北京航空航天大学出版社][2012.01]

《学以致用•深入浅出数字信号处理》从直观、概念化、非数学的角度,充分利用向量这个简单而又直观的工具,辅以大量的实例、图片,深入浅出地探讨了数字信号处理的基本概念及其应用,为读者理解数字信号处理提供了一种全新的思路和方法。全书紧紧围绕频谱分析和数字滤波这两个中心展开论述。全书共分9章。第1章概述了数字信号处理的发展和应用。第2章和第3章主要介绍了信号和线性时不变系统的一些基本概念。第4章介绍了信号与系统的相互作用,包括卷积与相关。第5章和第6章分别介绍了频谱分析的最主要工具DFT及其快速算法FFT。第7-9章主要介绍了数字滤波器的原理、实现与应用等问题。 《学以致用•深入浅出数字信号处理》的主要读者对象是从事数字信号处理相关工作的工程帅,也非常适合作为高寺院校电子、通信、计算机、自动控制等专业“数字信号处理”课程的教材及参考书,《学以致用•深入浅出数字信号处理》还可作为想利用数字信号处理这个强大工具的科研人员的参考用书。

2018-03-10

Linux设备驱动开发详解:基于最新的Linux 4.0内核

《Linux设备驱动开发详解:基于最新的Linux 4.0内核》 对于嵌入式工程师来说,进入更高阶段后,学习Linux设备驱动开发无疑就是职业生涯的一次“重生”。这是因为Linux设备驱动开发不仅仅涉及操作系统的转换,开发方式的转换,更重要的是思维上的转变。对于Linux这样一个复杂系统,如何从复杂的代码中抓住设备驱动开发的关键是任何一个Linux设备驱动开发者入门时需要面对的挑战。除了知识、工具之外,往往还需要思路上的指导。本书不但帮助Linux设备驱动开发的初学者厘清必要的概念,还从具体的实例、设备驱动开发的指导原则循序渐进地引导读者渐入学习佳境。为了让读者能够达到Linux设备驱动开发的至臻境界,作者更是从软件工程的角度抽象出设备驱动开发的一般思想。毫无疑问,本书将成为读者学习Linux设备驱动开发过程中的一座“灯塔”。

2017-03-29

Linux内核设计的艺术(高清含目录)

《Linux内核设计的艺术》 关于Linux内核的书已经不计其数,但这本书却是独树一帜的,它的内容代表着Linux内核研究成果的世界顶尖级水平,它在世界范围内首次提出并阐述了操作系统设计的核心指导思想——主奴机制,这是所有操作系统研究者的一笔宝贵财富。本书可能也代表着同类图书的顶尖水平,是一本真正能引导我们较为容易地、极为透彻地理解Linux内核的经典之作,也可能是当前唯一能从本质上指引我们去设计和开发拥有自主知识产权的操作系统的著作。它的出版也许会成为Linux内核研究领域的一个里程碑事件。 本书的最大特点是它的写作方式和内容组织方式,与同类书完全不同。它在深刻地分析了传统讲解方法的利弊之后,破旧立新,从认知学的角度开创了一种全新的方式。以操作系统的真实运行过程为主线,结合真实的内核源代码、349幅精确的内核运行时序图和具有点睛之妙的文字说明,对操作系统从开机加电到系统完全准备就绪的整个过程进行了系统而完整地分析,深刻地揭示了其间每一个动作的设计意图和实现原理,完美地再现了操作系统设计者的设计思路。阅读本书就如同跟随着操作系统设计者一起去思考,我们会在阅读的过程中发现Linux内核设计的精妙,会发现原来处处都“暗藏玄机”,哪怕是一行很短的代码。 本书在所有细节上都力求完美。为了保证知识的准确性,操作系统运行过程中的每个动作都经过了严格的考证;为了让我们真正理解Linux内核的原理,它突破传统,以Linux的真实运行过程为主线进行讲解;为了做到真正易于理解,创新性地使用了图解的方式,精心绘制了349幅分辨率600dpi的时序图,图中表现的运行时结构和状态与操作系统实际运行时的真实状态完全吻合;为了提高阅读体验,本书采用了双色印刷,以便于我们更清楚地观察每一幅图中的细节。

2017-02-10

Evernote 100個做筆記的好方法(繁体版)

活用100種 Evernote 筆記方法,學習提高生產力的觀念與態度,管好你的工作與生活。 本書提供完整的方案、全新的視野、高科技的工具,和作者親身經歷的故事,教你用數位雲端筆記,滿足「三件人生大事」的整理需求: 一、「時間管理」; 成為工作效率高手,不再丟三落四、複雜工作也能輕鬆掌控。 善用Evernote數位管理,在你需要的時刻給你需要的筆記,聰明自動化讓筆記真正在工作行動中發揮效用。 二、「生活整理」: 運用筆記練習自我成長與習慣養成,瑣碎雜物也能一一到位。 活用Evernote打點雜物,用無紙化方法讓整理更輕鬆,用全面性的數位化lifelog讓你不用整理就達到整理的效果! 三、「夢想打理」: 規劃旅遊與收藏夢想的目標計畫手帳。 累積你的Evernote筆記,串連你的過去經驗、現在行動與未來計畫,而且再多的筆記也只要一台輕薄手機就能隨身攜帶一生記憶。 你也發現Evernote數位筆記是更好的筆記解決方案了嗎?那麼這一次讓我們跟著電腦玩物站長的真實筆記經驗,學習用數位筆記重整人生的各種方法吧! 由 Everntoe 台灣大使,電腦玩物站長:esor huang(異塵行者)撰寫,和第一本《Evernote超效率數位筆記術》完全不同的全新作品,如果說第一本書帶你進入Evernote大門,學會怎麼使用Evernote的功能。那麼這一本《Evernote 100個做筆記的好方法:數位化重整你的工作與人生》則要告訴你如何活用數位筆記來改造人生!

2017-01-05

TCP-IP详解(卷一、二、三)

《TCP/IP详解卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者W.Richard Stevens用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输的不同分组。对tcpdump输出的研究可以帮助理解不同协议如何工作。 《TCP/IP详解卷1:协议》适合作为计算机专业学生学习网络的教材和教师参考书。也适用于研究网络的技术人员。 《TCP/IP详解·卷2:实现》完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。《TCP/IP详解·卷2:实现》不仅说明了插口API和协议族的关系以及主机实现与路由器实现的差别。还介绍了4.4BSD-Lite版的新的特点。《TCP/IP详解·卷2:实现》适用于希望理解TCP/IP协议如何实现的人,包括编写网络应用程序的程序员以及利用TCP/IP维护计算机网络的系统管理员。 《CP.IP详解(卷3):CP事务协议.HP.P和UIX域协议》是“TCP/IP详解系列”的延续。主要内容包括:TCP事务协议,即T/TCP,这是对TCP的扩展,使客户-服务器事务更快、更高效和更可靠;TCP/IP应用,主要是HTTP和NNTP;UNIX域协议,这些协议提供了进程之间通信的一种手段。当客户与服务器进程在同一台主机上时,UNIX域协议通常要比TCP/IP快一倍。《TCP.IP详解(卷3):CP事务协议.HP.P和UIX域协议》同样采用了大量的实例和实现细节,并参考引用了卷2中的大量源程序。适用于希望理解TCP/IP如何工作的人,包括编写网络应用程序的程序员以及利用TCP/IP维护计算机网络的系统管理员。

2017-01-05

深入理解C指针(带书签完整版)

深入理解C指针和内存管理,提升编程效率!这是一本实战型图书,通过它,读者可以掌握指针动态操控内存的机制、对数据结构的增强支持,以及访问硬件等技术。本书详细阐述了如何在数组、字符串、结构体和函数中使用指针,同时演示了相应的内存模型及其对指针使用的影响。 指针为C语言带来了强大的功能和灵活性,却也是C语言中最难啃的一块“骨头”。本书旨在帮读者透彻理解指针,解决这个老大难问题。不论是初学者还是经验丰富的C/C++程序员和开发人员,都能从本书受益。 本书主要内容包括: - 指针的基本概念及各种指针类型的声明; - 学习动态内存分配、释放以及其他内存管理技术; - 向函数传递数据和从函数返回数据; - 理解数组和指针的关系; - 如何通过指针使用字符串; - 检查缓冲区溢出等指针安全问题; - 理解不透明指针、有界指针、restrict关键字。

2017-01-05

自己动手写操作系统(完全版)

本书在详细分析操作系统原理的基础上,用丰富的实例代码,一步一步地指导读者用C语言和汇编语言编写出一个具备操作系统基本功能的操作系统框架。本书不同于其他的理论型书籍,而是提供给读者一个动手实践的路线图。书中讲解了大量在开发操作系统中需注意的细节问题,这些细节不仅能使读者更深刻地认识操作系统的核心原理,而且使整个开发过程少走弯路。全书共分7章。

2017-01-05

你的第一本思维导图操作书

一张图可以让你的考试得90分以上;可以考取艰难的执照;可以重建一家公司;重建一个城市……为什么?真的只是画一张图而已?还是当中蕴藏着许多不为己知的大脑思维密码?, 目前有关思维导图的书籍越来越多,从东尼·博赞(Tony Buzan)的思维导图理论及应用系列,到海内外各种思维导图应用的介绍与分享,思维导图“成品”的案例很多,但针对学习思考过程,透过图文搭配,拆解成一步一步的操作说明,这却是第一本,也是最详细的一本。, 本套书将透过思维导图构成的分解步骤,让你一窥思维导图法基础思维建构的奥秘,并搭配练习本,让你实实在在的一做就学会东尼·博赞的思维导图法!, 从1970年代开始,包括英国的东尼·博赞,美国的前总统高尔以及比尔·盖茨等等,估计已经有超过6亿个思维导图人散布在全世界的各行各业里面,而且这个数字,因为你我的加入,正在增加中……, 目前新加坡的每位学生都会使用思维导图法;韩国在2008年将思维导图法列为基础教育必学的思考法;菲律宾甚至有一所思维导图专门学校,以思维导图法教授各个学科;中国香港以升学补习班的形式经营思维导图法课程;而目前在日本被誉为大前研一接班人的神田昌典,更是日本博赞中心的负责人。, 很多国际性组织、全球顶尖大学及政府,都将思维导图用在决策、开会和规划未来等用途上。其中一个著名的例子是美国康?爱德森(Con Edison)公司,在9·11悲剧后,这家公司广泛的运用思维导图做为规划、组织的工具,成功完成重建曼哈顿的任务。

2017-01-05

构建嵌入式Linux系统

《构建嵌入式LINUX系统》作者作者Karim Yaghmour是一位著名的设计者和演讲者,他负责Linux Trace Toolkit。《构建嵌入式LINUX系统》讨论Linux作为嵌入式操作系统的优缺点开始,其中包括了许多可证问题。然后讨论了构建嵌入式Linux系统的基础知识,随后的讨论涵盖了嵌入式Linux系统中广泛使用的40余种开原和自由软件包的配置、设置以及使用。uClibc、BusyBox、U-Boot、OpenSSH、thttpd、tftp、strace、gdb都在讨论范围之中。

2017-01-05

Exynos 4412 SCP_Users Manual_Ver.0.10.00_Preliminary0

Exynos 4412 SCP_Users Manual_Ver.0.10.00_Preliminary0

2016-12-21

30天自制操作系统(川合秀实周自恒等扫描版)

30天自制操作系统 自己编写一个操作系统,是许多程序员的梦想。也许有人曾经挑战过,但因为太难而放弃了。其实你错了,你的失败并不是因为编写操作系统太难,而是因为没有人告诉你那其实是一件很简单的事。那么,你想不想再挑战一次呢? 这是一本兼具趣味性、实用性与学习性的书籍。作者从计算机的构造、汇编语言、C语言开始解说,让你在实践中掌握算法。在这本书的指导下,从零编写所有代码,30天后就可以制作出一个具有窗口系统的32位多任务操作系统。 本书以课题为主导,边做边玩,抛开晦涩难懂的语言,行文风格十分随性,还充满了各种欢乐的吐槽,适合操作系统爱好者和程序设计人员阅读。

2016-12-02

深入理解计算机系统(扫描版)

深入理解计算机系统 从程序员的视角,看计算机系统! 本书适用于那些想要写出更快、更可靠程序的程序员。通过掌握程序是如何映射到系统上,以及程序是如何执行的,读者能够更好的理解程序的行为为什么是这样的,以及效率低下是如何造成的。粗略来看,计算机系统包括处理器和存储器硬件、编译器、操作系统和网络互连环境。而通过程序员的视角,读者可以清晰地明白学习计算机系统的内部工作原理会对他们今后作为计算机科学研究者和工程师的工作有进一步的帮助。它还有助于为进一步学习计算机体系结构、操作系统、编译器和网络互连做好准备。 本书的主要论题包括:数据表示、C程序的机器级表示、处理器结构,程序优化、存储器层次结构、链接、异常控制流、虚拟存储器和存储器管理、系统级I/O、网络编程和并发编程。书中所覆盖的内容主要是这些方面是如何影响应用和系统程序员的。例如,在讲述数据表示时,本书说明了用来表示数字的表示方法是有限的,它能够近似地表示整数和实数,但是这种表示方法是有限制的,程序员必须了解。在讲述高速缓存时,本书讨论了矩阵代码中的循环变量的顺序是如何影响程序的性能的。在讨论网络互连时,本书描述了并发服务器如何能有效地处理来自多个客户端的请求。 本书基于Intel兼容(IA32)机器,在Unix或者相关的操作系统(例如,Linux)上执行C程序。虽然书中包括了一些帮助读者将Java转化成C的提示,但是还是要求读者对C或者C++有一定的了解。 您可以通过本书的Web网站www.csapp.cs.cmu.edu获得完整的资料,包括实验和作业,授课笔记和代码示例。 本书英文版久负盛名,被众多专业人士称为“最伟大的计算机教材”之一,著名的美国卡内基梅隆大学计算机科学系一直将本书作为教材使用,程序员眼中的透彻讲述计算机系统的扛鼎之作。作者Randal E. Bryant是卡耐基梅隆大学的计算机科学系主任,ACM和IEEE双院士(Fellow),其研究成果多次获得ACM和IEEE颁发的大奖。 本书共分十三章,分别介绍了信息的表示和处理、程序的机器级表示、处理器体系结构、存储器层次结构、静态和动态链接、虚拟存储器、系统级I/O、网络编程和并发编程等精彩内容。其目的是解释计算机系统的所有本质概念,并向读者展示这些概念是如何实际地影响应用程序的正确性、性能和实用性。与其他主要针对系统构造人员的系统类书籍不同,这本书是写给程序员的,是从程序员的角度来描述的。本书为软件和硬件之间搭起了一个桥梁,它给出了一种帮助读者分别从硬件和软件的角度去理解一个程序及其行为的途径,这也填补了国内计算机系统教学中的一个空白。本书的最大优点是帮助读者理解概念,让读者很清楚地在脑海中构造一个层次型的计算机系统,从最低层数据在内存中的表示(如我们一直陌生的浮点数表示),到流水线指令的构成,到虚拟存储器,到编译系统,到动态加载库,到最后的用户应用。 本书提供了大量的例子和练习及部分答案。尤其值得一提的是,对于每一个基本概念都有相应的笔头或程序试验,加深读者的理解。

2016-11-30

Linux设备驱动程序(第3版扫描版)

Linux设备驱动程序(第3版扫描版) 本书是经典著作《Linux设备驱动程序》的第三版。如果您希望在Linux操作系统上支持计算机外部设备,或者在Linux上运行新的硬件,或者只是希望一般性地了解Linux内核的编程,就一定要阅读本书。本书描述了如何针对各种设备编写驱动程序,而在过去,这些内容仅仅以口头形式交流,或者零星出现在神秘的代码注释中。 本书的作者均是Linux社区的领导者。Jonathan Corbet虽不是专职的内核代码贡献者,但他是备受关注的LWN.net新闻及信息网站的执行编辑。Alessandro Rubini是一名Linux代码贡献者,也是活跃的意大利Linux社区的灵魂人物。Greg Kroah-Hartman是目前内核中USB、PCI和驱动程序核心子系统(本书均有讲述)的维护者。 本书的这个版本已针对Linux内核的2.6.10版本彻底更新过了。内核的这个版本针对常见任务完成了合理化设计及相应的简化,如即插即用、利用sysfs文件系统和用户空间交互,以及标准总线上的多设备管理等等。 要阅读并理解本书,您不必首先成为内核黑客;只要您理解C语言并具有Unix系统调用的一些背景知识即可。您将学到如何为字符设备、块设备和网络接口编写驱动程序。为此,本书提供了完整的示例程序,您不需要特殊的硬件即可编译和运行这些示例程序。本书还在单独的章节中讲述了PCI、USB和tty(终端)子系统。对期望了解操作系统内部工作原理的读者来讲,本书也深入阐述了地址空间、异步事件以及I/O等方面的内容。

2016-11-30

Linux内核设计与实现(第三版中文高清带目录扫描版)

Linux内核设计与实现(第三版中文高清带目录) 《Linux内核设计与实现(原书第3版)》详细描述了Linux内核的设计与实现。内核代码的编写者、开发者以及程序开发人员都可以通过阅读本书受益,他们可以更好理解操作系统原理,并将其应用在自己的编码中以提高效率和生产率。 《Linux内核设计与实现(原书第3版)》详细描述了Linux内核的主要子系统和特点,包括Linux内核的设计、实现和接口。从理论到实践涵盖了Linux内核的方方面面,可以满足读者的各种兴趣和需求。 作者Robert Love是一位Linux内核核心开发人员,他分享了在开发Linux 2.6内核过程中颇具价值的知识和经验。本书的主题包括进程管理、进程调度、时间管理和定时器、系统调用接口、内存寻址、内存管理和页缓存、VFS、内核同步、移植性相关的问题以及调试技术。同时本书也涵盖了Linux 2.6内核中颇具特色的内容,包括CFS调度程序、抢占式内核、块I/O层以及I/O调度程序。 《Linux内核设计与实现(原书第3版)》新增内容包括: 增加一章专门描述内核数据结构 详细描述中断处理程序和下半部机制 扩充虚拟内存和内存分配的内容 调试Linux内核的技巧 内核同步和锁机制的深度描述 提交内核补丁以及参与Linux内核社区的建设性建议

2016-11-30

Linux Shell脚本攻略(中文版带书签扫描版)

Linux Shell脚本攻略(中文版带书签) 通过细致剖析实际应用中的110多个案例,使许多看似复杂的Linux shell脚本任务迎刃而解。《Linux Shell脚本攻略》会帮助读者利用少量命令的组合完成诸如文本处理、文件管理、备份等复杂的数据管理工作。它将告诉你如何利用shell命令快速开发常规任务,综合应用grep、find、sed和awk等常用命令,凭借短短几个命令行从Web挖掘数据的shell脚本,利用归档工具运行并自动化各种任务,诸如自动备份和存储;帮助你理解文件系统、文件类型以及文件管理;用shell创建以及维护文件或目录归档、压缩格式和加密技术;通过srlell脚本设置以太网和无线LAN;使用登录技术监控网络上的各种动态。

2016-11-30

Linux命令行与Shell脚本编程大全(第2版扫描版)

Linux命令行与shell脚本编程大全 本书是一本关于Linux 命令行与shell 脚本编程的全面教程。全书分为四部分:第一部分介绍Linuxshell 命令行;第二部分介绍shell 脚本编程基础;第三部分深入探讨shell 脚本编程的高级内容;第四部分介绍如何在现实环境中使用shell 脚本。本书不仅涵盖了详尽的动手教程和现实世界中的实用信息,还提供了与所学内容相关的参考信息和背景资料。 本书内容全面,语言简练,示例丰富,适合于Linux 系统管理员及Linux 爱好者阅读参考。

2016-11-30

空空如也

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

TA关注的人

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