2.3. Rust

Rust是一种系统编程语言,以内存安全高性能无畏并发为核心特性,旨在解决C/C++等传统系统语言中存在的内存泄漏、悬垂指针、数据竞争等问题,同时保持与C/C++相当的运行时性能。它支持多范式编程(命令式、函数式、泛型),并通过所有权系统借用检查器零成本抽象等机制,实现了“安全与性能兼顾”的设计目标。

Rust是一种安全、高性能、并发友好的系统编程语言,适用于需要长期稳定运行、对错误容忍度低的“基石”类软件(如操作系统、网络服务、嵌入式设备)。其“安全与性能兼顾”的设计理念,使其成为C/C++的理想替代方案,也逐渐被各大科技公司(如微软、AWS、Google)广泛采用。随着生态的不断完善,Rust有望在更多领域(如Web开发、数据科学)发挥重要作用。

2.3.1. Rust的概念

2.3.1.1. Rust的起源与发展

Rust由Mozilla员工Graydon Hoare于2006年启动,最初是为了解决C++在内存管理和并发编程中的痛点(如内存泄漏、数据竞争)。2009年Mozilla正式赞助该项目,2012年发布首个有版本号的编译器,2015年推出1.0稳定版本,标志着Rust进入生产就绪阶段。此后,Rust社区迅速壮大,逐渐成为系统编程领域的主流选择之一。

2.3.1.2. Rust的核心特性

Rust的核心竞争力在于安全性能并发的平衡,主要通过以下机制实现:

  1. 内存安全:所有权系统与借用检查器

Rust通过所有权系统(Ownership System)管理内存,确保同一时间只有一个所有者拥有数据的所有权,避免悬垂指针;通过借用检查器(Borrow Checker)在编译时验证引用的有效性,禁止数据竞争(如同时有多个可变引用)。这种设计彻底消除了C/C++中常见的内存错误(如缓冲区溢出、野指针),且无需垃圾回收(GC),保持了零成本抽象。

  1. 高性能:零成本抽象与LLVM后端

Rust的抽象机制(如泛型、trait)均为“零成本”——编译时会自动优化掉抽象 overhead,生成的机器码与手写C/C++代码性能相当。其编译器基于LLVM,支持多种优化级别(如-O2-O3),可针对不同架构(x86、ARM、RISC-V等)生成高效代码。

  1. 无畏并发:async/await与线程安全

Rust的async/await异步编程模型允许开发者以同步的方式编写异步代码,避免了回调地狱;同时,所有权系统和借用检查器确保了线程安全——编译器会在编译时捕获数据竞争,无需依赖运行时锁机制。这使得Rust非常适合开发高并发网络服务(如Web服务器、实时系统)。

  1. 多范式支持:命令式、函数式与泛型

Rust支持多种编程范式:

  • 命令式:类似C/C++的流程控制(ifforwhile);

  • 函数式:支持高阶函数、闭包、模式匹配(match);

  • 泛型:通过trait实现类型多态,避免代码重复。

2.3.1.3. Rust的应用场景

Rust的特性使其适用于对性能安全性并发要求极高的场景,主要包括:

  1. 系统级软件:操作系统与内核组件

Rust常用于开发操作系统、内核驱动和文件系统,如:

  • Redox OS:用Rust编写的微内核操作系统,展示了Rust在系统级编程的能力;

  • Linux/Windows内核:Linux 6.1及以上版本支持Rust编写的内核模块,Windows也在逐步用Rust重构内核组件(如已完成36000行内核代码重构)。

  1. 高性能网络服务:Web服务器与微服务

Rust的异步编程模型和高并发支持使其成为高性能网络服务的理想选择,如:

  • Actix Web/Axum:高性能Web框架,用于构建RESTful API或gRPC服务,性能远超Go、Java等语言;

  • Firecracker MicroVM:AWS开发的轻量级虚拟机,用于无服务器服务(如Lambda),其安全性和启动速度(毫秒级)依赖于Rust的特性。

  1. 嵌入式与裸机系统:微控制器与IoT设备

Rust无需运行时和GC,可直接在裸机(无操作系统)上运行,适合资源受限的嵌入式设备,如:

  • 微控制器编程:用Rust编写温度传感器、电机驱动等固件,避免内存错误;

  • 物联网设备:Rust的安全特性降低了设备被攻击的风险,适合长期运行的IoT节点。

  1. 命令行工具:替代传统Unix工具

Rust编译后生成单个静态可执行文件,启动速度快,适合开发命令行工具,如:

  • fd:替代find,用于快速查找文件;

  • ripgrep:替代grep,用于高效文本搜索;

  • exa/bat:替代ls/cat,提供更现代的用户体验。

  1. WebAssembly(Wasm):高性能前端与跨平台应用

Rust是编译到Wasm的最佳语言之一,可将高性能代码嵌入网页,实现图像处理、音视频编辑等功能(如Figma、Adobe Photoshop的网页版部分功能)。此外,Rust可通过Tauri框架构建轻量级桌面应用(比Electron应用体积小得多)。

2.3.1.4. Rust的最新进展

截至2025年12月,Rust的最新版本为1.92.0,主要更新包括:

  • Never Type(!)稳定化准备:推进!类型(表示永不返回的类型)的最终稳定,提升代码的健壮性;

  • Linux panic回溯修复:即使使用panic=abort编译,也能正确生成回溯信息,改善调试体验;

  • 标准库API稳定:新增智能指针零初始化(Box::new_zeroed)、读写锁降级(RwLockWriteGuard::downgrade)等方法,扩展了标准库的功能。

2.3.1.5. Rust的优缺点

优点:

  • 内存安全:编译时捕获内存错误,避免运行时崩溃;

  • 高性能:与C/C++相当的运行时性能,适合性能敏感场景;

  • 无畏并发:async/await模型和线程安全检查,简化高并发开发;

  • 跨平台:支持Windows、macOS、Linux等主流操作系统,以及x86、ARM等架构。

缺点:

  • 学习曲线陡峭:所有权系统和借用检查器需要一定时间掌握;

  • 生态成熟度:虽然发展迅速,但在某些领域(如GUI、数据科学)的生态仍不如Python、Java完善;

  • 编译时间较长:由于严格的编译时检查,编译速度较C/C++慢。

2.3.2. LoongArch支持的target有哪些

2.3.3. 与LoongArch相关的具体参数那些

2.3.4. 简单的例子说明如何编译成LA架构的EXE文件

都是以例子为主