2013年10月31日 星期四

歡迎光臨 !!

這是一個 分享 知識、技術 的園地,
也是 筆記自己過往的紀錄,
免的年紀大,會忘記!! 囧~~~
以上 部落格主人 AYO 阿佑

感謝各位網民的支持與愛護,
今後仍然請各位大大們,經常瀏覽敝站  淚奔~~~

============================================
更新日期: 2013/08/30
賀~~~ 開站 1558 天,瀏覽累計人數終於超過 84 萬人
統計資料
累計人數:840383
發表文章:202
回應數量:1239
留言數量:1855
============================================

更新日期: 2013/08/02
賀~~~ 開站 1531 天,瀏覽累計人數終於超過 83 萬人
統計資料
累計人數:830425
發表文章:202
回應數量:1229
留言數量:1845
============================================

更新日期: 2013/07/11
賀~~~ 開站 1509 天,瀏覽累計人數終於超過 82 萬人
統計資料
累計人數:822305
發表文章:202
回應數量:1220
留言數量:1839
============================================


Embedded System_嵌入式系統淺談


================================================
Embedded System_嵌入式系統淺談
by AYO 阿佑

================================================
前言:

Embedded System 嵌入式系統,隨著手機進入 3G 新時代,
而逐漸的熱門,甚至很多人爭相進入這一行,


但是 Embedded System 其實很早就有了唷!! 並不是新名詞,
所以並非新奇的玩意!


Embedded System 嵌入式系統,其實只是個說法,並非真正的執行方式,
請務必要弄清楚喔! 不然.. 有可能被內行人笑話的!


好比說.. 我要賺很多很多錢,享受好的生活! 這是說法!
拼命努力的工作、兼差、投資 等等,則是 實際上的執行方式!


所以.. Embedded System 這是一種說法,並非實際執行方式!
那什麼是 Embedded System 實際執行方式呢?
以下咱們就來談一談!


================================================
Embedded System 嵌入式系統,到底是什麼?

嵌入式系統(Embedded System),

是一種「完全嵌入受控器件內部,為特定應用而設計的專用計算機系統」,

根據英國電器工程師協會( U.K. Institution of Electrical Engineer)的定義,

嵌入式系統為控制、監視或輔助設備、機器或用於工廠運作的裝置。

與個人計算機這樣的通用計算機系統不同,

嵌入式系統通常執行的是帶有特定要求的預先定義的任務

Embedded System 應用範圍為何呢?

應用範圍其實超級廣泛,3G手機、機上盒(MOD、STB)、
智慧型家電、Switch、Router、
或者是 Live CD (WinXPE WinCE Knoppix Ubuntu)、PDA、
車用導航設備 等等...數不勝數...


或者這麼說,並非標準的電腦主機設備,但是有螢幕、有輸入設備、
可以提供人類操作的設備,幾乎都是 Embedded System 囉!


由此可知,Embedded System 應用範圍超級廣,
也有很多讀者問 AYO阿佑 想投入這行,到底要準備些什麼呢??


這麼說好了.. 由於 Embedded System 範圍廣泛,
得問您自己 對哪一種 Embedded System 有興趣,
也許您的興趣在 3G手機,也許您的興趣在 Robot 機器人,
那開發的範疇,就會不太相同囉!


Embedded System 需要具備哪些知識、技能,才能入門呢?

這麼說.. Embedded System 絕對脫離不了自行開發,所以 100% 要寫程式,
而寫程式的話.. 開發環境要最單純,各類平台接受程度最高,又是可攜式的...
就是 C Language (C 語言) 囉!!


但是 AYO阿佑 建議,努力學習 C 語言即可,C++ 到不太有必要!

理由:
1. 您會 C 語言,到 C++環境,當然能夠開發,並且沒有不同
   (因為 C++ 開發環境,向上對應 C 語言)


2. 您會 C++,到 C 語言開發環境,並不是不能開發,會變的綁手綁腳,
   因為 C++ 有許多獨有的 Library,C 語言開發環境,並沒有預設含入,
   所以反而會不順


