linux二进制加载
结构
linux_binfmt
用来定义二进制格式的结构,代表某种 特定的格式,比如elf
struct linux_binfmt { |
linux_binprm
用来存放可执行 文件的各种参数,代表可执行文件的运行时结构
linux_binfmt
用来定义二进制格式的结构,代表某种 特定的格式,比如elf
struct linux_binfmt { |
linux_binprm
用来存放可执行 文件的各种参数,代表可执行文件的运行时结构
golang是一门高性能的编程语言,基于其轻量,高效的的Goroutine的设计,可以实现很小的协程切换开销。
本文将解释一下基本的协程相关的原理,并实际做一个小的测试,去得到其实际的切换开销
协程(Coroutine)是一种更轻量级的并发编程方式,他是在用户态实现的,相比于线程进程更加轻量,拥有更小的上下文切换开销,栈空间等等。
协程主要分为两种类型:
Enum Class Improvements for C++17, C++20 and C++23(C++17、C++20 和 C++23 的枚举类改进)
The evolution of the C++ language continues to bring powerful features that enhance code safety, readability, and maintainability. Among these improvements, we got changes and additions to enum class functionalities across C++17, C++20, and C++23. In this blog post, we’ll explore these advancements, focusing on initialization improvements in C++17, the introduction of the using enum keyword in C++20, and the std::to_underlying utility in C++23.
文章转载自: https://www.cppstories.com/2024/enum-improvements/
C++ 语言的演变继续带来强大的功能,可增强代码安全性、可读性和可维护性。在这些改进中,我们对 C++17、C++20 和 C++23 中的枚举类功能进行了更改和添加。在这篇博文中,我们将探讨这些改进,重点介绍 C++17 中的初始化改进、C++20 中 using enum 关键字的引入以及 C++23 中的 std::to_underlying 实用程序。
fuser
是一个非常有用的工具,可以用来查看哪些进程正在使用特定的文件、目录、或者端口。你也可以用它来查找和终止访问特定二进制文件的进程。
格式如下,如启动了一个端口为8080的tcp服务进程
sudo fuser 8080/tcp |
clangd是一个基于clang的C++语言服务器, 它提供了代码补全、跳转、重构等功能。它是一个独立的项目,不是clang的一部分。它的目标是提供一个快速、可靠的C++语言服务器,以便于IDE和其他开发工具使用。
项目主页: https://clangd.llvm.org/
vscode扩展商店搜索clangd
,安装即可。
注意启用后,需要将原有的微软的C/C++扩展进行取消
Wirewhark利用ssh/nc实现抓取Linux的网络包
Wireshark是一个开源的网络数据包分析器,可以实时的从网络接口捕获数据包并分析。他支持多种协议类型,是最为流行的数据包分析器。
Wireshark支持Mac和Windows版本,但是对于Linux服务器上的包,以往只能通过服务器上tcpdump后,去离线分析数据包,较为不便。
之前的文章讲过利用rpcapd实现远程抓包https://blogs.92ac.cn/2024/08/06/rpcapd/, 这种方式要求在服务器上额外编译安装rpcapd。
这里再介绍其他的几种方式。
近日在github上发现一个项目,可以在docker上运行macOS。
项目地址:https://github.com/sickcodes/Docker-OSX
通过这个项目,我们可以很方便的借助wsl和docker在windows上运行macOS。可以用于CI/CD、IOS开发或者简单的体验macOS使用。
官网页面上列出了一些特性:
使用cloudflare worker加速helm chart拉取
项目地址: https://github.com/deepwzh/cloudflare-worker-helm-proxy
在工作中拉取helm chart的时候,比如几个常用的redis,nginx,经常遇到helm dependence update或者build超时或者失败的问题。
以往的做法是设置全局代理或者将手动去把chart下载到本地来使用。
这些方式要么麻烦,要么不算太优雅。
里面提到使用pyenv管理python版本
pyenv管理python版本的主要问题是,需要进行编译安装,颇为麻烦
特别是对于某些不具备编译条件的、缺少系统管理员权限去安装缺失依赖的环境更是如此。
而conda作为常用与算法领域的虚拟环境管理工具,他可以更为方便的安装管理python版本,但是其依赖管理能力弱于poetry,且其是是独立与pip的仓库源,不像poety可以直接使用pip仓库源
sudo apt-get install certbot |
sudo certbot --nginx |
按照提示输入邮箱地址,同意服务条款,选择需要申请证书的域名,然后就可以申请成功了。