【Linux02】LInux入门

       
1、LInux操作系统发展与演变

  ENIARC:

    CUP:运算器、控制器。寄存器、缓存

    存储器:内存、RAM

    Input:指令+数据

    Output:结果

  程序:指令+数据    算法+数据结构

  字节是最小存储单位,cpu以字节的形式进行读取,32位操作系统一次可以读取32bit   2^32=2^2 * 2^10 * 2^10 *2^10 bit =4GB

  内存是编址的存储单元

  单任务: CPU和内存速度不匹配,CPU空闲

  多任务:中断系统

    Bell,MIT,GE=Mutics

    DEC:PDP-汇编语言

      Unics = unix(1969)

      B:Dennis Ritch,C

      Berkeley:

        Bill Joy, BSRG,1977, BSD(Berkeley System Distribution)

     Mircrosoft: Bills Gates

     SUN: Bill Joy

     Apple:XEROX

    1985: Richard Stallman

      GNU: GNU is NOT Unix

          GPL:General Public License

          FSF:Free Software Foundation

          X-windows

          gcc: GNU C Compiler

          vi; visual interface

    Unix二次发行版

      SUN:Solaris

      IBM:AIX

      HP:HP-UX

    Andrew: Minix, 4000+行

     1990:BSD

    1991年8月: Linux

    GPL

2、操作系统改概念

    操作系统为每个程序虚拟出一个美好花园,让每个程序觉得只有自己独占硬件系统,

    程序是静态,进程是动态

    广义上的操作系统:Kernel+Applications

    狭义上的操作系统:Kernel

    GNU提供Applications,Linus提供Kernel,就成了GNU/Linux,简称Linux

        GNU/Linux是以源码(文本)的形式提供
        大教堂式开发

        集市式开发

            Mac:BSD

             选定了方向就一直坚持下去

    OS的接口有两类:

            GUI:Graphic User Interface

                  GNome:C,GTK

                  KED: C++,QT
            CLI: Command LIne Interface
                  bash
                  zsh
                  sh

3、操作系统的功能:
     驱动程序
     进程管理
     安全管理
        网络管理
        文件系统
            ......
    API:Application Program Interface
        程序员面对的编程接口
        POSIX:Portable Operating system
            是为了不同操作系统提供统一的编程接口,它会把统一的API转化成不同系统的ABI
            硬件-->Kernel(system call)-->Library-->POSIX
    ABI:Application Binary Interface  windows(exe,msi),linux(deb,elf)
        程序运行面对的运行接口
     不同系统的API是一样的,不同系统的ABI不一样,中间通过POSIX转化,使得不同系统上开发的程序可以相互移植运行
    linux和window的API兼容,编译后的ABI不兼容
    Unix-Like的系统API和ABI都兼容

4、Linux 发行版

  GNU:
        不同厂商把Linux源码编译成二进制格式运行称为Linux的发行版
        主要发行版:
        1、Debian:   更轻巧,对技术能力要求更高
                Ubuntu
                        mint
                knopix
        2、Slackware
                S.u.S.E
                    OpenSUSE
        3、Redhat
                Redhat 9.0
                    Redhat Enterprise Linux: RHEL  主要是出问题了,只提供源码,编译成二进制运行要收服务费
                            CentOS:Community enterprise OS
                Fedora Core
        4、Gentoo
        5、ArchLinux

    软件版本号
        major.minor.release   2.1.3

        Linux:0.99, 2.2, 2.4, 2.6, 3.0, 4.0
                www.kernel.org
        GNU:
                vi
                gcc
    发行版也有自己的版本号
        RHEL:5.x, 6.x, 7.x
        Debian: 8.x
        OpenSuSE:13.x

5、Linux基础
    CPU架构:
        x86
        x64(amd64)兼容x86
        m68000:摩托罗拉
        arm:手持智能设备
        ultrasparch:SUN
        power:IBM
        MIPS
        alpha:HP-ux
    闭源:不提供源代码
    开源协定:
        GPL:General Public License 最为严格的开源
            LGPL:Lesser GPL
            FSF:Free Software Foundation
        BSD:宽松的GPL
        Apache:宽松的GPL
            ASF:Apache Software Foundation
    双线授权:许多人采用的方式
        Community:遵循开源协定
        Enterprise:更易用,收费
    
    程序管理
        程序的组成部分
            二进制程序
            配置文件
            库文件(二次开发)
            帮助文件
        程序包管理
            把程序组成的文件打包成一个或有限几个文件
            安装:把程序的各部分文件放在指定目录下
            卸载:把程序的各部分文件输删除
            Debian:dpkg, apt-get
            Redhat:rpm,yum(dnf)
            S.u.S.E:rpm, zypper
            ArchLinux:port
            Gentoo:
            LFS:Linux From Scratch

    #localectl set-locale LANG=zh_CN.utf8  //设置中文



            

      



      


上一篇:pkg-config 详解


下一篇:c-比较timespec值