读王垠《一种新的操作系统设计》

读王垠《一种新的操作系统设计》

王垠博客链接:王垠《一种新的操作系统设计》

原文摘要

特点

  • 操作系统由某种高级语言写就,一个个小函数组成,所有的代码都是“库代码”

  • 进程之间通信,统一使用某种高级语言提供的数据结构

  • 运行环境是“有自动内外存数据交换功能的 JVM”,避免指针

  • 内存管理的粒度是数据结构,不是页

  • 系统调用就是对系统函数的调用,只有系统函数拥有设备的引用

  • 不另设命令行脚本,而是采用某种高级语言的交互解释器

  • 所有数据作为“结构”(而不是文件)保存在一个分布式数据共享空间

  • 进程的运行时数据自动同步到磁盘

  • 进程可以在机器间迁移

好处

我能理解的好处:

  • 进程通信不需要编码解码
  • 不需要 SQL
  • 不需要命令行脚本
  • 远程调用简单
  • 进程持久化(在外存中保存程序断点)
  • 自动外存管理

个人理解与疑惑

  • 这种操作系统的主要特点是,使用一种程序设计语言完成所有的工作,即硬件驱动、系统内核、应用开发、数据管理……那么这种语言的设计缺陷是否会造成更大的问题呢?
  • 另一个主要特点是,取消了数据库的必要性。用统一的高级语言处理业务逻辑和数据查询代替 SQL 容易理解,但这会让现在独立的数据库管理系统变为“数据管理函数库”。现在的数据库虽然查询不方便(看看工程师积累的复杂使用经验),但是并发管理、数据完整性、权限管理等功能隐藏得很好。使用函数库做相同的事情是否合适?

未来展望

未来的系统

当我们没有计算机的时候,编程不是问题;当我们有计算机了以后,编程成了问题;当我们有了大型的计算机的时候,编程就成了巨大的问题。

软件开发的复杂度很高,这是问题固有的复杂度还是基础设施的设计缺陷?“数学是神的学科,计算机是人的学科”,要区分固有的复杂和设计带来的复杂并不容易。

“书同文,车同轨”,统一带来效率。如果新一代操作系统能整合:

  • 内存与外存
  • 本地与网络
  • 数据格式与数据结构
  • 应用程序与系统程序

就能将操作系统和数据库管理系统整合在一起!

未来的编程

未来的编程,程序员只需要面向为数不多的几个(最好是一个)逻辑结构编程——不用考虑存储结构,集中精力在抽象表达式树的正确性上。未来的编程原则会认为,使用指针是逻辑层向物理层的僭越,性能优化完全针对解释器,和抽象表达式树无关。

总之,计算机程序的构造和解释应该彻底解耦合。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值