tag:blogger.com,1999:blog-54163157139736514542023-11-15T08:49:03.070-08:00Linux產品開發技術與管理~ 流淚撒種的,必歡呼收割 ~ from Bibletsuyipenghttp://www.blogger.com/profile/08729171029596398441noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-5416315713973651454.post-73896229272074136872010-01-29T23:23:00.000-08:002010-12-06T14:13:40.512-08:00IPad的震撼彈 蘋果用低價 499美元進入平板電腦,這讓它更垂涎欲滴! 不僅如此,這真是一個對各個陣營的震撼彈:<br />
<br />
1) 對 Atom陣營的平版電腦來說,價格很難批敵,蘋果用 RISC的SOC架構,這意謂著WinTel陣營在相同價位很難賺,而且 Apple的硬體成本還有下修空間,一開始,連價格戰也不用打了<br />
<br />
2) 對其它 ARM陣營的 Smartbook來說,如聯想的第一台 Smart book就賣 499元,真是沒有蜜月期,一開始就準備大降價還不一定有人買了<br />
<br />
3) 對Android陣營或未來的 Chrome陣營來說,有好有壞,好得是,過去 Android可以踩在Apple的商用模式和市場需求來分享市場,未來平板電腦或smart book也可能可以相同的方式占些市場,壞得是, 應用平台是 Pure Java的 Android及Pure Web的 Chrome,在應用程式的廣度,可能都大不及Apple,當螢幕放大之後,這點差異性可能更明顯,比如說,用Web來文書處理的經驗都還不太Smooth。<br />
<br />
4) 對只能賣裝置無法賣服務的小廠,真是一個大警惕,Apple可以靠賣軟體,音樂等來加值,<br />
裝置可以只是一個載具,在雲端市場大行其道的今天,裝置的本身可以表現的越來越有限。對Google而言,裝置本身也不重要,例如它可以繞道在 Iphone上面推他的google talk來賺錢,如果Android或Chrome往Smartbook或平板電腦這條路不成功,對Google而言沒差,它可以在Ipad使用雲端的方向繼續收益,但對於台灣的設備廠來說,相對的就危險了。<br />
<br />
如果最終Ipad壓縮了 windows的市場,也抑制了 Android和Chrome,那麼本來想靠Google殺出一條血路的PC廠又只能回去作 Windows NB,而且量還越來越少,那麼是不是一個該警惕的震撼彈?tsuyipenghttp://www.blogger.com/profile/08729171029596398441noreply@blogger.com0tag:blogger.com,1999:blog-5416315713973651454.post-50553613936396788932010-01-05T05:17:00.000-08:002010-01-21T05:57:29.247-08:00網路設備的設計規劃 - 第一小節<div class="MsoNormal"><span style="font-family: 新細明體;"><b>案例</b></span><br />
<span style="font-family: 新細明體;">TR科技是一家網路設備的研發公司,過去公司的主力產品為家用的有線及無線IP分享器,提供NAT(位址轉換)和簡易的防火牆功能並由Web介面設定管理。由於過去TR科技的核心技術主要是修改 SOC廠提供BSP(board support package)中的雛型範例成為標準化產品,並能作大量的生產,且能為客戶客質化。但現今競爭者提供的功能越來越強大,讓單純的無線接取設備和多媒體及網路儲存等功能結合,使得TR科技訂單大量流失。TR科技的董事長king招開了緊急會議來討論這個問題。行銷部協理Johnson建議公司從善如流,引進更高階的SOC,並尋求SOC廠的技術支援。研發部的協理Ken則認為現有的SOC其實運作時CPU也還有很多剩餘的能力,重點不全是SOC,而是當這麼多功能整合在一起時整個網路封包的流程需要有技術know how,另外多媒體的功能則需要有較為複雜的網路應用程式know how,這些know how都需要時間累積。測試及技術服務部的蔡協理則認為在個人用的產品導入這麼多的功能,售價不一定能昇,可是相對要做的售後服務卻增加了,加上公司初期跨入多功能整合產品的市場,還在培養實力的階段,Bug可能不少,會有一段辛苦期。董事長king在聽過了各方的意見後,向大家表達了公司必須轉型及擴展核心競爭力的決心,才能永續的經營。最後在又經過一番的討論後,責成研發副總Robin從研發、行銷及技術服務部的人力抽調出一個Task Force,準備新產品的開發,將朝家用網路及媒體管理站(network and media station)和SOHO VOIP +VPN router兩個方向來評估及進行。</span><br />
<br />
<br />
<span style="font-family: 新細明體;">接下來共分四節來討論,第一節為分類介紹,第二節為常見的規格及研發的資源,第三節為軟體架構的介紹,第四節提供範例。</span><br />
<br />
<span style="font-family: 新細明體; font-size: large;"><b>第一節 分類</b></span><span lang="EN-US" style="font-family: Times;"></span><br />
<span lang="EN-US" style="font-family: Times;"> 本章網路設備指的是數據通信<span style="font-family: Arial;"><span lang="EN-US" style="font-family: Times;"> (Data-communication )的設備,即透過TCP/IP互連的網路裝置。傳統上</span><span style="font-family: 新細明體;">網路設備的分類可用該設備位於</span><span lang="EN-US" style="font-family: Times;"> TCP/IP</span><span style="font-family: 新細明體;">的運作層級來區分:</span><span lang="EN-US" style="font-family: Times;">Switch</span><span style="font-family: 新細明體;">及無線網路</span><span lang="EN-US" style="font-family: Times;">Access point</span><span style="font-family: 新細明體;">要管理第二層</span><span lang="EN-US" style="font-family: Times;">(</span><span style="font-family: 新細明體;">如</span><span lang="EN-US" style="font-family: Times;">Ethernet)</span><span style="font-family: 新細明體;">以上的功能,路由器要管理第三層(如</span><span lang="EN-US" style="font-family: Times;">IP</span><span style="font-family: 新細明體;">)以上的功能,防火牆要管理第四層</span><span lang="EN-US" style="font-family: Times;">(</span><span style="font-family: 新細明體;">如</span><span lang="EN-US" style="font-family: Times;">TCP/UDP)</span><span style="font-family: 新細明體;">以上的功能,而防垃圾郵件的閘道器則要處理應用層級</span><span lang="EN-US" style="font-family: Times;">(</span><span style="font-family: 新細明體;">如</span><span lang="EN-US" style="font-family: Times;">SMTP)</span><span style="font-family: 新細明體;">的功能。但是由於這些年來硬體運算能力的加強,擴展了網路設備的功能,第二層</span><span lang="EN-US" style="font-family: Times;">(L2)</span><span style="font-family: 新細明體;">的交換器向上延伸到</span><span lang="EN-US" style="font-family: Times;">L3</span><span style="font-family: 新細明體;">、</span><span lang="EN-US" style="font-family: Times;">L4</span><span style="font-family: 新細明體;">甚至</span><span lang="EN-US" style="font-family: Times;">L7</span><span style="font-family: 新細明體;">的控管功能;防火牆結合了</span><span lang="EN-US" style="font-family: Times;">VPN</span><span style="font-family: 新細明體;">、防毒牆等功能;而家用的</span><span lang="EN-US" style="font-family: Times;">Access point</span><span style="font-family: 新細明體;">則結合了</span><span lang="EN-US" style="font-family: Times;">File server</span><span style="font-family: 新細明體;">、</span><span lang="EN-US" style="font-family: Times;">Print server</span><span style="font-family: 新細明體;">甚至多媒體播放或</span><span lang="EN-US" style="font-family: Times;">IP</span><span style="font-family: 新細明體;">電話等功能。由於網路設備已經不容易詳盡的區分,我們略以主要用途別來作一個分類介紹</span></span></span><br />
</div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><strong><span style="font-family: 新細明體;">資安用</span><span style="font-family: 新細明體;">途:</span></strong><br />
</div><div class="MsoNormal"><br />
</div><ul><li><span style="font-family: 新細明體;"> 防火牆(Firewall) : 防火牆主要做的事情是存取控制(Access control),即決定封包可不可以通過。比較簡單的作法是由設定靜態的ACL( Access Control List)來控制,例如依TCP/IP各種協定的表頭(header)的內容來決定去留。但防火牆的ACL演變有越來越複雜的趨勢,能依照時間及應用程式的內容來決定封包的去留。許多防火牆使用了應用層級的代理伺服器(Application proxy),來監控使用者應用程式的內容並作控管。防火牆另外也有幾個必須的功能如紀錄或統計它所控制的封包流資訊,作防火牆內部私有位址對外部公開位址(public IP)的轉換等等。防火牆設計近年的挑戰主要是要處理應用層級的資料,因此如何減少對封包處理時間的延遲是個問題,而防火牆也得懂越來越多應用程式協定。</span></li>
</ul><ul><li><span style="font-family: 新細明體;">虛擬私有網路 (VPN )</span></li>
</ul><span style="font-family: 新細明體;"> 虛擬私有網路早期以 IPSEC技術為主,使用通道(tunnel)的方式,將加密的封包外包一層IP協定表頭在兩個VPN裝置間傳遞,到達VPN裝置後在將外部IP表頭卸載並解密封包。使得傳輸雙方的資料不僅保密,在網路位址的使用也可以跨區域使用同一個網段達成更方便網路資源的分享。由於使用這個方式來作VPN需要傳輸雙方都支援IPSEC協定,如果其中一方是公司外部使用者的個人電腦,需要灌特殊的軟體。為了方便個人使用者來使用VPN,近年來有SSL VPN技術的興起,這個技術讓外部使用者透過瀏覽器就能使用公司內部的資源,主要建立在既有的Web伺服器SSL加密技術上面,外部使用者使用瀏覽器連接到SSL VPN的伺服器,在由SSL VPN伺服器接取企業內部的網路資源。由於加密本身很耗系統資源,因此不管IPSEC或是SSL VPN都常使用加密的加速晶片來提昇效能。<br />
</span><br />
<ul><li><span style="font-family: 新細明體;">入侵偵測及防禦系統 (IDS/ IPS)</span></li>
</ul><span style="font-family: 新細明體;">對於企業正在運作的系統及服務,特別是已經被防火牆放行進入的封包,仍然存在許多資安的危險性,攻擊者可能會利用內部網路正常提供的服務進行入侵的動作。入侵偵測系統使用傳統竊聽(Sniffer)的技術,將經過入侵偵測設備的封包複製一份,並開始分析封包間的關聯來判定入侵的意圖。入侵偵測設備由於處理的是複製的封包,所以不用太去處理封包延遲的問題,但由於入侵偵測設備常至於所有流量都會經過的地方,又要作大量模式的判別,因此,需要強大的計算力量。入侵偵測的也需要一個能保持更新的入侵模式庫。而另外一種入侵防禦(系統IPS)與入侵偵測系統(IDS)的差別在於入侵防禦會主動的斷絕經過入侵模式判定有問題的封包流。<br />
</span><br />
<ul><li><span style="font-family: 新細明體;">弱點掃描 (vulnerable scanning)</span></li>
</ul><span style="font-family: 新細明體;">前述IDS及IPS是以被動攔截方式來進行資安的防護,弱點掃描則主動的對網路節點內的網路服務進行測試,以各種已知的弱點來測試網路服務是否有需要修補的地方。弱點掃描簡單的來說,是以駭客的思維來進行網路服務的檢核。和IDS/IPS不同的地方是作網路服務安全的檢核不需要處理的大量的流量,因此弱點掃描也常以套裝軟體的形式存在。<br />
</span><br />
<ul><li><span style="font-family: 新細明體;"> 防毒牆</span></li>
</ul>一般網路病毒的來源主要是由網頁或是信件夾帶的,因此防毒牆得掃描完整的的網頁或完整的信件來防止病毒,它作用的方式類似防火牆的Application proxy,能以代理的方式取得內外連線時應用程式完整的資料。由於在網路節點眾多的地方應用程式的流量也非常大量,因此防毒牆需要在有相當大運算能力的主機來同時進行大量的應用程式代理連線。<br />
<div class="MsoNormal"><span style="font-family: 新細明體;"><br />
</span><br />
<span style="font-family: 新細明體;"><strong>效能用途:</strong></span><br />
<br />
<ul><li><span style="font-family: Times;">頻寬保證設備(QoS equipment)</span></li>
</ul><span style="font-family: Times;">傳統的TCP/IP協定下的網路交通流量其多個連線時的頻寬分配機制是公平的,這會造成許多不重要的流量佔用了大量的頻寬,頻寬保証設備主要能依照頻寬管理政策的需求來作頻寬的分配。例如企業可以在一條1M的線路決定https協定的外送流量優先於smtp,並且保障其至少有512k的頻寬。頻寬管理設備大多使用某種封包佇列的排程演算法來達到頻寬分配的功能。<br />
</span><br />
<ul><li><span lang="EN-US" style="font-family: Times;">負載平衡設備 ( Load Balanc</span><span lang="EN-US" style="font-family: 新細明體;">e equipment)</span></li>
</ul><span style="font-family: 新細明體;">負載平衡設備分為對外網路連線的負載平衡設備和專對伺服器叢集來作的負載平衡分配。</span><br />
</div><div class="MsoNormal"><span style="font-family: 新細明體;">對外連線的網路分配能將內送及外送的流量分配到多條實體的ISP線路,通常其機制是以每個TCP/IP的連線(session)為單位,依量測線路的結果來分配較多連線到較佳的線路。專門針對伺服器叢集則是把依量測伺服器效能的結果來分配較多連線到較佳的伺服器。<br />
</span><br />
<ul><li><span style="font-family: 新細明體;">快取裝置 (Cache & Proxy equipment)</span></li>
</ul> 快取裝置針對重複性高且變動性低的Internet存取資料暫存在近端,以加快網路的存取。快取裝置主要針對Web相關的應用,它類似防毒牆也必須以代理方式來作應用程式的中介連結角色,因此需要耗掉較多的CPU資源,而磁碟的容量和容錯機制在這類設備上也相對重要。<br />
<br />
<br />
<span lang="EN-US"></span><br />
<span lang="EN-US"></span><span lang="EN-US" style="font-family: Times;"></span><br />
<span style="font-family: 新細明體;"><strong>接取及傳送用途:</strong></span><br />
</div><div class="MsoNormal"><ul><li><span style="font-family: Times;">交換器(Switch)</span></li>
</ul><span style="font-family: Times;">交換器主要能把封包在區域網路中轉送,使得從某個阜口來的封包能送到另一個阜口的電腦或設備。交換器依照可以處理TCP/IP不從層表頭(header)的能力來區分,能針對Ethernet 的表頭來作轉送的是第二層的交換器。能針對IP 層表頭來作轉送的是第三層的交換器,這通常用在企業的骨幹上。能針對TCP,UDP等層以上表頭來作轉送的是第四層交換器以上的設備。第二層及第三層交換器由於需交換大量的流量,因此多用硬體晶片(ASIC)來作主要的演算。第四層以上的交換器則針對專屬的流量來作封包的轉送及導引,如判別TCP某些特定的port來轉送到不同的機器。</span><br />
<ul><li><span lang="EN-US" style="font-family: Times;">路由器(Route</span><span lang="EN-US" style="font-family: 新細明體;">r)</span></li>
</ul><span style="font-family: 新細明體;">傳統上路由器透過路由器之間路由協定交換的路由表,來決定封包下一個目的地,因此路由器都要能支援多種的路由協定及相關的演算法。由於骨幹上的路由資料很大,因此會配合ASIC晶片來作高速的演算。<br />
</span><br />
<ul><li><span style="font-family: 新細明體;">無線接取點(Wireless Access Point)</span></li>
</ul>目前常見的無線網路有 802.11a/b/g/n等協定,無線接取點就是要將支援這些協定的網卡<br />
連結在無線的通道(channel)上,並在這個酬載通道上進行Ethernet的訊息封裝和交換。無線接取點通常也會包含網路第三層以上如IP分享器的功能,如動態IP發放或位址轉換等功能。<br />
<br />
<span lang="EN-US"></span><br />
<span lang="EN-US"></span><br />
<span style="font-family: 新細明體;"><strong>結合影音等通訊用途</strong><span lang="EN-US"><strong>:</strong> </span></span><br />
</div><div class="MsoNormal"><span style="font-family: 新細明體;"><br />
</span><br />
</div><div class="MsoNormal"><ul><li><span style="font-family: 新細明體;">IP電話(IP Phone)</span></li>
<li><span style="font-family: 新細明體;">視訊設備(Video Conference)</span></li>
</ul></div><span style="font-family: 新細明體;">主要是支援聲音及影像壓縮編碼,並依特殊的應用層協定如 SIP, H323來作傳輸</span>的設備。由於IP phone要與傳統的電話交換網路介接,因此這也使數據通信(Datacom)和電信通信(Telecom)不在有清楚的分水嶺。另外由於要支援多人的應用服務,因此IP電話及視訊會議設備不只是端對端的設備,這中間會透過如SIP 閘道器及MCU(視訊會議服務器,Multipoint Control Units)等設備來進行連線建立的協調工作。總體而言,和通訊系統連結上的裝置都有著非常複雜的應用層協定得支援。<br />
<br />
<strong><span style="font-family: 新細明體;">其他用途</span> </strong><br />
<br />
<span style="font-family: 新細明體;">局端及電信設備:</span><br />
<span style="font-family: 新細明體;">近年來數據和電信兩種服務已經相互結合,因此許多的設備介於兩者之間,如ADSL Router,ADSL的局端設備DSLAM,和3G網路中相關的設備等。</span><br />
<br />
<span style="font-family: 新細明體;"><span style="font-family: 新細明體;">傳統設備網路化設備:</span></span><br />
<span style="font-family: 新細明體;"><span style="font-family: 新細明體;">如監控設備(Survillance system)或是終端機切換設備(KVM)</span>近年來也大量的網路化</span>tsuyipenghttp://www.blogger.com/profile/08729171029596398441noreply@blogger.com0tag:blogger.com,1999:blog-5416315713973651454.post-21246129480198228712009-09-14T02:19:00.000-07:002009-10-12T07:12:09.542-07:00設計產品的一些共同考量這裡主要討論是Linux和硬體結合的一個完整資訊產品的開發諸如多媒體播放裝置、網路閘道器、監控裝置、伺服器裝置及個人通訊裝置...等等。這些資訊產品在設計時有一些共同的項目要考量的項目,我們舉個實例開始吧。<br />
<br />
R公司是國內一家工業電腦(IPC)製造廠,它的客戶涵蓋了伺服器,網路設備,監控設備,車用多媒體及通訊設備等等。由於市場競爭激烈,該公司研發副總 Joe決定提供類似Turn key(即幫客戶做好產品雛型)的解決方案給客戶至少讓客戶有個可以快速開發及測試的環境,但是由於產品種類繁多,Joe決定進行知識管理的工作,統合各項TurnKey解決方案的共同技術模組,這個工作交給了資深工程師 Wayne進行。Wayne對過去的各個雛型和正在接觸的客戶需求做了一些整理,他規劃出了這些產品需要的共同技術區塊如下列項目:<br />
<br />
<ul><li>儲存方式、防盜拷機制及系統升級的規劃 </li>
<li>使用者操作方式及介面的規劃 </li>
<li>主要系統運作的軟體架購 </li>
<li>其他輔助功能的規劃包含 : 開關機流程,自我診斷及錯誤回覆方式,電源管理,安全管理等 </li>
</ul>這些規劃我們一個架構圖來展現,現在分別討論如下:<br />
<a name='more'></a><br />
<br />
<b>1. 儲存方式及防盜烤機制的規劃</b><br />
<br />
儲存媒體通常有機械式硬碟和快閃磁碟兩種方式,一般而言,除非有大量儲存的需求,如伺服裝置,大部分的Linux產品的客戶都使用快閃磁碟如CF(compact flash card或DOM(Disk on Module)的介面。快閃磁碟由於沒有機械性的機制,因此比較不容易故障,同時速度也較快。但它也有寫入次數限制(通常為十萬次至百萬次)及容量較小的問題。使用快閃磁碟的系統通常會搭配記憶體磁碟(Ram Disk)的方式,將常用的執行根目錄系統放在記憶體磁碟,其他的目錄使用外掛方式,常用的儲存規劃方式如下:<br />
<br />
系統區: <br />
<br />
包含了核心和根目錄檔案系統,主要讓boot loader載入的 [後面的章節再介紹<br />
這些機制]作業系統核心及操作環境<br />
<br />
設定檔區: <br />
<br />
把常更改的設定檔放在這<br />
<br />
<br />
主要軟體區: <br />
<br />
這是進行這個裝置或設備主要功能的軟體,例如用於監控裝置,軟體放的<br />
就是儲存及傳送影音的程式組合<br />
<br />
<br />
系統回復區: <br />
<br />
擺放出廠時的軟體和系統,因為系統區和主要軟體區的軟體可能會因為更<br />
新而使內容改變<br />
<br />
<br />
外掛檔案系統區: <br />
<br />
<div>使用快閃磁碟下的架構,常會使用Ram Disk的機制[後面的章 節再介紹這<br />
些機制] 在開機時載入必要得軟體,但也許有一些較少使用但卻體積龐大的 <br />
軟體,會放在快閃磁碟區的檔案系統需要時才載入,通常這些外掛檔案系<br />
統區常有壓縮的機制。<br />
<br />
<br />
以上提到的這些區域也可以和磁碟的patition分割來結合,舉個例子來說,系統回復區可以放在一個用唯讀檔案系統的patition作為保護,以免寫入造成開機系統的損害。<br />
和儲存的規劃伴隨要考量的就是防拷機制的規劃和軟體防盜的機制。防拷機制主要在防止整個磁碟在做拷貝後就可以在另一台相同的硬體上使用。這種防拷機制的設計通常會在磁碟上面存在一個認證,在和搭配運轉的硬體出貨前,把這台硬體一個獨一性的識別做成認證放在磁碟上面,每次在開機程序中都會檢查磁碟上的認證和硬體符不符和,符合後才會啟動其他功能。但是由於硬體的獨一性也可能可以被仿造,如網卡的mac address,因此R公司考慮提供一個有獨一ID的小型晶片在主機板,當作一個加值的防護機制給客戶。<br />
另外就是軟體的防盜機制,主要防止當磁碟被置放在其他讀取裝置時,主要的軟體能直接被讀出使用,因此,放在主要軟體區的軟體通常會由一種加密機制保護,在作業系統載入後,才解密並載入使用。主要軟體的認證機制除了防止由磁碟直接讀取外,另外可能和實際產品的授權機制有關,有時會搭配更複雜的認帳碼或遠端授權,但是由於R公司提供給客戶的雛型設計並不涉入客戶端較複雜的考量,因此提供一種軟體區的加密機制就足夠了。<br />
最後這些加密的機制又會和系統升級的機制結合,透過網路如Http協定,讓使者替換軟體區或系統區內的檔案進行系統的升級。<br />
<br />
<br />
<b>2. 使用者操作方式及介面的規劃</b><br />
<br />
公司的客戶裝置主要有兩種,一種是以遠端登入的網路方式操控,如網路設備或簡易伺服器使用Web登入來操作的方式,一種是直接操控裝置輸出的螢幕,如多媒體導覽設備。由於使用者介面(GUI)是會隨實際產品應用大幅修改的,因此提供的雛型操作介面最好是較多人會開發的語言或系統環境,便於客戶接手開發。<br />
<br />
在Web介面方面,除了需要 Web server ,CGI解析環境,如何和後端的軟體溝通至為重要。一個最簡易的架構就是操作介面從使用者的輸入產生設定檔,然後操作介面再呼叫後端的軟體來解析設定檔並執行對應的工作。這個作法對於使用者和設備的操作介面互動不甚頻繁的應用大致OK,但對於如直接在Web介面看動態影片或是使用Web觀看動態的統計圖表的大量互動則需要更進階的Web技術。<br />
<br />
在直接以本機螢幕來操控的操作介面,會利用X視窗環境來加速開發,在X視窗環境已經有許多成熟的的API架構來輸出圖形或影像。通常使用這樣方式的系統會與使用者有較高的互動性。<br />
<br />
Web技術及X視窗的開發技術將在後面的章節討論。 <br />
<br />
<b>3. 主要系統運作的軟體架購</b><br />
<br />
不同應用產品的的軟體功能雖然不同,但卻有一些架構的相似性。這個架構通常是一個多層次(multi-layers)的軟體架構。這個多層次的抽象架構通常由負責處理與使用者操作互動的模組在最外層,而能處理使用者設定並控制產品功能及反應的伺服模組在中間層。這個中間層的伺服模組扮演著非常中要得角色,它控制著產品的主要功能,包含了控制流程和資料流程的輸出輸入。這個伺服模組常由多個行程協同運作。而在最下層的就是與作業系統核心直接互動的核心模組,有時候扮演著硬體驅動程式角色。因為產品的多樣性R公司在這邊能為其客戶著力的地方不多,但由於每個產品都有網路功能的需求,因此Wayne將建議提供一個網路功能包含設定,運作,及硬體控制的一個多層次軟體架構模組範例。<br />
<br />
由於軟體架構牽涉到了許多系統程式的技術,如行程間的溝通不同的方法,Client-server socket 不同的I/O模式,驅動程式架構,這些技術的選擇將影響效能及開發的難易度,將在後面的章節作介紹。<br />
<br />
<br />
<b>4.其他輔助功能</b> <br />
<br />
4.1 開關機流程的規劃<br />
<br />
</div><div>Linux作業系統開機有一定的程序,從硬體的驅動,軟體的認證到啟動該產品需要的服務都要些時間。但對於一個資訊產品來說,使用者把Power打開,希望能盡快得應用,因此除了規劃開機後的啟動流程外,如何減少linux開機的時間也是一個重要的issue。RISC的機器省去了BIOS的許多檢查時間,因而獲得了較快得開機時間,在CISC的機器常常BIOS的啟動檢查就要耗掉數十秒。如果客戶真的非常在意這段時間,可以導入把LINUX放入BIOS的相關計畫及技術。在關機流程方面,由於資訊產品常常有不正常關機的的機會,因此需要把儲存資訊管理好,使用快閃磁碟當系統裝置時,常會要求使用者確定要儲存時才會寫入,因此若是不正常關機只會載入最後一次有確認儲存的設定或資訊。許多裝置會掛載硬碟來儲存大量多媒體的資料,這時候就要選擇適合的檔案系統來處理這種情況。<br />
<br />
4.2 自我診斷及錯誤回覆方式的規劃<br />
<br />
系統必須確保能重複正確的運作,但是總有應用程序、作業系統資源或是作業系統核心及硬體產生狀況的時候,在錯誤回覆的設計通常即針對這三個層次。第一個層次,應用程序的錯誤通常可以用重新啟動來解決,可以把它放在作業系統的程序監控機制(如Init程序)來控管,而應用程序的錯誤原因通常需要應用程式自己紀錄重要的異常訊息,配合作業系統的系統日誌來紀錄或使用網路遠端導出。第二個層次若為資源的不足,就需要有資源監控的機制,對於CPU ,RAM ,DISK等資源設立臨界值來控管。更好得資源監控機制是還能找到佔用資源的程序,並能釋放資源。這些監控都是在作業系統的背景,由特殊的程序來執行。針對作業系統核心的錯誤,通常無法即刻的回復,但是當核心錯誤造成死當的情況時必須要使系統能自行重新啟動的機制,常常可以搭配硬體Watch Dog的晶片來協助。最後一個層次是硬體的問題,這通常有兩個不同程度的狀況,第一種是硬體的運作異常如溫度或風扇等等,這個方面的問題可以使用硬體監控的晶片搭配 Linux IPMI ( Intelligent Platform Management Interface) 的架構來作自動的報告及處理,第二種情況是硬體嚴重的錯誤,無法開機,這時候在網路或伺服器的產品有使用兩台機器即時備援的機制可以導入,但在其他的資訊產品就只有報修一途了。<br />
<br />
4.3 電源管理<br />
<br />
電源管理除了是一個環保規格的項目,在許多使用電池的資訊產品更是重要。電源管理目前有共同的規範及管理介面 : ACPI (Advanced Configuration and Power Interface)。資訊設備必須要讓使用者能夠設定ACPI支援的各種省電狀態,諸如關閉螢幕,關閉CPU,關閉週邊及系統暫存(Suspend)...等等。另外,更好得方式是系統可以在負載輕的時候運作在較不費電的頻率。ACPI的支援和硬體能力及產品本身的需求息息有關,例如網路的設備不會需要系統暫存的功能而對於家庭的多媒體伺服器則相對重要,因此R公司需要整理出不同的平台應用需要支援的項目。<br />
<br />
4.4 安全管理<br />
<br />
</div><div>現今大部分的產品都有網路的功能,因此也增加了系統安全的問題。但是太安全的系統又會造成使用的不便,另外使用者也需要相當多的知識來設定,有時候這是一件很難面面具俱到的問題。Linux作業系統本身就提供了很多Access Control 的l安全管理機制,可依產品的需要來設定,包含了 檔案的存取控制,網路封包的存取控制...等等都可以設定。另外,對於網路的癱瘓式攻擊(Deny of service)也可以設定網路使用量的上限來作控管。後面的章節再做詳細的介紹。<br />
<br />
<br />
------------------------------------------------------------------<br />
090922 first publish<br />
091023 modify storage issues<br />
<h1 class="title" style="-webkit-background-clip: initial; -webkit-background-origin: initial; background-attachment: initial; background-color: transparent; background-image: initial; background-repeat: initial; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; color: #ffffee; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 20px; padding-top: 15px;"> <br />
</h1></div>tsuyipenghttp://www.blogger.com/profile/08729171029596398441noreply@blogger.com0tag:blogger.com,1999:blog-5416315713973651454.post-56914804893549956462009-09-07T02:24:00.000-07:002009-11-03T07:36:19.472-08:00前言及編排內容<span style="font-family: Verdana; font-size: 13px;"></span><br />
<br />
<div style="margin-bottom: 0px; margin-top: 0px;"><span style="font-family: Times, 'Times New Roman', serif;">本出版品以產品規劃的角度來探討使用Linux來開發一個資訊產品所需的知識、技術及資源。讓我們舉個實例開始吧:</span><br />
<br />
</div><div style="margin-bottom: 0px; margin-top: 0px;"><span style="font-family: Times, 'Times New Roman', serif;"> S公司要開發一個類似數位相框的多媒體播放裝置,由於數位相框技術已經十分成熟,所以希望加上一些創新功能,例如一個連線播放功能可以播放遠端另一台同款式數位相框內容的功能。S公司的RD部張協理負責和行銷部一起規劃這個產品的規格,而研發部的陳經理則擔當本產品的架構師及這個產品team的leader。張協理請陳經理針對競爭者類似的規格作一些初步的規劃。陳經理接到這個工作時首先列下了一些問題</span><br />
<br />
</div><div style="margin-bottom: 0px; margin-top: 0px;"><ul><li><span style="font-family: Times, 'Times New Roman', serif;"> 要選擇什麼樣的硬體平台,CPU 速度? Ram大小 ? 儲存裝置的大小及種類 ? 哪些週邊要支援 ?</span></li>
<li><span style="font-family: Times, 'Times New Roman', serif;"> 使用者是如何操控這台設備?只能使用螢幕還是也可以使用遠端登入例如使用瀏覽器來操控</span></li>
<li><span style="font-family: Times, 'Times New Roman', serif;"> 儲存方式要如何規劃? 開機的系統、設定檔、影像資料、回復出廠系統檔案要如何安置</span></li>
<li><span style="font-family: Times, 'Times New Roman', serif;"> 開關機的流程要如何規劃?開機有哪些啟始流程? 關機又需要有哪些?</span></li>
</ul></div><div style="margin-bottom: 0px; margin-top: 0px;"><span style="font-family: Times, 'Times New Roman', serif;">接下他又針對Linux列了一些相關的問題</span><br />
<br />
</div><ul><li><span style="font-family: Times, 'Times New Roman', serif;">使用甚麼版本的核心?及甚麼樣的根目錄檔案系統? 由自己製作還是硬體供應商提供</span></li>
<li><span style="font-family: Times, 'Times New Roman', serif;">考慮單機下的功能時,軟體架構為何? 有哪些常駐程式(Daemon)?有哪些驅動程式(Driver) ? </span></li>
<li><span style="font-family: Times, 'Times New Roman', serif;">考慮網路相關的功能,網路服務如何提供?主從式的架構為何?</span></li>
<li><span style="font-family: Times;">單機下的常駐程式、驅動程式及網路服務的伺服程式彼此如何溝通?</span></li>
<li><span style="font-family: Times, 'Times New Roman', serif;">使用甚麼方式來做系統的自我診斷,紀錄,及回復<br />
<br />
</span></li>
</ul><span style="font-family: Times, 'Times New Roman', serif;">接下來他列了一些產品開發管理的問題</span><br />
<br />
<ul><li><span style="font-family: Times, 'Times New Roman', serif;">雛形預計功能和時程為何?</span></li>
<li><span style="font-family: Times, 'Times New Roman', serif;">如何切割模組和分工?概略的甘特圖為何?現有人力足夠否?</span></li>
<li><span style="font-family: Times, 'Times New Roman', serif;">如何整合到公司既有的版本管理系統,程式碼文件系統,錯誤追蹤系統</span></li>
</ul><div style="margin-bottom: 0px; margin-top: 0px;"><span style="font-family: Times, 'Times New Roman', serif;"></span><br />
<br />
</div><div style="margin-bottom: 0px; margin-top: 0px;"><span style="font-family: Times, 'Times New Roman', serif;">本出版品就是為了探討這些相關問題的內容及細節,不同於專在探討Linux系統的使用及Linux程式開發的書籍,本出版品以產品開發生命週期中各項的需求向讀者介紹所需的知識和資源,並將分類介紹不同型式的產品。將包含三大篇: 產品設計篇、作業系統技術篇及軟體開發管理篇。個篇預計內容如下:</span><br />
<br />
<strong><span style="font-family: Times, 'Times New Roman', serif;"> 產品設計篇</span></strong><br />
</div><ul><li><span style="font-family: Times, 'Times New Roman', serif;"> 設計產品的一些共同準則</span></li>
<li><span style="font-family: Times, 'Times New Roman', serif;">網路閘道器的設計規劃</span></li>
<li><span style="font-family: Times, 'Times New Roman', serif;">伺服器的設計規劃</span></li>
<li><span style="font-family: Times, 'Times New Roman', serif;">多媒體播放設備的設計規劃</span></li>
<li><span style="font-family: Times, 'Times New Roman', serif;">影音監控設備的設計規劃</span></li>
<li><span style="font-family: Times, 'Times New Roman', serif;">行動上網裝置的設計規劃</span></li>
<li><span style="font-family: Times, 'Times New Roman', serif;">手機及通訊裝置的設計規劃</span></li>
</ul> <span style="font-family: Times, 'Times New Roman', serif; font-weight: bold;">作業系統技術篇</span><br />
<div><ul><li><span style="font-family: Times, 'Times New Roman', serif;"> 重要參考資料書籍導讀</span></li>
<li><span style="font-family: Times, 'Times New Roman', serif;">Linux作業系統運作流程概念</span></li>
<li><span style="font-family: Times, 'Times New Roman', serif;">系統程式運作流程概念上</span></li>
<li><span style="font-family: Times, 'Times New Roman', serif;">系統程式運作流程概念下</span></li>
<li><span style="font-family: Times, 'Times New Roman', serif;">驅動程式運作流程概念上</span></li>
<li><span style="font-family: Times, 'Times New Roman', serif;">驅動程式運作流程概念下</span></li>
<li><span style="font-family: Times, 'Times New Roman', serif;"> TCP/IP網路程式運作流程概念</span></li>
<li><span style="font-family: Times, 'Times New Roman', serif;">系統安全性</span></li>
</ul></div><div><div style="margin-bottom: 0px; margin-top: 0px;"><span style="font-family: Times, 'Times New Roman', serif; font-weight: bold;"> 軟體開發管理篇</span><br />
<br />
<ul><li><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">開發環境及除錯環境</span></li>
<li><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">建構程式碼管理環境</span></li>
<li><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">研發及專案管理</span></li>
<li><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">測試管理維運管理</span></li>
</ul><br />
</div><div><span style="font-family: Times, 'Times New Roman', serif;"></span><br />
<br />
</div></div>tsuyipenghttp://www.blogger.com/profile/08729171029596398441noreply@blogger.com0