zaibd/wkpdtw huggingface dataset:
GNU 組譯器（英語：GNU assembler），是由 GNU 計劃所使用的組譯器，一般稱為 gas，或依其可執行檔名稱簡稱為 as。它是 GCC 的預設後端。它用於組譯 GNU 作業系統、Linux 核心以及其他各種軟體。它是 GNU Binutils 包的一部分。

GAS 的可執行檔被命名為 as，Unix 組譯器的標準名稱。GAS 是跨平台的，可以執行或為不同的電腦系統結構編譯。GAS 依據 GNU 通用公眾授權條款第三版釋出，為自由軟體。



通用語法

GAS 支援適用於所有支援架構的通用語法。通用語法包括組譯指令和注釋方法。

指令

GAS 使用組譯器指令（也被稱為偽操作），它們作為關鍵字指示開始一個時期，與 C 語言中的預處理指令表現相同。雖然無論目標架構如何，大多數可用的組譯指令都是有效的，但一些指令仍然因機器不同而不同。

注釋

GAS 支援兩種注釋風格：

多行注釋：

與 C 語言類似，以一對斜線 - 星號對開始和結束：

```
/
* 
注释
*/
```

單行注釋：

在不同的架構中組譯時，單行注釋有幾種不同的格式。


* #用於以下平台中：i386，x86-64，i960，68HC11，68HC12，VAX, V850，m32r，M880x0。

* ; 用於以下平台中：AMD 29k family，ARC，H8/300 family，HPPA,PDP-11，picoJava，Motorola，PowerPC。

* @用於 ARM 平台。

* | 用於 680x0 平台。

* ! 用於 Renesas SH 平台。



用法

作為流行編譯器套件 GCC 的後端，GNU 組譯器在編譯現代開源軟體中有非常廣泛的應用。在 Linux 系統上，GAS 經常用作與其他 GNU 軟體結合的組譯器。因為 OS X, 修改後版本的 GAS 也可以在麥金塔作業系統的開發工具包中找到。



範例程式

一個標準的「Hello, world!」程式，執行於 Linux IA-32：



批評

那些更習慣於 Intel 語法的人認為，比起其他組譯器，在 x86 和 x86-64 平台上不支援使用 Intel 語法就是一大敗筆。

然而，自從 2.10 版本，Intel 語法可以通過使用 `.intel_syntax` 指令使用。



參見


* GNU toolchain

* 二進位檔案描述庫

* 組譯器列表



參考文獻



外部連結


* 官方網站

* Gas 手冊 （頁面存檔備份，存於網際網路檔案館）

* A comparison of GAS and NASM（頁面存檔備份，存於網際網路檔案館），位於 IBM

* `as`: the portable GNU assembler – 參考，單一 UNIX® 規範第 7 期，由國際開放標準組織釋出
GNU Bazaar（以前稱為 Bazaar-NG，命令列中稱爲 `bzr`）是由 Canonical 贊助開發的分散式和主從式版本控制系統。

Bazaar 可以由一個開發本地內容的多個分支的開發人員使用，也可以由跨網路協同運作的團隊使用。

Bazaar 是用 Python 編寫的，有適用於主要 Linux 發行版、 Mac OS X 和 Microsoft Windows 的軟體套件。 Bazaar 是免費軟體，是 GNU 專案的一部分。



特徵

Bazaar 命令類似於 CVS 或 Subversion 中的命令。通過在人們希望版本化的目錄中呼叫 `bzr init` ，可以在沒有遠端儲存庫伺服器的情況下啟動和維護新專案。

與不使用中央伺服器的純分散式版本控制系統相比，Bazaar 支援使用或不使用中央伺服器，即可以連接伺服器上載版本，也可以只作爲本機版本控制使用。可以在同一個專案中同時使用這兩種方法。Launchpad 和 SourceForge 網站為 Bazaar 管理的專案提供免費代管服務。

Bazaar 支援與部分版本控制系統一起工作。這允許使用者從另一個系統（例如 Subversion）分支，進行本地更改並將它們提交到 Bazaar 分支，然後再將它們合併回另一個系統。Git 和 Mercurial 也提供唯讀存取權限。 Bazaar 還允許與許多其他系統（包括 CVS、Darcs、Git、Perforce、Mercurial ）進行互操作，允許匯入和匯出歷史。

Bazaar 支援名稱來自完整 Unicode 集的檔案。它還允許提交訊息、提交者名稱等使用 Unicode。



歷史

Baz：早期的 Canonical 版本控制系統

「Bazaar」這個名字最初是由 GNU arch 客戶端 _tla_ 的一個分支使用的。這個分支在 2008 年為了和現在的 Bazaar 軟體區分開來，改名爲 Baz。 Baz 於 2004 年 10 月由 Canonical 員工 Robert Collins 宣布並一直維持到 2005 年。當時名為 Bazaar-NG （現在的 Bazaar）的專案被宣布為 Baz 的繼任者 Baz 已被棄用並停止開發。 Baz 的最後一個版本是 1.4.3 版，於 2005 年 10 月釋出。計劃中的 Baz 1.5 版本於 2006 年被放棄。 

Bazzar

2005 年 2 月，曾在會談中和他的部落格中描述和審查過許多版本控制系統的開發人員 Martin Pool 宣布，他已被 Canonical 聘用，並負責「構建開源駭客會喜歡使用的分散式版本控制系統」。公共網站和郵寄清單於 2005 年 3 月建立，第一個被編號的預釋出版本 0.0.1 於 2005 年 3 月 26 日釋出。

Bazaar 從一開始就被認為是與 GNU arch 和 Baz 不同的軟體。它具有不同的命令集，並且是完全不同的代碼庫和設計。 Bazaar 最初的目的是作為後來整合到 Baz 中的功能的測試平台，但到 2005 年年中，許多主要的 Baz 開發人員已經開始主要直接在 Bazaar 上工作，而 Baz 被放棄了。

Bazaar 1.0 版於 2007 年 12 月釋出。2008 年 2 月，Bazaar 成為 GNU 專案。2012 年 4 月，Martin Pool 離開了 Canonical，專案的開發步伐放緩。根據 Jelmer Vernooij 的說法，Canonical 的 Bazaar 團隊的成員在 2012 年初被分配到不同的任務，他本人在 7 年來為該專案做出貢獻後，於 2012 年底停止了對 Bazaar 的貢獻。2013 年 3 月，關於 Bazaar 是否仍然有效維護以及 Emacs 是否應該轉移到另一個版本控制系統的討論在 GNU Emacs 郵寄清單開始。2014 年 1 月， Eric Raymond 提議並協調將 GNU Emacs 從 Bazaar 過渡到 git 版本控制系統，這一過渡於 2014 年 11 月完成。同樣，Bugzilla 專案在 2014 3 月從 Bazaar 改爲使用 git，其中一個原因是 Bazaar 幾乎已被放棄的印象：「每個月可能有 2-3 次向主幹提交。一般來說，修復 Bazaar 中的錯誤的時間似乎也很長。」

2.7.0 版本於 2016 年 2 月釋出。

Breezy

Bazaar 在 2017 年被分叉為 Breezy ，以允許進行向後不相容的更改，例如從 Python 2 遷移到 Python 3 並放棄對舊版本 Windows 的支援。



採用

原始碼代管

以下網站為 Bazaar 儲存庫提供免費的原始碼代管：


* Launchpad

* SourceForge（但不接受新建 Bazaar 項目）

使用 Bazaar 的專案

使用 Bazaar 進行版本控制的著名專案包括：


* Armagetron Advanced

* Beautiful Soup

* Ubuntu



參見


* Breezy

* 分散式版本控制

* 版本控制軟體比較

* 自由軟體代管服務比較

* 大教堂和市集（名稱來源）



參考來源



外部連結


* 官方網站

[[Category:Python 軟體]]

[[Category: 自由版本控制软件]]

[[Category: 版本控制系统]]
[[Category:Python 軟體]]
[[Category:GNU 计划软件]]
[[Category: 自由版本控制软件]]
[[Category: 用 Python 編程的自由軟體]]
[[Category: 分布式版本控制系统]]
[[Category:Canonical 公司]]
[[Category: 分布式版本控制系统]]
[[Category:Canonical 公司]]
GNU bison（Bison 意為犎牛；而 Yacc 與意為氂牛的 Yak 同音）是一個自由軟體，用於自動生成語法剖析器程式，實際上可用於所有常見的作業系統。Bison 把 LALR 形式的上下文無關文法描述轉換為可做語法分析的 C 或 C++ 程式。在新近版本中，Bison 增加了對 GLR 語法分析演算法的支援。

GNU bison 基本相容 Yacc，並做了一些改進。它一般與 flex 一起使用。



參考文獻



外部連結


* Bison Website in the GNU project （頁面存檔備份，存於網際網路檔案館）

* Bison in Free Software Foundation's Directory （頁面存檔備份，存於網際網路檔案館）

* Internals of C parsers generated by GNU Bison
GNU C 庫，又名 glibc，是 GNU 計劃所實現的 C 標準庫。儘管其名字中帶有「C 庫」，但它現在也直接支援 C++（以及間接支援其他程式語言）。它是自由軟體基金會（FSF）在 20 世紀 90 年代初為他們的 GNU 作業系統設計的。它為 GNU 系統，GNU/Linux 系統和一些其他的類 Unix 系統提供了系統核心庫。這些庫提供了關鍵的 API，包括 ISO C11、POSIX.1-2008 和 BSD 所規定的 API 和一些底層 API，包括 open、read、write、malloc、printf、getaddrinfo、dlopen、pthread\_create、crypt、login、exit 等。

glibc 在 GNU 寬通用公共許可證下發布。



歷史

glibc 專案最初主要由 Roland McGrath 編寫，他在 20 世紀 80 年代為自由軟體基金會（FSF）工作。

1988 年，FSF 稱 glibc 已基本實現 ANSI C 所規定的內容 ；到 1992 年，它已經實現了 ANSI C-1989 和 POSIX.1-1990 所規定的功能，並正在進行關於實現 POSIX.2 的工作。

1995 年 9 月，Ulrich Drepper 為 glibc 專案做出了他的第一個貢獻，並在 20 世紀 90 年代逐漸成為 glibc 的核心貢獻者和維護者。 Drepper 擔任維護員一職多年，直到 2012 年累計占專案總貢獻的 63%。

Linux libc

在 20 世紀 90 年代初，Linux 核心的開發團隊分叉了 Glibc，名為「Linux libc」並單獨維護。

當 FSF 在 1997 年 1 月發布 glibc 2.0 時，由於 glibc 2.0 更符合 POSIX 標準，核心開發者停止了 Linux libc 的開發。 glibc 2.0 還具有更好的國際化和翻譯、IPv6 功能、64 位元資料存取、多執行緒支援、未來版本的相容性，而且代碼更加可移植。

最後版本的 Linux libc 使用的庫檔名是 `libc.so.5`。因此，Linux 上的 glibc 2.x 使用的庫檔案名稱為 `libc.so.6`。 （Alpha 和 IA64 平台的 glibc 使用 libc.so.6.1 代替）. 這些以.so 為字尾的檔案通常被縮寫為 libc6 （例如在 Debian 的軟體套件名中），遵循一般庫的慣例。

根據 Richard Stallman 的說法，由於開發者們的身分模糊，FSF 無法將 Linux libc 做出的改動合併到 glibc 中。GNU 專案對著作權相關的要求十分嚴格。

成立委員會

自 2001 年起，庫的開發由 一個監管委員會負責，但保留了 Drepper 主要貢獻者和維護者的身分。委員會的設立被 Drepper 公然說成是 Richard Stallman 的陰謀詭計，因而被公共爭議所包圍。

遷移到 git

glibc 以前被儲存在 CVS 倉庫中，2009 年被遷移到 Sourceware 上的 Git 倉庫。.

 

委員會解散

2012 年 3 月，委員會投票決定解散，並撤銷 Drepper 的職務，轉而由 Ryan Arnold、Maxim Kuvyrkov、Joseph Myers、Carlos O'Donell 和 Alexandre Oliva 負責 glibc 的維護工作。但是，他們對於 glibc 沒有額外的決策權。

在委員會解散後，Debian 和其他使用 glibc 替代品的專案又遷移回到了 glibc。 從 2014 年開始，EGLIBC 不再開發，因為它「現在的目標是在 glibc 上直接解決問題」。

2017 年 7 月，在 glibc 創立 30 年時，Roland McGrath 宣布不再直接參與專案，並宣布自己為名譽維護者。「過去這幾個月，甚至過去幾年，已經證明你們不再需要我了」。

版本歷史

對於大多數系統來說，glibc 的版本可以通過解析 lib 檔案（例如，/lib/libc.so.6）獲得。



功能

glibc 實現了單一 UNIX 規範、POSIX（1c、1d 和 1j）所要求的功能，並實現了 ISO C11、ISO C99、Berkeley Unix（BSD）介面、System V 介面定義（SVID）和 X/Open Portability Guide（XPG）4.2 所要求的部分功能，並提供了所有符合 XSI（X/Open System Interface）的系統所共有的擴充以及所有 X/Open UNIX 擴充。

此外，glibc 還提供了在開發 GNU 時被認為有用或必要的擴充。

受支援的硬體和核心

