复习与拓展
GNU/Linux通常以源码方式(文本格式)提供,是一套自由、灵活的OS。
Linux基础
CPU架构:每一种硬件架构都有自己的机器语言,两种不同的架构开发软件和硬件不能兼容
- X86的兼容CPU
- X64(AMD64):由AMD研发的第一款64位CPU
- m68000(m68K)由摩托罗拉生产
- arm手持终端最为常见,但arm团队仅仅是设计方
- ultrasparc(64位)solaeris
- power(IBM) aix全球第一款4核、6核、8核CPU,也是全球第一款主频超过4GHz的CPU,性能及其强大,制作工艺比较落后
- PPC(powerpc)早期苹果居多
- MIPS
- alpha hp.ux(HP惠普)
汇编语言开发的程序移植(portable)性非常差,机器语言与汇编语言之间
当编译器要编译与本机不同架构的汇编语言时,称为交叉编译(cross compile),编译完成后的机器语言只能适应于相应架构。
硬件的接口非常简洁,底层就代表丑陋,不易用,称为硬件规格或硬件标准。
kernel程序员开发的程序直接面对硬件调用,现在Linux几乎可以支持市场上所有CPU产品。
kernel主要目的是隐藏底层硬件复杂性,并向底层硬件提供一种统一规范的标准。
为保证kernel有足够的通用性,出台了POS:POSIX可移植系统规范
系统调用有两层概念,1、对程序员而言叫系统调用,是一种编程接口。2、对于程序运行而言叫调用的二进制程序接口,通常称为ABI。二进制程序在Windows中为.exe或.msi格式,在Linux中为elf格式。
在Unix类系统中,通常API接口兼容的程序,ABI接口也兼容,也被称为Unix-like系统,如:Linux、BSD、AIX、等。
闭源程序仅提供二进制程序不提供源代码;开源程序提供源代码,经费来源于服务或者社区和机构的捐赠。
开源协定
GPL:General Public License 只要遵循GPL协定,版权归GPL保护,称为copyleft(商业版权称为copyright)。 由于GPL刚开始协定范围比较广,限制了自己发展,后来出现LGPL(lesser GPL)协定,但得到没有很好的效果。后来的BSD协定和Apache协定,相对宽松许多,触进了开源软件的发展。
Apache协定由ASF(Apache Software Foundation)机构支持,GPL协定由FSF机构支持。
一些发行版施行双线授权发行,Community版本遵循开源协定,Enterprise版本提供更多软件支持,闭源,收费。
程序的组成部分
- 二进制程序:关键部分
- 配置文件:为了让程序运行表现出自己的特性,程序内部会提供一些接口,给用户不同选项从而拥有不同的运行特征。
- 库文件:应用程序自己的库
- 帮助文件:由文档开发人员编辑,相当于应用程序的说明书
程序包管理器
将程序组成文件打包成一个活有限几个文件,实现程序安装
安装程序
卸载程序:借助卸包管理器查出安装
查询程序
系统发行版 | 程序包 | 程序包管理器前端 | 备注 |
---|---|---|---|
Debian | dpkg | apt-get | |
RedHat | rpm | yum(即将转换为dnf) | dnf吸取S.u.S.E研发经验开发出dnf |
S.u.S.E | rpm | zypper | |
ArchLinux | port | 据说是最好用的程序包管理器 | |
Gentoo | 安装时需要一边编译边安装 | ||
LFS:Linux From Scratch | 只有一本类似说明书的安装手册 |
安装Linux
虚拟机
靠软件虚拟计算机各硬件运行,把有限的计算机资源模拟出多个独立的计算机资源,且彼此之间隔离而互不相关。
CPU、网卡通过时序复用,IO通过时序或捕获焦点实现复用,内存通过空间分割实现复用。
虚拟化软件程序
vmware workstation
virtualbox
Linux镜像站点
http://mirror.hust.edu.cn/
http://mirrors.aliyun.com/
http://mirrors.sina.cn/
http://mirrors.163.com/