Sự khác nhau chủ yếu giữa các Linux distro

Sự khác nhau chủ yếu dựa vào 2 yếu tố:

  • Thị trường mà distro muốn nhắm đến, ví dụ dành cho máy chủ, doanh nghiệp, siêu máy tính, người dùng cuối…
  • Tùy thuộc vào triết lí phần mềm của từng distro mà những người phát triển quyết định gắn bó lâu dài với distro đó hay không.

Các distro phổ biến và phát triển bền vững hiện nay có thể được chia thành 4 nhóm:

(1) Arch (archlinux.org), Gentoo (gentoo.org), Slackware (slackware.com): Các distro nhắm vào người dùng am hiểu về hệ thống Linux. Hầu hết phương thức xây dựng và cấu hình hệ thống đều phải thực hiện qua môi trường dòng lệnh.

(2) Debian (debian.org), Fedora (fedoraproject.org): Các distro cũng nhắm vào những người dùng am hiểu hệ thống, tuy nhiên cung cấp nhiều công cụ hơn cho những người chưa thật sự hiểu rõ hoàn toàn về Linux. Nhóm này tương đối thân thiện với người dùng mới bắt đầu hơn nhóm (1). Tuy nhiên, các distro nhóm này lại có một quy trình phát triển và kiểm tra chất lượng các gói phần mềm cực kì khắt khe so với các distro còn lại. Để trở thành một lập trình viên chính thức của Debian hay Fedora cần phải có thời gian đóng góp khá dài, và phải được chứng nhận bởi các lập trình viên khác. Do vậy, môi trường để lập trình và nghiên cứu ở 2 distro này khá tốt.

(3) Centos (centos.org), RHEL (redhat.com/rhel), SUSE EL (novell.com/linux): Các distro này chủ yếu nhắm vào thị trường doanh nghiệp, cơ quan, thị trường máy chủ… Các dòng distro này có nhiều đặc tính phù hợp cho mảng thị trường đòi hỏi sự ổn định cao như: thời gian ra phiên bản mới thường khá lâu (3 – 5 năm tùy distro); dịch vụ hỗ trợ thương mại cho các công ty, tổ chức sử dụng sản phẩm; ít sử dụng các công nghệ mới nhất (thường kém ổn định) mà tập trung phát triển trên các công nghệ lâu đời và đáng tin cậy hơn.

(4) Ubuntu (ubuntu.com), Open SUSE (opensuse.org): Nhóm các distro nhắm đến người dùng cuối và người mới bắt đầu sử dụng Linux. Đặc tính của các distro này là thời gian phát hành ngắn, ứng dụng liên tục các công nghệ mới với nhiều công cụ đồ họa để cấu hình hệ thống, thiết kế với mục đích dễ dùng, dễ làm quen, không cần đọc tài liệu đối với người mới.

Xét về triết lí phần mềm (software philosophy), nó chỉ đơn giản là bộ các quy tắc, định hướng, mục tiêu mà những người phát triển một phần mềm đặt ra hay đi theo triết lí do người khác đặt ra để phát triển sản phẩm của mình nhưng phải tuân thủ theo các triết lí đó. Ví dụ triết lí của Microsoft Windows là dễ sử dụng, ít cấu hình thì triết lí của Mac OS X lại là bóng bẩy, thanh lịch… Các distro Linux cũng có những triết lí riêng ví dụ: Nhóm (1) là cấu trúc gọn nhẹ, uyển chuyển để có thể xây dựng một hệ thống hoàn toàn tuân theo ý của mình. Nhóm (2) lại nhắm đến việc chuẩn hóa, chuyên môn hóa quá trình phát triển phần mềm nhằm tạo ra một hệ thống hoạt động nhịp nhàng, ăn khớp và hạn chế lổ hỗng bảo mật. Nhóm (3) phát triển theo hướng bền vững, chuyên nghiệp, cung cấp dịch vụ hỗ trợ dài hạn, cung cấp sản phẩm có vòng đời kéo dài (lên tới 7 năm). Nhóm (4) cung cấp những công nghệ mới nhất, những hiệu ứng đồ họa bắt mắt ngay sau khi cài đặt, không cần phải cấu hình nhiều…

Xem bài viết đầy đủ.

Nguồn: Quantrimang (theo PCWorld)

Phân biệt các khái niệm UNIX, UNIX-Based và UNIX-Like

Đối với những ai tham gia vào thế giới của các hệ điều hành thuộc dòng họ UNIX (mà thường được gọi chung là các hệ điều hành *nix) như  GNU/Linux, GNU, FreeBSD, NetBSD, OpenBSD, Solaris, Open Solaris, IBM AIX, HP-UX, Mac OSX thì ắt hẳn sẽ có đôi khi còn có những sự nhập nhằng khi hiểu về 3 khái niệm thường dùng để chỉ các nhánh khác nhau trong gia đình *nix đó là UNIX, UNIX-BasedUNIX-Like. Bài viết sau đây có mục đích gạn lọc và làm sáng tỏ hơn về vấn đề này.

