• 回答数

    10

  • 浏览数

    143

挂在盒子上723
首页 > 考试培训 > linux培训ppt

10个回答 默认排序
  • 默认排序
  • 按时间排序

宇晨yuchen

已采纳

首先,要学Linux编程,你得会用Linux,也就是得在命令行环境下生存下来。什么叫生存下来呢?就是我现在给你一台主机,键盘,显示器啥的,然后给你一个服务器版的Linux系统的光盘或者其他什么安装盘,你去把这台主机用起来。什么叫用起来呢?你平常用Windows电脑干啥,你现在还用这台电脑干啥。新建文件啊,查看文件,编辑文件,保存文件,复制,移动,删除,打包,解压,联网,下载个什么东西啊等等基本操作你得会。还有软件怎么安装,不仅要熟悉apt-get和yum,还有给你源码的软件怎么安装你得会,另外要熟悉Linux下的文件系统,每个目录是干啥的,目录下的文件是干嘛的,插入一个U盘,如何挂载这个U盘,操作U盘下的文件你得会啊。这个看一本书就行了,《鸟哥的Linux私房菜-基础篇》,记得是基础篇,记得安装Linux系统自己操作一遍,还有一本是服务器篇,你既然是要学Linux编程开发,那就不用看服务器架设篇了。做完这一步,你可以开发了。Linux下开发,两种基本语言,C和C++咯,至于其他人要说Python,Java,Ruby啥的不讨论,因为就讨论Linux下的开发,什么是Linux开发呢?就是利用Linux的API进行开发咯,首先你得会C语言或者C++语言啊,这个去看丹尼斯的《C程序设计语言》,注意是丹尼斯的,C++的就去看《Essential C++》或者《C++ Primer》,然后在Linux下的程序开发,Linux的API是遵循POSIX标准的,自行谷歌什么叫POSIX。Linux下程序开发几大块,文件操作,这个很重要,你要知道Linux下的一个思想叫一切皆文件,可见文件读写多重要了。I/O模型,五大I/O模型,阻塞,非阻塞,复用,信号驱动和异步I/O,环环相扣丝丝相连,概念和操作都要仔细琢磨,最重要的当属复用,就是select,poll和epoll,面试笔试就问这个东西,要知道他们的适用范围和优缺点。进程和线程,包括进程和线程的概念和区别,进程和线程的建立,同步,通信,互斥等等。网络编程,就是socket编程,Linux编程,这个学不好等于啥都没学,这个估计还得了解一下TCP/IP协议,编程方面主要是那几步,申请socket,bind,listen,accept几步,要熟悉种常见的服务器模型,进程池线程池方式的,多进程方式的,复用方式的,最重要的是复用方式的,这部分可以先只写服务器,测试直接用Telnet就好了,加快速度么。其余的就是数据库,这个东西不属于Linux,但是还得会,要不然啥都做不了,看那本《MySQL必知必会》,当然深入的话还得找本专业的书细细看。这个时候就可以真刀真枪的去干点有意思的事了,比如写个终端下的类似于QQ的软件啊,包括服务器和客户端啊,慢慢的增加并发数,比如可以同时支持五千人在线啊,文件传输啊等等。然后学学Qt,熟悉一下图形界面,可以把你的终端下的QQ完全改成图形界面下的。估计到这个时候,你差不多在Linux下进行像样的开发了吧。在这个过程的学习中,相信你已经学会Makefile的编写啊,编译啊,链接啊等等一些细枝末节的东西了,还得反思一下把零散的东西串一串,要系统化。接下来就是继续深入了,Linux为什么这么多人用,好处在哪里,你得去稍微的看看内核源码啊,内核的进线程调度啊,我告诉你,Linux内核的一个链表都够你研究好几节课的。哦,这个时候,数据结构啥的又得翻出来加强一下了不是,计算机网络啥的也得看看,操作系统原理啥的也得看看呢不是,把这些东西放在这里是合适的,前面让你知其然,知道怎么编程怎么做,现在要知其所以然了不是。在学习的过程中,要不断积累和了解最新的东西,最起码要知道个概念,比如分布式,大数据,云计算,机器学习,计算机视觉,JIT等等,形成知识链,这样不会导致你最后不知道学啥。有个建议,一定要学一下Python,一定要学一下Python,一定要学一下Python,重要的事情说三遍。它能极大的提高你的工作效率,也能和C/C++结合在一起用,很nice的语言。最后推荐几本书(前面的包含在内):《鸟哥的Linux私房菜 基础篇》《C程序设计语言》 丹尼斯写的《Linux C编程一站式学习》 宋劲杉写的《Eensstial C++》《C++ Primer》《Effective C++》《Linux网络编程》 宋劲彬写的《Unix环境高级编程》《Unix网络编程》 两部《Linux高级程序设计》 华清远见的《MySQL必知必会》《数据库系统概念》《大话数据结构》《算法导论》《Linux内核情景分析》《深入理解Linux内核》《深入理解计算机系统》《现代操作系统》《深入理解计算机网络》《TCP/IP》的三卷经典书