glibc 可以執行在許多不同的核心和不同的硬體架構上。官方支援的硬體架構 包括: 32 位元 ARM，AArch64， C-SKY， DEC Alpha， IA-64， Motorola m68k， MicroBlaze， MIPS， Nios II， PA-RISC， PowerPC， RISC-V， s390， SPARC， 和 x86 （舊版本支援 TILE）。Glibc 官方支援 Hurd 和 Linux 核心。此外，還有大量打過修補程式的版本可以執行在 FreeBSD 和 NetBSD 上（因此 glibc 也相應地支援 Debian GNU/kFreeBSD 和 Debian GNU/NetBSD，因為這些核心與 FreeBSD 和 NetBSD 的關聯很大），以及 OpenSolaris 的分支版本。 Glibc 的一個修改過的版本也被用在 BeOS 和 Haiku 中。

在小型裝置中的使用

Glibc 在過去因過於臃腫且速度比其他 C 庫較慢，遭到一些開發者們的批評，如 Linus Torvalds 和一些嵌入式開發程式設計師。 出於這個原因，人們建立了幾個用於在嵌入式平台替代 Glibc 的 C 標準庫。這些庫較 Glibc 更小。然而，許多嵌入式開發專案仍使用 Glibc，因為它更加符合標準且相容性更好。例如 Openmoko 和由 iPaq 使用的 Familiar Linux（在使用 GPE 顯示軟體時）。



相關條目


* Gnulib

* Linux 核心介面



參考資料



外部連結


* 官方網站
GNU Chess 是一個西洋棋引擎的自由軟體，其可以與人類或是其他電腦程式玩一盤完整的西洋棋。GNU Chess 的目標是提供研究的基礎。它已用於眾多的研究環境中。

GNU Chess 是自由軟體，以 GNU 通用公眾授權條款第三版或更新版本授權，其由多個共同合作的開發者維護。做為其中一個最早提供完整原始碼的西洋棋電腦程式，它最早以前也僅提供基於 UNIX 系統的版本，至今也移植到了許多平臺上。



功能

它經常與如 XBoard 與 GlChess 等的圖形化使用者介面程式結合使用，並通常為預設的引擎。XBoard 初始版本的西洋棋引擎通訊介面是基於 GNU Chess 的命令列介面。第六版也支援通用西洋棋介面 (英語：Universal Chess Interface，簡稱 UCI)。



歷史

GNU Chess 的第一個版本由 Stuart Cracraft 編寫。其從 1984 年開始與理查・斯托曼合作（此時他尚未成立 GNU 計劃），爾後 GNU Chess 也成為了 GNU 的初始組成部份。

GNU Chess 透過數十個程式設計師不斷的強化並拓展。從第二版到第四版是由 John Stanback 編寫。第五版則是由 Chua Kong-Sian 編寫。

2011 年，GNU Chess 更新到了第六版，其基於 Fabien Letouzey 的 Fruit 2.1 西洋棋引擎。



參見


* 開源遊戲列表

* GNOME Chess

* GNU Go

* XBoard



參考資料



外部連結


* 官方網站
GNU Common Lisp（GCL），是 GNU 計劃的 ANSI Common Lisp 編譯器，它是 Kyoto Common Lisp 的演化發展。它通過首先生成 C 代碼並接著調用 C 編譯器，產生本機目標代碼。

GCL 是一些大型項目所選擇的實現，包括數學工具 Maxima、AXIOM、HOL88 和 ACL2。GCL 運行在 Linux 上的十一種架構下，還有 FreeBSD、Solaris、Mac OS X 和 Microsoft Windows。



參見


* CLISP – 另一個 GNU 的 Common Lisp 實現項目



引用
GNU Data Language (GDL，GNU 數據語言) 是一個與 IDL 兼容的開源軟體。
GDL 是一種陣列化的、交互式的數值程式語言，在天文、地質、遙感、醫學成像等領域被用於數據分析與可視化。



參考


* 開源軟體

* 直譯器

* IDL



外部連結


* 項目主頁（頁面存檔備份，存於網際網路檔案館）

* IDL/GDL 資源列表 （頁面存檔備份，存於網際網路檔案館）

* Coyote's Guide to IDL Programming
GNU GLOBAL，是一個軟體工具，用來作程式碼標籤，以利於閱讀程式碼。可以運作在多種不同環境（如 GNU Emacs，Vim，GNU less，GNU Bash 或網頁瀏覽器等），讓使用者可以尋找到程式碼中的某個特定物件，而且在程式碼中來回移動。功能類似於 ctags，etags 或 cscope。

GNU GLOBAL 是自由軟體，以 GPL 條款釋出，由 GNU 計劃維護。



參見


* GNU 軟體套件列表



參考
GNU Gatekeeper（簡稱 GnuGK）是一個基於 OpenH323 來發展的開放原始碼 H.323 gatekeeper 計劃。所謂的 H.323 gatekeeper，定義於 H.323 標準中，負責對 H.323 的系統提供位址轉換、通話控制、路由決定、認證計費等服務。



功能特色

GnuGK 實作許多豐富實用的特性，包括


* 可跨平台，目前已移植到 Linux、Windows、Mac OS X、Solaris、FreeBSD、OpenBSD 以及 NetBSD。

* 可自訂策略的路由機制。

* 來源以及目標號碼的改寫。

* 完整的 H.323 代理功能，包含 RTP／RTCP 媒體和 T.120 資料通道。

* 可穿越 NAT 的 Citron's NAT 技術。

* 以鄰近（neighbor）、父子（parent/child）和替代（alternate）GK 等方式達到的叢集支援。

* 可透過 TCP 狀態埠進行監看與控制。

* 部分的 H.235 安全支援。

* 可以 SQL 資料庫、radius 或外部程式支援通話認識與計費。



授權方式

以 GNU 通用公眾授權條款的方式授權。此外，作者明確的允許將執行檔與 OpenH323 和 OpenSSL 函式庫做連結。這是必要的，因為 GNU GPL 與這些函式庫的授權並不相容。



發展歷史

最初的版本是由 Xianping Chen、Joe Metzger 和 Rajat Todi 所開發，做為實驗用途。在 1999 年初，本計劃的主持人 Jan Willamowius 找到這支程式，並說服原作者以 GNU GPL 的方式釋出原始碼。

隨後，程式被移植到更新版的 OpenH323，並被命名為 OpenH323 Gatekeeper，簡寫為 OpenH323GK。在德國的 mediaWays 公司隨後加入，提供了 LDAP 子系統與交疊傳送（overlapped sending）的支援。到了 2000 年，大約已有十餘人加入，提供程式碼或協助測試。功能已相當堪用。不過，相較於另一個類似計劃 OpenGatekeeper，功能上仍遜色許多。

在 2001 年，當時任職台灣呈祺資訊公司技術長的黃志偉和他的團隊開始加入，修改並使用此計劃於其 VoIP 服務中。增強了系統的穩定性，大幅改善效率，並加入許多新的特性，例如多緒安全的執行時期表格，鄰近和父子 GK，以及認證模組。他的加入引導了此計劃的重大變革。2001 年九月，OpenH323GK 1.0 正式釋出，為此計劃的一大里程埤。

到了 2002 年底，GnuGK 2.0 正式發佈。它包含重新設計的路由模式（routed mode）架構，並能同時處理上千個通話。此外，還有完整的 H.323 proxy 和 Citron's NAT 技術，為 H.323 穿越 NAT 的問題提供了完善的解決方案。這些特色使得 GnuGK 成為具有電信等級的 H.323 gatekeeper，能真正應用於商業運轉。

2005 年初發佈了 2.2 版，包含了多緒處理的 RAS 子系統，可客製化的路由策略，以及更有彈性的鄰近系統。小幅度的問題解決與改善仍持續至今。



更名

隨著功能日益完善，計劃日趨成熟也更受歡迎。然而，愈來愈多的人搞不清楚此計劃的真正名稱。因為當時至少有三個其它同樣根基於 OpenH323 的開放原始碼 gatekeeper 計劃，而且名稱都非常的類似。。根據計劃主持人 Jan Willamowius 的說法，與其它計劃名稱相同並不是我們的錯，我們是第一個採用這名稱的開放原始碼計劃。然而，經過主要開發者的討論後，決定將名稱改為 GNU Gatekeeper，簡稱 GnuGK。因為在所有類似計劃中，這是唯一一個以 GNU GPL 授權的。不過請不要誤會，它並非 GNU 計劃的一部分。



相容性

在官方網站維護了一份與其它 H.323 軟體和產品的互通性測試結果清單（頁面存檔備份，存於網際網路檔案館）。由於 GnuGK 可免費並自由的使用，日漸受到歡迎，新的產品通常會宣稱已通過與 GnuGK 的相容性測試。



主要貢獻者

現代的系統架構和主要特色是由黃志偉（cwhuang）所設計，包括多緒架構、H.323 proxy 以及 NAT 穿越技術等。

Michal Zygmuntowicz 貢獻了 radius 支援和一些其它改進。

Jan Willamowius 是目前計劃的協調人與維護者。



相關連結


* Voice Over IP

* 網路位址轉換



參考來源



外部連結


* 官方網站（頁面存檔備份，存於網際網路檔案館）

* 德文網站（頁面存檔備份，存於網際網路檔案館）

* GnuGK 技術檔案

* GkGui（頁面存檔備份，存於網際網路檔案館）利用 Java 所開發的圖形化使用介面

* GnuGK ACD（頁面存檔備份，存於網際網路檔案館） GnuGK 的自動通話分配器（ACD）

* 2003 年，自由軟體鑄造場 GNU GateKeeper 的開放 VoIP 技術經驗
GNU Go 是自由軟體基金會所研發的圍棋軟體。它的原始碼具有可移植性，能夠輕易的編譯成 GNU/Linux 的軟體，也可移植到類 Unix 系統或 Microsoft Windows 和 Mac OS X 上運行。



簡介

GNU Go 除了可以使用 ASCII 介面對弈外，另外支援兩種協定 —— 圍棋數據機協定（Go Modem Protocol）和圍棋文字協定（Go Text Protocol），且可轉成圖形使用者介面對弈，目前存在許多 GNU Go 的圖形使用者介面。GTP 也可在圍棋伺服器進行線上對弈（原先用在橋牌軟體上），在 NNGS、KGS 和其它平台，也有它的複製品在運行。



棋力

GNU Go 等級分為 0~10 級，其中 0 級是最弱，10 級是最強。在程式與玩家對弈圍棋時，9x9 棋盤約有 5 到 7 級的強度，並且支援從 5x5 到 19x19 多種棋盤大小。

在級別的效能上，2009 年，GNU Go 曾與最頂尖的商業軟體在良好的硬體執行下一起比較，大約弱 6 到 7 子，但是此時一起比較的最強軟體，並非使用蒙地卡羅方法。

GNU Go 在許多電腦圍棋競賽表現出色。例如它拿下 2003 年和 2006 年的奧林匹亞電腦競賽。

CGOS

在 CGOS 上，GNU Go 被當作基準分數，帳號為 `Gnugo-3.7.10-a1`，固定 Elo 與 BayesElo 分數為 1800 分，並且常態性在上面對弈，以維持分數穩定性。



相關連結


* 電腦圍棋

* 圍棋軟體



參考資料



外部連結


* GNU Go 官網（頁面存檔備份，存於網際網路檔案館）
GNU Guile 是 GNU 計劃首選的擴充系統，是 Scheme 程式設計語言的一種實現。Guile 實現了 Scheme 標準 R5RS、大部份的 R6RS 和完全的 R7RS，一些 Scheme 實現要求（SRFI）和很多自己的擴充。Guile 提供了「libguile」可將語言嵌入至其他程式並通過 CAPI 緊密的結合。同樣的，新的類型和子程式的定義也可以通過 C API 擴充 Guile 自身。



相關條目


* GNU 計劃

* Lisp 語言

* Scheme 語言



參考資料



外部連結


* GNU Guile 官方網站（頁面存檔備份，存於網際網路檔案館）

* GNU Guile 官方手冊（頁面存檔備份，存於網際網路檔案館）

* Guile 與 GTK+ 2 的繫結（頁面存檔備份，存於網際網路檔案館）

* IBM developerWorks 用 Guile 編寫指令碼（頁面存檔備份，存於網際網路檔案館）
GNU Guix（/ɡiːks/）是一個跨平台的包管理器，也是一個用於實例化和管理類 Unix 作業系統的工具。其基於 Nix 包管理器與 Guile Scheme API，只提供自由軟體。 GNU Guix 是 GNU Guix SystemGNU/Linux 發行版的預設包管理器。

與傳統的包管理器不同，Guix（如 Nix 一樣）採用了純函數式的部署模型，軟體被安裝到通過密碼雜湊生成的唯一的目錄中。每個軟體的依賴都包含在雜湊當中，解決了依賴地獄的問題。 這種包管理方法更有可能產生更可靠、可複製和可移植的包。

Guix 中的包使用一種專用的，名為 Guile Scheme API 的語言來進行定義。依賴通過被稱為「衍生」的特殊值在這種語言中被跟蹤，這些值將被 Guix 行程評估。Guix 會跟蹤這些值，以便在沒有其他軟體套件依賴它們時，可以被刪除。以更大的儲存需求為代價，Guix 保證其所有操作是原子操作並可被回滾。

GNU Guix 的開發與 GNU Guix System 交織在一起（直到 Guix 1.0：Guix 系統發行版 [GuixSD]）。GNU Guix System 是一個使用 Hurd 核心和 GNU Shepherd init 系統的完整的 GNU 系統。

