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

如何调试Linux内核?

通过创建一个最小的根文件系统,并使用QEMU和GDB进行调试。

1.准备工作环境

确保系统上安装了所有必要的工具和依赖项。

sudo apt-get update    //更新一下软件包
sudo apt-get install build-essential git libncurses-dev bison flex libssl-dev qemu-system-x86 gdb busybox-static
  • sudo apt-get install build-essential:安装编译工具链,其中包含了gcc(GNU编译器集合,用于C/C++程序)、g++(GNU C++编译器)、make(构建工具,用于自动化编译和安装)、libc-dev(C标准库的开发文件)。

  • git:分布式版本控制系统。
  • libncurses-dev:提供字符终端处理库的开发文件。在编译和配置内核的时候,需要依赖此库。
  • bison:GNU解析器生成器。用于生成语法分析器(Parser),在编译内核时可能会使用。
  • flex:快速词法分析器生成器。配合bison使用。
  • libssl-dev:解密一些协议,在内核模块可能使用。
  • qemu-system-x86:QEMU的x86系统模拟器。用于模拟x86架构的虚拟机,支持运行操作系统内核或完整系统。
  • gdb:GNU调试器。用于调试C/C++程序,支持设置断点、单步执行、查看变量和内存,与QEMU配合使用,调试Linux内核。
  • busybox-static:静态编译的BusyBox工具集,提供一组精简的Unix工具,将所有依赖库都包含在可执行文件中,无需外部依赖。

2.获取并配置Linux内核源码

先进入到一个目录下,然后自己克隆就可以了

git clone https://github.com/torvalds/linux.git
cd linux

3.配置内核

为了简化过程,可以使用默认配置并启动调试信息:

make defconfig

在Linux源代码中,找到 .config 文件,然后“Ctrl + f”启动搜索键,搜索调试信息“CONFIG_DEBUG_INFO”,然后可能会出现“CONFIG_DEBUG_INFO_NODE”,你就把他注释了。然后你进行编译“make -j4”,启动四个内核进行编译,提高速度,但是会出现四个调试选项,是因为你把之前个给注释了,在这里你要选择与“CONFIG_DEBUG_INFO”相关的。之后就会成功编译。

编译成功后,你应该能找到两个文件:

  • arch/x86/boot/bzImage:这是内核映像文件。
  • vmlinux:这是未压缩的内核映像文件,用于GDB调试。

4.创建最小的根文件系统

4.1准备目录结构

创建一个目录来存放根文件系统的文件:

mkdir -p ~/Compiler-2/rootfs   //具体路径视情况而定
cd ~/Compiler-2/rootfs
mkdir -p bin sbin etc proc sys usr/bin usr/sbin
ln -s bin sbin
  • bin:存放系统的基本指令(二进制可执行文件),这些命令对所有用户可用。
  • sbin:存放系统管理员使用的管理命令(二进制可执行文件),通常需要root权限才能执行。
  • etc:存放系统的配置文件,包括一些用户信息,网络配置等
  • proc:一个虚拟文件系统,提供内核和进程信息的接口。它不占用磁盘空间,而是由内核动态生成。包括CPU信息、内存信息等
  • sys:一个虚拟文件系统,提供内核和硬件设备的配置接口。与proc类似,它也是由内核动态生成的。用来配置内核参数、管理设备等
  • usr/bin:存放用户安装的命令和应用程序(二进制可执行文件)。gcc、vim等
  • usr/sbin:存放用户安装的系统管理命令(二进制可执行文件),通常需要root权限才能执行、

第三行创建的很多目录是Linux文件系统层次结构标准(FHS)的一部分。

第四行命令的作用是创建一个 符号链接(symbolic link),将sbin目录软链接到bin目录。因为在某些情况下,bin和sbin目录的内容可能会相同或相似,通过将sbin链接到bin,可以节省空间,方便统一管理,之后也就不需要区分这两个目录,也可以简化路径。

