自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(592)
  • 资源 (37)
  • 收藏
  • 关注

转载 MSR-Model Specific Registers (特殊模块寄存器)

一 概念            Model Specific Register (MSR) as the name implies is model specific and may change from processor model number (n) to processor model number (n+1).二 读写方法 

2017-09-20 17:23:21 1789

转载 AF_INET和PF_INET的细微不同

AF_INET和PF_INET的细微不同在写网络程序的时候,建立TCP socket:sock = socket(PF_INET, SOCK_STREAM, 0);然后在绑定本地地址或连接远程地址时需要初始化sockaddr_in结构,其中指定address family时一般设置为AF_INET,即使用IP。相关头文件中的定义:AF = Address Famil

2017-05-17 19:34:34 3933

转载 ARM CoreLink NIC-400 Network Interconnect Technical

About the CoreLink NIC-400 Network InterconnectThe CoreLink NIC-400 Network Interconnect is highly configurable and enables you to create a complete high performance, optimized AMBA® compliant n

2017-05-14 13:00:47 5510

转载 使用 Service Location Protocol 自动化客户机的管理

帮助网络客户机实现自治Service Location Protocol(服务位置协议,SLP)是一个 Internet 标准 RFC,也是一套软件框架,它允许网络应用程序发现并配置网络服务。您可以使用 SLP 来开发零配置的应用程序,并简化网络互连设备的管理。本文首先简要介绍 SLP 及其架构的内容,然后使用一个开放源码实现来展示该协议的用法。0 评论

2017-05-03 09:56:51 2901

转载 在Ubuntu上安装zsh

文以Ubuntu 12.04 LTS为例,安装目前比较流行的zsh的配置oh-my-zsh。 oh-my-zsh最初是在OS X上供人使用,使用方法见此处。在Ubuntu上安装oh-my-zsh稍有不同。安装先安装zsh和Git,同时移除之前可能的oh-my-zsh的安装。?1234sudoapt-

2017-04-04 16:17:40 996

转载 Priority Inversion - 优先级翻转

英文: Priority Inversion 中文: 优先级翻转、优先级倒置、优先级逆转 介绍: 即当一个高优先级任务通过信号量机制访问共享资源时,该信号量已被一低优先级任务占有,而这个低优先级任务在访问共享资源时可能又被其它一些中等优先级任务抢先,因此造成高优先级任务被许多具有较低优先级任务阻塞,实时性难以得到保证。什么是优先级反转简单从字面上来说,就是==低优先级的任务先于高优

2017-03-28 21:31:08 797

转载 linux下使用TCP存活(keepalive)定时器

linux下使用TCP存活(keepalive)定时器 一、什么是keepalive定时器?在一个空闲的(idle)TCP连接上,没有任何的数据流,许多TCP/IP的初学者都对此感到惊奇。也就是说,如果TCP连接两端没有任何一个进程在向对方发送数据,那么在这两个TCP模块之间没有任何的数据交换。你可能在其它的网络协议中发现有轮询(polling),但在TCP中它不存在。言外之意就是我们

2017-03-03 16:24:38 8699

转载 结构体最后的长度为0或者1的数组

