用于学习C,Unix,Linux和embedded式系统的资源

我想学习C,UNIX和LINUX,以及更多关于embedded式系统的知识。 对他们非常感兴趣。 有没有可以指导我的在线课程或网站? 并请build议书阅读学习。

谢谢你的时间。

雅请让你的回答和评论进来,他们对我来说是无价的!

  • K&R的C编程语言
  • 高级UNIX编程
  • UNIX网络编程
  • 计算机程序的结构和解释视频 (在LISP中完成,但非常宝贵的编程课程)
  • 了解Linux内核(有点过时但很好的信息,不要作为福音)
  • Linux设备驱动程序第3版(相当不合时宜,但信息良好,与上述相同)
  • 编写Linux设备驱动程序(相当新,但不像以前那样详细)

  • UNIX时间共享系统 ,这本质上原始的UNIX文件,它可能有助于了解这些来自哪里,不必了解这个旧文件的每一个细节,但我认为它提供了一些很好的背景

我强烈建议在UNIX / Linux上以“UNIX for dummies”作为起点。

网上有很多惊人的资源。 我最喜欢的是麻省理工学院

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/

免费课程。 它们可以是相当深入的,涵盖的不仅仅是计算机科学和数学的更多的学科。

很少的资源,帮助我的C:

  • 由K&R编写的C语言书
  • highercomputingforeveryone.com帮助我最初
  • 斯坦福的编程范式视频

祝你好运!

学习上述所有内容的快速方法是从德州仪器购买基于MSP430的开发板,在Linux机器上安装mspgcc(MSP430的开源编译器),然后编写一个闪烁的基本C程序开发板上的一个LED。

除了上面提到的资源之外,你需要明白为什么你需要这些语言。 编程语言或操作系统本身只会带你远远的 – 例如,如果你在嵌入式平台上编程,通常内存不是很多。 所以你需要编码进行内存优化。 如果你正在进行实时操作,那么你需要理解中断处理等等。我建议你花时间在你计划编写的体系结构(ARM Cortex-M1等)上。 总是有帮助。

有关更多的怪癖,请查看http://en.wikibooks.org/wiki/Embedded_Systems/C_Programming

Orielly的编程嵌入式系统在C和C ++中是一个很好的开始,一旦你有C / C ++清除的基础知识。