3 ms·
Memory safety / security is important for a subset of all possible applications. It is not important for _all_ applications. If I use a micro controller to con
by fncslothouber 4y ago
Memory safety / security is important for a subset of all possible applications.
It is not important for _all_ applications.
If I use a micro controller to control a string of leds I do not care about security/memory safety. But I do care about being as close to the metal as possible, and being able to understand the compiled code.
- bonzini 4y agoTo control a string of LEDs, something like Forth (or some other p-code virtual machine) is going to be just as good as C. PIC microcontrollers have always had BASIC as an option for example. But many microcontrollers these days will likely have a TCP/IP stack, perhaps even crypto, even if it is to control a string of LEDs via MQTT or Modbus TCP.
- fncslothouber 4y agoForth would also be a nice choice. Give you another example. A watch, not an apple watch, but a simple Casio watch. One that does time, alarm and a stopwatch. Not connected to anything. What is important here is the battery life, so the less code the better. C would be a fine choice here. All additional code to prevent security breaches would be a complete waste here. Give another example. As my day-job I develop embedded software for the railways. Current system I work on operates the brakes when the train goes too fast. Not connected to the internet, and no connection would even be allowed. Written in C. One because it is simple to understand and the developer can focus on getting the functionality correct. Secondly because there is a wide choice of additional tooling and standards that is required to get the application certified.
- ptx 4y agoIf people rely on the LEDs working correctly or if the controller has any kind of connection to another system (which could be leveraged by an attacker to penetrate deeper into the network) it seems to me that security and memory safety would still be important.
- fncslothouber 4y agoNot everything is or needs to be connected to the Internet. There are plenty of things that are controlled by a micro controllers that do not have a network connection.
- estebank 4y agoNot everything needs to be connected to the Internet, and not every micro controller is running a non-mission critical task. A micro controller hitting a memory safety bug that causes the LEDs to present invalid output can have real world consequences. Even if the micro controller isn't directly actuating machinery, it might cause an operator to incorrectly act because they were mislead. If the micro controller is running Christmas lights, it might be fine if it falls over, no one will die, but I would still call that a manufacturing defect.
- pjmlp 4y agoOnly because liability still isn't a thing across all levels of software development. Thankfully returns in digital stores, warranties in consulting projects, lawsuits in business losses and cybersecurity bills are slowly changing that.