This paper presents a safety concept for the on-board software system of the UPMSat-2 experimental satellite. Subsystems with different criticality levels are assigned to different partitions in a partitioned software architecture. The architecture is based on XtratuM, an open-source virtualization kernel, and ORK+, an open-source real-time kernel for highintegrity systems. The safety requirements of the system are analysed, and a safety concept is developed based on the partitioned software architecture. The properties of the implementation resulting from the approach are discussed, and guidelines for future developments are proposed.