linux培训ppt

289 评论(13)

多妈elva

在网上下些视频教程最好了,比如国嵌的,培训班就没必要去上了,浪费钱。然后搞块板子自己玩玩。C++主要是想QT编程时候可能用到,linux其他对C++无要求,主要是C。

193 评论(14)

薰妍maggiel

作为一个新人,怎样学习嵌入式Linux

连接:网页链接

作为一个新人,怎样学习嵌入式Linux?被问过太多次,特写这篇文章来回答一下。在学习嵌入式Linux之前,肯定要有C语言基础。汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会)。C语言要学到什么程度呢?越熟当然越好,不熟的话也要具备基本技能。比如写一个数组排序、输入数字求和什么的。学C语言唯一的方法是多写程序多练习,编译出错没关系,自己去解决;执行出错没关系,自己去分析。以前我是用VC来练习C语言的,经常去尝试着写一些C语言竞赛的题目。它们是纯C、纯数学、纯逻辑的题目,不涉及界面这些东西,很适合煅炼你的编程能力。    回到主题,首先我们要明白你的目的是什么,大概来说所谓嵌入式Linux可以分为两部分:底层系统、应用开发。如果你是想做应用开发,那么你去把C语言、数据结构、JAVA什么的学好吧。嵌入式应用开发和PC上的应用开发并没有什么特别要注意的。也许你说在嵌入式上要做些优化,是的,要优化,但是未经优化的程序和PC上的程序开发没什么差别。另外,当你有能力去优化时,你已经不用来问这个问题了。具体到某个例子,比如说开发界面,在PC上我们用VC;在嵌入式Linux里也许我们用QT也许用Android,这个时候你应该去学学QT、Android的编程。但是基础还是C或JAVA,在此基础上去熟悉它们的接口。你学过VC的话,也是要花时间去了解那些类、控件的。

如果你的目的是想学习底层系统,这是我的专长,倒是可以说一点。在回答这个问题之前,我先回答:不少人问我,到底是学驱动还是学应用?

我只能说凭兴趣,并且驱动和应用并不是截然分开的

回到怎么学的问题上。嵌入式Linux底层系统包含哪些东西?不要急,举一个例子你就知道了。

先说到这里吧,嵌入式LINUX里含有bootloader, 内核, 驱动程序、根文件系统这4大块。

一、bootloader:

它就是一个稍微复杂的裸板程序。但是要把这裸板程序看懂写好一点都不容易。Windows下好用的工具弱化了我们的编程能力。

很多人一玩嵌入式就用ADS、KEIL。你能回答这几个问题吗?

你可曾去阅读过?

4.  内存那么大,我怎么知道把"原来存在Flash上的内容"读到内存的"哪个地址去"?   答:这个地址用"链接脚本"决定,在ADS里有scatter文件,KEIL里也有类似的文件。但是,你去研究过吗?

5.  你说重定位是把程序从Flash复制到内存,那么这个程序可以读Flash啊?   答:是的,要能操作Flash。当然不仅仅是这些,还有设置时钟让系统运行得更快等等。

先自问自答到这里吧,bootloader这一个裸板程序,其实有3部分要点:

对硬件的操作,需要看原理图、芯片手册。这需要一定的硬件知识,不求你能设计硬件,但是至少能看懂; 不求能看懂模拟电路,但是要能看懂数字电路。这方面的能力我是在学校里学到的,微机原理、数字电路这2本书(书名忘了)就足够了。但是我怀疑你有无耐心把这2本书看完。我不知道现在有没有更快捷的书。想速成的话,就先放掉这块吧,不懂就问GOOGLE、发贴。另外,芯片手册是肯定要读的,别去找中文的,就看英文的。开始是非常痛苦,以后就会发现那些语法、词汇一旦熟悉后,读任何芯片手册都很容易。对ARM体系处理器的了解, 看杜春蕾的吧,里面讲有汇编指令,有异常模式、MMU等。也就这3块内容需要你了解。

程序的基本概念,王道当然是去看编译原理了。可惜,这类书绝对是天书级别的。劝你若非超级天才还是别去看了。就看我写的<嵌入式Linux应用开发完全手册>和第1期视频吧,别担心,不用花钱。照着视频把硬件相关的实验做了,这些概念就清楚了。我还没有发现第2套讲这些概念的书或视频,允许我盲目吹嘘一回。

对于bootloader,我学习时是先看了,然后自己写程序把各个硬件的实验都做了一遍,比如GPIO、时钟、SDRAM、UART、NAND。把它们都弄清楚了,组台在一起就很容易看懂u-boot了

