摘要: 多核并行编程的背景 在摩尔定律失效之前,提升处理器性能通过主频提升、硬件超线程等技术就能满足应用需要。随着主频提升慢慢接近撞上光速这道墙,摩尔定律开始逐渐失效,多核集成为处理器性能提升的主流手段。现在市面上已经很难看到单核的处理器,就是这一发展趋势的佐证。要充分发挥多核丰富的计算资源优势,多核下的并阅读全文
posted @ 2018-06-13 10:20 wahaha02 阅读(284) 评论(0) 编辑
2018年4月19日
Go/Python/Erlang编程语言对比分析及示例
摘要: 本文主要是介绍Go,从语言对比分析的角度切入。之所以选择与Python、Erlang对比,是因为做为高级语言,它们语言特性上有较大的相似性,不过最主要的原因是这几个我比较熟悉。 Go的很多语言特性借鉴与它的三个祖先:C,Pascal和CSP。Go的语法、数据类型、控制流等继承于C,Go的包、面对对象阅读全文
posted @ 2018-04-19 14:02 wahaha02 阅读(3839) 评论(11) 编辑
2018年3月21日
聊聊Linux用户态驱动设计
摘要: 序言 设备驱动可以运行在内核态,也可以运行在用户态,用户态驱动的利弊网上有很多的讨论,而且有些还上升到政治性上,这里不再多做讨论。不管用户态驱动还是内核态驱动,他们都有各自的缺点。内核态驱动的问题是:系统调用开销大;学习曲线陡峭;接口稳定性差;调试困难;bug致命;编程语言选择受限;而用户态驱动面临阅读全文
posted @ 2018-03-21 16:47 wahaha02 阅读(333) 评论(0) 编辑
2018年3月1日
聊聊软件架构
摘要: 人类的智力存在上限和无法扩容可能是人类文明发展的最大障碍。为了解决这一问题,人类发展史上所有的科技发明,无一不是想方设法来扩容脑力。软件作为一种模仿人类脑力活动的“生命体”,在其发展早期,也遇到类似问题,Frederick P. Brooks, Jr.教授著名的“人月神话”观点就是对这一现象的总结。阅读全文
posted @ 2018-03-01 17:49 wahaha02 阅读(171) 评论(0) 编辑
2018年2月23日
聊聊Docker
摘要: 为什么是Docker 进入21世纪,继互联网之后,云计算开始大放异彩。云计算是互联网发展后期的必然方向,反过来,云计算也进一步推动了互联网的发展。云计算模式最关键的突破就是资源使用方式的改变。 云计算是一种融合了多项计算机技术的、以数据和处理能力为中心的密集型计算模式,它的主要技术包括虚拟化、分布式阅读全文
posted @ 2018-02-23 15:55 wahaha02 阅读(156) 评论(0) 编辑
2017年12月13日
segment fault异常及常见定位手段
摘要: 问题背景 最近boot中遇到个用户态程序的segment fault异常,除了一句“Segment fault”打印外无其他任何打印。该问题复现概率较低,定位起来比较棘手。我们的boot是个经过裁剪的最小linux系统,由于bootflash大小的限制,加上在boot阶段也没有挂载其他储存设备,所以阅读全文
posted @ 2017-12-13 17:39 wahaha02 阅读(341) 评论(0) 编辑
2017年9月14日
Linux设备驱动故障定位指引与实例
摘要: Linux设备驱动故障定位指引 Linux设备驱动种类繁多,涉及的知识点多,想写一个通用的故障定位方法指引,是个难度颇大且不容易做好的工作。限于笔者的经验,难以避免存在疏漏之处,欢迎大家留言指正补充。 Linux设备驱动的知识点涉及硬件和软件,其故障原因也各种各样。不过从笔者多年的维护经验来看,与内阅读全文
posted @ 2017-09-14 22:23 wahaha02 阅读(179) 评论(0) 编辑
2017年8月26日
C语言switch/case圈复杂度优化重构
摘要: 软件重构是改善代码可读性、可扩展性、可维护性等目的的常见技术手段。圈复杂度作为一项软件质量度量指标,能从一定程度上反映这些内部质量需求(当然并不是全部),所以圈复杂度往往被很多项目采用作为软件质量的度量指标之一。 C语言开发的项目中,switch/case代码块是一个很容易造成圈复杂度超标的语言特性阅读全文
posted @ 2017-08-26 18:55 wahaha02 阅读(996) 评论(0) 编辑
2017年8月21日
Linux设备驱动框架设计
摘要: 引子 Linux操作系统的一大优势就是支持数以万计的芯片设备,大大小小的芯片厂商工程师都在积极地向Linux kernel提交设备驱动代码。能让这个目标得以实现,这背后隐藏着一个看不见的技术优势:Linux内核提供了一套易于扩展和维护的设备驱动框架。Linux内核本身提供一套设备驱动模型,此模型提供阅读全文
posted @ 2017-08-21 22:08 wahaha02 阅读(732) 评论(0) 编辑
2017年7月26日
TLA+和并发系统正确性验证
摘要: TLA+介绍 TLA+(WIKI,官网)是一门领域特定语言,主要用于数理逻辑计算和并发系统的正确性验证。TLA+中的TLA代表的是“行为时序逻辑(Temporal Logic of Actions)”,Action 是纯函数;“+”代表“Data Logic”。这是由 Dr. Lamport所提出的阅读全文
posted @ 2017-07-26 16:20 wahaha02 阅读(596) 评论(0) 编辑
下一页
< 2018年6月 >
日 一 二 三 四 五 六
27 28 29 30 31 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
1 2 3 4 5 6 7
搜索
最新随笔
1. Linux多核并行编程关键技术
2. Go/Python/Erlang编程语言对比分析及示例
3. 聊聊Linux用户态驱动设计
4. 聊聊软件架构
5. 聊聊Docker
6. segment fault异常及常见定位手段
7. Linux设备驱动故障定位指引与实例
8. C语言switch/case圈复杂度优化重构
9. Linux设备驱动框架设计
10. TLA+和并发系统正确性验证
我的标签
linux(10)文件系统(10)linux内核(9)ubifs(6)kernel(5)ext3(4)敏捷(4)软件设计(3)中断(2)设计模式(2)更多
随笔档案(47)
2018年6月 (1)
2018年4月 (1)
2018年3月 (2)
2018年2月 (1)
2017年12月 (1)
2017年9月 (1)
2017年8月 (2)
2017年7月 (2)
2017年6月 (1)
2017年5月 (2)
2017年4月 (2)
2017年3月 (1)
2017年2月 (1)
2017年1月 (1)
2016年12月 (2)
2016年11月 (3)
2016年10月 (1)
2016年9月 (1)
2016年8月 (1)
2016年5月 (1)
2016年4月 (2)
2016年3月 (2)
2016年1月 (1)
2015年12月 (1)
2015年10月 (1)
2015年9月 (3)
2015年8月 (2)
2015年7月 (1)
2015年6月 (4)
2015年5月 (2)
阅读排行榜
1. Go/Python/Erlang编程语言对比分析及示例(3839)
2. Uboot+Linux启动时间优化(2854)
3. 基于lcov实现的增量代码UT覆盖率检查(1676)
4. U-Boot Driver Model领域模型设计(1593)
5. Linux UBI子系统设计初探(1525)
6. Ext3日记文件系统为什么文件系统还会损坏?(1331)
7. C语言switch/case圈复杂度优化重构(996)
8. Linux x86_64 APIC中断路由机制分析(897)
9. Linux Kernel Oops异常分析(812)
10. www.cnblogs.com/wahaha02/