zoukankan      html  css  js  c++  java
  • 深入理解计算机系统第2版--读书笔记

    第一章  计算机系统漫游
    hello.c就是只由ASCII字符构成的文件称为文本文件,所有其他文件都称为二进制文件。
    系统中所有的信息都是由一串位表示的,区分不同数据对象的唯一方法是读这些数据对象时的上下文。
    hello.c通过GCC编译器翻译成一个可执行目标文件hello分四个阶段:
    1、预处理阶段。预处理器(cpp) hello.i,被修改的源程序(文本)
    2、编译阶段。编译器(ccl) hello.s,汇编程序(文本)
    3、汇编阶段。汇编器(as) hello.o(二进制),字节编码为机器语言指令
    4、链接阶段。链接器(ld)把包含库函数的目标文件和*.o合并成hello(二进制),是可执行目标文件。
    虚拟地址空间分区(从最低的地址开始):
    1、程序代码和数据
    2、堆
    3、共享库。空间中间部分存放像C标准库和数学库这样共享库的代码和数据的区域
    4、栈。用户虚拟地址空间顶部为用户栈
    5、内核虚拟存储器。地址空间顶部的区域为内核保留的。
    文件是字节序列。I/O设备、网络都可以视为文件。
    第一部分    程序结构和执行
    第2章   信息的表示和处理

    用ISO C99来编译程序prog.c:  unix> gcc -std=c99 prog.c
  • 相关阅读:
    Linux安全-通过修改/etc/hosts.deny拒绝远程ssh暴力破解
    JS-二进制的处理者:Blob
    JS-二进制数据缓冲区ArrayBuffer
    axio源码分析
    【js】appendChild()具有移动性
    js实现-二进制数据转换为blob
    实现点击下载到本地的功能
    memo、useMemo、useCallback
    memoization缓存优化
    什么是纯函数?
  • 原文地址:https://www.cnblogs.com/zcwsmile/p/4027810.html
Copyright © 2011-2022 走看看