近几天一直学习后面的知识,不知道基础知识掌握的如何,所以回顾一下。

  1、计算机基础知识回顾

  计算机的硬件构成以及Linux的发展史就不说了,没事可以当故事阅读一下,挺精彩的。

  首先回想一下操作系统(operation system)或者说内核(kernel)的角色。

   wKiom1iAzfbyheQxAABDntYOoT8912.png

  大概画了一下,操作系统或者说内核控制硬件,任何调用硬件的操作都要经过内核的允许,而在此之上是库文件,库文件有很多模块,本来这些模块可以放进内核里面的,但是这样的话,内核自身就会很臃肿,直接做成模块放入库文件吧!好处多多。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中,用户分为管理员和普通用户