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 0double fault exception (very bad) [e=%08x]invalid TSS exception [e=%08x]Cur_Proc->pr_vfsd.vf_vp == 0sp->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?
Error: Not an ELF file - it has the wrong magic bytes at the start. I'm not sure what kind of binary format it actually is. – jpa Jun 14 '20 at 15:18