Rust编程语言推出独特“借阅检查器”功能_第1页
Rust编程语言推出独特“借阅检查器”功能_第2页
Rust编程语言推出独特“借阅检查器”功能_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Rust编程语言推出独特“借阅检查器”功能近年来,消费、医疗、农业、工业以及其他领域对物联网(IoT)连接的需求不断增长,产品开发咨询公司42Technology表示,制造商希望为最终用户带来与众不同的产品,因此想利用物联网连接来添加功能,或为基于服务的产品生成新的数据流。IoT连接中的硬件包括电池供电的便携式小型设备,其中很多都采用ArmCortex-M系列嵌入式处理器,例如NordicSemiconductor的nRF9160SiP核心采用了M33处理器。到目前为止,开发人员仅能够使用C或C++语言对这类Cortex-M器件进行编程。现在42Technology提出了第三种选择,即Rust编程语言,为开发人员带来许多有用的新功能。充分利用资源Rust编程语言必须在高性能和能有效使用资源的平台和环境下使用,它还引入了一些功能来帮助开发人员提高效率并生成更安全的代码。例如,Rust提供了称为Cargo的软件包管理器,就像Python的pip或Node的npm一样,可以让开发人员从中央存储库中提取开源软件包,在其项目中轻松使用。Rust的另一项独特功能是“借阅检查器”,它是编译器的一部分。在编译期间,该工具能够检查代码,以确保两段代码不会同时访问同一数据(这是未定义的行为)。换句话说,如果一个函数被调用了,开发人员需要指定这次调用是临时(专有的或作为共享借入)“借入”该数值,或取得该数值的所有权。这款语言具有安全性、高速度和高生产力。根据42Technology报道,微软、Dropbox、Facebook、谷歌、Cloudflare等公司都已成功将Rust语言应用于新项目,包括用于云基础架构,谷歌还将其用于下一代移动操作系统Fuchsia中。在Rust嵌入式工作组的大力推动下,Rust已经发展到“1.0”版本,可支持许多嵌入式平台,越来越多的企业也利用同样的技术优势来支持小尺寸低功耗系统,例如Nordic的nRF52和nRF53系列短距无线SoC,以及nRF9160低功耗蜂窝物联网SiP。Rust的套接字nRF9160开发人员可以直接或通过Zephyr使用NordicSocketAPI,这个API严格遵循标准Berkeley套接字API(有如在Linux和Windows中使用)。但它也有一些缺点,例如套接字和套接字家族都使用“int”类型,如果开发人员将它们混淆,编译器将不能工作。另外,开发人员必须记住在套接字中调用“nrf_close”,因为如果变量超出范围,套接字将出现泄漏,从而在运行时难以调试。为了使Rust开发人员能够很好地利用这一功能强大且经过良好测试的程序库,同时帮助他们避免意想不到的错误,42Technology针对Nordic套接字库开发了Rust包装器。Rust包装器使用高级别并且分类严谨的对象,例如“TcpSocket”和“AtSocket”,它们在超出范围时会自动关闭,并允许开发人员发送格式化数据(图1)。图1:针对Nordic套接字库建立的Rust包装器使用分类严谨的对象,例如“TcpSocket”和“AtSocket”,当它们超出范围时会自动关闭,并允许开发人员发送格式化数据。这种方法非常有效,42Technology表示可以使用Cloudflare的新Rust语言QUIC库进行开发,直接在nRF9160上运行世界上首个QUIC(即将发布的HTTP/3标准的一部分)示例。Rust+ZephyrRust的另一个优点是可以与ZephyrRTOS混合使用。Rust库可以编译为标准的C静态库,从而与所有开发人员现有的C和C++项目关联。某些项目甚至只需一次替换一个函数,就可以从C语言转换为Rust语言。例如,使用SVG库,其中的库具有相同的API但在内部运行得更快、更安全。Rust编程语言旨在提高性能、安全性和开发人员生产力,适合不同规模的项目——从超大规模云基础设施到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论