我是对我读的那本书作的笔记,以后会添加自己的分析。
第一章
我过去也看过这本书,但是很多没有理解,有很多忘记了,故今天又重新看,而且把笔记写下!
GUN的主要精神是软件源代码应该自由流通!
GUN是GUN‘s Not Unix的缩写,是由自由软件基金会(Free Software Foundation,FSF)的董事长Richard M.Stallman(RMS)于1984年发起的。GUN制定了(The General Public License,GUN通用公共准许证)
自由软件的自由包括:使用的自由(可以不受任何限制来使用软件),研究的自由(可以研究软件运作方式并使其合适个人需要),散布的自由(可以自由地复制此软件散布给他人),改良的自由(可以自行改良软件并散布改良后的版本以使全体用户受益)。
1991年8月,一位来自芬兰赫尔辛基大学的年轻人Linus Benedict Torvalds,对外发布了一套全新的操作系统Linux
黑
客是指计算机技术上的行家或热衷于解决问题,克服限制的人。黑客乐意解决和发现新问题,并乐意相互帮助。他们相信计算机中充满各种各样有趣的问题,并且这
些问题一旦被自己解决,他们愿意让解决方法被所有人共享。他们感觉发现问题,解决问题,共享答案的过程是有趣的,并着迷地去做。他们将解决问题视为乐趣,
相信技术应该是自由的,应该被所有人共享。黑客是对拥有高科技和崇高理念的孜孜不倦的计算机爱好者,工作者的尊称。
第二章
现代操作系统都具有:并发,共享,虚拟,异步的特性,同时还具有:存储器管理,处理器管理,设备管理,文件管理,用户接口。
Run_Time Library,RTL,运行时函数库。
Bochs是一个x86 PC的模拟器。
Wine/DOSEmu是先把把原有系统的应用软件通过他们把原操作系统API,那些软件,再经过模拟操作系统的API,成为模拟操作系统应用软件。
软件的美在于它的功能,在于它的内部结构。对用户来说,通过直观,简单的界面呈现出具有恰当特性的程序就是美。对于软件设计者来说,被简单,直观地分割,并具有最小内部耦合的软件结构就是美!
第三章
是DOS下的自由源代码的保护模式C语言编译器。
还有RHIDE是DJGPP的图形界面。
学make和ld还有nasm
Dos下一个汇编程序
;---------------------------------------------------------------------
.model small
.stack 100h
.data
Welcome db 13,10,'Hell,world!',13,10,'$'
.code
start:
mov ax,@data
mov ds,ax
lea dx,welcome
mov ah,9
int 21h
; end the program
mov ah,4ch
int 21h
end start
;--------------------------------------------------------------------
用masm hello.asm
link hello.obj就可以了。
Linux下和它下面一样功能的程序
section .text
global main
main:
mov eax,4 ;4号调用
mov ebx,1 ;ebx送1表示stdout
mov ecx,msg ;字符串的首地址送入ecx
mov edx,14 ;字符串的长度送入edx
int 80h ;输出字串
mov eax,1 ;1号调用
int 80h ;结束
msg:
db"Hello World!",0ah,0dh
用下面的命令就可以了!
[gaowei@localhost nasm]$ nasm -f elf hello.asm
[gaowei@localhost nasm]$ ls
hello.asm hello.o
[gaowei@localhost nasm]$ gcc -o hello hello.o
[gaowei@localhost nasm]$ ls
hello hello.asm hello.o
[gaowei@localhost nasm]$ ./hello
Hello World!
为
了辨别CPU的类型,需要使用CPUID汇编指令(CPUID是一个特殊的汇编指令,其机器0FHA2H。如果编译器不支持CPUID指令,可以直接输入
CPUID的机器码)。该指令可以被以下CPU识别:Intel 486以上的CPU。Cyrix M1以上的CPU。AMD Am468以上的CPU。
1.判断CPU的厂商
通过CPUID汇编指令,返回CPU OEM字符串,从而判断CPU厂商,规则如下:
先让EAX=0,再调用CPUID。
Inel的CPU将返回:
EBX:756E6547H 'Genu'
EDX:49656E69H 'ineI'
ECX:6C65746EH 'ntel'
EBX,EDX,ECX连接起来是"GenuineIntel",含义为真正的Intel。
Cyrix的CPU将返回:
ENX:43797269H
EDX:78496E73H
ECX:74656164H
"CyrixInstead","Cyrix来代替"
AMD的CPU将返回:
EBX:41757468H
EDX:656E7469H
ECX:63414D44H
"AuthenticAMD",可信的AMD。
2.判断CPU类型
先让EAX=1,再调用CPUID,EAX的8~11位就表明CPU类型。例如:
3-368
4-468
5-Pentium
6-Pentium Pro Pentium II
2-Dual Processors
EDX的第0位:代表有无FPU。
EDX的第23位:CPU是否支持IA MMX,这点很重要,如果想用57条新增的指令,要先检查这一
位,否则Windows就会出现“该程序执行了非法指令,将被关闭”。
3.专门检测是否P6架构
先让EAX=1,再调用CPUID,如果AL=1,就是Pentium Pro或Pentium II。
4.专门检测AMD的CPU信息
先让EAX=80000001H,在调用CPUID,如果EAX=51H,就是AMD K5;如果EAX=66H,则是K6。
EDX第0位:是否有FPU。
EDX第23位:CPU是否支持MMX。
在PC中,彩色显示器的字符屏幕显存起始地址在0xB8000000处,单色显示器的视频缓冲区起
始地址在0xB8000000处。
阅读(1455) | 评论(0) | 转发(0) |