我想要的作业系统

序言

开篇

这是我这些年来对理想中通用计算机作业系统和通用计算机的想法。
或许很不系统,或许有所残缺,无论如何,我希望能有人受到启发足够了。
如果你觉得很有用,欢迎用各种方式鼓励我完善。
因为,我真的很缺乏自信。

并行发展

硬件,核心,常用开发,界面,脚本,应用,非技术方面。

这些方面都是计算机系统的各个组成部分。他们可以同步发展,然后整合一起。
并不一定一步一步跟着来。

制造适合新作业硬件,是最大的难度,本文的重点也不在于硬件。
作业系统是一个大系统工程,不只是内核。

内核很难,但是没内核,我们也可以先单独考虑怎么做界面,可以用其他手段把界面先做出来。
很多人做作业系统,只是做了这一部分难度很高,但实用性不强的部分。
内核包括驱动程序,这部分会影响后面平台。

常用开发库,作业系统不单单只是内核,还是一个标准平台,这就要求有很多的常用开发库。
调用常用开发库不仅要满足作业系统自身的支撑,还要给开发者快速开发的支撑。

有界面的作业系统,才是一个完备的界面系统,以前仅仅局限于图形界面。
但是现在考虑的不仅只是主要的图形界面,还包括图像,视频,音频的处理。

作业系统自带的应用是技术最没技术含量的,但是对作业系统的完备是有意义的。
自带应用,最关键是会碰到非技术问题。

有一项贯穿于上面内容,很重要但又不能独立出来的,那就是安全。

非技术方面,能吸引一小撮人进行二次开发,就是第一步胜利。
其他还有好些探讨,但相信很多人比我这个小兵有发言权。

硬件

概述

为什么从硬件开始。
原因是硬件决定软件。
我们的作业系统不一定只在我们的硬件上运行,
但我们的作业系统在我们的硬件上运行效率最高。
我们的硬件也最适合跑我们的作业系统。
其他体系的硬件,虽然勉强可以运行,但不是很推荐。

基本数据类型

1 IEEE745 的 32 位居然达不到6位十进制有效数字。
2 IEEE745 浮点数虽然十分精确,但不是十进制的有效精确
3 现在大部分计算是整数计算, 脚本计算,然后才是高精度浮点计算。
4 IEEE745 0.1+0.2 !=0.3 而是 0.300001的显示方式是不精确的。
5 我们需要一种基本数字类型,方便计算 整数 , 至少6位有效数字的十进制,以及完全精确的2进制浮点数。

类型-长度-内容的数据结构原生支持

Tag-Length-Point-Content 数据结构原生支持
这个复合的基本类型很通用很重要,因为作业系统里要常用到这种弱类型变量,进行各种操作。
比如用来做内存池子的分配和回收。文件系统内容。
如果有可能,处理器支持 (TLPC) 运算的指令。

多协处理器。

用CPU做视频解码,等于浪费CPU的计算能力。
由此推广,常用的大规模计算应该放协处理器里。
所以协处理器要多,因为现在计算机的硬件做得很小。

DSP 数字信号处理器

附带 DSP 。专一工作的时候启用,可以大大加快运行速度。
如游戏软件,或者高性能专一计算。

非频率限制

设计新处理器的时候,不要居然于太古老的非频率限制,
如要尽可能大的一级缓存和二级缓存。
内存分页要大于等于 64K
64K 这个数字,也常用于各种池的大小。

外设

光纤,综合数据线系统。 螺旋孔和拔插孔的兼容。

多功能的系统一定不好用而且清洗麻烦
光纤的必要性。光纤没零线,连接可靠。
AR眼镜不需要把电脑小型化放在眼镜里,背后可以来个超级计算机。

连续接头系统

插线提供一个插孔给其他插线用。
一般正反插斜45度,联系接起来,也有柔软分开的系统。
顽固的3.5mm耳机线
3.5mm耳机线内部延长 连续接头系统的第一个插孔。(第一步可做 USB-C 的转接口)

手机硬件系统

