计算机组成和Linux基础介绍


计算机的组成及其功能

计算机由硬件系统和软件系统组成,而硬件系统又由CPU(运算器+控制器)、存储器(内存、硬盘、光盘等)、输入设备(键盘、鼠标等)、输出设备(显示器、打印机等)组成,软件系统由系统软件(通过内核与硬件交互)和应用软件(通过系统调用与硬件交互)组成。


Linux内核功能及作用

内核是在硬件之上,负责硬件与其他应用软件进行交互的特殊软件。

1、进程管理

        内核负责创建和销毁进程, 并处理它们与外部世界的联系(输入和输出). 不同进程间通讯(通过信号, 管道, 或者进程间通讯原语)对整个系统功能来说是基本的, 也由内核处理. 另外, 调度器, 控制进程如何共享 CPU, 是进程管理的一部分. 更通常地, 内核的进程管理活动实现了多个进程在一个单个或者几个 CPU 之上的抽象.

2、内存管理

        计算机的内存是主要的资源, 处理它所用的策略对系统性能是至关重要的. 内核为所有进程的每一个都在有限的可用资源上建立了一个虚拟地址空间. 内核的不同部分与内存管理子系统通过一套函数调用交互, 从简单的 malloc/free 对到更多更复杂的功能.

3、文件系统

        Unix 在很大程度上基于文件系统的概念; 几乎 Unix 中的任何东西都可看作一个文件. 内核在非结构化的硬件之上建立了一个结构化的文件系统, 结果是文件的抽象非常多地在整个系统中应用. 另外, Linux 支持多个文件系统类型, 就是说, 物理介质上不同的数据组织方式. 例如, 磁盘可被格式化成标准 Linux 的 ext3 文件系统, 普遍使用的 FAT 文件系统, 或者其他几个文件系统.

4、设备控制

        几乎每个系统操作最终都映射到一个物理设备上. 除了处理器, 内存和非常少的别的实体之外, 全部中的任何设备控制操作都由特定于要寻址的设备相关的代码来进行. 这些代码称为设备驱动. 内核中必须嵌入系统中出现的每个外设的驱动, 从硬盘驱动到键盘和磁带驱动器.

5、网络

        网络必须由操作系统来管理, 因为大部分网络操作不是特定于某一个进程: 进入系统的报文是异步事件. 报文在某一个进程接手之前必须被收集, 识别, 分发。系统负责在程序和网络接口之间递送数据报文, 它必须根据程序的网络活动来控制程序的执行. 另外, 所有的路由和地址解析问题都在内核中实现.


Linux常见发行版

以维护方式来划分为商业公司发行版和社区组织发行版,商业公司发行版以Redhat为代表,社区组织发行版以Debian为代表;Redhat系列有Redhat Enterprise Linux(企业版)\Fedora Core(桌面版)\CentOS(社区版),Debian系列有Debian、Ubuntu。另外还有S.u.S.E、Gentoo、Arch等发行版,其中Gentoo是基于portage 进行包管理,源码编译各个软件,由于是本地源码编译所以能将硬件性能发挥到极致;如果想更多的了解Linux,那么可以通过编译安装Arch linux来了解更多信息。


常见开源协议GPL\LGPL\BSD\Apache的区别

开源:提供源代码;

GPL:General Public License,亦是针对copyright(版权)提出的copyleft。它有多个版本GPLv1、GPLv2、GPLv3。其中GPLv1因为要求使用了相关 GPL 软件源码的软件也必须遵循GPL规定,公布源码,要求过于严格限制了自由软件的发展。

LGPL:Lesser GPL,是相比GPL规则相对宽松的 GPL 规定。

BSD:BSD许可证就宽松许多了,一样是只需要附上许可证的原文,不过比较有趣的是,它还要求所有进一步开发者将自己的版权资料放上去,所以拿到以BSD许可证发行的软件可能会遇到一个小状况,就是这些版权资料许可证占的空间比程序还大。

Apache:该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。 需要满足的条件也和BSD类似: 需要给使用代码的用户一份Apache Licence,如果你修改了代码,需要在被修改的文件中说明。


Linux的哲学思想

        1、一切皆文件:把几乎所有资源统统抽象为文件形式;包括硬件设备,甚至通信接口等;

                通过对文件的open(), read(), write(), close(), delete(), create()进行各种操作

        2、 Linux系统由众多功能单一的程序组成;一个程序只做一件事,并且做好;通过组合小程序完成复杂任务;

        3、尽量避免的捕捉用户的接口,尽量避免跟用户交互,运行完某个程序时直接输出结果,——目标:易于以编程的方式实现自动化任务;

        4、使用文本文件保存配置信息,便于修改某些配置功能来实现自动化;


Linux的目录结构及目录结构命令规范

linux的目录结构就犹如树根一样,从一个根开始不断的向地下衍生--越来越多,越来越密,越来越细

/              根目录

/root       超级用户家目录

/opt        第三方软件安装目录

/proc      存放进程的文件目录,是虚拟文件夹不在硬盘中存放

/sys        存放系统硬件信息

/sbin       二进制文件目录

/usr        存放二进制程序和一些系统相关的文件

/home    存放普通用户家目录

/tmp        存放临时数据

/dev        存放设备文件

/mnt        临时挂载目录

/lib           存放库文件

/lib64       存放64位库文件

/etc           存放一些配置文件

/bin           二进制文件目录

/boot        存放引导操作系统的文件还有内核(kernel)

/media      媒体挂载目录

/var            日志文件目录


你可能感兴趣的:(计算机组成和Linux基础介绍)