近几天一直学习后面的知识,不知道基础知识掌握的如何,所以回顾一下。
1、计算机基础知识回顾
计算机的硬件构成以及Linux的发展史就不说了,没事可以当故事阅读一下,挺精彩的。
首先回想一下操作系统(operation system)或者说内核(kernel)的角色。
大概画了一下,操作系统或者说内核控制硬件,任何调用硬件的操作都要经过内核的允许,而在此之上是库文件,库文件有很多模块,本来这些模块可以放进内核里面的,但是这样的话,内核自身就会很臃肿,直接做成模块放入库文件吧!好处多多。API,应用程序的开发或者说是编程接口,可以调用库文件,进行软件的开发。
这里要注意一点,就是如果你在一台x86架构的计算机上开发软件,之后拿到x86_64架构上运行,或者Power,Powerpc等等,反正不是x86的计算机(即使是另一台x86,那库文件也要相似才可以)那么,不出意外的话,是无法进行再次编译的,也无法运行的!因为,在开发的过程中,操作系统的内核参与了,而且调用硬件设备,这些都会影响开发的结果!
库也是系统调用与内核联系的一条途径。库的上面是shell,shell上面是应用程序,应用程序可以说是存在与用户空间的,此时shell成了用户与系统交互的通道,shell意义很大啊!
init是系统自身运行起来开始启动的脚本文件,很多系统所需要的进程(可以称为守护进程)都是要启动的,这样系统才能正常的运行,所以init是不需要库、shell作为媒介的。
2、在装操作系统前,硬盘要分区、格式化、挂载,格式化的过程其实就是创建文件系统的过程;除此之外,还要选择语言、时区、键盘、输入法、选择程序包。这里顺便提一句,有些发行版的Linux是支持自动化安装的,如Centos6,它的安装程序是 anaconda,配置文件 kickstart。
3、Linux内核的版本号。过去有种说法,内核版本奇数是测试版,偶数是稳定版,现在不讲究这个啦!但还是有别的说法,如 .rc.d 是release candidate版,就是发行预选版,如果没有意外,之后便会作为稳定本发布。mainline 主线版本;stable 稳定版本;longterm 长期维护版(就是说,有一些很老的版本依旧在维护,因为这些版本发布时曾进行重大的改进,所以可能会有一直用的用户,这样就会一直更新,而且,如果在后续的发展中发现了以前没有发现的bug,也会修复)。
4、linux的终端类型
# tty 查看
1)虚拟终端 /dev/tty
设备端使用,文字终端、Xwindows界面,即图形终端 Ctrl+Alt+Del+F1~F7
2)串行终端 /dev/ttyS#
3)物理终端 /dev/console
一般作为控制台使用,只是存在与开机的时候
4)模拟终端(伪终端) /dev/pts
图形模式、远程登录
这里顺便说下,从文字界面转换到图形终端,可以使用# startx & 当前前提是已经安装startx命令,但要注意,一旦执行命令,在命令执行成功并且没有停止之前,命令提示符是不会被释放的,所以一旦命令执行错误,可能会遇到命令提示符一直不出来,所以将 & 让该命令在后台执行,即使执行失败,Enter即可找到命令提示符,继续进行其他命令。
5、# tty 显示当前终端对应的设备文件 # ps -l 也可以查看
# who 显示当前成功登录系统的用户及其信息 # w 也可以查看
6、Linux系统上面一些哲学思想:
1)一切皆文件
2)由众多目的单一的程序组成;一个程序只能做一件事,且做好
3)组合目的单一的程序完成复杂任务
4)将来避免与用户交互
5)使用文本保存配置信息
6)提供机制,而非策略
其中第五点挺重要的,因为若是一个程序出现错误,根据提示,直接更改文件的文本内容就可以搞定,是不是很方便!当然,前提是要看懂!
6 转换为二进制 110
1k是8byte
0000 0110 只占三位
13 1101
0000 1101 占四位
7、GUI
CLI
bsh
csh
ksh
bask
最常用的为bash
在bash中,用户分为管理员和普通用户