Knowledge

User space and kernel space

Source 📝

50: 756:—they have a single address space for all user-mode code. (The kernel-mode code may be in the same address space, or it may be in a second address space). Other operating systems have a per-process address space, with a separate address space for each and every user-mode process. 763:
for all software, and rely on a programming language's semantics to make sure that arbitrary memory cannot be accessed – applications simply cannot acquire any
852: 1057: 896: 229: 67: 114: 1004: 232:. With enough privileges, processes can request the kernel to map part of another process's memory space to its own, as is the case for 86: 237: 939: 93: 972: 1333: 1304: 753: 100: 193:) refers to all code that runs outside the operating system's kernel. User space usually refers to the various programs and 1519: 82: 416: 408: 639: 133: 914: 1108: 1052: 1027: 997: 643: 1220: 1118: 772: 655: 71: 1498: 1047: 1032: 694: 1093: 1078: 1037: 764: 17: 220:
space, and, unless explicitly allowed, cannot access the memory of other processes. This is the basis for
1259: 615: 241: 107: 1274: 1113: 990: 505: 1309: 1128: 1088: 1083: 1042: 601: 513: 1352: 1239: 1103: 412: 382: 1524: 1098: 804: 703: 676: 663: 166: 60: 1486: 1425: 1314: 1294: 1243: 1201: 671: 609: 1269: 1235: 1137: 1073: 768: 711: 1466: 1440: 707: 538: 225: 206: 174: 38: 767:
to the objects that they are not allowed to access. This approach has been implemented in
154:
to provide separate address spaces, or separate regions of a single address space, called
8: 1435: 1387: 1264: 627: 580: 568: 388: 285: 213: 194: 1372: 1279: 586: 556: 550: 532: 447: 434: 365: 327: 281: 1481: 1430: 1362: 1319: 1160: 799: 621: 544: 500: 269: 221: 159: 240:
regions with other processes, although other techniques are also available to allow
1461: 1013: 794: 354: 338: 197:
that the operating system uses to interact with the kernel: software that performs
147: 866: 228:. A separate user mode can also be used to build efficient virtual machines – see 1405: 1367: 1338: 976: 876: 746: 734: 730: 361: 1491: 1415: 1377: 1249: 471: 369: 217: 151: 1513: 1400: 1357: 1196: 1150: 760: 759:
Another approach taken in experimental operating systems is to have a single
659: 404: 170: 1284: 828: 682: 525: 198: 1410: 1392: 1175: 1165: 1155: 967: 918: 871: 742: 593: 273: 202: 476: 31: 1347: 1254: 1180: 1145: 789: 738: 667: 465: 162:
and hardware protection from malicious or errant software behaviour.
982: 49: 30:"Kernel space" redirects here. For the mathematical definition, see 1476: 688: 233: 177:
and some drivers execute, typically one address space per process.
224:
in today's mainstream operating systems, and a building block for
1471: 1170: 424: 342: 319: 289: 248:
Various layers within Linux, also showing separation between the
494: 459: 453: 334: 311: 1420: 651: 647: 597: 562: 509: 482: 441: 346: 315: 784: 574: 488: 420: 304: 277: 165:
Kernel space is strictly reserved for running a privileged
1456: 824: 400: 749:; normal applications in user space run in user mode. 737:. Protection rings, in turn, are implemented using 173:. In contrast, user space is the memory area where 74:. Unsourced material may be challenged and removed. 1511: 158:. Primarily, this separation serves to provide 230:Popek and Goldberg virtualization requirements 998: 940:"uuu/docs/system_introduction/uuu_intro.tex" 1005: 991: 855:. Address space options for 32bit systems. 741:. Typically, kernel space programs run in 520: 259: 134:Learn how and when to remove this message 14: 1512: 754:single address space operating systems 725:The most common way of implementing a 1012: 986: 701: 37:For the user space on Knowledge, see 72:adding citations to reliable sources 43: 771:, Unununium as well as Microsoft's 24: 25: 1536: 961: 823:Older operating systems, such as 720: 1109:Object-oriented operating system 48: 915:"Unununium System Introduction" 831:, do not use this architecture. 590:, etc. (about 380 system calls) 59:needs additional citations for 1119:Supercomputer operating system 979: (archived March 26, 2016) 932: 907: 889: 859: 845: 817: 169:, kernel extensions, and most 13: 1: 968:Linux Kernel Space Definition 944:UUU System Introduction Guide 838: 83:"User space and kernel space" 1094:Just enough operating system 1079:Distributed operating system 236:. Programs can also request 27:Way of using computer memory 7: 1520:Operating system technology 1207:User space and kernel space 901:Kernel.org git repositories 778: 752:Some operating systems are 242:inter-process communication 180: 156:user space and kernel space 10: 1541: 1114:Real-time operating system 733:involves operating system 498:targets embedded systems, 36: 29: 1449: 1386: 1332: 1310:Multilevel feedback queue 1305:Fixed-priority preemptive 1293: 1228: 1219: 1189: 1136: 1127: 1089:Hobbyist operating system 1084:Embedded operating system 1066: 1020: 637: 530: 523: 439: 267: 216:normally runs in its own 1353:General protection fault 1104:Network operating system 1058:User features comparison 810: 492:aims to be lightweight, 1099:Mobile operating system 805:OS-level virtualization 664:Linux Network Scheduler 167:operating system kernel 1202:Loadable kernel module 672:Linux Security Modules 1270:Process control block 1236:Computer multitasking 1074:Disk operating system 633:Networking subsystem 594:System Call Interface 508:, etc. All aim to be 1441:Virtual tape library 1033:Forensic engineering 897:"Admin Guide README" 712:data storage devices 226:privilege separation 207:application software 175:application software 68:improve this article 39:Knowledge:User pages 1450:Supporting concepts 1436:Virtual file system 256: 1373:Segmentation fault 1221:Process management 973:Entering User Mode 775:research project. 638:Other components: 610:Process scheduling 596:(SCI), aims to be 435:C standard library 247: 146:A modern computer 1507: 1506: 1363:Memory protection 1334:Memory management 1328: 1327: 1320:Shortest job next 1215: 1214: 1014:Operating systems 829:Windows 3.1x 800:Memory protection 718: 717: 622:Memory management 592:The Linux kernel 486:aims to be fast, 299:System components 264:User applications 222:memory protection 160:memory protection 144: 143: 136: 118: 16:(Redirected from 1532: 1462:Computer network 1226: 1225: 1134: 1133: 1007: 1000: 993: 984: 983: 955: 954: 952: 951: 936: 930: 929: 927: 926: 917:. Archived from 911: 905: 904: 893: 887: 886: 884: 883: 863: 857: 856: 849: 832: 821: 795:Early user space 735:protection rings 589: 583: 577: 571: 565: 559: 553: 547: 541: 535: 504:was written for 475:... (up to 2000 474: 468: 462: 456: 450: 444: 396:Other libraries: 257: 246: 212:Each user space 148:operating system 139: 132: 128: 125: 119: 117: 76: 52: 44: 21: 1540: 1539: 1535: 1534: 1533: 1531: 1530: 1529: 1510: 1509: 1508: 1503: 1445: 1406:Defragmentation 1391: 1382: 1368:Protection ring 1337: 1324: 1296: 1289: 1211: 1185: 1123: 1062: 1016: 1011: 977:Wayback Machine 964: 959: 958: 949: 947: 938: 937: 933: 924: 922: 913: 912: 908: 895: 894: 890: 881: 879: 877:Eric S. Raymond 865: 864: 860: 853:"Address space" 851: 850: 846: 841: 836: 835: 822: 818: 813: 781: 747:supervisor mode 723: 670: 591: 585: 579: 573: 567: 561: 555: 549: 543: 537: 531: 480: 470: 464: 458: 452: 446: 440: 398: 380: 359: 332: 309: 290:Mozilla Firefox 183: 140: 129: 123: 120: 77: 75: 65: 53: 42: 35: 28: 23: 22: 15: 12: 11: 5: 1538: 1528: 1527: 1525:Device drivers 1522: 1505: 1504: 1502: 1501: 1496: 1495: 1494: 1492:User interface 1489: 1479: 1474: 1469: 1464: 1459: 1453: 1451: 1447: 1446: 1444: 1443: 1438: 1433: 1428: 1423: 1418: 1416:File attribute 1413: 1408: 1403: 1397: 1395: 1384: 1383: 1381: 1380: 1378:Virtual memory 1375: 1370: 1365: 1360: 1355: 1350: 1344: 1342: 1330: 1329: 1326: 1325: 1323: 1322: 1317: 1312: 1307: 1301: 1299: 1291: 1290: 1288: 1287: 1282: 1277: 1272: 1267: 1262: 1257: 1252: 1250:Context switch 1247: 1232: 1230: 1223: 1217: 1216: 1213: 1212: 1210: 1209: 1204: 1199: 1193: 1191: 1187: 1186: 1184: 1183: 1178: 1173: 1168: 1163: 1158: 1153: 1148: 1142: 1140: 1131: 1125: 1124: 1122: 1121: 1116: 1111: 1106: 1101: 1096: 1091: 1086: 1081: 1076: 1070: 1068: 1064: 1063: 1061: 1060: 1055: 1050: 1045: 1040: 1035: 1030: 1024: 1022: 1018: 1017: 1010: 1009: 1002: 995: 987: 981: 980: 970: 963: 962:External links 960: 957: 956: 931: 906: 888: 867:"userland, n." 858: 843: 842: 840: 837: 834: 833: 815: 814: 812: 809: 808: 807: 802: 797: 792: 787: 780: 777: 745:, also called 729:separate from 722: 721:Implementation 719: 716: 715: 699: 698: 635: 634: 631: 625: 619: 613: 606: 605: 529: 522: 518: 517: 472:pthread_create 438: 430: 429: 393: 374: 370:SurfaceFlinger 355:Window manager 351: 328:System daemons 324: 301: 295: 294: 266: 261: 218:virtual memory 201:, manipulates 182: 179: 171:device drivers 152:virtual memory 142: 141: 56: 54: 47: 26: 9: 6: 4: 3: 2: 1537: 1526: 1523: 1521: 1518: 1517: 1515: 1500: 1497: 1493: 1490: 1488: 1485: 1484: 1483: 1480: 1478: 1475: 1473: 1470: 1468: 1465: 1463: 1460: 1458: 1455: 1454: 1452: 1448: 1442: 1439: 1437: 1434: 1432: 1429: 1427: 1424: 1422: 1419: 1417: 1414: 1412: 1409: 1407: 1404: 1402: 1399: 1398: 1396: 1394: 1389: 1385: 1379: 1376: 1374: 1371: 1369: 1366: 1364: 1361: 1359: 1358:Memory paging 1356: 1354: 1351: 1349: 1346: 1345: 1343: 1340: 1335: 1331: 1321: 1318: 1316: 1313: 1311: 1308: 1306: 1303: 1302: 1300: 1298: 1292: 1286: 1283: 1281: 1278: 1276: 1273: 1271: 1268: 1266: 1263: 1261: 1258: 1256: 1253: 1251: 1248: 1245: 1241: 1237: 1234: 1233: 1231: 1227: 1224: 1222: 1218: 1208: 1205: 1203: 1200: 1198: 1197:Device driver 1195: 1194: 1192: 1188: 1182: 1179: 1177: 1174: 1172: 1169: 1167: 1164: 1162: 1159: 1157: 1154: 1152: 1149: 1147: 1144: 1143: 1141: 1139: 1138:Architectures 1135: 1132: 1130: 1126: 1120: 1117: 1115: 1112: 1110: 1107: 1105: 1102: 1100: 1097: 1095: 1092: 1090: 1087: 1085: 1082: 1080: 1077: 1075: 1072: 1071: 1069: 1065: 1059: 1056: 1054: 1051: 1049: 1046: 1044: 1041: 1039: 1036: 1034: 1031: 1029: 1026: 1025: 1023: 1019: 1015: 1008: 1003: 1001: 996: 994: 989: 988: 985: 978: 974: 971: 969: 966: 965: 945: 941: 935: 921:on 2001-12-15 920: 916: 910: 902: 898: 892: 878: 874: 873: 868: 862: 854: 848: 844: 830: 826: 820: 816: 806: 803: 801: 798: 796: 793: 791: 788: 786: 783: 782: 776: 774: 770: 766: 762: 761:address space 757: 755: 750: 748: 744: 740: 736: 732: 728: 713: 709: 705: 700: 697: 696: 691: 690: 685: 684: 679: 678: 673: 669: 665: 661: 660:device mapper 657: 653: 649: 645: 641: 636: 632: 629: 628:Virtual files 626: 623: 620: 617: 614: 611: 608: 607: 603: 599: 595: 588: 582: 576: 570: 564: 558: 552: 546: 540: 534: 528: 527: 519: 516:-compatible. 515: 511: 507: 503: 502: 497: 496: 491: 490: 485: 484: 478: 473: 467: 461: 455: 449: 443: 437: 436: 432: 431: 428: 426: 422: 418: 414: 410: 406: 402: 397: 394: 392: 390: 385: 384: 378: 375: 373: 371: 367: 363: 357: 356: 352: 350: 348: 344: 340: 336: 330: 329: 325: 323: 321: 317: 313: 307: 306: 302: 300: 297: 296: 293: 291: 287: 283: 279: 275: 271: 265: 262: 258: 255: 251: 245: 243: 239: 238:shared memory 235: 231: 227: 223: 219: 215: 210: 208: 204: 200: 196: 192: 188: 178: 176: 172: 168: 163: 161: 157: 153: 150:usually uses 149: 138: 135: 127: 116: 113: 109: 106: 102: 99: 95: 92: 88: 85: –  84: 80: 79:Find sources: 73: 69: 63: 62: 57:This article 55: 51: 46: 45: 40: 33: 19: 1393:file systems 1285:Time-sharing 1206: 948:. Retrieved 946:. 2001-06-01 943: 934: 923:. Retrieved 919:the original 909: 900: 891: 880:. Retrieved 869: 861: 847: 819: 758: 751: 726: 724: 693: 687: 681: 675: 604:-compatible 526:Linux kernel 524: 521:Kernel mode 499: 493: 487: 481: 433: 399: 395: 389:AMD Catalyst 387: 381: 376: 360: 353: 333: 326: 310: 303: 298: 268: 263: 254:kernel space 253: 249: 211: 199:input/output 190: 186: 184: 164: 155: 145: 130: 124:October 2012 121: 111: 104: 97: 90: 78: 66:Please help 61:verification 58: 18:Kernel space 1411:Device file 1401:Boot loader 1315:Round-robin 1240:Cooperative 1176:Rump kernel 1166:Multikernel 1156:Microkernel 1053:Usage share 872:Jargon File 773:Singularity 743:kernel mode 731:kernel mode 708:main memory 477:subroutines 305:init daemon 274:LibreOffice 203:file system 1514:Categories 1341:protection 1297:algorithms 1295:Scheduling 1244:Preemptive 1190:Components 1161:Monolithic 1028:Comparison 950:2016-08-14 925:2016-08-14 882:2016-08-14 839:References 765:references 702:Hardware ( 630:subsystem 624:subsystem 618:subsystem 612:subsystem 260:User mode 187:user space 94:newspapers 32:Null space 1431:Partition 1348:Bus error 1275:Real-time 1255:Interrupt 1181:Unikernel 1146:Exokernel 790:CPU modes 739:CPU modes 727:user mode 668:Netfilter 466:localtime 372:(Android) 234:debuggers 205:objects, 195:libraries 185:The term 1477:Live USB 1339:resource 1229:Concepts 1067:Variants 1048:Timeline 779:See also 714:, etc.) 689:AppArmor 377:Graphics 250:userland 191:userland 181:Overview 1472:Live CD 1426:Journal 1390:access, 1388:Storage 1265:Process 1171:vkernel 1038:History 1021:General 975:at the 677:SELinux 506:Android 425:GNUstep 366:Wayland 335:polkitd 320:systemd 282:Blender 214:process 209:, etc. 108:scholar 1280:Thread 1151:Hybrid 1129:Kernel 683:TOMOYO 539:splice 501:bionic 495:uClibc 460:memcpy 454:malloc 312:OpenRC 286:0 A.D. 110:  103:  96:  89:  81:  1482:Shell 1421:Inode 811:Notes 695:Smack 652:klibc 648:evdev 598:POSIX 581:close 569:write 563:ioctl 510:POSIX 483:glibc 448:execv 442:fopen 427:, ... 391:, ... 347:udevd 316:runit 292:, ... 115:JSTOR 101:books 1043:List 870:The 827:and 785:BIOS 769:JXOS 640:ALSA 587:exit 575:mmap 557:open 551:read 533:stat 489:musl 421:FLTK 417:SFML 383:Mesa 343:sshd 339:smbd 278:GIMP 270:bash 252:and 189:(or 87:news 1499:PXE 1487:CLI 1467:HAL 1457:API 1260:IPC 825:DOS 704:CPU 656:LVM 644:DRI 616:IPC 602:SUS 545:dup 514:SUS 413:SDL 409:EFL 401:GTK 362:X11 349:... 322:... 70:by 1516:: 1242:, 942:. 899:. 875:. 710:, 706:, 692:, 686:, 680:, 674:: 666:, 662:, 658:, 654:, 650:, 646:, 642:, 584:, 578:, 572:, 566:, 560:, 554:, 548:, 542:, 536:, 469:, 463:, 457:, 451:, 445:, 423:, 419:, 415:, 411:, 407:, 405:Qt 403:, 386:, 368:, 364:, 345:, 341:, 337:, 318:, 314:, 288:, 284:, 280:, 276:, 272:, 244:. 1336:, 1246:) 1238:( 1006:e 999:t 992:v 953:. 928:. 903:. 885:. 600:/ 512:/ 479:) 379:: 358:: 331:: 308:: 137:) 131:( 126:) 122:( 112:· 105:· 98:· 91:· 64:. 41:. 34:. 20:)

Index

Kernel space
Null space
Knowledge:User pages

verification
improve this article
adding citations to reliable sources
"User space and kernel space"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message
operating system
virtual memory
memory protection
operating system kernel
device drivers
application software
libraries
input/output
file system
application software
process
virtual memory
memory protection
privilege separation
Popek and Goldberg virtualization requirements
debuggers

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.