stanford-oval/wikipedia huggingface dataset:
Hệ điều hành
Lịch sử > Máy vi tính

Những máy vi tính đầu tiên không có khả năng hoặc không cần đến hệ điều hành phức tạp đã được phát triển cho máy tính lớn và máy tính nhỏ; hệ điều hành tối giản được phát triển, thường được tải từ ROM và được gọi là monitor. Một hệ điều hành đĩa ban đầu đáng chú ý là CP/M, được hỗ trợ trên nhiều máy vi tính đời đầu và được MS-DOS của Microsoft bắt chước triệt để. Hệ điều hành này đã trở nên phổ biến rộng rãi như là hệ điều hành được chọn cho các máy IBM PC (phiên bản tương đương của IBM được gọi là IBM DOS hoặc PC DOS). Vào những năm 1980, Apple Computer Inc. (nay là Apple Inc.) đã từ bỏ dòng máy vi tính Apple II phổ biến của mình để giới thiệu dòng máy tính Apple Macintosh với giao diện người dùng đồ họa (GUI) sáng tạo cho Mac OS.
Sự ra đời của chip CPU Intel 80386 vào tháng 10 năm 1985, với kiến trúc 32-bit và khả năng phân trang, cung cấp cho các máy tính cá nhân khả năng chạy các hệ điều hành đa nhiệm giống như các máy tính mini và máy tính lớn trước đó. Microsoft đã đáp lại tiến độ này bằng cách thuê Dave Cutler, người đã phát triển hệ điều hành VMS cho Digital Equipment Corporation. Cutler sau đó lãnh đạo sự phát triển của hệ điều hành Windows NT, đưa hệ điều hành này tiếp tục đóng vai trò là nền tảng cho dòng hệ điều hành của Microsoft. Steve Jobs, người đồng sáng lập Apple Inc., đã thành lập NeXT Computer Inc., công ty đã phát triển hệ điều hành NEXTSTEP. NEXTSTEP sau đó được Apple Inc. mua lại và sử dụng, cùng với mã nguồn từ FreeBSD để làm thành nhân cho hệ điều hành MacOS X (macOS sau lần đổi tên mới nhất).
Dự án GNU được nhà hoạt động và lập trình viên Richard Stallman khởi động với mục tiêu tạo ra một phần mềm thay thế hoàn toàn miễn phí cho hệ điều hành UNIX độc quyền. Mặc dù dự án đã rất thành công trong việc nhân bản chức năng của các phần khác nhau của UNIX, nhưng việc phát triển nhân GNU Hurd tỏ ra không hiệu quả. Năm 1991, một sinh viên khoa học máy tính Phần Lan tên là Linus Torvalds, với sự hợp tác từ các tình nguyện viên cộng tác qua Internet, đã phát hành phiên bản đầu tiên của nhân Linux. Nó sớm được hợp nhất với các thành phần không gian người dùng GNU và phần mềm hệ thống để tạo thành một hệ điều hành hoàn chỉnh. Kể từ đó, sự kết hợp của hai thành phần chính thường được ngành công nghiệp phần mềm gọi đơn giản là "Linux", một quy ước đặt tên mà Stallman và Tổ chức Phần mềm Tự do vẫn phản đối, ưu tiên tên gọi GNU/Linux. Bản phân phối phần mềm Berkeley của Unix, được gọi là BSD, là dẫn xuất UNIX được Đại học California, Berkeley bắt đầu phân phối từ những năm 1970. Được phân phối tự do và chuyển qua nhiều máy tính mini, cuối cùng nó cũng thu được một lượng lớn người sử dụng trên PC, chủ yếu là dưới dạng các phiên bản FreeBSD, NetBSD và OpenBSD.
Ví dụ > Hệ điều hành Unix và các sản phẩm tương tự

