相信每一位程序员,大部分都是计算机专业,相信大家都学习过操作系统,很多人不以为然,考试后就把这门课程还给老师了。觉得自己根本不需要理解这个东西,这也许要怪微软了,因为微软把操作系统做得太好了,让用户操作起来非常的流畅,舒适与简单,让用户不用去关心操作系统的底层实现。不过这几年,操作系统似乎变得越来越重要了,几乎所有的程序员面试,无论是后台工程师,运维工程师,前端工程师,都会涉及相关的操作系统的知识,操作系统,真的很重要么?学好操作系统,有什么用?
学习操作系统,才是合格的软件工程师
无论你是后台开发,还是客户端开发或者是前端开发,操作系统都是非常重要的。后台自然不用多说,几乎每一项性能都跟操作系统息息相关,举个简单例子,追加写文件就比随机写文件快得多,使用一个缓冲区比直写快得多,学习过操作系统的,很容易就能理解,没有学习过操作系统的,就只能靠死记硬背,这样知识没有系统的学习,忘得也快。客户端的话,很多人觉得客户端就是APIBoy,不是直接调用系统封装的API就可以了么?我们直到,安卓提供的图片的渲染就有好多不同的API,那么什么时候用哪一个速度更快,这不也是操作系统的知识么?
学习操作系统,才更更快地学习新技术
有时候我们学习新的技术,每个版本都会发布一些新的特性,很多特性其实都跟操作系统息息相关,没有深入学习操作系统,你根本就不知道别人地软件为什么要这么设计,怎么这样做就快了呢?只能一头雾水。学习过操作系统的人,看到Redis在持久化的时候,使用CopyOnWrite技术,一下子就能联想到这是Linux在创建一个新线程的时候,对内存拷贝进行的优化,没学习过的人,看了一周源码,估计都找不着北。
学习操作系统,未来的机会更大
前段时间,有个事情闹得沸沸扬扬,那便是美国封锁了华为很多技术的新闻,让国内对操作系统的研发与生态的建立越来越重视。很多操作系统的设计思想,其实都是非常相似的,这是源于物理硬件的局限,所以,只要你熟悉了操作系统,无论是开发新的操作系统系统还是在新的操作系统上面设配新的软件,都会事半功倍。另外,5G时代的到来,越来越多的智能设备,只有掌握好操作系统的技术,才能快速切入它们,职业是大公司为什么喜欢面试问底层基础的知识,今天找你来拧前轮的螺丝,明天就能换成拧方向盘的螺丝,基础好,才能全面发展!
总结
操作系统,可以说是计算机里面最重要的一门课程之一了,如果你有兴趣,欢迎