当前位置: 首页 > news >正文

君の古风操作系统Haiku现已支持Node.js

曾经有一款名为 BeOS 的操作系统,由于该厂家自身原因于 2001 年终止开发并被 Palm 公司所收购,从此更名便有了 Haiku 操作系统,不过 Haiku 操作系统延续了 BeOS 的用户体验和个性,它是一个快速,简洁优雅,易学易用,而且非常强大的操作系统。

Haiku 操作系统的名字:

由于 Haiku 操作系统继承自商业操作系统 BeOS,而 BeOS 里面,大量输出信息使用俳句的形式(Haiku 翻译过来就是俳句,俳句是日本的三行诗,以其静谧、优雅、简洁著称,所以这是一款够诗意够文艺的系统),比如 BeOS 网络错误信息会有如下输出,此乃原文:

Sites you are seeking
From your path they are fleeing
Their winter has come.

译文(来自网络):

君所觅之站
正循君之所迹离失
恐已入休眠之季

对于这样的系统报错,即使当你遇到了网络问题,是不是哭笑不得啊?

当然 Haiku 操作系统并没打算真的写诗,而是用来表明团队对这个系统的热爱之情。

Haiku 操作系统的特点:

  • 特别关注于个人计算

  • 快速响应的定制内核

  • 高效率多处理器/核心的多线程设计

  • 用于快速开发的丰富的面向对象 API

  • 支持元数据的类数据库文件系统(OpenBeFS)

  • 统一严谨的接口

 

 

Haiku 现已支持 Node.js

 

 

目前市面上大多数号称跨平台(Linux、Windows 和 macOS)的软件主要都是使用 JavaScript 或 TypeScript 编写的,而运行这些应用都离不开一个开源项目 —— Node.js,这是一个基于 Chrome V8 引擎的 JavaScript 运行环境。

Node.js 已经流行很多年了,本文将提到的开源操作系统 Haiku 却一直迟迟没有对 Node.js 提供支持,因此我们无法基于 Haiku 运行或开发依赖于 Node.js 运行环境的 JavaScript 应用和库。

不过从现在起,Haiku 操作系统将长期以来的缺席补上了,我们可以从 Haiku 的包管理系统 HaikuDepot 下载 Node.js 并进行安装使用(目前仅支持 64 位版本,对 32 位版本的支持正在开发中)。当前可用的版本是 12.3.1,在撰写本文时,该版本已更新为最新版本 12.10.0,并且也将支持即将推出的 LTS 版本。

此外,Haiku 团队的维护者也一直在向上游 Node.js 项目提供相关的支持补丁,目前已支持 libuv(跨平台 async I/O 库), GN 等项目,还希望为更加大型的项目提供支持,如 V8 JavaScript 引擎以及 Node.js 项目。

如需在 Haiku 上安装 Node.js,首先要在 HaikuDepot 中搜索该软件包,然后单击“安装”或在 Haiku 终端应用上输入pkgman install nodejs命令,它将自动安装所有内容。

这对于 Haiku 的使用者来说,也就意味着我们可以使用 npm, yarn 或其他包管理器直接从 JavaScript 和 TypeScript 生态系统安装和运行软件,并且大多数软件都支持开箱即用。下面是一些运行在 Haiku 上的软件。

在 Haiku 上运行 React 和 TypeScript:

在 Haiku 上运行 Angular 和 TypeScript:

简易的 Express Web 服务器:

Socket.IO 聊天 Demo:

使用 Hexo 创建一个静态网站:

另外,还可以通过远程使用 Chrome Inspector 来连接 node 程序以进行远程调试。下面是在使用 Chrome (macOS) 远程调试在 Haiku 机器上运行的 Node.js 应用的一个例子:

 

 

 

请注意,这是将 Node.js 移植到 Haiku 操作系统的早期阶段。因此,某些软件包可能会无法正常运行,并且需要修复补丁。

与此相关的是,Haiku 上的 Node.js 某些功能当前也不可用,例如用于监视文件系统中文件更改的文件系统事件 (fs-events)。不过 Haiku 本身也具有监视文件系统事件的功能,但团队表示未来有计划将其集成到 Node.js 中。

最后,团队目前还在研究 Haiku 的绑定功能以处理 JavaScript/TypeScript 中的 GUI 应用程序和其他特性。

 

相关文章:

  • Web前端面试题目汇总
  • 30分钟教你学会前端模块化开发
  • React 初学者需要知道的一些知识
  • 7 个沙雕又带有陷阱的 JS 面试题
  • 大厂前端如何基于 GitLab 进行自动化构建及发布
  • 前端这5个Ajax的坑,你踩过几个?别说都知道
  • Node.js 定时器详解
  • 三年经验前端开发面试总结
  • 框架设计:如何基于 Egg 设计 Node 的服务框架
  • 用好这 42 款 Chrome 插件,每年轻松省出一个年假
  • 解密国内BAT等大厂前端技术体系-百度篇(长文建议收藏)
  • 你总会用到的 JavaScript 工具函数大全(建议收藏)
  • 新手学习 react 迷惑的点(完整版)
  • React Hooks异步操作二三事
  • 三刷红宝书之 JavaScript 的引用类型
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • AHK 中 = 和 == 等比较运算符的用法
  • E-HPC支持多队列管理和自动伸缩
  • ES6简单总结(搭配简单的讲解和小案例)
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • JavaScript类型识别
  • MYSQL 的 IF 函数
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • PHP那些事儿
  • Python十分钟制作属于你自己的个性logo
  • Solarized Scheme
  • 对JS继承的一点思考
  • 服务器从安装到部署全过程(二)
  • 工程优化暨babel升级小记
  • 模型微调
  • 写代码的正确姿势
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • 交换综合实验一
  • ###项目技术发展史
  • #100天计划# 2013年9月29日
  • (2015)JS ES6 必知的十个 特性
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (安卓)跳转应用市场APP详情页的方式
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (算法)Travel Information Center
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • .NET delegate 委托 、 Event 事件,接口回调
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • /*在DataTable中更新、删除数据*/
  • /etc/fstab 只读无法修改的解决办法
  • ?.的用法
  • @Resource和@Autowired的区别
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略
  • [4.9福建四校联考]
  • [C++][基础]1_变量、常量和基本类型
  • [Docker]六.Docker自动部署nodejs以及golang项目
  • [Excel] vlookup函数
  • [HCIE] IPSec-VPN (手工模式)
  • [IDF]摩斯密码