时间流的实在是太快了,又是白劳的一年。也不忍回首,也不堪展望。站在年尾的节点,四处都是狼藉。
工作上没有大的建树,生活上没有啥起色。好像什么都不做,也应该是现在这样子。但今年实在太累了,在工作和生活上都投入了巨大的心血,也正因如此,越发感觉到徒劳。

在两个月前写《三年疫情五味杂陈》的时候,就是要放开了,所以当时想着写一篇,对疫情三年稍作记录,毕竟是一个时代的拐点。
那片文章过后半个月,就开始有放开的动作了,部分城市已经松动,我还给被隔离的小伙伴留言,说赶上了最后一波封控。

只是没想到,这个国家干啥都是一根筋。我以为这么大的人口,怎么也是省级别的逐步放开,没想到是全国一下子放开。赌气呢吧,一下子就放开了。

想起了一个老问题:浏览器按下回车的时候,后续流程是怎么变化的。
这个问题非常精妙,基本上把网络问题一次打包了。
对相关知识面了解越多的人,能说的内容也越多。越资深的人,能说的时间也越长。
我对网络也一直感兴趣,索性这次就做了大图,越做就盘子越大耗时越多,每个点都可以延伸一个举足轻重的行业。

浏览器按下回车键后,发生了太多太多事情,我文字理下图中写不下的重点,详细看下面大图。大图下载地址

DNS

  1. 重点是时机。DNS 查询是为了域名和 IP 映射,所以它的时机非常非常靠前,是所有网络活动的第一步。
  2. 发挥大作用的是负载均衡。
  3. 误解最大的是根 DNS。有镜像 DNS 在,不要拿封锁大陆域名后会怎么怎么样来做文章,技术同学说这话是要丢人的。如果这么做,我能想到的最大影响就是:大陆主动拒绝外界网络,外界都不愿意打开大陆访问,其实都是自由的选择。
  4. httpDNS 可以解决 DNS 污染和劫持问题,还有运营商偷懒导致的跨网非最近节点不准确问题,加快域名和 ip 的映射。一般只用在移动端,技术方案是 hook gethostbyname api 这个环节。别想着请求前把域名换成 ip,坑很多,尤其是 TLS 证书验证的时候。

Socket 套接字

  1. 网络通信的基石,只要是网络通信,这就是绕不开的大山,这就是中流砥柱。
  2. socket 的核心在于 socket 描述符和发送接收缓冲区。发送接收缓冲区不是 socket 特有的,是计算机基础的一部分,我们使用终端的时候,输入指令和参数的时候都在使用这套缓冲区。
  3. 大名鼎鼎的三次握手就在 socket 建联的时候发生的。成也萧何败也萧何,因为 socket 是内嵌计算机的底层服务,也包括 TCP。所以即使三次握手已经拖慢了互联网这么多年,但依旧无法做升级。Quic 的出现就是忍不了 socket tcp 的队头阻塞而破釜沉舟的东西。
  4. socket tcp 的详细过程,可查阅之前文章:TCP 数据传输过程分析
  5. 谈 socket 离不开端口,谈端口离不开进程。可查阅之前文章:Shell 和进程 - 两种进程创建方式
  6. socket 本身可查阅之前文章:IM 和 Socket 的关系及 Heart 的必要性

update:2022.10.29 昨天听说开始有解封迹象了,今天我收到了运营商发出的 “奥密克戎感染后的身体事项” 的说明短信。能收到这样的短信,就是一叶落知天下秋,看样子是要逐步解封了,应该会在一两年内全部解封。不好的消息是:没有听说 ICU、医疗、特效药、病房有做准备,即使逐渐放开,这些必要的医疗准备工作也要提前半年到一年就要开展起来的。目前看是打算逐渐解封 + 硬扛,要带走不少老年人了。老年人得注意。

COVID-19,从 2019 年可能在 10 - 11 月初步感染人体,到 12 月底被媒体曝光,再到现在,已经 3 年了。

这三年发生了太多太多事情,刻骨铭心的不计其数。我开始以为以前也是有很多很多事情,只是我没有关注。后来想想,或许就是这几年,发生的重大事情比较多。因为疫情和国际局势,中华人民坎坷的这几年。
金字塔的每个层级每个人都受到了很大影响,所有影响最终都会归到生活和金钱,质量总归是下降了不少。
也有很多人说没有受到影响,甚至蒸蒸日上,有些是身不由己,有些是笃信不疑。差异也都能理解,毕竟各种原因,真的是各种原因,不想再去细究,意义不大。

