CSAPP 12 并发编程 1
CSAPP 11 网络编程
CSAPP 10 系统IO
CSAPP 10 系统IO
Unix系统中的IO,即Input和Output是指从“文件”读入数据到内存和从内存输出数据到“文件”。“文件”是Unix的一个抽象,即一串字节。在概念上所有IO设备都可以抽象成文件,比如网络、硬盘、各种外设等等。这样系统就可以统一接口来操作外设。
Unix系统提供了四个基本的IO API:
int open(char *filename, int flags, mode_t mode)
int close(int fd)
ssize_t read(int fd, void *buf, size_t n)
ssize_t write(int fd, void *buf, size_t n)
其实这四个api的道理非常简单,open
会返回一个文件标识符,就是打开了一个内存和文件的通道,read
就是把文件标识符指向的文件中的字节输入到buf指向的内存空间,而write
刚好相反,把buf指向的内存空间的字节输入到文件中。
CSAPP 9 虚拟内存
信息爆炸,炸毁了我
信息爆炸,炸毁了我
最近发现了一个现象,我似乎没有办法坚持做一件事情很长时间了,而且这个“很长时间”变得原来越短了!
上一次我自发的坚持一件事情很长时间应该是考研。那已经是10年前的事情了,那时候我坚持每天去自习室学习超过6小时,持续了将近9个月时间,几乎没有间断过。再上一次可能是高考,算是坚持了三年学习,但那已经是13年前的事情了。
读博士以后,我集中精力做一件事情的能力就慢慢变弱了,那是大概6年前。比如做实验加写论文有时候可以到3个月左右。参加工作后,业余时间我还是想多学点东西或者做一些工作之外的事情,但是我渐渐发现我很难坚持了!开始的时候仅仅是不能坚持学完一门公开课(大概需要3个月左右),后面变成不能完整的阅读一本书(大概1个月左右),目前已经慢慢出现不能完整地读完一篇论文了(大概需要几天到1周时间)。更可怕的,我甚至难以完整的阅读一篇报道或者博客了(十几分钟到几小时),经常是读了一半就是去兴趣或者被其他信息拉走了。比如,我会在上网阅读书籍的时候,不定期的打开知乎、youtube、股票报价、微信等等,浏览一些信息,甚至有时候我会完全无目地滑动网页、切换窗口等等,然后回到我刚才在做的事情上,如此循环。到头来往往是时间过去了,什么都没得到。
短短十几年时间,我坚持做一件事情的能力从3年下降到了30分钟,甚至3分钟。(比如,你可以坚持读完这篇博客吗?)
量子计算索引
量子计算索引
公开课程
- Ph219/CS219 Quantum Computation (加州理工) by John Preskill (with video on Youtube)
- CS269Q Quantum Computer Programming (斯坦福) by Dan Boneh
- Phys481-681-CS483, Quantum Computation (康奈尔) by David Mermin
- PHYS771 Quantum Computing Since Democritus (University of Waterloo) by Scott Aaronson
- Introduction to Quantum Computing and Quantum Hardware by IBM (with video on Youtube)
- Introduction to Quantum Computing by Chris Ferrie
- 6.443/8.371/18.436 Quantum Information Science
- Quantum Information Science II, Part 1 - Quantum states, noise and error correction
其他人整理的资源
CSAPP 8 异常控制流
Python3 10的新特性
CSAPP 7 连接
CSAPP 7 连接,Linking
连接是将程序的不同部分(指令和数据)组合成一个二进制文件,该文件可以被读入内存并被CPU执行。连接可以发生在编译时,即程序从源代码转换成机器码的过程中(Static Linking);也可以发生在装载阶段,即程序被读入内存的阶段(Dynamic Linking);甚至可以在运行时,即程序已经被读入内存且已经开始执行的时候。
连接器操作的对象被称为目标文件:Relocatable object file
, Executable object file
, Shared object file
。
目标文件的格式是约定俗成的,最常见的是ELF
, Executable and Linkable Format。
在C语言中,
static
关键字通常用来隐藏变量或者函数。