自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

moran的博客

编程star

  • 博客(52)
  • 收藏
  • 关注

原创 【STM32】江协科技STM32入门教程学习笔记汇总

STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器STM32常应用在嵌入式领域,如智能车、无人机、机器人、无线通信、物联网、工业控制、娱乐电子产品等STM32功能强大、性能优异、片上资源丰富、功耗低,是一款经典的嵌入式微控制器安装Keil5MDK安装器件支持包软件注册安装STLINK驱动安装USB转串口驱动ST(意法半导体)为了方便用户开发程序,提供了一套丰富的 STM32标准外设函数库库,简称固件库。固件库版本。

2025-03-23 16:27:32 2658

原创 C++web服务器项目学习笔记-第5章 项目实战与总结

典型的一次IO的两个阶段是什么?数据就绪和数据读写数据就绪:根据系统lO操作的就绪状态(TCP接收缓冲区)阻塞:调用IO方法的线程进入阻塞状态非阻塞:不会改变线程的状态,通过返回值判断size == -1 出错了 (EINTR,EAGAIN,EWOULDBLOCK前面这几种都是正常情况,不是错误,编程的时候需要判断一下)size == 0 读取到数据的末尾,对方连接关闭size > 0 读取到了多少的数据。

2024-02-28 11:29:57 1609 1

原创 C++web服务器项目学习笔记-第4章 Linux网络编程

简介:优点:缺点:简介:优点:B/S 架构最大的优点是总体拥有成本低、维护方便、 分布性强、开发简单,可以不用安装任何专门的软 件就能实现在任何地方进行操作,客户端零维护,系统的扩展非常容易,只要有一台能上网的电脑就能 使用。缺点:简介最初设计互联网络时,为了便于寻址以及层次化构造网络,每个 IP 地址包括两个标识码(ID),即网络 ID 和主机 ID。同一个物理网络上的所有主机都使用同一个网络 ID,网络上的一个主机(包括网络上工 作站,服务器和路由器等)有一个主机 ID 与其对应。 Internet

2024-02-28 11:24:37 1974

原创 C++web服务器项目学习笔记-第3章 Linux多线程开发

与进程(process)类似,线程 (thread) 是允许应用程序并发执行多个任务的一种机与进程制。一个进程可以包含多个线程。同一个程序中的所有线程均会独立执行相同程序,且共享同一份全局内存区域,其中包括初始化数据段、未初始化数据段,以及堆内存段。(传统意义上的 UNIX 进程只是多线程程序的一个特例,该进程只包含一个线程)进程是 CPU 分配资源的最小单位,线程是操作系统调度执行的最小单位。

2024-02-28 11:22:10 1325

原创 C++web服务器项目学习笔记-第2章 Linux多进程开发

程序是包含一系列信息的文件,这些信息描述了如何在运行时创建一个进程:程序就是一个文件,进程是程序要运行系统给它分配的资源。程序是占用磁盘空间的,而进程只占用内存空间2.2 进程状态转换2.2.1 进程的状态进程状态反映进程执行过程的变化。这些状态随着进程的执行和外界条件的变化而转换在三态模型中,进程状态分为三个基本状态,即就绪态,运行态,阻塞态。在五态模型中,进程分为新建态、就绪态,运行态,阻塞态,终止态。五态模型:命令 ,它用于显示当前系统上运行的所有进程的信息。以下是输出中各列的含义:通

2024-02-28 11:20:37 1695

原创 C++web服务器项目学习笔记-第1章 Linux系统编程入门

GCC 原名为 GNU C语言编译器 (GNU C Compiler)GCC (GNU Compiler Collection,GNU编译器套件)是由 GNU 开发的编程语言译器。GNU 编译器套件包括 C、C++、Objective-C、Java、Ada 和 Go 语言前端,也包括了这些语言的库 (如 libstdc++,libgcj等)GCC 不仅支持 C 的许多“方言”,也可以区别不同的 C 语言标准,可以使用命令行选项来控制编译器在翻译源代码时应该遵循哪个 C 标准。

