2014年4月28日 星期一

Virtualization虚擬化技術?為什麼要使用虛擬機器?

現代的伺服器效能的相當好,如果只拿來當作一台主機時常浪費了很多資源。所以就有了虚擬化技術。但是虚擬化技術常常版本一堆分不清楚。我們簡單的來想,虛擬機器的終極目標就是要把一台機器當作多台機器來用。但是發展過程中常會遇到有一好就沒有兩好。所以因應不同的需求就開發出不同的版本。但現今在各種技術截長補短下可說是虛擬化技術越來越好。正如汽車一樣,純油的和純電的各有優缺點,所以就有Hybrid的汽車。虛擬化也一樣。所以我們因該先了解一些技術或名詞,再去選我們需要的產品。

硬體支援虛擬化的技術(CPU,Memory,IO Driver)。
Intel虛擬化技術
早期的x86處理器上並沒有虛擬化的設計。所有在x86上的虛擬化都須靠軟體來實現。
效能上可想而知。後來才有intel虚擬化技術(Intel Virtualization Technology)。
http://www.intel.com/cd/business/enterprise/apac/zht/238198.htm

Hypervisor(最重要的概念)
超級管理者,顧名思義就是要管理。管理什麼? 就是管理虛擬機器和硬體。或著說他(program)去管理很多的作業系統如何去存取一個實體或物理的主機。

目前有兩種形式的超級管理者(two types of Hypervisors)
type 1. Bare metal or native hypervisors
type 2. Embedded or hosted hypervisors

type 1. Bare metal or native hypervisors
超級管理者類似作業系統直接安裝在硬體上面。其他Guest作業系統再架在上面。
Guest OS1
Guest OS2
Hypervisor (VMM)
Hardware

Host operating system: 不需要
Guest operating system: 需要
例如VMware vSphere Hypervisor
優點: 直接管理硬體,較快速且較有效率。較安全。錯誤回復較快。
缺點: 較難安裝。硬體相容性低。

type 2. Embedded or hosted hypervisors
超級管理者類似一個程式直接安裝在Host作業系統上。其他Guest作業系統再架在上面。
Guest OS1
Guest OS2
Hypervisor (VMM)
Host OS
Hardware

例如VirtualBox或VMWare Workstation安裝在Windows或Linux上。
Host operating system: 需要
Guest operating system: 需要
優點: 安裝容易。硬體相容性高(因為作業系統已處理硬體相容性)
缺點: 效率較差且速度較慢(管理還要透過作業系統)。錯誤回復較慢(開完host os還要一個個打開guest os)。

全虛擬化 (Full virtualization)
Guest operating system不用更改作業系統核心且完全不知道自己在虛擬化的環境。
例如windows無法修改作業系統核心,所以當作虛擬機器是屬於全虛擬化。
優點: Snapshots,clone容易。
缺點: 全都要靠Hypervisor管理和監控,造成效能下降。

半虛擬化 (Para virtualization)
修改作業系統核心使Guest operating system知道自己處於虛擬化環境中,減少Hypervisor的負荷。
優點: 效能比較好。
缺點: 不是所有系統可改核心。

2014年4月27日 星期日

iphone,ipad 的 重置 與 備份

<<重置所有設定>>
重點在重置設定 ,一些設定會回復預設。例如wifi和定位的資料都會被清除。
至於一些雲端的輸入帳號,郵件帳號。App Store帳號都不會被清除。



<<清除所有內容和設定>>
所有內容都沒了,就像新買的手機一樣。還有一個方法可以達到此效果。
連接電腦選擇: iTunes 回復iPhone


<<送修或換手機時要做的備份>>
連接電腦iTunes備份與回復

這裡的備份的好處,除了以下平常隨時備份的內容外。可以備份:
  • 所有設定
  • 訊息
  • 通話紀錄
  • 部分的App


<<養成平常隨時備份的習慣>>
  • 郵件用雲端的
  • 聯絡資訊用雲端: iCloud 或 Google聯絡人
  • 行事曆用雲端: iCloud 或 Google日曆
  • 提醒事項用iCloud
  • Safari雲端iCloud,也可用Google Chrome同步書籤
  • 備忘錄用iCloud
  • 照片用iClud或Dropbox
  • 文件與資料用Dropbox

<<Line 的備份>>
設定電子郵件帳號
可備份內容
・好友
・群組
・個人資料
・群組留言板的資訊
・購買的付費貼圖
・個性簽名
・主頁內的投稿內容
・動態消息的內容

無法備份內容
・聊天訊息

<<聊天訊息的備份方法>>
1) 啓動LINE
2) 點選位於手機畫面下方的「聊天」圖示,並選擇您希望備份的聊天室名稱
3) 點選「・・・」(位於畫面右上方)後,按下「聊天設定」
4) 選擇「傳送聊天記錄」
5) 郵件軟體啓動後,聊天記錄將以文字檔夾帶,請於收件人的欄位內輸入用來接收的郵件帳號
6) 傳送郵件



