操作系统课设笔记

因为实习,没法一次性把课设做完,就干脆些把笔记写成博文方便自己查阅吧,持续更新,直至完成。

这课设的设计基本上是依赖于一本书的,大概是怕我们遇到太多的坑吧。。而OS上的坑又不是那么容易解决的,总之以下操作不带有普遍性。

课设平台:

  • fedora 7
  • linux-2.6.21 source code
  • i386

实验1 编译内核

纯粹照着书搞。。

实验过程

以下操作假设用户为root,目录自行决定。

% tar -zxvf linux-2.6.21.tar.gz
% cd linux-2.6.21
% make mrproper  # 清楚掉之前编译产生的垃圾
% make oldconfig  # 如果自己有配置文件的话,直接 copy 进来命名为 .config 即可
% vim Makefile

修改EXTARVERSION ...

阅读全文

如何验证一个数字证书的有效性

首先,设要验证的这个数字证书为B,则它必然由某个CA发放。这里假设该CA的数字证书是存在你的电脑上的或从B到根CA的数字证书都存放在你的电脑上(对于层次结构CA)。出于简单考虑,这里取单层CA做分析,即根CA的数字证书在你的电脑上,设为A,待验证的证书B是由其发放的。

好了,假设完毕。首先看看这个待验证的证书包含哪些消息吧。

对于一个RA(Registration Authority)的请求,CA会产生一对公私钥,公钥会被放在对应产生的数字证书中,私钥交给RA自己保管(怎么交的暂不考虑)。所以数字证书里必须包含的就是这个公钥。除此之外,还得有一系列的比如CA的名字,RA的信息等等。总之,这些信息会被包含成一个数字证书。

既然数字证书产生了,但它终究是个有格式的文件,我们下步需要做的就是,保证它没有被篡改!所以,就需要颁发者对证书进行签名了,也就是对生成的数字证书进行摘要后,再用颁发者的私钥对其签名,然后将签名后的内容连同证书一起打包,这样才得到了一个可验证的完整的数字证书。

用密码学表示一下大概就是:

// 设生成的中间数字证书为 MB,最终发放的为B
则B = MB || E(HASH(MB))  // 这里E是用CA的私钥加密, || 表示拼接

接下来,看看是如何验证的 ...

阅读全文

Pelican简要配置教程

最近看操作系统遇到不少问题,感觉记在书上有点不靠谱,所以一个一个的连带解答写在了trello里,但是总觉得写多了之后就好乱,于是又萌发了搭个blog的想法,想来想去还是用pelican吧,以后有空再买个域名挂上去。

博客初始化

总归先得把pelican搭好吧,好像还比较简单,接下来的一切操作都在Linux下。

Install

pip install pelican

pip install markdown

Quick-Start

自己新建一个文件夹,然后:

pelican-quickstart

按照向导建立好就行了,突然想起这货对中文不友好,语言那选en凑合吧。

Usage

在Quick-Start中如果是一路回车过来的话应该会有个Makefile,pelican的很多操作是基于这个文件的,对Linux有所了解的同学应该是知道make这个命令的,至于关系的绑定也就是写在Makefile里的,下面介绍一些常用的pelican操作:

make html # 将content中的markdown (or others) 生成为html

make regenerate

make serve

make devserver

make一般涉及到一些生成的操作,pelican自带了一个develop_server.sh以供开发的时候调试:

./develop_server.sh ...
阅读全文