CHƯƠNG 1 : GIỚI THIỆU CHUNG
1.8. MỘT SỐ HỆ ĐIỀU HÀNH CỤ THỂ 34
Việc lấy ví dụ từ những hệ điều hành cụ thể là rất cần thiết cho trình bày nội dung các phần tiếp theo (ngay trong các phần trên ta đã gặp một số ví dụ). Các ví dụ đã và sẽ sử dụng
được lấy từ một số hệ điều hành thơng dụng. Các hệ điều hành này có ứng dụng rộng rãi và
một số được coi như những hệ điều hành tiêu chuẩn. Một trường hợp ngoại lệ cũng được nhắc
đến là hệ điều hành MINIX. Mặc dù khơng có ứng dụng thực tế nhưng do kích thước nhỏ, đơn giản và mục đích các tác giả khi xây dựng MINIX là phục vụ đào tạo nên các ví dụ lấy từ
MINIX rất phù hợp với nội dung cuốn sách này. Các hệ điều hành ví dụ sẽ được giới thiệu sơ lược trong phần này. Đặc điểm cụ thể và các giải pháp kỹ thuật của từng hệ điều hành có thể gặp trong nội dung các chương sau khi ta xem xét các vấn đề liên quan.
UNIX
UNIX chiếm một vị trí quan trọng trong lịch sử phát triển hệ điều hành. Hệ điều hành Vi nhân trình ứng dụng quản lý tệp quản lý mạng Hình 1.17 Cấu trúc vi nhân trình ứng dụng
UNIX được Ken Thomson xây dựng tại phịng thí nghiệm Bell Laboratories của hãng AT&T
vào cuối những năm bẩy mươi. Sau đó UNIX được Ken Thomson và Dennis Ritchie (tác giả ngôn ngữ C) viết lại chủ yếu bằng C. Trong số khoảng mười nghìn dịng mã của phiên bản
đầu tiên này chỉ có khoảng một nghìn dịng viết trên assembly. Đây là hệ điều hành đầu tiên được viết gần như hồn tồn trên ngơn ngữ bậc cao và điều này đã tạo cho UNIX khả năng dễ
dàng chuyển đổi, có thể sử dụng cho nhiều kiến trúc máy tính khác nhau. Sau một thời gian sử dụng hiệu quả tại Bell Labs, hãng AT&T cho phép sử dụng UNIX vào mục đích nghiên
cứu và giảng dạy tại các trường đại học của Mỹ, đồng thời cung cấp mã nguồn hệ điều hành này. Thực tế, UNIX là hệ điều hành được sử dụng rộng rãi nhất tại các trường đại học trong
một thời gian dài. Việc “mở cửa” đối với UNIX như vậy đã tạo ra vô số sửa đổi và các phiên bản khác nhau. Phiên bản UNIX đáng chú ý nhất được xây dựng tại Đại học tổng hợp
Caliornia ở Berkeley và có tên Berkeley Software Distribution (BSD). Phiên bản này chứa
một số cải tiến quan trọng đối với UNIX như bộ nhớ ảo, hệ quản lý tệp tốc độ cao, hỗ trợ
mạng và giao thức truyền thông TCP/IP.
Song song với các trường đại học, một số nhà sản xuất máy tính cũng xây dựng những phiên bản UNIX cung cấp cho máy tính của mình (chẳng hạn SUN Solaris, HP UNIX, IBM AIX). Các phiên bản này thường tương thích với UNIX ở mức độ người dùng với một số sửa
đổi nhất định.
Từ khi ra đời, UNIX đã được sử dụng rộng rãi trong các nghiên cứu về hệ điều hành. Đa số giải pháp kỹ thuật cho các hệ điều hành sau này có nguồn gốc từ UNIX. Một số phần,
chẳng hạn giao diện lập trình (system calls) của UNIX có mặt trong hầu hết các hệ điều hành hiện đại (với một số sửa đổi nào đó). Thành cơng của UNIX đã đem lại cho Ken Thomson
giải thưởng Turing, giải thưởng lớn trong lĩnh vực điện tử, tin học mà trước đó chỉ được trao cho các sản phẩm phần cứng.
MINIX
Sau một thời gian cung cấp mã nguồn và quyền sử dụng gần như miễn phí UNIX cho các trường đại học, hãng AT&T nhận ra giá trị thương mại của hệ điều hành này. Từ phiên
bản 7 của UNIX, AT&T ngừng cung cấp quyền sử dụng mã nguồn, coi đây như bí mật của hãng. Việc khơng có giấy phép sử dụng UNIX gây ra nhiều khó khăn trong giảng dạy thực hành và nghiên cứu về hệ điều hành.
Trước tình hình trên, Andrew Tanenbaum, một giáo sư người Hà lan rất nổi tiếng trong các nghiên cứu về hệ điều hành, đã xây dựng một hệ điều hành và đặt tên là MINIX (mini-
UNIX). MINIX được xây dựng với mục đích minh họa, phục vụ đào tạo, có thể sử dụng miễn phí và được cung cấp cùng mã nguồn. MINIX tương thích với UNIX phiên bản 7 trên quan điểm người dùng (người dùng sẽ thấy việc sử dụng và chạy chương trình trên MINIX rất
giống với trên UNIX) song không sử dụng mã nguồn của UNIX mà được viết lại hoàn toàn. So với UNIX, MINIX đơn giản hơn rất nhiều. Hệ điều hành này chủ yếu chứa những phần mang tính minh hoạ cho các giải pháp kỹ thuật về hệ điều hành. Mã nguồn do đó tương
đối ngắn và được viết sao cho dễ đọc, dễ hiểu nhất. Một số lượng lớn các chú giải được cung
cấp kèm với mã nguồn giúp cho việc nghiên cứu MINIX dễ dàng hơn. Cho đến nay phương châm phát triển MINIX vẫn là giữ cho hệ điều hành này nhỏ và dễ hiểu nhất đối với sinh viên.
Cũng như UNIX, MINIX được viết trên C và dễ dàng chuyển đổi giữa các kiến trúc
máy tính khác nhau. Phiên bản đầu tiên được viết cho IBM PC, kiến trúc thông dụng nhất
hiện nay. Sau đó MINIX đã được chuyển đổi thành cơng để chạy trên một số máy tính khác
như Amiga, Macintosh, Sun SPARC. Ngay sau khi ra đời, MINIX đã thu hút được sự quan
tâm của một số đơng sinh viên, lập trình viên và người dùng.
Linux
Sau khi AT&T hạn chế sửa đổi và thương mại hoá UNIX, việc xây dựng hệ điều hành
có các tính năng tương tự như UNIX xong khơng bị các hạn chế về bản quyền ràng buộc trở thành mục tiêu của một số sinh viên và các nhà nghiên cứu. MINIX là một sản phẩm khá thành công trong số này. Tuy nhiên, do mục đích của tác giả là giữ cho hệ điều hành càng đơn giản càng tốt, MINIX không trở thành một hệ điều hành đáp ứng được các nhu cầu của đa số người dùng máy tính.
Năm 1991, Linus Torvalds, sinh viên người Phần lan, đã phát triển phiên bản MINIX
với ý đồ xây dựng một hệ điều hành thực thụ, có thể sử dụng rộng rãi và tương thích UNIX. Hệ điều hành này được đặt tên là Linux. Giống như MINIX, Linux được cung cấp hoàn toàn miễn phí cùng với mã nguồn. Tất cả những ai quan tâm có thể tham khảo và sửa đổi mã
nguồn để tạo ra các phiên bản Linux hoàn chỉnh hơn, nhiều chức năng hơn. Thành công của
các phiên bản đầu tiên cùng tính “mở” của Linux đã thu hút được một số lượng lớn lập trình
viên tham gia sửa đổi, hoàn chỉnh hệ điều hành này. Các phiên bản của Linux được cung cấp theo các điều khoản của GNU General Public License, theo đó Linux được cung cấp miễn
phí, cùng mã nguồn. Tất cả mọi người đều có quyền sửa đổi và được cơng nhận quyền tác giả
đối với thành quả của mình nhưng khơng được phép thu tiền từ các sửa đổi đó. Một số lượng
lớn chương trình ứng dụng cho Linux cũng được viết theo các điều kiện của GNU như vậy.
Đến nay, Linux là hệ điều hành kiểu UNIX được sử dụng rộng rãi nhất cho các máy tính để bàn và máy tính cá nhân. Linux tương thích với chuẩn POSIX 1003.1 (chuẩn lập trình cho
UNIX) và chứa nhiều tính năng của các hệ UNIX System V, BSD 4.3. Tuy nhiên Linux được tối ưu hoá để có thể chạy trên các máy tính các nhân với các tài nguyên hạn chế.
MS-DOS
MS-DOS là sản phẩm của hãng Microsoft và được trang bị cho những máy PC đầu tiên của IBM theo thoả thuận của hãng này. Để có thể chạy trên những máy tính các nhân thế hệ
đầu với tài nguyên hạn chế, MS-DOS được xây dựng đơn giản và có ít chức năng hơn nhiều
so với hệ điều hành cho các máy lớn. Tuy nhiên, thành cơng của máy tính IBM PC cùng với sự phổ biến của máy này đã đưa MS-DOS thành một trong những hệ điều hành được sử dụng rộng rãi trên thế giới.
Nhiều giải pháp kỹ thuật trong MS-DOS có nguồn gốc từ UNIX như giao diện lập trình (các lời gọi hệ thống), cấu trúc phân cấp của thư mục, bộ dịch lệnh. Một số chức năng khác hồn tồn khơng có như bảo mật, hỗ trợ mạng, hỗ trợ nhiều tiến trình v.v.
Theo mức độ phát triển của máy tính các nhân, nhiều phiên bản MS-DOS đã ra đời để
Windows NT, 2000, XP, Vista, 7, 8
Khi mới ra đời, máy tính cá nhân (PC) có các tài ngun phần cứng rất hạn chế: CPU
chậm, bộ nhớ nhỏ (thường dưới 1MB), khơng có hoặc chỉ có đĩa cứng dung tích bé v.v. Hệ điều hành MS-DOS đã được xây dựng để làm việc với các máy tính như vậy. Đây là một hệ điều hành đơn giản, nhiều chức năng được rút gọn. Càng về sau, khả năng máy tính các nhân
càng được mở rộng. Tốc độ tính tốn, dung tích bộ nhớ cùng nhiều thơng số khác của PC bắt
đầu có thể so sánh với máy tính lớn. MS-DOS, mặc dầu được cải tiến, dần dần trở nên khơng
thích hợp. Cần có một hệ điều hành đầy đủ tính năng hơn, thích hợp với phần cứng mới. Trước tình hình đó, hãng Microsoft đã xây dựng họ hệ điều hành Windows cho máy
tính cá nhân. Windows NT (NT là viết tắt của new technology - công nghệ mới) là một thành viên của họ hệ điều hành này. Windows 2000, XP, Vista, 7 là các thành viên tiếp theo.
Phiên bản đầu tiên của Windows NT được phát hành năm 1993. Đây là hệ điều hành sử dụng nhiều kỹ thuật tiên tiến trong lĩnh vực hệ điều hành đã được phát triển cho đến thời điểm này, bao gồm cả các giải pháp lấy từ UNIX. So với MS-DOS, Windows NT và các phiên bản sau là hệ điều hành đa nhiệm, hỗ trợ mạng, có các chức năng bảo mật, có giao diện đồ họa
dưới dạng cửa sổ và được dùng cho các ứng dụng trên PC yêu cầu độ ổn định cao.
iOS
iOS là hệ điều hành do hãng Apple phát triển cho các thiết bị điện thoại thơng minh
iPhone, máy tính bảng iPad và máy nghe nhạc iPod của hãng này. Phiên bản thương mại đầu tiên của iOS được giới thiệu vào năm 2007 và hiện nay đây là một trong những hệ điều hành thông dụng nhất cho thiết bị di động. Apple giữ độc quyền về hệ điều hành này và không
cung cấp bản quyền để chạy iOS trên thiết bị của nhà sản xuất khác.
Cấu trúc iOS được tham khảo từ hệ điều hành MAC OS X của Apple, có bổ sung thêm một số chức năng đặc thù cho thiết bị di động như làm việc với màn hình cảm ứng đa điểm,
hỗ trợ truyền thơng, các thiết bị đo gia tốc, xác định tọa độ tích hợp, chế độ tiết kiệm năng
lượng. Như các sản phẩm khác của Apple, tiêu chí đặt ra khi thiết kế iOS là giúp cho việc sử dụng thiết bị di động được thuận tiện, dễ dàng, thậm chí đối với người không biết nhiều về kỹ thuật. Đây là yếu tố quan trọng đảm bảo sự thành công cho hệ điều hành này. Apple cũng
cung cấp công cụ cho phép các tổ chức và cá nhân khác xây dựng ứng dụng cho iOS (gọi là các app). Ứng dụng cho iOS được cung cấp qua Apple App Store.
Do đặc điểm của thiết bị di động, iOS hỗ trợ đa nhiệm ở mức hạn chế. Ngồi ứng dụng
đang được kích hoạt, chỉ có một số ứng dụng khác được chạy và chia sẻ CPU như ứng dụng
chơi nhạc, dịch vụ thơng báo (khi có các sự kiện như tin nhắn, email), xác định vị trí và một số trường hợp khác. Bộ nhớ được iOS quản lý tự động, khi bộ nhớ đầy, các ứng dụng không hoạt động sẽ bị xóa khỏi bộ nhớ theo thứ tự vào trước ra trước.
Android
Android là hệ điều hành cho thiết bị di động thông dụng nhất hiện nay. Khởi đầu,
Android do hãng Android xây dựng, sau đó Google mua lại hãng này và trở thành người sở hữu hệ điều hành này từ năm 2005. Android được giới thiệu lần đầu năm 2007 (cùng năm với iOS) và được cung cấp dưới dạng phần mềm nguồn mở theo đó mọi cá nhân và tổ chức có
tồn quyền sử dụng vào mọi mục đích, kể cả thương mại. Ngoài thiết bị di động như điện
thoại, máy tính bảng, Android được sử dụng cho rất nhiều loại thiết bị khác như máy ảnh số, TV, máy trò chơi và các thiết bị điện tử khác. Rất nhiều hãng sản xuất đồ điện tử sử dụng Android thay vì tự phát triển hệ điều hành cho thiết bị của mình.
Tương tự iOS, Android hỗ trợ các chức năng đặc trưng của thiết bị di động như giao
diện qua màn hình cảm biến đa điểm, thiết bị định vị, xác định gia tốc. Google cũng tích hợp các dịch vụ nhận dạng giọng nói, các hệ thống hỏi đáp tự động cho hệ điều hành này.
Android được xây dựng dựa trên nhân của hệ điều hành Linux, bổ sung thêm các thư
viện và API viết trên ngôn ngữ C++. Các ứng dụng cho Android viết trên Java và chạy trên nền application framework, thực chất là một tập các thư viện tương thích với Java. So với phiên bản nhân Linux gốc, nhân của Android bổ sung một số tính năng như phần tiết kiệm pin, song lại bỏ bớt một số thư viện của Linux. Phần quản lý bộ nhớ cũng được đơn giản hóa, theo đó khi khơng gian nhớ cịn ít, những ứng dụng khơng hoạt động sẽ tự động bị xóa theo
thứ tự vào trước ra trước.
Hiện nay, Android là một trong những hệ điều hành phát triển nhanh nhất nhờ dựa trên một cộng đồng nguồn mở lớn và tích cực.