初识 Rust 语言

这篇具有很好参考价值的文章主要介绍了初识 Rust 语言。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

  自Linux 6.1起,初始的Rust基础设施被添加到Linux内核中。此后为了使内核驱动程序能够用Rust编程语言编写,Linux内核已经合并了许多其他管道和内务管理工作。随着即将到来的Linux 6.8内核周期,第一个Rust网络驱动程序将被引入。去年vivo开发者大会上发布的蓝河操作系统,也使用了Rust语言进行开发。

  作为一名软件开发人员,对于新技术总要保持着好奇心和不断进取的精神,过年抽空简单看了看Rust语言,在这里简单总结分享一下!

一、Rust 的背景

中文官方网站:https://rust.p2hp.com/learn/

  Rust语言在2006年作为 Mozilla 员工 Graydon Hoare 的私人项目出现,而 Mozilla 于 2009 年开始赞助这个项目。第一个有版本号的 Rust 编译器于2012 年 1 月发布。Rust 1.0 是第一个稳定版本,于 2015年5月15日发布。

  Rust 的设计目标是提供一种内存安全并发安全高性能的编程语言,同时保持现代化和灵活性。它结合了系统级编程语言的高效性和高级语言的安全性,使得开发者可以在不牺牲性能的情况下编写更可靠和安全的代码。

  Rust 是一门编译语言,因此它的效率可以媲美 C 或 C++ 语言。某种场景下,Rust 语言瞄准的是工业系统的霸者 C++ 语言。

  Rust的具体语法和C,C++类似,都是由花括号限定代码块,还有一样的控制流关键字,例如if,else,while,和for。然而也并非所有的C或者C++关键字被实现了。某些Rust函数(比如关键字match用于模式匹配)对于那些精通这些语言的人就没那么熟悉了。尽管与C/C++极其相似,Rust在深层语法上跟元语言家族的语言像是Haskell更接近。基本上一个函数体的每个部分都是表达式,甚至是控制流操作符。例如,那个普通的if表达式也取代了C的三元表达式。一个函数不需要以return表达式结束,在这种情况下函数最后的表达式就是返回值。

  Rust可以用来做什么呢?

1、可以使用 Rust 编写操作系统、游戏引擎和许多性能关键型应用程序。

2、可以使用它构建高性能的 Web 应用程序、网络服务,类型安全的数据库对象关系映射(Object
Relational Mapping,ORM)库,还可以将程序编译成 WebAssembly 在 Web 浏览器上运行。

3、Rust 还在为嵌入式平台构建安全性优先的实时应用程序方面获得了相当大的关注,例如 Arm 
基于 Cortex-M 的微控制器,目前该领域主要由 C 语言主导。Rust 因其广泛的适用性在多个
领域都表现良好

二、Rust的特性

内存安全
  Rust 最引人瞩目的特性之一是其内存安全性。通过独特的所有权系统和借用检查器,Rust 在编译时可以防止诸如空指针解引用、数据竞争和内存泄漏等常见的内存安全问题。这使得开发者编写的代码在运行时更加可靠,避免了许多常见的运行时错误。

并发安全
  随着计算机系统变得越来越并发,编写并发安全的代码变得非常重要。Rust 的所有权模型和借用检查器使得并发安全得以得到保障,开发者可以在不担心数据竞争和并发 bug 的情况下编写并发程序。

高性能
  Rust 的设计注重性能,并且借助精心设计的系统级特性和编译器优化,Rust 代码能够达到接近 C/C++ 的性能水平。这使得 Rust 成为系统级和性能敏感型应用程序的理想选择,例如操作系统、嵌入式系统和游戏引擎等领域。

现代化
  Rust 语言本身也融入了许多现代化的编程特性,如模式匹配、闭包、trait 等,使得代码编写更加简洁、表达力更强。Rust 还拥有出色的包管理工具 Cargo,以及丰富的标准库和活跃的社区支持,为开发者提供了良好的开发环境和资源。

