非Unix衍生的操作系统图谱
摘要:刚才有一份相对比较全的Unix的家族族谱,很珍贵了。但是可能大家在其中没有发现其它我们比较熟悉的操作系统,最典型的就是Windows NT家族,这是因为Windows NT家族不属于Unix衍生的操作系统。Windows NT的前身是DEC的VMS, OS/2和Windows 3.1。因此,我又找到了一份非Unix类的操作系统家族族谱,这里面大约收集了700个OS及其版本,这应该说也是相当的全了。http://www.oshistory.net/
阅读全文
编程语言的家族族谱(看看你知道的有多少)
摘要:在这个列表中只有50左右的语言,如果你找不到你所想要的语言,那么请看Bill Kinnersley 的列表,他的列表里可有2500种编程语言呢。呵呵:http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm访问 计算机语言历史 网站 O'REILLY有一份彩色的编程语言历史:http://www.oreilly.com/pub/a/oreilly/news/languageposter_0504.html本文信息来自:http://www.levenez.com/lang/
阅读全文
比较全的Unix家族族谱(看看你知道多少)
摘要:这是一个简化后的Unix家族族谱图。用图作者的话说,还有相当多的Unix衍生出来的操作系统没有包含进来,在真实世界中存在的Unix系统的数量可能是这个图上列出10倍以上。这真的只是冰山一角,甚至只是上面站立的那一只企鹅。从这个图上,我们也可以看出为什么国外在OS领域内会有所造诣,是因为他们在几十年的时间里面,有这么大量的技术积淀,也同时是系统人才的积淀。只有百家争鸣才会有百花齐放。从历史中学习,我们在OS的路上还要走很远。访问 Unix 历史 网站 所有图片版权归出处所有。出自:http://www.levenez.com/unix/
阅读全文
函数内Static初始化的用法
摘要:如果想第一次使用的时候再初始化,而程序正常退出的时候,再释放资源。那么应该将其放到某个函数中,作为static声明。#include "Object.h"#include "Container.h"#include <iostream>using namespace std;static Object sglobal(" static global");Object global(" global");void func(){cout << " In func()" &l
阅读全文
OS161 源代码阅读-2
摘要:这回由启动时初始化的顺序分析涉及几个bootstrap函数的文件。/kern/arch/mips/mips/ram.cram_bootstrap()21 获取当前内存大小23-32 内存最大为508MB,因为由于mips体系的原因,超出这个大小,内存将不连续了。34 lastpaddr为内存最后一个字节的地址36-40 firstpaddr为firstfree-MIPS_KSEG0,firstfree为当前内核堆栈的栈顶42-44 打印cpu型号和内存可用值paddr_t ram_stealmem(unsigned long npages)66-67 size等于请求页数的字节数69-71 如
阅读全文
OS161 源代码阅读-1
摘要:/kern/arch/mips/mips/start.s系统开始引导于此。22-25 为了gdb的方便,留了20字节作为stack frame27-57 由注释得知,系统初始时,将一个引导字串放到a0中,并且将内核加载到0x80001000(物理地址0x00001000)中。 80000000将会是exception handler。_end是链接完成后,kernel的结束地址。59-64 将a0中的bootstring拷贝到_end后面,即将bootstring追加到kernel后面。66-71 计算出bootstring的长度,并且加上NULL的一个字节74-76 计算出以bootstri
阅读全文