怎么让程序一直处于内核态 写磁盘程序是什么?

[更新]
·
·
分类:互联网
4892 阅读

怎么让程序一直处于内核态

写磁盘程序是什么?

写磁盘程序是什么?

写磁盘程序:
第一:用户程序将数据写入用户空间的缓冲区,然后调用write系统调用
第二:CPU进入内核态,将数据写入拷贝到页缓存,写入成功,立即返回
第三:用户进程调用系统调用fsync、fdatasync、sync等将页缓存中的脏页刷到磁盘;如果用户没有调用,操作系统后台线程也会间隔一段时间就刷盘。
第四:CPU执行刷盘指令,会向磁盘控制器(DMA模式)发送写指令,告诉磁盘控制器要刷盘的数据在主存的位置、要刷盘多少数据、要刷到磁盘什么位置等,然后返回干其他事情了
第五:DMA引擎向CPU发送DMA请求,申请控制总线和主存,申请成功后,开始从主存页缓存中将数据写入到磁盘。写完了之后,字计数器溢出,中断机构会向CPU发出中断请求,CPU收到中断请求后,开始处理中断程序,进行一些扫尾的工作,然后结束。

WSL发展如此迅速,有没有可能会在未来替代原生Linux?

Windows Subsystem for Linux(简称WSL)是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu 14.04 Trusty Tahr映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。
WSL是一些组件的集合,允许原生的Linux ELF64二进制文件跑在Windows上。它同时包括了用户态和内核态组件,主要包含以下部分:
1. 用户态会话管理服务处理Linux实例的生命周期
2. Pico provider drivers (, )“翻译”系统调用,以模拟Linux内核
3. Pico 进程管理原生的用户态Linux(比如/bin/bash)
随着 2020 年 5 月更新的发布,Windows 10 将于五月开始支持 WSL 2 发行版。Docker Desktop 推出使用 WSL 2 作为后端的新版本已经在路线图中,很快就能与大家见面的有:仅使用一行命令安装 WSL;首次安装时,WSL 2 将成为默认版本。
目前WSL2还不完善,WSL1是真实的本机,WSL2是个独立虚拟机,因此而导致的独立IP问题还没有解决,部分情况下不如WSL1好用,部分情况下也不如WSL1的性能。
不过最新公告中,微软依然还在不断改进WSL2,添加GPU支持,添加原生GUI支持等等。
理想替代Linux需要有 WSL1 的特性(等同于本机)以及WSL2的一些功能。想要得到与原生Linux等同的功能,还有很长的路要走。