Lịch sử hệ điều hành

Các hệ điều hành máy tính cung cấp một tập chức năng cần thiết và được dùng ở hầu hết các chương trình trên máy tính, và các liên kết cần để kiểm soát và đồng bộ phần cứng máy tính. Vào thế hệ máy tính đầu tiên, lúc đó không có hệ điều hành, mỗi chương trình phải cần đặc tả phần cứng đầy đủ để chạy đúng và thực hiện các nhiệm vụ tiêu chuẩn, và các driver riêng cho các thiết bị ngoại vi như máy in và bìa đục lỗ. Sự phát triển phức tạp của phần cứng và các chương trình ứng dụng cuối cùng cũng tạo ra các hệ điều hành dựa trên nhu cầu.

Bối cảnh 
Các máy tính đầu tiên là máy tính lớn không có bất kỳ hình thức hệ điều hành nào. Mỗi người dùng chỉ sử dụng máy trong một khoảng thời gian theo lịch trình và sau đó đến máy tính có chương trình và dữ liệu, thường là trên bìa đục lỗ và băng từ hoặc băng giấy. Chương trình sẽ được tải vào máy và máy sẽ được thiết lập để hoạt động cho đến khi chương trình hoàn thành hoặc gặp sự cố. Các chương trình thường có thể được gỡ lỗi thông qua bảng điều khiển bằng cách sử dụng quay số, chuyển đổi công tắc và đèn bảng.

Các ngôn ngữ tượng trưng, hợp ngữ và trình biên dịch đã được phát triển giúp cho các lập trình viên dịch mã chương trình tượng trưng thành mã máy vốn trước đây được mã hóa bằng tay. Các máy sau này đi kèm với các thư viện mã hỗ trợ trên bìa đục lỗ hoặc băng từ, sẽ được liên kết với chương trình của người dùng để hỗ trợ các hoạt động như vào/ra. Đây là nguồn gốc của hệ điều hành hiện đại; tuy nhiên, máy móc vẫn chạy một công việc duy nhất tại một thời điểm. Tại Đại học Cambridge ở Anh hàng đợi công việc đã có thời điểm phải dùng một dây phơi trên đó các băng được treo với các chốt quần áo có màu khác nhau để biểu thị mức độ ưu tiên công việc.

Khi máy móc trở nên mạnh mẽ hơn, thời gian để chạy các chương trình giảm dần và thời gian để trao thiết bị cho người dùng tiếp theo trở nên lớn hơn bằng cách so sánh. Ghi chép và thanh toán cho việc sử dụng máy được chuyển từ kiểm tra đồng hồ treo tường sang đăng nhập tự động bằng máy tính. Chạy hàng đợi phát triển từ một hàng người theo nghĩa đen ở cửa, đến rất nhiều phương tiện trên bàn chờ việc, hoặc hàng loạt thẻ đục lỗ xếp chồng lên nhau trên đầu đọc, cho đến khi chính máy có thể chọn và sắp xếp các ổ băng từ nào xử lý băng nào. Khi các nhà phát triển chương trình ban đầu có quyền truy cập để chạy các công việc của riêng họ trên máy, họ được thay thế bởi các nhà khai thác máy chuyên dụng chăm sóc máy và ngày càng ít quan tâm đến việc thực hiện các tác vụ theo cách thủ công.Khi các trung tâm máy tính có sẵn trên thị trường phải đối mặt với hệ lụy của dữ liệu bị mất do giả mạo hoặc lỗi vận hành, các nhà cung cấp thiết bị đã chịu áp lực phải tăng cường các thư viện thời gian chạy để ngăn chặn việc lạm dụng tài nguyên hệ thống. Giám sát tự động là cần thiết không chỉ cho việc sử dụng CPU mà còn để đếm các trang được in, thẻ đục lỗ, đọc thẻ, lưu trữ đĩa được sử dụng và để báo hiệu khi cần có sự can thiệp của nhà điều hành các công việc như thay đổi băng từ và mẫu giấy. Các tính năng bảo mật đã được thêm vào hệ điều hành để ghi lại các đoạn kiểm toán trong đó các chương trình đang truy cập vào file nào và để ngăn truy cập vào file biên chế sản xuất bởi một chương trình kỹ thuật chẳng hạn.

