勇哥注:
学习.net Core最好是安排下面两个测试环境,一个是类似于虚拟机的sandbox,它可以测试windows程序。
二是一个windows下的linux环境WSL,可以用来测试linux程序
(一)sandbox
sandbox是win10下类似虚拟机一样的东西,但是速度很快,
Windows 沙盒使用微软的 Hyper-V 技术,创建一个轻量级虚拟机来运行单独的内核, 将 Windows 沙盒会话与主机分开,每个启动的沙盒环境只有大约 100MB, 足以运行桌面环境来测试应用程序。在沙盒内进行的所有操作,包括安装软件、 编辑文件或下载的文件,都只会影响沙盒环境本身,不会影响主操作系统。 还可以通过沙盒的设置来限制某些软件的权限、网络访问等,以增加安全性。
如果出现下面的错误
按下面2步,即可恢复。
如果看到下面的错误,那完蛋了,网上暂时没有解决方案。
(二)WSL (win10的linux子系统)
windows10可以安装linux子系统,但是就目前个人使用感受来说,作为新手入门和学习linux可以使用,
但若是作为开发中的编译环境来使用那就不可了,经常会报出一些出乎意料的错误,慎用
在windows10下安装linux子系统可以参考微软的文档https://docs.microsoft.com/en-us/windows/wsl/install-win10,
其实主要也就三步
step1.管理员打开PowerShell,运行如下命令后会提示重启
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
step2.在微软商店搜索ubuntu进行下载安装
step3.安装完成后进入ubuntu会提示创建用户和密码,按提示做就行了
成功进入了linux的控制台了!
安装完Ubuntu后忽然意识到没有设置root密码,我们可以在终端输入命令 sudo passwd,
然后输入当前用户的密码,enter,终端会提示我们输入新的密码并确认,
此时的密码就是root新密码。修改成功后,输入命令 su root,再输入新的密码就ok了
如果你想默认root用户登录,那么windows打开cmd执行以下命令即可
<ubuntu版本> config --default-user root
上面这个ubuntu版本,就是要找到那个ubuntu的exe的名字。
请打开cmd,按勇哥下面操作来:
然后执行下面命令:
如何重启 Windows 10 子系统(WSL) ubuntu
WSL 子系统是基于 LxssManager 服务运行的,只需要将 LxssManager 重启即可,可以做成一个 bat 文件
net stop LxssManager net start LxssManager
wsl升级为wsl2
旧版 WSL 的手动安装步骤 | Microsoft Docs
https://docs.microsoft.com/zh-cn/windows/wsl/install-manual
这个过程貌还比较多步骤,有兴趣的朋友可以尝试下。
访问winndows文件的方法
cd /mnt/c/XXX #进入c盘的xxx文件
cd /mnt/d/XXX #进入d盘的xxx文件
所以,要进入windows的某个盘的文件中,需要先进入ubuntu的/mnt文件夹下。
几个常用的命令:
(1) 是屏幕内容写文件
(2) 是往文本中追加内容
(3),(4) 查看文件,后者可以分页
(5) 移动,复制,删除
(6) 创建目录
(7) 创建空文件
(8) 浏览目录
(9) zip压缩解压缩,tar 主要用于归档文件
(10) sudo是提升到root权限, apt是Ubuntu上的包管理器,install bc是指安装一个叫bc的包
bc的用法:
$ echo "2 + 3" | bc
$ echo "a = 5; a + 3" | bc
echo "sqrt(16)" | bc
$ bc < cal.txt
--------------
cal.txt
a = 5
b = 10
a + b
(1) echo 1,2,3,4,5 > input1 (2) echo >> input1 23434 5555 3333 ctrl+D 结束输入 (3)cat 文件名 (4)less 文件名 (5)mv, cp, rm (6)mkdir, (7)touch+文件名称 (8) ls, dir (9) zip/unzip, tar (10)sudo apt install bc
一个问题:我们能不能用WSL开发实时程序呢?
直接说答案:白日做梦!
WSL 的主要设计目标是为开发人员提供一个在 Windows 上运行 Linux 二进制文件和工具的环境, 而并非用于高性能计算或实时系统。 以下是 WSL 在开发实时程序时可能遇到的一些问题: 性能开销: WSL 是在 Windows 内核之上运行的 Linux 兼容层,这意味着任何通过 WSL 运行的 Linux 程序都会受到 Windows 内核和 WSL 层的性能开销影响。这种开销可能包括额外的上下文切换、 系统调用开销等,这些对于实时系统来说可能是不可接受的。 硬件访问: WSL 可能无法直接访问某些硬件资源,或者对硬件的访问可能受到 Windows 内核的限制。 这可能会限制实时程序对硬件的直接控制,从而影响其性能。 调度策略: 实时系统通常需要特定的调度策略来确保关键任务得到及时的处理。 然而,WSL 使用的调度策略可能无法满足实时系统的要求。 同步和通信: 实时系统通常需要高效的同步和通信机制。 虽然 WSL 提供了对 Linux 套接字和其他 IPC 机制的支持, 但这些机制在 Windows 环境下可能无法达到原生 Linux 的性能水平。 稳定性和可靠性: 由于 WSL 是一个相对较新的技术,其稳定性和可靠性可能不如成熟的 Linux 发行版。 这对于需要高度可靠性和稳定性的实时系统来说可能是一个问题。 如果你正在开发实时程序,并且性能、可靠性和硬件访问是关键因素, 那么建议考虑使用原生 Linux 环境或嵌入式操作系统(如 VxWorks、FreeRTOS 等), 这些系统通常更适合于实时应用。如果你仍然希望在 Windows 上进行开发, 但也需要 Linux 环境,那么可以考虑使用虚拟机或双引导配置来运行 Linux, 这样可以提供更好的性能和隔离性。
附:如果你的微软商店(Microsoft Store)无法打开,请参考下面链接进行设置,勇哥试过是有效的!
https://zhuanlan.zhihu.com/p/469585538?utm_id=0