总结一下,看懂硬件原理图、看芯片手册,这需要你自己去找资料。剩下的,就按<嵌入式Linux应用开发完全手册>和第1期视频的章节目录去学习吧。

二、内核:

想速成的人,先跨过内核的学习,直接学习怎么写驱动。想成为高手,内核必须深刻了解。注意,我说的是了解,我没奢望去写出一个内核。要对里面的调度机制、内存管理机制、文件管理机制等等有所了解。推荐两本书:

三、驱动:

驱动包含两部分:硬件本身的操作、驱动程序的框架。

又是硬件,还是要看得懂原理图、读得懂芯片手册,多练吧。

说到驱动框架,有一些书介绍一下。LDD3,即,老外写的那本,里面介绍了不少概念,值得一读。但是,它的作用也就限于介绍概念了。我基本上是入门之前用它来熟悉一下概念,入门后就扔掉了。

驱动方面比较全的介绍,应该是宋宝华的了,老实说我只看过目录,有不少人说好,这里推荐一下。要想深入了解某一块,绝对是超5星级推荐。你别指望把它读完,1800多页,上下两册呢。我是某一块不清楚时,就去翻一下它。任何一部分,这书都可以讲上2、3百页,非常详细。并且是以某个目标来带你分析内核源码。它以linux 为例,但是原理相通,同样适用于其它版本的linux。

还有没有其他介绍?呵呵,当然有了,韦东山Linux视频第2期。<嵌入式Linux应用开发完全手册>里对驱动讲得不多,不够深入。于是我录制了这期视频。不仅仅教你怎么写怎么改驱动,还教你为什么这样写这样改驱动。

每一个驱动都是现场编写:

培训机构里教的内容,远不及这期视频丰富。我在多个培训机构讲过课,从没看到哪个老师敢每一课都当场讲解当场编写代码,当场测试,除我之外!也没看到哪个培训机构讲完这些内容──因为时间不够,讲完起码要一个月,但是这部分基本只有2周授课时间。

把你手上的开发板所涉及的硬件,都去尝试写一个驱动吧。有问题就先"痛苦地思考",思考的过程中你会把很多不相关的知识串联起来,最终贯通。

四、根文件系统:

大家有没有想过这2个问题:

说一下我的学习经历吧。

总结一下:

3. 视频:韦东山Linux视频第1期(基于S3C2440录制): ARM实验,u-boot,文件系统,初级驱动韦东山Linux视频第1期(基于S3C6410录制): 裸板程序

韦东山Linux视频第2期: 高级驱动

韦东山Linux视频第3期:项目实战

韦东山Linux视频第4期:Android驱动

, 里面有下载地址。

————————————————

版权声明:本文为CSDN博主「韦东山」的原创文章,遵循CC BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:

340 评论(15)

黑白配late

