全面向对象,矩阵操作系统
作者 matrixos | 2012-03-06 10:49 | 类型 新兴技术 | 190条用户评论 »
在人类的认知世界中,我们总是习惯于把事物按照个体对象来感知和总结,例如,一辆汽车,一座房子,一个人,一棵树等等。同时,一个对象又可以分解成多个小的对象,例如,一辆汽车由发动机,轮胎,方向盘等各种组件组成;再进一步,又可以分解成更加微小的对象,例如,发动机可以分解成若干个小零件构成;更进一步,每个微小的汽车零件,又可以分解成极小的分子、原子组成。这是人类对现实世界的认知模式,我们可以总结如下几个基本概念: 1、对象,个体是组成客观世界的基本单位。 2、对象,个体的定义可以宏观,也可以微观,主要根据我们认知的层次需求。 3、对象之间可能有相互作用和依赖的关系。 4、对象可能会随着时间的流失,其本身发生变化。 5、大多数对象存在于有限的空间和时间中。 6、任何一个对象个体都是唯一的,世界上没有完全相同的两片树叶。 7、有生命对象,和无生命对象。 8、………… 人们已经证实,对象概念符合人类认知的思维习惯,有利于软件开发和应用,传统的面向对象设计语言如c++,java等正被主流与用于各种软件系统的开发。但是目前,这些传统的面向对象程序设计并没有做到完全的面向对象理念。例如:当我们用c++开发应用程序时,在源代码中设计定义类: Class classXxx{,,,,,,}; 再根据类去定义对象: classXxx objXxx; 然后调用对象的函数或访问对象的变量: objXxx.Function(,,,); xxx = objXxx.Variable; 源代码是这样写的,它具备面向对象的特性,但是,当编译链接后生成可执行文件(例如.exe)运行起来后,我们不能再看见和接触这个对象objXxx。也就是说,在传统的面向对象程序设计中,我们仅仅只能在源代码开发阶段使用有面向对象特性,一旦源代码被编译链接运行,所有对象的特性完全丢失,这是一种不完全的面向对象软件设计方法,不符合人类的思维习惯,必然会给应用和开发带来诸多的不方便。 我们下面将要讨论的技术,就是要实现最彻底的面向对象系统,我们暂时称之为:矩阵系统matrix matrix是一种完全面向对象化管理的操作系统,其基本概念是:一切皆对象。一个文件,一个程序,一个驱动,都是一个对象个体,从他们的设计、创建开始到编译运行,自始自终都具备对象的一切属性。无论是开发的源代码,还是编译过后产生的二进制体,我们在matrix中所看到的,都是对象模型。举个例: 当我们设计一个串口驱动程序时,在开发阶段,是这样描述的:(假如这个驱动的名字为objUart) Object objUart { 定义对象自身变量: …… 对象接口函数: int GetBaudRate(); void SendData(); ………… ……. } 在编译阶段,编译器以每个对象为基础,编译生成对应的二进制对象实体,objUart.o, (注意:这并不是传统系统中的二进制对象文件),objUart.o拥有一切对象信息,包括自身的数据以及对外公共接口等,以便当这个对象被装载进入matrix系统后,其他装入的对象可以进行访问。 运行阶段,objUart.o会被装载进入matrix系统内存,其它的应用软件(确切地说应该是其他对象),便可以在matrix系统中直接访问这个串口对象公共接口。 例如我们接下来开发另一个应用程序对象objA,将要调用上面串口对象接口, 源代码开发这样写: object objA { …… objUart.GetBaudRate(); 获得其串口波特率。 objUart.SendData(,,,); 向串口发送数据。 …… } 编译生成二进制对象objA.o,然后装载进入matrix系统运行。 需要注意的是,对象objUart和objA是两个完全独立的对象个体,他们在开发和编译阶段完全可以互不相干,只有在运行时,并且两个对象都已经装载进入matrix系统,才发生相互作用关系。当其中一个对象并不存在时,系统也不会发生崩溃。例如,当objUart对象不在系统时,objA在调用串口对象接口时,会收到一个来自系统的消息,表明串口对象缺席,进而做出相应处理。 通过上面的实例体验,我们大概了解这种全面向对象程序设计的基本概念,没错,一切皆对象,从设计、编程,编译到装载运行,所有的一切都是基于对象以及互动的概念,我们设计一个软件系统,将主要集中考虑的是各个对象功能,以及对象之间的互动关系,这正好类似于我们现实世界环境,不同的是,现实世界的对象由分子原子组成,而matrix系统里的对象,则是由代码和数据组成。 Matrix核心是实现这一切技术的基石,下面我们来看看matrix系统的架构。 如图所示,matrix的核心由下面几部分组成: 1、基本的多线程、处理机调度内核。 为适应matrix系统设计需求,我们开发了一款名为e-kernel的基本多任务调度内核,有64个任务优先级,其中32个优先级用于实时调度,另外32个优先级用于一般任务调度。E-kernel支持单处理机,对称多处理机、非对称混合多处理机。非对称混合多处理机MMP是matrix系统引进的一种新的概念,基本目的是允许不同类型的处理机共同存在系统中,以满足各种不同的数据处理需要。例如,一个系统中可以有通用处理机,用于一般程序运行,也需要数字信号处理机,用于数学运算,也可为图形专用的处理机等,这些不同类型处理机共同存在于系统中,统一由e-kernel进行管理和调度。需要注明的是,在matrix系统中,我们会以函数为单位,为每一个函数标记一个匹配的处理机类型,以便调度到合适的目标处理机上运行。 2、基本的存储管理单元。 包括内存管理和外存管理,为对象运行时提供内存空间,也可为对象数据永久存储提供外部磁盘空间。在matrix系统里,各个对象按照一定的层次关系组织起来,当一个对象载入matrix系统后,这个对象就永久的存在于matrix系统中,而不管系统是否掉电上电,或重新启动。由此可见,对象体首先是存在于外部永久存储空间上,然后再根据需要,部分载入内存进行运行。存储管理单元也为对象开发屏蔽了大量细节技术,当我们开发设计一个对象时,根本不再需要考虑内外存访问使用等问题,就可以直接在对象中引用,例如,在对象中定义两个变量Va,Vb: object objXxx { …… int Va; 一般程序变量,放在内存,系统掉电、重启将不能保存。 int saved Vb; 可存储变量,系统掉电、重启将保留当前值。关键字saved表示这个变量放在外存空间。 …… } 3、对象管理器。 对象管理器是matrix系统对象存在的基础,管理对象的载入、移出,组织对象在matrix系统中的层次关系,以及实现对象之间的互动。 4、根对象mx。 根对象mx有两个作用,第一,是一切对象载入到matrix系统的基点,类似于传统文件系统里的根目录;第二,为其他对象提供基本的内核服务,例如:我们可以调用mx.CreateThread(,,,,,)来创建一个线程。根对象mx是与matrix核心一起开发并紧密的绑定在一起的。 5、接入/接出单元。 这是matrix系统对象跟外界交互的基本接口,主要包括:调试接口,本机或交叉调试;操作显示接口,简单的控制台shell,复杂的图形界面操作等,实现人与对象互动;各种网络通信接口,互联网,移动通信网等,方便在各种网络中对象之间互动。 注意:以上并不是构成matrix系统的必须部分,在一个功能更加简单的matrix系统中,可能只存在一个控制对象和网络通信接口,例如一个网络温度传感器,放在珠穆朗玛峰山顶,我们可以在非常遥远的北京某一matrix系统设备上,方便地获得当前山顶温度,使用下面句法: (IP:128.123.113.2)mx .TemSensor . GetTempreture(); (IP:128.123.113.2)表示这个温度传感器对象所在matrix系统的网络IP接入/接出地址。 举这样例子或许并无多大实用意义,这里主要是想说明matrix系统的简易方便使用的特性。同理,我们可以再举个例子,获取某辆汽车轮胎气压,语法如下: (Cell: 13312345678)mx.MyCar.GetTierPressure(); (Cell: 13312345678)表示这辆汽车对象是通过移动网接入到matrix系统网络。 matrix系统的对象模型定义和互动: 在传统的面向对象基础上,我们扩展了对象结构,定义了一种更加符合人类思维习惯,功能更加强大的对象模型。 类的定义: class className <类继承列表> { head: 这个段是对象的基本信息特征之数据结构(有待具体标准化定义) private: 这是私有段 int data; protect: 这是受保护的段,跟传统的定义有所区别,这个段的数据外部只能读 char *ss; struct store xxxx; int const abc; public: 这是公共段 float abc; int Function(); interrupt: 这是中断服务程序挂接段 INT_16 : status intUartSend(int, void *); INT_27 : status intTimer(int void *); message: 这是消息函数段 MX_CLICK : status onClick(int, int, int, int); WM_DOUBLECLICK : status onDoubleClick(int, int, int, int); event: 这是响应事件的函数段 EV_MOVE<parameters> : status move (int, void *); EV_HIT <parameters> : status Hit(int, void *); space: 这是存储空间定义段,定义对象运行所需动态内存空间。 heap <store=memory, unit=8, total=4096>; pool <store=memory, unit=4KB, total=16MB>; }; 对象的定义: className objName { 和类定义相同,需要重定义的变量,函数,直接在对象中进行重定义,例如,如下重定义内存空间段: space: 这是存储空间定义段,定义对象运行所需动态空间。 heap <store=memory, unit=4, total=8KB>; pool <store=memory, unit=2KB, total=32MB>; }; 跟传统面向对象不同的是,matrix系统也可以不需要类的支持,直接定义对象: object objXxx { head: private: int Function(); ……….. ….. space: }; 定义上面对象的私有成员函数: objXxx :: int Function(); matrix系统可以在运行时刻复制已有的对象: object objCopy; 首先,定义一个空对象。 objCopy = ObjectCopy(objXxx); 复制已有对象到空对象 objCopy.Function(); 调用复制对象的成员函数。 matrix对象描述语言,对象编译器,对象处理机,对象接口总线: 实现matix系统,我们还需要一个基本的工具链,那就是描述matrix对象的一种新型高级语言和他的编译器,这个对象描述语言基于c/c++,并作了相当大的扩展,我们暂时定义为e语言。e语言应该是一个比较灵活的语言,代码设计以对象(或类)为基本单位,及所有的代码都是包含(属于)在某个对象里面的。e语言支持高级语言和低级语言的混合编程、编译。生成的输出结果以每个对象为单位的2进制的对象体,用于装载、连接进入matrix系统。为方便开发,也可以支持多个对象体融入一个对象文件,一次性连接载入matrix系统。 对象处理机的开发,是为了更加很好的适应matrix对象这种工作模型,主要有两点考虑:对象互动的安全性和对象装载的灵活性。 matrix系统对象装载可以在任何时刻,任何内存地址,这就要求二进制对象具备可重定位特点。常规的处理机架构下,比如ARM处理机,需要进行动态连接,对象内部所使用的相对地址必须根据载入内存的地址进行变动,这会消耗大量的时间。对象处理机可以解决这一问题,对象处理机有一组基址寄存器,分别用于代码段,数据段,堆栈段,扩展数据段访问,以及对象互动访问。代码、数据的寻址都是基于这些基址寄存器,并有着访问权限,越界检查的功能,可以非常灵活的进行对象重定位,以及相对安全的对象互动。这种技术跟x86系列处理机段寻址结构类似,但相对简单高效,并且在现有的处理机基础上很容易实现。不可否认,就要被遗弃的段访问技术,在matrix系统里将会派上很大用场。 对象接口总线,前面讲到,对象体二进制文件装载进入matrix系统,成为可运行的一个对象,这是一种对象入住matrix系统的方式,还有另一种方式,那就是通过对象总线的连接进入matrix系统。比如说一个智能家庭的中心控制器,是一个matrix系统,我们可以通过对象总线,把各种按照对象规范设计的家电设备连接到中心控制器,于是就可以通过这个中心控制器,以对象方式访问各种家电设备对象。例如:打开电视机,mx.TV.PowerOn(); 对象运行时连接技术: matrix系统中每个对象都是独立的代码、数据空间,对象之间的互动访问必须保证高效率,如下两个对象objA和objB,相互调用对方的公共接口函数实现互动。 object objA object objB { { objB . Function(,,,); objA . Function(,,,); } } 两个对象独立设计和编译,它们只需要知道对方公共函数的调用方式即可,当两个对象编译后载入到matrix系统时,它们并不知道对方具体存在于什么内存位置,更不可能知道对方的公共函数的地址,同时为了保证效率问题,它们之间也不可能通过系统调用的方式来实现互动,这就需要一种新的技术实现直接对象间调用,我们称之为运行时连接技术,例如:当objA第一次运行到调用objB的函数时,会发送一个对象连接请求信号到matrix核心,matrix核心进行各种权限检查,如果符合要求,就直接把这个函数地址连接到objA内部,当下一次调用该函数时,objA就不必要再次向系统发送请求,直接可以调用这个函数。这就是所谓运行时连接技术,它跟人们之间相互交流,从生疏到熟悉的认识过程非常相识。 matrix系统的优势: 一个新颖的系统,可能并不是很容易地列举出来一大堆优点缺点,也许只有往后的运用,才能逐渐的体现其各种优势所在,对创作者来说,往往就是一个不经意的信息,导致整个想法的产生,总结归纳如下几点: 1、简单、高效的程序设计:完全的对象化,更加符合人类思维习惯的代码设计,让程序设计更加注重对象功能的实现,而不用再去学习复杂的系统方面知识或架构、工具方面等技术。 2、统一的程序设计:一切皆对象,程序设计就是对象设计,不再像传统系统那样,分为各种各样的软件类型,协议,开发等等。对象之间耦合也是统一的格式,更加方便分工合作开发、以及重复使用其他人的智慧成果。 3、灵活开放的系统组成:以对象为基础构建的系统,可以根据实际运用需要,增加、裁减、或选择不同的对象个体。 4、便利的网络互动:以对象为基础网络通信或编程,完全不需要了解各种复杂的网络知识和技术,网络对象之间和本地对象之间的互动通信,除了速度有差别以外,其他完全没有区别。 5、数字地球:各种仪器仪表互连提供统一标准。 6、虚拟现实世界。 matrix是一个巨大的工程: 1)首先是matrix系统本身的实现,包括matrix 核心,e语言编译器,开发工具等(如果要想获得更好的对象运行性能,对象处理机架构也必须被实现。) 2)matrix系统各种技术规格、对象规范的定义和文档撰写,需要一个专门组织机构来负责,并且是免费开放的。 3)矩阵网络的实现,多网合一,各种中间层设备和通信软件,需要各个厂商合作。 matrix系统开发现状: matrix系统思想来自电影《黑客帝国》,作者经过多年的努力,利用业余时间,致力于开发并实现了matrix核心里面的多任务调度e-kernel第一版,接下来会继续开发第二版内核的同时,将定义完备的matrix对象模型和e语言语法。往后的任务会更加艰巨,希望新的力量加入,一起来实现这个有趣的工程。 联系邮箱:mx65536@gmail.com 慎重声明: 在这里,我需要向大家,以及陈首席澄清一件事情,matrix并不是我本人的言论,事实上这是跟我一起接私活做项目的合作过的兄弟发言,弯曲的帐号也是他一手包办帮忙申请的,没想到我的朋友如此这样在网上较真,希望各位海涵,如有他骂过的网友和说过的脏话,我代他向你们致歉. 最后,谢谢大家的关注.感谢弯曲,陈首席,以及其他编辑同志,给这个发表文章的机会.谢谢你们搭建这个平台,让更多的思想,技术展现在大家眼前. | |
工具箱
本文链接 |
|
打印此页 | 190条用户评论 »
雁过留声
“全面向对象,矩阵操作系统”有190个回复
这个与黄道长的理论是乎类似?
-_-
跟Plan9很像?
人类现在好像只能(描述)对象而不是(拥有)对象本身,过几十年大家都成上帝也许ok lol
似乎作者更想要的是一个统一的通信对象接口,而且更细的对象
另外要是有根对象,对象的独立性总会在某个时候会有(枷锁),以后就难以向下扩展了
以上观点本人概不负责:)
这个可以直接用JAVA写个matrix应用就行了啊,为什么要写个OS呢?练手?
越接近人类感知方式的描述也就越抽象,有时会因为太过庞杂而不收敛,不过能探索一下还是很有实际意义的。
黑客帝国是偶的最爱~
未来会持续关注作者的^ ^
这个和ORB/CORBA有什么不同?
一切皆对象,那还要类干啥?
有原型可以跑起来吗?光有个kernel还早着呢。
还应该加上面向对象的处理器,还是什么寄存器啊,堆栈啊,太土了
matrix贤弟是在学校的叫兽?还是江湖中人?
愚兄谈点个人观点哈。
你的东西不错!但要包装,学术化一些。。。
例如“它们只需要知道对方公共函数的调用方式即可”。这个在叫兽的文章和Programming Language语义学里,叫Signature。
例如,object A需要call 一个function B。但不知道谁有function B。就在系统里去Look up。这个过程是通过signature来match的。
这是个很难的问题。涉及许多语义问题。
你可以在这个方面多探讨探讨。。。
开源没有?看看源码?
单纯练手或是否有过硬一点的应用驱动?
看上去很美往往未必work,如微内核,期待更多细节。
还重新定义了编程语言?
很期待,希望能看看这个language spec
一般来说,一个新语言都会引入一些有趣的concepts,弥补现有语言的不足。
期待更多细节。
还重新定义了编程语言?
很期待,希望能看看这个language spec
一般来说,一个新语言都会引入一些有趣的concepts,弥补现有语言的不足。
期待更多细节。
搞一大堆细节,发paper是没戏了
看不出来这个和普通的面向对象有什么区别?
“一切皆对象”这个不是从Java开始就已经是所有面向对象语言的特性了么?
不知道底层的源码如何,但是无论写什么样的代码,一旦编译之后,还会有面向对象的概念么?计算机不需要知道“汽车”如何,只需要了解去哪里寻址就行
如果机器/CPU本身的CODE执行不是完全用面对象,OS也没有办法,总是在要在最终阶段把面对对象的CODE转化成CPU要执行的非面向对象的CODE,这个这个面对对象的OS的大厦建了半天,到了根上,发现最终结果还是要做普通的的OS,当然,作为OS准备,push面对对象的CPU出来,玩一玩概念机还是很fun的
回zhaorui: 编译过后还是会有面向对象的特性。
回怀临兄:在下江湖中人,非做学问的,硬件转行做软件,能力有限,比较喜欢海阔天空的畅想。写这篇文章的目的其一也是希望起到抛砖引玉的作用,如果我本人无法去实现,至少这个想法可以给大家带来一点启示。其二是需要群体的智慧,一个人单打独斗,实在太渺小了。:)
回理客:非面向对象的code,matrix是要把它们组织起来,达到面向对象目的,就像现实世界的分子原子组成实体对象一样,可以没有必要去认为分子原子是一个对象,这是文章开头提到的认知层面问题,同理 一帘幽梦 的收敛问题。
好久没有到弯曲上面交流了。去年因为思考过度,感觉身体有点透支,所以在思考方面逐渐放慢步伐。再伟大的思想而没有强壮的身体都是毫无意义的,兄弟们要好好珍惜身体啊!你们要对那些强调加班而不安排休息的领导、老板特别警惕,否则吃亏在眼前。
matrix 很有思想,我估计他还是很年轻,因为在中国似乎只有年轻人才谈创新、发明。《矩阵操作系统》我记得好像有在弯曲上面发过,后来不知什么原因又不见了。我开始没仔细看,以为是像黑客帝国(matrix )里的一些东西,觉得还是有点意思的。今天有机会、有心情再仔细阅读了一下
,觉得应该懂了一点,《矩阵操作系统》应该叫《对象操作系统》更能符合本文的意思。如果把这个核心思想搞明白了。那么很多东西都跟着清晰起来,比如支持对象消息转发的操作系统mach,苹果os x就是以mach为核心的,如c++ 、object c、java、C#、javascript等对象语言。这些东西一比对,我们就能获得他们之间的优点和缺点,才能优点学习过来。
本人啰里啰唆,原则上同意matrix 在各种条件的允许下去开发《对象操作系统》,因为我有过自己的教训,知道开发一个全新的系统是多么不容易的事,特别在国内漠视核心技术的环境下。
这两年弯曲风格好像有点变了,我记得我刚发表《道cpu、道指令、道编程理论》时,“民科”的批评声一片。不过这种批评也是动力,在大家的批评下,本人坚持开发,最终也把《道cpu、道指令、道编程》这种异类搞出来(不过也是玩玩而已),相信matrix 也能开发出来。
这种学习、创造的能力弯曲里很多人都有,如陈首席等从一个只懂机器码、汇编、通信操作系统的人,只用区区几个月时间就掌握了iphone 应用程序编程,所以有思想就会有动力。相信 matrix 到时也能把《对象操作系统》拿出来个大家玩玩。
道长保重身体。。。:-)。这个matrix似乎在这里打一枪就跑了。连问题都不回答。不太厚道。
我这个道长是假道士,否则应该百毒不侵。
陈首席,你仔细看前面,我回答了,:)
没有细读,不好意思。
不知兄台是否用过/熟练 ruby/ objective C /self/smalltalk/lisp 语言?
去忽悠那些当官的文盲吧,别在这耍了,看了想笑
了解过COM或CORBA吗?
看了这个文章,让我想到了大名鼎鼎的sinox操作系统。
不是打击与说风凉话。从本质上来讲,计算机是一台机器,机器的核心特性就是指令行事,且instr by instr。
编程语言从机器码->汇编->高级语言到现在的面向对象,是遵从了机器的使用者人的特征的。
所以,如果说针对这个系统找个突破口的话,语言本身不是问题,编译器与OS也不是核心与关键。因为,就这个”全对象”的机器来说,我们现在的Compiler与OS实际是做得过头了,让它们少做些工作就是。那么,剩下问题的本质是:有没有这种对象机器的可能。先形式化证明一下吧。毕竟,我们现在的计算机,是有图灵与冯诺依曼的理论依据在先。
对这个道指令&对象OS说不出感觉。
同意Eety
以前程序设计过程:
非对象设计&实现(人)——依然非对象(编译器)——依然非对象执行(冯诺依曼结构)
后来多了面向对象语言的支持,变成:
面向对象设计&编码(人)——转化为非对象方式(编译器)——非对象方式执行(冯诺依曼结构)
所以如果不变体系结构,LZ所做的可能就是重新订一套语言,一个对象编译器,然后还是要加一个对象——非对象翻译的东西,变成:
面向对象设计&编码(人)——面向对象编译(编译器)——翻译为非对象(某种转换?)——非对象方式执行(冯诺依曼结构)
To Kevin: 有一个概念或许需要表达得更加清楚,事实上,在matrix系统中,对象编译过后,所生成的二进制机器代码,依然是按照对象方式来组织的,可以打个简单比喻,现实世界的对象,例如一棵树,可以看成由分子原子组成。而matrix里面的对象是由相关的二进制代码和数据组成的。
我们可以把二进制的指令,机器码,数据,当着是组成这个对象的分子原子。
这些分子原子所组成的个体对象,我们只关心的是它所表象的功能,对外接口等。同理matrix系统只会关心这些对象的功能,对外接口,而不会去关心具体每条指令是否面向对象。
今天刚好有空,我想问一下 matrix :本质上所有程序都是机器码、数据组成的,那么如何区分在指令级别上的对象程序和非对象程序?而且你所说的对象功能(方法)发现(查找)的功能,在现有的对象语言中大部分都有此功能。如果把这个功能固化到操作系统中,也就相当于做一个虚拟层,如java c# .net等,而osx更彻底直接在内核做了对象消息功能。那么如何在对象操作系统上超越java .net 和osx?这些应该是开发系统首先面临的问题,希望能回答一下?
To huang道长:无法回答你这个问题,matrix的目的只有一个,就是用软件,尽可能的去模拟现实世界环境,对象,以及对象之间的互动关系,尽可能的用代码和数据,去“等效”现实中的原子和分子。很多技术的实现,将来自于现实世界的经验,例如文中提到的“对象运行时链接技术”,就是模拟人们相互认识从生疏到熟悉的过程。坦白说还有很多其他方面,至今也没有想到位。
感觉是个非智能agent平台。
严重同意27楼Eety
一切都会回归本质,上面包装得再好,最后还是要在冯诺依曼架构上运行,越多层性能越差(比如android vs ios,linux vs qnx)
想起去年看的一个视频《七个颠覆你思想的演讲 之 在芯片上搜索大脑》,人脑有数千亿的神经元,而每秒每个神经元向周围数万个神经元传递信息,这种并发量,现有体系架构的计算机是模拟不了的(现在全球的计算机能力理论上只能模拟一只蜜蜂的智能),只能等量子计算机了。
他这个所谓的matrix,我觉得既不符合实际,也没有学术价值,更不可能实现。完全是幻想~
拿出来吹个牛忽悠下外行还差不多。对于明白点的人来说,这只能娱乐大众而已。
做操作系统,就别拿面向对象说事了,那东西在系统级别没有意义,只能增加代码行数而已。
易语言那个骗子的假以前貌似有人打过。呵呵
这骗子知道大人骗不了只能去骗小孩子,更加可恶。
beans一语道破天机。
同意 39楼-animal said also…
“Too good to be true”
又一个电话号码网十进制域名。哈哈!
to beans: 有个概念需要澄清一下,matrix不是用面向对象编程方法去实现操作系统,而最初是用c语言+汇编去实现一个,支持彻底的面向对象系统,所谓彻底的含义就是:最终运行起来二进制程序,都具备对象特性,不会再像传统的.exe文件那样。
技术讨论就是技术讨论,支持或不支持,各自随便发表意见,请某些人不要说些人身攻击的话,这样只能证明自身的素质问题,起不到任何作用。
matrix,你觉得你这是在讨论技术吗?我没觉得你这个算什么技术,你的文章里反应出来的想象力确实值得夸奖,但是同时也反映出你对计算机系统基础知识的贫乏。
如果你想做事,你就踏踏实实地做,做好了可以吹牛,没人会挡着你。
但是在啥都没搞清楚的时候就来大放厥词的畅想未来,还搞得像模像样,你就不觉得心里没底吗?
开始我也说得很清楚,我是能力有限,我把这个想法发出来给大家看,目的之一是抛砖引玉,希望更多专家,大师来进行技术评论,我本人是做硬件出身的,涉及软件行业还很肤浅,在你们面前,我还是个小学生。希望多给些纯技术性的意见和指导。所有的评论我都看在眼里,除了比较反感那种带点色彩的言论以外
我来总结一下,matrix具备一些学术价值,工程价值目前不太突出。。。[我可是从App,写到汇编,做过编译,玩过马子,sorry,板子,整过芯片的]。
如果能把Object Model方面再略微深入一点,就比较漂亮了。。。
matrix,你这哪是抛砖引玉,这叫抛砖引砖。
我推荐俩和你风格比较类似的东西吧,跟这哥俩比,你真还得学学,不论知名度还是理论深度,炒作效果,你都得学。
第一当然是大名鼎鼎的汉澳操作系统以及宇宙第一编译器(据说是中文汇编,比你的e语言还厉害~)
http://zhidao.baidu.com/question/9038404.html
http://topic.csdn.net/t/20060320/20/4627508.html
第二是超越了图灵机,可以探索生命领域的xxxx。 这个跟你提出的东西没准是竞争关系,你要加油了…..
http://blog.csdn.net/universee/article/details/761679
用对象的方式组织编译后的汇编码,然后让机器直接执行(如果再翻译一道的话,那意义就小多了),idea很好,不知道理论上是否可行?但无论如何,试一试这种model还是值得鼓励的
http://www.cnblogs.com/xuchaoyi99/archive/2005/09/15/237721.html
来,大家娱乐一下吧。这个牛头人风头最盛那会儿,我中午都是上他网站放松的。现在好像不活跃了。
两个字评价:民科。
他的problem space定义的不清晰,关键在于:是不是在依赖现有体系下的开发,还是自己要搞新的体系。
他所谓的设计优化目标,只是瞄准某些现有体系中的一些小环节上的一些小缺憾,但有没法解决,结果提出一个新的体系,但是新的体系的整体设计他根本没能力去估量。
打个比方,社会管理:为啥吐痰、闯红灯屡禁不止。他的思路就很简单,建立一个法律体系,吐痰闯红灯就抓去坐牢。可是现实中,必然行不通。这种现象也不可能杜绝。
就算是美国大牛教授,也不能逆天而行。因为体系结构的发展,就跟进化论一样,出现目前的形态,是有必然的原因的,不是一个人瞎想就能随意改变。个人能做的是顺势而为。
大道理咱没法说得像模像样,毕竟不是专业叫兽出身,前途也不乏迷茫,毕竟太多的未知因素和艰难,但,心中的信念永远不会泯灭,继续实现梦想,至少这么多年的奋斗,一个完备的内核成功研发,每一行代码都是辛勤汗水,回头看看,也是是值得。人,因为梦想而生活有意义,让那些阻碍梦想的事物见鬼去。附上e-kernel内核文档,表明咱不会只是有想法,还有实际行动。
http://www.tektalk.org/wp-content/uploads/2012/03/e-kernel.pdf
没看到你的pdf里面描述的东西和你说的面向对象操作系统有什么关系。
sc2410 ads1.2 。。。瞬间回到了5年前拿这个破玩意做开发的日子。。。。。看完这个,也就纯当娱乐了
希望各位把文档看完整了,再做评论不迟,e-kernel是matrix系统的基本调度内核,目前第一版功能还比较有限,第二版将支持混合多处理机架构平台。
支持下RQ
尽管有些想法显得不够成熟,对软件的理解或者计算机体系结构的理解有所欠缺,很多人在质疑这件事的意义究竟是什么。。说实话,我也在质疑这点,,
但我觉得是不是应该用更加平和的方式而非如此激烈的言辞进行表示,毕竟,这里只是技术讨论的地方。。
@beans,
我知道你是个牛人,你写过一个OS,可是我不知道你的反应为何如此大,,你也是愤青?
写错了,支持下matrix
我想起几年前审过一篇文章,说提出了一个新的体系结构。几乎没几个参考文献,从内容看确实连这个领域经典文献也没有读过。这样的问题是,通篇内容看下来,重要的idea其实前人都探索过了,有时候个别细节上是有作者自己的讲究。
坦白说看到这类东西心情复杂,一方面感觉特民科,另一方面很能感觉到作者的心血,特别是那种创造新东西的动力。大家都知道最后出一个严肃的东西中间要经过千山万水,可经历了千山万水,是不是还有这么清新的创造动力?
道指令
易语言
这两个有点易经的味道….也算符合我国的千年传统….
矩阵操作系统
这个就有点搞不懂了,按照惯例,如果叫“阴阳操作系统”就神秘多了….怎么想到matrix的啊….
天朝千年的历史,让人总喜欢捣腾些万法归一的事情!
话说,武汉有个叫吴学谋的搞出个“泛系”,他的一个叫洪峰的弟子搞了个“黑客道”,不会兄弟也是搞系统工程的湖北人吧…..
如果一篇文章都没读懂读完,就去给别人评论,是不是太浮躁了,哎,这是个浮躁的社会。
你那API DOC有啥好读的。
看你列的那6条优势,真是。。。忍住了没骂人。
首席是不是时不时放几篇民科上来哄人气啊。
楼上不要再叫嚣了,看你那点可怜的自尊和虚荣,有实力有自信的人,才不会像你那样。你的抨击和谩骂,只能说名你内心的软弱和无能,看不惯并打击任何可能超越你的人或事。
不好意思,我居然开始说起风凉话来了,惭愧,惭愧。以后不想再发表任何言论,言多必失,最后感谢那些支持的人、那些真正有实力,有自信,也很谦卑的大师,我相信各位心中自有一杆秤。
没错,那些动不动就打击骂人的,除了本身实力和自信严重缺失以外,人品也还值得考察,别跟他们一般见识。
楼主可能对这个领域不是那么高屋建瓴的了解
但是楼主的思考和热情是付出了心血的
我不明白为什么会有那么多人语出讥讽
也许你们真的技术很牛
但是说实话,你再牛也只是个技术人员
能怎么样呢?
我觉得我国缺少的就是楼主这样的敢想敢做的人
擦。好像谁求你来的是的。。。服了服了。。。
合着支持你的人都是“真正有实力,有自信,也很谦卑的大师”。抨击你的人都是“可怜的自尊和虚荣,内心的软弱和无能,看不惯并打击任何可能超越你的人”
带着你的民科上别处玩去吧。呵呵
如果作者是要写个kernel练练手是不错的,如果目标是做出一个实用的系统,下面这些问题是需要好好考虑的:
1. 为什么面向对象的编程方法对内核和系统编程有好处?为什么说“这是一种不完全的面向对象软件设计方法,不符合人类的思维习惯,必然会给应用和开发带来诸多的不方便”?请至少举例说明。
2. 退一步讲,如果面向对象的编程方法对内核和系统编程确实有好处,C++出来已经多少年了,为什么以前没人这么做?其中一个简单的问题是性能,复杂的对象模型对系统性能将会有多大影响呢?即使应用程序能承受,内核可以么?
3. 作者看过berkeley socket的实现么?考虑过基于socket编程模型和tcp/ip协议栈在内核中的实现与面向对象的编程模型之间的compatibility么?写应用程序时,高级语言对网络编程的封装是很容易实现的,但在内核级别这样做的可行性大么?反过来,如果不用berkeley socket这一套东西来实现网络编程,那程序员是不是要丢掉几十年的经验,重新学习一套未经严重的新的网络编程模型呢?简单来说,作者提出的“以对象为基础网络通信或编程”对应用程序是可行的,甚至在现有的系统上也是可以行的,但是对内核和系统编程也可行么?
4. “各种仪器仪表互连提供统一标准”这个目标跟面向对象的编程模型有什么必然联系?
5. “虚拟现实世界”?这个又回到第一个问题上了。事实上,面向对象的编程模型是否真的符合人们的思维习惯在学术界和工业界都尚存争议,作者可以看看关于google的golang中继续interface的编程模型的讨论。
总结:看了这篇文章和作者提供的pdf文档,有个主观的感受是,作者有很好的windows平台的应用编程经验,但是对系统编程的经典问题和主流开源内核的演化过程(为什么XXX是这么设计的)知之甚少,不知道我说得对不对?
首席整过芯片是指设计过芯片,还是说对芯片编程过?
不知道matrix是否研究过OMG CORBA和微软的COM/DCOM/COM+模型和系统?和这个Matrix OS差别在哪里?
matrix,你别以为真正明白系统的人都谦卑,都懒得出来拍砖,那不一定,也有看不惯出来打假的。呵呵。
我把你这个文档从头到尾看了一遍,真和kevint感觉差不多…..占页最多东西不就是api doc么,还是windows风格的匈牙利命名法~
你前面那些设计,也和一般的系统没有啥区别,真没看出来新鲜(把bss段名字改成dss了…这个看得我一头黑线,这个是你的创新吗?),和你说的那些看起来很玄奥的东西没有丝毫关系。
bss一般是跟在data后面的。且bss是block started by symbol的缩写。 dss里的d是个啥意思我就才疏学浅了。
人一般都是从模仿开始的,用匈牙利估计是2410开发板里给带的ucos或者wince的系统。唉,学也不学点好
我一直以为只有超有钱的公司才用匈牙利命名法,一般人不会跟自己过不去。
看一个人是不是华为出身的,就看他写代码的两个特点:
1,看是不是匈牙利爷们儿
2,看是不是不敲tab而是8个空格
楼上两位真的是没有资格在这里喷了,要想喷,请把文档看仔细了再喷。唉,真是浮躁的风气,看着宋朝人民这样,实在不想说了。
多年前的的穷学生时知道了匈牙利命名法就开始用了,不过确实是一直非常想进超有钱的公司
72楼能不能说下文档亮点在哪里呢?我从头看到尾,就dss让我心颤了一下,别的真没发现新鲜的。
他一说资格我就心虚了。赶紧去查dss是什么。google了一下。没找到。从文档说明和图例看那个地方应该是kernel heap。又仔细看了一遍文档,基本就是将API前缀修改的模仿之作。这个dss应该是全文唯一自主知识产权并且填补国内外空白的开创了。
唉。资格不够。就此罢了
个人觉得matrix的理论知识是有些欠缺,人家的回答也说了,不是计算机软件专业出来的,各方面系统理论不是那么专业化。但是我比较佩服他这种创新和坚持的精神,而且仔细看他的这个文档,其实还是有很高的技术含量,这个e-kernel属于传统化的内核,没什么太多新的技术特点和创新,但是人家在文档里面还是说清楚了的,这个内核是用于matrix系统基础调度用,我不知道你们是怎么看的文档,完全没看懂就作评论,值得怀疑你们是不是作技术的,一点没有做技术的严谨态度。
回楼上:看文档说dss的意思应该是运行时内核用来动态分配内存空间。有点像别的OS的内存池吧。貌似他自己定义的,呵呵,天朝其实就是缺乏这样的敢想敢做的人。大多数都喜欢follow,这个可能也是国情决定的。
其实没有人能随便成功的,要经得起鲜花和掌声,也要经得起臭鸡蛋,matrix仁兄,加油了,持续关注你的系统,呵呵
看了dss,我想到的第一个可能就是作者写bss写错了….后来发现还真不是,这个寒阿~~
这个东西就好像你的matrix,e语言一样,都是名字神奇而已,内涵是NULL。
真正的好东西不是你这样靠吹牛忽悠骗菜鸟的,建议你有空看看毛德操老师的兼容内核项目,你看人家那个文档是怎么写的,人家那创新是怎么搞的。且不说到底能不能做到完美的兼容内核,但是那些实实在在的努力,才真叫人佩服。
在操作系统这个领域可做的事情不太多了,或者说重新造轮子的话,其意义多大值得商量。有这个精力,还不如做一些能切实被大家使用的应用软件,比如首席这样的。当然,萝卜青菜,各有所爱,matrix可以自己自娱自乐。但是这样的东西放到弯曲上,相信获得的鸡蛋多余鲜花。不当之言,敬请谅解!
Tokay,你说他这个有很高的技术含量?还什么创新…. 我真是晕了。
你随便找个谁谁谁写的能跑起来的内核,不用商用的,随便的hobby os,哪个都行,哪个都比他这个好。
要他这个能成功,那linux项目真失败了,开源社区马上解散。
http://wenku.baidu.com/view/7703f7a1284ac850ad0242c0.html
这个链接里面收录了46个华人写的小操作系统,这些系统都没啥创新,也谈不上价值,但我敢保证每个都比它这个有价值。至少都不是玩概念,骗菜鸟的。
这个文章就是当年打假麒麟的那位老兄写的。
beanos排第三,牛,下来看看去。
刚扫了两眼代码,beansos才是有hacker味的东东,比maxtix这个假大空的概念强多了,晚上回去运行试试。
不牛,是按照字母顺序排的。哈哈。
我其实也是偶然看到这个文章的,感觉matrix做的更偏向嵌入式系统一点点,跟linux之类的OS还不太一样。一开始我们也有发邮件来往,他说做e-kernel花了3年时间,总共6万行代码,是从第一条指令开始写起的,应该花了不少心血和时间,但是不开源,感觉有点闭门造车的味道,呵呵,现在这个时代,这样的方法恐怕不行。但是matrix的创新和执着还是值得肯定的,一切皆有可能,想当年比尔盖茨说要每个人桌上一台电脑时,也有很多人认为异想天开,嗤之以鼻。但是比尔还是做到了,呵呵,希望我们大宋真的有那么一天,也出一个盖茨来。
但是我仍然是不太理解某些人热衷于攻击和挖苦对方,不知道这样目的是什么?按照我们老严的说法是,可能这些人现实工作和生活中比较失意,找不到宣泄的途径,所以只好来网上闹腾。而我则认可中国那句老话,中国文人相轻,中国技术工作者也相互看不起,sigh,寒心。
Tokay,恕我直言,你没达到beans他们的境界,所以看不到问题的本质,等多年后,你自己如果再回头看看,也许就理解了,要么就悲剧了。
Tokay,我听把故事说出来,觉得你也是个可怜人。被他忽悠了。典型的卖拐案例。呵呵。
这个matrix还真有意思。3年,6万行,还不开源。
按matrix说的,这个e-kernel只有基本的调度功能,没有什么driver,那么即使是用匈牙利命名法写,也很难搞到6万行代码,写系统不是做网页,没那么大代码量。按他这个文档里面那些简单的功能,能写上3年,这个效率阿…. 你还等他成功?那你得好好保养身体了。
然而所有的问题的关键就在于”不开源”,不开源,你就没法看他的代码,只能干听他忽悠~~
他去别的地方忽悠,会有菜鸟被搞定,但是这里是弯曲,他出来忽悠是不会成功的。
我们自己的环境中,不缼随意的棒子当头,更不缺假大空的口号。用浮躁却挡别人的挑剔与责难时,口号的假大空也会暴露无遗。
OS这类东西,是技术,不是政治,最终所接受的检验是硬实。
如果真认为这个Matrix会牛逼得不行,结果揭晓后再通知也不迟哈。
愿立此为证?!
昨天晚上看了下源码,beansos除了基本调度,还实现了FAT文件系统,最难能可贵的是,实现了内存保护机制,内存保护机制可是个写内核的小门槛。
beans:
我无所谓是否被忽悠,这个是真是假跟我也没什么实质性的关系,倒是你在那里始终怀疑和讥讽,难到正如老严说的,你现实工作生活比较失意么?呵呵,你怎么那么大的反应呢?你扎个就那么在乎呢?你对网上这事都这么认真,说明你还真的在现实中有所缺憾。或者妒嫉心太重,这样是要不得的,伤害的只是你自己。
我们应更多鼓励和支持这些想法,天朝这样的人本来就不特别多,难道不是么?
操作系统这个东西嘛,啊,对不对,是这样的嘛。。Ummm,不错。值得鼓励:-)
tokay,你的智商被他们拉低了,跟这些人你越争论,越发降低自己到SB等级,哈哈哈。
Tokay,我对这个matrix不是怀疑,而是根本不信。也不是讥讽,而是嗤之以鼻。
他也只能把你这种水平的忽悠的团团转吧。呵呵,貌似你都崇拜他好几年了,我们现在把他从你的神坛拉下来,砸几砖头,你也难受是不是?
至于你说的matrix这样的人不多,那我觉得真是我朝的一大幸事,这样的人如果多了,那全国人民都去干传销比较好。
你总是嘴里喊着严老师….我真不知道这个严老师是干吗的。光一个姓就想让我知道是谁的,那只有羊叫兽一人。
我用beans这个名字发贴,在这相当于实名制,这个地方的人知道我是干吗的多去了。用不着你操心了。
你的确很浮躁,我什么时候说过崇拜matrix好几年?
我越来越相信你是一个在现实中比较失意的人,你一定生活的不快乐,嫉妒心极其严重,心里阴暗扭曲,见不得其他人一丁点成绩,打击谩骂是你维护自尊的手段,你永远是个二流的混混层次,上不了台面。
另外别以为写了一个OS就很了不起,NB的不行了,很难说有多少代码是你本人写的,东拼西凑的,谁都可以写OS。再加上你的人品,所以你,上不了台面,还是呆在地下玩你的球球吧。
你鄙视matrix,但是我没见过matrix说一句侮辱你的话,人家人品比你不知道要高多少倍。
别理这俩妄想迫害正患者了。呵呵。不好治
我从没说过写个os就牛,特别是我这个os,只不过是刚刚大学毕业的时候写的一个小hobby os,就软件开发来说,os也没什么特别,并不能算是最复杂的一类软件。
但是beans’OS从06年开始发布,到现在,只有你一个人说出了它可能是”东拼西凑”这样的话。
在指责一个遵守GPL的开源项目之前,你是否需要先调查一下呢?它源码是充分公开的,你不需要先看看吗?否则丢失的只能是你自己的脸。
我建议你上
http://www.beanos.org/
看看
你可以给我指出来,beans’OS哪行代码是抄袭来的。从boot,到调度,到内存管理,到文件系统,到elf加载器,到所有的驱动,以及所有的示例应用程序,随你找。如果你有证据说明这个项目存在抄袭,或者哪里没有充分遵守GPL协议,我马上关闭beans’OS网站。
kevint,我是个比较认真的人,见到这种家伙,我就想抽。
哈哈,我来客观总结一下: beans OS更应该算是一个比较完整的OS,虽然在实现上比较简单,但相对各方面功能完整一点,属于传统OS的框架。
matrix的e-kernel还只能算是个内核,有点像ucos类嵌入式RTOS,函数库?matrix这篇文章的创新精神还是很值得鼓励的,但是具体实现起来恐怕不是那么容易哦。
看得出来,两位应该都是付出了相当的心血在做事情,如果能都能取长补短那就最好了,beans专业知识比较强,matrix创新精神值得肯定。不过貌似国内比较牛的工程师都有些清高,不是那么容易合作得起来。呵呵,我90年代就身在国外,不知道现在环境具体如何了,如有说错的地方,请纠正。
但是总之一条,技术讨论,就和和气气的讨论,骂人,相互抨击、指责始终是不对的。
beans, 你的os实现比较幼稚可笑,走的是传统老路,简单得很,纯当练练手还是可以的。你有可能是自己动手写的代码,不过自己在加工一下,让别人看不出来什么抄袭的痕迹,其实本质还是是抄袭的。说什么也没用,就适合练手,没任何价值。
你再NB也只能是练练手的二流货色,不能把任何人怎么样,为你感到可悲,技术不行人品也还很差,向matrix学习吧,先学做人,在做事。
好吧,Tokay,你说我写的系统传统简单,那是没错的,我用了不到1万行代码就实现这个小kernel,不像matrix用6万行~才做个调度出来(我想不出执行那么多代码的调度器需要多长时间….)。
我是认认真真读完了linux的代码,仔仔细细看了几本著名的大书以及Intel的cpu手册才写出来的。呵呵。至于有没有价值吗…..这东西对于你肯定是没有价值的。
不过我跟你说出我对matrix的评价,这件事本身就是我不智的表现。有句老话是这么说的:
“你永远不要试图说服一个纯SB,因为他会把你的智商拉到跟他个水平,然后再用丰富的经验打败你”
所以我以后不会再搭理你了~
一直以为OS是最牛最难的东西之一,因为首席也搞过这个嘛,beans出手成章,一看就是极其聪明的大牛风格。不过没看出matrix有啥不好的人品和阴暗的目的,您可以放开了批评其技术缺陷,大可不必关联其人品,就像您刚刚关于“不智”的评价。
实在看不下去了,出来说句话,beans,在你所谓的牛人面前,我已经选择不说话了,你还要继续挑起矛盾,你真的无可救药,为了你那SB的自尊和面子,你不惜一切代价把自己所有SB大粪都喷了出来了,搞得这里臭哄哄的,臭了自己,也臭了别人,你像是一个做技术的吗?我认为你其实就是一个造粪机。
我也很不明白,不就是一篇阐述思想的文章么?干吗非要整得苦大仇深似的,非要跟自己,跟别人过意不去呢?
为了掩饰自己内心的无能和嫉妒,你不惜用打假的名义来娱乐大众,打什么假呢?假大空?骗子?不开源就是吹出来的?代码也是不可能有那么多?我说的这一切都不是真的的,你怎么那么肯定呢?难道你是我肚子里的蛔虫?我说的这些都
对你脆弱的感情产生了伤害?你是不是打算向法院提起诉讼呢?还是打算去向毛主席给我打小报告啊?你觉得有意思吗?
不是我看不起你,你那一万行代码,只当得到e-kernel里面的一个组件。亏你还是计算机专业出身,“我实在想不到为什么要那么多代码”,我看你未必真的算得上是专业,我只能说,你还停留在很业余的阶层。
不好意思,实在忍不住,骂人了。你这样的垃圾只配被我骂一次。
结束,Tokay,谢谢你的支持,不用再做任何发言了。
嘿嘿,看吵架很爽。任何没有经过实践检验或者经不起实践检验的东西,都不要用语言证明其价值了,你们吵得狠,只能惹来旁观者看着过瘾而已。
这种东西放到弯曲上挨骂是再正常不过了。首席以后审核的严谨一些吧。
我已经很久没理睬你了,你还要不依不饶的来针对我,那我就用不着给你客气。
matrix不如你就公开源码说明一切吧。到时候任谁想指责你,你都不用怕了。
就凭你现在的那个文档,人家说你民科,骗人之类的,你还真没话说。
beans的OS做的很不错的。不过论坛怎么注册不了新用户呢?
呵呵! 吵起来真有意思.
哥们:
请您把 e语言的文法 贴出来大家瞅瞅!!
再把您设计的e语言 运行时环境 画下,大家看看
恕我冒昧,您看过1个完整的内核和编译器代码吗?
这哥们到底 是 铁掌帮的裘千丈 还是 桃花岛的
东邪呢?
貌似前者可能性大点,呵呵
看到U32,真他妈想笑! 呵呵!
精神可嘉!!
matrix,对不住了,其实我也没说什么,主要目的是想说大家多给点支持鼓励,不要动不动,不知道任何情况下就谩骂,抨击之类,结果有些SB就不爱听了,非要把对方打倒才善罢甘休。
其实话又说回来,这些SB对别人除了言语上的攻击外,其他任何效果也没有,他们只能深夜独自在黑暗中添舐着自己扭曲心灵的创伤,很可悲。
“深夜独自在黑暗中添舐着自己扭曲心灵的创伤”。。。。。。。。。。。。。
Matrix,从你的言论上,你一定很年轻,80后快90了吧,作为过来人,我就说一句啊:你的创新精神值得鼓励,但是千万不要闭门造车。linus想当年写linux是在深入学习并掌握minix之后的。在OS创新之前一定要了解并掌握现在通用的OS,否则你的创新一定是空中楼阁。时间很宝贵,但人外有人,天外有天,敢于创新的人一定要胆大而且心细,要站的高才能看的远,切切!
胡兄所言即是,小弟很受教。
其实,只有matrix系统是创新的,e-kernel纯粹是一个附属性的东西,很早前我只是希望架构在现有的内核上开发全面向对象系统,但是考虑这会有版权问题,所以只好先做基础开发自己的内核。
坦白说,e-kernel这些都是传统的技术路线,并不是我空想能做出来的,也有参考和借鉴,再加上自己一点很少的算法而已。
开发三年时间,包括仔细分析windows内核机制,详细阅读3个最著名的嵌入式操作系统源代码(哪些RTOS咱这里不便说得太明确,windows代码毕竟咱弄不到),综合参考融合各自的技术特点,写出e-kernel,目前第一版功能较单一,第二版正在开发之中,不管这个项目结局如何,也就当练练手,追寻一下自己的想法。人因梦想而快乐。
我还是显得有点不成熟,不该太较真,骂人。
想问一下matrix为什么不能把源码贴出来平息争论呢?你把你写的几万行代码贴出来,用事实说话,难道不是最好的回击质疑的方法吗?
matrix,《弯曲评论》藏龙卧虎。我现在基本上都不敢乱说话。。。Y一帮人不太好惹。许多都是业界精子,sorry,精英。
多交朋友。其他的无所谓:-)
wenxi,谢谢你对beans os的谬赞。那是刚入系统工程师的门的时候做的小东西。现在回头看,真的不算什么。
不过你说的合作之类的,这个确实我有话要说,并非我特别清高,只是我觉得诚实是一个工程师最重要的品质。我想谁也不愿意自己的团队里存在基础不牢,却喜欢夸夸其谈的人吧?
创新和浮夸之间是有着本质的区别,我们鼓励的是脚踏实地的创新,但不是空中楼阁和做白日梦。你说对不对?
我记得多年之前,就有民科号称研制成功”以水代油”,”永动机”。至于”麒麟操作系统”和”汉芯”的事,大家应该还记忆犹新吧?这些东西如果说也算是创新,也算是一种值得鼓励的梦想的话,那么无疑是一种悲哀
不过在我仔细看了这些评论过后,我感觉beans你的人品,的确值得怀疑,matrix本来没说话了,你还要继续涉及到他,才使得他也开始低俗起来骂人。
总的来说,我还是比较同意matrix的话,你才一万行代码(你自己都证实了),应该还是属于相对一个比较业余的水平。
感觉matrix并不是你想象的那样,夸夸其谈,假大空,从看他写的文档就能知道一点,虽然我不没有看到他的源码。个人观点,仅供参考。
我也从没说过我人品好啊。我本来就是技术流的流氓,不可以吗?
再说弯曲是讨论技术问题的地方,首席从没说过上弯曲还要安检吧?
我一直比较偷懒,我做的东西代码行数都少。
让我写6万行的调度器,我真没那水平。再学10年都赶不上matrix.~
不知道楼上为什么那么多人反对楼主, 楼主有自己的想法并且努力为之奋斗,这都很好, 是值得鼓励的。
不过我的理解正如Kevin所说“如果不变体系结构,LZ所做的可能就是重新订一套语言,一个对象编译器,然后还是要加一个对象——非对象翻译的东西,变成:
面向对象设计&编码(人)——面向对象编译(编译器)——翻译为非对象(某种转换?)——非对象方式执行(冯诺依曼结构)”
另外,不知道楼主有没有研究过COM/DCOM/COM+ Model, 就是由原来编程语言的源码级复用上升为二进制级复用。 思想应该跟你的差不多, 但是这门技术已经成熟超过一个多年代了,现在还是遭人诟病。
beans,你知道调度器的工作原理,但是你更要知道,真正要想做个实用的内核,那需要更多你所不知道的方面需要去做,所以我说你一万行代码,只能是实现一个最基本功能的内核,练练手是可以的。
matrix在这一点上我认为比你思考的更深入,你可以仔细看他的文档和内核API说明,而你还在那里因为嫉妒心理作怪不断抨击对方,所以,我们大家都觉得你这个人心里面的确很阴暗,技术也做得不仔细。
我收回开始对你的表扬,哈哈。纯当开个玩笑,别太认真。
to jruv:
10年前是因为看 黑客帝国, 恰好当时我正在学习面向对象c++,对COM也有所了解,恰好某天晚上又有点失眠,所以就不知不觉想一些事情,技术,刚好就想到这个问题,于是matrix思想就这样开端,后来就慢慢的发展。
如果一定要跟COM/COM+相比,可能是概念和技术虽然看起来有些类似,但是实际上会有很大的差别,我现在也不能完全说出来,因为后面很多东西并没有想得很完备。
如果非要做个类比,就好比google跟Yahoo比较,都是搜索功能,后起之秀google更好。
当然,我不是说matrix系统就好比google,请你不要误解我的意思,我本人对这个系统,也是有迷茫的。
LS的是哪里来的马甲吧。。。上来还先把自己搞成人大代表了,你能代表谁啊。我也不吝啬我的刻薄了,哪里来的傻逼啊这是。什么年代了还用代码量评水平。90年代你去的哪国啊。柬埔寨么。少在这里装辈份了,你把你community的大名晒晒,看看你写过多少行代码,你要是真是牛逼人物我立马道歉闭嘴。湾区不是装逼的地方,你要有本事也拿出来晒晒。
wenxi,就这个matrix还有值得别人”嫉妒”的东西吗? 就是我想嫉妒,他也得给出来点能让人嫉妒的东西啊。
就他贴那个创新出dss段的文档,没让人笑喷了就不错了。我真不知道有啥可以嫉妒的.
他最牛的号称6万行代码的调度器也只不过停留在嘴上吧,还有e语言,也就是个名字吧。这些东西都在哪里呢?你看有多少声音让他贴点实在的东西。他回贴全是大段吹牛和骂人,实际的东西一点没有。
你们两个人的破东西OS都是嘘头,用来吹牛和炫耀的,真要搞点东西的人,谁还有空在这里成天和一帮闲的蛋疼、没啥真正理想目标、随社会大流的、老老少少的、自我Loser的程序员们瞎吵吵啊。
beans这SB的逻辑就是,不贴点东西出来给他看,就是假的,你他妈怎么不去给微软说喊把windows内核拿出来给你看一下啊,难道你也要质疑一下微软么?看你Y那德行,写了个垃圾OS还在那里丢人现眼到处宣扬,你永远是一个不入流的二流贱B。
不过matrix,你还是应该走开源这条路,或许对你有更大空间。
关于6万行代码的调度器,确实很难让人相信。我来给没文化的人科普一下吧。
OS的调度这块代码从来都以短小快捷为目标的。以linux2.6.32来说,其sched.c也只有10958行代码,这个可以说是高版本linux的一个很完善的调度器了。光署名这个文件的开发人员就有13人之多!开发时间历时长达16年!
不过这和matrix的6万行,历时三年开发出来的调度器还是没法比阿….
晕死,Tokay就是matrix的马甲吧?呵呵。Tokay你提到微软不公开内核这个作为反驳,有些扯淡,人家靠市场靠用户数目就能说明问题,matrix的显然至少目前还没到那一步啊。要像真的说服别人,还不如忍着创业期别人的职责,最后用你的市场你的成绩来让众人闭嘴,否则现在吵来吵去显得层次蛮低,连爱说话的理客都毫无兴趣参与了。
Tokay,难道你从来没怀疑过你的偶像嘴里说的那些什么e语言,面向对象的操作系统,以及6万行代码的调度器从来都不曾存在过吗?
你在这里和我们这些持反对意见,要求证据的人说话,光凭咆哮和谩骂是没有用的。还是来点真有说服力的东西吧。
尼玛你们吵个j8呀,这里是吵架的地方吗?
你还别说,真有可能是马甲,你看matrix拿自己的东西和google比,然后这个Tokay就拿微软做比~。真强
垃圾,你就不要在这里YY别人的东西不存在了,以便为自己的的扭屈心灵找到点安慰。
我是看到matrix开始说的那番评,论拿不到windows内核代码,才说的这些。
我刚才从他那里拿到一个image库文件,支持arm a9多核的,从纯二进制代码来看,估计2.5万行左右,如果源代码+注释+头文件定义,应该6万行不为过吧。
人家那是RTOS,你知道什么是RTOS么?
马甲太明显了….matrix,你就自己上吧,整俩号有意思?
matrix阿,你就想拿个二进制的image来说明问题?你当别人是傻子吗?
不过你有个比较厉害的地方,能估计出纯二进制代码的行数….
Tokay,我再告诉你一件事,image不叫库文件,那叫镜像文件。
你以后发言还是少说技术吧。你看看你说一段技术相关的东西,居然那么多错误。你不觉得丢人吗?
实在又忍不住了,跟他说这么多有什么意思?他根本就不懂什么是嵌入式系统开发,他只局限于玩x86那套东西。
一个成功的OS,或者一种成功的编程语言,依照工作经验看,大概有3个特点:
1) 要足够简单易懂。能够让别人对你进行帮助和批评。
2) 要足够有用。至少能对几个问题有经典解决方案。
3) 要留有足够的扩展接口。能让别人做出超出设计者设想的扩展。
这些年,看了不少OS代码。越来越发觉,写一个OS不是难事,但要写出有新意的OS这是太难了。L4 OS 好多实现都是用C++,用面向对象的方法实现。因为他们有一个目标就是证明用C++同样也可以实现OS。不过现在更活跃的一个实现是用C的实现。Plan9把面向文件的思想推到了极致。Linux/BSD的内核映像文件系统就是由此参考。但这个系统也就是那几个科学家用了。前些年国内那个“和欣OS”,就是基于”COM/DCOM/COM+ Model”实现的,呵呵,因为人家就是从MS里面出来的,对那些概念,系统和工具门清。刚开始还有Smart pointer的概念,把大家唬得一愣一愣的。后来几年后再问智能指针,回答说因为性能问题,不玩了。现在公司还在不在就不知道了。
RTOS,做嵌入式的都会碰到。VMWARE,看过一些,呵呵,不是很合法。threadX,工作需要,看了个遍,好少的代码。日本那个RTOS,接口API浏览了一些。国产的那个rt-thread,居然有实际项目在用,还有不少老外参与讨论,佩服。看了一些RTOS的代码,感觉如果对real time的需求,概念和理论清晰,写一个不难,代码也不多。难的是怎样保证系统可靠,更难的是怎样让别人相信你的系统可靠。还是不要趟这个浑水的好。
所以了,有用的最要紧的。拿出来解决几个实际问题就知道好坏了。概念真的不是创新的。
matrix,嵌入式的很高深吗? 嵌入式上的image都叫库么?
我告诉你,你说我不懂嵌入式,又问什么RTOS,你不知道看到你这么说,这里有多少人又要笑你无知了。你不知道天天来弯曲灌水的都是搞哪一行的吗?
在弯网上来忽悠OS,注定是个悲剧。。。
TO@beans:
哥们.你有点过分了.
楼主的精神令人钦佩.
但看其文档的数据结构设计和代码风格来说,楼主的功力你应该很清楚的,应多鼓励!
我打算封口,以防惹得matrix一身骚,最后鄙视一下你,beans,你还真就不知道嵌入式系统,你不知道在嵌入式开发中image可以很容易的反汇编出来看代码么?我就是这样来估算这个image的代码量,你懂了吗?
如果你非要说我的方法和用词有错误,那我只好举个例子来阐述一下:i fuck your mm, 如果你非要说我这个i应该大写的话,那我也就无话可说了。
Tokay,你有一点非常有意思,就是你的知识面和见识,刚好是和matrix重合的。
劝楼主还是别提嵌入式这个茬了
你和beans他们谈谈面向对像什么的没准还能占点便宜 要是谈嵌入式 那你真是自寻死路了
看了半天 楼主的贴子内容一半是吹牛
另外一半是骂人 看样子也没做啥实际的东西
说的6万行代码一会儿说是光调度就那么多 最后又变成所有代码六万行了 自己说的前后都矛盾
不过真有也好 吹牛也好 讨论就是讨论 不要人家说你的东西有问题就开口骂人 有点素质吧
说实话 你这东西在这里被批是肯定的 这和里校园里的论坛不一样 你这样水平的在这 不客气的说 是垫底的
纯二进制代码是binary image,binary image你能拿到段的信息?还是你分不清binary image和elf image的区别?就算你拿到text信息,多少人能从asm倒推出c code的规模?还精确到25k行?我随便改个编译选项指令数都能差一倍。你们家统计代码行数都是带着注释头文件统计的?NBNC是什么懂吗?还有,你竟然能拿到人家的文件并且逆向,matrix连代码都不开源的都没找你麻烦啊。
tokay这种不要脸的马甲。连fuck怎么用都不会用。还”i fuck you”。这马甲水平实在是太差了
个体微小如沧海一粟,人生如白驹过隙,多珍惜缘分,少一点纠结
还是理客说的对啊。
还有一点啊,于其在这里纠结打嘴仗,不如干点实际的:做技术只看到技术而没有看到市场,多花时间接触市场和销售的人,更或者是风险投资的人,他们会从不同的角度(也许是更高的角度)看问题,他们的输入会让你看到技术世界的另一面,而这一面如果你不主动找,它永远是平行的,做好被人骂成猪头的准备,骂你是爱护你。
说的太多了,唉,该歇会了。
就事论事,越辩越明;情绪过多,有理不清
是这个马甲水平太低,LZ的演技实在太拙劣。
LZ有点老毛的本事哈。
LZ把自己的东西帖出来,是什么意思呢?全面接受表扬与吹嘘、还是通过别人的批评以纠正自己的不足而完善之?
历史在这种地方也在重演。真TM见鬼。
当然老毛在延安的整风与文革前的反右,都有这么一招。给你一个目标,让你说。说得差不了,就开始全面反击。无情打击。甚至肉体消灭。
大家都学会了吧?
没学会,私下向LZ缴点学费吧。
向老毛学习的机会是没有的了哈。
哎,kevint,你这个业界的精子,sorry,精液,sorry,sorry,精英,太能扯了,我认输,不说了好吗?你还是认为i和I是有区别的,所以我就说正确一点吧,I fuck you mm.这下语法应该没得破绽了吧,哈哈,
BTW,你懂得起编译二进制代码里面可以插入调试信息么?matrix给我的是包含完备的调试信息二进制库文件,你不服气,可以去google搜索以下e-kernel,你有机会找得到第一版的某个二进制库文件,good luck.
顺便再说一句,我们现在玩的是第二版,SMP,你不要又选择性的失忆跟第一版较劲。哈哈
Haha,tokay和matrix太像小孩子了,先假设你两不是同一个人吧,那么你俩的表现好像:tokay和matrix两站在路边,matrix手里有两个馒头,然后matrix施舍了一个给tokay,tokay骄傲的向周围路过的人们嚷嚷道:”看,matrix给了我一个馒头,你们羡慕吧,你们没本事得到matrix的施舍吧”。搞得跟别人都吃不到馒头,稀罕matrix的那个破馒头似的。
Tokay说,他从matrix那拿到的image,反汇编后是2.5万行。
如果以上事实成立,那么matrix是不可能有6万行代码的。Tokay(或者就是matrix本人,呵呵),你在说谎之前,先自己反汇编一个hello world看看呗。你看一个程序的汇编码行数和原代码行数之间哪个多哪个少?大改是什么比例。
你别告诉我们你那6万行代码里5万行是注释,呵呵。
到最后,matrix还是自己把自己卖了。我看你还有啥可说的。
beans,你太无知了,我又好心的来给你科普一下吧,嵌入式软件,尤其是OS这样的系统软件,不能调用任何现成的库函数,所有代码完全是生写,一一对应编译,哪像你在x86玩一个hello world,调用一个printf函数就自动给你生成好多代码。
说你是精子,你还真是一点都不含糊。
再给你透露点消息吧,matrix这个库还没有加入虚拟内存mmu功能,光是这一个组件的代码,目前就已经开发6千多行了,你Y就跟kevient一起,在黑暗中治疗自己扭曲的人格吧。
我并不是说matrix这个系统就多了不起,我也只是玩玩,我们公司还是继续用vxworks,我只是给你们说点实话,顺便治疗你们的心灵创伤。
恩。好吧。他给你了个elf,然后你从elf里看出来这个image支持A9 SMP。
另外,你可以google一下i fuck you。看看有没有这样的用法。都提醒你了还找不着错。英语比你的代码功底还烂。。。
哎,说来说去不就是嵌入式里面的几个概念么。binary image也算嵌入式的行话俗话了。但不是一个很精确的定义了,不同的人说出来会有些差异了。143楼就说得精确,可以细分为binary image和elf image。这个binary image和不同的人说,有可能是OS image,也可能是(boot loader + OS + APP) image容器文件,得看上下文。那这就扯远了。这里假定binary image指的是OS image。对应到LINUX就是zImage/uImage这类文件。elf image就是vmlinux这个文件。从elf image里面的调试信息估计代码行,以前还真没有这么想过。细细想想理论上可行。但是这信息对应的是单个源文件的代码行。除非这个elf image是由单个源文件编译出来,否则要过滤多个文件的调试信息再相加,嚯嚯,这种繁琐而没有意义的事情有人做么。再有,elf image就是要给调试器调试和定位源代码用的。如果不给源代码,我想不出给个elf image到客户手里有什么用。
要支持A9,就我想到的要支持几点特别的。一是多线程,kernel thread可以在不同的CORE上调度运行。二是硬浮点。三是支持NEON指令,我猜你们用的是TI A9,那这个是要支持的,如果是NV or HW的,这个倒可以缓缓。以上这些只是针对具体硬件写个OS要考虑的具体问题。如果再到上层OS的框架,感觉你们是储备不足,视野不够,玩不起概念的了。
Tokay,你当别人都傻?全世界就你明白嵌入式?你来弯曲还敢拿嵌入式,rtos这些东西忽悠,真是找抽。
咱们继续拿linux/kernel/sched.c这个文件说事,这个文件本身有10958行代码,用mips64 gcc的工具链反编译其.o文件,得到的汇编的码多达14750行。就是trip过的sched.o,其汇编码也是14702行。
你怎么可能把6万行代码的程序汇编成2.5万行?
kevint semen,我们直接在a9平台上面跑的,你的YY功底算得上一流。
代码+注释+头文件,你非要说这个代码统计方法不算数的话,那我也没辙了,至少我们在国内还算知名公司的开发一直是这样统计。
如果按照我司代码开发要求详细注释,最少估计,目前这个image 4~5万有,再加上以后虚拟内存实现了,那就差不多6万了.所以matrix开始给我并没有乱说话,实事求是。
开始装huawei人来狐假虎威了。。。。。。。。
Matrix,你这么说大家不就明白了。
6万行代码是什么呢?
6千行源码 + x行注释 = 6万行
哈哈。
恩…是这样:
6千行源码 + x行注释 + 未来将要编写的mmu支持 = 6万行
对不?matrix ? 呵呵。
这次算我打假成功不? 来,matrix还是tokay什么的,你自己说。
我终于被纯SB打败了,我认输,正式闭嘴,不再参与评论,你们自己玩。
恩,从一开始的不认识到现在的我们。好吧。呵呵
matrix,自己回头去读读前面你发的帖子,看看那个牛都是怎么吹的。多么伟大的matrix系统,6万行的调度器,e语言~。高深的rtos。鄙视我写的1万行代码的系统….
结果现在自己吹牛把自己套进去了,真好玩。
此外吧,调度程序是要连着用户态虚拟内存一起切换的。你现在mmu功能都没支持,调度居然写好了?
那你以后调度这里还要回炉阿~~。
好了,matrix,这都 证据确凿,你再赖了也没用了。
至于证据,这还是你自己提供的。”2.5万行的反汇编”。 呵呵,真有意思。
你还是回去好好写注释吧~,3年写出好几万行注释,还是自己做,不开源的项目,也挺极品。
binary image就是binary。
zimage还是uimage都是打过包的vmlinuz,本质就是elf文件
用过elf2bin的难道还会对这两个概念有歧义么
恩,Tokay和matrix是一个人也已经可以确定了。
1,已经开始用 “我们”了
2,Tokay号称从matrix处获得的代码量评估是按照”我司”(即Tokay公司)的方式评估出6万行的。
但是matrix是哪个司的呢?呵呵。matrix也号称自己做了6万行代码(不是评估出来的哦),可见他要么和Tokay是一个司的,要么就是同一个人。
好吧,回头看看这斯发的所有贴子吧。自己伪装了两个不同的身份,一唱一合。伪装不认识,自己吹捧吹自己….. 真没治了。
一种人 靠 usoc vxworks 之类的os 起家. 从U32就能看出来
一种人 是看linux代码长大的.
不评价2种人的技术功底.
这2种人 在一起, 肯定要打架的.
呵呵,预料之中的事情,早给你说了你不听,人至贱则无敌,人脸都不要了,你怎么能赢。
知名公司。。。我就知道再脑残的公司统计也是按NBNC算。能把BSS搞成DSS,也不指望你知道NBNC是什么意思了
跟这些人一认真,其实你就已经输了,最好的方法是:当着看不见,^_^
matrix,又换wenxi这个号上了?
这次wenxi不扮演人大代表了? 不是觉得我技术做的不仔细吗?这次你觉得我够不够仔细呢?
这个世界患有paranoia的人还不在少数
tokay能透漏一下自己是哪个公司的吗?
matrix,跟你说,我并不是学计算机出身,我大学读的专业是医学。
我可以给你诊断一下:
你很可能属于妄想型精神分裂症一类
你这个什么matrix系统,6万行调度代码,以及e语言,这些都是妄想症的具体表现。
至于一个人扮演了多个角色,互相还带对话的,每个人使用不同的口气….唉…你这不是精神分裂吗?
难怪你那么业余,表面装得相当专业,以为会了几个专业词汇就是专家了,其实就是经金玉其外,败絮其中,
咱们姑且不说matrix的RTOS到底有多少代码,你看过vxworks代码么?692版本一个mmu管理组件就是1.2万行。
SB,你懂什么叫专业?什么是实用,你真的是超级垃圾,还在这里丢人现眼。
貌似beans曾经在windriver呆过吧,好像就是做vxworks开发的哦。
葡萄酒兄,不要再继续了,他一直局限在他的思维中,不能自拔,他在井底呆得太久了,不愿意承认外面还有个很大的世界。你在公司在a9上面也尝试了我的e-kernel,性能没问题吧,干脆就用我的嘛,哈哈哈,开个玩笑。
不过我很佩服,一个学医的,做到这个份上还是值得肯定。
vxworks有100万行代码和你也没有关系。就你这水平的,想去风河扫地都没可能。
脸真越来越大,听口气还想用你那破玩艺取代vxworks了…..
被曝光到这个程度,居然还敢出来吹。~
matrix,我这次拍你的砖,目的就是打假,你这个人脸皮厚,嘴巴不干净,还胡搅蛮缠。我以后也懒得和你辩什么。打假的目标已经达到,以后你再敢出来,我一律回帖如下:
matrix = 6千行源码 + x行注释 + 未来将要编写的mmu支持 = 6万行
这也省得新来的弯友去前面翻贴了。你说好不好?
好吧,看下来太搞了!没想到还有人提到rt-thread,谢谢捧场:-)
通常来说,1w行以上代码来写个调度器是极其夸张的,不是说代码越多越好,而是说你能够用最简短的代码实现相应的功能最好。
这个领域,特别是是嵌入式领域、特别是实时领域。在实时领域,你如果代码用多了,那么很明显指令就多,技术指标直线下降。
我想说的是,beans不要乱说,Tokay兄公司可是风河在华比较大的客户了,人家是vxworks的忠实粉丝,他只是拿我的ek玩玩而已。
另,你爱怎么说就怎么说吧,爱怎么猜测也是你的事情,跟我没毛线关系,我说过,你只配被我骂一次,就你那人格,我觉得那次骂你也有点降低我的层次,真的。
这……这,都感觉在骂大街了
真是无知者无畏阿。以楼主的水平,应该还停留在windows应用开发的阶段。现在谈编写操作系统,编译器之类的东西了。早了点啊。
TO@beans:
你和这些用u32写代码的小孩,计较个啥!
看不下去了,怀临,删贴,封号吧
will do。大家都冷静冷静。