zoukankan      html  css  js  c++  java
  • Python学习week1-计算机基础

    1、计算机与操作系统简介

    1.1、计算机组成

    1.2、计算机中断

    # 软中断(si):由应用程序发起对cpu的中断;

    # 硬中断(hi):由硬件设备发起对cpu的中断;

    1.3、cpu平台介绍

    (1)m68000,m68k ---> 摩托罗拉cpu;

    (2)Power---> IMB、第一个多核CPU,功耗大;

    (3)PowerPC ---> IBM、简化版的Power;

    (4)Sparc,UItraSparc ---> SUN公司cpu;

    (5)AIpha ---> DEC的cpu;

    (6)x86、x86_64 ----->英特尔cpu;

    (7)amd64 -----> AMD的cpu,真正意义上的第一颗64位的cpu;

    (8)ARM -----> 现代手机cpu平台,只卖规范,不会直接生产硬件;

    1.4、二进制

    # 二进制:由0和1两个字码来表示的数,基数为2,进位规则为“逢二进一”;

    # 计算机内部识别的最小单位为:字节byte,1byte=8bit;

    0000 0001 = 1
    0000 0010 = 2
    0000 0100 = 4
    0000 1000 = 8
    0001 0000 = 16
    0010 0000 = 32
    0100 0000 = 64
    1000 0000 = 128
    1.5、操作系统
    # 操作系统(OS):通用目的的软件程序,主要功能如下:
    (1)硬件驱动
    (2)进程管理
    (3)内存管理
    (4)网络管理
    (5)文件管理
    (6)安全管理

    2、各大操作系统分支介绍

    (1)BSD分支

      --->Sysv

      --->BSD Lite

      --->FreeBSD--->Mac OS,IOS

      --->NetBSD

      --->OpenBSD:最安全的BSD,一般用于防火墙内核;

    (2)Slackware--->Suse

    (3)Debian--->Ubuntu--->Linux Mint

    (4)Redhat

      --->Redhat 9(2003年停止维护)--->面向PC版本--->Fedora(社区版,版本更新频繁)

      --->RHEL(Redhat Enterprise Linux)--->RHEL 7.0

      --->Centos 7.0

    (5)Gentoo--->Daniel Robbins(BSD作者之一)创建

    (6)LFS--->Linux From Scratech(从零构建linux)

    (7)Android--->Linux+Jvm+Java

    (8)IOS--->FreeBSD+Object-c(swift)

    3、开源协议

    # 开源协议图:

     

    # 开源协议说明:

    (1)BSD授权:鼓励代码共享,但需要尊重作者著作权;

    (2)Apache Licence 2.0:对商业软件友好;

    (3)GPL:出发点是代码开源,免费使用和修改,衍生代码的开源使用,但不允许衍生代码作为闭源的商业软件发布和销售;

    (4)LGPL:是一个主要为GPL类库使用设计的开源协议;(仅调用库,不需要开源)

    (5)GUN:是一个软件组织,并不是协议;

    4、开发接口标准

    4.1、二进制代码

    # 二进制代码:计算机指令,例如:add命令--->汇编器--->二进制格式指令

    4.2、C语言程序的执行过程

    # 预处理--->编译--->汇编--->链接

    4.3、程序调用

    # 程序调用实际上是调用的共享代码模块:库

    windows:dll文件;

    linux:so文件;==>shared object

    4.4、什么是ABI接口

    # 总所周知,windows下的应用程序到linux下是无法运行的;

    # 一个应用程序一旦制作成为二进制格式,其适用的平台也就固定,编译成exe格式的就只能在windows平台一运行,编译成elf格式的就只能在类unix平台运行;

    # 这就是就是由二进制接口规则定义的,也就是ABI;

    # 总结:ABI是一种操作系统接口格式,也是一种规范,定义了系统平台所属;

    4.5、什么是API接口

    # API是一种应用编程接口,程序员一般针对API接口进行编码;

    # windows和linux 的应用程序格式虽然不一样,但是编码接口API是可以兼容的,也就是说:程序员在windows平台下以兼容模式编写的程序源代码,在linux平台是兼容的;

    # 面向库的编程,程序员写的程序源代码是面向API进行的,一旦编译成二进制格式,就是面向ABI了;

    5、用户空间与内核空间

    5.1、User space 与 Kernel space

    # 简单的说:内核空间就是linux内核的运行空间,用户空间是用户程序的运行空间;为了安全,它们是相互隔离的,即使用户程序崩溃,内核也不受影响;

    # 内核空间可以执行任意命令,调用一切系统资源;用户空间只能执行简单的运算,不能直接调用系统资源,必须通过系统接口(又称为system call),才能向内核发出指令;

    例如:

    1 str=“hello” #用户空间
    2 x=x+2
    3 file.write(str) #切换到内核空间
    4 y=x+4 # 切换到用户空间

    上面代码:1和2行是简单的赋值运算,在用户空间执行;3行需要写入文件,就需要切换到内核空间,因为用户不能直接写文件,需要通过内核来完成操作;

  • 相关阅读:
    测试攻城狮必备技能点!一文带你解读DevOps下的测试技术
    华为云FusionInsight MRS:助力企业构建“一企一湖,一城一湖”
    浅谈Delphi过程与函数02 零基础入门学习Delphi21
    浅谈Delphi过程与函数01 零基础入门学习Delphi20
    浅谈Delphi过程与函数02 零基础入门学习Delphi21
    使用MASM07 Win32汇编语言015
    浅谈Delphi过程与函数01 零基础入门学习Delphi20
    冒泡排序V2.0 零基础入门学习Delphi19
    冒泡排序 零基础入门学习Delphi18
    冒泡排序V2.0 零基础入门学习Delphi19
  • 原文地址:https://www.cnblogs.com/soulgou123/p/9365581.html
Copyright © 2011-2022 走看看