3. Embedded System 定義已經講清楚了! 非電腦主機環境,
   甚至有些只有很小的 EEPROM,電可擦拭可編程唯讀記憶體
   (Electrically-Erasable Programmable Read-Only Memory),
   所以不可能塞很多東西,因此不要的東西,
   或者不常用的套件(逼著找常用的套件不常用的套件),
   因為這樣所以變得要不斷的對程式瘦身、微化


Embedded System 會使用哪些作業系統呢?

基本上來說 Windows、Linux 都有人用,
但是 Windows 使用的話,需要付費,因此很多做 Embedded System 的廠商,
會選擇使用 Linux,因此 業界 Linux 比較多人用,當然入門門檻相對更高!


Windows 例如說..
Windows CE、Windows Mobil(手機、PDA 用的 Embedded System)


Linux 例如說..
Ubuntu(這已經是相當完整的成品)、
Linux Android (常用於手機的 Embedded System)


由此可知,兩大作業系統家族,都是有人用的,
甚至 iPhone 因為此產品是 Apple 公司的,
因此採用的是 自家的 Mac (麥金塔架構)


但是以泛用性來說.. 擇一投入的話,
應該是 Linux 比較好,相對的門檻會更高


Embedded System 想要研究? 開頭第一步怎麼做?

基本上正式入門第一步,會開始寫 驅動程式,沒錯! 就是驅動程式!

但是因為 寫驅動程式 門檻太高,甚至這啥東西? 驅動程式 搞不好還沒聽過!

所以 AYO阿佑 會建議 :

1. C 語言 練起... 這最簡單!
2. Linux、Windows 擇一,完全搞清楚開機架構,
   如何從電源啟動、開機過程、到開機整個完成
3. 再來寫驅動程式


由於 Embedded System 涵蓋範圍很廣,
一般都變成需要知道 電子領域、電腦領域、甚至電機領域,
單單這三個各自的領域就都很廣泛了,更別提要跨領域了解!


萬事起頭難!
會建議從大家比較常看、常接觸的,電腦、電子領域開始,會最 OK 囉!


================================================
篇後語:
呼~~~這篇寫好長!! 不過..這僅僅是皮毛淺談喔!!
Embedded System 可以講的東西太多!


AYO阿佑 充其量也只是 後學末進,
很多功力高深的前輩,搞不好看到這篇文章,
還會笑 AYO阿佑 說,菜鳥~~ 寫這些玩意~~ 是要來搶飯碗嗎!! 囧~~~~


AYO阿佑 懂得也不是非常多 (跟很多前輩相比,在下仍然是 菜鳥!)
只是希望短短一篇文章,
能夠讓 完全不懂 Embedded System 的讀者,能夠有個初步的了解!


了解了大概狀況之後! 再來衡量 您是否想入行! 或者想接觸!
因為蠻多讀者對 Embedded System 的了解,
以為這只是一個軟體,還是以為這是一個工具而已!


NO... Embedded System 是一個橫跨多個專業領域的一門學問,
可以說是一個 ""冰山"",別以為 水面上看起來是一個小冰塊,
撞上去! 可以連 號稱永不沉沒的 鐵達尼號都沉了


結論有 三:
1. Embedded System 跟山一樣高大,學習務必小心為之,別摔著了!
2. Embedded System 是一個說法,並非實際方式
3. Embedded System 是一個高深的學問,別小看它! 會被前輩們笑話的!


================================================
歡迎轉載,但請務必說明原出處

歡迎參觀 AYO 阿佑 個人的電腦技術園地
http://tw.myblog.yahoo.com/kain-0913/

RootKit 是什麼? 詳細解釋


================================================
RootKit 是什麼? 詳細解釋
by AYO 阿佑

================================================
前言:
RootKit 這其實原本是善意的一種技術,但是自從被公開常用之後,
變成 濫用,因此 RootKit 變成一種 惡意程式的代名詞!!