1. Xét về mặt lịch sử:

UNIX là hệ điều hành được nhóm các chuyên gia tại phòng thí nghiệm AT&T Bell Labs viết ra vào khoảng thập niên 70 của thế kỉ 20.

Sau đó, nhiều công ty, trường đại học cũng đã phát triển những hệ điều hành dựa trên cấu trúc UNIX cho riêng mình, ví dụ như:

  • Berkerly UNIX của trường UCB
  • AIX của IBM
  • UX của HP
  • SunOS của Sun

Các hệ điều hành này có cấu trúc, phương thức hoạt động và mã nguồn rất giống với UNIX nguyên thuỷ từ Bell Labs, do đó người ta gọi chúng là các hệ điều hành UNIX-based.

Ngoài ra, trong khoảng thời gian từ những năm 80s trở lại đây, một số nhóm/cá nhân/công ty đã phát triển những hệ điều hành có nguyên lí thiết kế gần giống với UNIX nguyên thủy (tức là phát triển dựa trên UNIX Philosophy, chứ không phải dựa trên mã nguồn của UNIX nguyên thủy) và được gọi là các hệ điều hành UNIX-like. Trong số đó ta có thể kể đến:

  • Solaris của Sun (phát triển tiếp tục dựa trên SunOS)
  • GNU của GNU project
  • BSD (phát triển dựa trên Berkerly UNIX)
  • GNU/Linux

Như vậy, đó là 3 khái niệm UNIX, UNIX-based UNIX-like xét theo mặt lịch sử. Tuy nhiên ngày nay thì UNIX nguyên thủy từ AT&T Bell Lab đã không còn tồn tại, cho nên dần dần người ta bắt đầu phân chia gia đình UNIX theo cấu trúc của hệ điều hành (như đề cập dưới đây).

2. Xét về mặt cấu trúc hệ điều hành

Sau một quá trình lịch sử thì mã nguồn UNIX gốc được chuyển về cho SCO group ngày nay còn thương hiệu UNIX được nắm giữ bởi The Open Group. The Open Group đã đưa ra một hệ thống tiêu chuẩn được gọi là “Single UNIX Specificationbất kì hệ điều hành nào có được đầy đủ các tiêu chuẩn được quy định và được chứng nhận bởi The Open Group sẽ được mang tên thương hiệu là UNIX. Còn các hệ điều hành khác không tham gia vào hệ thống tiêu chuẩn này nhưng có nhiều điểm tương đồng với các nguyên tắc thiết kế của UNIX thì thường được gọi là UNIX-like.

Các hệ điều hành nổi tiếng đã tham gia hệ thống Single UNIX Specification (tức là được chứng nhận là UNIX):

  • IBM AIX
  • HP-UX
  • SCO Unixware
  • SCO OpenServer
  • Sun Solaris
  • Mac OS X “Leopard” (on Intel processors)

Ngoài ra các hệ điều hành sau không tham gia hệ thống chứng nhận trên và được gọi là UNIX-like:

  • BSD
  • GNU/Linux
  • GNU (still under development, no stable release yet)
  • Mac OS (tất cả phiên bản trừ Mac OS X Leopard chạy trên các bộ xử lí Intel)
  • Open Solaris

Các nhà phát triển của BSD và GNU/Linux không đưa sản phẩm của mình vào hệ thống chứng nhận này vì 2 lí do: chi phí của việc chứng nhận và sự thay đổi quá nhanh chóng trong quá trình phát triển 2 hệ điều hành này dẫn đến chi phí để duy trì thương hiệu UNIX sẽ trở nên khổng lồ.

Nguồn: http://projektantos.wordpress.com

Lập trình là khoa học hay nghệ thuật

Lập trình là viết chương trình để giải một bài toán cho trước trên máy tính điện tử. Chương trình là một dãy các lệnh những phép toán được viết bằng ngôn ngữ lập trình nào đó và do máy thực hiện. Về nguyên tắc, máy tính có khả năng thực hiện mọi chương trình viết bằng những ngôn ngữ mà máy ‘hiểu’ được, và nếu không có chương trình thì máy không làm được gì cả. Vì vậy, từ khi có máy tính thì cũng bắt đầu có nghề lập trình, và nghề lập trình đã phát triển mạnh mẽ cùng với sự phát triển cực kỳ mạnh mẽ của máy tính điện tử trong những thập niên vừa qua.

Continue reading