コンテンツにスキップ

カーネル

出典: フリー百科事典『ウィキペディア(Wikipedia)』
カーネルはアプリケーションソフトウェアとコンピュータのハードウェアを結び付ける。

: kernel (OS) [1]

CPU

[2][3]

[]


 (OS) 

[ 1]collects


[]


使[1]

CPU1

[4][ 2]

HDDUSB使便[ 3]

調[1]

 (IPC) 

IPC


プロセス管理[編集]




[5][6]

[7]

CPU

CPU (IPC) RPC

調 "yielding"  Windows  Mac OS [8]

SMPNUMA

メモリ管理[編集]


[7]

 (RAM) 退OSRAMCPU使退

使Singularity

使

[]


OSOSOSOSLAN




使BIOS

使使

使


OS



TWAIN

PostScript

[7]

使PCOSPCIUSB

OSCPU

システムコール[編集]


CAPI[9]

CPU

使

使x86

使x86

使便

[]

[]


2[1]







[10][11]







[12]CPUMMU[13]MMU

OS[14][15][16][17]

[13][18][19][20][21]

1

OS[18][18]

[]


使[22]使

[17]



OS









JXSingularity

調[]


調[23][24]RPC

[]


調Per Brinch Hansen 1967[25][26]Hansen [24]

使 Hardware Abstraction Layer (HAL) BIOSPCI/PCIeUSB使 (IPC) 使

[]




[27][28]使

[28]OS[1][24]

Per Brinch Hansen [1][24]OS[1][29][30][31][32][32][1]2[1]

[2]使Xen

モノリシックカーネル[編集]

モノリシックカーネルの概念図

OSUNIX[33]

UnixOSOS

LinuxFreeBSDUnixOS



1



Linux1OS muLinux LinuxLinux

OS使OS

C使GNU








[]

マイクロカーネル方式では、カーネルはサーバの実行に必要な最小限の機能をカーネルに持たせ、それ以外のカーネル機能(デバイスドライバ、GUIなど)はサーバという別個のプログラムで実装する。

OSOS

IPCI/O1OSQNX GNU Hurd 









AIXBeOSHurdmacOSMINIXQNX OS2OS (IPC)Linux

OS



使







使

OSOS使[24]OSOS使[24]

[]


使[ 4][ 5]

1990Linux[34]

使使

[]


[35][35]

19801990[36][37][36][36][36][36] 

1995[36]

(一)

(二)

(三)

[36]

[32] [38]

L4[39] K42[]

[]


Windows NTOSApple macOS MachFreeBSDXNU







使OS12




[]


[40]

[]


 (exokernel) OS

OSOSOSAPIUI

カーネル開発史[編集]

初期のOSカーネル[編集]


OSROM使[41]使

1969 RC 4000 Multiprogramming System OS[42]

タイムシェアリングOS[編集]


UNIX10使使 (TSS) TSSCPU[43]

CPU1965Multics[44]使CPU

UNIX[編集]

Unix系システムの系譜

UNIXUNIX[45]

UNIX使

UNIX2[45][ 1]

UNIXGUIUNIXUNIX[46]10Linux1300[47]

UnixOSLinuxLinuxBSD FreeBSDDragonFly BSDOpenBSDNetBSDmacOS 

Mac OS[]


Apple1984Mac OSMacintoshmacOSDarwin4.4BSDMachXNU[48]

Microsoft Windows[]


Microsoft Windows1985MS-DOSOSWindows 95OSWindows 9x322000Windows MeWindows NT 1993 Windows NT 3.12000

200110Windows XPWindows 9xOSWindows NTWindow ManagerIPC Manager[49]

[]


19851994MachL4[39] Fiasco  Pistachio Linux[50][51]

QNX1980Mach[52]使使

脚注[編集]

注釈[編集]



(一)^ abCPL00

(二)^ CPU

(三)^ 

(四)^  (MMU) 使

