Liunx入门

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Liunx入门相关的知识,希望对你有一定的参考价值。

1、描述计算机的组成及其功能。

?1):CPU(运算器Arithmetical Unit和控制器Control Unit)运算控制器

? 运算器Arithmetical Unit:是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。
? 控制器Control Unit:运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理

2):存储器Memory:存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息

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

?4):输出设备Output:输出设备与输入设备同样是计算机的重要组成部分,它把计算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来。微机常用的输出设备有显示终端CRT、打印机、激光印字机、绘图仪及磁带、光盘机等。

2、描述内核功能以及作用
1)内核分为单内核和微内核,Linux是单内核设计,但是借鉴了微内核设计的优点,引入了模块化机制. 内核是整个操作系统的最底层,它负责整个硬件的驱动,以及提供各种系统所需的核心功能,包括防火墙机制、是否支持LVM或Quota等文件系统等等,如果内核不认识某个最新的硬件,那么硬件也就无法被驱动,你也就无法使用该硬件。

1)内核的组成部分kernel:内核核心,一般为bzimage,通常位于/boot目录,名称为vmlinuz-VERSION-release                           

2)kernel object:内核对象,即内核模块,一般放置于/lib/modules/VERSION-release/                        内核模块与内核核心版本一定要严格匹配

? 2)内核的功能进程管理

?       进程的状态、控制、同步互斥、通信调度
?       存储管理        分配/回收、地址转换、存储保护等
?       文件管理        文件目录、文件操作、磁盘空间、文件存取控制
?       设备管理        设备驱动、分配回收、缓冲技术等
?       用户接口        系统命令、编程接口

3、按系列罗列常见Linux的发行版,并描述不同发行版之间的联系与区别。
技术图片
技术图片

2).发行版的联系与区别联系
联系:
(1).所有的发行版都使用linux内核;
(2).所有的linux发行版都需要遵循GNU的GPL协定。要不提供源码或者译好的包(如centos);
(3).所有的发行版都有自己的版本号,版本格式约定基本一样。主版本号.次版本号.发行号或修正号

区别:
(1).只有debain以社区的方式运作。
(2).发行版的本质区别,在于集成了不同版本的内核、库、程序的组合。
(3)不同发行商发行版之间无法有效进行版本的对比。
(4)不同发行版几乎采用了不同的包管理器(a). Debian:包管理器dpkg(deb格式),apt-get(b). RedHat:包管理器rpm,前端包管理器叫yum?dnf(新版)(c). S.U.S.E:包管理器rpm,zypper(d). ArchLinux:包管理器port(e). Gentoo:边安装,边编译 LFS:Linux From Scratch(f).kali 包含较多安全工具的linux

4、描述常见的开源协议(GPL,LGPL, BSD,Apache等)以及开源协议的区别

GPL

  GPL授予程序接受人以下权利,或称“自由”:

  * 以任何目的运行此程序的自由

  * 以学习程序工作机理为目的,对程序进行修改的自由(能得到源代码是前提)

  * 再发行复制件的自由

  * 改进此程序,并公开发布改进的自由(能得到源代码是前提)

  相反地,随版权所有软件的最终用户许可证几乎从不授予用户任何权利(除了使用的权利),甚至可能限制法律允许的行为,比如逆向工程。

  GPL与其他一些更“许可的”自由软件许可证(比如BSD许可证)相比,主要区别就在于GPL寻求确保上述自由能在复制件及演绎作品中得到保障。它通过一种由Stallman发明的叫copyleft的法律机制实现,即要求GPL程序的演绎作品也要在GPL之下。相反,BSD式的许可证并不禁止演绎作品变成版权所有软件。

  GPL不会授予许可证接受人无限的权利。再发行权的授予需要许可证接受人开放软件的源代码,及所有修改。且复制件、修改版本,都必须以GPL为许可证。

  这些要求就是copyleft,它的基础就是作品在法律上版权所有。由于它版权所有,许可证接受人就无权进行修改和再发行(除合理使用),除非它有一个copyleft条款。如果某人想行使通常被法律所禁止的权利,只需同意GPL的条款。相反地,如果某人发行软件违反了GPL(比如不开放源代码),他就有可能被原作者起诉。

  copyleft利用版权法来达到与其相反的目的:copyleft给人不可剥夺的权利,而不是版权法所规定的诸多限制。这也是GPL被称作“被黑的版权法”的原因。

  许多GPL软件发行者都把源代码与可执行程序捆绑起来。另一方式就是以物理介质(比如CD)为载体提供源代码。在实践中,许多GPL软件都是在互联网上发行的,源代码也有许多可以FTP方式得到。

  copyleft只在程序再发行时发生效力。对软件的修改可以不公开或开放源代码,只要不发行。注意copyleft只对软件有效力,而对软件的输出并无效力(除非输出的是软件本身)。不过这在GPL版本3中可能会有改动。