AYO阿佑,會寫 RootKit 的解釋名詞,當然!! 因為這是此系列的首部曲囉!
也就是第一章、Chapter One


結論 先給 讀者、網友們囉!!
RootKit 目前被看成 惡意程式的一種,
類似 特洛伊木馬,trojaned system commands,
意思是說 RootKit 儘可能無法讓操作者、甚至管理者發現的狀況下,
私自開啟某些 (一個、或者 數個) 後門、漏洞,
讓 始作俑者 可以藉此達到 某些程度的操控目的


目前則 RootKit 被認為是此類的惡意程式代名詞囉!
RootKit 詳加解釋如下囉!


以下內文取材自 維基百科,http://zh.wikipedia.org/zh-hant/Rootkit
(維基百科 真的是好網站呀! 解釋的很仔細,
AYO阿佑 也不用拼命寫、拼命解釋)

================================================
RootKit 是什麼? 詳細解釋

以下內文 取材自 維基百科
取自 
http://zh.wikipedia.org/zh-hant/Rootkit

Rootkit
維基百科,自由的百科全書


Rootkit是指其主要功能為隱藏其他程式行程的軟體,
可能是一個或一個以上的軟體組合;


廣義而言,Rootkit也可視為一項技術。
最早Rootkit用於善意用途,
但後來Rootkit也被駭客用在入侵和攻擊他人的電腦系統上,
電腦病毒、間諜軟體等也常使用Rootkit來隱藏蹤跡,


因此Rootkit已被大多數的防毒軟體歸類為具危害性的惡意軟體。
Linux、Windows、Mac OS等作業系統都有機會成為Rootkit的受害目標。


在現代操作系統中,應用程序不能直接訪問硬件,
而是通過調用操作系統提供的接口來使用硬件,
操作系統依賴內核空間來管理和調度這些應用。


內核空間由四大部分組成,
分別是:


進程管理(負責分配Cpu時間)
文件訪問(把設備調配成文件系統,並提供一個一致的接口供上層程序調用)
安全控制(負責強制規定各個進程的具體的權限和單獨的內存範圍,

                  避免各進程之間發生衝突)
內存管理(負責進程運行時對內存資源的分配、使用、釋放和回收)。


內核是一種數據結構,
Rootkit技術通過修改這些數據結構來隱藏其它程式的進程、文件、
網絡通訊和其它相關信息(比如註冊表和可能因修改而產生的系統日誌等)。


2005年的Sony BMG CD防拷醜聞即因Sony被人揭發暗中使用了
Rootkit技術來防止盜版,有侵害用戶隱私之嫌,並可能對用戶系統造成威脅,
因而引發軒然大波。
Rootkit一詞也從此事件開始更廣為一般大眾所知。


歷史

Rootkit一詞最早出現在Unix系統上。
系統入侵者為了取得系統管理員級的root權限,
或者為了清除被系統記錄的入侵痕跡,
會重新組譯一些軟體工具(術語稱為kit),
例如ps、netstat、w、passwd等等,這些軟體即稱作Rootkit。


其後類似的入侵技術或概念在其他的作業系統上也被發展出來,
主要是檔案、行程、系統記錄的隱藏技術,以及網路封包、

鍵盤輸入的攔截竊聽技術等,許多木馬程式都使用了這些技術,
因此木馬程式也可視為Rootkit的一種。

================================================
篇後語:
應該對 RootKit 有一定程度的了解了吧! 當然這篇教學,是首部曲,
之後應該 AYO阿佑 會持續說明,要如何偵測、防止 等等的細節,
同時因為如此..所以必須先行說明 RootKit 是什麼??
才能讓讀者了解,因為這樣 所以才要去防制囉!


================================================
歡迎轉載,但請務必說明原出處

歡迎參觀 AYO 阿佑 個人的電腦技術園地
http://tw.myblog.yahoo.com/kain-0913/