`
linrulong2005
  • 浏览: 14514 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

我看Jnode

 
阅读更多

      经常有人喜欢问,有没有java写的操作系统?有的,Jnode,一款不怎么流行,代码很好看,但是界面很丑,用户体验很差、有很多BUG的操作系统。

      我个人觉得:一个操作系统是对一个编程思想的整合,具体用什么语言来写不重要。经过考证,确实有用硬件语言写的Jvm,所以java写操作系统和C、C++比起来没有什么技术上的障碍。而且,我昨天也问过我的老师,为什么不改变java的编译方式,让它也能和C、C++一样能更容易地跑在硬件之上?因为在我看来,java的优势并不在于它的跨平台,而是它的语法习惯,以及java所体现的面向对象思想。所有的类都是Object的子类,光这一点就解决了C++中N多不便解决的问题,还有很多java用以完善C++中的面向对象思想的语法特点。所以,我也在问java写的操作系统的时候是在寻找一个代码易读懂,便于学习和理解的源代码。至于性能方面,我也略略了解过编译原理,我觉得java做到高效也并不是难事(前提条件是java保持语法风格,但是转变为C++那种编译执行的执行方式)。

       Jnode的横空出世,是java发烧友的一腔热血浇筑出来的,要推广的可能性很小。但是用于学习还是很不错的,特别是让java程序员去理解GUI编程以及操作系统的经典原理是非常不错的教材性代码。

       昨天看到网上的文章提到Jnode作为一款用java写成的操作系统可以有很多java写的应用程序可以直接在它上面跑起来,但是更多的用C、C++写的程序能很方便的在Jnode上面跑起来?恐怕不那么容易吧?就好比windows里面装个虚拟机跑linux,结果为了在虚拟机里面玩游戏,又在虚拟机里面装个虚拟机跑windows一样。

      有句话叫“时势造英雄而不是英雄造时势”,用在这里再恰当不过了。面对那么多历时遗留问题,Jnode真的是力不从心。除非,java发烧友的数量超过一定的限度,或者出现天才。

      用我们一个老总的话说,其实我们现在做的应用就是在做操作系统。原理上是一样的,确实,从硬件到软件,从虚拟世界到现实世界,道理都是一样的。曾经我还很遗憾,我深爱的java居然不能完整地做一个操作系统,确实是莫大的悲哀。但是当“云计算”呼风唤雨的时候,java在web方面的优势体现得淋漓尽致,既然现在web OS那么火,而服务器端用java的又那么多,何不如让java在web OS这一块大舞台上跳一支更精彩的舞? 在等机会的时候,我们可以选择争取机会,甚至创造机会!

      跑在虚拟机上的java并没有因为虚拟机的限制而限制了它的发展,我也更欣赏java在面向对象方面体现出来的智慧光芒,同时也很感谢Jnode背后的团队,让我们这些java程序员共同努力来让java发出更亮的光芒吧!

1
1
分享到:
评论

相关推荐

    jnode:JNode操作系统的代码

    JNode-All一切融合在一起的根项目JNode-Cli各种命令行命令JNode-Core核心Java类,虚拟机,操作系统内核和驱动程序框架JNode “分发”所需的JNode-Distr工具和应用程序JNode-FS文件系统和各种块设备驱动程序JNode-...

    JNode: new Java Operating System-开源

    JNode是Java新操作系统的设计工作。 JNode是易于使用和安装的Java操作系统,供现代设备上的个人使用。 任何Java应用程序都可以在其上快速安全地运行。 请参阅我们的主页以获取更多信息。

    node-v13.14.0-sunos-x64.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 ...

    jvisio-flow.zip

    开始节点、结束节点的创建,判断节点的创建,都支持拖动创建,移动鼠标到节点上,支持删除节点及修改节点,双击节点线,支持删除线功能,效果图:https://blog.csdn.net/lihong22/article/details/105412363

    jsPlumb 完整实例

    **jsPlumb 深入理解与应用** jsPlumb 是一个开源的 JavaScript 库,专为构建可拖动和可调整的流程图而设计。...在“jsPlumb 完整实例”中,我们将深入探讨如何实现页面初始化流程图、动态操作节点和连接线,以及保存...

    从C++到Java,10年技术生涯的几点思考

    从算法上讲我认为毫无疑问是汇编〉C++〉Java,不要迷信某些个别评测,单纯的回圈测试什么的,比如JNode的官方网站上有Java写的JVM的性能和SUN的JVM进行性能比较的结果,JNode中用Java写的JVM竟然能比SUN公司用C++写...

    golang的json处理库json4g.zip

    node.GetNodeByPath("STRUCT.a.b")fmt.Println("STRUCT.a.b>>>>>>>", jnode.ValueNumber)}node.DelNode("NUMBER") //删除node.AddNode(NowJsonNode("name", "value")) //增加node.ToString() // 转化为字符串有问题...

    作业调度算法源代码

    #include #include //定义结构体数据类型 typedef struct jnode{ int index; int a; int b; int tag; }jobtype;

    Java中的缩写.pdf

    7. **JNode**:JNode是一个实验性的Java虚拟机,旨在在没有操作系统的情况下运行Java程序,目前仍在发展初期。 8. **AAA (Authentication, Authorization, Accounting)**:这代表认证、授权和计费系统,是网络安全...

    JavaEye新闻月刊

    6. **JNode 0.2.7**:JNode是一个用Java语言编写的开源操作系统,旨在提供一个轻量级、高效的替代方案。版本0.2.7的发布代表了项目在实现全Java操作系统的道路上取得的进步。 7. **EJB 3.0与Spring 2.5**:文章探讨...

    Java IPv4 Socket-开源

    IPv4 套接字由纯 Java 实现。 它派生自 JNode。 我已经从中抽象出 ipv4 层。 如果你有 IPv4 能力(比如 PPP),你可以让整个 socket 模块运行! 更多信息,请访问 www. simpleteam.com

    JAVA基础加强 --学习心得一(JAVA中常用英文单词简写释义).docx

    19. **JNode**:JNode是一个开源项目,目标是创建一个轻量级、高效的Java操作系统。 20. **AAAJTA (Java Authentication and Authorization Service for JTA)**:这可能是错误的缩写,正确的应该是JTA(Java ...

    Java中的缩写.docx

    JNode是一个特殊的Java虚拟机(JVM),旨在让Java程序在没有其他操作系统的情况下运行,尽管目前仍处于早期阶段。 最后,开放封闭法则(OCP)是面向对象设计的基本原则之一,提倡软件设计应允许扩展但禁止修改已有...

    java常用名词解

    JNode 是一个基于 Java 的操作系统,它的目标是成为一个完整的操作系统平台,而不是仅仅运行在其他操作系统之上。JNode 项目展示了使用 Java 构建操作系统的可能性,虽然目前仍处于早期阶段,但它提供了一个有趣的...

    Java语言中所有常用术语解释大全 txt

    - **定义**:JNode是一个完全用Java编写的操作系统,它的目标是探索Java在操作系统领域的可能性。 - **特点**:JNode具有很高的灵活性和可扩展性,支持多线程、多任务处理等功能。 #### JTA (Java Transaction API)...

    Treeflow.js:虚拟化并合并数据源以生成可视化和实时分析的“魔术树” Tree

    堆栈的概述如下:Node.js(在本例中为JNode服务)是设置socket.io并在Webpack-ing React组件之后托管视图资产的主控制器。 它提供了TreeFlow服务的主要入口点。 当Node服务开始运行时,socket.io由Node.js托管。 它...

    RosVRPN工具箱附matlab代码.zip

    rostopic = roslib.JNode(); tracker_sub = rostopic.subscribe('/vrpn_client_node/tracker0', 'vrpn_Tracker_Analog', @trackerCallback); function trackerCallback(msg) % 在这里处理msg中的数据,例如位置和...

    OpenSEES学习笔记.pdf

    `element zeroLength 1 $iNode $jNode -mat 3 -dir 1;` 通常有两种方式来模拟阻尼和弹簧行为:(1)桁架单元和阻尼材料(Truss Element and Viscous Material);(2)基于力得梁柱单元和 Maxwell 材料(Force-...

    Erlang的高级特性和应用

    它内置了分布式的原语,支持cnode和jnode,进程可以在节点间自由迁移。节点间的通信高效、安全,通过epmd实现类似DNS的名称解析。OTP(Open Telecom Platform)提供了诸如gen_server这样的行为模式,简化了分布式...

Global site tag (gtag.js) - Google Analytics