操作系统-1-基本知识
《现代操作系统》读书笔记
《现代操作系统》读书笔记
这里介绍C++中用于断言的三种方式
在学习《Orange‘S:一个操作系统的实现》时,作者使用nasm和gcc生成ELF文件,然后使用ld命令链接。但是他是在Linux上做的,Mac系统的gcc(clang)只能生成Mac自己的macho64格式的C中间文件,所以需要安装i386编译工具。
由于书中是在IA32上开发的,所以所有的汇编和C语言都必须编译为32位的ELF,所以我选择了i386系列工具。如果有想要其他架构和平台的,过程也差不多。
参考博客为Dani Rodríguez的博客(好像要翻墙)
参考博客Luca's Blog
使用gcc的时候只能产生masm的汇编代码。但是masm不是跨平台的,一般开发的时候都是用nasm进行汇编。但是gcc不能直接生成nasm汇编代码。这里记录了生成nasm汇编代码的方法。
答案来源于stackoverflow。此实验已经在Mac系统上已经尝试成功过。
这里主要说明的是使用va_arg
,va_start
,va_end
宏得到的不定参数。
主要坑爹的地方在于,va_arg
这个宏的第二个参数——取出的数值类型,必须是int或者double,而不能是float,char等。如果你在调用函数的时候,char,unsigned char等实数会转化为int,而float会转化为double:
《计算机网络:自顶向下方法》的学习笔记。
这一章记录链路层有关知识
《计算机网络:自顶向下方法》的学习笔记。
这一节记录了路由选择算法,主要是对关联向量算法的解释。
《计算机网络:自顶向下方法》的学习笔记。
IP协议存在于网络层,网络层是将运输层送到网络边缘的分组发送到路由器的层。而IP协议就是运行在网络层的协议。
《计算机网络:自顶向下方法》的学习笔记。
运输层是只工作在端系统的层,用于将应用程序的网络消息传输到网络边缘,以及从网络边缘得到数据并发送给应用程序。
运输层的中点是TCP和UDP协议,重点中的重点是TCP协议。
如果你想要详细了解TCP,UDP以及网络层的IP,ICMP协议的话,强烈推荐你去看《TCP/IP详解:卷一》