Five Considerations for Developing Secure Devices in the IoT
Firmen zum Thema
3. Adopt Professional Development Tools
Many developers have no clue how to debug effectively (print statements or LED blinking is state of the art) and follow no rigor in terms of development process for building a reliable product.
This approach might work for hobby projects but will fall short when moving to large-scale production or attempting to address markets that demand a higher level of quality and even certification (e.g. ISO 26262 for automotive, IEC 61508 for industrial, government medical device approval, etc.).
When looking for a professional Thing development environment, it is critical to find a solution that is easy to learn and use. Do not underestimate the long-term impact of an optimized development, testing, and maintenance cycle.
The same goes for the hardware platform. For example, choosing a microprocessor that provides JTAG debugging and run-time program trace capabilities to help find spurious or complicated bugs faster may provide a huge developer cost and time to market benefit that often goes unappreciated in hardware selections focused on CPU cycles, RAM size, and BOM dollars.
4. Adopt Linux – but do it carefully
It should come as no surprise that some of the most popular Things, such as the Nest Thermostat and various smartwatches, run Linux. With its open source licensing, widespread availability of developers and applications, Linux has an undeniably important position in the run-time strategy for IoT.
However, Linux has problems scaling to lower end designs (footprint, battery life, and performance). It has real-time limitations and lacks the safety and security pedigree that one needs in a future-proofed IoT strategy.
Here again is an area where the Thingvisor is a win. Thingvisor converts Linux into a IoT-optimized version of Linux, whereby Linux runs atop the software root of trust. For example, in automotive Things, safety-critical software (CAN drivers, rear-view camera, ADAS) may be hosted on the microkernel, leaving Linux to be used for graphics and communications stacks.