概念
開放源碼軟體通常是有著作權(copyright)的,它的許可證可能包含添加自定義項這樣一些限制:著意地保護它的開放源碼狀態,著者身份的公告,或者開發的控制。實際上,開源軟體同時涉及源碼本身和開發過程,涵蓋了三個方面的意義:免費分發的原始碼、模組化的體系和集市式的開發--在這種開發方式中,任何地方的任何人都可以參與最終產品的製造,三個方面互相之間有密切的聯繫,集市式的開發過程給開源軟體以強大的改錯能力,因為它將程式中的錯誤公開給了數量巨大的觀眾,他們都是潛在的改錯者。另一方面,任何人都可以復用和發行開源軟體的代碼這一事實又支持了公眾利益,因為創新的觀念被整個集市所共享。另外,"opensource"這一術語還被延伸到其他智力團體中,指那些可通過公開手段獲得的智力資源,比如報紙、教學課件等。GPL
大多數軟體許可證決意剝奪你的共享和修改軟體的自由。對比之下,GNU通用公共許可證力圖保證你的共享和修改自由軟體的自由。——保證自由軟體對所有用戶是自由的。GPL適用於大多數自由軟體基金會的軟體,以及由使用這些軟體而承擔義務的作者所開發的軟體。(自由軟體基金會的其他一些軟體受GNU庫通用許可證的保護)。你也可以將它用到你的程式中。當我們談到自由軟體(freesoftware)時,指的是自由而不是價格。
GNU通用公共許可證決意保證你有發布自由軟體的自由(如果你願意,你可以對此項服務收取一定的費用);保證你能收到源程式或者在你需要時能得到它;保證你能修改軟體或將它的一部分用於新的自由軟體;而且還保證你知道你能做這些事情。
為了保護你的權利,需要作出規定:禁止任何人不承認你的權利,或者要求你放棄這些權利。如果你修改了自由軟體或者發布了軟體的副本,這些規定就轉化為你的責任。
採取兩項措施來保護個人的權利。
(1)給軟體以著作權保護。
(2)給你提供許可證。它給你複製,發布和修改這些軟體的法律許可。
自由軟體沒有擔保(nowarranty)。如果由於其他某個人修改了軟體,並繼續加以傳播。
任何自由軟體不斷受到軟體專利的威脅。希望避免這樣的風險,自由軟體的再發布者以個人名義獲得專利許可證。事實上,將軟體變為私有。為防止這一點,必須明確:任何專利必須以允許每個人自由使用為前提,否則就不準許有專利。
意義
美國一些進步的評論家指出,在象網路這樣的虛擬環境中,驅動系統的底層代碼,尤其是廣為人知的那些應用程式之間的通信協定,它們在某種意義上很象現實社會中的法規。換句話說,這些代碼對網上的行為給出了一些規範,它鼓勵某些行為,而限制其他行為,就像現實社會的法律一樣。因此,開放源碼帶來了一個更民主的開發方式,在這種方式下,好的主意將被集體分享,而不是作為智力資本被個人秘藏著。在這種意義上,開放源碼實質上成為一種政治哲學。開放源碼的精神在於使用者可以使用、複製、散布、研究、改進軟體。最早可以回朔到1960年代。當時,售賣大型計算機的廠商如IBM,把一些軟體及原始碼一併送給客戶,讓客戶能夠因不同需求而自行更改軟體。在1991-1992年期間,住在芬蘭的LinusTorvald製造了第一版的Linux作業系統。在一群熱心的程式人員努力下,把Linux作業系統以及外圍的應用程式逐一打造。
套用
出名的作品除了趨於成熟的Linux作業系統外,還有Apache網頁伺服器、Perl程式語言、MySQL資料庫、Mozilla瀏覽器、OpenOffice、開源軟體無線電GNUradio等。在政府的推動及各軟體大廠(如IBM、Redhat、Apple等)的推動下,預料這股鏇風將會掀起新的軟體革命。