简单回忆下三年疫情,因为不知道什么时候才会结束,就当作是对个人疫情的期中总结。

我应该是最早一批知道武汉有疫情的人,当时只知道有人被感染,还没联想到非典这些传染病。当时有些朦朦胧胧,也有些对未知的恐惧。当时也快过年了,还有不少同学的婚场。
再过了几天,听到疫情严重了不少。已经记不清是在李文亮之前还是之后了。
我和亲人说过年可能回不去了,这次病毒没有媒体报道的那么简单,感染会很严重。过年人流大,火车站这些场所风险比较大。亲人说就是非典一样吧,开车应该好些。最后我们开车回去,老家过了三天赶着高速封路前回到了居住地。我姥姥说这就是古代的 “瘟疫 / 人瘟” 吧,好久没有听到这个词了,但很赞同。
我大学同学的婚礼是过年前段时间。我之前已经答应了我和老婆都会到场了,但是婚礼前我还是和同学说了抱歉,我说肺炎(那是还不叫 covid 或者疫情,只叫做武汉肺炎)不简单,火车站有风险,到场计划得取消了。

之前写有提高效率的手艺这些年我的软件清单两个推荐,一个用来提高文字编辑的效率,一个推荐了手机和电脑可以安装的一些高效率的软件。
这次推荐一些日常生活的避坑指北。生活还有几十年,掉坑在所难免,所以这篇推荐清单打算做长期更新。

指北概要

  • 日常物品避免线下消费,可以线下试用。线下的售后保障和价格上都比不上国内线上。
  • 不要担心购物资损,电商平台都有 7 天无理由退货。有些人已经有了线下消费阴影,不敢退换货了。其实就是手机点下退货,接一下快递员上门电话的事情。
  • 同一个系列,在价格承受范围内可以选贵一点的。也许多花了一点没意义的钱,也许底线就在那个便宜和贵中间。别想着讨巧,便宜是有原因的,商人从来不吃亏。
  • 买东西前多了解下要买的东西,包括组成、作用或者配置等,花不了多少时间。别瞎几把乱买,比如震动去脂、啥离子之类的,不主动了解就得做好被动收割的准备。平台的评价系统真假参半,但也是避雷的最好途径。
  • 对于想买的贵重物品,延迟一周后再决定下不下手。不缺那一周的时间,但钱是真金白银。
  • 对国产保持警惕,尤其是贴近皮肤和肠道的物品。
  • 拼多多的百亿补贴挺香,比其他知名平台要便宜不少。百亿补贴里面的海淘也非常好用,东西不多,都是实用系列。

洗漱

  • 男士洗面奶 - UNO(拼多多海淘 ¥15 一支,130g)
  • 牙膏 - 狮王 white&white,不要买国产那款,买产地日本的(拼多多海淘 ¥8-11 一个,天猫海淘 ¥15,150g)
  • 儿童洗手液 - 日本狮王泡沫式(拼多多海淘 ¥20-25,500ml)
  • 护发素 - Fino(又称红宝石,拼多多海淘 ¥30-40 一罐,230g)
  • 牙线 - 刚需,一定要用。不用一下都不会知道牙缝有多脏。
  • 抽纸 - 清风,金色外包装款
  • 剃须刀 - 吉列锋隐手动版。如果胡子比较茂盛,那可以把剃须当作生活的一部分。建议不要用电动的,虽然方便,但没有剃须的快乐。(要配合剃须泡,洗澡的时候胡子会变软,是动刀的好时机。剃须膏体感非常差。)
  • 水杯水壶 - 买好一些的自己喜欢一些的。自己喜欢的,就是可以多喝一些水。多喝水非常重要。
  • 浴巾 - 毛巾给身子擦水,又慢又累。洗澡后用浴巾两下子就擦干净了,省事。省的时间干其他的事不也很香么。