滚轮代替音量上下键盘——来自诺基亚2002年某款手机。
鼠标滚轮也可按下的特点也可尝试一下。
滑动块, 系统键放旁边。除此,就是无按键设置了。

将来笔记本的规格: 18.4寸 1920_1080 , 12寸 1280_720
单手手机: 5.7寸(衬衫口袋宽度 7.5) 掌机 :7寸(裤兜宽度)

衬衫口袋和裤兜口袋的规格标准我没有查到
手机的最大尺寸,关键在于宽度要满足衣服的设计标准。

7寸的另一个意义, A4纸张,扣除页边距后的尺寸。
对应的界面系统的边距设计和负数边距设计。

家用服务器

概述

家用服务器是通用作业系统的最后一个风口。
曾和作业系统业内某人沟通过,他们也在实践,不过这两年没搞起来。

软件功能

媒体库
网络总机
存储总机

这几项,现在的 NAS 存储机都有。

网站门户
涉及到中国的国情。
这段可以深入探讨成一大段。
言简意赅的说,从全球用户角度来看,这点有很大的卖点。
也是盈利点。

行车仪自动备份

以上是纯软件的计算机。

硬件功能

电话总机

用于接固定电话,电话录音,电话分机等功能。
在移动电话普及的今天,作用不是很大。

电视机

这里的电视机是接收电视信号的。
为了规避政策,可以用外接电视卡解决。

光盘自动备份机

光盘放进去,如果是新光盘,自动备份。
如果是老光盘,从备份里读取数据。

安全中心总机

基本的摄像头集合

收音机

重要性不大的但必备的功能。

温度传感器 湿度传感器
基本传感器,聊胜于无。

水表 电表 煤气表

各种仪表需要外部硬件支持。
目标是能做到自动缴费(如果没超越上限)

额外功能

反射,防重启,双机备份,省电,自身电表
高端用户的需求。

核心

面向高速内存设计

如果 内存的速度能达到 CPU 的速度,或者是CPU的速度降到内存的速度,如何去设计作业系统内核?
TLPC 复合结构的常规应用就在这里
硬盘只作为存储的慢速设备。
只为 SSD 设计。

启动

启动的时候,直接把硬盘上系统镜像载入 内存。因为系统镜像是只读的,不写。
在内存中速度更快。
整个过程,在现有硬件环境下速度很快。

关机休眠,也可以利用这个特性。

驱动

先开发常用硬件的驱动,先做固定的标准硬件的驱动。

虚拟硬件

XWindow 的失败是把硬件当网络。我们应该是虚拟硬件。

由虚拟硬件组成虚拟机器。

虚拟硬件的权限管理,是需要经过实验才能精确设置的问题。

基于进程的虚拟硬件。
对于跨平台的应用,如手机和台式机,对应的操作方式不同。
我们可以在应用内部,实现针对当前应用的虚拟硬件。

虚拟机

自举,类似系统级的计算机语言需要自己编译自己一样.
作业系统,需要1 在虚拟机里能运行2 能安装虚拟机
在流行的作业系统中的虚拟机运行,可以亲近二次开发者,加快二次开发的速度。
移植虚拟机,这也是开发者的工作,而不是二次开发者的工作。在这上面运行流行的软件。
开发杀手级软件,也是开发者的工作,而不是二次开发者的工作

网络

处理多网络条件是现在的大问题
同时有 wifi ,4G,lan 的情况下,走哪个路由?
多网络环境中,现有 tcp/ip / 以太网卡 无法满足筛选线路等功能。

需要类似电话机,不管多少层内网都能通达的机制。
根据现在电话机外网拨号前加前缀的原理,替代 TCP
第一步可以兼容,替代可控范围的 协议
第二步再推广。

文件系统

文件系统隔绝

文件系统, OS 自己的二进制文件放一块。 单独的 TPLC结构. 为执行而优化。
简化和系统相关的文件系统。

沙箱

回归 selinux 方式的沙箱。
不使用简单的 888 格式安全符号。
android 的启示 文件系统没那么重要。

默认进程只有当前配置文件夹下的文件权限。
文件权限,在安全那部分说。

各种格式的打包资源和管理。