随着网站承载量需求越来越大,很多都将空间搬入了云空间。从而让云计算工程师的受热程度呈直线上升,IT从事者或者学生都想进行学习linux云计算,不过很多人还是对于云计算学习属于摸黑境界。今天给大家科普下:如何入门学习linux云计算?Linux操作系统相比于十年前的普及程度已经有了大大提高,但是由于其桌面操作系统上的可视化窗口操作模式并不像Windows操作系统那样直观、完美,对于一些刚接触Linux的人或者初学者来说入手还是有一定的难度,所以其发展并不是那么迅速。但是近年来Linux已经越来越受到重用,它不再仅仅是一些开源发烧友们之间炫耀资本,而且已经在多方面价值得到了体现,尤其在服务器操作系统方面,已经成为资深运维工程师的首选的操作工具。随着计算机行业的迅速发展,相信Linux操作系统将不仅仅只停留在平台应用上,他将会在更广的空间展现他那独有的优势与魅力。现在对于大多数中国的电脑用户,很少有人自己用Linux操作系统的,而且还有相当一部分人甚至是第一次听说Linux。但这并不奇怪,即使在很多大学生眼里也大都如此。在你们眼里只有Windows,只有微软,比尔盖茨是你们大多数人的偶像。那是微软先入为主的观念造成的,就如我们学习英语一样,如过我们生下来就用英语讲话,周围的人说的也都是英语,那么英语也就自然而然的学会了。而且像汉语一样受我们喜欢。下面尚观教育小编给同学们好好聊一聊。1.忘掉Windows的思维方式我也看过很多有关学习Linux的方法,第一部分基本都是告诉你怎么安装双系统,怎么便利学习。我也是如此,在自己台式机上安装了双系统,但是学习效果并不明显,百思不得其解,一次看到破釜沉舟的故事颇有启发,项羽前锋军救巨鹿,初战少利,项羽便率大军渡过漳河,破釜沉舟以激厉士气。终于杀苏角,虏王离,大败秦军于巨鹿之野。 楚霸王当初能够战胜并不是说他占了多么有利的优势,而是他那一往无前,义无反顾的决心。当装了双系统以后,只要遇到一些问题,就会快速切换到Windows操作系统来查资料,这样虽然便利了我们学习,但是我们的大脑却对问题缺少了思考,基本都是去百度知道,问问什么的查,虽然当时解决问题了,但是过后在回忆当时是怎么解决问题的,脑海却是一片空白。我们装的双系统给自己带来便利的同时也给自己找了太多的借口,到头来却没了学习下去的勇气。所以后来我把我自己的电脑只安装了Linux操作系统,做什么都从上面去做,逼迫自己学安装浏览器,播放器,文档编辑器,等自己一步步的走过来,才发现,有的时候不是我们没能力去办好一件事,而是我们再没办事之前就给自己想好了各种退路。彻底忘记Windows思维方式,在一个只有Linux操作系统环境下生活。如果你想系统的学习Linux,你必需清楚的认识到这一点。如果你真正想系统的学习linux,想用Linux有所作为,那么请忘记Windows的思维方式,思想性的转变比暂时性的技术提高更有用, 而思想上的改变往往是受到我们行动所影响的,有不懂的问题就自己思考,查资料, 实在不会再去找别人的电脑去查,这样就加深了我每次对问题的理解,慢慢感受和习惯Linux的操作方式,总有一天你会真正体验到他的奥妙所在,从而从自己内心深处喜欢他,使用他,而不是为了赶时髦或向人炫耀而使用他。2.眼要精、笔要动、手要勤a.多看一些学习Linux方面的书。要抓住精髓,不要贪多嚼不烂。b.多做笔记,好记性不如烂笔头。c.实践出真知。很多时候我们都是嘴上功夫,而到了真正自己搭建的时候就会发现自己其实一无所知。3.要用心学习Linux。经常看到有人问用什么版本的Linux好,其实只要你认真学习无论什么版本都挺好的。要知道,开发Linux发行版的人都是通读过Linux内核代码,对Linux原理极其精通的人,而且每一个开发团队都对他的发行版做过测试后放出的。那些国际知名的大品牌更是如此。因此,讨论什么版本好并无意义,关键是你是不是真心想学。不过,为了避免曲高和寡,最好选用的人多的版本,比如RedHat CentOS等等。学习Linux不是逛自由市场,选定版本就要静下心来学习。不要今天换版本明天要升级。这样对你没有好处。例如有些人号称用过十几种甚至几十种Linux,向人谈论起来头头是到,好像懂的很多,但是如果你让他去用Linux搭建一个Web服务器,他就什么都不会了。他们把时间都浪费在了版本的转换上了。4.不能盲目学习要熟悉了计算机专业英语,高中毕业的水平就可以轻松的阅读计算机文档了。如果你的英语实在太差了,连最简单的计算机英语文档都看不懂,那么在学习Linux的同时,请赶紧学习英语。如果你想深入学习Linux,看不懂英文文档实在是太难了。写的最好的,最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的。即便是非英语国家的人发布技术文档,也都首先翻译成英语在国际学术杂志和网络上发表。你去看看各大软硬件生产商的官方网站,有哪一个不是用英语作为其主站的?长期用Windows的人会很不习惯这一点,装个软件还要看半天文档,因为Windows用起来实在太简单了。但是如果你想学习Linux就必须学会看各种文档,而大部分的文档都是用英语写的。现很多人甚至连man文档都不会看,有什么命令不会用了就跑到论坛上来问,还装出一副可怜相,乞讨一个命令的用法。有这些时间还不如自己看看man文档,即使你一个一个单词的翻译成中文再自己看都比问别人强,因为别人的回答再怎么详尽都比不上man文档详尽。安装一个新的软件时先看Readme,再看Install然后看FAQ,最后才动手安装,这样遇到问题就知道为什么。否则,说明文档都不看,结果出了问题再来找答案反而浪费时间! 古人说欲速则不达就是这个道理!5.多记Linux命令当你经过一段时间的学习后就应该扩充自己的知识,多学习Linux命令,但是不要在初学阶段就系统的学习Linux命令,初学阶段只要把上课时候学习过的命令练熟就可以了。这就好比学英语,什么语法都不懂,只捧着单词手册背单词是学不会英语的,但是没有单词词汇量英语水平也提不高的。在Linux中学习命令的最好办法是学习Shell脚本编程,Shell脚本比起其他语言来学习简单,但是功能却十分强大。通过学习Shell编程,能让你掌握大量的Linux命令。另外,买一本命令参考手册是必要的,遇到不知道怎么用的命令可以随时查询,这要比查man文档快。特别适合英语不好,看不懂man文档的人。在Linux中,命令可分为系统基本命令和应用程序命令。系统基本命令是所有的Unix类系统都支持的命令,走到哪都不变,只要是Unix类系统上就肯定有。6.深究Linux系统结构以及Linux系统的管理等你对Linux有了一定的认识后,知道了/etc下那些配置文件有什么用,就可以去了解系统结构了。了解系统结构不是要你去看什么文件夹放什么内容,而是要学习一些原理性的东西。比如系统是如何引导的,引导后启动了那些东西。系统中哪些是最基本的库文件,有什么用等等。接下来就可以进一步学习管理系统。比如学习配置各种网络服务器,用Linux搭建网络,这些都是学习Linux系统管理和网络管理的好方法。 到了这个阶段就可以经常上网查查资料,看看论坛精华区文章,论坛可以让你学到一些小知识,小技巧。7.多看看关于计算机相关的专业课程如果你不是计算机专业的,而想把linux学好,就一定要学习专业课程。学习微机原理,操作系统,计算机网络等等专业课程是必需的。为什么同时开始学习linux,有些人学的非常快,不到半年就成了高手,有些人玩来玩去还玩不出名堂,玩了一两年还是菜鸟? 因为那些学得快的人有基础,他们都学过专业课程。同样一篇文档,没有基础的人可能看了三遍还不明白,基础扎实的眼睛扫两下就懂了! 这就是专业和非专业的差别! 因此,要想达到更高的境界就一定要学习基础的专业课程。8.保持虚心的学习态度天外有天,人外有人!保持虚心的学习态度不仅能让你学到更多知识,而且会让你受人尊重。保持这八点,配合马哥教育梳理linux学习路线进行学习,避免走弯路,从而先人一步进行学习。

