1/23/10

BAE Systems dùng MontaVista Linux điều khiển các hệ thống súng.


BAE Systems dùng MontaVista Linux điều khiển các hệ thống súng.


By Colin Holland Embedded.com


(01/21/10, 04:26:00 AM EST)


(Trong một post trước có nói rằng “ Linux là vua trong lĩnh vực các thiết bị nhúng ”. Các thiết bị (hoặc hệ thống) nhúng – embedded devices - là những thiết bị điện tử điều khiển bằng phần mềm trong các phương tiện vận tải, đồ dùng gia dụng (máy giặt, tủ lạnh, đồ chơi, điều hòa nhiệt độ, ...), khí tài quân sự, … Dưới đây là một ví dụ).


LONDON — Hãng sản xuất vũ khí BAE Systems Bofors (Karlskoga, Sweden) đã chọn MontaVista Linux để điều khiển các hệ thống pháo mặt đất và pháo trên tàu chiến mới nhất của hãng. Việc chọn bộ phần mềm Linux nhúng thương mại này nhằm mục đích lập trình nhanh và có sự hỗ trợ dài hạn mà các ứng dụng quân sự yêu cầu.


Theo công ty MontaVista, khi BAE bắt đầu lựa chọn nền tảng phần mềm cho các hệ thống mới pháo mặt đất và pháo trên tàu của họ, họ xem xét cả các hệ điều hành thời gian thực (Real-time Operating System – RTOS) truyền thống và các giải pháp phần mềm nguồn mở như Linux.


Vì các hệ thống pháo mới dùng các bộ vi xử lý tiêu chuẩn, các phần cứng thương mại có sẵn và một số phần cứng riêng của hãng nên có rất nhiều phương án hệ điều hành và môi trường phát triển ứng dụng để chọn lựa. ( Hiện có gần 100 hệ điều hành thời gian thực, xem tại đây). Do bản chất sản phẩm, BAE cần một nền tảng tin cậy và có chất lượng cao nhất.


Cuối cùng BAE quyết định chọn Linux làm môi trường phát triển và dùng hệ điều hành MontaVista Linux Professional Edition. MontaVista nói họ được chọn vì chất lượng thương mại, sự hỗ trợ dài hạn và số các nền tảng phần cứng mà MontaVista Linux hỗ trợ. Chọn MontaVista, BAE có thể nhanh chóng nâng cao kỹ năng và tài năng đội chuyên gia Linux của họ và có cộng đồng Linux rộng lớn.


“ Các khách hàng quân sự cần hệ thống có chất lượng tốt nhất, hỗ trợ dài hạn. Đồng thời, BAE cũng cần một môi trường phát triển cho phép xây dựng nhanh các hệ thống mới thỏa mãn nhu cầu khách hàng,” Mikael Alfredsson, giám đốc thiết kế điện & điện tử của BAE nói. “Bằng cách chọn MontaVista chúng tôi có thể thực hiện các mục tiêu đó với một hệ điều hành nguồn mở chất lượng cao nhất, phát triển phần mềm nhanh và có sự hỗ trợ dài hạn từ các chuyên gia Linux.”





Chính phủ New Zealand bắt đầu thử Linux trên máy để bàn trong tháng hai.


Chính phủ New Zealand bắt đầu thử Linux trên máy để bàn trong tháng hai.


By Angus Kidman, ZDNet.com.au


21 January 2010 11:05 AM


Trong tháng 2/2010, ba cơ quan chính phủ New Zealand (Văn phòng Chính phủ, hội đồng vùng Horizons và cơ quan Bưu chính) bắt đầu dùng thử Linux và các phần mềm nguồn mở khác trên máy tính để bàn thay cho các phần mềm Windows hiện tại.


Tại hội nghị Linux 2010 Australia, Chủ tịch hội phần mềm nguồn mở New Zealand, Don Christie, tiết lộ còn có các kế hoạch thử nghiệm của các cơ quan chính phủ khác.


Trong khi nhiều cơ quan chính phủ New Zealand đã dùng PMNM trên các máy chủ, việc chuyển máy trạm còn ít mặc dù đã có chính sách khuyến khích dùng PMNM của chính phủ từ năm 2003.


“ Vấn đề của chính sách 2003 là nó chưa thừa nhận một thực tế có sự độc quyền phần mềm bao trùm, hành xử một cách thiếu cạnh tranh và đánh bạt mọi phương án khác,” Christie cho biết.


Sau khi hợp đồng dài hạn giữa chính phủ New Zealand và Microsoft kết thúc, từ tháng 8/2009 hội PMNM New Zealand bắt đầu dự án “ Public Sector Remix” nhắm thay đổi tình hình nói trên. Dự án đang xây dựng một bộ PMNM cho máy trạm có thể dùng được trong bất kỳ cơ quan chính phủ nào bằng cách bổ xung các gói phần mềm cần thiết.


“ Té ra là việc xác định một bộ PMNM tiêu chuẩn cho các cơ quan chính phủ rất đơn giản,” Christie nói. Bộ phần mềm tiêu chuẩn đó gồm hệ điều hành Ubuntu, trình duyệt Firefox, phần mềm văn phòng OpenOffice và phần mềm quản lý nội dung (Content Management System) Alfresco.




1/21/10

Ghi chép về an ninh trong Linux


Ghi chép về an ninh trong Linux




I. Khái niệm chung


Trong hoạt động của máy tính, một thực thể có thể cần phải truy cập đến một thực thể khác để thực hiện một hành động nào đó. Ví dụ: một user đọc một file, một chương trình chơi nhạc gọi một chương trình khác để phát âm ra loa, v.v..


Các thực thể thực hiện các hành động đối với các thực thể khác được gọi là chủ thể truy cập (subject). Các thực thể được truy cập gọi là đối tượng truy cập (object). Chủ thể thường là một tiến trình (process) hoặc một mạch tiến trình (thread), đối tượng là file, thư mục, các cổng TCP, các vùng bộ nhớ dùng chung, v.v...


Để đảm bảo an ninh cho hệ thống, việc truy cập không thể tự do, bừa bãi mà cần được kiểm soát. Hệ thống kiểm soát truy cập (Access control systems) thực hiện ba dịch vụ chính: nhận dạng và xác thực ( identification and authentication - I&A), cấp phép ( authorization), và theo dõi ( accountability)



I.1-Xác nhận (Nhận dạng và xác thực - Identification and authentication - I&A)


Một chủ thể truy cập trước hết phải cung cấp một dấu hiệu nhận dạng (identity) hợp lệ (vd: một cặp username và password tối thiểu 6 ký tự chẳng hạn. Nếu chỉ có username, hoặc chỉ có pasword hoặc có cả username và password nhưng password chỉ có 5 ký tự là không hợp lệ). Sau khi kiểm tra là chủ thể có dấu hiệu nhận dạng hợp lệ, quá trình xác thực sẽ so sánh dấu hiệu đó với dấu hiệu đã đăng ký để xác nhận chủ thể đó đúng là nó.