該專案由志願者團隊在網際網路上協調，並由法國非營利組織 Guix Europe 負責。
GNU Health 是一個著重於公共衛生與社會醫學的自由醫院資訊系統。其功能包含了電子健康紀錄的管理與實驗室資訊管理系統的功能。

它被設計為可在多種平台上執行，支援 GNU/Linux 發行版、FreeBSD、Windows 與 macOS。它也支援如 PostgreSQL 等多種不同的資料庫。其以 Python 編寫，並使用 Tryton 框架做為其中一部份的組成元件。

GNU Health 已被聯合國大學採用。2011 年時，其成為了 GNU 官方軟體包。其在自由軟體基金會在麻州大學波士頓分校舉辦的 LibrePlanet 2012 上獲得了對社會最有助益專案獎。

GNU Health 是 GNU Solidario 的一個專案，其為一個致力於在健康與教育領域使用自由軟體的非營利性非政府組織。



歷史

GNU Health 由 Luis Falcón 在 2008 年開始開發，當時是鄉村地區的健康促進與疾病預防的專案，其初始名稱為 Medical。現在已經變成了醫院資訊管理系統，並擁有跨領域的國際貢獻者團隊。

在 2011 年 8 月時，理查・史托曼宣佈 GNU Health 成為官方 GNU 軟體包。此後，開發工作從 SourceForge 轉換至 GNU Savannah。



使用

GNU Health 適用於衛生機構與政府，其包含了日常臨床實踐、管理資源與改善公共衛生的功能。



功能

GNU Health 使用了圍繞著核心開發不同模組的方式，如此可以包含不同的功能以符合不同機構的需求。部份主要的軟體包為：



文化影響


* GNU Health 在世界衛生組織會議上的 WSIS 論壇中被介紹為「改善婦女與兒童健康資訊與責任的資訊通訊技術」。

* GNU Health 在 2012 年獲得了自由軟體基金會的社會貢獻專案獎。

* GNU Health 贏得了 PortalProgramas 的 2012、2014 與 2015 年的最具革命性自由軟體獎與 2012 年的最大增長潛力獎。

* GNU Health 在 2016 年獲得了開放原始碼商業獎的 Sonderpreis 獎。



GNUHealthCon

GNUHealthCon 是由 GNU Solidario 所組織的年度會議。其提供了開發者、建置者與社群成員在三天內的見面機會。其包含了社會醫學、技術討論、實作案例與工作坊。



GNU Health 社會醫學獎

GNU Health 社會醫學獎頒獎典禮是 GNUHealthCon 的一部份。此獎項旨在表彰致力於改善弱勢群體的個人與組織。獎項共分三類：個人、組織與 GNU Health 實作。

GNU Health 社會醫學獎



參見


* GNU Solidario

* GNU 計劃



參考資料



外部連結


* 官方網站

* GNU Health 翻譯網站（頁面存檔備份，存於網際網路檔案館）

* GNU Health Con（頁面存檔備份，存於網際網路檔案館）

* GNU Solidario（頁面存檔備份，存於網際網路檔案館）

* GNU LIMS（頁面存檔備份，存於網際網路檔案館）

* Tryton 專案網頁（頁面存檔備份，存於網際網路檔案館）

* 歐洲共同體開放原始碼觀察站與知識庫（頁面存檔備份，存於網際網路檔案館）
GNU Hello 是一個相當平凡的自由軟體，它會在螢幕上顯示 "Hello, world!" 或其翻譯。它可以顯示不同格式的訊息或是自訂訊息。此程式的主要目的是作為 GNU 程式碼標準的範例，展示如何撰寫根據輸入而執行不同工作的程式，並作為 GNU 軟體維護者實踐的模型。因此它可以作為較新、更重要的軟體專案的模板。



參見


* Hello World

* GNU



參考資料



外部連結


* 軟體首頁 Archive.is 的存檔，存檔日期 2014-05-29
GNU 較寬鬆公共授權條款（英語：GNU Lesser General Public License，簡稱：LGPL）是由自由軟體基金會公布的自由軟體授權條款。它允許企業與軟體開發者使用，或將 LGPL 授權的軟體整合至他們自己的軟體內（即使該軟體是私有軟體也被允許），同時不會受到 Copyleft 特性的授權條款強制對軟體開源的限制。該授權條款常被用於一些（但不是全部）GNU 程式庫。

這個授權條款以前被稱為 GNU 程式庫通用公眾授權條款（GNU Library General Public License）。此授權條款最新版本為「第 3 版」，2007 年 6 月 29 日釋出，較早的版本有 2.0 和 2.1 版。此種授權之出現，是為了在 GPL 與許可式授權（如 MIT 授權條款及柏克萊大學的 BSD 授權條款）間取得折衷。

採用 LGPL 之計畫本身雖然仍有「Copyleft」之限制條件，但這些限制不感染僅僅只聯結到本計畫的軟體。不過此等軟體仍會受到其他限制。

LGPL 主要使用之標的為軟體函式庫（Software Libraries），但是其亦可使用於獨立存在的應用程式。比較有名的例子為 Mozilla 跟 OpenOffice.Org。



歷史

LGPL 原本被稱爲 GNU Library General Public License，最初於 1991 年發布，爲與 GPLv2 保持一致而採用 2.0 版的編號。授權條款的 2.1 版與 1999 年在修訂後發布。與此同時，它被重新命名爲 GNU Lesser General Public License，以顯示 FSF 認爲並不是所有程式庫都應當採用該授權條款的態度。LGPL 的第 3 版於 2007 年發布，它以在 GPL 第 3 版之上附加應用一系列許可的方式表現。



LGPL 與 GPL 差異之處

LGPL 有一特點是 LGPL 軟體可以被轉換成 GPL（參見 Section 3）。這種特性對於在 GPL 函式庫或應用程式中直接使用 LGPL 程式有一定程度之幫助。



程式語言要求

LGPL 協定主要是面向使用 C 語言 以及類 C 語言。Franz Inc. 釋出了 LLGPL 協定，增加了序言部分以澄清 LISP 語言中的上下文問題。

另外 Ada 語言還有一個特殊的特性 —— 泛型，所以需要使用 LGPL 的另一個變種 GNAT Modified General Public License：允許代碼連結一些特殊情況，以避免被 GPL 所覆蓋。

C++ 模板和只有標頭檔的庫也會遇到類似於 Ada 的泛型問題。LGPL 的第三版在第三小節中專門處理了這方面的特殊情況。



可閉源特性

由於許多程式設計師都弄不清各種授權條款之間的差別，導致一些開源專案成為了小部份別有用心人士所利用的物件，較著名的例子有 DivX，早期 DivX 雛形是一個使用 LGPL 授權條款的自由軟體，由大部份優秀的軟體高手義務地開發，但當軟體漸漸成形時，DivX 的公司 DXN 利用 LGPL 的漏洞對 DivX 進行了閉源，大部分軟體愛好者都感到被出賣，所以著手開發了 XviD。雖然 XviD 在軟體方面明顯比 DivX 優秀，但市場占有率卻不如 DivX。



參見


* Copyleft

* GNU Affero 通用公眾授權條款

* GNU 通用公眾授權條款

* GNU 自由文檔許可證

* GNU 較寬鬆公共許可證

* BSD 授權條款

* Mozilla 公眾授權條款

* MIT 授權條款

* Apache 授權條款

* 使用 LGPL 授權條款的軟體（分類）



參考資料



外部連結


* LGPL 英文版 （頁面存檔備份，存於網際網路檔案館）

* LGPL v2.1 非正式中譯版 2.1 版 （頁面存檔備份，存於網際網路檔案館）

* LGPL v3 非正式中譯版 3 版 （頁面存檔備份，存於網際網路檔案館）

* GNU 較寬鬆公共許可證（中譯版）1999 年 2 月，2.1 版（繁體中文）

* 五種開源協定的比較（BSD,Apache,GPL,LGPL,MIT） - 整理 （頁面存檔備份，存於網際網路檔案館）
Libreboot（原名為 GNU Libreboot）是一個目標為取代專有的 BIOS 韌體的自由軟體，僅執行最少的工作來載入並執行現代的 32 位元或 64 位元作業系統。



特徵

Libreboot 被設定為沒有專有的二進制大型物件的 coreboot。但 Libreboot 並不是 coreboot 的直接分支；相反地，其與它的上游 coreboot 並行且緊密合作，並會把所有上游的新東西引入自己的原始碼裡面，並儘可能將補丁合併回上游。除了移除專有軟體以外，libreboot 也會試著透過組建自動化與簡化安裝過程來讓 coreboot 更易於使用。

Libreboot 專案做出讓一些 ThinkPad、Chromebook 與 MacBook 筆記型電腦與伺服器和工作站主機板的完全自由變體可以正確執行的修改。根據其本身的檔案，它可以執行任何在顯示上使用核心模式設定（KMS）的 Linux 發行版，而 Microsoft Windows 不被支援，Libreboot 也不鼓勵使用它。而對 BSD 的支援程度則多半未經測試，但是有一些成功讓 OpenBSD 與 NetBSD 啟動的回報。



歷史

自由軟體基金會（FSF）認可 Libreboot，其也在 2016 年 5 月 14 日成為 GNU 計劃的官方專案。然而，在 2016 年 9 月 16 日時，做為對 GNU 計劃因為員工回報性騷擾而開除一名跨性別員工的回應，Libreboot 的首席開發者 Leah Rowe 宣佈抵制 FSF 並將 Libreboot 從 GNU 計劃中移除。FSF 方面則於 2016 年 9 月 16 日公開否認這些指控。Rowe 則於 2016 年 9 月 23 日進一步指控 FSF「不讓 Libreboot 離開」。Libreboot 貢獻者則指稱 Leah Rowe 決定從 GNU 單方面分離，並把她的個人意見當作整個 Libreboot 社群的意見發佈，但也沒有事先問過其他貢獻者。到了 2017 年 1 月，理察・斯托曼宣佈將 Libreboot 從 GNU 計劃中移除。

2017 年 4 月 2 日，對 GNU 的批評被移除，而系統管理員 Alyssa Rosenzweig 也宣佈了 Libreboot 網頁不再僅一人控制。對於歧視性開除的謠言是否屬實，她說「也許是。也許不是。」Leah Rowe 也在信中道歉：「傷害了很多人，其中大多數人並未參與任何相關的事件。」三個星期後，在一篇在 Reddit 上的貼文中，Rowe 澄清說，她仍持續參與 Libreboot，但已不再擔任專案領導人。她也對離開 GNU 表示遺憾，並表示大多數的 Libreboot 開發者都贊成重新加入。



安全問題

2017 年 5 月 1 日，英特爾確認並修復了一個在其管理引擎韌體中的遠端提升權限漏洞 CVE-2017-5689，這是一個 Coreboot 與 Libreboot 社群長久以來懷疑是否存在的漏洞。每個配有英特爾標準管理、Intel 主動管理技術或是小型企業科技的英特爾平臺，從 2008 年的 Nehalem 微架構到 2017 年的 Kaby Lake 微架構都在 IME（英特爾管理引擎）中有遠端安全漏洞。IME 中的另一個安全漏洞則與 Intel vPro 有關，硬體可以透過它來遠端存取，嚴重的話，電腦甚至會被摧毀。



支援的系統

Libreboot 的系統支援包含了下列的系統：


* 伺服器主機版：華碩 KFSN4-DRE 與華碩 KGPE-D16

* 桌上型主機版：華碩 KCMA-D8、英特爾 D510MO、技嘉 GA-G41M-ES2L 與 Apple iMac 5,2

* 筆記型電腦：華碩 Chromebook C201、聯想 ThinkPad X60/X60s、聯想 ThinkPad X60 Tablet、聯想 ThinkPad T60（部份例外）、聯想 ThinkPad X200、聯想 ThinkPad R400、聯想 ThinkPad T400、聯想 ThinkPad T500、Apple MacBook 1.1 與 Apple MacBook 2.1



參考資料



外部連結


* 官方網站
LilyPond 是一個用於音樂雕刻的電腦程式和檔案格式。LilyPond 的主要目標之一是製作出具有傳統布局規則的樂譜。LilyPond 為跨平臺且可用於多種常見的作業系統。LilyPond 是自由軟體，它在 GNU 通用公眾授權條款的條款下釋出。



LilyPond 輸入檔案

輸出



參考資料



外部連結


* 官方網站
GNU Mach 是一套效仿 Mach 而製作的微核心系統，是 GNU Hurd 作業系統預設的微核心，以 GNU 通用公眾授權條款發布。它在 IA-32 平台運作，是 GNU 計劃的一部份。



開發歷史

早期 GNU Hurd 是由卡內基美隆大學的 Mach 3.0 發展而來。

但在 1994 年，卡內基美隆大學中止了 Mach 計劃，自由軟體基金會轉而以猶他大學的 Mach 4 來作為 GNU Hurd 的微核心。但在猶他大學也中止了 Mach 計劃後，自由軟體基金會於是根據 Mach 4，繼續發展出 GNU Mach。1996 年 12 月 6 日，由 Thomas Bushnell 對 GNU Mach 提出第一個修改，正式建立了 GNU Mach。

2002 年，Roland McGrath 由 GNU Mach 1.2，建立了分支 OSKit-Mach。在 GNU Mach 1.3 之後，這個分支形成 GNU Mach 2.0 的主線，但在 2006 年後，GNU Mach 2.0 被放棄。研發團隊重新回到 GNU Mach 1.x 的分支，繼續往前。在 11 年後，終於在 2013 年 9 月 27 日推出 GNU Mach 1.4。



