沒那麼神祕:linux下生存實錄
事物的選擇,不在於它能向你提供什麼,而取決你需要什麼。窗內的世界充其量算是舒適,窗外的天地那才是五彩斑斕。
作業系統,大部分人只曉得windows,鮮有人知道linux,一個以穩定、安全、開放為第一準則的作業系統(嚴格地說應該叫核心)。漢語,全球五分之 一的人以它為母語,是使用人數最多的一門語言;英語,世界各地都有人使用,是使用範圍最廣的一門語言。windows與linux,就好像漢語與英 語,windows,幾乎佔據了整個桌面領域,是裝機量最多系統;linux,從深海潛艇到空中無人偵察機、從半間屋大的工作站到比手掌還小的手機、從遠 至美國南卡羅來納州的google伺服器到近到客廳的機頂盒,你都能見到linux身影。
我無意說服你拋棄目前嫻熟使用的作業系統另尋新歡,但,假如你對當前系統保守封閉早已不滿,假如你崇尚自由、渴求本質、熱愛折騰,不妨試試linux!
【發行套件】
linux本身還算不上作業系統,它僅是核心(一方面管理協調下層的硬體資源,一方面為上層軟體提供基礎服務支撐),需搭配系統軟體(shell、編譯器、包管理器、桌面環境等等)、應用軟體(辦公軟體、網頁瀏覽器、視訊播放器、圖片編輯器等等)才能成為一套具備日常使用功能的作業系統,即,發行套件。
一、發行套件的選擇
linux發行套件數量龐大(約140種)、用途迥異(如,專供盲人使用的、專供教育培訓使用的、專用於家庭影院使用的),對每個發行套件逐一評測、比對選優,完全是費神耗時、意義不大。目前,知名的發行套件包括:puppy、slackware、debian、fedora、arch、gentoo、ubuntu、lfs、opensuse等,它們各具特色、追隨者眾,如,slackware是目前存活時間最長的古董級發行套件(經驗豐富),fedora是redhat進行新技術實驗的發行套件(技術創新),ubuntu號稱使用者零配置開箱即用的發行套件(簡單易用)、lfs(linuxfrom scratch)讓你從無到有構建專屬於你的發行套件(配置靈活)、經驗豐富+技術創新+簡單易用+配置靈活=opensuse!(-_-#)
opensuse最早是slackware在德國的本地化版本,後來因其加入了大量特色功能升格為單獨的發行套件,其原名為suselinux,10.2版本後改名opensuse。opensuse是由novell公司贊助、社群推動的發行套件,它的相關原始碼和技術可由novell使用,作為novell企業版發行套件sles的基礎。opensuse旨在:a、推進linux在全球廣泛使用;b、降低linux使用門檻,成為易於上手的發行套件;c、成為技術黑客和軟體開發人員的首選平臺。opensuse的logo是隻可愛的變色龍,以此象徵opensuse靈活、敏捷的特性。
(logo)
opensuse當前正式版本為12.1,下個版本12.2預計在12年9月中旬釋出。關於發行套件版本升級,通常我會在最新正式版放出後半年左右再考慮,原因有二:一方面經過半年的大規模外部使用者測試,大部分bug已被發現並修正,一定程度上規避了使用系統的不穩定性;一方面各類應用軟體開發人員有足夠時間針對新版本的發行套件進行功能升級和相容性優化,讓我真真正正感受到新版本帶來的各項提升。所以,今年暫時不升級了,明年3月份再考慮。
二、發行套件的安裝
既然是普通使用者使用的發行套件,其勢必繼承了某種桌面環境以便使用者通過視覺化介面操作計算機(linux最底層由x.org提供圖形影像服務,中間由桌面環境負責統一管理各應用軟體發起的圖形繪製請求並協調x.org予以響應)。opensuse12.1提供gnome和kde兩種桌面環境供君選擇(此外,還有xfce、lxde、ede、rox等等其他桌面環境可單獨下載安裝)。gnome是隸屬gnu專案的子專案,全稱為thegnu network object model environment,採用gtk(由c語言編寫)作為底層開發庫;kde全稱kooldesktopenvironment,採用qt(由c++語言編寫)作為底層開發庫。gnome和kde是linux中最為流行的桌面環境,從操作習慣和介面風格來看,我更喜歡gnome。因此,本文將以採用gnome的opensuse12.1為例進行後文講解。
1、下載映象。訪問http://software.opensuse.org/121/en,選擇gnome、32位(或64位視情況而定)直接下載即可;
2、製作安裝u盤。u盤安裝既節省光碟介質費用,又能大幅提升安裝速度,逐漸成為你安裝系統的首選。官網上提供了製作opensuse安裝u盤的工具imagewriter,分為windows版本(https://github.com/downloads/opensuse/kiwi/imagewriter.exe)和linux版本。windows版有個小bug,下載的映象副檔名為iso,而imagewriter在選擇映象檔案時只能識別副檔名為raw的檔案,所以需要先調整映象副檔名才能正常寫入u盤;
3、安裝系統。整個過程一路next,除了幾個關鍵點稍加留意外,基本零難度(注,安裝過程中,部分視窗過小,無法檢視視窗中完整內容,可用滑鼠拖動視窗邊框以調整合適大小)。
1)時區設定。如果你是冏朝公民,按下圖設定,其中必須勾選“將硬體時鐘設定為utc”,否則時間有問題。
(時區設定)
2)建立分割槽。建議依次建立如下分割槽:/、swap、/home、/data。說明幾點,a)linux的分割槽不同於windows,分割槽後沒有所謂的c:、d:盤,而是一個個檔案系統,這些檔案系統沒有具體名稱,必須先掛載到某個目錄(稱之為掛載點)下才能正常使用,每個分割槽對應一個目錄,但多個目錄可能對應在同個分割槽中(如,/home/yangyang_gnu和
/home可能都在通過分割槽上);b)作業系統為擴充套件實體記憶體容量通常設有“虛擬記憶體”機制,將不活波記憶體頁(如,未關閉但長時間沒使用的程式)從實體記憶體中移至硬碟的虛擬記憶體中,從而釋放寶貴的實體記憶體空間,swap分割槽就是所謂的虛擬記憶體,一般大小等同於實體記憶體,swap分割槽不用掛載目錄;c)使用者相關資訊(如,各應用程式的配置檔案)通常放在/home目錄中,為避免重灌系統導致各類配置檔案丟失,需將/home放在獨立分割槽上;d)所有非系統資料(如,歌曲、ebook、安裝程式)都放在獨立分割槽/data上,以便定期備份。按提示操作後,介面類似如下:
(硬碟分割槽)
3)安裝前確認。正式安裝系統前,可對先前安裝設定資訊進行確認、調整。如下圖所示:
(安裝前確認)
4)系統引導設定。opensuse為防止因異常導致系統無法正常啟動,除安裝“真正作業系統”之外,還附帶安裝了所謂的“緊急啟動映象”,個人覺得意義不大,如果不需要,可點選“booting”,可刪除緊急啟動映象:
(緊急啟動映象)
另外,雙擊opensuse12.1(真正的作業系統),參照如下設定,分別取消啟動時硬碟檢查和設定字元模式下的解析度:
(引導設定:取消硬碟檢查、設定字元模式解析度)
此外,進入“bootloader installation”->“boot loaderoptions”,取消載入程式等待使用者選擇作業系統耗時:
(引導設定:取消引導等待)
三、發行套件的設定
剛裝好的作業系統都是預設設定,按個人習慣適當調整才貼心。
1、升級系統。linux上系統升級分兩部分,一部分是核心升級,一部分是發行套件升級(即,除核心外的驅動程式、系統軟體、應用軟體等升級)。升級核心是為了享受新核心帶來的安全增強以及更多的裝置支援,由於涉及核心編譯等高階主題,另文詳講;在進行發行套件升級前,先說說軟體倉庫。
前 面說過,發行套件是整合核心、驅動程式、系統軟體、應用程式等一整套可支撐普通使用者日常工作、生活需求的作業系統,可見,發行套件充當了軟體篩選、軟體打 包、軟體依賴庫測試、軟體相容性測試等多個角色,為確保發行套件的健壯性,發行套件廠商(或社群)將它篩選、打包、測試過的軟體放在官方軟體倉庫中,這 樣,不論哪個廠商開發的應用程式,使用者只需到軟體倉庫中查詢、下載、安裝即可,不用(像windows)再到各個軟體官網逐一下載,當然,軟體倉庫中沒有的,你仍可到軟體官網單獨下載,但要注意依賴庫是否正確。
軟體倉庫一般放在發行套件官方伺服器上,使用者通過更新源訪問軟體倉庫。因此,更新源就是軟體倉庫的路牌。冏朝的網路是具有社會主義特色滴,要麼無法訪問國外、要麼滿如蝸牛,給我們訪問國外官方的軟體倉庫帶來很大阻礙。幸好,國內還有幾家上規模又有良心的it企 業,通過它們自身頻寬優勢,準實時地從發行套件官網同步軟體倉庫到國內伺服器上,冏朝使用者可調整更新源,實現從這些企業的伺服器上高速訪問軟體倉庫。目前 為各大發行套件建立國內軟體倉庫的企業主要包括搜狐和網易(感謝張總、丁總對中國開源事業的支援,曹總、馬總你們人影呢),另外,各大專院校也建有本地軟 件倉庫,學生朋友可參照使用。好了,瞭解了軟體倉庫、更新源等概念後,我們可以按如下步驟升級發行套件啦:
1)更改更新源。執行yast->softwarerepositories,刪除所有來之官網的更新源(即,opensuse.org相關的),增加搜狐的軟體倉庫映象:a)sohu-opensuse-12.1-oss:http://mirrors.sohu.com/opensuse/distribution/12.1/repo/oss、
b)sohu-opensuse-12.1-non-oss:http://mirrors.sohu.com/opensuse/distribution/12.1/repo/non-oss;c)sohu-opensuse-12.1-update:http://mirrors.sohu.com/opensuse/update/12.1;
2)升級系統。一旦指示系統啟動升級,系統先在軟體倉庫(載入的所有更新源)中尋找是否有升級的可能。具體而言,命令zypperupdate,對於本地已安裝程式,在軟體倉庫中是否有更新版本,若有則更新之,忽略系統有安裝但倉庫中根本不存在的軟體;命令zypperdist-upgrade, 將系統與軟體倉庫同步一致,也就是說,本地安裝的軟體必須只能是倉庫中有的且版本必須一致,換言之,一旦執行該命令,將存在降級(本地版本高而倉庫版本 低)、升級(本地版本低而倉庫版本高)、更改軟體資訊(發行套件官方更改應用軟體某些資訊)、甚至解除安裝(本地安裝而倉庫沒有)等幾種可能,特別是當你有通 過原始碼安裝過軟體時切勿使用該命令。兩個命令差異巨大,就日常而言,建議使用前者即可。
2、安裝驅動。windows環境中增加了硬體,通常需要到硬體官網下載驅動,安裝重啟後系統才能識別新增硬體裝置,linux對驅動的管理,你可以(片面地)理解為全都打包進核心中了,只要是較新版本核心(這正是前面說升級核心的主要目的之一),幾乎能正常識別99%的硬體,換言之,你不用針對主機板、晶片、(有/無線)網路卡、顯示卡、音效卡、甚至g3上網路卡(後文將教你如何在linux下使用運營商的上網路卡)單獨安裝驅動,因為核心已經整合了它們的驅動,當然,我指的是整合驅動能很好地管理對應硬體裝置,如果管理得不是那麼好呢?那就單獨安裝吧,比如,n卡驅動。opensuse內建了n卡驅動程式的開源版本nouveau,nouveau由第三方開發,並未得到nvidia官方支援,是開發人員對n卡官方驅動逆向分析後的重新編碼,實現難度巨大,雖效果不盡人意但也值得你尊重。作為普通使用者,肯定希望最大程度發揮顯示卡特性,那就安裝n卡針對opensuse釋出的(閉源)官方顯示卡驅動吧。先增加n卡官方更新源ftp://download.nvidia.com/opensuse/12.1,再升級即可。
3、美化桌面。前面提過,我選裝的是gnome桌面環境。gnome3相 較先前版本,不論從介面外觀還是操作習慣都有非常大的差異,比如,視窗右上角只有關閉按鈕,不再有最大化、最小化的概念,比如,托盤從工作列中剝離出來, 預設情況下為隱藏狀態,比如,要選擇桌面上的某個視窗,先得調出所有視窗的列表,在點選選擇需要的那個,比如,不再有桌面圖示,如此這些,讓很多人無法適 應、被人詬病。也許是心態問題,我倒是挺適應這種操作模式的,使用gnome3也有一年多時間了,雖談不上駕輕就熟,但也不存在任何使用障礙,非要讓我提一點意見的話,嗯~嗯~,好吧,真心希望gnome開發團隊將橫向佈局的工作列改為縱向佈局,至於原因,你知道,如今的顯示器幾乎都是寬屏的,這就意味著螢幕的水平空間充裕而垂直空間緊張,現在又將工作列水平放置在最頂部,進一步縮小了可用垂直空間,所以,強烈建議將工作列垂直放置在螢幕左側(效果類似ubuntu的unity),希望下一版本能有所改善。另外,個人認為,對於一項新生事務(我說的是gnome3),不妨抱著“擁抱變化、迎接未來”的心態去嘗試接納,或許,你會發現,原來它才是你的最愛。
扯遠了,接著說gnome的美化。桌面美化,無非就是選一套符合你審美觀的主題,下載、安裝、啟用即可:
1)下載主題。推薦兩個gnome3相關的主題網站:gnome-look.org與deviantart.com,慢慢選,喜歡哪個下哪個。個人非常喜歡那種扁、平、薄的風格,比如android4.0主題風格,正好又有人將其移植到gnome3上,稱之為holo(http://tiheum.deviantart.com/art/holo-80076980),搭配faience系列圖示(http://tiheum.deviantart.com/art/faience-icon-theme-255099649)
2)安裝主題。將上面兩個下載後的壓縮檔案分別解壓至~/.themes和~/.icons目錄。
3)選擇主題。執行advancedsettings,參照下圖選擇視窗和圖示主題:
(選擇主題)
4)啟用主題。鍵入alt+f2,輸入r回車,看到沒,剛才選擇的主題已經生效。如果存在滾動條粗大、按鈕錯位等情況,請檢查相關主題引擎(murrine、pixbuf、unico、adwaita)是否都已正確安裝。最終效果如下:
(gnome3-holo)
5)字型。opensuse中文顯示預設採用文泉驛字型,相比之下,更喜歡微軟雅黑那種方方正正的飽滿字型,但微軟雅黑中的英文字型又不咋地,有人釋出了一款增強了英文字型的微軟雅黑——yaheiconsolashybrid字型,可以下來試試,效果非常不錯(本文全文采用的及時這個字型)。雙擊字型按提示安裝,安裝完後進入advancedsettings,按如下設定即可:
(字型設定)
###NextPage###
【應用軟體】
說了這麼多,作為普通使用者,我們關注的還是opensuse如何支撐我們的日常工作、生活需求。接下來看看,那些藉助社群力量開發的優秀開源產品。開始之前,請增加第三方更新源packman(ftp://packman.inode.at/suse/opensuse_12.1/)。packman相對於發行套件的官方軟體倉庫有如下“優勢”:a)包含大量採用新技術的軟體(發行套件追求穩定,從這個角度看,如果引入過多新技術軟體,未經過嚴格相容性測試,極有可能影響系統穩定性);b)包含大量私有屬性的閉源軟體(發行套件通常是由社群製作,如果含有閉源軟體,可能引入版權、專利問題)。因此,應將packman倉庫與官方倉庫搭配使用,可擴大使用者的軟體選擇範圍。(注,未特別說明,以下介紹的軟體均可通過軟體倉庫查詢、下載、安裝。)
一、日常辦公
現在的企事業單位幾乎都需藉助電腦辦公,醫生看病開處方、營業廳辦理業務、會計帳務處理等等,電腦已成為各行各業辦公的主要途徑和手段。下面介紹幾類常見的辦公需求。
1、辦公文書。word、excel、powerpoint等三個軟體是windows中必裝的辦公文書軟體,以支撐我們文書處理、表格製作、彙報演示等工作需要。linux中我們對應有writer、calc、impress等軟體,這三個軟體(外加draw、math、base)就是大名鼎鼎的libreoffice套件。libreoffice完全相容ms-office文件,甚至還可以直接轉存為pdf格式檔案,
-
軟體名稱:libreoffice
-
介面截圖:
(writer)
(calc)
(impress)
-
設定調整:tools->options->languagesettings->writing aids,取消options中的所有選項,以禁止拼寫檢查;
2、電郵收發。 很多人習慣通過郵件服務提供商官網進行郵件收發,強烈建議改用郵件客戶端,避免頻繁登入郵箱,同時,還能離線查閱郵件內容。好的郵件客戶端除了正常
問:宅男最怕失去啥?答:網路(誰說蒼老師?@_@!)。網路在給我們帶來無限樂趣的同時,也在不斷地改變著人類生活方式。 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儲存裝置,我們需要告訴系統說“它是一個網路撥號moden,不是u盤”,一旦系統接受了該裝置模式轉換請求,後續只需用某種撥號程式執行撥號操作即可。 先準備兩個命令列程式:usb_modeswitch、wvdial,直接從軟體倉庫中安裝。另外,必須先關閉系統自帶的網路管理程式,在opensuse中,你可以這樣:yast->networkdevices->network settings->globa options->network setupmethods->traditional method with ifup (instead of network manager) 以下操作均在命令列中執行,全流程步驟如下: 1)獲取g3上網路卡usb資訊。執行: lsusb| grep “huawei” 系統顯示類似如下 bus002 device 003: id 12d1:1da1 huawei technologies co., ltd. 記錄下你對應12d1:1da1位置的資訊; 2)g3上網路卡模式轉換。 a)指定要進行模式轉換的裝置。用如下資訊換/etc/usb_modeswitch.conf內容: defaultvendor=0x12d1 b)進行模式轉換操作。執行: usb_modeswitch-c /etc/usb_modeswitch.conf 顯示如下資訊 lookingfor target devices ... 注,這一步執行過程可能僵死,重新插入上網路卡重新執行該步驟; c)確認轉換完成。執行第一步命令顯示如下資訊 bus002 device 009: id 12d1:1d09 huawei technologies co., ltd. 如果先前的1da1變為1d09那麼恭喜你,關鍵一步已經成功了; d)檢視裝置資訊。執行: ls/dev/ttya* 輸出資訊為 ttyacm0 ttyacm1 ttyacm2 那就轉換成功了; 3)撥號上網。 a)生成g3上網路卡撥號配置檔案。執行: wvdialconf 輸出 editing`/etc/wvdial.conf'. b)修改撥號配置檔案。將/etc/wvdial.conf檔案內容替換為 [dialerdefaults] c)執行撥號聯網。執行: wvdial 輸出 -->wvdial: internet dialer version 1.60 4)其他說明。 a)如果是第一次使用3G上網路卡,那麼需要依次執行以上每步,後續只需執行wvdial命令即可撥號聯網(有時3G訊號不穩定,需要重複多次執行wvdial命令); b)系統自帶的網路管理程式NetworkManager與wvdial命令有衝突,如果通過無線路由器上網,請手工執行NetworkManager命令,如果使用g3上網路卡,需要先殺掉NetworkManager相關程式(包括NetworkManager、dhclient、dhcpcd),再執行wvdial撥號。下圖演示瞭如何殺NetworkManager相關程式: (殺NetworkManager) 2、網頁瀏覽。瀏覽器是網際網路入口,各大網際網路公司必爭之地。firefox,源至linux下的著名瀏覽器,憑藉其高安全性和可擴充性贏得大量忠實使用者。 軟體名稱:firefox 介面截圖: (firefox) 設定調整:你對firefox的任何需求,幾乎都可以通過其豐富的外掛資源得到滿足(另一個有如此龐大外掛資源的軟體當數vim了,後面有介紹)。進入tools->add-ons即可線上查詢需要的外掛,找到後點選線上安裝即可,安裝完成需重啟瀏覽器以讓新裝外掛生效。下面介紹多款我覺得非常有用的外掛: a)下載管理—downloadstatusbar; b)連結拖拽—quickdrag; c)滑鼠手勢—all-in-onegestures; d)雙擊關閉tab—closetab by double click; e)側邊顯示—all-in-onesidebar; f)網頁代理—phzilla; g)vi模式—pentadactyl; 3、資源下載。作為一個linux狂熱使用者,也不得不承認,要讓電腦完全滿足我日常需求,或多或少還是要藉助windows。有些linuxer認為引入windows程式會玷汙linux的純潔性,寧願放棄某些應用,也不願和windows沾邊。個人認為,任何事情不要走極端,我們玩linux,是為了享受它帶來的開放、自由、創新,但同時,也不要人為丟棄windows提供的特有服務,畢竟,我們使用電腦是為了解決實際問題,而不是向誰證明“我是一名純正的linuxer”,否則只會顧此失彼。當然,如果有功能類似的軟體,肯定會優先選用linux版本,這點無須質疑。 我們需要藉助windows,這倒不是linux系統本身不夠完善,而是某些應用軟體開發商只發布了windows版本,且那些軟體又掌握著其所在領域的壟斷權(兩個特徵:採用私有協議、使用者規模大),以至於第三方即便有心也無力在linux下開發類似軟體。對我而言,有幾類應用讓我離不開windows:網上購物和資源下載。先說說下載,網購後文有提及。 在冏朝,說起下載,一定會想到迅雷,離線下載、高速通道、多協議支援等等特性是其他任何下載軟體無法提供的,特別是對冷門資源的下載非常有效。遺憾的是,迅雷僅提供windows版本,在linux下你是無法(直接)使用迅雷的。 有什麼辦法能解決“linux下如何使用windows程式”的問題?目前有兩類解決方式:轉換層方式和虛擬機器方式。在介紹這兩類方式前,先了解下為什麼會存在這樣的移植性問題。之所以windows程式不能在linux下執行,主要因為作業系統api不同所致,類似迅雷這類應用程式,由於對效能要求高、功能要求嚴,導致開發時必須與作業系統非常緊密聯絡,採用了大量系統提供的獨有api,最終成為windows上的“原生應用程式”,一旦“原生應用程式”找不對應的作業系統就找不到api,當然也就無法正常執行了。好了,根結就在api上。 我們說的第一類解決方式,是在linux中部署一套為windowsapi轉換層,我們讓應用程式在轉換層中執行,應用程式繼續呼叫windows提供的api,轉換層接收到api請求後將具體執行操作傳遞給linux系統,linux執行完後返回的轉換層,轉換層將請求執行結果反饋給windows應用程式,完成一次api請求,這樣重複往返多次不同api呼叫,最終模擬完成整個應用程式執行過程。這種方式雖然可行,但也不完美:a)作業系統本身幾乎就是由大量api組合而成,如果實現了所有windowsapi那就實現了windows系統,從工作量和複雜度上來說,這不是哪個開源社群能夠負擔得起的,所以,目前做得最好的轉換層(wine,收費版本CrossOver)也僅實現了部分api,這意味著,不是所有windows程式都可以在轉換層中執行,這是一個問題;b)既然是模擬api,那麼從執行效率(實時性)、執行結果(正確性)上看,肯定與直接在windows中執行存在明顯差距,時常會出現程式異常退出、執行緩慢等等問題,這對實時性要求較高的應用(線上3d遊戲)來說,是使用者無法接受的。正因為此,不推薦該方式。 第二類解決方式是安裝虛擬機器,在虛擬機器中安裝一個windows作業系統,這就像和你直接安裝的windows一樣,這樣就有了一整套完整的windowsapi,所有應用程式均可正常執行。virtualbox就是一款著名的虛擬機器。 軟體名稱:virtualbox 介面截圖: (virtualbox中執行迅雷) 下載安裝:切勿從軟體倉庫中安裝,倉庫中的版本無法識別usb裝置,官網提供了完整版(https://www.virtualbox.org/wiki/linux_downloads); 設定調整:要像使用真正windows那樣使用裝在virtualbox中的windows,必須注意以下幾點: a)核心管理。virtualbox對核心版本非常敏感,一旦有核心升級,必須對virtualbox核心模組進行重新編譯。別擔心,不需要你具備程式設計師的能力,virtualbox會自動執行,你,負責為它準備相關編譯工具——gcc、make、 kernel-dev。第一個是編譯器,第二個是程式碼管理工具,第三個是編譯核心需要的標頭檔案,這三個工具均可通過軟體倉庫安裝。一旦準備好相關工具,用root許可權執行“/etc/init.d/vboxdrvsetup”命令即可; b)顯示卡與usb管理。要讓virtualbox中的windows支援3d顯示卡加速、識別usb等等增強功能,必須安裝在windows中安裝virtualbox自帶的增強包。增強包只能在windows的安全模式下才能安裝完整,windows虛擬機器啟動時按f8進入安全模式,進入virtualbox選單devices->installguest additions進行增強包的安裝; c)網路卡管理。通常主作業系統(linux)配有無線網路卡、有線網路卡、3g上網路卡,必須先對映到客作業系統(windows)後,在windows系統中才能正常上網。進入setting->network,將adapter1採用nat方式對映,將adapter2採用bridgedadapter方式對映到eth0(有線網路卡裝置編號)、將adapter3採用bridgedadapter方式對映到wlan0(無線網路卡裝置編號),進入windows,在“更改介面卡設定”中將看到這三個網路卡對映,依次將adapter1命名為“3g直連”、adapter2為“有線橋接”、adapter3為“無線橋接”,這樣,啟停不同網路卡實現不同上網方式的切換。在windows虛擬機器中看到的三張網路卡如下(是的,下圖反映了我正在用3G上網): (對映到windows虛擬機器中的網路卡) 使用問題:高版本迅雷(v7)在虛擬機器中執行會報c++執行時庫溢位的錯誤,暫時只能安裝低版本迅雷(V5)才可正常執行。網上找迅雷5,下載安裝。這時先別急著下載資源,迅雷有自動升級機制,一旦聯網,將強制升級,若取消升級則程式會退出,若升級則又變成高版而導致報錯,唯一的方式是暴力破壞迅雷5的自動升級程式thunderliveud.exe,在迅雷所在的安裝盤搜尋在程式,找到後全量刪除之; 其他說明:這部分內容是以迅雷為例介紹了在linux下“執行”windows應用程式的通用方法,其他應用,可以此參考。 4、網上購物。網上購物涉及兩類操作,網銀支付和線上交流,前者就是各大銀行的線上支付程式,後者指的是淘寶旺旺軟體,典型的兩類windows原生應用,請參考上例在windows虛擬機器中安裝對應軟體即可。唯一需要注意的u盾的識別,插入u盾後,先到virtualbox中setting->usb,勾選enableusb controller,再到windows虛擬機器中devices->usbdevices列表中選中對應u盾,這樣,windows就能正確識別u盾了。其他usb裝置的識別與之類似; 羅嗦兩句網銀支付。目前看來,朝內絕大部分銀行僅支援win+ie平臺線上支付,完全忽視非windows使用者的存在,強烈譴責“為保障您的資金安全,我行建議您在windows作業系統中完成交易”,舉著安全大旗招搖過市(windows安全?你銀行伺服器莫非裝的是windowsserver2K3?),相反,國外各大銀行遵循標準化,支援在各類作業系統、各自瀏覽器上進行網上交易,如,美國花旗、匯豐,更有甚者(德國的銀行業),銀行外對開放API,允許使用者自行開發交易程式,怎麼沒見這些銀行發生安全事故!當然,不是所有朝內銀行都是“如此重視安全”,浦發銀行是少數幾家支援跨平臺交易的銀行,大家風範,值得推薦(不過營業網點有限,二三線城市較少)。http://www.openbanks.info/是一個專注於探討網銀跨平臺主題的網站,有興趣可以逛逛。 5、即時通訊。常用的im工具包括飛信、qq、msn,這三個im都有對應的linux版本,但,不論是官方釋出的還是第三方通過逆向工程實現的,從功能完整性、執行穩定性、介面友好性來看,均與windows原生版本存在巨大差距,實際使用效果並不理想。如果的確要用,建議參照上例,在windows虛擬機器中安裝執行。 或許是冏朝的linux使用者量過少(linux在全球桌面領域佔有率僅為2%,且主要分佈在萬惡的歐美等資本主義國家),國內軟體開發商基本採用忽略態度,即便釋出了linux版的程式,要麼長年不更新(qqfor linux從##########NextPage##########<三、上網衝浪
defaultproduct=0x1da1
targetvendor=0x12d1
targetproduct=0x1da1
huaweimode=1
founddevices in target mode or class (1)
...
scsiinquiry data (for identification)
-------------------------
vendorstring: huawei
modelstring: mobile cmcc cd
revisionstring: 1.25
-------------------------
usbdescription data (for identification)
-------------------------
manufacturer:huawei mobile
product:huawei mobile system solution
serialno.: 111111-11-111111
-------------------------
sendinghuawei control message ...
ok,huawei control message sent
->run lsusb to note any changes. bye.
scanningyour serial ports for a modem.
modemport scan<*1>: s0 s1 s2 s3
wvmodem<*1>:cannot get information for serial port.
ttyacm0<*1>:atq0 v1 e1 -- ok
ttyacm0<*1>:atq0 v1 e1 z -- ok
ttyacm0<*1>:atq0 v1 e1 s0=0 -- ok
ttyacm0<*1>:atq0 v1 e1 s0=0 &c1 -- ok
ttyacm0<*1>:atq0 v1 e1 s0=0 &c1 &d2 -- ok
ttyacm0<*1>:atq0 v1 e1 s0=0 &c1 &d2 +fclass=0 -- ok
ttyacm0<*1>:modem identifier: ati -- manufacturer: huawei
ttyacm0<*1>:speed 4800: at -- ok
ttyacm0<*1>:speed 9600: at -- ok
...
ttyacm0<*1>:speed 230400: at -- ok
ttyacm0<*1>:speed 460800: at -- ok
ttyacm0<*1>:max speed is 460800; that should be safe.
ttyacm0<*1>:atq0 v1 e1 s0=0 &c1 &d2 +fclass=0 -- ok
wvmodem<*1>:cannot get information for serial port.
ttyacm1<*1>:atq0 v1 e1 -- ok
ttyacm1<*1>:atq0 v1 e1 z -- ok
ttyacm1<*1>:atq0 v1 e1 s0=0 -- ok
ttyacm1<*1>:atq0 v1 e1 s0=0 &c1 -- ok
ttyacm1<*1>:atq0 v1 e1 s0=0 &c1 &d2 -- ok
ttyacm1<*1>:atq0 v1 e1 s0=0 &c1 &d2 +fclass=0 -- ok
ttyacm1<*1>:modem identifier: ati -- manufacturer: huawei
ttyacm1<*1>:speed 4800: at -- ok
ttyacm1<*1>:speed 9600: at -- ok
ttyacm1<*1>:speed 19200: at -- ok
ttyacm1<*1>:speed 38400: at -- ok
ttyacm1<*1>:speed 57600: at -- ok
ttyacm1<*1>:speed 115200: at -- ok
ttyacm1<*1>:speed 230400: at -- ok
ttyacm1<*1>:speed 460800: at -- ok
ttyacm1<*1>:max speed is 460800; that should be safe.
ttyacm1<*1>:atq0 v1 e1 s0=0 &c1 &d2 +fclass=0 -- ok
wvmodem<*1>:cannot get information for serial port.
ttyacm2<*1>:atq0 v1 e1 -- ok
ttyacm2<*1>:atq0 v1 e1 z -- ok
ttyacm2<*1>:atq0 v1 e1 s0=0 -- ok
ttyacm2<*1>:atq0 v1 e1 s0=0 &c1 -- ok
ttyacm2<*1>:atq0 v1 e1 s0=0 &c1 &d2 -- ok
ttyacm2<*1>:atq0 v1 e1 s0=0 &c1 &d2 +fclass=0 -- ok
ttyacm2<*1>:modem identifier: ati -- manufacturer: huawei
ttyacm2<*1>:speed 4800: at -- ok
...
ttyacm2<*1>:speed 460800: at -- ok
ttyacm2<*1>:max speed is 460800; that should be safe.
ttyacm2<*1>:atq0 v1 e1 s0=0 &c1 &d2 +fclass=0 -- ok
foundan usb modem _disibledevent=0 &c1 &d2 +fclass=0"
ttyacm1:speed 460800; init "atq0 v1 e1 s0=0 &c1 &d2 +fclass=0"
ttyacm2:speed 460800; init "atq0 v1 e1 s0=0 &c1 &d2 +fclass=0"
init1= atz
init2= atq0 v1 e1 s0=0 &c1 &d2 +fclass=0
password= any
phone= *99***1#
modemtype = usb modem
stupidmode = 1
baud= 460800
newpppd = yes
modem= /dev/ttyacm0
isdn= 0
username= any
-->cannot get information for serial port.
-->initializing modem.
-->sending: atz
atz
ok
-->sending: atq0 v1 e1 s0=0 &c1 &d2 +fclass=0
atq0v1 e1 s0=0 &c1 &d2 +fclass=0
ok
-->modem initialized.
-->sending: atdt*99***1#
-->waiting for carrier.
atdt*99***1#
connect2800000
-->carrier detected. starting ppp immediately.
-->starting pppd at mon jun 22 11:11:50 2009
-->pid of pppd: 4134
-->using interface ppp0
-->local ip address 10.140.162.111
-->remote ip address 192.200.1.21
-->primary dns address 221.130.33.60
-->secondary dns address 221.130.33.52
-->connected... press ctrl-c to disconnect
相關文章
- linux沒有那個檔案或目錄Linux
- Masonry實現原理並沒有那麼可怕
- block沒那麼難(一):block的實現BloC
- 學習資料科學並沒有什麼神祕之處資料科學
- 萬萬沒想到,硬碟最神祕的功能,居然...硬碟
- 聊聊Spring的FactoryBean其實沒那麼難SpringBean
- API 與 Webhook,其實並沒有那麼難懂APIWebHook
- 自己實現JSON、XML的解析 沒那麼難JSONXML
- 人工智慧不那麼神祕!小孩都能看懂的人工智慧入門課~人工智慧
- Windows 10 暗藏神祕 Linux 子系統!WindowsLinux
- App抓包其實沒那麼複雜!Charles來幫你搞定APP
- 為什麼Android沒有iOS那麼順滑AndroidiOS
- 世嘉的霧遊戲有沒有那麼奇葩?遊戲
- 雲端計算網路,沒那麼簡單
- 軟體人才並沒有那麼難找
- 放心吧,人工智慧還沒那麼可怕人工智慧
- Linux下燒錄光碟實戰(轉)Linux
- Google X:改變世界的神祕實驗室Go
- 領域事件和整合事件沒那麼高大上事件
- ijkplayer編譯so庫真沒那麼難編譯
- 11.Dart中最神祕的Mixin有什麼用?Dart
- 揭祕JavaScript中“神祕”的this關鍵字JavaScript
- 程式猿生存指南-32 實習招聘(下)
- 布林領導下的谷歌神祕部門Google X谷歌Go
- python神祕程式碼Python
- Javascript之其實我覺得原型鏈沒有難的那麼誇張!JavaScript原型
- 為什麼我們說區塊鏈沒有那麼容易?區塊鏈
- 程式猿生存指南-27 攀談康神
- Spring Validation最佳實踐及其實現原理,引數校驗沒那麼簡單!Spring
- 大資料其實沒那麼有用,但是炒作它的人確實是都賺錢了大資料
- 生存目錄-無層級
- 為何那麼多的MES專案沒有成功?
- 執行緒池沒你想的那麼簡單(續)執行緒
- 設計模式【9】-- 外觀模式?沒那麼高大上設計模式
- 團隊級敏捷真的沒你想的那麼簡單敏捷
- 川普想把iPhone生產轉回美國?沒那麼容易iPhone
- Excel 中的 VLOOKUP 函式,沒你想的那麼難Excel函式
- 相親原始碼中移動支付的實現,沒有想象中那麼難原始碼