自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

转载 Linux时间子系统之八:动态时钟框架(CONFIG_NO_HZ、tickless)

在前面章节的讨论中,我们一直基于一个假设:Linux中的时钟事件都是由一个周期时钟提供,不管系统中的clock_event_device是工作于周期触发模式,还是工作于单触发模式,也不管定时器系统是工作于低分辨率模式,还是高精度模式,内核都竭尽所能,用不同的方式提供周期时钟,以产生定期的tick事件,tick事件或者用于全局的时间管理(jiffies和时间的更新),或者用于本地cpu的进程统计、时

2016-01-15 13:44:08 483

转载 Linux时间子系统之七:定时器的应用--msleep(),hrtimer_nanosleep()

我们已经在前面几章介绍了低分辨率定时器和高精度定时器的实现原理,内核为了方便其它子系统,在时间子系统中提供了一些用于延时或调度的API,例如msleep,hrtimer_nanosleep等等,这些API基于低分辨率定时器或高精度定时器来实现,本章的内容就是讨论这些方便、好用的API是如何利用定时器系统来完成所需的功能的。/***********************************

2016-01-15 13:43:34 940

转载 Linux时间子系统之六:高精度定时器(HRTIMER)的原理和实现

上一篇文章,我介绍了传统的低分辨率定时器的实现原理。而随着内核的不断演进,大牛们已经对这种低分辨率定时器的精度不再满足,而且,硬件也在不断地发展,系统中的定时器硬件的精度也越来越高,这也给高分辨率定时器的出现创造了条件。内核从2.6.16开始加入了高精度定时器架构。在实现方式上,内核的高分辨率定时器的实现代码几乎没有借用低分辨率定时器的数据结构和代码,内核文档给出的解释主要有以下几点:低分

2016-01-15 13:42:54 660

转载 Linux时间子系统之五:低分辨率定时器的原理和实现

利用定时器,我们可以设定在未来的某一时刻,触发一个特定的事件。所谓低分辨率定时器,是指这种定时器的计时单位基于jiffies值的计数,也就是说,它的精度只有1/HZ,假如你的内核配置的HZ是1000,那意味着系统中的低分辨率定时器的精度就是1ms。早期的内核版本中,内核并不支持高精度定时器,理所当然只能使用这种低分辨率定时器,我们有时候把这种基于HZ的定时器机制成为时间轮:time wheel。虽

2016-01-15 13:41:57 394

转载 Linux时间子系统之四:定时器的引擎:clock_event_device

早期的内核版本中,进程的调度基于一个称之为tick的时钟滴答,通常使用时钟中断来定时地产生tick信号,每次tick定时中断都会进行进程的统计和调度,并对tick进行计数,记录在一个jiffies变量中,定时器的设计也是基于jiffies。这时候的内核代码中,几乎所有关于时钟的操作都是在machine级的代码中实现,很多公共的代码要在每个平台上重复实现。随后,随着通用时钟框架的引入,内核需要支持高

2016-01-15 13:41:15 460

转载 Linux时间子系统之三:时间的维护者:timekeeper

本系列文章的前两节讨论了用于计时的时钟源:clocksource,以及内核内部时间的一些表示方法,但是对于真实的用户来说,我们感知的是真实世界的真实时间,也就是所谓的墙上时间,clocksource只能提供一个按给定频率不停递增的周期计数,如何把它和真实的墙上时间相关联?本节的内容正是要讨论这一点。1.  时间的种类内核管理着多种时间,它们分别是:RTC时间wall time:墙上

2016-01-15 13:40:33 292

转载 Linux时间子系统之二:表示时间的单位和结构

人们习惯用于表示时间的方法是:年、月、日、时、分、秒、毫秒、星期等等,但是在内核中,为了软件逻辑和代码的方便性,它使用了一些不同的时间表示方法,并为这些表示方法定义了相应的变量和数据结构,本节的内容就是阐述这些表示方法的意义和区别。/*****************************************************************************

2016-01-15 13:39:54 616

转载 Linux时间子系统之一:clock source(时钟源)

clock source用于为linux内核提供一个时间基线,如果你用linux的date命令获取当前时间,内核会读取当前的clock source,转换并返回合适的时间单位给用户空间。在硬件层,它通常实现为一个由固定时钟频率驱动的计数器,计数器只能单调地增加,直到溢出为止。时钟源是内核计时的基础,系统启动时,内核通过硬件RTC获得当前时间,在这以后,在大多数情况下,内核通过选定的时钟源更新实时时

2016-01-15 13:39:17 460

转载 Linux中断(interrupt)子系统之五:软件中断(softIRQ)

软件中断(softIRQ)是内核提供的一种延迟执行机制,它完全由软件触发,虽然说是延迟机制,实际上,在大多数情况下,它与普通进程相比,能得到更快的响应时间。软中断也是其他一些内核机制的基础,比如tasklet,高分辨率timer等。/*********************************************************************************

2016-01-15 13:38:40 311

转载 Linux中断(interrupt)子系统之四:驱动程序接口层 & 中断通用逻辑层

在本系列文章的第一篇:Linux中断(interrupt)子系统之一:中断系统基本原理,我把通用中断子系统分为了4个层次,其中的驱动程序接口层和中断通用逻辑层的界限实际上不是很明确,因为中断通用逻辑层的很多接口,既可以被驱动程序使用,也可以被硬件封装层使用,所以我把这两部分的内容放在一起进行讨论。本章我将会讨论这两层对外提供的标准接口和内部实现机制,几乎所有的接口都是围绕着irq_desc和i

2016-01-15 13:38:11 277

转载 Linux中断(interrupt)子系统之三:中断流控处理层

1.  中断流控层简介早期的内核版本中,几乎所有的中断都是由__do_IRQ函数进行处理,但是,因为各种中断请求的电气特性会有所不同,又或者中断控制器的特性也不同,这会导致以下这些处理也会有所不同:何时对中断控制器发出ack回应;mask_irq和unmask_irq的处理;中断控制器是否需要eoi回应?何时打开cpu的本地irq中断?以便允许irq的嵌套;中断数据结构的同步和保护;

2016-01-15 13:37:12 262

转载 Linux中断(interrupt)子系统之二:arch相关的硬件封装层

Linux的通用中断子系统的一个设计原则就是把底层的硬件实现尽可能地隐藏起来,使得驱动程序的开发人员不用关注底层的实现,要实现这个目标,内核的开发者们必须把硬件相关的内容剥离出来,然后定义一些列标准的接口供上层访问,上层的开发人员只要知道这些接口即可完成对中断的进一步处理和控制。对底层的封装主要包括两部分:实现不同体系结构中断入口,这部分代码通常用asm实现;中断控制器进行封装和实现;

2016-01-15 13:35:36 337

转载 Linux中断(interrupt)子系统之一:中断系统基本原理

这个中断系列文章主要针对移动设备中的Linux进行讨论,文中的例子基本都是基于ARM这一体系架构,其他架构的原理其实也差不多,区别只是其中的硬件抽象层。内核版本基于3.3。虽然内核的版本不断地提升,不过自从上一次变更到当前的通用中断子系统后,大的框架性的东西并没有太大的改变。 /********************************************************

2016-01-15 13:34:17 365

转载 Create a USB Virtual COM Port

Create a USB Virtual COM PortThis article originally appeared in Circuit Celler.COM ports have long provided a convenient way for PCs and embedded systems to exchange information. The tradit

2014-03-21 16:58:28 1098

转载 Eclipse+CDT+gdb调试android ndk程序

http://www.cnblogs.com/shadox/archive/2011/12/02/2272564.htmlEclipse+CDT+gdb调试android ndk程序先介绍一下开发环境,在这个环境下,up主保证是没有问题的。ubuntu 11.10eclipse 3.7(indego) for javajdk 6android sdk 2.2andrid n

2014-03-20 15:13:32 418

转载 命名管道编程的原理及实现

概述管道(Pipe)实际是用于进程间通信的一段共享内存,创建管道的进程称为管道服务器,连接到一个管道的进程为管道客户机。命名管道(NamedPipes)是在管道服务器和一台或多台管道客户机之间进行单向或双向通信的一种命名的管道。一个命名管道的所有实例共享同一个管道名,但是每一个实例均拥有独立的缓存与句柄,并且为客户——服务通信提供有一个分离的管道。实例的使用保证了多个管道客户能够在同一时间使用

2013-02-26 10:50:24 3027

转载 KERB_SMARTCARD_CSP_INFO structure

from: http://msdn.microsoft.com/en-us/library/windows/desktop/bb545682%28v=vs.85%29.aspx      点击打开链接The KERB_SMARTCARD_CSP_INFO structure contains information about a smart cardcryptograph

2012-10-26 11:27:57 659

转载 Create Custom Login Experiences With Credential Providers For Windows Vista

from: http://msdn.microsoft.com/en-us/magazine/cc163489.aspx点击打开链接Desktop SecurityCreate Custom Login Experiences With Credential Providers For Windows VistaDan GriffinThis a

2012-10-25 22:13:40 3997

转载 Google 开源项目风格指南 (中文版)

Google 开源项目风格指南 (中文版)(c++)点击打开链接http://zh-google-styleguide.readthedocs.org/en/latest/google-cpp-styleguide/

2012-10-25 11:08:37 495

转载 gina的智能卡登陆界面一点点分析.doc

from: http://hi.baidu.com/mingyuejingque/item/43475f489af9750be935044e 点击打开链接gina的智能卡登陆界面一点点分析.doc开机进入欢迎界面的时候,插入usbkey,就会弹出windows xp的智能卡登陆界面:输入正确的PIN码,点击“确定”,经过比较漫长的认证过程之后,就可以成功登陆系统。

2012-10-25 10:05:15 1596

转载 Strong Authentication with One-Time Passwords in Windows 7 and Windows Server 2008 R2

from: http://technet.microsoft.com/zh-cn/library/gg637807.aspx     点击打开链接Strong Authentication with One-Time Passwords in Windows 7 and Windows Server 2008 R2此主题尚未评级- 评价此主题发布时间:

2012-10-24 11:25:30 1282

转载 Windows Vista Smart Card Infrastructure

Windows Vista Smart Card Infrastructurefrom:    http://msdn.microsoft.com/en-us/library/bb905527.aspx  点击打开链接10 out of 17 rated this helpful - Rate this topicWindows Vista® Smart Card In

2012-10-24 11:22:50 3256

转载 CRC算法与实现

ned char byte;typedef unsigned short u16;typedef union {  u16 val;  struct {    u16 bit0 : 1;    u16 bit1 : 1;    u16 bit2 : 1;    u16 bit3 : 1;    u16 bit4 : 1;    u16 bit5 : 1;    u16 bit6 : 1;    u16 bit7 : 1;    u16 bit8 : 1;    u16 bit9 : 1;    u16 bi

2011-01-17 15:02:00 383

arm 汇编参考

arm 汇编参考

2012-01-29

空空如也

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

TA关注的人

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