版本歷史


* 1997 年 4 月 14 日，Version 1.0

* 1997 年 5 月 12 日，Version 1.1.1

* 1997 年 6 月 10 日，Version 1.1.2

* 1997 年 6 月 12 日，Version 1.1.3

* 1999 年 6 月 21 日，Version 1.2

* 2002 年 5 月 27 日，Version 1.3

* 2013 年 9 月 27 日，Version 1.4

* 2015 年 4 月 10 日，Version 1.5

* 2015 年 10 月 31 日，Version 1.6

* 2016 年 5 月 18 日，Version 1.7

* 2016 年 12 月 18 日，Version 1.8



參考資料



外部連結


* GNU Mach 官網 （頁面存檔備份，存於網際網路檔案館）
GNU Mailman 是自 GNU 計劃而來，用來管理郵遞論壇的應用軟體。Mailman 主要使用 Python 編寫，目前由 Abhilash Raj 維護。Mailman 是以 GNU 通用公眾授權條款釋出的自由軟體。



歷史

當 John Viega 還是研究生的時候，他撰寫了非常早期的 Mailman，但是他自己電腦上的副本在 1998 年的某次當機中從硬碟上消失了。CNRI 的 Ken Manheimer 當時正在尋找 Majordomo 的替代品，於是就接手開發。在 Manheimer 離開 CNRI 後，Barry Warsaw 就接下這份工作。Mailman 3 在 2015 年 4 月釋出，是超過 10 年以來的第一個新的主要版本。



功能

Mailman 可以在 Linux 與大多數的類 Unix 系統上執行。自 Mailman 3.0 開始，它需要 Python 3.4 或更新版本才能正常運作。其可以與 Unix 風格的郵件伺服器（如 Postfix、Sendmail 與 qmail 等）一同運作。

其功能包含了：


* 可為每個郵遞論壇客製首頁。

* 可透過網頁進行管理、封存訊息、垃圾電子郵件過濾等等。不同的權限會有不同的介面。

* 每個郵遞論壇都支援多個管理員與版主。

* 個別清單的隱私功能，如訂閱需經過審核、私人存檔、私人成員清單以及基於寄件者的發佈規則。

* 整合式垃圾電子郵件過濾器

* Majordomo 式的電子郵件指令。

* 虛擬網域的支援。

* 清單存檔。Mailman 2 預設提供的存檔器是 Pipermail，不過還是有其他的存檔器可以選擇。而 Mailman 3 的存檔器則為 HyperKitty。



參見


* 郵遞論壇



參考資料



外部連結


* Mailman 檔案 （頁面存檔備份，存於網際網路檔案館）

* Mailman 支援郵遞論壇 （頁面存檔備份，存於網際網路檔案館）

* Freecode 上的 GNU Mailman
GNU Octave 是一種採用進階程式語言的主要用於數值分析的軟體。Octave 有助於以數值方式解決線性和非線性問題，並使用與 MATLAB 相容的語言進行其他數值實驗。它也可以作為面向批次處理的語言使用。因為它是 GNU 計劃的一部分，所以它是 GNU 通用公眾授權條款條款下的自由軟體。

Octave 是 MATLAB 的主要自由替代品之一，其他還有 Scilab 和 FreeMat。 然而，與 Octave 相比，Scilab 更少強調與 MATLAB 的（雙向）句法相容性。

 



歷史

系統性開發則是由 John W. Eaton 在 1992 年接手才開始的。
第一個 alpha 測試版是在 1993 年 1 月 4 日釋出，1.0 穩定版則是在 1994 年 2 月 17 日釋出。

其名稱與音樂上的八度沒有直接關係。該軟體乃是以一位早期開發群的成員，同時也以敏於處理數值逼近問題著稱的前化工系教授奧克塔夫・列文斯比爾（Octave Levenspiel）之名命名的。



技術細節


* Octave 是以 C++ 的標準模板函式庫編程而成。

* Octave 有自己 Octave 語言直譯器。

* Octave 可以動態外掛模組擴充。

* Octave 的直譯器可用 gnuplot 及 Grace 產生圖表及列印。



Octave 語言

Octave 語言是直譯式及結構化（類於第二代的 BASIC）的程式語言，支援許多 C 語言風格的標準函式功能，同時可以使用 UNIX 的系統呼叫以進行擴充增進功能，但不支援以參照的方式傳遞參數。

Octave 的核心由一組內建的（built-in）矩陣運算語言（如四則運算）和可載入函式（Loadable Function）組成（例如求矩陣逆 inv），其餘能在核心語言之上實現而且效能開銷不會顯著增加的函式呼叫則一般以 Octave 指令碼的形式存在（例如求解方程組的 fsolve 函式）。Octave 直譯器會自動處理各種不同類型的調用。

Octave 支援資料建構，也支援基本的物件導向編程，但通常仍把它當作面向過程的程式設計語言來看待。

它的語法基本上與 Matlab 一致，嚴謹編寫的程式碼應同時可在 Matlab 及 Octave 執行。但若調用了 Matlab 工具包，則一般不能直接在 Octave 上運行，因爲 Octave 附帶的工具包與 Matlab 並不相容。

由於 Octave 是以 GNU 通用公眾授權條款授權，所以可以自由地複製、流通與使用。Octave 可在大部份的類 Unix 作業系統中執行，亦可在 Microsoft Windows 中執行。在 Mac OS X 中運行也是可能的，但設定較爲複雜。



特殊功能

變數及函式名稱自動補齊
:

在命令列按下 TAB 鍵，Octave 會自動補齊變數，函式或檔案的名稱。Octave 會依據游標之前的文字來補齊。

指令回溯
:

在互動模式下，Octave 會將歷次指令存在暫存檔中以俟呼叫與編輯。

資料建構：

Octave 包含了初步的資料建構功能，例如：

```
octave:1> x.a = 1; x.b = [1, 2; 3, 4]; x.c = "string";
octave:2> x.a
x.a = 1
octave:3> x.b
x.b =

  1  2
  3  4

octave:4> x.c
x.c = string
```

短路邏輯算符：