194 评论(8)

落叶无声2015

说下我的经历。我大学是学的软件工程,在学校要把基础学科学好,操作系统,网络,组原,编译,数据结构和算法。编程的话,我那时候是主攻C++,java也学过。毕业也找了份通信设备制造商的工作,做的嵌入式软件工程师。主要做通信设备上协议的开发,工作中主要学习网络协议,内核编程。 我不知道你到底是想学底层的开发,还是只是想学linux下的应用软件开发。但看你想学linux内核,我就说说我看内核的情况吧。在刚开始工作的时候,我被要求花2个多星期的时间准备一个ppt给整个部门做个报告,内容是linux内存管理。相信你也有点基本概念吧,操作系统中可以这么说,最重要的就是内存管理和文件系统这两大块,可想而知对于我一个新人来讲内存管理压力是多么大。但是我坚持下来了,并通过这两个多星期的学习,真的学到很多东西,所以人有时候就得逼着自己做。内核学习是非常枯燥的,要想学的话就得持之以恒。学内核之前,之前说过的基础学科的知识是必要掌握的,接着就可以开始内核之旅了。首先去买本内核的书吧,understand linux kernel是个不错的选择,英文过的去的话就看英文的,有什么不懂的或难以理解的可以去ChinaUnix论坛上提问,linux书籍有很多,网上搜一下很方便的,给个链接。平时也要结合代码看,的内核直接在网上搜下就能下到。这是我的个人经历,你可参考下。

166 评论(11)

奇奇怪怪的lemon

先安装一次gentoo,如果有毅力就安装lfs,这两个linux发行版如果能在不看笔记情况下装好,你的linux就入门了。再学习linux嵌入,会轻松许多。

320 评论(13)

头发长很慢

韦东山的那本书挺经典,卓越的链接:《嵌入式Linux应用开发完全手册》以S3C2410、S3C2440开发板为例,从分析硬件上电执行的第一条指令开始,到构造出一个类似PDA、基于Linux的桌面GUI系统,带领读者学习、掌握从最底层到最高层的软件编写方法。 《嵌入式Linux应用开发完全手册》全面介绍了嵌入式Linux系统开发过程中,从底层系统支持到上层GUI应用的方方面面,内容涵盖Linux操作系统的安装及相关工具的使用、配置,嵌入式编程所需要的基础知识(交叉编译工具的选项设置、Makefile语法、ARM汇编指令等),硬件部件的使用及编程(囊括了常见硬件,比如UART、I*IC、LCD等),UBoot、Linux内核的分析、配置和移植,根文件系统的构造(包括移植busybox、glibc、制作映象文件等),内核调试技术(比如添加kgdb补丁、栈回溯等),驱动程序编写及移植(LED、按键、扩展串口、网卡、硬盘、SD卡、LCD和USB等),GUI系统的移植(包含两个GUI系统:基于Qtopia和基于X),应用程序调试技术。《嵌入式Linux应用开发完全手册》从最简单的点亮一个LED开始,由浅入深地讲解,使读者最终可以配置、移植、裁剪内核,编写驱动程序,移植GUI系统,掌握整个嵌入式Linux系统的开发方法。1、Linux 基础安装Linux操作系统 Linux文件系统 Linux常用命令 Linux启动过程详解。2、Shell 编程基础Shell简介 认识后台程序Bash编程熟悉Linux系统下的编辑环境。3、Linux 下的 C 编程基础linux C语言环境概述 Gcc使用方法 Gdb调试技术。4、嵌入式系统开发基础嵌入式系统概述 交叉编译 配置TFTP服务 配置NFS服务 下载Bootloader和内核 嵌入式Linux应用软件开发。4、嵌入式系统移植Linux内核代码 平台相关代码分析 ARM平台介绍 平台移植的关键技术 移植Linux内核到 ARM平台 了解移植的概念 能够移植Linux内核移植内核到 ARM9开发板。5、嵌入式 Linux 下串口通信串行I/O的基本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备。6、嵌入式系统中多进程程序设计Linux系统进程概述 嵌入式系统的进程特点 进程操作 守护进程 相关的系统调用了解Linux系统中进程的概念。...网上很多~可以先从虚拟机玩起。A.一般安装一个VMWARE虚拟机,再从网上下载个的光盘镜像。这个比较适合入门linux,当然也有Cygwin的,不过不推荐。B.然后就可以按照上面的步骤学起来了,等把linux的shell和gcc,gdb,系统编程,gui(QT,miniGUI,MicroWin等等)玩好之后,可以买个开发板了,这里就不说明具体品牌了,2410/2440开发板很多的。C.然后开始玩开发板,常用的代码编辑工具有:SourceInsight,UE。还有代码比较工具,BeyondCompare。当然还有,这个是必不可少的,可以先把ARM开发板当单片机开发板玩!先熟悉具体硬件设备的使用,如UART,SPI,LCD控制器等,最后再去玩Bootloader,系统移植,内核,文件系统,应用编程,驱动编程。。。

