当前位置: 首页 > news >正文

CS144--Chapter0--wsl2+docker环境搭建

我的笔记本配置

荣耀magicbook16,容量是500G,芯片是R7-5800
由于笔记本容量较小,因此考虑这个方案,对于台式机用户,建议可以直接用虚拟机或者双系统。

前言

斯坦福官网给出的方法是用他们的镜像(基于Ubuntu23.10)进行实验,但是国内访问他们的镜像的速度着实感人,同时无意间看到一位互联网知己写了这篇文章(友情链接),这篇文章写的非常nice,但是里面缺少了有关于使用windows中的wsl2功能结合docker在vscode里面实现轻量化编程的详细步骤,本人之前了解过docker,使用过wsl2做无人机,vscode也是家常便饭了,但是将这三者结合尚未尝试,于是这篇文章便产生了。

知识预备

什么是wsl

wsl就是微软官方出品的用于在windows系统中得到linux体验的一种东西,现在可以直接在微软商城里面下载。虽然说功能肯定没有原生的linux系统强劲,但只是做一个课设还是更有性价比,毕竟跟虚拟机动辄好多G相比已经非常轻量。这里的Ubuntu则是机器人领域编程常用的linux系统平台。
在这里插入图片描述

什么是docker

Docker,我的简单理解就是介于conda和虚拟机之间的一种操作系统级别的容器,想要获得ubuntu操作系统的体验,只需要拉去官网的微缩版本的镜像就可以,不用下载非常大的镜像。
软件界面长这样:
在这里插入图片描述
这里就是我使用的两个镜像,一个是docker教程使用的官方镜像.

系统配置步骤

一、安装wsl2

简单,直接到微软商城安装就行

二、安装docker desktop

简单,直接官网下载,所有默认操作即可

三、安装vscode以及相关的扩展

官网安装vscode可能会比较慢,等待一下就好

需要安装的扩展如下:
1.docker
在这里插入图片描述
2.wsl
在这里插入图片描述
3.remote development
在这里插入图片描述

四、拉取docker中的ubuntu镜像并运行

!小技巧:在命令行中直接运行以下shell脚本,如果没有那么会直接自动下载。

docker run -it --rm ubuntu:23.10 bash

完成下载以后就能在图形化界面中看到运行中的系统了。
在这里插入图片描述

五、通过vscode连接wsl进行开发

在左侧点击docker图标,就能看到运行中的ubuntu23.10系统了,进一步点开就能看到文件结构,之后就是常规命令行操作了。
在这里插入图片描述

Chapter0代码部分配置

一、安装必要库

sudo apt update && sudo apt install git cmake gdb build-essential clang clang-tidy clang-format gcc-doc pkg-config glibc-doc tcpdump tshark

二、邮件传输

这一步跟着官网教程做就行,不是本文章叙述重点。

三、编写可靠数据流函数

本实验的目的是通过编写程序实现在两个主机之间实现可靠的数据流传输。

socket接口编程完成get_URL

socket接口就类似于是一条管道将两个主机连接起来,学过计算机网络的同学应该不陌生。
如果没学过可以参考这个教程(需要科学上网)。
代码如下:

void get_URL(const string& host, const string& path) {Address address(host,80); //construct using the ip+portTCPSocket tcpSocket;//connect to the servertcpSocket.connect(address);// Format the serverstring request = "GET " + path + " HTTP/1.1\r\n"+ "Host: " + host + "\r\n"+ "Connection: close\r\n"+ "\r\n";// Send the HTTP requesttcpSocket.write(request);//define the buffer to store the temp datastd::string buffer;while (true) {tcpSocket.read(buffer);if (buffer.empty()) {break; // No more data}cout << buffer;buffer.clear(); // Clear the buffer for the next read
}
}
http://www.lryc.cn/news/292426.html

相关文章:

  • MGRE实验报告二
  • 算法设计与分析实验:最短路径算法
  • 共用体与枚举法,链表的学习
  • SG2520CAA汽车用晶体振荡器
  • 使用pip将第三方依赖包下载到本地指定位置
  • C语言探索:水仙花数的奥秘与计算
  • 2024年人工智能应用与先进制造科学国际学术会议(ICAIAAMS 2024)
  • 计算机图形学 实验
  • React + react-device-detect 实现设备特定的渲染
  • 文献速递:肿瘤分割----基于卷积神经网络的系统,用于前列腺癌[68Ga]Ga-PSMA PET全身图像的全自动分割
  • 2024 IC FPGA 岗位 校招面试记录
  • Linux 命令 —— top
  • 【Docker】使用VS创建、运行、打包、部署.net core 6.0 webapi
  • 抖音短视频矩阵营销系统源头独立开发搭建
  • Springboot使用数据库连接池druid
  • Springboot-前后端分离——第三篇(三层架构与控制反转(IOC)-依赖注入(DI)的学习)
  • Open CASCADE学习|曲面上一点的曲率及切平面
  • CentOS 8最小安装和网络配置
  • 【代码随想录-链表】环形链表 II
  • Redis核心技术与实战【学习笔记】 - 7.Redis GEO类型 - 面向 LBS 应用的数据类型
  • 银行数据仓库体系实践(17)--数据应用之营销分析
  • Linux一键部署telegraf 实现Grafana Linux 图形展示
  • C/C++ C++入门
  • 【后端】乐观锁和悲观锁
  • 软件工程知识梳理1-可行性研究
  • 2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码
  • pytorch nearest upsample整数型tensor
  • MySQL的SQL MODE
  • GO EASY 框架 之 NET 05
  • 【教程】谈一谈 IPA 上传到 App Store Connect 的几种方法