Octave 的 `&&' 及`||' 的邏輯算符是在短路的方式下運算（如同 C 語言中的相仿算符），相反於逐算子算符 `&' 及`|'。

遞增與遞減算符
:

Octave 如同 C 語言一樣具有可前置或後置的遞增與遞減算符。

例外處理：

Octave 以提供初步的 LISP 式 `unwind_protect` 例外處理模式。通常 `unwind_protect` 的表述區段可表示如下：

可變長度參數表列：

Octave 提供用於處理未指明參數個數時的函式呼叫機制：利用特殊的 `varargin` 作為參數來呼叫函式。

可變長度回傳表列：

單一函式可以 `varargout` 這一特殊回傳值來回傳任意數目的值，例如：



MATLAB 相容性

Octave 最初便是模彷 Matlab 而設計，自然與 Matlab 有許多相同的功能。這也使得一部分 Matlab 程式可以直接或經過少量修改在 Octave 上執行，一些軟體開發小組也使用兩者相容的語法，直接開發可以同時在 Matlab 和 Octave 使用的程式。

1. 矩陣為基礎資料型別之一
2. 內建支援複數
3. 內建功能強大的數學函式及可擴充的函式庫
4. 使用者可自訂函式



參見


* Scilab

* R 語言

* 開放原始碼軟體列表



參考文獻



外部連結


* Octave.org 網頁（頁面存檔備份，存於網際網路檔案館）

* 在線支援（含文件） （頁面存檔備份，存於網際網路檔案館）

* Octave 快記（頁面存檔備份，存於網際網路檔案館）

* Octave-forge 社羣開發網頁 （頁面存檔備份，存於網際網路檔案館）

* Octave 教學與技術手冊 （頁面存檔備份，存於網際網路檔案館）提供 Octave 相關教學與範例。

* Octave Workshop：一個 Octave 的整合編程環境

* kOctave：圖型介面 - 適用於 KDE

* Octave 線上計算（頁面存檔備份，存於網際網路檔案館） - 可在網上執行 Octave 程式。

* Octave FAQ 快記有關繪圖的部份

* OctPlot （頁面存檔備份，存於網際網路檔案館）圖形處理套件，提供高品質的螢幕輸出。

* Help-Octave 在 Gmane 的郵件論壇存檔

* Octave 的 MPI toolbox 工具箱利用 GNU Octave 作並行計算

* Xoctave : GNU Octave GUI （頁面存檔備份，存於網際網路檔案館）
GNU Parted（由「PARTition」與「EDitor」兩字結合）是一個自由分割工具，可以用於建立、刪除、移動分割，調整分割大小，檢查、複製分割等操作。可以用於調整分割以安裝新作業系統、備份特定分割到另一塊硬碟等。是由 Andrew ClausenIt 與 Lennert Buytenhek 所寫成。

它包含了一個函式庫，libparted，以及一個命令列介面的前端，parted。

截至 2013 年，GNU Parted 只能在 GNU/Linux 及 GNU/Hurd 下執行。



其他前端

nparted 是一個基於 newt 的 GNU Parted 前端。

fatresize 提供了使用 GNU Parted 函式庫，可對 FAT16／FAT32 進行非破壞性的調整分割大小的命令列介面。

圖形前端

GParted 以及 KDE Partition Manager 皆為使用 GNU Parted 函式庫的圖形前端 。它們分別為 GNOME 及 KDE 兩大 Unix-like 桌面環境作了微調。它們通常會包含在許多有 Live CD 的發行版裡作為工具以方便使用者進行硬碟分割。QtParted 是另外一個使用 Qt 寫成的圖形前端，但此專案已經不再被維護。

Pyparted (也被稱作 python-parted) 是一個以 Python 寫成的圖形前端。以此為預設分割工具的 Linux 發行版包含 Slackware，Knoppix，aptosid，SystemRescueCD，以及 Parted Magic。

預設帶有此程式的 Linux 發行版包括 Slackware、Knoppix、sidux、SystemRescueCD 和 Parted Magic 美國國會圖書館的存檔，存檔日期 2012-12-17。



限制

Parted 先前支援在分割內對檔案系統進行各種操作（建立、移動、調整大小、複製）。在 3.0 版中這些功能被移除
。



參見


* 硬碟分割軟體列表

* fdisk

* cfdisk

* gpart

* GParted

* FIPS

* 主開機紀錄



參考資料



外部連結


* 官方網站

* `parted`– 參考，單一 UNIX® 規範第 7 期，由國際開放標準組織釋出
GNU Pth（Portable Threads）是用於 UNIX 平台的基於 POSIX/ANSI-C 的使用者空間執行緒庫，它為多執行緒應用提供基於優先級的排程。GNU Pth 以高度可移植性為目標。它是 GNU 計劃的一部分。

Pth 還提供模仿 POSIX 執行緒的 API 用於後向相容。

GNU Pth 使用到核心空間執行緒的 N:1 對映，就是說排程是完全由 GNU Pth 庫進行的，核心自身不了解在使用者空間內的 N 個執行緒。故而不可能利用到 SMP，因為那必須由核心派遣。



參見


* 纖程

* UPthreads （頁面存檔備份，存於網際網路檔案館）



參照



外部連結


* 官方網站

* a collection of references to all known multithreading libraries for Unix operating systems. （頁面存檔備份，存於網際網路檔案館）
GNU 計劃（英語：GNU Project），又譯為革奴計劃，是一個自由軟體集體協作計劃，1983 年 9 月 27 日由理察・斯托曼在麻省理工學院公開發起。它的目標是建立一套完全自由的作業系統，稱為 GNU。理察・斯托曼最早在 net.unix-wizards 新聞群組上公布該訊息，並附帶一份《GNU 宣言》等解釋為何發起該計劃的文章，其中一個理由就是要「重現當年軟體界合作互助的團結精神」。

GNU 是「GNU is Not Unix」的遞迴縮寫。為避免與單詞 gnu（非洲牛羚，發音與「new」相同）混淆，斯托曼宣布 GNU 發音應為「Guh-NOO」（/ˈgnuː/ ），與「canoe」發音相似。其中，Emacs 就是由這個計劃孵化而出。

UNIX 是一種廣泛使用的商業作業系統的名稱。由於 GNU 將要實現 UNIX 系統的介面標準，因此 GNU 計劃可以分別開發不同的作業系統。GNU 計劃採用了部分當時已經可自由使用的軟體，例如 TeX 排版系統和 X Window 視窗系統等。不過 GNU 計劃也開發了大批其他的自由軟體，這些軟體也被移植到其他作業系統平台上，例如 Microsoft Windows、BSD 家族、Solaris 及 Mac OS。

為保證 GNU 軟體可以自由地「使用、複製、修改和釋出」，所有 GNU 軟體都包含一份在禁止其他人添加任何限制的情況下，授權所有權利給任何人的協定條款，GNU 通用公眾授權條款（GNU General Public License，GPL）。這個就是被稱為「公共著作權」的概念。GNU 也針對不同場合，提供 GNU 較寬鬆公共許可證與 GNU 自由文檔許可證這兩種協定條款。



源起

1985 年，理察・斯托曼創立了自由軟體基金會來為 GNU 計劃提供技術、法律以及財政支援。儘管 GNU 計劃大部分時候是由個人自願無償貢獻，但 FSF 有時還是會聘請程式設計師幫助編寫。當 GNU 計劃開始逐漸獲得成功時，一些商業公司開始介入開發和技術支援。當中最著名的就是之後被 Red Hat 兼併的 Cygnus Solutions。

到了 1990 年，GNU 計劃已經開發出的軟體套件括了一個功能強大的文字編輯器 Emacs、C 語言編譯器 GCC 以及大部分 UNIX 系統的程式庫和工具。唯一依然沒有完成的重要組件，就是作業系統的核心（稱為 HURD）。

1991 年，林納斯・托瓦茲編寫出了與 UNIX 相容的 Linux 作業系統核心並在 GPL 下釋出。Linux 之後在網上廣泛流傳。1992 年，Linux 與其他 GNU 軟體結合，完全自由的作業系統正式誕生。許多程式設計師參與了 Linux 的開發與修改，也經常將 Linux 當成開發 GNU 計劃軟體的平台。該作業系統往往被稱為「GNU/Linux」或簡稱 Linux。但 Linux 本身不屬於 GNU 計劃的一部份，GNU 計劃自己的核心 Hurd 依然在開發中，目前已經釋出 Beta 版本。

許多 UNIX 系統上也安裝了 GNU 軟體，因為 GNU 軟體的品質比之前 UNIX 的軟體還要好。GNU 工具還被廣泛地移植到 Windows 和 Mac OS 上。

GNU 工程十幾年以來已經成為一個對軟體開發主要的影響力量，創造了無數的重要的工具，例如：強健的編譯器，有力的文字編輯器，甚至一個全功能的作業系統。這個工程是從 1984 年麻省理工學院的程式設計師理察・斯托曼的想法得來的，他想要建立一個自由的、和 UNIX 類似的操作環境。從那時開始，許多程式設計師聚集起來開始開發一個自由的、高品質、易理解的軟體。



宣言



發言人

以下是 GNU 計劃的正式發言人：


* Robert J. Chassell

* Loïc Dachary

* Ricardo Galli

* Georg Greve

* Federico Heinz

* Bradley Kuhn

* Eben Moglen

* 理察・斯托曼

* David Sugar



參考文獻



外部連結


* 官方網站 （英文）

* 斯托曼 1983 年宣告 GNU 計劃開始的宣言（英文）

* GNU 哲學的網頁（英文）

* GNU 宣言 （頁面存檔備份，存於網際網路檔案館）（英文）

* GNU 專案的細節記錄 （頁面存檔備份，存於網際網路檔案館）（英文）

* GNU 專案的簡要歷史 （頁面存檔備份，存於網際網路檔案館）（英文）

* 原碼 3 路 \_3/5 : 用革命存活社群 - GNU (1/2) （頁面存檔備份，存於網際網路檔案館）



參見


* GNU/Linux

* GNU 通用公眾授權條款

* 理察・斯托曼

* 自由軟體基金會

* 自由軟體

* 自由軟體運動
GNU Radio 是一個自由軟體開發工具包，提供實現軟體無線電和信號處理的信號處理模塊系統。 它可以與外部 RF 硬體一起使用來發送軟體無線電，或者在沒有硬體的情況下於擬真環境運行。 它被無線電愛好者、高校研究人員以及商業領域廣泛用於支援無線通信研究和現實世界的無線電系統。



概觀

GNU Radio 軟體提供了構建和運行軟體無線電或僅用於通用信號處理應用程式的框架和工具。 GNU Radio 應用程式本身通常稱為「流程圖」，它是連接在一起的一系列信號處理塊，從而描述了數據流。

與所有軟體定義的無線電系統一樣，可重配置性是一個關鍵特性。不為特定但不同目的而設計的不同無線電，而是使用單個通用無線電，該信號處理軟體（這裡指代 GNU Radio）是處理無線電專用的處理應用。

這些流程圖可以用 C ++ 或 Python 程式語言編寫 。 GNU Radio 基礎結構完全用 C ++ 編寫，而許多用戶工具都是用 Python 編寫的。

GNU Radio 是一個信號處理軟體包，是 GNU Project 的一部分。 它根據 GNU 通用公共許可證 （GPL）的條款分發，大多數項目代碼的版權歸自由軟體基金會 



歷史

GNU Radio 首次發布於 2001 年，是一個官方的 GNU 包 。 慈善家約翰・吉爾摩（John Gilmore ）為 Eric Blossom 籌集了 320,000 美元（美國）的資金，用於代碼創建和專案管理職責。

GNU Radio 最初是由麻省理工學院 （MIT）的 SpectrumWare 項目開發的 Pspectra 代碼的分支 。 今天 GNU Radio 不再有任何原始的 Pspectra 代碼是因為在 2004 年完成了對 GNU Radio 的完全重寫 。 另外值得注意的是，Pspectra 代碼庫已被用作商業 Vanu 軟體無線電的基礎。

Matt Ettus 作為最早的開發人員加入了該項目，並創建了通用軟體無線電外設 （USRP），以提供與 GNU Radio 軟體一起使用的硬體平台。

2010 年 9 月， Eric Blossom 辭去項目負責人職務，由 Tom Rondeau 取代。 

在項目早期，核心開發人員開始舉辦半年一次的 _Hackfest_ 。 2011 年，GNU Radio 項目開始每年舉辦一次名為 "GRCon" 的會議，會議的最後一天通常會舉辦黑客節。

2016 年 3 月，Tom Rondeau 退出，由 Ben Hilburn 擔任項目負責人，Johnathan Corgan 擔任首席架構師作為長期維護人員。 

2018 年 1 月，Marcus Müller 取代了 Johnathan Corgan 在 GNU Radio 的角色 。



軟體

GNU Radio Companion 是用於開發 GNU Radio 應用程式的圖形 UI 。 這是用於信號處理的 GNU Radio 庫的前端。GRC 由 Josh Blum 在約翰霍普金斯大學 （2006-2007）學習期間開發，作為 2009 年 10 月 Hackfest 的自由軟體發布。從 3.2.0 版開始，GRC 與 GNU Radio 軟體發行版正式捆綁在一起。

GRC 實際上是一個 Python 代碼生成工具。 當流程圖在 GRC 中「編譯」時，它會生成 Python 代碼，用於創建所需的 GUI 窗口和窗口小部件，並創建和連接流程圖中的塊。

GRC 目前支持使用 Qt 創建 GUI。

繪圖和顯示

GNU Radio 提供了許多常見的繪圖和數據可視化數據接收器，包括 FFT 顯示，符號星座圖和示波器顯示。 這些通常既用於調試無線電應用程式，也用作最終應用程式的用戶界面。

PyBOMBS

許多用戶創建「out-of-tree 模塊」以與 GNU Radio 一起使用。 為了管理這些以及運行 GNU Radio 所需的依賴關係，該組織創建了 PyBOMBS（Python Build Overlay Managed Bundle System）項目。 



參見


* 軟體定義的無線電



參考資料



外部連結


* 官方網站

* 自由軟體目錄中的 gnuradio （頁面存檔備份，存於網際網路檔案館）
GNU Readline 是一個軟體庫，可為具有命令列介面（例如 Bash）的互動式程式提供行編輯器和歷史記錄功能。是 GNU 計劃的一部分，目前由 Chet Ramey 維護。

使用者可以移動文字游標，搜尋命令歷史，控制 kill ring（一個更靈活的剪貼簿），並在文字終端上使用 Tab 鍵自動完成。作為一個跨平臺的庫，readline 允許不同系統上的應用程式展現相同的行編輯行為。



GPL 授權條款

GNU Readline 是一個著名的自由軟體庫，它是通過 GNU 通用公眾授權條款（GPL）進行授權的。而其他的自由軟體庫通常是通過 GNU 寬公用授權條款（LGPL）進行授權，例如 GNU C 庫，GNU Gettext 和 FLTK。但其它軟體在分發時，如果連結到像 GNU Readline 這種 GPL 協定的庫，必須將與之相連的整個軟體以 GPL 協定進行授權，以符合 GPL 第 5 章的規定。自由軟體基金會為 GNU Readline 選用了這個授權協定，以鼓勵其它軟體選用 GPL 協定。



範例代碼

下面的代碼是 C 語言的，必須通過向編譯器傳遞-lreadline 標誌來連結到 readline 庫：



外部連結


* GNU readline 首頁

* 關於 GNU Readline 你不知道的事情 （頁面存檔備份，存於網際網路檔案館）
GNU Savannah 是自由軟體基金會的一個子專案。它提供了一套合作軟體發展管理系統，來幫助程式設計師開發自己的軟體。Savannah 現在提供 CVS、郵寄清單、網頁代管和 bug 跟蹤服務。GNU Savannah 上釋出的所有軟體都基於 GNU 通用公眾授權條款（GPL）或其它 GNU 授權條款。



參見


* GitHub

* Google Code

* SourceForge



外部連結


* https://savannah.gnu.org/ （頁面存檔備份，存於網際網路檔案館） ——Savannah 主站

* https://savannah.nongnu.org/ （頁面存檔備份，存於網際網路檔案館） ——Savannah 主站

* Savane—— 軟體首頁
GNU Screen 是一款由 GNU 計劃開發的用於命令列終端切換的自由軟體。使用者可以通過該軟體同時連接多個本地或遠端的命令列對談，並在其間自由切換。



功能

GNU Screen 可以看作是視窗管理員的命令列介面版本。它提供了統一的管理多個對談的介面和相應的功能。


* 對談恢復

　
: 只要 Screen 本身沒有終止，在其內部執行的對談都可以恢復。這一點對於遠端登入的使用者特別有用 —— 即使網路連接中斷，使用者也不會失去對已經打開的命令列對談的控制。只要再次登入到主機上執行 screen -r 就可以恢復對談的執行。同樣在暫時離開的時候，也可以執行分離命令 detach，在保證裡面的程式正常執行的情況下讓 Screen 掛起（切換到後台）。這一點和圖形介面下的 VNC 很相似。


* 多窗口

　
: 在 Screen 環境下，所有的對談都獨立的執行，並擁有各自的編號、輸入、輸出和窗口快取。使用者可以通過快速鍵在不同的窗口下切換，並可以自由的重新導向各個窗口的輸入和輸出。Screen 實現了基本的文字操作，如複製貼上等；還提供了類似捲軸的功能，可以檢視窗口狀況的歷史記錄。窗口還可以被分割和命名，還可以監視後台窗口的活動。


* 對談共享

　
: Screen 可以讓一個或多個使用者從不同終端多次登入一個對談，並共享對談的所有特性（比如可以看到完全相同的輸出）。它同時提供了窗口存取權限的機制，可以對窗口進行密碼保護。



其他多頁面終端工具

具有類似功能的軟體還有：


* dtach：Screen 的一個最小化子集實現。

* Text Windows：一個文字模式的窗口環境。

* splitvt：一個終端分割工具。

* Window (BSD)：一個基於 BSD 的文字窗口環境。



參看


* Ratpoison：受 Screen 啟發的無需滑鼠的視窗管理員。



外部連結

官方資源


* （英文） GNU's Screen 官方站點 （頁面存檔備份，存於網際網路檔案館）

* GNU Screen （頁面存檔備份，存於網際網路檔案館） 執行於 Savannah（英文）

* GNU Screen（頁面存檔備份，存於網際網路檔案館）手冊（英文）

* （英文） Screen 使用者手冊 （頁面存檔備份，存於網際網路檔案館）

第三方資源


* （英文） GNU Screen Wiki （頁面存檔備份，存於網際網路檔案館）

* （英文） Screenie—— 一個 Screen 對談處理器（前端）

* GNU Screen：初學者入門（原文發表於 Kuro5hin）（英文）

* （英文） GNU Screen 快速入門

* （英文） SSH-Agent forwarding and GNU Screen （頁面存檔備份，存於網際網路檔案館）

* （英文） 用 Screen 執行 irssi 指引 （頁面存檔備份，存於網際網路檔案館）

* （英文） Screen FAQ

* （英文） Screen tutorial
GNU Smalltalk 是 Smalltalk 程式語言的 GNU 計劃實現。

這個實現不同於其他 Smalltalk 環境，使用文本文件作為程序輸入，並將其內容解釋為 Smalltalk 代碼。在這種方式下，GNU Smalltalk 表現得更像是一種解釋器，而非傳統 Smalltalk 方式下的一種環境。GNU Smalltalk 包括了對很多自由軟體庫的綁定，包括 SQLite、libSDL、cairo、gettext 和 Expat 等。



簡單例子

下面的例子可工作在 GNU Smalltalk 3.0 和以後版本上。經典的 Hello, World! 例子：

GNU Smalltalk 聲明了三個文件：`stdin`、`stdout` 和 `stderr`，作為文件串流類（`FileStream`）的全局實例，並綁定了適合傳遞給 C 虛擬機的值。對象類（`Object`）定義了特有於 GNU Smalltalk 的四個方法：`print`、`printNl`、`store` 和 `storeNl`。它們對接收者做一次 `printOn:` 或 `storeOn:` 至 `Transcript` 對象。這個對象是文本搜集器類（`TextCollector`）的唯一實例，它通常將寫操作委託給 `stdout`。 

一些基本的 Smalltalk 代碼：

兩個 `"` 包圍的是注釋；`$c` 是字符常量 `c`；兩個 `'` 包圍的是字符串，字符串中的 `''` 是 `'` 的轉義序列。



搜集

構造和使用一個數組：

構造和使用一個散列表，它是散列搜集類（`HashedCollection`）的子類即字典類（`Dictionary`）的實例：