三、部署开发环境,编写一个简单demo

官网教程:https://www.rust-lang.org/learn/get-started

1、在ubuntu 20.04部署环境

参考教程:https://www.jianshu.com/p/cfd56fab0697

apt-get install rustc
apt  install cargo

rustc是Rust语言的编译器,cargo是Rust的包管理器。

2、编写demo测试

//rust的源代码文件为.rs文件
fn main(){
    println!("hello world!");
}

初识 Rust 语言,rust,开发语言,后端,linux,嵌入式

四、如何看待Linux内核引入Rust

  Linux 内核引入 Rust 是一个备受关注的话题,它可能对 Linux 以及 Linux 开发产生一系列影响。以下是一些关于这个问题的观点和看法:

  首先讲一下优点:

  1. 内存安全和并发性:Rust 的引入可以带来更多的内存安全和并发性保证。由于 Rust 具有严格的所有权模型和借用检查器,开发者可以在内核代码中避免常见的内存错误如空指针解引用和数据竞争。这有助于提高内核的稳定性和安全性。

  2. 代码维护和可读性:Rust 引入后,可能提高内核代码的可读性和可维护性。Rust 的语法清晰、表达力强,以及强大的静态类型系统可以帮助开发者编写更加模块化和易于理解的代码。这对于内核的维护者和贡献者来说是一个积极的影响。

  3. 性能和效率:Rust 的高性能特性和零成本抽象能力可以对某些内核组件的性能产生积极影响。Rust 提供了对底层硬件和系统的直接访问能力,使得开发者可以编写高效的系统级代码,这对于需要处理大量数据和性能敏感的内核模块来说是一个重要的优势。

  4. 生态系统和工具链:Rust 生态系统目前非常活跃,拥有丰富的库和工具。将 Rust 引入内核可能会促进这些工具和生态系统的发展,并为内核开发者提供更多的选择和支持。

  再来看看一些缺点:

  1. 增加Linux开发人员的技能要求:需要内核开发者拥有Rust语言的开发经验。

  2. 增加代码复杂度:Rust中的一些概念和机制可能与C语言不同,需要使用者进行适应和理解。因此,Linux内核使用Rust开发可能会增加代码复杂度和调试难度。

  3. 影响Linux内核的运行效率:Rust编写的程序通常比C更慢,因为Rust需要运行时代码来执行一些任务。虽然在一些场景下,Rust的性能可能要好于C,但引入Rust可能会对Linux内核的性能造成一定的影响。

  需要注意的是,将 Rust 引入内核不仅仅是技术问题,还涉及到社区和开发者的接受程度,以及与现有 C 代码的兼容性等方面的考虑。此外,在实际实施时还需要解决一些挑战,如与现有基础设施的集成、性能优化等。

  总之,尽管引入 Rust 可以带来许多潜在的好处,但它也需要认真考虑和解决相关的问题。Linux 内核引入 Rust 的决定还需要在社区中进行广泛的讨论和审议,以确保所有利益相关者的意见得到充分的考虑。文章来源地址https://www.toymoban.com/news/detail-827274.html

