鹤啸九天 自律更自由,平凡不平庸 Less is More

操作系统-Operating System

2010-07-25
阅读量

Notes(温馨提示):

  1. ★ 首次阅读建议浏览:导航指南
  2. 右上角工具条搜索文章,右下角二维码关注微信公众号(鹤啸九天),底栏分享、赞赏、评论
  3. ★ 转载请注明文章来源,知识点积累起来不容易,水滴石穿,绳锯木断,谢谢理解
  4. ★ 如有疑问,邮件讨论,欢迎贡献优质资料


操作系统

【2022-1-26】linux操作系统发明人 Linus Torvaldsgithub源码

硬件

电脑进化史

【2022-10-7】【电脑】演变历史 1936 - 2020

手机进化史

【2022-10-7】【智能手机】手机发展演变历史过程

操作系统介绍

【2022-3-13】关于LMOS自主操作系统的发展,大家有什么建议?

  • LMOS 操作系统,代码
  • 桑文峰,从2012年到2014年,花了两年时间研究清楚了操作系统底层是怎么实现的,并且实现了一个小的os,可以fork和exec新任务,还在网上开了一门视频课程。github地址: 《跟着瓦利哥学写OS》的课程代码和课件
  • 自己动手写操作系统, 用c语言和汇编语言编写出一个具备操作系统基本功能的操作系统框架。本书不同于其他的理论型书籍,而是提供给读者一个动手实践的路线图。
  • 日本:30天自制操作系统

著名操作系统

全球四大桌面操作系统:

  • Windows,
  • MacOS,
  • Linux(Ubuntu代替),
  • ChromeOS(FydeOS代替)

Windows

【2022-10-7】【进化编年史】万物皆有其进化史~Windows操作系统进化历程

【进化史】Windows系统(1985-2021)精益求精

  • 第二期进化史为微软(Microsoft)的Windows系统进化史
  • 视频盘点了从最初的Windows1.0、Windows2.0、Windows3.0系统,是微软对于图形化系统探索的起点;90年代的WindowsNT、Windows95、Windows98系统,是Windows系统概念的发源地;之后便是Windows2000、WindowsME、WindowsXP这几个经典的诞生;再到现在的WindowsVista、Windows7、Windows8、Windows10、Window11

Linux

Ubuntu

Ubuntu官网下载

Mac

Mac os苹果操作系统的历史进化之路

Mac OS发展史(实机演示)

如何查看显存

【2023-8-8】使用苹果M1芯片的Mac上的自动显存

搭载 Apple M1 芯片的 Mac 上的 Parallels Desktop 中,所有支持的操作系统都使用 Apple M1 芯片统一内存体系结构 (UMA) 来实现图形目的。

  • 这种内存体系结构是 Apple 的一种独特的系统设计方法,意味着 CPU 和 GPU 都有一个统一内存
  • 换句话说,搭载 Apple M1 芯片的 Mac 上没有专用图形内存。将系统内存用于图形是最有效的方式,它可以在搭载 Apple M1 芯片的 Mac 电脑上提供最佳的虚拟机体验。

搭载 Apple M1 芯片的 Mac - 无专用的图形内存:

搭载基于 Intel 处理器的 Mac - 具有专用内存的图形适配器:

文件管理

Finder找不到文件

【2023-11-19】Mac上明明有这个文件,却搜索不出来?

原因

  • 文件索引更新速度慢

解法

sudo mdutil -a -i off
sudo mdutil -a -i on

虚拟机

macOS上可选的虚拟机软件主要有三款:VirtualBoxVMWare FusionParallel Desktop

  • 如果是从Windows过来的用户,并且之前关注过虚拟机,那前面两款应该都比较熟悉,Windows上都有他们对应的版本
  • 只有Parallel Desktop是Mac平台独占应用。

Parallel Desktop官网, 安装器 2m,下载安装300+M 软件

操作系统基本架构

操作系统初识

进程、线程、协程

一文读懂什么是进程、线程、协程

  • 计算机的核心是CPU,它承担了所有的计算任务;
  • 操作系统是计算机的管理者,它负责任务的调度、资源的分配和管理,统领整个计算机硬件;
  • 应用程序则是具有某种功能的程序,程序是运行于操作系统之上的。

  • 程序 = 数据结构 + 算法

任务调度

大部分操作系统(如Windows、Linux)的任务调度是采用时间片轮转抢占式调度方式。

在一个进程中,当一个线程任务执行几毫秒后,会由操作系统的内核(负责管理各个任务)进行调度,通过硬件的计数器中断处理器,让该线程强制暂停并将该线程的寄存器放入内存中,通过查看线程列表决定接下来执行哪一个线程,并从内存中恢复该线程的寄存器,最后恢复该线程的执行,从而去执行下一个任务。

  • 上述过程中,任务执行的那一小段时间叫做时间片,任务正在执行时的状态叫运行状态,被暂停的线程任务状态叫做就绪状态,意为等待下一个属于它的时间片的到来。

这种方式保证了每个线程轮流执行,由于CPU的执行效率非常高,时间片非常短,在各个任务之间快速地切换,给人的感觉就是多个任务在“同时进行”,这也就是所说的并发

  • 别觉得并发有多高深,它的实现很复杂,但它的概念很简单,就是一句话:多个任务同时执行

生命周期

早期只有进程的操作系统中,进程有五种状态,创建就绪运行阻塞(等待)、退出。早期的进程相当于现在的只有单个线程的进程,现在的多线程也有五种状态,生命周期与早期进程的生命周期类似。区别:

  • 图里的进程换成线程

早期进程的生命周期

线程生命周期

进程在运行过程有三种状态:就绪运行阻塞,创建和退出状态描述的是进程的创建过程和退出过程。

  • 创建:进程正在创建,还不能运行。操作系统在创建进程时要进行的工作包括分配和建立进程控制块表项、建立资源表格并分配资源、加载程序并建立地址空间;
  • 就绪:时间片已用完,此线程被强制暂停,等待下一个属于它的时间片到来;
  • 运行:此线程正在执行,正在占用时间片;
  • 阻塞:也叫等待状态,等待某一事件(如IO或另一个线程)执行完;
  • 退出:进程已结束,所以也称结束状态,释放操作系统分配的资源。

多线程与多核

时间片轮转的调度方式说一个任务执行一小段时间后强制暂停去执行下一个任务,每个任务轮流执行。很多操作系统的书都说“同一时间点只有一个任务在执行”。那有人可能就要问双核处理器呢?难道两个核不是同时运行吗?

  • 其实“同一时间点只有一个任务在执行”这句话是不准确的,至少它是不全面的。那多核处理器的情况下,线程是怎样执行呢?这就需要了解内核线程

多核(心)处理器是指在一个处理器上集成多个运算核心从而提高计算能力,也就是有多个真正并行计算的处理核心,每一个处理核心对应一个内核线程。

  • 内核线程(Kernel Thread,KLT)就是直接由操作系统内核支持的线程,这种线程由内核来完成线程切换,内核通过操作调度器对线程进行调度,并负责将线程的任务映射到各个处理器上。
  • 一般一个处理核心对应一个内核线程,比如单核处理器对应一个内核线程,双核处理器对应两个内核线程,四核处理器对应四个内核线程。
  • 现在的电脑一般是双核四线程、四核八线程,是采用超线程技术将一个物理处理核心模拟成两个逻辑处理核心,对应两个内核线程,所以在操作系统中看到的CPU数量是实际物理CPU数量的两倍,如你的电脑是双核四线程,打开“任务管理器\性能”可以看到4个CPU的监视器,四核八线程可以看到8个CPU的监视器。

超线程技术就是利用特殊的硬件指令,把一个物理芯片模拟成两个逻辑处理核心,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的运行效率。这种超线程技术(如双核四线程)由处理器硬件的决定,同时也需要操作系统的支持才能在计算机中表现出来。

