ALSA là bộ trộn âm thanh cấp kernel, nó quản lý trực tiếp card âm thanh của bạn. ALSA tự nó chỉ có thể xử lý một ứng dụng tại một thời điểm. Tất nhiên, có ' dmix ', được viết để giải quyết vấn đề này. (Đây là mô-đun ALSA.)
PulseAudio là một bộ trộn phần mềm, trên đầu trang của người dùng (giống như bạn đang chạy một ứng dụng). Khi chạy, nó sử dụng Alsa - không có dmix - và tự mình quản lý mọi loại pha trộn, thiết bị, thiết bị mạng, mọi thứ.
Trong năm 2014, bạn vẫn chỉ có thể chạy ALSA. Nhưng trừ khi bạn tự biên dịch các ứng dụng của mình và kích hoạt hỗ trợ ALSA ở mọi nơi - hoặc sử dụng phân phối dựa trên nguồn như Gentoo - bạn có thể gặp sự cố trộn. Các ứng dụng được biên dịch trước mà distro ship thường chỉ được xây dựng với sự hỗ trợ cho Pulseaudio chứ không phải ALSA thuần túy. Ví dụ, Ubuntu thích PulseAudio. Nó đi kèm với PulseAudio theo mặc định, vì vậy mọi ứng dụng được biên dịch để chỉ sử dụng PulseAudio.
PulseAudio có lợi ích của nó. Mọi người nói rằng nó tốt khi làm việc với âm thanh trên một mạng và nó giải quyết được một số vấn đề với các luồng âm thanh đa kênh xảy ra trong ALSA thuần túy. Việc phát triển ứng dụng cho PA cũng được cho là dễ dàng hơn. Về phía người dùng cuối, bạn có thể dễ dàng chọn thiết bị mới, để điều khiển âm lượng theo ứng dụng, v.v.
Tuy nhiên, trong cấu hình mặc định, nó thêm một độ trễ không đáng kể vào hỗn hợp. Đây là một con lừa lớn cho một số loại nhiệm vụ yêu cầu độ trễ thấp như một số trò chơi và phần mềm.
OSS là một giải pháp thay thế cho cả hai điều này, nhưng nó không được cấp phép theo GPL, điều này khiến cho nó không có khả năng nhìn thấy nhiều sự chấp nhận của các distro.
Minh họa :
Các hệ thống âm thanh được hỗ trợ bởi PulseAudio, như Ubuntu:
Kernel: ALSA -> Userland: PulseAudio -> app1, app2, app3
Trong hệ thống Linux điển hình, PulseAudio trộn âm thanh từ tất cả các ứng dụng khác nhau của bạn và đưa chúng lên chuỗi cho ALSA.
ALSA:
Kernel: ALSA -> dmix -> Userland: app1, app2, app3
Chỉ với ALSA thuần túy, bạn cần dmix để trộn nhiều ứng dụng. Không có nó, ALSA chỉ có thể phát một luồng âm thanh từ một ứng dụng tại một thời điểm.
OSS:
Kernel: OSS -> Userland: app1, app2, app3
Với OSS, các ứng dụng userland nói chuyện trực tiếp với OSS trong kernel, tự trộn các luồng.
Vì vậy, để tóm tắt, trong hệ thống điển hình của bạn những ngày này, ALSA nói chuyện trực tiếp với thẻ âm thanh của bạn và Pulseaudio nói chuyện với các ứng dụng và chương trình của bạn và cung cấp thông tin đó vào ALSA.