Quá trình đó tương tự như khi ta trình giấy mời vào một cuộc họp quan trọng: đầu tiên người gác cổng phải xem giấy mời có hợp lệ không (đúng mẫu giấy mời, có chữ ký và dấu v.v...) sau đó tra xem tên ghi trên giấy và tên trên chứng minh thư có trùng nhau không và thậm chí tên đó có trong danh sách khách mời không v.v.. Nếu tất cả đều đúng thì ta được xác nhận đúng là người được mời họp và được vào.



I.2- Cấp phép (Authorization)


Việc cấp phép xác định chủ thể được làm những hành động gì trên đối tượng.


Trong các hệ điều hành, quyền của chủ thể trên đối tượng là tổ hợp của ba loại quyền truy cập cơ bản sau:





  • Read (R): chủ thể có thể





    • Đọc nội dung file




    • Đọc (liệt kê) nội dung thư mục






  • Write (W): chủ thể có thể thay đổi nội dung file hoặc thư mục.




  • Execute (X): nếu file là một chương trình, chủ thể có thể chạy chương trình đó.




Cách cấp phép cụ thể tùy theo mô hình (kỹ thuật) kiểm soát truy cập (xem dưới đây).



I.3- Theo dõi (Accountability)


Việc theo dõi các hành động của chủ thể được thực hiện tự động bằng các audit trails (records) và các file log. Dựa vào đó có thể:





  • Phát hiện các vi phạm quy tắc an ninh.




  • Tái tạo lại các sự cố về an ninh.




II. Các kỹ thuật kiểm soát truy cập (Access control techniques)


II.1-Kiểm soát truy cập tùy ý (Discretionary access control - DAC)


Trong kỹ thuật này, mỗi đối tượng đều có một chủ nhân (owner). Chủ nhân của đối tượng có toàn quyền quyết định chính sách truy cập đối tượng: cho chủ thể nào được truy cập và được làm những hành động gì trên đối tượng. Vì thế mới có tên là “Kiểm soát truy cập tùy ý”, theo ý muốn của chủ nhân đối tượng, không có một chính sách truy cập thống nhất trong toàn hệ thống.


Ví dụ khi một user tạo ra một file thì user đó là owner của file và có toàn quyền cho phép các user khác được truy cập vào file đó theo các mức độ khác nhau hoặc cấm hoàn toàn không cho ai ngoài mình được truy cập file.


Đây là kỹ thuật (hoặc còn gọi là mô hinh) kiểm soát truy cập phổ biến của các hệ thống file Linux hiện nay.



II.2-Kiểm soát truy cập bắt buộc (Mandatory access control - MAC)


Trong kỹ thuật MAC, chính sách truy cập các đối tượng được thiết lập chung, thống nhất, bắt buộc cho toàn hệ thống bởi người quản trị an ninh hệ thống ( security policy administrator), không phải theo ý thích của các chủ nhân các đối tượng. Kỹ thuật này thường được dùng trong các hệ thống phân cấp có các dữ liệu cần bảo mật cao như các hệ thống mật của chính phủ hoặc quân đội. Có hai đặc điểm quan trọng sau:





  • Nhãn bảo mật (Security label): trong hệ thống MAC, tất cả các chủ thể và đối tượng truy cập đều có nhãn bảo mật gán cho chúng. Để truy cập vào một đối tượng, chủ thể phải có nhãn với cấp bảo mật bằng hoặc cao hơn cấp bảo mật của đối tượng.




  • Kiểm soát xuất nhập dữ liệu: một trong các chức năng tối quan trọng của hệ MAC là kiểm soát việc nhập dữ liệu từ các máy khác vào và xuất dữ liệu ra các thiết bị bên ngoài (kể cả máy in). Trong quá trình xuất nhập, nhãn bảo mật phải luôn luôn được thiết lập và bảo trì một cách thích hợp sao cho các dữ liệu mật luôn luôn được bảo vệ.




Trong kỹ thuật DAC, chủ thể truy cập thừa kế các quyền của user khi truy cập đối tượng. Các quyền đó có thể quá rộng (ví dụ khi user là root, chương trình do root chạy sẽ có quyền truy cập như root) nên nếu chủ thể bị hacker điều khiển, tác hại sẽ lớn. MAC cho phép giới hạn quyền của chủ thể ở mức tối thiểu cần thiết, hạn chế được tác hại nói trên.



II.3-Kiểm soát truy cập dựa trên chức danh (Role-based access control - RBAC)


Trong kỹ thuật RBAC, hệ thống gồm nhiều chức danh khác nhau, tương tự như chức danh trong một tổ chức. Mỗi chức danh đó có quyền thực hiện các hành động khác nhau. Khác với MAC có hành động chỉ giới hạn ở các quyền đọc, viết, hành động trong RBAC từ mức đơn giản đọc, viết đến mức phức tạp là một chuỗi các hành động tạo thành một giao dịch (transaction) hoàn chỉnh. RBAC cũng giống MAC là chính sách truy cập được thiết lập tập trung bởi người quản trị an ninh mà không tùy thuộc vào chủ nhân các đối tượng như với DAC.


Ba quy tắc cơ bản của RBAC:


1. Gán chức danh: một chủ thể truy cập chỉ có thể thực hiện hành động nếu nó được gán một chức danh nhất định trong hệ thống.


2. Cho phép đảm nhiệm chức danh: một chủ thể chỉ có thể được gán một số chức danh nhất định. (tương tự như một nhân viên chưa có bằng đại học thì không thể làm trưởng phòng).


3. Cho phép thực hiện giao dịch: một chủ thể đã được gán một chức danh chỉ được thực hiện các giao dịch mà chức danh đó được phép làm.


RBAC thường được dùng trong các phần mềm thương mại hoặc quân sự, nơi cần bảo mật các giao dịch.



III. SELinux


SELinux là một công nghệ tăng cường an ninh cho nhân Linux. SELinux là sản phẩm chung của cục An ninh Quốc gia Mỹ và một số công ty tin học, đã được tích hợp vào nhân Linux (Linux kernel) từ phiên bản 2.6 trở đi.


Các bản Linux trước 2.6 chỉ dùng phương pháp quản lý truy cập tùy ý (DAC). SELinux thông qua cơ chế mô đun an ninh ( Linux Security Modules - LSM) bổ xung thêm hai phương pháp quản lý truy cập MAC và RBAC vào nhân Linux.




Hình 1: Chính sách an ninh và các module an ninh tăng cường độc lập với nhau trong SELinux.


Trong hình 1, người quản trị an ninh hệ thống dùng các công cụ chính sách (Policy utilities) để thiết lập chính sách an ninh (Security policy) chung cho hệ thống. Mỗi khi nhân Linux cần truy cập một đối tượng nào đó, trước tiên nó sẽ gọi (Request) hàm an ninh trong Security module, hàm này kiểm tra các điều kiện truy cập theo Security policy đã thiết lập rồi cho phép (Response) thực hiện truy cập.



IV. AppArmor


