程序员视角的计算机系统 第一章 计算机系统 之旅

一个计算机系统由硬件和系统软件组成,硬件和软件一起工作来运行应用程序。
系统的特定的实现随时间的流逝而改变,但是它的本质性的概念不会改变。
所有的计算机系统都有相似的硬件和软件组件来执行相似的功能。这本书为程序员
而写,程序员们需要在他们的工作中做得更好,这要通过理解这些软硬件的组件是如何
工作的,这些组件如何影响他们的程序的正确性和性能。

对于一个令人兴奋的旅程,你要沉着。如果你决定学习本书的概念,那么你将在一个通向
成为一个稀少的大程序员的道路上,通过对内在的计算机系统和系统对你的应用程序的影响
的理解而豁然开朗。

你将能学习到实践的技能,例如,如何避免奇怪的数字的错误,这种错误是由计算机表示
数据的方式引起的。通过使用聪明的技巧和探索现代处理器和内存系统的设计,你将学习
到如何优化你的C语言的代码。你将学习到编译器是如何实现程序调用的,和如何使用这个
知识来避免来自于折磨网络和互联网软件的缓冲区溢出的脆弱点的安全漏洞。你将学习如
何识别与避免链接期间的严重的错误,这种错误挫败了一般水平的程序员。你将学习如何写
你自己的UNIX外壳程序,你自己的动态存储分配软件包,和甚至是你自己的网络服务器。你
将学习并发的承诺和陷阱,多个处理器核心被集成到一个芯片时的提升性能的主题。

在C编程语言的经典的文本中,克尼根和里奇使用了在图1.1中显示的你好这个程序向读者
介绍了C语言。尽管你好是一个非常简单的程序,为了这个程序能够运行完毕,系统的主要
的部分必须协力工作才行。总之,这本书的目标是当你在你的系统上运行你好程序时,帮助你
理解发生了什么和为什么。

通过跟踪你好程序的生命周期,从程序员创建它开始,直到它在系统中运行,打印出它的
简单的信息,和中止运行,我们开始了对系统的学习。正如我们追踪程序的生命周期,我们
将简明地介绍使用到的关键的概念,术语,组件。稍后的章节中将扩展这些思想。

程序员视角的计算机系统 第一章 计算机系统 之旅相关推荐

  1. 读深入理解计算机系统 - 第一章 计算机系统漫游 - 1.1 信息 = 位 + 上下文

    1.1 信息 = 位 + 上下文 先说一下位,计算机的最小单位,一个位可以取两个值1/0(高电平/低电平)代表两种状态(1个位=1bit). 但是世界事物千千万,无法用一个位来表示,怎么办呢? 某不知 ...

  2. 程序员视角的计算机系统 第一章 计算机系统之旅

    一个计算机系统由硬件和系统软件组成,硬件和软件一起工作来运行应用程序. 系统的特定的实现随时间的流逝而改变,但是它的本质性的概念不会改变. 所有的计算机系统都有相似的硬件和软件组件来执行相似的功能.这 ...

  3. 面向程序员的数据挖掘指南-----第一章:简介

    内容: 寻找事物 本书结构 阅读完本书后你可以做些什么? 为什么数据挖掘很重要?哪些内容可以为我所用? 标题里的"Numerati的古老艺术"是什么意思? 序 如果你每天都能重复做 ...

  4. 程序员读老子,第一章

    <老子>第一章 道可道,非常道.名可名,非常名. 无名天地之始:有名万物之母. 故常无,欲以观其妙:常有,欲以观其徼. 此两者,同出而异名,同谓之玄.玄之又玄,众妙之门. 任何问题的算法都 ...

  5. 程序员的编程艺术第一章

    第一节: 题目:定义一个字符串的坐旋转操作:就是把字符串前面的若干字符移动到字符串的尾部 例如: abcdef  左旋转2位得到 cdefab 我们设计一个简单的思路: 每次平移一个单位,一共平移两个 ...

  6. 软考 程序员教程-第一章 计算机系统基础知识

    软考 程序员教程-第一章 计算机系统基础知识 为了督促自己学习,告别懒惰,在此先给自己定个小目标,请大家监督哟! 目标:一个月内过一遍<程序员教程>,下一个月开始上真题. 简单看了下,我在 ...

  7. 程序员视角的计算机系统 2.1.7 布尔代数的介绍

    程序员视角的计算机系统 2.1.7  布尔代数的介绍 因为二进制的值是计算机如何编码,存储,维护信息的核心,围绕着0和1的值的研究,已经进化 出庞大的数学知识体系.这开始于乔治布尔的1850年左右的工 ...

  8. 第一章 计算机系统体系结构

    1.1 什么是计算机体系结构 本章的第一个概念是计算机系统(computer system). 计算机系统包括读取并执行程序的 中央处理单元(CPU, 保存程序和数据的存储器以及将芯片转换为实用系统的 ...

  9. 【深入理解计算机系统-学习笔记】第一章 计算机系统漫游

    第一章 计算机系统漫游 简介: 我们通过跟踪hello程序的生命周期来开始对系统的学习--从它被程序员创建开始,到在系统上运行,输出简单的消息,然后终止 我们将沿着这个程序的生命周期,简单得介绍一些逐 ...

最新文章

  1. iOS 新窗口在最上层
  2. 页面如何让它不显示标题栏,菜单栏,工具栏,地址栏
  3. 背水一战 Windows 10 (36) - 控件(弹出类): ToolTip, Popup, PopupMenu
  4. Comp-Agg (A Compare-Aggregate Model for Matching Text Sequences)
  5. Knative 快捷操作命令 Kn 介绍
  6. spring2.5+struts2+hibernate+mysql
  7. codeblocks快捷键(转载)
  8. Android.mk中添加宏定义
  9. 分布式与集群(一):我眼中的分布式与集群
  10. centos,apache运维经验
  11. DataGridView - Column named XXX cannot be found
  12. 【爬虫系列之三】URLError异常处理以及Cookie的使用
  13. Python(五):list、tuple
  14. 学Python可以做Web前端开发吗?
  15. Skyline软件二次开发初级——10如何在WEB页面中的三维地图上控制图层对象
  16. 【JY】反应谱的详解与介绍
  17. 局域网远程桌面无法连接到远程计算机,局域网无法远程连接桌面怎么解决
  18. PMSM的MTPA曲线绘制及其参数拟合——基于Matlab的AppDesigner
  19. 一网通支付ios开发
  20. Discuz!x1.5实现在线文档(doc、ppt、pdf)播放

热门文章

  1. MMX指令集系列之二----移位运算和乘法指令
  2. linux通过无线网卡上网,在Kubuntu Linux下轻松使用无线上网卡
  3. 经典唯美爱情说说语录,句句动人心弦
  4. 2GB Turbo Memory(迅盘)开启Dashboard(自定义程序加速)的方法
  5. 英语前缀 2011年8月16日15:55:43
  6. 个人附加作业 201421123108 王坤彬 网络1414
  7. HAUT 1262 魔法宝石 (最短路变形 or 暴力)
  8. Azure机器学习入门(三)创建Azure机器学习实验
  9. llmp重启mysql_LNMP使用中mysql宕机挂掉后自动重启脚本 - 老牛博客
  10. Latex/WinEdt中文编辑