计算机科学基础知识(三):静态库和静态链接

作者:linuxer 发布于:2015-2-16 15:15 分类:基础学科

本文是编译、链接和加载系列文章中的第二篇,主要描述静态链接

阅读全文>>

标签: 静态库 静态链接

评论(3) 浏览(18425)

Linux PM QoS framework(2)_PM QoS class

作者:wowo 发布于:2015-2-10 23:09 分类:电源管理子系统

回顾上一篇文章(Linux PM QoS framework(1)_概述和软件架构),PM QoS framework抽象出4个系统级别的QoS constraint(统称为PM QoS class),分别是cpu&dma latency、network latency、network throughput和memory bandwidth。并提供一系列的接口,动态的搜集、整理系统对这些constraint的需求情况。

阅读全文>>

标签: Linux Kernel pm_qos qos

评论(7) 浏览(31074)

计算机科学基础知识(二):Relocatable Object File

作者:linuxer 发布于:2015-2-9 19:17 分类:基础学科

一个合格的c程序员(也可以叫做软件工程师,这样看起来更高大上,当然,我老婆心情不好的时候总是叫我“死打字的”,基本也能描述这份职业,呵呵) 需要理解编译、链接和加载的过程,而不是仅仅关注c语言的语法和词法。本文主要以此为切入点,描述linux系统下,一个普通的hello world程序的生命历程,并借机灌输一些程序编译时和运行时的基本术语和概念。当然,由于我本人是一个linuxer,因此借用linux来描述这些知 识会方便些,但是对于计算机科学而言,这些东西概念上是类似的,只是实现细节不同而已(windows程序员或者其他程序员可以阅读本文哦)。

本 文也是阅读了Computer System,A programmer’s perspective的第七章的一个读书笔记,方便日后查阅。注:Computer System,A programmer’s perspective绝对是一本值得反复阅读的书籍,强力推荐。

阅读全文>>

标签: Object Relocatable File

评论(11) 浏览(29656)

Linux PM QoS framework(1)_概述和软件架构

作者:wowo 发布于:2015-2-4 23:06 分类:电源管理子系统

QOS为Quality Of Service(服务质量)的简称,对PM QoS而言,表示Linux kernel电源管理相关的服务质量。那到底什么是服务质量呢?

我们知道,Linux PM的主要功能,是节省功耗,但同时,会付出一定的性能代价,例如延迟(latency)增加、吞吐量(throughput)下降。可以把PM当作一种服务,把它对性能的影响,类比为服务的质量(QoS)。对性能的影响越大,QoS越低,反之越高。

不过,PM QoS framework的存在,并不是为了定义并测量系统的服务质量(Linux系统对实际的qos没有任何兴趣),而是为了定义一套框架,以满足系统各个实体(如进程、设备驱动等等)对QoS的期望为终极目标。根据实际的场景,这些期望可描述为:xxx不大于某个值;xxx不小于某个值;等等。

这个终极目标,是基于这样的事实:机器是极端的实用主义者。最理想的状况,是刚刚满足系统各个实体对QoS的期望,因而可以在满足需求的同时,最大化的省电。粗俗一点,就是“我能考60分,为什么要多花一点力气去考61分?”。这样的思路,值得我们深思。

本文将基于PM QoS framework整体的软件架构,介绍它的功能、应用场景、使用方式等。

阅读全文>>

标签: Linux PM 电源管理 pm_qos qos

评论(5) 浏览(24322)

Linux时间子系统之(六):POSIX timer

作者:linuxer 发布于:2015-1-22 18:12 分类:时间子系统

用户空间接口函数文档中, 我们描述了和POSIX timer相关的操作,主要包括创建一个timer、设定timer、获取timer的状态、获取timer overrun的信息、删除timer。本文将沿着这些用户空间的接口定义来看看内核态的实现。虽然POSIX timer可以基于各种不同的clock创建,本文主要描述real time clock相关的timer。

本文第二章描述了POSIX timer的基本原理,第三章描述系统调用的具体实现,第四章主要讲real time clock的timer callback函数的实现,第五章介绍了timer超期后,内核如何处理信号。

阅读全文>>

标签: timer POSIX

评论(15) 浏览(27715)

“极致”神话和产品观念

作者:travelhop 发布于:2015-1-19 15:30 分类:技术漫谈

产品真的有“极致”吗?按照极致的思路来打造产品真的靠谱吗?为什么说创业企业搞极致就是自杀?为什么产品经理讲极致就是作?

产品的天性,只是迎合消费者的需要,体现技术的价值而已,无他。

其实这些问题我都回答不出来,仅以一篇《程序员》杂志纸质版的最后一刊,2014年12刊上的我的文章和大家讨论好了。

阅读全文>>

评论(7) 浏览(25954)

Linux cpuidle framework(4)_menu governor

作者:wowo 发布于:2015-1-18 23:14 分类:电源管理子系统

本文以menu governor为例,进一步理解cpuidle framework中governor的概念,并学习governor的实现方法。

在当前的kernel中,有2个governor,分别为ladder和menu(蜗蜗试图理解和查找,为什么会叫这两个名字,暂时还没有答案)。ladder在periodic timer tick system中使用,menu在tickless system中使用。

现在主流的系统,出于电源管理的考量,大多都是tickless system。另外,menu governor会利用pm qos framework(蜗蜗会在后续的文章中分析),在选择策略中加入延迟容忍度(Latency tolerance)的考量。因此本文选取menu governor作为分析对象,至于ladder,就不再分析了。

注:有关periodic timer tick和tickless的知识,可参考本站时间子系统的系列文章。

阅读全文>>

标签: Linux cpuidle menu governor pm_qos

评论(21) 浏览(22364)

Linux cpuidle framework(3)_ARM64 generic CPU idle driver

作者:wowo 发布于:2015-1-6 23:13 分类:电源管理子系统

本文以ARM64平台下的cpuidle driver为例,说明怎样在cpuidle framework的框架下,编写cpuidle driver。另外,本文在描述cpuidle driver的同时,会涉及到CPU hotplug的概念,因此也可作为CPU hotplug的引子。

阅读全文>>

标签: driver arm64 dts cpuidle

评论(13) 浏览(21147)

Linux时间子系统之(五):POSIX Clock

作者:linuxer 发布于:2015-1-5 19:03 分类:时间子系统

clock是timer的基础,任何一个timer都需要运作在一个指定的clock上来。内核中维护了若干的clock,本文第二章描述了clock的 基本概念和一些静态定义的posix clock。根据计时的特点,clock分成两种:一种是真实世界的时间概念,另外一个是仅仅计算CPU执行时间 ,这两种clock分别在第三和第四章描述。从clock的生命周期来看,可以分成静态和动态的posix clock,静态是一直存在于内核中的,而动态clock有创建和销毁的概念,本文第五章描述了dynamic posix clock。

阅读全文>>

标签: posix-clock

评论(12) 浏览(35301)

我的bash shell学习笔记

作者:shanshan1995 发布于:2015-1-1 6:56 分类:Linux应用技巧

本文也即《Learning the bash Shell》3rd Edition的第四章Basic Shell Programming之读书笔记,但我们将不限于此。

阅读全文>>

评论(0) 浏览(11342)

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