在Linux系统里,/usr/include/linux/if_pppox.h里面有这样一个结构:struct pppoe_tag {    __u16 tag_type;    __u16 tag_len;    char tag_data[0];} __attribute ((packed)); 最后一个成员为可变长的数组,对于TLV(Type-Length-Val

2017-03-01 16:47:53 543

转载 select 实现分析

select源码结构图:       源码分析: #undef __NFDBITS#define __NFDBITS    (8 * sizeof(unsigned long)) #undef __FD_SETSIZE#define __FD_SETSIZE    1024 #undef __FDSET_LONGS#defin

2017-02-28 21:37:44 922

转载 编译器后端,寄存器分配算法

寄存器分配,是通过将程序变量尽可能地分配到寄存器,从而提高程序执行速度的一种方法。寄存器是编译器优化中最为重要的问题之一(好的寄存器分配能够提高程序执行速度超过250%);也是编译器理论中最热点的研究领域之一(研究界已经提出来大量寄存器分配相关的算法)。1. 图着色(graph coloring)方法是解决寄存器分配问题最常用的方法。     利用相交图(interferenc

2017-01-19 10:40:03 4289

转载 深入理解ARM跳转指令B以及在此基础上理解arm-linux中断向量表中

讲解ARM汇编指令的书籍中,很多在讲到B指令的时候会说这条指令时一条绝对跳转指令,这是不负责任的说法。这条指令的迷惑之处在于,B指令的汇编形式为: b label : :label: mov r1,r2 mov r2,r3从汇编指令的书写形式上,确实是一条绝对跳转指令,但是实际上汇编在将“B label”这条指令翻译为机器指令的时候

2016-12-30 16:40:12 879

转载 alignment fault

什么是对齐异常?简单来说,当CPU访问内存地址时,如果发现访问的地址是不对齐的,硬件(部分)就会自动触发对齐异常。对齐即要求被访问的地址满足其数据类型的位宽要求,比如要访问一个4字节int型的数据,但是提供的地址不是4字节对齐的,那就是不对齐了。也就是说要访问的数据的位宽长度是多少,那么访问的地址就必须是按这个位宽长度对齐的。如果是char类型的,那就没有没有对齐要求了。为什么在部

2016-12-14 21:32:35 5817

转载 linux中ELF加载过程分析

运行环境:*Ubuntu 14.04 LTS x64gcc 4.9.2gdb 7.8vim 7.4 with vundle过程分析分析说明在进行详细的分析之前,首先我们来总结一下Linux内核装载执行ELF程序的大概过程: - 首先在用户层面,shell进行会调用fork()系统调用创建一个新进程 - 新进程调用execve()系统调用执行制定的ELF文件 

2016-11-21 18:23:40 3188

转载 x86体系结构下Linux-2.6.26的进程调度和切换

进程调度相关数据结构task_structthread_union和thread_infosched_classsched_entity和sched_rt_entityrqschedule函数分析进程的切换switch_mmswitch_to总结进程的调度不同类型的进程之间的调度选择同类型的进程之间的调度选择进程调度相关数据结构task_struct

2016-11-17 14:26:53 595

转载 Linux进程调度器的设计--Linux进程的管理与调度(十七)

日期内核版本架构作者GitHubCSDN2016-06-14Linux-4.6X86 & armgatiemeLinuxDeviceDriversLinux进程管理与调度1 前景回顾1.1 进程调度内存中保存了对每个进程的唯一描述, 并通过若干结构与其

2016-11-16 22:02:56 717

转载 Linux用户抢占和内核抢占详解(概念, 实现和触发时机)--Linux进程的管理与调度(二十)

日期内核版本架构作者GitHubCSDN2016-07-01Linux-4.6X86 & armgatiemeLinuxDeviceDriversLinux进程管理与调度前面我们了解了linux进程调度器的设计思路和注意框架周期调度器scheduler_tick通过l

2016-11-16 21:33:35 589

转载 Linux0.11内核--系统中断处理程序int 0x80实现原理

系统调用是一个软中断,中断号是0x80,它是上层应用程序与Linux系统内核进行交互通信的唯一接口。这个中断的设置在kernel/sched.c中441行函数中[cpp]  view plain  copyvoid sched_init(void)  {      int i;      struct desc_struc

2016-11-16 11:42:54 2555

转载 系统调用(int 0x80)详解

1、系统调用初始化在系统启动时,会在sched_init(void)函数中调用set_system_gate(0x80,&system_call),设置中断向量号0x80的中断描述符:#define set_system_gate(n,addr)  _set_gate(&idt[n],15,3,addr)其中15表示此中断号对应的是陷阱门,注意,这个中断向量不是中断门描述符

2016-11-16 11:31:56 26213

转载 中断隐指令

CPU响应中断之后,经过某些操作,转去执行中断服务程序。这些操作是由 硬件直接实现的,把它称为中断隐指令。中断隐指令并不是指令系统中的一条真正的指令,它没有操作码,所以中断隐指令是一种不允许、也不可能为用户使用的特殊指令。其所完成的操作主要有:   (1)保存断点   为了保证在中断服务程序执行完毕能正确返回原来的程序,必须将原来程序的断点(即程序计数器(PC)的内

2016-11-15 16:58:06 15137

转载 jiffies溢出与时间先后比较-time_after,time_before

1. 概述在Linux内核中,TCP/IP协议栈在很多用到时间比较的地方都使用了jiffies?本文介绍了什么是jiffies,jiffies溢出可能造成的问题,使用time_after等宏来正确地比较时间及其背后的原理。2. jiffies简介2.1 时钟中断在Linux内核中,TCP/IP协议栈在很多用到时间比较的地方都使用了jiffies。那么jiffies是什么

2016-11-15 16:40:16 1172

转载 Linux 依赖动态库 / 静态库的动态态库 / 静态库

、 依赖动态库的动态库libfun.so依赖动态库libtest.so(libfun.so动态库里的函数intnothing()调用了libtest.so里的intmytest()函数),而main.exe又调用了libfun.so的函数int nothing()。 下面两种方式都能工作:1> 常用的方式g++ -shared -fPIC -o libtest.so tes

2016-11-15 12:44:43 936

转载 晶振、时钟信号、锁相环、分频器

elegang晶振、时钟信号、锁相环、分频器 作者:Andrew [email protected] 驱动数字电路运转是的时钟信号,时序电路都需要一个外部时钟信号来驱动,完成计时,同步,计数,时序控制等各种功能。象CPU也是用时序信号驱动来完成各种运算的,而且象ARM带的模块绝大部分与时序都有关,因此理解时钟信号对于底层编程非常重

2016-11-15 09:39:40 8046

转载 sysfs and devtmpfs

sysfs and devtmpfs Question:Ulrich Dangel explains verywell the difference between devtmpfs and udev.What about sysfs?I understand that the kernel uses sysfs toexport device nodes to user sp

2016-11-13 13:10:34 755

转载 Linux 内核 Makefile 体系简单分析

众所周知,Linux内核是使用make命令来配置并编译的,那必然少不了Makefile。在内核目录树中我们可以看到内核编译系统的顶层Makefile文件。但是如此复杂、庞大的内核源码绝不可能使用一个或几个Makefile文件来完成配置编译,而是需要一套同样复杂、庞大,且为Linux内核定制的Makefile系统。她可以说是内核的一个子系统,是内核中比较特殊的一部分,几乎都是应用层的程序和脚本,但又

2016-11-12 21:27:40 482

转载 Linux内核模块的编译基础知识

关于linux内核驱动的东西网络上有很多,但网上的东西还是感觉有点笼统,读过之后就忘了,还是需要写下来,或者写到本子上,自己形成一个概念好一些。读了这本书上的东西,把觉得好的东西写下来,已备不时之用,也强化记忆。1 内核模块的概念介绍内核模块的同时,也说明一下和应用程序的区别。虽然内容很多,但觉得都很有用。1、内核模块是一些可以让操作系统内核在需要时载入和执行的代码,同时在

2016-11-12 15:41:50 495

转载 内核模块编译

一.Linux内核介绍 1.Linux 内核很庞大,相应的包含的组件也非常多。Linux文件就是常说的zImage和bzImage,在内核启动期间会被解压到内存。2.新的使用组件的思路:动态加载和卸载。也就是需要这个组件的时候才去加载,不需要的时候,就卸载。即内核模块机制。3.关于内核模块。有以下特征: (1)不被编译进内核文件 (2)可以动态加载和卸载4.关于内核模块的操

2016-11-12 15:31:55 726

转载 关于BSS段的大小

1.BSS段中的内容先明确 BSS 段“存放”的是未初始化的全局变量与局部静态变量,此处指的存放是指为其预留空间(占位符)。但BSS段在磁盘上不是真的占用变量大小的空间,它仅是在该段中记录了所有未初始化全局变量与局部静态变量的大小总和,至于每个变量的大小则存储在符号表的size属性中。即:BSS段内容:无内容,它将在段表中占一个段描述符,该段描述符的size属性将记录未初始化的全局

2016-11-08 18:43:26 2050

转载 Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈

栈是什么?栈有什么作用?首先,栈 (stack) 是一种串列形式的 数据结构。这种数据结构的特点是 后入先出 (LIFO, Last In First Out),数据只能在串列的一端 (称为:栈顶 top) 进行 推入 (push) 和 弹出 (pop) 操作。根据栈的特点,很容易的想到可以利用数组,来实现这种数据结构。但是本文要讨论的并不是软件层面的栈,而是硬件层面的栈。

2016-11-08 11:15:09 1508

转载 Linux 线程实现机制分析

自从多线程编程的概念出现在 Linux 中以来,Linux 多线应用的发展总是与两个问题脱不开干系:兼容性、效率。本文从线程模型入手,通过分析目前 Linux 平台上最流行的 LinuxThreads 线程库的实现及其不足,描述了 Linux 社区是如何看待和解决兼容性和效率这两个问题的。4 评论杨沙洲 ([email protected])国防科技大学计算机学院2003 年

2016-11-08 11:11:22 538

转载 Linux内核2.6和2.4中内核堆栈的比较

Linux内核 2.4和2.6的进程内核堆栈和task描述符存储不太一样,这儿总结一下。在内核2.4中堆栈是这么定义的:union task_union {        struct task_struct task;        unsigned long stack[INIT_TASK_SIZE/sizeof(long)];    };而INIT_TASK_SI

2016-11-08 09:51:04 736

转载 Cache一致性协议之MESI

Cache一致性协议之MESI          处理器上有一套完整的协议,来保证Cache一致性。比较经典的Cache一致性协议当属MESI协议,奔腾处理器有使用它,很多其他的处理器都是使用它的变种。单核Cache中每个Cache line有2个标志:dirty和valid标志,它们很好的描述了Cache和Memory(内存)之间的数据关系(数据是否有效,数据是否被修改),而在多核处理器

2016-11-07 15:20:06 662

转载 Linux的原子操作与同步机制

并发问题现代操作系统支持多任务的并发,并发在提高计算资源利用率的同时也带来了资源竞争的问题。例如C语言语句“count++;”在未经编译器优化时生成的汇编代码为。当操作系统内存在多个进程同时执行这段代码时,就可能带来并发问题。假设count变量初始值为0。进程1执行完“mov eax, [count]”后,寄存器eax内保存了count的值0。此时,进程

2016-11-06 20:06:22 379

转载 ethtool 在 Linux 中的实现框架和应用

Linux 的一个显著特点就是其强大的网络功能,Linux 几乎支持所有的网络协议,并在这些协议基础上提供了丰富的应用。对 Linux 网络管理的重要性不言而喻,这些管理依赖于网络工具,比如最常用的 ifconfig,route,ip,ethtool 等,其中 ethtool 提供了强大的网卡及网卡驱动管理能力,其具体的实现框架和网络驱动程序及网络硬件关系紧密,容易修改和扩展,能够为 Linux

2016-11-01 21:04:38 697

转载 infiniband学习总结

一.什么是infinibandInfiniBand架构是一种支持多并发链接的“转换线缆”技术,它是新一代服务器硬件平台的I/O标准。由于它具有高带宽、低延时、 高可扩展性的特点,它非常适用于服务器与服务器(比如复制,分布式工作等),服务器和存储设备(比如SAN和直接存储附件)以及服务器和网络之间(比如LAN, WANs和the Internet)的通信 。二.Infiniband产生的原因

2016-11-01 16:11:28 11736

转载 pthreads : pthread_cond_signal() from within critical section

pthreads : pthread_cond_signal() from within critical sectionup vote14down votefavorite8I have the following piece of code in thread A, which blocks using pthre

2016-10-29 20:22:29 468

转载 Sessions and Process Groups

This chapter is from the bookLinux Application Development, 2nd Edition In Linux, as in other Unix systems, users normally interact with groups of related processes. Althou

2016-10-28 20:44:01 538

转载 Linux IO模式及 select、poll、epoll详解

注:本文是对众多博客的学习和总结,可能存在理解错误。请带着怀疑的眼光,同时如果有错误希望能指出。同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。本文讨论的背景是Linux环境下的network IO。一 概念说明在进行解释之前,首先要说明几个概念:- 用户空间和内核空间

2016-10-25 09:45:40 377

转载 使用事件驱动模型实现高效稳定的网络服务器程序

几种网络服务器模型的介绍与比较围绕如何构建一个高效稳定的网络服务器程序,本文从一个最简单的服务器模型开始,依次介绍了使用多线程的服务器模型、使用非阻塞接口的服务器模型、利用select()接口实现的基于事件驱动的服务器模型,和使用libev事件驱动库的服务器模型。通过比较各个模型,得出事件驱动模型更适合构建高效稳定的网络服务器程序的结论。5 评论顾

2016-10-25 09:37:26 543

转载 孤儿进程与僵尸进程

1、前言  《unix环境高级编程》第八章进程提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。参考APUE,认真总结一下,加深理解。2、基本概念  我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后,它的父进

2016-10-23 14:24:30 363

转载 Flexigrid系列使用教程(一)前台代码及参数说明

本教程从零开始介绍Flexigrid的使用方法,记录了作者学习中的点点滴滴,实例主要是在.net mvc框架下实现的,废话不多说了,先看一下Flexigrid的效果图吧。 一、首先简单介绍一下flexigrid:1、主要特性:Flexigrid是Jquery家族中table类或grid类的一员,主要特性如下:* 列可伸缩* 高度可调整* 可按照表头排序*

2016-10-20 15:58:50 2495

ipmitool 源码包

ipmitool 源码包

2012-04-18

算法导论 第三版 英文版

《算法导论》原书名——《Introduction to Algorithms》,是一本十分经典的计算机算法书籍,与高德纳(Donald E.Knuth)的《计算机程序设计艺术》(《The Art Of Computer Programming》)相媲美。 《算法导论》由Thomas H.Cormen、Charles E.Leiserson、Ronald L.Rivest、Clifford Stein四人合作编著(其中Clifford Stein是第二版开始参与的合著者)。本书的最大特点就是将严谨性和全面性融入在了一起。

2012-04-10

算法导论 中文版 第二版

算法导论》原书名——《Introduction to Algorithms》,是一本十分经典的计算机算法书籍,与高德纳(Donald E.Knuth)的《计算机程序设计艺术》(《The Art Of Computer Programming》)相媲美。 《算法导论》由Thomas H.Cormen、Charles E.Leiserson、Ronald L.Rivest、Clifford Stein四人合作编著(其中Clifford Stein是第二版开始参与的合著者)。本书的最大特点就是将严谨性和全面性融入在了一起。

2012-04-10

算法导论 第二版 英文版

算法导论》原书名——《Introduction to Algorithms》,是一本十分经典的计算机算法书籍,与高德纳(Donald E.Knuth)的《计算机程序设计艺术》(《The Art Of Computer Programming》)相媲美。 《算法导论》由Thomas H.Cormen、Charles E.Leiserson、Ronald L.Rivest、Clifford Stein四人合作编著(其中Clifford Stein是第二版开始参与的合著者)。本书的最大特点就是将严谨性和全面性融入在了一起。

2012-04-10

VI自带的补全功能

VI自带的补全功能

2012-02-23

写一个块设备驱动-共15章

写一个块设备驱动-共15章

2012-02-23

LINUX与UNIX_Shell编程指南

LINUX与UNIX_Shell编程指南

2011-12-02

Linux设备驱动(Edition 3)

Linux设备驱动(Edition 3)

2011-12-02

linux内核模块编程

linux内核模块编程

2011-12-01

kbuild实现分析

kbuild实现分析

2011-12-01

linux_Shell(脚本)编程入门_实例讲解详解

linux_Shell(脚本)编程入门_实例讲解详解

2011-11-23

Linux命令及Shell脚本使用

Linux命令及Shell脚本使用

2011-11-23

Linux下Shell编程

Linux下Shell编程

2011-11-23

MFC通过ADO操作Access数据库

MFC通过ADO操作Access数据库 MFC通过ADO操作Access数据库 MFC通过ADO操作Access数据库MFC通过ADO操作Access数据库 MFC通过ADO操作Access数据库

2011-11-21

MFC类库详解

MFC类库详解 MFC类库详解 MFC类库详解 MFC类库详解 MFC类库详解 MFC类库详解

2011-11-05

SVN目录结构说明

SVN目录结构说明 SVN目录结构说明 SVN目录结构说明 SVN目录结构说明

2011-09-20

IPMI数据手册

IPMI数据手册 IPMI数据手册 IPMI数据手册

2011-09-20

函数式编程思维 高清完整PDF版

函数式编程思维 高清完整PDF版 函数式编程思维 高清完整PDF版

2018-03-14

Designing Data-Intensive Applications

Designing Data-Intensive Applications。英文原版,完整高清,带书签。本书概括和总结了数据系统,分布式或非分布式环境下面临的本质问题,和解决方案的分类。

2018-03-14

ARM Linux中断源码分析(2)——中断处理流程

ARM Linux中断源码分析(2)——中断处理流程

2017-01-11

PCIe规范详细解析

PCIe规范介绍的文档,很详细。

2016-12-31

嵌入式开发_北航PPT教案

嵌入式开发

2016-01-29

以太网交换芯片资料

以太网交换芯片资料 本文以 broadcom56504/56300 交换芯片为重点,介绍一下交换芯片的工作原理。

2014-05-16

APUE 中文版

APUE advanced programming unix environment

2014-03-15

APUE-3rd advanced programming in the unix environment

APUE第三版! advanced programming in the unix environment 3 edition

2014-03-15

深入分析Linux内核源码

深入分析Linux内核源码

2014-03-15

HyperTerminaEnglishANSI+超级终端中文版

HyperTerminaEnglishANSI+超级终端中文版

2013-12-27

SPECPower2008使用说明

SPECPower2008使用说明

2013-10-09

最新的TPCH benchmark数据包

TPC全称为“事务处理性能委员会”(Transaction Processing Performance Council),主页(http://www.tpc.org/),是由数10家会员公司创建的非盈利组织,总部设在美国。TPC的成员主要是计算机软硬件厂家,而非计算机用户,它的功能是制定商务应用基准程序(Benchmark)的标准规范、性能和价格度量,并管理测试结果的发布。 “TPCH”就是用来进行数据库测试的一个基准(benchmark)。说通俗一点,就是一堆数据的集合,用来进行数据库学习和测试。

2013-10-08

DOS98.IMG DOS镜像

纯DOS98镜像,包含command.com、io.sys、msdos.sys三个文件。

2012-12-13

MySQL经典教程

MySQL经典教程

2012-11-15

PHY和MAC MII RMII

PHY和MAC

2012-10-31

myeclipse 10 破解(注册机+详细操作步骤)

里面包含myeclipse 10 以及10.0版本以下注册机,下载后请先阅读压缩包中的操作过程,来进行。

2012-08-11

空空如也

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

TA关注的人

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