Please look at popular RTOS like RTLinus, QNX, Nucleus, embOS, VxWorks, ThreadX, etc, which will give you the basic features - basically multitasking or multiprocessing in preemptive/non-preemptive, Inter Process communications, file system support, exceptions handling, small footprint, driver support, fault handling mechanisms are the ones to look at.