关闭

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). 二 读写方法  ...
阅读(137) 评论(0)

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...
阅读(200) 评论(0)

ARM CoreLink NIC-400 Network Interconnect Technical

About the CoreLink NIC-400 Network Interconnect The CoreLink NIC-400 Network Interconnect is highly configurable and enables you to create a complete high performance, optimized AMBA® compliant n...
阅读(414) 评论(0)

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

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

在Ubuntu上安装zsh

文以Ubuntu 12.04 LTS为例,安装目前比较流行的zsh的配置oh-my-zsh。 oh-my-zsh最初是在OS X上供人使用,使用方法见此处。在Ubuntu上安装oh-my-zsh稍有不同。 安装 先安装zsh和Git,同时移除之前可能的oh-my-zsh的安装。 ? 1 2 3 4 sudoapt-...
阅读(259) 评论(0)

Priority Inversion - 优先级翻转

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

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

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

结构体最后的长度为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...
阅读(220) 评论(0)

select 实现分析

select源码结构图:               源码分析:   #undef __NFDBITS #define __NFDBITS    (8 * sizeof(unsigned long))   #undef __FD_SETSIZE #define __FD_SETSIZE    1024   #undef __FDSET_LONGS #defin...
阅读(235) 评论(0)

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

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

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

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

alignment fault

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

linux中ELF加载过程分析

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

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

进程调度相关数据结构 task_structthread_union和thread_infosched_classsched_entity和sched_rt_entityrq schedule函数分析进程的切换 switch_mmswitch_to总结 进程的调度 不同类型的进程之间的调度选择同类型的进程之间的调度选择 进程调度相关数据结构 task_struct ...
阅读(261) 评论(0)

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

日期 内核版本 架构 作者 GitHub CSDN 2016-06-14 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度 1 前景回顾 1.1 进程调度 内存中保存了对每个进程的唯一描述, 并通过若干结构与其...
阅读(271) 评论(0)

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

日期 内核版本 架构 作者 GitHub CSDN 2016-07-01 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度 前面我们了解了linux进程调度器的设计思路和注意框架 周期调度器scheduler_tick通过l...
阅读(195) 评论(0)

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

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

系统调用(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表示此中断号对应的是陷阱门,注意,这个中断向量不是中断门描述符...
阅读(1317) 评论(0)

中断隐指令

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

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

1. 概述 在Linux内核中,TCP/IP协议栈在很多用到时间比较的地方都使用了jiffies?本文介绍了什么是jiffies,jiffies溢出可能造成的问题,使用time_after等宏来正确地比较时间及其背后的原理。 2. jiffies简介 2.1 时钟中断 在Linux内核中,TCP/IP协议栈在很多用到时间比较的地方都使用了jiffies。 那么jiffies是什么...
阅读(365) 评论(0)
594条 共30页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:810873次
    • 积分:8923
    • 等级:
    • 排名:第2349名
    • 原创:12篇
    • 转载:582篇
    • 译文:0篇
    • 评论:50条
    最新评论