GNU Smalltalk 在字符串類（`String`），和作為它的超類的數組式搜集類（`ArrayedCollection`）之間，又介入了特有的字符數組類（`CharacterArray`），它的 `%` 方法，將其接收者中具有的特殊轉義序列，替換為由參數給出的搜集中的元素，其中 `%n` 被替代為這個搜集的第 `n` 個元素（`1<=n<=9` 或 `A<=n<=Z`）。這裡給它的搜集，是在 `{` 和 `}` 之間包圍的，當前 Smalltalk 變體一般都提供的動態數組，其中的元素可以在運行時間求值。



塊和迭代器

參數傳遞到是為閉包的一個塊：

從一個方法返回由兩個閉包構成的一個數組：

這裡用 `extend` 為現存的類擴展新方法是 GNU Smalltalk 特有的語法。

下面的考拉茲猜想例子，展示將兩個塊傳遞給接收者，並將結果信息發送回到調用者：

搜集類（`Collection`）的 `collect:` 方法，將接收者的每個元素傳遞給一個塊來求值，返回這些結果的搜集。這類似於函數式編程語言中 map 函數。例如計算從 `1` 到 `10` 的平方：

可迭代類（`Iterable`）定義了由子類實現的 `do:` 方法，將一個塊迭代於接收者的每個元素之上。這也被稱為隱式迭代器。例如迭代於數組和區間之上：

可迭代類的 `inject:into:` 方法，接受一個參數和一個塊二者；它迭代於接收者的每個元素之上，在其上執行某個函數並保持結果為一個聚集。這類似於函數式編程語言中 foldl 函數。這個方法是憑藉調用 `do:` 方法實現的。例如：

在第一個趟時，這個塊接受 `10`（要注入的實際參數）作為 `sum` ，和 `1`（這個數組的第一個元素）作為元素，結果為 `11`。`11` 接著成為在下一趟時的 `sum`，這時向它加上 `3` 得到 `14`。`14` 接著加上 `5`，最終返回 `19`。

塊可以和很多內建方法一起工作，下面例子向一個文件寫一行文本，然後再讀取它的每一行並顯示：

文件類（`File`）的特有於 GNU Smalltalk 的 `name:` 方法，返回具有絕對路徑的文件名。GNU Smalltalk 有特有的文件路徑類（`FilePath`），它的 `withWriteStreamDo:` 方法，對接收者調用 `writeStream` 方法打開一個只寫的文件串流類（`FileStream`）實例，在其上調用一個塊，並在這個塊的動態範圍結束處保證（`ensure:`）關閉這個串流；它的 `readStream` 方法，在接收者上打開一個只讀的文件串流類（`FileStream`）實例。

串流類（`Stream`）的特有於 GNU Smalltalk 的 `linesDo:` 方法，對它的接收者的每一行都求值它的參數塊一次。 在 GNU Smalltalk 中，文件串流類（`FileStream`）的超類，不再是作為可定位串流類（`PositionableStream`）子類的讀寫串流類（`ReadWriteStream`），而是其特有的作為串流類（`Stream`）子類的文件描述符類（`FileDescriptor`），它的 `close` 方法關閉這個文件。



類

GNU Smalltalk 建立新類採用特有的語法形式：

類似的，為現存的類擴展新方法採用特有的語法形式：

在 Smalltalk 有關書籍中有一個常見版式約定，將一個類中的方法引用為 `类名字 >> 方法名字`，這不是 Squeak/Pharo 語法的一部份，GNU Smalltalk 將 `类名字 class >> 方法名字` 作為定義類方法的語法形式。

下面的代碼定義叫做 `Person` 的一個類，這個類有兩個實例變量 `name` 和 `age`，它們有各自的變異子與訪問子。定義了有兩個關鍵字參數的類方法，用來創建新的類實例。定義了單獨用 `age` 來進行比較的 `<` 方法，通過從 `Magnitude` 派生，這個類自動繼承了所有的其他比較方法的定義。這個類還通過覆寫 `printOn:` 的方式，定製了這個對象的列印（`print`）/ 顯示（`display`）方式：

這裡用 `asSortedCollection` 方法對搜集進行排序，然後用 `reverse` 方法來做反轉。最終結果是按 `age` 反序列印了三個人的信息：



異常

要發起能夠捕獲的異常，需要調用異常類（`Exception`）及其子類的 `signal` 或 `signal:` 方法。錯誤類（`Error`）表示不可恢復的致命錯誤，警告類（`Warning`）表示重要但可恢復的錯誤，停機類（`Halt`）表示通常是漏洞（bug）的可恢復錯誤。例如：

異常通過塊閉包（`BlockClosure`）的 `on:do:` 方法來處理，還可以只捕獲特定的異常（和它們的子類）：

處理器子句使用它能獲得的異常對象，可以退出或恢復一個塊；退出是預設的，但也可以顯式的指示：

在因異常狀況而要進入調試器，可以調用對象類（`Object`）的 `halt` 方法，或增加了一個消息參數的 `halt:` 方法；這二者實際上調用了對象類的 `error:` 方法，它通過原始操作停止執行及或啟動調試器，並展示這個錯誤消息：



參見


* Ruby 語法

* GLASS



引用



外部連結


* 官方網站
GNU TeXmacs 是一款自由的科學文字編輯器和 GNU 專案的排版軟體。它吸收了 TeX 和 Emacs 的特點，儘管未使用這兩者的程式碼。TeXmacs 使用 TeX 字型。它由 Joris van der Hoeven 等人開發和維護。該程式能夠以所見即所得的使用者介面建立結構化文件。使用者可以自行建立新的文件樣式。編輯器採用高品質的排版演算法和 TeX 字型用於專業出版。



特點

TeXmacs 可作為一系列電腦代數系統的前端，例如 Maxima 和 Sage。將計算或推導得出的數學公式直接顯示在筆記中，無須重複輸入和語法翻譯。

作為所見即所得的文字編輯器（如 Microsoft Word），TeXmacs 提供一套設計良好的 GUI 介面，使用者不需要記憶排版引擎的 DSL 語法。

TeXmacs 同時支援 Scheme 擴充語言 Guile，用於客製化程式和撰寫擴充元件，提供使用者高度自訂的自由。

TeXmacs 不是 LaTeX 的前端程式，但 TeXmacs 文件可以被自由轉換成 TeX 或 LaTeX 格式，唯目前轉換效果並不完美還需要進行少量的手動修改。同時也可以容易的將文件轉換為 HTML、PDF、MathML 和 XML。

TeXmacs 目前可執行在大部分基於 Unix 的系統平台下，包括 Linux、FreeBSD、Cygwin 和 Mac OS X，不過許多發行版必須自行編譯。可以容易的在 Microsoft Windows 下安裝和使用。

TeXmacs 還包含簡報模式，可以非常容易的製作投影片（slide/PPT）。目前已經含有一定的圖像編輯功能，可以繪製樹圖等。

快捷的符號輸入

TeXmacs 可以利用 Tab 鍵得到各種相似的符號可以迅捷地輸入各類符號。例如，透過輸入 `=>` 可以得到數學符號右箭頭，利用 Tab 鍵可以快速的得到向右下的箭頭、向左上的箭頭、向上的箭頭。因此，使用者可以以極低的學習成本完成各類符號的輸入。也提供完善的 GUI 讓使用者無需記憶和查閱上百個特殊字元對應的指令。

 

批次處理

TeXmacs 亦可以批次處理方式執行（類似 LaTeX 的一般操作模式），在執行過程中無需打開視窗，例如，命令

```
xvfb-run texmacs --convert article.tm article.pdf --quit
```

將會從 TeXmacs 文件「article.tm」生成 PDF 檔案「article.pdf」。



支援的後台

TeXmacs 可作為許多軟體的前端：


* 程式設計語言：CLISP、CMUCL、Python、Qcl、R、Shell

* 電腦代數系統：Axiom、Giac、Macaulay 2、Mathematica、Maxima、MuPAD、PARI/GP、Reduce、SageMath、Yacas

* 數值矩陣系統：MATLAB、GNU Octave、Scilab

* 繪圖軟體套件：gnuplot、Graphviz、XYpic、Mathemagix

* 其他：DraTeX、Eukleides、GTybalt、Lush



參見


* TeX

* LaTeX

* LyX

* Emacs

* 文字編輯器列表

* 文字編輯器比較



參考文獻



外部連結


* GNU TeXmacs 的官方首頁 （頁面存檔備份，存於網際網路檔案館）

* 官方英語教學影片 （頁面存檔備份，存於網際網路檔案館）

* 簡體中文教學影片
GNU Unifont 是一個由 Roman Czyborra 所製作的，自由且免費的點陣字型，涵蓋了 Unicode 中的基本多文種平面，使用了中型的點陣字型格式。見於大多數的自由作業系統及一些視窗系統中，如 Linux、XFree86、X.Org Server，及一些嵌入式韌體，如 RockBox。此字型以 GNU 通用公眾授權條款第二版或更新釋出，但加入了一個字型嵌入的例外條款（在檔案中嵌入字型並不構成違反授權條款的條件）。

它在 2013 年 10 月成為了 GNU 軟體包。



狀態

Unicode 的基本多文種平面涵蓋了 216 = 65,536 個碼位，其中 2048 個是保留給特殊用途的代理對，6400 個保留給私人用途，剩餘大約 57,000 個碼位可供分配。其中多數位置都已分配字形，而一些特殊的碼位沒有。

截至 2013 年 10 月 (2013-10)，GNU Unifont 已經完整涵蓋了 Unicode 6.3 版定義的基本多文種平面。

平面中，中日韓統一表意文字大約有 20,000 個，字形是從文泉驛的 Unibit 字形複製過來的（獲得授權）。



.hex 字型格式

GNU Unifont 的 .hex 格式定義了它的字形大小，寬度 8 或 16 像素，高度為 16 像素。多數西方字母的寬度定義為 8 像素，而其他語言的字母（特別是中日韓文字）通常是 16 像素。

unifont.hex 檔案的每一個字形都包含一行。每行都包含四位數的 Unicode 十六進位碼位，一個冒號及點陣字串。一個寬度為 8 像素的字母的位元串有 32 個十六進位的位數，而寬度為 16 像素的字母的位元串有 64 個十六進位的位數。

一個在位元字串中 '1' 的位元對應到一個 ' 開' 的像素。像素位元由上到下，由左到右儲存。

然後字型會轉換成 BDF 格式的檔案以在 X 視窗系統上使用。

範例

這是包含了一個 ASCII 大寫 'A' 字形的範例。

```
0041:0000000018242442427E424242420000
```

第一個數字是十六進位的 Unicode 碼位，範圍從 0000 到 FFFF。十六進位的 0041 是十進位的 65，也就是字母 'A' 的碼位。冒號分隔了點陣字的碼位。在這個範例中，字形是 8 像素寬，所以位元串有 32 個十六進位的位數。

位元串以 8 個零開始，所以前 4 行是空的（每 8 位元是 2 個十六進位的數字，而寬度為 8 位元的字形則為每行 8 個位數）。位元串也以 4 個零結尾，所以最後兩行也是空的。因為如此，預設的字形會比基線低 2 行，大寫的字母高於基線 10 行。這是 GNU Unifont 的拉丁字母範例。

Perl 的 hexdraw 指令稿按照上述的一行字形定義產生以下的輸出：

這可以在文字編輯器中編輯，再使用同樣的工具轉換回十六進位的字串。其目標是創造一個中間格式以方便加入新字形。



向量

Luis Alejandro Gonzalez Miranda 寫了指令稿以進行向量化及使用 FontForge 轉換 BDF 格式（unifont.bdf）至 TrueType 格式。Paul Hardy 調整了這些指令稿以處理最新的 TrueType 版本的組合字母，像是重音符號等。



歷史

Roman Czyborra 在 1998 年創造了 Unifont 格式，更早期的可以追溯至 1994 年。

2008 年，Luis Alejandro González Miranda 寫了把這個字型轉換成 TrueType 字型的程式。Paul Hardy 後來修改它以支援在新版 TrueType 中的組合字母。

最後，理察・斯托曼在 2013 年 10 月接受 Unifont 成為一個 GNU 軟體包。Paul Hardy 是它的維護者。



參考資料



外部連結


* GNU 專案檔案庫 （頁面存檔備份，存於網際網路檔案館）

* 在 Unifoundry.com 上的 GNU Unifont 頁面（頁面存檔備份，存於網際網路檔案館）
GNU Wget（常簡稱為 Wget）是一個在網路上進行下載的簡單而強大的自由軟體，其本身也是 GNU 計劃的一部分。它的名字是「World Wide Web」和「Get」的結合，同時也隱含了軟體的主要功能。目前它支援通過 HTTP、HTTPS，以及 FTP 這三個最常見的 TCP/IP 協定協定下載。



特點

它的主要特點包括：


* 支援遞迴下載

* 恰當的轉換頁面中的連結

* 生成可在本地瀏覽的頁面鏡像

* 支援代理伺服器

1996 年，隨著網際網路的爆發，Wget 出現了。並廣泛的被 Unix 和主要的 Linux 發行版使用者所使用。由於使用移植性非常良好的 C 語言，所以 Wget 可以輕鬆的在任何類似 Unix 的系統以及其他 Unix 變種作業系統上編譯使用，如 Mac OS X，Microsoft Windows，和 OpenVMS。

