If you're seeing this message, it means we're having trouble loading external resources on our website.

If you're behind a web filter, please make sure that the domains *.kastatic.org and *.kasandbox.org are unblocked.

Main content

Hardware and Software

Engineering manager Erica Gomez, program manager Jerome Holman, and Microsoft founder Bill Gates explain how a computer's hardware and software work together.

Want to join the conversation?

  • blobby green style avatar for user Arbaaz Ibrahim
    Would it be correct to say that, without an operating system, one can not run programs/software on a computer?
    (38 votes)
    Default Khan Academy avatar avatar for user
    • starky sapling style avatar for user Maicon Maurício
      Not always they are so difficult (but they usually are, as she said). AFAIK, the Arduino microcontroller is an example of software that runs directly on hardware. It uses the C++ language for programming. The catch is that there is a software (more specifically, an IDE on the programmer's PC) for transferring the compiled program into an Arduino board with the click of a button.
      (14 votes)
  • blobby green style avatar for user 😊
    Dearly beloved family i want to learn a web development and programming. Simply put i want to become a Web Developer and A programmer to help create something that will help my community.
    It's unfortunate i had a weaker background in computing.
    Can you suggest a roadmap for me as a beginner?
    I would be glad to hear from you.
    Thanks a lot
    (8 votes)
    Default Khan Academy avatar avatar for user
  • piceratops seed style avatar for user Krasimira Maryanska
    Dear community, I have a question regarding the execution of the INPUT. It is calculated in the CPU, but is this the first stop of the data, when it "enters" the hardware environment? My understanding so far, is that the input gets saved in the computer memory first, from where the corresponding software/program sends commands regarding the management of the data to the CPU. I don`t understand completely the workflow of the data.
    (7 votes)
    Default Khan Academy avatar avatar for user
  • blobby green style avatar for user michaelkalds100
    Is it a good idea to watch these videos if i am trying to learn how to build a computer?
    (5 votes)
    Default Khan Academy avatar avatar for user
  • duskpin ultimate style avatar for user rico
    So in short, Operating Systems run or use algorithms to complete tasks or commands of the user? Am I understanding that correctly? Algorithms are the "catch-all" of to perform everything, right? When algorithms are broken down, they are ultimately made up of binary code at the lowest level?
    (2 votes)
    Default Khan Academy avatar avatar for user
    • male robot hal style avatar for user Cameron
      An algorithm is a step by step procedure on how to do something.
      An algorithm could be executed by a person, a computer, or a machine.

      A program may implement an algorithm in a programming language. It can be reduced into a bunch of 1s and 0s that can be interpreted by a computer as executable instructions. A file of executable instruction is known as an executable.

      An operating system (which is a program itself) runs on the computer and tells the computer when to run other processes, including executables.

      So, not all algorithms are programs.
      e.g. when you learned long division in school, you learned an algorithm on how to do long division
      (it was an algorithm intended for humans, not computers)

      Not all programs are algorithms.
      e.g. Most people wouldn't consider a "hello world" program to be an algorithm.
      A program which does nothing, which is a perfectly valid program, also would not be considered to be an algorithm.

      Programs often include a mix of stuff which implements algorithms, and stuff that doesn't.
      e.g.
      a game might use a collision detection algorithm to see when a hero is hit by lazers,
      but a lot of the code which defines what types of objects are in the game normally wouldn't be considered as algorithms
      (10 votes)
  • blobby green style avatar for user Aniket Gupta
    great video. learned many things about computer. thank you for the video.
    (5 votes)
    Default Khan Academy avatar avatar for user
  • duskpin tree style avatar for user zebby @tim
    is it possible to have 2 operating systems on 1 computer
    (4 votes)
    Default Khan Academy avatar avatar for user
  • blobby green style avatar for user aarnarmark
    Dear awesome community,i have a question, How data are stored when there is no electricity because data are 0s and 1s & 0s and 1s are just on and off and because there is no electicity there are no electric signals and no 0s and 1s.
    (3 votes)
    Default Khan Academy avatar avatar for user
  • male robot johnny style avatar for user Ahmed Hirmoge
    What About Random Access Memory?
    (3 votes)
    Default Khan Academy avatar avatar for user
  • aqualine ultimate style avatar for user Eric Helms 2
    Is it possible if the software can be changed and upgraded to work better than before
    (2 votes)
    Default Khan Academy avatar avatar for user

Video transcript

(lively music) (women laughing) - Hi, my name's Erica Gomez and I'm an engineering manager at Amazon.com. One of the best things about working in tech and at Amazon in particular is that I get to bring my dog with me to work every day. My job is to help make sure software gets out the door and her job is to nap under my desk and snore very loudly. - My name is Jerome Holman and I'm a program manager on Team Xbox, And I have a really fun job. Basically bringing the hardware and the software together to give you all the games that you love on your Xbox. Oh. (laughing) - When you look inside a computing device you see a bunch of circuits, chips, wires, speakers, plugs, and all sorts of other stuff. This is the hardware. But what you don't see is the software. Software is all of the computer programs, or code, running on this machine. Software can be anything from apps and games to webpages and data science software that me and my teams use at Amazon to understand how customers behave. But how do the hardware and the software interact with one another? Lets start at looking at a computer's central processing unit, or CPU. - The CPU is the master chip that controls all the other parts of the computer. A CPU needs to do different things, so inside it has smaller, simpler parts that handle specific tasks. It has circuits to do simple math and logic, it has other circuits to send and receive information to and from different parts of the computer. The real magic of the CPU is how it knows which circuits to use and when to use them. - [Erica] The CPU receives simple commands that tell it which circuit to use to do a specific job. For example, and add command tells the CPU to use its adder circuit to calculate a new number. And then the store command tells the CPU to use a different circuit to save that result into memory. Just like numbers, all of these simple commands can be represented in binary ones and zeros, or on and off electrical signals. The binary commands are stored in memory and the CPU fetches and executes them in sequence one after the other. This sequence of commands is in fact the very simple computer program. - Binary code is the most basic form of software and it controls all the hardware of a computer. These days nobody writes software in binary, it would take forever. Today, the software we write looks more like this, or this, or even this. Programming languages like these let you type in commands in something that looks a lot like english. To draw a rectangle on the screen you just need a single command. This high level command is converted into hundreds or thousands of simpler binary commands that the CPU understands. - Software tells the CPU what to do, but when you're listening to music and browsing the web and chatting with a friend, your computer is running multiple pieces of software all at once. So how do all of these programs get on the computer in the first place, and how can the CPU run them all at once? To find out we'll have to take a look at the operating system. - The operating system of a computer is the master program that manages how software gets to use the hardware of the computer. For example, I helped create the Windows operating system that runs on most personal computers. The operating system is a program with special abilities that let it control the other software on the computer. It lets you install new programs by loading them into your computers memory. It decides when a program is run by the central processing unit, whether that program can access the computer's input and output devices. And when you think your computer is running many programs at once, in reality, its the operating system that's quickly switching between programs, sharing that CPU for fractions of a second. - Inside every computer is an operating system managing software that controls the computer's hardware. The software is as series of commands made of simple binary code, and that binary code is just electrical signals flowing through billions of tiny circuits. - Computers have the potential to do all kinds of amazing things, but the only thing that makes computers smart or useful is you. When you learn to code, you get to define the problem you want to solve and write the software that turns those ideas into reality. That gives you the power to build things that matter to you, your community, and the world.