Bài chi tiết: Unix và Tương tự Unix
Unix ban đầu được viết bằng hợp ngữ. Ken Thompson đã viết B, chủ yếu dựa trên BCPL, dựa trên kinh nghiệm của ông trong dự án MULTICS. B được thay thế bằng C, và Unix, được viết lại bằng C, được phát triển thành một họ lớn, phức tạp gồm các hệ điều hành liên quan đến nhau có ảnh hưởng đến mọi hệ điều hành hiện đại (xem Lịch sử).
Họ các hệ điều hành giống Unix là một nhóm hệ điều hành đa dạng, với một số danh mục con chính bao gồm Hệ thống V, BSD và Linux. Tên " UNIX " là nhãn hiệu của The Open Group cấp phép cho nó sử dụng với bất kỳ hệ điều hành nào đã được chứng minh là phù hợp với định nghĩa của họ. "Giống UNIX" thường được dùng để chỉ một tập hợp lớn các hệ điều hành giống với UNIX gốc.
Các hệ thống giống Unix chạy trên nhiều loại kiến trúc máy tính. Chúng được sử dụng nhiều cho các máy chủ trong kinh doanh, cũng như các máy trạm trong môi trường học thuật và kỹ thuật. Các biến thể UNIX miễn phí, chẳng hạn như Linux và BSD, rất phổ biến ở những khu vực này.
Bốn hệ điều hành được The Open Group (chủ sở hữu nhãn hiệu Unix) chứng nhận là Unix. HP -UX của HP và AIX của IBM đều là hậu duệ của System V Unix ban đầu và được thiết kế để chỉ chạy trên phần cứng của nhà cung cấp tương ứng. Ngược lại, Solaris của Sun Microsystems có thể chạy trên nhiều loại phần cứng, bao gồm máy chủ x86, Sparc và PC. MacOS của Apple, sự thay thế cho Mac OS (không phải Unix) trước đó của Apple, là một biến thể BSD dựa trên hạt nhân lai có nguồn gốc từ NeXTSTEP, Mach và FreeBSD.
Khả năng tương tác giữa các hệ điều hành Unix đã được thực hiện bằng cách thiết lập tiêu chuẩn POSIX. Tiêu chuẩn POSIX có thể được áp dụng cho bất kỳ hệ điều hành nào, mặc dù ban đầu nó được tạo ra cho các biến thể Unix khác nhau.
Ví dụ > Hệ điều hành Unix và các sản phẩm tương tự > BSD và các sản phẩm con của nó

Bài chi tiết: BSD
Một nhóm con của họ Unix là họ Phân phối Phần mềm Berkeley, bao gồm FreeBSD, NetBSD và OpenBSD. Các hệ điều hành này thường thấy nhất trên máy chủ web, mặc dù chúng cũng có thể hoạt động như một hệ điều hành máy tính cá nhân. Internet có phần lớn sự tồn tại của nó đối với BSD, vì nhiều giao thức hiện nay thường được máy tính sử dụng để kết nối, gửi và nhận dữ liệu qua mạng đã được triển khai và cải tiến rộng rãi trong BSD. World Wide Web cũng lần đầu tiên được trình diễn trên một số máy tính chạy hệ điều hành dựa trên BSD được gọi là NeXTSTEP.
Năm 1974, Đại học California, Berkeley lắp đặt hệ thống Unix đầu tiên của mình. Theo thời gian, các sinh viên và nhân viên trong khoa khoa học máy tính ở đó bắt đầu thêm các chương trình mới để làm cho mọi thứ dễ dàng hơn, chẳng hạn như trình soạn thảo văn bản. Khi Berkeley nhận được máy tính VAX mới vào năm 1978 có cài đặt Unix, các sinh viên chưa tốt nghiệp của trường đã sửa đổi Unix nhiều hơn để tận dụng khả năng phần cứng của máy tính. Các Defense Advanced Research Projects Agency của Mỹ Bộ Quốc phòng mất sự quan tâm, và quyết định tài trợ cho dự án. Nhiều trường học, tập đoàn và tổ chức chính phủ đã chú ý và bắt đầu sử dụng phiên bản Unix của Berkeley thay vì phiên bản chính thức do AT&T phân phối.
Steve Jobs, sau khi rời Apple Inc. vào năm 1985, thành lập NeXT Inc., một công ty sản xuất máy tính cao cấp chạy trên một biến thể của BSD có tên là NeXTSTEP. Một trong những máy tính này được Tim Berners-Lee sử dụng làm máy chủ web đầu tiên tạo ra World Wide Web.
Các nhà phát triển như Keith Bostic khuyến khích dự án thay thế bất kỳ mã không miễn phí nào có nguồn gốc từ Bell Labs. Tuy nhiên, sau khi việc này được thực hiện, AT&T đã khởi kiện. Sau hai năm tranh chấp pháp lý, dự án BSD đã sinh ra một số công cụ phái sinh miễn phí, chẳng hạn như NetBSD và FreeBSD (cả hai vào năm 1993) và OpenBSD (từ NetBSD vào năm 1995).
Ví dụ > Hệ điều hành Unix và các sản phẩm tương tự > macOS

