Knowledge

TUX web server

Source đź“ť

1611: 179: 1623: 1597: 99:
While only being able to serve static web pages could be seen as a significant disadvantage, TUX has one significant advantage: it is able to serve pages more efficiently than traditional web servers by to running directly within the kernel and avoiding data copies. However, this also means that TUX
107:
programs to provide dynamic content. However, the CGI application needs to be modified to support Tux. Also, CGI suffers from significant performance limitations, so a CGI-heavy site would gain no performance advantage from using TUX. TUX can also redirect any request it cannot process to a
100:
does not generate dynamic content. Because it is running within the kernel, such dynamic content cannot take advantage of functions that the kernel provides to userspace programs, and would create tremendous security issues.
58:
that provide dynamic content. Regular userspace web servers do not need to be altered in any way for TUX to coordinate with them. However, userspace code has to use a new interface based on the
151:
control over the machine. Therefore, it is much safer to keep the HTTP daemon entirely within userspace, where a bug does not necessarily give an attacker total control.
143:
like TUX but without its limitations. Core kernel developers also argued that having an HTTP daemon within the kernel is dangerous. For example, a common bug such as a
295: 1173: 321: 462: 233: 1262: 1257: 1654: 355: 264: 387: 139:, which, with the right tuning parameters, allows userspace web servers to serve web pages at a speed very close to that of a 286: 135:. It served as a test bed (and motivator) for many features which were integrated separately. One major component was the 1615: 184: 123:
TUX has never been an integrated part of the official Linux kernel, although it was shipped in some distributions, notably
1649: 994: 762: 192: 709: 492: 452: 754: 1659: 1104: 1538: 432: 313: 1419: 467: 821: 136: 1520: 1334: 380: 55: 32: 1525: 1167: 1156: 659: 503: 132: 1088: 1073: 989: 777: 582: 104: 229: 1431: 1230: 866: 643: 620: 1576: 1553: 1548: 1383: 1349: 1339: 1211: 1033: 572: 442: 140: 1627: 1530: 373: 1560: 1162: 724: 422: 117: 89: 24: 8: 1356: 835: 694: 628: 254: 160:
TUX is dead. There has not been any new development on TUX for about 4 or 5 years, now.
1510: 1344: 930: 830: 767: 689: 684: 472: 109: 1481: 1129: 1099: 1094: 945: 600: 562: 116:. This allows TUX to handle both dynamic content and errors in a safer, faster, and 1235: 797: 518: 508: 417: 1471: 1139: 920: 359: 144: 43: 345: 1501: 1406: 1317: 1194: 1189: 1184: 1179: 962: 787: 782: 427: 47: 285:
Lever, Chuck; Eriksen, Marius Aamodt; Molloy, Stephen P. (November 16, 2000),
36: 1643: 1436: 1252: 1058: 1048: 807: 679: 557: 1601: 1322: 1240: 1134: 1078: 437: 396: 86: 82: 75: 1327: 1220: 802: 699: 294:, Center for Information Technology Integration, University of Michigan, 1414: 1376: 1281: 1269: 1199: 1109: 595: 498: 457: 197: 1389: 1276: 1245: 1114: 950: 739: 610: 567: 148: 128: 51: 1394: 1215: 1204: 1124: 1068: 1063: 1009: 957: 846: 772: 113: 1476: 1461: 1371: 1361: 1301: 1225: 1119: 1043: 984: 898: 861: 792: 734: 729: 633: 590: 259: 124: 1466: 1451: 1441: 1296: 1291: 1053: 1004: 977: 940: 910: 877: 856: 605: 552: 447: 365: 70:
The main differences between TUX and other webservers include:
350: 1286: 1149: 1083: 1038: 999: 967: 935: 893: 888: 851: 719: 714: 674: 669: 202: 28: 1366: 1144: 972: 903: 547: 65: 1596: 1446: 1424: 108:
traditional userspace web server daemon, for example
174: 74:TUX runs partly within a customized version of the 284: 1641: 255:"tux - interact with the TUX kernel subsystem" 1405: 381: 356:Running a High-Performance Web Server for BSD 224: 222: 220: 218: 92:from the page cache directly to the network. 278: 95:TUX is only able to serve static web pages. 1509: 388: 374: 54:modules, and regular userspace web server 215: 1616:Free and open-source software portal 1174:Earliest eligible virtual deadline first 232:. Saint Louis Linux Users Group. 2001. 66:Comparison with traditional web servers 1642: 410: 369: 311: 46:and coordinating between kernelspace 185:Free and open-source software portal 13: 147:within TUX could give an attacker 14: 1671: 339: 288:An analysis of the TUX web server 193:Comparison of web server software 154: 78:and partly as a userspace daemon. 1655:Third-party Linux kernel modules 1622: 1621: 1609: 1595: 463:Supported computer architectures 395: 318:listman.redhat.com Mailing Lists 177: 493:The Linux Programming Interface 351:kHTTPd - Linux HTTP Accelerator 324:from the original on 2023-08-06 301:from the original on 2024-03-24 267:from the original on 2023-08-06 236:from the original on 2023-08-06 305: 247: 1: 208: 165:Ryan Lynch, TUX installation 103:TUX is capable of launching 35:(GPL). It was maintained by 7: 230:"TUX 2.0: Reference Manual" 170: 137:Native POSIX Thread Library 10: 1676: 1335:High-performance computing 1157:Process and I/O schedulers 362: (archived 2018-03-09) 312:Lynch, Ryan (2009-09-18). 42:It was limited to serving 33:GNU General Public License 1589: 1569: 1500: 1310: 1168:Completely Fair Scheduler 1026: 919: 829: 820: 753: 658: 651: 642: 619: 581: 540: 533: 481: 433:Tanenbaum–Torvalds debate 403: 1650:Free web server software 1089:Kernel same-page merging 1432:OS-level virtualization 1577:List of Linux adopters 519:Linux User Group (LUG) 168: 141:kernelspace web server 1660:Linux kernel features 158: 1163:Brain Fuck Scheduler 423:Linux Mark Institute 25:in-kernel web server 1357:Real-time computing 629:Linux Standard Base 31:licensed under the 23:is an unmaintained 1345:Compute Node Linux 931:C standard library 314:"TUX installation" 1637: 1636: 1585: 1584: 1496: 1495: 1492: 1491: 1130:Network scheduler 1022: 1021: 1018: 1017: 816: 815: 563:Linux kernel oops 529: 528: 509:Linux conferences 120:-correct manner. 1667: 1625: 1624: 1614: 1613: 1612: 1602:Linux portal 1600: 1599: 1507: 1506: 1403: 1402: 1212:Security Modules 827: 826: 656: 655: 649: 648: 538: 537: 418:Linux Foundation 408: 407: 390: 383: 376: 367: 366: 333: 332: 330: 329: 309: 303: 302: 300: 293: 282: 276: 275: 273: 272: 251: 245: 244: 242: 241: 226: 187: 182: 181: 180: 166: 61: 44:static web pages 1675: 1674: 1670: 1669: 1668: 1666: 1665: 1664: 1640: 1639: 1638: 1633: 1610: 1608: 1594: 1581: 1565: 1512: 1488: 1472:User-mode Linux 1401: 1306: 1014: 922: 915: 834: 812: 749: 661: 638: 615: 577: 525: 477: 468:Version history 399: 394: 360:Wayback Machine 342: 337: 336: 327: 325: 310: 306: 298: 291: 283: 279: 270: 268: 253: 252: 248: 239: 237: 228: 227: 216: 211: 183: 178: 176: 173: 167: 164: 157: 145:buffer overflow 81:With a capable 68: 59: 17: 12: 11: 5: 1673: 1663: 1662: 1657: 1652: 1635: 1634: 1632: 1631: 1619: 1605: 1590: 1587: 1586: 1583: 1582: 1580: 1579: 1573: 1571: 1567: 1566: 1564: 1563: 1558: 1557: 1556: 1551: 1543: 1542: 1541: 1533: 1528: 1523: 1517: 1515: 1504: 1498: 1497: 1494: 1493: 1490: 1489: 1487: 1486: 1485: 1484: 1479: 1474: 1469: 1464: 1456: 1455: 1454: 1449: 1444: 1439: 1429: 1428: 1427: 1422: 1411: 1409: 1407:Virtualization 1400: 1399: 1398: 1397: 1392: 1381: 1380: 1379: 1374: 1369: 1364: 1354: 1353: 1352: 1347: 1342: 1332: 1331: 1330: 1325: 1314: 1312: 1308: 1307: 1305: 1304: 1299: 1294: 1289: 1284: 1279: 1273: 1272: 1267: 1266: 1265: 1260: 1253:Device drivers 1249: 1248: 1243: 1238: 1233: 1228: 1223: 1218: 1208: 1207: 1202: 1197: 1195:SCHED_DEADLINE 1192: 1190:O(1) scheduler 1187: 1185:O(n) scheduler 1182: 1180:Noop scheduler 1177: 1171: 1165: 1160: 1153: 1152: 1147: 1142: 1137: 1132: 1127: 1122: 1117: 1112: 1107: 1102: 1097: 1092: 1086: 1081: 1076: 1071: 1066: 1061: 1056: 1051: 1046: 1041: 1036: 1034:Kernel modules 1030: 1028: 1024: 1023: 1020: 1019: 1016: 1015: 1013: 1012: 1007: 1002: 997: 992: 987: 982: 981: 980: 975: 970: 965: 960: 955: 954: 953: 943: 938: 927: 925: 917: 916: 914: 913: 908: 907: 906: 896: 891: 886: 883: 880: 875: 872: 869: 864: 859: 854: 849: 844: 840: 838: 824: 818: 817: 814: 813: 811: 810: 805: 800: 795: 790: 788:Memory barrier 785: 780: 775: 770: 765: 759: 757: 751: 750: 748: 747: 746: 745: 742: 737: 732: 727: 722: 717: 707: 706: 705: 702: 697: 692: 687: 682: 677: 666: 664: 653: 646: 640: 639: 637: 636: 631: 625: 623: 617: 616: 614: 613: 608: 603: 598: 593: 587: 585: 579: 578: 576: 575: 570: 565: 560: 555: 550: 544: 542: 535: 531: 530: 527: 526: 524: 523: 522: 521: 513: 512: 511: 506: 501: 496: 485: 483: 479: 478: 476: 475: 470: 465: 460: 455: 450: 445: 440: 435: 430: 425: 420: 414: 412: 405: 401: 400: 393: 392: 385: 378: 370: 364: 363: 353: 348: 341: 340:External links 338: 335: 334: 304: 277: 246: 213: 212: 210: 207: 206: 205: 200: 195: 189: 188: 172: 169: 162: 156: 155:Project status 153: 97: 96: 93: 87:scatter-gather 85:, TUX enables 79: 67: 64: 21:TUX web server 15: 9: 6: 4: 3: 2: 1672: 1661: 1658: 1656: 1653: 1651: 1648: 1647: 1645: 1630: 1629: 1620: 1618: 1617: 1606: 1604: 1603: 1598: 1592: 1591: 1588: 1578: 1575: 1574: 1572: 1568: 1562: 1559: 1555: 1552: 1550: 1547: 1546: 1544: 1540: 1537: 1536: 1535:Thin client: 1534: 1532: 1529: 1527: 1524: 1522: 1519: 1518: 1516: 1514: 1508: 1505: 1503: 1499: 1483: 1480: 1478: 1475: 1473: 1470: 1468: 1465: 1463: 1460: 1459: 1457: 1453: 1450: 1448: 1445: 1443: 1440: 1438: 1437:Linux-VServer 1435: 1434: 1433: 1430: 1426: 1423: 1421: 1418: 1417: 1416: 1413: 1412: 1410: 1408: 1404: 1396: 1393: 1391: 1388: 1387: 1385: 1382: 1378: 1375: 1373: 1370: 1368: 1365: 1363: 1360: 1359: 1358: 1355: 1351: 1348: 1346: 1343: 1341: 1338: 1337: 1336: 1333: 1329: 1326: 1324: 1321: 1320: 1319: 1316: 1315: 1313: 1309: 1303: 1300: 1298: 1295: 1293: 1290: 1288: 1285: 1283: 1280: 1278: 1275: 1274: 1271: 1268: 1264: 1261: 1259: 1256: 1255: 1254: 1251: 1250: 1247: 1244: 1242: 1239: 1237: 1234: 1232: 1229: 1227: 1224: 1222: 1219: 1217: 1213: 1210: 1209: 1206: 1203: 1201: 1198: 1196: 1193: 1191: 1188: 1186: 1183: 1181: 1178: 1175: 1172: 1169: 1166: 1164: 1161: 1158: 1155: 1154: 1151: 1148: 1146: 1143: 1141: 1138: 1136: 1133: 1131: 1128: 1126: 1123: 1121: 1118: 1116: 1113: 1111: 1108: 1106: 1103: 1101: 1098: 1096: 1093: 1090: 1087: 1085: 1082: 1080: 1077: 1075: 1072: 1070: 1067: 1065: 1062: 1060: 1059:Device mapper 1057: 1055: 1052: 1050: 1047: 1045: 1042: 1040: 1037: 1035: 1032: 1031: 1029: 1025: 1011: 1008: 1006: 1003: 1001: 998: 996: 993: 991: 988: 986: 983: 979: 976: 974: 971: 969: 966: 964: 961: 959: 956: 952: 949: 948: 947: 944: 942: 939: 937: 934: 933: 932: 929: 928: 926: 924: 918: 912: 909: 905: 902: 901: 900: 897: 895: 892: 890: 887: 884: 881: 879: 876: 873: 870: 868: 865: 863: 860: 858: 855: 853: 850: 848: 845: 842: 841: 839: 837: 832: 828: 825: 823: 819: 809: 806: 804: 801: 799: 796: 794: 791: 789: 786: 784: 781: 779: 776: 774: 771: 769: 766: 764: 761: 760: 758: 756: 752: 743: 741: 738: 736: 733: 731: 728: 726: 723: 721: 718: 716: 713: 712: 711: 708: 703: 701: 698: 696: 693: 691: 688: 686: 683: 681: 678: 676: 673: 672: 671: 668: 667: 665: 663: 657: 654: 650: 647: 645: 641: 635: 632: 630: 627: 626: 624: 622: 618: 612: 609: 607: 604: 602: 599: 597: 594: 592: 589: 588: 586: 584: 580: 574: 571: 569: 566: 564: 561: 559: 556: 554: 551: 549: 546: 545: 543: 539: 536: 532: 520: 517: 516: 514: 510: 507: 505: 502: 500: 497: 495: 494: 490: 489: 487: 486: 484: 480: 474: 471: 469: 466: 464: 461: 459: 456: 454: 451: 449: 446: 444: 441: 439: 436: 434: 431: 429: 426: 424: 421: 419: 416: 415: 413: 409: 406: 402: 398: 391: 386: 384: 379: 377: 372: 371: 368: 361: 357: 354: 352: 349: 347: 346:TUX downloads 344: 343: 323: 319: 315: 308: 297: 290: 289: 281: 266: 262: 261: 256: 250: 235: 231: 225: 223: 221: 219: 214: 204: 201: 199: 196: 194: 191: 190: 186: 175: 161: 152: 150: 146: 142: 138: 134: 130: 126: 121: 119: 115: 111: 106: 101: 94: 91: 88: 84: 80: 77: 73: 72: 71: 63: 62:system call. 57: 53: 49: 45: 40: 38: 34: 30: 26: 22: 1626: 1607: 1593: 1323:Linux kernel 1241:Tomoyo Linux 836:File systems 491: 443:SCO disputes 404:Organization 397:Linux kernel 326:. Retrieved 317: 307: 287: 280: 269:. Retrieved 258: 249: 238:. Retrieved 159: 122: 102: 98: 83:network card 76:Linux kernel 69: 41: 20: 18: 1328:Linux-libre 1221:Exec Shield 1100:Framebuffer 803:Video4Linux 660:System Call 488:Developers 428:Linus's law 37:Ingo Molnár 1644:Categories 1415:Hypervisor 1377:PREEMPT_RT 1282:KernelCare 1270:Raw device 1200:SCHED_FIFO 1110:KMS driver 1027:Components 882:securityfs 768:Crypto API 710:Linux-only 596:System.map 499:kernel.org 458:menuconfig 453:GNU GPL v2 328:2023-08-06 271:2023-08-06 240:2023-08-06 209:References 198:Web server 16:Web server 1554:LYME-LYCE 1277:initramfs 1246:Linux PAM 1115:Netfilter 985:libcgroup 951:libhybris 923:libraries 871:hugetlbfs 822:Userspace 755:In-kernel 740:readahead 662:Interface 611:initramfs 568:SystemTap 541:Debugging 534:Technical 473:Criticism 149:superuser 52:userspace 1628:Category 1570:Adopters 1545:Server: 1526:Embedded 1502:Adoption 1395:PSXLinux 1318:Mainline 1311:Variants 1263:graphics 1216:AppArmor 1205:SCHED_RR 1125:nftables 1069:dm-crypt 1064:dm-cache 1010:liburing 1000:libevdev 958:dietlibc 847:configfs 773:io uring 322:Archived 296:archived 265:Archived 234:Archived 171:See also 163:—  114:lighttpd 1561:Devices 1521:Desktop 1482:coLinux 1477:MkLinux 1462:L4Linux 1390:ÎĽClinux 1372:Xenomai 1362:RTLinux 1302:Ksplice 1231:SELinux 1226:seccomp 1176:(EEVDF) 1120:Netlink 1049:Console 1044:cgroups 995:libalsa 921:Wrapper 899:systemd 862:debugfs 831:Daemons 793:New API 735:inotify 730:dnotify 634:x32 ABI 591:vmlinux 583:Startup 482:Support 358:at the 260:ibiblio 125:Red Hat 56:daemons 48:modules 1531:Gaming 1513:of use 1467:ELinOS 1458:Other 1452:OpenVZ 1442:Lguest 1386:-less 1297:kpatch 1292:kGraft 1258:802.11 1054:bcache 1005:libusb 990:libdrm 978:Newlib 963:EGLIBC 946:Bionic 941:uClibc 911:Kmscon 885:sockfs 878:procfs 874:pipefs 857:devpts 783:kernfs 725:splice 680:select 652:Kernel 606:initrd 601:dracut 553:ftrace 515:Users 448:Linaro 411:Kernel 133:Fedora 110:Apache 60:tux(2) 1511:Range 1350:SLURM 1287:kexec 1236:Smack 1170:(CFS) 1150:zswap 1091:(KSM) 1084:evdev 1039:BlueZ 968:klibc 936:glibc 894:tmpfs 889:sysfs 852:devfs 843:bpffs 720:epoll 715:futex 695:close 675:ioctl 670:POSIX 558:kdump 299:(PDF) 292:(PDF) 203:Httpd 29:Linux 1549:LAMP 1539:LTSP 1367:RTAI 1145:zram 1140:SLUB 1135:perf 1079:EDAC 973:musl 904:udev 867:FUSE 763:ALSA 700:sync 690:read 685:open 644:APIs 621:ABIs 548:CRIU 504:LKML 131:and 129:SuSE 27:for 19:The 1447:LXC 1425:Xen 1420:KVM 1384:MMU 1340:INK 1105:LVM 1095:LIO 1074:DRM 808:IIO 798:RCU 778:DRM 573:BPF 438:Tux 118:RFC 112:or 105:CGI 90:DMA 1646:: 1214:: 320:. 316:. 263:. 257:. 217:^ 127:, 50:, 39:. 1159:: 833:, 744:… 704:… 389:e 382:t 375:v 331:. 274:. 243:.

Index

in-kernel web server
Linux
GNU General Public License
Ingo Molnár
static web pages
modules
userspace
daemons
Linux kernel
network card
scatter-gather
DMA
CGI
Apache
lighttpd
RFC
Red Hat
SuSE
Fedora
Native POSIX Thread Library
kernelspace web server
buffer overflow
superuser
Free and open-source software portal
Comparison of web server software
Web server
Httpd


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

↑