(五)^  OS

出典[編集]



(一)^ abcdefghiWulf 1974, pp. 337345

(二)^ abAn overview of Monolithic and Micro Kernels, by K.J.

(三)^ Roch 2004

(四)^ Bona Fide OS Development - Bran's Kernel Development Tutorial, by Brandon Friesen

(五)^ Levy 1984, p. 5

(六)^ Needham, R.M., Wilkes, M. V. Domains of protection and the management of processes, Computer Journal, vol. 17, no. 2, May 1974, pp 117120.

(七)^ abcSilberschatz 1991

(八)^ http://www.answers.com/topic/operating-system

(九)^ Tanenbaum, Andrew S. (2008). Modern Operating Systems (3rd ed.). Prentice Hall. pp. 5051. ISBN 0-13-600663-9. ". . . nearly all system calls [are] invoked from C programs by calling a library procedure . . . The library procedure . . . executes a TRAP instruction to switch from user mode to kernel mode and start execution . . ." 

(十)^ Denning 1976

(11)^ Swift 2005, p. 29 quote: "isolation, resource control, decision verification (checking), and error recovery."

(12)^ Schroeder 1972

(13)^ abLinden 1976

(14)^ Stephane Eranian and David Mosberger, Virtual Memory in the IA-64 Linux Kernel, Prentice Hall PTR, 2002

(15)^ Silberschatz 1993, pp. 445, 446

(16)^ Hoch, Charles; J. C. Browne (University of Texas, Austin) (July 1980). An implementation of capabilities on the PDP-11/45 (PDF). ACM SIGOPS Operating Systems Review 14 (3): 2232. doi:10.1145/850697.850701. http://portal.acm.org/citation.cfm?id=850701&dl=acm&coll=&CFID=15151515&CFTOKEN=6184618 200717. 

(17)^ abA Language-Based Approach to Security, Schneider F., Morrissett G. (Cornell University) and Harper R. (Carnegie Mellon University)

(18)^ abcP. A. Loscocco, S. D. Smalley, P. A. Muckelbauer, R. C. Taylor, S. J. Turner, and J. F. Farrell. The Inevitability of Failure: The Flawed Assumption of Security in Modern Computing Environments. In Proceedings of the 21st National Information Systems Security Conference, pages 303314, Oct. 1998.

(19)^ J. Lepreau et al. The Persistent Relevance of the Local Operating System to Global Applications. Proceedings of the 7th ACM SIGOPS European workshop, 1996.

(20)^ J. Anderson, Computer Security Technology Planning Study, Air Force Elect. Systems Div., ESD-TR-73-51, October 1972.

(21)^ Jerry H. Saltzer, Mike D. Schroeder (September 1975). The protection of information in computer systems. Proceedings of the IEEE 63 (9): 12781308. doi:10.1109/PROC.1975.9939. http://web.mit.edu/Saltzer/www/publications/protection/. 

(22)^ Jonathan S. Shapiro; Jonathan M. Smith; David J. Farber (1999). EROS: a fast capability system. Proceedings of the seventeenth ACM symposium on Operating systems principles 33 (5): 170185. doi:10.1145/319344.319163. http://portal.acm.org/citation.cfm?doid=319151.319163. 

(23)^ Dijkstra, E. W. Cooperating Sequential Processes. Math. Dep., Technological U., Eindhoven, Sept. 1965.

(24)^ abcdefHansen 1970, pp. 238241

(25)^ SHARER, a time sharing system for the CDC 6600. 200717

(26)^ Dynamic Supervisors  their design and construction. 200717

(27)^ Baiardi 1988

(28)^ abLevin 1975

(29)^ Denning 1980

(30)^ Jürgen Nehmer The Immortality of Operating Systems, or: Is Research in Operating Systems still Justified? Lecture Notes In Computer Science; Vol. 563. Proceedings of the International Workshop on Operating Systems of the 90s and Beyond. pp. 7783 (1991) ISBN 3-540-54987-0 [1] quote: "The past 25 years have shown that research on operating system architecture had a minor effect on existing main stream systems." [2]