程序一般不会直接去使用内核线程,而是去使用内核线程的一种高级接口——轻量级进程(Lightweight Process,LWP),轻量级进程就是我们通常意义上所讲的线程,也被叫做用户线程。由于每个轻量级进程都由一个内核线程支持,因此只有先支持内核线程,才能有轻量级进程。

用户线程与内核线程的对应关系有三种模型:一对一模型、多对一模型、多对多模型,在这以4个内核线程、3个用户线程为例对三种模型进行说明,见原文

1、进程

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动

  • 进程是系统进行资源分配调度的一个独立单位。
  • 每个进程都有自己的独立内存空间,不同进程通过进程间通信 由于进程比较重量,占据独立的内存,所以上下文进程间的切换开销(栈、寄存器、虚拟内存、文件句柄等)比较大,但相对比较稳定安全**。

进程一般由程序数据集合进程控制块三部分组成。

  • 程序用于描述进程要完成的功能,是控制进程执行的指令集;
  • 数据集合是程序在执行时所需要的数据和工作区;
  • 程序控制块(Program Control Block,简称PCB),包含进程的描述信息和控制信息,是进程存在的唯一标志。

进程具有的特征:

  • 动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的;
  • 并发性:任何进程都可以同其他进程一起并发执行;
  • 独立性:进程是系统进行资源分配和调度的一个独立单位;
  • 结构性:进程由程序、数据和进程控制块三部分组成。

2、线程

在早期的操作系统中并没有线程的概念,进程是能拥有资源和独立运行的最小单位,也是程序执行的最小单位。

任务调度采用的是时间片轮转抢占式调度方式,而进程是任务调度的最小单位,每个进程有各自独立的一块内存,使得各个进程之间内存地址相互隔离。

后来,随着计算机的发展,对CPU的要求越来越高,进程之间的切换开销较大,已经无法满足越来越复杂的程序的要求了。于是就发明了线程。

线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元,是处理器调度和分派的基本单位。一个进程可以有一个或多个线程,各个线程之间共享程序的内存空间(也就是所在进程的内存空间)。

  • 一个标准的线程由线程ID当前指令指针(PC)、寄存器堆栈组成。
  • 而进程由内存空间(代码、数据、进程空间、打开的文件)和一个或多个线程组成。

线程是指进程内的一个执行单元,也是进程内的可调度实体

  • 线程是进程的一个实体, 是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。
  • 线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。
  • 线程间通信主要通过共享内存,上下文切换很快,资源开销较少,但相比进程不够稳定容易丢失数据。

3、协程(异步)

【2022-10-8】技术文章:C语言协程的代码细节

  • “协程”(coroutine),就是把Linux epoll的异步IO机制通过长跳转(long jmp)封装起来,形成一个在用户看来“连续的”流程。
  • 所有操作系统的异步IO,都分为启动函数回调函数
    • 以Linux为例,启动函数负责往epoll框架里添加读写事件
    • 在事件触发之后,再通过回调函数去进行下半部的处理。
  • 整个事件处理过程,与Linux内核里的中断处理差不多。

一个完整的IO流程需要回调好几次,而且读代码时到处查找回调函数在哪里设置的。甚至,有的程序员会中途修改回调函数的指针

  • C的函数指针比C++的虚函数更“灵活”的地方是,C++的虚函数表在编译时就固定了,但C的函数指针可以在运行时修改(它就是个普通变量)。
  • 然后,就真有人半截里修改它,让代码的可读性急剧下降。再然后,就出现了coroutine,看上去至少是同步的了。

对比

  • 程序流程在1个函数里跳转,就是普通的goto语句
  • 程序流程在2个函数的半截里跳转,就是长跳转(long jmp)。

协程的原理如下:

  • 1,当某个文件描述符需要IO等待的时候,通过长跳转回到epoll的主框架函数,让其他的IO可以运行。
  • 2,当这个文件描述符的IO再次就绪之后,再通过长跳转从主框架函数跳回来,接着上次的位置继续运行:
    • 这个位置,是函数上一次放弃运行的位置,它是函数内的某个点。
  • 在函数的半截里放弃CPU之后还能回来,就需要保存函数的运行上下文:栈信息、寄存器信息。
  • 保存到哪里?只能保存到堆上,因为栈和寄存器都会随着代码的运行而不断地覆盖,只有堆是受用户控制的。

协程,英文Coroutines,是一种基于线程之上,但又比线程更加轻量级的存在,这种由程序员自己写程序来管理的轻量级线程叫做『用户空间线程』,具有对内核来说不可见的特性。

因为是自主开辟的异步任务,所以很多人也更喜欢叫它们纤程(Fiber),或者绿色线程(GreenThread)。正如一个进程可以拥有多个线程一样,一个线程也可以拥有多个协程。

协程是一种用户态的轻量级线程,协程的调度完全由用户控制。从技术的角度来说,“协程就是你可以暂停执行的函数”。

  • 协程拥有自己的寄存器上下文。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈,直接操作栈则基本没有内核切换的开销,可以不加锁的访问全局变量,所以上下文的切换非常快。

线程进程的区别:

  • 1) 地址空间: 线程是进程内的一个执行单元,进程内至少有一个线程,它们共享进程的地址空间,而进程有自己独立的地址空间
  • 2) 资源拥有: 进程是资源分配和拥有的单位, 同一个进程内的线程共享进程的资源
  • 3) 线程是CPU调度的基本单位,但进程不是
  • 4) 二者均可并发执行
  • 5) 每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口,但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制

总结:

  • 线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;
  • 一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线;
  • 进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段、数据集、堆等)及一些进程级的资源(如打开文件和信号),某进程内的线程在其它进程不可见;
  • 调度和切换:线程上下文切换比进程上下文切换要快得多。

线程与进程关系

协程线程的区别:

  • 1) 一个线程可以多个协程,一个进程也可以单独拥有多个协程。
  • 2) 线程进程都是同步机制,而协程则是异步
  • 3) 协程能保留上一次调用时的状态,每次过程重入时,就相当于进入上一次调用的状态。
  • 4)线程是抢占式,而协程是非抢占式的,所以需要用户自己释放使用权来切换到其他协程,因此同一时间其实只有一个协程拥有运行权,相当于单线程的能力。
  • 5)协程并不是取代线程, 而且抽象于线程之上, 线程是被分割的CPU资源, 协程是组织好的代码流程, 协程需要线程来承载运行, 线程是协程的资源, 但协程不会直接使用线程, 协程直接利用的是执行器(Interceptor), 执行器可以关联任意线程或线程池, 可以使当前线程, UI线程, 或新建新程.。
  • 6)线程是协程的资源。协程通过Interceptor来间接使用线程这个资源。

回调函数

【2022-10-8】10张图让你彻底理解回调函数

程序执行模式

  • 同步:一直等待直到另一个任务完成的模式
  • 异步:不再等待函数执行完成,而是直接返回继续后续流程
    • 通过回调(callback)函数实现
对比维度 同步 异步
要点 等待子任务执行完毕才继续 不再等待子任务,而是直接返回继续后续流程
执行逻辑
调用

回调函数:子函数中调用父函数任务

  • 在计算机科学中,回调函数是指一段以参数形式传递给其它代码的可执行代码
  • 回调函数就是一个函数,和其它函数没有任何区别。
  • 回调函数是一种软件设计上的概念,和某个编程语言没有关系,几乎所有的编程语言都能实现回调函数。
  • 回调函数被调用的时间节点:回调函数只在某些特定的节点被调用
void make_youtiao(int num, func call_back) {
    real_make_youtiao(num);
    call_back(); //执行回调 
}

即便用了回调,调用方完全不需要关心制作完油条后的后续流程,但是调用方依然会被阻塞10分钟,这就是同步调用的问题所在

  • 同步调用 → 异步调用

对比

  • 一般函数:自己编写的函数会在自己的程序内部调用,函数的编写方是自己,调用方也是自己。
  • 回调函数:虽然函数编写方是自己,但是函数调用方不是,而是引用的其它模块,即第三方库
    • 调用第三方库中的函数,并把回调函数传递给第三方库,第三方库中的函数调用我们编写的回调函数
  • 同步调用
  • 异步调用流程