4.2复制BuysBox二进制文件

复制BusyBox二进制文件到根文件系统目录:

cp $(which busybox) bin/

将当前目录下 bin/ 目录中的 busybox 可执行文件所支持的所有工具,以符号链接的形式安装到指定目录中(其实就是默认当前目录下的 bin/ 目录)。其中-s是 --install 选项的子选项,表示创建符号链接而不是硬链接(hard link)。

./bin/busybox --install -s

4.3创建 init 脚本

在根文件系统中创建一个简单的初始化脚本(init script)来启动shell:

创建一个名为 init 的文件,并将 #!/bin/sh 写入文件的第一行。其中 #!/bin/sh 是脚本的 shenbang,指定脚本使用 /bin/sh(Bourne Shell)作为解释器。

echo '#!/bin/sh' > init

将 mount -t proc none /proc 追加到 init 文件中。mount -t proc none /proc 挂载 proc 文件系统打破 /proc 目录。proc文件系统提供了内核和进程信息的接口,是Linux系统的重要组成部分。>> init将输出追加到init文件中,不会覆盖原有内容。

echo 'mount -t proc none /proc' >> init

sysfs文件系统提供了内核和硬件设备的配置接口,通常用于管理设备和内核模块。

echo 'mount -t sysfs none /sys' >> init

exec sh 是启动一个交互式的Shell。exec 用新的进程替换当前进程。这行代码的作用是让系统在初始化完成后进入一个交互式的 Shell 环境,方便用户操作或调试。

echo 'exec sh' >> init

为 init 文件添加可执行权限。这行代码的作用是让 init 文件可以被执行。因为在Linux系统中,脚本文件必须具有可执行权限才能直接运行。

chmod +x init

4.4 打包成 cpio 归档

将 rootfs 目录打包成一个 cpio 归档文件,并使用 gzip 压缩,最终生成一个压缩的根文件系统映像文件 rootfs.cpio.gz。

cd ~/Compiler-2
find rootfs | cpio -o --format=newc | gzip > rootfs.cpio.gz

最后在我的电脑上,输出 1 block,表示 cpio 归档文件中只包含一个块的数据(512字节)。

5.使用QEMU启动内核

在第一个终端窗口中运行一下命令启动QEMU:

qemu-system-x86_64 \-kernel arch/x86/boot/bzImage \-append nokaslr\-s -S \-m 2024
  • qemu-system-x86_64:这是QEMU的可执行文件,用于模拟x86_64架构的虚拟机
  • -kernel linux/arch/x86/boot/bzImage:指定要启动的Linux内核镜像文件(在上面编译的时候也提到了)
  • -s:启用 GDB 调试服务器,默认监听端口 1234
  • -S:启动时暂停CPU,等待GDB连接。
  • -m 2024 :给虚拟机分配2024MB   //可加可不加

6.启动GDB连接QEMU进行调试

在第二个终端窗口中启动GDB并连接到QEMU:

cd ~/Compiler-2/linux-6.1
gdb vmlinux
(gdb) target remote localhost:1234
(gdb) continue

之后你就可以使用gdb打断点进行调试了。(*^▽^*)

相关文章:

如何调试Linux内核?

通过创建一个最小的根文件系统,并使用QEMU和GDB进行调试。 1.准备工作环境 确保系统上安装了所有必要的工具和依赖项。 sudo apt-get update //更新一下软件包 sudo apt-get install build-essential git libncurses-dev bison flex libssl-dev qemu-system-x…...

Pywinauto Recorder: 将Windows操作转化为Python脚本,高效简易地实现操作自动化

Pywinauto Recorder是一个强大的UI自动化工具,它能够记录用户在Windows应用程序上的操作,并将其转换为可执行的Python脚本。这意味着你可以轻松地将重复性的GUI操作自动化,提高效率并降低人为错误。 什么是Pywinauto Recorder? …...