Bài chi tiết: macOS
macOS (trước đây là "Mac OS X" và sau này là "OS X") là một dòng hệ điều hành đồ họa lõi mở được phát triển, tiếp thị và bán bởi Apple Inc., hệ điều hành mới nhất được tải sẵn trên tất cả các máy tính Macintosh hiện đang vận chuyển. macOS là sự kế thừa của Mac OS cổ điển ban đầu, là hệ điều hành chính của Apple từ năm 1984. Không giống như người tiền nhiệm của nó, macOS là một hệ điều hành UNIX được xây dựng trên công nghệ đã được phát triển tại NeXT trong nửa sau của những năm 1980 và cho đến khi Apple mua lại công ty vào đầu năm 1997. Hệ điều hành được phát hành lần đầu tiên vào năm 1999 với tên gọi Mac OS X Server 1.0, sau đó vào tháng 3 năm 2001 bởi một phiên bản máy khách (Mac OS X v10.0 "Cheetah"). Kể từ đó, sáu phiên bản "máy khách" và " máy chủ " khác biệt hơn của macOS đã được phát hành, cho đến khi cả hai được hợp nhất trong OS X 10.7 "Lion".
Trước khi hợp nhất với macOS, phiên bản máy chủ – macOS Server – có kiến trúc giống hệt hệ điều hành cho máy tính để bàn và thường chạy trên dòng phần cứng máy chủ Macintosh của Apple. macOS Server bao gồm các công cụ phần mềm quản lý và quản lý nhóm công việc cung cấp quyền truy cập đơn giản vào các dịch vụ mạng chính, bao gồm tác nhân truyền thư, máy chủ Samba, máy chủ LDAP, máy chủ tên miền và các công cụ khác. Với Mac OS X v10.7 Lion, tất cả các khía cạnh máy chủ của Mac OS X Server đã được tích hợp vào phiên bản máy khách và sản phẩm được đổi tên thành "OS X" (bỏ "Mac" khỏi tên). Các công cụ máy chủ hiện được cung cấp dưới dạng ứng dụng.
Ví dụ > Hệ điều hành Unix và các sản phẩm tương tự > Linux

Bài chi tiết: Linux
Nhân Linux bắt nguồn từ năm 1991, là một dự án của Linus Torvalds, khi đang là sinh viên đại học ở Phần Lan. Anh ấy đã đăng thông tin về dự án của mình trên một nhóm tin dành cho sinh viên và lập trình viên máy tính, đồng thời nhận được sự hỗ trợ và giúp đỡ từ các tình nguyện viên đã thành công trong việc tạo ra một nhân hoàn chỉnh và có chức năng.
Linux giống Unix, nhưng được phát triển mà không có bất kỳ mã nguồn Unix nào, không giống như BSD và các biến thể của nó. Do mô hình giấy phép mở của nó, mã nhân Linux có sẵn để nghiên cứu và sửa đổi, dẫn đến việc nó được sử dụng trên nhiều loại máy tính từ siêu máy tính đến đồng hồ thông minh. Mặc dù các ước tính cho thấy Linux chỉ được sử dụng trên 1,82% của tất cả các PC "để bàn" (hoặc máy tính xách tay), nó đã được chấp nhận rộng rãi để sử dụng trong máy chủ  và các hệ thống nhúng  như điện thoại di động. Linux đã thay thế Unix trên nhiều nền tảng và được sử dụng trên hầu hết các siêu máy tính bao gồm cả 385 hàng đầu. Nhiều máy tính giống nhau cũng có trên Green500 (nhưng theo thứ tự khác nhau) và Linux chạy trên top 10. Linux cũng thường được sử dụng trên các máy tính nhỏ tiết kiệm năng lượng khác, chẳng hạn như điện thoại thông minh và đồng hồ thông minh. Nhân Linux được sử dụng trong một số bản phân phối phổ biến, chẳng hạn như Red Hat, Debian, Ubuntu, Linux Mint và Android, Chrome OS và Chromium OS của Google.
Ví dụ > Microsoft Windows