Tất cả các tính năng này được xây dựng theo hướng một hệ điều hành có khả năng đầy đủ. Cuối cùng, các thư viện thời gian chạy đã trở thành một chương trình hợp nhất được khởi động trước công việc của khách hàng đầu tiên và có thể đọc công việc của khách hàng, kiểm soát việc thực hiện, ghi lại việc sử dụng nó, gán lại tài nguyên phần cứng sau khi công việc kết thúc và ngay lập tức xử lý công việc tiếp theo. Các chương trình nền thường trú này, có khả năng quản lý các quy trình nhiều bước, thường được gọi là giám sát hoặc giám sát chương trình trước khi thuật ngữ "hệ điều hành" được hình thành.

Một chương trình cơ bản cung cấp quản lý phần cứng cơ bản, lập lịch phần mềm và giám sát tài nguyên có vẻ như là tổ tiên từ xa đối với các hệ điều hành hướng người dùng trong kỷ nguyên máy tính cá nhân. Nhưng đã có một sự thay đổi trong ý nghĩa của hệ điều hành. Ngay khi những chiếc ô tô đời đầu thiếu đồng hồ tốc độ, radio và điều hòa không khí mà sau này trở thành tiêu chuẩn, ngày càng có nhiều tính năng phần mềm tùy chọn trở thành tính năng tiêu chuẩn trong mọi gói hệ điều hành, mặc dù một số ứng dụng như Hệ quản trị cơ sở dữ liệu và bảng tính vẫn có giá tùy chọn và riêng biệt. Điều này đã dẫn đến nhận thức về một hệ điều hành như một hệ thống người dùng hoàn chỉnh với giao diện người dùng đồ họa tích hợp, các tiện ích, một số ứng dụng như trình soạn thảo văn bản và trình quản lý file và các công cụ cấu hình.

Hậu duệ thực sự của các hệ điều hành ban đầu là cái mà ngày nay được gọi là "kernel". Trong giới kỹ thuật và phát triển, ý thức hạn chế cũ của hệ điều hành vẫn tồn tại do sự phát triển tích cực của các hệ điều hành nhúng cho tất cả các loại thiết bị có thành phần xử lý dữ liệu, từ các thiết bị cầm tay cho đến robot công nghiệp và điều khiển thời gian thực - các hệ thống không chạy ứng dụng người dùng ở mặt trước. Một hệ điều hành nhúng trong một thiết bị ngày nay không còn bị loại bỏ như người ta có thể nghĩ từ tổ tiên của những năm 1950.

Các loại hệ thống và phần mềm ứng dụng rộng hơn sẽ được thảo luận trong bài viết về phần mềm máy tính.

Máy tính lớn 
Hệ điều hành đầu tiên được sử dụng cho công việc thực tế là GM-NAA I/O, được sản xuất vào năm 1956 bởi Bộ phận Nghiên cứu của General Motors cho IBM 704 của họ. Hầu hết các hệ điều hành ban đầu khác cho máy tính lớn của IBM cũng được sản xuất bởi khách hàng.

Các hệ điều hành ban đầu rất đa dạng, với mỗi nhà cung cấp hoặc khách hàng sản xuất một hoặc nhiều hệ điều hành dành riêng cho máy tính lớn của họ. Mỗi hệ điều hành, thậm chí từ cùng một nhà cung cấp, có thể có các mô hình lệnh, quy trình vận hành khác nhau và các phương tiện như các công cụ gỡ lỗi. Thông thường, mỗi lần nhà sản xuất đưa ra một máy mới, sẽ có một hệ điều hành mới và hầu hết các ứng dụng sẽ phải được điều chỉnh thủ công, biên dịch lại và kiểm thử lại.

