歪问操作系统

最近看了《30天自制操作系统》这本书,总算补齐了计算机基础知识中非常重要的一个板块。如果在平行时空,遇到了30天之前的“旧我”,为了增加“旧我”对操作系统知识的兴趣,准备了如下的歪问题(所谓歪问题,是本身就有问题的问题)。 按住空格键不放开,或者鼠标不停的滑动,电脑应该忙于应付硬件中断,直接卡死才对,为啥一点问题都没有? 知道linux系统调用的中断号是0x80吗?主从两片8259A中断芯片总共也只能提供15个中断信号的接入,这个0x80明显大于15,不会出问题吗? 经常听到什么“内核管理内存”, “内核负责cpu调度”等等说法,打开top或者进程管理器(windows),指出这个“内核”是哪个进程? 自己用c++开发的进程难免会出现内存访问异常(SIGSEGV),导致进程core掉,问题来了,既然是访问异常,为什么没有把别的进程甚至内核的内存踩乱,要挂大家一起挂掉? 发生系统调用时,进程从用户栈切到内核栈,问题来了,当两个进程同时同步去读磁盘文件的时候,他们都运行在同一个内核栈,为什么没有出问题?

Published
Categorized as linux

linux terminal

源于对历史的不了解,linux console,linux terminal和linux shell常常让人困惑。linuxbase上的一篇文章https://www.linuxbabe.com/command-line/linux-terminal讲的非常清楚,又有非常珍贵的插图可以形象的看到那些已经早就淘汰的骨灰级硬件。 通过终端连上服务器后,运行tty,可以看到当前终端对应的文件, /dev/pts/0 man pts就可以了解这个虚拟的tty的创建过程。

Published
Categorized as linux

Why tail -f doesn’t work

It is really wired to see tail -f doesn’t work on one of my server. File is changing, but tail doesn’t output anything.I am really curious. First, I straced tail strace tail -f file.log open(“file.log”, O_RDONLY) = 3fstat(3, {st_mode=S_IFREG|0644, st_size=1, …}) = 0lseek(3, 0, SEEK_CUR) = 0lseek(3, 0, SEEK_END) = 1lseek(3, 0, SEEK_SET) = 0read(3,… Continue reading Why tail -f doesn’t work

Published
Categorized as linux