Bài chi tiết: Microsoft Windows
Microsoft Windows là một dòng hệ điều hành độc quyền được Tập đoàn Microsoft thiết kế và chủ yếu nhắm mục tiêu đến các máy tính dựa trên kiến trúc Intel, với ước tính 88,9% tổng mức sử dụng trên các máy tính được kết nối Web. Phiên bản mới nhất là Windows 11.
Vào năm 2011, Windows 7 đã vượt qua Windows XP để trở thành phiên bản phổ biến nhất được sử dụng.
Microsoft Windows được phát hành lần đầu tiên vào năm 1985, với tư cách là một môi trường điều hành chạy trên nền tảng MS-DOS, đây là hệ điều hành tiêu chuẩn được sử dụng trên hầu hết các máy tính cá nhân kiến trúc Intel vào thời điểm đó. Năm 1995, Windows 95 được phát hành chỉ sử dụng MS-DOS làm bootstrap. Để tương thích ngược, Win9x có thể chạy MS-DOS ở chế độ thực và với các driver 16-bit Windows 3.x. Windows ME, được phát hành năm 2000, là phiên bản cuối cùng trong gia đình Win9x. Các phiên bản sau này đều dựa trên nhân của Windows NT. Phiên bản ứng dụng khách hiện tại của Windows chạy trên các vi xử lý IA-32, x86-64 và 32-bit ARM. Ngoài ra các vi xử lý Itanium vẫn được hỗ trợ trong phiên bản máy chủ cũ hơn Windows Server 2008 R2. Trước đây, Windows NT hỗ trợ các kiến trúc bổ sung.
Các phiên bản máy chủ của Windows được sử dụng rộng rãi. Trong những năm gần đây, Microsoft đã chi ra số vốn đáng kể trong nỗ lực thúc đẩy việc sử dụng Windows như một hệ điều hành máy chủ. Tuy nhiên, việc sử dụng Windows trên máy chủ không phổ biến như trên máy tính cá nhân do Windows phải cạnh tranh với Linux và BSD để giành thị phần máy chủ.
ReactOS là một hệ điều hành thay thế cho Windows, đang được phát triển trên các nguyên tắc của Windows – mà không sử dụng bất kỳ mã nguồn nào của Microsoft.
Ví dụ > Khác

Đã có nhiều hệ điều hành quan trọng trong thời của chúng nhưng hiện tại không còn được như vậy nữa, chẳng hạn như AmigaOS; OS/2 của IBM và Microsoft; Mac OS cổ điển, tiền thân không phải Unix của macOS của Apple; BeOS; XTS-300; Hệ điều hành RISC; MorphOS; Haiku; BareMetal và FreeMint. Một số vẫn được sử dụng trong các thị trường ngách và tiếp tục được phát triển như một nền tảng thiểu số cho các cộng đồng đam mê và các ứng dụng chuyên dụng. OpenVMS, trước đây của DEC, vẫn đang được VMS Software Inc. phát triển tích cực. Tuy nhiên, các hệ điều hành này hầu như chỉ được sử dụng trong học thuật, giáo dục hệ điều hành hoặc nghiên cứu về các khái niệm hệ điều hành. Ví dụ điển hình của một hệ thống đáp ứng cả hai vai trò là MINIX, trong khi ví dụ Singularity được sử dụng thuần túy cho nghiên cứu. Một ví dụ khác là Oberon được thiết kế tại ETH Zürich bởi Niklaus Wirth, Jürg Gutknecht và một nhóm sinh viên tại Viện Hệ thống Máy tính vào những năm 1980. Nó được sử dụng chủ yếu cho nghiên cứu, giảng dạy và công việc hàng ngày trong nhóm của Wirth.
Các hệ điều hành khác đã không giành được thị phần đáng kể, nhưng đã đưa ra những đổi mới có ảnh hưởng đến các hệ điều hành chính thống, đặc biệt là Plan 9 của Bell Labs.
Thành phần

Tất cả các thành phần của hệ điều hành đều tồn tại để làm cho các bộ phận khác nhau của máy tính hoạt động cùng nhau. Tất cả phần mềm người dùng cần phải thông qua hệ điều hành để sử dụng bất kỳ phần cứng nào, cho dù nó đơn giản như chuột hoặc bàn phím hay phức tạp như một thành phần Internet.
Thành phần > Nhân

