NetWinder 办公室服务器

制造商:Rebel.com
电子邮件:info@rebel.com
价格:1000 美元
评论员:Jason Kroll
“如果 NetWinder 可以缠绕网络,那么一台 NetWinder 可以缠绕多少个网络?”——Dan Wilder,SSC 技术经理
此外,NetWinder 是什么?NetWinder 是一款基于 StrongARM 的 Linux 盒子,构建为网络服务器。NetWinder 有三种型号:OfficeServer、Developer 和 ThinClient。其中,OfficeServer 和 Developer 型号是常见的 NetWinder 服务器盒子,而 ThinClient 是一种新创造,一种笔记本大小的图形终端,人们大概会将其与 OfficeServer 一起使用。Developer 型号是扩展的 OfficeServer,顾名思义,专为开发者设计。它具有更多的接口和开发工具,以及活跃的开发者社区。OfficeServer,我们今天的课题,是标准的 NetWinder,一种运行网络的设备,无论它们是数十台办公室计算机还是仅仅是您家周围的几台终端。
任何旧的 Linux 盒子都可以很好地充当服务器(据最新估计,互联网上运行“任何旧的 Linux 盒子”的数量比任何其他东西都多),但 NetWinder 不是任何旧的 Linux 盒子。NetWinder 的核心是 StrongARM 架构,这是一种由 ARM 和 DEC 合作开发的 RISC 技术(尽管 DEC 被康柏收购,但英特尔现在生产 StrongARM)。我们稍后将深入探讨芯片的技术细节,但重要的是要了解处理器的一些表面差异,这些差异使 NetWinder 如此紧凑。StrongARM 在嵌入式系统中很受欢迎,因为它耗电少且保持凉爽。因此,NetWinder 可以非常小巧且资源最少,这些都是重要因素,因为它旨在始终开启。它旨在无头运行;也就是说,没有显示器。用户无需了解 任何 关于 Linux 的知识即可使用 NetWinder,他们甚至可能永远不知道它运行的是哪个软件——它只是一个小小的魔法盒子,这正是大多数人想要的。在我们打开魔术师的滑稽盒子看看它是如何工作之前,让我们先看看它能做什么。
一天上午晚些时候,我的同事们听到我大声抱怨我在 NetWinder 上编译某些软件时遇到的困难,然后是“天哪!它甚至没有网景!”不用说,必须做些什么来让我安静下来,所以一位同事建议,“你为什么不按照 应该 的方式使用它呢?”为了纪念这位同事,我们现在将按照预期的方式使用 NetWinder;也就是说,作为无头互联网、文件和打印服务器。
NetWinder 的配置相当简单。只要您为 NetWinder 分配一个有效的 IP 地址,您就可以将其插入并立即将 Web 浏览器指向它。配置应该在 Windows 下进行,但可以通过任何浏览器完成。我实际上更喜欢插入显示器和键盘,编辑几个文件,然后在短时间内启动它。但是,如果您对 Linux 一无所知,基于 Web 的界面将引导您完成安装。虽然我听说有些人安装 NetWinder 时遇到麻烦,但我几乎不必对它做任何事情。也许我使用的是更新的版本。
一旦初始配置完成,NetWinder 将愉快地运行(好吧,我们上次据称击落了微软“防黑客”盒子的闪电风暴也重启了 NetWinder),如果您想进行任何更改,请将您的浏览器指向其地址并登录。您可以以用户或管理员身份登录。用户菜单提供目录信息、信息场所文档组织、讨论组访问、用户配置文件访问、搜索菜单和在线帮助。这些功能是不言自明的;它们是为普通用户和办公室人员提供的,菜单清晰简洁。
管理模式菜单本质上是 root,带有用于编辑用户帐户、组数据、主机信息、系统管理、服务可用性和网络配置的菜单。同样,子菜单也很清晰,允许您单击一下即可打开和关闭服务。使用 NetWinder Web 界面就像访问打印机的网页一样简单(您可能已经注意到打印机拥有自己的 Web 服务器的奇怪趋势)。人们可能认为网络服务器很复杂,但事实并非如此。也许这就是 NetWinder 的重点;它不一定比标准的 Linux 盒子更强大,但它非常容易访问,以至于那些没有花费多年时间研究 UNIX-Linux 网络能力的人也可以使用 Linux 的强大功能,而且操作非常简单。
您可以用 NetWinder 做什么?假设您从过去的采矿活动中发了财,并且拥有一栋有 60 多个房间的豪宅,您想为其中一些房间连接互联网。那里举行了一场大型复制派对,客人留下了遍布各处的电脑:一些 Linux 前时代的 Macintosh 电脑、十几台 Linux 机器、几台 FreeBSD 和 NetBSD 盒子,甚至还有一些运行 BeOS 的东西。一个困扰您家的邪恶幽灵坚持在阁楼里运行 Windows,所以让我们假装您在那里安装了一个 NT 盒子。在寻找解决方案时,您突然听到一个孩子的声音说:“欢迎来到 NetWinder!”(您每次启动时都会听到 每次)。突然,您意识到您现在已准备好将所有机器联网。
首先,购买一个真正的大型集线器和一个具有高速访问权限的 ISP 帐户:例如,DSL 或有线调制解调器。我建议不要在 ISDN 上浪费任何精力。如果您已经有一个局域网,您可以将机器添加到网络中,并使用 Web 界面设置所有内容。否则,连接显示器、键盘和鼠标,并尝试手动配置,可以直接通过编辑文件或使用 nwconfig 程序。只要您可以使用 Web 浏览器访问 NetWinder,您就可以快速配置所有内容。将 10 BT 以太网插入您的 DSL 或有线调制解调器(或在必要时使用串口),将 100 BT 以太网插入您的集线器的上行链路,然后将所有计算机插入集线器。为它们配置单独的地址和名称,您就拥有了一个网络。
据推测,您还需要服务。NetWinder 菜单和手册解释了如何设置服务。首先要做的显而易见的事情是 Web 和电子邮件,因为这些似乎消耗了大部分在线兴趣。Apache 始终在运行,因此您可以访问管理菜单,但您也可以通过虚拟主机使用它运行通用网站;甚至还有一个网页创建程序,尽管它并不算高级。因此,您家中的居民可以拥有自己的网页。电子邮件设置很简单;只需通过管理菜单启用 SMTP,并将您的本地邮件阅读器指向 NetWinder。要从您的终端读取邮件(而不是以用户身份登录 NetWinder),请启用 POP-3 或 IMAP 服务,并告知您的本地邮件阅读器 NetWinder 的地址。您可以建立电子邮件转发和过滤,甚至可以为您不在时设置自动回复消息。
NetWinder 可以执行您对 Linux 盒子的任何期望,包括跨 UNIX、Macintosh 和 Windows 机器的文件和打印共享。高级管理员可以执行各种操作,从建立类似 BBS 的线程式讨论论坛到相当官僚的事情,例如在所有地方强制执行配额。按照设计的方式使用 NetWinder 不会让人失望,但是这些机器可以作为家用电脑使用吗?
NetWinder 几乎拥有您可能需要的家用电脑的所有功能,除了软件。OfficeServer 具有以太网端口、串口和并口、PS/2 键盘和鼠标端口,甚至还有一个红外接收器(大概用于不支持的无线键盘),但它缺少一些软件。最明显的遗漏是网景和 gdb,尽管我被告知网景应该很快就会移植,我怀疑 gdb 被遗漏是一个错误。此外,NetWinder 的发行版是一个旧的 Red Hat,带有 FVWM95-2,现在已经过时了。Debian 可以在 StrongARM 上运行,现在是黑客的首选,因此 Rebel.com 应该稍微现代化一点。无论如何,窗口管理器和 Web 让我对 RISC 芯片的热情不如它们,所以我认为我会通过使用 gdb 来了解芯片,但这并没有实现。但是,我确实通过一些电子邮件和一个被称为“逆向工程”的过程(编写 C 程序,使用 gcc -S 编译,并从那里破译芯片)了解了芯片。
如果您以前没有见过 RISC 汇编代码,那么看到单行上有如此多的操作数可能会感到奇怪。毕竟,CISC 用户习惯于像 MOV A,B(或 MOV B,A)这样的简单语法。相比之下,RISC 技术允许您在单行上指定多个操作数,以及传达比通常的相对、绝对和立即寻址信息更多的信息。尽管现在许多黑客避免学习汇编代码(ESR 在关于如何成为黑客的建议中推荐 C、Python、Perl 和 LISP),但如果不具备这些知识,就很难理解操作系统设计。当然,必须有人 知道它,否则什么都无法实现。当将 Linux 移植到新平台(例如 StrongARM)时,汇编代码比通常情况下更重要。
Tanenbaum 在 1992 年批评 Linux 的一个缺点(至少不是礼貌地批评)是 Linux 是平台特定的,即 Intel 386 的单内核。今天,Linux 已经移植到多个硬件平台,并且内核更加模块化。我们需要足够熟悉汇编代码,以便能够完成移植和调试工作,并且我们不能过分依赖它,以免编写过多的平台特定代码。我们的想法是,Linux 优于任何硬件平台,因此我们使用跨平台汇编器(意味着 C)进行编码,并限制我们参与芯片的细节。(这样,当 x86 死亡时,Linux 仍然存在。)然而,RISC 芯片很简单,只有少数指令,但人们可以在单个指令上做很多事情。RISC 技术,特别是在并行处理的背景下,与微内核相关联,我们希望将来能看到更多这两者。与此同时,让我们回到芯片。
StrongARM SA-110 具有以下功能
16 个 32 位寄存器,用于用户程序(r0 到 r15)
21 种基本操作码类型,包括 63 种我们通常在 CISC 世界中认为的操作码(当乘以 15 个条件码时,将表示 945 条指令),以及大量其他可用操作
每个操作码都可使用 15 个条件码之一
210 万个晶体管(RISC 节省晶体管,这在今天有点讽刺意味)
32KB 缓存(指令 16KB,数据 16KB)
233 MHz 运行速度,在 NetWinder 上超频至 275 MHz,实现 250MIPS(每秒百万条指令)
SA-110 没有数学协处理器。该芯片在指令和数据可以完全缓存且不涉及浮点运算的任务中表现出色。涉及过多代码和数据而无法利用缓存的任务会变慢,而浮点运算会使芯片陷入停顿。虽然这些差异中的一些与 Linux 内核和 gcc 与芯片组的协调程度有关,但在没有 FPU 的情况下,芯片处于不利地位(但如果您专门为其编码,StrongARM 在浮点模拟方面表现出色)。如果您查看基准测试(见表 1),您可以看到结果有多么分散。我不会过多地依赖它们;尽管它的分数通常低于 K6/233,但机器运行得非常快。我最喜欢的基准测试,国际象棋测试,让 NetWinder 每秒评估 17,000 到 19,000 个位置(大约每分钟一百万个)。Rebel.com 预计很快将推出 600MHz StrongARM,如果微架构技术得到 серьезное 改进(低功耗和避免流水线停顿的愿望分别使推测执行和多分支预测不切实际,尽管 ARM 的独特品质可能会使其他技巧成为可能),并且处理器访问调试器,未来的 NetWinder 应该会更快。(但是,您需要多少处理器能力才能用于电子邮件、Web、文件、打印、FTP 和 TELNET 服务?)有问题的机器具有 64MB 内存(34.8MB 可用),并且大多数服务已打开。至于磁盘访问,表 2 显示了 Bonnie 的报告。
如您所见,结果是零星的,处理器在许多情况下得分低于 K6/233,而磁盘驱动器的运行速度远低于典型的桌面硬盘驱动器。尽管基准测试得分较低,但机器从未让我感到滞后,并且其任务完成得非常好。这可能是一个基准测试意义不大的案例,除非您计划使用 NetWinder 来处理数字和维护大型数据库。芯片组使用起来很有趣,我认为对 StrongARM 感兴趣的黑客可能会喜欢看看这些机器,以及任何想要一台简单机器用作服务器的人。
C 的乐趣在于我们可以轻松地将用它编写的程序跨硬件平台移植。这意味着 Linux 应该能够很好地跳到 64 位架构。桌面机器似乎正朝着 Alpha 和 Itanium 方向发展(还有其他人对 Intel 架构感到沮丧吗?),这对 RISC 的支持者来说是个好兆头。理想情况下,我们也将朝着微内核方向发展。这对 32 位 StrongARM 意味着什么?嗯,有一个活跃的开发社区正在将 Linux 引入 StrongARM。在 http://www.arm.uk.linux.org/,您可以找到最新的详细信息,包括在 NetWinder 上运行 Enlightenment 的屏幕截图,以及对 Acorn、Archimedes、A5000 和各种其他 ARM 盒子的支持。英特尔现在生产 StrongARM,但正在推动 IA-64,而康柏最近指出 Alpha 确实是不错的处理器。操作系统对 Wintel 的垄断似乎已经被打破,我们在芯片领域也看到了更多的自由(甚至英特尔也发现自己拥有更多的自由)。只要我们保持 Linux 在众多芯片组上的可用性(而网络外部性不会过分偏爱其中一个),我们就可以在芯片领域提供选择自由,理论上应该让我们以更低的成本获得更好的芯片组。只要指令集不受专利和版权限制,我们芯片用户就应该期待更多的幸福。无论如何,至少我们正在朝着 RISC 方向发展,因此下一个逻辑步骤将涉及硬件端的多个处理器和软件领域的微内核设计。StrongARM 本身似乎主要注定用于嵌入式系统,但由于嵌入式系统是 Linux 的一个强项(原因之一是,我们没有许可问题),因此保持对其的支持是件好事。
如果您开始进行 StrongARM 编程,您会发现自己能够在一个操作码中使用四个操作数(或者如果您深入研究协处理器指令,则可以使用更多),并且可以在一行中完成在 x86 或其他 CISC 芯片中需要多行才能完成的事情。我喜欢的一件事是能够在与命令同一行执行位移。例如,
sub r1, r2, r3, lsl r4
would logically shift r3 to the left by the number in the lower byte of r4, subtract this from r2, and put the answer in r1. This is just one example of the efficiency of one command line in ARM (and other RISC) instruction sets. Additionally, all instructions are conditional (checked against the CPSR, current program status register) and you can specify one of 15 conditions for each instruction. Again, we're not supposed to get too dependent on assembly code, but at least this one is fun to use.
无论 NetWinder 基于 Linux 的程度如何,它都可以进行一些改进。首先,图形驱动程序显示一个刷新率为 60Hz 的 VGA 控制台,这太慢了。此外,当在 vi 中快速滚动浏览文本文件时,NetWinder 可能会跳过一行;您可能会认为您正在编辑一行,但当您保存文件时,您会发现您实际上已经重写了正上方的一行。轻快性和快速滚动质量很好,所以我希望有一个解决方案来解决跳行问题,而不是减慢终端速度。至于发行版,有人提到 Debian 将是首选,而现代窗口管理器会很好。我希望更新的 StrongARM 变得更快,并且它们独特的设计不会使实施可以显着加速芯片的有用微架构技术过于困难。这是一个不错的设计,我不介意在 64 位中看到这些芯片。
至于软件,对 UNIX 模型的批评攻击的是其可访问性,而不是其性能。关于 NetWinder 的巧妙之处在于,它为 Linux 网络带来了可访问性。如果自由软件开发者研究 NetWinder 模型并为在通用 Linux 盒子上配置网络开发类似的易于使用的界面,Linux 可能会显得不那么令人生畏。事实仍然是,即使对于那些不想将一生投入到计算机上的人来说,计算机 也可能 提供服务。想象一下,如果您没有任何 Linux 或 UNIX 知识,您可以使用 Web 浏览器和有线调制解调器或 DSL 来拥有自己的永久网络存在。只需单击一下,您就可以打开和关闭服务、防火墙、网页、电子邮件服务、打印机等。从本质上讲,这将具有学习 UNIX 的许多实际回报,而无需付出所有努力。这已经通过 StrongARM 架构上的 NetWinder 实现,但只有当它是免费的时,它才会变得普及。我建议 Rebel.com 在 GPL 下发布 NetWinder 配置软件(而不是伪自由许可证);否则,我们可能需要考虑将其用作自由开源项目的模型。
作为办公室服务器,它的性能完美无缺。基于 Web 的界面使非 UNIX 用户可以访问 Linux 网络。这些功能和特性基于 Linux 内核、GNU 软件和各种其他项目,例如 Apache。(这就是“它是 Linux,它必须是好的”原则——再次应验。)基准测试给 NetWinder 的分数相当低,但这些具有误导性。NetWinder 是解决服务器问题的廉价解决方案。如果您有技术诀窍,您可能会以相同的价格做得更好。例如,您可以构建自己的服务器并自行配置,从而交付一台速度更快的机器,而无需付出太多努力。尽管如此,如果您想要基于 Web 的界面、小尺寸、低功耗、易用性和企业支持,那么 NetWinder 将非常适合您。开发者可以真正从中获得乐趣,尽管我建议他们使用开发者型号,因为它更有趣。我们仍然需要看看是否有一个好的 Web 浏览器被移植到 NetWinder 上,然后我们才能知道它是否会成为正常 Linux 使用的可行平台。尽管如此,NetWinder 可能只是基于 ARM 的 Linux 巧妙应用的开始。尝试让您使用 Windows 的熟人购买其中一台;这可能是美好事物的开始。
