返回

第58章 野猪泛滥,和大佬们一起进山打猎

首页
关灯
护眼
字:
上一章 回目录 下一页 进书架
最新网址:wap.80ge.info
    在办公室内吃完午饭,林北马上在那台计算机前面坐了下来。

    他面前摊着一本手写的笔记,里面是用铅笔写满的系统架构草稿。

    从系统奖励超级计算机,林北完全掌握了超级计算机的完整技术后,就开始在构思完整的计算机系统。

    超级计算机上的操作系统,只是为超算服务的系统,不合适作为普通计算机的系统来使用。

    因此林北需要一套完全基于汉语言的底层操作系统,适用于未来的超计算机。

    而这个东西,别说是种花家了,全世界只有林北一个人懂,没有人可以帮他。

    需要他亲自一点点的完成。

    这套操作系统,不需要翻译英文指令,不需要记忆那些和日常语言毫无关联的缩写词,所有的指令代码全部用汉字书写。

    运算指令是“加”“减”“乘”“除”,跳转指令是“转”,条件判断是“若”“则”“否则”,循环是“循环”和“止”,输入输出是“读”“写”,程序结构用“开始”和“结束”包裹起来。

    这套方案的核心原则是:任何一个识字的人,拿着操作手册看一遍,就能大致猜到每一行指令是在做什么。

    他早就想清楚了,计算机的未来不应该是少数几个掌握英文的人才能触碰的工具。

    特别是在种花家,计算机的操作系统,就应该以最方便的形式进行推广。

    甚至汉语言系统,将会在这个时空,彻底取代未来的英文操作系统。

    因为林北占据了所有的先机。

    他打开第一块空白的内存区域,开始写最底层的引导程序。

    这段程序不需要多复杂,只需要完成三件事。

    初始化中央处理器和内存的起始状态,从固定地址加载操作系统的内核代码,然后将控制权移交给内核。

    他用铅笔在纸上写了十几行代码,逐条读了一遍确认逻辑无误,然后开始一条一条地往机器里输入。

    “开始

    设基址=零

    清内存

    载入核心自磁盘

    转核心

    结束”

    他把这五行指令输入完毕之后按下回车键,屏幕上没有报错,光标平静地跳到下一行起始处,像是已经接受了这段指令,正在等着后面的内容。

    他开始写内存管理模块。

    内存管理是操作系统的骨架,没有它,所有程序都将堆叠在一起互相踩踏。

    他的方案是分段式管理,把内存划分成若干个大小不等的段,每个段记录起始地址、段长和使用状态,内核在分配和回收时只操作这些段表,不直接碰物理地址。

    分配空间时若找到空闲段就标记为已占用,回收空间时则合并相邻的空闲块。

    他把这个逻辑写成一段大约三十行的程序,一边写一边在脑子里逐行推演边界情况。

    “分配段大小:

    寻空闲段其中段长>=大小

    若找着:

    标该段已占用

    返段址

    否则:

    返空

    止

    回”

    写完之后他把这一段和引导程序衔接在一起,确认没有语法冲突,然后继续往下写进程管理模块。

    进程管理的核心是时间片轮转。

    每一道运行中的程序被看作一个进程,内核记录它的状态、寄存器值和程序计数器位置,每个进程获得一个固定长度的时间片,时间片用完之后内核自动切换上下文保存当前进程状态、恢复下一个进程的状态、把中央处理器交给它。

    他为此设计了一个进程控制块的结构,包含进程标识、运行状态、寄存器备份、优先级和时间片计数器,并配有相应的调度机制让多个程序像轮流使用机器一样交替运行。

    “若时间片满:

    存当前

    恢复下一进程

    转继续

    止”

    他写到设备驱动部分的时候,天已经黑透了。

    键盘的输入中断、显示器的输出缓冲、磁盘的读写控制,每一块都需要单独的接口定义和状态机逻辑。

    他没有把所有的驱动一次性写完,而是先搭了一个基础的设备抽象层,把每种设备的操作抽象成统一的“读”“写”“控制”三个入口,具体的实现留到后续填充。

    这样将来接入任何新设备都不会影响到上层应用程序的执行。

    第一版完整的系统内核手稿写完的时候,时钟已经指向下午五点。

    他把手稿从头到尾通读了一遍,修改了几处边界条件处理不当的地方,又补了一段异常处理逻辑,确保程序在遇到未定义指令或者内存越界时不会直接死机。

    “异常:

    停当前

    记错误码于日志

    转调度”

    林北没有立刻把这些代码全部录入机器,而是下个礼拜一上班的时候,跑一趟超算中心,打算使用超级计算机上的仿真环境,把整个内核的架构模型输入进去跑一遍。

    确认仿真结果确认逻辑无死锁、内存无泄漏、时间片切换没有跨周期丢失之后,这套系统才能证明没有问题。

    至于眼前的这台计算机,事实上,连一个壳子都没有,目前还只是最原始的阶段。

    而这台计算机将来系统完成,也彻底组装起来,其运算速度,并不会太快,也就是每秒一万次左右。

    其集成电路板的芯片有一百个,每一个芯片集成了512个晶体管,总晶体管数量五万个,主频1兆赫兹左右。

    运算能力每秒一万次加法运算。

    对比超级计算机来说,这款计算机运算能力真不怎么样。

    可问题是,这款计算机,他只是一台小巧的普通台式计算机,不是超级计算机,足足占据了一个房间大小。

    是一台可以随时拆卸带走,转移,然后插上电,就可以使用的计算机。

    和现代的台式机,并没有太大的区别。

    并且只要完成,就可以实现初步的计算机办公。

    中文输入、编辑、存储、打印。

    这是最基础也是最有价值的功能之一,可以替代传统的打字机和手写文件。

    只需要弄一台打印机,林北甚至连图纸都不需要手绘,直接在计算机上绘制,然后打印出来即可。

    或者是使用移动数据存储,直接拷贝到其他计算机上。

    此外,它还具备存储和检索信息,比如工人档案、物资台账、设备维修记录等,查询效率比手工翻档案快得多。

    至于操作的话,也很简单,教一下,只要识字,基本上就会。

    其次就是科学计算辅助,虽然无法直接处理完整的流体力学方程等复杂数据的计算,但可以承担子任务的前处理和后处理,比如数据录入、表格生成、中间结果的整理和归档。

    特别是任务前处理,使用超算的时候,有一个很大的步骤,很影响时间,那就是录入计算内容。

    有了这种计算机的话,可以将计算的内容,提前输入好,再利用存储器连接到超算,就不需要再超算上一步步输入计算内容,超算可以自动读取需要计算的内容。

    这样的话,可以节省大量的时间。

    再者就是培养大批的编程人员,供程序员在上面练习和调试代码,积累编程经验,为将来更复杂的计算机应用做人力储备。

    还有就是数控机床上的编程,也可以先在计算机上完成,甚至可以制作一个模拟的程序,不需要到机床设备上检验,可以先模拟测试。

    这样可以减

    (本章未完,请点击下一页继续阅读)
最新网址:wap.80ge.info
上一章 回目录 下一页 存书签