xref: /plan9/sys/doc/port.ms (revision 6083aa4307383671473908ab2d661f80fbf6814b)
1426d2b71SDavid du Colombier.HTML "The Various Ports
23e12c5d1SDavid du Colombier.TL
33e12c5d1SDavid du ColombierThe Various Ports
43e12c5d1SDavid du Colombier.PP
53e12c5d1SDavid du ColombierThis document collects comments about the various
63e12c5d1SDavid du Colombierarchitectures supported by Plan 9.
73e12c5d1SDavid du ColombierThe system tries to hide most of the differences between machines,
83e12c5d1SDavid du Colombierso the machines as seen by a Plan 9
9219b2ee8SDavid du Colombieruser look different from how they are perceived through commercial software.
103e12c5d1SDavid du ColombierAlso, because we are a small group, we couldn't do everything:
113e12c5d1SDavid du Colombierexploit every optimization, support every model,
123e12c5d1SDavid du Colombierdrive every device.
133e12c5d1SDavid du ColombierThis document records what we
143e12c5d1SDavid du Colombier.I have
153e12c5d1SDavid du Colombierdone.
16219b2ee8SDavid du ColombierThe first section discusses the compiler/assembler/loader suite for each machine.
17219b2ee8SDavid du ColombierThe second talks about
18219b2ee8SDavid du Colombierthe operating system implemented on each of the various
193e12c5d1SDavid du Colombiermachines.
20f54a2a50SDavid du Colombier.
217dd7cddfSDavid du Colombier.SH
223e12c5d1SDavid du ColombierThe MIPS compiler
233e12c5d1SDavid du Colombier.PP
24219b2ee8SDavid du ColombierThis compiler generates code for the R2000, R3000, and R4000 machines configured
25219b2ee8SDavid du Colombierto be big-endians.  The compiler generates no R4000-specific instructions
26219b2ee8SDavid du Colombieralthough the assembler and loader support the new user-mode instructions.
27154abd99SDavid du ColombierThere are options to generate code for little-endian machines.
283e12c5d1SDavid du ColombierConsidering its speed, the Plan 9 compiler generates good code,
293e12c5d1SDavid du Colombierbut the commercial
303e12c5d1SDavid du ColombierMIPS compiler with all the stops pulled out consistently beats it
313e12c5d1SDavid du Colombierby 20% or so, sometimes more.  Since ours compiles about 10 times
323e12c5d1SDavid du Colombierfaster and we spend most of our time compiling anyway,
33219b2ee8SDavid du Colombierwe are content with the tradeoff.
343e12c5d1SDavid du Colombier.PP
353e12c5d1SDavid du ColombierThe compiler is solid: we've used it for several big projects and, of course,
363e12c5d1SDavid du Colombierall our applications run under it.
373e12c5d1SDavid du ColombierThe behavior of floating-point programs is much like on the 68040:
383e12c5d1SDavid du Colombierthe operating system emulates where necessary to get past non-trapping
393e12c5d1SDavid du Colombierunderflow and overflow, but does not handle gradual underflow or
403e12c5d1SDavid du Colombierdenormalized numbers or not-a-numbers.
413e12c5d1SDavid du Colombier.SH
423e12c5d1SDavid du ColombierThe SPARC compiler
433e12c5d1SDavid du Colombier.PP
447dd7cddfSDavid du ColombierThe SPARC compiler is also solid and fast, although we haven't
457dd7cddfSDavid du Colombierused it for a few years, due to a lack of current hardware.  We have seen it do
463e12c5d1SDavid du Colombiermuch better than GCC with all the optimizations, but on average
47219b2ee8SDavid du Colombierit is probably about the same.
483e12c5d1SDavid du Colombier.PP
497dd7cddfSDavid du ColombierWe used to run some old SPARC machines with no multiply or divide instructions,
50219b2ee8SDavid du Colombierso the compiler
51219b2ee8SDavid du Colombierdoes not produce them by default.
523e12c5d1SDavid du ColombierInstead it calls internal subroutines.
533e12c5d1SDavid du ColombierA loader flag,
543e12c5d1SDavid du Colombier.CW -M ,
553e12c5d1SDavid du Colombiercauses the instructions to be emitted.  The operating system has
56219b2ee8SDavid du Colombiertrap code to emulate them if necessary, but the traps are slower than
57219b2ee8SDavid du Colombieremulating them in user mode.
587dd7cddfSDavid du ColombierIn any modern lab, in which SPARCS have the instructions, it would be worth enabling the
59219b2ee8SDavid du Colombier.CW -M
60219b2ee8SDavid du Colombierflag by default.
613e12c5d1SDavid du Colombier.PP
62219b2ee8SDavid du ColombierThe floating point story is the same as on the MIPS.
633e12c5d1SDavid du Colombier.SH
643e12c5d1SDavid du ColombierThe Intel i386 compiler
653e12c5d1SDavid du Colombier.PP
66219b2ee8SDavid du ColombierThis is really an
67219b2ee8SDavid du Colombier.I x 86
68219b2ee8SDavid du Colombiercompiler, for
69219b2ee8SDavid du Colombier.I x >2.
70219b2ee8SDavid du ColombierIt works only
713e12c5d1SDavid du Colombierif the machine is in 32-bit protected mode.
727dd7cddfSDavid du ColombierIt is solid and generates tolerable code; it is our main compiler these days.
733e12c5d1SDavid du Colombier.PP
74219b2ee8SDavid du ColombierFloating point is well-behaved, but the compiler assumes i387-compatible
75219b2ee8SDavid du Colombierhardware to execute
76219b2ee8SDavid du Colombierthe instructions.  With 387 hardware,
77219b2ee8SDavid du Colombierthe system does the full IEEE 754 job, just like
78219b2ee8SDavid du Colombierthe MC68881.  By default, the libraries don't use the 387 built-ins for
797dd7cddfSDavid du Colombiertranscendentals.
807dd7cddfSDavid du ColombierIf you want them,
817dd7cddfSDavid du Colombierbuild the code in
827dd7cddfSDavid du Colombier.CW /sys/src/libc/386/387 .
8340ff8eeaSDavid du Colombier.
843e12c5d1SDavid du Colombier.SH
8546d884bbSDavid du ColombierThe AMD64 compiler
8646d884bbSDavid du Colombier.PP
8746d884bbSDavid du ColombierThe AMD64 compiler has been used to build 64-bit variants of Plan 9.
8846d884bbSDavid du ColombierIt seems to be reasonably solid.
8946d884bbSDavid du Colombier.
9046d884bbSDavid du Colombier.SH
917dd7cddfSDavid du ColombierThe PowerPC compiler
923e12c5d1SDavid du Colombier.PP
937dd7cddfSDavid du ColombierThe PowerPC compiler supports the 32-bit PowerPC architecture only;
947dd7cddfSDavid du Colombierit does not support either the 64-bit extensions or the POWER compatibility instructions.
95154abd99SDavid du ColombierIt has been used for production operating system work on the 603, 603e, 604e, 821, 823, and 860,
96154abd99SDavid du Colombierand experimental work on the 405, 440 and 450.
977dd7cddfSDavid du ColombierOn the 8xx floating-point instructions must be emulated.
987dd7cddfSDavid du ColombierInstruction scheduling is not implemented; otherwise the code generated
997dd7cddfSDavid du Colombieris similar to that for the other load-store architectures.
1007dd7cddfSDavid du ColombierThe compiler makes little or no use of unusual PowerPC features such as the
1017dd7cddfSDavid du Colombiercounter register, several condition code registers, and multiply-accumulate
1027dd7cddfSDavid du Colombierinstructions, but they are sometimes
1037dd7cddfSDavid du Colombierused by assembly language routines in the libraries.
10446d884bbSDavid du Colombier.
10546d884bbSDavid du Colombier.SH
10646d884bbSDavid du ColombierThe PowerPC64 compiler
10746d884bbSDavid du Colombier.PP
10846d884bbSDavid du ColombierThe PowerPC64 compiler supports the 64-bit PowerPC architecture only.
10946d884bbSDavid du ColombierIt has been lightly used on IBM's Blue Gene machines.
11046d884bbSDavid du Colombier.
1113e12c5d1SDavid du Colombier.SH
112154abd99SDavid du ColombierThe ARM compiler
1133e12c5d1SDavid du Colombier.PP
1147dd7cddfSDavid du ColombierThe ARM compiler is fairly solid; it has been used for some production
115b7b24591SDavid du Colombieroperating system work including Inferno and the Plan 9 kernel
1161bdadbfaSDavid du Colombierfor the iPAQ, which uses a StrongArm SA1, and the Sheevaplug,
11740ff8eeaSDavid du ColombierGuruplug, Dreamplug, Gumstix Overo, Compulab Trimslice and others.
11840ff8eeaSDavid du ColombierThe compiler supports the ARMv4 and later 32-bit architectures;
119154abd99SDavid du Colombierit does not support the Thumb instruction sets.
1205d9de2d3SDavid du ColombierIt has been used on ARM7500FE, ARM926 and Cortex-A8 and -A9 processors
121154abd99SDavid du Colombierand the Strongarm SA1 core machines.
1227facca93SDavid du ColombierThe compiler generates instructions for
1235d9de2d3SDavid du ColombierARM 7500 FPA floating-point coprocessor 1 by default,
1245d9de2d3SDavid du Colombierbut
1255d9de2d3SDavid du Colombier.CW 5l
1265d9de2d3SDavid du Colombier.CW -f
1275d9de2d3SDavid du Colombierinstead generates VFP instructions for coprocessors 10 and 11.
12840ff8eeaSDavid du Colombier.
1293e12c5d1SDavid du Colombier.SH
1303e12c5d1SDavid du ColombierThe IBM PC operating system
1313e12c5d1SDavid du Colombier.PP
13246d884bbSDavid du ColombierThe PC version of Plan 9 can boot via PXE
1337dd7cddfSDavid du Colombieror directly from a disk created by the
134219b2ee8SDavid du Colombier.CW format
135219b2ee8SDavid du Colombiercommand; see
136219b2ee8SDavid du Colombier.I prep (8).
137b7b24591SDavid du ColombierPlan 9 runs in 32-bit mode\(emwhich requires a 386 or later model x86 processor\(emand
138219b2ee8SDavid du Colombierhas an interrupt-driven I/O system, so it does not
139219b2ee8SDavid du Colombieruse the BIOS (except for a small portion of the boot program and floppy boot block).
140219b2ee8SDavid du ColombierThis helps performance but limits the set of I/O devices that it can support without
141219b2ee8SDavid du Colombierspecial code.
1423e12c5d1SDavid du Colombier.PP
1439a747e4fSDavid du ColombierPlan 9 supports the ISA, EISA, and PCI buses as well as PCMCIA and PC card devices.
144219b2ee8SDavid du ColombierIt is infeasible to list all the supported machines, because
145219b2ee8SDavid du Colombierthe PC-clone marketplace is too volatile and there is
146219b2ee8SDavid du Colombierno guarantee that the machine you buy today will contain the
147219b2ee8SDavid du Colombiersame components as the one you bought yesterday.
148219b2ee8SDavid du Colombier(For our lab, we buy components and assemble the machines
149219b2ee8SDavid du Colombierourselves in an attempt to lessen this effect.)
15046d884bbSDavid du ColombierIDE/ATA, SATA and SCSI disks are supported.
1517dd7cddfSDavid du ColombierCD-ROMs are supported two ways, either on the SCSI bus, or as ATA(PI) devices.
1527dd7cddfSDavid du ColombierThe SCSI adapter must be a member of the Mylex Multimaster (old Buslogic BT-*) series
1537dd7cddfSDavid du Colombieror the Symbios 53C8XX series.
15446d884bbSDavid du Colombier.PP
155219b2ee8SDavid du ColombierSupported Ethernet cards include the
1567dd7cddfSDavid du ColombierAMD79C790,
1577dd7cddfSDavid du Colombier3COM Etherlink III and 3C589 series,
1589a747e4fSDavid du ColombierLucent Wavelan and compatibles,
1597dd7cddfSDavid du ColombierNE2000,
160219b2ee8SDavid du ColombierWD8003,
161219b2ee8SDavid du ColombierWD8013,
16246d884bbSDavid du ColombierRealtek 8139,
1637dd7cddfSDavid du ColombierSMC Elite and Elite Ultra,
1647dd7cddfSDavid du ColombierLinksys Combo EthernetCard and EtherFast 10/100,
1657dd7cddfSDavid du Colombierand a variety of controllers based on the
1667dd7cddfSDavid du ColombierIntel i8255[789] and Digital (now Intel) 21114x chips.
16746d884bbSDavid du ColombierWe support Gigabit Ethernet via
16846d884bbSDavid du ColombierRealtek 8110S/8169S,
16946d884bbSDavid du Colombierand
17046d884bbSDavid du ColombierIntel 8254[013467], 8256[36], and 8257[1-79] controllers.
17146d884bbSDavid du ColombierWe support 10-Gigabit Ethernet via
17246d884bbSDavid du ColombierIntel's 8259[89],
17346d884bbSDavid du Colombierand
17446d884bbSDavid du ColombierMyricom's 10g-pcie-8a.
17546d884bbSDavid du ColombierWe mostly use Intel and Realtek gigabit controllers,
17646d884bbSDavid du Colombierso those drivers may be more robust.
17746d884bbSDavid du Colombier.PP
178219b2ee8SDavid du ColombierThere must be an explicit Plan 9 driver for peripherals;
179219b2ee8SDavid du Colombierit cannot use DOS or Windows drivers.
180219b2ee8SDavid du ColombierPlan 9 cannot exploit special hardware-related features that fall outside of the
181219b2ee8SDavid du ColombierIBM PC model,
182219b2ee8SDavid du Colombiersuch as power management,
183219b2ee8SDavid du Colombierunless architecture-dependent code is added to the kernel.
184219b2ee8SDavid du ColombierFor more details see
185219b2ee8SDavid du Colombier.I plan9.ini (8).
1863e12c5d1SDavid du Colombier.PP
1877dd7cddfSDavid du ColombierOver the years,
1889a747e4fSDavid du ColombierPlan 9 has run on a number of VGA cards.
1899a747e4fSDavid du ColombierRecent changes to the graphics system have not been
1909a747e4fSDavid du Colombiertested on most of the older cards; some effort may be needed to get them working again.
19146d884bbSDavid du ColombierIn our lab, most of our machines use the ATI or Nvidia chips,
1929a747e4fSDavid du Colombierso such devices are probably
1937dd7cddfSDavid du Colombierthe most reliable.
1947dd7cddfSDavid du ColombierThe system requires a hardware cursor.
195219b2ee8SDavid du ColombierFor more details see
196219b2ee8SDavid du Colombier.I vgadb (6)
1973e12c5d1SDavid du Colombierand
198219b2ee8SDavid du Colombier.I vga (8).
1999a747e4fSDavid du ColombierThe wiki
2009a747e4fSDavid du Colombier.CW http://plan9.bell-labs.com/wiki/plan9 ) (
2019a747e4fSDavid du Colombiercontains the definitive list of cards that are known to work; see the ``supported PC hardware''
2029a747e4fSDavid du Colombierpage.
203219b2ee8SDavid du Colombier.PP
204219b2ee8SDavid du ColombierFor audio, Plan 9 supports the Sound Blaster 16 and compatibles.
205219b2ee8SDavid du Colombier(Note that audio doesn't work under Plan 9 with 8-bit Sound Blasters.)
2069a747e4fSDavid du ColombierThere is also user-level support for USB audio devices; see
2079a747e4fSDavid du Colombier.I usb (4).
208219b2ee8SDavid du Colombier.PP
209219b2ee8SDavid du ColombierFinally, it's important to have a three-button mouse with Plan 9.
210b7b24591SDavid du ColombierThe system currently works only with mice on the PS/2 port or USB.
2119a747e4fSDavid du ColombierSerial mouse support should return before long.
212219b2ee8SDavid du Colombier.PP
213c104fc50SDavid du ColombierOnce you have Plan 9 installed (see the wiki's installation document),
214c104fc50SDavid du Colombieruse PXE or a boot disk to load the system.  See
215219b2ee8SDavid du Colombier.I booting (8),
216c104fc50SDavid du Colombier.I 9boot (8),
217219b2ee8SDavid du Colombierand
218219b2ee8SDavid du Colombier.I prep (8)
219219b2ee8SDavid du Colombierfor more information.
22040ff8eeaSDavid du Colombier.
2217dd7cddfSDavid du Colombier.SH
22292f23974SDavid du ColombierThe Routerboard 450G operating system
22392f23974SDavid du Colombier.PP
22492f23974SDavid du ColombierThis is a CPU kernel that runs on the Mikrotik Routerboard RB450G,
22592f23974SDavid du Colombierwhich contains a MIPS 24K CPU
22692f23974SDavid du Colombier(the Atheros 7161), which implements the MIPS32R2 architecture.
22792f23974SDavid du ColombierIt has 256MB of RAM and a serial port.
22892f23974SDavid du ColombierThe CPU lacks the 64-bit instructions of previous MIPS systems (e.g.,
22992f23974SDavid du ColombierSGI Challenge and Carrera).
23092f23974SDavid du ColombierThere is no hardware floating-point, so we emulate the instructions.
23192f23974SDavid du ColombierOnly the first of the five Gigabit Ethernet ports is currently supported;
23292f23974SDavid du Colombierthe other four are connected via an internal switch.
23392f23974SDavid du ColombierTo avoid a bug in the CPU (erratum 48), we run the caches write-through,
23492f23974SDavid du Colombierrather than write-back, and compiled
23592f23974SDavid du Colombier.CW /mips
23692f23974SDavid du Colombierwith a
23792f23974SDavid du Colombier.I vl
23892f23974SDavid du Colombiermodified to emit enough NOPs to avoid three consecutive store instructions
23992f23974SDavid du Colombier(see
24092f23974SDavid du Colombier.CW /sys/src/cmd/vl/noop.c
24192f23974SDavid du Colombierto enable this).
24292f23974SDavid du Colombier.
24392f23974SDavid du Colombier.SH
2447dd7cddfSDavid du ColombierThe PowerPC operating system
2457dd7cddfSDavid du Colombier.PP
246b7b24591SDavid du ColombierWe have a version of the system that runs on the PowerPC
247b7b24591SDavid du Colombieron a home-grown machine called Viaduct.
24814414594SDavid du ColombierThe Viaduct minibrick is a small (12x9x3 cm) low-cost embedded
2497dd7cddfSDavid du Colombiercomputer consisting of a 50Mhz MPC850, 16MB sdram, 2MB flash,
2507dd7cddfSDavid du Colombierand two 10Mb Ethernet ports.  It is designed for home/SOHO
2517dd7cddfSDavid du Colombiernetworking applications such as VPN, firewalls, NAT, etc.
252b7b24591SDavid du Colombier.PP
253b7b24591SDavid du ColombierThe kernel has also been ported to the Motorola MTX embedded motherboard;
254b7b24591SDavid du Colombierthat port is included in the distribution.
255b7b24591SDavid du ColombierThe port only works with a 604e processor (the 603e is substantially different)
256b7b24591SDavid du Colombierand at present only a single CPU is permitted.
25740ff8eeaSDavid du Colombier.PP
25840ff8eeaSDavid du ColombierWe have ports to the Xilinx Virtex 4 and 5 FPGAs
25940ff8eeaSDavid du Colombierwhich use PowerPC 405 and 440 processors, respectively.
26092f23974SDavid du Colombier.
261b7b24591SDavid du Colombier.SH
262f7034198SDavid du ColombierThe Marvell Kirkwood operating system
263154abd99SDavid du Colombier.PP
2648e32b400SDavid du ColombierThis is an ARM kernel for the ARM926EJ-S processor
2655d9de2d3SDavid du Colombierand it emulates ARM 7500 floating-point and
266154abd99SDavid du ColombierCAS (compare-and-swap) instructions.
2671bdadbfaSDavid du ColombierIt is known to run on the Sheevaplug, Guruplug, Dreamplug
2681bdadbfaSDavid du Colombierand Openrd-client boards.
269154abd99SDavid du ColombierIt is derived from a port of native Inferno to the Sheevaplug
270154abd99SDavid du Colombierby Salva Peir\f(Jpó\fP and Mechiel Lukkien.
271b72bcbbfSDavid du ColombierThere are many features of the Kirkwood system-on-a-chip
272154abd99SDavid du Colombierthat it does not exploit.
2738e32b400SDavid du ColombierThere are currently drivers for up to two
2748e32b400SDavid du ColombierGigabit Ethernet interfaces,
2758e32b400SDavid du ColombierUSB and the console serial port;
2768e32b400SDavid du Colombierwe hope to add crypto acceleration, and a video driver for the Openrd-client.
277b72bcbbfSDavid du Colombier.SH
2787facca93SDavid du ColombierThe Marvell PXA168 operating system
2797facca93SDavid du Colombier.PP
2807facca93SDavid du ColombierThis is an ARM kernel for the ARM-v5-architecture processor in the
2817facca93SDavid du ColombierMarvell PXA168 system-on-a-chip
2825d9de2d3SDavid du Colombierand it emulates ARM 7500 floating-point and
2837facca93SDavid du ColombierCAS (compare-and-swap) instructions.
2847facca93SDavid du ColombierIt is known to run on the Guruplug Display.
2857facca93SDavid du ColombierThere are many features of the system-on-a-chip
2867facca93SDavid du Colombierthat it does not exploit.
2877facca93SDavid du ColombierThere are currently drivers for
2887facca93SDavid du Colombiera Fast Ethernet interface,
2897facca93SDavid du Colombierand the console serial port;
2907facca93SDavid du Colombierwe hope to add crypto acceleration, and a video driver.
2917facca93SDavid du Colombier.SH
2923a9c32c6SDavid du ColombierThe TI OMAP35 operating system
293b72bcbbfSDavid du Colombier.PP
2948e32b400SDavid du ColombierThis is an ARM kernel for the Cortex-A8 processor
2955d9de2d3SDavid du Colombierand it emulates ARM 7500 floating-point and
296b72bcbbfSDavid du ColombierCAS (compare-and-swap) instructions.
2973a9c32c6SDavid du ColombierIt is known to run on the IGEPv2 board and the Gumstix Overo,
2983a9c32c6SDavid du Colombierand might eventually run on the Beagleboard, once USB is working.
299b72bcbbfSDavid du ColombierThere are many features of the OMAP system-on-a-chip that it does not exploit.
3003a9c32c6SDavid du ColombierInitially, there are drivers for the SMSC 9221 100Mb/s Ethernet
3013a9c32c6SDavid du Colombierinterface in the IGEPv2 and Overo,
3023a9c32c6SDavid du Colombierand the console serial port;
303b72bcbbfSDavid du Colombierwe hope to add USB, flash memory and video drivers.
304c104fc50SDavid du Colombier.SH
305c104fc50SDavid du ColombierThe Nvidia Tegra2 operating system
306c104fc50SDavid du Colombier.PP
307c104fc50SDavid du ColombierThis is an ARM kernel for the dual Cortex-A9 processors
308c104fc50SDavid du Colombierin the Nvidia Tegra2 system-on-a-chip
3095d9de2d3SDavid du Colombierand it emulates ARM 7500 floating-point and
3105d9de2d3SDavid du ColombierCAS (compare-and-swap) instructions, but
3115d9de2d3SDavid du Colombierthe hardware includes VFP3 floating-point.
312c104fc50SDavid du ColombierIt runs on the Compulab Trimslice.
313c104fc50SDavid du ColombierThere are many features of the system-on-a-chip that it does not exploit.
314c104fc50SDavid du ColombierInitially, there are drivers for the Ethernet interface
315c104fc50SDavid du Colombierand the console serial port;
316c104fc50SDavid du Colombierwe hope to add USB, flash memory and video drivers.
3175d9de2d3SDavid du Colombier.SH
3185d9de2d3SDavid du ColombierThe Broadcom 2835 operating system
3195d9de2d3SDavid du Colombier.PP
320da091934SDavid du ColombierThis consists of terminal and CPU kernels for the ARM1176 processor
3215d9de2d3SDavid du Colombierin the Broadcom 2835 system-on-a-chip.
3225d9de2d3SDavid du ColombierThe hardware includes VFP2 floating-point.
323da091934SDavid du ColombierIt runs on the Raspberry Pi Models A and B.
324*6083aa43SDavid du ColombierSince it relies upon USB Ethernet and the Plan 9 USB Ethernet
325*6083aa43SDavid du Colombierdriver doesn't implement multicast, this port can't speak IPv6.
3267facca93SDavid du Colombier.
327154abd99SDavid du Colombier.ig
328154abd99SDavid du Colombier.SH
3293e12c5d1SDavid du ColombierThe file server
3303e12c5d1SDavid du Colombier.PP
3313e12c5d1SDavid du ColombierThe file server runs on only a handful of distinct machines.
332219b2ee8SDavid du ColombierIt is a stand-alone program, distantly related to the CPU server
3333e12c5d1SDavid du Colombiercode, that runs no user code: all it does is serve files on
3343e12c5d1SDavid du Colombiernetwork connections.
335219b2ee8SDavid du ColombierIt supports only SCSI disks, which can be interleaved for
336219b2ee8SDavid du Colombierfaster throughput.
3377dd7cddfSDavid du ColombierA DOS file on
338219b2ee8SDavid du Colombieran IDE drive can hold the configuration information.
339219b2ee8SDavid du ColombierSee
3403e12c5d1SDavid du Colombier.I fsconfig (8)
3413e12c5d1SDavid du Colombierfor an explanation of how
3423e12c5d1SDavid du Colombierto configure a file server.
3433e12c5d1SDavid du Colombier.PP
3443e12c5d1SDavid du ColombierTo boot a file server, follow the directions for booting a CPU server
3453e12c5d1SDavid du Colombierusing the file name
346219b2ee8SDavid du Colombier.CW 9\f2machtype\fPfs
3473e12c5d1SDavid du Colombierwhere
3483e12c5d1SDavid du Colombier.I machtype
3493e12c5d1SDavid du Colombieris
3507dd7cddfSDavid du Colombier.CW pc ,
3513e12c5d1SDavid du Colombieretc. as appropriate.
3527dd7cddfSDavid du ColombierWe are releasing only the PC version.
353219b2ee8SDavid du Colombier.SH
354219b2ee8SDavid du ColombierThe IBM PC file server
355219b2ee8SDavid du Colombier.PP
356219b2ee8SDavid du ColombierExcept for the restriction to SCSI disks,
357219b2ee8SDavid du Colombierthe PC file server has the same hardware requirements as
358219b2ee8SDavid du Colombierthe regular PC operating system.
3599a747e4fSDavid du ColombierHowever, only a subset of the supported SCSI (Adaptec 1542, Mylex Multimaster,
3607dd7cddfSDavid du Colombierand Symbios 53C8XX) and Ethernet (Digital 2114x,
3617dd7cddfSDavid du ColombierIntel 8255x, and 3Com) controllers
3627dd7cddfSDavid du Colombiermay be
3637dd7cddfSDavid du Colombierused.
3647dd7cddfSDavid du ColombierAny of the boot methods described in
3659a747e4fSDavid du Colombier.I 9load (8)
3667dd7cddfSDavid du Colombierwill work.
367219b2ee8SDavid du Colombier.PP
368219b2ee8SDavid du ColombierTo boot any PC, the file
3699a747e4fSDavid du Colombier.CW 9load
3709a747e4fSDavid du Colombiermust reside on a MS-DOS formatted floppy, IDE disk,
3719a747e4fSDavid du Colombieror SCSI disk.
372219b2ee8SDavid du ColombierHowever, PCs have no non-volatile RAM in which the
373219b2ee8SDavid du Colombierfile server can store its configuration information, so the system
374219b2ee8SDavid du Colombierstores it in a file on an MS-DOS file system instead.
3759a747e4fSDavid du ColombierThis file, however, cannot live on a SCSI disk, only a floppy or IDE.
376219b2ee8SDavid du Colombier(This restriction avoids a lot of duplicated interfaces in the
377219b2ee8SDavid du Colombiersystem.)
378219b2ee8SDavid du ColombierThus the file server cannot be all-SCSI.
379219b2ee8SDavid du ColombierSee
380219b2ee8SDavid du Colombier.I plan9.ini (8)
381219b2ee8SDavid du Colombierfor details about the
382219b2ee8SDavid du Colombier.I nvr
383219b2ee8SDavid du Colombiervariable and specifying the console device.
3843e12c5d1SDavid du Colombier.SH
3853e12c5d1SDavid du ColombierBackup
3863e12c5d1SDavid du Colombier.PP
3873e12c5d1SDavid du ColombierOur main file server is unlikely to be much like yours.
3887dd7cddfSDavid du ColombierIt is a PC with 128 megabytes
3897dd7cddfSDavid du Colombierof cache memory, 56 gigabytes of SCSI magnetic
3907dd7cddfSDavid du Colombierdisk, and a Hewlett-Packard SureStore Optical 1200ex
3917dd7cddfSDavid du Colombiermagneto-optical jukebox, with 1.2 terabytes of storage.
3927dd7cddfSDavid du ColombierThis driver runs the SCSI standard jukebox protocol.
3937dd7cddfSDavid du ColombierWe also have a driver for a (non-standard)
3947dd7cddfSDavid du ColombierSONY WDA-610
3953e12c5d1SDavid du ColombierWritable Disk Auto Changer (WORM),
3963e12c5d1SDavid du Colombierwhich stores almost 350 gigabytes of data.
3977dd7cddfSDavid du Colombier.PP
3983e12c5d1SDavid du ColombierThe WORM is actually the prime storage; the SCSI disk is just
3993e12c5d1SDavid du Colombiera cache to improve performance.
4003e12c5d1SDavid du ColombierEarly each morning the system constructs on WORM an image of
4013e12c5d1SDavid du Colombierthe entire system as it appears that day.  Our backup system
4023e12c5d1SDavid du Colombieris therefore just a file server that lets
4033e12c5d1SDavid du Colombieryou look at yesterday's (or last year's) file system.
4043e12c5d1SDavid du Colombier.PP
4057dd7cddfSDavid du ColombierIf you don't have a magneto-optical jukebox,
4067dd7cddfSDavid du Colombieryou might consider attaching a CD-R jukebox or even just
4073e12c5d1SDavid du Colombierusing a single WORM drive and managing the dumps a little less
4083e12c5d1SDavid du Colombierautomatically.  This is just a long way of saying that the
4093e12c5d1SDavid du Colombiersystem as distributed has no explicit method of backup other
4103e12c5d1SDavid du Colombierthan through the WORM jukebox.
4113e12c5d1SDavid du Colombier.PP
4123e12c5d1SDavid du ColombierNot everyone can invest in such expensive hardware, however.
4133e12c5d1SDavid du ColombierAlthough it wouldn't be as luxurious,
4143e12c5d1SDavid du Colombierit would be possible to use
4157dd7cddfSDavid du Colombier.I mkfs (8)
4163e12c5d1SDavid du Colombierto build regular file system archives and use
4177dd7cddfSDavid du Colombier.I scuzz (8)
4183e12c5d1SDavid du Colombierto stream them to a SCSI 8mm tape drive.
4193e12c5d1SDavid du Colombier.CW Mkext
4203e12c5d1SDavid du Colombiercould then extract them.
4219a747e4fSDavid du ColombierAnother alternative is to use
4229a747e4fSDavid du Colombier.I dump9660
4239a747e4fSDavid du Colombier(see
4249a747e4fSDavid du Colombier.I mk9660 (8)),
4259a747e4fSDavid du Colombierwhich stores incremental backups on CD images
4269a747e4fSDavid du Colombierin the form of a dump hierarchy.
4273e12c5d1SDavid du Colombier.PP
428219b2ee8SDavid du ColombierIt is also possible to treat a regular disk, or even a part of a disk,
4293e12c5d1SDavid du Colombieras a fake WORM, which can then be streamed to tape when it fills.
4303e12c5d1SDavid du ColombierThis is a bad idea for a production system but a good way to
4313e12c5d1SDavid du Colombierlearn about the WORM software.
4323e12c5d1SDavid du ColombierAgain, see
4333e12c5d1SDavid du Colombier.I fsconfig (8)
4343e12c5d1SDavid du Colombierfor details.
435154abd99SDavid du Colombier..
436