Keep Learning

伪程序员记录点滴

VIM Tips中文版

从Vim.cn Google groups上面摘抄的文章,目前似乎没有了只剩下了google快照,把文章转载到这里,给自己以后参考。

Arch指定DNS服务器

学校里提供了IPv6的接入,但是之前使用的一直是学校提供的DNS服务器,使用的是IPv4的方式。在google上的IPv6的hosts文档上知道有IPv6的DNS服务器的地址,于是上网找了在Arch上设置DNS服务器的地址,简单记录如下。

修改/etc/resolv.conf的可修改性

由于学校使用的是DHCP的方式获取IP地址,Arch上使用的DHCP的客户端是dhcpcd,在默认情况下该服务器将会将获取的DNS服务器的地址填入到/etc/resolv.conf文件中。因此如果指定DNS服务器的方式,可以将该文件的文件设置为不可写。通过使用chattr +i /etc/resolv.conf的方式可以将该文件设置为不可修改的。
如果在网络的环境不变的情况下,使用该种方式便可以解决,但是由于在宿舍和在实验室的环境,这两个网络环境下学校指定的DNS服务器是不一样的,在使用校内提供的服务器时,还是用学校的DNS服务器便可以了,因此这种方法对自己而言还不是很合适。于是出现下面的方法。

深入理解计算机系统-笔记 Ch2

计算机的表示法是用有限数量的位来完成对一个数字的编码,因此当结果太大时,将会溢出(overflow),整数运算具有结合性但是浮点数的运算是不可结合的。附录中有演示了书中提到的溢出和浮点数结合的c源代码。

gcc编译选项指定c语言的版本:

c版本 GCC命令行选项
GNU89 无, -std=gnu89
ANSI, ISO C90 -ansi, -std=c89
ISO C99 -std=c99
GNU 99 -std=gnu99

深入理解计算机系统-笔记 Ch1

计算机系统漫游

信息就是上下文
由gcc处理的程序包括四个步骤,这四个步骤的处理程序分别是:预处理器、编译器、汇编器、链接器,对应的四个阶段分别是:预处理阶段(将头文件、预处理指令插入到源代码中),编译阶段(将c文件生成为汇编语言文件),汇编阶段(将汇编语言翻译成为机器文件),链接阶段(将各个目标代码合并生成一个可执行程序)。

了解编译系统的工作流程的好处:

  • 优化程序性能;
  • 理解链接时出现的错误;
  • 避免安全漏洞。

UTICODE编码记录

今天查看师兄以前写的笔记,中间看到一个UNICODE和UTF-8编码的内容,于是在网上找了下资料,现在对这点有一点点了解,主要参考了阮老师的这篇文章,先记录下笔记吧。

UNICODE编码由来

在20世纪60年代,美国指定了ASCII编码体系,将英语字符与二进制位的关系做了统一的规定,这就是ASCII编码,并且一直沿用到今天。ASCII一共规定了128个字符的编码,只占用了一个字节的后7位,最高位始终为0。

但是不同的国家的字符符号不一样,为了适应这种情况,就出现了UNICODE。
UNICODE目前可以容纳100多万个符号,每个符号的编码都不一样。

Nasm摘要

还是为了看这本书,又找了下nasm的学习资料,在网上找到了这个网址,应该是nasm的官方参考手册,重点打算看下前面三章,做下笔记。

介绍

什么是NASM

NASM是一种面向80x86和x86-64的新型汇编语言,其出现主要是为了可移植性和可修改性。