Docker到底是什么?Docker為什么它這么火!
Xcode 是運行在操作系統(tǒng)Mac OS X上的集成開發(fā)工具(IDE),由蘋果公司開發(fā)。Xcode是開發(fā)OS X 和 iOS 應用程序的最快捷的方式。Xcode 具有統(tǒng)一的用戶界面設計,編碼、測試、調試都在一個簡單的窗口內完成。
背景介紹
Xcode前身是繼承自NeXT的Project Builder。
The Xcode suite 包含有GNU Compiler Collection自由軟件 (GCC、 apple-darwin9-gcc-4.0.1 以及 apple-darwin9-gcc-4.2.1, 默認的是第一個),并支持 C語言、C++、Fortran、Objective-C、Objective-C++、Java、AppleScript、Python以及Ruby,還提供Cocoa、Carbon以及Java等編程模式。協(xié)力廠商更提供了 GNU Pascal,F(xiàn)ree Pascal, Ada, C#, Perl, Haskell 和 D語言。Xcode套件使用 GDB作為其后臺調試工具。
從Xcode 3.1開始,Xcode也可被用為iPhone OS的開發(fā)環(huán)境。
Xcode 4.0于2011年3月9日正式發(fā)行。該版本非Apple開發(fā)者注冊會員亦能從Mac App Store中付費下載, 收取US$4.99的費用。
從Xcode 4.1開始,針對OS X 10.6及OS X 10.7用戶從Mac App Store免費下載
Xcode主要版本是Xcode 5,支持iOS7,可以在Mac App Store免費下載,亦可在iOS開發(fā)者計劃網(wǎng)站下載。
Xcode6整合了蘋果在WWDC大會上發(fā)布的新語言Swift1.0版本。
2015年9月16日,蘋果在開發(fā)者官網(wǎng)發(fā)布Xcode7正式版,并將Swift語言升級到2.0版本[1] .
根據(jù)斯諾登提供的資料,美國政府研究人員創(chuàng)建了一個版本的蘋果軟件應用開發(fā)工具Xcode,希望借此將監(jiān)控后門植入到通過蘋果應用商店App Store發(fā)布的應用程序中。
應用編輯
Xcode運行于蘋果公司的Mac操作系統(tǒng)下,是蘋果公司向開發(fā)人員提供的集成開發(fā)環(huán)境(非開源),用于開發(fā)Mac OS X,iOS的應用程序。[3]
不管你用C、C++、Objective-C或Java編寫程序,在AppleScript里編寫腳本,還是試圖從另一個奇妙的工具中轉移編碼,你會發(fā)現(xiàn) Xcode 編譯速度極快。每次操作都很快速和輕松。
蘋果公司為用戶提供了全套免費的Cocoa程序開發(fā)工具(Xcode),和Mac OS X一起發(fā)行,在蘋果公司官方的網(wǎng)站下載。
自由撤消
Xcode 4 的虛擬模型和設計功能讓你可以更輕松的開發(fā)和維護應用程序。只需選擇應用程序中想要編寫的部分,然后模型和設計系統(tǒng)將自動創(chuàng)
建分類圖表,不僅可以顯示編碼,還可以讓你進行瀏覽。Mac OS X Core Data API 幫你的應用程序創(chuàng)建數(shù)據(jù)結構。更棒的是,它還自動提供撤消、重做和保存功能,無需編寫任何編碼。
參考資料庫
Xcode 整合的 Apple Reference Library 為所有的Apple開發(fā)者文件提供一個單獨的搜索和顯示界面,這些文件包括來自蘋果電腦公司網(wǎng)站的在線文件,以及存放在你電腦上的文件。新的參考資料庫甚至可以幫你將定期更新資料下載到你的電腦,保持文件的最新狀態(tài)。Xcode 將幫你快速找到最新的答案。
編譯器
Xcode3所使用的編譯器是gcc編譯器,而在Xcode4之后和版本中,Xcode所使用的編譯器已經(jīng)替換成為新的LLVM編譯器。LLVM編譯器的前端是clang。
Xcode 4 的核心部分是蘋果電腦公司下一代業(yè)界標準的 gcc編譯器gcc 4.0。新的編譯器利用許多先進的最優(yōu)化技術幫你從現(xiàn)存編碼中獲得更多性能。從超級計算世界借鑒來的自動向量化(Auto-vectorization)技術可以幫助你釋放每臺 Intel 系統(tǒng)中速度引擎的能量,而不需要編寫向量化編碼。其他的最優(yōu)化工具則支持反饋定向的最優(yōu)化,以及隱藏模塊分析。
Xcode快捷鍵
文件
CMD + N: 新文件; CMD + SHIFT + N: 新項目; CMD + O: 打開;
CMD + S: 保存; CMD + SHIFT + S: 另存為;
CMD + W: 關閉窗口; CMD + SHIFT + W: 關閉文件
編輯
CMD + [: 左縮進;CMD + ]: 右縮進;
CMD + CTRL + LEFT: 折疊;CMD + CTRL + RIGHT: 取消折疊;
CMD + CTRL + TOP: 折疊全部函數(shù);CMD + CTRL + BOTTOM: 取消全部函數(shù)折疊;
CTRL + U: 取消全部折疊;
CMD + D: 添加書簽; CMD + /: 注釋或取消注釋;
CTRL + .: 參數(shù)提示; ESC: 自動提示列表
調試
CMD + \: 設置或取消斷點;
CMD + OPT + \: 允許或禁用當前斷點;
CMD + OPT + B: 查看全部斷點;
CMD + RETURN: 編譯并運行(根據(jù)設置決定是否啟用斷點);
CMD + R: 編譯并運行(不觸發(fā)斷點);
CMD + Y: 編譯并調試(觸發(fā)斷點);
CMD + SHIFT + RETURN: 終止運行或調試;
CMD + B: 編譯;
CMD + SHIFT + K: 清理;
海量內存
Xcode 將賦予你創(chuàng)建諸如計算和渲染引擎應用程序的能力,這些應用程序使用64位內存定址。這非常適合數(shù)據(jù)集中的應用程序,其通過訪問內存中的數(shù)據(jù)運行速度更快,遠勝于磁盤訪問。Xcode 將為你提供工具來建立并調試適合 Intel Core i5, i7 和 Mac OS X Lion 的 32 或 64 位應用程序,還可以讓你創(chuàng)建包含32位和64位執(zhí)行能力的 Fat Binaries。
構建
眾所周知,在構建中引進多重處理器可以提高速度,Xcode 能幫你實現(xiàn)這個明顯的結論。利用支持 Rendezvous 的分布式構建功能,可以輕易地把編譯工作量分散到閑置的電腦上來寄放構建,或者更好是在單獨的電腦上開發(fā)一個專門的 Xserve 構建寄放區(qū),快速處理那些耗時的任務。
Java
Xcode 4 擁有眾多功能,為 Java 開發(fā)人員賦予了更多的開發(fā)能力。利用改進的 Code Sense 索引及 Ant 項目模板,Java 用戶可以繼續(xù)使用他們的標準 Java 包,并構建具有 Xcode 關鍵生產功能的工具。Java 代碼填充為你提供類名、方法、變量及其他關鍵信息。在 Xcode 中創(chuàng)建 Java應用程序比以往更容易。
輸入
因為 Xcode 支持 CodeWarrior 風格相關項目參考,所以可以保證把 CodeWarrior 項目文件快速方便地轉移到 Xcode。因為 Xcode 兼容 CodeWarrior 風格在線編碼匯編,所以從 CodeWarrior 到 Xcode 轉變的消耗得到降低, 也使得開發(fā)人員手動調整應用程序的臨界性能部分。
蘋果電腦公司的 Mac OS X 綜合開發(fā)環(huán)境Xcode 為各種類型的 Mac OS X軟件項目提供項目編輯、搜索和瀏覽,文件編輯,項目構建和調試設備等功能。
Xcode 可用來輔助開發(fā)應用程序、工具、架構、數(shù)據(jù)庫、嵌入包、核心擴展和設備驅動程序。Xcode 支持開發(fā)人員使用 C、 C++、Objective C、 AppleScript 和 Java。
Xcode 能夠和 Mac OS X 里眾多其它的工具協(xié)作,例如綜合用戶界面結構應用程序;編譯器如 gcc、javac 和jikes;還有調試工具如 gdb。
另外,你可以用 AppleScript Studio 組增加一個 Aqua 界面到系統(tǒng)和應用程序腳本、命令行工具、以及網(wǎng)絡應用程序中。以上三者無論如何都能在任何平臺組合成最強大的腳本環(huán)境。
遠程調試
調試全屏幕應用程序(比如游戲)具有很大的挑戰(zhàn)性。將調試窗口放在什么位置呢?有了 Xcode 2.0 的繪圖遠程調試,所有強大的 Xcode 調試功能(例如數(shù)據(jù)格式程序、Fix、Continue)都可以在遠程機器上用來調試應用程序。利用與遠程調試階段的加密連接,Xcode 可以保證你的數(shù)據(jù)安全。
開發(fā)
Xcode 4 允許你開發(fā)基于iOS的iPad、iPhone、iPod Touch 設備應用程序,只要你有Mac OS X Snow Leopard 10.6.2 以上版本 Mac OS 操作系統(tǒng),便可安裝ios sdk,如果你有iOS設備,便可讓Xcode把應用程序部署到你的iOS設備上,不然,你還可以使用iPhone仿真器進行調試。Xcode提供了友好而方便的應用程序開發(fā)環(huán)境,這樣你就可以開發(fā)出好的iOS應用程序了。
如果你是數(shù)據(jù)中心或云計算IT圈子的人,這一年多來應該一直在聽到普通的容器、尤其是Docker,關于它們的新聞從未間斷過。Docker1.0在今年6月發(fā)布后,聲勢更是達到了前所未有的程度。
動靜之所以這么大,就是因為許多公司在以驚人的速度采用Docker。在今年7月的開源大會(OSCon)上,我遇到了早已將服務器應用程序從虛擬機(VM)轉移到容器的無數(shù)企業(yè)。的確,Docker公司主管服務和支持的副總裁James Turnbull在會上告訴我,其中有三家大銀行一直在使用Docker的測試版,現(xiàn)已在生產環(huán)境中使用Docker。對任何早期技術來說,這無疑是極大的充滿自信的舉動,要知道它在安全至上的金融界幾乎聞所未聞。
與此同時,Docker這項開源技術不僅僅是紅帽和Canonical等Linux巨頭眼里的寵兒。微軟等專有軟件公司也在熱烈擁抱Docker。
那么,為什么大家都追捧容器和Docker呢?James Bottomley是Parallels公司的服務器虛擬化首席技術官,也是一位知名的Linux內核開發(fā)人員。他向我解釋,Hyper-V、KVM和Xen等虛擬機管理程序都“基于虛擬化硬件仿真機制。這意味著,它們對系統(tǒng)要求很高。”
然而,容器卻使用共享的操作系統(tǒng)。這意味著它們在使用系統(tǒng)資源方面比虛擬機管理程序要高效得多。容器不是對硬件進行虛擬化處理,而是駐留在單單一個Linux實例上。這反過來意味著,你可以“丟棄沒有用的99.9%的虛擬機垃圾,剩下一個小巧簡潔的膠囊式容器,里面含有你的應用程序,”Bottomley如是說。
據(jù)Bottomley聲稱,因此,借助經(jīng)過全面調優(yōu)的容器系統(tǒng),你就可以在同一硬件上擁有數(shù)量比使用Xen虛擬機或KVM虛擬機多出四到六倍的服務器應用實例。
是不是覺得聽起來很不錯?畢竟,你可以讓服務器運行多得多的應用程序。那么,為什么之前沒有人做過呢?實際上,之前有人做過。容器其實是個舊概念。
容器可以追溯到至少2000年和FreeBSD Jails。甲骨文Solaris也有一個類似概念,名為Zones;Parallels、谷歌和Docker等公司一直在致力于研發(fā)諸如OpenVZ和LXC(Linux容器)之類的開源項目,旨在讓容器運行起來順暢又安全。
的確,很少有人知道容器,但大多數(shù)人多年來一直在使用容器。谷歌就有自己的開源容器技術lmctfy(Let Me Contain That For You,意為“讓我容納你的程序”)。只要你使用谷歌的某項功能:比如搜索、Gmail、Google Docks或無論其他什么,就分配了一個新的容器。
然而,Docker建立在LXC的基礎上。與任何容器技術一樣,就該程序而言,它有自己的文件系統(tǒng)、存儲系統(tǒng)、處理器和內存等部件。容器與虛擬機之間的區(qū)別主要在于,虛擬機管理程序對整個設備進行抽象處理,而容器只是對操作系統(tǒng)內核進行抽象處理。
這反過來意味著:虛擬機管理程序能做容器做不了的一件事就是,使用不同的操作系統(tǒng)或內核。所以,舉例說,你可以使用微軟Azure,同時運行Windows Server2012的實例和SUSE Linux企業(yè)級服務器的實例。至于Docker,所有容器都必須使用同樣的操作系統(tǒng)和內核。
另一方面,如果你只是想讓盡可能多的服務器應用實例在盡可能少的硬件上運行,可能不大關心運行多個操作系統(tǒng)虛擬機。要是同一應用程序的多個副本正是你需要的,那么你會喜歡上容器。
改用Docker這一舉措有望每年為數(shù)據(jù)中心或云計算服務提供商節(jié)省數(shù)千萬美元的電力和硬件成本。所以難怪它們在一窩蜂地盡快采用Docker。
Docker帶來了之前技術所沒有的幾個新特點。第一是,與之前的方法相比,Docker讓容器部署和使用起來更容易、更安全。此外,由于Docker與其他容器領域的巨擘進行了合作,包括Canonical、谷歌、紅帽和Parallels,共同開發(fā)其關鍵的開源組件libcontainer,它為容器帶來了迫切需要的標準化。
與此同時,廣大開發(fā)人員可以使用Docker封裝、交付和運行任何應用程序,應用程序成為輕型的、可移植的、自給自足的LXC容器,可以在任何地方運行。正如Bottomley告訴我,“容器讓你立即享有應用程序可移植性。”
市場研究公司451 Research的資深分析師Jay Lyman補充道:“企業(yè)組織力求以一種高效、標準化、可重復的方式,讓應用程序和工作負載更易于移植和分發(fā),而有時很難做到這點。正如GitHub通過共享源代碼來促進合作和創(chuàng)新那樣,Docker Hub、Official Repos和商業(yè)支持也在幫助眾多企業(yè)通過改進封裝、部署和管理應用程序的方式,應對這個難題。”
最后但并非最不重要的,Docker容器易于部署到云端。正如Ben Lloyd Pearson在opensource.com上寫道:“Docker采用了一種特別的方式,以便可以整合到大多數(shù)DevOps(開發(fā)運營)應用程序當中,包括Puppet、Chef、Vagrant和Ansible,或者可以獨自使用,以管理開發(fā)環(huán)境。主要賣點是,它簡化了通常由另外這些應用程序執(zhí)行的好多任務。具體來說,有了Docker,人們就可以搭建與活動服務器一模一樣的本地開發(fā)環(huán)境,從同一個主機運行多個開發(fā)環(huán)境(每個開發(fā)環(huán)境有獨特的軟件、操作系統(tǒng)和配置),在新的或不同的服務器上測試項目,以及讓任何人都可以在設置一模一樣的情況下處理同一項目,無論本地主機環(huán)境怎樣?!?/p>
簡而言之,Docker能為你做的事情就是:相比其他技術,它能讓更多數(shù)量的應用程序在同一硬件上運行;它讓開發(fā)人員易于快速構建可隨時運行的容器化應用程序;它大大簡化了管理和部署應用程序的任務??偠灾?,我能理解作為一項企業(yè)級技術,Docker為何一下子躥紅。我只是希望它不負眾望,否則外頭會有一些憂心忡忡的CEO和CIO。
英文:http://www.zdnet.com/what-is-docker-and-why-is-it-so-darn-popular-7000032269/
相關文章
Deepin使用docker安裝mysql數(shù)據(jù)庫過程詳解
這篇文章主要介紹了Deepin使用docker安裝mysql數(shù)據(jù)庫過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-06-06dubbo服務引用創(chuàng)建Invoker代理對象
這篇文章主要為大家介紹了dubbo服務引用創(chuàng)建Invoker代理對象示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08在IntelliJ IDEA中使用Docker的開發(fā)指南
這篇文章主要給大家介紹了在IntelliJ IDEA中使用Docker開發(fā)指南,文中通過圖文介紹的非常詳細,對我們的使用Docker有一定的幫助,需要的朋友可以參考下2023-09-09