Bài chi tiết: Nhân hệ điều hành
Với sự hỗ trợ của phần sụn và trình điều khiển thiết bị, nhân của hệ điều hành cung cấp mức kiểm soát cơ bản nhất đối với tất cả các thiết bị phần cứng của máy tính. Nó quản lý quyền truy cập bộ nhớ cho các chương trình trong RAM, nó xác định chương trình nào có quyền truy cập vào tài nguyên phần cứng nào, nó thiết lập hoặc đặt lại trạng thái hoạt động của CPU để luôn hoạt động tối ưu và nó tổ chức dữ liệu trong các bộ nhớ lưu trữ tĩnh với các hệ thống tập tin trên các phương tiện như đĩa, băng, bộ nhớ flash,...
Thành phần > Nhân > Thực hiện chương trình

Bài chi tiết: Tiến trình (khoa học máy tính)
Hệ điều hành cung cấp giao diện giữa chương trình ứng dụng và phần cứng máy tính, do đó chương trình ứng dụng chỉ có thể tương tác với phần cứng bằng cách tuân theo các quy tắc và thủ tục được lập trình trong hệ điều hành. Hệ điều hành cũng là một tập hợp các dịch vụ giúp đơn giản hóa việc phát triển và thực thi các chương trình ứng dụng. Việc thực thi một chương trình ứng dụng bao gồm việc tạo ra một quy trình bởi hạt nhân hệ điều hành để gán không gian bộ nhớ và các tài nguyên khác, thiết lập mức độ ưu tiên cho quy trình trong hệ thống đa tác vụ, tải mã nhị phân của chương trình vào bộ nhớ và bắt đầu thực thi chương trình ứng dụng. sau đó tương tác với người dùng và với các thiết bị phần cứng.
Thành phần > Nhân > Ngắt

Bài chi tiết: Ngắt
Ngắt là trung tâm của hệ điều hành, vì chúng cung cấp một cách hiệu quả để hệ điều hành tương tác và phản ứng với môi trường của nó. Thay thế – để hệ điều hành "xem" các nguồn đầu vào khác nhau cho các sự kiện (bỏ phiếu) yêu cầu hành động – có thể được tìm thấy trong các hệ thống cũ với ngăn xếp rất nhỏ (50 hoặc 60 byte) nhưng không bình thường trong các hệ thống hiện đại với ngăn xếp lớn. Lập trình dựa trên ngắt được hầu hết các CPU hiện đại hỗ trợ trực tiếp. Ngắt cung cấp cho máy tính một cách tự động lưu các ngữ cảnh đăng ký cục bộ và chạy mã cụ thể để đáp ứng các sự kiện. Ngay cả những máy tính rất cơ bản cũng hỗ trợ ngắt phần cứng và cho phép lập trình viên chỉ định mã có thể chạy khi sự kiện đó diễn ra.
Khi nhận được một ngắt, phần cứng của máy tính sẽ tự động tạm dừng bất kỳ chương trình nào hiện đang chạy, lưu trạng thái của nó và chạy mã máy tính trước đó được liên kết với ngắt; điều này tương tự như việc đặt dấu trang trong sách để trả lời một cuộc gọi điện thoại. Trong các hệ điều hành hiện đại, các ngắt được nhân của hệ điều hành xử lý. Ngắt có thể đến từ phần cứng của máy tính hoặc chương trình đang chạy.
Khi một thiết bị phần cứng kích hoạt ngắt, hạt nhân của hệ điều hành sẽ quyết định cách đối phó với sự kiện này, thường bằng cách chạy một số mã xử lý. Số lượng mã đang được chạy phụ thuộc vào mức độ ưu tiên của ngắt (ví dụ: một người thường trả lời báo động bằng máy dò khói trước khi trả lời điện thoại). Xử lý ngắt phần cứng là một tác vụ thường được giao cho phần mềm được gọi là trình điều khiển thiết bị, phần mềm này có thể là một phần của nhân hệ điều hành, một phần của chương trình khác hoặc cả hai. Trình điều khiển thiết bị sau đó có thể chuyển tiếp thông tin đến một chương trình đang chạy bằng nhiều cách khác nhau.
Một chương trình cũng có thể kích hoạt một ngắt đối với hệ điều hành. Ví dụ: nếu một chương trình muốn truy cập vào phần cứng, nó có thể làm gián đoạn nhân của hệ điều hành, điều này khiến quyền kiểm soát được chuyển lại cho nhân. Sau đó, nhân sẽ xử lý yêu cầu. Nếu một chương trình muốn có thêm tài nguyên (hoặc muốn loại bỏ tài nguyên) như bộ nhớ, nó sẽ kích hoạt ngắt để thu hút sự chú ý của nhân.
Thành phần > Nhân > Các chế độ