【AI大模型】DeepSeek + Kimi 高效制作PPT实战详解

目录 一、前言 二、传统 PPT 制作问题 2.1 传统方式制作 PPT 2.2 AI 大模型辅助制作 PPT 2.3 适用场景对比分析 2.4 最佳实践与推荐 三、DeepSeek Kimi 高效制作PPT操作实践 3.1 Kimi 简介 3.2 DeepSeek Kimi 制作PPT优势 3.2.1 DeepSeek 优势 3.2.2 Kimi 制作PPT优…...

Spring统一格式返回

目录 一:统一结果返回 1:统一结果返回写法 2:String类型报错问题 解决方法 二:统一异常返回 统一异常返回写法 三:总结 同志们,今天咱来讲一讲统一格式返回啊,也是好久没有讲过统一格式返…...

【商城实战(2)】商城架构设计:从底层逻辑到技术实现

【商城实战】专栏重磅来袭!这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建,运用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用户、商品、订单等核心模块开发,再到性能优化、安全加固、多端适配&#xf…...

Netty笔记6:Netty组件

Netty笔记1:线程模型 Netty笔记2:零拷贝 Netty笔记3:NIO编程 Netty笔记4:Epoll Netty笔记5:Netty开发实例 Netty笔记6:Netty组件 Netty笔记7:ChannelPromise通知处理 Netty笔记8&#xf…...

大模型学习笔记------Llama 3模型架构简介

大模型学习笔记------Llama 3模型架构 1、整体网络结构2、主要创新点3、其他关键改进点 LLaMA(Large Language Model Meta AI)系列模型是Meta发布并开源,分别在2023年2月、2023年7月和2024年4月发布了经历了LLaMA 1、LLaMA 2和LLaMA 3模型。本文只讲相对比较成熟、性…...

DeepSeek本地接口调用(Ollama)

前言 上篇博文,我们通过Ollama搭建了本地的DeepSeek模型,本文主要是方便开发人员,如何通过代码或工具,通过API接口调用本地deepSeek模型 前文:DeepSeek-R1本地搭建_deepseek 本地部署-CSDN博客 注:本文不仅…...

C语言:51单片机 基础知识

一、单片机概述 单片机的组成及其特点 单片机是指在一块芯片上集成了CPU、ROM、RAM、定时器/计数器和多种I/O接口电路等,具有一定规模的微型计算机。 特点: 1、单片机的存储器以ROM、RAM严格分工。 2、采用面向控制的指令系统。 3、单片机的I/O口引脚通…...

DAIR-V2X-R数据集服务器下载

【官方github链接】https://github.com/ylwhxht/V2X-R 点击并登录 选择并点击下载 浏览器弹窗,右键选择复制下载链接 ------------------------------------服务器下载----------------------------------------- 登录服务器,选在要下载的文件夹复制路…...

Kali CentOs 7代理

工具v2↓ kali_IP段v2端口例子<1> kali_IP段v2端口例子<2> CentOs 7 //编辑配置文件 vi /etc/profile//在该配置文件的最后添加代理配置 export http_proxyhttp://ip:port //代理服务器ip地址和端口号 export https_proxyhttp://ip:port //代理服务器ip地址和…...

LabVIEW虚拟频谱分析仪

在电子技术快速发展的今天&#xff0c;频谱分析已成为信号优化与故障诊断的核心手段。传统频谱分析仪虽功能强大&#xff0c;但价格高昂且体积笨重&#xff0c;难以满足现场调试或移动场景的需求。 基于LabVIEW开发的虚拟频谱分析仪通过软件替代硬件功能&#xff0c;显著降低成…...

商城源码的框架

商城源码的框架通常是基于某种Web开发框架或者电子商务平台来构建的。以下是一些常见的商城源码框架&#xff1a; WooCommerce&#xff1a;基于WordPress的电子商务插件&#xff0c;适用于小型到中型的在线商店。 Magento&#xff1a;一个功能强大和灵活的开源电子商务平台&am…...

