一、描述计算机的组成及其功能
冯.诺伊曼体系中,计算机有五大基本部件:控制器、运算器、存储器、输入设备、输出设备(I/0设备)。
实际应用中,计算机包括CPU(控制器和运算器)、存储器(Memory内存和Disk外存)、Input输入设备、Output输出设备。
1、CPU(控制器和运算器)
- 控制器:功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调各个部分能够正常工作。
- 运算器:计算机的核心。对数据进行各种算数运算和逻辑运算。即对数据进行加工处理。
2、存储器
存储器:狭义理解是计算机内存,广义理解是内部存储加外部硬盘。其主要作用是存储程序,各种数据,符号,控制命令等,并在处理器需要时提供所需要的信息。
包含RAM、ROM、cache。
- RAM:随机存取存储器,random access memory。存取数据速度较快,是人们常说的内存,作为操作系统或其他正在运行中的程序的临时的数据存储介质。为什么说是”临时”呢,跟存储器的工作方式有关,这种存储器是基于电来工作的,一旦断电,其上的数据会全部消失,不能永久存储。随机存取存储器又分为静态随机存储器static RAM(SRAM)和动态随机存储器dynamic RAM(DRAM),制作材料不同且DRAM比较复杂,但是功耗低,已成为大容量RAM的主流。
- ROM:read only memory image 只读存储器镜像,在这里我理解是人们所说的硬盘,工作方式是磁工作方式,可以永久存储数据。
- cache:cache存储器,由于cpu的读取数据速度和内存读取数据的速度差的很多,内存和硬盘又差了很多,为了弥补这种不足,诞生了cache存储器,电脑中为高速缓冲存储器,位于cpu和内存之间,规模较小,但速度很高。
3、I/O设备
- 输入设备:常见的输入设备:键盘、鼠标、磁带、磁盘、光盘等等。主要作用是将程序或原始数据、文字、字符、控制命令等信息输入到计算机中。
- 输出设备:常见的输出设备:终端CRT、显示器、打印机等等。主要作用是它把计算机处理原始数据的最后或者中间结果、各种数据符号、控制信息等结果返回输出并显示。
4、其他硬件设备
- 网卡、调制解调器、声卡、摄像头等等。
5、计算机的软件组成部分
- 系统软件:系统软件是负责管理计算机中各个独立的硬件,使得它们可以协调工作。系统软件可以让用户不需要关心底层硬件是如何工作的。一般来讲系统软件包括操作系统和一系列的基本工具如:编译器,数据库管理,存储器格式化,文件系统管理,用户身份验证,驱动管理,网络连接等方面的工具。
- 应用软件:就是为了某种用途而开发的软件,可以是一个程序文件,也可以是多个程序文件组成的集合,也可以是众多的独立的程序组成的庞大的系统。软件就不举例了,太多了。。
二、按系列罗列Linux的发行版,并描述不同发行版之间的联系和区别
1、Linux内核和发行版的关系
Linux发行版就是由Linux内核与各种常用软件的集合产品,如今全球大约有数百款的Linux发行版本。Linux内核指的是一个由Linus Torvalds负责维护,提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。
Linux发行版就是由Linux内核与各种常用软件的集合产品,如今全球大约有数百款的Linux发行版本。
Linux常见发行版
Linux发行版有三大主流分支:Debian、Slackware、Redhat,包含的主要发行版分别如下:
- Debian
- Ubuntu
Linux mint - Knopix
- Ubuntu
- Slackware
- S.u.S.E
SLES-SuSE Linux Enterprise
OpenSuSE
- S.u.S.E
- Redhat
- RHEL-RedHat Enterprise Linux
CentOS-Community ENTerprise - Fedore Core
- RHEL-RedHat Enterprise Linux
除了三大主流分支,还有两种比较流行的发行版:
- Gentoo
- ArchLinux
Linux发行版之间的关系
- Fedora是基于RHEL,CentOS,Scientific Linux, 和Oracle Linux的社区版本。相比RHEL,Fedora打包了显著的更多的软件包。其中一个原因是,多样化的社区参与Fedora的建设;它不只是一家公司。在这个过程中,CentOS用于活动,演示和实验,因为它是对最终用户免费提供的,并具有比Fedora的一个更长的发布周期(通常每隔半年左右发布一个新版本)。
- SUSE, SUSE Linux Enterprise Server (SLES), 和openSUSE 之间的关系类似于 Fedora, Red Hat Enterprise Linux, 和CentOS的关系。
- Debian是包括Ubuntu在内许多发行版的上游,而Ubuntu又是Linux Mint及其他发行版的上游。Debian在服务器和桌面电脑领域都有着广泛的应用。Debian是一个纯开源计划并着重在一个关键点上,稳定性。它同时也提供了最大的和完整的软件仓库给用户。
Linux发行版分类
Linux发行版都是基于同一内核,所以除了外观和名字不一样外,其他地方的区别不是很大,按用途大致分为桌面版和企业版:
- 桌面版:
Ubuntu、Debian、Fedora、CentOS、openSUSE等。由于安装了图像界面,界面美观、操作方便,比较适合新手,但相对于企业版来说较消耗资源。 - 企业版:
RHEL、CentOS、Debian、Ubuntu、openSUSE、SLES等。系统稳定性好,资源消耗较小,满足企业需求,但基本都是命令行界面,需要有一定的基础才能上手操作。
按照维护方式分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。
- 商业公司维护:
RHEL、CentOS、SLES等 - 社区组织维护:
Debian、Ubuntu等
linux各发行版特点
各发行版的思想,如图:
- Redhat,应该称为Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server,收费版本)、Fedora Core(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多 的Linux版本,甚至有人将Redhat等同于Linux,而有些老鸟更是只用这一个版本的Linux。所以这个版本的特点就是使用人群数量大,资料非 常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用, 但是Fedora Core的稳定性较差,最好只用于桌面应用。
- Debian,或者称Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范 的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch): stable, testing 和 unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经 过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是 稳定和安全性都非常的高。Debian最具特色的是apt-get / dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。Debian的资料也很丰富,有很多支持的社区,有问题求教也有地方可去:)
Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以这么说,Ubuntu就是 一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的 Linux桌面系统。根据选择的桌面系统不同,有三个版本可供选择,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的 Xubuntu。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。 - Gentoo,伟大的Gentoo是Linux世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点,这也是Gentoo 被称为最完美的Linux发行版本的原因之一。Gentoo最初由Daniel Robbins(FreeBSD的开发者之一)创建,首个稳定版本发布于2002年。由于开发者对FreeBSD的熟识,所以Gentoo拥有媲美 FreeBSD的广受美誉的ports系统 ——Portage包管理系统。
不同于APT和YUM等二进制文件分发的包管理系统,Portage是基于源代码分发的,必须编译后才能运行,对于大型软 件而言比较慢,不过正因为所有软件都是在本地机器编译的,在经过各种定制的编译参数优化后,能将机器的硬件性能发挥到极致。Gentoo是所有Linux 发行版本里安装最复杂的,但是又是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。 - 最后,介绍一下FreeBSD,需要强调的是:FreeBSD并不是一个Linux系统!但FreeBSD与Linux的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所采用的软件也比较类似,所以可以将FreeBSD视为一个Linux版本来比较。
FreeBSD拥有两个分支: stable和current。顾名思义,stable是稳定版,而 current则是添加了新技术的测试版。FreeBSD采用Ports包管理系统,与Gentoo类似,基于源代码分发,必须在本地机器编后后才能运 行,但是Ports系统没有Portage系统使用简便,使用起来稍微复杂一些。FreeBSD的最大特点就是稳定和高效,是作为服务器操作系统的最佳选 择,但对硬件的支持没有Linux完备,所以并不适合作为桌面系统。
3、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述
把几乎所有资源统统抽象为文件形式,包括硬件设备,甚至通信接口等,便于统一管理和定义;
对文件的操作有:open,read,write,close,delete,create
②由众多功能单一的程序组成
一个程序只做一件事,并且做好,保证了Linux内核的高效运行;
③ 组合小程序完成复杂任务
通过连接多个简单的程序实现复杂的功能;
④尽量避免和用户交互
更贴近编程,易于以编程的方式实现自动化任务;
⑤使用文本文件保存配置信息
修改配置信息只需要任意一款文本编辑器就可以进行。
4、说明Linux系统上命令的使用格式
Linux命令使用的格式:
# [COMMAND] [OPTIONS...] [ARGUMENTS]
OPTIONS: 用于启用或关闭命令的某个或某些功能。支持短线选:-c;长选项:--word
ARGUMENTS:命令的作用对象,想命令提供数据;
发起一命令:请求内核将某个二进制程序运行为一个进程;
程序 --> 进程
静态 --> 动态(有生命周期)
例如:ls -ld /var /etc
1、ifconfig
查看linux操作系统网卡等信息
[root@shaokang ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.200.6.175 netmask 255.255.255.0 broadcast 10.200.6.255
inet6 fe80::20c:29ff:fe64:20b4 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:64:20:b4 txqueuelen 1000 (Ethernet)
RX packets 2682459 bytes 417126321 (397.8 MiB)
RX errors 0 dropped 54 overruns 0 frame 0
TX packets 2654381 bytes 220078350 (209.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2、echo
回显命令
echo [SHORT-OPTION]... [STRING]...
-n:禁止自动添加换行符号
-e:允许使用转义符
\n:换行
\t:制表符
示例一:输出hello world 使用-n不换行
[root@localhost ~]# echo -n hello world
hello world[root@localhost ~]#
示例二:使用-e和\t,在hello和world之间插入一个制表符
[root@localhost ~]# echo -e "hello\tworld"
hello world
[root@localhost ~]#
3、tty
查看当前终端数量
[root@localhost ~]# tty
/dev/pts/0
4、startx
在虚拟中断下启用图形界面
5、export
环境变量的声明和复制,并在之后的子进程中生效
export name=VALUE
示例:对变量name赋值tom
[root@localhost ~]# export name=tom
[root@localhost ~]# echo $name
tom
[root@localhost ~]# bash
[root@localhost ~]# echo $name
tom
6、PWD
显示当前目录
示例:
[root@localhost sysconfig]# pwd
/etc/sysconfig
7、history
命令历史
-d OFFSET:删除第OFFSET条命令
-c:清楚历史命令
#:显示历史中最近的#条命令
-a:手动追加当前会话缓冲区的命令历史至历史文件中
示例:显示最近的3条命令
[root@localhost sysconfig]# history 3
1014 pwd
1015 bash
1016 history 3
8、shutdown,poweroff,reboot
shutdown 以一种安全的方式关闭系统,所有登入的用户都将得到通知,并且在TIME到达前的5分钟内新用户将被阻止登入。
shutdown [OPTION]... TIME [MESSAGE]
-r:reboot
-h:halted或者powered off
-H:halted
-P:powered off
-c:取消shutdown
-k:只是发送警告信息和拒绝新用户登入。并不关闭系统。
TIME
now:立刻
+m:从命令提交开始,过多久之后,如+5
hh:mm:指明具体时间
poweroff用来关闭计算机并切断电源。是reboot的一个软连接
reboot 重启
-f,--force:强制关闭系统
-p,--poweroff:调用halt命令
9、hwclock
hwclock 查询和设置硬件时钟
-r:读取硬件时钟信息
--set:设置硬件时钟
-s:硬件时钟同步系统时间
-w:系统时间同步硬件时钟
示例:
[root@localhost local]# date
2018年 10月 20日 星期二 18:21:03 CST
[root@localhost]# hwclock
2017年07月10日 星期一 20时52分08秒 -0.397741 秒
[root@mysql local]# hwclock -s
[root@mysql local]#
date [OPTION]... [+FORMAT] 显示系统时间
FORMAT:格式符号
%D
%F
%T
date [MMDDhhmm[[CC]YY][.ss]] 设置系统时间
示例:
[root@localhost]# date
Sat Dec 10 17:06:37 CST 2016
[root@localhost]# date +%D
12/10/16
[root@localhost]# date +%T
17:05:51
示例:修改系统时间
[root@mysql local]# date 102018202015.30
2015年 10月 20日 星期二 18:20:30 CST
[root@mysql local]# date
2015年 10月 20日 星期二 18:20:31 CST
5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的
linux系统分为内部命令和外部命令两种;
可以通过type命令,来查看linux系统命令是内部命令还是外部命令。
内部命令的帮助信息,通过" ~]#help 命令",来获取帮助。
外部命令的帮助信息,有一下几种:
1、~]# 命令 --help
2、~]# man 命令
3、~]# info 命令
4、查看程序自带的帮助信息,通常在/usr/share/doc/目录下。
5、官方文档
6、google
man文档的章节:
1、用户命令帮助信息
2、系统调用帮助信息
3、libray库调用帮助信息
4、特殊文件(设备文件)帮助信息
5、配置文件的格式帮助信息
6、游戏使用帮助信息
7、杂项
8、管理工具及守护进程帮助信息
6、请罗列Linux发行版的基础目录名称命名法则及功用规定
/bin:所有用户可用的基本命令程序文件
/sbin:供系统管理员使用的工具程序
/boot:引导加载器必须用到各静态文件:kernel,initramfs(initrd),grub等
/dev:存储特殊文件或设备文件
设备有两种类型:字符设备(线性设备)、块设备(随机设备):
键盘是最简单的字符设备,硬盘是块设备
/etc:系统程序的配置文件,只能为静态
/home:普通用户的家目录的集中位置:一般每个普通用户的家目录默认为此目录下与用户名同名的子目录/home/USERNAME
/root:管理员的家目录,可选路径
/lib:为系统启动或根文件系统上的应用程序(/bin,/sbin)提供共享库,以及为内核提供内核模块
libc.so.<em>:动态链接的C库
ld</em>:运行时链接器/加载器
modules:用于存储内核模块的目录
/lib64:64位系统特有的存放64位共享库的路径;
/media:便携式设备挂载点,cdrom,floppy等
/mnt:其他非主要文件系统的临时挂载点
/opt:附加应用程序的安装位置,可选路径
/srv:当前主机为服务提供的数据,
/tmp:为哪些会产生临时文件的程序提供的用于存储临时文件的目录,可供所有用户执行写入操作,有特殊权限。
/usr:/user Hierarchy,全局共享的只读数据路径
/bin,/sbin:不是系统启动时,必须启动的程序
/lib,/lib64:
incloude:C程序头文件
share:命令手册页和命令自带文档等架构特有的文件存储位置
local:另一个层级目录
X11R6:x-windows程序的安装位置
src:程序源码文件的存储位置
/user/local:local hierarchy,让系统管理员安装本地应用程序,也通常用于安装第三方程序。
/var:/var hierarchy,存储常发生变化的数据目录
cache Application cache data(应用程序缓存文件)
lib Variable state information(变量状态信息)
local Variable(变量的) data for /usr/local
lock Lock files(锁文件)
log Log files and directories
opt Variable data for /opt
run Data relevant(有关的) to running processes
spool Application spool data
tmp Temporary(暂时的) files preserved(保藏的) between system reboots
/proc:虚拟文件系统,为内核及进程存储其相关信息;它们多为内核参数,例如net.ipv4.ip_froward,虚拟为net/ipv4/ip_forward,存储于/proc/sys,因此完整路径为/proc/sys/net/ipv4/ip_forward
/sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径,其主要作用在于为管理linux设备提供一种统一模型的接口,(linux kernel2.6以后才出现的)