SELinux tuy tốt về mặt an ninh nhưng phức tạp, khó sử dụng. AppArmor là bộ phần mềm được xem là một giải pháp thay thế thân thiện, dễ sử dụng hơn. Các đặc điểm chính:





  • Cũng dựa trên cơ chế mô đun an ninh LSM như SELinux.




  • Mỗi chương trình có một security profile giới hạn quyền truy cập của chương trình ở mức tối thiểu đủ để thực hiện công việc của mình. Các profile này do người quản trị an ninh lập và như vậy áp dụng kỹ thuật MAC vào Linux. Chương trình chỉ được hoạt động trong giới hạn mà security profile của nó cho phép.




  • Ngoài các profile lập bằng tay, AppArmor còn có mode tự học: các hoạt động của chương trình được lưu lại trong log, các log này có thể chuyển thành profile.




  • SELinux dùng secutity label do đó đòi hỏi hệ thống file phải hỗ trợ dạng label đó. AppArmor không dùng secutity label nên áp dụng với hệ thống file nào cũng được.




  • SELinux truy cập file dựa trên số inode (inode number), AppArmor truy cập file bằng đường dẫn (path). Cách nào hay hơn thì còn đang cãi nhau. Một trong những phần mềm an ninh mới nhất dùng kỹ thuật MAC nhưng truy cập file bằng đường dẫn là Tomoyo.




V. Ứng dụng


Các máy để bàn thường chỉ kiểm soát truy cập theo kỹ thuật DAC. Vì vậy các bản Linux desktop không cài sẵn SELinux hoặc AppArmor. OpenSUSE là bản Linux desktop có đầy đủ giao diện đồ họa nhất để thiết lập và quản trị AppArmor (có cả wizard) nhưng mặc định cũng không kích hoạt (enable) AppArmor. Mandriva có các gói phần mềm SELinux và AppArmor trong kho nhưng không cài có lẽ vì đã có Msec. Linux Mint có cài một vài thư viện của hai phần mềm trên nhưng không đầy đủ.


Trong một thế giới kết nối Internet, các máy để bàn đều bị nhòm ngó và có nguy cơ bị biến thành máy tính âm binh (zombie) trong một mạng máy tính ma (botnet) thì có lẽ tăng cường an ninh bằng SELinux hoặc AppArmor vẫn tốt hơn mặc dù như vậy sẽ gây phức tạp hơn cho việc cài thêm các phần mềm mới.


Còn với các máy chủ thì tăng cường an ninh bằng SELinux hoặc AppArmor là đương nhiên.



VI. Ảo hóa hệ điều hành


Một trong những giải pháp nữa để tăng cường an ninh là dùng các máy chủ ảo. Trên một máy chủ vật lý chạy một hệ điều hành chủ, trong hệ điều hành chủ dùng phần mềm ảo hóa để tạo nên một số máy chủ ảo. Mỗi máy chủ ảo chạy một hệ điều hành và chương trình ứng dụng riêng. Các máy chủ ảo cô lập so với nhau và với máy chủ chính. Như vậy khi một máy ảo bị tấn công không ảnh hưởng tới các máy khác.




1/15/10

Đám mây đen trên đầu dân IT

Trong một post trước về Điện toán đám mây tôi có dự báo:

"Nhưng lúc đó, dân tin học làm gì? Máy tính chỉ còn như cái TV, ít hỏng và cũng chẳng cần cài đặt. Phần mềm “tây” đầy trên Internet, mua thẻ rồi dùng như học ngoại ngữ online bây giờ, học sử dụng cũng qua web. Cái thị trường rộng lớn mà vố số “kỹ sư tin học” với trình độ cao nhất là biết cài Windows, MS Office hiện đang lĩnh lương sống được sẽ không còn nữa.

Nhưng có nhanh chắc cũng phải 10-20 năm nữa. Khi nào thấy Internet wifi cao tốc miễn phí khắp hang cùng ngõ hẻm lo cũng vừa."

Nhưng đám mây đen với dân tin học có vẻ đã bắt đầu xuất hiện sớm hơn dự kiến:

"20% các công ty sẽ đóng cửa bộ phận IT

Trung bình cứ 5 doanh nghiệp sẽ có một quyết định xóa bỏ bộ phận CNTT do sự phổ biến của điện toán đám mây vào năm 2012, theo dự đoán của hãng nghiên cứu Gartner."

Nguồn: VnExpress.

Đó là thông tin ở Tây. Còn ở Việt nam thì sao? và bao giờ?

1/12/10

ClearOS, bộ phần mềm thay thế cho Microsoft Small Business Server


The Small Business Server Replacement is Clear(OS)


Christopher Smart


Wednesday, January 6th, 2010


( Trong bài trước đã giới thiệu eBox, một bộ phần mềm máy chủ tổng hợp. Bài lược dịch này giới thiệu thêm một bộ nữa. Bộ này tôi chưa thử. Các chữ nghiêng là lời người dịch - Zxc232).


Trên Internet, Linux là người chiến thắng lớn.


Các máy chủ mail và web (mail and web servers), cơ sở dữ liệu (database), cụm máy chủ tính toán (computational clusters) và siêu máy tính (supercomputers) tất cả đều là sân của phần mềm tự do. Linux cũng là vua trong lĩnh vực các thiết bị nhúng (embedded devices).


Tuy nhiên có hai lĩnh vực chính mà Linux còn chưa xâm nhập được là máy chủ và máy để bàn của doanh nghiệp nhỏ. Nhiều doanh nghiệp vừa và nhỏ đang là các quầy hàng của Microsoft vì các máy desktop chạy Windows. Để xâm nhập vào đó, Linux cần tìm được một khe hở không gây ồn ào.


Một số đám mây điện toán hiện đang là một giải pháp cho vấn đề đó ( cung cấp các ứng dụng Linux đám mây) nhưng không phải tất cả các công ty đều muốn đưa các dữ liệu nhậy cảm của họ lên Internet và phó thác cho người khác. Vì vậy thị trường các máy chủ riêng của từng công ty vẫn còn đang sôi động và màu mỡ.


Các yêu cầu.


Một trong những lý do làm bộ phần mềm Microsoft Small Business Server (SBS) hấp dẫn là vì nó bao gồm sẵn nhiều tính năng cốt lõi cần cho một công ty. Các dịch vụ như xác thực trung tâm (central authentication), thư điện tử, chia sẻ file và máy in, máy chủ web đều rất quan trọng. Và có lẽ quan trọng nhất là lịch công tác. Đó là những thứ sống còn đối với doanh nghiệp mà các giải pháp Linux thay thế còn khó đáp ứng.


Dưới đây là một số tính năng chính của SBS:




Xác thực người dùng tập trung (Active Directory)
Thư điện tử, lịch công tác và tin nhắn (Exchange)
Máy chủ web (IIS)
Tường lửa (ISA)
Hệ thống quản lý nội dung (Sharepoint)
Chống virus (Forefront)
Cơ sở dữ liệu (MS-SQL)
Truy cập máy để bàn từ xa
Mạng riêng ảo (VPN)




Không tính đến các vấn đề về văn hóa công ty và bản quyền, nếu Linux muốn cạnh tranh được với SBS tối thiểu phải có được các tính năng nói trên, làm việc trơn tru và sử dụng đơn giản.


