Linux 基础知识

Linux基础入门

完整的linux OS的由来 
* linus创建了Linux的kernel,GNU提供了N多的应用程序Application; 
* 侠义上的OS指的就是kernel;

软件开发的模式 
* 大教堂式 
* 集市 
Linux就是由无数个黑客共同开发来的,属于集式式的

评判操作系统的快慢监测网站:www.top500.org

Linux在服务器领域占有了绝对领域

OS的接口

有两类:

  • GUI:Graphic User Interface
  • CLI:Command Line Interface

GUI下流行的图形界面:

  • GNome: C语言研发的,研发环境是gtk
  • KDE:C++研发的,研发环境是qt

CLI 下流行的文本界面:

  • bash
  • zsh
  • sh
  • csh
  • tcsh
  • ksh

API和ABI

操作系统的功能: 
驱动程序 
进程管理 
安全 
网络功能 
内存管理 
文件系统

用户通过接口程序,来启动管理这些功能。

API:Application Program Interface

  • 操作系统把底层复杂接口隐藏起来,然后提供更为简捷的接口,叫做系统调用(system call),程序员在写程序就不用面对硬件了;
  • 库(libraries),把底层简洁的接口再次封装;
  • 程序员在写程序时,可以调用系统调用,也可以调用库调用(lib call);
  • 库调用比系统调用快;

ABI:Application Binary Interface

POSIX: Portable Operating System 可移植操作系统

  • 遵循POSIX 的API,能在多个系统上使用,编程接口兼容,同时并不意味着二进制编程接口兼容; 
    遵循POSIX的API程序,经过windows编译器编译成二进制的ABI适合于windows使用;同样Linux同理;

API: 程序员开发视角看,程序员面对的编程接口 
ABI:程序运行视角看,程序应用着面对运行程序的接口

OS的接口实际上就是一种应用程序; 
是在内核外提供的接口; 
占用接口的叫前台程序,不占用前台接口的叫后台程序(如: 开机自动启动); 
对服务器来讲接口未必是必要的;


Linux的发行版

GNU 提供的各种程序都是源码,要编译成二进制格式的。 
发行商把GNU的这些源码程序编译成二进制,然后打包对外提供,这就是发行版。

著名发行版:

  • RedHat
    • RedHat Enterprise Linux (简称为RHEL) 
      • Centos
      • Oracle Enterprise
    • Fedora Core (桌面版)
  • Debian (以社区方式运行)
    • Ubuntu 
      * mint
    • knopix(安全著称)
  • slackware
    • S.u.S.E(界面美) 
      • SLES(企业版)
      • OpenSUSE
  • Gentoo
  • ArchLinux

Linux版本号 
三部分组成: major(主版本号),minor(次版本号),release(修正号,修复bug)

  • 内核版本,版本号:0.99,2.2,2.4,2.6,3.0,4.0
  • 发行版本,版本号: 
    • RHEL: 5.x, 6.x, 7.x
    • Debian: 8.x
    • OpenSuSE: 13.x

Linux网站:www.kernel.org 
最新内核版本4.3

不必追求最新版本,求稳定!


Linux基础

GNU/Linux 通常以源码方式提供:自由、灵活

源代码—是文本格式的 
二进制—由 0 1 组成

计算机仅仅能够处理二进制指令

要把应用程序的的源代码用编译器翻译成对应机器能够运行的机器语言(二进制格式数据)

CPU架构

  • 32位 x86 系列
  • 64位 x64 系列 ,它兼容x86
  • m68000
  • arm系列cpu 
    它只设计 
    移动终端cpu,功耗非常低
  • ultrasparc 
    sun公司生产的 
    运行系统是solaris
  • power 
    IBM的cpu 
    cpu主频超过4GHZ,性能强大 
    运行系统是 AIX 
    个人电脑不能使用power cpu
  • powerpc(简称ppc) 
    简装power 
    能够运行在个人电脑上 
    早些年,苹果系统
  • MIPS
  • alpha 
    惠普生产的 
    收购康柏的安藤 
    运行系统是 hp-ux

编译和汇编:

  • 微码编程的接口(汇编接口)我们称为汇编语言;
  • 面对机器一层的叫做机器语言;
  • 汇编语言不能直接在机器上运行,需要汇编器翻译成机器语言,然后才能运行;
  • 汇编语言的移植性非常差,不能做到各种在各种cpu上兼容运行;
  • 高级语言(C,C++,JAVA)和你底层的cpu没有关系,都可以运行。不过这种程序写完以后得需要用编译器编译成汇编语言(和cpu系列就有关系了,绑定行强,不能在多种cpu上运行);
  • 交叉编译(cross compil)–编译器支持交叉编译的,即在inter的x64编译成能做arm系列上运行的程序; 
    高级语言所编写的代码就能有较好的移植性;

POSIX 规范–是可移植性操作系统。 
API 应用程序调用接口 
ABI 应用程序二进制调用接口。windows的二进制格式是exe或者msi;Linux的二进制格式是elf

Linux,BSD,AIX,… 称为 Unix-like 
Unix类的系统,它们的API和ABI都兼容

pc机指的就是x86或者x64系列 
小机指的是某些硬件厂商生产的工作站,像ibm的power

