多处理器编程的艺术
❶ INTERNET的发展简史!!!!
如今网络已经成为我们生活中不可或缺的一部分了,Internet、局域网,甚至手机通信的GPRS,生活处处反映着网络的力量。便随着网络的发展,拉动了一些新兴产业,如网络游戏,网络聊天,网上影视下载,的飞速发展。同时,网络传媒,电子商务等给更多企业带来了无限的商机。然而,我们今天所接触的丰富多彩的互联网络又是如何发展来的呢?让我们一起回顾一下互联网络的发展历史。
网络发展最初可以追溯到20世纪50年代,当时人们尝试把分别独立发展的通信技术和计算机技术联系起来,使得在技术上为今后的计算机网络的出现做好了准备。同时建立了一些基础的理论性的概念。这个时期,计算机技术正处于第一代电子管计算机向第二代晶体管计算机过渡期。第一代计算机的特点是操作指令是为特定任务而编制的,每种机器有各自不同的机器语言,功能受到限制,速度也慢。另一个明显特征是使用真空电子管和磁鼓储存数据。第二代计算机用晶体管代替电子管,还有现代计算机的一些部件:打印机、磁带、磁盘、内存、操作系统等。计算机中存储的程序使得计算机有很好的适应性,可以更有效地用于商业用途。在这一时期出现了更高级的COBOL(Common Business-Oriented Language)和FORTRAN(Formula Translator)等语言,以单词、语句和数学公式代替了二进制机器码,使计算机编程更容易。这个时候的通信技术经过几十年的发展已经初具雏形了,正是这时奠定了今后网络发展的基础,为网络的出现做好了前期的准备。
有了第一阶段的理论基础,网络进入第二个发展阶段,即上个世纪的六十年代。正值冷战时期,美国为了防止其军事指挥中心如果被苏联摧毁后,军事指挥出现瘫痪,于是开始设计一个由许多指挥点组成的分散指挥系统,以保证当其中一个指挥点被摧毁后,不至于出现全面瘫痪的现象。并把几个分散的指挥点通过某种通讯网连接起来成为一个整体。终于在1969年,美国国防部高级研究计划管理局( ARPA - - Advanced Research Projects Agency ),把4台军事及研究用电脑主机联接起来,于是ARPANET网络诞生了,ARPANET是计算机网络发展中的一个里程碑,是Internet出现的基础。这个时候,ARPANET技术还不具备推广的条件。所以这个时期,网络仅仅是用于军事。在某种意义上讲,是冷战促使了网络的诞生。随着网络的出现,诞生了一种新的通信技术,这就是分组交换技术,它是随计算机实现网络通讯而产生的。这种技术是将传输的数据加以分割,并在每段前面加上一个标有接受信息的地址标示,从而实现信息传递的一种通讯技术。分组交换技术也是六十年代网络发展的重要标志之一。
差不多是每十年就是一个阶段,二十世纪七十年代中期,网络发展进入了第三个阶段。随着计算机技术的快速发展,出现了个人电脑。促进了网络技术的发展。各种局域、广域网发展迅速,计算机生产厂商也开始开发自己的计算机网络系统。1974年ARPA的鲍勃·凯恩和斯坦福的温登·泽夫合作,提出TCP/IP协议。
八十年代可以说是网络发展中非常重要的一个十年,首先是1983年出现了可用于异构网络的TCP/IP协议,作为BSD UNIX操作系统得一部分,TCP/IP协议得到了认可,逐步流行起。也就是这时,真正意义上的Internet诞生了。时隔一年,日本建成了JUNe t网络,
(Japan Unix Net work)。1985年,美国科学家基金会(NSF)组建NSFNet,美国的许多大学、政府资助的研究机构甚至一些私营的研究机构纷纷把自己的局域网并入NSFNet中,使得其迅速扩大,1986年,NSFNet网络奠定了其成为今后internet主干网的地位的基础,当时其速度是56Kb p s。三年之后的1989年, internet的速度已经提升为速1.54Mb p s ,也出现了最早的internet服务提供商(ISP),伴随着www(World Wide Web)全球广域网的出现,诞生了世界上第一个超文本浏览器/编辑器。
1991年,internet开始用于商业用途,internet的商业化,成为internet发展的一剂催化剂,使得它以空前的速度迅速发展,服务器的增多,连入网络的计算机数目的增多以及主干网速度的提升,都为商业的发展提供了广阔的空间,同时商业的发展也影响着网络的发展。
如今随着网络技术的成熟,高速局域网技术迅速发展,传输速率为10Mb p s的Ethernet的广泛应用,IP电话服务,更高性能的Internet2的发展,使得网络已经渗入到了商业,金融,政府,医疗,科研,教育,等各个社会部门。使得网络成为了我们生活中不可缺失的一个重要组成部分。
❷ 自学嵌入式的流程是什么
1、基础知识:
目的:能看懂硬件工作原理,但重点在嵌入式软件,特别是操作系统级软件,那将是我的优
势。
科目:数字电路、计算机组成原理、嵌入式微处理器结构。
汇编语言、C/C++、编译原理、离散数学。
数据结构和算法、操作系统、软件工程、网络、数据库。
方法:虽科目众多,但都是较简单的基础,且大部分已掌握。不一定全学,可根据需要选修。
thec++programminglanguage(一直没时间读)、数据结构-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技术:DigitalSignalProcess,DSP处理器通过硬件实现数字信号处理算
法。
说明:太多细节未说明,可根据实际情况调整。重点在于1、3,不必完全按照顺序
作。对于学习c++,理由是c++不只是一种语言,一种工具,她还是一种艺术,一种文化,
一种哲学理念、但不是拿来炫耀得东西。对于linux内核,学习编程,读一些优秀代码也是
有必要的。
注意: 要学会举一反多,有强大的基础,很多东西简单看看就能会。想成为合格的
程序员,前提是必须熟练至少一种编程语言,并具有良好的逻辑思维。一定要理论结合实践。
不要一味钻研技术,虽然挤出时间是很难做到的,但还是要留点余地去完善其他的爱
好,比如宇宙,素描、机械、管理,心理学、游戏、科幻电影。还有一些不愿意做但必须要
做的!
技术是通过编程编程在编程编出来的。永远不要梦想一步登天,不要做浮躁的人,不
要觉得路途漫上。而是要编程编程在编程,完了在编程,在编程!等机会来了在创业(不要
相信有奇迹发生,盲目创业很难成功,即便成功了发展空间也不一定很大)。
嵌入式书籍推荐
Linux基础
1、《Linux与UnixShell编程指南》
C语言基础
1、《CPrimerPlus,5thEdition》【美】StephenPrata着
2、《TheCProgrammingLanguage,2ndEdition》【美】BrianW.KernighanDav
idM.Rithie(K&R)着
3、《,2ndEdition》(APUE)
4、《嵌入式Linux应用程序开发详解》
Linux内核
1、《深入理解Linux内核》(第三版)
2、《Linux内核源代码情景分析》毛德操胡希明著
研发方向
1、《UNIXNetworkProgramming》(UNP)
2、《TCP/IP详解》
3、《Linux内核编程》
4、《Linux设备驱动开发》(LDD)
5、《Linux高级程序设计》杨宗德著
硬件基础
1、《ARM体系结构与编程》杜春雷着
2、S3C2410Datasheet
英语基础
1、《计算机与通信专业英语》
系统教程
1、《嵌入式系统――体系结构、编程与设计》
2、《嵌入式系统――采用公开源代码和StrongARM/Xscale处理器》毛德操胡希明
著
3、《BuildingEmbeddedLinuxSystems》
4、《嵌入式ARM系统原理与实例开发》杨宗德著
理论基础
1、《算法导论》
2、《数据结构(C语言版)》
3、《计算机组织与体系结构?性能分析》
4、《深入理解计算机系统》【美】RandalE.Bryant DavidO''Hallaron着
5、《操作系统:精髓与设计原理》
6、《编译原理》
7、《数据通信与计算机网络》
8、《数据压缩原理与应用》
C语言书籍推荐
1.TheCprogramminglanguage《C程序设计语言》
2.PointersonC《C和指针》
3.Ctrapsandpitfalls《C陷阱与缺陷》
4.ExpertCLanuage《专家C编程》
5.WritingCleanCode------freeCProgr
ams
《编程精粹--Microsoft编写优质无错C程序秘诀》
6.++《嵌入式系统编程》
7.《C语言嵌入式系统编程**》
8.《高质量C++/C编程指南》林锐
尽可能多的编码,要学好C,不能只注重C本身。算法,架构方式等都很重要。
这里很多书其实是推荐而已,不必太在意,关键还是基础,才是重中之重!!!