Jan Fan     About     Archive     Feed     English Blog

select()/poll() 的内核实现

同时对多个文件设备进行I/O事件监听的时候(I/O multiplexing),我们经常会用到系统调用函数select() poll(),甚至是为大规模成百上千个文件设备进行并发读写而设计的epoll()。 I/O multiplexing: When an application needs to handle multiple I/O descriptors at the sam...

More

Event-Driven Model and Callback

对编程有了解的朋友对“回调”(Callback)这个概念一定不会陌生吧? 它在程序设计\框架中屡见不鲜。 “事件驱动”(Event-Driven Programming)呢? “函数注册”(Function Registration)呢? 它们也是一种通信(inter-process communication IPC)手段? 也许,我们还可以再谈谈“阻塞”(Blockin...

More

脚本语言背后的软件抽象层

一开始,我对脚本语言(Scripting language)也没多大在意,我会好多呐,Python/Lua/Tcl/Scheme/Javascript/Bash,怎么也算半个脚本高手了吧! 最近一番深入之后,什么?! 虚拟机(Virtual Machine) 解释器(Interpreter) 运行时环境 (Run-time environment) 扩展语言(Exten...

More

Device Driver, Kernel Module, and Hardware Programming

设备驱动(Device Driver)究竟是什么东西? 它和操作系统(OS)有什么样的联系? 它和内核模块(Kernel Modules)又有什么关系? 它和外部硬件设备(Peripheral Device)是怎么通信的? 来,让我们把这些概念好好地理一理。 What is Device Drivers Driver是一个程序 Driver与硬件设备打交道,...

More

记忆之术

综艺节目《最强大脑》近来可是相当热门,也因这富于娱乐性的节目,很多人了解到了我们人类原来曾经拥有过神奇的“记忆之术”。 记忆术是从很早以前就被发明的东西,但如此“重要”的技能为什么到了今天反而无人知晓,还得靠娱乐节目才能咸鱼翻身? 当我大学第一次接触到记忆术的时候,我也着实想不明白。到后来,结合自身的经历,我才算窥得了其中的原由。 这篇文章讲的,就是我和记忆术之间的故事。 《与爱因斯坦...

More