999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Linux應用程序分類與開發方法

2015-08-02 11:07:11王中丹劉詩楠
微處理機 2015年6期
關鍵詞:進程嵌入式程序

王中丹,劉詩楠

(1.遼寧廣播電視大學信息工程學院,沈陽110034;2.廣發銀行股份有限公司沈陽分行,沈陽110000)

Linux應用程序分類與開發方法

王中丹1,劉詩楠2

(1.遼寧廣播電視大學信息工程學院,沈陽110034;2.廣發銀行股份有限公司沈陽分行,沈陽110000)

Linux操作系統以其開放源代碼資源和免費的特性,廣泛應用在各種系統如臺式計算機、大型機和超級計算機中。嵌入式linux是將日益流行的Linux操作系統進行裁剪修改,使之能在嵌入式計算機系統上運行的一種操作系統,廣泛應用在移動電話、個人數字助理(PDA)、媒體播放器、消費性電子產品以及工業控制、航空航天等領域。隨著國內Linux應用的普及和水平的提高,使用Linux或嵌入式Linux作為操作系統,在其上面開發應用程序的越來越多。但是,如何開發Linux應用程序?Linux應用程序有哪些類型?在目前出版的刊物當中很少有這方面的內容,對于初學者來講十分困惑。在此就作者本人在Linux和C語言方面的開發和教學當中的經驗,就Linux程序的開發及編譯、執行等過程,Linux和嵌入式開發的分類等進行一個介紹和說明。

服務器;客戶端;套接字;監控;后臺程序;編譯;可執行文件;進程;嵌入式開發

1 嵌入式系統定義

首先,我們經常講嵌入式開發,那么,什么是嵌入式系統?可能比較難回答,或者回答的不完全。一般來講,嵌入式系統的定義為:嵌入式系統是以應用為中心,以計算機技術為基礎,并且軟硬件可裁剪,適用于應用系統對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統。它一般由嵌入式微處理器、外圍硬件設備、嵌入式操作系統以及用戶應用程序等四個部分組成,用于實現對其他設備的控制、監視或管理等功能[1]。為了區別于原有的通用計算機系統,把嵌入到對象體系中,實現對象體系智能化控制的計算機,稱作嵌入式計算機系統。

2 嵌入式開發分類

從是否使用操作系統來講,可以分為在操作系統上(常見的操作系統包括uClinux、Ubuntu、Fedora、OpenSUSE等)的開發和無操作系統的開發[1],這個分類主要是針對嵌入式開發而言。如以前的51單片機或ARM芯片上的開發,主要是在廠商提供的開發平臺上直接用標準C語言進行編程,編程完畢以后,通過集成平臺進行Debug,最后生成可執行文件[1],然后,將可執行文件直接燒寫到芯片當中。這種開發基本上是在小型儀表或小型控制模塊當中應用的比較多。應用程序規模比較小,功能單一。優點是由于沒有操作系統,系統啟動速度相對有操作系統來講比較快[7]。

另外一種就是將標準Linux中不用的功能進行裁剪,只留下有用的功能,形成一個小操作系統,應用程序在標準Linux操作系統上進行編譯和調試,然后,下載到嵌入式Linux上面進行調試和應用。這種應用程序由于是運行在Linux操作系統上,因此,可以實現更復雜的功能,但仍然主要是應用在工業控制當中。對于大型的應用軟件來講,主要是直接運行在沒有裁剪的操作系統上[1]。

對于嵌入式操作系統來講,由于裁剪了操作系統多余的功能,只保留了需要的功能,因此,這種系統的運行效率非常高,程序需要的資源也不多,是目前嵌入式開發采用的主要方法。但是,這種開發涉及硬件電路的設計制作及Linux操作系統的裁剪,對于這方面的技術要求比較高,需要有嵌入式硬件開發的專業技術人員進行硬件設計,然后,有嵌入式軟件技術人員進行Linux的裁剪,最后,再由普通的C語言開發技術人員進行應用程序開發[1、7]。

3 應用程序分類

上面講到了目前嵌入式開發的主流是在Linux操作系統上的開發,接下來介紹Linux應用程序的分類及開發方法。

(1)普通應用程序[2-3]

如下程序,等待從鍵盤輸入2個自然數,然后,計算出兩個數的平均數,并將結果打印在屏幕上。

如上程序,一般在Window上通過文本編輯器,保存到文件當中sample.c,然后通過ftp工具上傳到Linux服務器上的用戶開發目錄,通過cc編譯器進行編譯,即可生成可執行文件。最后,在命令行執行可執行文件[1]。

該程序執行一次就結束了,這是最普通的Linux程序,通過cc編譯器編譯生成可執行代碼,程序的啟動通過命令行啟動。

(2)帶有界面的應用程序

最典型的就是Linux上面自帶的計算器。當啟動計算器以后,在Linux Desktop畫面上出現一個計算器畫面,在此輸入數據進行計算,然后,顯示出計算結果。如此,反復執行各種計算,只要不關閉畫面,應用程序就一直在執行。這種應用程序的啟動也是需要通過手動方法來啟動。最早的Linux界面程序基本上是用X-Window方法來開發的,現在,主要采用QT來開發[1]。

