(一)Linux基础(1)

1、计算机的组成及其功能。
计算机由如下四部分组成:
一、中央处理器(CPU),CPU又由运算器和控制器构成
CPU的功能主要是解释计算机指令以及处理计算机软件中的数据。
控制器(Control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工做及内存与外设的访问等。
运算器(Datapath):运算器的功能是对数据进行各类算术运算和逻辑运算,即对数据进行加工处理。前端

二、存储器(Memory):存储器的功能是存储程序、数据和各类信号、命令等信息,并在须要时提供这些信息。例如计算机的内存。linux

三、输入设备(Input system):输入设备是计算机的重要组成部分,输入设备与输出设备合称为外部设备,简称外设,输入设备的做用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。常见的输入设备有键盘、鼠标器、光电输入机、磁带机、磁盘机、光盘机等。程序员

四、输出设备(Output system):输出设备与输入设备一样是计算机的重要组成部分,它把外算机的中间结果或最后结果、机内的各类数据符号及文字或各类控制信号等信息输出出来。微机经常使用的输出设备有显示器、打印机、激光印字机、绘图仪及磁带、光盘机等。编程

2、内核功能以及做用ubuntu

完整的操做系统(OS)由kernel(内核)加Application(应用程序)组成
狭义的OS就指内核(kernel),内核的做用以下:
(一)Linux基础(1)
内核将硬件封装,硬件规格被隐藏起来
内核将硬件的接口抽象成为系统调用
一、进程管理
 内核负责建立和销毁进程, 并处理它们与外部世界的联系(输入和输出). 不一样进程间通信(经过信号, 管道, 或者进程间通信原语)对整个系统功能来讲是基本的, 也由内核处理. 另外, 调度器, 控制进程如何共享 CPU, 是进程管理的一部分. 更一般地, 内核的进程管理活动实现了多个进程在一个单个或者几个 CPU 之上的抽象.
二、内存管理
 计算机的内存是主要的资源, 处理它所用的策略对系统性能是相当重要的. 内核为全部进程的每个都在有限的可用资源上创建了一个虚拟地址空间. 内核的不一样部分与内存管理子系统经过一套函数调用交互, 从简单的 malloc/free 对到更多更复杂的功能.
三、文件系统
 Unix 在很大程度上基于文件系统的概念; 几乎 Unix 中的任何东西均可看做一个文件. 内核在非结构化的硬件之上创建了一个结构化的文件系统, 结果是文件的抽象很是多地在整个系统中应用. 另外, Linux 支持多个文件系统类型, 就是说, 物理介质上不一样的数据组织方式. 例如, 磁盘可被格式化成标准 Linux 的 ext3 文件系统, 广泛使用的 FAT 文件系统, 或者其余几个文件系统.
四、设备控制(驱动程序)
 几乎每一个系统操做最终都映射到一个物理设备上. 除了处理器, 内存和很是少的别的实体以外, 所有中的任何设备控制操做都由特定于要寻址的设备相关的代码来进行. 这些代码称为设备驱动. 内核中必须嵌入系统中出现的每一个外设的驱动, 从硬盘驱动到键盘和磁带驱动器.
五、网络功能
 网络必须由操做系统来管理, 由于大部分网络操做不是特定于某一个进程: 进入系统的报文是异步事件. 报文在某一个进程接手以前必须被收集, 识别, 分发. 系统负责在程序和网络接口之间递送数据报文, 它必须根据程序的网络活动来控制程序的执行. 另外, 全部的路由和地址解析问题都在内核中实现.小程序

3、常见Linux的发行版,不一样发行版之间的联系与区别。
主流发行版以下
1.Debian 它的分支:Ubuntu->mint\
ubuntu: 基于Debian二次开发的开源Linux操做系统,主要针对桌面和服务器。
mint:是基于ubuntu的Linux发行版,致力于桌面系统,对我的用户来讲更加的美观和高效。windows

2.Slackware 它的分支:S.u.S.E->SLES,OpenSUSE
S.u.S.E: 是基于slackware二次开发的一款Linux,也是针对于商业桌面、服务器。
SLES:企业服务器操做系统,能够和微软的系统互相兼容。
OpenSuSE:由S.u.S.E发展而来,主要用于桌面环境,用户界面很是的华丽,性能良好。
3.RedHat 它的分支RedHat 9.0-> RedHat Enterprise Linux:RHEL->CentOS:Community Enterprise OS ;Fedora
RHEL:RedHat公司发布面向企业的Linux操做系统。
CentOS:基于RedHat提供的可自由使用源代码的Linux版本,至关于RHEL的山寨版,主要是开源、免费,特有的社区文化促进CentOS不断发展完善,其本质内容上和RHEL没有什么区别
Fedora:能够看作是RedHat方面的一个测试版本,主要是针对新的技术测试提供一个系统平台,并且版本更新迭代很是的快。
4.Gentoo:基于linux的自由操做系统,它能为几乎任何应用程序或需求自动地做出优化和定制。追求极限的配置、性能,以及顶尖的用户和开发者社区,都是Gentoo体验的标志特色,尤为很是喜欢使用Gentoo的系统版本。
5.ArchLinux :以轻量简洁为设计理念的Linux发行版。其开发团队秉承简洁、优雅和代码最小化的设计宗旨。 发行版之间的联系与区别
联系:全部的版本型号,不管是何种系统均采用的是Linux的内核,都须要遵循GNU的GPL协定,也就是通俗意义上的GNU/Linux。
区别:不一样的发行版系统各自的版本号均不一样都有本身独特的版本号信息
例如:
RHEL:5.x,6.x,7.x
Fedora 23
Debian:8.x
OpenSuSE:13.x
同时虽然底层Linux内核同样,但封装后携带的库以及应用程序各不相同,不一样的包管理器(SLES、Fedora、openSUSE、centos、RHEL使用rmp包管理系统,包文件以RPM为扩展名;Ubuntu系列,Debian系列使用基于DPKG包管理系统,包文件以deb为扩展名。)
Debian: dpkg程序包管理器,前端管理工具 apt-get Ubuntu继承了这个管理法则) 包格式deb
ReadHat: rpm管理包, 前端管理工具yum-->新一代叫dnf CentOS继承 包格式rpm
S.u.S.E: rpm,zyppercentos

