zoukankan      html  css  js  c++  java
  • 2017-2018-1 20179215 《深入理解计算机操作系统》第一章

    《深入理解计算机操作系统》第一章

     这一章主要是让我们对计算机系统有个整体的了解,系统介于软件与硬件之间,通过软件与硬件的相互交互来运行应用程序.而每个环节又分为各种层次,从而更好的提供上层抽象。理解一个系统的实质的运行机制,才能真正了解程序,了解一些实际发生的情况是什么原理。

     书中也说到通过这一章的漫游你会了解到之后你要投入心力学习的方向,以及学习一些实践的技巧,包括如何优化自己的代码,如何避免缓冲区溢出错误带来的安全漏洞等,深入学习后学会如何编写自己的Unix Shell,自己的动态分配存储包甚至是自己的Web服务器,要想实现这些目标,必须坚实的打下良好的基础。

     就比如我们要了解缓冲区溢出错误带来的漏洞,首先就得了解内存运行机制,以及栈的操作等,我们要理解数据和控制信息存储在程序栈上的方式会引起的后果。为什么溢出错误会带来严重的后果,不就是简单的内存分配不够吗?例如C语言一些非安全字符串:strpy(),strcpy(),strcat(),sprintf(),gets(),scanf()等都是没有边界检查数组和指针的引用的,那么开发人员要如何检查边界?又是新的问题。

     我发现这本书以及《从问题到程序》第一章都有以hello.c为例讲程序编译的过程,并且作者都有强调了解编译系统如何工作是大有益处的,比如我们会了解一个函数调用开销多大?while循环比for循环更有效吗?等等。书中还分析了从键盘上读取hello命令,shell程序将字符逐一读入寄存器,再把它放到内存中在实际的硬件上的流程图。我想作者是在给我们描绘一个整体框架,之后的章节会一一攻破。

  • 相关阅读:
    安装 Visual Studio 出现网络问题,无法连接
    开机时如何默认关闭小键盘
    nginx 443端口配置
    nginx启动提示 nginx: [emerg] the INET6 sockets are not supported on this platfor
    ffmpeg 常用命令
    linux下安装python3.7.2
    Win10的Hyper-V虚拟机上安装Ubuntu后显示分辨率问题
    Hyper-V安装CentOS修改分辨率
    Linux 设置简单密码
    nginx 80端口跳转到443
  • 原文地址:https://www.cnblogs.com/yl-930/p/7900680.html
Copyright © 2011-2022 走看看