oakland / tecblog

My tech blogs
4 stars 0 forks source link

Operating Systems: Three Easy Pieces #295

Open oakland opened 3 years ago

oakland commented 3 years ago

keyword: OSTEP

最近公司开始准备有人分享操作系统相关的内容了,推荐了这本书。可以考虑看下英文版的。

官网? pdf 豆瓣 bilibili

虚拟化

一个 cpu 当做多个 cpu 用,一个物理内存当做多个内存使用。

内存虚拟化的时候,按道理每次内存地址是一样的,但是现在为了安全考虑,每次分配的虚拟内存地址就不一样了。

还推荐了一本什么书的第九章?

《程序员的自我修养》里面有关于这个这部分的内容

可执行文件有 header,操作系统读取这个 header 来获取这个可执行文件的基本信息。

gdb 命令,一个调试可执行文件代码的工具 w 命令不知道什么意思?

微内核,宏内核。 ring0, ring3

原子操作

之前在听后端分享的时候知道了这个内容,就是不能再拆分的操作。当时的理解是表面的,其实真正的意义是这个操作是一次性完成的,中途不会被打断。这个在看 ostep 的时候了解的,在 2.3,第 10 页中,有这样一段话:

Unfortunately, a key part of the program above, where the shared counter is incremented, takes three instructions: one to load the value of the counter from memory into a register, one to increment it, and one to store it back into memory. Because there three instructions do not execute atomically(all at once), strange things can happen.

这里面的 atomically 就是原子化操作的意思。