2024-02-28 11:09:15 1344

原创 C++web服务器项目学习笔记-第0章 课程介绍

这门课程是牛客网的课程**《Linux高并发服务器开发》,并且在最后项目实战与总结中开发了C++高薪面试项目_牛客网 (nowcoder.com)为什么要学习这门课?参考书籍:前三本是Linux系统编程,后三本是Linux网络编程学完本课程以后,可以去看看Tomcat、Ngix服务器(它们都是Web服务器),看看它们的源码,是怎么实现的。

2024-02-27 17:07:30 542

原创 vscode学习笔记

通过以上步骤,你可以在 VSCode 中使用 GDB 进行 C/C++ 代码的调试操作。VSCode 提供了非常直观的图形界面,结合 GDB 调试器的强大功能,能够帮助你更轻松地分析和修复代码中的问题。如果你需要对运行中的程序进行深度分析,使用 GDB 是一种非常有效的方式。

2025-03-11 22:08:56 1328

原创 Git学习

学习git之前,我们需要先明白一个概念,版本控制!

2025-03-11 22:07:07 753

原创 FPGA学习笔记

FPGA作为一种高度灵活且并行处理能力强的硬件加速器,广泛应用于通信、信号处理、人工智能、工业控制等领域。它提供了硬件的灵活性与高性能,但开发复杂度较高,需要深入理解硬件架构和编程模型。FPGA在未来的高性能计算、人工智能推理加速等领域仍将扮演重要角色。带嵌入式处理器的FPGA中,硬核处理器通常是固定的高性能处理器(如ARM Cortex-A系列),不占用FPGA的逻辑资源。而软核处理器是通过FPGA的可编程逻辑实现的,可以灵活定制,但性能相对较低。

2025-03-11 22:05:05 1258

原创 机器学习学习笔记

动态规划是解决 MDP 的一种方法,它依赖于已知的环境模型(即状态转移概率和奖励函数),通过递归计算状态或状态-动作对的价值来找到最优策略。蒙特卡洛方法是一种通过从环境中采样完整情节(从初始状态到终止状态)来估计策略值函数的方法。它不需要知道状态转移概率和奖励函数。时序差分学习 (TD)是一种结合了动态规划和蒙特卡洛方法优点的算法,它通过在每个时间步更新值函数来实现在线学习,而不需要等待情节结束。Dyna-Q是一种结合了动态规划和时序差分学习的强化学习算法。它通过实际经验和模拟经验的结合来加速学习。MDP。

2025-03-11 22:03:10 1235

原创 ubuntu安装qemu

这些步骤应该会让你在Ubuntu系统上成功安装QEMU。如果你在安装过程中遇到任何问题,确保你的系统是最新的,并且你有足够的权限来安装软件包(可能需要管理员权限)。来启动它,或者在你的应用程序菜单中找到它。这将打开一个图形界面,通过它你可以创建和管理虚拟机。(对于x86_64架构的系统)来验证QEMU是否成功安装。:运行以下命令来更新Ubuntu的软件包列表。这确保你安装的是最新版本的软件包。:通过运行以下命令来安装QEMU。:安装完成后,你可以通过运行。(如果已安装):如果你也安装了。

2024-03-12 16:21:54 5180 1

原创 导入要与 WSL 一起使用的任何 Linux 发行版

