admin 管理员组

文章数量: 887006

文章目录

  • Ubuntu子系统概述
    • 什么是子系统
    • WSL介绍
    • 双系统、虚拟机以及子系统的对比
  • 安装Ubuntu子系统
    • 在Windows10下开启WSL
    • 安装Ubuntu
    • 配置和运行Ubuntu
  • 新环境和新问题
    • WSL2的开启
    • Ubuntu子系统的迁移
    • IP地址的问题
    • 在子系统中访问Windows10下的文件
    • 用windows资源管理器访问子系统文件
    • vscode远端访问
    • 配合wsl-terminal使用效果更佳
    • 其它
  • 总结

Ubuntu子系统概述

什么是子系统

  这里先引入一个概念,WSL(Windows Subsystem for Linux)即windows下的Linux子系统,后面一个小节会详细介绍WSL的概念,Ubuntu子系统的实现即基于WSL。安装Ubuntu子系统可以在Windows上引入一个完整的Ubuntu终端环境,可以使用Linux环境下的功能和应用而不用离开Windows。其使用界面如下图所示:

  每天的第一次开启会展示此系统的详细信息,比如进程数,硬盘使用情况,内存使用情况,IP地址等等,当然也显示了我这有一个僵尸进程。不慌,问题不大。

WSL介绍

源引自百度百科
  Windows Subsystem for Linux(简称WSL)是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层,它是由微软与Canonical公司合作开发。WSL基于Windows NT内核虚拟了Linux内核接口,其能够运行大部分的Linux软件,但图形化界面无法运行,所以我们看到的Ubuntu子系统只提供了一个终端环境。
  Windows Subsystem for Linux 包含内核态驱动(lxss.sys和 lxcore.sys),以协调Linux系统调用的请求与Windows NT内核。驱动不包含Linux内核代码,但是是一个全新实现的Linux兼容的内核接口。在原生的Linux上,用户态程序请求一个系统调用,系统调用请求由Linux内核处理。在WSL,当一个系统调用由同一个可执行文件请求时,Windows NT内核把请求发送给lxcore.sys。 当可能时,lxcore.sys将Linux系统调用翻译成等价的Windows NT的调用,由它来完成繁重的工作。当没有可能的等价转换时,Windows内核态驱动需要直接处理请求。比如说,Linux中的fork()系统调用没有直接的等价的windows版本。当一个fork系统调用由Windows Subsystem for Linux产生时,lxcore.sys需要做一些复制进程的准备工作,然后调用Windows NT内核APIs来产生一个进程来正确实现fork操作,完成为新进程复制额外的数据。
  此外WSL也提供了两种文件系统,VolFs 和 DriveFs,VolFs提供了完整的Linux文件系统的特性,包括符号链接和权限管理等;DriveFs兼容Windows下的文件格式,所有的Windows磁盘使用DriveFs挂载在/mnt/目录下。

双系统、虚拟机以及子系统的对比

  接下来对比以上三种在一台电脑上使用多种操作系统的方式,我将主要从安装难度和使用体验上来进行对比分析。
  首先来看双操作系统,安装双操作系统需要到官网下载镜像,备好U盘或者光驱来作为启动媒介,然后通过BIOS界面进入到系统安装。整个安装流程十分复杂且耗时比较长,但其使用体验无疑是最强的,因为其拥有完整的OS环境、硬件资源,仅就使用上来说和操作单一系统是一样

本文标签: 子系统 Ubuntu