Trains are no longer run by men in overalls with lantern signals. They are controlled by software in embedded systems. This paper looks at some requirements of this software and discusses OS characteristics that support these requirements. In particular, where real-time performance is needed and why, the importance of the OS for certifications to standards, such as the EN 5012x series and IEC 61508, the OS architecture, and some OS features that support system dependability.