由於沒有互動式介面，在類 Unix 平台上 Wget 可在背景執行，截獲並忽略 HANGUP 訊號，因此在使用者登出登入以後，仍可繼續執行。通常，Wget 用於成批次地下載 Internet 網站上的檔案，或製作遠端網站的鏡像。

在其之上的圖形介面應用程式有：GNOME 下面的 gwget[1]。Windows 系統下面的 wGetGUI[2] （頁面存檔備份，存於網際網路檔案館）。



命令

Wget 的命令格式如下：

> 
>  wget [options] [URL]
> 
> 

詳細的命令和參數可以參照後面的外部連結中的內容。



缺點


* 支援的協定較少，特別是 cURL 相比。流行的串流媒體協定 mms 和 rtsp 沒有得到支援，還有廣泛使用各種的 P2P 協定也沒有涉及。

* 支援協定過老。目前 HTTP 還是使用 1.0 版本，而 HTML 中通過 JavaScript 和 CSS 參照的檔案不能下載。

* 靈活性不強，擴充性不高。面對複雜的鏡像站會出現問題。

* 命令過於複雜，可選的設定項有上百個。



Wget2

GNU Wget2 2.0.0 釋出於 2021 年 9 月 26 日。比起 Wget1.x 支援以下協定和技術：


* HTTP/2

* HTTP 壓縮

* 並列連接

* 使用 HTTP 頭欄位 `If-Modified-Since`

* TCP Fast Open



參見


* FTP 客戶端列表

* cURL

* Teleport



參考文獻



外部連結


* 官方網站

* （英文） win32 binary wget-1.13.4 （頁面存檔備份，存於網際網路檔案館）

* 很老的一個 Wget FTP 站點，裡面包含了各個歷史時期的釋出版本，包括在 1.0 版前釋出的 Geturl。
GNU arch 是一個分散式版本控制軟體，它是 GNU 計劃的一部分，並在 GNU 通用公共許可證下授權。

截至 2009 年，GNU arch 的官方狀態是「已棄用」，僅僅提供安全性修復。

Bazaar（或稱 'bzr'）此後也成為了正式的 GNU 專案，可以考慮作為 GNU arch 的替代。但注意 bzr 不是 GNU arch 的一個復刻。



批評

GNU arch 的最常見的批評是它很難學，甚至對於那些有其他軟體組態管理系統經驗的使用者也是如此。尤其是 GNU arch 有大量的命令，一些設計元素受 Lord 個人品味的影響太多太多，這阻礙了 GNU arch 的新使用者。

也有人批評 GNU arch 採用極不尋常的檔案命名約定，這給在指令碼中使用它、在一些 shell 中使用它、將它移植到非 Unix 作業系統帶來了困難。GNU arch 還因其執行緩慢一直被批評，而這竟然作為其設計決策一部分，以減少內部代碼的複雜性的。



參見


* 版本控制

* 版本控制軟體列表

* 版本控制軟體比較



參考文獻



外部連結


* 官方網站

* LWN.net article on arch （頁面存檔備份，存於網際網路檔案館）
GNU lightning 是在執行時生成組合語言代碼的自由軟體庫。版本 2.0 發行於 2013 年 8 月，支援的後端包括：x86（32-bit 和 64-bit）、ARM、MIPS、PowerPC（32-bit）、IA-64、SPARC（32-bit）和 PA-RISC。



相較其他庫的優點

GNU 提供的特徵使它可用於即時編譯。相較於 LLVM 或 libJIT 這樣的庫，GNU lightning 只提供低層組譯介面，把寬鬆的基於 SPARC 和 MIPS 架構的一種標準化 RISC 組合語言，編譯成目標架構的機器語言。



缺點

它不提供暫存器分配、資料流或控制流分析或最佳化。



指令集

GNU lightning 的指令集鬆散的基於了現存的 RISC 架構。

類型

所需的指令處理如下 9 種類型的資料：



使用 GNU lightning 的專案

Racket，GNU Smalltalk，GNU Guile 和 CLISP 使用 GNU lightning 進行即時編譯。GNU lightning 最初開發用於 GNU Smalltalk 的從位元組碼到本地代碼的動態轉換器的工具。



參照



外部連結


* GNU lightning （頁面存檔備份，存於網際網路檔案館）在自由軟體目錄上
GNU m4 為 m4 巨集前處理器的 GNU 版本。其目的是為了避免傳統 m4 前處理器中的多種限制，諸如對行長度的最大值限制，巨集大小的最大值限制，巨集數量的限制等。拿掉這些霸道的限制是 GNU 計畫的既定目標之一。

GNU Autoconf 包使 GNU m4 的功能得以廣為使用。

GNU m4 目前是由 Eric Blake 來維護。



參見


* GNU 編譯器套裝

* GNU build system



外部連結


* GNU M4 首頁 （頁面存檔備份，存於網際網路檔案館）
make 是一個在軟體開發中所使用的工具程式（Utility software），經由讀取「makefile」的檔案以自動化建構軟體。它是一種轉化檔案形式的工具，轉換的目標稱為「target」；與此同時，它也檢查檔案的依賴關係，如果需要的話，它會呼叫一些外部軟體來完成任務。它的依賴關係檢查系統非常簡單，主要根據依賴檔案的修改時間進行判斷。大多數情況下，它被用來編譯原始碼，生成結果代碼，然後把結果代碼連接起來生成可執行檔或者庫檔案。它使用叫做「makefile」的檔案來確定一個 target 檔案的依賴關係，然後把生成這個 target 的相關命令傳給 shell 去執行。

許多現代軟體的開發中（如 Microsoft Visual Studio），整合式開發環境已經取代 make，但是在 Unix 環境中，仍然有許多工程師採用 make 來協助軟體開發。



起源

目前雖有眾多依賴關係檢查工具，但是 make 是應用最廣泛的一個。這要歸功於它被包含在 Unix 系統中。斯圖亞特・費爾德曼（Stuart Feldman）在 1977 年在貝爾實驗室（Bell Labs）里製作了這個軟體。2003 年，斯圖亞特・費爾德曼因發明了這樣一個重要的工具而接受了美國電腦協會（ACM）頒發的軟體系統獎。

在 make 誕生之前，編譯工作主要依賴於作業系統裡面的類似於「make」、「install」功能的 shell 指令碼。它可以批次執行生成目標的命令，並且可以完成依賴關係的檢查。這是向現代編譯環境發展的重要一步。



不同版本

make 程式已被使用者多次重 / 改寫，其中包括幾次用相同的檔案格式和演算法原理重新編寫，並且依照不同需要添加了一些不常見的改良。

GNU make

GNU make 仿照 make 的標準功能（透過 clean-room 工程）重新改寫，並加入作者覺得值得加入的新功能，常和 GNU 編譯系統一起被使用，是大多數 GNU Linux 安裝的一部分。

BSD make

BSD make 是從 Adam de Boor 的製作的版本上發展成。它編譯目標的時候有並行計算的能力。它在 FreeBSD，NetBSD 和 OpenBSD 中不同程度的修改下存活了下來。

Microsoft nmake

廣泛應用於微軟的 Windows，微軟的 nmake 是 Visual Studio 隨附的命令列工具，不要與來自 AT&T 和貝爾實驗室的 Unix 系統 nmake 混淆。



優點和缺點

就像其他和 make 有著悠久歷史的軟體一樣，make 有著很多的擁護者和反對者。它的很多問題因現代大型的軟體專案的出現而暴露出來。但是很多人爭論說它在常見的情況下可以很好的工作，而且使用非常的簡單，功能強大，表達清楚。無論如何，make 仍然被用來編譯很多完整的作業系統，而且現在替代品們在基本的操作上與它沒有太大差別。

隨著現代的整合式開發環境（IDE）的誕生，特別是非 Unix 的平台上，很多程式設計師不再手動管理依靠關係檢查，甚至不用去管哪些檔案是這個專案的一部分，而是把這些任務交給了他們的開發環境去做。類似的，很多現代的程式語言有自己特別的高效的依賴關係的設定方法。



Makefile

規則

makefile 的格式是：

```
   # 用“#”号表明注释。
   target（要生成的文件）: dependencies（被依赖的文件）
   	# 命令前面用的是“tab”而非空格。误用空格是初学者容易犯的错误！
   Tab ↹命令1
   Tab ↹命令2
   Tab ↹命令3
         .
   	  .
   	  .
   Tab ↹命令n
   # 可以使用“\”表示续行。注意，“\”之后不能有空格！
   
```


* target, dependencies 和命令構成了一個 makefile 里的一個「規則」，規則指示 make 何時以及如何重新生成 target 或執行 target 下的命令

* target 通常是我們要生成的檔案的名字，擺放的順序不重要，但第一個 target 是預設的 target。當 make 不帶參數時，自動執行第一個 target。target 也可以是要求 make 完成的動作，執行這種 target 後並不能得到和 target 同名的檔案，因此，也稱為偽 target (phony target)。

* dependencies 是生成 target 所需的檔名列表。依賴可以為空，常用的「clean」target 就常常沒有依賴，只有命令。若依賴不為空，則 make 會先檢查依賴的「規則」。依賴規定了何時重新執行 target 下命令。若任何依賴比 target 更新 （由於執行了依賴的「規則」的命令或使用者修改了依賴），make 則會重新執行 target 下的命令。

* 命令可以是任何一個 shell 能執行的命令。

 

範例

舉例來說明 makefile 的結構和 make 如何運作。

當我們輸入：

```
make
或者
make editor
```

當 editor 這個 target 檔案不存在，或者 main.o、text.o 這兩個依賴檔案被修改，都會導致 make 呼叫其下的命令「gcc -o editor main.o text.o」；接下來，由於參照到 main.o 和 text.o，make 會檢查 main.o 的依賴 main.c、def.h 有無更新，如果有，則執行其下的命令「gcc -c main.c」；同樣的道理，也適用於 text.o。
於是，可有幾種不同的輸出：


* 第一次執行：

```
gcc -c main.c
gcc -c text.c
gcc -o editor main.o text.o
```


* main.c 或 / 和 def.h 有修改：

```
gcc -c main.c
gcc -o editor main.o text.o
```


* text.c 或 / 和 com.h 有修改：

```
gcc -c text.c
gcc -o editor main.o text.o
```


* main.c 和 text.c 均有修改：

```
gcc -c main.c
gcc -c text.c
gcc -o editor main.o text.o
```

當我們輸入：

```
make install
```

make 會檢查 install 的依賴 editor 是否是最新，如果是，則執行其下的命令「mv editor /usr/local」。由於這個過程並沒有產生名為「install」的檔案，所以，install 是一個假目標。

 

巨集

「巨集」指的是用一個字串代替另一個字串的功能。在 makefile 中可以使用「=」號來定義巨集，使用「$（巨集名）」來使用巨集；還可以用「+=」追加巨集的內容。習慣上，巨集名使用大寫。承接上面的例子：



參見


* Apache Ant

* CMake



參考資料



外部連結


* GNU Make 官方網站 （頁面存檔備份，存於網際網路檔案館）

* GNU make 中文手冊

* 跟我一起寫 Makefile （頁面存檔備份，存於網際網路檔案館）
GNU parallel 是用於 Linux 和其他類 Unix 作業系統的命令列驅動的實用工具，它允許使用者並列的執行 shell 指令碼。GNU parallel 是 Ole Tange 用 Perl 寫的自由軟體。它可在 GPLv3 條款下獲得。GNU parallel 可以在遠端伺服器上執行作業，它使用 ssh 與遠端機器進行通信。



用法

最常用的用法是替代 shell 迴圈，比如將

變為如下形式：

這裡的檔案 `list` 包含給 `do_something` 的實際參數，而這裡的 `| process_output` 可以省略。

使用 parallel 的指令碼通常比使用 pexec 的指令碼易讀。

程式 parallel 的特徵還有：


* 聚組標準輸出和標準錯誤輸出，parallel 延期輸出直到所有執行作業完成；

* 可保持輸出的次序同於輸入的次序；

* 恰當的處理包含特殊字元的檔名，比如空格、單引號、雙引號、&（ampersand）和 UTF-8 編碼字元；

作為預設，parallel 並列執行作業的數量同於 CPU 核心數目。



例子

上述命令是如下命令的並列等價：

它在當前目錄及其子目錄中的名字結束於 `.foo` 的所有檔案中尋找字串 `bar` 的出現。parallel 將如期執行除非遇到名字包含換行的檔案。為了避免這個限制可以使用：

上述命令使用空字元來分隔檔名。

上述命令使用 `{}` 來告知 `parallel` 將 `{}` 替代為實際參數列。

上述命令所做同於：

但是，使用 `find`/`parallel`/`cp` 的前者命令更加有效利用資源，並且在 \*.ogg 展開後對於 shell 而言太大的情況下不作為錯誤而停止。



參見


* xargs

* pexec

* PPSS - (Distributed) Parallel Processing Shell Script （頁面存檔備份，存於網際網路檔案館）



參照



外部連結


* 官方網站

* GNU parallel 的計畫頁和手冊頁 （頁面存檔備份，存於網際網路檔案館）
GNU social（曾用名 StatusNet、Laconica）是一個用 PHP 編寫的自由及開放原始碼的微部落格程式。在提供與 Twitter 相似的功能的同時，GNU social 提供在微部落格社群之間的開放的、跨服務的交流。企業和個人可以安裝並控制他們自己的服務和資料。.

2010 年 3 月 3 日 StatusNet 0.9.0 版本加入了對 OStatus，一個新的、取代 OpenMicroBlogging 的標準的支援。

