嵌入式系统的安全、可靠性与问题管理
1. 嵌入式系统的安全考量
1.1 安全的广泛存在
许多嵌入式系统都存在安全关键操作的方面。像医疗、航空、核电等设备,其安全问题显而易见。不过,安全方面有时较为间接,或者只是功能的一小部分。例如,带有软件的家用热水器可能因水过热导致烫伤风险;手机在需要呼叫救护车时无法正常工作;电子门锁在应锁定时让入侵者进入酒店房间,或在火灾时无法让人外出。
1.2 确保适当安全水平的重要性
构建安全系统,需要了解系统中哪些方面会产生不安全状况,这些潜在不安全状况的严重程度,以及应采取什么措施来避免。实际上,没有产品能在所有情况下都绝对安全,但有一些通用的做法和标准可用于判断在安全方面投入多少精力是合适的。虽然很少有嵌入式系统像飞机自动驾驶仪那样对安全要求极高,但大多数嵌入式系统都存在一些安全问题,即便问题较小。
1.3 可能的安全隐患症状
如果嵌入式系统存在以下情况,就需要更密切地关注安全问题:
- 没有书面的安全计划。
- 可以通过一个通用的高级问题来判断是否需要关注安全:作为系统设计师,若尽力编写会使系统做出危险行为的软件,是否能导致不安全的系统行为?如果答案是肯定的,那么安全就是一个相关问题。因为即使设计师无意产生不安全行为,但无法确定软件错误不会意外导致此类行为。所以,若能设想出不安全行为,就必须避免,并通过设计过程中的积极步骤确保已避免该行为,这通常意味着需要有一个安全计划。
1.4 忽视安全的风险
忽视安全可能导致严重后果,包括:
- 系统可能会伤害或致人死亡。
- 系统可能会损坏财产。