.net core学习(三)搭建测试环境:sandbox沙盒(windows环境)和WSL(linux环境)

勇哥注:

学习.net Core最好是安排下面两个测试环境,一个是类似于虚拟机的sandbox,它可以测试windows程序。

二是一个windows下的linux环境WSL,可以用来测试linux程序


(一)sandbox


sandbox是win10下类似虚拟机一样的东西,但是速度很快,

Windows 沙盒使用微软的 Hyper-V 技术,创建一个轻量级虚拟机来运行单独的内核,
将 Windows 沙盒会话与主机分开,每个启动的沙盒环境只有大约 100MB,
足以运行桌面环境来测试应用程序。在沙盒内进行的所有操作,包括安装软件、
编辑文件或下载的文件,都只会影响沙盒环境本身,不会影响主操作系统。
还可以通过沙盒的设置来限制某些软件的权限、网络访问等,以增加安全性。

image.png


如果出现下面的错误

image.png


按下面2步,即可恢复。

image.png


如果看到下面的错误,那完蛋了,网上暂时没有解决方案。


image.png



(二)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进行下载安装

image.png

step3.安装完成后进入ubuntu会提示创建用户和密码,按提示做就行了

image.png


成功进入了linux的控制台了!

image.png


安装完Ubuntu后忽然意识到没有设置root密码,我们可以在终端输入命令 sudo passwd,
然后输入当前用户的密码,enter,终端会提示我们输入新的密码并确认,
此时的密码就是root新密码。修改成功后,输入命令 su root,再输入新的密码就ok了



如果你想默认root用户登录,那么windows打开cmd执行以下命令即可

<ubuntu版本> config --default-user root

上面这个ubuntu版本,就是要找到那个ubuntu的exe的名字。

请打开cmd,按勇哥下面操作来:

image.png


然后执行下面命令:

image.png


如何重启 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文件夹下。

image.png


几个常用的命令:

(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




本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:
本帖最后由 勇哥,很想停止 于 2024-05-26 13:27:51 编辑

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2025年6月    »
1
2345678
9101112131415
16171819202122
23242526272829
30
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864