Rust、C语言、Python和Java的本质区别
Rust被设计为能编写操作系统(OS)内核的系统级编程语言,使用静态编译,不采用GC(Garbage Collection)机制。
Rust具备现代编程语言的高效率语法,且开发的应用程序具有类似C语言的性能,并在代码编译阶段就能保证内存安全、并发安全、分支安全等安全性。
现代编程语言通常集成标准库。编程语言的众多关键特性都由标准库实现。采用GC机制的现代编程语言Java和Python,主要用于编写用户态程序。它们的标准库只需要支持用户态模型即可。
Rust是系统级编程语言,所以Rust的标准库要支持OS内核编程与用户态编程两种模型。同为系统级编程语言的C语言解决这个问题的方法是只提供用户态模型的标准库,OS内核的库由各OS自行实现。
Rust的现代编程语言特性决定了其标准库无法把OS内核编程与用户态编程区分成完全独立的两部分,所以只能更细致地进行组件设计。
Rust的标准库主要包括3个组件:语言核心库——CORE库、智能指针库——ALLOC库、用户态——STD库。
Rust的标准库的调用关系如图所示。