自己想学Linux + arm方向

现在大二了,马上就要大三了,学校分了专业,本来是计算机科学与技术,要分成计算机科学与技术,网络工程,软件工程三类,可是对于今后的专业课具体的不清楚,分到了软件工程,不是不喜欢,是感觉与自己的爱好相悖了,自己想学Linux+arm的嵌入式,可是这里也有嵌入式,但是好像是Java的手机编程那块,没兴趣,认为以后会浪费很多时间,还有就是我认为学习软件工程太局限了,对于以后的发展不利,我不想介入纯软件的编程中去,我认为学习软件工程考研的话前途比较好,如果本科毕业的话估计也只能做一个程序员了,不能排除那些精通计算机的人年轻但是同样很牛了,我不是天才,接触计算机也不是很早,有很多原因我不想考研。在一个就是计算机科学与技术,这一个可能面广一些,但是学校里面所有的课程都不会出现什么Linux+arm的课程,想学的话就得去培训了,我现在没想过要去参加培训,想自己学习,还有两年的时间,对于学校的现状,对于我的处境,有哪位高人给予一些好的建议,真的对大学有些失望,我感觉压力好大,打上学起就被灌输了上学多么多么好,上完学怎么怎么样的谬论,而且我还傻傻的信以为真,或许名牌大学出来的学生真的是飞黄腾达了,可是想想这些普通高校的学生,同样是拿着父母的血汗钱,同样是在接受者大学式的教育,可是大学啊,你给了这些学生什么啊,养不教父之过,教不严,谁之过啊?不是我抱怨什么,只是我觉得这所谓的大学给予学生的太少太少了,而老师,该做的都做到了吗?很多同学在宿舍天天玩游戏,到考试了突击一下,OK,差不多就过了,可是之后呢?学分修到了,毕业证,学位证都到手了,可是他们真的学到该知道的了吗?除了那些打打杀杀的画面,还有什么啊?!?!?很多人想学东西,可是学什么啊,那些该学啊,以后往哪发展啊,这些都说过吗???大一的时候就知道一周几节课, 感觉大学真的好无聊,试问?就是把这些课都学通了我出去校门能干什么啊?如果我们的大学生走出校门之后无所事事或是不能有所造诣的话,我认为这不是某个人的损失,这是咱们国家的损失,我们从小就学习,我们是国家的花朵,是民族的希望,可是,一代代的年轻人就这样被扼杀在你们为我们编制的梦里面, 我们何以谈强国,走出校门连自己的温饱都解决不了,教育 ,教育,教育,我对咱们的教育很失望啊,教育投资教育投资,到现在,我只知道我是现代所谓素质教育的牺牲品,素有了,但质没了 真的不想多说了,越说越没劲 与其抱怨,倒不如去极力适应,我还是学好我自己的东西重要,Linux + arm 这是自己大学的目标,走自己的路让别人说去吧 ,请求高人指点,该如何学习,具体学习路线,最好是一步一步的详细介绍,学哪些内容看哪本书,还有就是我两年时间勤奋学习能把这可学到什么水平,我认为自己不是很笨哈,谢谢高人指点,感激不尽

小兄弟,你好!
从你的文字中可以看出你是一个有理想有抱负的人,如果真的是这样的话,只要把心放平静,踏踏实实的去努力,一定会很成功的!
下面,我说下我的建议:
我感觉你是想学好计算机的,而且给自己定了一个很明确的目标:嵌入式。我想说,你选的这条路非常正确,嵌入式的热门程度和发展前景已不需证明,每个IT人都知道,后PC时代已经来临;另外,现在对于大多数的中国学生只有深深的投入Linux的怀抱,才能真正的理解计算机,才能在未来的某个阶段成为真正的计算机人才(由衷的感谢推动GUN计划的先哲们)。为什么这么说呢,现在计算机的课程最开始一般是C/C++语言,数据结构等程序设计的知识,其实在我看来,这样安排并不是想让刚刚接触计算机的学生一上来编程就多么多么的牛逼,而是做个铺垫,为接下来的操作系统,计算机组成原理,计算机网络打基础,是为了能很好的理解这些计算机的基础知识,只有这样才能深刻的明白什么是计算机,计算机能做什么,各个细节又是如何实现的。这样思路就打开了,由于计算机中抽象分层的思想无处无在,以后遇到什么问题都可以一层一层的剖析,最后都会归结到这些最基本的知识上,它们才是整个计算机世界的基石。记得,梁肇新曾经说过:我就是程序,程序就是我!很牛逼的一句话。只有在整个计算机世界的思路都融汇贯通后,才能写出真正的好程序。
所以说,虽然你的目标很明确,但也一定要先将这些基础知识打实,不然茫然的去搞arm+linux是会很费时费力的,而且结果也不会很好,因为这些基础的思想决定了你以后能走多远!
如果你还没有形成比较好的思想的话,还是应该先尽快补上。同时,对于嵌入式这方面,可以熟悉一下linux的基本使用,了解一下伟大的GUN思想,熟悉下linux环境下的C程序(嵌入式中C是绝对的NO.1)的编译,调试等。
接下来,就可以开始linux的系统编程了(基础的东西还是不能丢),在这个阶段里你会加深对操作系统,计组,网络的理解,因为系统编程很多都是他们的具体实现。
然后就是arm,没什么好说的,一门语言而已,如果操作系统和计组比较好的话,没问题,一个工具而已。
最后就是嵌入式的开发了,这里需要综合的用到前面的几乎所有东西。还是那句话,如果计算机思想好的话,理解起来还是比较容易的,最大的问题是动手,实践,如果条件允许的话,可以考虑买一块开发板,处理器最好用S3C2410,现在很多场合都拿这个举例,福建的一个公司有块板子卖的不错貌似。
还有一点要提下,目前嵌入式领域,至少在中国,算法这个东西用的还真是不多,也许学久了,会觉的没有创造性,这里,就看你自己了,看你的想法和感觉吧,自己支配花在算法研究上的精力。