Các bộ vi xử lý hiện đại (CPU hoặc MPU) hỗ trợ nhiều chế độ hoạt động. Các CPU có khả năng này cung cấp ít nhất hai chế độ: chế độ người dùng và chế độ giám sát. Nói chung, hoạt động ở chế độ giám sát cho phép truy cập không hạn chế vào tất cả tài nguyên máy, bao gồm tất cả các lệnh MPU. Chế độ người dùng hoạt động đặt ra giới hạn đối với việc sử dụng lệnh và thường không cho phép truy cập trực tiếp vào tài nguyên máy. CPU cũng có thể có các chế độ khác tương tự như chế độ người dùng, chẳng hạn như chế độ ảo để mô phỏng các loại bộ xử lý cũ hơn, chẳng hạn như bộ xử lý 16 bit trên bộ xử lý 32 bit hoặc bộ xử lý 32 bit trên bộ xử lý 64 bit.
Khi bật nguồn hoặc đặt lại, hệ thống bắt đầu ở chế độ giám sát. Khi một nhân hệ điều hành đã được tải và khởi động, ranh giới giữa chế độ người dùng và chế độ giám sát (còn được gọi là chế độ nhân) có thể được thiết lập.
Chế độ giám sát được hạt nhân sử dụng cho các tác vụ cấp thấp cần quyền truy cập không hạn chế vào phần cứng, chẳng hạn như kiểm soát cách bộ nhớ được truy cập và giao tiếp với các thiết bị như ổ đĩa và thiết bị hiển thị video. Ngược lại, chế độ người dùng được sử dụng cho hầu hết mọi thứ khác. Các chương trình ứng dụng, chẳng hạn như bộ xử lý văn bản và trình quản lý cơ sở dữ liệu, hoạt động trong chế độ người dùng và chỉ có thể truy cập tài nguyên máy bằng cách chuyển quyền điều khiển sang hạt nhân, một quá trình gây chuyển sang chế độ giám sát. Thông thường, việc chuyển quyền điều khiển tới hạt nhân được thực hiện bằng cách thực hiện lệnh ngắt phần mềm, chẳng hạn như lệnh Motorola 68000 TRAP. Sự gián đoạn của phần mềm khiến bộ vi xử lý chuyển từ chế độ người dùng sang chế độ người giám sát và bắt đầu thực thi mã cho phép nhân thực hiện kiểm soát.
Ở chế độ người dùng, các chương trình thường có quyền truy cập vào một tập hợp các lệnh hạn chế của bộ vi xử lý và thường không thể thực hiện bất kỳ lệnh nào có thể gây gián đoạn hoạt động của hệ thống. Trong chế độ người giám sát, các giới hạn thực thi lệnh thường được loại bỏ, cho phép hạt nhân truy cập không hạn chế vào tất cả các tài nguyên máy.
Thuật ngữ "tài nguyên chế độ người dùng" thường đề cập đến một hoặc nhiều thanh ghi CPU, chứa thông tin mà chương trình đang chạy không được phép thay đổi. Các nỗ lực thay đổi các tài nguyên này thường gây ra chuyển đổi sang chế độ giám sát, nơi hệ điều hành có thể đối phó với hoạt động bất hợp pháp mà chương trình đang cố gắng làm, ví dụ, bằng cách buộc chương trình phải chấm dứt ("giết" chương trình).
Thành phần > Nhân > Quản lý bộ nhớ

