
转载于:?mod=viewthread&tid=3747&extra=page%3D1
作为一个新人,怎样学习嵌入式Linux?被问过太多次,特写这篇文章来回答一下。
?? ??在学习嵌入式Linux之前,肯定要有C语言基础。汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会)。
C语言要学到什么程度呢?越熟当然越好,不熟的话也要具备基本技能。比如写一个数组排序、输入数字求和什么的。
学C语言唯一的方法是多写程序多练习,编译出错没关系,自己去解决;执行出错没关系,自己去分析。以前我是用
VC来练习C语言的,经常去尝试着写一些C语言竞赛的题目。它们是纯C、纯数学、纯逻辑的题目,不涉及界面这些东西,
很适合煅炼你的编程能力。
?? ????
?? ?? 回到主题,首先我们要明白你的目的是什么,大概来说所谓嵌入式Linux可以分为两部分:底层系统、应用开发。
?? ?? 如果你是想做应用开发,那么你去把C语言、数据结构、JAVA什么的学好吧。嵌入式应用开发和PC上的
应用开发并没有什么特别要注意的。也许你说在嵌入式上要做些优化,是的,要优化,但是未经优化的程序
和PC上的程序开发没什么差别。另外,当你有能力去优化时,你已经不用来问这个问题了。具体到某个例子,
比如说开发界面,在PC上我们用VC;在嵌入式Linux里也许我们用QT也许用Android,这个时候你应该去学学QT、
Android的编程。但是基础还是C或JAVA,在此基础上去熟悉它们的接口。你学过VC的话,也是要花时间去了解
那些类、控件的。
????如果你的目的是想学习底层系统,这是我的专长,倒是可以说一点。
????在回答这个问题之前,我先回答:不少人问我,到底是学驱动还是学应用???
????我只能说凭兴趣,并且驱动和应用并不是截然分开的??
1. 我们说的驱动,其实并不局限于硬件的操作,还有操作系统的原理、进程的休眠唤醒调度等概念。??
?? ??想写出一个好的应用,想比较好的解决应用碰到的问题,这些知识你应该懂??
2. 做应用门槛低,特别是现在的ANDROID,纯JAVA。做应用的发展路径个人认为就是业务纯熟。
?? ??比如在通信行业、IPTV行业、手机行业,你了解行业的需求。所以,当领导的人,多是做应用的。
3. 做驱动,其实我不想称为“做驱动”,而是想称为“做底层系统”,做好了这是通杀各行业。我工作几年,
?? ??做过手机、IPTV、会议电视,但是这些产品对我毫无差别,因为我只做底层。他们的业务跟我没关系。
?? ??当应用出现问题,他们解决不了时,我就会从内核角度给他们出主意,给他们提供工具。??
?? ??做底层的发展方向,个人认为是技术专家。??
4. 其实,做底层还是做应用,之间并没有一个界线,有底层经验,再去做应用,你会感觉很踏实。lunix 怎么上网
?? ??有了业务经验,你再了解一下底层,很快就可以组成一个团队。??
?? ??
?? ??回到怎么学的问题上。嵌入式Linux底层系统包含哪些东西?不要急,举一个例子你就知道了。
1. 电脑一开机,那些界面是谁显示的?是BIOS,它做什么?一些自检,然后从硬盘上读入windows,并启动它。
?? ??类似的,这个BIOS对应于嵌入式Linux里的bootloader。这个bootloader要去Flash上读入Linux内核,并启动它。
2. 启动windows的目的是什么?当然是上网聊天什么的了。这些上网、聊天工具在哪?
?? ??在C盘、D盘上。所以, windows要先识别出C盘、D盘。在Linux下我们称为根文件系统。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-70740-1.html
明天买包“南方芝麻糊”来压压惊
军舰发动机造不出来