Thay máy chủ bằng Linux là một chuyện, nhưng các máy để bàn thì không thay dễ như thế. Máy chủ Linux vì vậy phải làm việc được như một máy chủ quản lý vùng chính (Primary Domain Controller – PDC) cho một mạng các máy Windows. Các máy Windows có thể gia nhập mạng và dùng được các tính năng như roaming profiles.


Thứ hai, nếu giao diện và cách dùng khác nhau, người dùng sẽ kêu ca. Phần lớn các công ty dùng Microsoft Outlook làm phần mềm thư điện tử và lập lịch cá nhân. Vì vậy điều lý tưởng là các máy chủ Linux nên làm việc được với Outlook.


Câu trả lời là rõ ràng


Tại sao Linux vẫn chưa thâm nhập được vào thị trường đó giống như nó đã làm với các hạ tầng máy chủ cỡ lớn khác? Đó không phải vì các công cụ của các tính năng đó không có. Ngược lại, trong từng tính năng riêng biệt, Linux là vượt trội. Linux hoàn toàn có thể làm việc như Windows PDC, chia sẻ file, máy in, làm máy chủ web và máy chủ database!


Trước đây, điểm yếu nhất của Linux là chia sẻ danh bạ và lịch công tác. Nay thì có đến hàng chục phần mềm làm việc nhóm khác nhau. Lý do chính để SBS còn được dùng rộng rãi chính là tính năng lập và chia sẻ lịch, danh bạ này, và khi Linux đã làm tốt thì đó không còn là một cản trở nữa ( Riêng các tính năng đó trong bộ Zimbra mà tôi đã thử thì rất tốt)


Như vậy các công cụ cần thiết đều có và mỗi người dùng Linux có kinh nghiệm đều có thể cài một bộ phần mềm thay thế SBS. Nhưng nếu người quản trị hệ thống không có kinh nghiệm về Linux, họ sẽ yêu cầu một hệ điều hành có sẵn các tính năng nói trên với một giao diện dễ sử dụng. Nếu Linux khó dùng, họ sẽ tiếp tục dùng Windows.


ClearOS , một bản Linux tự do, nguồn mở được xây dựng nhằm mục tiêu đó. Tổ chức ClearFoundation công bố phiên bản ClearOS 5.1 đúng trước lễ Giáng sinh và hiện có để download.


Nghe thì có vẻ mới nhưng thực ra ClearOS đã có một lịch sử lâu đời. Trước đây nó có tên là ClarkConnect, một bản Linux rất phổ biến để cài đặt một máy chủ Linux nhanh chóng và thuận tiện. ClearOS xây dựng trên nền bản Linux CentOS, bản này lại dùng mã nguồn của Red Hat Enterprise Linux, một trong những bản Linux máy chủ nổi tiếng nhất hiện nay. Vì vậy, nền tảng của ClearOS là vững chắc và đáng tin cậy.


Tính năng phong phú


ClearOS tích hợp tất cả các tính năng yêu cầu thành một gói nhỏ, dễ cài đặt và sử dụng. Nó biến bất kỳ một máy tính nào thành một máy chủ tinh vi, tin cậy và mạnh cho bất kỳ một mạng nào.


Nó cung cấp những gì? Đây là danh sách:




Xác thực người dùng tập trung (LDAP)
Máy chủ quản lý vùng chính (Samba)
Các dịch vụ chia sẻ file và máy in (Samba and CUPS)
Máy chủ thư điện tử (SMTP, POP, IMAP, Webmail)
Lập và chia sẻ lịch công tác (Kolab groupware)
Máy chủ web (Apache)
Tường lửa và chống xâm nhập (iptables, Snort)
Chống malware (Clam Antivirus, Antiphishing, Antispyware)
Chống spam (Spamassassin)
Máy chủ cơ sở dữ liệu (MySQL)
Mạng riêng ảo (IPSec, OpenVPN, PPTP)
Web Proxy (Squid)




( Trong danh sách trên không có phần mềm quản lý nội dung, nhưng có thể bổ xung Joomla, Drupal, … vào. Cũng không có tổng đài VoIP Asterik như eBOX.)


Tính phức tạp của từng thành phần được giấu đằng sau một giao diện quản trị hệ thống dạng web (web based), qua đó người dùng có thể bật, tắt từng module theo yêu cầu.


Hệ thống cũng được thiết kế mở rộng được. Các thành phần đằng sau không bị giấu đi hẳn mà cho phép người quản trị có thể thâm nhập trực tiếp, thay đổi mọi thứ theo ý muốn. Có nhiều hướng dẫn dạng how-to để thực hiện các tính năng phụ.


ClearOS hỗ trợ các module ngoài, cung cấp các tính năng bổ xung không có sẵn mặc định. Có thể thay thế phần mềm máy chủ groupware bằng một phần mềm khác hoặc thậm chí tạo hẳn một module mới.


Bộ phần mềm groupware Kolab cũng được nhưng phần kết nối với Outlook phải mua riêng, ví dụ từ Toltec hoặc KONSEC. Có sẵn phần mềm clien dạng web Horde nhiều tính năng nhưng không đẹp lắm. Người dùng Linux có thể dùng ứng dụng Kontact hoặc Thunderbird với addon Sync Kolab.


Giao diện quản trị hệ thống


Quá trình cài đặt trơn tru, hỗ trợ cả RAID cứng và mềm. Trong quá trình cài, người dùng có thể chọn các dịch vụ muốn dùng hoặc cấu hình sau qua giao diện quản trị web based.


Giao diện quản trị dạng web khá trực quan và dễ dùng. Các tính năng máy chủ được nhóm thành các nhóm như Thư mục, Mạng, Hệ thống, Gateway, trong đó các admin có thể cấu hình các thành phần. Mọi thứ từ bổ xung user đến cấu hình IPSec VPN đều qua một vài bước đơn giản. Trong 5 phút, một admin có thể có một máy chủ quản lý Windows domain đầy đủ chức năng.


Trong giao diện quản trị cũng có các loại report khác nhau về trạng thái tài nguyên hệ thống, lưu lượng mạng, thống kê mail và web và các bản log hệ thống cổ điển.



Có một số cải tiến trong giao diện, cung cấp nhiều feedback hơn. Hiện tại ClearOS còn chưa có phiên bản 64bit nhưng hy vọng rồi sẽ có.


Mặc dù vậy, ClearOS thực sự là một giải pháp thay thế nghiêm chỉnh cho SBS. Nó có mọi tính năng cần thiết, quản trị đơn giản và có đầy đủ sức mạnh của Linux và phần mềm nguồn mở.


Các phương thức hỗ trợ người dùng


Tất nhiên một trong những thành phần cơ bản của bất kỳ mạng máy tính nào là hỗ trợ thương mại (có thu phí) mà ClearFoundation cung cấp qua ClearCenter.


Trung tâm của ClearCenter là Clear Service Delivery Network, viết tắt ClearSDN. Đăng ký vào ClearSDN là miễn phí và bắt buộc để có thể cập nhật phần mềm.


ClearSDN cũng có các dịch vụ trả phí, bao gồm:


“Cập nhật các phần mềm antimalware, các module tính năng mới, hỗ trợ kỹ thuật và các ứng dụng đám mây điện toán như backup server từ xa.”


Trong khi bản thân ClearOS là phần mềm nguồn mở, cũng có vài lắt léo. Cập nhật phần mềm hệ thống thì miễn phí nhưng cập nhật các định nghĩa virus, malware lại có phí.


ClearFoundation cũng bán các máy chủ cài sẵn (hardware appliance) gọi là ClearBOX. Các máy chủ này được cài sẵn ClearOS, cấu hình sẵn, đã test và xác nhận là tương thích hoàn toàn. Người dùng có thể tải ClearOS về cài lên máy chủ riêng của mình, cũng có thể mua ClearBOX có độ tin cậy cao hơn.


ClearCenter cũng có dịch vụ hỗ trợ thương mại (trả phí) gọi là ClearCare:



ClearCARE là phương pháp đổi mới để người dùng được hỗ trợ kỹ thuật cho ClearOS, ClearSDN và ClearBOX.”

Cuối cùng, ClearFoundation lập một cổng điện tử cho cộng đồng người sử dụng. Đây là nơi duy nhất người dùng có thể tìm kiếm sự hỗ trợ, trao đổi với những người dùng khác qua một giao diện thân thiện.





Nhìn chung lại thì hướng xây dựng ClearOS cũng giống như eBOX: tích hợp các phần mềm nguồn mở cần thiết tạo thành một bộ phần mềm máy chủ đủ các tính năng cần thiết cho doanh nghiệp vừa và nhỏ, cài đặt đơn giản và có một giao diện đồ họa để quản trị tập trung, tự động hóa các thao tác quản trị. Cách làm này khắc phục được nhược điểm cài đặt, cấu hình phức tạp bằng tay, phải học hỏi nhiều của các phần mềm Linux máy chủ. Một người quản trị hệ thống không có kinh nghiệm về Linux cũng có thể nhanh chóng làm chủ được các bộ phần mềm kiểu này như với các bộ phần mềm máy chủ của Microsoft.




12/23/09

eBox – bộ phần mềm máy chủ tổng hợp nguồn mở


eBox – bộ phần mềm máy chủ tổng hợp


Như đã nói trong một số post trước, phần mềm máy chủ là lĩnh vực mà PMNM phổ biến nhất, hiệu quả nhất từ trước khi Windows NT, Exchange, … ra đời. Cho đến nay, đại đa số siêu máy tính dùng hệ điều hành Linux, Apache là phần mềm máy chủ web của phần lớn website, các máy chủ thư điện tử cũng đa phần là PMNM, v.v...


Tính an ninh, bảo mật tốt, độ tin cậy cao, yêu cầu cấu hình máy thấp, chi phí rẻ, thông tin hỗ trợ công khai là các yếu tố làm nên tính phổ biến trên.


Nhược điểm của các phần mềm máy chủ nguồn mở:





  • Mỗi thành phần là một sản phẩm độc lập do các nhóm tác giả khác nhau thực hiện, hệ điều hành Linux lại có nhiều, do đó việc tích hợp chúng với nhau tương đối phức tạp. Ví dụ: một máy chủ mail thường gồm 5-6 sản phẩm khác nhau, cài đặt được cho chúng làm việc với nhau chỉ là bước đầu, tinh chỉnh để chúng phối hợp với nhau đạt tính năng tốt nhất, bảo trì được toàn bộ là cả một vấn đề đòi hỏi thời gian và kinh nghiệm.




  • Phần lớn các phần mềm máy chủ nguồn mở nguyên bản đều cài đặt, quản trị bằng lệnh, cấu hình bằng lệnh hoặc sửa các file cấu hình. Do đó khó học, dễ nhầm, làm nản lòng những người mới bắt đầu. Bù lại, nếu đã nắm vững thì hiểu được khá sâu.




Để khắc phục các nhược điểm trên, đã có nhiều dự án xây dựng các giao diện đồ họa (thường là giao diện web) để quản trị các phần mềm máy chủ. Một trong những dự án đó là Webmin. Search tên phần mềm cộng với một trong các từ khóa: GUI (Graphic User Interface), Web Interface, Frontend, … có thể tìm ra nhiều loại giao diện khác nhau.


Hiện nay, dự án eBox đang có tham vọng xây dựng một bộ phần mềm máy chủ tổng hợp với rất nhiều chức năng dùng cho các doanh nghiệp vừa và nhỏ. Tôi mới tìm hiểu được bước đầu thấy rất hay nên chia sẻ để mọi người tham khảo.


eBox là bộ phần mềm máy chủ nguồn mở chạy trên nền hệ điều hành Ubuntu Server 8.04 với bộ cài đặt chỉ gồm một đĩa CD. Các phần mềm khác cũng là nguồn mở như openLDAP, Postfix, Samba, Asterik, … nhưng được tích hợp sẵn, có giao diện web để quản trị, có tài liệu hướng dẫn khá chi tiết. Do tích hợp nên các thao tác quản trị được tự động hóa, liên kết với nhau: khi làm một việc, các việc liên quan trong hệ thống được tự động thực hiện theo, vừa nhanh vừa không bị xung đột.


Các chức năng chính gồm:


1- Quản trị mạng:





  • Tường lửa và bộ định tuyến (Firewall and router)








    • Lọc các gói tin (Traffic filtering)




    • Chuyển địa chỉ IP và đổi hướng cổng (NAT and port redirection)




    • Lập các mạng cục bộ ảo (Virtual local networks, VLAN 802.1Q)




    • Hỗ trợ nhiều gateways, tự cân bằng tải và tự điều chỉnh khi mất kết nối.




    • Quản lý luồng dữ liệu (Traffic shaping), hỗ trợ lọc gói tin ở mức ứng dụng.




    • Theo dõi luồng dữ liệu (Traffic monitoring)




    • Hỗ trợ DNS động.








  • Các dịch vụ và đối tượng mạng cao cấp (High-level network objects and services)




  • Các dịch vụ hạ tầng mạng (Network infrastructure)








    • Máy chủ cấp địa chỉ IP (DHCP server)




    • Máy chủ phân giải tên miền (DNS server)




    • Máy chủ thời gian (NTP server)








  • Mạng riêng ảo (Virtual private networks - VPN)








    • Các tuyến mạng tự cấu hình động (Dynamic auto-configuration of network paths)








  • Máy chủ web proxy ( HTTP proxy)








    • Cache




    • Xác thực người dùng (User authentication)




    • Lọc nội dung (Content filtering) có danh sách phân loại.




    • Chống virus lan qua web (Transparent antivirus)








  • Quản lý domain như máy chủ Windows PDC




  • Máy chủ Web (Web server)




  • Hệ thống phát hiện xâm nhập (Intrusion Detection System - IDS)




3- Hệ thống làm việc nhóm (Groupware):





  • Máy chủ file, chia sẻ thư mục dùng LDAP (Windows/Linux/Mac)






  • Máy chủ quản lý các ổ cứng mạng NAS (Network-attached storage)




  • Máy chủ in ấn, quản lý các máy in trong mạng.




  • Máy chủ phần mềm làm việc nhóm eGroupware server: calendars, address books, tasks...




