最小的node.js webservice是否可行,只有128MB的ram

时间:2016-02-29 15:04:37

标签: node.js embedded-linux

我需要在接口控制处理器上运行一个用于嵌入式硬件盒的Web服务。该供应商声称,因为它运行Linux我应该能够编译和运行我想要的任何东西。然而,因为它是一个非常硬件约束的平台(400MHz PPC,128 MB RAM),我怀疑这是一个有点乐观的评估。

不幸的是,目前我无法从EE的手中撬几天来尝试在硬件上测试内容,看看哪些会起作用或哪些起作用。通过专有连接器与盒子中的所有其他控制器连接的需求也意味着“使用rPI而不是”的任何内容都不是一个严肃的选择,即使它使我的工作更容易。

2 个答案:

答案 0 :(得分:1)

一种可能性是使用 qemu 创建一个虚拟机,并在其上放置一个像busybox这样的小型Linux系统。

裸机Linux系统在8 MB上运行得很好,最小的Debian 7系统需要大约32 MB内存。

您可以从一些linux-ppc映像开始,安装node.js,抛弃您不需要的所有内容,然后查看它如何以128 MB的速度运行。

答案 1 :(得分:1)

对于运行,交叉编译和测试 OpenWRT 有一个很棒的SDK。我正在使用它与git和这个Makefile:

include $(TOPDIR)/rules.mk

SRC_REPO:=~/Projects/openwrt/projectname/ #git repo

PKG_NAME:=projectname
PKG_VERSION:=$(shell (git ls-remote $(SRC_REPO) | grep refs/heads/master | cut -f 1 | head -c 7))
PKG_RELEASE:=2

PKG_BUILD_DIR:=$(BUILD_DIR)/projectname-$(PKG_VERSION)


include $(INCLUDE_DIR)/package.mk

define Package/projectname
    SECTION:=MyProjects
    CATEGORY:=MyProjects
    TITLE:=configuration utility
    DEPENDS:=+lua-wsapi-base +luafilesystem +lighttpd +lua-cjson +lighttpd-mod-rewrite +lighttpd-mod-cgi
endef

define Package/projectname/description
    configuration utility
endef

define Build/Prepare
    git clone $(SRC_REPO) $(PKG_BUILD_DIR)
endef

define Build/Compile
    cd $(PKG_BUILD_DIR); make clean build dist
endef

define Package/projectname/install
    $(CP) $(PKG_BUILD_DIR)/dist/* $(1)/
endef

$(eval $(call BuildPackage,projectname))

对于嵌入式系统上的网站,我使用 AngularJS (Ubiquiti在其新产品上使用BackboneJS)。想法是将逻辑从设备移动到浏览器并通过api控制它。

对于API实现,我使用 Lua 而不是 CGI 。另一种可与CGI兼容的语言是PHP-CI(PHP-2 afaik的分支),Perl,Bash,Python或编译C \ C ++代码。