I want to check whether I understand correctly:
Real-time means an action always performs in a specified amount of time and is never late for deadline - an upper bound, and sometimes a lower bound as well. If a system is real time, its execution time must always be deterministic.
To achieve real-time behavior, both hardware and software must be designed to satisfy the above constraint. Not all hardware comonents are real time, for example, the internet, and a real-time network is a network in which every node and connection behaves in real-time. Are there any other examples of non-realtime hardware?
When a hardware component is real-time, software that controls the hardware must be designed to do so. For this reason, we have to use low level language like assembly and C (i.e add instruction always takes 1 ms) to have tight control of execution time of every instruction.
We can achieve real-time behavior on non-realtime OS like Linux if we write software as if we are writing a realtime software: we can control the execution time of software. However, because desktop OS is non-deterministic (for flexibility), even if we run software designed for realtime execution in it, there's no guarantee that the software executes in realtime. In this situation, we call the software soft-realtimme.
Do I understand correctly?