内核恐慌话题笔记

内核恐慌是一档我非常喜欢的娱乐主题技术播客。用吴涛和 Rio 自己的话说就是『号称硬核,可也没什么干货。想听的人听,不想听的人就别听』。他们的闲聊其实给了我不少灵感和思路,这里记录一下。


写教材其实是颇为『带着镣铐跳舞』的活,一方面没有办法像写博客那样随性,另一方面计算机学科的覆盖面太广,如何在此基础上写得有料有趣就是个大问题,于是,真正动笔时,才意识到个中艰辛。『有料』不难,知识摆出来,例子摆出来,按照常见的自底向上方式拼起来,按照我自己的标准,也比市面上大部分中文教材要靠谱得多,不过这个标准还是太低。怎么样能够激发同学们的兴趣,怎么样能够把计算机系统这么有意思的东西真正写得有意思,是我努力的目标。

最近在各种涉猎采风,忽然意识到其实可以从我自己都觉得有趣的节目开始,内核恐慌就是其中之一。这种极具个人特色的博客节目,常常在不经意见点亮几盏灯,哪怕只是选取某些有趣的题材,放到教材中作为附录或者小故事,也很有趣吧。

这也就是这篇日志的由来。

内核恐慌开播

  • Kernel Panic
  • 异常处理机制
  • Systemd
  • 人机交互
  • C setjmp/longjmp

键盘恐慌

机械键盘、薄膜键盘、电容键盘、单手键盘、无刻印键盘、人体工学键盘、「和弦」键盘(Chorded Keyboard)、IBM Model M、Apple Extended Keyboard II、Matias Keyboard、HHKB、Das Keyboard、CODE Keyboard、黑轴、红轴、青轴、白轴、透明轴、Alps 轴、美式英语键位、英式英语键位、国际英语键位、德语键位、法语键位

静态网站生成器

  • 静态网站生成器是什么,为什么流行,效果如何
  • JekyII
  • JekyII Bootstrap
  • Octopress
  • Middleman
  • Pelican
  • Hyde
  • Hugo
  • Hexo

编辑器巡礼

  • Emacs
  • Vim
  • 这俩背后的设计思想与计算机系统结合
  • Sublime Text
  • TextMate
  • Chocolat
  • SciTE
  • UltraEdit
  • EditPlus
  • Notepad++
  • Atom
  • Acme
  • Eclipse
  • IntelliJ
  • NetBeans
  • Visual Studio
  • Visual Studio Code

编程字体

  • San Francisco Font - Yosemite 系统字体
  • DIN 1451 字体
  • 德国车牌字体 FE-Schrift
  • Susan Kare
  • Monaco
  • Menlo
  • Input 字体
  • Consolas 字体
  • Source Code Pro 字体
  • PT mono 字体
  • PragmataPro 字体,专为编程设计的 ligature
  • AAnonymous Pro
  • DejaVu Sans Mono
  • Linux Libertine 系列字体
  • OCR A
  • 字体是可以和早期显示技术结合起来的,也非常有意思
  • 结合中文字体进行介绍

从 Portal 看生命周期管理

  • 如何用同一套 Java/Go/C# 代码支持 web/Android/iOS 三大平台
  • 如果电脑内存和硬盘合二为一的话,编程模型会有什么变化
  • GopherJS: Go -> JS
  • GWT: Java -> JS
  • J2ObjC: Java -> Objective-C
  • Core Dump
  • 王安电脑公司
  • 协作式多任务 vs 抢占式多任务
  • 每个程序员都应该知道的访问延迟数值
  • Cold Boot Attack
  • Automatic Reference Counting
  • 内存映射

软件包管理

  • 各 linux 发行版的打包格式
  • DDL hell
  • Homebrew
  • RPM format
  • Yum
  • Zypper
  • APT
  • FreeBSD ports
  • Fink
  • MacPorts
  • Linuxbrew
  • Nuget
  • Maven
  • Gradle
  • sbt
  • Rake
  • pip
  • PyPI
  • Gem
  • npm

集装箱化与运维管理

  • DevOps
  • Fabric
  • Capistrano
  • Chef
  • Puppet
  • Pallet
  • Ansible
  • cgroups
  • LXC
  • Docker
  • Vagrant

并发与异步

  • 并发和并行的概念
  • 相关处理模型
  • 异步模型
  • 三进制计算机
  • Actor Model
  • Communicating Sequential Processes
  • libuv
  • 协程
  • Erlang

类型系统

  • 编程语言中类型系统的概念及作用
  • 千年虫
  • 2038 问题
  • 闰秒
  • 浮点数
  • 运算符重载
  • Strong and weak typing
  • 动态 vs 静态

测试

  • 穿透测试 Penetration test
  • 冒烟测试 Smoke test
  • 瀑布模型
  • 敏捷软件开发
  • 测试驱动开发
  • 恐怖谷理论
  • 单元测试

设计模式

  • 编程珠玑
  • 建筑的永恒之道
  • Cocoa Design Patterns
  • C# Delegate/Event

开发板

  • 微处理器开发板
  • Arduino
  • Raspberry Pi
  • BeagleBoard
  • Banana Pi

Hyper.sh

  • Hyper 是一款基于虚拟机的 Docker 替代引擎
  • Docker
  • KVM
  • Xen
  • CoreOS
  • Clear Linux
  • Kubernetes
  • Packet
  • VirtualBox
  • boot2docker
  • xhyve

Command Line

  • Flutter
  • 0.30000000000000000004.com(很多个0,我的个数不一定对)
  • Teletype, Teletype Model 33
  • Acoustic Coupler
  • MUltics
  • sh, csh, ksh, bash, ash/dash, zsh, psh, yash, fish
  • Unix Wars
  • lolcat
  • pry
  • tree
  • tmux
  • htop
  • pbcopy, pbpaste

Terminal Emulator

  • Elvish shell
  • TTY demystified
  • RXVT
  • Terminator
  • Guake
  • iTerm
  • ZTerm
  • MinGW
  • Cygwin

字谈字串(一)

  • ANSI 键盘布局,ISO 键盘布局以及 JIS 键盘布局
  • ASCII,比方说为什么 A 是 65,a 是97 的原因,和编码也有关
  • HHKB
  • QWERY 和 Dvorak 键盘布局
  • 键盘扫描码
  • PS/2 接口
  • USB Human Interface Devices(HID)
  • Big5
  • HKSCS, MAC
  • 区位码、中文电报码和四角号码
  • BOM(byte order mark)
  • emoji, emoticon
  • ASCII art
  • Fixedsys,微软开发的等宽点阵字体
  • MingLiU,微软开发的繁体中文明体
  • Hinting(渲染提示)
  • anti-aliasing 抗锯齿
  • ClearType
  • DPI
  • TrueType 和 OpenType
  • Adobe PostScript
  • Apple Advanced Typography
  • 全角和半角

字谈字串(二)

  • 区位码、区点
  • 电话编号规则
  • GB 2312
  • GBK
  • Big5
  • Unicode
  • Unicode BMP
  • CJK Unified Ideographs
  • UTF-8 / UTF-16 / UTF-32
  • Endianness 端序

总结

这里是节目放出的相关参考链接节选而成的,具体很多聊天内容都没有覆盖,我应该会抽空以两倍速重听一次,再把内容增补进来

参考链接

捧个钱场?