4- Hệ thống truyền thông hợp nhất (Unified Communications)





  • Máy chủ thư điện tử (Mail server)








    • Chống spam và virus




    • Bộ lọc POP3




    • Hỗ trợ các dạng White-, black- and grey-listing trong chống spam.








  • Tổng đài điện thoại IP (VoIP server)








    • Quản lý các điện thoại IP




    • Có hệ thống thư thoại (Voicemail)




    • Họp qua điện thoại (Meetings)




    • Gọi ra các hệ thống điện thoại bên ngoài.








  • Máy chủ tin nhắn, chat (Instant messaging server – Jabber/XMPP).




5- Hệ thống theo dõi và báo cáo





  • Thông tin trạng thái hệ thống tập trung một chỗ (dashboard)




  • Theo dõi trạng thái ổ cứng, RAM, tải, nhiệt độ và CPU.




  • Theo dõi trạng thái ổ cứng RAID bằng phần mềm và các thông tin liên quan đến việc sử dụng ổ cứng.




  • Lưu nhật ký hoạt động mạng trong cơ sở dữ liệu, lập báo cáo hàng ngày, tuần, tháng.




  • Thông báo qua tin nhắn, mail và RSS.




  • Các dịch vụ hệ thống khác: backup và recovery, cập nhật phần mềm.




Quá đủ cho một doanh nghiệp (tổ chức) vừa, nhất là ở Việt nam rồi!


eBox có cấu trúc module, khi cài có thể chọn chỉ cài những cái cần thiết. Ngay những module đã cài cũng có thể bật, tắt (enable, disable) nếu muốn. Vì vậy có thể cài trên một hoặc nhiều máy chủ, mỗi cái làm một chức năng khác nhau.