2014年4月19日 星期六

iphone personal hotspot(個人熱點的問題)

很多人用了android的熱點基地台都蠻好用的,只要一開啟,所有設備打開wifi就會搜尋到android的ssid。其實只要是wifi基地台廣播(broadcasting)ssid都是要耗電的。

省電的原因
iphone基於省電的原因。如果你離開個人熱點畫面或手機睡眠,iphone只會再廣播90秒鐘。若沒有設備來連線,iphone停止廣播。

正確使用方法
需要有設備連線時,請打開到個人熱點連線畫面。連線後只要你設備(remain on)有在用就可以一直保持連線。但像是ipad也是一關起來就睡眠,所以打開時要重做打開iphone hotsopt screen。

結論
當然這個省電做得很好。但是應該可以是設定開啟與否。因為很多時候我們把手機當基地台的時候都是插電或插上行動電源的。

2014年4月15日 星期二

加密(Encryption),密鑰key(解碼表)與演算法(algorithm)


jack變成 kbdl就是加密。加密的解碼表(密鑰key)是:"英文字母的下一個"。是用古老的一種很簡單的演算法cipher(改變字母順序)來解釋。

j -> k
a -> b
c -> d
k -> l

加密的種類
對稱式加密(Symmetric Encryption),加密和解密時使用相同的密鑰key(解碼表)

排列組合
對稱式加密密鑰key(解碼表只有一種,但演算法可以有不同的組合。比方說cipher(改變字母順序)也可以是改變字母位置。
jack->jkac
也可以交替使用。所以演算法本身可以有排列組合。cipher 排列組合4種。以數位表示2位元,2的2次方。

常見的對稱加密演算法有DES、、AES(128位元)、Blowfish、IDEA、RC5、RC6(128位元)。

對稱式加密傳遞網頁不適用 

例如,你在自己網頁上密碼打jack 加密傳出去,然後在電子信號還沒到伺服器前擷取。得到的字母是kbdl ,你就知道加密的演算法是"英文字母的下一個"。所以你去擷取別人的信號,就可以破解了。(雖然規則不會那麼簡單,但是還是有規則)


非對稱式加密(Asymmetric Encryption)

你加密的方式是,先去伺服器要一份加密方法表(publid key)。第一次要你加密的方法是"英文字母的下一個"。第二次要你加密的方法是"英文字母的下三個"。解碼時不同的連線有不同的方法表(private key)。你擷取時就很難破解。排列組合變多了。

排列組合
非對稱式加密除了演算法本身可以有排列組合多了不同密鑰key(解碼表)的排列組合。如上cipher的加密,規則2種。0代表英文字母的下一個,1代表"英文字母的下三個"。所以加密所需的位元數只要1個bit。兩種排列組合。如果8bit就有256種排列組合。

RSA演算法
非對稱式加密常用RSA演算法。演算法本身可以有1024bitt加密。加上網頁傳遞密鑰key加密(SSL)最高為128bit。以現有通用技術,破解得花上兆年時間。

加密解密的時間
基本上對稱式加密所用的演算法加密處理時間較短。但也可以複雜化。變成時間長難破解。可是加密解密的時間也很重要。難破解,但要花很久時間加密。也很難被接受。所以必須取得平衡點。

為何擴大機和喇叭要阻抗匹配?

為何擴大機和喇叭要阻抗匹配?

高阻抗喇叭
    高阻抗喇叭通常會有匹配變壓器(OPT),用在PA(public address)廣播系統。因為要一條線拉出去並聯很多喇叭或很遠,所以擴大機的喇叭輸出端會選擇0-100V高壓的端子。才有辦法推。如果喇叭不加裝變壓器,只接一兩三個喇叭可能會燒掉。
    但是如果多並聯幾個不就平均分配電壓和電流,計算好的話不會燒掉。理論上是如此,但並聯阻抗(沒OPT還是有阻抗)不會平均,會越變越小 。所以後面的喇叭還是會燒掉,然後往前全燒掉。
    如果PA廣播系統用低阻抗喇叭。就需要計算線路阻抗,且要並、串聯運用,因並聯會使阻抗越變越小,而串聯是使阻抗越變越大。

高阻抗喇叭阻抗匹配
先安裝匹配變壓器(OPT)(拿50w用)

p=v ² /R

假設一個 柱型喇叭所測得的阻抗值(R)為200Ω(20*10)
擴大機輸出電壓為100V

得知p(功率)=100²/200 = 50W

這樣如果擴大機的總功率是360W,柱型喇叭就不會並聯超過7支。(7*50W=350W)



2014年4月2日 星期三

在資料庫中找出重複的資料

select 中 group 是把資料相同的欄位群組起來,也意味著那個欄位相同的資料就不會重複出現。

用法: select * from table group by duplicateColumn

把使用過或群組過得資料找出來,就等於找出重複的資料。所以要使用 HAVING count(*) > 1 (資源被使用次數大於 1 )

用法: select * from table group by duplicateColumn HAVING count(*) > 1

但列出的只是那個欄位重複的資料,並無法把所有重複的資料列出。意思是重複的資料已被群組,所以只有一筆。

這時要列出所有重複必須在加上inner join方法

select table.duplicateColumn
from table
inner join (select duplicateColumn from table group by duplicateColumn HAVING count(*) > 1) DUP
on table.duplicateColumn = DUP.duplicateColumn

此時就會列出所有相同的資料。

但想找的是重複又彼此接續的料又如何?
要使用別名成兩個table在比較上下列
select first.*
from table as(可省略) first
left join table next
on first.id = next.id + 1
where first.duplicateColumn = next.duplicateColumn

但問題是第一筆,也就是剛被重複的那筆不會顯示。所以要反向也比
select first.*
from table as(可省略) first
left join table next
on first.id = next.id + 1 and first.id = next.id - 1
where first.duplicateColumn = next.duplicateColumn

此時多出先幾筆資料,沒關係group起來即可。
select first.*
from table as(可省略) first
left join table next
on first.id = next.id + 1 and first.id = next.id - 1
where first.duplicateColumn = next.duplicateColumn group by id

SQL JOIN 概念(sql join concepts)

定義Definition:

LEFT JOIN: Return all rows from the left table, and the matched rows from the right table
RIGHT JOIN: Return all rows from the right table, and the matched rows from the left table
INNER JOIN: Returns all rows when there is at least one match in BOTH tables


以下例子examples足以說明用法:
table customer
    id   name
   001   Jack
   002   John
   003   Tom


table shopping
  buy         name
 apple        jack
 orange      jack

 grape        John
 banana     John

 pear           Mary
 strawberry   Mary


SELECT * FROM customer LEFT JOIN shopping ON customer.name = shopping.name
    id    name     name       buy
   001    Jack     Jack      apple
   001    Jack     Jack      orange
   002    John     John      grape
   002    John     John      banana
   003    Tom      null       null
在這裡 LEFT JOIN 的用法比較像,顧客全部有誰,他們買什麼。沒買的人也要知道。

SELECT * FROM customer RIGHT JOIN shopping ON customer.name = shopping.name
    id    name     name       buy
   001    Jack     Jack      apple
   001    Jack     Jack      orange
   002    John     John      grape
   002    John     John      banana
   null     null      Mary      pear
   null     null      Mary      strawberry
在這裡 RIGHT JOIN 的用法比較像,全部賣了什麼,誰買。沒買的人不重要。

SELECT * FROM customer INNER JOIN shopping ON customer.name = shopping.name
    id    name     name       buy
   001    Jack     Jack      apple
   001    Jack     Jack      orange
   002    John     John      grape
   002    John     John      banana
在這裡 INNER JOIN 的用法比較像,什麼人,買了什麼。全部有誰,全部賣什麼不重要。
 

2014年4月1日 星期二

為什麼Mac OS 需要 hybird MBR?


hybird MBR 包含一個type-0xEE分區,但它也包含最多三個額外的主分區,指向被GPT分區標記的三個相同的空間。例如,假設你已經有了一個Macintosh電腦能雙啟動Mac OS XWindows OS X 可以被GPT辨識 ,所以可以使用GPT分區的定義,但Windows 7 則無法被Mac EFI 1.1版本的GPT辨識。所以Mac安裝會先分割GPT分區,然後是Windows MBR分區,MBR分區 指向GPT標記的三個相同的空間。將來Bootcamp再安裝windows需要那個MBR Partition Table.没有MBR分區表的話,BOOTCAMP就没法用。

Mac 可以直接用EFI GPT 去安裝 Mac Windows?

新一代的電腦其實的已經使用UEFI (Unified Extensible Firmware Interface)去取代 BIOSUEFI的好處是他不只是像BIOS一樣可以POST檢查硬體。還可以載入在EFI中的驅動程式。操作界面也更容易上手。也可以使用滑鼠。說他其實是一個小的作業系統也不為過。

Mac 可以直接用EFI GPT 去安裝 Mac Windows 8。但不建議。雖然Windows開機使用上會加快,但差距並不大。但是要冒的風險就很大。比如說Windows無法認識 hybird MBR中的GPT scheme。必須把原來的硬碟改成純GPT分區。就好像安裝在UEFI的系統中。

如果有時間不訪嘗試看看。不然就還是用Bootcamp安裝windows最簡單。


傳統BIOS vs. UEFI BIOS重點差異
BIOS種類                                  傳統BIOS                              UEFI BIOS
程式語言                                    組合語言                                C語言

資源控制                                    中斷向量
                                                  寫死的記憶體存取
                                                  寫死的輸出/輸入存取           驅動程式/協定

處理器運行環境                          X86       16位元                      CPU保護模式

擴充方式                                    接合中斷向量                          載入驅動程式

圖形化能力                                 較差                                        較佳