(3)Linux后臺服務程序

例如用戶自己開發的一些如性能監控程序,當服務器啟動以后,性能監控程序就一直在后臺處于運行狀態。當客戶端連接到服務器以后,服務程序每隔一定時間間隔向客戶端發送一次服務器的性能監控數據,當客戶端斷開連接以后,服務程序就處于等待狀態。每隔一定時間收集一次性能監控數據,但是由于沒有客戶端連接,因此不向客戶端發送數據。其它提供應用服務的程序都稱為服務程序。如我們在百度搜索引擎畫面輸入一個關鍵字,執行搜索,一會兒就會在畫面上顯示好多搜索結果。這其實是畫面向后臺服務器提交一個搜索關鍵詞請求,后臺服務程序通過各種搜索方法執行搜索,然后,將搜索結果和超鏈接發送到前臺,在畫面上顯示出來。我們常見的銀行存取款系統是一個典型的C/S系統,客戶端將賬號和密碼提交給后臺服務器,后臺服務器用賬號和密碼查詢核心數據庫,然后將該賬戶的金額等信息返回到柜臺計算機,在柜臺畫面上顯示,以進行存取款等各種操作[5]。

(4)Linux后臺服務程序的特點

上面介紹了Linux服務程序,那么,Linux后臺服務器程序有哪些特點?程序如何編制和編譯?對于Linux系統服務程序來講,常用的一個概念就是守護進程。這其實是一個典型的系統服務程序,在機器啟動以后自動啟動,并常駐內存,一直提供服務,也不需要手動啟動。這種程序稱為守護進程,比如,ftp、telnet等服務[4]。

守護進程是Linux中的后臺服務進程。它是一個生存期較長的進程,通常獨立于控制終端并且周期性地執行某種任務或等待處理某些發生的事件。守護進程常常在系統引導裝入時啟動,在系統關閉時終止。守護進程的三個最基本的特點是后臺運行、獨立于終端、完成一定的任務。

4 守護程序或服務程序的編程要點

編程要點如下:

(1)在后臺運行;

(2)脫離控制終端,登錄會話和進程組;

(3)禁止進程重新打開控制終端;

(4)關閉打開的文檔描述符;

(5)改變當前工作目錄;

(6)重設文檔創建掩模;

(7)處理SIGCHLD信號。

如下是一個守護進程實例:

守護進程實例包括兩部分:主程式test.c和初始化程式init.c。主程式每隔一分鐘向/tmp目錄中的日志test.log報告運行狀態;初始化程式中的init_daemon函數負責生成守護進程。讀者能夠利用init_daemon函數生成自己的守護進程[4]。

5 服務程序的編譯

關于服務程序的編譯,可以采用Linux開發常用的方法進行[6],就是將所有相關聯的文件及使用的庫文件,寫到Makefile當中,通過執行Make命令來將源程序編譯成可執行文件[1]。

6 服務程序的啟動

將執行文件的自動啟動命令加入到Linux自動啟動腳本文件當中,這樣,當Linux操作系統啟動完畢以后,服務程序會自動啟動[1]。

7 結束語

以上是Linux服務程序的開發步驟,對于嵌入式開發系統來講,編譯命令不能直接使用Linux的gcc或g++來編譯,而要使用對應嵌入式芯片提供的編譯命令進行編譯[8]。編譯好以后,通過ftp命令下載到嵌入式主板,通過命令行賦予給服務程序可執行權限,然后,將啟動命令加入到自動啟動腳本即可。本文只介紹Linux服務程序的分類和嵌入式開發的步驟,具體每一部分的詳細內容,請參照相關資料。

[1] 申華,劉龍,張云翠.嵌入式Linux系統軟硬件開發與應用[M].北京:北京航空航天大學出版社,2013.

Shenhua,Liulong,Zhangyuncui.Development and application of hardware and software for embedded Linux system[M].Beijing:Beihang University Press,2013.

[2] Neil Matthew,Richard Stons,著.Linux程序設計[M].陳健,宋健健,譯.北京:人民郵電出版社,2013.

Neil Matthew,Richard Stons.Beginning Linux Programming 4th Edition[M].Beijing:Posts&telecom Press,2013.

[3] 華清遠見嵌入式培訓中心.嵌入式Linux應用程序開發標準教程[M].北京:人民郵電出版社,2013.

China Huaqingyuanjian embedded training center.Linux application development standards tutorial[M].Beijing:Posts&telecom Press,2013

[4] 宋敬彬,孫海濱.Linux網絡編程[M].北京:清華大學出版社,2010.

Songjingbin,Sunhaibin.Linux network programming[M].Beijing:Tsinghua university press,2010.

[5] 楊宗德.Linux高級程序設計(第2版)[M].北京:人民郵電出版社,2009.Yangzongde.Linux advanced programming[M].Beijing:Posts&telecom Press,2009.