Từ một máy khác trong mạng, gõ địa chỉ (ví dụ https://10.0.31.26/ebox) vào trình duyệt Firefox sẽ đi đến màn hình quản trị hệ thống như sau:



Tất nhiên là cần có những kiến thức cơ bản nhất định về từng chức năng mới có thể cài đặt, cấu hình được. Cái hay nhất ở đây là khi thay đổi một mục, các mục có liên quan sẽ tự động được thay đổi theo, vừa nhanh vừa không nhầm lẫn. Tài liệu hướng dẫn tải về tại đây. Ngoài ra forum cũng hỗ trợ được nhiều thứ cần thiết (có cả một số tutorial).


Version hiện thời là 1.2, đã có bản 1.3 beta. Có lẽ đây là bộ phần mềm đầu tiên tích hợp được nhiều thứ như vậy, nhưng cũng do ôm quá nhiều thứ nên quá trình đi đến hoàn thiện chắc còn dài.


(Xem thêm một bộ khác tại đây)





12/21/09

Multimedia trong Linux (sửa, bổ xung và hết)


Hệ thống multimedia trong Linux.


Multimedia trong Linux khá rắc rối. Bài này ghi lại vài khái niệm tìm hiểu được để đỡ lúng túng khi sử dụng.



I. Một vài khái niệm


Multimedia là từ chung để chỉ các dạng dữ liệu: văn bản (text), âm thanh (audio), ảnh tĩnh (still image), hoạt hình (animation) và phim (video).


Các dữ liệu audio, video được tạo ra (bằng máy ảnh, máy quay video) hoặc được chơi lại (playback, bằng loa, đèn hình TV hay màn hình máy tính) dưới dạng các sóng điện tử liên tục. Các sóng đó phải được chuyển thành dữ liệu số ( encoder, mã hóa: từ sóng thành các dãy số 0,1) rồi nén hoặc không nén để có thể lưu trữ, biên tập, truyền đi trên máy tính. Khi encoder, dữ liệu có thể để nguyên (lossless, không mất) hoặc bỏ đi các phần thừa mà con người không cảm nhận được để giảm dung lượng dữ liệu tiện cho lưu trữ hoặc truyền trên mạng (lossy, có mất dữ liệu).


Để con người có thể thưởng thức được (nghe, xem), các dữ liệu số multimedia nói trên lại được chuyển đổi ngược lại từ các dãy số 0,1 thành sóng điện từ làm kêu loa hoặc vẽ hình lên màn hình. Quá trình chuyển đổi ngược đó gọi là decoder, giải mã.


Một bài hát, khi ghi vào băng từ hoặc đĩa than vẫn ở dạng các sóng âm, khi ghi thành file MP3 là đã được mã hóa sang dạng số. Tương tự, một bức ảnh chụp lên phim được lưu dưới dạng các phổ màu liên tục, khi lưu thành file JPEG, PNG, ... là đã mã hóa sang dạng số.


Codec (viết tắt của en coder/ decoder)là các phần mềm/thuật toán/công nghệ dùng để mã và giải mã (có nén hoặc không) dữ liệu multimedia như nói trên.


hàng nghìn codec nhằm vào các mục tiêu khác nhau: codec cho điện thoại phải có độ trễ thấp, chất lượng âm không cần cao; ngược lại, codec để chơi nhạc chất lượng âm phải cao nhưng độ trễ không quan trọng, v.v....


Multimedia Format: sau khi mã hóa, dữ liệu multimedia được lưu thành các file có định dạng (format) khác nhau. Một file ảnh có thể lưu dưới dạng file jpg, png, bmp, ... Một đoạn phim thường gồm ba loại dữ liệu: video, audio và metadata để đồng bộ hình với tiếng. Ba loại dữ liệu đó được lưu chung trong một loại format gọi là media container format (ví dụ avi). Nhiều loại codec khác nhau có thể lưu file cùng một format avi, tất nhiên là chất lượng phim tùy theo codec.


Một vài codec và format chính (có hàng nghìn codec và hàng trăm format):


Microsoft: Microsoft có hai hệ codec phổ biến là Windows Media Audio (WMA) và Windows Media Video (WMV). Mỗi hệ gồm một số codec. Các file được mã hóa bằng hai codec trên được lưu theo media container format ASF (Advanced System Format). Tuy nhiên phần đuôi file (extension) thì tùy: file audio có đuôi là .wma, file video: .wmv nhưng nếu muốn cả hai loại file trên có thể có đuôi là .asf.


Microsoft còn có một container format cổ hơn là AVI (Audio Video Interleave), đuôi file .avi. Cả hai loại format ASF và AVI có thể chứa được nhiều loại codec khác, không bắt buộc phải là WMA và WMV.


MPEG: là tên tắt của Nhóm chuyên gia về ảnh động (Moving Picture Experts Group) chuyên thiết lập các chuẩn ISO về nén và truyền audio, video. MPEG-1 là chuẩn đầu tiên trong đó có MPEG-1 Audio Layer 3 ( MP3) vẫn còn rất phổ biến hiện nay. MP4 (viết tắt của MPEG-4 Part14) là một loại media container format, đuôi file cũng là .mp4.


DivX: là một video codec nổi tiếng vì có khả năng nén các file video lớn xuống dung lượng thấp nhưng vẫn giữ được chất lượng hình khá. Từ DivX 6 có thêm một media container format DivX Media Format (DMF), đuôi file là .divx, dành cho DVD-Video. DivX là một sản phẩm nguồn đóng.


Xvid: một video codec cạnh tranh với DivX, nguồn mở.


RealAudio/RealVideo: là các format của công ty RealNetwork cho file audio và video. Mỗi format này có thể dùng các codec khác nhau. Đuôi file tương ứng là .ra và .rv. Ngoài ra còn có một format tổ hợp cho cả audio và video gọi là Real Media Format có đuôi file là .rm. Các file .ram và .smil dùng cho các link từ website để chạy các file tải về từ Internet (streaming).


FFmpeg: là một dự án nguồn mở xây dựng các phần mềm và thư viện để ghi, chuyển đổi và truyền dẫn audio/video. Thư viện libavcodec cung cấp codec cho hàng chục loại format audio/video khác nhau.


Ogg: là media container format nguồn mở dành cho audio/video chất lượng cao. Trong đó, Ogg Theora là video codec, Ogg Vorbis là audio codec. Trước đây, file .ogg gồm cả audio và/hoặc video. Từ 2007, file .ogg chỉ còn là file audio, file .oga là file audio, file .ogv là file video.


Flash Video: là một media container format dùng chơi video trên các trang web bằng Adobe Flash Player. Có hai format là FLV và F4V, trong đó F4V mới hơn tuân theo chuẩn ISO. Đuôi file .f4v dành cho file video mp4, đuôi .f4a dành cho audio mp4. Nội dung trong file có thể dùng các codec khác nhau: H264, mp3, …


Adobe còn một format nữa là SWF (đuôi file .swf ) chuyên dùng cho đồ họa vector động trên web.


QuickTime: là một media container format độc quyền của Apple Inc. Đuôi file là .mov hoặc .qt. Mỗi loại dữ liệu: video, audio, text, ... được lưu thành một track.



II. Driver cho sound card: ALSA


ALSA (Advanced Linux Sound Architecture) là một hệ thống con của nhân Linux gồm các driver cho sound card và dụng cụ nhạc điện tử (MIDI), các thư viện để lập trình giao tiếp với các thiết bị nói trên và một số công cụ cần thiết (mixer,...). Hiểu đơn giản ALSA tức là driver cho sound card.


Các driver đều dưới dạng module để có thể nạp khi cần. ALSA hiện nay thay thế cho hệ thống cũ OSS (Open Sound System) nhưng vẫn tương thích với các phần mềm OSS. OSS cũng là giao diện với các soundcard nhưng có nhiều hạn chế nên bị thay thế.


Ví dụ trong Mandriva, khi mở Control Center > Hardware > Sound Configuration, ta thấy màn hình sau:


Sound card đang dùng là Intel 82801G, driver là snd_hda_intel.



III. Sound Server


Nếu sử dụng âm thanh đơn giản thì chỉ cần sound driver (alsa, oss, …) là đủ. Nhưng trong những trường hợp phức tạp hơn thì phải có hẳn một máy chủ âm thanh Sound Server trong hệ điều hành làm các nhiệm vụ sau:





  • Nhận các luồng âm thanh từ nhiều nguồn khác nhau (micro hoặc các phần mềm chơi nhạc, phát âm, các luồng âm streaming tải về từ Internet,...).




  • Hòa trộn (mix) các luồng âm đó thành một rồi chuyển đến các thiết bị phát âm (các sound card trên máy, các sound server trên các máy khác trên mạng để phát âm tại đó,...). Tóm lại là tiếp nhận và điều phối các luồng âm thanh trong hệ thống.




  • Thực hiện một số chức năng khác mà sound driver không có.




Một vài sound server phổ biến:


aRts ( analog Real time synthesizer ): một cơ chế xử lý (framework) các luồng âm thanh theo thời gian thực, trong đó có một sound server (artsd), dùng phổ biến cho KDE2, 3, hiện ngừng phát triển. KDE4 chuyển sang dùng PulseAudio và Phonon.


JACK ( JACK Audio Connection Kit ): một sound server nguồn mở cạnh tranh với aRts, chạy được trên Linux, Mac, Windows. Nhiệm vụ chính là tạo kết nối âm độ trễ thấp giữa ứng dụng và thiết bị phát âm. Một số ứng dụng như Audacity, XMMS dùng sound server này.


ESD hoặc EsounD ( Enlightened Sound Daemon ): sound server dành riêng cho môi trường đồ họa Enlightenment và GNOME. Đây là sound server lâu đời thuộc dự án GNOME nên hầu hết các ứng dụng âm thanh đều hỗ trợ nó. Tuy nhiên từ tháng 4/2009, các module của nó chuyển vào thư viện libcanberra hoặc GStreame, PulseAudio.


PulseAudio : sound server nguồn mở chạy trên Windows và Linux, hiện đang được đưa vào thay cho ESD. Các bản Linux gần đây (Ubuntu, Fedora, Mandriva, openSUSE,...) đều dùng PulseAudio, ví dụ Ubuntu từ bản 8.04.



Cơ chế hoạt động của PulseAudio theo hình trên:





  • Các ứng dụng (Mplayer, Xine,...) chuyển âm thanh cho PulseAudio trực tiếp hoặc qua các thư viện trung gian. Các module tương ứng của PulseAudio được nạp khi cần để tiếp nhận các nguồn âm đó.




  • Các nguồn âm khác (từ micro nối với sound card, từ một máy khác trên mạng, …) cũng chuyển âm cho các driver ALSA/OSS hardware drivers hoặc các Network stack. Các driver đó lại chuyển tiếp âm cho PulseAudio thông qua các card ảo ALSA source, OSS source, RTP source, ... là các cổng nhận âm ( source ) của PulseAudio.




  • PulseAudio server core tiếp nhận các nguồn âm từ các cổng nhận, xử lý (mix) rồi chuyển ra các cổng phát gọi là sink . Âm từ ví dụ ALSA sink sẽ chuyển cho ALSA driver để chuyển vào sound card và phát ra loa nối với sound card. Âm để phát trên máy khác trong mạng sẽ đi từ ví dụ RTP sink, qua các network stack ra network card để theo dây mạng đến các máy khác.




Như vậy, PulseAudio đóng vai trò điều hành trung gian, nhờ có nó:





  • Chỉnh được âm lượng cho từng ứng dụng thông qua phần mềm PulseAudio Volume Control.




  • Các nguồn phát âm (phần mềm chơi nhạc, micro, các máy khác trên mạng, …) chỉ cần giao tiếp với PulseAudio như với một sound card ảo, không cần hỗ trợ nhiều cơ chế xử lý âm, nhiều giao thức, … Các driver của thiết bị phát âm cũng chỉ cần giao tiếp với PulseAudio.




Nếu không dùng đến, có thể disable hoặc gỡ bỏ PulseAudio.



IV. Driver cho graphic card và Xorg server


Các loại ảnh, video, hoạt hình hiển thị trên màn hình phụ thuộc vào các driver của card màn hình (graphic card) và phần mềm Xorg server. Một vài thông tin liên quan xem tại đây.



V. Cơ chế xử lý dữ liệu multimedia (Multimedia framework)


Một cơ chế xử lý dữ liệu multimedia (Multimedia framework – MMF) là một hệ thống phần mềm xử lý các dữ liệu multimedia trên máy tính hoặc mạng máy tính theo một cơ chế nào đó. Hệ thống gồm một giao diện lập trình ứng dụng API, các module hỗ trợ các loại codecs, container formats và hỗ trợ các giao thức truyền dẫn luồng âm thanh, video (streaming media) qua mạng.


MMF dùng làm hệ thống nền (back-end) cho các ứng dụng chơi nhạc, video, các phần mềm biên tập âm thanh và video, các ứng dụng videoconferencing và các phần mềm multimedia khác.


Một vài MMF phổ biến:


GStreamer: một MMF nguồn mở chạy được trên Linux, Solaris, Mac, Windows.


GStreamer chia các công đoạn xử lý thành các bộ phận (element). Các bộ phận nối với nhau bằng các đường ống (pipeline) có đầu ra (source pad) và đầu vào (sink pad). Trong hình trên là ví dụ chơi một file MP3: bộ phận File đọc file từ ổ cứng rồi chuyển cho bộ phận giải mã (Decoder). Decoder chuyển dữ liệu số thành mã xung (Pulse-code Modulation). Mã xung theo đường ống chuyển cho bộ phận ALSA driver để từ đó đưa ra loa.


Mỗi bộ phận (chức năng) của GStreamer được lập trình dưới dạng plugin (phần mềm bổ xung) tạo nên các thư viện dùng chung. Hiện tại có ba bộ plugin là Good, BadUgly. Good plugins gồm các plugin chất lượng cao, tuân theo giấy phép nguồn mở LGPL, đã được kiểm định đầy đủ. Bad plugins gồm các plugin chưa hoàn chỉnh về mặt nào đó như Good (chất lượng chưa cao, hoặc chất lượng cao nhưng còn thiếu một cái gì đó, …). Ugly plugins là các plugins chất lượng tốt nhưng có vấn đề về bản quyền.


GNOME là nơi đầu tiên dùng công nghệ này. Ví dụ trình Totem (trên menu là Movie Player) hỗ trợ GStreamer. Một số điện thoại Nokia cũng dùng GStreamer.


DirectShow: MMF của Microsoft (hiện được thay bằng Media Foundation trong Windows Vista và Windows 7).


Tương tự như trên, DirectShow chia các công đoạn xử lý media thành các filter, mỗi filter có đầu vào (input pin) và đầu ra (output pin) để kết nối với nhau. Các luồng dữ liệu media được chuyển qua từng filter tương tự như sơ đồ trên của GStreamer. Nhược điểm của DirectShow là số codec được hỗ trợ rất hạn chế.


FFmpeg: là một dự án nguồn mở xây dựng các phần mềm và thư viện để ghi, chuyển đổi và truyền dẫn audio/video. Thư viện libavcodec cung cấp codec cho hàng chục loại format audio/video khác nhau. Thư viện libavformat có các công cụ để dồn/tách kênh (mux/demux) truyền dẫn media.


Trình media player Mplayer (và giao diện Smplayer) dùng backend là FFmpeg.


VLC: VLC vừa là tên của một media player, vừa là một MMF, nguồn mở. VLC hỗ trợ khá nhiều codec (dùng cả libavcodec và có các codec không có trong libavcodec), về mặt này nó khá hơn Mplayer. VLC chạy được trên nhiều hệ điều hành (Windows, Mac, Linux, Solaris, …). VLC chơi được các DVD mã hóa, chơi DVD không cần biết mã vùng. Đặc biệt nó có thể chơi các file video còn đang download dở hoặc bị hỏng.


Xine: một máy chơi video và nhạc (multimedia playback engine) nguồn mở, chạy được trên nhiều hệ điều hành. Thư viện xine-lib có thể decoder nhiều loại codec khác nhau. Xine cũng dùng các thư viện của các dự án khác như FFmpeg, libmpeg2, ...


Phonon: Phonon được xếp vào loại MMF nhưng thực ra nó chỉ là một giao diện lập trình ứng dụng (API - Application Programming Interface) dành riêng cho môi trường đồ họa KDE4. KDE4 dùng Phonon làm trung gian để giao tiếp với nhiều MMF, backend khác nhau (Xine, GStreamer, ....).


Phonon cho phép cấu hình tập trung (hiện nay mới chỉ là audio, chưa có video). Ví dụ trong Mandriva KDE4, mở mục Multimedia trong System Settings (Configure Your Desktop) ta có:


Trong hình trên, về nguyên tắc có thể chọn các audio output (cột bên phải) cho các hệ thống âm thanh ở cột bên trái. Nhấn vào tab Backend:



Như vậy trên máy này đã cài hai backend và GStreamer là ưu tiên.



VI. Vài vấn đề khác


Như vậy rắc rối chính khi chơi multimedia trên Linux là ở hai vấn đề:





  1. Có quá nhiều codecs, trong đó có nhiều cái không phải nguồn mở hoặc không miễn phí. Do đó các bản Linux “lớn” như Ubuntu, openSUSE, Mandriva mặc định sẽ không cài sẵn để tránh rắc rối. Người dùng phải tự cài và tự chịu trách nhiệm. Các bản Linux “ nhỏ” như Linux Mint, PCLinuxOS thì cài sẵn để tạo thuận lợi cho người dùng.




  2. Có nhiều backend khác nhau, mỗi cái đều có cái hay dở riêng và cũng chưa có cái nào thật hoàn chỉnh. Hiện cũng đang có những dự án nhằm mục tiêu thống nhất backend cho Linux.




Theo kinh nghiệm cá nhân thì hai trình SMplayerVLC hiện nay tương đối đáp ứng được nhu cầu hơn cả. Khi cài SMplayer xong, lưu ý vào Options → Preferences → General → Video → Output driver (và Audio → Output driver) chọn các driver thích hợp là có thể chơi được hầu hết các định dạng multimedia phổ biến như với Windows Media Player.


Khi dùng Windows Media Player để nghe nhạc, plugin DFX cho các hiệu ứng âm thanh như 3D sourround, ambien, hyperbass, … Trong Linux, bật các hiệu ứng 3D âm thanh như sau:


Với các bản Linux KDE, mở Menu - Sound&Video - KMix (Sound Mixer) ta có:



Trong hình trên có ba mục: 3D Control-Switch, 3D Control-Depth và 3D Control-Center (nếu chưa có thì vào Settings - Configure Channels để add nó vào. Bỏ chọn mục Mute của 3D Control-Switch để bật hiệu ứng 3D rồi chỉnh hai cái còn lại. Chú ý là các mục trên phụ thuộc tính năng sound card, có sound card không có ba mục trên nhưng lại có Surround.


Với các bản Linux Gnome (Ubuntu, …), cần cài thêm ALSA Mixer hoặc GNOME ALSA Mixer rồi mở ra cũng có màn hình tương tự như trên.


Nghe nhạc trong Windows mà không bật DFX, trong Linux không bật các hiệu ứng 3D nói trên thì chán hẳn.