技术阅读周刊第三期

d66a1c1b4a7b520437d59530f60a5dd9.png

技术阅读周刊,每周更新。

历史更新

  • 20231013:第一期

  • 20231022:第二期

Understanding The Linux TTY Subsystem

URL: https://ishuah.com/2021/02/04/understanding-the-linux-tty-subsystem/技术阅读周刊第三期_第1张图片本文讲解了 Linux TTY 的历史故事和来源。

  1. TTY 是 teletype 的简写,电传打印机;最早是在二次世界大战发挥重要作用。

  2. 60 年代的计算机使用了teletype 作为输入终端。

  3. 后续随着技术进步使用了软件模拟替代了物理的电传打印机。

  4. TTY 早起位于 Linux 的内核空间,导致缺乏灵活性,后续移动到了用户空间。

  5. 之后又出现了 shell,用户使用 shell 登录系统时会分配一个 TTY 给 shell镜像操作。

  6. TTY 作为 shell 的硬件运行环境,搭配在一起提供了基础的 Linux 操作环境。

100行代码实现一个模拟终端

URL: https://ishuah.com/2021/03/10/build-a-terminal-emulator-in-100-lines-of-go/ 本文在之前介绍 TTY 背景知识的前提下,讲解使用 100 行代码实现一个模拟终端的 App。最终使用效果如下:技术阅读周刊第三期_第2张图片

  1. 第一步使用了  Go  的一个 GUI 库 fyne 渲染了一个普通文本框

  2. 讲解了一个终端和内核通讯的流程图技术阅读周刊第三期_第3张图片

  3. PTY master 获取用户输入发送给 PTY slaver,slave 会执行最终的 shell,并将执行结果返回到 PTY master

  4. 这里使用了  Go  的一个第三方库实现了 PTY 的功能技术阅读周刊第三期_第4张图片

  5. 使用 fyne 获取键盘事件,缓存用户输入的内容,直到检测到输入了回车键,此时将缓存内容发往 pty

  6. 优化响应结果,目前只能输出最新的一行内容,所以新增一个缓冲区存放历史输出。技术阅读周刊第三期_第5张图片最终一个简单的模拟终端便实现了,当然功能还很简单,感兴趣的朋友可以在这基础上持续优化。

混沌工程

最近在复现一个可能的网络问题的时候,接触到了混沌工程,以下是我对它的一些理解

混沌工程(Chaos-Mesh)是一个开源的混沌平台,混沌这词可能不好理解,不过通过他所提供的功能就知道具体是干什么的了。

核心功能是提供了一些列的故障注入,比如:

  • Pod 故障:重启、OOM等

  • 网络故障:延迟、丢包、断网

  • DNS 故障

  • HTTP 故障

  • 甚至还能模拟 JVM 故障技术阅读周刊第三期_第6张图片

这是对一个 Pod 的 http 请求 80 端口进行中断的配置。

通过这些功能可以看出它是一个模拟故障平台,我们可以在它的管理台进行丰富的故障模拟,可以在开发测试过程中增强我们系统的健壮性。

Hacking Your iTerm. Boost your command line productivity by… | by Chandan Kumar | Better Programming

URL: https://betterprogramming.pub/hacking-your-iterm-5d2bdacdaccf

作者分享了它使用终端的一些技巧和工具

iTerm

推荐使用 iTerm 这个就不多说了

powerlevel10k

技术阅读周刊第三期_第7张图片 image.png

powerlevel10k 是一个 zsh 主题,提供了许多自定义的选项,可以按照自己的习惯定制。https://github.com/romkatv/powerlevel10k

Syntax highlighting

20f7dc09120a9ea73654998fc0baa4ac.png语法高亮可以让自己知道输入是否正确https://github.com/zsh-users/zsh-syntax-highlighting

Auto-suggestion

自动提示插件,可以类似于 IDE 的方式使用命令行,这个还蛮好用的。技术阅读周刊第三期_第8张图片https://github.com/zsh-users/zsh-autosuggestions

Autojump

技术阅读周刊第三期_第9张图片自动跳转,可以更快的跳转到我们尝使用的目录,提高效率。https://github.com/wting/autojump

iTerm 的一些窗口导航快捷键

  • 新窗口 —  + T

  • 关闭窗口 —  + W

  • 切换 Tab + Number Key — ( ⌘2 切换到第二个 Tab)

  • 垂直分割窗口 (same profile) —  + D

  • 水平分割窗口(same profile) —  + Shift + D

  • 根据顺序切换窗口 —  + ] ,  + [

  • 上一个 tab<- —

  • 下一个窗口->

  • 最大化窗口 + Shift + Enter

当我们聊 Kubernetes Operator 时,我们在聊些什么_云原生_徐新坤_InfoQ精选文章

URL: https://www.infoq.cn/article/SJMUvMg_0H7BS5d99euR

作者讲解了 Docker、Helm、Operator、kubernetes Controller 之间的关系以及一些核心概念。

  1. Docker的核心价值是提供了标准化的交付流程,现在几乎没人再交付源码了

  2. Operator 和 Docker 类似的是标准化了分布式系统的交付流程。

  3. Helm 也可以做分布式系统交付,但他更侧重于协调多个资源管理,比如可以让 A Pod 启动之后再启动 B Pod。

  4. 但 Helm 无法感知整个系统的运行时状态,而 Operator 则可以,通过这个感知可以自动实现扩容、故障恢复、异常处理等工作,在实现了 Helm 的自动化的同时还实现了智能化。

  5. Operator 是处于一个第三方视角观察整个系统,所以它可以拿到全局的信息,从而最终达到声明状态的一个目的。

  6. Operator 可以当做另一种 Controller,可以理解为第三方的 controller,一般是运维我们自己的应用。

  7. Operator 可以将以往运维的经验沉淀为代码,更利于推进 Dev、Ops 合并为 DevOps

文章链接:

  • https://ishuah.com/2021/02/04/understanding-the-linux-tty-subsystem/

  • https://ishuah.com/2021/03/10/build-a-terminal-emulator-in-100-lines-of-go/

  • https://chaos-mesh.org/zh/docs/

  • https://betterprogramming.pub/hacking-your-iterm-5d2bdacdaccf

  • https://www.infoq.cn/article/SJMUvMg_0H7BS5d99euR

往期推荐

技术阅读周刊第二期

如何优雅重启 kubernetes 的 Pod

在 kubernetes 环境中实现 gRPC 负载均衡

技术阅读周刊第一期

使用 Helm 管理应用的一些 Tips

技术阅读周刊第三期_第10张图片

点分享

技术阅读周刊第三期_第11张图片

点收藏

技术阅读周刊第三期_第12张图片

点点赞

技术阅读周刊第三期_第13张图片

点在看

你可能感兴趣的:(技术阅读周刊第三期)