02 2022 档案
摘要:以太坊(ETH) 区块链研究者梅兰妮·斯万,在《区块链:新经济蓝图》一书中,她将区块链分为:区块链1.0,货币;区块链2.0,合约;区块链3.0,应用。比特币是区块链1.0的代表,以太坊则是区块链2.0的代表。 以太坊最初的设计目标就是成为智能合约和去中心化应用的平台,它的创始人是维塔利克·布特林(
阅读全文
摘要:比特币系统可以分成三层: 应用层:比特币 协议层:比特币协议 技术层:比特币区块链 比特币系统设计的5个要点: 1) 去中心化的点对点电子现金系统 比特币要做的是一个“点对点的电子现金系统”,发送方和接收方直接交易,它们之间不需要中介机构的介入。 要去掉可信第三方等中介机构,就需要解决“双花问题”。
阅读全文
摘要:思考题 Thinking6.1 示例代码中,父进程操作管道的写端,子进程操作管道的读端。如果现在想让父进程作为“读者”,代码应当如何修改? 除了将case 0:与default:分支的内容交换一下,还要注意父进程开始要先调度子进程完成写,自己才能读。 switch (fork()) { case -
阅读全文
摘要:思考题 Thinking5.1 查阅资料,了解 Linux/Unix 的 /proc 文件系统是什么?有什么作用?Windows 操作系统又是如何实现这些功能的?proc 文件系统的设计有哪些好处和不足? proc文件系统是伪文件系统,是服务于用户和内核的通信的。proc文件系统是一种无存储的文件系
阅读全文
摘要:思考题 Thinking4.1 思考并回答下面的问题 : • 内核在保存现场的时候是如何避免破坏通用寄存器的? • 系统陷入内核调用后可以直接从当时的 a0-a3 参数寄存器中得到用户调用msyscall 留下的信息吗? • 我们是怎么做到让 sys 开头的函数“认为”我们提供了和用户调用 msys
阅读全文
摘要:思考题 Thinking3.1 为什么我们在构造空闲进程链表时必须使用特定的插入的顺序?(顺序或者逆序) 按照头插法,是逆序。保证链表中的顺序和envs数组中的顺序相同。加载空闲进程时会使用LIST_FIRST()函数,会优先加载envs数组前面的块。进程调度时,最近使用过的放回到空闲链表时也是放到
阅读全文
摘要:思考题 Thinking2.1 请思考cache用虚拟地址来查询的可能性,并且给出这种方式对访存带来的好处和坏处。另外,你能否能根据前一个问题的解答来得出用物理地址来查询的优势? cache使用虚拟地址查询是可能的,但是综合来看不如用物理地址查询。 cache使用虚拟地址查询的优势:节省了TLB未命
阅读全文
摘要:思考题 Thinking1.1 也许你会发现我们的 readelf 程序是不能解析之前生成的内核文件 (内核文件是可执行文件) 的,而我们刚才介绍的工具 readelf 则可以解析,这是为什么呢?(提示:尝试使用 readelf -h,观察不同) 当我使用./readelf vmlinux命令时弹出
阅读全文