关联封号率降70%!2025最新IP隔离方案实操手册

高效运营安全防护&#xff0c;跨境卖家必看的风险规避指南 跨境账号管理的核心挑战&#xff1a;关联封号风险激增 2024年&#xff0c;随着全球电商平台对账号合规的审查日益严苛&#xff0c;“关联封号”已成为跨境卖家最头疼的问题之一。无论是同一IP登录多账号、员工操作失误…...

Qwen2-Audio系列学习笔记

模型介绍 GitHub - QwenLM/Qwen2-Audio: The official repo of Qwen2-Audio chat & pretrained large audio language model proposed by Alibaba Cloud. https://arxiv.org/pdf/2407.10759 https://zhuanlan.zhihu.com/p/712987238 We introduce the latest progress o…...

高频 SQL 50 题(基础版)_1341. 电影评分

高频 SQL 50 题&#xff08;基础版&#xff09;_1341. 电影评分 思路 思路 (select Users.name results from Users left join MovieRating on Users.user_id MovieRating.user_id group by(Users.name) order by count(MovieRating.movie_id) desc,Users.name asc limit 1) u…...

C#批量压缩并上载CSV数据文件到Box企业云盘

C# .NET 8实现Windows下批量压缩csv文件为zip文件&#xff0c;然后异步上传到box企业云服务网盘路径&#xff0c;实现异常处理和写入运行状态日志&#xff0c;参数来自ini配置文件。 C# .NET 8代码示例&#xff0c;包含INI配置读取、CSV文件压缩、Box上传、异步处理和日志记录…...

pyside6学习专栏(九):在PySide6中使用PySide6.QtCharts绘制6种不同的图表的示例代码

PySide6的QtCharts类支持绘制各种型状的图表&#xff0c;如面积区域图、饼状图、折线图、直方图、线条曲线图、离散点图等&#xff0c;下面的代码是采用示例数据绘制这6种图表的示例代码,并可实现动画显示效果&#xff0c;实际使用时参照代码中示例数据的格式将实际数据替换即可…...

阿里万相,正式开源

大家好&#xff0c;我是小悟。 阿里万相正式开源啦。这就像是AI界突然开启了一扇通往宝藏的大门&#xff0c;而且还是免费向所有人敞开的那种。 你想想看&#xff0c;在这个科技飞速发展的时代&#xff0c;AI就像是拥有神奇魔法的魔法师&#xff0c;不断地给我们带来各种意想…...

Golang语法特性总结

1.认识Golang代码特性 package main //1.包含main函数的文件就是一个main包--当前程序的包名// import "fmt" // import "time" import("fmt""time" )//3.同时包含多个包 4.强制代码风格:函数的 { 一定和函数名在同一行&#xff0c;否…...

AI绘画软件Stable Diffusion详解教程(6):文生图、提示词细说与绘图案例

文生图即以文字描述来生成图像&#xff0c;这是目前所有AI绘画软件的基本功能之一。要想画一副好的图片&#xff0c;除了选择好的模型&#xff0c;在文生图中&#xff0c;提示词特别关键。 一、什么是提示词&#xff08;Prompt&#xff09; 提示词又称创意、关键词、咒语、ca…...

getline的使用(L1-059敲笨钟)

在 C 中&#xff0c;getline 函数主要有两种常用的形式&#xff0c;分别是 <iostream> 头文件中的 std::getline 用于从输入流读取一行字符串&#xff0c;以及 <cstdio> 头文件中的 std::getline&#xff08;C11 引入&#xff09;用于从文件流读取一行。下面分别介…...

Python数据可视化

