KalosAner Blog

「山穷水复疑无路,柳暗花明又一村。」

vscode 的 remote-ssh 插件远程连接失败

一、问题 使用 Windows 上的 vscode 的 remote-ssh 插件远程连接虚拟机中的 Ubuntu 时每次选择完 “platform” 等待一会儿就会提示失败,而不会提示输入密码。 二、原因 原因是我之前使用 Windows 上的 vscode 连接虚拟机的 Ubuntu,这个过程中 Windows 上已经保存了密钥在 “C:\Users\Administrator.s...

Linux 文件权限和 umask

在 Linux 系统中,进程的 umask 会决定创建出的文件和目录的默认权限。umask 默认为 022 ,这意味着创建出的文件权限为 644(rw-r--r--),目录权限为 755(rwxr-xr-x)。 文件权限的表示方法都是二进制对应着权限的有无,分别对应着:root 用户,用户组用户,拥有者的权限。例如这里的 6 就是 root 用户,它的二进制表示为 110 对应着 r...

Linux 守护进程原理和创建

一、引言 定义与特性 守护进程也就是通常说的 Daemon 进程,守护进程会不断地运行提供服务,类似于 Windows 上的系统服务。它有以下特性: 独立运行:启动后常驻内存,不受终端控制。 独立于用户:通常由 root 用户运行,不受普通用户影响。 提供服务:守护进程通常会持续提供服务,如监控端口。 通常由系统启动:系统启动时通常会启动所有的守护进程。 生命周期:常常在系统启...

github actions 使用教程——使用 GitHub Actions 部署 react 项目到 GitHub Pages 上

GitHub Actions 是 GitHub 2019年 7 月份左右推出的一套 CI/CD 平台,它可以自动化软件开发流程,简化代码提交、构建、测试和部署步骤,通过简单配置实现自动化。 在使用时只需要简单的配置,GitHub 就可以自动化工作流。 1、创建仓库并点击菜单栏的 Actions 按钮,可以看到下边有很多现成的配置可以使用。 2、点击 Simple workflow ...

DeepSeek 使用技巧

一、一图胜千言 在问问题时可以让 DS 以 mermaid 或者表格的形式进行展示。 二、AI 原住民 在有无法解决的问题时要第一时间想到使用 AI。 三、倒反天罡 可以让 AI 问自己问题。 如果对什么有一些困惑可以把自己的现状输入给 AI 让它对自己提出一些问题进行引导。 在学习一个东西时可以让 AI 提出一些问题以检测自己的学习情况。 在看完一个电影或者书...

Linux 进程之会话、进程组和控制终端

一、引言 进程组、会话 和 控制终端 是 Linux 系统进程管理和作业控制的核心概念。 会话与进程组之间的关系就像是公司与部门之间的关系。 二、进程组 概念 进程组是由一个或多个相关联的进程组成的集合,主要用于统一管理和控制这些进程。每个进程都有一个进程组 ID(PGID),用于标识其所属的进程组。进程组一般由组长进程创建,进程组 ID 就是组长进程 ID。 进程组有前台进...

IOCP:Windows下性能最好的 I/O 模型

一、引言 如果已经了解 重叠 IO 的话再理解 IOCP(Input Output Completion Port)就会容易很多。IOCP 的基本流程就是第一步创建一个 IOCP 对象,该对象可以连接很多网络套接字;第二步就是把需要进行 I/O 的套接字连接到刚创建好的 IOCP 对象上,这样传输到这些网络套接字的数据都会进入一个缓冲区队列中;第三步就是创建多个线程,每个线程都通过 Get...

Windows 下的重叠 IO

一、引言 同一个线程内部向多个目标发送(或者从多个目标接收)数据引起的 IO 重叠现象称为“重叠 IO”。为了完成这项任务,调用的 IO 函数应立即返回,只有这样才能发送后续数据。 该功能可以实现类似于 Linux 下的分散读写。 二、重叠 IO 使用 创建重叠 IO 套接字 使用重叠 IO 需要创建适用于重叠 IO 的套接字,通过如下函数完成: 1 2 3 #include...

Windows 下的异步通知 IO

一、异步通知 IO 同步 IO 就是调用 IO 函数会阻塞直到数据完成发送或者完成接收,IO 函数才返回结果。 异步 IO 就是调用 IO 函数的同时立马返回,此时数据可能还在缓冲区进行发送或者接收。也就是说在进行 IO 的同时,CPU可以执行其他任务。 通知 IO 是“通知输入缓冲收到数据并需要读取数据,以及输出缓冲为空故可以发送数据”。典型的通知 IO 模型是 select 方式。...

Windows 线程的创建和销毁

一、引言 要想掌握 Windows 平台下的线程,应首先理解“内核对象”(Kernel Objects)的概念。 操作系统创建的资源(Resource)有很多种,如进程、线程、文件和即将介绍的信号量、互斥量等。其中大部分都是通过程序员的请求创建的,虽然文请求方式不同(请求中使用的函数)各不相同,但是它们都是由 Windows 操作系统创建并管理的资源。操作系统为了记录相关信息的方式以管理...