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

Linux 背景知识相关推荐

  1. 『Linux基础 - 2 』操作系统,Linux背景知识和Ubuntu操作系统安装

    这篇笔记记录了以下几个知识点: 1.目前常见的操作系统及分类,虚拟机 2.Linux操作系统背景知识,Windows和Linux两个操作系统的对比 3.在虚拟机中安装Ubuntu系统的详细步骤 OS( ...

  2. Linux背景知识(1)RedHat和Centos

    Redhat有收费的商业版和免费的开源版,商业版的业内称之为RHEL(Red Hat Enterprise Linux)系列, 而这个CentOS(Community ENTerprise Opera ...

  3. 极具职场竞争力的操作系统背景知识学习笔记(Windows+Linux)

    <Windows篇> 对于每天都要在windows平台上进行逆向工程任务的我们而言,稍微了解一些系统底层的机制与实现原理,用这些背景知识来武装自己总是好的. 调试器,反汇编器,加包,解包器 ...

  4. Tomcat(一):背景知识和安装tomcat

    1. 基础背景知识 1.1 java和jdk概念 无论是何种程序,要能在计算机上运行,必须能转换为二进制的机器语言才能和硬件进行交互,在机器语言的上层是汇编语言,再上层是C/C++这样较底层的语言,由 ...

  5. JAVA学习笔记--4.多线程编程 part1.背景知识和内存模型

    2019独角兽企业重金招聘Python工程师标准>>> 背景知识 CPU Cache 如上简易图所示,在当前主流的CPU中,每个CPU有多个核组成的.每个核拥有自己的寄存器,L1,L ...

  6. linux多进程知识汇总

    文章目录 前言 一.进程的创建与结束 1.背景知识 2.相关接口 3.进程退出方式 二.Linux进程控制 1.进程地址空间(地址空间) 2.进程控制块(处理机) 3.上下文切换 三.进程调度算法 四 ...

  7. 玩转Linux必备知识(四)

    硬盘管理系统 玩转Linux必备知识(三) 玩转Linux必备知识(二) 玩转Linux必备知识(一) 硬盘管理背景知识 硬盘常见接口: IDE 最古老的硬盘接口,淘汰品 SATA 串行接口,个人电脑 ...

  8. Linux基础知识--2.Linux的文件系统和bash的基础特性(1)

    Linux基础知识--linux的文件系统和bash的基础特性 一.Linux文件系统: Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux ...

  9. ClassLoader背景知识

    前几天想了一下,最近主要学习linux和httpd,所以tomcat源码阅读先放一放,可能到9月份左右再继续.不过先把已经写好的几篇陆续贴上来 tomcat用到很多ClassLoader相关的代码,如 ...

最新文章

  1. C++拾趣——C++11的语法糖auto
  2. acdream 1157Segments cdq分治
  3. mysql ddl脚本_MySQL学习之路(1):SQL脚本语言
  4. 理解spark中的job、stage、task
  5. 深入Eureka/Feign/Hystrix原理学习(1)
  6. 无线端不响应键盘事件(keydown,keypress,keyup)
  7. Blazor Server 和 WebAssembly 应用程序入门指南
  8. JDK源码解析之 Java.lang.Compiler
  9. Q110:PBRT-V3十大基类对应的继承关系
  10. LeetCode—4.滑动窗口
  11. 打造高效的运维日志收集与分析平台
  12. 第15周学习进度情况
  13. Qt抽奖圆盘(减速效果)
  14. linux foxit,Foxit PDF SDK
  15. 公司中秋趣味比赛二连冠后的思考
  16. 两个质数互质是_两个数互质是什么意思 如何判断
  17. qt类似电视盒子的通过方向键切换焦点的实现方法
  18. 希望计算机专业同学都知道这些宝藏博主
  19. 安卓 体验linux mux,18000公里,MUX——“牧游侠”用车感受
  20. 新概念2 课文和单词(5)

热门文章

  1. 【周末闲谈】二进制VS三进制
  2. 大数据学习之路-Zookeeper
  3. Opencv 如何精简包(JAVA)
  4. 20天拿下华为OD笔试之【DFS/BFS】2023Q1A-开心消消乐【闭着眼睛学数理化】全网注释最详细分类最全的华为OD真题题解
  5. 泉州深化企业简易注销登记改革 让企业注销“少跑腿”
  6. [XP系统][已解决]本地连接显示“受限制或无连接”,重装网卡驱动也无解
  7. 计算机应用基础实验课讲稿,计算机应用基础测试题讲课讲稿.doc
  8. python写机器人玩僵尸骰子
  9. 【Python】Python中的时间函数strftime与strptime对比
  10. datax同步oracle数据到hbase,hbase的rowkey使用hash生成