跳至內容

JACK Audio Connection Kit

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
JACK Audio Connection Kit
原作者Paul Davis, Stéphane Letz
開發者JACK團隊[1]
當前版本
  • 1.9.22 (2023年2月2日;穩定版本)[2]
編輯維基數據鏈接
源代碼庫 編輯維基數據鏈接
編程語言C[3], C++
操作系統BSDLinuxMac OS XSolarisWindows
類型Sound server英語Sound server
許可協議GNU GPL, GNU LGPL
網站jackaudio.org

JACKJACK Audio Connection Kit遞歸縮寫)是一個專業級的聲音服務守護進程),它為聲音和MIDI數據提供實時的、低延時的連接,有關的程式使用JACK的API

它是由保羅·戴維斯英語Paul Davis (programmer)(他憑着這項工作贏得了2004年的開源獎[4])帶領的一個開源社區開發。自從2002年初以來一直是Linux下的關鍵的基礎設施和事實上的專業音頻軟件標準。這個服務是在GNU GPL協議下的開源軟件,它的庫則採用更寬鬆的GNU LGPL協議。

實現[編輯]

JACK 能使用ALSAPortAudioCoreAudioFFADOOSS作為硬件層的後端。此外,還有一個虛擬的驅動(當不需要聲音輸出時是很有用的,例如離線渲染)和一個通過UDP協議的音頻驅動(Audio-over-UDP driver)。它可以運行在LinuxMac OS XSolarisWindowsFreeBSDOpenBSDNetBSD上。JACK的API被標準化,並且存在兩種可融合的實現:jack1,由簡單的C實現並且已經維護了一段時間;至於jack2(原來的jackdmp),由Stéphane Letz領導的用C++重寫的實現,jack2在積極開發中,目標是支持多處理器和對其它非Linux操作系統。[5]

低延時調度[編輯]

JACK為達到足夠的低延時的調度要求是目前Linux 2.6 內核的實時操作系統優化的動力[6][7]。Linux 2.6 內核最初的延時表現和老的2.4內核對比是讓人失望的。[8]實時操作系統的調整工作已經在眾多的對主線內核和一個對2.6.24版本的插入優化的 -rt分支中的調度調整中達到頂峰,最後成為一個CONFIG_PREEMPT_RT(配置優先)補丁。 [9]

參見[編輯]

參考資料[編輯]

  1. ^ JACK Developer Information. jackaudio.org. [2010-01-02]. (原始內容存檔於2010-01-08). 
  2. ^ Release 1.9.22. 2023年2月2日 [2023年2月15日]. 
  3. ^ Ohloh Analysis Summary - JACK. Ohloh. [2010-02-02]. (原始內容存檔於2012-06-06). 
  4. ^ Open Source Awards 2004: Paul Davis for JACK. techrepublic.com.com. [2010-02-16]. (原始內容存檔於2012-07-01). 
  5. ^ What's new in JACK2? - Linux Audio Conference 2009 paper by primary JACK2 author Stephane Letz. linuxaudio.org. [2010-02-17]. (原始內容存檔於2010-03-17). 
  6. ^ Original annoucement of a voluntary pre-emption patch for the Linux 2.6 kernel series by Ingo Molnar, 2004. lkml.org. [2010-02-17]. (原始內容存檔於2016-08-18). 
  7. ^ Finding Origins of Latencies Using Ftrace, paper by Steven Rostedt from the Real-time Workshop 2009 (PDF). [2010-02-17]. (原始內容存檔 (PDF)於2012-10-21). 
  8. ^ Real-time audio vs. 2.6, Linux Audio Conference 2006 paper by Lee Revell (PDF). [2010-02-17]. (原始內容存檔 (PDF)於2020-11-10). 
  9. ^ Real-Time Linux Wiki. Linux Kernel Organization. [2010-06-08]. (原始內容存檔於2012-02-06). 

外部連結[編輯]