BeOS
The BeOS operating system (Wikipedia) is a multimedia operating system from the late 1990s...
Platform
BeOS Release 5.0 Professional supported two system architectures (see BeOS Ready Hardware List):
- PowerPC - BeBox and various pre-G3 Power Macintosh systems and compatibles
- x86 - various systems based on Intel Pentium, Pentium Pro, Pentium II, Pentium III & Celeron processors and compatibles (e.g. AMD K6, K6-2, K6-III & Athlon; Cyrix 686mx, 686GXm, & M II; IDT WinChip C6 & WinChip 2).
The hardware that can run BeOS is aging and can be difficult to obtain, so there is a need to consider emulation/virtualization options as alternatives to sourcing hardware.
Emulator and Virtual Machine
Examining the emulation and virtualization options for running BeOS...
PowerPC
For BeOS on the PowerPC platform options are limited, with BeOS supported systems typically not having emulation solutions available. Looking at Power Macintosh emulation options:
- GXemul - provides a generic G4 system, which is unlikely to be supported by BeOS.
- PearPC - provides a G3 or G4 Power Macintosh... which aren't supported by BeOS
- SheepShaver - provides MacOS support for the right era, so maybe able to run BeOS? However it looks like the system level is generic and tailored to support MacOS, so no BeOS support.
- QEMU - system emulation of the Beige G3 (g3beige) and Graphite G4 AGP (mac99), which are not supported by BeOS.
Since BeOS requires a pre-G3 Power Macintosh (although it does support G3 processor upgrades), these don't really help.
Looking around for BeBox emulations finds preliminary support for the PowerPC BeBox in MAME, but this is marked as not working (see BeBox Dual603-66 - MAME machine and BeBox Dual603-133 - MAME machine). It also appears that there was some interest in emulating the BeBox prototype based on the AT&T Hobbit processor (Wikipedia) in MESS a while back (Hobbit BeBox - Forums).
Intel x86 and Compatibles
For the x86 platform support there is a much wider range of options:
- Virtual Machine (VM):
- VirtualBox: see Overview | Build your own BeBox and run BeOS using Virtualbox | Adafruit Learning System
- Emulation:
The main restrictions being on finding emulated devices with driver support.
The Selection
Given that there are already details for setting up BeOS on VirtualBox, and I'm using VirtualBox for various other operating systems, my initial choice is to use VirtualBox. However VirtualBox uses a hypervisor model, which means BeOS can see some aspects of the host hardware... which confuses it a little.
So I'm also going to try getting BeOS to work on Bochs, since it emulates everything and provides devices choices which fit with BeOS hardware support. But that is for another day...
System Information
So let's see what the BeOS has to say about the VM system, and where appropriate a real Pentium MMX class PC system...
uname
Operating system name, version, revision and platform information.
$ uname -a BeOS beos5-vm 5.0 1000009 BePC unknown
So a "BeOS" system called "beos5-vm", OS release "5.0", version "1000009", machine type "BePC", processor type "unknown".
Seems odd that the host processor type is not reported, this might be a mismatch between the supplied 'uname' (from GNU sh-utils) and the system information on BeOS.
iroster
Show the roster of input devices:
$ iroster name type state -------------------------------------------------- AT Keyboard B_KEYBOARD_DEVICE running PS/2 Mouse B_POINTING_DEVICE running
For these machines we have the keyboard and mouse.
listdev
Show a list of devices...
For a real hardware system:
$ listdev ISA bus, device #0: Memory Controller (RAM) [5|0|0] Current configuration: mem range: min 0 max 0 align 0 len a0000 mem range: min e0000 max e0000 align 0 len 20000 1 configurations Possible configuration #0: mem range: min 0 max 0 align 0 len a0000 mem range: min e0000 max e0000 align 0 len 20000 Bus-dependent information: CSN 0 LDN 0 ISA bus, device #1: Generic System Peripheral (PIC) [8|0|1] Current configuration: irq [2] io range: min 20 max 20 align 0 len 2 io range: min a0 max a0 align 0 len 2 1 configurations Possible configuration #0: irq [2] io range: min 20 max 20 align 0 len 2 io range: min a0 max a0 align 0 len 2 Bus-dependent information: CSN 1 LDN 0 ISA bus, device #2: Generic System Peripheral (DMA) [8|1|1] Current configuration: dma [4] io range: min 0 max 0 align 0 len 10 io range: min 80 max 80 align 0 len 11 io range: min 94 max 94 align 0 len c io range: min c0 max c0 align 0 len 1f 1 configurations Possible configuration #0: dma [4] io range: min 0 max 0 align 0 len 10 io range: min 80 max 80 align 0 len 11 io range: min 94 max 94 align 0 len c io range: min c0 max c0 align 0 len 1f Bus-dependent information: CSN 2 LDN 0 ISA bus, device #3: Generic System Peripheral (Timer) [8|2|1] Current configuration: irq [0] io range: min 40 max 40 align 0 len 4 1 configurations Possible configuration #0: irq [0] io range: min 40 max 40 align 0 len 4 Bus-dependent information: CSN 3 LDN 0 ISA bus, device #4: Generic System Peripheral (RTC) [8|3|1] Current configuration: irq [8] io range: min 70 max 70 align 0 len 2 1 configurations Possible configuration #0: irq [8] io range: min 70 max 70 align 0 len 2 Bus-dependent information: CSN 4 LDN 0 ISA bus, device #5: Input Device (Keyboard) [9|0|0] Current configuration: irq [1] io range: min 60 max 60 align 0 len 1 io range: min 64 max 64 align 0 len 1 1 configurations Possible configuration #0: irq [1] io range: min 60 max 60 align 0 len 1 io range: min 64 max 64 align 0 len 1 Bus-dependent information: CSN 5 LDN 0 ISA bus, device #6: Generic System Peripheral (Other) [8|80|0] Current configuration: io range: min 61 max 61 align 0 len 1 1 configurations Possible configuration #0: io range: min 61 max 61 align 0 len 1 Bus-dependent information: CSN 6 LDN 0 ISA bus, device #7: Generic System Peripheral (Other) [8|80|0] Current configuration: irq [13] io range: min f0 max f0 align 0 len 10 1 configurations Possible configuration #0: irq [13] io range: min f0 max f0 align 0 len 10 Bus-dependent information: CSN 7 LDN 0 ISA bus, device #8: Input Device (Mouse) [9|2|0] Current configuration: irq [12] 1 configurations Possible configuration #0: irq [12] Bus-dependent information: CSN 8 LDN 0 ISA bus, device #9: Bridge Device (PCI-PCI) [6|4|0] Current configuration: 0 configurations Bus-dependent information: CSN 9 LDN 0 ISA bus, device #10: Mass Storage Controller (Floppy) [1|2|0] Current configuration: irq [6] dma [2] io range: min 3f0 max 3f0 align 4 len 6 1 configurations Possible configuration #0: irq [6] dma [2] io range: min 3f0 max 3f0 align 4 len 6 Bus-dependent information: CSN a LDN 0 ISA bus, device #11: Generic System Peripheral (Other) [8|80|0] Current configuration: io range: min 4d0 max 4d0 align 4 len 2 io range: min cf8 max cf8 align 8 len 8 io range: min 3f7 max 3f7 align 1 len 1 mem range: min fffe0000 max fffe0000 align 0 len 20000 mem range: min 100000 max 100000 align 0 len ff00000 1 configurations Possible configuration #0: io range: min 4d0 max 4d0 align 4 len 2 io range: min cf8 max cf8 align 8 len 8 io range: min 3f7 max 3f7 align 1 len 1 mem range: min fffe0000 max fffe0000 align 0 len 20000 mem range: min 100000 max 100000 align 0 len ff00000 Bus-dependent information: CSN b LDN 0 ISA bus, device #12: Legacy (non-VGA) [0|0|0] Current configuration: irq [3] io range: min 200 max 200 align 0 len 20 mem range: min c0000 max c0000 align 0 len 4000 1 configurations Possible configuration #0: irq [2,3,4,5,10,11,12,15] io range: min 200 max 3e0 align 20 len 20 mem range: min c0000 max dc000 align 40000000 len 4000 Bus-dependent information: CSN 1 LDN 0 Plug & Play Ethernet Card PCI bus, device #0: Bridge Device (Host) [6|0|0] Current configuration: 1 configurations Possible configuration #0: Bus-dependent information: vendor id: 10b9, device id: 1531 PCI bus, device #1: Bridge Device (ISA) [6|1|0] Current configuration: 1 configurations Possible configuration #0: Bus-dependent information: vendor id: 10b9, device id: 1533 PCI bus, device #2: Display Controller (VGA/8514) [3|0|0] Current configuration: io range: min ec80 max ec80 align 0 len 80 mem range: min ef800000 max ef800000 align 0 len 800000 mem range: min ffaf0000 max ffaf0000 align 0 len 10000 1 configurations Possible configuration #0: io range: min ec80 max ec80 align 0 len 80 mem range: min ef800000 max ef800000 align 0 len 800000 mem range: min ffaf0000 max ffaf0000 align 0 len 10000 Bus-dependent information: vendor id: 1039, device id: 6326 PCI bus, device #3: Multimedia Device (Audio) [4|1|0] Current configuration: irq [9] io range: min ee80 max ee80 align 0 len 40 1 configurations Possible configuration #0: irq [9] io range: min ee80 max ee80 align 0 len 40 Bus-dependent information: vendor id: 1274, device id: 5880 PCI bus, device #4: NIC (Ethernet) [2|0|0] Current configuration: irq [10] io range: min ec00 max ec00 align 0 len 80 mem range: min ffadff80 max ffadff80 align 0 len 80 1 configurations Possible configuration #0: irq [10] io range: min ec00 max ec00 align 0 len 80 mem range: min ffadff80 max ffadff80 align 0 len 80 Bus-dependent information: vendor id: 1011, device id: 19 PCI bus, device #5: Mass Storage Controller (IDE) [1|1|fa] Current configuration: irqs [14][15] io range: min 1f0 max 1f0 align 0 len 8 io range: min 3f4 max 3f4 align 0 len 4 io range: min 170 max 170 align 0 len 8 io range: min 374 max 374 align 0 len 4 io range: min ffa0 max ffa0 align 0 len 10 1 configurations Possible configuration #0: irqs [14][15] io range: min 1f0 max 1f0 align 0 len 8 io range: min 3f4 max 3f4 align 0 len 4 io range: min 170 max 170 align 0 len 8 io range: min 374 max 374 align 0 len 4 io range: min ffa0 max ffa0 align 0 len 10 Bus-dependent information: vendor id: 10b9, device id: 5229 PCI bus, device #6: Serial Bus Controller (USB) [c|3|10] Current configuration: irq [11] mem range: min ffad7000 max ffad7000 align 0 len 1000 1 configurations Possible configuration #0: irq [11] mem range: min ffad7000 max ffad7000 align 0 len 1000 Bus-dependent information: vendor id: 10b9, device id: 5237
Lots of hardware information here, but not particularly designed to be human readable, and doesn't really mention which drivers handle the devices. Something that would be helpful for identifying devices that are not configured correctly. In this particular case there is a ISA Plug & Play NE2000 ethernet adapter which is configured, but not bound to a driver, and the USB controller also seems to be configured and not bound. Investigation shows the NE2000 issue to be a Plug&Play allocation to an I/O address which is not available to the driver.
For the VirtualBox BeOS VM things are similar, but some of the detail is a bit different:
$ listdev ISA bus, device #0: Generic System Peripheral (PIC) [8|0|1] Current configuration: irq [2] io range: min 20 max 20 align 0 len 2 io range: min a0 max a0 align 0 len 2 1 configurations Possible configuration #0: irq [2] io range: min 20 max 20 align 0 len 2 io range: min a0 max a0 align 0 len 2 Bus-dependent information: CSN 0 LDN 0 PIC ISA bus, device #1: Generic System Peripheral (DMA) [8|1|1] Current configuration: dma [4] io range: min 0 max 0 align 0 len 10 io range: min 80 max 80 align 0 len 11 io range: min 94 max 94 align 0 len c io range: min c0 max c0 align 0 len 1f 1 configurations Possible configuration #0: dma [4] io range: min 0 max 0 align 0 len 10 io range: min 80 max 80 align 0 len 11 io range: min 94 max 94 align 0 len c io range: min c0 max c0 align 0 len 1f Bus-dependent information: CSN 1 LDN 0 DMA ISA bus, device #2: Generic System Peripheral (Timer) [8|2|1] Current configuration: irq [0] io range: min 40 max 40 align 0 len 4 1 configurations Possible configuration #0: irq [0] io range: min 40 max 40 align 0 len 4 Bus-dependent information: CSN 2 LDN 0 Timer ISA bus, device #3: Generic System Peripheral (RTC) [8|3|1] Current configuration: irq [8] io range: min 70 max 70 align 0 len 2 1 configurations Possible configuration #0: irq [8] io range: min 70 max 70 align 0 len 2 Bus-dependent information: CSN 3 LDN 0 RTC ISA bus, device #4: Input Device (Keyboard) [9|0|0] Current configuration: irq [1] io range: min 60 max 60 align 0 len 1 io range: min 64 max 64 align 0 len 1 1 configurations Possible configuration #0: irq [1] io range: min 60 max 60 align 0 len 1 io range: min 64 max 64 align 0 len 1 Bus-dependent information: CSN 4 LDN 0 Keyboard ISA bus, device #5: Generic System Peripheral (Other) [8|80|0] Current configuration: irq [13] io range: min f0 max f0 align 0 len 10 1 configurations Possible configuration #0: irq [13] io range: min f0 max f0 align 0 len 10 Bus-dependent information: CSN 5 LDN 0 Math Coprocessor ISA bus, device #6: Communication Device (Serial) [7|0|2] Current configuration: irq [4] io range: min 3f8 max 3f8 align 0 len 8 1 configurations Possible configuration #0: irq [4] io range: min 3f8 max 3f8 align 0 len 8 Bus-dependent information: CSN 6 LDN 0 Serial 1 ISA bus, device #7: Communication Device (Serial) [7|0|2] Current configuration: irq [3] io range: min 2f8 max 2f8 align 0 len 8 1 configurations Possible configuration #0: irq [3] io range: min 2f8 max 2f8 align 0 len 8 Bus-dependent information: CSN 7 LDN 0 Serial 2 ISA bus, device #8: Communication Device (Parallel) [7|1|2] Current configuration: irq [7] io range: min 378 max 378 align 0 len 4 1 configurations Possible configuration #0: irq [7] io range: min 378 max 378 align 0 len 4 Bus-dependent information: CSN 8 LDN 0 Parallel 1 ISA bus, device #9: Mass Storage Controller (Floppy) [1|2|0] Current configuration: irq [6] dma [2] io range: min 3f0 max 3f0 align 0 len 6 1 configurations Possible configuration #0: irq [6] dma [2] io range: min 3f0 max 3f0 align 0 len 6 Bus-dependent information: CSN 9 LDN 0 Floppy ISA bus, device #10: Input Device (Mouse) [9|2|0] Current configuration: irq [12] 1 configurations Possible configuration #0: irq [12] Bus-dependent information: CSN a LDN 0 PS/2 Mouse ISA bus, device #11: Memory Controller (RAM) [5|0|0] Current configuration: mem range: min 0 max 0 align 0 len 20000000 1 configurations Possible configuration #0: mem range: min 0 max 0 align 0 len 20000000 Bus-dependent information: CSN b LDN 0 RAM PCI bus, device #0: Bridge Device (Host) [6|0|0] Current configuration: 1 configurations Possible configuration #0: Bus-dependent information: vendor id: 8086, device id: 1237 PCI bus, device #1: Bridge Device (ISA) [6|1|0] Current configuration: 1 configurations Possible configuration #0: Bus-dependent information: vendor id: 8086, device id: 7000 PCI bus, device #2: Mass Storage Controller (IDE) [1|1|8a] Current configuration: irqs [14][15] io range: min 1f0 max 1f0 align 0 len 8 io range: min 3f4 max 3f4 align 0 len 4 io range: min 170 max 170 align 0 len 8 io range: min 374 max 374 align 0 len 4 io range: min d000 max d000 align 0 len 10 1 configurations Possible configuration #0: irqs [14][15] io range: min 1f0 max 1f0 align 0 len 8 io range: min 3f4 max 3f4 align 0 len 4 io range: min 170 max 170 align 0 len 8 io range: min 374 max 374 align 0 len 4 io range: min d000 max d000 align 0 len 10 Bus-dependent information: vendor id: 8086, device id: 7010 PCI bus, device #3: Display Controller (VGA/8514) [3|0|0] Current configuration: irq [10] mem range: min 30387000 max 30387000 align 0 len 8000000 1 configurations Possible configuration #0: irq [10] mem range: min 30387000 max 30387000 align 0 len 8000000 Bus-dependent information: vendor id: 80ee, device id: beef PCI bus, device #4: NIC (Ethernet) [2|0|0] Current configuration: irq [9] io range: min d010 max d010 align 0 len 8 mem range: min f0000000 max f0000000 align 0 len 20000 1 configurations Possible configuration #0: irq [9] io range: min d010 max d010 align 0 len 8 mem range: min f0000000 max f0000000 align 0 len 20000 Bus-dependent information: vendor id: 8086, device id: 1004 PCI bus, device #5: Generic System Peripheral (Other) [8|80|0] Current configuration: irq [11] io range: min d020 max d020 align 0 len 20 mem range: min f0400000 max f0400000 align 0 len 400000 mem range: min f0800000 max f0800000 align 0 len 4000 1 configurations Possible configuration #0: irq [11] io range: min d020 max d020 align 0 len 20 mem range: min f0400000 max f0400000 align 0 len 400000 mem range: min f0800000 max f0800000 align 0 len 4000 Bus-dependent information: vendor id: 80ee, device id: cafe PCI bus, device #6: Bridge Device (Other) [6|80|0] Current configuration: irq [9] 1 configurations Possible configuration #0: irq [9] Bus-dependent information: vendor id: 8086, device id: 7113
Use of PCI and USB device databases helps identify some of the hardware, but there is stuff here that is harder to identify. Fortunately since this is a VM we know what some of the hardware should be.
sysinfo
System information...
For the real hardware we get:
$ sysinfo Kernel name: kernel_intel built on: May 26 2000 12:27:12 version 0xf4249 1 WinChip C6 revision 0541 running at 200MHz (ID: 0x00000000 0x00000000) CPU #0: CentaurHauls type 0, family 5, model 4, stepping 1, features 0x008000b5 197693440 bytes free (used/max 70742016 / 268435456) 13189 semaphores free (used/max 3195 / 16384) 3978 threads free (used/max 118 / 4096) 999 teams free (used/max 25 / 1024)
So some information about the processor (an IDT WinChip C6 200MHz), and the system memory (256 MiB).
For the VM things are a little less clear:
$ sysinfo Kernel name: kernel_intel built on: May 26 2000 12:27:12 version 0xf4249 1 (unknown) revision 06e5 running at 1714MHz (ID: 0x00000000 0x00000000) CPU #0: GenuineIntel type 0, family 6, model 14, stepping 5, features 0x178bfbbf Unknown cache descriptor 0x5a Data TLB: 4k-Byte Pages, 4-way set associative, 64 entries Unknown cache descriptor 0x55 Unknown cache descriptor 0xe4 Unknown cache descriptor 0xb2 Unknown cache descriptor 0xf0 Unknown cache descriptor 0x2c Unknown cache descriptor 0x21 Unknown cache descriptor 0xca Unknown cache descriptor 0x09 Serial number: 0001-06E5-0000-0000-0000-0000 470630400 bytes free (used/max 66240512 / 536870912) 13971 semaphores free (used/max 2413 / 16384) 3999 threads free (used/max 97 / 4096) 1004 teams free (used/max 20 / 1024)
The processor information is a bit messed up, but the memory information looks right (512 MiB).
Since BeOS 5 is from 2000, it is not surprising that it has difficulty with the CPUID (Wikipedia) information from the 2009 Intel i7-860 (Intel Core i7860 Processor 8M Cache 2.80 GHz Product Specifications). While a CPUID fix from 2005 is installed, it does not appear to expose the extended CPUID information used by this processor. This explains how the expected CPUID information of: family 6 (0x006), model 30 (0x1E), and stepping 5 (0x5), is reported as: family 6 (0x6), model 14 (0xE), stepping 5 (0x5).
Benchmark
For the emulated machine an obvious question is, how well does it perform compared to the real thing? To find out we're going to need a benchmark.
OpenSSL
The OpenSSL library of cryptographic methods provides a means to test the performance of the methods. Using this we can get a feel for the computational performance of a system, and comparisons with real hardware and other emulations can show how well a particular emulation performs. Since we are mainly interested in old hardware, we'll test using two of the older methods: MD5 and RSA.
Real hardware: IDT WinChip C6 200 MHz
$ openssl speed md5 Doing md5 for 3s on 16 size blocks: 107168 md5's in 2846.20s Doing md5 for 3s on 64 size blocks: 95346 md5's in 2808.50s Doing md5 for 3s on 256 size blocks: 71313 md5's in 2795.40s Doing md5 for 3s on 1024 size blocks: 36096 md5's in 2820.29s Doing md5 for 3s on 8192 size blocks: 6310 md5's in 2791.43s OpenSSL 0.9.7j 04 May 2006 built on: Sun May 14 16:17:08 CEST 2006 options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) aes(partial) idea(int) blowfish(idx) compiler: gcc -DOPENSSL_SYSNAME_BEOS -fPIC -DPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_BEOS -DOPENSSL_NO_KRB5 -DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -mcpu=pentium -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM available timing options: TIMES TIMEB HZ=1000 [sysconf value] timing function used: times The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes md5 602.45 2172.74 6530.77 13.11k 18.52k $ openssl speed rsa Doing 512 bit private rsa's for 10s: 562 512 bit private RSA's in 9328.29s Doing 512 bit public rsa's for 10s: 6445 512 bit public RSA's in 9345.04s Doing 1024 bit private rsa's for 10s: 113 1024 bit private RSA's in 9346.39s Doing 1024 bit public rsa's for 10s: 2241 1024 bit public RSA's in 9344.92s Doing 2048 bit private rsa's for 10s: 20 2048 bit private RSA's in 9845.24s Doing 2048 bit public rsa's for 10s: 681 2048 bit public RSA's in 9378.28s Doing 4096 bit private rsa's for 10s: 3 4096 bit private RSA's in 9751.98s Doing 4096 bit public rsa's for 10s: 193 4096 bit public RSA's in 9380.68s OpenSSL 0.9.7j 04 May 2006 built on: Sun May 14 16:17:08 CEST 2006 options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) aes(partial) idea(int) blowfish(idx) compiler: gcc -DOPENSSL_SYSNAME_BEOS -fPIC -DPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_BEOS -DOPENSSL_NO_KRB5 -DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -mcpu=pentium -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM available timing options: TIMES TIMEB HZ=1000 [sysconf value] timing function used: times sign verify sign/s verify/s rsa 512 bits 16.598374s 1.449967s 0.1 0.7 rsa 1024 bits 82.711442s 4.169977s 0.0 0.2 rsa 2048 bits 492.261950s 13.771335s 0.0 0.1 rsa 4096 bits 3250.659000s 48.604560s 0.0 0.0
Extracting the relevant figures for comparisons (see OpenSSL Speed Results):
- OpenSSL speed MD5 8,192 bytes: 18.52k
- OpenSSL speed RSA 4,096 bytes sign/s: 0.0
- OpenSSL speed RSA 4,096 bytes verify/s: 0.0
Hmmm... this looks a bit on the slow side... what about in the VM.
VirtualBox VM on an Intel i7 860 2.80 GHz
$ openssl speed md5 Doing md5 for 3s on 16 size blocks: 4579176 md5's in 2824.00s Doing md5 for 3s on 64 size blocks: 3988617 md5's in 2839.21s Doing md5 for 3s on 256 size blocks: 2814488 md5's in 2826.80s Doing md5 for 3s on 1024 size blocks: 1311622 md5's in 2838.56s Doing md5 for 3s on 8192 size blocks: 216074 md5's in 2837.72s OpenSSL 0.9.7j 04 May 2006 built on: Sun May 14 16:17:08 CEST 2006 options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) aes(partial) idea(int) blowfish(idx) compiler: gcc -DOPENSSL_SYSNAME_BEOS -fPIC -DPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_BEOS -DOPENSSL_NO_KRB5 -DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -mcpu=pentium -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM available timing options: TIMES TIMEB HZ=1000 [sysconf value] timing function used: times The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes md5 25.94k 89.91k 254.88k 473.16k 623.77k $ openssl speed rsa Doing 512 bit private rsa's for 10s: 26442 512 bit private RSA's in 9425.71s Doing 512 bit public rsa's for 10s: 312877 512 bit public RSA's in 9435.73s Doing 1024 bit private rsa's for 10s: 5444 1024 bit private RSA's in 9435.00s Doing 1024 bit public rsa's for 10s: 108652 1024 bit public RSA's in 9430.70s Doing 2048 bit private rsa's for 10s: 918 2048 bit private RSA's in 9434.73s Doing 2048 bit public rsa's for 10s: 32469 2048 bit public RSA's in 9449.11s Doing 4096 bit private rsa's for 10s: 138 4096 bit private RSA's in 9455.03s Doing 4096 bit public rsa's for 10s: 9261 4096 bit public RSA's in 9465.28s OpenSSL 0.9.7j 04 May 2006 built on: Sun May 14 16:17:08 CEST 2006 options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) aes(partial) idea(int) blowfish(idx) compiler: gcc -DOPENSSL_SYSNAME_BEOS -fPIC -DPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_BEOS -DOPENSSL_NO_KRB5 -DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -mcpu=pentium -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM available timing options: TIMES TIMEB HZ=1000 [sysconf value] timing function used: times sign verify sign/s verify/s rsa 512 bits 0.356467s 0.030158s 2.8 33.2 rsa 1024 bits 1.733101s 0.086797s 0.6 11.5 rsa 2048 bits 10.277485s 0.291019s 0.1 3.4 rsa 4096 bits 68.514710s 1.022058s 0.0 1.0
Extracting the relevant figures:
- OpenSSL speed MD5 8,192 bytes: 623.77k
- OpenSSL speed RSA 4,096 bytes sign/s: 0.0
- OpenSSL speed RSA 4,096 bytes verify/s: 1.0
As expected the i7 is faster, but the performance is still lower than expected.
Checking with other figures, both of the sample platforms are reporting about 1/1,000 of the expected values. This could be an implementation issue in BeOS or the version of OpenSSL, or it might be due to issues in the OpenSSL port to BeOS.
Thoughts
Further Sources
- Overview | Build your own BeBox and run BeOS using Virtualbox | Adafruit Learning System
- List of commands
No comments:
Post a Comment