Chương 1: Giới thiệu chung về hệ điều hành Giới thiệu: - Chương này giới thiệu lịch sử phát triển hệ điều hành, vai trò và các loại hệ điều hành. Mục tiêu của bài: - Nắm được yêu cầu cần có hệ điều hành. - Nắm được khái niệm hệ điều hành, chức năng, phân loại và các thành phần cơ bản trong hệ điều hành. Khái niệm về hệ điều hành: HĐH (OS – Operating System) là chương trình trung gian giữa phần cứng máy tính và người sử dụng.
Nhiệm vụ của HĐH là quản lý tài nguyên của máy tính, thực thi các chương trình ứng dụng, hỗ trợ các chức năng mạng… 1. Các thành phần hệ thống: Phần cứng (hardware): - Bao gồm các tài nguyên cơ bản của máy tính như CPU, bộ nhớ, các thiết bị I/O. Hệ điều hành (operating system): - Phân phối tài nguyên, điều khiển và phối hợp các hoạt động của các chương trình trong hệ thống. Chương trình ứng dụng (application programs): - Sử dụng hệ thống tài nguyên để giải quyết một bài toán tính toán nào đó của người sử dụng.
- Ví dụ: compilers, database systems, video games, business programs. Chức năng của hệ điều hành: Phân chia thời gian xử lý và định thời CPU. Phối hợp và đồng bộ hoạt động giữa các processes (coordination & synchronization). Quản lý tài nguyên hệ thống (thiết bị I/O ,bộ nhớ, file chứa dữ liệu,…).
Thực hiện và kiểm soát access control, protection. Duy trì sự nhất quán (integrity) của hệ thống, kiểm soát lỗi và phục hồi hệ thống khi có lỗi (error recovery). Cung cấp giao diện làm việc cho users. Quá trình phát triển của HĐH: - Cấu trúc đơn giản - MS-DOS.
- Cấu trúc phức tạp hơn – UNIX. - Cấu trúc phân tầng. - Cấu trúc vi nhân (client – server). - Cấu trúc máy ảo.
Dưới góc độ loại máy tính: - Hệ điều hành MainFrame. - Hệ điều hành Multiprocessor Systems. - Hệ điều hành Real time system. - Hệ điều hành Desktop system.
- Hệ điều hành Distributed Systems. - Hệ điều hành Handheld system. - Hệ điều hành Gaming system. - Hệ điều hành IOS (Internetwork Operating System).
HĐH MainFrame: Hiện nay, mainframe được định nghĩa là những cỗ máy tính có các thành phân bên trong độc lập nhưng có khả năng phối hợp tốt để cung cấp độ tin cậy ở mức cao. Nó có khả năng lấy vào một lượng dữ liệu khổng lồ, tính toán, xử lí và xuất ra kết quả cũng khổng lồ không kém. Mainframe đòi hỏi phải có một sự tương thích ngược chặt chẽ với các phần mềm cũ bởi những công ty, tổ chức lớn sử dụng những phần mềm có tính chuyên biệt cao nên và rất tốn kém nếu phải viết lại. Ngoài ra, mainframe được thiết kế để có thể chạy liên tục (uninterrupt) trong một thời gian rất dài.
Đây cũng chính là yếu tố quan trọng nhất của mainframe bởi nó vốn được dùng cho những mục đích mà chỉ cần vài phút hệ thống bị sập là một "thảm họa" sẽ xảy ra, hoặc nếu hệ thống ngừng chạy dù chỉ trong thời gian ngắn thì chi phí để khôi phục hoạt động là cực kì đắt đỏ. Việc cập nhật phần mềm trên máy mainframe thường đòi hỏi thiết lập lại hệ điều hành hoặc một phần của nó. Còn tính chất chạy không ngừng nghỉ của mainframe chỉ có được khi sử dụng những kiến trúc hệ điều hành ảo hóa như z/OS hay Parallel Sysplex của IBM, XPLC của Unisys. Các kiến trúc ảo hóa này cho phép một hệ thống đảm đương nhiệm vụ của hệ thống khác trong quá trình người ta cập nhật, nâng cấp hay sửa chữa.
Đối với các dòng máy lớn như mini và mainframe thì hệ điều hành chủ đạo vẫn là UNIX. Như đã nói, UNIX là sự kế thừa của MULTICS. Thực tế MULTICS đã thất bại vì nó có quá nhiều tham vọng so với khả năng kỹ thuật đương thời. Có người đã so thất bại của MULTICS với thất bại của Babbage chế tạo máy tính ở đại học Cambridge đầu thế kỷ thứ 19.
Ken Thompson, một trong những thành viên chủ chốt xây dựng MULTICS đã quyết định viết lại hệ điều hành này trên máy PDP-11. Thay vì dùng PL/1 để viết cho MULTICS, ông đã xây dựng một ngôn ngữ lập trình thật hiệu quả - đó chính là ngôn ngữ C được sử dụng rộng rãi ngày nay. Tên ban đầu hệ điều hành này là UNICS còn mang dấu ấn của MULTICS nhưng tỏ ra khiêm tốn hơn (UNiplexed Information and Computing Servive). Từ này được phát âm giống như UNIX nên sau này mọi người gọi luôn hệ điều hành này là UNIX.
Kết quả thành công hơn mức trông đợi. Thực tế sau này UNIX thay thế hẳn MULTICS và được sử dụng cho rất nhiều loại máy kể từ máy vi tính đến siêu máy tính. Sau đây là một số nét chính về hệ điều hành UNIX. Thừa hưởng những tính năng có từ MULTICS, ngay từ đầu UNIX đã được thiết kế là một hệ điều hành đa nhiệm và nhiều người dùng với cơ chế phân chia thời gian.
Do quan niệm có nhiều người dùng nên nó có cơ chế kiểm soát thẩm quyền nghiêm ngặt để đảm bảo an toàn cho mỗi chương trình cùng chạy trên máy tính. Hệ thống file của UNIX cũng được phân cấp theo một cây thư mục có các thuộc tính để kiểm soát thẩm quyền: quyền đọc, quyền sửa, quyền thực hiện cho bản thân người tạo ra file, nhóm người sử dụng và cho những người khác. UNIX cung cấp nhiều tiện ích dưới dạng các lệnh. Chúng bao gồm: các lệnh thao tác với file và thư mục, các phương tiện để lọc, các phương tiện lập trình, các hệ soạn thảo băn bản, các lệnh để quản trị hệ thống.2 của Hội đồng tiêu chuẩn của IEEE đã quy định cú pháp và ngữ nghĩa của khoảng 100 lệnh UNIX.
Các phiên bản UNIX sau này mặc dù có nhiều sáng tạo riêng nhưng nói chung đều tuân thủ POSIX. UNIX thực ra bắt đầu xuất hiện với các máy tính thế hệ 3 và có nhiều phiên bản, ngoài phiên bản đầu viết cho PDP 11, sau này còn có những phiên bản UNIX System V của AT&T, phiên bản UNIX của Đại học Berkerley với những tính năng mới như tính năng mạng theo giao thức TCP/IP hay bộ nhớ ảo cho phép máy tính có thể thực hiện các chương trình lớn hơn bộ nhớ vật lý của máy. Chính vì UNIX dùng TCP/IP nên người ta còn coi như UNIX đã khai sinh ra Internet. Ngày nay hầu hết các máy tính lớn đều sử dụng UNIX.
SOLARIS của SUN, AIX của IBM, Alpha UNIX của DEC. HP Unix của Hewlette Parkard đều là các phiên bản khác nhau của hệ điều hành UNIX. UNIX cũng được dùng trên các máy tính cá nhân như các phiên bản SOLARIS trên PC, SCO UNIX và gần đây là LINUX. Đặc biệt LINUX là một hệ điều hành mã mở, tạo điều kiện để những người quan tâm có thể cùng tham gia phát triển UNIX.
LINUX đã nhận được sự hỗ trợ của rất nhiều hãng máy tính và các hãng phần mềm lớn và là một hệ điều hành trên máy tính cá nhân rất có triển vọng. Ngoài giao diện lệnh của UNIX truyền thống, người ta cũng sử dụng một giao diện đồ hoạ là X - WINDOW. HĐH Desktop system (PC): Với máy vi tính, hệ điều hành có những hướng phát triển ưu tiên mới: đó là tính năng thân thiện (user-friendly) vì đối tượng sử dụng thường là những người không chuyên nghiệp. Một số hệ điều hành nổi tiếng trong thời kỳ này là DOS, WINDOWS trên các máy dòng PC với bộ xử lý Intel, MAC/OS trên các máy dòng Macintosh với bộ xử lý Motorola.
Hệ điều hành DOS (Disk Operating System) được xây dựng từ những năm 80 cho họ máy PC và đuợc sử dụng rộng rãi suốt thập kỷ 80 và đầu thập kỷ 90 cho đến khi bị Windows thay thế. Ta tóm tắt một số đặc điểm chính của hệ điều hành DOS: DOS là một hệ điều hành đơn chương trình và cá nhân, theo đó mỗi lúc chỉ có một chương trình của người sử dụng được thực hiện trên máy. DOS tổ chức thông tin trên đĩa từ theo các đơn vị quản lý gọi là file. Các file được tổ chức theo một cấu trúc phân cấp có dạng cây gọi là cấu trúc thư mục.
Đĩa chứa thư mục gốc, mỗi thư mục có quyền chứa nhiều thư mục khác. Các file có thể nằm ở một thư mục cấp nào đó. Giao tiếp giữa người và máy theo kiểu lệnh. Ví dụ muốn xoá một file có tên là GPT.PAS trên đĩa C ta gõ vào bàn phím lệnh DEL C:GPT.PAS sau đó bấm phím ↵ (phím Enter).
Về chức năng, trên DOS ta có thể thực hiện được những công việc như: tổ chức thư mục (tạo mới, xoá, di chuyển từ thư mục này tới thư mục khác, xem danh mục các file của một thư mục), tổ chức file (tạo bản sao trong các thư mục khác nhau, xóa, xem nội dung), thực hiện các chương trình, đặt chế độ làm việc (đặt cấu hình hệ thống, đặt thời gian), tổ chức xử lý theo lô. Các ứng dụng trên DOS được xem như một lệnh. So với các hệ điều hành trước đó thì DOS rất dễ sử dụng. Windows cũng là một hệ điều hành nổi tiếng cho các máy PC vì phong cách giao tiếp theo kiểu đồ hoạ rất thân thiện.
Nếu trong môi trường DOS, giao diện của các phần mềm do chính chương trình ứng dụng tạo ra thì trong windows, giao diện tiêu chuẩn được hỗ trợ ngay ở mức hệ điều hành. Kiểu giao tiếp với các biểu tượng (icon) thực đơn trải xuống (pulldown menu), cửa sổ ứng dụng (window), hộp thoại để đặt tham số (dialog box) và cơ chế chỉ định bằng chuột (mouse) đã trở thành chuẩn cho giao tiếp đồ hoạ cho đến ngày nay. Thực ra hệ điều hành thực hiện thành công giao tiếp theo kiểu này đầu tiên không phải là Windows của Microsoft mà là MAC/OS trên họ máy Macintosh của hãng Apple ngay từ năm 1985. Microsoft chỉ là người đi sau, thực hiện lại và cải tiến các ý tưởng đã được Apple sử dụng trong dòng máy Macintosh.
HĐH Multiprocessor system: Hầu hết các hệ thống ngày nay là các hệ thống đơn xử lý; nghĩa là chỉ có một CPU chính. Tuy nhiên, các hệ thống đa xử lý (hay còn gọi là hệ song song hay hệ kết nối chặt) được phát triển rất quan trọng. Các hệ thống như thế có nhiều hơn một bộ xử lý trong giao tiếp gần, chia sẻ bus máy tính, đồng hồ, đôi khi còn là bộ nhớ hay thiết bị ngoại vi. Hệ thống đa xử lý có ba ưu điểm chính: Thông lượng được gia tăng: bằng cách tăng số lượng bộ xử lý, chúng ta hy vọng thực hiện nhiều công việc hơn với thời gian ít hơn.