隨著物聯(lián)網(wǎng)、智能電網(wǎng)、智能移動設備的發(fā)展,我們將能在任何時候任何地方獲取我們所需的信息,下面粵嵌為你闡述一下ARM-Linux嵌入式系統(tǒng)的多進程并發(fā)服務器設計。
面向連接的并發(fā)服務器是目前Linux網(wǎng)絡服務器的主流形式。它采用主、從服務器的工作方式,能較好地解決了網(wǎng)絡中客戶進程的并發(fā)請求問題。目前在嵌入式領(lǐng)域,基于ARM技術(shù)的微處理器應用約占據(jù)了32位RISC微處理器80%以上的市場份額,同時,ARM處理器和嵌入式Linux的結(jié)合也正變得越來越緊密,在工業(yè)控制、消費類電子產(chǎn)品、通信系統(tǒng)、無線系統(tǒng)等各類產(chǎn)品市場都可以看到ARM與Linux相結(jié)合的身影。
并發(fā)服務器原理及框架。相互通信的網(wǎng)絡程序通??梢苑譃榭蛻舳撕头掌鞫藘刹糠帧:唵蔚腃/S服務模式客戶端和服務器采用的是一對一的關(guān)系,而實際上一個客戶同時可以與多個服務器通信,一個服務器同時也能與多個客戶通信。在實際應用中為了讓一個服務器同時為多個客戶服務,處理多個客戶的請求,那么就需要用并發(fā)服務器。Linux下主要支持的并發(fā)服務器有進程、線程。創(chuàng)建線程要比進程快,但一個進程內(nèi)的所有線程共享相同的內(nèi)存空間、全局變量等信息,所以當一個線程崩潰時,它會影響同一進程中的其他線程。
功能代碼分析。網(wǎng)絡主程序設計其實主要也就是父進程所執(zhí)行的程序,程序設計的流程圖。Linux中的網(wǎng)絡編程通過socket接口實現(xiàn)。socket既是一種特殊的I/O,它也是一種文件描述符。一個完整的socket包括協(xié)議、本地地址、本地端口、遠程地址、遠程端口;每一個socket有一個本地的socket號,由操作系統(tǒng)自動分配。以下是建立TCP socket,其中AF_INET為IPv4,SOCK_STREAM為TCP協(xié)議。
ARM-Linux多進程服務移植與實現(xiàn)。Makefile的作用就是讓編譯器知道要編譯一個文件需要依賴哪些文件,同時當那些依賴文件更新時,編譯器會自動發(fā)現(xiàn)終生成的文件已經(jīng)過時,而重新編譯相應模塊。Makefile定義了一系列規(guī)則來指定各文件,如依賴性、先后順序及是否需要更新等。
本文講解了并發(fā)服務器的原理結(jié)構(gòu),分析了基于Linux下的并發(fā)服務器程序代碼,并且移植到ARM平臺上運行,實現(xiàn)了小型嵌入式服務器的制作。這種低成本、低噪聲、低功耗、高穩(wěn)定性、高安全性的嵌入式服務器,將在我們信息化發(fā)展中的智能樓宇、智能家電、智能移動設備中獲得應用。
以上是粵嵌為你闡述一下ARM-Linux嵌入式系統(tǒng)的多進程并發(fā)服務器設計。當然,在我們的學習中,要做到每進步一點點,才能更快接近你的夢想,從而走向成功。