1.Python 数据可视化全指南 &#x1f680; 数据可视化是数据分析和机器学习的关键环节&#xff0c;Python 提供了丰富的可视化库&#xff0c;如 Matplotlib、Seaborn、Plotly、Pandas 内置可视化等。以下是 Python 可视化的核心内容及最佳实践。 2. 基础可视化库 2.1 Matplot…...

探秘基带算法:从原理到5G时代的通信变革【五】CORDIC算法

文章目录 2.4 CORDIC算法2.4.1 CORDIC算法的基本原理2.4.2 方法论与分类体系旋转模式矢量模式线性模式 2.4.3 **CORDIC 算法中的误差来源****角度逼近误差的分析****缩放效应误差的分析****精度需求与迭代次数的关系****常见应用场景下的迭代次数建议****总结** 2.4.4优缺点分析…...

golang介绍,特点,项目结构,基本变量类型与声明介绍(数组,切片,映射),控制流语句介绍(条件,循环,switch case)

目录 golang 介绍 面向并发 面向组合 特点 项目结构 图示 入口文件 main.go 基本变量类型与声明 介绍 声明变量 常量 字符串(string) 字符串格式化 空接口类型 数组 切片 创建对象 追加元素 复制切片 map(映射) 创建对象 使用 多重赋值 控制流语句…...

大语言模型学习--本地部署DeepSeek

本地部署一个DeepSeek大语言模型 研究学习一下。 本地快速部署大模型的一个工具 先根据操作系统版本下载Ollama客户端 1.Ollama安装 ollama是一个开源的大型语言模型&#xff08;LLM&#xff09;本地化部署与管理工具&#xff0c;旨在简化在本地计算机上运行和管理大语言模型…...

力扣-动态规划-53 最大子数组和

思路 dp数组定义&#xff1a;以i为结尾的字符串的最大子数组和为dp[i]递推公式&#xff1a; dp[i] max(nums[i], dp[i-1] nums[i]);dp数组初始化&#xff1a;dp[0] nums[0];遍历顺序&#xff1a;顺序时间复杂度&#xff1a; 代码 class Solution { public:int maxS…...

论文阅读和代码实现EfficientDet(BiFPN)

BiFPN 采用双向特征融合&#xff0c;让 P3 和 P4 不仅能获取来自 Backbone 的信息&#xff0c;还可以有效吸收 P5 的高级语义特征&#xff0c;增强小目标的判别能力 通过 加权特征融合&#xff08;Weighted Feature Fusion&#xff09;&#xff0c;BiFPN 让 P3 层能够 自动调整…...

[杂学笔记] 封装、继承、多态,堆和栈的区别,堆和栈的区别 ,托管与非托管 ,c++的垃圾回收机制 , 实现一个单例模式 注意事项

文章目录 1.封装、继承、多态2. 堆和栈的区别3.指针和引用的区别4. 托管与非托管5. c的垃圾回收机制6. 实现一个单例模式 注意事项 1.封装、继承、多态 封装就是将数据和内部的方法封装到一个类中&#xff0c;对外隐藏内部实现细节&#xff0c;但是留下了公共接口提供给外部使…...

c++ std::bind、std::bind_front使用笔记

c std::bind、std::bind_front使用笔记 std::bind 和 std::bind_front 的使用说明std::bind (C11 引入)std::bind_front (C20 引入) 应用场景应用注意事项应用注意事项的例子 std::bind 和 std::bind_front 的使用说明 std::bind (C11 引入) std::bind 用于创建一个新的可调用…...

神策数据严正声明

近日&#xff0c;我们发现有不法分子冒充神策网络科技&#xff08;北京&#xff09;有限公司&#xff08;以下简称”神策数据”&#xff09;的名义&#xff0c;发布虚假的招聘广告、面试邀请&#xff0c;企图误导求职者并进行不法行为。对此&#xff0c;我司发布严正声明&#…...

vue+elementui 实现上传文件/导入文件的功能

