摘要:前言 人与人之间最大的差异是认知差异,而认知源于思维方式。相同的人,不同的思维方式能塑造出完全不同的情绪、行为和选择,所以十分有必要了解优秀的思维的运作方式,并以此指导我们的生活、学习和工作。 本文对心理学、数学、工程学、生物学、物理学、化学、统计学、经济学、管理学、计算机软件学等学科的思维模型定义 阅读全文
posted @ 2019-06-08 13:15 wahaha02 阅读(895) 评论(0) 推荐(4) 编辑
摘要:计算机革命是有关我们如何去思考的方式, 以及我们如何去表达自己的思考的一个革命。 SICP 应当避免控制中的复杂性,将精力集中到数据的组织上,以反映所模拟世界里的真实结构。 Joel Moses Program to an 'interface', not an 'implementation'. 阅读全文
posted @ 2019-02-13 18:55 wahaha02 阅读(1001) 评论(0) 推荐(1) 编辑
摘要:Python作为一种多范式语言,它的很多语言特性都能从其他语言上找到参照,但是Python依然形成了一套自己的“Python 风格”(Pythonic)。这种Pythonic风格完全体现在 Python 的数据模型上,而数据模型中的元接口(指那些名字以两个下划线开头,以两个下划线结尾的特殊方法,例如 阅读全文
posted @ 2019-01-11 18:41 wahaha02 阅读(393) 评论(0) 推荐(0) 编辑
摘要:介绍 不同的编程语言具有不同的抽象原语(如下),有的原语抽象层次低,有的原语抽象层次高。其中函数式、DSL是这几年十分热门的编程语言概念。 过程式抽象原语:变量 对象式抽象原语:对象 函数式抽象原语:函数 事件驱动抽象原语:事件 DSL抽象原语:业务定制语言 Linux kernel是个与硬件打交道 阅读全文
posted @ 2018-12-20 16:40 wahaha02 阅读(681) 评论(2) 推荐(0) 编辑
摘要:如《Linux内核内存管理架构》一文中提到,linux内核中的内存管理支持内存地址映射、内存分配、内存回收、内存碎片管理、页面缓存等众多功能。但U-Boot做为启动引导程序,其核心功能就是引导内核镜像,所以其内存管理功能并不用像Linux内核中的内存管理一样功能齐全。U-Boot中没有内存分配、回收 阅读全文
posted @ 2018-09-27 16:50 wahaha02 阅读(1145) 评论(0) 推荐(0) 编辑
摘要:NFS协议 NFS (网络文件系统)不是传统意义上的文件系统,而是访问远程文件系统的网络协议。整个NFS服务的TCP/IP协议栈如下图所示,NFS是应用层协议,表示层是XDR,会话层是RPC,传输层同时支持UDP和TCP,网络层是IP协议。NFS/XDR/RPC等协议规范细节在《TCP/IP详解 卷 阅读全文
posted @ 2018-08-30 16:54 wahaha02 阅读(687) 评论(0) 推荐(0) 编辑
摘要:内存管理子系统可能是linux内核中最为复杂的一个子系统,其支持的功能需求众多,如页面映射、页面分配、页面回收、页面交换、冷热页面、紧急页面、页面碎片管理、页面缓存、页面统计等,而且对性能也有很高的要求。本文从内存管理硬件架构、地址空间划分和内存管理软件架构三个方面入手,尝试对内存管理的软硬件架构做 阅读全文
posted @ 2018-07-31 15:54 wahaha02 阅读(3461) 评论(1) 推荐(3) 编辑
摘要:多核并行编程的背景 在摩尔定律失效之前,提升处理器性能通过主频提升、硬件超线程等技术就能满足应用需要。随着主频提升慢慢接近撞上光速这道墙,摩尔定律开始逐渐失效,多核集成为处理器性能提升的主流手段。现在市面上已经很难看到单核的处理器,就是这一发展趋势的佐证。要充分发挥多核丰富的计算资源优势,多核下的并 阅读全文
posted @ 2018-06-13 10:20 wahaha02 阅读(2823) 评论(1) 推荐(3) 编辑
摘要:本文主要是介绍Go,从语言对比分析的角度切入。之所以选择与Python、Erlang对比,是因为做为高级语言,它们语言特性上有较大的相似性,不过最主要的原因是这几个我比较熟悉。 Go的很多语言特性借鉴与它的三个祖先:C,Pascal和CSP。Go的语法、数据类型、控制流等继承于C,Go的包、面对对象 阅读全文
posted @ 2018-04-19 14:02 wahaha02 阅读(5965) 评论(11) 推荐(19) 编辑
摘要:序言 设备驱动可以运行在内核态,也可以运行在用户态,用户态驱动的利弊网上有很多的讨论,而且有些还上升到政治性上,这里不再多做讨论。不管用户态驱动还是内核态驱动,他们都有各自的缺点。内核态驱动的问题是:系统调用开销大;学习曲线陡峭;接口稳定性差;调试困难;bug致命;编程语言选择受限;而用户态驱动面临 阅读全文
posted @ 2018-03-21 16:47 wahaha02 阅读(2134) 评论(0) 推荐(0) 编辑