自由軟體和開放軟體的定義和差異

定義

自由軟體之間的差異是基於 Richard Stallman 於 1985 年正式製定的 4 條法律,因此可以免費查看、編輯和共享電腦程式。另一方面,開放軟體意味著幾乎無法存取程式碼,使製造商的分發選項更加靈活,並限制最終使用者的權利。

兩者都促進對原始程式碼的存取超越差異

自由軟體的特點

自由軟體的製定誕生了一個名字:理查德·斯托曼(Richard Stallman)。這位電腦科學家——由於他好奇的性格而成為一個相當有個性的人——在智力上吸收了北美技術反主流文化的影響,這種反主流文化擁護最廣泛意義上的信息自由的理念。

印表機事故讓斯托曼反思,並最終定義了自由軟體。

1980 年,斯托曼工作的公司收到了一台新的施樂印表機。對於先前的型號,斯托曼本人修改了印表機驅動程序,以便在列印作業以及印表機是否出現卡紙時通知使用者。但新型號的驅動程式不包含其原始程式碼,需要重新編譯才能進行修改。

其管理的 4 項原則

在最初的發脾氣之後,這件事讓斯托曼反思了他前幾年一直在思考的一些事情,以及他最終會制定一些規則,所謂的自由軟體四大自由,分別是:

  • 自由 0:出於任何目的使用該程式。
  • 自由1:研究程序並修改它以適應不同的用途。
  • 自由 2:分發程序的副本。
  • 自由3:改進程序,有義務將改進結果公開以造福社區。

為了確保自由 1 和自由 3 的實現,擁有原始碼是一個基本要求,而這正是現在著名的施樂印表機的驅動程式所不允許的。

1983年,Richard Stallman本人宣布啟動GNU項目,目的是建立一個完全基於自由軟體授權模式的作業系統。

自由軟體基金會是在 1985 年這場運動的熱潮中誕生的,它是一個在國際上支持自由軟體開發、幫助開發者社群並指導使用者的實體。

特別是由於 GNU 項目以及圍繞它開始產生的運動,誕生了多種免費許可下的應用程式倡議,這些應用程式試圖成為商業對應程序的替代品,儘管它們具有光環(從未被認可)。可能) 。推斷)他們在技術進步方面又落後了一步。

GNU 計畫的問題在於,經過幾年的研究,它缺乏可以使用的核心。1991 年,芬蘭電腦科學專業學生 Linus Torvalds 的努力解決了這個問題。

Torvalds 的核心稱為 Linux,它與 GNU 專案的其餘元件非常契合,也引起了致力於該核心的開發人員社群的興趣,因此兩者的聯合成果很快就開始作為GNU/Linux進行分發。後來,GNU 專案創建了另一個核心 The Hurd,但並不是很成功。

儘管 GNU/Linux 是自由軟體的典範,但它並不是唯一在此類許可證下取得成功的專案;LibreOffice辦公室套件、Apache 伺服器、GIMP 照片編輯程序,甚至其他作業系統(例如 FreeBSD)也需要免費授權。

這些也已經激增和多樣化,但只要尊重上述四項自由,許可證就是免費的。

開放軟體的特點

雖然我們可以為自由軟體指定一個“起點”,即它誕生的特定時刻,但對於開放軟體來說,做到這一點並不容易,因為這種哲學自計算誕生以來就已經在環境中漂浮了。

在1940 年代的第一台電腦中,並沒有與機器分離的軟體概念,儘管自19 世紀Ada Lovelace(被認為是歷史上第一位程式設計師)工作以來,程式作為演算法的概念就已經存在。

這些第一台計算機是使用一系列開關直接編程的。直到 20 世紀 50 年代,程式才開始出現差異化,並開始儲存在外部媒體(例如磁帶)上,無需對電腦進行物理上的重新編程即可載入。

最初,軟體被認為是電腦的一個組成部分,硬體製造商將其與一系列程式(作業系統和其他很少的東西)一起出售,因此用戶必須購買其餘的必要軟體……或者面對稀缺性(記住我們正在談論計算的第一步),自己開發。

很多時候,負責開發應用程式的人並不是專門從事電腦使用的科學家,而是不同科學和經濟背景之間存在差異的使用者背景。結果是他們沒有獲得該程式的許可,而是在有共同關注點、專業和需求的朋友和熟人之間分發原始程式碼(很多時候,應用程式是用解釋語言編寫的,而不是編譯的)。

開放和免費之間的區別

開源並不意味著自由軟體,儘管自由軟體確實意味著開源以保證自由 1 和 3,正如我們之前所看到的。

但是,如果我們分發一個帶有可訪問原始程式碼的程序,我們如何保證它不會被複製、修改或其他我們不想要的東西?好吧,為了許可證。

要使用程序,您通常必須接受使用者許可證,該許可證授予使用者自由,但也規定了使用者對該程序的義務。

實踐中是否有此類案例?是的,雖然它在最終用戶的應用軟體中並不常見,但它在專業軟體中更為典型,特別是對於工業用途和非常特定的任務的應用程序,其中有必要使程式適應每個用例。

在這些情況下,原始程式碼的可用性需要能夠修改其用途,使其適應所需的內容,但根據非自由許可證,原始程式碼的分發甚至修改可能會被阻止。

據說開源軟體可以增強協作開發,對於自由軟體來說也是如此,兩者在這方面沒有區別。像 GNU/Linux 或 LibreOffice 這樣的專案就是自由軟體領域協作專案的優秀例子。

公司也根據自己的方便使用一種或另一種理念,在這方面也沒有區別。