读《程序是如何跑起来的》

读《程序是如何跑起来的》

前言

操作系统将底层的很多抽象的原理封装成面向对象的、方便大众理解和操作的图形界面、这大大提高了计算机操作的便利性,然而,享受方便的同事也付出了代价,对于底层的了解越来越少,只会使用工具,却无法明白工具的底层机制就无法创造出更好的工具。

第1章 对程序员来说CPU是什么

热身问题

问:

  1. 程序是什么?
  2. 程序是由什么组成的?
  3. 什么是机器语言?
  4. 正在运行的程序存储在什么位置?
  5. 什么是内存地址?
  6. 计算机的构成元件中,负责程序的解释和运行的是哪个?
阅读更多
Git 笔记系列(九)—— Git进阶
时间 更新备注
2018-04-26 新建文章
2018-09-09 添加git账号切换
2019-01-18 更新链接
2020-08-09 添加GitFlow

Git 飞行规则

git-flight-rules/README_zh-CN.md at master · k88hudson/git-flight-rules

git-tips: Git的奇技淫巧

521xueweihan/git-tips: Git的奇技淫巧

阅读更多
Git 笔记系列(八)—— Git常用命令-Stash
时间 更新备注
2018-03-10 新建文章
2018-06-08 整理补充
2019-01-18 更新链接

引言

暂存未跟踪或忽略的文件
默认情况下,git stash会缓存下列文件:

  • 添加到暂存区的修改(staged changes)
  • Git跟踪的但并未添加到暂存区的修改(unstaged changes)

stash就是存储的意思,比如你在做一件事情的同时,突然又有了别的工作。就把现在的工作存储下来。并不提交到主线任务。而且可以顺利恢复上次的进度。

阅读更多
Git 笔记系列(七)—— Git常用命令-Rebase
时间 更新备注
2018-03-08 新建文章
2018-06-09 整理补充
2019-01-18 更新链接
2020-08-09 补充

rebase 变基

rebase的定义

Integrates the changes from the chosen branch
into your working copy. Your current HEAD branch
will be rebased onto the integrated revisions.

1
git-rebase - Reapply commits on top of another base tip

即将当前分支的提交放在其他分支的最新的提交后。但是这个reapply并非简单地将提交剪切复制到,Rebase 实际上就是取出一系列的提交记录,“复制”它们,然后在另外一个地方逐个的放下去。

阅读更多
Git 笔记系列(六)—— Git常用命令-Reset
时间 更新备注
2018-03-02 新建文章
2018-06-10 添加和revert&checkout的对比
2019-01-18 更新链接

引言

在提交层面上,reset将一个分支的末端指向另一个提交。这可以用来移除当前分支的一些提交。比如,下面这两条命令让 hotfix 分支向后回退了两个提交。

1
2
git checkout hotfix
git reset HEAD~2
阅读更多
Git 笔记系列(五)—— Git常用命令-Branch
时间 更新备注
2018-03-01 新建文章
2018-06-08 整理补充
2019-01-18 更新链接
2020-08-09 补充

引言

几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。 在很多版本控制系统中,这是一个略微低效的过程——常常需要完全创建一个源代码目录的副本。对于大项目来说,这样的过程会耗费很多时间。

Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷。 与许多其它版本控制系统不同, 理解和精通Git 分支,你便会意识到 Git 是如此的强大而又独特,并且从此真正改变你的开发方式。

那么,Git 又是怎么知道当前在哪一个分支上呢? 也很简单,它有一个名为 HEAD 的特殊指针。 请注意它和许多其它版本控制系统(如 SubversionCVS)里的 HEAD 概念完全不同。 在 Git 中,它是一个指针,指向当前所在的本地分支(译注:将 HEAD 想象为当前分支的别名)。 在本例中,你仍然在 master 分支上。 因为 git branch 命令仅仅 创建 一个新分支,并不会自动切换到新分支中去。

阅读更多
Git 笔记系列(四)—— Git常用命令-Checkout
时间 更新备注
2018-02-28 新建文章
2018-06-06 添加checkout命令
2019-01-18 更新链接

引言

上篇介绍Git的流程涉及了很多命令,这篇将对介绍Git工作流的命令进行梳理,希望增加对Git的理解,方便大家的使用。

阅读更多
Git 笔记系列(三)—— Git常用命令-一览
时间 更新备注
2018-02-28 新建文章
2018-06-08 整理补充
2019-01-18 更新链接

目录

命令

  • workspace: 本地的工作目录。(记作A)
  • index:缓存区域,临时保存本地改动。(记作B)
  • local repository: 本地仓库,只想最后一次提交HEAD。(记作C)
  • remote repository:远程仓库。(记作D)
    以下所有的命令的功能说明,都采用上述的标记的A、B、C、D的方式来阐述。
阅读更多
Git 笔记系列(二)—— Git工作流程
时间 更新备注
2018-02-28 新建文章
2018-06-07 添加白话Git内容
2019-01-18 更新链接

引言

上一篇简单介绍了Git后,这篇来看看使用Git的工作流程吧。

阅读更多
Git 笔记系列(一)—— Git简介
时间 更新备注
2018-02-27 新建文章
2018-06-07 整理补充
2019-01-18 更新链接

引言

Git很多开发团队在使用,但是Git很多强大的特性不一定都很了解,基于以前的使用以及参考Git的博客,将用一系列文章介绍Git, 从原理到常用命令,希望能更好的使用Git, 提高团队开发效率。

阅读更多