uCore lab 1

本系列旨在完成uCore实验,通过实验了解操作系统的概念,从汇编,c语言编程的角度,以微观的视角了解操作系统的运行过程。
本文为本系列第一篇,介绍机器启动到启动os的过程。

Read more

Raft项目总结

raft作为相当有效的分布式算法的一个实现,较paxos更容易理解,也更加简便。本文将阐述raft相关的知识点,从而对raft算法有更深刻的理解。

Read more

C++ 实现线程池

前置知识:

  • c++
  • 操作系统

C++实现线程池

前言

  本文使用C++基本库,实现了固定线程数量的线程池。

Read more

2020 6.824 lab1解析

前置知识:

  • go
  • linux

2020 6.824 lab1解析

前言

  本系列主要是对mit课程6.824的lab进行解析,包括部分原理的讲解以及代码的实现。主要使用go来进行编写。本文讲解的是lab1,根据给定的代码框架来实现MapReduce结构。

Read more

git的使用

前置知识:

git的使用

前言

我发现我这个废物到现在没有系统性学习git,于是写了本文。主要用于加强记忆,备忘。

介绍

git,又叫分布式版本控制系统。版本管理系统,意味着对项目的版本进行管理,可以退回到历史版本,也可以在历史版本基础上开发新版本,可以将分支的版本合并到主要版本从而便于开发。分布式意味着每台电脑上都是完整的版本,而非版本的一部分。

基本概念

git主要有三个主要的基本概念:工作区版本库暂存区
工作区:即工作目录,主要进行开发的位置。
版本库:一般在工作目录中的隐藏文件夹.git目录中,git用于管理的工作目录。
暂存区:类似于存放项目内文件的各种类修改操作。存放于index文件中。具体实现可以参考原理,本文不过多概述。

git常用命令

git init:初始化工作目录,创建.git文件夹从而便于开始管理。
git add:接文件名,在工作目录中搜索对应文件名,并且将文件存入暂存区。
git commit:提交所有或者部分暂存区文件到仓库。一般加-m参数来写提交注释。一定要写提交注释
git status:查看仓库当前状态。
git diff:查看未提交记录与提交过的具体文件差别。
git log:查看log。
git reset:有三种模式。可以使用–hard来更新工作区,暂存区,仓库所有文件到目标commit记录(参数为commit 的sha1)或者回退到之前几个版本(参数为HEAD^。尖号数量代表往前几个版本),通常用于回滚版本。另外两种模式可参照对应文档。
git reflog:查看命令的日志。
git checkout –filename:将工作区的文件修改撤销掉,换成最新的暂存区内或者版本库内的文件。
git reset HEAD file:撤销暂存区的文件修改。
git rm:版本库中删除对应文件。如果确实删除后需要提交。
git clone:从对应库中拷贝项目。
git mv:移动或者重命名对应文件。
git branch:创建分支。
git checkout:移动到分支。
git merge:合并分支。如果出现冲突则手动解决冲突后git add对应文件。
git push:将文件推到远程库。
git pull:将远程库拉到本地库并覆盖。
git stash:将当前目录保存起来,之后可以切换分支改bug,改完后用git stash pop来恢复现场。
git rebase:将多个commit记录合并并接到另一个分支之后。用于整合commit记录。

总结

主要包含了git的常用命令以及基本概念,各种参数不全面,各种功能描述也可能不全面或者有误,但主要功能基本准确。现在虽然ide帮我们做了很多,但学习一些git的概念对开发还是有意义的。

Bomb Lab解析

前置知识:

  • 汇编
  • GDB

Bomb Lab解析

前言

Bomb lab是《深入理解计算机系统》配套实验之一。可执行程序包含着“炸弹”,必须输入六个正确的字符串来进行拆弹。字符串必须通过对程序的汇编码进行分析来得到。本文通过分析拆弹流程,对反汇编技术技巧进行总结。

Read more
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×