Rust and the Linux Kernel
rust有 所有权,高性能,0开销抽象,内存安全,无谓并发,trait多态的轻量实现自定义...等众多优点,为什么还要用c呢?
因为rust虽然安全了,但是放弃了灵活性,很多都是强绑定。c语音就更加的灵活
以实现lock为例,rust确实方便了,但是也放弃了很多优化的可能性和扩展性。
我们来看一下 灵活为什么重要呢?
1. 以sqlist为例,一个轻量,灵活的数据库
它对文件的处理,有时甚至比file sys api更快 这是为什么呢?
因为它io更少,引入了池化技术,这就是灵活性的提现,没有那么死板的one file one open one close绑定。
2. 还有现代编译器的指令运行优化
将左边的串行代码,编译器通过读取,发现可以并行,即t1和t2可以在两核cpu上同时执行。速度就提升了一倍。这就是编译器基于灵活性,实现的优化
而像rust就死死的绑定了许多东西,更加的面向应用层,这种绑定固然安全,但也失去了很多操作性,像上面两种类似的操作,灵活的c更易于实现
但过度的灵活也造成了一些问题,example...
我们再来看cpp的raii,就是介于rust和c之间的
绑定了 但又没有那么死🤓👆🏻
关于灵活性和安全性这个一直备受讨论的问题,需结合实际场景,谨记没有银弹,future maybe zig?bush
last