I am building a fairly large home automation system comprising of cameras and other sensors. I experimented with a Raspberry Pi, but it simply wasn't able to handle the load. Therefore I want to know if an Intel i3 can be programmed and used directly from the motherboard.

I know it sounds ridiculous but I'm on a budget and I happen to have an old i3 processor. If yes, what kind of operating system would be my best choice or is it possible to program it baremetal without an OS? Both of these would be great but i would prefer baremetal despite the steep learning curve.

If anyone has done baremetal programming on i3, please post a few links.

  • \$\begingroup\$ have you tried baremetal programming with the RPi. write asm for arm \$\endgroup\$
    – user16222
    Feb 14, 2016 at 13:02
  • \$\begingroup\$ @JonRB yeah , i have tried with rpi \$\endgroup\$
    – xava
    Feb 14, 2016 at 13:03
  • \$\begingroup\$ @jippie, never seen baremetal in Computer Science discussions \$\endgroup\$
    – xava
    Feb 14, 2016 at 13:04
  • 1
    \$\begingroup\$ PIC and AVR are embedded microcontrollers. An i3 is not, it is a full-blown microprocessor that is extremely complex and is capable of running a full desktop OS. So it is really a better fit over at stack overflow. \$\endgroup\$ Feb 14, 2016 at 15:47
  • 1
    \$\begingroup\$ This project sounds like an enormous undertaking, and something that would take a single person years to finish, if they got that far... \$\endgroup\$
    – Matt Young
    Feb 14, 2016 at 16:11

1 Answer 1


Of course it's possible to build and run an i3-based computer with no OS. How do you think the OS starts up in the first place? But it's a very deep and complicated stack.

I assume that what you have is an Intel i3 mounted on a regular PC motherboard. If you only have a bare processor, just put it down and back away. It has hundreds of pins ferchrissakes.

Intel processors start up more or less the same way they did 30 years ago, when everyone was running DOS. The processor starts up in real mode and begins executing code at address 0xFFFFFFF0. (If you're familiar with Intel real mode you might recognize this address as being 16 bytes from the end of the real mode memory space.) If you burn your program into flash memory at this address, the processor will run it. Assuming your motherboard supports upgrading the firmware (most do now), this should be possible. But you're going to be in real mode, so unless your program can run in one megabyte of memory, you'll have to figure out how to set up protected mode, then figure out out how to access peripherals, etc. Is that what you want?

Or, if what you have is really a PC with an i3, you could let the processor boot into the existing firmware on the board and then let the firmware load your code from a device like a hard drive or USB storage device instead of the OS. But you're still in more or less the same position, running at a very low level in a very complex environment.

I found this document from Intel that summarizes the "minimum steps" necessary to boot an Intel processor. It's 26 pages long.


Not the answer you're looking for? Browse other questions tagged or ask your own question.