请注意,这些步骤假设您已经熟悉基本的Linux命令和WSL的使用。您可以通过在开始菜单中点击您的Linux发行版的图标,或者在命令提示符或PowerShell中输入。之后,重新启动WSL实例,应该会看到它现在默认使用您创建的用户帐户。:在创建了新用户后,您需要编辑您的Linux发行版的配置,使新用户成为默认用户。如果仍然有问题,请确保您的WSL和Windows已更新到最新版本,以获取所有最新的功能和修复。替换为您的具体Linux发行版的名称(例如,如果您使用的是Debian,就替换为。

2024-03-11 11:08:42 944

原创 VMware扩展Ubuntu分区大小(Gparted方式)

首先在VMware软件首页把空间扩展到指定的大小(对应想扩展的虚拟机要先关闭),这里不再说了。现在我想把我的未分配的空间分配给/dev/sda5。此时已经把未分配的空间分配好了。查看一下磁盘占用情况。

2024-03-08 11:03:40 1272

原创 wireshark抓包工具实操

说明:数据包列表区中不同的协议使用了不同的颜色区分。协议颜色标识定位在菜单栏View --> Coloring Rules。如下所示WireShark 主要分为这几个界面Display Filter(显示过滤器), 用于设置过滤条件进行数据包列表过滤。菜单路径:Analyze --> Display Filters。Packet List Pane(数据包列表), 显示捕获到的数据包,每个数据包包含编号,时间戳,源地址,目标地址,协议,长度,以及数据包信息。不同协议的数据包使用了不同的颜色区分显示。

2024-02-27 16:52:53 1197

原创 vscode基本操作

首先打开一个文件,在里面右键选择以vscode打开,这样就打开了一个文件,可以在文件里面添加文件或者文件夹还有一种就是鼠标点击文件路径导航区(或者直接打开命令行程序进入文件夹内,染然后再输入命令也是可以的),然后输入cmd打开命令行程序,在命令行程序里面输入code . 这样就用vscode打开了自己想打开的文件夹。

2024-02-27 16:48:37 1148

原创 Typora的简单入门使用教程

下拉到最底处下载,下载完之后安装,一路next。

2024-02-27 16:43:40 2037

原创 Autoconf和Automake使用

你还可以试着使用一些其他的make命令,如make clean,make install,make dist,看看它们会给你什么样的效果。configure是一个脚本,它能设置源程序来适应各种不同的操作系统平台,并且根据不同的系统来产生合适的Makefile,从而可以使你的源代码能在不同的操作系统平台上被编译出来。用automake产生出来的Makefile.in文件是符合GNU Makefile惯例的,接下来我们只要执行configure这个shell 脚本就可以产生合适的 Makefile 文件了。

2024-02-27 16:37:24 1626

原创 在wsl里面导入导出Linux发行版

请确保在运行这些命令时替换为你自己的实际路径和文件名。导入后,你可以通过WSL命令或Windows Terminal访问新导入的Linux发行版。在WSL(Windows Subsystem for Linux)中导入和导出Linux发行版的过程相对简单。例如,导出名为“Ubuntu”的发行版到C盘根目录的文件。:选择一个你想要导入发行版的文件夹路径。是你为导入的发行版指定的新名称,使用以下命令导出发行版,其中。使用以下命令导入发行版,其中。是你要导出的发行版名称,是发行版的安装位置,

2024-02-27 16:34:19 2965

原创 WSL安装

如果想把docker容器导入到WSL里面的话,可以执行下面的步骤。把这个tar包移动到自定义的盘目录,这里以D盘为例。复制这个容器的ID,另开一个终端,导出tar包。第一步:首先在docker里面拉取一个镜像。把发行版导入WSL里面。

2024-02-27 16:33:19 1145

原创 Linux其他操作-Linux下补丁文件生成、打补丁操作(diff、patch)

同时,有时为了记录对一些比较庞大的软件工程的源码的更改位置时,也会将自己对源代码的更改的生成补丁文件。当我们在src目录下进行打补丁时,此时打补丁所在的目录是在src目录,它从当前目录下可以寻找bsp的文件夹,在它下面找bsp_led.c,所以此时需要用-p1来指定忽略第一个/前的目录(这里用到的是相对路径)。上述的补丁命令的功能就是逐个比较源文件(夹)和目标文件(夹)的所有文件,将差异信息记录到patch_file中,patch_file文件也就是我们所谓的补丁文件。

2024-02-27 11:51:17 2296

原创 Linux其他操作-自动提供 root 权限给 `system()` 调用的脚本或程序

文件以允许特定命令在没有密码的情况下运行。这是一种相对安全的方法,因为您可以精确地控制哪些命令可以无密码运行。在文件中添加一行,指定您的用户(或用户组)可以无密码运行特定的命令。命令来编辑此文件,因为它会检查语法错误。

2024-02-27 11:50:37 613

原创 Linux其他操作-IP路由转发

在 Debian 12 (或者任何其他基于 Debian 的系统) 中,启用 IP 转发的过程和在 Ubuntu 中类似,因为 Ubuntu 是基于 Debian 的。很简单的方式,其实很像flannel网络的Host-Gateway的原理。如果找到了,去掉注释符号(如果有的话),并确保值被设置为。的配置是在启动时加载的。请注意,这些更改将在下一次系统重启时自动应用,因为。如果没有找到这一行,那么在文件的末尾添加上述内容。目录下创建一个新的配置文件,例如。如果您创建了一个新的文件在。或者,您也可以选择在。

2024-02-27 11:50:06 964

原创 Linux其他操作-对于WSL和VMware里面的ip地址

当您在 VMware 中创建一个 Ubuntu 虚拟机时,该虚拟机的 IP 地址通常是由 VMware 的网络适配器配置决定的。在 VMware 的虚拟网络编辑器中,您可以查看和配置这些网络适配器的设置,包括 IP 地址分配和网络连接模式。接口有自己的IP地址,但它实际上是通过Windows中的虚拟适配器进行网络通信的。在这种配置下,WSL实例通常通过一个内部的网络地址转换(NAT)服务获得网络访问能力,而这个NAT服务是由Windows宿主机提供的。从您提供的信息来看,WSL中的。适配器,其IP地址为。

2024-02-27 11:49:24 1980

原创 Linux其他操作-修改Ubuntu的apt-get源为国内镜像源的方法

复制一份原来的源文件命名为。Linux运维派开源镜像。

2024-02-27 11:48:14 2161 1

原创 Linux其他操作-WSL2编译内核并更改替换内核版本

即可),在里面添加下面的内容,路径根据自己的实际路径来(这里也需要管理员权限,我是直接管理员权限打开记事本添加下面的内容)把编译好的kernel文件复制进来(这里需要管理员权限,我是在命令行使用管理员权限进行操作的)在里面把之前的kernel文件备份一下,比如命名为kernel_old就行。文件(创建不了的时候就直接把本目录下的文件复制一份再改名为.完成之后再次打开wsl,就能看到wsl内核版本已经修改。这里编译内核直接省略了,用编译好的内核。

2024-02-27 11:46:26 1281

原创 Linux其他操作-将 Windows 格式的文件转换为 Unix/Linux 格式

替换为你想要转换的文件夹的路径。这个命令将会递归地处理该文件夹内的所有文件,将它们的换行符格式从 Windows 格式转换为 Unix 格式。如果你想将整个文件夹中的所有文件都转换为 Unix 格式,可以使用。命令找到指定文件夹下的所有文件,并使用。例如,假设要转换名为。务必在操作前备份重要文件,以防意外发生。命令来查找文件并使用。首先,确保你已经安装了。

2024-02-27 11:45:28 1590

原创 Linux其他操作-新硬盘分区

在开始之前,确认你已经备份了所有重要数据,因为分区过程可能会导致数据丢失。是一个常用于较小硬盘的分区工具,适用于 MBR(Master Boot Record)分区表。通过这些步骤,你可以在 Linux 系统中有效地分区新硬盘。在 Linux(比如 Ubuntu)中分区新硬盘是一个详细且需要注意的过程。这个命令可以列出系统上所有块设备的相关信息,包括它们的 UUID。完成以上步骤后,你的新硬盘应该会在每次启动时自动挂载到。首先,你需要确定新硬盘的设备名。如果新硬盘还没有分区,你需要创建分区。

2024-02-27 11:44:55 1003

原创 Linux其他操作-配置Linux固定的IP地址

执行: systemctl restart network重启网卡,执行ifconfig即可看到ip地址固定为192.168.88.130了。使用vim编辑/ etc/ sysconfig/ network - scripts/ifcfa-ens33文件,填入如下内容。在VMware Workstation中配置固定IP(CentOS)在VMware Workstation中配置固定IP。现在进行第二步,在Linux系统中修改固定IP。

2024-02-26 13:44:49 489

原创 vim常用命令示意图

在Vim 编辑器中进行复制和粘贴操作有多种方式。

2024-02-26 13:41:43 2951

原创 Linux常用操作

yum 和 apt 均需要root权限。

2024-02-26 13:41:10 1011

原创 Linux基础命令

x86_64” 和 “ARM” 是两种不同的计算机架构或处理器架构,它们决定了计算机如何执行指令和处理数据。这两种架构被广泛用于各种计算设备和系统中。总之,x86_64和ARM都是不同的计算机处理器架构,它们在指令集和设计上有所不同,适用于不同类型的计算设备和应用领域。选择哪种架构取决于具体的应用需求和硬件目标。

2024-02-25 17:45:10 830

原创 gdb深入学习手册

gdb虽然只是一个调试器,但如何要用好它,必须深刻理解linux下程序是如何编译运行的,建议先深入了解相关内容再开始调试程序。本文只局限对gdb的使用上,后面有机会再介绍关于linux下程序编译运行相关的知识。

2024-02-25 17:36:10 1418

原创 什么是GDB

Start your program, specifying anything that might affect its behavior.开始并设置参数。Examine what has happened,when your program has stopped.当你程序停止,检查发生了什么。Make your program stop on specified conditions.打断点在特殊情况下停止。GDB 调试器可以运行你在程序运行的时候检查里面到底发生了什么?GDB可以做以下四件事情。

2024-02-25 17:34:49 446

原创 Linux bridge实现容器通信

创建网络桥接# 下面的命令也可以创建网桥# 查看linux网桥的命令创建veth pair将veth pair的一端连接到桥接将veth pair的另一端连接到容器这一步涉及到将veth pair的另一端(veth2)移动到容器的网络命名空间中。为容器端的veth分配IP地址(可选):更新容器的路由表(可选):**创建镜像:**首先找一个可以使用pingip addr命令的镜像。,下载对应的工具之后再把这个容器提交为镜像,后面使用这个镜像进行操作)

2024-02-25 17:27:11 1105

原创 Docker网络-实战|两种常用的跨主机Docker容器互通方法

路由方式和网桥方式,都可以使跨主机之间的Docker容器互通,操作起来也比较简单;再结合docker-compose,可以非常迅速的拉起一套环境;

2024-02-25 17:24:01 8042

原创 Docker之Dockerfile

dockerfile 是用来构建dokcer镜像的文件!命令参数脚本!查看一下官方是怎么做的!很多官方镜像都是基础包,很多功能没有,我们通常会自己搭建自己的镜像。官方既然可以制作镜像,那我们也可以!

2024-02-25 17:20:39 956

原创 Docker容器数据卷

将应用和环境打包成一个镜像!数据?如果数据都在容器中,那么我们容器删除,数据就会丢失!.MySQL,容器删了,删库跑路!容器之间可以有一个数据共享的技术!

2024-02-25 17:15:04 413

原创 Docker commit提交镜像

首先,你需要创建一个Docker镜像。你可以在本地计算机上使用Dockerfile来构建镜像,或者使用已经存在的容器并对其进行修改。要从Docker Hub拉取自己的镜像,你需要首先构建并标记你的镜像,然后将其推送到Docker Hub。请确保你的镜像已经成功构建并且已经被推送到Docker Hub,以及你在拉取镜像时使用了正确的用户名、镜像名称和标签。:在推送镜像之前,你需要登录到 Docker Hub。这将从Docker Hub拉取你的镜像到本地计算机。为你的Docker Hub 用户名,

2024-02-25 17:14:13 480

原创 Docker镜像讲解

镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时的库、环境变量和配置文件。所有的应用,直接打包docker镜像,就可以直接跑起来!

2024-02-25 17:13:20 1065

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除