安卓系統是開源的,開源是啥意思?

山晚一飛


說到開源不得不先說說安卓。什麼是安卓呢?安卓是操縱系統。放眼市場,由當年的諾基亞的塞班系統,蘋果IOS系統,到後起之秀安卓系統。智能手機市場發生了翻天覆地的變化。當年諾基亞智能手機龍頭老大的光輝已不再。可以說主要原因就是安卓系統的出現,而且安卓是開源的。那開源是什麼意思呢?

我認為開源即開放原始代碼,分享出來,供大家自由使用,學習,修改,分享

開源就是把源代碼開放。這個源代碼對我們的程序,軟件來說就像蓋房子的施工圖紙一樣。非常重要。或者是我們做菜的菜譜一樣。舉個例子:就像我們自己研究了一道新的菜,清蒸茄子,味道非常好,所謂獨樂樂不如眾樂樂,迫不及待想和大家分享。然後我們就把這清蒸茄子的秘製做法放到網上。按照我的做法,大家都能品嚐到美味的清蒸茄子了。但有的小夥伴們並不滿足現有的清蒸茄子,他們覺得不太適合自己的口味。然後基於這道菜的做法,做了一些調整。大明給這道菜加了鹽。李四給這道菜增加了肉,生薑等,最後又有了2道新菜,油淋茄子,紅燒茄子。我覺得就是像這種把菜譜分享出來,供大家自由使用,學習,修改,分享就是我們說的開源。

開源下的國內手機品牌廠商的產品

正因為手機系統android開源,國內各大品牌手機都對其進行修改。讓我們感受到了各種款式的好手機。也是對我們這些機友們的福利吧!比如華為,小米,oppo對android進行了修改,完善。有了自己的EMUI MIUI ColorOS

android雖開源,但是我們還是需要遵守其協議

我認為我們在生活中,我們能看到各式各樣的聲明,就像我們把菜譜分享出來一樣,為了保險起見我們要聲明一下,大家怎麼用都 可以。但我們不承擔使用後的風險。所以有各種開源協議。比如GPL BSD等等。不同的協議也有不同的特點。像安卓就是GPL協議。當我們基於安卓開發出EMUI MIUI的時候,新開發的系統也需要遵循GPL協議進行開源。那我們假設,如果安卓採用的是BSD協議。我們要是基於安卓開發了一個A OS 。這個A OS可以開源,也可以不開源。根據這個BSD協議,可能我們只需要在這個A OS裡面保留原作者的信息即可。這就是我們所說的開源協議


總結:

我認為開源即開放源代碼,分享出來,供大家自由使用,學習,修改,分享。正因為開源才讓我們的產品那樣豐富多樣。才是安卓系統那麼受歡迎。我們在修改源代碼進行私人定製的時候,也不要申明下原作者的信息。對他們的勞動成功也是最大的肯定以及尊重。


胖子李愛互聯網


感謝您的閱讀!

其實安卓系統並非都是開源的,我們先搞清楚開源到底是什麼,在說說安卓系統哪些是開源的。

開源是什麼

開源,全稱開放源代碼。通常說的是IT領域,就是你寫的軟件和代碼和完全公佈出來供大家學習使用,但是並不是無條件的,開源的軟件或代碼也有版權的,也是受法律保護的。

當今市面上開源軟件佔據主流,很多人以為開源就是免費的,其實不然。

開源軟件主要特點是開放,任何人都可以獲取到軟件源代碼,可以用於學習,甚至可以修改後重新發布軟件,當然發佈的內容實在版權限制範圍之內。

那版權限制具體是什麼限制呢?這就得說說伴隨開源的開源協議了!

主流的開源協議有以下幾種:

GPL:GNU通用公共許可證(GNU General Public License)

  • 要求軟件必須無條件開放所有源代碼,並規定任何人都能以源代碼的形式將軟件複製和發佈。


  • 如果你發佈的軟件中包含受GPL保護的源代碼,那麼你的軟件也就繼承了GPL協議,併成為GPL開源軟件,也就是說你的軟件也必須開源。


  • GPL 並不排斥對自由軟件進行商業性質的包裝和發行,也不限制在自由軟件的基礎上打包發行其他非自由軟件。

LGPL:GNU較寬鬆公共許可證 (GNU Lesser General Public License)

  • LGPL 是GPL的衍生品,GPL要求使用者發佈的軟件也必須開源,這不利於商業軟件的發展。


  • LGPL 協議的開源代碼可以被商業軟件作為類庫引用併發布和銷售。商業軟件通過類庫引用(link)的方式使用 LGPL 類庫,而商業軟件無需開源。


  • 如果修改了LGPL協議的源代碼,涉及修改的代碼和衍生的代碼必須遵循LGPL協議。所以LGPL協議的源代碼適合引用,而不適合在此基礎上二次開發。

BSD開源協議

相比於GPL協議,BSD協議則自由很多。用戶可以自由的修改源代碼,並且可以講修改後的代碼作為開源或者專有軟件再發布。

但這種自由必須滿足三個條件:

  • 如果再發布的產品中包含源代碼,則在源代碼中必須帶有原來代碼中的BSD協議。


  • 如果再發布的只是二進制類庫/軟件,則需要在類庫/軟件的文檔和版權聲明中包含原來代碼中的BSD協議。


  • 不可以用開源代碼的作者/機構名字和原來產品的名字做市場推廣。

BSD協議鼓勵代碼共享和開源,但要充分尊重源代碼作者和著作權。此協議對商業軟件非常友好,所以很多公司在選開源產品時首選BSD協議。

Apache 協議 (Apache Licence)

Apache Licence是著名的非盈利開源組織Apache採用的協議。該協議和BSD類似,同樣鼓勵代碼共享和開源,需要充分尊重原作者的著作權,同樣允許代碼修改,並作為開源或專有軟件再發布。

不過需要滿足的條件有點差異:

  • 需要給代碼的用戶一份Apache Licence
  • 如果你修改了源代碼,需要再被修改的文件中說明。
  • 在修改或衍生的代碼中,需要帶有原來代碼中的協議,商標,專利聲明和其他原來作者規定需要包含的說明。
  • 如果再發布的產品中包含一個Notice(通知)文件,則在Notice文件中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但不可以表現為對Apache Licence構成更改。

Apache Licence也是對商業軟件非常友好的協議。用戶可以在需要的時候修改代碼來滿足需求,並作為開源或專有軟件再次發佈或者銷售。

MIT協議

MIT是和BSD一樣寬範的許可協議,源作者只想保留版權,而無任何其他了限制.也就是說,你必須在你的發行版裡包含原許可協議的聲明,無論你是以二進制發佈的還是以源代碼發佈的.

開源協議還有很多,這裡就不一一介紹了,比如去年GitHub上很火的996事件,誕生了

996.ICU

協議。只要符合OSIA 認定,都可以做為開源軟件許可證使用。

如果還不太懂開源協議的,可以看下下圖,協議選擇的邏輯圖,大家一看應該就明白了。


解釋下文章開頭提出的其實安卓並不是完全開源的疑問

大家都知道安卓是基於linux系統開發的,但是大家可能不知道的是linux有上百種版本。

Android 是使用的linux系統內核,但此內核並不是基於GPL的Linux系統。

因為基於GPL的Linux 系統裡支持的功能,Android 大都沒有支持,比如Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。

谷歌為了達到商業化目的,移除了GPL約束的源代碼。例如Android將驅動程序移到 Userspace,使得Linux driver 與 Linux kernel徹底分開。

其次是找替代品來代替受約束的源代碼功能,比如用Bionic 取代Glibc、用Skia 取代Cairo、用opencore取代FFmpeg等等。

當然除了內核外,也有一些功能使用的源代碼是受GPL保護的。所以這就是我說的安卓並不是完全開源的原因。