在 SSD 和高速内存系统系统里,没必要搞那么多零碎文件。
而是应该把文件不压缩打包。

例子
x/a/Xx:zip:main.exe::index.html
zip 压缩包里的exe 资源里的 index.html 文件。
:: index 是用默认解压方式解压出来的。

用户文件默认位置

用户文件夹下的以及文件夹默认是没有写入权限的。
只有各种系统分配的二级目录。

系统文件夹用户是在文件管理器里看不到的。

单文件应用

如果一个应用不是什么大平台,那么一个打包的文件够了。

安装

安装软件是系统负责的事。

描述,用户下载一个应用文件,双击打开的时候,在沙箱里操作,得到的权限是最小的。
扔到, ~/app/ 文件夹底下, 有了基本的权限。

对于开发者:
我的软件需要调用很多文件: 打包非压缩放一起,毕竟用户点击那些数据文件没意义。
需要存盘。 默认在同文件夹底下只有一个数据可写权限的配置文件或配置文件夹。

类似 git 那样,需要个 .git 文件夹。 用 .git 文件而非文件夹代替。

同时有命令行模式和窗口模式。 在 mainfest 文件里说明。

同时有多个功能,比如附带各种附件。 描述里说明,安装的时候拆分成文件夹,共享的动态链接库文件会和主文件放一起。

安全

安全是很重要性的问题
安全和便利性是一对麻烦的矛盾。
我们要以最坏的恶意推测第三方应用。

第三方应用的破坏。最主要是对文件的破坏

回归 selinux 方式的沙箱。不使用简单的 888 格式安全符号。
对普通用户隐藏安全描述符号,实际还是有 acl

动态链接库

概述

作业系统本身要带有足够的动态链接库,因为作业系统本身就是由不同的库构成的。
有些库和基本的作业系统构成无关,但对于成熟完备的作业系统,这些库是必备的。
在存储系统廉价的今天,我们应该把这些库给放进去。

数学库

基本的数学计算库系统都带, 数值计算 教科书 里的都扔进来,代码量不大而且无安全考虑。

字符处理

常用脚本语言用到的的都在这里。
还包括各文字下的语言合法性检查
html编码等

字体处理,排版处理

字体排版,界面系统里很有深度的一部分。
用来显示各种字体,还包括一个字符串的长度等。
不仅仅只考虑东亚文字和英文,应该全世界范围考虑

常用库

OpenGL 必须要实现
OpenCV 等类似的自带
其他库根据需要添加

真实世界的各种历史数据

日历库

你能查到中国的每个年号的时间。查到每个时间标准的变化
历史性数据在这里。

地理库

两者问题是这会有一些有争议的地方

web 处理库

web 作为一个大平台,一定要有

版本管理库

我的文档里的文件,就是用版本管理系统管理的,要少干扰用户。
文件管理器,隐藏所有不能打开的文件。
选择文件,选择文件夹 是单独的应用程序。无权限的程序通过他们来保存数据。

界面多媒体支持库

文字识别库
语音识别库
手写识别库

其他库

数据库服务
文件管理库
三维库
常用数据

界面

移动带来的挑战

UWP已经探路了
点划操作代替了点击操作
长按代替了右键

专家模式

专家模式是按了专家键后进入工作区撑满整个窗口的模式。就是专家模式。
为了防止错误操作,专家键在键盘里映射为 Ctrl+Esc。
专家模式按稳 Alt 键盘,会显示键盘映射图。
专家模式, 专家用的是各种快捷键,整个窗口是放大区。

无限大的桌面

目前虚拟机能实现超大化(桌面面积大于显示器面积),而宿主机不能,咄咄怪事。

即使是 640x480 分辨率,也能用 1080 P 的桌面
按下 Win键加鼠标移动,移动桌面显示区域

无级放大

适合手机的分辨率, 适合 投影仪的办公室套件 这就是无级放大的威力所在

全屏下负边距

手机系统看电子书,留白的边距是不需要的。

窗口管理

基于类似 chrome 的 Tab 套件,可以把不同应用这么套来套去。 又能和 visual studio 那样拼合