(31)^ Levy 1984, p. 1 quote: "Although the complexity of computer applications increases yearly, the underlying hardware architecture for applications has remained unchanged for decades."

(32)^ abcLevy 1984, p. 1 quote: "Conventional architectures support a single privileged mode of operation. This structure leads to monolithic design; any module needing protection must be part of the single operating system kernel. If, instead, any module could execute within a protected domain, systems could be built as a collection of independent modules extensible by any user."

(33)^ Open Sources: Voices from the Open Source Revolution

(34)^ Linus vs. Tanenbaum  LINUX is obsolete - comp.os.minix  Appendix A The Tanenbaum-Torvalds Debate 

(35)^ abMatthew Russell. What Is Darwin (and How It Powers Mac OS X).  O'Reilly Media. 2012930 quote: "The tightly coupled nature of a monolithic kernel allows it to make very efficient use of the underlying hardware [...] Microkernels, on the other hand, run a lot more of the core processes in userland. [...] Unfortunately, these benefits come at the cost of the microkernel having to pass a lot of information in and out of the kernel space through a process known as a context switch. Context switches introduce considerable overhead and therefore result in a performance penalty."

(36)^ abcdefgLiedtke 1995

(37)^ Härtig 1997

(38)^ Hansen 1973, section 7.3 p.233 "interactions between different levels of protection require transmission of messages by value"

(39)^ abThe L4 microkernel family  Overview

(40)^ KeyKOS Nanokernel Architecture

(41)^ Ball 2002, p. 129

(42)^ Hansen 2001, pp. 1718

(43)^ BSTJ version of C.ACM Unix paper

(44)^ Introduction and Overview of the Multics System, by F. J. Corbató and V. A. Vissotsky.

(45)^ abThe UNIX System  The Single Unix Specification

(46)^ Unixs Revenge by Horace Dediu

(47)^ Linux Kernel 2.6: It's Worth More!, by David A. Wheeler, 20041012

(48)^ XNU: The Kernel

(49)^ Windows History: Windows Desktop Products History

(50)^ The Fiasco microkernel - Overview

(51)^ L4Ka - The L4 microkernel family and friends

(52)^ QNX Realtime Operating System Overview

参考文献[編集]


Roch, Benjamin (2004). Monolithic kernel vs. Microkernel (PDF). 20061012

Silberschatz, Abraham; James L. Peterson, Peter B. Galvin (1991). Operating system concepts (3rd ed.). Boston, Massachusetts: Addison-Wesley. p. 696. ISBN 0-201-51379-X. http://portal.acm.org/citation.cfm?id=95329&dl=acm&coll=&CFID=15151515&CFTOKEN=6184618 

Silberschatz, Abraham; Peter B. Galvin (1993). Operating system concepts (4th ed.). Boston, Massachusetts: Addison-Wesley. ISBN 0-201-50480-4. http://dl.acm.org/citation.cfm?id=562353 

Ball, Stuart R. (2002). Embedded Microprocessor Systems: Real World Designs (first ed.). Elsevier Science. ISBN 0-7506-7534-9 

Denning, Peter J. (December 1976). Fault tolerant operating systems. ACM Computing Surveys 8 (4): 359389. doi:10.1145/356678.356680. ISSN 0360-0300. http://portal.acm.org/citation.cfm?id=356680&dl=ACM&coll=&CFID=15151515&CFTOKEN=6184618. 

Denning, Peter J. (April 1980). Why not innovations in computer architecture?. ACM SIGARCH Computer Architecture News 8 (2): 47. doi:10.1145/859504.859506. ISSN 0163-5964. http://portal.acm.org/citation.cfm?id=859506&coll=&dl=ACM&CFID=15151515&CFTOKEN=6184618. 