4、常见的开源协议(GPL,LGPL, BSD,Apache等)以及开源协议的区别
GPL(GNU通用公共许可证): General Public License
大多数软件许可证决意剥夺你共享和修改软件的自由。相比之下,GNU通用公共许可证试图保证你共享和修改自由软件的自由。——保证自由软件对全部用户是自由的
为了保护你的权利,咱们须要做出规定:禁止任何人不认可你的权利,或者要求你放弃这些权利。若是你修改了自由软件或者发布了软件的副本,这些规定就转化为你的责任。
例如,若是你发布这样一个程序的副本,无论是收费的仍是免费的,你必须将你具备的一切权利给予你的接受者;你必须保证他们能收到或获得源程序;而且将这些条款给他们看,使他们知道他们有这样的权利。服务器

LGPL: Lesser GPL
任何程序员在写程序时 调用了库接口不用开源 。网络

BSD许可协议(Berkeley Software Distribution license)是自由软件中使用最普遍的许可协议之一
一、若是二次发布的产品中包含源代码,则在源代码中必须带有原来的代码中的BSD协定;
二、若是二次发布产品是二进制格式的库或程序,则须要在发布的文档或版权声明中说明包含原来的代码中的BSD协定;
三、不能够用开源代码的做者或组织,以及原来的产品的名字作市场推广;
跟其余条款相比,从GNU通用公共许可证(GPL)到限制重重的著做权(Copyright),BSD许可证比较宽松,甚至跟公有领域更为接近。
BSD许可证被认为是copycenter(中间著做权),介乎标准的copyright与GPL的copyleft之间。GPL强迫后续版本必须同样是自由软件,BSD的后续版本能够选择要继续是BSD或其余自由软件条款或封闭软件等等。
许可证文本被认为遵循公有领域,因此能够不受限制地修改。
遵照BSD License的软件,容许用做商业用途,甚至可按照专属许可证进行再发布。
自由软件做者能够方便地采用BSD许可证下的软件,从而跟GPL下的做品融合。
BSD许可证并不容许受让方将其删除或替换为其余许可证。
以BSD许可证受权的软件派生著做,都必需要包含一段文字以交代源代码的来源。GNU工程将这个称为“使人感到不舒服的BSD交代条款”(obnoxious BSD advertising clause)。

Apache(协定): Apache Software Foundatin Apache软件组织基金会
Apache许可证(Apache License),是一个由Apache软件基金会发布的自由软件许可证,最初为Apache http服务器而撰写。Apache许可证要求被受权者保留著做权和放弃权利的声明,但它不是一个反著做权的许可证。
Apache许可证是宽容的,由于它不会强制派生和修改产物使用相同的许可证进行发布(与一些著做权许可证不一样,参见比较)。但它仍然要求对全部未修改的部分应用相同的许可证,而且在每一个许可文件中,必须保留再分发代码中的任何原始著做权,专利,商标和归属通知(不须要包括任何部分的派生做品);而且在每一个更改的许可文件中,都必须添加一条通知,说明对该文件进行了更改。

若是声明文本文件做为原始做品发布的一部分包含在内,则派生做品必须在包含该通知文本文件的可读副本,能够是文档或显示在软件中。

声明文件的内容不会修改许可证,由于它们仅用于提供信息,而且能够在许可证文本中添加更多属性声明,前提是这些声明不能被理解为修改许可证。修改可能有适当的著做权声明,并可能为修改提供不一样的许可条款。

