精华内容
下载资源
问答
  • 嵌入式软件工程师养成系列:自动售卖系统开发——Kupa一代

    大纲:

    售卖机一代Kopa的简介

    售卖机一代Kopa的方案介绍

       #系统整体组成

       #软件平台

       #硬件平台

    售卖机一代Kopa的实现过程

       #业务逻辑介绍

       #软件流程图

       #源码开源

     

    #售卖机一代Kopa的简介

    自动售餐机Kopa是集快捷支付,个性配餐,快速出餐于一体的智能餐饮系统。产品整体效果图如图1所示。

    图 1 自动售卖机Kopa 整体效果图

     

    #售卖机一代Kopa的方案介绍

    #系统整体组成

     

    图2 售卖机Kopa整体框图

     

    #软件平台

    本系统选择Keil C51作为软件开发平台。KeilC51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍[1]

    #硬件平台

    本系统选择STC89C51 单片机作为主控芯片。共拥有40个管脚,足够带动LCD显示屏、矩阵键盘、LED驱动器等外设。主控拥有定时器、外部中断等功能,完全胜任系统方案。

    系统选用LCD1602 显示屏作为界面显示。

    系统选用矩阵键盘作为用户输入。

    系统选用直流电机的驱动器上LED作为系统指示。

     

    #售卖机一代Kopa的实现过程

       #业务逻辑介绍

    这是欢迎界面,简洁,明了。如图3。

     

    图3 售卖机Kopa欢迎界面

     

    在矩阵上输入自己想要的套餐,每按一次加一份,上面有单价,剩余量提示,人性化。如图4所示。

    图4售卖机Kopa选择套餐界面

     

    选好餐后,自动结算,提示输入金额。如图5所示。

     

    图5售卖机Kopa付款界面

     

    智能结算过程:

    当输入金额大于结算金额,找零。如图6所示。

    图6 售卖机结算需找零时

     

    当输入金额小于于结算金额,提示重新投币。如图7所示。

    图7 售卖机结算提示输入金额不足

     

    当输入金额大于或等于结算金额,进入下一步——出餐。如图8所示。本系统有ABC三种套餐,每选购一种,对应餐种的指示灯亮两秒 。

     

    图8 售卖机出餐并LED指示

     

    老板对账功能:

             查询销量。如图9所示。

    图9 售卖机查询销量

     

    查询存货量。如图10所示。

    图10 售卖机存货量

     

    查询总销售额。如图11所示。

    图11 售卖机查询总销售额

     

     

     

    #软件流程图

                      软件流程图如图12所示。

     

     

    图12 售卖系统软件流程图

     

    #源码开源

    设计这个作品是我走向嵌入式开发的第一步。在此希望分享自己的学习经历,对有志于嵌入式物联网开发的爱好者有一定的帮助。欢迎爱好者一起协作开发,完善作品。

    源码下载地址:git@github.com:TommyYangHui/SellingSystem_Kupa.git

     

    如果对售卖系统的产品感兴趣,可以参考:

    自动售卖系统开发系列——自动售卖机一代Kopa
    https://blog.csdn.net/TommyMusk/article/details/80642731


    自动售卖系统开发系列——人脸识别自动售卖机二代ChingTom
    https://blog.csdn.net/TommyMusk/article/details/80644231


    自动售卖系统开发系列——人脸识别自动售卖机三代BrotherSharp
    https://blog.csdn.net/TommyMusk/article/details/80645006


    参考:

    [1]Keil[EB/OL].https://baike.baidu.com/item/keil/4082184,2016-06-30/2018-04-01.

     

     

     

     

     


    展开全文
  • 一代、二代、三代测序技术原理与比较

    万次阅读 多人点赞 2017-11-10 14:08:02
    从1977年第一DNA测序技术(Sanger法)1,发展至今三十多年时间,测序技术已取得了相当大的发展,从第一到第三乃至第四代,测序读长从长到短,再从短到长。虽然就当前形势看来第二短读长测序技术在全球测序...

    【写在前面的话】:首先,这一篇博文中的内容并非原创,而是对多篇文献中内容的直接摘录,有些图片和资料还来自身边的同事(在此深表谢意!),再夹杂自己的零星想法,写在这里分享与大家,同时也是为了方便自己日后若有需要能够方便获得,文章比较长。

    摘要:从1977年第一代DNA测序技术(Sanger法)1,发展至今三十多年时间,测序技术已取得了相当大的发展,从第一代到第三代乃至第四代,测序读长从长到短,再从短到长。虽然就当前形势看来第二代短读长测序技术在全球测序市场上仍然占有着绝对的优势位置,但第三和第四代测序技术也已在这一两年的时间中快速发展着。测序技术的每一次变革,也都对基因组研究,疾病医疗研究,药物研发,育种等领域产生巨大的推动作用。在这里我主要对当前的测序技术以及它们的测序原理做一个简单的小结。

    图1:测序技术的发展历程

    生命体遗传信息的快速获得对于生命科学的研究有着十分重要的意义。以上(图1)所描述的是自沃森和克里克在1953年建立DNA双螺旋结构以来,整个测序技术的发展历程。

    第一代测序技术

    第一代DNA测序技术用的是1975年由桑格(Sanger)和考尔森(Coulson)开创的链终止法或者是1976-1977年由马克西姆(Maxam)和吉尔伯特(Gilbert)发明的化学法(链降解). 并在1977年,桑格测定了第一个基因组序列,是噬菌体X174的,全长5375个碱基1。自此,人类获得了窥探生命遗传差异本质的能力,并以此为开端步入基因组学时代。研究人员在Sanger法的多年实践之中不断对其进行改进。在2001年,完成的首个人类基因组图谱就是以改进了的Sanger法为其测序基础,Sanger法核心原理是:由于ddNTP的2’和3’都不含羟基,其在DNA的合成过程中不能形成磷酸二酯键,因此可以用来中断DNA合成反应,在4个DNA合成反应体系中分别加入一定比例带有放射性同位素标记的ddNTP(分为:ddATP,ddCTP,ddGTP和ddTTP),通过凝胶电泳和放射自显影后可以根据电泳带的位置确定待测分子的DNA序列(图2)。这个网址为sanger测序法制作了一个小短片,形象而生动。

    值得注意的是,就在测序技术起步发展的这一时期中,除了Sanger法之外还出现了一些其他的测序技术,如焦磷酸测序法、链接酶法等。其中,焦磷酸测序法是后来Roche公司454技术所使用的测序方法2–4,而连接酶测序法是后来ABI公司SOLID技术使用的测序方法2,4,但他们的共同核心手段都是利用了Sanger1中的可中断DNA合成反应的dNTP。

    图2:Sanger法测序原理

    第二代测序技术

    总的说来,第一代测序技术的主要特点是测序读长可达1000bp,准确性高达99.999%,但其测序成本高,通量低等方面的缺点,严重影响了其真正大规模的应用。因而第一代测序技术并不是最理想的测序方法。经过不断的技术开发和改进,以Roche公司的454技术、illumina公司的Solexa,Hiseq技术和ABI公司的Solid技术为标记的第二代测序技术诞生了。第二代测序技术大大降低了测序成本的同时,还大幅提高了测序速度,并且保持了高准确性,以前完成一个人类基因组的测序需要3年时间,而使用二代测序技术则仅仅需要1周,但在序列读长方面比起第一代测序技术则要短很多。表1和图3对第一代和第二代测序技术各自的特点以及测序成本作了一个简单的比较5,以下我将对这三种主要的第二代测序技术的主要原理和特点作一个简单的介绍。 

    图3. 测序成本的变化

    1. Illumine

    Illumina公司的Solexa和Hiseq应该说是目前全球使用量最大的第二代测序机器,这两个系列的技术核心原理是相同的2,4。这两个系列的机器采用的都是边合成边测序的方法,它的测序过程主要分为以下4步,如图4.

         (1)DNA待测文库构建

    利用超声波把待测的DNA样本打断成小片段,目前除了组装之外和一些其他的特殊要求之外,主要是打断成200-500bp长的序列片段,并在这些小片段的两端添加上不同的接头,构建出单链DNA文库。

         (2)Flowcell

    Flowcell是用于吸附流动DNA片段的槽道,当文库建好后,这些文库中的DNA在通过flowcell的时候会随机附着在flowcell表面的channel上。每个Flowcell有8个channel,每个channel的表面都附有很多接头,这些接头能和建库过程中加在DNA片段两端的接头相互配对(这就是为什么flowcell能吸附建库后的DNA的原因),并能支持DNA在其表面进行桥式PCR的扩增。

         (3)桥式PCR扩增与变性

    桥式PCR以Flowcell表面所固定的接头为模板,进行桥形扩增,如图4.a所示。经过不断的扩增和变性循环,最终每个DNA片段都将在各自的位置上集中成束,每一个束都含有单个DNA模板的很多分拷贝,进行这一过程的目的在于实现将碱基的信号强度放大,以达到测序所需的信号要求。 

    (4)测序

    测序方法采用边合成边测序的方法。向反应体系中同时添加DNA聚合酶、接头引物和带有碱基特异荧光标记的4中dNTP(如同Sanger测序法)。这些dNTP的3’-OH被化学方法所保护,因而每次只能添加一个dNTP。在dNTP被添加到合成链上后,所有未使用的游离dNTP和DNA聚合酶会被洗脱掉。接着,再加入激发荧光所需的缓冲液,用激光激发荧光信号,并有光学设备完成荧光信号的记录,最后利用计算机分析将光学信号转化为测序碱基。这样荧光信号记录完成后,再加入化学试剂淬灭荧光信号并去除dNTP 3’-OH保护基团,以便能进行下一轮的测序反应。Illumina的这种测序技术每次只添加一个dNTP的特点能够很好的地解决同聚物长度的准确测量问题,它的主要测序错误来源是碱基的替换,目前它的测序错误率在1%-1.5%之间,测序周期以人类基因组重测序为例,30x测序深度大约为1周。

    图4. Illumina测序流程

    1. Roche 454

    Roche 454测序系统是第一个商业化运营二代测序技术的平台。它的主要测序原理是(图5 abc)2:

    (1)DNA文库制备

    454测序系统的文件构建方式和illumina的不同,它是利用喷雾法将待测DNA打断成300-800bp长的小片段,并在片段两端加上不同的接头,或将待测DNA变性后用杂交引物进行PCR扩增,连接载体,构建单链DNA文库(图5a)。

    (2)Emulsion PCR (乳液PCR,其实是一个注水到油的独特过程)

    454当然DNA扩增过程也和illumina的截然不同,它将这些单链DNA结合在水油包被的直径约28um的磁珠上,并在其上面孵育、退火。

    乳液PCR最大的特点是可以形成数目庞大的独立反应空间以进行DNA扩增。其关键技术是“注水到油”(水包油),基本过程是在PCR反应前,将包含PCR所有反应成分的水溶液注入到高速旋转的矿物油表面,水溶液瞬间形成无数个被矿物油包裹的小水滴。这些小水滴就构成了独立的PCR反应空间。理想状态下,每个小水滴只含一个DNA模板和一个磁珠。

    这些被小水滴包被的磁珠表面含有与接头互补的DNA序列,因此这些单链DNA序列能够特异地结合在磁珠上。同时孵育体系中含有PCR反应试剂,所以保证了每个与磁珠结合的小片段都能独立进行PCR扩增,并且扩增产物仍可以结合到磁珠上。当反应完成后,可以破坏孵育体系并将带有DNA的磁珠富集下来。进过扩增,每个小片段都将被扩增约100万倍,从而达到下一步测序所要求的DNA量。

    (3)焦磷酸测序

    测序前需要先用一种聚合酶和单链结合蛋白处理带有DNA的磁珠,接着将磁珠放在一种PTP平板上。这种平板上特制有许多直径约为44um的小孔,每个小孔仅能容纳一个磁珠,通过这种方法来固定每个磁珠的位置,以便检测接下来的测序反应过程。

    测序方法采用焦磷酸测序法,将一种比PTP板上小孔直径更小的磁珠放入小孔中,启动测序反应。测序反应以磁珠上大量扩增出的单链DNA为模板,每次反应加入一种dNTP进行合成反应。如果dNTP能与待测序列配对,则会在合成后释放焦磷酸基团。释放的焦磷酸基团会与反应体系中的ATP硫酸化学酶反应生成ATP。生成的ATP和荧光素酶共同氧化使测序反应中的荧光素分子并发出荧光,同时由PTP板另一侧的CCD照相机记录,最后通过计算机进行光信号处理而获得最终的测序结果。由于每一种dNTP在反应中产生的荧光颜色不同,因此可以根据荧光的颜色来判断被测分子的序列。反应结束后,游离的dNTP会在双磷酸酶的作用下降解ATP,从而导致荧光淬灭,以便使测序反应进入下一个循环。由于454测序技术中,每个测序反应都在PTP板上独立的小孔中进行,因而能大大降低相互间的干扰和测序偏差。454技术最大的优势在于其能获得较长的测序读长,当前454技术的平均读长可达400bp,并且454技术和illumina的Solexa和Hiseq技术不同,它最主要的一个缺点是无法准确测量同聚物的长度,如当序列中存在类似于PolyA的情况时,测序反应会一次加入多个T,而所加入的T的个数只能通过荧光强度推测获得,这就有可能导致结果不准确。也正是由于这一原因,454技术会在测序过程中引入插入和缺失的测序错误。 

    图5. Roche 454测序流程

    1. Solid技术

    Solid测序技术是ABI公司于2007年开始投入用于商业测序应用的仪器。它基于连接酶法,即利用DNA连接酶在连接过程之中测序(图6)2,4。它的原理是:

    图6-a. Solid测序技术

    (1)DNA文库构建

                  片段打断并在片段两端加上测序接头,连接载体,构建单链DNA文库。

               (2)Emulsion PCR

    Solid的PCR过程也和454的方法类似,同样采用小水滴emulsion PCR,但这些微珠比起454系统来说则要小得多,只有1um。在扩增的同时对扩增产物的3’端进行修饰,这是为下一步的测序过程作的准备。3’修饰的微珠会被沉积在一块玻片上。在微珠上样的过程中,沉积小室将每张玻片分成1个、4个或8个测序区域(图6-a)。Solid系统最大的优点就是每张玻片能容纳比454更高密度的微珠,在同一系统中轻松实现更高的通量。

               (3)连接酶测序

    这一步是Solid测序的独特之处。它并没有采用以前测序时所常用的DNA聚合酶,而是采用了连接酶。Solid连接反应的底物是8碱基单链荧光探针混合物,这里将其简单表示为:3’-XXnnnzzz-5’。连接反应中,这些探针按照碱基互补规则与单链DNA模板链配对。探针的5’末端分别标记了CY5、Texas Red、CY3、6-FAM这4种颜色的荧光染料(图6-a)。这个8碱基单链荧光探针中,第1和第2位碱基(XX)上的碱基是确定的,并根据种类的不同在6-8位(zzz)上加上了不同的荧光标记。这是Solid的独特测序法,两个碱基确定一个荧光信号,相当于一次能决定两个碱基。这种测序方法也称之为两碱基测序法。当荧光探针能够与DNA模板链配对而连接上时,就会发出代表第1,2位碱基的荧光信号,图6-a和图6-b中的比色版所表示的是第1,2位碱基的不同组合与荧光颜色的关系。在记录下荧光信号后,通过化学方法在第5和第6位碱基之间进行切割,这样就能移除荧光信号,以便进行下一个位置的测序。不过值得注意的是,通过这种测序方法,每次测序的位置都相差5位。即第一次是第1、2位,第二次是第6、7位……在测到末尾后,要将新合成的链变性,洗脱。接着用引物n-1进行第二轮测序。引物n-1与引物n的区别是,二者在与接头配对的位置上相差一个碱基(图6-a. 8)。也即是,通过引物n-1在引物n的基础上将测序位置往3’端移动一个碱基位置,因而就能测定第0、1位和第5、6位……第二轮测序完成,依此类推,直至第五轮测序,最终可以完成所有位置的碱基测序,并且每个位置的碱基均被检测了两次。该技术的读长在2×50bp,后续序列拼接同样比较复杂。由于双次检测,这一技术的原始测序准确性高达99.94%,而15x覆盖率时的准确性更是达到了99.999%,应该说是目前第二代测序技术中准确性最高的了。但在荧光解码阶段,鉴于其是双碱基确定一个荧光信号,因而一旦发生错误就容易产生连锁的解码错误。

    图6-b. Solid测序技术

    第三代测序技术

    测序技术在近两三年中又有新的里程碑。以PacBio公司的SMRT和Oxford Nanopore Technologies纳米孔单分子测序技术,被称之为第三代测序技术。与前两代相比,他们最大的特点就是单分子测序,测序过程无需进行PCR扩增。

    其中PacBio SMRT技术其实也应用了边合成边测序的思想5,并以SMRT芯片为测序载体。基本原理是: DNA聚合酶和模板结合,4色荧光标记 4 种碱基(即是dNTP),在碱基配对阶段,不同碱基的加入,会发出不同光,根据光的波长与峰值可判断进入的碱基类型。同时这个 DNA 聚合酶是实现超长读长的关键之一,读长主要跟酶的活性保持有关,它主要受激光对其造成的损伤所影响。PacBio SMRT技术的一个关键是怎样将反应信号与周围游离碱基的强大荧光背景区别出来。他们利用的是ZMW(零模波导孔)原理:如同微波炉壁上可看到的很多密集小孔。小孔直径有考究,如果直径大于微波波长,能量就会在衍射效应的作用下穿透面板而泄露出来,从而与周围小孔相互干扰。如果孔径小于波长,能量不会辐射到周围,而是保持直线状态(光衍射的原理),从而可起保护作用。同理,在一个反应管(SMRTCell:单分子实时反应孔)中有许多这样的圆形纳米小孔, 即 ZMW(零模波导孔),外径 100多纳米,比检测激光波长小(数百纳米),激光从底部打上去后不能穿透小孔进入上方溶液区,能量被限制在一个小范围(体积20X 10-21 L)里,正好足够覆盖需要检测的部分,使得信号仅来自这个小反应区域,孔外过多游离核苷酸单体依然留在黑暗中,从而实现将背景降到最低。另外,可以通过检测相邻两个碱基之间的测序时间,来检测一些碱基修饰情况,既如果碱基存在修饰,则通过聚合酶时的速度会减慢,相邻两峰之间的距离增大,可以通过这个来之间检测甲基化等信息(图7)。SMRT技术的测序速度很快,每秒约10个dNTP。但是,同时其测序错误率比较高(这几乎是目前单分子测序技术的通病),达到15%,但好在它的出错是随机的,并不会像第二代测序技术那样存在测序错误的偏向,因而可以通过多次测序来进行有效的纠错。

    图7.PacBio SMRT测序原理

    Oxford Nanopore Technologies公司所开发的纳米单分子测序技术与以往的测序技术皆不同,它是基于电信号而不是光信号的测序技术5。该技术的关键之一是,他们设计了一种特殊的纳米孔,孔内共价结合有分子接头。当DNA碱基通过纳米孔时,它们使电荷发生变化,从而短暂地影响流过纳米孔的电流强度(每种碱基所影响的电流变化幅度是不同的),灵敏的电子设备检测到这些变化从而鉴定所通过的碱基(图8)。

    该公司在去年基因组生物学技术进展年会(AGBT)上推出第一款商业化的纳米孔测序仪,引起了科学界的极大关注。纳米孔测序(和其他第三代测序技术)有望解决目前测序平台的不足,纳米孔测序的主要特点是:读长很长,大约在几十kb,甚至100 kb;错误率目前介于1%至4%,且是随机错误,而不是聚集在读取的两端;数据可实时读取;通量很高(30x人类基因组有望在一天内完成);起始DNA在测序过程中不被破坏;以及样品制备简单又便宜。理论上,它也能直接测序RNA。

    纳米孔单分子测序计算还有另一大特点,它能够直接读取出甲基化的胞嘧啶,而不必像传统方法那样对基因组进行bisulfite处理。这对于在基因组水平直接研究表观遗传相关现象有极大的帮助。并且改方法的测序准确性可达99.8%,而且一旦发现测序错误也能较容易地进行纠正。但目前似乎还没有应用该技术的相关报道。

    图8. 纳米孔测序

    其他测序技术

    目前还有一种基于半导体芯片的新一代革命性测序技术——Ion Torrent6。该技术使用了一种布满小孔的高密度半导体芯片, 一个小孔就是一个测序反应池。当DNA聚合酶把核苷酸聚合到延伸中的DNA链上时,会释放出一个氢离子,反应池中的PH发生改变,位于池下的离子感受器感受到H+离子信号,H+离子信号再直接转化为数字信号,从而读出DNA序列(图9)。这一技术的发明人同时也是454测序技术的发明人之一——Jonathan Rothberg,它的文库和样本制备跟454技术很像,甚至可以说就是454的翻版,只是测序过程中不是通过检测焦磷酸荧光显色,而是通过检测H+信号的变化来获得序列碱基信息。Ion Torrent相比于其他测序技术来说,不需要昂贵的物理成像等设备,因此,成本相对来说会低,体积也会比较小,同时操作也要更为简单,速度也相当快速,除了2天文库制作时间,整个上机测序可在2-3.5小时内完成,不过整个芯片的通量并不高,目前是10G左右,但非常适合小基因组和外显子验证的测序。    

      

               

    图9. Ion Torrent

    小结

    以上,对各代测序技术的原理做了简要的阐述,这三代测序技术的特点比较汇总在以下表1和表2中。其中测序成本,读长和通量是评估该测序技术先进与否的三个重要指标。第一代和第二代测序技术除了通量和成本上的差异之外,其测序核心原理(除Solid是边连接边测序之外)都是基于边合成边测序的思想。第二代测序技术的优点是成本较之一代大大下降,通量大大提升,但缺点是所引入PCR过程会在一定程度上增加测序的错误率,并且具有系统偏向性,同时读长也比较短。第三代测序技术是为了解决第二代所存在的缺点而开发的,它的根本特点是单分子测序,不需要任何PCR的过程,这是为了能有效避免因PCR偏向性而导致的系统错误,同时提高读长,并要保持二代技术的高通量,低成本的优点。

    表1:测序技术的比较

    第X代

    公司

    平台名称

    测序方法

    检测方法

    大约读长(碱基数)

    优点

    相对局限性

    第一代

    ABI/生命技术公司

    3130xL-3730xL

    桑格-毛细管电泳测序法

    荧光/光学

    600-1000

    高读长,准确度一次性达标率高,能很好处理重复序列和多聚序列

    通量低;样品制备成本高,使之难以做大量的平行测序

    第一代

    贝克曼

    GeXP遗传分析系统

    桑格-毛细管电泳测序法

    荧光/光学

    600-1000

    高读长,准确度一次性达标率高,能很好处理重复序列和多聚序列;易小型化

    通量低;单个样品的制备成本相对较高

    第二代

    Roche/454

    基因组测序仪FLX系统

    焦磷酸测序法

    光学

    230-400

    在第二代中最高读长;比第一代的测序通量大

    样品制备较难;难于处理重复和同种碱基多聚区域;试剂冲洗带来错误累积;仪器昂贵

    第二代

    Illumina

    HiSeq2000,HiSeq2500/MiSeq

    可逆链终止物和合成测序法

    荧光/光学

    2x150

    很高测序通量

    仪器昂贵;用于数据删节和分析的费用很高

    第二代

    ABI/Solid

    5500xlSolid系统

    连接测序法

    荧光/光学

    25-35

    很高测序通量;在广为接受的几种第二代平台中,所要拼接出人类基因组的试剂成本最低

    测序运行时间长;读长短,造成成本高,数据分析困难和基因组拼接困难;仪器昂贵

    第二代

    赫利克斯

    Heliscope

    单分子合成测序法

    荧光/光学

    25-30

    高通量;在第二代中属于单分子性质的测序技术

    读长短,推高了测序成本,降低了基因组拼接的质量;仪器非常昂贵

    第三代

    太平洋生物科学公司

    PacBio RS

    实时单分子DNA测序

    荧光/光学

    ~1000

    高平均读长,比第一代的测序时间降低;不需要扩增;最长单个读长接近3000碱基

    并不能高效地将DNA聚合酶加到测序阵列中;准确性一次性达标的机会低(81-83%);DNA聚合酶在阵列中降解;总体上每个碱基测序成本高(仪器昂贵);

    第三代

    全基因组学公司

    GeXP遗传分析系统

    复合探针锚杂交和连接技术

    荧光/光学

    10

    在第三代中通量最高;在所有测序技术中,用于拼接一个人基因组的试剂成本最低;每个测序步骤独立,使错误的累积变得最低

    低读长; 模板制备妨碍长重复序列区域测序;样品制备费事;尚无商业化供应的仪器

    第三代

    Ion Torrent/生命技术公司

    个人基因组测序仪(PGM)

     合成测序法

    以离子敏感场效应晶体管检测pH值变化

    100-200

    对核酸碱基的掺入可直接测定;在自然条件下进行DNA合成(不需要使用修饰过的碱基)

    一步步的洗脱过程可导致错误累积;阅读高重复和同种多聚序列时有潜在困难;

    第三代

    牛津纳米孔公司

     gridION

    纳米孔外切酶测序

    电流

    尚未定量

    有潜力达到高读长;可以成本生产纳米孔;无需荧光标记或光学手段

    切断的核苷酸可能被读错方向;难于生产出带多重平行孔的装置

      

      表2:主流测序机器的成本测序比较

    以下图10展示了当前全球测序仪的分布情况。图中的几个热点区主要分布在中国的深圳(主要是华大),南欧,西欧和美国。 

    图10. 测序仪全球分布http://omicsmaps.com/#

     

     

    参考文献 

    1.    Sanger, F. & Nicklen, S. DNA sequencing with chain-terminating. 74, 5463–5467 (1977).

    2.    Mardis, E. R. Next-generation DNA sequencing methods. Annual review of genomics and human genetics 9, 387–402 (2008).

    3.    Shendure, J. & Ji, H. Next-generation DNA sequencing. Nature biotechnology 26, 1135–45 (2008).

    4.    Metzker, M. L. Sequencing technologies - the next generation. Nature reviews. Genetics 11, 31–46 (2010).

    5.    Niedringhaus, T. P., Milanova, D., Kerby, M. B., Snyder, M. P. & Barron, A. E. Landscape of Next-Generation Sequencing Technologies. 4327–4341 (2011).

    6.    Rothberg, J. M. et al. An integrated semiconductor device enabling non-optical genome sequencing. Nature 475, 348–52 (2011). 

     

     

     转自: http://blog.csdn.net/dyllove98/article/details/9736441

    展开全文
  • 嵌入式系统开发设计---嵌入式系统开发设计

    万次阅读 多人点赞 2018-09-20 07:42:01
    嵌入式系统设计的主要任务是定义系统的功能、决定系统的架构,并将功能映射到系统实现... 嵌入式系统的设计方法跟一般的硬件设计、软件开发的方法不同,是采用硬件和软件协同设计的方法,开发过程不仅涉及软件领域...

         嵌入式系统设计的主要任务是定义系统的功能、决定系统的架构,并将功能映射到系统实现架构上。这里,系统架构既包括软件系统架构也包括硬件系统架构。一种架构可以映射到各种不同的物理实现,每种实现表示不同的取舍,同时还要满足某些设计指标,并使其他的设计指标也同时达到最佳化。

        嵌入式系统的设计方法跟一般的硬件设计、软件开发的方法不同,是采用硬件和软件协同设计的方法,开发过程不仅涉及软件领域的知识,还涉及硬件领域的综合知识,甚至还涉及机械等方面的知识。要求设计者必须熟悉并能自如地运用这些领域的各种技术,才能使所设计的系统达到最优。

        虽然嵌入式系统应用软件的设计方案随应用领域的不同而不同,但是嵌入式系统的分析与设计方法也遵循软件工程的一般原则,许多成 熟的分析和设计方法都可以在嵌入式领域得到应用。嵌入式系统的开发过程同样也包括需求分析、系统设计、实现和测试几个基本阶段,并且每个阶段都有其独有的特征和重点。

        本节主要介绍嵌入式系统开发设计的技术与方法,并从嵌入式系统应用和计算模型的角度分析应用软件设计的方法及设计过程中面临的主要问题。最后,讨论嵌入式领域软件移植的相关问题。

     

    1 嵌入式系统设计概述

        进行嵌入式系统设计前,应明确嵌入式系统设计本身的特点及衡量嵌入式系统设计的一些主要的技术指标。

        1.嵌入式系统设计的特点

        与通常的系统设计相比,嵌入式系统设计具有以下特点:

    • 软、硬件协同并行开发;

    • 微处理器的类型多种多样;

    • 实时嵌入式操作系统具有多样性;

    • 与通用系统开发相比,可利用系统资源很少;

    • 应用支持少;

    • 要求特殊的开发工具;

    • 软、硬件都要很健壮;

    • 调试很困难。 

        2.嵌入式系统的技术指标

        嵌入式系统设计的常用指标有:

        (1)NRE 成本(非重复性工程成本):设计系统所需要支付的一次性货币成本,即一旦设计完毕,不需要支付额外的设计费用,就可以制造任意数目的产品。

        (2)单位成本:生产单个产品所需要支付的货币成本,不包含 NRE 成本。

        (3)大小:指系统所占的空间,对软件而言,一般用字节数来衡量;对硬件而言,则用逻辑门或晶体管的数目来衡量。

        (4)性能:系统完成规定任务所需要的时间,是设计时最常用的设计指标,主要有两种衡量方式,一是响应时间,即开始执行到任务结束之间的时间。二是完成量,即单位时间内所完成的任务量。

        (5)功率:系统所消耗的功率,它决定了电池的寿命或电路的散热需求。

        (6)灵活性:在不增加 NRE 成本的前提下,改变系统功能的能力。

        (7)样机建立时间:建立系统可运行版本所需的时间,系统样机可能比最终产品更大更昂贵,但可以验证系统的用途和正确性,改进系统的功能。

        (8)上市时间:从系统开发到可以上市卖给消费者的时间,最主要的影响因素包括设计时间、制造时间和检测时间。

        (9)可维护性:系统推出或上市后进行修改的难易程度,特别是针对非原始开发人员进行的修改。

        (10)正确性:正确实现了系统的功能,可以在整个设计过程中检查系统的功能,也可以插入测试电路检验是否正确。

        (11)安全性:系统不会造成伤害的概率。各个设计指标之间一般是互相竞争的,改良了某个指标常常会导致其他指标的恶化,

        为了最好地满足设计最佳化,设计者必须了解各种软、硬件的实现技术,并且能够从一种技术转移到另一种技术,以便找到特定约束下的最佳方案。

        3.嵌入式系统的设计挑战

        嵌入式系统设计所面临的挑战有以下几个方面。

        (1)需要多少硬件:设计者对用于解决问题的计算能力有较强的控制能力,不仅可以选择使用何种处理器,而且可以选择存储器的数量、所使用的外设等,因为设计不仅要满足性能的需求,还要受到制造费用的约束,硬件的选择十分重要,硬件太少,将达不到功能和性能的要求,硬件过多又会使产品过于昂贵。

        (2)如何满足时限:使用提高处理器速度的方法使程序运行速度加快来解决时间约束的方法是不可取的,因为这样会使系统的价格上升。同时,提高了处理器的时钟频率,有时并不能提高执行速度,因为程序的速度有可能受存储系统的限制。

        (3)如何减少系统的功耗:对采用电池供电的系统,功耗是一个十分敏感的问题。对于非电池供电的系统,高功率意味着高散热。降低系统功耗的一种方法是降低它的运算速度,但是单纯地降低运算速度显然会导致性能不能满足,因此,必须认真设计在降低功耗的同时满足性能的约束。

        (4)如何保证系统的可升级性:系统的硬件平台可能使用几代,或者使用同一代的不同级别的产品,这些仅需要一些简单的改变,设计者必须通过改变软件来改变系统的特性,设计一种机器使它能够提供现在仍未开发的软件的性能。

        (5)如何保证系统的可靠性:可靠性是产品销售时一项重要的指标,产品能够很好地工作是消费者的合理要求,可靠性在一些系统中尤为重要,如安全控制系统。

        (6)测试的复杂性:测试一个嵌入式系统比仅仅输入一些数据困难得多,所以不得不运行整台机器以产生正确的数据,数据产生的时间是十分重要的,即不能离开嵌入式系统工作的整个环境来测试嵌入式系统。

        (7)可视性和可控制性有限:嵌入式系统通常没有显示设备和键盘,这将导致开发者很难了解系统内部发生了什么,也不能响应系统的动作,有时候不得不通过观察微处理器的信号来了解。在实时系统中,一般无法为了观察而让系统停机。

        (8)开发环境受限:嵌入式系统的开发环境,如开发软件、硬件工具通常比通用计算机或工作站上的可用环境更为有限,故只能采用交叉式开发,给开发进度带来很大影响。

     

    2   开发模型与设计流程

        与通用系统的开发类似,嵌入式系统的开发也可以采用软件工程中常见的开发模型,主要包括瀑布模型、螺旋模型、逐步求精模型及层次模型。

        1.常用开发模型

        设计流程是系统设计期间应遵循的一系列步骤,其中一些步骤可以由自动化工具完成,而另外一些只可用手工完成。在嵌入式系统领域,有如下几种常用开发过程模型。

        (1)瀑布模型。瀑布模型由五个主要阶段构成:需求分析阶段确定目标系统的基本特点;系统结构设计阶段将系统的功能分解为主要的构架;编码阶段主要进行程序的编写和调试;测试阶段检测错误;最后一个是维护阶段,主要负责修改代码以适应环境的变化,并改正错误、升级。各个阶段的工作和信息总是由高级的抽象到较详细的设计步骤单向流动,是一个理想的自顶向下的设计模型。

        (2)螺旋模型。螺旋模型假定要建立系统的多个版本,早期的版本是一个简单的试验模型,用于帮助设计者建立对系统的直觉和积累开发此系统的经验,随着设计的进展,会创建更加复杂的系统。在每一层设计中,设计者都会经过需求分析、结构设计、测试三个阶段。在后期,当构成更复杂的系统版本时,每一个阶段都会有更多的工作,并需要扩大设计的螺旋,这种逐步求精的方法使设计者可以通过一系列的设计循环加深对所开发的系统的理解。螺旋的顶部第一个循环是很小很短的,而螺旋底部的最后的循环加入了对螺旋模型的早期循环的细节补充,螺旋模型比瀑布模型更加符合实际。

        (3)逐步求精模型。逐步求精模型是一个系统被建立多次,第一个系统被作为原型,其后逐个将系统进一步求精。当设计者对正在建造的系统的应用领域不是很熟悉时,这个方法很有意义。通过建造几个越来越复杂的系统,从而精炼系统,使设计者能检验架构和设计技术。此外,各种迭代技术也可仅被局部完成,直到系统最终完成。

        (4)层次模型。许多嵌入式系统本身是由更多的小设计组成的,完整的系统可能需要各种软件构件、硬件构件。这些部件可能由尚需设计的更小部件组成,因此从最初的完整系统设计到为个别部件的设计,设计的流程随着系统的抽象层次的变化而变化,从最高抽象层次的整体设计到中间抽象层次的详细设计,再到每个具体模块的设计,都是逐层展开的,其中每个流程可能由单个设计人员或设计小组来承担,每个小组依靠其他小组的结果,各个小组从上级小组获得要求,同时上级小组依赖于各个分组设计的质量和性能。而且,流程的每个实现阶段都是一个从规格说明到测试的完整流程。

        2.嵌入式系统的设计方法

        一个良好的嵌入式系统设计方法是十分重要的,这是因为:

        (1)良好的设计方法可以使设计者清楚地了解他们所做工作的进度,这样可以确保不遗漏其中的任何一项工作。

        (2)允许使用计算机辅助工具帮助设计者进行工作,将整个过程分成几个可控的步骤进行。

        (3)良好的设计方法方便设计团队的成员之间相互交流,通过定义全面的设计过程,使团队里的每个成员可以很好地理解他们所要做的工作及完成分配给他们的任务时所达到的目标。

        嵌入式系统软件的开发过程可以分为项目计划、可行性分析、需求分析、概要设计、详细设计、程序建立、下载、调试、固化、测试及运行等几个阶段。

        项目计划、可行性分析、需求分析、概要设计及详细设计等几个阶段,与通用软件的开发过程基本一致,都可按照软件工程方法进行,如采用原型化方法、结构化方法等。

        由于嵌入式软件的运行和开发环境不同,开发工作是交叉进行的,所以每一步都要考虑到这一点。

    程序建立阶段的工作是根据详细设计阶段产生的文档进行的。这一阶段的工作主要是源代码编写、编译、链接等几个子过程,这些工作都是在宿主机进行的,不需要用到目标机。

        产生应用程序的可执行文件后,就要用到交叉开发环境进行调试,根据实际情况可以选用可用的几种调试方法之一或它们的有效组合来进行。

        嵌入式系统设计不同于传统的软件设计,如图 12-11 所示。经常包含硬件设计和软件设计,其中前端活动,如规格说明和系统架构,需要同时考虑硬件和软件两个方面。

        类似的,后端设计,如系统集成和测试要考虑整个系统。在中间阶段中,软件和硬件构件的开发彼此相互独立,并且大多数的硬件和软件的工作能够相对独立地进行。最后,要将经调试后正确无误的可执行程序固化到目标机上。根据嵌入式系统硬件上配置的不同,固化有几种方式,可以固化在 EPROM 和 FLASH 等存储器中,也可固化在 DOC 和 DOM 等电子盘中。通常还要借助一些专用编程器进行。

        由于嵌入式系统对安全性和可靠性的要求比通用计算机系统要高,所以在对嵌入式系统进行白盒测试时,要求有更高的代码覆盖率。

        在系统开发流程的各个阶段,分别要进行系统的确认和性能评估、安全性评估及风险性评价,并对系统的实现进行测试验证。

     

    3 嵌入式系统设计的核心技术

        嵌入式系统的开发是软、硬件综合开发,与通用系统的开发存在巨大差异,一方面是因为每个嵌入式系统都是一个软硬件的结合体;另一方面,嵌入式系统一旦研制完成,软件便随着硬件固化到产品中,具有很强的专用性。在这些特点的影响下,必然要有一种不同于通用软件开发过程的工程方法学来支持嵌入式系统的开发过程,同时,这些特点也决定了嵌入式系统开发所采用的独特的核心技术。

        总体来看,在嵌入式开发领域,主要有三种核心技术:处理器技术、IC 技术、设计/ 验证技术。

        1.处理器技术

        处理器技术与实现系统功能的计算引擎结构有关,很多不可编程的数字系统也可以视为处理器,这些处理器的差别在于其面向特定功能的专用化程度,导致其设计指标与其他处理器不同。

        (1)通用处理器。这类处理器可用于不同类型的应用,一个重要的特征就是存储程序,由于设计者不知道处理器将会运行何种运算,所以无法用数字电路建立程序。另一个特征就是通用的数据路径,为了处理各类不同的计算,数据路径是通用的,其数据路径一般有大量的寄存器及一个或多个通用的算术逻辑单元。设计者只需要对处理器的存储器编程来执行所需的功能,即设计相关的软件。

        在嵌入式系统中使用通用处理器具有设计指标上的一些优势。上市时间和 NRE 成本较低,因为设计者只需编写程序,而不需做任何数字设计,灵活性高,功能的改变通过修改程序进行即可。与自行设计处理器相比,数量少时单位成本较低。

        当然,这种方式也有一些设计指标上的缺陷,数量大时单位成本相对较高,因为数量大时,自行设计的 NRE 成本分摊下来,可降低单位成本。同时,对于某些应用,性能可能很差。由于包含了非必要的处理器硬件,系统的体积和功耗可能变大。

        (2)单用途处理器。单用途处理器是设计用于执行特定程序的数字电路,也指协处理器、加速器、外设等。如 JPEG 编码解码器执行单一程序,压缩或解压视频信息。嵌入式系统设计者可通过设计特定的数字电路来建立单用途的处理器。设计者也可以采用预先设计好的商品化的单用途处理器。

        在嵌入式系统中使用单用途处理器,在指标上有一些优缺点。这些优缺点与通用处理器基本相反,性能可能更好,体积与功率可能较小,数量大时单位成本可能较低,而设计时间与 NRE 成本可能较高,灵活性较差,数量小时单位成本较高,对于某些应用,性能不如通用处理器。

        (3)专用处理器。专用指令集处理器是一个可编程处理器,针对某一特定类型的应用进行最优化。这类特定应用具有相同的特征,如嵌入式控制、数字信号处理等。在嵌入式系统中使用专用处理器可以在保证良好的性能、功率和大小的情况下,提供更大的灵活性,但这类处理器仍需要昂贵的成本建立处理器本身和编译器。单片机和数字信号处理器是两类应用广泛的专用处理器,数字信号处理器是一种针对数字信号进行常见运算的微处理器,而单片机是一种针对嵌入式控制应用进行最佳化的微处理器。

        2.IC 技术 

        从系统的集成电路设计描述得到实际芯片的物理映射过程的实现技术便是 IC(Integrated Circuits,集成电路)技术,当前在半导体领域的三类实现技术,即全定制、半定制和可编程技术均可应用于嵌入式系统的硬件设计。

        (1)全定制/VLSI(Very Large Scale Integrated Circuites,超大规模集成电路)。在全定制 IC 技术中,需要根据特定的嵌入式系统的数字实现来优化各层设计人员从晶体管的版图尺寸、位置、连线开始设计以达到芯片面积利用率高、速度快、功耗低的最优化性能。利用掩膜在制造厂生产实际芯片,全定制的 IC 设计也常称为 VLSI,具有很高的 NRE 成本、很长的制造时间,适用于大量或对性能要求严格的应用。

        (2)半定制/ASIC(Application Specific Integrated Circuit,专用集成电路)。半定制ASIC是一种约束型设计方法,包括门阵列设计法和标准单元设计法。它是在芯片制作好一些具有通用性的单元元件和元件组的半成品硬件,设计者仅需要考虑电路的逻辑功能和各功能模块之间的合理连接即可。这种设计方法灵活方便、性价比高,缩短了设计周期,提高了

    成品率。

        (3)可编程/ASIC。可编程器件中所有各层都已经存在,设计完成后,在实验室里即可烧制出设计的芯片,不需要 IC 厂家参与,开发周期显著缩短。可编程 ASIC 具有较低的 NRE 成本,单位成本较高,功耗较大,速度较慢。

        3.设计/验证技术

        嵌入式系统的设计技术主要包括硬件设计技术和软件设计技术两大类。其中,硬件设计领域的技术主要包括芯片级设计技术和电路板级设计技术两个方面。

        芯片级设计技术的核心是编译/综合、库/IP(Intellectual  Property,知识产权)、测试/ 验证。编译/综合技术使设计者用抽象的方式描述所需的功能,并自动分析和插入实现细节。库/IP 技术将预先设计好的低抽象级实现用于高级抽象。测试/验证技术确保每级功能正确,减少各级之间反复设计的成本。

        软件设计技术的核心是软件语言。软件语言经历了从低级语言(机器语言、汇编语言)到高级语言(例如,结构化设计语言、面向对象设计语言)的发展历程,推动其发展的是汇编技术、分析技术、编译/解释技术等诸多相关技术。软件语言的级别也从实现级、设计级、功能级逐渐向需求级语言发展过渡。

        早期,随着通用处理器概念的逐渐形成,软件技术迅速发展,软件的复杂度也开始增加,软件设计和硬件设计的技术和领域完全分开。设计技术和工具在这两个领域同步得到发展,也使得行为描述可以在越来越抽象的级别上进行,以适应设计复杂度不断增长的需要。这种同步发展如今又使得这两个领域都使用同样的时序模型来描述行为,因而这两个领域即将可能再度统一为一个领域。

        鉴于大多数嵌入式系统都是实时的反应式系统,反应式系统具有多任务并发、时间约束严格与可靠性高的特点,针对反应式系统的设计和描述,人们相继提出了多种描述语言和验证方法学。例如,采用时序逻辑用来刻画反应式系统的性质及推理反应式系统的行为,采用模型检验技术验证反应式系统设计的正确性等,这些技术已逐步在嵌入式开发过程中发挥着重要的作用。

     

    4 嵌入式开发设计环境

        嵌入式系统的开发环境种类很多,大体可以把它们分为如下几类:

        (1)与嵌入式操作系统配套的开发环境,属于这一类的开发环境较多,如 PalmOS、THOS、VxWorks、Windows CE 等商业嵌入式操作系统都有与其配套的功能齐全的开发环境。

        (2)与处理器芯片配套的开发环境。这类开发环境一般由处理器厂商提供,如EPSON公司推出的一个专门为基于 S1C33 系列微控制器芯片的嵌入式系统开发的工具包便是这一类型的开发环境。

        (3)与具体应用平台配套的开发环境。这类开发环境针对性较强,如高通公司的 Brew SDK 等。

        (4)其他类的开发环境。这类开发环境主要指一些嵌入式系统供应商在 GNU 开源工具的基础上开发或定制的较为通用的开发环境。这类工具可以免费获得,而且支持的处理器类型繁多,功能齐全,但在技术支持方面比专业化商业工具略逊一些。

     

    5 嵌入式软件设计模型

        随着嵌入式系统的功能日益复杂,要描述这些功能复杂的系统的行为也越来越困难,实践证明通过采用计算模型的方法来对系统进行描述和分析是一种具有工程价值的方法。

        本节介绍几种嵌入式领域常用的计算模型,并从计算模型的角度分析和阐述嵌入式应用设计和开发的相关问题。计算模型提供一组用简单对象来组合复杂行为的方法,可以帮助设计者理解和描述系统行为。嵌入式系统常用的计算模型有如下几种:时序计算模型、通信进程模型、状态机模型、数据流模型、面向对象模型、并发进程模型。

        这些模型分别在不同的应用领域使用,如状态机模型特别适合描述以控制为主的系统,数据流模型可以很好地描述数据处理和转换问题。目前使用最广泛的是并发进程模型。

        1.状态机模型

        有限状态机(Finite-State Machine,FSM)是一个基本的状态模型,可以用一组可能的状态来描述系统的行为,系统在任何时刻只能处于其中一个状态,也可以描述由输入确定的状态转移,最后可以描述在某个状态下或状态转移期间可能发生的操作。

       有限状态机 FSM 是一个六元组 F<S,I,O,F,H,S0>,其中 S 是一个状态集合{s0, s1,…,sl},I 是输入集合{I0,I1,…,Im},O 是输出集合{o0,o1,…,on},F 是次态函数或转移函数,将状态和输入映射到状态(S×I→S),H 是输出函数,将状态映射到输出 (S→O),S0 是初始状态。

       图 12-12 是电梯的控制单元的状态机描述。在初始“空闲”态,将 up 和 down 设置为 0,open 设置为 1。在所请求的楼层不同于当前楼层之前,状态机一直停留在“空闲”状态。如果所请求的楼层大于当前楼层,则状态机转移到“上升”状态,并将 up 设置为 1。如果所请求的楼层小于当前楼层,则状态机转移到“下降”状态,并将 down 设置为 1。在当前楼层等于所请求的楼层之前,状态机一直留在“下降”或“上升”状态,然后状态转移到“开门”状态,并将 open 设置为1。通常,系统有一个计时器 timer,因此,当状态机转移到“开门”状态时,还要将计时器启动,状态机停留在“开门”态,直到计时器超时,最后转移到“空闲”态。

     

        当 FSM 被用于嵌入式系统设计时,其输入和输出的数据类型都是布尔类型,而函数表示含有布尔运算的布尔函数,这种模型对于没有数据输入或输出的很多纯控制系统而言已经足够。如果要处理数据,则将 FSM 扩展为带有数据路径的状态机(FSM with Datapath, FSMD)。另外,对状态机模型可以进一步扩展以支持分级和并发,这种模型称为分级/并发FSM(Hierarchical/Concurrent FSM,HCFSM)模型。

        2.数据流模型

        数据流模型是并发多任务模型派生出的一种模型,该模型将系统的行为描述为一组结点和边,其中结点表示变换,边表示从一个结点到另一个结点的数据流向。每个结点使用来自其输入边的数据,执行变换并在其输出边上产生数据。

        每条边可能有或没有数据,出现在边上的数据称为令牌,当某个结点的所有输入边都至少有一个令牌时,该结点可触发。结点触发后,将使用来自每条输入边的一个令牌,对所有使用的令牌进行数据变换,并在输出边上产生一个令牌,结点的触发仅决定于令牌出现的情况。

        图 12-13 所示是计算 z=(a+b)×(c-d)的数据流模型。

        目前,已有若干商业化的工具支持用图形化语言表达数据流模型,这些工具可以自动将数据流模型转换为并发多任务模型,以便在微处理器上实现。其转换方法为将每个结点转换为一个任务,每条边转换为一个通道,其中并发多任务模型的实现方法是使用实时操作系统对并发任务进行映射。

        图 12-14 是一个同步数据流模型,这个模型中,在结点的每条输入边和输出边上分别标注每次触发所使用和产生的令牌数。该模型的优点是,在实现时不需要将其转换为并发多任务模型,而是用静态方式调度结点,产生时序程序模型。该模型可以使用时序程序语言(如 C 语言)来表达,不需要实时操作系统就可以执行,因此其执行效率更高。

     

        3.并发进程模型

       并发进程模型是由一组进程构成,每个进程是一个顺序执行的过程,各进程间可以并发执行。并发进程模型提供创建、终止、暂停、恢复和连接进程的操作。进程在执行中可以相互通信,交换数据。进程间通信可以采用两种方式:共享变量和消息传递。信号量、临界区、管程和路径表达式等用来对并发进程的操作进行同步。

        通常,实时系统可以看成是由许多并发执行的进程构成的系统,其中每个进程都有时间要求。这样,很多嵌入式系统更容易用一组并发执行的任务来描述,因为这些系统本身就是多任务系统,并发进程模型便自然地可以由实时操作系统的多任务来实现。

        4.面向对象模型

        传统的并发进程模型是围绕进程的概念进行设计的,进程是一个实现级的概念,它是对客观世界活动的一种间接模拟,因此,采用进程模型来解决客观世界中的并发问题就显得极不自然,并且也使得并发程序难以设计和理解。

        面向对象模型以一种更加直接的方式刻画客观世界中的活动,模型中存在着潜在的并发执行能力。一个对象向另一个对象发送消息后,若不需要或不立即需要消息的处理结果,前者不必等待后者处理消息,消息发送者和消息接受者可以并发执行。对象不都是处于被动的提供服务状态,它们中的一些除了能通过接收消息向外提供服务外,还可以有自己的事务处理。一个对象往往可以同时处理多个消息。

       对象是数据和操作的封装体,数据存放在对象的局部变量中,对象的状态由对象所有的局部变量在某一时刻的取值来表示。在并发环境中,还要考虑对象并发状态的描述问题,因为对象的并发控制是根据对象的并发状态来进行的。

       把并发与面向对象相结合,归结起来可分为两条途径:

        (1)在面向对象模型中引进并发机制,充分利用面向对象技术刻画客观世界的良好模型能力和面向对象的各个重要特性,同时把其潜在的并发能力描述出来,使其适合于描述并发计算。

        (2)在传统并发模型中引进面向对象思想。

        面向对象的并发模型可以分为两种类型:隐式并发模型和显式并发模型。

        (1)隐式并发模型。这种模型的特点是推迟并发设计,将对象建模作为建模基础。在进入运行阶段之前,将对象看成自主单元,各种对象的活动看成理想并发方式完成的特定工作。就像每个对象拥有一个自己的处理器,这个处理器可以为对象提供一个执行线程。进入系统的外部事件被看成一个处理请求,以广播方式传给一些对象,这些对象接着向其他对象进一步提出处理请求。理论上,对应一个请求,可以有任意多个对象执行相应的处理。在实现时,由调度程序最终决定其对象的操作顺序,如图 12-15 所示。

       (2)显式并发模型。这种模型的特点是首先考虑并发,应先把并发概念和对象概念分开。在建立对象以后,用实时操作系统支持的进程概念来表示并发,形成对象和进程两个抽象层次,即先将系统分解为准并发进程作为开始,而在每个进程的内部采用面向对象的技术。对象间交互表示成嵌套的函数调用,通过加入锁、监视器、信号量等显式同步机制,来保证对象的完整。该模型将进程置于对象之上,对象中不必考虑并发、对象串行化,如图 12-16 所示。

     

     

        早期,实时系统的设计方法主要是结构化设计方法,采用结构化方法的系统在复用性、可修改性等方面有很大的局限性。面向对象的实时系统设计方法显然在这些问题上具有明显的优势。较实用的面向对象的设计方法是诺基亚公司的 OCTOPUS 方法,该方法以 OMT 和融合方法(Fusion Method)为基础,提出了对实时系统响应时间、时间域及并发的处理方法,并具体提出了对并发、同步、通信、中断处理、ASIC、硬件界面、端对端响应时间等方面的处理。OCTOPUS 方法将软件开发的主要阶段很好地合并起来,从规格说明到运行模型之间的过渡紧密自然,还支持渐进式开发。OCTOPUS 方法是当前面向对象技术和实时系统相结合的一个典型的设计方法。另外,形式化的面向对象的开发技术和建模语言也逐渐在实时系统建模的初始阶段得到应用。

    6 需求分析 

        在设计之前,设计者必须知道要设计什么。通常人们用需求和规格说明来描述设计过程的这两个相关而不同的步骤。需求是用户所想要的非形式化的描述,而规格说明是可以用来创建系统架构的更详尽、更精确、更一致的描述。当然,需求和规格说明都是指导系统的外部表示,而非内部表示。需求有两种类型:功能性需求和非功能性需求,功能性需求说明这个系统必须做什么,而非功能性需求说明系统的其他属性,如物理尺寸、价格、功耗、设计时间、可靠性等。

        对一个大系统进行需求分析是一项复杂而费时的工作,但是,获取少量格式清晰、简单明了的信息是理解系统需求的一个良好开端。表 12-5 是在某项工程开始时填写的需求表 格,在考虑系统的基本特征时可将该表格作为检查表。

        这份需求表格内容是以 GPS(Global Position System,移动地图系统)为例编写的。移动地图系统是一种手持设备,针对在高速公路开车的用户或类似的用户而设计,该设备可从 GPS 上得到位置信息,为用户显示当前所在的位置及周围的地形图,地图的内容随着用户及设备所在位置的改变而改变。

        需求分析阶段最重要的文档输出就是系统的规格说明。

        规格说明是精确反映客户需求并且作为设计时必须遵循的要求的一种技术文档。在软件开发的过程中,规格说明非常重要。系统分析人员接受用户需求产生目标软件系统的规格说明,设计与编码人员根据规格说明,进行模块设计并最终产生程序代码,测试和验收人员验证最终软件是否符合规格说明。规格说明应该是清晰的、无歧义的,否则由该规格说明建造系统可能不符合实际要求。

       目前,业界较为流行的方法是采用 UML 进行规格说明的描述。UML 是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模。UML 适用于系统开发过程中从需求规格描述到系统完成后测试的不同阶段。

        图 12-17 是一个显示操作的状态机规格说明示例,开始和结束是特殊的状态,状态机中的状态代表了不同的概念性操作。

        在需求分析阶段,通过用例来捕获用户需求。通过用例建模,描述对系统感兴趣的外部角色及其对系统(用例)的功能要求。分析阶段主要关心问题域中的主要概念(如抽象、类和对象等)和机制,需要识别这些类及它们相互间的关系,并用 UML 类图来描述。在分析阶段,只对问题域的对象(现实世界的概念)建模,而不考虑定义软件系统中技术细节的类(如处理用户接口、数据库、通信和并行性等问题的类)。

    7 系统设计

        目前,嵌入式系统的设计工具可以分为两类:协同合成工具和协同模拟工具。

        (1)协同合成工具。当前,用于嵌入式开发的主要的协同合成工具有 POLIS、COSYMA和Chinook 等。

    • POLIS:POLIS 是 UC-Berkeley 开发的交互式嵌入式系统的软、硬件协同设计框架,它适用于小型控制系统的设计,系统描述支持基于 FSM(Finite State Machine)的语言。由于软、硬件均可透明地从同一 CFSM 描述中取得,设计空间的灵活性也相应增加,支持使用 PTOLEMY 的协同模拟,在描述及实现层均支持正式的验证,架构的支持受限,即硬件 CFSMs 所包围的只有一个处理器,而且不支持共享内存。

    • COSYMA:COSYMA 是由德国 IDA 公司开发的一种探索硬件与软件协同设计合成进程的平台,它面向软件系统的描述较简单,支持自动分割和协同处理器合成,在合成时期可以对设计空间进行探索,系统合成取决于硬件限制,不支持并发模块,即一次只能有一个线程执行,架构同样受限,不支持正式验证,设计的成功与否取决于分割及开销估计技术。

    • Chinook:Chinook 是为控制系统而设计的,整个系统的描述作为一个输入提供给 Chinook,它的内部模式基于类似等级状态的模式,它不对代码进行分割,它为整个设计提供单一的模拟环境,Chinook 支持多种系统架构,尤其是多处理器结构。同样支持定时限制的描述,它能合成多种接口,包括系统之间的软、硬件接口,能直接从定时图表中合成设备驱动器,可以控制处理器之间的通信。

        (2)协同模拟工具。协同模拟是嵌入式系统设计中至关重要的一个方面,在整个系统设计完成后,在统一框架下模拟不同种类的成分是必要的,协同模拟不仅提供检验,而且为用户提供各系统的性能信息,这有助于在系统的早期提出变更方案,不至于造成重大损失。目前,主要的协同模拟工具有如下两种。

    • PTOLEMY:PTOLEMY 的关键思想是混合使用面向对象内核的计算模型,可用于模拟多种的系统,在各种应用中被广泛地使用,但不适合于系统合成,硬件模拟也是它的一项功能。

    • TSS:TSS(Tool for System Simulation)是模拟复杂硬件的工具,采用 C 语言编写,单个模块的提取可由用户控制,可以方便地进行添加与删除模块。但不支持分级模块,没有用于同步各处理器存取共享数据结构的机制,模块间的通信通过端口和总线进行。并且,TSS 支持多核系统的模拟。

        1.系统架构设计

        描述系统如何实现规格说明中定义的功能是系统架构设计的主要目的。但是在设计嵌入式系统的系统结构时,很难将软件和硬件完全分开。通常的处理是先考虑系统的软件架构,然后再考虑其硬件实现。系统结构的描述必须符合功能上和非功能上的需求。不仅所要求的功能要体现,而且成本、速度、功耗等非功能约束也要满足。从系统原始框图中的功能元素开始逐个考虑和细化,把原始框图转化为软件和硬件系统结构的同时考虑非功能约束,是一个切实可行的方法。下面以 GPS 移动地图系统的架构设计为例进行说明。

        (1)原始框图。如图 12-18 所示,这个原始框图是移动地图系统的主要操作和数据流。

     

     

        (2)软件系统架构。如图 12-19 所示,软件系统主要由用户界面、数据库搜索引擎和数据转换器组成。

        (3)硬件系统架构。如图 12-20 所示,硬件系统采用通用微处理器、存储器和 I/O 设备组成。本系统选用两种存储器:通用数据、程序存储器和针对像素显示的帧缓冲存储器。

        2.硬件子系统设计

        嵌入式系统的开发环境由 4 部分组成:目标硬件平台、嵌入式操作系统、编程语言和开发工具,其中处理器和操作系统的选择应当考虑更多的因素,避免错误的决策影响项目的进度。

        (1)选择处理器技术。嵌入式系统设计的主要挑战是如何使互相竞争的设计指标同时达到最佳化。设计者必须对各种处理器技术和 IC 技术的优缺点加以取舍。一般而言,处理器技术与 IC 技术无关,也就是说,任何处理器技术都可以使用任何 IC 技术来实现,但是最终器件的性能、NRE 成本、功耗、大小等指标会有很大的差异,如图 12-21 所示。

        更通用的可编程技术提供了较大的灵活性,降低了 NRE 成本,建立产品样机与上市的时间较快。定制的技术能够提供较低的功耗、较好的性能、更小的体积和大批量生产时的低成本。

        通常,一个公司要推出一种产品,如机顶盒、家庭路由器或通用处理器等,可以先推出半定制产品,以尽快占领市场,然后再推出全定制的产品。也可先用较可靠的老技术实现处理器,再用新制程的技术实现下一代。同样,嵌入式系统的设计者可以使用可编程的器件来建立样机,以加速上市时间,批量时再采用定制器件。

        根据这些原则,设计者便可以对采用的处理器技术和处理器做出合理选择。一般,全定制商品化的“通用处理器软件”是大多数情况下都适用的一个选择。

        (2)通用嵌入式处理器的选择。根据用户的需求和项目的需要选择合适的通用嵌入式处理器,选择时需要考虑如下指标。

    • 处理器的速度。一个处理器的性能取决于多个方面的因素:时钟频率,内部寄存器的大小,指令是否对等处理所有的寄存器等。对于许多需用处理器的嵌入式系统设计来说,目标不是在于挑选速度最快的处理器,而是在于选取能够完成作业的处理器和 I/O 子系统。处理器的性能满足系统的需求,并有一定的余量,但也不必选得太高。

    • 技术指标。当前,许多嵌入式处理器都集成了外围设备的功能,从而减少了芯片的数量,进而降低了整个系统的开发费用。开发人员首先考虑的是,系统所要求的一些硬件能否无须过多的组合逻辑就可以连接到处理器上。其次是考虑该处理器的一些支持芯片,如 DMA 控制器、内存管理器、中断控制器、串行设备、时钟等的配套。

    • 开发人员对处理器的熟悉程度,即项目的开发人员需要在处理器本身的成本和开发成本之间做一个权衡。

    • 处理器的 I/O 功能是否满足系统的需求,即许多处理器提供内置的外部设备,以减少芯片数量、降低成本,应尽量考虑这种方案。

    • 处理器的相关软件支持工具,即该款处理器是否具有完善的嵌入式操作系统、编程语言和开发工具的支持等。

    • 处理器的调试,即处理器是否集成了调试功能,如是否支持 JTAG、BDM 等调试方式。

    • 处理器制造商的支持可信度。在产品的生命周期里选择某种处理器时,设计者必须确认它有足够的供货量、技术支持等处理器的低功耗。

        嵌入式微处理器最大并且增长最快的市场是手持设备、电子记事本、PDA、手机、GPS 导航器、智能家电等消费类电子产品,这些产品中选购的微处理器的典型特点是要求高性能、低功耗。许多 CPU 生产厂家已经进入了这个领域。

        (3)硬件设计的注意事项。首先,将硬件划分为部件或模块,并绘制部件或模块连接框图。其次,对每个模块进行细化,把系统分成更多个可管理的小块,可以被单独实现。通常,系统的某些功能既可用软件实现也可用硬件实现,没有一个统一的方法指导设计者决定功能的软硬件分配,但是可以根据约束清单,在性能和成本之间进行权衡。

        设计软、硬件之间的接口时,需要硬件设计者和软件设计者协同工作才能完成,良好的接口设计可以保证硬件简洁、易于编程。

       设计时需要注意以下几点。

    • I/O 端口:列出硬件的所有端口、端口地址、端口属性、使用的命令和序列的意义、端口的状态及意义。

    • 硬件寄存器:对每个寄存器设计寄存器的地址、寄存器的位地址和每个位表示的意义,以及对寄存器读写的说明、使用该寄存器的要求和时序说明。

    • 内存映射:共享内存和内存映射 I/O 的地址,对每个内存映射,说明每个 I/O 操作的读/写序列、地址分配。

    • 硬件中断:如何使用硬件中断,列出所使用的硬件中断号和分配的硬件事件。

    • 存储器空间分配:列出系统中程序和数据占用的空间大小、位置,以及存储器类型和访问方式等。

        总之,硬件设计者应该给软件设计者更多、更详细的信息,以便于进行软件设计和开发。

        3.软件子系统设计

        根据需求分析阶段的规格说明文档,确定系统计算模型,对软件部分进行合理的设计即可。

        (1)操作系统的选择。在选择嵌入式操作系统时,需要做多方面的考虑:

    • 操作系统的功能。根据项目需要的操作系统功能来选择操作系统产品,要考虑系统是否支持操作系统的全部功能或部分功能,是否支持文件系统、人机界面,是实时系统还是分时系统及系统是否可裁减等因素。

    • 配套开发工具的选择。有些实时操作系统(rtos)只支持该系统供应商的开发工具。也就是说,还必须向操作系统供应商获取编译器、调试器等。有些操作系统使用广泛且有第三方工具可用,因此,选择的余地比较大。

    • 操作系统的移植难易程度。操作系统到硬件的移植是一个重要的问题。它是关系到整个系统能否按期完工的一个关键因素,因此要选择那些可移植性程度高的操作系统,从而避免操作系统难以向硬件移植而带来的种种困难,加速系统的开发进度。

    • 操作系统的内存需求如何。均衡考虑是否需要额外 ram 或 eeprom 来迎合操作系统对内存的较大要求。有些操作系统对内存的要求是与目标相关的。如 tornado/vxworks,开发人员能按照应用需求分配所需的资源,而不是为操作系统分配资源。从需要几 k 字节存储区的嵌入设计到需求更多的操作系统功能的复杂的高端实时应用,开发人员可任意选择多达 80 种不同的配置。

    • 操作系统附加软件包。是否包含所需的软件部件,如网络协议栈、文件系统、各种常用外设的驱动等。

    • 操作系统的实时性如何。实时性分为软实时和硬实时。有些嵌入式操作系统只能提供软实时性能,如 microsoft windows ce 2.0 是 32 位,windows 兼容,微内核,可伸缩实时操作系统,可以满足大部分嵌入式和非嵌入式应用的需要。但实时性不够强,属于软实时嵌入式操作系统。

    • 操作系统的灵活性如何。操作系统是否具有可剪裁性,即能否根据实际需要进行系统功能的剪裁。有些操作系统具有较强的可剪裁性,如嵌入式 linux 、 tornado/vxworks 等。

        (2)编程语言的选择。在选择编程语言时,也需要做多方面的考虑:

    • 通用性。随着微处理器技术的不断发展,其功能越来越专用,种类越来越多,但不同种类的微处理器都有自己专用的汇编语言。这就为系统开发者设置了一个巨大的障碍,使得系统编程更加困难,软件重用无法实现,而高级语言一般和具体机器的硬件结构联系较少,比较流行的高级语言对多数微处理器都有良好的支持,通用性较好。

    • 可移植性。由于汇编语言和具体的微处理器密切相关,为某个微处理器设计的程序不能直接移植到另一个不同种类的微处理器上使用,因此,移植性差。高级语言对所有微处理器都是通用的,因此,程序可以在不同的微处理器上运行,可移植性较好。这是实现软件重用的基础。

    • 执行效率。一般来说,越是高级的语言,其编译器和开销就越大,应用程序也就越大、越慢。但单纯依靠低级语言,如汇编语言来进行应用程序的开发,带来的问题是编程复杂、开发周期长。因此,存在一个开发时间和运行性能之间的权衡。

    • 可维护性。低级语言如汇编语言,可维护性不高。高级语言程序往往是模块化设计,各个模块之间的接口是固定的。因此,当系统出现问题时,可以很快地将问题定位到某个模块内,并尽快得到解决。另外,模块化设计也便于系统功能的扩充和升级。

    • 基本性能。在嵌入式系统开发过程中使用的语言种类很多,比较广泛应用的高级语言有 Ada、C/C++、Modula-2 和 Java 等。Ada 语言定义严格,易读易懂,有较丰富的库程序支持,目前,在国防、航空、航天等相关领域应用比较广泛,未来仍将在这些领域占有重要地位。C 语言具有广泛的库程序支持,是嵌入式系统中应用最广泛的编程语言,在将来很长一段时间内仍将在嵌入式系统应用领域中占重要地位。 C++是一种面向对象的编程语言,在嵌入式系统设计中也得到了广泛的应用,如 GNU C++。Visual C++是一种集成开发环境,支持可视化编程,广泛应用于 GUI 程序开发。但 C 与 C++相比,C++的目标代码往往比较庞大和复杂,在嵌入式系统应用中应充分考虑这一因素。

        (3)软件开发过程。嵌入式软件的开发过程不同于一般通用软件的开发过程,主要有如下步骤:

    • 选择开发语言,建立交叉开发环境;

    • 根据详细设计说明编写源代码,进行交叉编译、链接;

    • 目标代码的重定位和下载;

    • 在宿主机或目标机调试、验证软件功能;

    • 进行代码的优化。

        (4)软件开发文档。在嵌入式产品的开发设计过程中,开发阶段完成系统产品的实现,这一阶段同时需要完成一系列的文档,这些文档对完成产品设计、维护相当重要,这些文档分别为技术文件目录、技术任务书、技术方案报告、产品规格、技术条件、设计说明书、试验报告、总结报告等。

     

    8 系统集成与测试

        通常嵌入式系统测试主要包括软件测试、硬件测试、单元测试三个部分。

        一般系统的硬件测试包括可靠性测试和电磁兼容性测试,关于电磁兼容性目前已经有了强制性国内和国际标准。

        嵌入式系统软件测试方法和原理跟通用软件的测试基本一致,软件测试时,一般需要测试实例或测试序列,序列有两种来源:一种是需要用户进行设计,另一种是标准的测试序列。无论哪种测试实例,都要求实例能够高概率发现更多的错误,但在测试的内容上有些差别:

        (1)嵌入式软件必须长时间稳定运行。

        (2)嵌入式软件一般不会频繁地版本升级。

        (3)嵌入式软件通常使用在关键性的应用中。

        (4)嵌入式软件必须和嵌入式硬件一起对产品的故障和可靠性负责。

        (5)现实世界的条件是异步和不可预测的,使得模拟测试非常困难。

        由于这些差别,使得嵌入式系统软件测试主要集中在以下 4 个不同的方面:

        (1)因为实时性和同时性很难同时满足,所以大多数测试集中于实时测试。

        (2)大多数实时系统都有资源约束,因此需要更多的性能和可用性测试。

        (3)可以使用专用实时跟踪工具对代码覆盖率进行测试。

        (4)对可靠性的测试级别比通用软件要高得多。

        另外,性能测试也是设计嵌入式系统中需要完成的最主要的测试活动之一,对嵌入式系统有决定性的影响。

        由于嵌入式系统的专用性特点,系统的硬件平台和软件平台多种多样,每种都针对不同的应用而专门设计,因此,应用软件在各个平台之间很少具有通用性,并且嵌入式系统的更新换代速度相对较快。为了保护已有的投资、充分利用现有的软件资源和加快产品研制速度,软件的移植在嵌入式领域变得非常频繁。

    展开全文
  • 嵌入式系统开发学习

    千次阅读 2008-02-26 11:35:00
    嵌入式系统开发学习: 随着现代社会信息化进程的加快,嵌入式系统被广泛的地应用于军事、家用、工业、商业、办公、医疗等社会各个方面,表现出很强的投资价值。从国际范围来看,作为数字化电子信息产品核心的嵌入式...
      嵌入式系统开发学习:
    
       
            随着现代社会信息化进程的加快,嵌入式系统被广泛的地应用于军事、家用、工业、商业、办公、医疗等社会各个方面,表现出很强的投资价值。从国际范围来看,作为数字化电子信息产品核心的嵌入式系统目前其硬件和软件开发工具市场已经突破 2000亿美元,嵌入式系统带来的全球工业年产值更是达到了一万亿美元,随着全球经济的持续增长以及信息化的加速发展,嵌入式系统市场必将进一步增长。
    本课程是为了适应目前发展迅速的嵌入式 Linux需求而设计,课程目标是让学员达到适应嵌入式应用软件开发、嵌入式系统开发或嵌入式驱动开发的基本素质。课程循序渐进的带领您嵌入式开发的世界,采用了目前应用最广泛的软硬件开发平台( LinuxArm),可以保证您尽量贴近目前企业需求。


    嵌入式开发都需要学习什么

    这是一个初学者常问的问题,也是初学者问嵌入式该如何入门的根源。我感觉有两个方面,偏硬和偏软.我不认为嵌入式开发软件占绝对比重,相反,软硬件都懂,才是嵌入式高手所应该追求的,也是高手的必由之路。

    硬件道路:

    第一步: pcb设计,一般为开发板的电路裁减和扩充,由开发板原理图为基础,画出PCB和封装库,设计自己的电路。

    第二步: SOPC技术,一般为FPGA,CPLD开发,利用VHDL等硬件描述语言做专用芯片开发,写出自己的逻辑电路,基于ALTER或XILINUX的FPGA做开发。

    第三步: SOC设计,分前端,后端实现,这是硬件设计的核心技术:芯片设计.能做到这步,已经不属于平凡的技术人员。

    软件道路:<script language=javascript src="/AD/200612/34.js" type=text/javascript></script> 小虫网络技术http://www.chinaccna.com

    第一步:bootloader的编写,修改, 通过这步熟悉ARM硬件结构,学习ARM汇编语言,阅读ARM的芯片手册,感觉就是像操作51单片机一样操作ARM芯片.这一步最好的两个参考资料就是:芯片手册和bootloader源代码。

    第二步:系统移植, 驱动开发, 我只做过linux方向,所以也推荐学习嵌入式linux系统,作为标准体系,他开源而且可以获得大量学习资料.操作系统是整个计算机科学的核心,熟悉 kernel实属不易,kernel, 驱动开发的学习,没有什么捷径,只有多读代码,多写代码,熟悉系统API.. understanding linux kernel , linux device driver 都是不可多得的好书,值得一看。

    第三步:应用程序的编写,各种GUI的移植,qt , minigui都被大量采用,两种思想都类似,熟悉一种就可以。

    软件道路中,驱动,系统应该是最深入的部分,不是短时间可以掌握的,需要有勇气和耐心。嵌入式开发,软硬结合,因为硬件条件比PC差很多,所以肯定会遇见不少问题,因此实践的勇气更加重要.有问题就解决问题,无数次的实验,也许是解决问题的必由之路。



    1、Linux 基础

    安装Linux操作系统
    Linux
    文件系统
    Linux
    常用命令
    Linux
    启动过程详解
    熟悉Linux服务能够独立安装Linux操作系统
    能够熟练使用Linux系统的基本命令
    认识Linux系统的常用服务安装Linux操作系统
    Linux
    基本命令实践
    设置Linux环境变量
    定制Linux的服务 Shell 编程基础使用vi编辑文件
    使用Emacs编辑文件
    使用其他编辑器


    2、Shell 编程基础

    Shell简介
    认识后台程序
    Bash
    编程熟悉Linux系统下的编辑环境
    熟悉Linux下的各种Shell
    熟练进行shell编程熟悉vi基本操作
    熟悉Emacs的基本操作
    比较不同shell的区别
    编写一个测试服务器是否连通的shell脚本程序
    编写一个查看进程是否存在的shell脚本程序
    编写一个带有循环语句的shell脚本程序


    3、Linux 下的 C 编程基础

    linux C语言环境概述
    Gcc
    使用方法
    Gdb
    调试技术
    Autoconf
    Automake
    Makefile
    代码优化 熟悉Linux系统下的开发环境
    熟悉Gcc编译器
    熟悉Makefile规则编写Hello,World程序
    使用 make命令编译程序
    编写带有一个循环的程序
    调试一个有问题的程序


    4、嵌入式系统开发基础

    嵌入式系统概述
    交叉编译
    配置TFTP服务
    配置NFS服务
    下载Bootloader和内核
    嵌入式Linux应用软件开发流程
    熟悉嵌入式系统概念以及开发流程
    建立嵌入式系统开发环境制作cross_gcc工具链
    编译并下载U-boot
    编译并下载Linux内核
    编译并下载Linux应用程序


    4、嵌入式系统移植

    Linux内核代码
    平台相关代码分析
    ARM
    平台介绍
    平台移植的关键技术
    移植Linux内核到 ARM平台 了解移植的概念
    能够移植Linux内核移植Linux2.6内核到 ARM9开发板


    5、嵌入式 Linux 下串口通信

    串行I/O的基本概念
    嵌入式Linux应用软件开发流程
    Linux
    系统的文件和设备
    与文件相关的系统调用
    配置超级终端和MiniCOM 能够熟悉进行串口通信
    熟悉文件I/O 编写串口通信程序
    编写多串口通信程序


    6、嵌入式系统中多进程程序设计

    Linux系统进程概述
    嵌入式系统的进程特点
    进程操作
    守护进程
    相关的系统调用了解Linux系统中进程的概念
    能够编写多进程程序编写多进程程序
    编写一个守护进程程序
    sleep
    系统调用任务管理、同步与通信 Linux任务概述
    任务调度
    管道
    信号
    共享内存
    任务管理 API 了解Linux系统任务管理机制
    熟悉进程间通信的几种方式
    熟悉嵌入式Linux中的任务间同步与通信
    编写一个简单的管道程序实现文件传输
    编写一个使用共享内存的程序


    7、嵌入式系统中多线程程序设计

    线程的基础知识
    多线程编程方法
    线程应用中的同步问题了解线程的概念
    能够编写简单的多线程程序编写一个多线程程序


    8、嵌入式 Linux 网络编程

    网络基础知识
    嵌入式LinuxTCP/IP网络结构
    socket
    编程
    常用 API函数
    分析Ping命令的实现
    基本UDP套接口编程
    许可证管理
    PPP
    协议
    GPRS
    了解嵌入式Linux网络体系结构
    能够进行嵌入式Linux环境下的socket 编程
    熟悉UDP协议、PPP协议
    熟悉GPRS 使用socket 编写代理服务器
    使用socket 编写路由器
    编写许可证服务器
    指出TCPUDP的优缺点
    编写一个web服务器
    编写一个运行在 ARM平台的网络播放器


    9、GUI 程序开发

    GUI基础
    嵌入式系统GUI类型
    编译QT
    进行QT开发熟悉嵌入式系统常用的GUI
    能够进行QT编程使用QT编写“HelloWorld”程序
    调试一个加入信号/槽的实例
    通过重载QWidget 类方法处理事件


    10、Linux 字符设备驱动程序

    设备驱动程序基础知识
    Linux
    系统的模块
    字符设备驱动分析
    fs_operation
    结构
    加载驱动程序了解设备驱动程序的概念
    了解Linux字符设备驱动程序结构
    能够编写字符设备驱动程序编写Skull驱动
    编写键盘驱动
    编写I/O驱动
    分析一个看门狗驱动程序
    对比Linux2.6内核与2.4内核中字符设备驱动的不同
    Linux
    块设备驱动程序块设备驱动程序工作原理
    典型的块设备驱动程序分析
    块设备的读写请求队列了解Linux块设备驱动程序结构
    能够编写简单的块设备驱动程序比较字符设备与块设备的异同
    编写MMC卡驱动程序
    分析一个文件系统
    对比Linux2.6内核与2.4内核中块设备驱动的不同


    11、文件系统

    虚拟文件系统
    文件系统的建立
    ramfs
    内存文件系统
    proc
    文件系统
    devfs
    文件系统
    MTD
    技术简介
    MTD
    块设备初始化
    MTD
    块设备的读写操作了解Linux系统的文件系统
    了解嵌入式Linux的文件系统
    了解MTD技术
    能够编写简单的文件系统为 ARM9开发板添加 MTD支持
    移植JFFS2文件系统
    通过proc文件系统修改操作系统参数
    分析romfs 文件系统源代码
    创建一个cramfs 文件系统

    转自:mailer3721 博客,作者推荐书:

    那我就介绍几本吧:这些我都看过。

    嵌入式实时操作系统μC/OS-II(第2版)【译  者】  邵贝贝 

    μCOS ARM移植要点详解 【作  者】 黄燕平  

    嵌入式系统——采用公开源代码和StrongARM/Xscale处理器 【作  者】 毛德操 胡希明 

    linux内核入门可以看看:LINUX内核设计与实现(第2版)

    uc/OS入门可以看看:嵌入式实时操作系统μC/OS-II原理及应用(任哲编著)教你动手的哦:)实践性较强,又通俗易懂,书比较薄没什么废话。

    ARM嵌入式系统开发:软件设计与优化(作者: (美)ANDREW SLOSS, DOMINIC SYMES, CHRIS WRIGHT 译者:沈建华)处理器和指令方面写的很好,是“道”方面的好书。

    关于linux下的编程当然是重量级经典:Linux 程序设计+unix环境高级编程。


    100个最佳Linux站点

    在很早就出现在LinuxByte转载的文章里面,但一直都没有完整版本,今天在非常Linux发现,立即转载给大家! 希望大家在到下面站点学习交流的同时,也多到LinuxByte逛逛!


    (一) 网络中遍布着大量的Linux相关站点;

    (二) 用户无须详细了解每一个此类站点,实际上,一百个站点足够你使用了。


    评选出的这100个优秀站点,将按照下述20个类别作以评介:

    (一) 文件下载

    (二) 幽默娱乐

    (三) 相关新闻

    (四) 通用硬件

    (五) 专用硬件

    (六) 新手站点

    (七) 图形/多媒体

    (八) 游戏站点

    (九) 网络杂志

    (十) 入口(教育、链接)

    (十一) 软件开发

    (十二) 购物

    (十三) Linux内核

    (十四) 职业机会

    (十五) 科学工程

    (十六) 文档管理

    (十七) X-Window 系统

    (十八) Linux 分发站点

    (十九) 用户团体

    (二十) 网管站点



    (一) 软件下载

    (1) Freshmeat站点

    网址: http://www.freshmeat.net

    评介:如果你绝对肯定,非要获取开放源代码应用程序,那毫无疑问,Freshmeat就是个不错的站点。这个最值得推崇的软件下载站点,有着数以千计的大量开放源代码应用程序的分类链接。此外,Freshmeat站点在更新程序的基础上,每天还会添加10到30个新程序链接。


    (2) Tucows Linux

    网址: http://linux.tucows.com

    评介:最初,该站点是一个基于Windows的软件园地,几年后,Tucows拓宽领域。现在,该站点已经发展成为了最开放的Linux下载站点之一。不过,说真的,这也是因为Linux从一开始就增强了服务器的缘故。


    (3) Woven Goods for Linux

    网址: http://www.fokus.gmd.de/linux

    评介:Woven Goods for Linux 是一个德语站点,它的特征就在于英文和德文版的Linux程序下载和文档。该站点还有一个很不错的综合列表,几乎列出了你所能想象出的每一个Linux分发。


    (4) Linux ISO Images

    网址: http://www.LinuxISO.org

    评介:是不是已经极其厌倦了查找ISO图象?在LinuxISO.org站点中一个非常醒目的地方,就放置了最流行的Linux 分发ISOs的链接。当然,它不能让你56k的调制解调器具有更快的下载速度,但他们已经竭尽所能了,那些有DSL或光缆调制解调器的用户们会非常高兴的。


    (5) RPMfind.net

    网址: http://www.rpmfind.net

    评介:如果你还沉浸在网络海洋寻找最新用RPM(Red Hat Package Manager)格式编写的软件,那这个站点最适合不过了。凡是存在的RPM Package,这里都可以找到,而且这些软件还被编进了索引,用户可以通过多种不同方式来分类。例如,你可以分别用类别(比如游戏等等)、创建日期、 package maintainer或名称等等多种方式查询一个软件包。


    (二)娱乐休闲

    (1) UserFriendly

    网址: http://www.userfriendly.org

    评介:真应该建议Netscape在浏览器(就在“Home”旁边)上添加一个按钮,以便用户可以很轻易地跳转到User Friendly上的Daily Static链接中去。喜欢新奇感觉的用户可能没有人愿意错过该站点上的冒险体验。此外,还有其它像卡通等等内容丰富的东西。User Friendly站点的最大特点就是每日都有新服务内容,而且还有庞大的人才数据库和Ufie社区。


    (2) Segfault

    网址: http://www.segfault.org

    评介:是一个不错的Linux娱乐站点。该站点的特征在于喜欢拿Linux界的名流人物来开涮,非常可笑且带有讽刺意味。在这里用户不会找到太多有用的资料,但绝对可以让你捧腹大笑。


    (3) Sluggy Freelance

    网址: http://www.sluggy.com

    评介:可以肯定,第一名的UserFriendly绝对不是惟一的滑稽喜剧站点,Sluggy Freelance就是一个典型例证。该站点的创建日期可以回溯到1997年,特征就是提供了不少通俗易懂的素材。尤其值得一提的是,Sluggy站点非常体贴新用户,专门在最醒目的位置放置了新读者指南。建议大家不妨请一天假,完完整整地浏览一个这个不错的网站。


    (4) Humorix

    网址: http://i-want-a-website.com/about-linux

    评介:Humorix站点既讲述Linux的相关知识,又着力于Linux,、Microsoft以及其他许多相关系统或软件的趣事收集。此外,还有许多专栏作者和自愿投稿者的搞笑文章。


    (5) Jargon File

    网址: http://www.tuxedo.org/~esr/jargon

    评介:不是特别了解“行话”?难道不想去深入了解滑稽语言隐含的深层含义?那就访问Jargon File站点吧。该站点收集了庞大的滑稽行语概要,时间跨度相当大。在这里,你会同时发现像早期的“Bit Bucket”和“404”,同时还有现在时新的有关Hacker Writing Style和Lamer-speak的文章。该站点由Eric Raymond编辑整理而成。


    (三)相关新闻

    (1) Slashdot.org

    网址: http://slashdot.org

    评介:这个自称为“为大众服务的新闻”站点早先是以“芯片和程序”起家的。后来慢慢发展成为搞笑闲谈的场所。成千上万的铁杆支持者和匿名用户通过该站点搜寻大量的技术故事和未过滤的社区回信。当CmdrTaco和Hemos的语法成为时兴后,他们关于这个搞笑网站尝试后的成功地位自然也无人可比了。


    (2) Linux Today

    网址: http://www.Linuxtoday.com

    评介:Linux Today网站遵从的是Rolling Stone Magazine杂志的座右铭“All the News that Fits”。并且作为一个网站,它的确作得相当不错。对于想直接访问大多Linux业界主要大事的用户来说,由于该站点提供了新闻故事、出版发行等相关信息,所以确实是一个不错的切入点。


    (3) Linux Weekly News

    网址: http://www.lwn.net

    评介:如果你想查找所有简明扼要的新闻,那就不应该错过Linux Weekly News站点。它的范围非常广泛,远至安全事件,近至社会问题。而且每周星期四,该站点都非常有规律地提供一个关于所有业界所发生事件的编辑评注,仔细浏览,你会发现它的评注非常合情合理。


    (4) Wired News

    网址: http://www.wired.com

    评介:尽管,每周Wired News站点只有几组专门的Linux新闻故事,但这些新闻故事中却总有技术爱好者所关心的信息。而且在当今充盈着“链接到----网站”的情况下,该站点还做了其他此类网站没有时间去真正做的事————自己亲自动手写稿件。


    (5) Wide Open News

    网址: http://www.wideopen.com

    评介:该站点的新闻区经常包含一些相当有意义的专题特写和文章,而且一般都由专业记者撰写。Wide Open News站点每周都会发布一些原创作品,而且通常稿件质量都很高。喜欢浏览行业新闻的不妨去感受一番。

    (四)通用硬件

    (1) Linux Hardware

    网址: http://www.linuxhardware.net/

    评介:Linux Hardware站点中包括一个内容非常广泛的Linux系统中所有的硬件信息数据库。用户既可以浏览这些数据库资料,也可以使用该站点的搜索引擎来快速查找所需要的硬件资料。同样,该站点也允许搜索Usenet 组。其中Linux Friendly Hardware Vendor 列表也是另一个特点所在。


    (2) Linux Hardware Database

    网址: http://lhd.datapower.com

    评介:尽管每天Linux下的硬件支持变得越来越少,但不可否认仍然有那么几款硬件非常适合于Linux用户。Linux Hardware Database站点就是一个可以找到此类适合Linux的控件类别的不错站点。


    (3) The Linux Benchmarking Project

    网址: http://www.tux.org/bench

    评介:差不多每一个电脑爱好者都喜欢基准,特别是当他们的硬件产品处于顶级时更是如此。The Linux Benchmarking Project站点提供了一个基准结果数据库,以及可供下载的基准软件。


    (4) Tom’s Hardware Guide

    网址: http://www.tomshardware.com

    评介:该站点虽然并不是一个专门的Linux站点,但是有关Linux的内容非常不错,很值得一看。用户不但在这里可以找到评论、新闻、技巧,还可以查找图形信息、微处理器硬件等等。


    (5) Linux on Laptops

    网址: http://www.cs.utexas.edu/users/kharker/linux-laptop/

    评介:如果你还在顽强地想将Linux装进你的笔记本电脑,那这个站点绝对是最适合不过了。从德克萨斯学院毕业的Kenneth Harker用了五年的时间来对相关笔记本电脑的站点进行精选和分类。同时,还让真正的用户推荐如何可以在他们的笔记本电脑中装入和运行Linux系统。


    (五)专用硬件

    (1) LinuxPPC.org

    网址: http://www.linuxppc.org/

    评介:如果你正在犹豫,不能判断壁橱里的老式Macintosh能不能支持Linux系统,那LinuxPPC.org站点就是个值得一去的地方。它是通往 Linux/PPC方案的家园,能够将Linux端口置于Mac,而且还可以链接到Linux/Macintosh邮件列表、常用问题解答、软件等等。


    (2) iMac Linux

    网址: http://www.imaclinux.net

    评介:如果你难以忍受玻璃鱼缸样式、果冻般颜色的iMac,而现在想运行Linux,不知行不行?可以肯定地说,没问题,iMac Linux 网站可以帮助你在短短几分钟内完成你的心愿。


    (3) Printer Compatibility Database

    网址: http://www.picante.com/~gtaylor/pht/printer_list.cgi

    评介:在Linux下执行打印任务可能有些烦人,以至于想购买一个新的打印机来同Linux配套。Printer Compatibility Database网站可以给用户提供一个在Linux下工作的打印机综合列表,包括如何同Linux配套使用的综合信息。同时,用户可以在该网站找到 Linux Printing HOWTO和其他有用的打印信息。


    (4) Linux Modem Compatibility Knowledge Base

    网址: http://www.o2.net/~gromitkc/winmodem.html

    评介:该站点提供了一个范围广泛的用户级调制解调器列表(包括Linux下)以及一些有帮助价值的Linux调制解调器链接。


    (5) SANE

    网址: http://www.mostang.com/sane/

    评介:如果你不知道如何在Linux下使用扫描仪,那SANE (Scanner Access Now Easy)站点就可以告诉你该怎么办了。况且,该站点不仅有最流行的Linux扫描仪软件,而且还以兼容硬件的数据库而颇具特色。


    (六) 新手站点

    (1) Penguin Magazine

    网址: http://www.penguinmagazine.com/

    评介:事实上,找一个能给Linux入门者提供各种所需的网站并不是很多,因此,相比之下,这个后起之秀Penguin Magazine站点的确还算是能解决这个难题。该站点在今年初才启动,由一个名叫Scott Haven的Linux爱好者个人制作完成,网站中包含了大量的有关Windows和Linux文件系统的逐步式内容介绍。在厌倦了阅读大多网站中专业化程度超过自己知识容量的资料之后,Penguin Magazine可以让你轻轻松松地喘口气了。


    (2) LinuxPlanet.com

    网址: http://www.linuxplanet.com/

    评介:由于制作优秀而被Big Company所认可的Linux站点之一就是LinuxPlanet,自从去年推出核心Linux内容之后,该站点就被因特网上的人们所看好。难度适中的论坛、评论、以及一些打印、查找文档等现实问题的疑难指点等。对于Linux菜鸟级的用户,LinuxPlanet绝对是一个有用的站点。


    (3) Beginners Linux Guide

    网址: http://www.linux.ie/beginners-linux-guide

    评介:Beginners Linux Guide是Irish Linux User Group Web站点的一部分。它的可圈可点之处在于其中通俗易懂的指南性专题,包括如何使用基本Linux命令、以及安装信息等等。


    (4) Linuxdot.org

    网址: http://www.linuxdot.org/

    评介:从这个站点完全可以证明,Linux并不只是美国佬的专利。因为Linuxdot.org是英国站点,而且的确是一个适用于初学者的向导性优秀站点。几乎可以冠以“Linux入门者的手册”美称了。该站点的特征是从硬盘分区直到MySOL的简单介绍几乎无所不包,囊括了所有Linux的相关知识。


    (5) Linuxnewbie.org

    网址: http://www.Linuxnewbie.org/

    评介:Linuxnewbie.org是一个综合性站点,包括新闻标题、论坛、著名的Newbieized帮助文件(Newbieized Help Files)等等。这种帮助文件是为了帮助用户习惯使用Linux,进行部分系统的配置。此外,用户还可以讨论或者检验该站点书架所推荐的图书。


    (七)图形/多媒体

    (1) LinuxArtist.org

    网址: http://www.linuxartist.org/

    评介:LinuxArtist.org是我们目前所见过的Linux系统下最综合全面的图形站点。不论用户喜欢平面图形还是三维图形,LinuxArtist.org都能给那些使用Linux来创建名作的艺术家们提供大量的链接和邮件列表。


    (2) The Gimp

    网址: http://www.gimp.org/

    评介:一旦你提到图象和Linux,那就不得不说说The GIMP Web站点。该站点特别适合于那些希望在Linux市场里得到最好图形程序的用户。站点里包含了大量的资源和下载软件,此外还展示了一些GIMP.自己制作的美术作品。


    (3) 3D software for Linux

    网址: http://www.linux3d.org/

    评介:虽然3D software for Linux站点不是网络中最可爱的网站,但用户可以在这里找到许多有价值的Linux下的3D应用程序,同时还有支持Linux的3D硬件等。此外,站点页面中还有许多Linux下的3D相关链接、当前新闻、Linux下的有关3D图形的事件等等。


    (4) GraphicsMuse

    网址: http://www.graphics-muse.com/

    评介:GraphicsMuse站点是一个资源丰富的Linux下图形信息网站。在这个站点上,用户可以找到大量的图形资源、推荐图书、关于GIMP的原始内容以及其他一些非常好的图形方案。


    (5) General Graphics Interface Project

    网址: http://www.ggi-project.org/

    评介:不知你是否抱怨过,X Window系统可能压根就不适合你?这些家伙们对于用X设计一点都没有激情,但他们希望有一种更好的工作方式。现在,他们应该有了一个计划,而且,更重要的是,他们拥有beta代码。

    (八)游戏站点
    (1)Linux Game Tome

    网址: http://happypenguin.org/

    评介:从1995年开始,Linux Game Tome就已经成为了一个Linux游戏竞赛的专门场所。而那时,Linux游戏世界本身也还是一片小天地。现在,他们以http: //happypenguin.org/ 为网址,频道设置有新闻、游戏场景图片、游戏预告,以及最新游戏的评论等等。同时,该站点还有一个不错的搜索引擎,可以让用户根据游戏类别、等级、名称,甚至该游戏添加到网站的日期等分类浏览游戏评论。


    (2)Linux Games

    网址: http://www.linuxgames.com/

    评介:网站内容设置有下载、基本知识、论坛以及新闻等。特别是新闻成为该网站的特色频道。毫无疑问,Linux Games是一个可以覆盖全球绝大多数Linux游戏新闻的站点。


    (3)Linux Quake

    网址: http://www.linuxquake.com/

    评介:绝对不能错过的站点。是一个非常精彩的《雷神之锤》站点。包括了Linuxe下《雷神之锤》(Quake)的安装、运行,以及新闻和非常活跃的论坛等。


    (4)Linux Game Development Center

    网址: http://sunsite.auc.dk/lgdc/

    评介:如果你想寻找一个非常精彩、且又能找到Linux游戏开发人员一切所需的场所,那可以肯定目前这样的站点的确还没有出现。不过,Linux Game Development Center 的发展目标也基本类似。现在,该站点设置了精彩新闻、游戏开发指南、针对开发人员的访谈等,但它还正在开发代码仓库、开发工具列表、以及新工作方案,以求不断发展。


    (5)Loki

    网址: http://www.lokigames.com/

    评介:目前,Loki是一个商业性的Linux游戏公司。从《文明》到《雷神之锤3》,再到《铁路大亨2》等等,Loki公司几乎将所有最流行的游戏软件都移植到了Linux平台上。如果你想看看最近有什么大游戏,那就上去看看吧!


    (九)网上杂志

    (1)Linux Journal Online

    网址: http://www.linuxjournal.com/

    评介:Linux Journal是其印刷杂志的电子版,大部分和印刷版特征相符,不过也添加了一些新的资料。此外,电子版的特色频道还体现在职业中心、论坛,以及著名软件列表等等。怎样说服你的老板使用Linux系统,只要看看该站点的企业部分就可以了。


    (2)LinuxWorld

    网址: http://www.linuxworld.com/

    评介:LinuxWorld是一个发行量很大的周刊,范围涉及到Linux的方方面面,从软件评论到Linux市场的大幅专题。对于反微软的业界来说,LinuxWorld可是一个几乎无人不知的驰名站点。


    (3)Linux Gazette

    网址: http://www.linuxgazette.com/

    评介:Linux Gazette是由Linux Journal 出版的电子刊物,属于Linux Documentation Project的一部分。自从1995年成立以来,无数的志愿者都在踊跃提交稿件,以至于该站点现在已经成为一个实力很强的站点之一(如果翻看他们的档案,就能看到一个非常非常古老的Red Hat图标)。对于很多高级Linux用户来说,该站点的优势在于提供了很多指南和技巧,同时用户还可以对未来想了解的专题发送提议。


    (4)Salon Magazine: The Free Software Story

    网址: http://www.salon.com/tech/special/opensource/

    评介:最早在1998年,Salon就开始初涉Linux和开放源代码。和其他大量再线Linux杂志不同的是,该站点所涉的内容题材非常广泛而且相当有意义。


    (5)Linux Focus

    网址: http://www.linuxfocus.org/

    评介:这个定期按时发送的电子杂志自从1997年就开始诞生了。它以月刊的形式,给用户提供了许多新颖(多少有些深奥)的技术性文章。而且以多种语言发行,当然也包括英文版。

    (十)链接/入口

    (1) Linux.com

    网址: http://www.Linux.com

    评介:仅仅一年的时间,VA Linux的Linux.com 就已经成长为因特网上最具竞争力的Linux站点之一。在网站经理Trae McCombs和他的自愿者小组努力下,该网站为Linux社区添加了无数非常有用的特色内容和资源。近来,该站点和O’Reilly & Associates结成合作关系,双方合作的结果使Linux.com站点更具有专业化和更高质量。


    (2) LinuxStart.com

    网址: http://www.LinuxStart.com

    评介:想一想Yahoo,基本就能够想象得出Linux的同类站点------LinuxStart.com站点的特色也正在于有一个相当不错的分成好多个主题区的精选链接。此外,如果你正在费劲地用Hotmail发送网络信件,不妨试试Linux-Start的电子信箱。甚至你还可以将你的网页也一并搬到上面。


    (3) LinuxLinks.com

    网址: http://www.linuxlinks.com

    评介:LinuxLinks.com是最综合性的Linux站点之一,在这里你能见到许多曾经印象比较深刻的站点链接。目前,该站点的链接数量超过10,000,而且随时都在增加。


    (4) Linux Online

    网址: http://www.linux.org

    评介:Linux Online的名称甚至比它的域名Linux.org更为知名。是一个比较早的Linux站点,虽然界面做得并不是非常漂亮,但其中包含的Linux资源价值却使其成为了一个必须参观的网站之一。


    (5) Linsight

    网址: http://Linsight.com

    评介:Linsight在宣传中介绍自己为“Linux时代的Linux信息”。该网站实际上是由好几个部分组成的,其中包括命名为 LinDeveloper的一个开发人员分区、一个叫做Linsider的Linux市场跟踪区、追踪全年所发生的Linux业界焦点事件报道的 LinEvents区、以及可以告诉你和你的员工们在那里得到Linux培训的LinTraining专区。


    (十一)软件开发

    (1) SourceForge

    网址: http://www.SourceForge.net

    评介:SourceForge站点是VA Linux针对开发人员的一个入口。程序员们在这里可以放置他们的开放源代码方案,包括CVS工具、调试追踪和补丁管理工具。SourceForge给所有没有资源来自己安装一个服务器的Linux和开放源代码程序员们一个家园。用户可以浏览和下栽网站上已开发的软件,也可以给这些方案做补丁。


    (2) Catalog of Free Compilers and Interpreters

    网址: http://www.idiom.com/free-compilers/

    评介:在没有明确限制Linux和开放源代码软件的时候,免费编译器和解释程序的目录对于开放源代码的开发人员还是会有些兴趣的。此外,该站点包含了许多编程工具和编译器。


    (3) SourceXchange

    网址: http://www.sourcexchange.com

    评介:SourceXchange是一个可以让Linux和开放源代码软件开发人员得到报酬的站点。通过链接到一个付费的商业公司,就可以用开放源代码软件赚钱了。需要开放源代码吗?需要提交方案、标明你的价格-------当然,成功的前提是他们必须正好有你所需要的代码。


    (4) CoSource

    网址: http://www.cosource.com

    评介:CoSource是又一个专门给源代码开发人员提供的付费站点。目前,表单上已经有将近250个要求,总量达$71,500。


    (5) Linux Source Navigator

    网址: http://www.metalab.unc.edu/navigator-bin/navigator.cgi?

    评介:该站点将源代码镶进一个简单的导航性分层文件夹系统中,以便用户快速查找到所需要的代码。

    (十二)购物

    (1) LinuxMall.com

    网址: http://www.linuxmall.com

    评介:可能由于最近更新过的缘故,LinuxMall.com站点看起来不想是购物站点,倒像是一个专门的Linux链接入口。而且,它还远不只是一个普通的电子商务站点。目前,该站点已经打算建立很多特色社区了,如论坛以及已经启动的新闻服务等。


    (2) Thinkgeek

    网址: http://thinkgeek.com

    评介:该网站有随手可得地最酷Linux附件。但除了一些$1.99的发行CD外,用户可能在这里不会找到任何软件。不过,如果你想用“"compile”、“telnet”、和“regexp”写点东西,最好还是上这个站点看看吧!


    (3) The Linux Store

    网址: http://thelinuxstore.com

    评介:该站点比较自豪的是他们易于使用、简洁的界面、非常广泛的产品线,以及大量的技术支持,没准在这里你还能找到你需要的东西呢。


    (4) eLinux.com

    网址: http://www.elinux.com

    评介:这个进入Linux购物市场的新入口是由Creative Computers公司提供支持的,该公司同时还有PCMall和MacMall。Elinux站点中有一个非常广泛的Linux硬件和软件区,同时还有一个由Linuxcare提供支持的FAQ数据库。


    (5) Linuxcentral

    网址: http://www.linuxcentral.com

    评介:图书、T恤--------用户在这里可以找到所有传统Linux电子商务所能买到的东西,此外,在这里还有一些更有趣的东西,比如网卡等等。


    (十三)Linux内核

    (1) Kernel Notes

    网址: http://kernelnotes.org

    评介:KernelNotes.org是一个可以得到所有内核的地方。该站点所包括的内容比较广泛,而且,特色是能够找到最新内核的升级技巧。


    (2) The Linux Kernel Archives

    网址: http://www.kernel.org/

    评介:该站点奉行的原则是:简洁、简洁,再简洁。用户可以选择Linux内核、不稳定内核、稳定内核以及内核源代码。如果你想找最新的稳定Linux内核或开发中内核,那就去看看吧。


    (3) Kernel Traffic

    网址: http://kt.linuxcare.com/

    评介:难道每周不想要一个几乎达到6MB的Linux开发邮件列表吗?Kernel Traffic站点的那帮家伙们早就替你想到了这一点。Kernel Traffic是一个时事通讯周刊,总结了本周主要的专题。一个不错的站点。


    (4) GNU Hurd

    网址: http://www.gnu.ai.mit.edu/software/hurd/hurd.html

    评介:稳定版目前已经具体化,但关于Hurd kernel 的GNU Project还在发展之中。Hurd内核是一个微核设计的实练。GNU/ Hurd站点的特征就是说明了如何将Hurd安装进Debian distribution中去。


    (5) Linux Mama

    网址: http://www.LinuxMama.com/

    评介:无论如何,也不是每一个内核补丁都得作到fold中,如果你正好属于好奇心比较重的类型,想玩玩非正式内核补丁,那就不要错过Linux Mama了。


    (十四) 职业机会

    (1)Geekfinder

    网址: http://www.geekfinder.com/

    评介:主机位于User Friendly站点的Geekfinder是一个猎职的好去处。该站点不只限于Linux类相关工作,用户可以根据自己的技能搜索和选择最适合自己的工作。此外,用户还可以根据自己的意愿按照州和地区来搜索职位。


    (2)Linux.com Jobs Page

    网址: http://www.linux.com/jobs/

    评介:想寻找专职Linux工作的人,值得来Linux.com’s Jobs page站点看看。根据提交的职位,该站点有大量适用于Linux求职者的有用专题和链接。


    (3)eLance

    网址: http://www.elance.com

    评介:正式发布于去年的eLance站点为包括计算机业求职的各类自由服务开辟了一个新市场。用户可以在该站点填写个人资料表格,并在其“固定薪酬”部分根据填写者自己要求的计时薪酬(在这里你也可以以每小时3到300美圆的价格雇佣其他人),或者你也可以浏览网站上的各种信息看看是否有适合你的自由工作。


    (4)Linux Today Jobs

    网址: http://jobs.linuxtoday.com/

    评介:该站点有两个特征:网络上综合性最强的Linux新闻站点之一;能够同时提供Linux企业公司招聘和Linux个人求职的专业站点。


    (5)Hotjobs.com

    网址: http://www.hotjobs.com

    评介:Hotjobs.com是一个不局限于Linux特定求职的网站,该站点每天发布5到10个Linux相关职位,而且所公布的职位资料绝对不是那些看起来充裕却几乎没有什么回映的过时消息。


    (十五)科学工程

    (1) SAL: Scientific Applications for Linux

    网址: http://www.kachinatech.com/SAL/

    评介:Linux现在不仅仅是供玩乐的东西了,但这并不是意味着就此失去了许多乐趣。对于年轻的科学工作者们来说,可以在该网站找到许多适用于Linux下各种科研应用程序的开放源代码、共享软件和商业软件等等。


    (2) Beowulf Project at CESDIS

    网址: http://beowulf.gsfc.nasa.gov/

    评介:一个很酷的Linux站点。以帮助科学家们联系大量质优价廉的电脑而出名。


    (3) High-Availability Linux Project

    网址: http://www.henge.com/~alanr/ha/

    评介:如果你正在Linux下运行企业级的应用程序,或者只想验证一下Quake服务器从不会崩溃,那该站点就太适合你了。同时该站点还提供了许多簇管理、Linux-HA软件以及大量地此类相关站点链接。


    (4) Free Physics Project

    网址: http://freephysics.sourceforge.net/

    评介:是一个创建Linux下的GPL物理模拟器的站点。用户可以下载运行代码、项目处理等等。


    (5) Linux and Chemistry

    网址: http://chpc06.ch.unito.it/chem_linux.html

    评介:这是一个综合了Linux和化学的网站,其中有许多商业、共享软件和GPL的软件,适合于那些在Linux下做研究工作的化学家。想必化学系的学生和教授应当喜欢这个站点。

    (十六)文档管理

    1)Linux Documentation Project

    网址: http://www.linuxdoc.org/

    评介:在所有Linux站点中,LDP已经作了相当久的FAQ、HOWTO以及Linux导引了。该站点最为夸耀的是各种格式的Linux详细信息集萃。此外,此站点中的HOWTO分项也是一个能解答用户所有疑难问题的权威场所。最近由于新鲜血液的加盟,该站点又有了新特色。


    2)Open Source Writer’s Group

    网址: http://www.oswg.org:8080/oswg

    评介:该站点是由LinuxChix的Deb Richardson在去年制作完成的,为一个开放源代码的集萃站点,特别适合于开放源代码项目的用户。


    3)Linux Resources

    网址: http://www2.linuxjournal.com/cgi-bi....pl/lr-toc.html

    评介:该站点是一个优秀的资料站点,同时适用于Linux新手和专业人士。在这里,用户可以找到所有相关Linux的资料,而且它还告诉你,在哪里可以找到相关资料、可以和使用这些资料的人见面,以及其它更多。


    4)GNU Project Documentation

    网址: http://www.gnu.org/doc/doc.html

    评介:如果你手里有一个很好的免费软件却不知如何使用,怎么办?幸运的是,GNU Project Documentation站点的管理人员已经为你提供了一个非常综合的文档区。此外,如果你心情不错,那么还可以去读读Free Software and Free Manuals上刊登的Richard Stallman的评论。


    5)The Vim Homepage

    网址: http://www.vim.org/

    评介:一个绝对让新手震动的Linux网站。这里有大量的Vim信息和使用资料。


    (十七)X-Window 系统

    1)Themes.org

    网址: http://www.themes.org

    评介:这里有装扮你桌面的所有好东西,同时还有在window 管理器和其它流行软件包上更新的X资源和新闻。此外,Themes.org还有SawMill、Afterstep、 Enlightenment、WindowMaker、KDE专区等等。


    2)KDE Home

    网址: http://www.kde.org

    评介:该站点能提供给你适用于K Desktop Environment的任何开发资料,而且还有随时更新的适用于KDE的最新发行软件。此外,KDE还有许多像K Office之类的相关资料。


    3)GNOME Home

    网址: http://www.GNOME.org

    评介:Gnome.org是一个组织最好的免费软件站点。在这里,用户可以得到有关GNOME的开发资源,可以加入GNOME邮件列表,还可以进行软件下载。开发人员将搜索到最新的附加资料,GNOME用户们还将找到大量有用的文档。


    4)XFree86 Project

    网址: http://www.xfree86.org

    评介:XFree86 Project站点将给用户Linux系统的相关资料、最新发行的软件、以及一个精彩的FAQ等等。XFree86站点对于刚入门的Linux新手来说将是一个不可错过的站点。


    5)Window Managers for X

    网址: http://www.PLiG.org/xwinman

    评介:Window Managers for X站点是有关X窗口管理器的最综合性站点。从最早的一直到最新的乃至全部,以及最大的窗口管理器都可以在该站点找到。还不知道一个窗口管理器和一个桌面环境的区别吗?该站点也可以回答你这些基本问题。


    (十八)Linux 分布站点

    1)Debian

    网址: http://www.debian.org

    评介:Debian网站用户界面非常友好,并且关于Debian GNU/Linux和Linux一般使用方面内容丰富。如果你喜欢冒险,你甚至可以在这里找到如何使用GNU/Hurd内核运行Debian而不是我们都知道和喜爱的Linux内核。而且还有很多各种各样免费资源的链接供用户使用!


    2)Red Hat

    网址: http://www.RedHat.com

    评介:Red Hat的网站在过去的一年里已经多次发生变化。但是RedHat.com只是保持做更好的改变。最新的界面容易浏览,并且还为用户提供了大量的链接和下载。


    3)SuSE

    网址: http://www.SuSE.com

    评介:SuSE网站是一个商业站点――没有打算成为“门户”站点或其它。所以该网站只是仅仅包含了你想了解的SuSE Linux的一切相关信息。SuSE的网站对于想知道Linux是否能和他们的硬件兼容的用户则是非常有用。


    4)Slackware

    网址: http://www.Slackware.com

    评介:该站点让用户唯一不满的就是太多的图片和太慢的下载速度。相对而言,Slackware站点是一个漂亮、整洁、黑白形象设计,而且还对所有重要的材料建了链接。


    5)Linux-Mandrake

    网址: http://www.Linux-Mandrake.com

    评介:Linux-Mandrake站点对于Linux-Mandrake distro的用户来说确实是一个优秀的网站。无论你是一个需要寻找技术支持的菜鸟,还是一个想同最新的代码打交道的开发者,Linux-Mandrake都是实现这一切的捷径。


    (十九)用户团体

    1)Linux User Groups WorldWide

    网址: http://lugww.counter.li.org/lugww.php3

    评介:想要寻找离你最近或最远的Liunx用户组吗?Linux User Groups WorldWide网站有最全面的相关LUGs(Linux用户组)列表。基于用户地址定位的列表允许相互间建立联系,而且该站点还给出如何创建指南。


    2)SVLUG

    网址: http://www.sulug.org

    评介:该网站很可能是世界上最有活力的LUG站点,而且一定是人们常频繁光顾的热点地带。Silicon Valley Linux Users Group站点包含了许多相当有趣的历史和有用链接。


    3)Groups of Linux Users Everywhere

    网址: http://www2.linuxjournal.com/glue/index.html

    评介:GLUE是Linux Journal的主办者。注册过的LUGs可以参加世界各地的友好Linux公司所提供的活动。同时,GLUE网站中也有一定数量的LUGs资源,包括技巧等等。


    4)Linux Online’s Linux User Group Registry

    网址: http://www.linux.org/users/index.html

    评介:Linux Online有一个很全面的世界性LUGs列表。如果你想在此找点你的LUG,请在Linux Online site上列出来。


    5)LinuxChix

    网址: http://www.linuxchix.org

    评介:没错,Chix的确是在钻研Linux。创立LinuxChix的Deb Richardson想打算制作一个能让女性使用的Linux邮件列表。LinuxChix发展的很快,简直比Deb期望的还要流行。而且地区化的 LinuxChix LUGs 也已经开始走向全球100个最佳Linux站点
           
    2003-12-10    redflaglinux9.8       点击: 9164
    在很早就出现在LinuxByte转载的文章里面,但一直都没有完整版本,今天在非常Linux发现,立即转载给大家! 希望大家在到下面站点学习交流的同时,也多到LinuxByte逛逛!


    (一) 网络中遍布着大量的Linux相关站点;

    (二) 用户无须详细了解每一个此类站点,实际上,一百个站点足够你使用了。


    评选出的这100个优秀站点,将按照下述20个类别作以评介:

    (一) 文件下载

    (二) 幽默娱乐

    (三) 相关新闻

    (四) 通用硬件

    (五) 专用硬件

    (六) 新手站点

    (七) 图形/多媒体

    (八) 游戏站点

    (九) 网络杂志

    (十) 入口(教育、链接)

    (十一) 软件开发

    (十二) 购物

    (十三) Linux内核

    (十四) 职业机会

    (十五) 科学工程

    (十六) 文档管理

    (十七) X-Window 系统

    (十八) Linux 分发站点

    (十九) 用户团体

    (二十) 网管站点



    (一) 软件下载

    (1) Freshmeat站点

    网址: http://www.freshmeat.net

    评介:如果你绝对肯定,非要获取开放源代码应用程序,那毫无疑问,Freshmeat就是个不错的站点。这个最值得推崇的软件下载站点,有着数以千计的大量开放源代码应用程序的分类链接。此外,Freshmeat站点在更新程序的基础上,每天还会添加10到30个新程序链接。


    (2) Tucows Linux

    网址: http://linux.tucows.com

    评介:最初,该站点是一个基于Windows的软件园地,几年后,Tucows拓宽领域。现在,该站点已经发展成为了最开放的Linux下载站点之一。不过,说真的,这也是因为Linux从一开始就增强了服务器的缘故。


    (3) Woven Goods for Linux

    网址: http://www.fokus.gmd.de/linux

    评介:Woven Goods for Linux 是一个德语站点,它的特征就在于英文和德文版的Linux程序下载和文档。该站点还有一个很不错的综合列表,几乎列出了你所能想象出的每一个Linux分发。


    (4) Linux ISO Images

    网址: http://www.LinuxISO.org

    评介:是不是已经极其厌倦了查找ISO图象?在LinuxISO.org站点中一个非常醒目的地方,就放置了最流行的Linux 分发ISOs的链接。当然,它不能让你56k的调制解调器具有更快的下载速度,但他们已经竭尽所能了,那些有DSL或光缆调制解调器的用户们会非常高兴的。


    (5) RPMfind.net

    网址: http://www.rpmfind.net

    评介:如果你还沉浸在网络海洋寻找最新用RPM(Red Hat Package Manager)格式编写的软件,那这个站点最适合不过了。凡是存在的RPM Package,这里都可以找到,而且这些软件还被编进了索引,用户可以通过多种不同方式来分类。例如,你可以分别用类别(比如游戏等等)、创建日期、 package maintainer或名称等等多种方式查询一个软件包。


    (二)娱乐休闲

    (1) UserFriendly

    网址: http://www.userfriendly.org

    评介:真应该建议Netscape在浏览器(就在“Home”旁边)上添加一个按钮,以便用户可以很轻易地跳转到User Friendly上的Daily Static链接中去。喜欢新奇感觉的用户可能没有人愿意错过该站点上的冒险体验。此外,还有其它像卡通等等内容丰富的东西。User Friendly站点的最大特点就是每日都有新服务内容,而且还有庞大的人才数据库和Ufie社区。


    (2) Segfault

    网址: http://www.segfault.org

    评介:是一个不错的Linux娱乐站点。该站点的特征在于喜欢拿Linux界的名流人物来开涮,非常可笑且带有讽刺意味。在这里用户不会找到太多有用的资料,但绝对可以让你捧腹大笑。


    (3) Sluggy Freelance

    网址: http://www.sluggy.com

    评介:可以肯定,第一名的UserFriendly绝对不是惟一的滑稽喜剧站点,Sluggy Freelance就是一个典型例证。该站点的创建日期可以回溯到1997年,特征就是提供了不少通俗易懂的素材。尤其值得一提的是,Sluggy站点非常体贴新用户,专门在最醒目的位置放置了新读者指南。建议大家不妨请一天假,完完整整地浏览一个这个不错的网站。


    (4) Humorix

    网址: http://i-want-a-website.com/about-linux

    评介:Humorix站点既讲述Linux的相关知识,又着力于Linux,、Microsoft以及其他许多相关系统或软件的趣事收集。此外,还有许多专栏作者和自愿投稿者的搞笑文章。


    (5) Jargon File

    网址: http://www.tuxedo.org/~esr/jargon

    评介:不是特别了解“行话”?难道不想去深入了解滑稽语言隐含的深层含义?那就访问Jargon File站点吧。该站点收集了庞大的滑稽行语概要,时间跨度相当大。在这里,你会同时发现像早期的“Bit Bucket”和“404”,同时还有现在时新的有关Hacker Writing Style和Lamer-speak的文章。该站点由Eric Raymond编辑整理而成。


    (三)相关新闻

    (1) Slashdot.org

    网址: http://slashdot.org

    评介:这个自称为“为大众服务的新闻”站点早先是以“芯片和程序”起家的。后来慢慢发展成为搞笑闲谈的场所。成千上万的铁杆支持者和匿名用户通过该站点搜寻大量的技术故事和未过滤的社区回信。当CmdrTaco和Hemos的语法成为时兴后,他们关于这个搞笑网站尝试后的成功地位自然也无人可比了。


    (2) Linux Today

    网址: http://www.Linuxtoday.com

    评介:Linux Today网站遵从的是Rolling Stone Magazine杂志的座右铭“All the News that Fits”。并且作为一个网站,它的确作得相当不错。对于想直接访问大多Linux业界主要大事的用户来说,由于该站点提供了新闻故事、出版发行等相关信息,所以确实是一个不错的切入点。


    (3) Linux Weekly News

    网址: http://www.lwn.net

    评介:如果你想查找所有简明扼要的新闻,那就不应该错过Linux Weekly News站点。它的范围非常广泛,远至安全事件,近至社会问题。而且每周星期四,该站点都非常有规律地提供一个关于所有业界所发生事件的编辑评注,仔细浏览,你会发现它的评注非常合情合理。


    (4) Wired News

    网址: http://www.wired.com

    评介:尽管,每周Wired News站点只有几组专门的Linux新闻故事,但这些新闻故事中却总有技术爱好者所关心的信息。而且在当今充盈着“链接到----网站”的情况下,该站点还做了其他此类网站没有时间去真正做的事————自己亲自动手写稿件。


    (5) Wide Open News

    网址: http://www.wideopen.com

    评介:该站点的新闻区经常包含一些相当有意义的专题特写和文章,而且一般都由专业记者撰写。Wide Open News站点每周都会发布一些原创作品,而且通常稿件质量都很高。喜欢浏览行业新闻的不妨去感受一番。

    (四)通用硬件

    (1) Linux Hardware

    网址: http://www.linuxhardware.net/

    评介:Linux Hardware站点中包括一个内容非常广泛的Linux系统中所有的硬件信息数据库。用户既可以浏览这些数据库资料,也可以使用该站点的搜索引擎来快速查找所需要的硬件资料。同样,该站点也允许搜索Usenet 组。其中Linux Friendly Hardware Vendor 列表也是另一个特点所在。


    (2) Linux Hardware Database

    网址: http://lhd.datapower.com

    评介:尽管每天Linux下的硬件支持变得越来越少,但不可否认仍然有那么几款硬件非常适合于Linux用户。Linux Hardware Database站点就是一个可以找到此类适合Linux的控件类别的不错站点。


    (3) The Linux Benchmarking Project

    网址: http://www.tux.org/bench

    评介:差不多每一个电脑爱好者都喜欢基准,特别是当他们的硬件产品处于顶级时更是如此。The Linux Benchmarking Project站点提供了一个基准结果数据库,以及可供下载的基准软件。


    (4) Tom’s Hardware Guide

    网址: http://www.tomshardware.com

    评介:该站点虽然并不是一个专门的Linux站点,但是有关Linux的内容非常不错,很值得一看。用户不但在这里可以找到评论、新闻、技巧,还可以查找图形信息、微处理器硬件等等。


    (5) Linux on Laptops

    网址: http://www.cs.utexas.edu/users/kharker/linux-laptop/

    评介:如果你还在顽强地想将Linux装进你的笔记本电脑,那这个站点绝对是最适合不过了。从德克萨斯学院毕业的Kenneth Harker用了五年的时间来对相关笔记本电脑的站点进行精选和分类。同时,还让真正的用户推荐如何可以在他们的笔记本电脑中装入和运行Linux系统。


    (五)专用硬件

    (1) LinuxPPC.org

    网址: http://www.linuxppc.org/

    评介:如果你正在犹豫,不能判断壁橱里的老式Macintosh能不能支持Linux系统,那LinuxPPC.org站点就是个值得一去的地方。它是通往 Linux/PPC方案的家园,能够将Linux端口置于Mac,而且还可以链接到Linux/Macintosh邮件列表、常用问题解答、软件等等。


    (2) iMac Linux

    网址: http://www.imaclinux.net

    评介:如果你难以忍受玻璃鱼缸样式、果冻般颜色的iMac,而现在想运行Linux,不知行不行?可以肯定地说,没问题,iMac Linux 网站可以帮助你在短短几分钟内完成你的心愿。


    (3) Printer Compatibility Database

    网址: http://www.picante.com/~gtaylor/pht/printer_list.cgi

    评介:在Linux下执行打印任务可能有些烦人,以至于想购买一个新的打印机来同Linux配套。Printer Compatibility Database网站可以给用户提供一个在Linux下工作的打印机综合列表,包括如何同Linux配套使用的综合信息。同时,用户可以在该网站找到 Linux Printing HOWTO和其他有用的打印信息。


    (4) Linux Modem Compatibility Knowledge Base

    网址: http://www.o2.net/~gromitkc/winmodem.html

    评介:该站点提供了一个范围广泛的用户级调制解调器列表(包括Linux下)以及一些有帮助价值的Linux调制解调器链接。


    (5) SANE

    网址: http://www.mostang.com/sane/

    评介:如果你不知道如何在Linux下使用扫描仪,那SANE (Scanner Access Now Easy)站点就可以告诉你该怎么办了。况且,该站点不仅有最流行的Linux扫描仪软件,而且还以兼容硬件的数据库而颇具特色。


    (六) 新手站点

    (1) Penguin Magazine

    网址: http://www.penguinmagazine.com/

    评介:事实上,找一个能给Linux入门者提供各种所需的网站并不是很多,因此,相比之下,这个后起之秀Penguin Magazine站点的确还算是能解决这个难题。该站点在今年初才启动,由一个名叫Scott Haven的Linux爱好者个人制作完成,网站中包含了大量的有关Windows和Linux文件系统的逐步式内容介绍。在厌倦了阅读大多网站中专业化程度超过自己知识容量的资料之后,Penguin Magazine可以让你轻轻松松地喘口气了。


    (2) LinuxPlanet.com

    网址: http://www.linuxplanet.com/

    评介:由于制作优秀而被Big Company所认可的Linux站点之一就是LinuxPlanet,自从去年推出核心Linux内容之后,该站点就被因特网上的人们所看好。难度适中的论坛、评论、以及一些打印、查找文档等现实问题的疑难指点等。对于Linux菜鸟级的用户,LinuxPlanet绝对是一个有用的站点。


    (3) Beginners Linux Guide

    网址: http://www.linux.ie/beginners-linux-guide

    评介:Beginners Linux Guide是Irish Linux User Group Web站点的一部分。它的可圈可点之处在于其中通俗易懂的指南性专题,包括如何使用基本Linux命令、以及安装信息等等。


    (4) Linuxdot.org

    网址: http://www.linuxdot.org/

    评介:从这个站点完全可以证明,Linux并不只是美国佬的专利。因为Linuxdot.org是英国站点,而且的确是一个适用于初学者的向导性优秀站点。几乎可以冠以“Linux入门者的手册”美称了。该站点的特征是从硬盘分区直到MySOL的简单介绍几乎无所不包,囊括了所有Linux的相关知识。


    (5) Linuxnewbie.org

    网址: http://www.Linuxnewbie.org/

    评介:Linuxnewbie.org是一个综合性站点,包括新闻标题、论坛、著名的Newbieized帮助文件(Newbieized Help Files)等等。这种帮助文件是为了帮助用户习惯使用Linux,进行部分系统的配置。此外,用户还可以讨论或者检验该站点书架所推荐的图书。


    (七)图形/多媒体

    (1) LinuxArtist.org

    网址: http://www.linuxartist.org/

    评介:LinuxArtist.org是我们目前所见过的Linux系统下最综合全面的图形站点。不论用户喜欢平面图形还是三维图形,LinuxArtist.org都能给那些使用Linux来创建名作的艺术家们提供大量的链接和邮件列表。


    (2) The Gimp

    网址: http://www.gimp.org/

    评介:一旦你提到图象和Linux,那就不得不说说The GIMP Web站点。该站点特别适合于那些希望在Linux市场里得到最好图形程序的用户。站点里包含了大量的资源和下载软件,此外还展示了一些GIMP.自己制作的美术作品。


    (3) 3D software for Linux

    网址: http://www.linux3d.org/

    评介:虽然3D software for Linux站点不是网络中最可爱的网站,但用户可以在这里找到许多有价值的Linux下的3D应用程序,同时还有支持Linux的3D硬件等。此外,站点页面中还有许多Linux下的3D相关链接、当前新闻、Linux下的有关3D图形的事件等等。


    (4) GraphicsMuse

    网址: http://www.graphics-muse.com/

    评介:GraphicsMuse站点是一个资源丰富的Linux下图形信息网站。在这个站点上,用户可以找到大量的图形资源、推荐图书、关于GIMP的原始内容以及其他一些非常好的图形方案。


    (5) General Graphics Interface Project

    网址: http://www.ggi-project.org/

    评介:不知你是否抱怨过,X Window系统可能压根就不适合你?这些家伙们对于用X设计一点都没有激情,但他们希望有一种更好的工作方式。现在,他们应该有了一个计划,而且,更重要的是,他们拥有beta代码。

    (八)游戏站点
    (1)Linux Game Tome

    网址: http://happypenguin.org/

    评介:从1995年开始,Linux Game Tome就已经成为了一个Linux游戏竞赛的专门场所。而那时,Linux游戏世界本身也还是一片小天地。现在,他们以http: //happypenguin.org/ 为网址,频道设置有新闻、游戏场景图片、游戏预告,以及最新游戏的评论等等。同时,该站点还有一个不错的搜索引擎,可以让用户根据游戏类别、等级、名称,甚至该游戏添加到网站的日期等分类浏览游戏评论。


    (2)Linux Games

    网址: http://www.linuxgames.com/

    评介:网站内容设置有下载、基本知识、论坛以及新闻等。特别是新闻成为该网站的特色频道。毫无疑问,Linux Games是一个可以覆盖全球绝大多数Linux游戏新闻的站点。


    (3)Linux Quake

    网址: http://www.linuxquake.com/

    评介:绝对不能错过的站点。是一个非常精彩的《雷神之锤》站点。包括了Linuxe下《雷神之锤》(Quake)的安装、运行,以及新闻和非常活跃的论坛等。


    (4)Linux Game Development Center

    网址: http://sunsite.auc.dk/lgdc/

    评介:如果你想寻找一个非常精彩、且又能找到Linux游戏开发人员一切所需的场所,那可以肯定目前这样的站点的确还没有出现。不过,Linux Game Development Center 的发展目标也基本类似。现在,该站点设置了精彩新闻、游戏开发指南、针对开发人员的访谈等,但它还正在开发代码仓库、开发工具列表、以及新工作方案,以求不断发展。


    (5)Loki

    网址: http://www.lokigames.com/

    评介:目前,Loki是一个商业性的Linux游戏公司。从《文明》到《雷神之锤3》,再到《铁路大亨2》等等,Loki公司几乎将所有最流行的游戏软件都移植到了Linux平台上。如果你想看看最近有什么大游戏,那就上去看看吧!


    (九)网上杂志

    (1)Linux Journal Online

    网址: http://www.linuxjournal.com/

    评介:Linux Journal是其印刷杂志的电子版,大部分和印刷版特征相符,不过也添加了一些新的资料。此外,电子版的特色频道还体现在职业中心、论坛,以及著名软件列表等等。怎样说服你的老板使用Linux系统,只要看看该站点的企业部分就可以了。


    (2)LinuxWorld

    网址: http://www.linuxworld.com/

    评介:LinuxWorld是一个发行量很大的周刊,范围涉及到Linux的方方面面,从软件评论到Linux市场的大幅专题。对于反微软的业界来说,LinuxWorld可是一个几乎无人不知的驰名站点。


    (3)Linux Gazette

    网址: http://www.linuxgazette.com/

    评介:Linux Gazette是由Linux Journal 出版的电子刊物,属于Linux Documentation Project的一部分。自从1995年成立以来,无数的志愿者都在踊跃提交稿件,以至于该站点现在已经成为一个实力很强的站点之一(如果翻看他们的档案,就能看到一个非常非常古老的Red Hat图标)。对于很多高级Linux用户来说,该站点的优势在于提供了很多指南和技巧,同时用户还可以对未来想了解的专题发送提议。


    (4)Salon Magazine: The Free Software Story

    网址: http://www.salon.com/tech/special/opensource/

    评介:最早在1998年,Salon就开始初涉Linux和开放源代码。和其他大量再线Linux杂志不同的是,该站点所涉的内容题材非常广泛而且相当有意义。


    (5)Linux Focus

    网址: http://www.linuxfocus.org/

    评介:这个定期按时发送的电子杂志自从1997年就开始诞生了。它以月刊的形式,给用户提供了许多新颖(多少有些深奥)的技术性文章。而且以多种语言发行,当然也包括英文版。

    (十)链接/入口

    (1) Linux.com

    网址: http://www.Linux.com

    评介:仅仅一年的时间,VA Linux的Linux.com 就已经成长为因特网上最具竞争力的Linux站点之一。在网站经理Trae McCombs和他的自愿者小组努力下,该网站为Linux社区添加了无数非常有用的特色内容和资源。近来,该站点和O’Reilly & Associates结成合作关系,双方合作的结果使Linux.com站点更具有专业化和更高质量。


    (2) LinuxStart.com

    网址: http://www.LinuxStart.com

    评介:想一想Yahoo,基本就能够想象得出Linux的同类站点------LinuxStart.com站点的特色也正在于有一个相当不错的分成好多个主题区的精选链接。此外,如果你正在费劲地用Hotmail发送网络信件,不妨试试Linux-Start的电子信箱。甚至你还可以将你的网页也一并搬到上面。


    (3) LinuxLinks.com

    网址: http://www.linuxlinks.com

    评介:LinuxLinks.com是最综合性的Linux站点之一,在这里你能见到许多曾经印象比较深刻的站点链接。目前,该站点的链接数量超过10,000,而且随时都在增加。


    (4) Linux Online

    网址: http://www.linux.org

    评介:Linux Online的名称甚至比它的域名Linux.org更为知名。是一个比较早的Linux站点,虽然界面做得并不是非常漂亮,但其中包含的Linux资源价值却使其成为了一个必须参观的网站之一。


    (5) Linsight

    网址: http://Linsight.com

    评介:Linsight在宣传中介绍自己为“Linux时代的Linux信息”。该网站实际上是由好几个部分组成的,其中包括命名为 LinDeveloper的一个开发人员分区、一个叫做Linsider的Linux市场跟踪区、追踪全年所发生的Linux业界焦点事件报道的 LinEvents区、以及可以告诉你和你的员工们在那里得到Linux培训的LinTraining专区。


    (十一)软件开发

    (1) SourceForge

    网址: http://www.SourceForge.net

    评介:SourceForge站点是VA Linux针对开发人员的一个入口。程序员们在这里可以放置他们的开放源代码方案,包括CVS工具、调试追踪和补丁管理工具。SourceForge给所有没有资源来自己安装一个服务器的Linux和开放源代码程序员们一个家园。用户可以浏览和下栽网站上已开发的软件,也可以给这些方案做补丁。


    (2) Catalog of Free Compilers and Interpreters

    网址: http://www.idiom.com/free-compilers/

    评介:在没有明确限制Linux和开放源代码软件的时候,免费编译器和解释程序的目录对于开放源代码的开发人员还是会有些兴趣的。此外,该站点包含了许多编程工具和编译器。


    (3) SourceXchange

    网址: http://www.sourcexchange.com

    评介:SourceXchange是一个可以让Linux和开放源代码软件开发人员得到报酬的站点。通过链接到一个付费的商业公司,就可以用开放源代码软件赚钱了。需要开放源代码吗?需要提交方案、标明你的价格-------当然,成功的前提是他们必须正好有你所需要的代码。


    (4) CoSource

    网址: http://www.cosource.com

    评介:CoSource是又一个专门给源代码开发人员提供的付费站点。目前,表单上已经有将近250个要求,总量达$71,500。


    (5) Linux Source Navigator

    网址: http://www.metalab.unc.edu/navigator-bin/navigator.cgi?

    评介:该站点将源代码镶进一个简单的导航性分层文件夹系统中,以便用户快速查找到所需要的代码。

    (十二)购物

    (1) LinuxMall.com

    网址: http://www.linuxmall.com

    评介:可能由于最近更新过的缘故,LinuxMall.com站点看起来不想是购物站点,倒像是一个专门的Linux链接入口。而且,它还远不只是一个普通的电子商务站点。目前,该站点已经打算建立很多特色社区了,如论坛以及已经启动的新闻服务等。


    (2) Thinkgeek

    网址: http://thinkgeek.com

    评介:该网站有随手可得地最酷Linux附件。但除了一些$1.99的发行CD外,用户可能在这里不会找到任何软件。不过,如果你想用“"compile”、“telnet”、和“regexp”写点东西,最好还是上这个站点看看吧!


    (3) The Linux Store

    网址: http://thelinuxstore.com

    评介:该站点比较自豪的是他们易于使用、简洁的界面、非常广泛的产品线,以及大量的技术支持,没准在这里你还能找到你需要的东西呢。


    (4) eLinux.com

    网址: http://www.elinux.com

    评介:这个进入Linux购物市场的新入口是由Creative Computers公司提供支持的,该公司同时还有PCMall和MacMall。Elinux站点中有一个非常广泛的Linux硬件和软件区,同时还有一个由Linuxcare提供支持的FAQ数据库。


    (5) Linuxcentral

    网址: http://www.linuxcentral.com

    评介:图书、T恤--------用户在这里可以找到所有传统Linux电子商务所能买到的东西,此外,在这里还有一些更有趣的东西,比如网卡等等。


    (十三)Linux内核

    (1) Kernel Notes

    网址: http://kernelnotes.org

    评介:KernelNotes.org是一个可以得到所有内核的地方。该站点所包括的内容比较广泛,而且,特色是能够找到最新内核的升级技巧。


    (2) The Linux Kernel Archives

    网址: http://www.kernel.org/

    评介:该站点奉行的原则是:简洁、简洁,再简洁。用户可以选择Linux内核、不稳定内核、稳定内核以及内核源代码。如果你想找最新的稳定Linux内核或开发中内核,那就去看看吧。


    (3) Kernel Traffic

    网址: http://kt.linuxcare.com/

    评介:难道每周不想要一个几乎达到6MB的Linux开发邮件列表吗?Kernel Traffic站点的那帮家伙们早就替你想到了这一点。Kernel Traffic是一个时事通讯周刊,总结了本周主要的专题。一个不错的站点。


    (4) GNU Hurd

    网址: http://www.gnu.ai.mit.edu/software/hurd/hurd.html

    评介:稳定版目前已经具体化,但关于Hurd kernel 的GNU Project还在发展之中。Hurd内核是一个微核设计的实练。GNU/ Hurd站点的特征就是说明了如何将Hurd安装进Debian distribution中去。


    (5) Linux Mama

    网址: http://www.LinuxMama.com/

    评介:无论如何,也不是每一个内核补丁都得作到fold中,如果你正好属于好奇心比较重的类型,想玩玩非正式内核补丁,那就不要错过Linux Mama了。


    (十四) 职业机会

    (1)Geekfinder

    网址: http://www.geekfinder.com/

    评介:主机位于User Friendly站点的Geekfinder是一个猎职的好去处。该站点不只限于Linux类相关工作,用户可以根据自己的技能搜索和选择最适合自己的工作。此外,用户还可以根据自己的意愿按照州和地区来搜索职位。


    (2)Linux.com Jobs Page

    网址: http://www.linux.com/jobs/

    评介:想寻找专职Linux工作的人,值得来Linux.com’s Jobs page站点看看。根据提交的职位,该站点有大量适用于Linux求职者的有用专题和链接。


    (3)eLance

    网址: http://www.elance.com

    评介:正式发布于去年的eLance站点为包括计算机业求职的各类自由服务开辟了一个新市场。用户可以在该站点填写个人资料表格,并在其“固定薪酬”部分根据填写者自己要求的计时薪酬(在这里你也可以以每小时3到300美圆的价格雇佣其他人),或者你也可以浏览网站上的各种信息看看是否有适合你的自由工作。


    (4)Linux Today Jobs

    网址: http://jobs.linuxtoday.com/

    评介:该站点有两个特征:网络上综合性最强的Linux新闻站点之一;能够同时提供Linux企业公司招聘和Linux个人求职的专业站点。


    (5)Hotjobs.com

    网址: http://www.hotjobs.com

    评介:Hotjobs.com是一个不局限于Linux特定求职的网站,该站点每天发布5到10个Linux相关职位,而且所公布的职位资料绝对不是那些看起来充裕却几乎没有什么回映的过时消息。


    (十五)科学工程

    (1) SAL: Scientific Applications for Linux

    网址: http://www.kachinatech.com/SAL/

    评介:Linux现在不仅仅是供玩乐的东西了,但这并不是意味着就此失去了许多乐趣。对于年轻的科学工作者们来说,可以在该网站找到许多适用于Linux下各种科研应用程序的开放源代码、共享软件和商业软件等等。


    (2) Beowulf Project at CESDIS

    网址: http://beowulf.gsfc.nasa.gov/

    评介:一个很酷的Linux站点。以帮助科学家们联系大量质优价廉的电脑而出名。


    (3) High-Availability Linux Project

    网址: http://www.henge.com/~alanr/ha/

    评介:如果你正在Linux下运行企业级的应用程序,或者只想验证一下Quake服务器从不会崩溃,那该站点就太适合你了。同时该站点还提供了许多簇管理、Linux-HA软件以及大量地此类相关站点链接。


    (4) Free Physics Project

    网址: http://freephysics.sourceforge.net/

    评介:是一个创建Linux下的GPL物理模拟器的站点。用户可以下载运行代码、项目处理等等。


    (5) Linux and Chemistry

    网址: http://chpc06.ch.unito.it/chem_linux.html

    评介:这是一个综合了Linux和化学的网站,其中有许多商业、共享软件和GPL的软件,适合于那些在Linux下做研究工作的化学家。想必化学系的学生和教授应当喜欢这个站点。

    (十六)文档管理

    1)Linux Documentation Project

    网址: http://www.linuxdoc.org/

    评介:在所有Linux站点中,LDP已经作了相当久的FAQ、HOWTO以及Linux导引了。该站点最为夸耀的是各种格式的Linux详细信息集萃。此外,此站点中的HOWTO分项也是一个能解答用户所有疑难问题的权威场所。最近由于新鲜血液的加盟,该站点又有了新特色。


    2)Open Source Writer’s Group

    网址: http://www.oswg.org:8080/oswg

    评介:该站点是由LinuxChix的Deb Richardson在去年制作完成的,为一个开放源代码的集萃站点,特别适合于开放源代码项目的用户。


    3)Linux Resources

    网址: http://www2.linuxjournal.com/cgi-bi....pl/lr-toc.html

    评介:该站点是一个优秀的资料站点,同时适用于Linux新手和专业人士。在这里,用户可以找到所有相关Linux的资料,而且它还告诉你,在哪里可以找到相关资料、可以和使用这些资料的人见面,以及其它更多。


    4)GNU Project Documentation

    网址: http://www.gnu.org/doc/doc.html

    评介:如果你手里有一个很好的免费软件却不知如何使用,怎么办?幸运的是,GNU Project Documentation站点的管理人员已经为你提供了一个非常综合的文档区。此外,如果你心情不错,那么还可以去读读Free Software and Free Manuals上刊登的Richard Stallman的评论。


    5)The Vim Homepage

    网址: http://www.vim.org/

    评介:一个绝对让新手震动的Linux网站。这里有大量的Vim信息和使用资料。


    (十七)X-Window 系统

    1)Themes.org

    网址: http://www.themes.org

    评介:这里有装扮你桌面的所有好东西,同时还有在window 管理器和其它流行软件包上更新的X资源和新闻。此外,Themes.org还有SawMill、Afterstep、 Enlightenment、WindowMaker、KDE专区等等。


    2)KDE Home

    网址: http://www.kde.org

    评介:该站点能提供给你适用于K Desktop Environment的任何开发资料,而且还有随时更新的适用于KDE的最新发行软件。此外,KDE还有许多像K Office之类的相关资料。


    3)GNOME Home

    网址: http://www.GNOME.org

    评介:Gnome.org是一个组织最好的免费软件站点。在这里,用户可以得到有关GNOME的开发资源,可以加入GNOME邮件列表,还可以进行软件下载。开发人员将搜索到最新的附加资料,GNOME用户们还将找到大量有用的文档。


    4)XFree86 Project

    网址: http://www.xfree86.org

    评介:XFree86 Project站点将给用户Linux系统的相关资料、最新发行的软件、以及一个精彩的FAQ等等。XFree86站点对于刚入门的Linux新手来说将是一个不可错过的站点。


    5)Window Managers for X

    网址: http://www.PLiG.org/xwinman

    评介:Window Managers for X站点是有关X窗口管理器的最综合性站点。从最早的一直到最新的乃至全部,以及最大的窗口管理器都可以在该站点找到。还不知道一个窗口管理器和一个桌面环境的区别吗?该站点也可以回答你这些基本问题。


    (十八)Linux 分布站点

    1)Debian

    网址: http://www.debian.org

    评介:Debian网站用户界面非常友好,并且关于Debian GNU/Linux和Linux一般使用方面内容丰富。如果你喜欢冒险,你甚至可以在这里找到如何使用GNU/Hurd内核运行Debian而不是我们都知道和喜爱的Linux内核。而且还有很多各种各样免费资源的链接供用户使用!


    2)Red Hat

    网址: http://www.RedHat.com

    评介:Red Hat的网站在过去的一年里已经多次发生变化。但是RedHat.com只是保持做更好的改变。最新的界面容易浏览,并且还为用户提供了大量的链接和下载。


    3)SuSE

    网址: http://www.SuSE.com

    评介:SuSE网站是一个商业站点――没有打算成为“门户”站点或其它。所以该网站只是仅仅包含了你想了解的SuSE Linux的一切相关信息。SuSE的网站对于想知道Linux是否能和他们的硬件兼容的用户则是非常有用。


    4)Slackware

    网址: http://www.Slackware.com

    评介:该站点让用户唯一不满的就是太多的图片和太慢的下载速度。相对而言,Slackware站点是一个漂亮、整洁、黑白形象设计,而且还对所有重要的材料建了链接。


    5)Linux-Mandrake

    网址: http://www.Linux-Mandrake.com

    评介:Linux-Mandrake站点对于Linux-Mandrake distro的用户来说确实是一个优秀的网站。无论你是一个需要寻找技术支持的菜鸟,还是一个想同最新的代码打交道的开发者,Linux-Mandrake都是实现这一切的捷径。


    (十九)用户团体

    1)Linux User Groups WorldWide

    网址: http://lugww.counter.li.org/lugww.php3

    评介:想要寻找离你最近或最远的Liunx用户组吗?Linux User Groups WorldWide网站有最全面的相关LUGs(Linux用户组)列表。基于用户地址定位的列表允许相互间建立联系,而且该站点还给出如何创建指南。


    2)SVLUG

    网址: http://www.sulug.org

    评介:该网站很可能是世界上最有活力的LUG站点,而且一定是人们常频繁光顾的热点地带。Silicon Valley Linux Users Group站点包含了许多相当有趣的历史和有用链接。


    3)Groups of Linux Users Everywhere

    网址: http://www2.linuxjournal.com/glue/index.html

    评介:GLUE是Linux Journal的主办者。注册过的LUGs可以参加世界各地的友好Linux公司所提供的活动。同时,GLUE网站中也有一定数量的LUGs资源,包括技巧等等。


    4)Linux Online’s Linux User Group Registry

    网址: http://www.linux.org/users/index.html

    评介:Linux Online有一个很全面的世界性LUGs列表。如果你想在此找点你的LUG,请在Linux Online site上列出来。


    5)LinuxChix

    网址: http://www.linuxchix.org

    评介:没错,Chix的确是在钻研Linux。创立LinuxChix的Deb Richardson想打算制作一个能让女性使用的Linux邮件列表。LinuxChix发展的很快,简直比Deb期望的还要流行。而且地区化的 LinuxChix LUGs 也已经开始走向全球

    如何进入到嵌入式系统开发行业
    嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、 VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗
    仪器、航天航空设备等等都是典型的嵌入式系统。嵌入式将会是我们数字化生存的基础,一台PC里其实就已经嵌入了10几个单片机,一辆高档轿车大约要用到六七十个单片机;嵌入式处理器无所不在,无处不在,全世界的年产量超过100亿片,这是怎样惊人的数字呀!

    嵌入式系统是软硬结合的东西

     


    搞嵌入式开发的人有两类:

    一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、 Board Support Package(像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式操作系统原理和复杂应用软件等)。

    另一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。如果我们学软件的人对硬原理和接口有较好的掌握,我们完全也可写BSP和硬件驱动程序。嵌入式硬件设计完后,各种功能就全靠软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作(目前有很多公司将硬件设计包给了专门的硬件公司,稍复杂的硬件都交给台湾或国外公司设计,国内的硬件设计力量很弱,很多嵌入式公司自己只负责开发软件,因为公司都知道,嵌入式产品的差异很大程度在软件上,在软件方面是最有"花头"可做的),所以我们搞软件的人完全不用担心我们在嵌入式市场上的用武之地,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。


    从事嵌入式软件开发的好处是:

     


    (1) 目前国内外这方面的人都很稀缺。一方面,是因为这一领域入门门槛较高,不仅要懂较底层软件(例如操作系统级、驱动程序级软件),对软件专业水平要求较高(嵌入式系统对软件设计的时间和空间效率要求较高),而且必须懂得硬件的工作原理,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,很多软硬件技术出现时间不长或正在出现(如ARM处理器、嵌入式操作系统、MPEG技术、无线通信协议等),掌握这些新技术的人当然很找。嵌入式人才稀缺,身价自然就高,越有经验价格就越高。其实嵌入式人才稀少,根本原因可能是大多数人无条件接触,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行指导开发流程。

    (2) 与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。搞企业应用软件的IT企业,这个用户的系统搞完了,又得去搞下一个用户的,而且每个用户的需求和完成时间都得按客户要求改变,往往疲于奔命,重复劳动。相比而言,搞嵌入式系统的公司,都有自己的产品计划,按自己的节奏行事。所开发的产品通常是通用的,不会因客户的不同而修改。一个产品型号开发完了,往往有较长一段空闲时间(或只是对软件进行一些小修补),有时间进行充电和休整。另外,从事嵌入式软件的每个人工作范围相对狭窄,所涉及的专业技术范围就是那些(ARM、RTOS、MPEG、802.11等),时间长了这些东西会越搞越有经验,卖卖老本,几句指导也够让那些初入道者琢磨半年的。若搞应用软件,可能下一个客户要换成一个完全不同的软件开发平台,那就苦了。

    (3) 哪天若想创业,搞自已的产品,那么嵌入式是一个不错的主意,这可不像应用软件那样容易被盗版。我们这届有个同学自己有点此类小生意,具体做什么的没细问, 他每月要进货几千片8位单片机,现在自己已经有车有房了。还有现在开发的饭馆用的点菜PDA(WinCE平台,可无线连网和上网),据说销路不错,饭馆点点PDA让客户点菜,多显派头档次。这些PDA的硬件设计一般都是请别的公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。

    从事嵌入式软件开发的缺点是:
    (1) 入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是操作系统级软件功底不深,则可能不适于此行。
    (2) 这方面的企业数量要远少于企业计算类企业。特别是从事嵌入式的小企业数量较多(小企业要搞自己的产品创业),知名大公司较少(搞嵌入式的大公司主要有 Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半导体、 Microtek、研华、华为、中兴通信、上广电等制造类企业)。这些企业的习惯思维方式是到电子、通信等偏硬专业找人。
    (3)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有经验即可。

    同学们若学习嵌入式,显然应偏重于嵌入式软件,特别是嵌入式操作系统方面,应是我们的强项。
    对于搞嵌入式软件的人,最重要的技术显然是(实际上很多公司的招聘广告上就是这样写的):
    (1) 掌握主流嵌入式微处理器的结构与原理
    (2) 必须掌握一个嵌入式操作系统
    (3) 必须熟悉嵌入式软件开发流程并至少做过一个嵌入式软件项目。

    在嵌入式软件方面最重要的课程包括:

    (1) 嵌入式微处理器结构与应用:这是一门嵌入式硬件基础课程,我们说过,嵌入式是软硬件结合的技术,搞嵌入式软件的人应对ARM处理器工作原理和接口技术有充分了解,包括ARM的汇编指令系统。若不了解处理器原理,怎么能控制硬件工作,怎么能写出节省内存又运行高速的最优代码(嵌入式软件设计特别讲究时空效率),怎么能写出驱动程序(驱动程序都是与硬件打交道的)?很多公司招聘嵌入式软件人员时都要求熟悉ARM处理器,将来若同学到公司中从事嵌入式软件开发,公司都会给你一本该设备的硬件规格说明书 (xxx Specification),你必须能看懂其中的内存分布和端口使用等最基本的说明(就像x86汇编一样),否则怎么设计软件。有些同学觉得嵌入式处理器课程较枯燥,这主要是硬件课程都较抽象的原因。还有同学对ARM汇编不感兴趣,以为嵌入式开发用C语言就足够了。其实不应仅是将汇编语言当成一个程序设计语言,学汇编主要是为了掌握处理器工作原理的。一个不熟悉汇编语言的人,怎么能在该处理器写出最优的C语言代码。在嵌入式开发的一些关键部分,有时还必须写汇编,如Bootloader等(可能还包括BSP)。特别是在对速度有极高要求的场合(如DSP处理器的高速图像采集和图像解压缩),目前还会用到汇编写程序的,尽管用到的机会相对C要小得多。当你在一个嵌入式公司工作时,在查看描述原理的手册时,可能很多都是用汇编描述的,这是因为很多硬件设计人员只会写或者喜欢用汇编描述,此时你就必须看懂汇编程序,否则软硬件人员可能就无法交流。很多嵌入式职位招聘时都要求熟悉汇编。

    [小知识] 目前嵌入式处理器常见的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire(冷火)等,但ARM占据了绝对主流(有资料说手机中几乎90%都是ARM处理器)。ARM是一个只卖知识产权的公司,目前获得购买了ARM CPU核授权许可的大公司很多,包括Intel、Samsung、Amstel、Motorola、Philip、Winbond等,他们都在ARM CPU核的基础上进行了一些外围扩展,形成自己的处理器(如Samsung S3C2410,Motorola i.MXL9328等处理器都是采用ARM 9内核,指令一级是相同的)。而众多中小公司又购买了这些处理器,设计了各种各样的开发板,如华恒等国内很多著名嵌入式公司都生产基于Samsung S3C2410的开发板,供最终用户使用或供教学实验。在ARM这个食物链上,ARM公司是大鱼,Intel、Samsung等公司是小鱼,而华恒等则是虾米,最终用户(我们这些要采购嵌入式开发板的)则是喂虾米的。Intel早期生产的是低端ARM(Strong ARM,相当于ARM 7),现在转向主要生产高端ARM(即Intel Xscale处理器,属于ARMv5家族,主要用在高端PDA上,

    如HP和 DELL生产的PDA都采用Intel Xscale,价格较高)。目前应用最多的是ARM 7和ARM 9两类处理器。 ARM 7较便宜,可跑uclinux(是一个不支持高级内存管理功能的嵌入式Linux系统统)、Vxworks、uc/os II等实时操作系统,但因处理器不带内存管理单元MMU(无内存分页和地址映射机制,所以不能使用虚拟内存),所以不能跑Windows CE,另外通用Linux中的某些内存管理功能也不能用在ARM 7上。ARM 9大都是一个带MMU功能的高端处理器,可跑WinCE或通用Linux的大多数功能。ARM7和ARM9的区别是在与体系结构上,前者是冯·诺伊曼结构,后者是哈佛结构——指令和数据总线是分开的。以上是我的一点了解,可能有不对的地方。我们学院有十几套ARM 7开发系统(采用Samsung S3C44b0x开发板,主要用于嵌入式处理器结构、实时操作系统等课程实验用),ARM 9的系统好象也已经到了(采用的芯片我不知道也没去问),还有以前的十几套MPC860开发板(听说价格都很贵,很容易损坏),同学应爱护使用和珍惜这样的实验机会。

    (2) 嵌入式操作系统类课程

     

    除了WinCE的实时性稍差外,大多数嵌入式操作系统的实时性都很强,所以也可 称为实时操作系统Real TimeOperating System.从事嵌入式的人至少须掌握一个嵌入式操作系统(当然掌握两个更好),这在嵌入式的所有技术中是最为关键的了。目前最重要的RTOS主要包括:

    第一类、传统的经典RTOS:最主要的便是Vxworks操作系统,以及其Tornado开发平台。Vxworks因出现稍早,实时性很强(据说可在1ms内响应外部事件请求),并且内核可极微(据说最小可8K),可靠性较高等,所以在北美,Vxworks占据了嵌入式系统的多半疆山。特别是在通信设备等实时性要求较高的系统中,几乎非Vxworks莫属。Vxworks的很多概念和技术都和Linux很类似,主要是C语言开发。像Bell- alcatel、Lucent、华为等通信企业在开发产品时,Vxworks用得很多。但Vxworks因价格很高,所以一些小公司或小产品中往往用不起。目前很多公司都在往嵌入式Linux转(听说华为目前正在这样转)。但无论如何,Vxworks在一段长时间内仍是不可动摇的。与Vxworks类似的稍有名的实时操作系统还有pSOS、QNX、Nucleus等RTOS。

    第二类、嵌入式Linux操作系统:Linux的前途除作为服务器操作系统外,最成功的便是在嵌入式领域的应用,原因当然是免费、开源、支持软件多、呼拥者众,这样嵌入式产品成本会低。Linux本身不是一个为嵌入式设计的操作系统,不是微内核的,并且实时性不强。

    目前应用在嵌入式领域的Linux系统主要有两类:

    一类是专为嵌入式设计的已被裁减过的Linux系统,最常用的是uClinux(不带MMU功能),目前占较大应用份额,可在ARM7上跑;另一类是跑在 ARM 9上的,一般是将Linux 2.4.18内核移植在其上,可使用更多的Linux功能(当然uClinux更可跑在ARM 9上)。很多人预测,嵌入式Linux预计将占嵌入式操作系统的50%以上份额,非常重要。缺点是熟悉Linux的人太少,开发难度稍大。另外,目前我们能发现很多教材和很多大学都以ucOS/II为教学用实时操作系统,这主要是由于ucOS/II较简单,且开源,非常适合入门者学习实时操作系统原理,但由于ucOS/II功能有限,实用用得较少。况且熟悉了Linux开发,不仅在嵌入式领域有用,对开发Linux应用软件,对加深操作系统的认识也有帮助,可谓一举多得。据我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式开发,Fujitum则是在自己的处理器上大搞Linux 开发。目前在嵌入式Linux领域,以下几个方面的人特别难找,一是能将Linux移植到某个新型号的开发版上;二是能写Linux驱动程序的人;

    三是熟悉Linux 内核裁减和优化的人。不过LINUX有一个硬伤,就是没有WINDOWS那样的友好方便美观的交互界面,不然微软帝国早就守不住了。

    第三类、 Windows CE嵌入式操作系统:Microsoft也看准了嵌入式的巨大市场,MS永远是最厉害的,WinCE出来只有几年时间,但目前已占据了很大市场份额,特别是在PDA、手机、显示仪表等界面要求较高或者要求快速开发的场合,WinCE目前已很流行(据说有一家卖工控机的公司板子卖得太好,以至来不及为客户裁减WinCE)。WinCE目前主要为4.2版(.NET),开发平台主要为WinCE Platform Builder,有时也用EVC环境开发一些较上层的应用,由于WinCE开发都是大家熟悉的VC++环境,所以我院学过Windows程序设计课程的同学都不会有多大难度,这也是WinCE容易被人们接受的原因,开发环境方便快速,微软的强大技术支持,WinCE开发难度远低于嵌入式Linux。对于急于完成,不想拿嵌入式Linux冒险的开发场合,WinCE是最合适了(找嵌入式Linux的人可没那么好找的),毕竟公司不能像学生学习那样试试看,保证开发成功更重要。根据不同的侧重点 ,WinCE还有两个特殊版本,一个是MS PocketPC操作系统专用于PDA上(掌上电脑),另一个是MS SmartPhone操作系统用于智能手机上(带PDA功能的手机),两者也都属于WinCE平台。在PDA和手机市场上,除WinCE外,著名的PDA 嵌入式操作系统还有Palm OS(因出现很早,很有名)、Symbian等,但在WinCE的强劲冲击下,Palm和Symbian来日还能有多长?同学学过VC++后再学 WinCE,非常方便自然,通过学习WinCE同样也可了解嵌入式软件的一般开发过程,对Linux有惧怕心理的同学也很合适。很显然,嵌入式Linux 永远不可能替代WinCE,而且将来谁占份额大还很难讲,毕竟很多人更愿意接受MS的平台,就像各国政府都在大力推LINUX已好长时间,但你能看到几个在PC机上真正使用LINUX的用户?据我观察,目前在嵌入式平台上,LINUX是叫得最响,但还是WinCE实际用得更多.嵌入式LINUX可能更多地是一些有长远产品计划的公司,为降低成本而进行长远考虑.WinCE和多媒体(如MPEG技术)是微软亚洲工程院目前做得较多的
    项目领域之一,现在社会很需要精通WinCE的人。现在有WINCE的智能手机,金山词霸、WORD、EXCEL、REGEDIT等居然都有 smartphone版的,PC上的MP3、DOC等居然在download时都可被自动转换成smartphone格式,很爽的。完全可用 Windows CE自己开发一些需要的程序download到自己的手机上。现在市面销售PDA智能手机火爆,MS总是财源滚滚。

    总结关于嵌入式操作系统类课程,若你觉得自己功底较深且能钻研下去,则可去学嵌入式Linux;若你觉得自己VC++功底较好且想短平快地学嵌入式开发,自学WINCE是非常好的选择。

    (3) 嵌入式开发的相关领域

     


    搞嵌入式若能熟悉嵌入式应用的一些主要领域,这样的人更受企业欢迎。主要的相关领域包括:
    A、数字图像压缩技术:这是嵌入式最重要最热门的应用领域之一,主要是应掌握MPEG编解码算法和技术,如DVD、MP3、PDA、高精电视、机顶盒等都涉及MPEG高速解码问题。
    B、通信协议及编程技术:这包括传统的TCP/IP协议和热门的无线通信协议。首先,大多数嵌入式设备都要连入局域网或Internet,所以首先应掌握 TCP/IP协议及其编程,这是需首要掌握的基本技术;其次,无线通信是目前的大趋势,所以掌握无线通信协议及编程也是是很重要的。无线通信协议包括无线局域网通信协议802.11系列,Bluetooth,以及移动通信(如GPRS、GSM、CDMA等)。
    C、网络与信息安全技术:如加密技术,数字证书CA,以及各种网络安全设备,包括硬件防火墙,入侵检测IDS,还有防毒墙,IPS等,中国在这方面还是没有自己优势的,我们陈院长好象正在往这方面发展.
    D、 DSP技术:DSP是Digital Signal Process数字信号处理的意思,DSP处理器通过硬件实现数字信号处理算法,如高速数据采集、压缩、解压缩、通信等。数字信号处理是电子、通信等硬件专业的课程,对于搞软件的人若能了解一下最好。目前DSP人才较缺。如果有信号与系统、数字信号处理等课程基础,对于学习MPEG编解码原理会有很大帮助。

    (4)嵌入式开发的相关硬件基础

     


    对于软件工程专业的学生,从事嵌入式软件开发,像数字电路、计算机组成原理、嵌入式微处理器结构等硬件课程是较重要的。另外,汇编语言、C/C++ 数据结构算法、特别是操作系统等软件基础课也是十分重要的。我们的主要目地是能看懂硬件工作原理,但重点应是在嵌入式软件,特别操作系统级软件,那将是我们的优势。我们的研究生里有些是学电子、通信类专业过来的,有较好的模拟电路和单片机基础,学嵌入式非常合适。
    嵌入式本身就是从单片机发展过来的,只是单片机不带OS,而现在很多嵌入式应用越来越复杂,以至不得不引入嵌入式操作系统。另外,为追求更高速的信号处理速度,现在在一些速度要求较高场合,有不少公司是将一些DSP算法,如MPEG压缩解压缩算法等用硬件来实现,这就涉及到HDL数字电路设计技术及其 FPGA/IP核实现技术,这方面的人目前市场上也很缺。

    (5) 题外话
    另外,能写驱动程序的人目前是非常紧缺的(驱动程序也可归于嵌入式范畴),包括桌面Windows中的DDK开发环境和WDM驱动程序。公司时刻都要推出新产品,每一个新产品出来了,要能被操作系统所使用,是必须写驱动程序的。写驱动程序就必须掌握操作系统(如Windows或Linux)的内部工作原理,还涉及到少量硬件知识,难度较大,所以这方面的人很难找。想成为高手的同学,也可从驱动程序方面获得突破。不过听做这方面的朋友说,做过以后,你会发现也并不是怎样难的。其实搞驱动程序的工作是很舒服的,搞完一个版本就会空一段时间,只有等公司新的芯片推出或新的OS出现后,才需要再去开发新一版驱动。





    嵌入式初学者请进
    <div id=articlebody>实践当然是最锻炼人的方式,但是我想在校生很少有这样的机会,别说本科生,硕士生也未必有条件。所以我想学习嵌入式要从个人的知识背景和现实条件出发。订立合适的阶段目标,在允许的条件下多动手多思考。

    一般情况下对于硬件设备是比较短缺的。但是可以从软件方面和嵌入式系统开发模式上下功夫,提醒大家一点,嵌入式系统开发设计的内容知识很多,所以大家不要乱,在了解嵌入式系统开发的体系结构后,一步一步的下手,最容易上手的是linux下的C,比如ucos(有开放源代码),虽然可能无法在硬件上仿真,但也不必着急。wince,palmos上手都很容易。无论对于初学者还是自以为是高手的人来说,编程水平(这可不受硬件条件限制)绝对是没有止境的,有了较高的编程水平(嵌入式主要是C,当然OO的几种语言c++,java是发展趋势),等到有机会的时候及时的补充硬件知识,会很快的成为高手。

    还有,一定记住,学习嵌入式,”要想办法,不要找理由“。当年在dos下用tc编程时的条件,现在回想起来建筑就是奇迹。

    我推荐一条发展道路吧,仅供参考,

    1、C开发经验
    条件:linux(这都有吧)
    方法:随便,主要是掌握ansiC编程(不包括gtk,qt等图形可视化开发)

    2、网络、操作系统、体系结构
    条件:linux,各种书,算法、例程。
    方法:通过C编程实现简单的网络等知识的算法和过程。

    3、嵌入式系统概念
    条件:各个嵌入式网站,讨论组,书籍
    方法:少提问(尤其是等着天上掉馅饼,这主要是防止增长惰性,也解决不了实际问题),多思考。

    4、嵌入式开发实践
    条件:各种嵌入式系统开发工具的demo版(或者D版,如果有的话),包括编译器,仿真器。可以找高手们要,也可以下载。
    方法:这里有两个分支,一个是基于mcu/dsp的嵌入式系统开发,一个是象palmos,wince,ucos等rtos下的应用软件开发。对硬件感兴趣,想成为真正高手的由第一个分支入手,以后进入第二个分支;如果十分厌烦硬件,只想停留在软件开发上的,可以只由第二个分支入手,以后就和pc上的开发没有什么本质上的区别了,找份不错的工作应该没问题,可以不用进行下面的步骤了,感兴趣可以参考第6条。

    5、硬件开发
    条件:各种嵌入式芯片、存储器等电路器件,protel99等电路设计软件,电路板制作。

    方法:这时候该有开发条件了,最起码是51系列,这个比较方便。电路的设计内容较多,不过看起来吓人,实际上比软件要简单的多。只要下功夫,实践会告诉你一切。
    6、硬件工程/软件工程/项目管理
    条件: 各个芯片详细资料和使用经验,软件工程知识,项目管理知识,培训,大型项目参与经验
    方法:已经是高手了,但是学无止境,沾沾自喜于已有的知识是致命的。那个下一步。。。,你该是管理者了。



    抛砖引玉,以上出自我的经验,欢迎各路高手们补充,初学者提问。

    为了技术,一路狂奔。。。


    我来补充几点.

    要想成为高手中的高手,最好从钻研如下领域修炼:
    1,分析一种RTOS的源代码--UCOS最容易;
    2,分析一种通讯协议栈的实现方式--TCP/IP最实用;
    3,精通一种DSP的开发集成环境--TI CCS2.1最优秀,精华在其内带的RTOS;
    4,精通一种单片机的开发集成环境--keil C最经典;
    5,精通一种MCU的开发集成环境--ADS 1.2最流行;
    要想成为大师级人物再从如下领域开始修炼:
    1,精通一种系统建模语言和工具--Telelogic tau SDL/UML suit最经典;
    2,精通一种算法仿真工具--Matlab simulink 最便宜;
    要想检验一下自己是否到达了至尊级人物,可以做如下的事:
    动手搭建一套红外或者蓝牙通讯原型系统,模拟前端可以用现成的,基带用DSP,主控用个32BMCU,DSP和协议软件自己写。当然不可能做全,做个子集就可以了。
    如果能到这个地步,打住吧,该改行去做市场了。做个一、二年市场,你不自己去创个业就太浪费了。 </div>



    [经典转载]请不要做浮躁的嵌入式系统工程师
    1. 不要看到别人的回复,第一句话就说:给个代码吧!你应该想想为什么。当你自己想出来再参考别人的提示,你就知道自己和别人思路的差异。

                      2.初学者请不要看太多的书那会误人子弟的。先找一本好书系统的学习。很多人用了很久都是只对部分功能熟悉而已,不系统还是不够的。

                      3. 看帮助。不要因为很难,而自己又是初学者所以就不看;帮助永远是最好的参考手册,虽然帮助的文字有时候很难看懂,或不够直观。


                      4. 不要被一些专用词汇所迷惑;最根本的是先了解最基础知识。

                      5. 不要放过任何一个看上去很简单的小问题--他们往往并不那么简单,或者可以引伸出很多知识点;不会举一反三你就永远学不会。

                      6. 知道一点东西,并不能说明你会用,会用是需要实践经验和时间积累的。

                      7. 入门并不难,难的是长期坚持实践和不遗余力的学习和实践。

                      8. 看再多的书是学不会用的,要多实践,多动手。

                      9. 把时髦的技术挂在嘴边,还不如把基本的技术记在心里。

                      10.在任何时刻都不要认为自己手中的书已经足够了。

                      11.看得懂的书,请仔细看;看不懂的书,请硬着头皮看。

                      12.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍。

                      13.请把书上的例子亲手去实践一下。

                      14.把在书中看到的有意义的例子进行扩充;并将其切实的运用到自己的设计中。

                      15.不要漏掉书中任何一个练习和实例——请全部做完并记录下思路。

                      16.别心急,应用确实不容易,水平是在不断的实践中完善和发展的。

                      17.每学到一个知识点的时候,尝试着对别人讲解这个知识点并让他理解----你能讲清楚才说明你真的理解了。

                      18.记录下在和别人交流时发现的自己忽视或不理解的知识点。

                      19.保存好你做过的所有的源文件----那是你最好的积累之一。

                      20.对于网络,还是希望大家能多利用一下。很多问题不是非要到论坛来问的,首先你要学会自己找答案,比如google、百度都是很好的搜索引擎,你只要输入关键字就能找到很多相关资料,别老是等待别人给你希望,看的出你平时一定也很懒!


                      21.到一个论坛,你要学会去看以前的帖子,不要什么都不看就发帖子问,也许你的问题早就有人问过了,你再问,别人已经不想再重复了,做为初学者,谁也不希望自己的帖子没人回的。


                      22.虽然不是打击初学者,但是这句话还是要说:论坛论坛,就是

                      大家讨论的地方,如果你总期望有高手总无偿指点你,除非他是你亲戚!!讨论者,起码是水平相当的才有讨论的说法,如果水平真差距太远了,连基本操作都需要别人给解答,谁还跟你讨论呢。

                      浮躁的人容易问:我到底该学什么;----别问,学就对了;

                      浮躁的人容易问:有钱途吗;----建议你去抢银行算了;

                      浮躁的人容易说:我要中文版!我英文不行!----不行?学呀!

                      浮躁的人分两种:只观望而不学的人;只学而不坚持的人;

                      浮躁的人永远不是(也成不了)一个高手。

     
    展开全文
  • 大唐天下全返app系统开发

    千次阅读 2017-11-18 14:08:55
    大唐天下消费全返商城APP的开发是一种新型商业模式,主要为了解决了系统平台上面的吸粉难、促活难、留存难等问题以及提升整体销售额,商家通过将自己的部分利润返还给消费者的方式,提高消费者忠诚度,吸引消费者...
  • 苹果从2014年推出AppleWatch设备至今已经三个年头,笔者作为国内第一批AppleWatch的用户(购买的是2014年3月份预定的第一苹果手表)以及第一批WatchOS系统开发人员(2014年五年开发第一款AppWatch应用),最近重新...
  • android(Google公司开发的操作系统

    千次阅读 2014-11-10 13:44:51
    Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。...
  • 软件系统开发流程

    万次阅读 2010-02-02 11:02:00
    软件开发流程 -- 【迭代化软件开发技术】 1. 传统开发流程的问题 传统的软件开发流程是一个文档驱动的流程,它将整个软件开发过程划分为顺序相接的几个阶段,每个阶段...这就意味着只有当所有的系统模块全部开发完成
  • 瑞萨电子Rcar-H3的qnx系统开发

    千次阅读 2017-05-28 22:10:16
    瑞萨电子Rcar-H3的qnx系统开发
  • 当你去ATM取钱时,用的是央行的CNAPS(中国现代化支付清算系统) 当你用支付宝买买买时,用的是第三方支付的清算系统 这里先介绍第一部分:CNAPS |当你在ATM取钱时,银行都做了什么? 我们先拿一个ATM取钱...
  • 简介: chromebook 是装的自家公司(google)的ChromeOS; 此笔记本拥有2700*1700像素的屏幕分辨率以及触摸屏; 此笔记本有不同年份和不同的品牌: # 三星 /戴尔 /联想 /华硕 /… 不同年份和品牌外观差别较大,这里,用...
  • ,省市级渠道前置除了分担庞大的交易连接压力外,担任了级联架构中地方独有业务的大前置角色,对于它来说,地方性业务系统就是本级的后台,综合大前置包容了大前置的交易统一调度功能,把后台的一些公共的业务...
  • https://gitee.com/shuzheng/zheng前言 zheng项目创建于2016年10月4日,正在慢慢成长中,目的不...- 系统监测 - 无缝升级 的全方位J2EE企业级开发解决方案。项目介绍 基于Spring+SpringMVC+Mybatis分布式敏捷开
  • 基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构,提供整套公共微服务服务模块:集中权限管理(单点登录)、内容管理、支付中心、用户管理(支持第三方登录)、微信平台、存储系统、配置中心、日志分析、任务和...
  • 数据挖掘与分析 - 推荐系统的原理与开发图表一览试想一个推荐系统的应用场景分析应用场景的需求开始开发推荐图书系统常规解决想法曼哈顿距离欧氏距离 序言1:“你喜欢的我也喜欢”,这句话算是推荐系统最精华的提炼...
  • 深入浅出 - Android系统移植与平台开发(一)

    万次阅读 多人点赞 2013-05-17 16:25:44
    写在前面的 这是我最近两年的Android开发的经验总结,断断续续的写了几个月了,欢迎大家砖头,有不对的地方,或需要改进的地方,请指出来,先贴出来目录来看看。第一章、 概述... 51.1 Android 操作系统介绍.... ...
  • 基于SSM的图书借阅系统开发与实现 说 明 本系统是一个基于SSM环境下开发的图书借阅系统,随着计算机的广泛应用,其逐步成为现代化的标志。图书馆或者一些企业内部,甚至是书店,在正常运行过程中总是面对大量的...
  • 嵌入式系统关键技术分析与开发应用 作 者:东南大学 夏玮玮 沈连丰南京东大移动互联技术有限公司 肖 婕 毛宇斌
  • 聚合支付系统OEM 贴牌独立部署服务器移动聚合支付发展至今,越来越多的服务商投身到移动支付行业中,很多服务商选择代理其他品牌的收银产品,有些服务商选择自己进行聚合支付系统的OEM贴牌开发;这样做的优势在于,...
  • 学习路线:Linux入门、C语言、linux应用开发、linux系统开发、linux驱动 误区:今天学这、明天学那,资料太多,只看资料不动手 2什么是嵌入式系统 别动,你已经被嵌入式设备包围了 我们生活已经处处可见嵌入式系统...
  • 最近公司有个项目要求在微信公众平台开发模式下使用客服系统。网上的教程有不少,但没有一个清晰的说明,所以我们就自己研究了一下,最后用微信公众平台客服网页版达到了公司的要求。项目配置我们开发模式的后端...
  • Delphi(C++ Builder)一直致力于快速的应用程序开发环境已有25年以上的历史,并且仍在继续增长。如果您知道如何使用Delphi,Delphi会帮助您迅速并且能够创建任何应用程序APP及WEB网站应用! 当前,使用Delphi,您...
  • 本文探讨数据应用层中的运营数据系统,因为运营数据几乎是所有互联网创业公司开始做数据的起点,也是早期数据服务的主要对象。本文将着重回顾下我们做了哪些工作、遇到过哪些问题、如何解决并实现了相应的功能。
  • 各大公司Java后端开发面试题总结

    万次阅读 多人点赞 2017-03-01 11:31:11
    常用的数据结构是B+Tree,每个叶子节点不但存放了索引键的相关信息增加了指向相邻叶子节点的指针,这样就形成了带有顺序访问指针的B+Tree,做这个优化的目的是提高不同区间访问的性能。 什么时候使用索引: 1....
  • 如何在Linux系统下进行C++程序开发

    千次阅读 2013-12-09 09:09:17
    如何在Linux系统下进行C++程序开发 现在的LINUX系统是用得越来越多了,以后也将越陷越普遍,不管是系统还是服务器,本文将介绍如何在Linux系统下进行C++程序开发!  Linux是一类Unix计算机操作系统的...
  • Broadleaf Commerce 是一个开源的 Java 电子商务平台,基于 Spring 框架开发。提供一个可靠、可扩展的架构,可进行深度的定制和快速开发。 Broadleaf Commerce源代码托管在GitHub上,目前已经发展到4.x版本。 这里...
  • GitHub: 项目基于 Spring Boot 2.1.0 、 Jpa、 Spring Security、redis、Vue的前后端分离的后台管理系统 项目简介eladmin基于 Spring Boot 2.1.0 、 Jpa、 Spring Security、redis、Vue的前后端分离的后台管理系统...
  • 微软的Windows系统是伴随我们已久的老朋友了,大多数人都是一代一代Windows的用上来,老用户几乎都形成一个共识,就是微软的系统有一代会很好,也有一代会很糟糕,比如Windows XP、Windows 7就很受欢迎,而Windows ...
  • 接来下,我要介绍的是基于iOS平台的智能电源管理系统。其中,总共包含五分部内容,内容为下: 第一部分,简要的介绍了一下当今智能家居的应用状况,分析了国内外智能领域行业的发展标准和发展状况。 第二部分,...
  • 不啰嗦,我们直接开始! 引言 面完了RPC相关的一系列问题,面试官确定我对分布式架构的理论知识和服务间通讯...问题分析:即使作为业务开发人员也会经常遇到需要配置Nginx或其他负载均衡的问题,比如你做了一个文..

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 199,464
精华内容 79,785
关键字:

代还系统开发公司