3. 另外一個(gè)實(shí)際問(wèn)題,也是與網(wǎng)絡(luò)相關(guān)。通過(guò)增加接收緩沖隊(duì)列對(duì)接收的網(wǎng)絡(luò)報(bào)文進(jìn)行排隊(duì),在合適的時(shí)機(jī),系統(tǒng)會(huì)處理該隊(duì)列。但最開(kāi)始的時(shí)候,緩沖隊(duì)列并沒(méi)有限制長(zhǎng)度,每當(dāng)網(wǎng)卡接收到一個(gè)報(bào)文,就會(huì)申請(qǐng)一片內(nèi)存,把數(shù)據(jù)拷貝到內(nèi)存中,并排到緩沖隊(duì)列中。大多數(shù)情況下,這是沒(méi)有問(wèn)題的。但是在實(shí)際測(cè)試中,系統(tǒng)還是有偶爾無(wú)法啟動(dòng)的情況,甚至初始化時(shí)出現(xiàn)崩潰。從錯(cuò)誤輸出看,是由于內(nèi)核內(nèi)存耗盡引起。經(jīng)深入分析,問(wèn)題被發(fā)現(xiàn)。具體過(guò)程是,我們接入的網(wǎng)絡(luò),是一個(gè)龐大的企業(yè)廣播網(wǎng)絡(luò),流量非常大。而USB初始化比較慢,一旦網(wǎng)絡(luò)流量太大,會(huì)導(dǎo)致大量報(bào)文排隊(duì),進(jìn)而導(dǎo)致內(nèi)核內(nèi)存耗盡,從而導(dǎo)致內(nèi)核無(wú)法正常工作。基于此,我們限制了網(wǎng)絡(luò)接收隊(duì)列的長(zhǎng)度,一旦超出一個(gè)固定的長(zhǎng)度,則新進(jìn)入的報(bào)文就會(huì)被丟棄。該機(jī)制有效解決問(wèn)題。
雖然這些問(wèn)題及解決辦法,看起來(lái)很細(xì)小,但正是這些細(xì)節(jié)上的完善和優(yōu)化,使得系統(tǒng)趨向穩(wěn)定和成熟。在操作系統(tǒng)開(kāi)發(fā)中,也是“細(xì)節(jié)決定一切”。同時(shí),在定位和處理這些問(wèn)題時(shí),整個(gè)內(nèi)核的代碼,都會(huì)被重新審視和檢查,這對(duì)內(nèi)核來(lái)說(shuō),也是一種進(jìn)一步的確認(rèn)。雖然這些問(wèn)題的原因很簡(jiǎn)單,但其定位過(guò)程卻是痛苦和繁雜的,很多時(shí)候,需要把內(nèi)核代碼翻來(lái)覆去好幾遍。相信處理過(guò)bug或問(wèn)題的朋友深有體會(huì)。
作為物聯(lián)網(wǎng)操作系統(tǒng),HelloX將始終聚焦物聯(lián)網(wǎng)領(lǐng)域的應(yīng)用,為物聯(lián)網(wǎng)量身定制一套最優(yōu)的系統(tǒng)軟件解決方案。我們認(rèn)為,只有一個(gè)內(nèi)核的支撐,是遠(yuǎn)遠(yuǎn)不夠的。物聯(lián)網(wǎng)和智能硬件的有效發(fā)展和壯大,需要更多技術(shù)的支持,比如人工智能,分布式計(jì)算,機(jī)器學(xué)習(xí),等等。但一個(gè)穩(wěn)定可靠和可擴(kuò)展的物聯(lián)網(wǎng)操作系統(tǒng),是這些技術(shù)的最好生存土壤。后續(xù)我們?cè)谶M(jìn)一步完善內(nèi)核的同時(shí),將在這些領(lǐng)域進(jìn)行探索和研究,并依托HelloX進(jìn)行落地實(shí)現(xiàn),真正構(gòu)筑一套支撐未來(lái)網(wǎng)絡(luò)的軟件數(shù)字神經(jīng)。
2015年已經(jīng)過(guò)去,新的一年已經(jīng)來(lái)臨。整個(gè)物聯(lián)網(wǎng)產(chǎn)業(yè)依然處于培育發(fā)展階段,但前景逐漸明朗。我們的物聯(lián)網(wǎng)操作系統(tǒng)項(xiàng)目,也越來(lái)越壯大和穩(wěn)定。我們遵循“穩(wěn)中有進(jìn),同步發(fā)展”的策略,與整個(gè)物聯(lián)網(wǎng)產(chǎn)業(yè)的發(fā)展保持步調(diào)一致。借用習(xí)近平主席2016新年賀辭中的話,與朋友們共勉:“只要有付出,總會(huì)有收獲。只要堅(jiān)持,夢(mèng)想一定會(huì)實(shí)現(xiàn)!”。希望在新的一年里,我們共同努力,一起堅(jiān)持,最終實(shí)現(xiàn)民族基礎(chǔ)軟件騰飛的夢(mèng)想。