美文网首页
计算机基础第四章

计算机基础第四章

作者: 数据革命 | 来源:发表于2019-10-20 21:11 被阅读0次

    计算机基础第四章

    经典回顾

    • 上一章讲了计算机硬件里面的
      • 服务器硬件—硬盘
      • 服务器硬件—阵列卡
      • 服务器硬件—电源
      • 服务器硬件—显卡
      • 服务器硬件—网卡
      • 服务器硬件—热插拔技术
      • 服务器硬件—机柜
      • 服务器硬件—机柜
      • 存储基础知识---存储网络
      • 存储基础知识---存储网络
      • 存储基础知识---存储网络
    • 以后下去图片会很少了,主要以命令为主,当然也有不会有那么多图片了

    操作系统

    • 上几章我们说的都是硬件,接下来我们说说软件,软件首先最重要的就是操作系统,接下我们就来说说操作系统
    • OS: Operating System,通用目的的软件程序
      • 硬件驱动
      • 进程管理
      • 内存管理
      • 网络管理
      • 安全管理
      • 文件管理
    • 操作系统本身就是个软件,他的作用就是来管理硬件
    • 这样就不需要用户来关心硬件的问题了


      1.png
    • OS分类
      • 服务器OS:RHEL, CentOS,Windows Server,AIX
      • 桌面OS:Windows 10,Windows 7,Mac OS,Fedora
      • 移动设备OS:Andriod,IOS,YunOS
    • 开发接口标准
      • ABI: Application Binary Interface
        • ABI描述了应用程序与OS之间的底层接口,允许编译好的目
        • 标代码在使用兼容ABI的系统中无需改动就能运行
      • API:Application Programming Interface,应用程序开发接口
        • API定义了源代码和库之间的接口,因此同样的源代码可以
        • 在支持这个API的任何系统中编译
      • POSIX: Portable Operating System Interface
        • IEEE在操作系统上定义的一系列API标准
        • POSIX兼容的程序可在其它POSIX操作系统编译执行
    • 运行程序格式:
      • Windows: EXE, .dll(dynamic link library),.lib(静态库)
      • Linux: ELF, .so(shared object), .a(静态库)
      • 动态库比较依赖库,但是很小方便
      • 静态库文件比较大,浪费资源
      • 但是库只能工作在,用户空间,所谓用户空间就是,用户需要去调用库
      • 用ldd 命令可以查看文件用到了那些动态库
    [root@CentOS7 ~]# ldd /bin/cat
            linux-vdso.so.1 =>  (0x00007fff29ba0000)
            libc.so.6 => /lib64/libc.so.6 (0x00007f35e842b000)
            /lib64/ld-linux-x86-64.so.2 (0x00007f35e87f4000)
    
    
    • System call 就是一个银行里面分柜台服务员,你要什么他给你调取什么
    • Kernel 就是内核,内核就是来管理我们的硬件的
    2.png
    • 这里说一个命令可以跟踪系统调用
    [root@CentOS7 ~]# strace ls   由于显示太长我就没复制结构了,但是必须要安装哦
    
    [root@CentOS7 ~]# ltrace cat    跟踪命令掉了了那些函数库
    
    [root@CentOS7 ~]# yum  install   命令     必须要安装哦
    
    
    • 系统调用是工作在内核级的
    • Library是工作在用户空间的
    • 这里说出一个命令
    [root@CentOS7 ~]# time ls  可以测试出命令花了多长时间
    anaconda-ks.cfg
    
    real    0m0.002s
    user    0m0.000s
    sys     0m0.002s
    
    

    用户和内核空间

    • 用户空间:User space
      • 用户程序的运行空间。为了安全,它们是隔离的,即使用户的程序崩溃了,内核也不受影响
      • 只能执行简单的运算,不能直接调用系统资源,必须通过系统接口(system call),才能向内核发出指令
    • 内核空间:Kernel space
      • 是 Linux 内核的运行空间
      • 可以执行任意命令,调用系统的一切资源
    • 示例:
      • str = “www.magedu.com" // 用户空间
      • x = x + 100 // 用户空间
      • file.write(str) // 切换到内核空间
      • y = x + 200 // 切换回用户空间
    • 第一行和第二行都是简单的赋值运算,在 User space 执行。第三行需要
      写入文件,就要切换到 Kernel space,因为用户不能直接写文件,必须
      通过内核安排。第四行又是赋值运算,就切换回 User space
    3.png

    命令回顾

    [root@CentOS7 ~]# time ls  可以测试出命令花了多长时间
    
     [root@CentOS7 ~]# yum  install     安装软件
    
    [root@CentOS7 ~]# ltrace cat    跟踪命令掉了了那些函数库
    
    [root@CentOS7 ~]# strace ls  测试软件
    
    [root@CentOS7 ~]# ldd /bin/cat  测试软件用了哪些库
    

    其他链接

    相关文章

      网友评论

          本文标题:计算机基础第四章

          本文链接:https://www.haomeiwen.com/subject/pmgamctx.html