为什么异步回调这种思维模式正变得的越来越重要

  • 在同步模式下,服务调用方会因服务执行而被阻塞暂停执行,这会导致整个线程被阻塞,因此这种编程方式天然不适用于高并发动辄几万几十万的并发连接场景,
  • 针对高并发这一场景,异步其实是更加高效的,原因很简单,你不需要在原地等待,因此从而更好的利用机器资源,而回调函数又是异步下不可或缺的一种机制。

回调地狱,callback hell

  • 可能认为有了异步回调这种机制应付起一切高并发场景就可以高枕无忧了。
  • 实际上在计算机科学中还没有任何一种可以横扫一切包治百病的技术,现在没有,在可预见的将来也不会有,一切都是妥协的结果。

那么异步回调这种机制有什么问题呢?

  • 实际上,异步回调这种机制和程序员最熟悉的同步模式不一样,在可理解性上比不过同步,而如果业务逻辑相对复杂,比如处理某项任务时不止需要调用一项服务,而是几项甚至十几项,如果这些服务调用都采用异步回调的方式来处理的话,那么很有可能我们就陷入回调地狱中。
// 同步模式,易于理解
a = GetServiceA();
b = GetServiceB(a);
c = GetServiceC(b);
d = GetServiceD(c);
// 异步回调,不易理解、维护
GetServiceA(function(a){
    GetServiceB(a, function(b){
        GetServiceC(b, function(c){
            GetServiceD(c, function(d) {
                ....
            });
        });
    });
});

进程池与线程池

【2022-3-11】Linux高性能服务器编程—进程池和线程池概念

池的描述和定义:Pool(池)的概念被广泛的应用在服务器端软件的开发上。使用池结构可以明显的提高你的应用程序的速度,改善效率和降低系统资源的开销。所以在应用服务器端的开发中池的设计和实现是开发工作中的重要一环。

进程池和线程池相似,所以这里只以进程池为例进行介绍。

进程池由服务器预先创建的一组子进程,这些子进程的数目在3~10个之间。线程池中的线程数目应该和CPU数量差不多。

进程池中的所有子进程都运行相同的代码,有着相同的属性,比如优先级、PGID等,因为进程池在服务器启动之初就创建好了,所有每个子进程都相对干净,没有打开不必要的文件描述符(从父进程继承而来),也不会错误地使用大块的堆内存(从父进程复制得到)。

当新的任务来临,主进程选择哪个子进程来为新任务服务,则有两种方式:

  • 1、主进程使用某种算法来主动选择子进程,最简单的算法是随机算法和Round Robin(轮流选取)算法。更加优秀的算法可以使任务在各个工作进程中更加均匀地分配,从而减轻服务器的整体压力。
  • 2、主线程和子线程通过一个共享的工作队列来同步,子进程都睡眠在该工作队列上。当有新任务来到时,主进程将任务添加到工作队列中。这将唤醒正在等待任务的子进程,不过只有一个子进程将获得信任的“接管权”,它可以从工作队列中取出任务并执行之,而其他子进程将继续睡眠在工作进程中。

当选择好子进程之后,主进程还需要使用某种通知机制来告诉目标子进程有新任务需要处理,并传递必要的数据。最简单的方法是,在父进程和子进程之间建立一条管道,通过管道来实现进程间通信。父线程和子线程之间的通信相对简单,只需要创建全局变量,因为它们共享全局变量。