Các hệ thống dựa trên phần cứng IBM 
Tình trạng tiếp diễn cho đến những năm 1960 khi IBM, đã là nhà cung cấp phần cứng hàng đầu, ngừng hoạt động trên các hệ thống hiện có và nỗ lực hết sức để phát triển loạt máy System/360, tất cả đều sử dụng cùng một kiến trúc vào/ra. IBM dự định phát triển một hệ điều hành duy nhất cho phần cứng mới, OS / 360. Các vấn đề gặp phải trong quá trình phát triển OS/360 là huyền thoại, và được Fred Brooks mô tả trong cuốn The Mythical Man-Month—một cuốn sách đã trở thành kinh điển của công nghệ phần mềm. Do sự khác biệt về hiệu năng trên phạm vi phần cứng và sự chậm trễ trong phát triển phần mềm, cả một họ hệ điều hành đã được giới thiệu thay vì một OS/360 duy nhất.

IBM cố gắng phát hành một loạt các khoảng trống theo sau bởi hai hệ điều hành tồn tại lâu hơn:

 OS/360 cho các hệ thống tầm trung và lớn. Điều này đã có sẵn trong ba tùy chọn tạo hệ thống:
 [/OS/360#PCP PCP] cho người dùng sớm và cho những người không có tài nguyên để lập trình đa chương trình.
 MFT cho các hệ thống tầm trung, được thay thế bằng MFT-II trong OS/360 Phiên bản 15/16. Nó có một phiên bản kế nhiệm, OS/VS1, đã bị ngừng vào những năm 1980.
 MVT cho các hệ thống lớn. Điều này tương tự với hầu hết các cách đối với PCP và MFT (hầu hết các chương trình có thể được chuyển giữa ba chương trình mà không cần biên dịch lại), nhưng có quản lý bộ nhớ tinh vi hơn và phương tiện chia sẻ thời gian, TSO. MVT có một số phiên bản kế nhiệm bao gồm cả z/OS hiện tại.
 DOS/360 cho các mô hình System/360 nhỏ có một số phiên bản kế nhiệm bao gồm cả z/VSE hiện tại. Nó khác biệt đáng kể so với OS/360.

IBM duy trì khả năng tương thích hoàn toàn với bản tiền nhiệm, để các chương trình được phát triển vào những năm 1960 vẫn có thể chạy trên z/VSE (nếu được phát triển cho DOS/360) hoặc z/OS (nếu được phát triển cho MFT hoặc MVT) mà không thay đổi.

IIBM cũng đã phát triển TSS/360, một hệ thống chia sẻ thời gian cho System/360 Model 67. Bù đắp quá mức cho tầm quan trọng của họ trong việc phát triển hệ thống chia sẻ thời gian, họ thuê hàng trăm nhà phát triển làm việc cho dự án. Họ đã kết thúc với một dự án lỗi, đầy lỗi, mất nhiều thời gian để khởi động như nó đã bị crash, và kết thúc dự án mà không phát hành nó.

Một số hệ điều hành cho kiến trúc IBM S/360 và S/370 được phát triển bởi các bên thứ ba, bao gồm Michigan Terminal System (MTS) và MUSIC/SP.

Hệ điều hành máy tính lớn khác 
Control Data Corporation phát triển hệ điều hành SCOPE trong những năm 1960, cho xử lý theo lôvà sau đó phát triển hệ điều hành MACE cho hệ thống chia sẻ thời gian, là tiền thân của Kronos sau này. Hợp tác với Đại học Minnesota, Kronos và sau đó là các hệ điều hành NOS đã được phát triển trong những năm 1970, hỗ trợ đồng thời sử dụng hàng loạt và chia sẻ thời gian. Giống như nhiều hệ thống chia sẻ thời gian thương mại, giao diện của nó là một phần mở rộng của hệ thống chia sẻ thời gian DTSS, một trong những nỗ lực tiên phong trong các ngôn ngữ lập trình và chia sẻ thời gian.

Cuối những năm 1970, Control Data và Đại học Illinois đã phát triển hệ thống PLATO, sử dụng màn hình plasma và mạng chia sẻ thời gian dài. PLATOđã được đổi mới đáng kể cho thời gian của nó; mô hình bộ nhớ dùng chung của ngôn ngữ lập trình TUTOR của PLATO cho phép các ứng dụng như trò chuyện thời gian thực và trò chơi đồ họa đa người dùng.

Đối với UNIVAC 1107, UNIVAC, nhà sản xuất máy tính thương mại đầu tiên, đã sản xuất hệ điều hành EXECI và Computer Sciences Corporation đã phát triển EXEC II và giao cho UNIVAC. EXEC II đã được port sang UNIVAC 1108. Sau đó, UNIVAC phát triển EXEC 8 cho 1108; nó là cơ sở cho các hệ điều hành cho các thành viên sau này của gia đình. Giống như tất cả các hệ thống máy tính lớn đầu tiên, EXEC I và EXEC II là một hệ thống định hướng hàng loạt quản lý trống từ, đĩa, đầu đọc thẻ và máy in dòng; EXEC 8 hỗ trợ cả xử lý hàng loạt và xử lý giao dịch trực tuyến. IVào những năm 1970, UNIVAC đã sản xuất hệ thống Real-Time Basic (RTB) để hỗ trợ chia sẻ thời gian quy mô lớn, cũng được mô phỏng theo hệ thống Dartmouth BASIC.

Burroughs Corporation đã giới thiệu B5000 năm 1961 cùng với hệ điều hành MCP (Master Control Program). B5000 là một máy xếp chồng được thiết kế để hỗ trợ độc quyền các ngôn ngữ cấp cao, không có phần mềm, thậm chí không ở mức thấp nhất của hệ điều hành, được viết trực tiếp bằng ngôn ngữ máy hoặc hợp ngữ; MCP là hệ điều hành đầu tiên Ođược viết hoàn toàn bằng ngôn ngữ bậc cao - ESPOL, một phương ngữ của ALGOL 60 - mặc dù ESPOL có các câu lệnh chuyên biệt cho từng "âm tiết" trong tập lệnh của B5000. MCP cũng giới thiệu nhiều cải tiến đột phá khác, như là một trong những triển khai thương mại đầu tiên của bộ nhớ ảo. Việc viết lại MCP cho B6500 vẫn được sử dụng cho đến ngày nay trong dòng máy tính Unisys ClearPath / MCP.

GE giới thiệu GE-600 series cùng với hệ điều hành General Electric Comprehensive Operating Supervisor (GECOS) năm 1962. Sau này Honeywell mua lại doanh nghiệp máy tính của, nó được đổi tên thành General Comprehensive Operating System (GCOS). Honeywell đã mở rộng việc sử dụng tên GCOS để bao trùm tất cả các hệ điều hành của mình trong những năm 1970, mặc dù nhiều máy tính của nó không có gì giống với dòng GE 600 trước đó và hệ điều hành của chúng không có nguồn gốc từ GECOS ban đầu.

Project MAC tại MIT, làm việc với GE và Bell Labs, phát triển Multics, giới thiệu khái niệm về các mức đặc quyền bảo mật

Digital Equipment Corporation phát triển TOPS-10 cho ho dòng máy tính 36 bit PDP-10 của mình vào năm 1967. Trước khi sử dụng rộng rãi Unix, TOPS-10 là một hệ thống đặc biệt phổ biến trong các trường đại học và trong cộng đồng ARPANET thời kỳ đầu. Bolt, Beranek, and Newman phát triển TENEX fcho PDP-10 được sửa đổi, hỗ trợ phân trang theo yêu cầu; đây là một hệ thống phổ biến khác trong cộng đồng nghiên cứu và ARPANET, và sau đó được DEC phát triển thành TOPS-20.

Scientific Data Systems/Xerox Data Systems đã phát triển một số hệ điều hành cho loạt máy tính Sigma, như Basic Control Monitor (BCM), Batch Processing Monitor (BPM), và Basic Time-Sharing Monitor (BTM). Sau đó, BPM và BTM đã thành công nhờ Universal Time-Sharing System (UTS); nó được thiết kế để cung cấp các dịch vụ đa lập trình cho các chương trình người dùng trực tuyến (tương tác) ngoài công việc sản xuất chế độ hàng loạt, nó đã thành công nhờ hệ điều hành CP-V, kết hợp UTS với Hệ điều hành xử lý theo lô Xerox Operating System.

Máy tính mini 

Digital Equipment Corporation đã tạo một vài hệ điều hành cho dòng máy 16-bit PDP-11 của họ, bao gồm hệ thống RT-11 đơn giản, hệ điều hành chia sẻ thời gian RSTS, và gia đình hệ điều hành thời gian thực RSX-11, cũng như hệ thống VMS cho các máy VAX 32 bit.

Một số đối thủ của Digital Equipment Corporation như Data General, Hewlett-Packard, và Computer Automation đã tạo ra các hệ điều hành của riêng họ. Một vi dụ, "MAX III", được phát triển cho máy tính Modular Computer Systems Modcomp II và Modcomp III. Nó được đặc trưng bởi thị trường mục tiêu của nó là thị trường kiểm soát công nghiệp. Các thư viện Fortran bao gồm một thư viện cho phép truy cập vào các thiết bị đo lường và điều khiển.

Cải tiến quan trọng của IBM trong các hệ điều hành trong lớp này (mà họ gọi là "tầm trung"), là "CPF" cho System/38. Nó có địa chỉ dựa trên khả năng, đã sử dụng kiến trúc giao diện máy để cách ly phần mềm ứng dụng và hầu hết hệ điều hành khỏi các phụ thuộc phần cứng (bao gồm cả các chi tiết như kích thước địa chỉ và kích thước đăng ký) và bao gồm RDBMS tích hợp. OS/400 cho AS/400 không có tệp, chỉ có các đối tượng thuộc các loại khác nhau và các đối tượng này tồn tại trong bộ nhớ ảo phẳng rất lớn, được gọi là lưu trữ một cấp. i5/OS và sau đó là IBM i cho iSeries tiếp tục dòng hệ điều hành này.Hệ điều hành Unix được phát triển tại AT&T Bell Laboratories vào cuối thập niên 1960s, bản gốc cho PDP-7, và sau đó cho PDP-11. Bởi vì về cơ bản nó là miễn phí trong các phiên bản đầu tiên, dễ dàng có được và dễ dàng sửa đổi, nó đã đạt được sự chấp nhận rộng rãi. Nó cũng trở thành một yêu cầu trong các hệ điều hành hệ thống của Bell. Từ khi nó được viết bằng C,khi ngôn ngữ đó được port sang kiến trúc máy mới, Unix cũng có thể được port. Tính di động này cho phép nó trở thành sự lựa chọn cho thế hệ máy tính mini thứ hai và thế hệ máy trạm đầu tiên. Bằng cách sử dụng rộng rãi, nó đã minh họa ý tưởng về một hệ điều hành về mặt khái niệm giống nhau trên các nền tảng phần cứng khác nhau và sau đó trở thành một trong những gốc rễ của các dự án hệ điều hành tự do nguồn mở bao gồm GNU, Linux và Berkeley Software Distribution. MacOS của Apple cũng dựa trên Unix thông qua NeXTSTEP và FreeBSD.

Pick OS là một hệ điều hành khác có sẵn trên nhiều loại thương hiệu phần cứng. Được phát hành thương mại vào năm 1973, cốt lõi của nó là một ngôn ngữ tương tự BASIC có tên là Data/BASIC và một ngôn ngữ thao tác cơ sở dữ liệu kiểuSQL có tên là ENGLISH. Được cấp phép cho một loạt các nhà sản xuất và nhà cung cấp, vào đầu những năm 1980, các nhà quan sát đã thấy hệ điều hành Pick OS là đối thủ cạnh tranh mạnh mẽ với Unix.

Máy vi tính 
Bắt đầu từ giữa những năm 1970, một lớp máy tính nhỏ mới xuất hiện trên thị trường. Nổi bật với bộ xử lý 8 bit, điển hình là MOS Technology 6502, Intel 8080, Motorola 6800 hay Zilog Z80, cùng với giao diện đầu vào và đầu ra thô sơ và càng nhiều RAM, thực tế, các hệ thống này khởi đầu là máy tính sở thích dựa trên bộ công cụ nhưng sớm phát triển thành một công cụ kinh doanh thiết yếu.

Máy tính gia đình 
Trong khi nhiều máy tính gia đình tám bit của thập niên 1980, như BBC Micro, Commodore 64, Apple II series, Atari 8-bit, Amstrad CPC, ZX Spectrum và các loại khác có thể tải hệ điều hành tải đĩa của bên thứ ba, chẳng hạn như CP/M hay GEOS, chúng thường được sử dụng một mình. Các hệ điều hành tích hợp của chúng được thiết kế trong thời đại mà các ổ đĩa mềm rất đắt tiền và hầu hết người dùng sẽ không sử dụng, do đó, thiết bị lưu trữ tiêu chuẩn trên hầu hết là ổ băng từ sử dụng băng cassette nhỏ gọn tiêu chuẩn. Hầu hết, nếu không phải tất cả, các máy tính này được cung cấp với trình thông dịch BASIC tích hợp trên ROM, cũng là giao diện dòng lệnh thô, cho phép người dùng tải một hệ điều hành đĩa riêng để thực hiện các lệnh quản lý tệp và tải và lưu vào đĩa. Máy tính gia đình, Commodore 64, là một ngoại lệ đáng chú ý, vì DOS của nó nằm trên ROM trong phần cứng ổ đĩa và ổ đĩa được gửi đến máy in, modem và các thiết bị bên ngoài khác.

Hơn nữa, các hệ thống được vận chuyển với số lượng bộ nhớ máy tính tối thiểu 4-8 kilobyte là tiêu chuẩn cho các máy tính gia đình đầu tiên cũng như bộ xử lý 8 bit không có mạch hỗ trợ chuyên dụng như MMU hoặc thậm chí là đồng hồ thời gian thực chuyên dụng. Trên phần cứng này, chi phí hoạt động của một hệ điều hành phức tạp hỗ trợ nhiều tác vụ và người dùng có thể sẽ làm giảm hiệu năng của máy mà không thực sự cần thiết. Vì các hệ thống đó phần lớn đã được bán hoàn chỉnh, với cấu hình phần cứng cố định, cũng không cần hệ điều hành để cung cấp trình điều khiển cho một loạt các phần cứng để loại bỏ sự khác biệt.

Video games và thậm chí cả bảng tính, cơ sở dữ liệu và bộ xử lý văn bản có sẵn cho máy tính gia đình hầu hết là các chương trình độc lập đã chiếm lĩnh hoàn toàn máy. Mặc dù phần mềm tích hợp tồn tại cho các máy tính này, nhưng chúng thường thiếu các tính năng so với các phần mềm độc lập tương đương, phần lớn là do giới hạn bộ nhớ. Trao đổi dữ liệu chủ yếu được thực hiện thông qua các định dạng tiêu chuẩn như văn bản ASCII hoặc CSV hoặc thông qua các chương trình chuyển đổi tệp chuyên biệt.

Hệ điều hành trên video games và consoles 
Vì hầu như tất cả các máy chơi game và arcade cabinets được thiết kế và chế tạo sau năm 1980 đều là những máy kỹ thuật số thực sự dựa trên bộ vi xử lý (không giống như các bản sao và dẫn xuất của Pong trước đó), smột số trong số chúng mang một dạng BIOS hoặc trò chơi tích hợp tối thiểu, như ColecoVision, Hệ thống Sega Master và SNK Neo Geo.

Các máy chơi game và trò chơi điện tử thời hiện đại, bắt đầu với PC-Engine, tất cả đều có một BIOS tối thiểu cũng cung cấp một số tiện ích tương tác như quản lý thẻ nhớ, phát lại CD âm thanh hoặc video, bảo vệ bản sao và đôi khi mang thư viện cho các nhà phát triển sử dụng, v.v. Tuy nhiên, một vài trong số những trường hợp này sẽ đủ điều kiện là một hệ điều hành thực sự.

Các ngoại lệ đáng chú ý nhất có lẽ là Dreamcast game console bao gồm BIOS tối thiểu, giống PlayStation, nhưng có thể tải hệ điều hành Windows CE từ đĩa game cho phép dễ dàng porting từ PC, và Xbox, đó là ít hơn một PC dựa trên Intel được ngụy trang đang chạy một phiên bản Microsoft Windows bí mật, được sửa đổi trong nền. Hơn nữa, có những phiên bản Linux cũng sẽ chạy trên máy chơi game Dreamcast và sau đó.

Trước đó, Sony đã phát hành một loại bộ công cụ phát triển có tên Net Yaroze cho nền tảng PlayStation đầu tiên của mình, cung cấp một loạt các công cụ lập trình và phát triển được sử dụng với một PC bình thường và một "Black PlayStation" được sửa đổi đặc biệt có thể giao tiếp với PC và tải các chương trình từ nó. Các hoạt động này yêu cầu nói chung một hệ điều hành chức năng trên cả hai nền tảng liên quan.

Nhìn chung, có thể nói rằng các máy chơi trò chơi điện tử và máy vận hành tiền xu arcade được sử dụng nhiều nhất là một BIOS tích hợp trong những năm 1970, 1980 và hầu hết những năm 1990, trong khi từ thời PlayStation và hơn thế nữa, chúng bắt đầu ngày càng tinh vi hơn, đến mức yêu cầu một hệ điều hành chung hoặc được xây dựng tùy chỉnh để hỗ trợ phát triển và mở rộng.

Máy tính cá nhân 
Sự phát triển của các bộ vi xử lý đã tạo ra tính toán rẻ tiền cho doanh nghiệp nhỏ và người có sở thích, từ đó dẫn đến việc sử dụng rộng rãi các thành phần phần cứng có thể hoán đổi cho nhau bằng cách sử dụng một kết nối chung (như S-100, SS-50, Apple II, ISA, và PCI), và nhu cầu ngày càng tăng đối với các hệ điều hành "tiêu chuẩn" để kiểm soát chúng. Nhân tố quan trọng nhất trong các hệ điều hành đầu tiên trên các máy này là CP/M-80 của Digital Research cho CPU 8080/8085/Z-80. Nó dựa trên một số hệ điều hành của Digital Equipment Corporation, chủ yếu dành cho kiến trúc PDP-11. Hệ điều hành đầu tiên của Microsoft, MDOS/MIDAS, được thiết kế cùng với nhiều tính năng PDP-11, nhưng dành cho các hệ thống dựa trên bộ vi xử lý. MS-DOS, hay PC DOS khi được IBM cung cấp, ban đầu dựa trên CP / M-80. Mỗi máy trong số này có một chương trình khởi động nhỏ trong ROM, bản thân nó đã tải hệ điều hành từ đĩa. BIOS trên các máy lớp IBM-PC là một phần mở rộng của ý tưởng này và đã tích lũy thêm nhiều tính năng và chức năng trong 20 năm kể từ khi IBM-PC đầu tiên được giới thiệu vào năm 1981.

Chi phí thiết bị và bộ xử lý hiển thị giảm khiến việc cung cấp giao diện người dùng đồ họa cho nhiều hệ điều hành trở nên thiết thực, chẳng hạn như X Window System chung được cung cấp với nhiều hệ thống Unix hoặc các hệ thống đồ họa khác như classic Mac OS và macOS của Apple, OS-9 Level II/MultiVue của Radio Shack Color Computer, AmigaOS của Commodore, Atari TOS, OS/2 của IBM, and Microsoft Windows. GUI ban đầu được phát triển trên hệ thống máy tính Xerox Alto tại Trung tâm nghiên cứu Xerox Palo Alto vào đầu những năm 1970 và được thương mại hóa bởi nhiều nhà cung cấp trong suốt những năm 1980 và 1990.

Kể từ cuối những năm 1990, đã có ba hệ điều hành được sử dụng rộng rãi trên máy tính cá nhân: macOS của Apple Inc., Linux nguồn mở và Microsoft Windows. Kể từ năm 2005 và Apple chuyển sang bộ xử lý Intel, tất cả đã được phát triển chủ yếu trên nền tảng x86, mặc dù macOS vẫn hỗ trợ PowerPC cho đến năm 2009 và Linux vẫn được chuyển sang vô số kiến trúc bao gồm 68k, PA-RISC và DEC Alpha, đã được thay thế từ lâu và không còn sản xuất, và SPARC và MIPS, được sử dụng trong các máy chủ hoặc hệ thống nhúng nhưng không còn dành cho máy tính để bàn. Các hệ điều hành khác như AmigaOS và OS/2 vẫn được sử dụng, nếu có, chủ yếu bởi những người đam mê máy tính retro hoặc cho các ứng dụng nhúng chuyên dụng.

Hệ điều hành di động 
Đầu những năm 1990, Psion đã phát hành chiếc máy PDA Psion Series 3, một thiết bị điện toán di động nhỏ. Nó hỗ trợ các ứng dụng do người dùng viết trên hệ điều hành có tên EPOC. Các phiên bản sau này của EPOC đã trở thành Symbian, một hệ điều hành được sử dụng cho điện thoại di động của Ericsson, Motorola và Nokia. Năm 1996, Palm Computing Nphats hành Pilot 1000 và Pilot 5000, chạy Palm OS. Microsoft Windows CE là cơ sở cho PocketPC 2000, đổi tên thành Windows Mobile năm 2003, lúc cao điểm nhất vào năm 2007 là hệ điều hành phổ biến nhất cho điện thoại thông minh ở Mỹ.

Năm 2007, Apple đã giới thiệu iPhone và hệ điều hành iOS, giống như Mac OS X, dựa trên bản phân phối tương tự Unix Darwin. Ngoài những nền tảng này, nó cũng giới thiệu một giao diện người dùng đồ họa mạnh mẽ và sáng tạo - sau này cũng được sử dụng cho máy tính bảng iPad. Một năm sau, Android được giới thiệu, dựa trên nhân Linux đã được sửa đổi và giao diện người dùng đồ họa của riêng nó và Microsoft đã gia nhập lại thị trường này với Windows Phone vào năm 2010, và được thay thế bởi Windows 10 Mobile vào năm 2015.

Ngoài ra, một loạt các hệ điều hành di động khác đang tranh chấp trong lĩnh vực này.

Sự trỗi dậy của ảo hóa 
Các hệ điều hành ban đầu chạy trực tiếp trên phần cứng và cung cấp dịch vụ cho các ứng dụng, nhưng với ảo hóa, hệ điều hành tự chạy dưới sự kiểm soát của một trình ảo hóa, thay vì kiểm soát trực tiếp phần cứng.

Trên các máy tính lớn, IBM đã giới thiệu khái niệm về một máy ảo vào năm 1968 với CP/CMS trên IBM System/360 Model 67, và đã mở rộng điều này sau đó vào năm 1972 với Virtual Machine Facility/370 (VM/370) trên System/370.

Trên các máy tính cá nhân dựa trên x86, VMware đã phổ biến công nghệ này với sản phẩm VMware Workstation năm 1999, và các sản phẩm VMware GSX Server và VMware ESX Server năm 2001 của họ. Sau đó, một loạt các sản phẩm từ những người khác, bao gồm Xen, KVM và Hyper-V, đến năm 2010 có hơn 80% doanh nghiệp đã có chương trình hoặc dự án ảo hóa, và 25% tổng khối lượng công việc của máy chủ sẽ ở trong một máy ảo.

Theo thời gian, ranh giới giữa các máy ảo, monitor và hệ điều hành đã bị xóa nhòa:

Hypervisors phát triển phức tạp hơn, có được giao diện lập trình ứng dụng, quản lý bộ nhớ hoặc hệ thống tệp của riêng chúng.
Ảo hóa trở thành một tính năng chính của các hệ điều hành, như được minh họa bởi KVM và LXC trong Linux, Hyper-V trong Windows Server 2008 hoặc HP Integrity Virtual Machines trong HP-UX.
Trong một số hệ thống, chẳng hạn như các máy chủ dựa trên POWER5 và POWER6 và từ IBM, bộ ảo hóa không còn là tùy chọn.
Các hệ điều hành được đơn giản hóa triệt để, như CoreOS đã được thiết kế để chỉ chạy trên các hệ thống ảo.
Các ứng dụng đã được thiết kế lại để chạy trực tiếp trên màn hình máy ảo.

Theo nhiều cách, phần mềm máy ảo ngày nay đóng vai trò trước đây do hệ điều hành nắm giữ, bao gồm quản lý tài nguyên phần cứng (bộ xử lý, bộ nhớ, thiết bị I/O), áp dụng các chính sách lập lịch hoặc cho phép quản trị viên hệ thống quản lý hệ thống.

Đọc thêm 
''''''''''

Chú thích

Tham khảo 

Lịch sử phần mềm
Hệ điều hành
Lịch sử tin học