Bài chi tiết: Quản lý bộ nhớ
Nhân hệ điều hành đa chương trình phải chịu trách nhiệm quản lý tất cả bộ nhớ hệ thống hiện đang được các chương trình sử dụng. Điều này đảm bảo rằng một chương trình không can thiệp vào bộ nhớ đã được chương trình khác sử dụng. Vì chương trình chia sẻ thời gian, mỗi chương trình phải có quyền truy cập độc lập vào bộ nhớ.
Quản lý bộ nhớ hợp tác, được sử dụng bởi nhiều hệ điều hành ban đầu, giả định rằng tất cả các chương trình sử dụng tự nguyện trình quản lý bộ nhớ của nhân và không vượt quá bộ nhớ được cấp phát của chúng. Hệ thống quản lý bộ nhớ này hầu như không còn xuất hiện nữa, vì các chương trình thường chứa các lỗi có thể khiến chúng vượt quá bộ nhớ được cấp phát. Nếu một chương trình bị lỗi, nó có thể khiến bộ nhớ được sử dụng bởi một hoặc nhiều chương trình khác bị ảnh hưởng hoặc bị ghi đè. Các chương trình hoặc vi rút độc hại có thể cố ý thay đổi bộ nhớ của chương trình khác hoặc có thể ảnh hưởng đến hoạt động của chính hệ điều hành. Với tính năng quản lý bộ nhớ hợp tác, chỉ cần một chương trình hoạt động sai có thể làm hệ thống gặp sự cố.
Bảo vệ bộ nhớ cho phép hạt nhân giới hạn quyền truy cập của một tiến trình vào bộ nhớ của máy tính. Có nhiều phương pháp bảo vệ bộ nhớ khác nhau, bao gồm phân đoạn bộ nhớ và phân trang. Tất cả các phương pháp đều yêu cầu một số mức hỗ trợ phần cứng (chẳng hạn như 80286 MMU), điều này không tồn tại trong tất cả các máy tính.
Trong cả phân đoạn và phân trang, một số thanh ghi chế độ được bảo vệ chỉ định cho CPU địa chỉ bộ nhớ mà nó sẽ cho phép một chương trình đang chạy truy cập. Nỗ lực truy cập các địa chỉ khác sẽ kích hoạt ngắt khiến CPU vào lại chế độ giám sát, đặt hạt nhân phụ trách. Đây được gọi là vi phạm phân đoạn hoặc viết tắt là Seg-V, và vì rất khó để gán một kết quả có ý nghĩa cho một hoạt động như vậy và bởi vì nó thường là dấu hiệu của một chương trình hoạt động sai, nhân của hệ điều hành thường sử dụng để chấm dứt chương trình vi phạm và báo cáo lỗi.
Các phiên bản Windows 3.1 đến ME có một số mức độ bảo vệ bộ nhớ, nhưng các chương trình có thể dễ dàng phá vỡ nhu cầu sử dụng nó. Một lỗi bảo vệ chung sẽ được tạo ra, cho thấy một vi phạm phân đoạn đã xảy ra; tuy nhiên, hệ thống sẽ thường xuyên bị lỗi và đổ vỡ.
Thành phần > Nhân > Bộ nhớ ảo

Bài chi tiết: Bộ nhớ ảo
Việc sử dụng địa chỉ bộ nhớ ảo (chẳng hạn như phân trang hoặc phân đoạn) có nghĩa là hạt nhân có thể chọn bộ nhớ mà mỗi chương trình có thể sử dụng tại bất kỳ thời điểm nào, cho phép hệ điều hành sử dụng cùng vị trí bộ nhớ cho nhiều tác vụ.
Nếu một chương trình cố gắng truy cập bộ nhớ không nằm trong phạm vi bộ nhớ có thể truy cập hiện tại của nó, nhưng dù sao cũng đã được cấp phát cho nó, thì hạt nhân sẽ bị gián đoạn giống như khi chương trình vượt quá bộ nhớ được cấp phát. Trong UNIX, loại ngắt này được gọi là lỗi trang.
Khi hạt nhân phát hiện lỗi trang, nó thường điều chỉnh phạm vi bộ nhớ ảo của chương trình đã kích hoạt nó, cấp cho nó quyền truy cập vào bộ nhớ được yêu cầu. Điều này cung cấp cho hạt nhân quyền lực tùy ý đối với nơi bộ nhớ của một ứng dụng cụ thể được lưu trữ, hoặc thậm chí nó đã thực sự được cấp phát hay chưa.
Trong các hệ điều hành hiện đại, bộ nhớ được truy cập ít thường xuyên hơn có thể được lưu trữ tạm thời trên đĩa hoặc phương tiện khác để cung cấp không gian đó cho các chương trình khác. Điều này được gọi là hoán đổi, vì một vùng bộ nhớ có thể được nhiều chương trình sử dụng và những gì vùng bộ nhớ đó chứa có thể được hoán đổi hoặc trao đổi theo yêu cầu.
"Bộ nhớ ảo" cung cấp cho lập trình viên hoặc người dùng nhận thức rằng có một lượng RAM trong máy tính lớn hơn nhiều so với thực tế.