0%

一、总论

当我们提起 git 的时候,我们总说它是版本控制工具。但是版本控制工具到底是什么?我觉得是一种特化的数据库,我们根据版本号去查询对应的项目内容,这种特殊数据库用于进行代码管理。而对于 git,我愿意定义它为“分布式、并发、无锁数据库”。

Git 是 Linus 写出来的版本控制工具,其诞生的直接原因是原来为 Linux 进行版本控制的工具 BitKeeper 不再免费了。也就是说,git 的直接需求是 Linux 的版本控制,而 Linux 是世界上最复杂的开源项目之一,所以 git 的设计是较为彪悍的,它支持最为复杂的分布式并发开发,并且可以促进这种集市一般的开发文化。

正因为如此,我个人觉得 git 并不用户友好,它迫使每一个希望更好地利用 git 的用户,都需要去了解 git 的底层实现理解和 git 面临的现实需求。光是“指针分离”这一个常见的现象,如果希望合理的解释,那么就必须深入 git 的底层实现,在了解了指针引用,版本快照,追踪分支和版本快照等一系列实现知识后,还需要了解频繁切换分支,生成分支,并行开发,分布式开发等多个版本管理需求,才可以明白它为啥不把这种直接暴露底层实现的功能更好的封装一下。

总的来说,git 不够友好,不够简洁,并不是开发者的开发水平不行,而是其需求过于强了,所以不得不将工具设计得这么复杂。而如vscode 或者 IDEA 将 git 封装成更为易用的状态,但是这种方式往往限制了 git 的功能,其本质其实是限制了需求的强度。而一旦面对更高强度的需求,不得不承认 git 做得已经很“友好简洁”了。

Read more »

一、总论

如何熟悉工具呢?我觉得最为重要的是理解工具被设计和使用时的理念或者概念或者抽象,只要理解了工具中蕴含的理念是什么,对于具体的操作,就可以抄文档了。

linux 下的常见命令行工具有什么特点呢?这些常见的,简单的命令行工具,本质是 GNU/Linux 生态的一部分,他们的很多概念,本质是 Linux Kernel 的概念的延续和拓展。

GNU/Linux 的伟大真的是难以形容啊。


Read more »

  • portability 可移植性

  • symposium 会议

  • modularity 模块化
  • monolithic 单片机,宏(内核)
  • bypass 绕过
  • non-trival 非平凡的,可观的
  • invocation 调用
  • compatible 兼容,backward compatible 向后兼容
  • capability 能力,权限
  • resurgent 复兴的,复苏的
  • heterogenous 异构
  • relay 继电器,转发,中转
  • semantics 语义学
  • underly 基本的,本质的
  • manipulate 操作
  • plane 飞机,层次,平面
  • respectively 独立地,各自地
  • dicated 精心设计的
  • tenant 租户
  • lease 租借,租用
  • commodity 商品,货物
  • adversary 对手
  • comprise 包括,构成
  • LOC,line of code 代码行数
  • cyber 计算机相关的
  • traverse 遍历
  • obstacle 障碍
  • order-of-magnitude 多个数量级
  • roundtrips 往返
  • retain 保留
  • leverage 使用,杠杆
  • indirection 间接
  • stale 陈旧的
  • fallback 倒退的
  • senarios 场景
  • enclave 飞地
  • scale 规模,可拓展性
  • encryption 加密
  • negligible 微不足道的
  • revisit 重温
  • feasibility 可行性
  • vesatile 灵活的,多样化的
  • best-effort 尽力而为的
  • preemption 抢占式
  • monopolize 垄断
  • utilization 利用率
  • idempotent 幂等的
  • devise 设计发明
  • paradigm 范例
  • stipulate 规定
  • effacy 功效
  • coarse-grained 粗粒度的
  • intuitive 直观的
  • proatively 积极主动的
  • indispensable 不可或缺的
  • polling 轮询
  • impose 强加于
  • indepth 深入的
  • reclaim 回收
  • remedy 弥补
  • retrofit 改造
  • incur 导致,招致
  • intercept 拦截
  • fusion 融合
  • substitution 替代品
  • heuristic 启发式
  • saturate 饱合
  • perception 观念,感知
  • amplify 扩大,增大
  • premise 前提
  • incoporation 合并,加入
  • tune 调整
  • contention 竞争
  • orthogonal 正交

Virtualization, Security, Distributed, Parallelism

你为什么加入 IPADS?

当我还是大二的学生的时候,我就听学长说起过 IPADS,他将 IPADS 描绘得很好,所以我基本上当时就很好奇,之后也是关注了 IPADS 的知乎账号,所以对于 IPADS 的进展有很深的了解。从客观上来讲,我个人的科研兴趣是系统软件,这很符合 IPADS 的研究方向。从主观来讲,我希望我从事的工作不只是一份工作,更是一个艺术品,我希望我的作品精益求精,我觉得这种想法和 IPADS 的实验室文化是相通的。

When I was a sophomore in college, I heard my senior talk about IPADS, and he described IPADS very well, so I was basically very curious at that time, and after that, I also followed the IPADS Zhihu account, so I have a very deep understanding of the progress of IPADS. Objectively, my personal research interest is in system software, which fits well with the research direction of IPADS. Subjectively, I hope that my work is not just a job, but also a work of art, and I hope that my work will be perfect, which I think is in line with the lab culture of IPADS.

Read more »

一、总论

应当意识到,我没有办法依靠平时的积累写出一篇华美的文章。写作或者说表达是必须依靠模板。而“模板”的范围不应该只限于语法层面的“开头,中间段,结尾”。它应当还包括“语义”层面,比如说“意义应当从哪几个角度去答?需要引入事例还是单纯进行说理?”这样的模板。

还是要感慨一下,英语六级其实和英语能力不太沾边。哪怕是沾边,我也没有办法将其他的英语能力换成成绩。反而言之,即使我的六级成绩不好,但是真的遇到需要英语的场合,也应当坦然积极的准备,而不是自怨自艾,自我否定。

你说这些,跟我有什么关系?


Read more »

巴别塔——问答平台调研

任何失去的东西,都会以另一种形式归来。

我选择的是第一个题目,我会调研 CSDN 问答区、StackOverflow、SegmentFault(思否)三款 IT 问答软件。

一、调研与评测

1.1 问答的意义

Read more »