Problem: Hosting Multiple Applications
You've been assigned the task of designing an OS for a custom hardware device that your company is making. The OS won't be running general-purpose applications like web browsers or spreadsheet programs, so there's no need to port a commercial OS to the hardware. Also, because your company's hardware is custom, OS vendors aren't likely to provide a version for it.
The new system must be designed to integrate your company's applications into faster custom hardware. The applications already run in a Linux environment. (For this example, the current OS really doesn't matter; the problem is about the new system.) Linux provides the standard capabilities of OSes, such as scheduling, a file system, memory management, networking, paging, and device drivers. The applications expect the existence of a file system, a process infrastructure, and management of the underlying hardware, but not much else. What you build must provide those capabilities to the new system.
Considering an existing OS
Your assignment is general enough that you can provide an environment for the applications on top of a commercial OS, or it can be something that you create in-house. It must provide the operating environment that your applications need.
The first thing you think about doing is porting a free OS to the new hardware. You could strip down a Linux distribution to get to the minimal functionality, because the applications put only minimal demands on the system. After ...