MPL

  MPL是The Mozilla Public License的简写,是1998年初Netscape的 Mozilla小组为其开源软件项目设计的软件许可证。MPL许可证出现的最重要原因就是,Netscape公司认为GPL许可证没有很好地平衡开发者对源代码的需求和他们利用源代码获得的利益。同著名的GPL许可证和BSD许可证相比,MPL在许多权利与义务的约定方面与它们相同(因为都是符合OSIA 认定的开源软件许可证)。但是,相比而言MPL还有以下几个显著的不同之处:

  * MPL虽然要求对于经MPL许可证发布的源代码的修改也要以MPL许可证的方式再许可出来,以保证其他人可以在MPL的条款下共享源代码。但是,在MPL 许可证中对“发布”的定义是“以源代码方式发布的文件”,这就意味着MPL允许一个企业在自己已有的源代码库上加一个接口,除了接口程序的源代码以MPL 许可证的形式对外许可外,源代码库中的源代码就可以不用MPL许可证的方式强制对外许可。这些,就为借鉴别人的源代码用做自己商业软件开发的行为留了一个豁口

  * MPL许可证第三条第7款中允许被许可人将经过MPL许可证获得的源代码同自己其他类型的代码混合得到自己的软件程序。

  * 对软件专利的态度,MPL许可证不像GPL许可证那样明确表示反对软件专利,但是却明确要求源代码的提供者不能提供已经受专利保护的源代码(除非他本人是专利权人,并书面向公众免费许可这些源代码),也不能在将这些源代码以开放源代码许可证形式许可后再去申请与这些源代码有关的专利。

* 对源代码的定义

而在MPL(1.1版本)许可证中,对源代码的定义是:“源代码指的是对作品进行修改最优先择取的形式,它包括:所有模块的所有源程序,加上有关的接口的定义,加上控制可执行作品的安装和编译的‘原本’(原文为‘Script’),或者不是与初始源代码显著不同的源代码就是被源代码贡献者选择的从公共领域可以得到的程序代码。”

  * MPL许可证第3条有专门的一款是关于对源代码修改进行描述的规定,就是要求所有再发布者都得有一个专门的文件就对源代码程序修改的时间和修改的方式有描述。

LGPL

  GNU宽通用公共许可证,简称LGPL(GNU Lesser General Public License),被用于一些(但不是全部)GNU程序库。这个许可证以前被称为GNU库(Library)通用公共许可证。

LGPL是GPL的变种,也是GNU为了得到更多的甚至是商用软件开发商的支持而提出的。与GPL的最大不同是,可以私有使用LGPL授权的自由软件,开发出来的新软件可以是私有的而不需要是自由软件。所以任何公司在使用自由软件之前应该保证在LGPL或其它GPL变种的授权下。

Apache License

  Apache License是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件:

    * 需要给代码的用户一份Apache License

    * 如果你修改了代码,需要再被修改的文件中说明

    * 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议、商标、专利声明和其他原来作者规定需要包含的说明

    * 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache License。你可以在Notice中增加自己的许可,但不可以表现为对Apache License构成更改

Apache License也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

BSD

  BSD授权许可证(FreeBSD Copyright Information)具有多种授权许可证。总的来说你可以对软件任意处理,只要你在软件中注明其是来自于那个项目的就可以了。也就是说你具有更大的自由度来处置软件。如果你对软件进行了修改,你可以限制其他使用者得到你修改的软件的自由。

  BSD授权许可证没有实现"通透性"自由,也就是其不保证软件源代码开放的连续性。这样如果你希望采用别人开发的BSD软件,进行一些修改,然后作为产品卖,或者仅仅保密自己的做的一些除了软件开发以外的工作,那么你就可以从中得利。

  当一个非程序员仅仅理解一个程序的功能,但是不了解程序是如何做的时,即使你没有在开发软件中做任何工作那你就可以通过高超的市场技巧将软件卖给该用户。比如拿最流行的桌面操作系统作为例子,你就能很好的理解一个没有很好的程序技巧的软件公司只要具有高超的市场营销策略同样可以将垃圾卖给客户。如果你不具有很强大的编程能力,但是具有很强的市场能力和能将其他开发者的软件包括到自己的系统,而同时不将自己的修改开放出来将是非常强大的能力。从赚钱为目的的商务角度看来,如果你使用了BSD授权许可证的软件,那么你就可以任意进行。你可以更好地控制你的OS系统,并且防止其他人拷贝你的商业产品。

MIT

MIT是和BSD一样宽泛的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的.

有许多团体均采用MIT许可证。例如著名的ssh连接软件PuTTY与X Windows System (X11)即为例子。Expat, Mono开发平台库,Ruby on Rails, Lua 5.0 onwards等等也都采用MIT授权条款。

5、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。

? 1)一切皆文件
把几乎所有资源统统抽象为文件形式:包括硬件设备,设置通信接口等
文件操作: open(),read(),write(),close(),delete(),create()

? 2)由总多功能单一的程序组成:一个程序只做一件事,并且做好;组合小程序完成复杂任务

? 3)尽量避免跟用户交互:

? 目标:易于以编程的方式实现自动化任务

? 4)使用文本文件保存配置信息

6、描述linux目录结构以及目录结构命名规定。

? 目录结构:倒置树状结构

? 文件名使用法则:

? 严格区分大小写:file1,File1,FILE1

? 目录也是文件,在同一路径下,两个文件不能同名

? 支持使用除/以外的任意字符

? 最长不能超过255个字符

以上是关于Liunx入门的主要内容,如果未能解决你的问题,请参考以下文章

liunx入门之文件的基础操查看操作和查找

linux 基础入门学习

liunx学习心得。

《步步入门》 .NET 6 部署到Linux

solr入门之创建solrcloud的collection索引集合

Linux入门之CentOS7内核编译三部曲