Eig*_*ite 4 hardware bare-metal
前几天让我感到震惊的是,我对我期望运行软件的硬件几乎一无所知.我已经做了大约5年的开发,但自从我离开大学以来,我没有考虑过硬件理论/设计.我甚至不再建造自己的机器了,因为,老实说,我宁愿付出额外的一些钱,让Comp Sci辍学让我在店里建造它.
虽然它有什么引擎盖下正在进行的基础知识有很好的理解显然很重要,它是抽象,使远离我们,因为我们真的不需要与错综复杂假惺惺开发者Programmed I/O
或Memory-Mapped I/O
等..
或者我们呢?
请注意,我在谈论你的每日LOB开发人员,而不是专门的裸机人.
那么,定义"平均"你将如何,但总体而言,一个称职的程序员能够多深入潜水?
这取决于您的开发水平.
但在所有的发展中,你可能应该知道基本面.例如,
另一方面,我不认为了解内存映射IO的具体内容,或者了解NAND和NOR闪存之间的区别对于普通的*(桌面/ Web)开发人员来说非常重要.即使对现代CPU体系结构的了解,本身也可能是一门科学,看看它们在过去几年中有多复杂,更不用说现代编译器发出的代码变得越来越难以预测(文章链接表明现在更难以在低级优化时超越编译器).几十年前,它类似于汽车修理工更容易,今天并不是很多人会试图自己修车.
**"平均"的定义可能有所不同.*