安卓之所以在谷歌的控制之中,其實是因為安卓的framwork層和GMS(谷歌移動服務)。

總結

開源就是開放源代碼,但是為了保護原作者權益或代碼保護,誕生了開源協議。現在用戶討論開源軟件的性質,其實就是在說開源協議。正因為開源,軟件技術才得以飛速發展,我國也有很多優秀的科技公司參與並開源軟件,比如阿里巴巴的Dubbo服務,還有我灰常中意並經常使用的fastJson庫。但也有些公司單純為了KPI而去開發並開源項目,過後便不再更新維護,這就是一種形式主義的開源,這其實是一種阻礙開源發展的行為!

開源是一種正向循環,我們在享受開源帶來的便利時,也應該為開源給出自己的貢獻!


我是非著名攻城獅,希望我的回答對你有所幫助,如果方便,謝謝你的點贊支持!


非著名攻城獅


開源就是開放,誰進來都行,身體想咋用就咋用,不過你的身體也得給我任意使用。


最典型的開放系統就是手機安卓系統,安卓系統是谷歌旗下的產品,當初為了和同行業對手競爭,做了石破天驚的一舉,就是把自己系統的一切透明化,共享化。

在這樣一種做法下,吸引來最多的生態開發支持者,讓塞班手機系統消失在人們的視野中。

不夠開放的微軟WINDOWS手機系統,也是曾經想要染指手機操作系統的,但,天生不開放的缺陷,讓想要資源共享的開發者不能為我所用,這樣WINDOWS手機系統就被邊緣化。


谷歌之後,中國的華為等高科技企業看到了透明化的開放優勢,要想超越谷歌不受所制約,推出的鴻蒙系統等都是開源的,代碼彼此借鑑拿來應用,無需專利限制與保護。

為什麼如今的人工智能發展的這麼快?



就是因為有了Github這個開源的程序平臺,讓世界各地的行業精英們趨之若鶩的在平臺上發佈項目,一天又一天持續的搭建,就讓信息大廈在一點一滴的趨於完美。

你的技術也就是我的技術,這就是開源的雙贏,開放的結果。


七色慧


開源,全稱為開放源代碼,就是用戶利用源代碼,在遵循開源協議(GNU)進行使用、編譯和再發布。雖然大家可以修改,但開源系統同樣也有版權,也受到法律保護。用戶在使用開源產品時,不但需表明產品來自開源軟件和註明源代碼編寫者姓名,而且還應把所修改產品返回給開源軟件,否則所修改產品就可視為侵權。

簡單的來說,比如谷歌開發了安卓系統最基礎的框架了,華為等手機廠家可以利用其源代碼開發修改升級匹配自身的系統,但是因為基礎源代碼來自於安卓(所以我們的手機開機時一般都會體現POWERED BY Android)。而且開發者對於源代碼的任何改進都必須要告知開源軟件的公司,這樣也有利於開源的公司進一步提高源代碼。在這方面華為為安卓的發展壯大做出了巨大的貢獻。

開發系統很難嗎?

早期的時候可能困難,但是以現在華為的技術水平來說,開發一個手機操作系統根本不難,但是為什麼一直不推出自己的系統呢?這是因為系統容易,生態難。

每一種操作系統都有它的運行環境,所有你在下載APP的時候,不同的操作系統是要下載不同的APP的。一個新的操作系統進來,沒有你那個系統的APP,那麼根本沒人會使用你的手機,因為它等於以前的老人機。

舉個例子:比如華為開發了一個系統(據傳是鴻蒙),但是微信、支付寶、百度等等這些企業都不開發適用於鴻蒙系統的APP軟件,那麼鴻蒙系統將會面臨的無軟件可下載的情況,這時候,這個系統等於廢棄的一個系統。之前微軟在意識到的手機操作系統的重要性之後,也推出了Windows Phone,不過最終也敗下陣來了,因為沒有匹配的app可以下載,所以安卓並不是強大,只是它搶佔了先機而已。

