蓝牙协议分析(2)_协议架构

作者:wowo 发布于:2016-1-14 22:20 分类:蓝牙

本文是蓝牙协议分析的第二篇文章,在“蓝牙协议分析(1)_基本概念”的基础上,从整体架构的角度,了解蓝牙协议的组成,以便加深对蓝牙的理解。

阅读全文>>

标签: Bluetooth l2cap profile hci gap

评论(54) 浏览(84251)

perfbook memory barrier(14.2章节)中文翻译(下)

作者:linuxer 发布于:2016-1-11 19:26 分类:内核同步机制

终于完成了perfbook中所有关于memory barrier的内容了,站在当前的时间点上,回头看看翻译perfbook之前的我,那时候是多么的幼稚, 对memory barrier理解多么肤浅。当然,也许随着时间的流逝,5年之后才回头看看今天的我,也会发现:即便是通读了perfbook的memory barrier的内容,其实仍然肤浅,仍然没有理解其精髓。究其原因,一方面,学习的过程总是螺旋式上升的,在当前的技术背景下,我只能到达目前的状 态,要进一步提高,需要在计算机体系结构、编译原理……方面有所突破。另外一方面,技术在无情的进步,如果停在原地注定是会被淘汰的。

生命不息,奋斗不止,还是要象蜗牛一样慢慢前行……

阅读全文>>

标签: Memory barrier perfbook

评论(10) 浏览(10871)

Why Memory Barriers中文翻译(下)

作者:linuxer 发布于:2016-1-5 18:09 分类:内核同步机制

在上一篇why memory barriers文 档中,由于各种原因,有几个章节没有翻译。其实所谓的各种原因总结出一句话就是还没有明白那些章节所要表达的内容。当然,对于一个真正的热爱钻研的 linuxer,不理解的那些章节始终都是一块心病。终于,在一个月黑风高的夜晚,我发了一封邮件给perfbook的作者Paul,请其指点一二。果然 是水平越高越平易近人,很快,大神回复了,给出了一些他的意见,大意就是不必纠结于具体的细节,始终focus在几个基本的规则上就OK了。受此鼓舞,我 还是坚持把剩余章节翻译出来,于是形成了本文。

阅读全文>>

标签: Memory barrier

评论(16) 浏览(19299)

Linux graphic subsystem(2)_DRI介绍

作者:wowo 发布于:2015-12-27 22:02 分类:图形子系统

上篇文章(Linux graphic subsytem(1)_概述)介绍了linux图形子系统基本的软件框架,以及GUI、Windowing system、3D渲染等基本概念。文中提到了linux DRI(Direct Render Infrastructure)框架,但限于篇幅,没有过多介绍。

蜗蜗觉得,DRI在当前(或者说将来)的linux图形子系统中,有着举足轻重的地位,甚至可以说是新的linux图形框架核心思想的体现。本文将基于linux图形框架的发展历程,从Why、What和How三个角度,介绍DRI框架。

阅读全文>>

标签: DRI drm kms rendering

评论(28) 浏览(55979)

perfbook memory barrier(14.2章节)的中文翻译(上)

作者:linuxer 发布于:2015-12-25 12:18 分类:内核同步机制

perfbook是一本值得反复阅读的好书,这一点是毋庸置疑的,不过你是选择阅读中文版本还是英文版本呢?当然,阅读中文版本相对要简单一些,毕 竟是母语,而且最重要的是阅读速度快(注:perfbook已经有了中文版本的翻译,叫做《深入理解并行编程V2.0》,多谢谢宝友/鲁阳/陈渝的辛苦劳 动),其实,每次遇到“快”的时候,我都本能的都要停下来再思考一下,我担心欲速则不达。知识的获取不可能是快的,就像看电影,当时的愉快的记忆不久就会 被时间抹去。因此,最终我选择了阅读英文版(参考中文版本),并顺便将我阅读的部分翻译出来。与其说是翻译给大家看,不如说是翻译给自己看,让自己对 memory barrier的理解更深入一些。

本文是对perfbook 14.2章节的中文翻译的上半部分,包括14.2.1小节到14.2.6小节。

阅读全文>>

标签: 内存屏障

评论(24) 浏览(16734)

slub分配器

作者:itrocker 发布于:2015-12-21 18:51 分类:内存管理

Linux的物理内存管理采用了以页为单位的buddy system(伙伴系统),但是很多情况下,内核仅仅需要一个较小的对象空间,而且这些小块的空间对于不同对象又是变化的、不可预测的,所以需要一种类似用户空间堆内存的管理机制(malloc/free)。然而内核对对象的管理又有一定的特殊性,有些对象的访问非常频繁,需要采用缓冲机制;对象的组织需要考虑硬件cache的影响;需要考虑多处理器以及NUMA架构的影响。90年代初期,在Solaris 2.4操作系统中,采用了一种称为“slab”(原意是大块的混凝土)的缓冲区分配和管理方法,在相当程度上满足了内核的特殊需求。

多年以来,SLAB成为linux kernel对象缓冲区管理的主流算法,甚至长时间没有人愿意去修改,因为它实在是非常复杂,而且在大多数情况下,它的工作完成的相当不错。但是,随着大规模多处理器系统和 NUMA系统的广泛应用,SLAB 分配器逐渐暴露出自身的严重不足:

