Hi,
I thought this will find a quick answer, but since no one replied yet... :-)
- Get yourself a running Linux system. An easy start would be to set it up on a virtual machine, or to get a raspberry pi/ (https://www.raspberrypi.org/products/raspberry-pi-2-model-b/) (I can recommend this, as it's cheap, easy, and very useful); if you want to start deeper, there are many other affordable single-board computers available, e.g. the beaglebone black (http://beagleboard.org/black) (I never used that one, but I heard it's pretty good)
- I googled for some tutorials, and this one looks very good to me: http://www.ee.surrey.ac.uk/teaching/unix/ (http://www.ee.surrey.ac.uk/teaching/unix/); this should get you quickly up to speed with all the stuff you won't be familiar with as a non-Linux user
- Sometimes you need quick-and-dirty references, which is where I can recommend Wikipedia, e.g. https://en.wikipedia.org/wiki/list_of_unix_commands (https://en.wikipedia.org/wiki/list_of_unix_commands) or https://en.wikipedia.org/wiki/filesystem_hierarchy_standard (https://en.wikipedia.org/wiki/filesystem_hierarchy_standard)
- If you want to go advanced with the shell (the system's command-line), it's probably worth scrolling thrugh the man-pages; they are built-in in the shell, but also available online, e.g. here: https://www.kernel.org/doc/man-pages/ (https://www.kernel.org/doc/man-pages/)
Now to embedded. That's a big story. A set-top box with a web-server/media-server/router-software/etc is embedded. A SOC (system-on-chip) acting as a software layer for some complex digital hardware is embedded. A single-PCB-computer making a LED blink is embedded.
If you simply want to have some small computer sitting in a box doing software things, e.g. some network-based service (e.g. a small whatever-server), any single-board computer will do. There are tons of existing software for web-servers, media-servers, repo-servers, etc. Install it, configure it, hook that board to Ethernet or Wifi, and you're done.
You probably want to hide all the Linux-ness from the outside, make your embedded system look like some smart device. And then you want offer some convenient update-mechanism, which will probably lead you to embedded bootloaders like das u-boot (
http://www.denx.de/wiki/u-boot). However, once you're at that point, Google should suffice :-)
If you want to connect a Linux system to some custom hardware, e.g. through SPI/I2C/GPIO/etc, again I recommend to buy any single-board computer that provides the interfaces you need. Typically they come with a vast library of existing drivers, so that you can communicate with those interfaces simply from a C++-program. Linux also makes it easy to write your own drivers for more fancy pieces of hardware, but that requires quite some knowledge about Linux and C programming. The one book everyone will recommend you about that topic is this one:
http://www.makelinux.net/ldd3/ (
http://www.makelinux.net/ldd3/).
Uuuh, and this is the Altera Forum, isn't it? :-D you can build you own SOC inside an FPGA, with some SDRAM attached to it, and install Linux there:
http://www.alterawiki.com/wiki/linux_for_the_nios_ii_processor (
http://www.alterawiki.com/wiki/linux_for_the_nios_ii_processor). The coolest part about that is that you can e.g. build completely custom hardware to it, e.g. you design some DSP-core, attach an Avalon interface to it, map into the IO-space of your NIOS CPU, then write your own Linux driver to address it, and then you can do blazing fast DSP stuff from a Linux program powered by a custom-taylored FPGA design :-)
I hope that gave you a few ideas of how to start :-)
Best regards,
GooGooCluster