集成 GirdMovie 那种把窗口分成多个区域的功能
而且窗口 可以在任何大小下最大化 。 就是margin为0。
窗口的盒模型由 margin-padding 组成 border 是 margin 一部分

win10 的拆分开始菜单很失败,开始菜单应该只有一个入口。

系统按钮

多鼠标,多键盘支持

多鼠标的支持,对开发人员不好。 只有 3D 应用平台会用到。
电磁屏加电容屏组合,也算是一种多鼠标系统。

多鼠标,多键盘,就能实现一个系统,多人同时使用。
第一步可以从不同屏幕,不同键盘鼠标开始。
第二步实验单屏幕多人操作。

语音系统

语音系统是目前不被重视的系统。应该加强,类似 siri 。
用户 24小时 开话筒,听到指令后马上执行。
我们要做一个快捷键就进入语音搜索,完全不看屏幕的效果的作业系统。
需要支持 10 秒的语音输出。 为什么是10秒
语音 用 IPA 表示,生成 概率树

视频系统

视频的输入,一,在软件中使用,比如虚拟控制杆之类
二,在摄像头系统的附加应用。

手写识别

将来的笔记本电脑本,手写触摸屏必备。手写软件的支持,保存笔迹加保存文本。
比如开发项目加 保存笔迹的功能。

手写笔,划操作代替点操作
手写笔点击操作实际上不如小点划操作直观。

手写的时候放大,手写完缩小。接近自然行为。

代替 HTML 的界面系统

让开发界面回归艺术家的工作。
在 类 html 里,不允许使用 script 标签。 只能在外部引入和匹配
新的语言系统也是代替 javascript 语言。 既可以编译,又可以解释运行。
javascript 语言最糟糕的是几乎无法编译成机器语言,从而达到最大的运行速度

输入法和字体

界面的一个重点。

安全

0权限即插即用,单文件应用

下载某软件,在无安装情况下就可以直接用。但是,只能保存到该文件文件夹之下的配置文件夹。
能使用到的权限也很少。不能和其他应用交互。关闭窗口的时候就直接关了。

点击该文件,可以安装,然后就有了额外的操作。
这个软件的资源,直接在这个文件里,可以用系统自带查看器来查看。 纯绿色的吧。
最终用户不需要知道这个软件里有什么文件。
用户可以安装的软件。需要一些权限的,多加配置的。 根据文件夹位置设置的权限。
如果不在程序文件夹里, 弹出 “这是个未安装程序 的确认框”

安装程序是系统的任务,而不应该是软件自身的行为

插件需要许可,只能放于插件文件夹
用户可以安装的套件。需要一套复杂的安装,但和可执行文件不一致。特定格式。比如 office 套件。 建议需要签名——盈利所在。

打开文档和打开文件是不同的

默认权限是没法打开软件默认文件夹外的文件。
当想打开,或者保存到文档文件夹的时候,调用系统的文件对话框进程,获得文档文件夹相关文件的临时权限

打开文件对话框

打开,保存文件对话框,是调用独立的进程(应用)。
该进程检测当前应用的权限,并临时越权。
否则,只能保存文件到 APP 所在文件下面的文件夹

应用

用于体现硬件的附件

定位系统
指南针
温度计,湿度计
计步器

量角器
尺子/计算尺
各种数学,物理图表
照相机,摄影机
录像机,用于展示视频和音频的功能

用于软件基本功能的附件

文件管理器
管理文件,只管理文件,不做额外的资源管理。
设备管理器,管理硬件。
在这里添加许可硬件,添加虚拟硬件,配对软件和虚拟硬件

文本编辑器
Android 居然没有文本编辑器。
文本编辑器对开发者的加亮功能。如果带开发版,那么默认选项就打开。

记事本 Note
记事本和文本编辑器的区别
在文本中,嵌入图片,音频,笔迹 等简单富文本格式。
有不带有字号大小等 文本处理软件的功能。

简单的图形处理,简单的三维处理
绘图,即是简单的图像处理软件。
简单的图形处理,简单的三维处理

计算器
地图,无数据的全球图。

辅助功能的附件

