如何自学linux驱动开发,做驱动开发需要哪些方面的知识?
做嵌入式应用的话一般的编程就可以了。那么嵌入式驱动开发与内核开发的话就需要学习多个方面的知识。我就把这方面的要求给你交流一下:(一家之言啊,自己多年从事嵌入式开发的一点感悟)嵌入式驱动开发需要了解的知识大概有以下几类:
每一个操作系统都有自己的构架,应该了解驱动在整个系统中的具***置与构建驱动程序的主要事项2 总线知识,比如PCI、USB总线。
3 芯片知识。
驱动其实就是对设备上一些寄存器的配置、CPU与设备本身的通讯以及对不同命令的处理4 要做好驱动,必须对所使用的CPU体系结构有一个比较深刻的认识5 C++基本用不上,主要是C和汇编。
6 做驱动最好要懂内核调试(比如说Linux)
为什么搞嵌入式开发都用LINUX环境?
因为LINUX的先天优势导致嵌入式开发大多***用LINUX系统:
1.开源,代码开放,省去了自己编写的麻烦,节约成本而且不会涉及到专利和产权***。
2.功能齐全,对于很多硬件设备都有丰富的驱动程序,只需要移植一下,不需要改动太多。
3.稳定,linux确实比windows要稳定。
4.对于大多数芯片,都有裁剪的配置文件,在Linux内核源代码下,arch/arm/configs中有许多芯片的配置文件。
5.Linux分而治之的思想,可以使得驱动和应用程序并行开发,加快开发速度。
linux最好的编程语言?
linux主流语言:C
一般,一些商业软件或特别的跟系统相关不大的,可以考虑用C++;
在动态网页上还可以用perl、python、java之类的;
一般系统管理员和普通用户,用的最多的恐怕就是bash了,shell可以完成一系列动作和自动化管理。当然,这里也可以用perl或python之类的脚本语言
由此看来,在linux里编程:
1. 接近系统的软件开发必然是C;
2. 系统关联不大的应用程序开发可以用C或C++;
3. 动态网页方面可以用perl或python脚本语言或Java;
4. 日常管理上,当然是bash!
5. 做GUI界面开发的话,很多人用GTK,也有很多人用Qt;
需要了解linux环境下开发J***a吗?
J***a跨平台是因为J***a的运行是在J***a虚拟机上,而J***a虚拟机可以运行在各种操作系统上,所以J***a程序也就能运行在不同的操作系统环境下。
至于在Linux下开发J***a,就关系到你用J***a做什么项目了,J***a的swing技术 也就是图形界面编程基本已经被微软的.NET所取代。所以现在J***a存在的价值主要是J***a对于Oracle数据库的完美支持,而Oracle数据库被大型公司和国企所青睐,也就是说J***a现在主要应用于编写服务器端程序,例如我知道的有:中国电信Dms系统,某车载导航系统,***电信某系统,某银行存取款系统等等。
既然如此,要知道服务器的系统基本都是Unix和Linux,如果你不熟悉Linux,会给你编程带来很大的麻烦。
在公司招聘J***a程序员时,会要求你熟悉Linux系统环境及Linux命令,当然据我所知,有的公司会用Linux系统来开发J***a,如非微软阵营的企业:IBM、Google等等。要知道大多数外企都是不会用微软的操作系统的,因为他们本身就是互相对立的。
所以我建议你,要熟悉Linux的终端命令,熟悉vi的使用,了解Linux操作系统。会给你日后工作和进入外企带来很多方便。
到此,以上就是小编对于linux环境编程 学习的问题就介绍到这了,希望介绍关于linux环境编程 学习的4点解答对大家有用。