192 评论(9)

Brita阿菜

如需大数据培训推荐选择【达内教育】,大数据学习课程如下:1、Java语言基础:大数据开发主要是基于JAVA,作为大数据应用的开发语言很合适。【Java语言】基础包括Java开发介绍、Java语言基础、Eclipse开发工具等。2、HTML、CSS与Java:网站页面布局、HTML5+CSS3基础、jQuery应用、Ajax异步交互等。3、Linux系统和Hadoop生态体系:大数据的开发的框架是搭建在Linux系统上面,Hadoop是一个大数据的基础架构,它能搭建大型数据仓库,PB级别数据的存储、外理、分析、统计等业务。4、分布式计算框架和SparkStrom生态体系:有一定的基础之后,需要学习Spark大数据处理技术、Mlib机器学习、GraphX图计算以及Strom技术架构基础和原理等知识。Spark在性能还是在方案的统一性方面都看着极大的优越性,可以对大数据进行综合外理:实时数据流外理,批处理和交互式查询。感兴趣的话点击此处,免费学习一下想了解更多有关大数据的相关信息,推荐咨询【达内教育】。秉承“名师出高徒、高徒拿高薪”的教学理念,是达内公司确保教学质量的重要环节。作为美国上市职业教育公司,诚信经营,拒绝虚假宣传是该机构集团的经营理念。该机构在学员报名之前完全公开所有授课讲师的授课安排及背景资料,并与学员签订《指定授课讲师承诺书》,确保学员利益。达内IT培训机构,试听名额限时抢购。

281 评论(15)

紫童vivi

谈谈如何学习Linux1、假如你从来接触过Linux的话,首先要做的就找一本指导书来学习 2、现在公认的Linux的入门书籍是“鸟哥的私房菜”,讲的很全面鸟哥的私房菜一共分为两部,一部是基础篇,一部是服务器篇3、“鸟哥的私房菜”讲的很全面,可能会包括一些已经过时的知识点,但是这本书是入门Linux必备4、学习Linux的时候,或者学习其他网络知识的时候最重要的就是实践操作所以学习Linux,实践操作是必不可少的5、首先就是要装一个Linux系统,鸟哥开始几章会讲Linux的由来以及怎样安装Linux的系统6、安装Linu系统来学习使用Vmware 虚拟机就行了,不用真机装,没必要7、按照鸟哥私房菜书籍的步骤一步一步照着做,刚开始学习最好让自己的学习环境跟书里的一致,这样可以少很多麻烦,也不至于打击你的学习兴趣8、装完系统之后就是学习操作了,并且照着书里的操作一步步实践当然很多时候你会不明白,这个时候你可以百度一下,很多人说goole,但goole已经XXX百度完全解决你初学时时候遇到的问题9、再然后就是进入某些Linux社区去看看,提问题,或者看看别人所遇到的问题,新手吗?可以去新手频道看看 我推荐的网站是红联社区的新手园地 10、 你看书的时候刚开始是通读,然后是泛读,最后是精读,总之一定要读多几遍11、等你第一次把书通读一遍之后,可以选择一些视频来看推荐是韩顺平的Linux 或者上51cto的Linux 频道,里面有很多好的视频,有些要收费,有些不用一些初级基础视频一般是不收费的,而且讲的也挺好Linux视频我推荐51cto的马哥Linux,很不错,很受欢迎12、上面的这些只是入门,如果想继续深入就要选择一个老师专门系统的学习当然不是说找个老师,而是在网上找到一个教程讲解不错的老师,并且有高中低级系统的知识体系一步步跟着学,这样就差不多了13、Linux是一个系统,一个平台,平常工作中应用的是工作在这个平台的软件,鸟哥第二部服务器篇就会讲解这些,第二部服务器篇就没那么容易看明白14、这个时候就可以选择用百度查找官方文档,或是一些高手的经验博文不断查找问题,解决问题15、学习Linux的时候不要想一口气把所有全部学完,基础一定要打好16、基础篇和服务器篇学的差不多的时候,找工作就行了17、找到工作之后一定要继续学习,因为Linux最注重的是实际工作中的经验18、要是你进入一个比较好的公司,各种平台环境都有,这个时候你要做的就是静下心来学习,汲取养分,这样以后往更高级走才有本钱!19、总之刚开始你把鸟哥两部学完就可以找工作了,至于往后的发展就是要你自己努力学习了,然后在通过公司中那些几十万百万设备的环境,丰富自己的知识!20、Linux 的工资高低,就是你遇到的问题越多,解决的越快,你的工资就高了