放大镜, 朗读器

书籍

常用图书,非技术问题,而是人文问题。

教科书,附带工科和理科教科书
我希望能在系统里保存怎么制造这台电脑的知识。
辞典。带有辞典应用库,那么就有词典的展示。

百科全书
最大问题在于各国法律和意识的不同,各方面的争议。

用于彰显个性的附件

我希望系统自带的两本书 正体《孙子兵法》和《道德经》

  • 本人不清真,本文不清真

计算机语言

为什么要写一款计算机语言

两个作用一是作为通用脚本引擎,二是隔绝知识产权
用 javascript 这种不能编译成机器代码的的脚本追求效率是不是搞错了什么。

C# 和 vista 的旧事。

说明这事情不能靠有期限的开发,而是要做没期限的实验

我的计算机语言构思“QZ 语族”,在另外的文章里描述

思路是用一个计算机语言家族,多个语言实现,应对系统级,脚本级,通用级的场景

非技术商业

让一小撮二次开发者先用起来

某国内非打包 Linux 系统目前最大的问题。就是只看到大牛在开发很辛苦,吸引不到一批二次开发者。

发展阶段,文档比代码更重要

否则,都是第一方开发各种应用。

数据的知识产权和代码的知识产权分开

虽然实际控制是同一批人,但是在商业上是不同的法人。
代码开源,免费,但数据是商业收费。

各版本的区别

各版本的库是统一的,只是附加的软件不同。
商业版本和自由版本,最大的区别是核心数据。

版本, 教育版本, 平面设计版,三维设计版。开发版。

开发版的描述

安装之后就不要折腾各种开发环境了。

办公版的描述

附带常用办公软件。
文字处理,数字表格,演示文稿
日历,邮件,通讯工具。

平面设计版的描述

图像处理,图形处理软件

三维设计版的描述

各种三维软件,建模的,渲染的。

服务器版本的描述

各种云服务器应有的,如存储服务器。 http 服务器。版本管理服务器。

教育版的描述

机器必定的满足切边之后的页面。手写笔必备。电子墨水可选。可以在书本上涂鸦。可以切换到笔记本模式
就这么简单。加一两个软件就可以。
试卷系统,根据笔迹自动批改选择题。 填空笔迹自动转文字, 老师批阅分数,自动转文字和计算。

统一演示的机器

在开发总部放一台超级电脑用来演示,能装多少软件装多少,能运行多少运行多少。所有功能都给我放在那里。

代码加数据才等于系统

软件不仅仅是代码,而是代码加数据。
两家远端数据运营商,一家自由改版系统商,一家正式商业系统商。
自由改版,愿意的就用,自己动手。 MIT 协议够了。
商业系统,版权数据受限,收钱也同时承担责任。
总有一种办法不让伸手党太过分。

后话

魏永明的 《“自主”操作系统——为什么及如何》对本文意义很大

中国很多高校里的,搞的是技术,不是科研。
打包 Linux 这也算科研?这只算技术。

我偏好用作业系统这个词,操作系统这个动宾短语容易造成误解。

本文会持续在 gitbook 上更新
https://dvaknheo.gitbooks.io/what-os-i-need/content/chapter1.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,277评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,689评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,624评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,356评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,402评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,292评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,135评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,992评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,429评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,636评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,785评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,492评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,092评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,723评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,858评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,891评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,713评论 2 354

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,099评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,654评论 18 139
  • 等我牵着牛羊, 等我住进草屋, 等我燃起火堆, 等我捧起星辉, 等我,忘了你 牵过牛羊, 住过草屋, 燃起了火堆,...
    伍月的四月阅读 135评论 1 4
  • 小的时候我们都听过“勤劳的小蜜蜂通过辛勤地劳作酿造甜蜜的蜂蜜”的故事。这原本是一个德育的故事,然后这样一个故事却对...
    缩写的表达阅读 478评论 0 3
  • 托尔斯泰说:“世界上只有两种人:一种是观望者,一种是行动者。”——大栗致自己 《德鲁克管理思想精要》这本书中有两个...
    有杕之杜阅读 357评论 0 2