linux杂谈(1)

1. Linux:仅仅是一个内核,不包含其他应用程序。

GNU/Linux:通常以源码方式提供,包含提供的开源应用程序,这样给使用者使用方式的更多的选择,区别于windows,我们将windows系统安装在裸机上,几乎所有功能接口都是被锁定的,但是Linux与之相反。

2. Linux发行版本:

  • Debian:
    衍生版:Ubuntu,Knopix
  • Slackware:
    衍生版:S.u.S.E
  • RedHat:
    衍生版:Fedora,CentOS

常见CPU架构:

  • X86:见得最多的intel体系
  • X64:一般指AMD64,当然intel也有
  • m68000,m68k
  • arm:主要用于移动设备
  • ultrasparc
  • power
  • MIPS
  • alpha:惠普,hp-unix

3. Posix 标准:

原因:由于存在不同的CPU体系架构,而且不同的CPU提供不同的汇编器,不同汇编器翻译出来的二进制码存在差异,A CPU可能编译翻译出来的指令不能运行在B CPU,跨CPU、移植太过于难,因为没有统一的标准。
Posix标准就是将操作系统的API统一起来。

举个反例:对于常见进程linux下是fork函数,windows下是creatprocess函数。在linux下写一个程序,用到fork函数,那么这个程序该怎么往windows上移植?需要把源代码里的fork通通改成creatprocess,然后重新编译…

编译完成后生成的指令只能在某一种平台编译,编译完成以后肯定就不能在其他平台运行,交叉编译指A平台编译生成B平台可以执行指令,但是一般不能在A平台执行;

4. ABI:程序运行时的二进制接口名,当然是二进制的,二进制时的接口名称。所以判断一个程序能不能跨平台跑,可以先判断编译以后ABI是否一样。
API:程序接口,可以简单理解为函数名称;

Unix类的系统:

需要澄清的是Unix和Linux是两个不同的系统,可以理解为都遵循Posix标准的两个操作系统。
编译后的ABI和编译前源码API的接口都可以兼容,也就是说在Unix编译的程序在Linux上也可以运行,跨操作系统运行。

5.开源协定:

  1. GPL->LGPL->GPLv2->GPLv3
  2. BSD
  3. Apache
  4. 双线授权:免费开源版本(社区版),商业授权版本(企业版,提供服务,功能强大)

6.程序管理:

  1. 程序的组成部分:
    1.二进制程序
    2.配置文件
    3.库文件:程序中调用到的库
    4.帮助文件:使用说明

  2. 程序包管理器及作用:
    将程序的组成文件打包成一个或者有限的几个文件,安装,卸载,查询方便;
    常见管理程序:
    Debian:dpkg apt apt-get
    RedHat:rpm yum dnf(yum升级版)
    S.u.S.E:rpm zypper
    LFS:Linux From Scratch

7.操作系统虚拟技术:将有限的计算机资源切割开成多个分配出来(如CPU,内存等),每个被分配的是独立的,让使用者感觉到自己是独占计算机资源的。
在这里插入图片描述
常见的虚拟机软件:
VMware Workstation ,virtualbox

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章