Industrial applications are often associated with realtime requirements. Linux and Realtime started over 15 years ago! While Realtime at first was only implementable in Linux through so-called microkernel approaches, an approach under the name of PREEMPT_RT established itself in 2006. This renders Linux itself realtime capabilities!
PREEMPT_RT easily facilitates realtime characteristics in Linux and has become the accepted standard. Linutronix is not only part of the group of founders and "makers" of PREEMPT_RT, but also a partner of the Linux Foundation to implement the integration of this realtime extension into Linux's main branch of development!
If the use of the full preempt capability does not achieve sufficient results (keyword: latency), there are other possibilities to optimise the behaviour of the system.
One possibility is to bind threads to certain cores and keep them free of any administrative work of the operating system by using the NO_HZ patches and, if necessary, further optimisations.
Alternatively, you can use a type-1 hypervisor (-> jailhouse) and divide the CPU accordingly. Whether you then want to use a preempt RT Linux, an RTOS or a pure bare metal application for your realtime tasks on a partition is up to you. This is a very flexible solution that also ensures strong isolation between the individual partitions, which is good for both realtime capability and security. At the same time, resources such as a NIC or a file system can also be shared. The system is configured at boot time and is therefore very flexible.
There are several possibilities to connect to other systems and to communicate with each other. We also have a suitable framework (open source) for connecting heterogeneous systems.
We at Linutronix have been dealing with the topic of realtime for years and can therefore certainly help you find the best solution for you.