[6] [美]施瓦茲,著.Linux應用程序開發[M].侯普秀,宋美娜,譯.北京:清華大學出版社,2006.

(USA)Carl Albing,(USA)Michael Schwarz.Houpuxiu,Songmeina Translate.Linux Application Development[M].Beijing:Tsinghua university press,2006.

[7] [美]RobertLove,著.Linux內核設計與實現(第3版)[M].陳莉君,康華,譯.北京:機械工業出版社,2011.

(USA)RobertLove.Design and development of Linux kernel[M].Beijing:Cina Machine Press,2011.

[8] 馮國進.Linux驅動程序開發實例[M].北京:機械工業出版社,2011.

Fengguojin.Linux Driver Development instance[M].Beijing:Cina Machine Press,2011.

Classification and Development Method of Linux App lication Software

Wang Zhongdan1,Liu Shinan2
(1.Information and Engineering Department,Liaoning Radio and TVUniversity,Shenyang 110034,China;2.China Guangfa Bank Shenyang Branch,Shenyang 110000,China)

Linux operating system is widely used in various systems such as desktop computers,mainframes and supercomputers because of its open source code and using free.The embedded Linux,as a system running on the embedded computer,ismodified by the popular Linux operating system,which is widely used in Mobile phones,Personal digital assistant(PDA),media player,consumer electronics,industrial control,aerospace and so on.With the popularity of domestic Linux applications and the improvement of the user level,more and more users are using Linux or embedded Linux as the operating system for application development.However,the beginners confuse and want to know how to develop Linux application and what the types of the Linux applications are.Itwould be very confused and puzzled for beginners.There are few relative contents in the journals.According to the experience of development and teaching about Linux and C language,development,compilation and execution process of programs for Linux,the classification of embedded development is described in this paper.

Server;Client;Socket;Monitor;Daemon;Compile;Executable-file;Process;Embedded Development

10.3969/j.issn.1002-2279.2015.06.017

TP3

B

1002-2279(2015)06-0062-03

王中丹(1962-),男,遼寧省錦州市人,副教授/碩士,主研方向:計算機軟件開發。

2015-06-09

猜你喜歡
進程嵌入式程序
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
搭建基于Qt的嵌入式開發平臺
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
Altera加入嵌入式視覺聯盟
倍福 CX8091嵌入式控制器
自動化博覽(2014年4期)2014-02-28 22:31:15
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
主站蜘蛛池模板: 免费毛片视频| 中文字幕天无码久久精品视频免费| 三上悠亚在线精品二区| 日韩亚洲综合在线| 一区二区理伦视频| 国产精品久久久久久搜索| 99无码熟妇丰满人妻啪啪| 国产sm重味一区二区三区| 国产黄视频网站| 亚洲精品爱草草视频在线| 色屁屁一区二区三区视频国产| 国产精品嫩草影院av| 成人欧美日韩| 国产乱人伦AV在线A| 精品午夜国产福利观看| 亚洲无限乱码一二三四区| 亚洲视屏在线观看| 91在线播放国产| 国产99欧美精品久久精品久久| 又黄又湿又爽的视频| 激情影院内射美女| 欧美成人影院亚洲综合图| 超碰免费91| 亚洲天堂视频在线播放| 找国产毛片看| 欧美精品亚洲日韩a| 麻豆精品在线播放| 国产成人AV综合久久| 久久精品亚洲专区| 亚洲欧美另类专区| 色综合国产| 亚洲国产一区在线观看| 国产综合色在线视频播放线视| www.亚洲一区二区三区| 亚洲成人免费在线| 国产啪在线| 中字无码av在线电影| 精品国产91爱| www亚洲天堂| 国产欧美综合在线观看第七页| 波多野结衣的av一区二区三区| 亚洲av色吊丝无码| 五月六月伊人狠狠丁香网| 精品视频免费在线| 精品久久综合1区2区3区激情| 久热re国产手机在线观看| 欧美福利在线| 色婷婷电影网| 欧美激情福利| 日韩无码黄色| 国产免费a级片| 中文成人在线视频| 亚洲无码在线午夜电影| 亚洲视频二| 高清国产在线| 免费精品一区二区h| 无码一区二区三区视频在线播放| 欧美日韩亚洲国产| 久久国产成人精品国产成人亚洲 | 小说 亚洲 无码 精品| 国产欧美在线观看一区| 国产一区二区在线视频观看| 免费aa毛片| 极品尤物av美乳在线观看| 日韩在线第三页| 婷婷久久综合九色综合88| 国产一区二区三区免费观看 | 国产香蕉一区二区在线网站| 凹凸精品免费精品视频| 91九色视频网| 无码aⅴ精品一区二区三区| 97亚洲色综久久精品| 亚洲婷婷丁香| 欧美日韩精品一区二区在线线| 亚洲中文久久精品无玛| 亚洲综合日韩精品| 一边摸一边做爽的视频17国产| 精品少妇三级亚洲| 超碰色了色| 久青草国产高清在线视频| 欧美高清三区| 直接黄91麻豆网站|