PS:很多人會說那蘋果屬於閉源系統,這些軟件開發公司是怎麼開發APP的。簡單的來說app應用是需要調取系統的權限完成一些特定的工作,系統閉源可以簡單理解成禁止其他開發者獲取系統的代碼,但是應用需要獲取的權限是可以賦予的,還有編寫應用的代碼也是開放的,ios雖然不讓你看源碼,但它也提供了sdk用來調用系統資源,也提供了api接口來和系統通信調度,所以微信支付寶這些公司可以開發適用於ios的app。

華為的解決辦法

華為最好的解決辦法是直接開發出可以兼容安卓APP的系統,那麼關於系統的問題就全部迎然而解了,華為的回應中也說明有能力繼續發展和使用安卓生態,所以大概率預計新系統是可以兼容的。

假設華為的系統無法兼容安卓的app,那麼需要目前所有開發APP的各家企業支持,重新開發適用於華為系統的app應用,這個難度就有點大了,國內或許還好,國際就比較困難了,畢竟別人沒有義務做這件事。

總結

一個操作系統就像一個生態圈,一旦這個生態圈穩定,其它的系統就很難進得來,電腦等其它操作系統也是如此,所以華為的困難不在與開發操作系統,而在於其生態圈的架構,最簡單的方式就是直接兼容安卓app。


鯉行者


開源,顧名思義,就是開源源代碼,但是使用者需要遵守開源規則。

安卓開源,就是說所有的廠商或者開發者都可以直接使用安卓的源代碼去開發,但是需要遵守谷歌的使用條件。

比如說,

全球所有廠商必須預裝Google全家桶(中國內地,朝鮮除外,因為谷歌已經退出該市場,服務不可用)。

而對於國內的安卓在開機時都會有一個Android的標籤,這個是在Android 4.4開始強制要求的,不然以前很多廠商改成跟自己家的系統一樣,完全不把谷歌放在眼裡。

其次是核心代碼功能不能隨意更改,必須遵守API的協議,某些廠商亂改底層導致一堆兼容性變差,谷歌被黑鍋(說得就是中國定製的Android)。

還有很多條例就不一一列舉。

但是開源必須遵守開源精神,這對作者也是一個尊重。

作為個人開發者的我,使用他人代碼依然會註明原作者信息。


天零


開源從字面上的理解就是開放源頭,使用者可以在源代碼的基礎上進行修改和補充,形成具有特點的定製功能,很多人認為開源就是免費的,它只是對外界開放,但必須要符合原始開發公司的要求。



其中最具代表性的開源系統就是Linux,各種應用不斷完善更新都離不開它。最大的特點是開放源代碼可以自由定製,由於用戶的技術水平有限,很多的硬件和軟件廠商並沒有提供開源的功能,這就要靠使用者在選擇操作系統時根據自己的技術水平來選擇,這也說明了很少人用開源操作系統的原因。而對於專業的開發人員來說,開源系統有很大的優勢,開發應用可以隨心所欲也沒那麼複雜,因為是開放的源代碼,可以根據自己特定的需求進行修改,這對於互聯網開發人員來說,是非常重要的幫助。

像Android的系統就是開源的,基於Linux程序開發的一個Java虛擬器,然後在這個設備裡運行Java。很多手機廠商在原生Android系統裡添加一些定製的功能,形成獨有的系統特色,這些操作也不用谷歌授權。但有個前提,只能修改一些普通的代碼,重要的核心部分不能修改。



系統開源給了大家很多的便利,用戶也在不斷增長,對於開源的部分也是會受到一定的限制,谷歌公司可以給你空間去創新,但核心技術還是在別人手裡,只有開拓局面,掌握核心技術開發自己的操作系統才是王道。


星河方舟