除非另有明确规定,不然许可证持有者向受权者提交的任何文稿将根据许可证的条款进行,没有任何条款和条件,但这并不排除与受权者有关的这些贡献有单独的协议。
Apache软件基金会与自由软件基金会都赞成Apache许可证属于自由软件许可证,且兼容于第三版的GNU通用公共许可证,不过,双方也都赞成,初版与第二版的GNU通用公共许可证并不兼容于Apache许可证。

5、Linux的哲学思想
一、一切皆文件:
把几乎全部的资源通通抽象为文件形式;包括硬件设备,甚至通讯接口等;
open(),read(),Write(),close(),delete(),create()
硬件设备也可经过文件表示:
物理终端:/dev/console
虚拟终端:/dev/tty# [1-6] #表示数字1到6之间
串行终端:/dev/ttyS#
伪终端:/dev/pts/#
二、由众多功能单一的程序组成;一个程序只作一件事,而且作好;
组合小程序完成复杂任务;
三、尽可能避免跟用户交互;
目标:易于以编程的方式实现自动化任务;
四、使用文本文件保存配置信息;

6、linux目录结构以及目录结构命名规定
目录结构是为了将众多的文件有效的组织起来
Linux目录是一个倒置树状结构
目录:路径映射;
文件:存储空间存储的一旦流式数据,对数据能够作到按名存取(有边界的磁盘上的一段数据流);
文件系统:层级结构,有索引;
/:原初起点,根,根目录;
/ 第二层结构(子目录)/第三层结构
examlple
/dev/pst/2:
最左侧/:表示根目录
其它的/:表示路径分隔符
Linux的路径分隔符是/(windows的路径分隔符是\)
文件的路径表示:
绝对路径:从根开始表示出的路径
相对路径:从当前位置开始表示出的路径

文件名使用法则:
1.严格区分字符大小写:file1,File1,FILE1都不是同一个文件
2.目录也是文件,在同一路径下,两个文件不能同名,linux下的文件目录和文件名不能同名(一切皆文件)
3.支持使用除/之外的任意字符;
4.最长不能超过255个字符;

用户有家目录:home,
用户的起始目录:普通用户管理文件的位置

工做目录:

/etc/sysconfig/network-scripts/ifcfg-ens33
basename:最右侧的文件或目录; (基名)
dirname: basename左侧的路径: (目录名)
命令:
~]# basename /PATH/TO/SOMEFILE
SOMEFILE
~]# dirname /PATH/TO/SOMEFELE
/PATH/TO

参考资料
| 目录/文件 | 用途 | 来源 |

| / | /处于Linux文件系统树形结构的最顶端,它是Linux文件系统的入口 | 全部的目录、文件、设备都在/之下 |

| /bin | 该目录存放着系统最经常使用的最重要的命令 ,是以独立的文件形式存在 | 这个目录中的文件都是可执行的而且是普通用户均可以使用的命令 ,做为系统最基础的命令都放在这里 | binary |

| /usr | 该目录是系统存放程序的地方,好比普通命令、帮助文件、安装的软件等,当咱们安装一个Linux发行版官方提供的软件包时,大多安装在这里 | /usr目录下包括涉及字体目录/usr/share/fonts、帮助目录/usr/share/man或/usr/share/doc等 | unix shared resource |

| /var | 该目录的内容是常常变更的 | /var下有/var/log目录用来存放系统日志的目录,/var/www目录用来定义Apache服务器站点存放目录,/var/lib用来存放一些库文件 | variable |

| /sbin | 大多数涉及系统管理的命令都存放在该目录中,它是超级权限用户root的可执行命令存放地 | 凡是目录sbin中包含的命令都是root权限才能执行的 | super user binary |

| /root | Linux超级权限用户(系统管理员)root的主目录 |

| /home | 普通用户的主目录都默认存放在该目录中 |

| /etc | 该目录是系统配置文件的所在地 | 一些服务器的配置文件也在这里 | etcetera |

| /dev | 设备文件存储目录 | 该目录下是全部Linux的外部设备文件 | device |

| /boot | 存放Linux的内核及引导系统的程序所须要的文件 |

| /opt | 该目录是可选的软件包安装目录 | optional |

| /tmp | 该目录用于存放临时文件 | temporary |

| /lib | 该目录用于存放库文件 | 这个目录里存放着系统最基本的共享库 | library |

| /mnt | 该目录是用于存放挂载储存设备的挂载目录的 | mount |

| /proc | 操做系统运行时进程(正在运行中的程序)信息及内核信息(好比cpu、硬盘分区、内存信息等)存放处 | /proc目录是假装的文件系统proc的挂载目录,咱们能够经过直接访问这个目录来获取系统信息 | process |

相关文章
相关标签/搜索