360 评论(11)

钮咕噜嘟嘟

作为一个新人,怎样学习嵌入式Linux

连接:网页链接

作为一个新人,怎样学习嵌入式Linux?被问过太多次,特写这篇文章来回答一下。在学习嵌入式Linux之前,肯定要有C语言基础。汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会)。C语言要学到什么程度呢?越熟当然越好,不熟的话也要具备基本技能。比如写一个数组排序、输入数字求和什么的。学C语言唯一的方法是多写程序多练习,编译出错没关系,自己去解决;执行出错没关系,自己去分析。以前我是用VC来练习C语言的,经常去尝试着写一些C语言竞赛的题目。它们是纯C、纯数学、纯逻辑的题目,不涉及界面这些东西,很适合煅炼你的编程能力。    回到主题,首先我们要明白你的目的是什么,大概来说所谓嵌入式Linux可以分为两部分:底层系统、应用开发。如果你是想做应用开发,那么你去把C语言、数据结构、JAVA什么的学好吧。嵌入式应用开发和PC上的应用开发并没有什么特别要注意的。也许你说在嵌入式上要做些优化,是的,要优化,但是未经优化的程序和PC上的程序开发没什么差别。另外,当你有能力去优化时,你已经不用来问这个问题了。具体到某个例子,比如说开发界面,在PC上我们用VC;在嵌入式Linux里也许我们用QT也许用Android,这个时候你应该去学学QT、Android的编程。但是基础还是C或JAVA,在此基础上去熟悉它们的接口。你学过VC的话,也是要花时间去了解那些类、控件的。

如果你的目的是想学习底层系统,这是我的专长,倒是可以说一点。在回答这个问题之前,我先回答:不少人问我,到底是学驱动还是学应用?

我只能说凭兴趣,并且驱动和应用并不是截然分开的

先说到这里吧,嵌入式LINUX里含有bootloader, 内核, 驱动程序、根文件系统这4大块。

一、bootloader:

它就是一个稍微复杂的裸板程序。但是要把这裸板程序看懂写好一点都不容易。Windows下好用的工具弱化了我们的编程能力。

很多人一玩嵌入式就用ADS、KEIL。你能回答这几个问题吗?

答:一般从Flash上指令。

2.  但是Flash一般是只能读不能直接写的,如果我用到全局变量,这些全局变量在哪里?   答:全局变量应该在内存里

3.  那么谁把全局变量放到内存里去?

答:长期用ADS、KEIL的朋友,你能回答吗?这需要"重定位"。在ADS或KEIL里,重定位的代码是制作这些工具的公司帮你写好了。

你可曾去阅读过?

4.  内存那么大,我怎么知道把"原来存在Flash上的内容"读到内存的"哪个地址去"?   答:这个地址用"链接脚本"决定,在ADS里有scatter文件,KEIL里也有类似的文件。但是,你去研究过吗?

5.  你说重定位是把程序从Flash复制到内存,那么这个程序可以读Flash啊?   答:是的,要能操作Flash。当然不仅仅是这些,还有设置时钟让系统运行得更快等等。

先自问自答到这里吧,bootloader这一个裸板程序,其实有3部分要点:

对硬件的操作,需要看原理图、芯片手册。这需要一定的硬件知识,不求你能设计硬件,但是至少能看懂; 不求能看懂模拟电路,但是要能看懂数字电路。这方面的能力我是在学校里学到的,微机原理、数字电路这2本书(书名忘了)就足够了。但是我怀疑你有无耐心把这2本书看完。我不知道现在有没有更快捷的书。想速成的话,就先放掉这块吧,不懂就问GOOGLE、发贴。另外,芯片手册是肯定要读的,别去找中文的,就看英文的。开始是非常痛苦,以后就会发现那些语法、词汇一旦熟悉后,读任何芯片手册都很容易。对ARM体系处理器的了解, 看杜春蕾的吧,里面讲有汇编指令,有异常模式、MMU等。也就这3块内容需要你了解。

