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:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.