当初从单片机开始玩,玩linux也就是直接去做了,中间只有安装linux,学些基本指令的过程。
找些linux项目做做,我当时候是接手一个之前工程师做的linux项目维护开始,后来工作中慢慢熟悉了linux应用开发,再后来抽空看看内核和驱动,在后边的工作中陆续用上了,感觉也就那样子吧。这些大概持续了四五年,大约14年之后就很少再关注linux的细节了,开始关注软件工程,敏捷开发,面向对象什么的,知道现在还是感觉自己在这方面所知甚少,没有达到设计一款软件时候有非常明确方向,并且有非常有效的手段的感觉,还是一些经验的积累,距离目标甚远。
最近的工作需要解决一些linux内核的问题,也会涉及到bootloader,感觉没有什么特别的地方,方向也很明确,只是花点时间去理解一下linux某种特定机制而已:比如3.0之后内核增加的设备树概念,比如从android带来的低功耗管理等等。
linux的问题是一个理解别人做了什么,怎么做的问题。是一个相对很有边界的问题。
但是软件设计本身是一个在不断演进的问题,是一个没有边界的问题,而且很抽象,所以我一直更多花心思在这上面。 |