曾经有位老师问过:在 Linux 的 Shell 中运行程序时,操作系统是怎样对程序进行处理的吗?
我当时回复是这样的:操作系统对 Shell 的执行,是靠 Shell 解释器完成的。在操作系统运行后,Shell 解释器本身就加载并运行了。其中如 pwd,cd 这些是内部命令,本质是函数调用,可以直接使用。ls 这些是外部命令,需要 fork 一个新进程执行当前命令。一个 Shell 脚本,有很多个这些内外部命令组成,通过 Shell 解释器逐行解释完毕后执行。Shell 解释器也是一个应用程序,本质是一个 C 程序,不过在该程序中,手动模拟了函数调用栈,和 JVM 有相似之处。所以 Shell 解释器,也有静态库 / 动态库 / 静态链接 / 动态链接这些,为 Shell 命令的执行保障护航。
现在看起来,当时的回复虽然没有大的问题,但还是不够。只是浅表的认知了 Shell 解释器的用途,但是对 Shell 并没有深刻的理解。
最近看到子 Shell (SubShell),发现 Shell 和进程之间的关系非常密切。可以从进程的角度来理解操作系统是怎么运行 Shell 的
这篇文章的目的,是让你只关心 Shell 脚本的语法,而其他细节,都变成顺理成章。其实各个高级语言也都是这样,语言本身其实并不难,像工具一样使用而已。

一年前写了 “段页内存管理” 的部分章节,后面一直搁置在草稿箱中。最近发现内存相关的知识非常重要,最近几十年科技文明的巅峰,硬件侧就是 CPU,软件侧就围绕着操作系统对内存的控制了。就又整理补齐,形成内存分段分页较完整说明。
硬件 CPU 的不断革新,从 X86 和 ARM 架构的铺天盖地,到 RISC-V 新星崛起和 MIPS 的消退。还有各种流水线优化、APU-ZPU 的推成出新,以及 Apple M1 的展露头脚。虽然 CPU 本身短时间内看不到跨越式的提升,但 CPU 周边是玩出了花。
而已经趋于稳定的操作系统,最近好多年都没有啥惊世骇俗的壮举出现。依托着 CPU 侧的大腿,操作系统躺着进行升级。但换一个角度,也可以认为操作系统已经设计的足够完备,在商业化的时代,有需求就一定会有满足,或许对于当前操作系统来说,目前的设计应对有余。
操作系统的很多设计,都摆脱不了内存这尊大神。首先,操作系统本身和上层应用,就是放在内存里运行的。其次,操作系统的基石进程和线程,就贴着内存进行设计。多核心后的 L0-2 级缓存同步也是为内存定制,当然这个算 CPU 对内存的依赖。IO / 文件系统 / 网络也都离不开内存的影子。
内存本身的制作工艺门槛不高,有 N 多厂商做这个事情。但内存在科技长河中的位置,绝对举足轻重。整个计算机的发展史,内存表现不多,但是中流砥柱。
本文可以顺带解决如下几个问题:

  • 地址总线、数据总线、控制总线是什么?CPU 如何通过地址总线找到内存地址?
  • CPU 和内存之间的高速缓存引发的缓存一致性问题是怎么回事?锁 - 共享数据安全指↑
  • 16 位 CPU 是如何操作 1M 内存空间的 (2^16=64kb)?32 位 CPU 是如何操作 64G 内存空间的 (2^32=4G)?他们的原理一样吗?
  • 分段内存管理,里面的段指的是什么?
  • 除了虚拟地址、物理地址,还有线性地址和逻辑地址,它们是什么?
  • 两个进程的虚拟地址相同,是如何指向不同的物理地址的?虚拟地址的页目录 & 页偏移均一致,如何通过 m = f(n) 函数,以相同的 n 输入,返回不同的 m 输出。

推荐书:《汇编语言》- 王爽、《程序员的自我修养 - 链接装载与库》- 俞甲子
推荐网文:《深入浅出计算机组成原理》- 徐文浩、《操作系统实战》-LMOS、
一定要读的另一篇内存文章:锁 - 共享数据安全指↑
内存相关的知识非常重要,需要很大篇幅和示例图来阐述。在锁 - 共享数据安全指↑中文字数超过了 4W,本文的文字数也超过了 1W,均需要多张配图。重要性和难理解程度,都很高。