全稱為開放源代碼,就是用戶利用源代碼,在遵循開源協議(GNU)進行使用、編譯和再發布。雖然大家可以修改,但開源系統同樣也有版權,也受到法律保護。用戶在使用開源產品時,不但需表明產品來自開源軟件和註明源代碼編寫者姓名,而且還應把所修改產品返回給開源軟件,否則所修改產品就可視為侵權。

簡單的來說,比如谷歌開發了安卓系統最基礎的框架了,華為等手機廠家可以利用其源代碼開發修改升級匹配自身的系統,但是因為基礎源代碼來自於安卓(所以我們的手機開機時一般都會體現POWERED BY Android)。而且開發者對於源代碼的任何改進都必須要告知開源軟件的公司,這樣也有利於開源的公司進一步提高源代碼。在這方面華為為安卓的發展壯大做出了巨大的貢獻。

開發系統很難嗎?

早期的時候可能困難,但是以現在華為的技術水平來說,開發一個手機操作系統根本不難,但是為什麼一直不推出自己的系統呢?這是因為系統容易,生態難。

每一種操作系統都有它的運行環境,所有你在下載APP的時候,不同的操作系統是要下載不同的APP的。一個新的操作系統進來,沒有你那個系統的APP,那麼根本沒人會使用你的手機,因為它等於以前的老人機。

舉個例子:比如華為開發了一個系統(據傳是鴻蒙),但是微信、支付寶、百度等等這些企業都不開發適用於鴻蒙系統的APP軟件,那麼鴻蒙系統將會面臨的無軟件可下載的情況,這時候,這個系統等於廢棄的一個系統。之前微軟在意識到的手機操作系統的重要性之後,也推出了Windows Phone,不過最終也敗下陣來了,因為沒有匹配的app可以下載,所以安卓並不是強大,只是它搶佔了先機而已。

PS:很多人會說那蘋果屬於閉源系統,這些軟件開發公司是怎麼開發APP的。簡單的來說app應用是需要調取系統的權限完成一些特定的工作,系統閉源可以簡單理解成禁止其他開發者獲取系統的代碼,但是應用需要獲取的權限是可以賦予的,還有編寫應用的代碼也是開放的,ios雖然不讓你看源碼,但它也提供了sdk用來調用系統資源,也提供了api接口來和系統通信調度,所以微信支付寶這些公司可以開發適用於ios的app。

華為的解決辦法

華為最好的解決辦法是直接開發出可以兼容安卓APP的系統,那麼關於系統的問題就全部迎然而解了,華為的回應中也說明有能力繼續發展和使用安卓生態,所以大概率預計新系統是可以兼容的。

假設華為的系統無法兼容安卓的app,那麼需要目前所有開發APP的各家企業支持,重新開發適用於華為系統的app應用,這個難度就有點大了,國內或許還好,國際就比較困難了,畢竟別人沒有義務做這件事。

總結

一個操作系統就像一個生態圈,一旦這個生態圈穩定,其它的系統就很難進得來,電腦等其它操作系統也是如此,所以華為的困難不在與開發操作系統,而在於其生態圈的架構,最簡單的方式就是直接兼容安卓app


將頓電池


首先我們要理解開源的字面含義


開就是開放,開發
源就是源碼,底層的代碼或者是說是迭代的代碼


從這兩個方面來講,我們就好理解開源的含義了


開放,開發


安卓系統現在是世界上最大的智能手機操作系統,也是最開放的手機操作系統。安卓系統是開源的,他的系統的代碼會向全世界的人開放,代碼開放意味著其他人可以更改你的系統代碼,在裡面可以做成他們想要的功能,也就是深度的定製。像以前的很流行的刷機,當然,現在也比較流行,只是人越來越少了,至少在我的身邊是這個樣子。


還有,開源的安卓手機,會被各種開發者開發,典型就是獲取root權限,之後就可以玩手機了。這主要是面向開發者開放。普通人是沒有什麼興趣去了解的。


