Linux 背景知识

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/gongxifacai_believe/article/details/83031801

1、Linux的发行版 GNU/Linux=Linux内核+遵守GNU协定的Application。 GNU是众多开源协定的一个发起者,GPL是GNU的开源协定,BSD和Apache也是开源协定,但是比GPL要宽松的多。 GNU/Linux通常以源码方式提供,通常比较自由和灵活。 (1)Debian 衍生版:Ubuntu,Knopix; (2)Slackware 衍生版:S.u.S.E->OpenSUSE; (3)RedHat 衍生版:Fedora,CentOS; (4)Gentoo (5)ArchLinux (6)Kali:内置了各种渗透工具的Linux发行版; (7)Raspbian:可以运行在树莓派上的Linux发行版; LFS:Linux From Scratch,从零构建Linux(一本书)。 2、CPU架构 (1)Intel:x86,x64 PC兼容机,复杂指令集; (2)Motorola:m68000,也叫做m68k; (3)手持移动设备:ARM; (4)SUN:斯坦福大学的sparc,高通代生产的ultrasparc,在Ultrasparc上跑的操作系统是solaris; (5)IBM:power,是全球第一款2核、4核、64核的CPU,是全球第一款主频超过4GHz的CPU,精简指令集,power CPU上跑的操作系统是aix; (6)IBM+Apple+Motorola:powerpc,也叫做ppc,简装版的power,可以装在pc上; (7)MIPS; (8)HP:alpha,alpha CPU上跑的操作系统是hp-ux。 3、POSIX 可移植操作系统 API:Application Program Interface,应用程序编程接口; ABI:Application Binary Interface,应用程序二进制接口(应用程序执行接口)。 Unix类的系统:Linux、BSD、AIX等为Unix-like系统,它们的API和ABI都是兼容的。 4、GNU (1)Stallman最初发起了GNU运动。 闭源软件:比如Windows系统,使用大教堂式开发方式; 开源软件:提供源代码,使用集市式开发方式。 (2)开源协定: GPL:General Public License,通用公共许可证。 遵循GPL协定的软件版权为GPL,任何程序只要借用了遵循GPL协定的软件的代码,该程序也必须遵循GPL协定开放。 LGPL:Lesser GPL,更宽松的GPL,调用了GPL库的程序不必开源。 现在GPL已经发展到GPLv2,GPLv3版本。 FSF:Free Software Foundation,GNU基金会。 BSD协定的内容: <1>如果二次发布的产品中包含源代码,则在源代码中必须带有原来的代码中的BSD协定; <2>如果二次发布产品是二进制格式的库或程序,则需要在发布的文档或版权声明中说明包含原来的代码中的BSD协定; <3>不可以用开源代码的作者或组织,以及原来的产品的名字做市场推广。 BSD协定和Apache协定比较宽松,修改源代码后不声明是原作者的代码即可。 ASF:Apache Software Foundation,Apache基金会。 (3)很多开源软件使用双线授权方式: Community:社区版,遵循开源协定; Enterprise:企业版,不开源,又卖钱,又卖服务。 5、程序管理 (1)程序的组成部分:二进制程序,配置文件,库文件,帮助文件。 二进制文件、库文件:都为二进制可执行文件,而库文件不能独立执行,只能被调用时执行; 配置文件、帮助文件:可被查看其内容的文件,都为文本文件。 (2)程序包管理器:将程序的组成文件打包成一个或有限几个文件,完成程序的安装、卸载、查询等等。 (3)不同Linux发行版本的程序包管理器: Debian:程序包管理器为dpkg,前端管理工具为apt-get,包格式为deb; RedHat:程序包管理器为rpm,前端管理工具为yum->dnf; S.u.S.E:程序包管理器为rpm,前端管理工具为zypper; ArchLinux:程序包管理器为packman。 6、虚拟化 (1)计算机的部件包括:CPU、内存、IO。 CPU通过时序复用,内存通过空间复用,IO通过捕获焦点复用,在虚拟机内部模拟出虚拟的IO。 (2)虚拟化软件程序: vmware workstation virtualbox(Oracle公司产品) 7、CentOS的镜像站点 http://mirrors.aliyun.com http://mirrors.163.com http://mirrors.sohu.com 8、操作系统与硬件 无论是 Linux、OS X、Windows 操作系统,他们都是由以下部分组成(分层结构): 最底层:硬件; 底层之上:将硬件的接口抽象成为系统调用(kernel); 再之上:库; 在此之上为:应用程序。 程序的运行可以有两种方式: (1)开机自动启动运行; (2)用户通过交互式接口登陆或者连接系统上去,来手动运行程序。 用户可以通过交互式接口对系统及其程序进行操作、配置管理。 系统的运行独立于用户的交互式接口,接口有无,都不影响系统及其程序的运行,所以交互式接口不是必须的,但是有些程序是建立在交互式接口之上的。 我们平时如果对系统进行控制,可以有这么几种方法: (1)远程主机有电源线、网线(但没有键盘、显示器、鼠标等),我们可以通过远程连接进入; (2)远程连入时,主机系统就必须提供一个可以远程接入进来的一个交互式接口,这个交互式接口的输出可以是本地的 vga 输入,也可以是显示到远程终端上去。 9、终端 终端,用户与主机交互,是必然用到的设备。 早期的大型主机,想使用的用户有很多,但主机只有一个,也不可能做到人手一台,但是可以做到在主机上接上一个分屏器,分屏器的每一个端子上可以接上一套键盘鼠标显示器,就可以直接在主机上面进行一些操作了,这就相当于每个人在独立的操作一台计算机一样,像这样我们把一个端子上面所接入的鼠标、键盘、显示器所组成的一个组合,我们就称之为终端。 所谓操作系统的多用户概念,就是基于此种模式而诞生的。终端可以说是一个程序,但严格意义上来讲是一个设备,因为终端所表现的是一些物理设备,如键盘、鼠标、显示器等。 我们可以通过终端来与操作系统或者主机进行交互,终端的类型也比较多,如 (1)物理终端:我们可以将显示器、键盘鼠标直接接在主机的接口之上,这样的终端称之为物理终端,即本机自带的,直接连入的,我们也称之为:物理控制台 console,表示为 /dev/console; (2)虚拟终端:除了物理终端,系统会提供给我们 6 个虚拟终端,这些虚拟终端是附加在物理终端之上的,用软件方式虚拟实现的终端,CentOS 默认启用 6 个虚拟终端,可以通过使用快捷键来切换进来,切换方式:Ctrl-Alt-F[1-6],表示为 /dev/tty#; 在实际的操作中,系统启动之后我们都是通过虚拟终端1来登录,即便是在物理设备上,(那么什么时候用物理终端呢?是在系统开机启动的时候,服务还没有全部起来,这个时候映射的是物理终端,在服务完全启动之后映射的是虚拟终端1,当然还有图形终端)。 (3)图形终端:也是附加在物理终端之上,用软件方式虚拟实现的终端,但额外会提供桌面环境。也是虚拟终端的一种切换方式:Ctrl-Alt-F7。 (4)伪终端(模拟终端):图形界面下打开的命令行接口,还有基于 ssh 协议或 telnet 协议等远程打开的命令行界面。表示为:/dev/pts/#,查看当前的终端设备命令:tty。 终端实际上是一个设备,一个设备要想与系统进行交互,必须有交互接口,当我们开启一个终端时,系统会自动的在终端上运行(附加)一个交互式程序。 交互式程序有两类:GUI 和 CLI。 GUI:图形化界面,是基于 X 协议实现的窗口管理器(桌面、按钮的作用等)。 Linux桌面系统有: (1)GNOME:C 程序开发,gtk 开发库; (2)KDE:C++ 程序开发,qt 开发库; (3)XFCE:轻量级桌面; CLI:命令行界面,对应的叫 shell 程序,用户要想与系统交互,必须通过 shell,不同的程序员开发的程序不一样,但是都可以实现同样的功能(就是交互式功能),而且 shell 程序也有很多种,如:sh,csh,ksh,Bash,zsh。 如何获取当前环境使用的 shell 是哪种 shell:# echo $SHELL,显示当前系统使用的所有 shell:# cat /etc/shells

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券