指令集: 
分为精简指令集和复杂指令集。指的是支持指令的数量 
power属于精简指令集 
inter系列的cpu属于复杂指令集

高级语言–编译器–编译后–汇编语言(对应cpu支持的源代码) 
汇编语言–汇编器–汇编后–翻译成机器语言(二进制)

底层硬件设计的比较丑陋,各厂家的规格不一样,所用的驱动也不同; 
在底层硬件之上,编写了kernel,能隐藏底层复杂性。kernel研发也就是开发操作系统; 
现在Linux的kernel源代码编译成对应机器的二进制就能在各种的cpu架构上运行; 
系统调用(system call),调用kernel中的功能; 
在kernel之上创造了库(libraies),库是统一而规范;


开源协定

  • GPL
  • BSD
  • Apache

GPL协议(GNU组织的):General Public License 
任何程序只要内置了GPL代码,就遵守GPL协定; 
LGPL: (宽松的GPL协定):Lesser GPL 
调用我的库接口,不用开源

  • Apache:

双线授权: 
Community (社区版): 遵循开源协定 
Enterprise(商业):提供很多商业服务

Apache 组织会: 
ASF: Apache Software Foudation ,风头正盛,旗下的 hadoop、spark 
GNU组织会: 
FSF: Free Software Foudation

开源和闭源区别

  • 闭源: 
    windows 在公司内部开发出来的源代码就直接编译成二进制格式(防止反编译采用了加密)再对外提供。
  • 开源: 
    提供源代码,编译后使用; 
    各种企业捐赠支持开源程序; 
    商业版提供服务赚钱;

程序管理

程序的组成部分:

  • 二进制程序
  • 配置文件(文本或半结构化文件)
  • 库文件(应用程序自己的库,完成二次开发)
  • 帮助文件(文本文件)

程序包管理器 
程序的组成文件打包一个或有限几个文件; 
安装; 
卸载; 
查询;

不同发行版所用到的程序包管理器是不一样的,它们的安装、使用、卸载方式是不一样的

  • Debian: 
    所用的包管理器: dpkg(deb) 
    前端管理工具:apt-get
  • RedHat: 
    所用的包管理器: rpm 
    前端管理工具:yum, 以后就不用了,改为用dnf了。centos7 还是用的yum
  • S.u.S.E: 
    所用的包管理器: rpm 
    前端管理工具:zypper
  • ArchLinux: 
    所用的包管理器: port 
    前端管理工具:
  • Gentoo: 
    安装难度高,安装时需要编译

LFS: Linux From Scratch

rpm包管理器 是现在Linux的工业标准


安装Linux

  • 计算机组成:cpu、内存、硬盘、I/O;
  • 将这些资源切割出来(cpu时序复用,内存和硬盘空间复用、I/O时序复用)把这些资源分配给多个程序,所以操纵系统本身就是虚拟出来的一个计算机;
  • 虚拟机就是在原有的计算机上创建出多个虚拟的计算机,靠软件实现;

虚拟化软件程序: 
vmware workstation 
virtualbox


 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95726

(0)
allanallan
上一篇 2018-04-11
下一篇 2018-04-12

相关推荐

  • 一键编译安装apche脚本—适用于Centos6 和 Centos 7

    此脚本可实现apache,httpd-2.2.34适用于Centos6,和 httpd-2.4.25适用于Centos7,的一键编译安装。
    同时可实现在Centos6 和Centos7 上实现网络远程安装!

    2018-04-23
  • 新开始,新航程

           每一个夏天都是变动的季节,这个夏季我毕业了。大学最后的时光是在实验室度过的,每天都被瓶瓶罐罐所包围,鼻子里不时的飘进乙酸乙酯的香味,研究完了生物柴油的催化,是时候该为自己的未来找一条出路了。         大二的时候出于对计算机的着迷,一不小心点进了51cto,从此就走上了不归路。从计算机网络到linux,再到mysql,我在这个世界里乐此不…

    Linux笔记 2018-07-21
  • Linux 基础

    Linux 基础 一.计算机组成及其功能 当今计算机采用冯·诺依曼架构,必须具备的五大基本组成部件,包括: 1.输入数据和程序的输入设备 2.记忆程序和数据的存储器 3.完成数据加工处理的运算器 4.控制程序执行的控制器 5.输出处理结果的输出设备 计算机基本组成结构图 二.Linux的发行版,不同发行版之间的联系与区别 1.Linux 严格来说Linux是…

    2018-05-12
  • 运维制动化之系统安装 实验

      步骤 0:selinux,iptables 1 安装包 2 启服务 3 修改配置文件;reload,restart 4 测试 网卡模式不要桥接: vim /etc/dhcp/dhcpd.conf option domain-name “magedu.org”; option domain-name-servers 114…

    2018-05-25
  • 主机经过三路由通信

    网络规划 主机 A IP/# 172.16.0.1/16 gatway 172.16.0.2 网段 vm10 172.16.0.0 eth0 IP/# 172.16.0.2/16 路由 R1 eth1 IP/# 10.0.0.1/8 网段 vm11 10.0.0.0 eth0 IP/# 10.0.0.2/8 路由 R2 eth1 IP/# 172.31.0.…

    Linux笔记 2018-05-04
  • yum 常见问题

    yum 常见问题

    Linux笔记 2018-06-06