The Internet of Things (IoT) embodies a wide spectrum of machines ranging from sensors powered by 8-bit microcontrollers to devices powered by processors equivalent to those found in smartphones. Neither traditional operating systems currently running on Internet hosts, nor typical operating systems for sensor networks are capable to fulfill all at once the diverse requirements of such a wide range of devices. Hence, in order to avoid redundant developments and maintenance costs of IoT products, a novel, unifying type of operating system is needed. This paper analyzes requirements of an operating system for the IoT. We introduce RIOT, an operating system that satisfies these demands.