The principal focus areas for system software on the IBM Blue Gene®/Q include ultrascalability and high reliability while delivering the full performance capability of the hardware to applications. The Blue Gene/Q system software has achieved these goals while adding functionality and flexibility compared with previous versions of Blue Gene®. Whereas part of the software stack was improved with innovative evolutionary progress, such as unified sub-block partitioning and the ability to overcommit hardware threads, other areas, such as transactional memory and speculative execution, represent a revolutionary step forward. In this paper, we describe the overall software architecture of Blue Gene/Q. We then describe each of the main components of the software stack. In each area, we focus on the major enhancements introduced in the Blue Gene/Q system software stack.