大体的框架是这样,当然这是我的想法。现在整理下,还是要再强调下,思想,计算机的思想,一点要把握住!

C语言和数据结构:谭浩强的书,21天学通C,还有最经典的C程序设计,我觉的都不错,关键是语法,熟练就ok,不用太注重书,课本也可以;数据结构同理。这里可以看下代码大全,对编程的思想很有好处,也比较容易看懂。
基础的,重中之重---
操作系统:操作系统的设计与实现,附录里有Minx的源代码。
计算机组成原理:深入理解计算机系统。
计算机网络:谢希仁的就不错,我比较喜欢国外那边计算机网络。
嵌入式------
linux使用:网上很多,没有特别要介绍的。注意装个linux发行版,网络好的话,可以Ubuntu,否则就SUSE或者Fedora吧,都一样。
linux系统编程:很多好书,百度一下就ok,如果时间多的话,多看两本,否则就看Linux程序设计吧。
arm:我没过多在意,所以了解不太多,你可以查下,我看的是arm体系结构与编程。
嵌入式开发:这里比较复杂,我学的时候没有发现一本集大成的书,都是零零散散的,不过后来发现一本,我也只是翻了翻了,你可以试着看看arm嵌入式系统开发:软件设计与优化。这里的东西很多,也很烦人。主要有,交叉编译工具和环境的配置,内核的裁剪,编译与移植,另外还有驱动程序的开发。各个块,网上都有很多资料。
如果你现在努力的学习,上面的东西学完应该没问题,程度嘛,到熟练就不错了,毕业后会有个相当好的工作(不论什么学校)。
之后的发展,就是在工作中学习了,经验的积累,计算机思想的巩固与延伸,另外可以开始看下内核了,内核完全注释,内核情景分析可以在开始的时候很好的让你亲近linux内核。
嵌入式涉及方方面面,不愁没有你展示平台!
希望你能一直坚持下去,为了自己,为了中国嵌入式,为了伟大的GNU!

希望能帮到你。呵~~,困了,今天没事,夜里弄了一晚上东西,出去吃点东西,休息下:)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-19
不排除Linux的前景,但真正用到Linux的产品现在有多少?未来几年有多少?极少。
Linux太难,所以产品开发周期长,太消耗资源,所以硬件开销大增。这些都对实际产品不利。
你的想法很好,想自学arm+一门嵌入式操作系统(Linux属于嵌入式操作系统),首先说明一下arm并不是太难的,若是有单片机基础,自学起来并不吃力,我的建议是大学学好基础部分:arm硬件,汇编,嵌入式C语言编程,嵌入式操作系统,但并不推荐把时间花在Linux上,推荐uc-os2这个操作系统。重要的是基础,万变不离其宗。
第2个回答  2010-06-19
嵌入式的方法步骤:
1、基础知识:
目的:能看懂硬件工作原理,但重点在嵌入式软件,
科目:数字电路、计算机组成原理、嵌入式微处理器结构。
汇编语言、C/C 、编译原理、离散数学。
数据结构和算法、操作系统、软件工程、网络、数据库。
方法:虽科目众多,但都是较简单的基础,且大部分已把握。不一定全学,可根据需要选修。
主攻书籍:the c programming language(一直没时间读)、数据结构-C2。
2、学习linux:
目的:深入把握linux系统。
方法:使用linux—〉linxu系统编程开发—〉驱动开发和分析linux内核。先看深,那主讲原理。看几遍后,看情景分析,对照深看,两本交叉,深是纲,情是目。剖析则是0.11版,适合学习。最后深入代码。
主攻书籍:linux内核完全剖析、unix环境高级编程、深入理解linux内核、情景分析和源代。
3、学习嵌入式linux:
目的:把握嵌入式处理器其及系统。
方法:(1)嵌入式微处理器结构与应用:直接arm原理及汇编即可,不要重复x86。
(2)嵌入式操作系统类:ucOS/II简单,开源,可供入门。而后深入研究uClinux。
(3)必须有块开发板(arm9以上),有条件可参加培训(进步快,能熟悉些朋友)。
主攻书籍:毛德操的《嵌入式系统》及其他arm9手册与arm汇编指令等。 嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。嵌入式系统是软硬结合的东西,搞嵌入式开发的人有两类。一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、Board Support Package(像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式操作系统原理和复杂应用)。
第3个回答  2010-06-23
linux+数据库,经典的搭配,千万别学嵌入,会死在上面,大神出外!!
第4个回答  2010-06-24
嵌入式C/C++编程,数据结构、算法和代码优化,MySQL/SQLite数据库设计,嵌入式Linux体系结构和接口技术,ARM体系结构,Android应用编程,嵌入式Linux系统和内核编程,Android内核实例和驱动编程,WinCE和.Net Micro FrameWork,嵌入式Linux项目实训—编码沟通.
相似回答