程序的基本概念,王道当然是去看编译原理了。可惜,这类书绝对是天书级别的。劝你若非超级天才还是别去看了。就看我写的<嵌入式Linux应用开发完全手册>和第1期视频吧,别担心,不用花钱。照着视频把硬件相关的实验做了,这些概念就清楚了。我还没有发现第2套讲这些概念的书或视频,允许我盲目吹嘘一回。

对于bootloader,我学习时是先看了,然后自己写程序把各个硬件的实验都做了一遍,比如GPIO、时钟、SDRAM、UART、NAND。把它们都弄清楚了,组台在一起就很容易看懂u-boot了

总结一下,看懂硬件原理图、看芯片手册,这需要你自己去找资料。剩下的,就按<嵌入式Linux应用开发完全手册>和第1期视频的章节目录去学习吧。

二、内核:

想速成的人,先跨过内核的学习,直接学习怎么写驱动。想成为高手,内核必须深刻了解。注意,我说的是了解,我没奢望去写出一个内核。要对里面的调度机制、内存管理机制、文件管理机制等等有所了解。推荐两本书:

三、驱动:

驱动包含两部分:硬件本身的操作、驱动程序的框架。

又是硬件,还是要看得懂原理图、读得懂芯片手册,多练吧。

说到驱动框架,有一些书介绍一下。LDD3,即,老外写的那本,里面介绍了不少概念,值得一读。但是,它的作用也就限于介绍概念了。我基本上是入门之前用它来熟悉一下概念,入门后就扔掉了。

驱动方面比较全的介绍,应该是宋宝华的了,老实说我只看过目录,有不少人说好,这里推荐一下。要想深入了解某一块,绝对是超5星级推荐。你别指望把它读完,1800多页,上下两册呢。我是某一块不清楚时,就去翻一下它。任何一部分,这书都可以讲上2、3百页,非常详细。并且是以某个目标来带你分析内核源码。它以linux 为例,但是原理相通,同样适用于其它版本的linux。

还有没有其他介绍?呵呵,当然有了,韦东山Linux视频第2期。<嵌入式Linux应用开发完全手册>里对驱动讲得不多,不够深入。于是我录制了这期视频。不仅仅教你怎么写怎么改驱动,还教你为什么这样写这样改驱动。

每一个驱动都是现场编写:

培训机构里教的内容,远不及这期视频丰富。我在多个培训机构讲过课,从没看到哪个老师敢每一课都当场讲解当场编写代码,当场测试,除我之外!也没看到哪个培训机构讲完这些内容──因为时间不够,讲完起码要一个月,但是这部分基本只有2周授课时间。

把你手上的开发板所涉及的硬件,都去尝试写一个驱动吧。有问题就先"痛苦地思考",思考的过程中你会把很多不相关的知识串联起来,最终贯通。

四、根文件系统:

大家有没有想过这2个问题:

1.  对于Linux做出来的产品,有些用作监控、有些做手机、有些做平板。那么内核启动后,挂载根文件系统后,应该启动哪一个应用程序呢? 答:内核不知道也不管应该启动哪一个用户程序。它只启动init这一个应用程序,它对应/sbin/init。 显然,这个应用程序就要读取配置文件,根据配置文件去启动用户程序(监控、手册界面、平板界面等等) 这个问题提示我们,文件系统的内容是有一些约定的,比如要有/sbin/init,要有配置文件

2.  你写的hello,world程序,有没有想过里面用到的printf是谁实现的?   答:这个函数不是你实现的,是库函数实现的。它运行时,得找到库。 这个问题提示我们,文件系统里还要有库。        简单的自问自答到这里,要想深入了解,可以看一下busybox的,就可以知道init进程做的事情了。 当然,也可以看<嵌入式Linux应用开发完全手册>里构建根文件系统那章。

说一下我的学习经历吧。

总结一下:

硬件方面的书: 微机原理、数字电路,高校里的教材。毕业多年,忘名了。

Linux方面的书:

<嵌入式Linux应用开发完全手册>

,老外写的那本

3. 视频:韦东山Linux视频第1期(基于S3C2440录制): ARM实验,u-boot,文件系统,初级驱动韦东山Linux视频第1期(基于S3C6410录制): 裸板程序

韦东山Linux视频第2期: 高级驱动

韦东山Linux视频第3期:项目实战

韦东山Linux视频第4期:Android驱动

, 里面有下载地址。

————————————————

版权声明:本文为CSDN博主「韦东山」的原创文章,遵循CC BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:

100 评论(10)

相关问答