又一年中秋过去了,时间过的真快!中秋节的几天假,我是算着日子过的。准确来说,近几个月的节假日,我都是计算着过去了几个小时又过去了几天。我艰难的珍惜着时间,算计着时间的流逝,心里压力很大,劳累无穷。
因为有件事情需要落地,只有节假日这些非工作的时间才能够静下心来忙碌。最近又拖延症犯了,心里总想着那件没落地的事情,大山越压越重,就非常疲惫。
这次的中长期计划和预期差距较大,我也做了复盘,发现有很多需要注意的点值得记录。可以为大大小小的耗时耗力又重要的计划摆正方向。

健康 / 心情 / 拖延症 / 拥抱变化 / 分轻重 / 专心做好一件事 / 拆解计划 / 被计划推着前进

健康

健康非常重要,感觉身体跟不上了,那锻炼的时间就是立刻马上,就不要管那些还没有完成的事项了。
因为身体非常重要,而锻炼事项通常耗时较短,这就是第一优先级。那些未完成的事项可能动不动就是几小时或者几天,相比来说可以拖一拖。
睡眠时间,一定要分配好。靠脑子吃饭的人,不要吝啬自己的睡眠时间。这里不是说不要熬夜晚睡,是要保障睡眠时间。
睡眠不足大脑不在状态,绝对非常耽误事。思考能力下降会带来各种问题,扣着点时间不值得。

时间,永远不会成为你的朋友。它会从前面拉着你,从后面推着你,有时候温文尔雅的放任你像个君子,有时候拿着皮鞭抽打下来像个魔鬼,最后把你拖到年老与色暮,拖到离别和死亡。在生命的最后一刻,有不甘,有妥协,但是时间何曾念及你是它的盟友或者朋友?

我最近几年,真的是怕了时间了。也不是贪生怕死之类的情绪,真遇到突发性的死亡谁都得尿下裤子。更多的是纯粹的对时间的恐惧。
时间它有时候像个女人一样慢慢推着我,有时候像个男人一样粗鲁的拉着我,它一直在逼着我做点什么。当我停下来单纯就在休息的时候,我就感觉到它在我面前盯着我,让我做点什么。
你还记得失恋后,你是怎么释怀的吗?即使当时多么的撕心裂肺。以及很严重的手术后,身体怎么恢复的吗?失恋和手术,都不会一两天好转,可就是不知道什么时候开始,就恢复了。

这些年,发生了很多意想不到的变化。比如之前上厕所一定要用蹲坑,现在也习惯马桶了。还有进屋穿鞋,之前我是想着以后有房子了,进屋也要穿鞋才不硌脚,现在是自觉的脱鞋进屋了。还有游戏,我几波起伏,从小学痛恨到中学迷恋到后来的无感,现在又给孩子买了 Switch。对游戏有很多次认知上的翻转。
总体下来,自以为的底线被不断翻篇。不知道这些年发生了什么,可就是实打实的变化着。变化的方向说不上好也说不上坏,谁知道过几年会不会再次变化呢。

最近我的职场上发生了很多事,想痛快的表达出来。鉴于时间真的不多,就算草草的一篇水文当作备忘吧。

大老板这两年换了几波,越高层的变动对我们这些底层的影响越小。这次换的是我大部门的老板,这影响就有些大了。最近这两天邮件时不时的在夜里 20 - 24 点之间收到月报提醒,原来只有小部门老板才发月报,现在是 team leader 也需要发了,有些团队看样子是全员发。我自然不反对月报这种总结的形式,我自身每周都有 2-3 次的日回顾。但是这种大部门内部上百人公晒的形式,就有些上纲上线的形式了。这已经变成了一种形式,虽然大家月报的内容没有变化,但性质发生了变化,更多的是一种对高层的委屈妥协。虽然变化总所难免,但很多不舒服的变化一起扑面而来,就让人心情很沉重了。

这都到年中了,公司的毕业还在继续,火还在继续烧。这两天轮到我这边了,团队内部做业务分工的调整,我被划到了另一个团队。后面我和老板说了自己的想法,老板也很尊重我,同意我横向保留现有的工作内容,过了两天说维持我的组织架构不做调整,我也避免了换岗。我接触了两天另外团队的老板,发现管理方式还是有些大的,PUA、高度卷都有发生。工作群里鼓励周末上线需求的同学说是战斗力、运营配置的资源文件要识别有没有 cdn 加速说这是基操等等。联系到最近上班不断提前,下班不断推迟,开始注重工时代码量,以及部门渲染出来的压抑气氛,这肯定有一场大风要吹来啊,只是会有人起,也会有人落。

0%