Linux基础入门
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础入门相关的知识,希望对你有一定的参考价值。
1、描述计算机的组成及其功能。
- 计算机定义:接受用户输入指令与数据,经由中央处理器的数学与逻辑单元运算处理后, 以产生或储存成有用的信息。
- 计算机硬件组成:
- 存储器:用来存放数据和程序。
- 运算器:主要运行算数运算和逻辑运算,并将中间结果暂存到运算器中。
- 控制器:主要用来控制和指挥程序和数据的输入运行,以及处理运算结果。
- 输入设备:用来将人们熟悉的信息形式转换为机器能够识别的信息形式,常见的有键盘,鼠标等。
- 输出设备:可以将机器运算结果转换为人们熟悉的信息形式,如打印机输出,显示器输出等。
2、描述内核功能以及作用
- 1.进程管理
- 负责创建,结束进程,管理内核的活动,如软件中断、tasklet等,管理进程通信,如消息(message)、管道(pipe)等,实现进程调度(schedule)。进程调度是进程管理的重要任务,它处理所有活动的、等待被执行的和被阻塞(blocking)的进程调度,使所有应用和进程合理的共享处理器的运行时间。
- 2.内存管理
- 内存是系统最主要的资源之一,计算机的性能在很大程度上与其所配备的内存有关。linux内核内存管理的主要功能就是给进程分配地址空间,该地址指允许本进程自己访问。
- 3.文件系统
- 在linux操作系统中,文件系统是整个系统的中枢。linux与其他操作系统不同,几乎所有的操作都基于文件系统接口的处理,如设备驱动程序可以按文件方式访问设备,通过/proc文件系统可以访问linux内核的数据和参数,这两个功能在调试时非常有效。
- 4.设备驱动程序
- 在所有的操作系统中,设备驱动程序都是硬件的抽象,同故宫它可以访问硬件。linux可以用模块的方式实现设备驱动成,提供了在系统运行时动态加载和卸载设备驱动程序的途径。
- 5.网络子系统
- 在linux中所有的网络操作是由操作系统管理的。这事因为网络操作不能分配给某个进程完成。在处理受到的网络数据包时,数据包得接受是异步的。接受数据包任务必须是在进程处理这些数据包前先收集齐所有的网络包、标识数据,然后向上层传递,这就是为什么由内核的网络子系统负责处理数据包,而不是由某个进程和网络接口来处理。
3、按系列罗列常见Linux的发行版,并描述不同发行版之间的联系与区别。
- Redhat,应该称为Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server收费版本)、FedoraCore(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳定性较差,最好只用于桌面应用。
- Debian,或者称Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。Debian最具特色的是apt-get /dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。
- Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以这么说Ubuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的Linux桌面系统。根据选择的桌面系统不同,有多个版本可供选择,比如基于unity的Ubuntu,基于Gnome的Ubuntu Gnome,基于KDE的Kubuntu,基于LXDE的Lubuntu以及基于Xfce的Xubuntu等。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。
- Gentoo,伟大的Gentoo是Linux世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点,这也是Gentoo被称为最完美的Linux发行版本的原因之一。由于开发者对FreeBSD的熟识,所以Gentoo拥有媲美 FreeBSD的广受美誉的ports系统 ——Portage包管理系统。不同于APT和YUM等二进制文件分发的包管理系统,Portage是基于源代码分发的,必须编译后才能运行,对于大型软 件而言比较慢,不过正因为所有软件都是在本地机器编译的,在经过各种定制的编译参数优化后,能将机器的硬件性能发挥到极致。Gentoo是所有Linux 发行版本里安装最复杂的,但是又是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。
- FreeBSD,需要强调的是:FreeBSD并不是一个Linux系统!但FreeBSD与Linux的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所采用的软件也比较类似,所以可以将FreeBSD视为一个Linux版本来比较。
4、描述常见的开源协议(GPL,LGPL, BSD,Apache等)以及开源协议的区别
- GNU GPL(GNU General Public License,GNU通用公共许可证):只要软件中包含了遵循GPL协议的产品或代码,该软件就必须也遵循GPL许可协议且开源、免费,因此这个协议并不适合商用软件。遵循该协议的开源软件数量极其庞大,包括Linux系统在内的大多数的开源软件都是基于这个协议的。GPL开源许可协议最大的4个特点如下所示。
- 复制自由:允许把软件复制到任何人的电脑中,并且不限制复制的数量。
- 传播自由:允许软件以各种形式进行传播。
- 收费传播:允许在各种媒介上出售该软件,但必须提前让买家知道这个软件是可以免费获得的;因此,一般来讲,开源软件都是通过为用户提供有偿服务的形式来盈利的。
- 修改自由:允许开发人员增加或删除软件的功能,但软件修改后必须依然基于GPL许可协议授权。
- BSD(Berkeley Software Distribution,伯克利软件发布版)许可协议:用户可以使用、修改和重新发布遵循该许可的软件,并且可以将软件作为商业软件发布和销售,前提是需要满足下面3个条件。
- 1:如果再发布的软件中包含源代码,则源代码必须继续遵循BSD许可协议。
- 2:如果再发布的软件中只有二进制程序,则需要在相关文档或版权文件中声明原始代码遵循了BSD协议。
- 3:不允许用原始软件的名字、作者名字或机构名称进行市场推广。
- Apache许可证版本(Apache License Version)许可协议:在为开发人员提供版权及专利许可的同时,允许用户拥有修改代码及再发布的自由。该许可协议适用于商业软件,现在热门的Hadoop、Apache HTTP Server、MongoDB等项目都是基于该许可协议研发的,程序开发人员在开发遵循该协议的软件时,要严格遵守下面的4个条件。
- 1:该软件及其衍生品必须继续使用Apache许可协议。
- 2:如果修改了程序源代码,需要在文档中进行声明。
- 3:若软件是基于他人的源代码编写而成的,则需要保留原始代码的协议、商标、专利声明及其他原作者声明的内容信息。
- 4:如果再发布的软件中有声明文件,则需在此文件中标注Apache许可协议及其他许可协议。
- MPL(Mozilla Public License,Mozilla公共许可)许可协议:相较于GPL许可协议,MPL更加注重对开发者的源代码需求和收益之间的平衡。
- MIT(Massachusetts Institute of Technology)许可协议:目前限制最少的开源许可协议之一,只要程序的开发者在修改后的源代码中保留原作者的许可信息即可,因此普遍被商业软件所使用。
5、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
- 一切皆文件
- 把几乎所有资源都抽象为文件形式;硬件、通信接口等等,所以具有文件的统一特性,比如打开关闭等
- 由众多功能单一的程序组成
- 功能单一:一个只做一件事,并且做好;类似C语言中的函数思想,一个函数只做一件事情
- 复杂任务:组合不同的小程序完成一个复杂的功能,比如管道由不同的命令接力完成任务
- 尽量避免与用户交互,易于以编程的方式实现自动化任务
- 使用文本文件保存配置信息
6、描述linux目录结构以及目录结构命名规定。
- /bin 所有用户在单用户模式中必须具备的二进制命令文件,如 cat, ls, cp.
- /boot Boot loader文件,引导加载器必须用到的各静态文件,如 kernels, initrd.
- /dev 必要的 device 文件,存储特殊文件或设备文件,如 /dev/null.
- /etc 存放主机特定的系统级配置文件,且只能为静态;某些程序的配置文件较多时,会自动在/etc目录下创建于程序名相同的目录用于存储该程序的配置文件,比如yum
- /etc/opt 保存在/opt/中的附加应用程序软件包的配置文件
- /etc/sgml 定义SGML系统的高级参数的通用配置文件
- /etc/X11 X Window System, version 11 的配置文件
- /etc/xml 定义XML系统的高级参数的通用配置文件
- /home 用户的个人目录,包含保存的文件和个人设置等
- /lib 为系统启动或根文件系统上的应用程序(/bin, /sbin等)提供共享库,以及为内核提供内核模块
- libc.so.*:动态链接的C库;
- ld*:运行时链接器/加载器;
- modules:用于存储内核模块的目录;
- /lib64 64位系统特有的存放64位共享库的路径
- /media 可移动的多媒体(如CD-ROMs)的挂载点
- /mnt 临时挂载的文件系统
- /opt 附加应用程序的安装位置;可选路径
- /proc 基于内存的虚拟文件系统,只存在于内存中。
- /sys 基于内存的虚拟文件系统。sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;其主要作用在于为管理Linux设备提供一种统一模型的的接口,比如调整硬盘的功能特性的参数。
- /root 管理员的家目录;可选路径
- /run 运行时变量数据:从本次启动到现在的系统信息。如当前登陆的用户和正在运行的守护进程
- /sbin 供系统管理使用的工具程序,如fsck, init, route.
- /srv 当前系统为此主机特有的服务提供的数据。如web服务器提供的数据和脚本,FTP服务器提供的数据,VCS的仓库
- /tmp 临时文件(和/var/tmp相同). 为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所用户执行写入操作;有特殊权限;通常在重启后清空,并且受到严格的大小限制
- /usr 属于二级层级,全局共享的只读数据路径; 包含所有用户主要的公共文件以及应用程序,任何能兼容FHS的发行版之间是可以共享此目录的,比如在没有对/usr执行过任何写操作的 centos和ubuntu的/usr之间是可以复制共用的。
- /usr/bin 不是系统运行后就会用到的,是系统运行中一些附加功能会用到的,所有用户都可以用(在单用户模式中不需要)
- /usr/include C程序语言的头文件
- /usr/lib /usr/bin/ 和 /usr/sbin/ 中的二进制文件的共享库
- /usr/lib64 /usr/bin/ 和 /usr/sbin/ 中的64位二进制文件的共享库
- /usr/local 属于三级层次,让系统管理员安装本地应用程序;也通常用于安装第三方程序
- /usr/sbin 不是系统自身运行后维护需要用到的,是系统运行中一些附加功能会用到的,管理员用户可使用,如多种网络服务的守 护进程,
- /usr/share 架构特有的数据,命令手册页和自带文档等架构特有的文件的存储位置
- /usr/src 程序源码文件的存储位置,如内核的源代码和它的头文件,可选路径
- /usr/X11R6 X-Window程序的安装位置,可选路径
- /usr/local 让系统管理员安装本地应用程序(与系统不冲突的另外一个路径,想安装一个程序的新 版本,同时又想保留老版本);也通常用于安装第三方程序,以往是安装在/opt下,现在一般都安装在/usr/local下。/usr/local层级下的子目录服务于本地应用程序。
- /var 各式各样的变量(Variable)文件,一些随着系统常规操作而持续改变的文件就放在这里,比如日志文件,脱机文件,还有临时的电子邮件文件
- /var/cache 应用程序缓存数据。由于耗时的I/O或计算,这些数据是本地生成的。应用程序必须 能够重新生成或恢复数据,以保证这些数据被删除时不会造成数据丢失。(意思就 是这些东西删了不会造成不良后果)
- /var/lib 保存与应用程序或系统有关的变量状态信息。这些信息随着程序和系统的运行而不停地改变,比如,数据库,软件包系统的元数据等等
- /var/local 为/usr/local的应用程序提供经常变化的数据的存储位置。
- /var/lock 锁文件。这些文件用于跟踪正在使用的资源
- /var/log 日志文件和目录。包含各种日志。
- /var/opt 为/opt 中的程序提供经常变化的数据的存储位置。
- /var/run 存放当前系统上次启动以来的系统信息数据 ,也可以理解为运行中的进程相关的数据。 例如:当前登入的用户以及当前运行daemons(守护进程)
- /var/spool 应用程序假脱机数据,假脱机即SPOOLing。SPOOLing技术是低速输入输出设备与主 机交 换的一种技术,通常也称为“假脱机真联机”,他的核心思想是以联机的方式得到脱 机的效果。该spool主要用于存放将要被处理的任务,数据在处理后会被删除。比如打印队列以及邮件外发队列
- /var/tmp 重启时会被保存的临时数据
以上是关于Linux基础入门的主要内容,如果未能解决你的问题,请参考以下文章