unix linux编程实践教程(Linux怎么学)
大家好,今天给各位分享unix linux编程实践教程的一些知识,其中也会对Linux怎么学进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
armlinux安装apkarmlinux安装
安装好arm-linux-gcc后,如何设置环境变量?
以上3个其实都是一样的作用,都是通过改变PATH环境变量。
不同的是:/etc/profile是在启动一个交互登陆shell的时候被调用(通过/bin/login登陆,TTY上的开机登录就是这个)/etc/bashrc则是在一个交互的非登陆shell启动的时候被调用(通过命令行运行,例如在命令行输入bash)所以怎么设置就要看需要,一般来说,像这种设置工具链的环境变量,设置在/etc/profile里会更加好。export是一个用于设置环境变量的指令,但是BASH支持直接设置,所以如果你的机器是BASH作为shell的话(一般Linux都是的),可以不使用export。pathmunge也是一个指令,是一个直接用于添加路径到PATH环境变量的指令。
linux下如何安装安卓的APK包?
1、在linux中安装virtualbox,然后安装制安卓系统,再知安装apk2、尝试安装shashlink,这个是安卓的一个模拟库,一般来说,支持道x86的安卓的apk才可以运行,只支持arm的不能运行。
如何编译armlinux的go?
Golang也就是Go语言,现在已经发行到1.4.1版本了,语言特性优越性和背后Google强大靠山什么的就不多说了。Golang的官方提供了多个平台上的二进制安装包,遗憾的是并非没有发布ARM平台的二进制安装包。ARM平台没办法直接从官网下载二进制安装包来安装,好在Golang是支持多平台并且开源的语言,因此可以通过直接在ARM平台上编译源代码来安装。整个过程主要包括编译工具配置、获取Golang源代码、设置Golang编译环境变量、编译、配置Golang行环境变量等步骤。
注:本文选用树莓派做测试,因为树莓派是基于ARM平台的。
1、编译工具配置
据说下个版本的golang编译工具要使用golang自己来写,但目前还是使用C编译工具的。因此,首先要配置好C编译工具:
1.1在Ubuntu或Debian平台上可以使用sudoapt-getinstallgcclibc6-dev命令安装,树莓派的RaspBian系统是基于Debian修改的,所以可以使用这种方法安装。
1.2在RedHat或CentOS6平台上可以使用sudoyuminstallgcclibc-devel命令安装。
安装完成后可以输入gcc--version命令验证是否成功安装。
2、获取golang源代码
2.1直接从官网下载源代码压缩包。
golang官网提供golang的源代码压缩包,可以直接下载,最新的1.4.1版本源代码链接:
2.2使用git工具获取。
golang使用git版本管理工具,也可以使用git获取golang源代码。推荐使用这个方法,因为以后可以随时获取最新的golang源代码。
2.2.1首先确认ARM平台上已经安装了git工具,可以使用git--version命令确认。一般linux平台都安装了git,没有的话可以自行安装,不同平台的安装方法可以参考:
2.2.2克隆远程golang的git仓库到本地
在终端cd到你想要安装golang的目录,确保该目录下没有名为go的目录。然后以下命令获取代码仓库:
gitclone
大陆地区可能会获取失败,在不翻墙的情况下我试了几次都没成功,原因大家都懂的。好在google已经将golang也托管到github上面,所以也可以通过下面命令获取:
gitclone
视网络情况,下载可能需要不少时间。我2M的带宽花了将近两个小时才下载完,虽然整个项目不过几十兆==
下载完成后,可以看到目录下多了一个go目录,里面即为golang的源代码,在终端上执行cdgo命令进入该目录。
执行下面命令检出go1.4.1版本的源代码,因为现在已经有新的代码提交上去了,最新的代码可能不是最稳定的:
gitcheckoutgo1.4.1
至此,最新1.4.1发行版的源代码获取完毕
3、设置golang的编译环境变量
主要有GOROOT、GOOS、GOARCH、GOARM四个环境变量需要设置,先解释四个环境变量的意义。
3.1GOROOT
主要代表golang树结构目录的路径,也就是上面git检出的go目录。一般可以不用设置这个环境变量,因为编译的时候默认会以go目录下src子目录中的all.bash脚本运行时的父目录作为GOROOT的值。为了保险起见,可以直接设置为go目录的路径。
3.2GOOS和GOARCH
分别代表编译的目标系统和平台,可选值如下:
GOOSGOARCH
darwin386
darwinamd64
dragonfly386
dragonflyamd64
freebsd386
freebsdamd64
freebsdarm
linux386
linuxamd64
linuxarm
netbsd386
netbsdamd64
netbsdarm
openbsd386
openbsdamd64
plan9386
plan9amd64
solarisamd64
windows386
windowsamd64
需要注意的是这两个值代表的是目标系统和平台,而不是编译源代码的系统和平台。树莓派的RaspBian是linux系统,所以这些GOOS设置为linux,GOARCH设置为arm。
3.3GOARM
表示使用的浮点运算协处理器版本号,只对arm平台有用,可选值有5,6,7。如果是在目标平台上编译源代码,这个值可以不设置,它会自动判断需要使用哪一个版本。
总结下来,在树莓派上设置golang的编译环境变量,可编辑$HOME/.bashrc文件,在末尾添加下面内容:
exportGOROOT=你的go目录路径
exportGOOS=linux
exportGOARCH=arm
编辑完后保存,执行source~/.bashrc命令让修改生效。
4、编译源代码
环境变量配置完成自后就可以开始编译源代码。在go目录下的src子目录中,主要有all.bash和make.bash两个脚本(另外还有两个all.bat和make.bat脚本适用于window平台)。编译实际上就是执行其中一个脚本,两者的区别在于all.bash在编译完成后还会执行一些测试套件。如果希望只编译不测试,可以运行make.bash脚本。使用cd命令进入go下src目录,执行./all.bash或者./make.bash命令即可开始编译。由于硬件情况不同,编译耗费的时间不同。在我的B型树莓派编译过程花费了将近半个小时,编译完成后执行的测试套件又花费了差不多一个小时,总共花费了一个半小时左右。
5、配置golang运行环境变量
编译完成后,go目录下会生成bin目录,里面就是go的运行脚本。为了以后使用方法,可以将这个bin路径添加到PATH环境变量中。同样编辑~/.bashrc文件,因为前面设置过GOROOT环境变量指向go目录了,所以只需要在末尾加上
exportPATH=$PATH:$GOROOT/bin
保存后同样执行source~/.bashrc命令让环境变量生效。
至此,golang源代码编译安装成功。执行goversion应该就能看到当前golang的版本信息,表示编译安装成功。
linux下ARM平台编译编写的完成程序如何在windows环境下运行?
直接在window下运行不了。只能在window下安装虚拟机,再安装linux系统,在虚拟机下的linux里gcc编译你的程序.
请问学习ARM嵌入式开发应该准备些什么开发工具和要求?
感请。
这个问题相信是困扰所有嵌入式初学者的难题,
下面课内容是嵌入式学习必学的:C语言;C++;操作系统;计算机组成原理;linux编程;51单片机;arm;硬件编程语言(FPGA);模拟电路数字电路。
1、cc++语言,这是计算机行业的必修课,必须找扎实实学好,可以安装turboc编译器为开发环境,联系C语言编程;安装vc++6.0学习C++编程。
2、操作系统,先在电脑上安装一个vmwareworkstation,然后在vmwareworkstation里安装一个linux(redhat企业版)虚拟机。学习一下操作系统的基本原理,熟悉linux环境下的开发环境,然后你就可以照着《自己动手写操作系统》写个操作系统试试。
3、计算机组成原理,熟悉计算机的基本原理,看看一个计算机的基本组成及软件在里面是如何跑的。
4、《unix/linux编程实践教程》可以说是linux编程的必修课,很不错的一本书,初学嵌入式的朋友可以看看。
5、单片机,其实就是一台电脑,像现在的汽车控制、led控制、屏幕亮光程度控制,它都可以实现,自己买块开发板弄一下,你能学到很多的别人学不到的。
6、arm,现在流行的微机,说白了就是32位的单片机,还可以跑操作系统哦,自己想办法移植一个操作系统上去吧
7、硬件编程语言(FPGA),芯片到底是怎么做成的,学习这门课,你就知道了
8、模拟电路数字电路,硬件的基础,如果可以的话,学习下protel,自己做个硬件pcb板试试。
计算机这行都是偏向于实践的课程,所以要注重动手能力,
学习嵌入式这基本课程的时候,你可以按照这样的顺序来学习:
1:C语言、计算机组成原理、模拟电路数字电路
2:汇编语言、单片机、操作系统、C++
3:硬件编程语言、arm
嵌入式开发大抵分四个方向,硬件、驱动、内核、应用,如果是希望向嵌入式软件方向发展的话,目前常见的是
嵌入式Linux+ARM方向,关于这个方向,大概分3个阶段:
1、嵌入式linux上层应用,包括QT的GUI开发
2、嵌入式linux系统开发
3、嵌入式linux驱动开发嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式。
自学的话你可以尝试以下路线:
(1)C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。推荐书籍:谭浩强的很不错,《TheCProgrammingLanguage》这本经典的教材是老外写的,也有中译版本。
(2)操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。
(3)Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。推荐书籍:《UNIX环境高级编程》(第2版)
(4)了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是起码的要求是能够看懂arm汇编。
(5)系统移植的时候,就需要你从下层的bootloader开始,然后内核移植,文件系统移植等。而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。
(6)驱动开发linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。
给大家把一个嵌入式开发学习大方面的学习框架搭出来了
。
最后呢祝大家能够在学习的路上马到成功。
嵌入式编程怎么学
1、基础知识:
目的:能看懂硬件工作原理,但重点在嵌入式软件,特别是操作系统级软件,那将是我的优
势。
科目:数字电路、计算机组成原理、嵌入式微处理器结构。
汇编语言、C/C、编译原理、离散数学。
数据结构和算法、操作系统、软件工程、网络、数据库。
方法:虽科目众多,但都是较简单的基础,且大部分已掌握。不一定全学,可根据需要选修。
thec(一直没时间读)、数据结构-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汇编指令等。
4、深入学习:
A、数字图像压缩技术:主要是应掌握MPEG、mp3等编解码算法和技术。
B、通信协议及编程技术:TCP/IP协议、802.11,Bluetooth,GPRS、GSM、CDM
A等。
C、网络与信息安全技术:如加密技术,数字证书CA等。
D、DSP技术:,DSP处理器通过硬件实现数字信号处理算
法。
说明:太多细节未说明,可根据实际情况调整。重点在于1、3,不必完全按照顺序
作。对于学习c,理由是c不只是一种语言,一种工具,她还是一种艺术,一种文化,
一种哲学理念、但不是拿来炫耀得东西。对于linux内核,学习编程,读一些优秀代码也是
有必要的。
注意:要学会举一反多,有强大的基础,很多东西简单看看就能会。想成为合格的
程序员,前提是必须熟练至少一种编程语言,并具有良好的逻辑思维。一定要理论结合实践。
不要一味钻研技术,虽然挤出时间是很难做到的,但还是要留点余地去完善其他的爱
好,比如宇宙,素描、机械、管理,心理学、游戏、科幻电影。还有一些不愿意做但必须要
做的!
技术是通过编程编程在编程编出来的。永远不要梦想一步登天,不要做浮躁的人,不
要觉得路途漫上。而是要编程编程在编程,完了在编程,在编程!等机会来了在创业(不要
相信有奇迹发生,盲目创业很难成功,即便成功了发展空间也不一定很大)。
嵌入式书籍推荐
Linux基础
1、《Linux与UnixShell编程指南》
C语言基础
1、《CPrimerPlus,5thEdition》【美】着
2、《,2ndEdition》【美】BrianW.
idM.Rithie(K&R)着
3、《,2ndEdition》(APUE)
4、《嵌入式Linux应用程序开发详解》
Linux内核
1、《深入理解Linux内核》(第三版)
2、《Linux内核源代码情景分析》毛德操胡希明著
研发方向
1、《》(UNP)
2、《TCP/IP详解》
3、《Linux内核编程》
4、《Linux设备驱动开发》(LDD)
5、《Linux高级程序设计》杨宗德著
硬件基础
1、《ARM体系结构与编程》杜春雷着
2、
英语基础
1、《计算机与通信专业英语》
系统教程
1、《嵌入式系统——体系结构、编程与设计》
2、《嵌入式系统——采用公开源代码和StrongARM/Xscale处理器》毛德操胡希明
著
3、《》
4、《嵌入式ARM系统原理与实例开发》杨宗德著
理论基础
1、《算法导论》
2、《数据结构(C语言版)》
3、《计算机组织与体系结构?性能分析》
4、《深入理解计算机系统》【美】RandalE.Bryant DavidO''Hallaron着
5、《操作系统:精髓与设计原理》
6、《编译原理》
7、《数据通信与计算机网络》
8、《数据压缩原理与应用》
C语言书籍推荐
1.《C程序设计语言》
2.PointersonC《C和指针》
3.《C陷阱与缺陷》
4.《专家C编程》
5.------freeCProgr
ams
《编程精粹--Microsoft编写优质无错C程序秘诀》
6.《嵌入式系统编程》
7.《C语言嵌入式系统编程**》
8.《高质量C/C编程指南》林锐
尽可能多的编码,要学好C,不能只注重C本身。算法,架构方式等都很重要。
这里很多书其实是推荐而已,不必太在意,关键还是基础,才是重中之重!
哪里有unix 初级教程下载,PDF版的
unix初级教程:
Unix轻松入门
SCO Unix学习宝典
Unix提高
Unix学习指南
实践大师:Unix awk和sed编程篇
Unix参考大全(上、下册)
Unix进程间通信(第二版)
Unix初级教程
Unix资源大全
Unix学习宝典
Unix常用命令
Unix和Linux权威教程
Unix傻瓜书
Linux Unix揭密
Unix操作手册英文版
[/watermark]
Unix操作系统使用手册
Unix及Oracle主机和网络安全
Unix&Linux网管通鉴
Unix与Windows_NT网络互连
Unix环境下的磁盘分配
新编Unix系统管理实用教程
Unix技术-系统管理
Unix系统概述
Unix网络编程--进程间通讯
Unix进程间通信(第二版)
Unix网络编程:进程间通信
Unix高级环境编程
Unix平台下C语言高级编程指南
Unix网络编程技术与分析
Unix编程艺术