Hansen, Per Brinch (April 1970). The nucleus of a Multiprogramming System. Communications of the ACM 13 (4): 238241. doi:10.1145/362258.362278. ISSN 0001-0782. http://portal.acm.org/citation.cfm?id=362278&dl=ACM&coll=GUIDE&CFID=11111111&CFTOKEN=2222222. 

Hansen, Per Brinch (1973). Operating System Principles. Englewood Cliffs: Prentice Hall. p. 496. ISBN 0-13-637843-9. http://portal.acm.org/citation.cfm?id=540365 

Hansen, Per Brinch (2001) (PDF). The evolution of operating systems. http://brinch-hansen.net/papers/2001b.pdf 20061024.  included in book: Per Brinch Hansen, ed (2001). 1. Classic operating systems: from batch processing to distributed systems. New York,: Springer-Verlag. pp. 136. ISBN 0-387-95113-X. http://brinch-hansen.net/papers/2001b.pdf 

Härtig, Hermann; Michael Hohmuth, Jochen Liedtke, Sebastian Schönberg, Jean Wolter (1997). The performance of μ-kernel-based systems. ACM SIGOPS Operating Systems Review 31 (5): 66-77. http://doi.acm.org/10.1145/268998.266660 2010619. 

Levin, R.; E. Cohen, W. Corwin, F. Pollack,William Wulf (1975). Policy/mechanism separation in Hydra. ACM Symposium on Operating Systems Principles / Proceedings of the fifth ACM symposium on Operating systems principles 9 (5): 132140. doi:10.1145/1067629.806531. http://portal.acm.org/citation.cfm?id=806531&dl=ACM&coll=&CFID=15151515&CFTOKEN=6184618. 

Levy, Henry M. (1984). Capability-based computer systems. Maynard, Mass: Digital Press. ISBN 0-932376-22-3. http://www.cs.washington.edu/homes/levy/capabook/index.html 

Liedtke, Jochen (1995-12). On µ-Kernel Construction. Proc. 15th ACM Symposium on Operating System Principles (SOSP). http://os.ibds.kit.edu/65_1029.php. 

Linden, Theodore A. (December 1976). Operating System Structures to Support Security and Reliable Software. ACM Computing Surveys 8 (4): 409445. doi:10.1145/356678.356682. ISSN 0360-0300. http://dl.acm.org/citation.cfm?id=356682&coll=&dl=ACM. , Operating System Structures to Support Security and Reliable Software (PDF). 2010619

Schroeder, Michael D.; Jerome H. Saltzer (March 1972). A hardware architecture for implementing protection rings. Communications of the ACM 15 (3): 157170. doi:10.1145/361268.361275. ISSN 0001-0782. http://dl.acm.org/citation.cfm?id=361275&dl=ACM&coll=. 

Wulf, W.; E. Cohen, W. Corwin, A. Jones, R. Levin, C. Pierson, F. Pollack (June 1974). HYDRA: the kernel of a multiprocessor operating system. Communications of the ACM 17 (6): 337345. doi:10.1145/355616.364017. ISSN 0001-0782. 

Baiardi, F.; A. Tomasi, M. Vanneschi (1988) (Italian). Architettura dei Sistemi di Elaborazione, volume 1. Franco Angeli. ISBN 88-204-2746-X. http://www.pangloss.it/libro.php?isbn=882042746X&id=4357&PHPSESSID=9da1895b18ed1cda115cf1c7ace9bdf0 

Swift, Michael M.; Brian N. Bershad, Henry M. Levy (February 2005). Improving the reliability of commodity operating systems. ACM Transactions on Computer Systems 23 (1): 77-110. doi:10.1002/spe.4380201404. http://nooks.cs.washington.edu/nooks-tocs.pdf. 

関連文献[編集]

関連項目[編集]

外部リンク[編集]