Linux学习笔记3—Linux系统组成及初识

Linux系统组成及初识

Linux三大主流发行版系列:Debian, Slackware,RedHat
Debian二次衍生版最为著名的:
Ubuntu系列
Knopix系列
Slackware二次衍生版最为著名的:
S.u.S.E系列
三次衍生版Opensuse系列
RedHat二次衍生版最为著名的:
CentOS系列
Fedora系列

Linux与Debian,RedHat之间的关系:Linux仅仅是内核,完整的操作系统需要包含内核+开源应用程序(GNU组织提供的众多Application),完整意义上的Linux应该称为:GNU/Linux

GNU/Linux:通常以源码方式提供(源代码一般是文本格式),开源软件的最大特性是自由、灵活,意味着使用者的可选择权很大。任何高级语言编写的源代码一般是文本格式,机器不能直接运行,CPU同样是这样,因此需要把文本格式翻译成二进制格式,即需要编译器(翻译官)进行编译后,CPU才能运行。

Linux系统基础结构:
关于CPU架构:
不用厂商生产的CPU内部指令并不相同,CPU仅仅能够运行二进制格式的数据
x86架构系列:32位CPU
x64架构系列(真正第一款基于64位架构的CPU是由AMD64研发的):64位CPU
(PC机机构)

高级语言代码的作用(C,C++):
编译器编译转换成汇编语言代码,再由汇编器编译成机器语言。不同厂家生产的CPU,只能运行各自的操作系统,无法进行兼容。原因是编译器转换时,编译器也会运行在一个CPU上面,因此在编译运行程序时就决定了程序编译结果适用于哪一款CPU,程序通过编译器编译完成后,再使用汇编器编译转换成机器代码运行。
另外,老CPU上写的程序可以在新CPU上运行,但是新CPU上写的程序无法运行在老CPU上。因此高级语言代码的作用是无论是哪种CPU,都可以在该CPU上兼容运行。

摩托罗拉生产的CPU架构:m68000,m68k
手机等移动终端CPU架构为ARM架构系列
SUN工作站运行的CPU架构:spare,Ultrasparc,运行solaris操作系统
IBM工作站运行的CPU架构:power全球第一款双核CPU,主频超过4GHz的CPU,运行aix系统,后续还推出了简装版CPU架构PowerPC, 简称PPC
MIPS架构
惠普工作站运行的CPU架构:Alpha,hp-ux(hp-unix)

在X64编译后的程序期望在ARM结构上运行,如何运行?
编译器支持交叉编译方式,cross compile,比如早期的手机内核的编译都是在台式机上运行的,使用高级语言所写的代码具有较好的移植性,代码在没编译之前,是可以适用于各种CPU架构平台上的,但是一旦编译完后,就不能在不同的平台运行了。

硬件规格(硬件标准)概念:
硬件的接口(硬件标准)比较简陋,在设计时都非常简洁和底层,不同厂商设计的硬件底层规格和接口并不相同,比如为A主机写的硬件规格,B主机不能使用,B主机写的硬件规格,C主机不能运行。是否能够写一款程序,在各种主机上都能够运行,即为高级语言程序,高级语言在哪里运行?
因此涉及出操作系统内核(Kernel),来面对底层的复杂性。
Kernel隐藏了底层硬件的复杂性,由Kernel直接面对底层的硬件设备,因此编写Kernel的人都非常厉害。Linux早期只支持x86系列,但是没过多久就移植到别的CPU架构上,比如智能终端设备,智能手表,空调控制程序,航空航天系统,超级计算机以及各种嵌入式设备等。

系统调用遵循统一规范:
POS: POSIX
API: application program interface
ABI: application binary interface
系统调用有两种层面的意义: 对程序员编程来讲是API,对于程序运行来讲是ABI,遵循POSIX规范的系统调用接口(API)可以互相之间运行,但是编译成二进制格式后,需要适用于各自系统的ABI接口,运行环境就不同了。比如Windows的二进制格式文件后缀为exe,msi格式,而Linux的二进制格式文件后缀为elf格式,即便都是二进制文件,但是内生格式不同。

Linux,BSD,AIX统一被称作:Unix-like 操作系统,Unix类的系统,特点是接口是兼容的,即Unix类系统的API和ABI都兼容。意味着众多在Unix开发的系统在Linux上面也可以运行。

Richard Stallman:GNU组织
闭源程序:不提供源代码,代表系统:Windows系统
开源程序:提供源代码,代表系统:Linux系统
开源协定:
1、GNU组织的GPL协定:General Public License(GPL的版权协定称为copyleft,为了与copyright,任何一款软件遵循GPL协定,要将软件当中的其他相关所有代码都进行公布,同样需要遵循GPL保护)
L-GPL:Lesser GPL, 程序员开发时如果调用GPL接口中的库,不用进行开源
GPLv2, GPLv3,FSF组织
2、BSD协定
3、Apache协定:ASF组织,Apache Software Foundation
以上两个协定均为相对宽松的协议

为了保证开源程序可持续发展,很多软件支持双线授权模式:
Community(社区)版本:遵循开源协定,任何人都可以拿去使用
Enterprise(商业授权)版本:在原有开源基础上在商业授权上添加额外附加的程序

Linux程序管理:
程序的组成部分包括四个部分:
1、 二进制程序:程序中最关键的部分,确保程序能够正常运行
2、 配置文件:例如程序主题的更改,更改后的内容保存在配置文件当中
3、 库文件:很多程序支持二次开发,指的是程序自带的库文件,保证进行二次研发
4、 帮助文件:程序员在写程序时大部分在写帮助文件

举例:安装X,Y,Z三款程序后,如何卸载?
关于程序包管理器:
需要把X,Y,Z安装过程中生成的全部的文件进行卸载,一个个卸载几乎不现实,因此需要程序包管理器组件来实现批量卸载
如果安装X程序时:包管理器能够将程序的组成文件打包成一个或有限几个文件,便于统一安装。程序包管理器事先运行在程序之上,满足程序在安装、卸载、查询时都可以搜到相关的包,统一执行操作。但是在卸载时,程序安装在系统后新生成的文件,一般不会一起删除。

不同的发行版使用的程序包管理器不同:
Debian包管理器::dpkg, deb格式,前端管理工具称为:apt-get
RedHat包管理器::rpm(RedHat package manager), 前端管理工具称为:yum ,已更新为dnf
S.u.S.E包管理器::rpm,前端管理工具称为:zypper
ArchLinux包管理器:port ,比前几个程序包管理器都好用
Gentoo系统:安装过程当中需要边安装边进行编译
LFS系统:Linux From Scratch 构架最纯净的Linux,编译安装指南,日以继夜操作也需要48个小时
Kali Linux系统:内置各种渗透工具的Linux系统

安装Linux系统:
主要以虚拟机的方式安装Linux
计算机五大基础架构:CPU(按时序复用), 内存(按空间切割复用),IO(按时序复用)
虚拟机概念:
把一组有限的计算资源虚拟出多个独立的计算资源,不同的系统可以独立运行,互不相关,是隔离的。每一个主机上的操作系统都可以安装不同的版本,像独占主机资源一样。

虚拟化软件程序:
Vmware workstation
Virtualbox

CentOS的镜像站点
http://mirrors.aliyun.com
http://mirrors.163.com
http://mirrors.sohu.com
建议选择CentOS 7 everything版本进行安装,所包含的内容最全
教室环境使用桥接模式,可以在Cobbler服务器上的镜像软件
管理员:root/mageedu
虚拟机包含快照功能,刚安装完可以保存为快照,后续回到刚安装完的状态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值