使用进程池处理多客户任务时,首先要考虑的一个问题是:监听socket和连接socket是否都由主进程来统一管理。 半同步/半反应堆模式是由主进程统一管理这两种socket的;而半同步/半异步模式,以及领导者/追随者模式,则是由主进程管理所有监听socket,而各个子进程分别管理属于自己的连接socket的。 对于前一种情况,主进程接受新的连接以得到连接socket,然后它需要将该socket传递给子进程(对于线程池而言,父线程将socket传递给子线程是很简单的,因为它们可以很容易地共享该socket。

常连接是指一个客户的多次请求可以复用一个TCP连接。那么,在设计进程池时还需要考虑:一个客户连接上的所有任务是否始终由一个子进程来处理。如果说客户任务是无状态的,那么我们可以考虑使用不同的子进程来为该客户的不同请求服务

国产操作系统

“如果他们突然断了我们的粮食,Android 系统不给我用了,Windows Phone 8系统也不给我用了,我们是不是就傻了?” 2012年,华为创始人任正非曾在一场对话中这样谈到。

7年以后,在整个科技行业中,无论是PC、还是移动端,国产操作系统仍近乎空白。

并非没有过尝试。在过去20年中,研究机构、高校、国企、民企,宣布研发自主操作系统的不计其数,其中不乏中科院、中国移动、阿里等明星机构和企业。最终,却在内外的多重压力下,纷纷走向没落。

如果一定要给国产操作系统的发展定义一些“亮点时刻”,可能是在2001年红旗Linux中标北京市政府订单时,也可能是在2015年,阿里云OS赢得7%国内手机系统市占率时。但这些微不足道的亮点,早已消失在近20年的沉浮中。

发生了什么?究竟又是什么影响了国产操作系统的发展?可能是技术、可能是人才、也可能是时机,迄今为止,仍然无一定论。

眼下,时至4G与5G交替、移动互联网与物联网交替,新时代即将到来,在这个可见的未来中,我们会再次看到国产操作系统的身影吗?

红旗Linux往事

多年以后 ,梁宁回忆起那场关于操作系统的争夺战时,她将其形容为“大溃败”。

这是国产操作系统第一次对国际巨头发起挑战。从上世纪90年代开始,以中科院院士倪光南、中科院软件研究所副所长孙玉芳为首的一批科学家,在“中国必须拥有自主知识软件操作系统”的共识下,推出国产操作系统红旗Linux。

2000年,在红旗Linux发布半年后,中科院软件所和上海联创以6:4的出资方式,共同成立了中科红旗。

红旗Linux曾有过“辉煌时刻”,在成立仅1年后,红旗Linux成为北京市政府采购的中标平台。这次采购在行业内影响重大,当时,包括红旗、永中、金山等国产软件均中标,而微软却意外出局。此后不久,微软中国总裁高群耀辞职,据内部人士透露,此次为“被迫辞职”,原因与业绩不佳有关。

在微软价格高企、盗版Windows猖獗的当时,在政府订单之外,为了降低成本,联想、戴尔、惠普等公司也曾预装红旗系统。上线一年多以后,时任中科红旗总裁的刘博表示,国内Linux 的使用量比去年增加3、4倍,已经达到100万套。

正如倪光南所说,操作系统的成功与否,关键在于生态系统,需要能够搭建起完整的软件开发者、芯片企业、终端企业、运营商等产业链上的各个主体。出于这样的考虑,2002年,红旗宣布与国产办公软件永中合作,将红旗Linux和永中Office联合销售。

也正是软件,成为国产操作系统的致命伤。作为倪光南的助手,梁宁在2000年到2002年期间参与了Linux、永中office联合销售相关的工作。她回忆这段历史时,提到当时一个“要命的问题”:永中office、金山WPS等国产软件均基于Linux,这也意味着,他们与微软Office有兼容性问题。

她回忆说,时任北京市科委主任的俞慈声带头启动“启航工程”,召集中、日、韩三国技术人员,一起研究如何破解微软的文档格式,以实现读写和存储的完美兼容,但效果并不理想。我们“没有搞定用户体验”,梁宁写到。

噩运接踵而至,2005年,中科红旗董事长、国产系统力主者孙玉芳突发脑溢血去世,此后,公司连续曝出合资各方意见不一、管理不善等问题。

两年以后,微软向国际标准化组织提交了自己的office标准OOXML;与此同时,金山、红旗、永中等国内办公软件企业联合提出的UOF被确立为中国国家标准。制定标准者能够决定市场走向,早已是业内共识,在国际标准争论中,倪光南四处奔走,希望中国投出反对票,在他看来,OOXML一旦通过,中国软件及操作系统将面临空前压力。

最终,微软仍然以51票支持、18票反对获胜。

伴随着微软在全球包括中国市场压倒性优势的胜利,国产桌面操作系统日渐式微,其余国产操作系统中标麒麟、StartOS也鲜有用户。

2011年,永中科技宣告破产,2年后,中科红旗贴出清算公告,宣布团队解散。

运营商抢跑手机操作系统

在国产PC操作系统的种种遗憾中,不得不提到晚于微软15年起步的时间差。这意味着,当移动时代来临时,国产操作系统或将迎来一次新机会。

在iPhone问世的2007年底,Android(安卓)操作系统发布1.0版本,婴儿期的安卓系统优势并不明显。次年推出的HTC G1是世界上首个使用Android操作系统的智能手机产品,但因卡顿、死机问题显著,销量平平。彼时,在智能手机系统中,iOS、Android、微软、诺基亚“塞班”都在争夺着未来。

在中国,首个宣布推出国产手机操作系统的是中国移动。2008年,这款名为OMS的系统上线,号称要与Android并驾齐驱,打破几大国外智能系统的垄断。

OMS基于Linux内核、采用Android源代码进行开发,去掉google搜索、邮件等服务,集合中国移动的飞信、139邮箱等,并首批搭载于联想的移动定制机OPhone上。依照中国移动的想法,这是一种软硬结合的发展方式,可以“掌控移动互联网平台的入口”。

单以时间看,OMS操作系统可以说是抢占了先机,然而,由于基于安卓开发,而当时的安卓成熟度较低、经移动修改后体验更差。OMS手机上市后,许多用户购买联想OPhone的第一件事是手动刷机,换成其它系统。

由于反响惨淡,市场推广局面不利,几年之后,中国移动不再要求定制机搭载OMS系统,“首个国产智能手机系统”也逐渐悄无声息。

关于OMS的另一个争议是,这究竟是否是一个独立于安卓生存的操作系统?经过当时的许多技术人士分析,尽管OMS强调自己是自主系统,甚至在初期选择不兼容安卓应用,但事实上,OMS仍对安卓高度依赖,并需要跟随后者的升级而升级。

严格意义上,第一款“独立国产智能手机系统”的名号应该颁发给2年后发布的联通沃Phone系统。在发布当时,中国联通科技委主任刘韵洁即强调:“沃Phone与Android没有任何关系。沃Phone拥有完全自主知识产权。”正因如此,沃Phone系统也得到了国家级的多项支持,被列为国家核心核心电子器件、高端通用芯片及基础软件产品重大科技专项支持的课题成果。

图注:搭载联通沃Phone系统的定制机

不过,作为运营商,联通推出沃Phone系统的目的主要是置入自有业务,而并非抢夺市场。甚至,因为当时联通正在依托苹果iPhone的销售追赶移动,在沃Phone推广上,也平衡了这一部分利益。种种原因之下,沃Phone具备多种“先天劣势”:系统仅用于1000元到2000元的低端机、不兼容安卓应用、对每家手机厂商收取30元/台手机授权费。

更糟糕的是 ,尽管沃Phone只比移动OMS系统晚了两年,但在2011年,手机系统市场格局已是天翻地覆:OMS上线时,安卓尚仅仅占据5%市场份额,然而;伴随着三星Galaxy S的大获成功,安卓系统飞速增长,至2011年,其已经拥有超过50%的市占率,自此后,更是对市场中的其它系统呈现碾压之势。

此后,沃Phone一路溃败,2014年,其研发团队——深圳全智达通信宣布公司被同洲电子以2983.31万元全资收购。

阿里云OS的倔强与短暂辉煌

不想错过智能手机时代的不仅有运营商这样的手机界“老玩家”。时任阿里巴巴CTO、阿里云总裁的王坚曾透露说,最早,阿里希望直接进入手机市场,甚至与富士康等企业进行过洽谈,并与中国电信谈好了话费分成,但却在最后拍板时,选择了停止。“几个高管一起决定的,”他说,“手机不是阿里能做的,售后、库存,都是互联网公司不曾遇到的,这不是阿里的核心竞争力”。

退而求其次的阿里云选择了开发手机操作系统。摆在王坚面前的有两个选择,一是做安卓系统的再开发,二是研发对标安卓的自主系统。日后人们会知道,腾讯和百度、小米和华为等多家科技企业,均选择了前一种方案——毕竟,在已经势如破竹的安卓系统面前,坚持独立无异于自寻死路。

然而,王坚想做“自己的东西”。他的同事回忆说,王坚一直有着强烈的技术自主情节,“60后”的他常常遗憾于中国过去无法自己建造大飞机,“那么多优秀的工程师一辈子连造飞机的机会都没有”。

在王坚的坚持下,阿里云OS成为第一款由互联网企业打造的自主操作系统。阿里云率先和天云、海尔合作推出手机。然而,当阿里云进一步与宏碁手机合作时,在2012年9月13日的发布会开始前一小时,由于受到谷歌施压,宏碁取消了这次合作。

“如果在新产品上搭载阿里云操作系统,谷歌公司将会解除与其安卓产品的合作和相关技术授权”。”根据一财报道,阿里云在当时的官方声明中这样写道。

之后不久,谷歌确认了这一消息,他们同时带来了一个坏消息——在声明中,谷歌将一贯宣称为自主操作系统的阿里“云OS”定义为“非兼容版安卓系统”,意味,虽然云OS不兼容安卓应用,但仍然是一个变形版的“安卓”。

一时间,业界对阿里云的质疑扑面而来。云OS究竟是否涉嫌抄袭?根据王坚的解释,一个安卓手机的架构基本包括底层开源Linux、中间层虚拟机和上层应用框架,其它企业选择的“再开发”是指自己定制应用层,而阿里深入至中间层,打造了自有的虚拟机。

无论结论如何,这次纷争对于云OS是一次重大打击。谷歌能够要求宏碁停止与阿里合作,因为宏碁属于OHA(开放手机联盟),这是一个由谷歌发起的组织,成员可以提前获得新版安卓,在海外市场认可度极高。

彼时,国内华为、中兴、联想、OPPO、HTC,国外摩托罗拉、三星、LG、索爱等主流手机企业,均为OHA成员。阿里云与宏碁合作流产,昭示着与这些品牌合作的可能均付之东流。

王坚当时几乎成为众矢之的,他后来对媒体说,“在推出阿里云OS的这一年,我遭到的骂比这辈子都多。”一年之后,王坚卸任阿里云总裁。

不过,从当时的动作看,阿里对于YunOS是寄予厚望的。2012年9月20日,阿里宣布YunOS将独立于阿里云事业群运行,受阿里巴巴集团直接管理。此外,阿里宣称,YunOS成为阿里巴巴集团的战略级产品,将向其投入2亿美金。

2013年3月2日,YunOS网站上线,系统名称也从阿里云OS更名为阿里巴巴YunOS。

云OS究竟是否为自主系统的争议延续了很长时间,不过在阿里力推下,YunOS的发展没有停滞。在2014、2015年,凭借与魅族合作,YunOS曾一度占据国内手机操作系统份额的7%。这堪称是YunOS的巅峰时刻。

不过,随着小众手机市场逐渐萎缩,YunOS声量逐渐减小,在最近数年,当阿里再次公布YunOS的更新版本时,已不再强调这是一个“手机操作系统”。

困境中的机遇

20年沉浮,始终力主国产自主操作系统的倪光南也从60岁向80岁迈进,而国产操作系统仍未迈进主流市场——在这一点上,甚至还不如芯片。

在很长时间里,不仅市场对国产操作系统的使用体验评价不佳,甚至由于某些“前科”,导致国产操作系统在舆论中常常中与“骗局”绑在一起。

最著名的一起造假案发生于2006年,国发科技大学负责研发的麒麟操作系统被曝出与开源代码FreeBSD在源代码上高度相似。分析者认为,尽管麒麟宣布拥有完全自主版权的内核,但事实上,创新程度可能仅为10%,麒麟官方被迫承认了这一事实。

“许多国产操作系统厂商的出发点在于国家补贴,而不是商业化角度。”曾有业内人士这样表示。在这一环境下,使用者意愿不高,研发者动力不足,近年以来,先后推出的COS、960 OS、元心OS等国产操作系统,均无甚声响。

然而,自2018年以来,种种迹象表明,市场需要一款或多款成熟可控的国产操作系统。

机遇潜行,市场意愿也在提高。2018年5月,腾讯CEO马化腾在一次论坛上表示,作为应用开发商,希望可以支持更多服务,“在国产芯片上能够运行、包括国产操作系统上也能够运行”。

华为消费者业务CEO余承东也曾在采访中表示,“我们已经准备好了自己的操作系统,一旦发生了我们不能够再使用这些(来自 Google 和微软的)操作系统的情况,我们就会做好启动 B 计划的准备。”在最新的消息中,这款“B系统”被称为麒麟OS,也有消息称其真名为“鸿蒙”。

在一篇“华为老兵”的自述中,作者表示,自己曾与倪光南讨论,两人彼此都认为,如今的移动互联网环境对国产操作系统已经更加友好:首先,作为超级App,微信已经通过小程序构筑了丰富的生态,用户可以减少App;其次,随着国内移动互联网的快速发展,目前国内用户主要使用的App均为国产。

两个论据指向同一个结论——如果中国市场在当下推出国产操作系统,只需得到国内企业的支持,不会重蹈被微软、谷歌限制的覆辙。

另一个可能对国产操作系统形成利好的是,随着智能手机产业走向成熟,科技界已经将目光投向下一个时代:车联网和物联网。而历史告诉我们,每一次科技时代的变迁,都会有可能造成产业链各个层面的洗牌,这其中包括终端商,也包括操作系统。

在最近两、三年中,折戟手机市场的阿里YunOS仍在持续更新,在2016年确立首个IoT物联网软件开发国际标准,此后不久,YunOS加入物联网标准组织ZigBee;2015年,华为首次推出了物联网操作系统Lite OS。

最新的消息是,美国东部时间5月20日,据英国金融时报,华为西欧业务副总Tim Watkins称,在谷歌表示会限制向华为提供部分安卓系统服务后,华为正准备发布自己的手机操作系统。Watkins提到,华为之前就在打造该系统,已经在中国的部分地区测试,预计很快能推出。

今天的市场环境正经历风云变幻。在接下来的科技市场中,会有中国操作系统的一席之地吗?只能说一切皆有可能。

操作系统往事

18年前,斗不过微软,18年后斗不过安卓,实际上斗不过的还是自己:一如既往地急功近利,趋利避害,聪明人都在琢磨怎么快速致富(炒房,金融,区块链),剩下几个堂吉诃德似的傻子,勤勤恳恳,屡战屡败,仍然不忘初心,超越个人利益,为我们的未来振臂疾呼…国产芯片和操作系统往事

主要内容: 一段关于国产芯片和操作系统的往事

Original 2018 梁宁—–

中兴事件引发一片网络热议。什么“这次被美国卡住的芯,一万年也要搞出来”、“中国芯老炮:缺芯是因为缺钱”“国产操作系统,要靠BAT”……这种言论看得我胸痛。忍了几天,今天忍不住了。说说自己经历的一段往事。不知不觉写了一万字。分几个部分:辉煌开局、第一第二棒的困难、系统生态的困难与大溃败、复盘方舟和永中错在哪里、为什么我们做不出操作系统。

2000年到2002年,3年时间,我作为倪光南院士的助手,参与了方舟CPU、永中Office、NC瘦客户机和Linux操作系统的工作。

辉煌开局

辉煌开局

  • 2000年到2002年,3年时间,我作为倪光南院士的助手,参与了方舟CPU、永中Office、NC瘦客户机和Linux操作系统的工作。
  • 2001年,方舟1号横空出世。被媒体称为“改写了中国‘无芯’的历史”。科技部863重大专项、计委重大专项、信息产业部产业扶持基金全都给了钱。

方舟1号的技术鉴定委员会由中国工程院出面,前任院长宋健、前任副院长朱高峰亲自担任鉴定委员会正、副主任。

2001年7月10日,方舟1号发布,北京市前副市长刘志华亲自当发布会主持人,曲维枝部长等几个部长都到了现场发言。之前,还有李岚清副总理3次听取工作汇报等。

这就是当时方舟1号CPU得到的待遇。最高规格人、钱支持,全到位了。

我从2000年开始参与方舟的项目。呈送863、计委(现在叫发改委)、信产部申请支持的报告,我都是执笔人。技术鉴定会、新闻发布会都参与筹备。

难以忘记2001年4月,第一批流片回来,紧张的调试之后,我们看到自己动手设计的CPU启动工作了。刘强看着我眼睛说:“芯跳了”。那一刻,难以忘怀。或许,这是那件事里,最美好的一瞬间。

方舟科技是加拿大华人李德磊创办的企业。

李德磊1977年从哈尔滨工业大学毕业后来到中国科学院研究生院读研,后赴加拿大阿尔伯特大学读博。然后就留在加拿大。

1997年1月8日,方舟科技的前身百拓立克公司在京注册成立。主要靠李德磊介绍外包业务。

1997年,离开摩托罗拉的李德磊加入日立(美国)半导体公司,担任微处理器设计总监,与此相对应,BBT承接的外包业务也从摩托罗拉转向后者,主要做基于日立芯片的相关业务。刘强那个时候博士毕业,加入任研发副总裁。

1999年,李德磊找到倪光南,倪光南看到这里磨练了一支做CPU的完整技术队伍——这是他梦寐以求的。

当时的背景是,中国IT产业界,以及倪光南本人一直为没有自主知识产权的操作系统和芯片耿耿于怀。(18年了,还是如此)

当时的科技部部长徐冠华曾说,“中国信息产业缺芯少魂”。其中的芯是指芯片,魂则是指操作系统。

于是,倪光南帮方舟找钱、找政府、找中芯需要的一切资源,而他本人没有从中芯拿一分钱,零股份。他愿意付出一切,他想要一个新的IT产业核心框架。

倪光南院士给我讲方舟CPU+Linux操作系统,做成瘦客户机NC,“云+端”解决方案,替代Wintel架构的时候,我当时兴奋得紧紧攥住拳头,指甲掐进肉里。

我们以前在联想,玩的是Wintel联盟(微软与Intel联盟)设计好的游戏。Wintel就是你的顶层,你的成本与性能只能在它框定的空间里。

而现在,我们这群人,正在动手改变核心框架。给我们的IT产业带来完全不同的,成本与性能的想像和设计空间。这件事简直太棒了。

第一棒和第二棒的困难

那是激情燃烧的岁月,敢为的俞慈声任北京科委副主任。曾被邓小平关注的李武强从美国回来在科技部产业化司任副司长。大家都想做事情。

我们有了CPU与SOC的技术,政府给的钱也到位了,芯片也做出来了。下一件事,就是面向市场面向用户了。

这时,真正的困难才开始。

做CPU最难的不是开发。

第一步,你不是写不出INTEL那样的设计,而是你打不起官司。

欧洲从工业革命开始,就认识并懂得保护知识产权的价值,以激励知识创新。

美国青出于蓝。只要是个Idea就可以注册专利。

专利保护,是Intel的核心竞争力之一,Intel长期大规模的专业律师团队,几乎把X86体系相关的专利全注册了。

为什么还有AMD。INTEL是IBM的股东,IBM是AMD股东。就是这样。

所以对方舟的团队来说,不是X86体系的技术难度高,而是在这条道路,每一步,你都会遇到INTEL的专利。我们打不起官司。

所以,倪光南做的技术路线选择是,走RISC结构,做嵌入式,绕开X86体系。

接着第二难的是,在2000年之初,中国IT产业不但做不出CPU,而且连基于CPU,自己动手设计核心电路板的能力都没有。

那时,中国还有电子产业企业百强的名单。我们联想排第二。

反正背后有倪光南、有宋健等一堆大佬,我拿着中国电子企业百强名单,从第1名找到第100名,找了每一个大公司的总工程师。

对话永远是这样:

  • 我:“我们有自主知识产权的CPU,我们还有SOC的能力,这样,我们可以极大地把你要的功能集成,贵司可以更灵活地定义你产品的性能和体积。”
  • 对方:“哎呀,对不起。我们没有能力基于一块CPU开发产品原型。都是INTEL或者他的Design house做好公板,我们选一个,然后基于他们的公板我们再开发。”

我们这才发现,Intel不是做出了CPU,而是培育了一个基于CPU的开发生态系统。

  • 第一棒是核心元器件。
  • 第二棒是无数小的Design house围绕Intel做公板、做产品创意、做产品原型、做差异化做优化。

然后,下一棒才是,面对市场的企业,从Design house挑选产品原型,做商品化包装。投放市场。做品牌、做销售、做客户服务。

而2000年的时候,我们的电子产业百强,基本上都是第三棒。

所以,当我们做出CPU,而且芯跳了。我们把它捧到手上,想献给别人。中国没有一家第三棒企业能接。

没有办法,只能向前。

于是方舟科技在做完CPU后,又建立硬件团队,自己做出了NC的产品原型,做出了公板。等于一家本来就规模很小的CPU设计公司,还必须同时干Design house的活。

终于CPU和产品原型都OK了,可以交付一个第三棒企业商品化运作了。俞慈声拍板,北京政府第一个吃螃蟹。

系统生态的困难——大溃败

下一个问题来了。更大的难题。Wintel联盟。勉强绕过Intel,更难突破的是微软。

CPU做出来了,再自己做原型,然后自己做产品。做完产品,发现没有配套软件可用。

一块NC公板,方舟科技咬咬牙就自己干了。

但是那么多的软件移植、适配、二次开发,真不是1家、10家、100家公司干得完。

这时俞慈声发起了“扬帆计划”,针对Linux桌面的13大类50多个问题,在全国进行招标。浏览器、OFFICE、播放器……一项一项解决。

接着,就干了那件圈子里著名的事——北京市政府办公软件选型,把微软踢出局。那件事IT圈轰动一时,微软中国总裁高群耀辞职。然后基辛格给当时是北京市长的刘淇写信,为微软说情。施压处置俞慈声。(没想到吧,美国大政客也为自己国家企业服务的。那时中国刚刚申奥成功,基辛格的施压,是大BOSS级杀伤力)。

那是2001年的冬天,北京最大的一次雪。那一天,十余个院士联名上书总理,为俞慈声说情。已经过世的中国计算机事业创始人之一、中将、两院院士张效祥第一个签字,倪光南院士也签了名。

据说朱总理看到十余位院士的联名,一时动容。

863计划,来自1986年3月,4位院士联名上书邓小平总书记。因为时间发生在是1986年3月,所以简称863。从此这就是中国高科技发展重点计划。启动863是4个院士联名。保俞慈声,有十几个院士。

我一直记得这件事。

后来赋闲在家,看《圣斗士星矢》,12黄金圣斗士为了打穿叹息墙的一线光,一起赴义成仁。十几个院士签下自己的名字,对他们没有任何好处。他们只是想守护一线光。

所以,我不愿意回忆这段往事,因为我们失败了。从此我们成了很多人的笑柄。尤其是倪光南院士。

这是10年后,我加入腾讯以后,才学会的一个词——用户体验。这一仗如果简单来说,就是我们搞定了总理,没有搞定用户体验。结果是溃败如山。

第一个要命的问题,是基于Linux的Office,包括Red Office、永中、WPS与微软的文档格式兼容问题。我们都知道,换了OFFICE打不开历史文件,打不开别人给你的文件,这是要命的事。

2003年,俞慈声又搞了启航计划。召集中国的所有Office高手、还邀请了韩国的HancomOffice、日本的一太郎技术人员。中日韩三国高手一起破解微软的文档格式,以期能读能存。

效果不好。

除了文档格式,其他的软件体验,用户各种不爽,那就太多了,大家用脚趾头想一下就好了。用户普遍怨声载道,要求换回Wintel。就这样,我们失败了。

后来,方舟CPU停止开发。永中破产清算。那几万台政府为了扶持一个产业,而买单的NC,估计早就卖了废铁。

几年后,比尔盖茨自己公开了Office的文档格式。我看到这个新闻的时候,感觉自己脸被门板夹了。

我通过视频,看着这个在哈佛毕业典礼上开玩笑说“爸爸,我终于拿到毕业证啦”的人,这个退休后做慈善的人,会在做《时代周刊》值班编辑的时候选个患病的男孩当封面人物的人。

我想这个人是天使还是魔鬼。

他真的做了很多好事。可是他压得整个中国没有了通用软件产业。

当个小商人,世俗的成功挺容易的

2003年,我离开了倪老师的联盟,走得非常难过,觉得自己是一场伟大牺牲战里的逃兵。

2008年,我创业做网站的时候,一个小孩晚上闲着,装了最新版的红帽子桌面。我从旁边经过,一眼看到,就停下来,然后就用。试试这个试试那个,心潮起伏,恨不得大哭一场。如果2002年,桌面能有这个水准,这一大票人,应该不会输得那么难看吧。

离开倪老师后,颓了一年多,那段时间,不少人找我干活,多半两类事情,一类是“我代理了个产品,你帮我在中国建设一下渠道”。或者“我做了个产品,你帮我跑跑政府关系”。这两类事,我都再也不想做了。可是除了这个,我并不会别的。

后来,我投奔王路。我跟他说:这么多年,我学的东西,只有给一个特别大的系统干活才用得着。我想在你这里,学点能养家糊口的具体本事。

后来,王路让我当一本准备关门的数码杂志的总经理。

我从王路那里出来,给雷军打了个电话。说:“我要上班了。”雷军让我去他办公室找他。问我做什么。我给他看手中的杂志,说做这本杂志的总经理。

  • 雷军说:你为什么要干这个?
  • 我说:找不到工作。
  • 雷军说:可是你为什么要做这个?
  • 我说:学点一个人也能做的,能养家糊口的小本事。
  • 雷军说:那你就干这个吧。

杂志的总经理,其实就是广告销售。

以我给计委写重大专项数亿提案的素质,给广告客户写个三五十万的广告提案,应该算不难。第一次一个客户提出要回扣。我不能确认难道这就是要钱?但是想想,还是试着给吧。

我请这个客户吃了个饭,拿了个信封。一顿饭,俩人都心不在焉,都不是为了吃饭和交流。然后我把信封递给他,他没有任何推辞客套,极为流畅地收到兜里,告辞而去。

那天晚上,我流了好久的眼泪。

以前,我每天起早贪黑去努力,是为了友谊和荣誉。

从此,我做的事情,没有半毛钱荣誉可言,只做一个拉广告给回扣的小买卖。

后来,我学着做网站,后来,我把网站卖给腾讯,后来…… 10年过去了。世人眼中,我算是成功了。

倪光南院士还在坚持

2014年初,我离开腾讯。办完手续,我给倪光南院士发了个微信:倪老师,我离开腾讯啦。倪老师回说,你来找我一趟,我这里正好有个事情。我就去看他。

2013年政府采购,研究对Win8的策略,咨询到倪光南院士。

倪光南院士直接上书习 总书记,直言建议:“基于共享软件架构,开发发展中国自主可控的操作系统。”

倪光南院士的报告正文不到800字,总书记手写批示了200多字。“计算机操作系统等信息化核心技术和信息基础设施的重要性显而易见,我们在一些关键技术和设备上受制于人的问题必须及早解决。”

十多年过去了,经历过失败、非议,他自己向科技部负荆请罪种种,倪老师还在坚持。

14年初我去看他,他身上穿的那件棉服,还是2001年的那一件。

倪院士依然信任我,直接拉我和他最核心的几个人一起商议该如何推动,在移动场景下的自主可控操作系统。

10年过去了。打败微软的是Google和苹果。微软还是那么强,只是PC时代结束了。

俞慈声、李武强都已经退休。李德磊不知所终、永中破产清算。

刘强2005年离开方舟成立了君正,并于2010年IPO。现在360摄像机、小米手表等多款芯片用的多是刘强做的。2000年倪光南院士对方舟CPU的投入,还是有了成果产出。

华为买了ARM的授权,做出了海思芯片。

小米也豪掷几个亿开发了松果处理器。

就像10多年前一样,只要搞定知识产权问题,选择技术路线,找会干的人,投入干,CPU/芯片就能够做出来。

搞不定的依然是操作系统。差距大的依然是生态。

当年,绕得过Intel,跨不过微软。

如今,绕得过Arm,做不出安卓。

那一段,跟着倪老师,参加了几场高端的会。满场朱紫,还说着14年前的话语体系。我发现自己变了。在类似的场子里,今天的我和14年前的我,感受完全不同。

过去10年,我没有给一个领导汇报过工作,没有一分钟的时间,用来揣测领导意图。

我只需要持续做一件事,就是洞察用户需求,优化用户体验。

这和在系统里做事,是完全的两个方向。

第二次,我又离开了倪老师。我当时认为自己可以直接判断,这事做不成。

就是说如果做法不改变,也许还是可以拿到很多钱,很多资源、批到地,盖起楼,但是做不出操作系统的生态。

安卓有三:

  • 1、不断迭代优化的安卓系统本身
  • 2、现在大家已经非常习惯的基于安卓的各种应用:微信、商务、游戏、生活、娱乐……
  • 3、全球无数团队,基于安卓在源源不断地创意,开发新的应用,不断繁荣、优化这个生态。

15年前,做当时桌面办公应用的移植,已经让那群勇士折戟沉沙。现在,数量远大于过去几个数量级的应用移植,还有更为庞大丰盛的生态。还是原来的体制,还是原来的套路。面对更大的一仗,完全没有赢的机会。

从一个公司辞职,与离开一个人,不再陪着这个人,支持他的理想,是完全不同的感受。

我从联想辞职,从腾讯辞职,都可开心了。

但我一直为第二次离开倪光南院士而深深愧疚。

那时他已经75岁。这是他一生的梦想。我是他喜欢并且信任的弟子。我没帮他。

复盘方舟和永中

今天再复盘,十余年前方舟和永中做错了什么。

先说方舟。

首先方舟科技,是李德磊个人的公司。李德磊开这个公司的目的,是赚钱,他的选择自然事什么能赚钱做什么。

倪光南看上了这家公司的人才储备和Know how储备,拉上了自己的全部人脉与信用,希望通过一个项目,让方舟的人才储备和Know how储备凝结成可持续发展的IT系统底层。

这件事错在哪里?

就是我在我的《产品思维30讲》里,提到的组织原则。顶级组织至情至性,

  • 一流组织共同信仰,
  • 二流组织共同利益,
  • 三流组织共同规则。

所以,用这个组织原则我们来看一下为什么李德磊背信弃义。

首先,李德磊与倪光南的关系,至情至性,肯定没有。共同信仰,更是没有。共同利益,还也没有。

李德磊要的利益是个人收入最大化。

倪光南要的利益是让方舟的人才储备和Know how储备凝结成可持续发展的IT系统底层。

所以,二人合作的基础,就是在倪光南能够持续满足李德磊的利益诉求的情况下,大家可以“共同规则”。也就是说,一旦,李德磊对倪提供给他的利益不满意了,规则就顿时对不齐了。

所以,后来NC的市场起不来,李德磊立刻对863违约,转而做其他业务赚钱。当然李德磊把一些事处理得非常难看,更令人诟病。

但其实从根本上,李德磊与倪光南就不是一个可共谋大事,扛大压力的组织。

如果说方舟的问题是组织基础,永中的组织核心其实很好。章燕青与曹参何止共同利益、共同信仰,简直是至情至性。永中的问题是产品定义和用户体验。

还是我的《产品思维30讲》里,用一节课讲用户价值公式。这个公式其实是俞军提出来的,我深以为然。

用户价值 = ( 新体验 - 旧体验 ) - 替换成本

你要得到一个用户,依靠的工具是用户价值。用户得到价值足够高,他就会迁移。比如:几亿用户很流畅地从短信迁移到微信上。

什么叫得到一个用户。我们曾依靠政府指令,把永中Office装到数万政府公务员办公电脑上,我们得到这个用户了吗?

好,先算算永中Office给用户的价值是多少。

如果微软的office软件使用体验90分,价格体验50分,两项一乘,微软office软件带给用户的旧体验算45分。

永中Office使用体验70分,价格体验咱们算90分,两项一乘算63分。永中Office,自己可以单方面说,自己带给用户的新体验算63分,比微软好。

可是还有替换成本啊,用户的替换成本包括什么?品牌认知、获取成本、学习成本、使用成本,使用成本包括使用过程中遇到问题可以得到及时帮助等。

我们知道,比尔盖茨长期是世界首富,微软公司的品牌、渠道、产品成熟度、客服服务系统,包括网上随处可见的用户分享等,还有我前面谈到的文档格式兼容的问题。用户替换成本其实挺高的,我们往低里算,用户的替换成本是20分吧。

那么

用户价值=新体验63分-旧体验45分-用户替换成本20分=负2分

就是说我们使劲偏心地给永中Office打高分,给微软打低分,无视用户迁移成本,而用户几乎没有得到新价值。根本够不成用户迁移的意愿。

同时,我们需要注意,政府采购是单位付钱。所以,实际使用的用户对价格体验其实是无感知的。

所以,如果以用户感知的体验来打分是:

永中的用户价值=70-90-20=-40分

事实上,比这个分数还要低。

你以“爱国”绑架,让用户价值下降那么多,用户怎么不怨声载道。找各种理由回到以前的舒服境遇里。

曹参对永中的核心竞争力定义为“数据集成”。

他分析说“微软Office软件有着相当明显的缺陷:Word、Excel和Power Point是三个独立的、无法集成的应用软件。

如果把文档处理、电子表格以及幻灯片制作集成在同一个程序里,那么用户修改了文档里的数据后,电子表格和幻灯片里相应的数据会自动修改过来,不需要用户再亲自逐一找出必须修改的地方。”

我去!一个数据要同时在Word、Excel和Power Point被引用,这是一个非常非常低频的应用场景好不好?

我刚刚回忆了一下过去5年,我自己的文档操作,用不到一次“数据集成”。

在永中,曹参是无可争议的产品核心,章燕青无比支持曹参,永中上下无比团结奋斗。倪老师当时带我去永中的路上,对永中的集体奋斗精神赞不绝口。

(当时我们在等车,倪老师说“给你买个冰激凌吧?草莓的怎么样?”唉,为了这个冰激凌,我两次离开他都对不起这个冰激凌。)

回到永中,永中的问题是,没有花足够的注意力,在用户最高频的使用场景中,提升用户体验。

反而花了最核心的力量,为了一个用户5年也用不到一次的场景使劲下功夫,还为此沾沾自喜。

我在网上看永中的结局和曹参的回忆,曹参把怨恨放到了收购永中的唐敏等人身上。

其实不应该。永中因为欠债1000万人民币,被破产清算。

1000万人民币,北京一套普通房啊。如果产品的用户价值清晰正向,筹1000万人民币,不难啊。

永中有坚实共同扛压的组织,有很好的开局,也做出了7、8成的产品。但是败了。

曹参的回忆文章里,有对自己创新点的自诩,有对对手的怨恨,但是没有完整的用户场景、用户体验地图、用户价值。

马化腾说:产品经理不能为了自己的自尊心而战。

改变体制的考核方式,才有可能培养创新生态

复盘了我对方舟和永中这两个十余年前的明星企业,核心败局点的理解。那时我们确实犯了错。我们在组织设计、用户洞察、用户体验等多方面都错了。但是政府一次重大项目支持失败,十几年后,中国还是没有芯片和操作系统,这不是我们的错。

再尝试探讨一下,为什么二十几年过去了,我们有了数不清的高楼大厦,很多县城都建设的跟北京似的,我们有了新四大发明。

但是我们还是没有操作系统。

在信息社会的国际空间里,中国是个网络强国。不过这个网络强国架构在微软的Windows和Google的安卓上。

2014年,我陪倪老师参加一次好像挺高端的“移动操作系统生态研讨会”。

我说,我们国家如果真的想要一个“移动操作系统生态”,其实挺清晰和明确的,就是国家出钱,投种子,一年往市场里撒1000亿,连撒5年钱。允许大面积失败。

在场官员然后就谈到了如何从科技园拿地做高政府投资的资产,以保证投资成果……

我无语。然后退出。

为什么我们建的了房子,放的了卫星,但是做不出操作系统?这其实和联想把Wintel框架的PC卖到全球第一,但是不能向内再走一棒,去做核心技术,也不能向旁边再走一步,拥抱互联网和移动互联网。原因是一样的。

就是体制的集体心智模式,高度依赖确定性。在确定性的框架内,内部人才高度竞争、不能容纳失败。结果就是过度管理。所有的人都以确定确定再确定为荣。不确定是恐惧,是慌张。失败,是羞耻,是污点。而创新、创意,从萌芽到长成,就是与不确定与失败的一路相伴。

这是联想还是我们的体制,恐惧和不能容忍的。

而市场导向的企业呢,他们跟着用户走,跟着市场走。

14年,倪老师再次推动移动操作系统,让我和腾讯谈,能否把微信移植到自主可控的操作系统上。

我马上找了腾讯的大佬,讲了有总书记手谕的事,然后问微信能不能移植。腾讯人的反应与我预期一致:我们跟着用户走。没有用户量,工作没法安排。

所以,有篇文章《国产操作系统要靠BAT》,指望每个季度得发财报支撑股价的上市公司?别扯了。

方舟和永中拿了多少钱

今天,回头看,被视为重大失败,折了无数英雄的方舟、永中项目,一共投了多少钱呢?

“方舟3号”研发经费拨款1538万元,如按照“863课题”的项目预算要求,给科研人员的工资部分不得超过15%,约230万元,那么方舟公司参与研发的近60位工程人员每月工资也就2千多块钱。

按照科技部有关科研资金使用的相关政策规定,用于工资、劳务费、单位提成等方面的资金,在事业单位不超过5%,科研转制企业不超过10%,企业单位不超过15%。“863课题”如果是给高校来做的,15%给科研人员发奖金很正常,但是公司做课题这么15%发工资肯定不够。

李德磊的说钱太少了,根本不够发工资。然后遭到“863”专家的嘲笑。这位专家解释说,芯片项目资金主要用在流片和EDA工具上面,人员工资只是小头。

无视市场的人才争夺,市场定价。以维护官家定的规则为中心。我就是这样要求。你做不到,你就是错的。

无视市场,无视人性啊。

刘强、我这样的人。我们干点容易的事,很容易过得不错。如果找到我们这样的人,让他们干最难的事,还要给最少的钱。我们的官员为何这样理所当然。

永中呢?

曹参自述:自2000年到2008年,永中科技获得政府拨款达8000余万元,投在产品研发上的资金达1.52亿元。同一时期,产品销售收入仅5000余万元,公司累计亏损了5000余万元。

这就是我们国家对CPU和Office最大的重大专项投入。

是不是一堆90后投资基金经理看了都笑了?

我们有新四大发明:高铁、扫码支付、共享单车和网购。用脚趾头回忆一下,这新四大发明是烧了多少钱烧出来的?

不用回想千团大战、不用回想打车补贴大战。2018年,把同龄人甩在身后的那个摩拜单车,一个单车公司烧了100亿。

一家公司烧了100亿,共享单车烧了数百亿,成果是,每个城市可以骑共享自行车。

为了中国自主知识产权的CPU+操作系统+核心办公软件,一共烧了多少钱?把当年变成废铁的NC全都算上。

20亿,有没有?

这件事,这个数字,就成了恐怖记忆。然后,所有的公司、所有的官员,全都吓破了胆。

十几年后,国家为中兴支付罚单。一笔8亿美金。

但是,这些钱,国家付出来,官员没有错误。这就是我们的体制选择。

会犯错的事,没有人再敢干了。十几年前,李武强以不怕丢“乌纱帽”的姿态站出来。这种“傻子”,十几年,也就那么几个吧。何况几个傻子还失败了。前车之鉴啊前车之鉴。

谁的妄境,谁的羞耻

所以,我说政府要操作系统。需要的,不是投资一个团队,而是烧钱烧出一个生态。就是烧钱。容忍失败。

战国时期燕昭王于易水之畔筑黄金台,招天下之士,谁有能力,现场抽一块黄金与之。市场与人性如此,我们何苦自欺欺人。

人家一自行车烧100亿,我们一个国家的操作系统,复杂庞大的生态,需要无数人参与。难道您打算,确定性地投几个公司,少少给上几个1500万,然后去打安卓?

这是谁的妄境?

为什么说挑战安卓比挑战微软还难?

因为今天,基于安卓的生态更庞大、更繁荣、更高频。

从办公、商务、生活、娱乐。一个个人以及企业的数字空间,几乎都可以利用手机完成。我们对移动场景的依赖,远远大于桌面。

微软OFFICE投了多少钱?

微软是上市公司,公开财报,2016-2017年度,微软一年的研发投入是124亿欧元。1000多亿人民币。

微软一年研发投入1000亿人民币。我不知道这中间,多少钱用于OFFICE。但是无论如何,永中8年花了1.5亿,挑战失败,成为重大污点。我不知道这是谁的妄境,谁的羞耻。

18年前,倪光南院士和我叹气:“纯计划经济也好,纯市场经济也好。都能做出大东西。”

18年后,2018年倪院士已经79岁,还在为了中国自主可控的芯片与操作系统奔走呼吁。

世人眼中,他是一个唐吉柯德。被柳传志逐出联想,曾经推动的重大项目未能完成。为了这个梦想被一个又一个人利用。

而他明知道自己在被人利用,还是宁可冒着一世英名赴水流的风险,还是继续尝试、继续努力。

不作为,无过错的人们嘲笑他:“不识时务”、“老被人骗”、“被人骗了还在继续做”……

然后所有人,继续直接间接地为“无芯”买单。

我不知道这是谁的妄境,谁的羞耻。

结束语

这段往事,因为充满了激情、失落、怀疑、愧疚种种复杂的情绪,所以我非常不愿意回忆。

今天趁这个机会,提一口真气,把它写出来。

没有给倪老师看。因为倪老师是个真正的君子。如果给他看了,他一定会为这个人避讳,为那个人考虑。

从昨天晚上,突然想写,今天早上6:00再也睡不着,爬起来,一口气写了一万字。也许该写的不该写的,我全写了。这是我的个人视角,个人叙事。

某年,我和郝玺龙一家还有他的朋友几人,一起去长白山玩。夜宿山脚下的农家院。居然在这个农家院里,遇到了刘强。方舟一别,没想到多年之后,居然在千里之外,这样的地方再见。昔日的英挺少年,鬓已斑斑也。那时他已经创办君正。方舟往事,大家都不愿意再提起了。那么多好战友,我们散了,都没有道别过。

但是,曾经的尝试、努力、错误、牺牲。发生过就是发生过。

把此文放到互联网上,以此向当年曾并肩作战过,彼此支持,彼此抱怨,没能好好道别的战友、老师说一句:谢谢、珍重。

结束


支付宝打赏 微信打赏

~ 海内存知已,天涯若比邻 ~

Share

Related Posts

上一篇 阅读指南

标题:阅读指南

摘要:怎样才能快乐的在这个博客徜徉?

标题:计算机发展史-Computer History

摘要:计算机发展历史,编程语言诞生过程,及几位关键人物

Comments

--disqus--

    Content
    My Moment ( 微信公众号 )
    欢迎关注鹤啸九天