到了这里,关于初识 Rust 语言的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • rust教程 第一章 —— 初识rust

    近些年来不断有新的语言崛起,比如当下非常火的go语言,不过相比于C++,go语言确实是非常简单的。 而 rust 作为一名新兴语言,却与go不同,因为它的目标是对标系统级开发,也就是试图动摇C、C++这两位纵横编程界数十年的老大哥位置。 比如我们最常用的 windows 系统,就是

    2024年02月04日
    浏览(43)
  • Rust语言从入门到入坑——(2)Rust在windows上搭建开发环境

    开始搭建一个适合在windows上运行的Rust环境。 Rust支持的程序语言很多:可详见官网介绍 本文章主要是在windowns下搭建开发环境 首先,需要安装最新版的 Rust 编译工具和 Visual Studio Code。 Rust 编译工具:https://www.rust-lang.org/zh-CN/tools/install Visual Studio Code:https://code.visualstudio.com

    2024年02月09日
    浏览(50)
  • 嵌入式Linux:如何进行嵌入式Linux开发?

    目录 1、裸机开发 2、SDK开发 3、驱动开发 3.1、字符设备驱动 3.2、块设备驱动 3.3、网络设备驱动 4、应用开发 嵌入式Linux开发主要有四种方式:裸机开发、SDK开发、驱动开发和应用开发。 裸机开发通常指在没有操作系统支持的环境中直接在硬件上运行程序的开发。这种开发方

    2024年01月25日
    浏览(77)
  • Rust软件外包开发语言的特点

    Rust 是一种系统级编程语言,强调性能、安全性和并发性的编程语言,适用于广泛的应用领域,特别是那些需要高度可靠性和高性能的场景。下面和大家分享 Rust 语言的一些主要特点以及适用的场合,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公

    2024年02月12日
    浏览(47)
  • MCU嵌入式开发-硬件和开发语言选择

    主要考虑以下方面来决定是否需要RTOS支持: 需要实现高响应时的多任务处理能力 需要实现实时性能要求高的任务 需要完成多个复杂的并发任务 具备满足工控系统实时性要求的各项功能特性。通过它提供的硬件库、线程支持、中断支持等,可以完全控制微控制器的各个外设,实

    2024年02月12日
    浏览(56)
  • 关于嵌入式开发的一些信息汇总:嵌入式C开发人员、嵌入式系统Linux

    这篇文章是关于嵌入式开发的一些基本信息,供想入行的人参考。有一些作者本人的想法,以及来自外网的大拿的文章翻译而来,原文链接在此Learning Linux for embedded systems,再次感谢,支持原创。 普通C开发人员和嵌入式C开发人员之间的 基本区别在于 ,因为嵌入式C程序被设

    2024年02月03日
    浏览(65)
  • 嵌入式开发:单片机嵌入式Linux学习路径

    SOC(System on a Chip)的本质区别在于架构和功能。低端SOC如基于Cortex-M架构的芯片,如STM32和NXP LPC1xxx系列,不具备MMU(Memory Management Unit),适用于轻量级实时操作系统如uCOS和FreeRTOS。高端SOC如基于Cortex-A架构的芯片,如三星、高通、飞卡、全志和瑞芯微等,具备MMU,支持虚拟内

    2024年02月15日
    浏览(54)
  • 【小黑嵌入式系统第八课】初识PSoC Creator™开发——关于PSoC Creator&下载、创建项目、单片机中的hello world(点亮一个led)

    上一课: 【小黑嵌入式系统第七课】PSoC® 5LP 开发套件(CY8CKIT-050B )——PSoC® 5LP主芯片、I/O系统、GPIO控制LED流水灯的实现 下一课: 【小黑嵌入式系统第九课】PSoC 5LP第一个实验——LED、字符型LCD显示实验 本课程主要介绍了 PSoC® 5LP, 一个基于 ARM® Cortex®-M3 的可编程片上系

    2024年02月03日
    浏览(57)
  • 嵌入式Linux开发教程汇总

    野火:https://doc.embedfire.com/products/link/zh/latest/linux/index.html 正点原子:http://47.111.11.73/docs/boards/arm-linux/index.html 百问网:http://download.100ask.net/books/Linux/ELADCM1/index.html 百问网:https://space.bilibili.com/275908810/channel/seriesdetail?sid=1714177 野火:https://space.bilibili.com/356820657/channel/seriesdeta

    2024年02月10日
    浏览(60)
  • 初识rust

    参考: 认识 Cargo - Rust语言圣经(Rust Course) 新建一个hello world 程序: 用IDA 打开exe,并加载符号: 根据字符串找到主程序入口: 双击该符号,然后按x,快捷键,查看所有的符号引用: 之后跳转到对应的程序位置: PE 起始地址为140000000 读取\\\"hello,world\\\"字符的指令地址:14000104

    2024年02月05日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包