首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Rust for Linux | 用 Rust 写 Linux 内核模块

背景| Linux 内核模块 Linux 内核模块在概念和原理层面与动态链接模块(DLL或so)类似。...正是因为内核模块这种机制,方便了Linux 贡献者选择设备驱动成为进入 Linux 复杂系统的一个入口点,而不会被 Linux 代码的复杂性而压倒。...也正是因为内核模块这个特点,Rust for Linux 项目的目标就是让 Rust 成为Linux内核模块开发的第二语言。...然后通过慢慢“蚕食”的方法,使得 Linux 中越来越多的组件使用 Rust 语言实现,最终达到提高 Linux 安全性的目的。...当然,为 Linux 做贡献并不容易,Linus 在前几天的开源峰会上也透露,虽然允许 Rust 进入 Linux,但毕竟也是实验性的,而且他还提前向未来为 Linux 做贡献的 Rust 开发者道歉

14.9K22
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Binder概述,快速了解Binder体系

    Binder到底是什么 ----------- Android系统内核是Linux,每个进程有自己的虚拟地址空间,在32位系统下最大是4GB,其中3GB为用户空间,1GB为内核空间;每个进程用户空间相对独立...,而内核空间是一样的,可以共享,如下图 [地址空间.png] Linux驱动运行在内核空间,狭义上讲是系统用于控制硬件的中间程序,但是归根结底它只是一个程序一段代码,所以具体实现并不一定要和硬件有关。...Linux最大的特点就是一切皆文件,驱动也不例外,所有驱动都会被挂载在文件系统dev目录下,Binder对应的目录是/dev/binder,注册驱动时将open release mmap等系统调用注册到....flush = binder_flush, .release = binder_release, }; // 注册驱动参数结构体 static struct miscdevice binder_miscdev...return -ENOMEM; ...... // 注册驱动,misc设备其实也就是特殊的字符设备 ret = misc_register(&binder_miscdev

    1.5K20

    Linux - Linux内存管理

    为了解决内存紧缺的问题,Linux引入了虚拟内存的概念。为了解决快速存取,引入了缓存机制、交换机制等。...要深入了解Linux内存运行机制,需要知道下面提到的几个方面。 首先,Linux系统会不时地进行页面交换操作,以保持尽可能多的空闲物理内存。...其次,Linux进行页面交换是有条件的,不是所有页面在不用时都交换到虚拟内存中,Linux内核根据“最近最经常使用”算法,仅仅将一些不经常使用的页面文件交换到虚拟内存中。...Linux虽然可以在一段时间内自行恢复,但是恢复后的系统已经基本不可用了。...Linux下可以使用文件系统中的一个常规文件或者一个独立分区作为交换空间。同时Linux允许使用多个交换分区或者交换文件。

    52.3K41
    领券