自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

河西无名式

月影星痕

  • 博客(25)
  • 资源 (6)
  • 收藏
  • 关注

原创 git中各个commit节点的查询 回溯 与 合并:git rebase与git reset

概述:在利用git进行管理的时候,除了对不同的分支进行merge以外,往往需要对同一个一个分支上的不同commit进行合并或者撤销;或者对不同分支上的多次提交进行合并,形成一个线性的提交历史,等等:这些都要用到git rebase,git reset和git log这三个命令。1.commit的信息查询——git log如果我们在同一个分支上进行了多次commit,要想查找每次co

2013-05-30 13:15:36 18865

原创 算法复杂度精讲——算法时间复杂度的数学原理:从O(n(log(n))说起

概述:在设计算法的时候,要考虑两个方面,一个是算法的正确性,另外一个就是算法的效率,也就是复杂度,通常情况下,我们优先考虑的是时间复杂度,这也是本文要讨论的内容。算法学习的时候,经常碰到这样的问题,为什么快速排序的时间复杂度是O(nlog(n))?为何插入排序的时间复杂度是O(n^2)?这些是我们熟悉的算法时间复杂度,可能病没有太大的问题,那我们不熟悉的呢?如果我们采用三路归并排序而不是二路归并排

2013-05-19 19:13:44 9297

原创 pro_git 第一章

概述:git命令繁杂,而且用起来相当难以上手。为了熟练应用git,本系列文章将解析git的官方参考文档pro_git,让读者能够之气所以然,从原理上弄明git的运行原理;然后结合工程项目的需要和其中出现的问题,提供相应的解决方法,从而让读者更好的理解和使用git。1.文件的 三种状态对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改(modified)

2013-05-31 17:00:27 1074

原创 scp 出现错误ssh: connect to host 9.123.159.41 port 22:connection refused的解决办法

概述:有时在虚拟机于宿主机之间进行文件拷贝并不是那么方便,一个很简便的方法便是使用ssh协议进行通信。1.软件安装:输入 ssh 192.168.xxx.xxx 往往会提示没有这个命令,此时往往需要安装ssh和openssh-server,安装方法不再介绍。2.查询并开启服务在终端输入:/etc/init.d/sshd status可以查看ssh服务是否开启,如果是关闭状态

2013-05-30 20:20:52 13242

翻译 detached HEAD意义详解

概述:在使用git的过程中,我们常常会对其中的HEAD感到疑惑:HEAD是什么意思?表示当前分支吗?什么是处于游离态的commit点?等等,这些都和一个叫做detached head的状态有关,我们来看看它的真面目。            通常情况下,HEAD指向一个分支;同时,每一个分支对应一个特定的commit(确切的说,一个分支上可以有多个commit,但是只有一个顶层commit,

2013-05-29 23:36:52 13769 3

转载 《自己动手写操作系统》第三章a/pmtest1.asm

[html] view plaincopy 1 ; ==========================================   2 ; pmtest1.asm   3 ; 编译方法:nasm pmtest1.asm -o pmtest1.com   4 ; ==========================================

2013-05-27 10:31:21 2513

原创 bochs调试方法与指令详解

bochs调试FAQ:一 基本调试命令1.       Q:如何从引导扇区开始设置断点?A: BIOS被载入内存中运行,其引导扇区的地址一般都是在0x7c00,因为在实模式下,逻辑地址和物理地址是一一对应的, 所以我们可以在启动bochs调试的命令行下输入        pb 0x7c00 或者 vb 0:0x7c00就着输入        cbochs就会在0x7c0

2013-05-27 10:11:11 3617

原创 《自己动手写操作系统》第一章 boot.asm源码剖析

1.代码: org 07c00h ; 告诉编译器程序加载到7c00处 mov ax, cs mov ds, ax mov es, ax call DispStr ; 调用显示字符串例程 jmp $

2013-05-24 19:40:30 4803 1

原创 《自己动手写操作系统》第二章——Bochs调试及相关仿真工具的使用方法

<!--p {margin-bottom:0.08in}-->关键词:bochs,自己动手写操作系统 一 安装具有调试功能的bochs注意:安装bochs以后,常常发现bochs不能调试,原因如下:$ sudo apt-get install vgabios bochs bochs-x bximage 敲入这样一行命令,不一会儿就装好了

2013-05-24 17:01:05 2315

转载 Int 10 中断功能

INT 10H 是由 BIOS 对屏幕及显示器所提供的服务程序,而后倚天公司针对倚天中文提供了许多服务程序,这些服务程序也加挂在 INT 10H 内。使用 INT 10H 中断服务程序时,先指定 AH 寄存器为下表编号其中之一,该编号表示欲调用的功用,而其他寄存器的详细说明,参考表后文字,当一切设定好之后再调用 INT 10H。底下是它们的说明:AH功 能

2013-05-24 16:57:45 3145

转载 自己动手写操作系统--搭建保护模式下的运行环境:bochs下安装freedos

在进行保护模式的运行环境配置前,先看了了下书上的代码,编译运行结果如下:nasm 3_pmtest1.asm -o pmtest1.bin,可以看到界面出现了红色的 p 字                  保护模式环境配置1:在网站http://bochs.sourceforge.net/guestos/freedos-img.tar.gz 上下载FreeDos,

2013-05-24 15:37:50 3577 2

原创 保护模式编程之(一)——分段机制与GDT/LDT

概述:若想理解操作系统程序中的启动相关的部分,必须要理解保护模式下的编程,而分段机制是保护模式编程下的基础。另外,由于实模式与保护模式的不同,对保护模式下的分段机制更需要注意。同时,这一部分的基本数据结构是以后理解代码跳转的基础,必须要熟练。1.段的定义        段是虚拟地址到线性地址转换的基础,段的特征有以下三个:段基址,段限长,段属性。这三个特征存储在段描述符(s

2013-05-24 10:51:31 4316

原创 CPL DPL RPL的区别 &&一致性代码段和非一致性代码段

概述:在谈论保护模式编程的时候,一直会有这样的困惑:为什么除了CPL和DPL还有RPL?什么时候高特权级不能访问低特权级?什么时候低特权级不能访问高特权级?一致性代码和非一致性代码有什么区别?等等这些问题,如果仅仅停留在知其然的级别,很容易会困惑,本文主要说明以上问题的答案和蕴涵在背后的原因。1.特权级       首先,了解以下操作系统的特权级    1)CPL是存寄

2013-05-24 09:47:01 3630 1

原创 实模式与保护模式解惑之(一)——二者的起源与区别

概述:实模式和保护模式是处理器发展的两个非常重要的阶段。这两个模式下的编程也有着显著的不同,弄明实模式与保护模式的区别是理解操作系统运行原理和编写操作系统的基础。本文主要讲解了实模式和保护模式的区别和保护模式的起源,侧重点在二者寻址方式上的差异。1.保护模式的起源    最开始的程序寻址是直接的“段:偏移”模式,这样的好处是所见即所得,程序员指定的地址就是物理地址,物理地址对程

2013-05-21 11:42:18 13224 2

转载 BIOS 工作流程解析

学习linux很长时间了,一直没有时间把经验和挖掘的一些技巧整理出来,这个暑假在家没事,整理了一些与大家分享。由于都是自己的理解和实验产物,所以肯定有些不当之处,期待交流指正!  这个系列文章将以Ubuntu探秘命名,内容涉及到整个开机流程及GNOME桌面的hack . 今天发表第一篇心得:BIOS到底干啥用?     BIOS(basic input/output system,基本输入输出

2013-05-19 16:09:43 1981

原创 linux shell if 条件表达式总结

概述:linux shell编程中,有很多表示比较/判断的条件表达式,本文对它们做了一个简要的总结1.字符串比较! 取反-n str     字符串 str 是否不为空 -z str     字符串 str 是否为空str1  = str2     str1是否与 str2 相同str1 != str2     str1是否与 str2 不同2.数值大小

2013-05-16 10:42:20 6867

原创 linux shell中特殊字符的意义$0 $1 $$ $# $@

linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出

2013-05-15 17:15:16 2690

原创 自己动手写操作系统之汇编基础——as86汇编和GNU as汇编简介与对比

概述:在自己动手写操作系统的时候,往往在开始阶段对汇编语言感到困难。汇编语言之所以会感觉困难,往往是既是因为偏底层,而我们平时接触的多为高级语言;另一方面是由于其平台相关性:C语言是通用的,但汇编不是。这就是说,intel和MIPS上的汇编语言是不同的,因为它们底层支持的机器指令集就不同,这是汇编向下的一方面;另一方面,向上,即使在一类处理器上,汇编语言也会因为编译器的不同而有所差别,这也正是本文

2013-05-15 10:18:14 6153

原创 汇编基础——常用寄存器及其用途

通用寄存器的主要用途寄存器的分类寄存器主 要 用 途通用寄存器数据 寄存器AX乘、除运算,字的输入输出,中间结果的缓存AL字节的乘、除运算,字节的输入输出,十进制算术运算AH字节的乘、除运

2013-05-14 19:50:08 2066 2

原创 Linux启动过程前传——前世BIOS与今生OS

概述:我们经常讨论操作系统的启动过程,但是却很少讨论操作系统启动之前的过程。BIOS除了开机自检,还完成了哪些工作?CPU厂家,BIOS厂家,OS厂家是如何协作从而保证计算机的运行的?如何保证硬件能认识操作系统,并且听从操作系统的指挥?所有boot sector的第一句可执行汇编语句往往是 mov ax,cs,此时,cs的值来自于哪里呢?是随机的吗?为何boot sector的汇编指令中第一个伪操

2013-05-14 16:47:20 3224

原创 查看linux设备文件系统类型的几种方法

概述:在进行文件系统的相关测试或者操作的时候,往往需要知道文件系统的相关类型。 在linux操作系统中,挂载是指将一个设备(通常是存储设备)挂接到一个已存在的目录上。我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。在实际情况下,我们可能需要在设备挂载之前或者之后查看设备的文件系统类型。1.mount命令hyk@hyk-l

2013-05-14 11:38:59 9307

原创 文件系统预备——磁盘管理

概述:要想了解文件系统,了解文件的载体——磁盘是相当必要的。本文主要为你介绍磁盘的相关概念,为文件系统的学习,打下基础。1.各个设备在linux中的文件名IDE硬盘/dev/hd[a-d]SCSI/SAT/USB硬盘/dev/sd[a-p]U盘/dev/sd[a-p]打印

2013-05-14 11:35:50 1447

原创 linux shell命令英文全称

概述:linux命令种类繁多,以致于我们经常忘记了某个命令的缩写,当然,cp,mv除外。知道一些命令的全称,有助于我们更好的理解和记忆相关命令1.文件夹的意义/bin = BINaries/dev = DEVices/etc = ETCetera/lib = LIBrary/proc = PROCesses/sbin = Superuser BINaries/tmp

2013-05-14 10:47:48 2342

原创 git config的使用

1.gitconfig的种类当我们安装好git软件包,或者着手在一个新的机子上使用git的时候,我们首先需要进行一些基本的配置工作,这个就要用到gitconfig。gitconfig是用于进行一些配置设置,有三种不同的方式来指定这些配置适用的范围:1)git config针对一个git仓库2)git config --global针对一个用户3)sudo git config

2013-05-13 16:08:50 4173

原创 如何利用git制作和提交patch

UNIX世界的软件开发大多都是协作式的,因此,Patch(补丁)是一个相当重要的东西,因为几乎所有的大型UNIX项目的普通贡献者,都是通过 Patch来提交代码的。作为最重要的开源项目之一,Linux,也是这样的。普通开发者从软件仓库clone下代码,然后写入代码,做一个Patch, 最后用E-mail发给Linux Kernel的维护者就好了。Git最初作为Linux的版本控制工具,提供了透

2013-05-13 15:39:23 2032

博客对应文件——makefiletest

makefile使用说明对应的测试文件,是本篇博文的测试C程序和文件

2013-09-07

正则表达式的测试文件

正则表达式简明教程 博客 的测试文档,下载此文档进行测试,进行情景学习

2013-04-20

KMP算法 C语言实现

用c实现的KMP算法,没有注释,不过程序逻辑清晰,适合了解算法的人观看

2012-10-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除