2013 年 6 月 8 日，GNU social 開發者宣布 StatusNet 和 Free Social 將併入 GNU social 專案。



名稱

在發布 0.8.1 版本（也被稱作 "Second Guessing"）時，Laconica 被重新命名為 StatusNet。

StatusNet 這個名字反映了這個程式是幹什麼的：在你的社群網路（social _net_work）發布「狀態（_status_）」

Laconica 這個名字來源於拉科尼式簡略語。Laconic 指的是古時候斯巴達的人，他們使用的是拉科尼式簡略語，即言簡意賅地表達自己。在微部落格中，訊息有長度限制（通常限制在 140 個字元以內），所以人們在微部落格中就像就像使用拉科尼式簡略語一樣。



重要部署

StatusNet 部署在很多公共服務上。

Identi.ca

Identi.ca 這個 open-microblogging 服務曾是第一個 StatusNet（當時稱為 Laconica）實例。由 StatusNet 的建立者 StatusNet Inc. 代管。Identi.ca 向公眾提供免費的帳戶並作為可安裝版本的 StatusNet 的旗艦。該站現已遷移到 pump.io 平台。

TWiT Army

另一個曾熱門的 StatusNet 實例是 This Week in Tech 的 TWiT Army。



功能與特色


* 支援通過 XMPP/Google Talk 客戶端更新訊息

* 支援 OpenID 登入

* 支援聯邦，允許通過 OStatus 協定關注遠端服務的使用者訊息
  
* 使用 Salmon 協定回覆

* 支援 SMS 更新訊息和提醒

* API 與 Twitter 相容

* 主題標籤

* 多語言介面（使用 Gettext）

* 同步到 Twitter

* 小組

* 自動縮短 URL

* 地理位置資訊和地圖

* 即時更新

* 上載附件（檔案、圖片、影片、音訊等）

* 支援嵌入其他網站的內容，比如 YouTube、Flickr 等



參見


* Twitter

* Plurk

* Jaiku

* Mastodon



參考資料



外部連結


* 官方網站

* StatusNet 舊官方 wiki
GNU 工具鏈（英語：GNU toolchain）是一個包含了由 GNU 計劃所產生的各種編程工具的集合，由自由軟體基金會負責維護工作。這些工具形成了一條工具鏈，用於開發應用程式和作業系統。

GNU 工具鏈在針對嵌入式系統的 Linux 核心、BSD 及其它軟體的開發中起著至關重要的作用。GNU 工具鏈中的部分工具也被 Solaris, Mac OS X, Microsoft Windows (via Cygwin and MinGW/MSYS) and Sony PlayStation 3 等其它平台直接使用或進行了移植。



組成


* GNU make：用於編譯和構建的自動工具；

* GNU 編譯器集合（GCC）：一組多種程式語言的編譯器；

* GNU Binutils：包含連結器、組譯器和其它工具的工具集；

* GNU Bison: 編譯器編譯程式，經常和 Flex 詞法剖析器 配合使用；

* GNU m4： m4 宏預處理器

* GNU Debugger（GDB）：代碼除錯工具；

* GNU 構建系統（autotools）:
  
* Autoconf
  
* Autoheader
  
* Automake
  
* Libtool



參見


* GNU C Library

* GNU Classpath

* GNU 核心工具組

* CVS、Git

* MinGW、Cygwin

* 交叉編譯器
GNU variants（GNU 變種）是一個自由軟體基金會提出的概念，指使用來自 GNU 的應用軟體及函式庫（即「使用者態」）的作業系統。它的核心不一定是 GNU Hurd。.



Linux 變種

GNU/Linux 一詞是 GNU 計劃支持者對由 GNU 使用者態和 GNU 系統軟體搭配 Linux 核心構成的操作系統的稱呼。其中一個著名的例子是 Debian GNU/Linux。



FreeBSD 變種

Debian GNU/kFreeBSD 是一個基於 Debian 軟體套件管理系統和 FreeBSD 核心的 GNU 發行版。 _kFreeBSD_ 中的 _k_ 是 _kernel of_ 的縮寫 ，說明事實上只用到完整的 FreeBSD 的核心。目前沒有官方的版本發布，但在 2010 年 8 月凍結的 Debian Squeeze (6.0) 預期於 2010 年發布，旨在支援 Debian GNU/kFreeBSD. 一種 Debian GNU/kFreeBSD 的 live CD 是 Ging.



NetBSD 變種

Debian 的 NetBSD 核心版本。



OpenSolaris 變種



外部連結


* Debian GNU/kFreeBSD ISO

* Debian GNU/kFreeBSD（頁面存檔備份，存於網際網路檔案館）

* Debian GNU/NetBSD （頁面存檔備份，存於網際網路檔案館）

* #debian-kbsd on OFTC

* Ging live CD
GNUmed 是一個供類 Unix 系統（BSD、Linux 與 UNIX）、Microsoft Windows、macOS 與其他平臺使用的電子健康紀錄 (EMR) 系統。GNUmed 目標是提供尊重病人隱私且基於開放標準的醫學軟體。

GNUmed 基於第三方專案，如自由 / 開放原始碼的資料庫 PostgreSQL，並以 Python 撰寫。它也支援基於 wxPython 的圖形化使用者介面。

GNUmed 專案由社群開發者所開發與維護。



歷史

第一版的 GNUmed 由 Horst Herb 所建立。當 Herb 不再積極開發時，GNUmed 的開發就由 Karsten Hilbert 接手，他也成為了專案的領導者，並重新審閱了一部份的專案。

Karsten Hilbert 並不是獨自作戰，許多其他的開發者也加入了團隊並協助專案開發：Syan Tan、Ian Haywood、Hilmar Berger、Sebastian Hilbert、Carlos Moro、Michael Bonert、Richard Terry、Tony Lembke 以及其他人。雖然大部份都是程式碼的貢獻，還是有一些其他的貢獻，如 Jim Busser 與 Rogerio Luz Coelho 就協助了建立檔案等等。

這個專案的名稱最初是將榮譽給 GNU 計劃，並將 GNUmed 連結到醫學界。它的標誌則描繪了角馬（Gnu，代表了 GNU 計劃）與 Python（代表程式語言）的結合。

目前 GNUmed 的目標是成為既定電子健康紀錄系統的自由軟體替代品。



使用

GNUmed 主要是用來管理電子健康紀錄。它提供了紙本紀錄的歸檔功能，並為這些紀錄加上後設資料。它還可以執行一些管理工作，如新增病人資料，或是紀錄性的工作，如病人的過敏或免疫紀錄等等。



功能

GNUmed 支援許多功能，很多都是以外掛程式的形式來拓展核心功能。這些功能從醫學論文紀錄歸檔系統疫苗接種狀態管理等。GNUmed 檔案系統中提供了一份所有功能的清單。

官方的 Wiki 上也有一個章節是 GNUmed 今天可以為我做什麼？其包含了更廣泛的概觀。每個版本都會加入不同的功能。

第三方軟體可以透過 GNUmed 的介面來與其互動並使用其功能。



參見


* GNU 軟體套件列表

* GNU 計劃



參考資料

網頁


* Bauer, Achim. Spezialisiertes KIS [Specialized HIS (hospital information system)] (PDF). [2017-07-08]. （原始內容 (PDF) 存檔於 2012-03-19） （德語）.



外部連結


* 官方網站

* GNUmed 檔案系統

* GNUmed 開發者中心 （頁面存檔備份，存於網際網路檔案館）

* GNUmed 郵件清單歸檔 （頁面存檔備份，存於網際網路檔案館）

* GNUmed，存檔於網際網路檔案館（存檔 index）

* 給大眾看的 GNUmed （頁面存檔備份，存於網際網路檔案館） 給非技術人員（一般使用者與測試員）看的部落格
GNUstep，GNU 計劃的專案之一。它將 Cocoa（前身為 NeXT 的 OpenStep）Objective-C 軟體庫，部件工具箱（widget toolkits）以及其上的應用軟體，以自由軟體方式重新實作。它能夠運行在類 Unix 作業系統上，也能運作在 Microsoft Windows 上。



歷史

GNUstep 最早是由保羅・昆茨（Paul Kunz）與其他在史丹福線性加速器中心的同事所撰寫。最早的目的是為了將 NEXTSTEP 上的 HippoDraw 移植到其他平台。但是他們並不是重頭寫出 HippoDraw，而是決定把 HippoDraw 這套軟體所依賴的二進位物件層重寫出來。因此他們寫作了第一版的 libobjcX。這個軟體庫，讓他們可以在不更動 HippoDraw 原始碼的狀況下，把 HippoDraw 移植到 Unix 系統下，可以在 X 視窗系統下運作。1994 年，OpenStep 規格書出版，他們決定重寫出新的 objcX 函式庫，把新的 API 涵蓋進去，這就是我們今天所知的 GNUstep。



外部連結


* GNUstep.org （頁面存檔備份，存於網際網路檔案館） 計畫首頁
GNU 多重精度運算庫（英語：GNU Multiple Precision Arithmetic Library，簡稱 GMP 或 gmpal）是一個開源的任意精度運算庫，支援正負數的整數、有理數、浮點數。它沒有任何精度限制，只受限於可用記憶體。GMP 有很多函式，它們都有一個規則的介面。它是 C 語言寫成的，但用為其他很多語言做包裝，包括 Ada，C++，C#，OCaml，Perl，PHP，python 和 R。GMP 主要運用於加密應用和研究、網際網路安全應用、電腦代數系統和計算代數研究。GMP 的目標是成為最快的大數運算庫，GMP 是 GNU 專案的一部分，它在 GNU 寬通用公共許可證下發表。GMP 在許多電腦輔助代數系統中用於整數運算，如 Mathematica 和 Maple。GMP 需要使用 GCC（GNU 編譯器套裝）編譯。



範例

這是一個 C 語言範例，它展示了如何使用 GMP 做乘法運算並輸出。

這段代碼計算 7612058254738945 和 9263591128439081 的乘積。

編譯執行，獲得這樣的輸出：（在 UNIX 類系統上，需要 -lgmp）

我們可以使用 C++ 完成相同的運算。（如果在類 Unix 系統下編譯，需要使用 -lgmpxx -lgmp）



語言支援



參考資料



外部連結


* gmplib 官方首頁 （頁面存檔備份，存於網際網路檔案館）
GNU 宣言是理察・斯托曼所寫，於 1985 年 3 月發表在 Dr. Dobb's Journal of Software Tools 雜誌上，內容解釋和定義 GNU 計劃的目標，並呼籲人們參與及支持，是自由軟體運動的核心精神。GNU 宣言內置在包括 GNU Emacs 在內的很多 GNU 軟體包內，也有網頁上的版本可以取得。



背景

GNU 宣言的某些部分開始於理察・斯托曼於 1983 年 9 月 27 日以電子郵件的形式在 Usenet 新聞群組上發布的 GNU 項目公告。 該項目的目標是通過合作開發和提供基於 RMS 軟體自由理念的軟體 (儘管書面定義直到 1986 年 2 月才出現)，給計算機用戶自由並能自己控制他們自己的計算機。 宣言的目的是讓更多的人熟悉這些概念，並以工作、金錢、程序和硬體的形式尋求更多的支持。

GNU 宣言在 1985 年有了它的名字和完整的形式，並在 1987 年以較小的方式進行了更新。



總結

GNU 宣言開篇解釋了 GNU 項目是什麼，以及當前 GNU 作業系統創建的進展情況。儘管該系統基於 Unix，並且與 Unix 兼容，但作者希望對其進行許多改進，這些改進在宣言中詳細列出。

據 RMS 所說，GNU 項目背後的一個主要驅動點是 Unix 及其各種組件 (在當時) 迅速成為專有軟體 (即閉源軟體和專有軟體) 的趨勢。

該宣言為啟動 GNU 項目奠定了哲學基礎，即專有軟體讓用戶不能再像從前一樣相互幫助，同時這個基礎也對 GNU 項目的實現很重要。斯托爾曼拒絕編寫專有軟體作為與他們團結一致的標誌。

作者提供了許多原因來解釋為什麼項目和軟體自由對用戶有益，儘管他同意廣泛採用它會降低程式設計師的工作的利潤。

GNU 宣言的大部分內容都集中在駁斥對 GNU 項目目標的可能反對。它們包括程式設計師謀生的需要，自由軟體的廣告發行問題，以及感知到的利潤激勵的需要。



參考文獻



參見


* GNU 計劃

* 自由軟體歷史

* 自由軟體運動

* 致愛好者的公開信



外部連結


* GNU 宣言（頁面存檔備份，存於網際網路檔案館）

* GNU 宣言中文版 （頁面存檔備份，存於網際網路檔案館）
這是一個 GNU 核心工具組的命令列表。這些命令可以在 Unix 作業系統及大多數類 Unix 作業系統上找到。



列表



另請參見


* Unix 實用程序列表

* GNU 軟體包列表

* Unix 守護進程列表

* 用於 Unix 和類 Unix 作業系統的 Web 瀏覽器列表

* Unix 哲學

* util-linux



外部連結


* GNU Core Utilities 主頁 （頁面存檔備份，存於網際網路檔案館）

* Rosetta Stone For \*Nix（頁面存檔備份，存於網際網路檔案館） – \
* nix 系統的等效程序的可配置列表。

* The Unix Acronym List（頁面存檔備份，存於網際網路檔案館） – 解釋許多 Unix 命令的名稱。

* The UNIX System Homepage