還有一個就是開發了。一個開源的手機操作系統,必然會有很多的手機開發者。也叫手機開發工程師,而Java就是一個典型的面對手機端的編程語言。安卓的開源,在全世界為它自己的系統開發網羅了大量的開發人員。包括大公司的工程師,當然,也有刷機的大神。他們的出於自己的努力或者是興趣,大大的加速了安卓的版本更新,這裡主要是谷歌的人員。


源碼,底層的代碼或者是說是迭代的代碼


手機系統和應用的運行,其實都是代碼在運行。代碼是他們的基礎,沒有底層的系統架構代碼,就不會有系統。你連繫統桌面都不會看到,更不用說運行一個應用了。系統的更新依靠的是發現代碼裡的漏洞或者的優化代碼的運行結構,加快運行速度,直接就體現在手機的流暢性上了。其實還是底層的代碼的迭代。


應用的更新也是迭代的代碼,只是商家不會把自己的源碼公佈出來的。開發一個應用,最最基礎的就是自己的源碼。要是你拿了我的源碼,自己搞一個同樣的應用,那我怎麼辦?大家可以去了解一下,開發一個應用,只是一個應用的代碼開發部份是怎麼樣的就可以了。


如果你喜歡我的文章的話,請點贊或者評論區留言

我們一起討論和交換觀點

你的鼓勵是我最大的動力


看點消息


歡迎在點擊右上角關注:「太平洋電腦網」,不定時放送福利哦!

開源,全稱為開放源代碼,是每個人都能看到,每個人都可以在規則之內使用,使用和開發之後需要把你的產品返回到代碼之中。

主要是為了人人為我,我為人人的精神,共同推動這個社區或者是這個系統進步。

安卓開源,那就是谷歌需要會把安卓的代碼公佈公開出來,方便用戶在這個代碼的基礎上進行學習,同時也能修改,甚至可以進行商業化。

但是,你在這個基礎上開發和修改的代碼也需要公佈出來,不能只索取不付出的,需要求同存異,互利共贏。

當然,這樣做的方式,是想要通過全世界的程序員的力量,把開發的工作的難度降低了,提高了程序員的工作效率,避免重複造輪子。

同時,如果你用到了別人的代碼,你需要備註代碼的作者,表示對於作者的尊重。

所以說,安卓系統是全世界的程序員的成果,因為大家在這個基礎上開發了是需要把代碼公開的,供大家使用和學習的。這也是安卓能這麼快發展和進步的原因,因為這匯聚了全世界程序員的智慧。

所以,世界上沒有任何一個人能夠阻止其他人去使用安卓系統的代碼。谷歌不授權,也只不過是不能使用Google的APP,也不能使用GSM服務協議而已。當然,這個在國外影響挺大的,但是依然可以使用安卓系統的。


太平洋電腦網


安卓系統開源,就是安卓系統源代碼對外開放,給你舉個例子,假如你要寫小說,小說的內容就像系統裡面的代碼,然後你發佈到網上那麼其他網站就會找你合作,希望得到你的授權,那麼你同意過後才能發佈,你當然希望有更多的人來看你的小說,也希望讀者能給你提提建議,那麼你肯定也會要求網站備註這個小說的作者是誰,一來防止別人修改你的小說內容,二來你可以收到讀者的建議!那麼你就會不斷的完善其小說的內容!

那麼你的小說內容對外發布,就相當於把源代碼公開,這就是系統開源,然後就是別人拿你的小說內容拍電影,它也要表明影片內容的作者及作品,這相當於把你的作品作為影片內容的框架,可能在小說的內容上修改一下,然後拍成影片發佈,說到這裡,是不是明白什麼是系統開。

也就是說我可以將我的系統開放給你使用,但是你只能在系統上進行創作和修改,因為這系統裡面有我的版權技術在裡面!我只是給你免費使用而已,當我不想給你使用,你必修刪除我在系統裡面的版權技術。


分享到:


相關文章: