沒那么神秘:Linux下生存實錄(6) |
發布時間: 2012/9/8 15:13:08 |
三、上網沖浪 問:宅男最怕失去啥?答:網絡(誰說蒼老師?@_@!)。網絡在給我們帶來無限樂趣的同時,也在不斷地改變著人類生活方式。 1、無線上網。目前無線上網形式包括:adsl+無線路由器方式、wlan方式、3g上網卡方式。第一種是大家平時最常見的方式,找運營商開通寬度,自己買個無線路由器,將寬度帳號和密碼設置進路由器,加電即用,該方式上網速度快,但受空間限制較大,一旦超過路由器信號覆蓋就無法上網了;第二種方式需要先聯系電信運營商開通wlan業務,聯網后在運營商提供的頁面輸入帳號和密碼即可上網,這種方式上網速度還是不錯,但,費用高(按流量收費)、擇區域(只有在熱點附近才能使用wlan業務,通常小城市熱點非常少,即便大城市也往往只有機場、星巴克等場所才有);第三種方式,3g上網卡方式,網速基本可接受(可在線觀看非高清視頻),包月費用約100rmb,將上網卡插入電腦,隨時隨地即可高速上網,這里為大家詳細介紹下這種方式。3g上網卡有兩個概念普及下,a)當前中移動、中電信、中聯通等三家運營商均有提供各自3g上網卡,分別采用td、cdma2000、wcdma等三種網絡制式,網速、費用、穩定性各不相同;b)華為、中興兩家是主流的卡設備提供商。運營商、設備請按個人情況選擇,我用的是華為中移動g3上網卡,下文將以此為例進行介紹。 華為g3上網卡官方僅發布了windows驅動,linux下咋辦?前面介紹升級內核時我提過,windows與linux對驅動的管理模式差異,windows需用戶針對各個硬件單獨下載、安裝驅動,而linux在內核中已經集成了(絕大部分)硬件設備驅動程序,包括,這里說的華為中移動g3上網卡驅動。 大致原理如下:linux能識別g3上網卡,但默認將其視為usb存儲設備,我們需要告訴系統(QQ:小默862693539)說"它是一個網絡撥號moden,不是u盤",一旦系統(QQ:小默862693539)接受了該設備模式轉換請求,后續只需用某種撥號程序執行撥號操作即可。 先準備兩個命令行程序:usb_modeswitch、wvdial,直接從軟件倉庫中安裝。另外,必須先關閉系統(QQ:小默862693539)自帶的網絡管理程序,在opensuse中,你可以這樣:yast->network devices->network settings->globa options->network setup methods->traditional method with ifup (instead of network manager) 以下操作均在命令行中執行,全流程步驟如下: 1)獲取g3上網卡usb信息。執行:
系統(QQ:小默862693539)顯示類似如下
記錄下你對應12d1:1da1位置的信息; 2)g3上網卡模式轉換。 a)指定要進行模式轉換的設備。用如下信息換/etc/usb_modeswitch.conf內容:
b)進行模式轉換操作。執行:
顯示如下信息
注,這一步執行過程可能僵死,重新插入上網卡重新執行該步驟; c)確認轉換完成。執行第一步命令顯示如下信息
如果先前的1da1變為1d09那么恭喜你,關鍵一步已經成功了; d)查看設備信息。執行:
輸出信息為
那就轉換成功了; 3)撥號上網。 a)生成g3上網卡撥號配置文件。執行:
輸出
b)修改撥號配置文件。將/etc/wvdial.conf文件內容替換為
c)執行撥號聯網。執行:
輸出
4)其他說明。 a)如果是第一次使用3G上網卡,那么需要依次執行以上每步,后續只需執行wvdial命令即可撥號聯網(有時3G信號不穩定,需要重復多次執行wvdial命令); b)系統(QQ:小默862693539)自帶的網絡管理程序NetworkManager與wvdial命令有沖突,如果通過無線路由器上網,請手工運行NetworkManager命令,如果使用g3上網卡,需要先殺掉NetworkManager相關進程(包括NetworkManager、dhclient、dhcpcd),再執行wvdial撥號。下圖演示了如何殺NetworkManager相關進程: (殺NetworkManager) 2、網頁瀏覽。瀏覽器是互聯網入口,各大互聯網公司必爭之地。firefox,源至linux下的著名瀏覽器,憑借其高安全性和可擴充性贏得大量忠實用戶。
(firefox)
a)下載管理-download statusbar; b)鏈接拖拽-quickdrag; c)鼠標手勢-all-in-one gestures; d)雙擊關閉tab-close tab by double click; e)側邊顯示-all-in-one sidebar; f)網頁代理-phzilla; g)vi模式-pentadactyl; 3、資源下載。作為一個linux狂熱用戶,也不得不承認,要讓電腦完全滿足我日常需求,或多或少還是要借助windows。有些linuxer認為引入windows程序會玷污linux的純潔性,寧愿放棄某些應用,也不愿和windows沾邊。個人認為,任何事情不要走極端,我們玩linux,是為了享受它帶來的開放、自由、創新,但同時,也不要人為丟棄windows提供的特有服務,畢竟,我們使用電腦是為了解決實際問題,而不是向誰證明“我是一名純正的linuxer”,否則只會顧此失彼。當然,如果有功能類似的軟件,肯定會優先選用linux版本,這點無須質疑。 我們需要借助windows,這倒不是linux系統(QQ:小默862693539)本身不夠完善,而是某些應用軟件開發商只發布了windows版本,且那些軟件又掌握著其所在領域的壟斷權(兩個特征:采用私有協議、用戶規模大),以至于第三方即便有心也無力在linux下開發類似軟件。對我而言,有幾類應用讓我離不開windows:網上購物和資源下載。先說說下載,網購后文有提及。 在冏朝,說起下載,一定會想到迅雷,離線下載、高速通道、多協議支持等等特性是其他任何下載軟件無法提供的,特別是對冷門資源的下載非常有效。遺憾的是,迅雷僅提供windows版本,在linux下你是無法(直接)使用迅雷的。 有什么辦法能解決“linux下如何使用windows程序”的問題?目前有兩類解決方式:轉換層方式和虛擬機方式。在介紹這兩類方式前,先了解下為什么會存在這樣的移植性問題。之所以windows程序不能在linux下運行,主要因為操作系統(QQ:小默862693539)api不同所致,類似迅雷這類應用程序,由于對性能要求高、功能要求嚴,導致開發時必須與操作系統(QQ:小默862693539)非常緊密聯系,采用了大量系統(QQ:小默862693539)提供的獨有api,最終成為windows上的“原生應用程序”,一旦“原生應用程序”找不對應的操作系統(QQ:小默862693539)就找不到api,當然也就無法正常運行了。好了,根結就在api上。 我們說的第一類解決方式,是在linux中部署一套為windows api轉換層,我們讓應用程序在轉換層中運行,應用程序繼續調用windows提供的api,轉換層接收到api請求后將具體執行操作傳遞給linux系統(QQ:小默862693539),linux執行完后返回的轉換層,轉換層將請求執行結果反饋給windows應用程序,完成一次api請求,這樣重復往返多次不同api調用,最終模擬完成整個應用程序執行過程。這種方式雖然可行,但也不完美:a)操作系統(QQ:小默862693539)本身幾乎就是由大量api組合而成,如果實現了所有windows api那就實現了windows系統(QQ:小默862693539),從工作量和復雜度上來說,這不是哪個開源社區能夠負擔得起的,所以,目前做得最好的轉換層(wine,收費版本CrossOver)也僅實現了部分api,這意味著,不是所有windows程序都可以在轉換層中運行,這是一個問題;b)既然是模擬api,那么從執行效率(實時性)、執行結果(正確性)上看,肯定與直接在windows中執行存在明顯差距,時常會出現程序異常退出、運行緩慢等等問題,這對實時性要求較高的應用(在線3d游戲)來說,是用戶無法接受的。正因為此,不推薦該方式。 第二類解決方式是安裝虛擬機,在虛擬機中安裝一個windows操作系統(QQ:小默862693539),這就像和你直接安裝的windows一樣,這樣就有了一整套完整的windows api,所有應用程序均可正常運行。virtualbox就是一款著名的虛擬機。
a)內核管理。virtualbox對內核版本非常敏感,一旦有內核升級,必須對virtualbox核心模塊進行重新編譯。別擔心,不需要你具備程序員的能力,virtualbox會自動執行,你,負責為它準備相關編譯工具--gcc、make、 kernel-dev。第一個是編譯器,第二個是代碼管理工具,第三個是編譯內核需要的頭文件,這三個工具均可通過軟件倉庫安裝。一旦準備好相關工具,用root權限執行"/etc/init.d/vboxdrv setup"命令即可; b)顯卡與usb管理。要讓virtualbox中的windows支持3d顯卡加速、識別usb等等增強功能,必須安裝在windows中安裝virtualbox自帶的增強包。增強包只能在windows的安全模式下才能安裝完整,windows虛擬機啟動時按f8進入安全模式,進入virtualbox菜單devices->install guest additions進行增強包的安裝; c)網卡管理。通常主操作系統(QQ:小默862693539)(linux)配有無線網卡、有線網卡、3g上網卡,必須先映射到客操作系統(QQ:小默862693539)(windows)后,在windows系統(QQ:小默862693539)中才能正常上網。進入setting->network,將adapter1采用nat方式映射,將adapter2采用bridged adapter方式映射到eth0(有線網卡設備編號)、將adapter3采用bridged adapter方式映射到wlan0(無線網卡設備編號),進入windows,在"更改適配器設置"中將看到這三個網卡映射,依次將adapter1命名為"3g直連"、adapter2為"有線橋接"、adapter3為"無線橋接",這樣,啟停不同網卡實現不同上網方式的切換。在windows虛擬機中看到的三張網卡如下(是的,下圖反映了我正在用3G上網): (映射到windows虛擬機中的網卡)
4、網上購物。網上購物涉及兩類操作,網銀支付和在線交流,前者就是各大銀行的在線支付程序,后者指的是淘寶旺旺軟件,典型的兩類windows原生應用,請參考上例在windows虛擬機中安裝對應軟件即可。唯一需要注意的u盾的識別,插入u盾后,先到virtualbox中setting->usb,勾選enable usb controller,再到windows虛擬機中devices->usb devices列表中選中對應u盾,這樣,windows就能正確識別u盾了。其他usb設備的識別與之類似; 羅嗦兩句網銀支付。目前看來,朝內絕大部分銀行僅支持win+ie平臺在線支付,完全忽視非windows用戶的存在,強烈譴責"為保障您的資金安全,我行建議您在windows操作系統(QQ:小默862693539)中完成交易",舉著安全大旗招搖過市(windows安全?你銀行服務器莫非裝的是windows server 2K3?),相反,國外各大銀行遵循標準化,支持在各類操作系統(QQ:小默862693539)、各自瀏覽器上進行網上交易,如,美國花旗、匯豐,更有甚者(德國的銀行業),銀行外對開放API,允許用戶自行開發交易程序,怎么沒見這些銀行發生安全事故!當然,不是所有朝內銀行都是"如此重視安全",浦發銀行是少數幾家支持跨平臺交易的銀行,大家風范,值得推薦(不過營業網點有限,二三線城市較少)。http://www.openbanks.info/是一個專注于探討網銀跨平臺主題的網站,有興趣可以逛逛。 5、即時通訊。常用的im工具包括飛信、qq、msn,這三個im都有對應的linux版本,但,不論是官方發布的還是第三方通過逆向工程實現的,從功能完整性、運行穩定性、界面友好性來看,均與windows原生版本存在巨大差距,實際使用效果并不理想。如果的確要用,建議參照上例,在windows虛擬機中安裝運行。 或許是冏朝的linux用戶量過少(linux在全球桌面領域占有率僅為2%,且主要分布在萬惡的歐美等資本主義國家),國內軟件開發商基本采用忽略態度,即便發布了linux版的程序,要么長年不更新(qq for linux從2009年1月發布后從未更新過,http://im.qq.com/qq/linux/download.shtml)、要么不對外發布(aliwangwang for linux,僅用于淘寶公司內部測試,http://ge.tt/8sppgia),在此呼吁各大開發商,請對linux予以正確的認識和重視,尊重我們選擇操作系統(QQ:小默862693539)的權利。 本文出自:億恩科技【www.laynepeng.cn】 |