阅读全文>>

标签: slub slab

评论(7) 浏览(22166)

Linux graphic subsytem(1)_概述

作者:wowo 发布于:2015-12-17 22:21 分类:图形子系统

图形子系统是linux系统中比较复杂的子系统之一:对下,它要管理形态各异的、性能各异的显示相关的器件;对上,它要向应用程序提供易用的、友好的、功能强大的图形用户界面(GUI)。因此,它是linux系统中少有的、和用户空间程序(甚至是用户)息息相关的一个子系统。

本文是图形子系统分析文章的第一篇,也是提纲挈领的一篇,将会从整体上,对linux图形子系统做一个简单的概述,进而罗列出显示子系统的软件构成,后续的文章将会围绕这些软件一一展开分析。

注1:本文所有的描述将以原生linux系统为例(如Ubuntu、Debian等),对其它基于linux的系统(如Android),部分内容会不适用。

注2:本文很多图片都是从网上搜集而来的(很多是从维基百科)。虽然蜗窝的宗旨是用自己的语言表述,尽量自己画图,但是linux图形子系统太复杂了,蜗蜗的理解有限,而老外的图画的实在太好,蜗蜗觉得,再怎么努力,也画不出更好的了,因此本着为读者负责的态度,就直接copy了。

阅读全文>>

标签: Linux display subsystem GUI Wayland SurfaceFlinger DRI

评论(27) 浏览(46111)

Why Memory Barriers?中文翻译(上)

作者:linuxer 发布于:2015-12-10 19:11 分类:内核同步机制

本文是对perfbook的附录C Why Memory Barrier的翻译,希望通过对大师原文的翻译可以弥补之前译者发布的关于memory barrier的一篇很拙劣的文章的遗憾。

本文的翻译不是一一对应的翻译,主要是领会精神,用自己的语言表述,最优先保证的是中文表述的流畅而不是和原文保持一致(希望可以做到)。由于水平有限,欢迎指正。

阅读全文>>

标签: Memory 内存屏障 barrier

评论(39) 浏览(45154)

Linux内核同步机制之(七):RCU基础

作者:linuxer 发布于:2015-12-3 12:57 分类:内核同步机制

关于RCU的文档包括两份,一份讲基本的原理(也就是本文了),一份讲linux kernel中的实现。第二章描述了为何有RCU这种同步机制,特别是在cpu core数目不断递增的今天,一个性能更好的同步机制是如何解决问题的,当然,再好的工具都有其适用场景,本章也给出了RCU的一些应用限制。第三章的第 一小节描述了RCU的设计概念,其实RCU的设计概念比较简单,比较容易理解,比较困难的是产品级别的RCU实现,我们会在下一篇文档中描述。第三章的第 二小节描述了RCU的相关操作,其实就是对应到了RCU的外部接口API上来。最后一章是参考文献,perfbook是一本神奇的数,喜欢并行编程的同学 绝对不能错过的一本书,强烈推荐。和perfbook比起来,本文显得非常的丑陋(主要是有些RCU的知识还是理解不深刻,可能需要再仔细看看linux kernel中的实现才能了解其真正含义),除了是中文表述之外,没有任何的优点,英语比较好的同学可以直接参考该书。

阅读全文>>

标签: RCU

评论(15) 浏览(46899)

显示技术介绍(2)_电子显示的前世今生

作者:wowo 发布于:2015-11-30 22:19 分类:显示

从1907年证实CRT(Cathode Ray Tube)技术可用于电视显示至今,电子显示技术经历了近100年的发展。100年的时间,说长不长,说短也不短;显示技术的发展,说快不快,说慢也不慢。

CRT技术是最原始的显示技术,但它的生命周期一直持续到2000年后,随着LCD(Liquid Crystal Display)的普及才逐渐退出历史舞台,跨度近90年,这是“不快”的由来。

而最近10年,各种新显示技术,又有层出不穷、快速发展之势,如OLED(Organic light-emitting diode display)、电子墨水(E Ink)、激光电视(Laser TV)、IMOD(Interferometric modulator display)等2D显示技术,如激光显示(Laser display)、光场显示(Light field display)等3D显示技术,这是“不慢”的由来。

蜗蜗本来只打算focus在Linux显示子系统的分析上,不想涉及太多的“题外话”,但专业技术的诱惑力,实在不比linux kernel小。另外,网上真正关注“技术”本身的资料又太少(大多是为了卖电视而写的软文)。因此就在兴趣的驱动下,对显示技术的发展做了一些较深入的了解,顺便在此记录一下。这就是本文以及后续相关文章的由来。

当然,只有兴趣还远远不够,因为任何商业化的技术背后,都有很多基础学科的支撑,数学、物理学、化学、材料学、等等。而离开学校越久远,对这些基础知识越生疏,也只能浅尝辄止了。不过还好,有强大的WJ百科,可以事半功倍,本文大多参考并翻译自下面链接,有兴趣的读者可以自行阅读:

https://en.wikipedia.org/wiki/History_of_display_technology

https://en.wikipedia.org/wiki/Display_device

阅读全文>>

标签: CRT LED OLED Laser IMOD

评论(2) 浏览(16192)

Copyright @ 2013-2015 蜗窝科技 All rights reserved. Powered by emlog