计算机基础
IOT
IoT 全称 Internet of Things(物联网),指通过互联网将各种物理设备(如传感器、家电、汽车、工业机械等)连接起来,实现 数据采集、传输、交互和远程控制 的网络系统。
RTOS 全称 Real-Time Operating System(实时操作系统),是一种专为满足 实时性要求 设计的操作系统。它的核心特点是能够在规定的时间内(通常是毫秒甚至微秒级)响应外部事件并完成处理,确保任务在严格的时间约束内执行。
IoT 设备(尤其是嵌入式设备)常采用 RTOS 作为操作系统,因为:
IoT 设备通常资源有限(低功耗、小内存),RTOS 的轻量化特性适配需求。
许多 IoT 场景需要实时响应(如工业传感器数据反馈、智能门锁的即时解锁),RTOS 的实时性保障了系统可靠性。
Protobuf
- Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。是Google的⼀种语⾔⽆关、平台⽆关、可扩展的序列化结构数据的⽅法,它可⽤于(数据)通信协议、数据存储等。
- Protocol Buffers类⽐于XML,是⼀种灵活,⾼效,⾃动化机制的结构数据序列化⽅法,但是⽐XML更小、更快、更为简单。
- 定义数据的结构,然后使⽤特殊生成的源代码轻松的在各种数据流中使用各种语言进行编写和读取结构数据。可以更新数据结构,而不破坏由旧数据结构编译的已部署程序
- 总结:
- 语言无关、平台无关: 即ProtoBuf支持Java、C++、Python等多种主流语言,支持Window、Linux等多个平台
- 高效: 即比XML更小、更快、更为简单。
- 扩展性好、兼容性好: 你可以更新数据结构,而不影响和破环原有的旧程序;
- 特点
- 假设在没有ProtoBuf序列化和反序列化工具之前,我们定义了一个类,然后想要对这个类进行序列化和反序列化工作,那么就需要我们自己在该类中设计和构造一个序列化和反序列化的方法,这样的话对于我们的开发效率会有影响。
- 当我们引入ProtoBuf工具过后,我们就只需要在 .proto文件中定义我们的类即可,不需要为这个类设计任何方法,再使用ProtoBuf的编译器来编译这个.proto文件,就会得到一个.cpp和.hpp的文件,这两个文件中分别放着我们当初在.proto文件中定义的那个类的C++的实现和声明,并且ProtoBuf的编译器在编译的过程中会为我们在.proto文件中定义的那个类自动生成序列化和反序列化方法以及一些与属性字段相关的方法,我们只需要在我们的工作代码中包含以下ProtoBuf编译出来的.cpp和.hpp文件就可以了,在我们的工作代码中就能直接使用,我们定义的类的序列化和反序列化的方法了;从而省去了我们程序员自己开发一个类的序列化和反序列化的工作;
- 使用方法:
- 编写.proto⽂件,⽬的是为了定义结构对象(message)及属性内容。
- 使用protoc 编译器编译 .proto ⽂件,生成⼀系列接口代码,存放在新生成头文件和源文件中。
- 依赖生成的接口。将编译生成的头⽂件包含进我们的代码中,使用编译器为我们生成的序列化,反序列化方法以及一些对消息字段进行读写的方法。 因此:ProtoBuf是需要依赖通过编译生成的头头文件和源文件来使用的
- 官方文档: Protocol Buffers 文档 - ProtoBuf 文档
Yaml
- YAML是一种较为人性化的数据序列化语言,可以配合目前大多数编程语言使用。
- YAML 的语法比较简洁直观,特点是使用空格来表达层次结构,其最大优势在于数据结构方面的表达,所以 YAML 更多应用于编写配置文件,其文件一般以 .yml 为后缀。
- 网址: https://yaml.org/ ; https://zhuanlan.zhihu.com/p/145173920 ;