uv-最快的python包管理工具

概述

uv (https://github.com/astral-sh/uv) 是一个极快的Python包和项目管理工具,他是用Rust编写的。他可以用来代替 pip, pip-tools, pipx, poetry, pyenv, twine, virtualenv等工具。

他有如下的亮点:

  • 极快的速度,比pip快10-100倍
  • 提供pip兼容的接口形式,这样可以选择不学新的语法
  • 提供python版本的管理,可以方便的切换下载python版本(这点比poetry好)
  • 全局cache来管理依赖,这样可以避免重复下载

安装

阅读更多

Linux是如何启动的

概述

Linux启动过程主要分为以下几个阶段:

  • BIOS/UEFI启动
  • Boot Device引导
  • Boot Loader执行
  • 内核引导
  • 用户空间初始化,驱动程序加载、内核模块加载、启动1号进程,并由其启动其他用户空间进程

具体的启动过程如下图所示:
alt text

BIOS/UEFI启动

阅读更多

systemd介绍

概述

systemd 是 Linux 系统的一组基本构建模块。它提供了一个系统和服务管理器,以 PID 1 运行并启动系统的其余部分。systemd 提供强大的并行化能力,使用套接字和 D-Bus 激活来启动服务,提供按需启动守护进程,使用 Linux 控制组跟踪进程,维护挂载点和自动挂载点,并实现复杂的基于事务依赖的服务控制逻辑。systemd 支持 SysV 和 LSB 初始化脚本,并可替代 sysvinit。其他部分包括一个日志守护进程、用于控制基本系统配置(如主机名、日期、区域设置)的实用程序、维护登录用户列表以及正在运行的容器和虚拟机、系统账户、运行时目录和设置,以及用于管理简单网络配置、网络时间同步、日志转发和名称解析的守护进程。

他是一个大而全的系统,包含了很多功能,可以如下图所示:
alt text

主要的一些功能有:

  • 服务管理:systemd可以启动、停止、重启、查看服务的状态,还可以设置服务的依赖关系。
  • 日志管理:systemd通过journalctl命令可以查看系统日志,支持按服务、时间、优先级等条件过滤。
  • 定时任务:systemd可以替代cron,通过systemd-timer实现定时任务的管理。
  • 系统初始化:systemd负责系统的初始化,包括加载内核模块、挂载文件系统、启动用户空间进程等。
  • 用户会话:systemd可以管理用户会话,包括用户登录、注销、会话控制等。
  • 内核管理:包括cgroups、kdbus、autofs等
  • 网络管理:systemd-networkd可以管理网络配置,systemd-resolved可以管理DNS解析。
  • 设备管理:systemd可以管理设备,包括磁盘、网络、USB等设备。
  • cgroup管理:systemd可以管理cgroup,实现资源限制和控制。
阅读更多

asyncio调度介绍

概述

Python 的 asyncio 库提供了一种基于事件循环的异步编程模型,其核心是无栈协程(Stackless Coroutine)。无栈协程具有以下特性:

  • 单线程事件循环asyncio 在单线程上创建一个事件循环,用于调度协程的执行。
  • 协作式多任务:协程只有在主动交出控制权(如通过 await)时,事件循环才能调度其他协程。
  • 异步等待:使用 await 调用可调度的对象(如协程、FutureTask),并获取其结果。

事件循环

事件循环是 asyncio 的核心组件,负责管理和调度所有异步任务。其工作原理如下:

阅读更多

mitmproxy介绍

概述

mitmproxy一个免费开源的 交互式https代理

可以用于抓取http的包,他支持windows、linux多平台,还可以通过Python库的方式启动去实现更灵活的逻辑。

安装

linux

阅读更多

golang1.24新特性介绍

Go 1.24 与今日(2025.2.11)发布。本次更新在语言特性、工具链、运行时、标准库等方面带来多项重要改进。本文将分类总结这些新特性,帮助开发者快速了解版本亮点。

如果要体验这个版本,可以通过以下命令安装:

go install golang.org/dl/go1.24rc2@latest

语言特性

阅读更多

GCC15版本新特性介绍

概述

GCC(GNU Compiler Collection)是一套由GNU开发的编程语言编译器,支持C、C++、Fortran、Java等多种编程语言。GCC 15 是 GCC 编译器的最新版本,带来了一系列新特性和改进,提升了编译器的性能和功能。

当前GCC15尚未发布,在2025.1.13号进入了Stage 4阶段,预计在2025年第二季度发布正式版本。

GCC版本发布周期

主分支的开发将分三个阶段进行。

阅读更多

Redis 8.0新特性解析

Redis 8.0 带来了一系列革新性的功能升级,极大地提升了其性能与应用场景的适配性,为开发者提供了更强大的数据处理能力。

当前redis 8.0 还处于开发阶段,目前已发布了 8.0-M03 版本。后一个版本是M04

新数据结构集成

Redis 8.0 引入了 7 个新的数据结构,分别是 JSON、时间序列(Time series)、布隆过滤器(Bloom filter)、布谷鸟过滤器(Cuckoo filter)、Count-min sketch、Top-k 和 t-digest。这些数据结构为用户提供了更多的数据处理和存储选择,可以满足不同场景下的需求。

例如,JSON 数据结构可以方便地处理 JSON 格式的数据;时间序列数据结构适用于时间序列数据的存储和分析;布隆过滤器可以用于快速判断一个元素是否在一个集合中;布谷鸟过滤器也是一种高效的集合数据结构;Count-min sketch 可以用于近似计数;Top-k 可以用于找出数据中的前 k 个最大值;t-digest 可以用于近似计算数据的分布。。这些结构的加入,使得 Redis 能够更高效地处理各类数据。以 JSON 数据结构为例,它让 Redis 原生支持 JSON 格式数据的处理,开发者无需进行复杂的格式转换,就能轻松实现数据的存储与读取,显著提升开发效率。下面为你展示 JSON 数据结构的具体用法:

阅读更多

terraform手动退还资源后destroy报错处理

背景

我使用terraform在腾讯云上部署了一份k8s集群,但是回收集群时,我单独删除了k8s集群

这样当我执行

terraform destory
│ Error: [TencentCloudSDKError] Code=ResourceUnavailable.ClusterState, Message=CLUSTER_STATE_ERROR(cluster is in unhealthy state), RequestId=3a363509-6152-402e-a8b9-149e9332ae43

│ with module.tencentcloud_tke.tencentcloud_kubernetes_native_node_pool.native["1"],
│ on ../../modules/tke/tke.tf line 48, in resource "tencentcloud_kubernetes_native_node_pool" "native":
48: resource "tencentcloud_kubernetes_native_node_pool" "native" {



│ Error: [TencentCloudSDKError] Code=ResourceUnavailable.ClusterState, Message=CLUSTER_STATE_ERROR(cluster is in unhealthy state), RequestId=542cdfb5-9883-4b0a-8778-032687365dd6

│ with module.tencentcloud_tke.tencentcloud_kubernetes_native_node_pool.native["0"],
│ on ../../modules/tke/tke.tf line 48, in resource "tencentcloud_kubernetes_native_node_pool" "native":
48: resource "tencentcloud_kubernetes_native_node_pool" "native" {
阅读更多