永发信息网

是做驱动方面的工作好还是软件方面的工作好

答案:3  悬赏:40  手机版
解决时间 2021-02-16 07:25
  • 提问者网友:呐年旧曙光
  • 2021-02-15 13:01
我现在刚毕业,在学校学的是信息工程专业,属于半硬件半软件的专业,毕业之后很迷茫,不知道做什么行业,在学校我学的比较好的课程类似于微机原理,数字电路之类的,所以自我感觉比较偏爱硬件,但软件学的也还不错,我所有的同学都去了外包公司,做的都是软件开发,而且很多招聘会跑下来觉得软件开发的工作的确很好找,尤其是很多外包公司,有学长建议我可以做驱动方面的工作,但是我又不太了解,所以想问问大家,做驱动和软件开发哪个更有前途呢?我知道做软件要具备C或者JAVA的基础知识,那做驱动又要具备哪些基础知识呢?请大家帮帮我,谢谢!
最佳答案
  • 五星知识达人网友:走死在岁月里
  • 2021-02-15 13:12
做驱动开发空间更大些,目前来看软件开发的人才竞争太激烈了。做驱动开发需要:
1、熟悉Linux内核的内存管理,中断处理,同步机制和任务调度
2、精通C语言,熟悉使用gcc, gdb等工具
3、熟练使用svn, git等版本管理工具
4. 熟悉ARM体系结构

除此之外,最好还能有一定硬件技术基础,能够读懂电路原理图。
全部回答
  • 1楼网友:毛毛
  • 2021-02-15 14:57
咱们是同行,我网络工程专业的,软件确实很好找工作,如果你选择软件的话,现在做IPHONE或者Android平台的软件很吃香,JAVA也很不错。 我对硬件了解不是很多,驱动算是软硬结合了吧,是个不错的点子,等待楼下回答。
  • 2楼网友:山有枢
  • 2021-02-15 13:25
你的这个问题很复杂的,这个涉及到了程序设计语言原理。我想一般的人应该很难理解的吧,我大致的说下:计算机的两个主要组成部分是它内部的存储器及处理器。内部存储器被用来存储程序和数据,处理器则是一组电路,用来实现一系列的基本运算或机器指令,如进行算术运算和逻辑运算的指令。在大多数计算机中,有一些指令通常被称为宏指令,实际上这些指令时通过定义更低层次的指令(称为微指令)来实现的。因为微指令从来不在软件中显示,因此我也无法详尽的表达它的概念。 计算机的机器语言是一套指令。在没有其他支持软件的情况下,机器语言是大多数硬件计算机能够“理解”的唯一语言。理论上,也可以这样来设计和建造一台计算机,即可以使用一种特殊的高级语言作为它的机器语言作为它的机器语言。但这样建造的计算机会十分复杂非常昂贵。此外也会及不灵活,因为很难通过其他的高级语言来使用它。计算机设计中较现实的选择是,在其硬件上实现能够提供普遍需要的基本操作的较低层次的语言,而要求其系统软件生成使用其他高级语言编写程序的接口。 一种语言的实现系统并不是一台计算机上的唯一软件。它还需要一个称为操作系统的大程序集,这个程序集提供高于机器语言层次的基本操作。这些基本操作包括系统资源的管理、输入和输出操作、文件管理系统、程序编辑器,还包括其他各宗普遍需要的功能。因为语言的实现系统需要许多操作系统工具,所以实现系统是于操作系统接口,而不是直接与处理器打交道。 操作系统和语言实现系统被分层放置于计算机的机器语言接口上,可以将这些层次设想为虚拟计算机,这个计算机在高层次上给用户提供使用接口。例如:一个操作系统和一个c程序编译器就是一个虚拟的c计算机。借助于其他编译器,一个计算机能够变成其他类型的虚拟计算机。绝大多数的计算机系统都提供几种不同类型的虚拟计算机。用户程序在这个虚拟计算机的顶端层次上形成另一个层次。可以看下面的图 关于编译:实现程序设计语言的方法可以是三种一般方法中的任何一种。一个极端的方面是,可以将程序翻译成能够在计算机上直接运行的机器语言,这种方法称为编译器实现。这种方法的优越性事,一旦完成编译过程,程序执行速度非常快。大多数程序设计语言的实际实现都是借助于编译器的。被编译器翻译的语言称为源语言。编译的过程以及程序的执行跨越了介个阶段,如图: 后面还有很多,可能陈述不下了,但是可以大致的告诉你,程序的实现方法有三种,分为编译器实现、单纯解释实现、混合实现系统三类。 打字很累的,个人总结,不是网上那些瞎扯的,还要给你弄图,来分,谢谢
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