vueelementui 实现上传文件/导入文件的功能 1. 上传组件 <el-form-item label"上传文件&#xff1a;"><el-uploadaction"":file-list"fileList":show-file-list"false":http-request"handUpLoad"drag:limit"…...

FastGPT 引申:知识库辅助开发(代码符号自动提取与文件匹配工具详解)

文章目录 FastGPT 引申&#xff1a;知识库辅助开发&#xff08;代码符号自动提取与文件匹配工具详解&#xff09;1. 符号提取 prompt2. 文件查询 prompt3. 总结 FastGPT 引申&#xff1a;知识库辅助开发&#xff08;代码符号自动提取与文件匹配工具详解&#xff09; 在开发过程…...

李国杰院士 “七问” DeepSeek:深度剖析 AI 发展新态势

李国杰院士 “七问” DeepSeek&#xff1a;深度剖析 AI 发展新态势 在人工智能领域的探索之路上&#xff0c;李国杰院士凭借深厚的学术造诣和前瞻性的眼光&#xff0c;成为指引方向的重要灯塔。 李国杰院士任职于中国科学院计算技术研究所&#xff0c;担任研究员一职。他不仅是…...

C#中泛型的协变和逆变

协变&#xff1a; 在泛型接口中&#xff0c;使用out关键字可以声明协变。这意味着接口的泛型参数只能作为返回类型出现&#xff0c;而不能作为方法的参数类型。 示例&#xff1a;泛型接口中的协变 假设我们有一个基类Animal和一个派生类Dog&#xff1a; csharp复制 public…...

transformer架构解析{掩码,(自)注意力机制,多头(自)注意力机制}(含代码)-3

目录 前言 掩码张量 什么是掩码张量 掩码张量的作用 生成掩码张量实现 注意力机制 学习目标 注意力计算规则 注意力和自注意力 注意力机制 注意力机制计算规则的代码实现 多头注意力机制 学习目标 什么是多头注意力机制 多头注意力计算机制的作用 多头注意力机…...

SpringBoot生成唯一ID的方式

1.为什么要生成唯一ID&#xff1f; 数据唯一性&#xff1a;每个记录都需要有一个独一无二的标识符来确保数据的唯一性。这可以避免重复的数据行&#xff0c;并有助于准确地查询、更新或删除特定的记录。 数据完整性&#xff1a;通过使用唯一ID&#xff0c;可以保证数据库中的数…...

认识时钟树

时钟源 高速外部震荡器HSE 低速外部震荡器LSE 高速内部震荡器HSI 低速内部震荡器LSI 易混淆点&#xff1a; RC&#xff08;Resistor-Capacitor&#xff0c;电阻-电容振荡器&#xff09;一般是内部时钟源 RTC&#xff08;Real-Time Clock&#xff0c;实时时钟&#xff09;…...

NLP如何训练AI模型以理解知识

一、自然语言处理&#xff08;NLP&#xff09;的定义与核心目标 1. 什么是自然语言处理&#xff1f; NLP是计算机科学与人工智能的交叉领域&#xff0c;旨在让机器具备以下能力&#xff1a; • 理解&#xff1a;解析人类语言&#xff08;文本或语音&#xff09;的语法、语义和…...

linux如何在某个文件夹下查看所有文件(层级只到当前文件夹的两层)并找到‘XXXX’ 这个单词

问了AI写的不错&#xff0c;记录一下&#xff0c;排查一些报错的时候比较好用 在 Linux 中&#xff0c;您可以通过命令行工具查看某个文件夹下的所有文件&#xff08;限制到当前文件夹及其子文件夹两层深度&#xff09;&#xff0c;并搜索包含特定单词&#xff08;如 XXXXX&am…...

Android 常见View的防抖

在开发Android应用时&#xff0c;我们经常会遇到用户快速点击按钮或者频繁触发某个事件的情况。这种行为可能会导致不必要的重复操作&#xff0c;例如多次提交表单、重复加载数据等。为了避免这些问题&#xff0c;我们需要对这些事件进行防抖处理。本文将详细介绍如何在Kotlin中…...

