我只能说是我处在linux学习的修炼之路上的一个小菜鸟,linux的东西真的太丰富了,让你感觉只要掌握了其中的一个部分,就可以在求职之路上大放光彩,因此我常常感叹自己的弱小和无知,我离着linux的中心是多么的遥远,我只看到众多高耸的山峰。
Bash shell,linux kernel,linux C编程,嵌入式开发,linux 设备(驱动)编程,云计算。。。
前面的几个是我比较关系的方向。我现在主要在学习linux嵌入式编程方面的知识。此外就是复杂的linux编程。我在后面会说一下我对linux编程的浅薄认识。众多的有趣的方向,常常让我们感觉无所适从。我就谈谈我学习linux的故事,以及站在专业角度上的评论和展望好了。
我们张家亮老师曾经提起说LInux的设计是需求驱动型。似乎是这么说的,觉得不对劲。我对linux的感觉就是自由,合作,兼容。
我的故事
第一次接触linux的发行版是ubuntu,我相信ubuntu绝对是linux发行版中最受欢迎的,此外还有很多优秀的发行版,像是fedora,opensuse,我其实是比较喜欢fedora,稳定,优化的也比ubuntu好,而且还站在linux技术的顶端,作为Redhat的桌面版本,技术资源雄厚。高二的时候第一次接触了Ubuntu,那个时候我正好在北京,那次我是骑自行车从山东潍坊的青云山迟骋而去。其实应该是初二的时候第一次接触linux,那个是计算机考试用的系统,我还记得那个小企鹅的标识。(我那个喜欢计算机的朋友给我留下了慧根,因此我选择了信息工程,并且主攻计算机方向的技术。感谢我的那位朋友。)
我舅舅在中科院那边学习,我去了之后,接触了Ubuntu,那时候感觉比较有趣,原来世界上不只是有Windows,那种操作和模式完全颠覆了我对计算机操作系统的认识。当然了,那个时候,仅仅是站在表层去看待这个系统。想想三年来,桌面版的ubuntu变化其实不大。大概是因为cannical公司把精力都放在了ubuntu Touch上了吧。而且,令人欣慰的是手机版本的ubuntu做的真心不错。我还是很喜欢这种概念的,全平台兼容的ubuntu。就是现在风头正盛的win10的那个模式。不过我看ubuntu的这个更加“全平台”一点,应用可以同时部署在所有平台上。势单力薄的ubuntu借助了Qt的技术积累,把Qt作为主要的开发平台。我还是比较喜欢QT。
Qt哒哒哒(图形库)
Qt是linux桌面上最常用的界面开发套件(广义上),Qt是优秀的全平台兼容的图形库(狭义上)。支持mac,win,linux,wp,android,Embedded device。等等吧。我的一个朋友xuetao说在window上Qt会很慢。这个其实很正常,毕竟Qt的构建更加底层。而window就不得而知了。最起码要比window高一层。
QT在linux上构建在X11上,X11构建在X上,X构建在内核上。此外,linux还有一些其他的图形库。例如Gtk。Qt还多用在嵌入式开发中做图形程序,我现在用的arm7的板子,就需要在上面做一个图形程序,显示相关数据,例如所做一个识别物体的程序,把找到的物体标识并且实时的显示出来。QT的跨平台给开发者带来了多多的便利。真的该支持一下。图像识别就用libccv,然后将图像内嵌在QT窗口上。图像采集就用video4linux这个USB图像驱动接口。把图像缓存到内存中。其实这也是非常困难的一个事情,对现在这个水平的我来说,真的还是很难得。
学习linux,你够耐心吗?
学习linux其实真的很有趣,同时也非常具有挑战性,如果你没有耐心,你真的可能当天就卸载了。学习linux是为了学习技术,如果你想把他当做日常使用系统,可能就难于应付了。首先他没有
QQ,这一点很多人就无法忍受了。(我都是用手机的。)学习linux,尤其是初学者会遇到很多坑爹的事情,因为完全区别于window的一些新概念,可能真的让人拿不住头脑。例如说,linux发行版软件源这个东西,就完全让人糊涂。用linux的水货常常问问我,去哪里下载软件,如果非要回答,那么就去软件中心下载,或者去支持linux的厂商那里下载linux版本的软件。真正我们该学会的是通过终端下载软件,这样,我们可以下载到你想要的所有软件包,开发库。初学者想的就是去下载什么什么软件来做开发,但是linux不是这样的。我们完全可以下载相关的库,然后用Vim在写程序,然后去编译链接和调试就OK了。例如你想做opencv的项目,那么通过软件管理器apt-cache search opencv,这个命令查找相关的软件包,然后去下载安装。这些东西就不多少了,毕竟这是指导性的评论文章,不是技术文章。要说技术真的需要积累的。
ubuntu默认的国外的源列表,我们最好是换成国内的。但是校园网更新源的时候会遇到很奇怪的问题,有几个源使无法连接的。以前我是换成公众网的。校园网是不是做了某些特别的处理?但是更新源这件事请就让我一个学姐搞了不知道几天,后来她还是遇到了问题,据说一天解决了。很幸运,通常你会遇到很多网上找不到答案的问题。这真的让人心碎!!!就像我现在遇到的,已经试着解决很多次了,好几个月了。
qtcreator这个应用无法启动,提示说找不到这个libqxcb.so的动态链接库,但是这个库其实真的在/usr/lib下面。但是为什么不行呢?我找到了一个解释,那就是我的这个libqxcb.so应该不是qtcreator需要的那个,而系统友没有解决这个问题的机制。实际上,我怀疑这个xcb的意思是不是libxcb而不是libqxcb反正试了很多方法,解决不了。我一个同学对我说“重装吧”真的不能重装,为了维护这个系统真的付出了很多心血。没有两三年的经验这个东西真的玩不转。
这些是部分qtcreator需要的动态链接库,无论多么狂躁你都不可以放弃。爱情呢?
遇到了困难而且奇葩的问题,坚持解决!集思广益,不要闭门造车!