（计算机如何工作） （硬件和软件）
嗨，我是Erica Gomez。我是亚马逊网站的工程师经理。
做技术工作最好的事情之一，就是能每天带自己的狗来上班。
我的工作是确保软件能够正常发布
她的工作是在我的桌子下打盹，还大声的打鼾。
我是Jerome Holman，我是Xbox团队的程序经理，我的工作非常有趣：
简单来说，是将软件硬件组合到一起，让你在Xbox上，玩到喜欢的游戏。
当你往计算机设备里看时，能看到一大堆电路、芯片、电线。
扬声器，接口和其它东西。
这些都是硬件。
你看不见的就是软件。
软件，是计算机上所有的程序，或运行在机器上的代码，
软件可以是任何形式，从应用程序和游戏到
网页，以及在亚马逊网站上，我和同事用来理解客户行为的数据科学软件。
但是软件和硬件是如何结合起来起作用的呢？
让我们从计算机的中央处理器，即CPU开始说起。
CPU是控制计算机其它部分的主芯片，
CPU需要做不同的事情，因此它内部有很多小的简单的部分来处理特定的任务。
它有电路来做简单的数学和逻辑计算。
其它电路用来从计算机的不同部分发送和接收信息，
CPU最神奇之处在于，它知道该使用哪个电路，什么时候用。
CPU会接收简单的命令来告诉它用哪个电路来执行特定的任务。
例如，一个“加”的命令告诉CPU用外部电路来计算新数字，
然后用“存储”命令告诉计算机用不同的电路来将结果存到存储器中，
和数字一样，所有这些简单的命令都用二进制的1和0表示
或者开/关的电信号。
二进制命令存在存储器中，CPU将它一条条的取出来执行，
实际上，这一系列的命令，就是一个非常简单的计算机程序。
二进制代码是软件的基本形式，它控制了计算机上的所有硬件。
现在，没人用二进制写程序了。这样太慢了。
现在，我们写的软件更像是
这样，
或这样，
甚至是这样。
像这样的编程语言，用非常像英语的方法来输入命令。
只需要一条命令就能在屏幕上画一个正方形。
这条高级命令会被转换为成百上千条CPU能理解的简单二进制命令。
软件告诉CPU做什么，
当你听音乐时，又浏览网页，并和朋友聊天，你的计算机会同时运行多个软件。
那么这些程序是如何到计算机上，CPU又如何一起运行它们呢？
为了寻找答案，我们要看一看操作系统。
操作系统是计算机的主程序，它负责管理软件如何使用硬件。
例如，我参与了运行在大多数个人计算机上的Windows操作系统。
操作系统是一种能控制计算机上其它软件的的特殊应用程序。
它让你能通过将程序读取到存储中来安装新程序。
它决定了什么时候程序运行在CPU上，是否程序能操作输入和输出设备。
当你认为计算机同时运行多个程序时，
实际上，操作系统能在一秒钟内非常快速的切换程序好多次，从而共享CPU。
每台计算机里都有一个操作系统来管理软件，控制硬件。
软件是一系列简单的二进制代码组成的命令，
二进制代码只是通过数十亿个电路的电信号。
计算机有能力做各种神奇的事情，
但是只有你能让计算机更聪明、更有用。
当你学习编程来定义自己要解决的问题时，写软件来将创意变为现实时，
这给了你力量来创建对你，你的社区，和整个世界很重要的东西。