I'm trying to identify the operating system on a Thermo-CRS C500 robot arm controller. From the specifications I know it runs on a 100 MHz 486 processor, and has 4 MB RAM and 2MB of flash/NVRAM combination for filesystem.
All the identifying strings in the system only refer CROS -- CRS Robot Operating System -- v 3.1.1249
. It may be that this is a completely custom kernel, but it might also be based on some kind of BSD or other UNIX-like system.
The system shell has a quite unix-like environment. Most of the system binaries, such as /bin/cp
and others are implemented in some kind of bytecode. The bytecode interpreter resides in /sbin/r3interp
, which file
indentifies as FreeBSD/i386 compact demand paged executable
.
The kernel binary contains some strings that could help identification:
Caught wild IRQ 0
double fault exception (very bad) [e=%08x]
invalid TSS exception [e=%08x]
Cur_Proc->pr_vfsd.vf_vp == 0
sp->owner == Cur_Proc->proc_id
In particular the x86 exception names exist in most kernels, but not in that form. I have already checked late 1990s versions of FreeBSD, 386BSD, Linux 1.x, Minix 1 and 2, Xenix 386 and NetBSD, but haven't found a match. For more detailed analysis, binaries are here and boot messages here.
Can someone figure out some obscure Unix version that might be the base of this customized system?