Unity打包到webgl鼠标图标大小不正确

我使用了自定义鼠标纹理&#xff0c;打包出来发现鼠标特别的大&#xff0c;位置也不对劲 研究了一下&#xff0c;不考虑浏览器界面缩放的话&#xff0c;可以直接改import settings的最大尺寸&#xff0c;改成合适的尺寸。 暂时先这样解决吧 最后贴一个设置鼠标图标的代码 pub…...

CentOS 7中安装Dify

Dify 是一个开源的 LLM 应用开发平台。其直观的界面结合了 AI 工作流、RAG 管道、Agent、模型管理、可观测性功能等&#xff0c;让您可以快速从原型到生产。尤其是我们本地部署DeepSeek等大模型时&#xff0c;会需要用到Dify来帮我们快捷的开发和应用。 大家可以参考学习它的中…...

爬蟲動態IP代理與數據採集穩定性

對於從事爬蟲開發的人來說&#xff0c;IP代理的使用直接影響了爬蟲的效率和穩定性。爬蟲的本質是模擬用戶訪問網站&#xff0c;通過抓取網頁內容來獲取所需數據。但大多數網站為了保護自己的數據或防止濫用&#xff0c;會設置諸如IP訪問頻率限制、登錄驗證甚至封禁等反爬蟲措施…...

excel 斜向拆分单元格

右键-合并单元格 右键-设置单元格格式-边框 在设置好分割线后&#xff0c;你可以开始输入文字。 需要注意的是&#xff0c;文字并不会自动分成上下两行。 为了达到你期望的效果&#xff0c;你可以通过 同过左对齐、上对齐 空格键或使用【AltEnter】组合键来调整单元格中内容的…...

React Native 实现滑一点点内容区块指示器也滑一点点

效果图如上&#xff0c;内容滑一点点&#xff0c;指示器也按比例话一点点&#xff0c;列表宽度跟数据有关。 实现思路如下&#xff1a; 1.监听列表滑动事件&#xff0c;获取列表横向滑动距离&#xff0c;假设为A&#xff1b; 2.获取列表的宽度&#xff0c;及列表可滑动的宽度…...

解决Vscode项目同时运行两个项目终端无法自动叠加的问题

终端&#xff08;如命令行工具或服务进程&#xff09;无法自动“叠加”使用同一资源&#xff08;如端口号、进程ID等&#xff09;的核心原因在于操作系统的资源管理机制和网络协议规范的限制。以下是具体分析&#xff1a; 以下是解决 VSCode 同时运行两个项目时终端被前一个占…...

vuex中的state是响应式的吗?

在 Vue.js 中&#xff0c;Vuex 的 state 是响应式的。这意味着当你更改 state 中的数据时&#xff0c;依赖于这些数据的 Vue 组件会自动更新。这是通过 Vue 的响应式系统实现的&#xff0c;该系统使用了 ES6 的 Proxy 对象来监听数据的变化。 当你在 Vuex 中定义了一个 state …...

k8s面试题总结(九)

1.K8s中pod删除失败&#xff0c;有哪些情况&#xff1f;如何解决&#xff1f; Pod删除失败的情况&#xff1a; (1) Pod被其他资源&#xff08;如Deployment,ReplicaSet&#xff09;引用&#xff0c;无法删除pod 解决&#xff1a;先删除引用该pod的资源&#xff0c;再删除pod…...

【JQuery—前端快速入门】JQuery 操作元素

JQuery 操作元素 1. 获取/修改元素内容 三个简单的获取元素的方法&#xff1a; 这三个方法即可以获取元素的内容&#xff0c;又可以设置元素的内容. 有参数时&#xff0c;就进行元素的值设置&#xff0c;没有参数时&#xff0c;就进行元素内容的获取. 接下来&#xff0c;我们需…...