如何自学linux驱动开发,做驱动开发需要哪些方面的知识?
做嵌入式应用的话一般的编程就可以了。那么嵌入式驱动开发与内核开发的话就需要学习多个方面的知识。我就把这方面的要求给你交流一下:(一家之言啊,自己多年从事嵌入式开发的一点感悟)嵌入式驱动开发需要了解的知识大概有以下几类:
每一个操作系统都有自己的构架,应该了解驱动在整个系统中的具***置与构建驱动程序的主要事项2 总线知识,比如PCI、USB总线。
3 芯片知识。
驱动其实就是对设备上一些寄存器的配置、CPU与设备本身的通讯以及对不同命令的处理4 要做好驱动,必须对所使用的CPU体系结构有一个比较深刻的认识5 C++基本用不上,主要是C和汇编。
6 做驱动最好要懂内核调试(比如说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;因此,说C是linux编程的主流一点都不过分。这也是linux这个开源环境和本身机制所导致的,就连linus都力挺C,而驳斥C++。虽然没必要拒绝C++,但是,不可否认,C更适合linux~
linux是微软公司研发的系统?
Linux不是微软公司开发的操作系统。
Windows才是微软公司开发的操作系统。
Lunix是一套免费使用和自由传播的类UNIX操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Lunix操作系统它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
需要了解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点解答对大家有用。