Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 | LINUX ALLOCATED DEVICES Maintained by H. Peter Anvin <hpa@zytor.com> Last revised: May 20, 1997 This list is the successor to Rick Miller's Linux Device List, which he stopped maintaining when he got busy with other things in 1993. It is a registry of allocated major device numbers, as well as the recommended /dev directory nodes for these devices. The latest version of this list is included with the Linux kernel sources in LaTeX and ASCII form. In case of discrepancy, the LaTeX version is authoritative. This document is included by reference into the Linux Filesystem Standard (FSSTND). The FSSTND is available via FTP from tsx-11.mit.edu in the directory /pub/linux/docs/linux-standards/fsstnd. To have a major number allocated, or a minor number in situations where that applies (e.g. busmice), please contact me with the appropriate device information. I *very* much appreciate if you send me a device description in the same format as the ones already in this file. Also, if you have additional information regarding any of the devices listed below, or if I have made a mistake, I would greatly appreciate a note. NOTE: When sending me mail, *please* include the word "device" in the subject so your mail won't accidentally get buried! Allocations marked (68k/Amiga) apply to Linux/68k on the Amiga platform only. Allocations marked (68k/Atari) apply to Linux/68k on the Atari platform only. This document is in the public domain. The author requests, however, that semantically altered versions are not distributed without permission of the author, assuming the author can be contacted without an unreasonable effort. In particular, please don't sent patches for this list to Linus, at least not without contacting me first. I do not have any information about these devices beyond what appears on this list. Any such information requests will be deleted without reply. 0 Unnamed devices (e.g. non-device mounts) 0 = reserved as null device number 1 char Memory devices 1 = /dev/mem Physical memory access 2 = /dev/kmem Kernel virtual memory access 3 = /dev/null Null device 4 = /dev/port I/O port access 5 = /dev/zero Null byte source 6 = /dev/core OBSOLETE - replaced by /proc/kcore 7 = /dev/full Returns ENOSPC on write 8 = /dev/random Nondeterministic random number gen. 9 = /dev/urandom Faster, less secure random number gen. block RAM disk 0 = /dev/ram0 First RAM disk ... 7 = /dev/ram7 Eighth RAM disk 250 = /dev/initrd Initial RAM disk Older kernels had /dev/ramdisk (1, 1) here. /dev/initrd refers to a RAM disk which was preloaded by the boot loader. 2 char Pseudo-TTY masters 0 = /dev/ptyp0 First PTY master 1 = /dev/ptyp1 Second PTY master ... 255 = /dev/ptyef 256th PTY master Pseudo-tty's are named as follows: * Masters are "pty", slaves are "tty"; * the fourth letter is one of pqrstuvwxyzabcde indicating the 1st through 16th series of 16 pseudo-ttys each, and * the fifth letter is one of 0123456789abcdef indicating the position within the series. block Floppy disks 0 = /dev/fd0 First floppy disk autodetect 1 = /dev/fd1 Second floppy disk autodetect 2 = /dev/fd2 Third floppy disk autodetect 3 = /dev/fd3 Fourth floppy disk autodetect To specify format, add to the autodetect device number: 0 = /dev/fd? Autodetect format 4 = /dev/fd?d360 5.25" 360K in a 360K drive(1) 20 = /dev/fd?h360 5.25" 360K in a 1200K drive(1) 48 = /dev/fd?h410 5.25" 410K in a 1200K drive 64 = /dev/fd?h420 5.25" 420K in a 1200K drive 24 = /dev/fd?h720 5.25" 720K in a 1200K drive 80 = /dev/fd?h880 5.25" 880K in a 1200K drive(1) 8 = /dev/fd?h1200 5.25" 1200K in a 1200K drive(1) 40 = /dev/fd?h1440 5.25" 1440K in a 1200K drive(1) 56 = /dev/fd?h1476 5.25" 1476K in a 1200K drive 72 = /dev/fd?h1494 5.25" 1494K in a 1200K drive 92 = /dev/fd?h1600 5.25" 1600K in a 1200K drive(1) 12 = /dev/fd?u360 3.5" 360K Double Density 120 = /dev/fd?u800 3.5" 800K Double Density(1) 52 = /dev/fd?u820 3.5" 820K Double Density(2) 68 = /dev/fd?u830 3.5" 830K Double Density 84 = /dev/fd?u1040 3.5" 1040K Double Density(1) 88 = /dev/fd?u1120 3.5" 1120K Double Density(1) 28 = /dev/fd?u1440 3.5" 1440K High Density(1) 124 = /dev/fd?u1600 3.5" 1600K High Density(1) 44 = /dev/fd?u1680 3.5" 1680K High Density(3) 60 = /dev/fd?u1722 3.5" 1722K High Density 76 = /dev/fd?u1743 3.5" 1743K High Density 96 = /dev/fd?u1760 3.5" 1760K High Density 116 = /dev/fd?u1840 3.5" 1840K High Density(3) 100 = /dev/fd?u1920 3.5" 1920K High Density(1) 32 = /dev/fd?u2880 3.5" 2880K Extra Density(1) 104 = /dev/fd?u3200 3.5" 3200K Extra Density 108 = /dev/fd?u3520 3.5" 3520K Extra Density 112 = /dev/fd?u3840 3.5" 3840K Extra Density(1) 36 = /dev/fd?CompaQ Compaq 2880K drive; obsolete? (1) Autodetectable format (2) Autodetectable format in a Double Density (720K) drive only (3) Autodetectable format in a High Density (1440K) drive only NOTE: The letter in the device name (d, q, h or u) signifies the type of drive: 5.25" Double Density (d), 5.25" Quad Density (q), 5.25" High Density (h) or 3.5" (any model, u). The use of the capital letters D, H and E for the 3.5" models have been deprecated, since the drive type is insignificant for these devices. 3 char Pseudo-TTY slaves 0 = /dev/ttyp0 First PTY slave 1 = /dev/ttyp1 Second PTY slave ... 256 = /dev/ttyef 256th PTY slave block First MFM, RLL and IDE hard disk/CD-ROM interface 0 = /dev/hda Master: whole disk (or CD-ROM) 64 = /dev/hdb Slave: whole disk (or CD-ROM) For partitions, add to the whole disk device number: 0 = /dev/hd? Whole disk 1 = /dev/hd?1 First partition 2 = /dev/hd?2 Second partition ... 63 = /dev/hd?63 63rd partition For Linux/i386, partitions 1-4 are the primary partitions, and 5 and above are logical partitions. Other versions of Linux use partitioning schemes appropriate to their respective architectures. 4 char TTY devices 0 = /dev/console Console device 1 = /dev/tty1 First virtual console ... 63 = /dev/tty63 63rd virtual console 64 = /dev/ttyS0 First serial port ... 127 = /dev/ttyS63 64th serial port 128 = /dev/ptyp0 First old pseudo-tty master ... 191 = /dev/ptysf 64th old pseudo-tty master 192 = /dev/ttyp0 First old pseudo-tty slave ... 255 = /dev/ttysf 64th old pseudo-tty slave For compatibility with previous versions of Linux, the first 64 PTYs are replicated under this device number. This use is deprecated with the release of Linux 2.0 and may be removed in a future version of Linux. To ensure proper operation, do not mix old and new PTY devices. 5 char Alternate TTY devices 0 = /dev/tty Current TTY device 64 = /dev/cua0 Callout device corresponding to ttyS0 ... 127 = /dev/cua63 Callout device corresponding to ttyS63 6 char Parallel printer devices 0 = /dev/lp0 First parallel printer (0x3bc) 1 = /dev/lp1 Second parallel printer (0x378) 2 = /dev/lp2 Third parallel printer (0x278) Not all computers have the 0x3bc parallel port; hence the "first" printer may be either /dev/lp0 or /dev/lp1. 7 char Virtual console capture devices 0 = /dev/vcs Current vc text contents 1 = /dev/vcs1 tty1 text contents ... 63 = /dev/vcs63 tty63 text contents 128 = /dev/vcsa Current vc text/attribute contents 129 = /dev/vcsa1 tty1 text/attribute contents ... 191 = /dev/vcsa63 tty63 text/attribute contents NOTE: These devices permit both read and write access. block Loopback devices 0 = /dev/loop0 First loopback device 1 = /dev/loop1 Second loopback device ... The loopback devices are used to mount filesystems not associated with block devices. The binding to the loopback devices is handled by mount(8) or losetup(8). 8 block SCSI disk devices 0 = /dev/sda First SCSI disk whole disk 16 = /dev/sdb Second SCSI disk whole disk 32 = /dev/sdc Third SCSI disk whole disk ... 240 = /dev/sdp Sixteenth SCSI disk whole disk Partitions are handled in the same way as for IDE disks (see major number 3) except that the limit on partitions is 15. 9 char SCSI tape devices 0 = /dev/st0 First SCSI tape, mode 0 1 = /dev/st1 Second SCSI tape, mode 0 ... 32 = /dev/st0l First SCSI tape, mode 1 33 = /dev/st1l Second SCSI tape, mode 1 ... 64 = /dev/st0m First SCSI tape, mode 2 65 = /dev/st1m Second SCSI tape, mode 2 ... 96 = /dev/st0a First SCSI tape, mode 3 97 = /dev/st1a Second SCSI tape, mode 3 ... 128 = /dev/nst0 First SCSI tape, mode 0, no rewind 129 = /dev/nst1 Second SCSI tape, mode 0, no rewind ... 160 = /dev/nst0l First SCSI tape, mode 1, no rewind 161 = /dev/nst1l Second SCSI tape, mode 1, no rewind ... 192 = /dev/nst0m First SCSI tape, mode 2, no rewind 193 = /dev/nst1m Second SCSI tape, mode 2, no rewind ... 224 = /dev/nst0a First SCSI tape, mode 3, no rewind 225 = /dev/nst1a Second SCSI tape, mode 3, no rewind ... "No rewind" refers to the omission of the default automatic rewind on device close. The MTREW or MTOFFL ioctl()'s can be used to rewind the tape regardless of the device used to access it. block Metadisk (RAID) devices 0 = /dev/md0 First metadisk group 1 = /dev/md1 Second metadisk group ... The metadisk driver is used to span a filesystem across multiple physical disks. 10 char Non-serial mice, misc features 0 = /dev/logibm Logitech bus mouse 1 = /dev/psaux PS/2-style mouse port 2 = /dev/inportbm Microsoft Inport bus mouse 3 = /dev/atibm ATI XL bus mouse 4 = /dev/jbm J-mouse 4 = /dev/amigamouse Amiga mouse (68k/Amiga) 5 = /dev/atarimouse Atari mouse 6 = /dev/sunmouse Sun mouse 7 = /dev/amigamouse1 Second Amiga mouse 8 = /dev/smouse Simple serial mouse driver 9 = /dev/pc110pad IBM PC-110 digitizer pad 128 = /dev/beep Fancy beep device 129 = /dev/modreq Kernel module load request 130 = /dev/watchdog Watchdog timer port 131 = /dev/temperature Machine internal temperature 132 = /dev/hwtrap Hardware fault trap 133 = /dev/exttrp External device trap 134 = /dev/apm_bios Advanced Power Management BIOS 135 = /dev/rtc Real Time Clock 136 = /dev/qcam0 QuickCam on lp0 137 = /dev/qcam1 QuickCam on lp1 138 = /dev/qcam2 QuickCam on lp2 139 = /dev/openprom SPARC OpenBoot PROM 140 = /dev/relay8 Berkshire Products Octal relay card 141 = /dev/relay16 Berkshire Products ISO-16 relay card 142 = /dev/msr x86 model-specific registers 143 = /dev/pciconf PCI configuration space 144 = /dev/nvram Non-volatile configuration RAM 11 char Raw keyboard device 0 = /dev/kbd Raw keyboard device The raw keyboard device is used on Linux/SPARC only. block SCSI CD-ROM devices 0 = /dev/sr0 First SCSI CD-ROM 1 = /dev/sr1 Second SCSI CD-ROM ... The prefix /dev/scd instead of /dev/sr has been used as well, and might make more sense. 12 char QIC-02 tape 2 = /dev/ntpqic11 QIC-11, no rewind-on-close 3 = /dev/tpqic11 QIC-11, rewind-on-close 4 = /dev/ntpqic24 QIC-24, no rewind-on-close 5 = /dev/tpqic24 QIC-24, rewind-on-close 6 = /dev/ntpqic120 QIC-120, no rewind-on-close 7 = /dev/tpqic120 QIC-120, rewind-on-close 8 = /dev/ntpqic150 QIC-150, no rewind-on-close 9 = /dev/tpqic150 QIC-150, rewind-on-close The device names specified are proposed -- if there are "standard" names for these devices, please let me know. block MSCDEX CD-ROM callback support 0 = /dev/dos_cd0 First MSCDEX CD-ROM 1 = /dev/dos_cd1 Second MSCDEX CD-ROM ... 13 char PC speaker 0 = /dev/pcmixer Emulates /dev/mixer 1 = /dev/pcsp Emulates /dev/dsp (8-bit) 4 = /dev/pcaudio Emulates /dev/audio 5 = /dev/pcsp16 Emulates /dev/dsp (16-bit) block 8-bit MFM/RLL/IDE controller 0 = /dev/xda First XT disk whole disk 64 = /dev/xdb Second XT disk whole disk Partitions are handled in the same way as IDE disks (see major number 3). 14 char Sound card 0 = /dev/mixer Mixer control 1 = /dev/sequencer Audio sequencer 2 = /dev/midi00 First MIDI port 3 = /dev/dsp Digital audio 4 = /dev/audio Sun-compatible digital audio 6 = /dev/sndstat Sound card status information 8 = /dev/sequencer2 Sequencer -- alternate device 16 = /dev/mixer1 Second soundcard mixer control 17 = /dev/patmgr0 Sequencer patch manager 18 = /dev/midi01 Second MIDI port 19 = /dev/dsp1 Second soundcard digital audio 20 = /dev/audio1 Second soundcard Sun digital audio 33 = /dev/patmgr1 Sequencer patch manager 34 = /dev/midi02 Third MIDI port 50 = /dev/midi03 Fourth MIDI port block BIOS harddrive callback support 0 = /dev/dos_hda First BIOS harddrive whole disk 64 = /dev/dos_hdb Second BIOS harddrive whole disk 128 = /dev/dos_hdc Third BIOS harddrive whole disk 192 = /dev/dos_hdd Fourth BIOS harddrive whole disk Partitions are handled in the same way as IDE disks (see major number 3). 15 char Joystick 0 = /dev/js0 First analog joystick 1 = /dev/js1 Second analog joystick ... 128 = /dev/djs0 First digital joystick 129 = /dev/djs1 Second digital joystick ... block Sony CDU-31A/CDU-33A CD-ROM 0 = /dev/sonycd Sony CDU-31a CD-ROM 16 char Non-SCSI scanners 0 = /dev/gs4500 Genius 4500 handheld scanner block GoldStar CD-ROM 0 = /dev/gscd GoldStar CD-ROM 17 char Chase serial card 0 = /dev/ttyH0 First Chase port 1 = /dev/ttyH1 Second Chase port ... block Optics Storage CD-ROM 0 = /dev/optcd Optics Storage CD-ROM 18 char Chase serial card - alternate devices 0 = /dev/cuh0 Callout device corresponding to ttyH0 1 = /dev/cuh1 Callout device corresponding to ttyH1 ... block Sanyo CD-ROM 0 = /dev/sjcd Sanyo CD-ROM 19 char Cyclades serial card 0 = /dev/ttyC0 First Cyclades port ... 31 = /dev/ttyC31 32nd Cyclades port block "Double" compressed disk 0 = /dev/double0 First compressed disk ... 7 = /dev/double7 Eighth compressed disk 128 = /dev/cdouble0 Mirror of first compressed disk ... 135 = /dev/cdouble7 Mirror of eighth compressed disk See the Double documentation for the meaning of the mirror devices. 20 char Cyclades serial card - alternate devices 0 = /dev/cub0 Callout device corresponding to ttyC0 ... 31 = /dev/cub31 Callout device corresponding to ttyC31 block Hitachi CD-ROM (under development) 0 = /dev/hitcd Hitachi CD-ROM 21 char Generic SCSI access 0 = /dev/sg0 First generic SCSI device 1 = /dev/sg1 Second generic SCSI device ... Most distributions name these /dev/sga, /dev/sgb...; this sets an unnecessary limit of 26 SCSI devices in the system and is counter to standard Linux device-naming practice. 22 char Digiboard serial card 0 = /dev/ttyD0 First Digiboard port 1 = /dev/ttyD1 Second Digiboard port ... block Second IDE hard disk/CD-ROM interface 0 = /dev/hdc Master: whole disk (or CD-ROM) 64 = /dev/hdd Slave: whole disk (or CD-ROM) Partitions are handled the same way as for the first interface (see major number 3). 23 char Digiboard serial card - alternate devices 0 = /dev/cud0 Callout device corresponding to ttyD0 1 = /dev/cud1 Callout device corresponding to ttyD1 ... block Mitsumi proprietary CD-ROM 0 = /dev/mcd Mitsumi CD-ROM 24 char Stallion serial card 0 = /dev/ttyE0 Stallion port 0 card 0 1 = /dev/ttyE1 Stallion port 1 card 0 ... 64 = /dev/ttyE64 Stallion port 0 card 1 65 = /dev/ttyE65 Stallion port 1 card 1 ... 128 = /dev/ttyE128 Stallion port 0 card 2 129 = /dev/ttyE129 Stallion port 1 card 2 ... 192 = /dev/ttyE192 Stallion port 0 card 3 193 = /dev/ttyE193 Stallion port 1 card 3 ... block Sony CDU-535 CD-ROM 0 = /dev/cdu535 Sony CDU-535 CD-ROM 25 char Stallion serial card - alternate devices 0 = /dev/cue0 Callout device corresponding to ttyE0 1 = /dev/cue1 Callout device corresponding to ttyE1 ... 64 = /dev/cue64 Callout device corresponding to ttyE64 65 = /dev/cue65 Callout device corresponding to ttyE65 ... 128 = /dev/cue128 Callout device corresponding to ttyE128 129 = /dev/cue129 Callout device corresponding to ttyE129 ... 192 = /dev/cue192 Callout device corresponding to ttyE192 193 = /dev/cue193 Callout device corresponding to ttyE193 ... block First Matsushita (Panasonic/SoundBlaster) CD-ROM 0 = /dev/sbpcd0 Panasonic CD-ROM controller 0 unit 0 1 = /dev/sbpcd1 Panasonic CD-ROM controller 0 unit 1 2 = /dev/sbpcd2 Panasonic CD-ROM controller 0 unit 2 3 = /dev/sbpcd3 Panasonic CD-ROM controller 0 unit 3 26 char Quanta WinVision frame grabber 0 = /dev/wvisfgrab Quanta WinVision frame grabber block Second Matsushita (Panasonic/SoundBlaster) CD-ROM 0 = /dev/sbpcd4 Panasonic CD-ROM controller 1 unit 0 1 = /dev/sbpcd5 Panasonic CD-ROM controller 1 unit 1 2 = /dev/sbpcd6 Panasonic CD-ROM controller 1 unit 2 3 = /dev/sbpcd7 Panasonic CD-ROM controller 1 unit 3 27 char QIC-117 tape 0 = /dev/rft0 Unit 0, rewind-on-close 1 = /dev/rft1 Unit 1, rewind-on-close 2 = /dev/rft2 Unit 2, rewind-on-close 3 = /dev/rft3 Unit 3, rewind-on-close 4 = /dev/nrft0 Unit 0, no rewind-on-close 5 = /dev/nrft1 Unit 1, no rewind-on-close 6 = /dev/nrft2 Unit 2, no rewind-on-close 7 = /dev/nrft3 Unit 3, no rewind-on-close block Third Matsushita (Panasonic/SoundBlaster) CD-ROM 0 = /dev/sbpcd8 Panasonic CD-ROM controller 2 unit 0 1 = /dev/sbpcd9 Panasonic CD-ROM controller 2 unit 1 2 = /dev/sbpcd10 Panasonic CD-ROM controller 2 unit 2 3 = /dev/sbpcd11 Panasonic CD-ROM controller 2 unit 3 28 char Stallion serial card - card programming 0 = /dev/staliomem0 First Stallion card I/O memory 1 = /dev/staliomem1 Second Stallion card I/O memory 2 = /dev/staliomem2 Third Stallion card I/O memory 3 = /dev/staliomem3 Fourth Stallion card I/O memory char Atari SLM ACSI laser printer (68k/Atari) 0 = /dev/slm0 First SLM laser printer 1 = /dev/slm1 Second SLM laser printer ... block Fourth Matsushita (Panasonic/SoundBlaster) CD-ROM 0 = /dev/sbpcd12 Panasonic CD-ROM controller 3 unit 0 1 = /dev/sbpcd13 Panasonic CD-ROM controller 3 unit 1 2 = /dev/sbpcd14 Panasonic CD-ROM controller 3 unit 2 3 = /dev/sbpcd15 Panasonic CD-ROM controller 3 unit 3 block ACSI disk (68k/Atari) 0 = /dev/ada First ACSI disk whole disk 16 = /dev/adb Second ACSI disk whole disk 32 = /dev/adc Third ACSI disk whole disk ... 240 = /dev/adp 16th ACSI disk whole disk Partitions are handled in the same way as for IDE disks (see major number 3) except that the limit on partitions is 15, like SCSI. 29 char Universal frame buffer 0 = /dev/fb0 First frame buffer 1 = /dev/fb0autodetect 24 = /dev/fb0user0 ... 31 = /dev/fb0user7 32 = /dev/fb1 Second frame buffer 33 = /dev/fb1autodetect 56 = /dev/fb1user0 ... 63 = /dev/fb1user7 The universal frame buffer device is currently only supported on Linux/68k and Linux/SPARC. The plain device accesses the frame buffer at current resolution (Linux/68k calls this device "current", e.g. /dev/fb0current); the "autodetect" one at bootup (default) resolution. Minor numbers 2-23 within each frame buffer assignment are used for specific device-dependent resolutions. There appears to be no standard naming for these devices. Finally, 2-31 within each device are reserved for user-selected modes, usually entered at boot time. Currently only Linux/68k uses the mode-specific devices. block Aztech/Orchid/Okano/Wearnes CD-ROM 0 = /dev/aztcd Aztech CD-ROM 30 char iBCS-2 compatibility devices 0 = /dev/socksys Socket access 1 = /dev/spx SVR3 local X interface 2 = /dev/inet/arp Network access 2 = /dev/inet/icmp Network access 2 = /dev/inet/ip Network access 2 = /dev/inet/udp Network access 2 = /dev/inet/tcp Network access iBCS-2 requires /dev/nfsd to be a link to /dev/socksys, and /dev/X0R to be a link to /dev/null. block Philips LMS CM-205 CD-ROM 0 = /dev/cm205cd Philips LMS CM-205 CD-ROM /dev/lmscd is an older name for this device. This driver does not work with the CM-205MS CD-ROM. 31 char MPU-401 MIDI 0 = /dev/mpu401data MPU-401 data port 1 = /dev/mpu401stat MPU-401 status port block ROM/flash memory card 0 = /dev/rom0 First ROM card (rw) ... 7 = /dev/rom7 Eighth ROM card (rw) 8 = /dev/rrom0 First ROM card (ro) ... 15 = /dev/rrom7 Eighth ROM card (ro) 16 = /dev/flash0 First flash memory card (rw) ... 23 = /dev/flash7 Eighth flash memory card (rw) 24 = /dev/rflash0 First flash memory card (ro) ... 31 = /dev/rflash7 Eighth flash memory card (ro) The read-write (rw) devices support back-caching written data in RAM, as well as writing to flash RAM devices. The read-only devices (ro) support reading only. 32 char Specialix serial card 0 = /dev/ttyX0 First Specialix port 1 = /dev/ttyX1 Second Specialix port ... block Philips LMS CM-206 CD-ROM 0 = /dev/cm206cd Philips LMS CM-206 CD-ROM 33 char Specialix serial card - alternate devices 0 = /dev/cux0 Callout device corresponding to ttyX0 1 = /dev/cux1 Callout device corresponding to ttyX1 ... block Third IDE hard disk/CD-ROM interface 0 = /dev/hde Master: whole disk (or CD-ROM) 64 = /dev/hdf Slave: whole disk (or CD-ROM) Partitions are handled the same way as for the first interface (see major number 3). 34 char Z8530 HDLC driver 0 = /dev/scc0 First Z8530, first port 1 = /dev/scc1 First Z8530, second port 2 = /dev/scc2 Second Z8530, first port 3 = /dev/scc3 Second Z8530, second port ... In a previous version these devices were named /dev/sc1 for /dev/scc0, /dev/sc2 for /dev/scc1, and so on. block Fourth IDE hard disk/CD-ROM interface 0 = /dev/hdg Master: whole disk (or CD-ROM) 64 = /dev/hdh Slave: whole disk (or CD-ROM) Partitions are handled the same way as for the first interface (see major number 3). 35 char tclmidi MIDI driver 0 = /dev/midi0 First MIDI port, kernel timed 1 = /dev/midi1 Second MIDI port, kernel timed 2 = /dev/midi2 Third MIDI port, kernel timed 3 = /dev/midi3 Fourth MIDI port, kernel timed 64 = /dev/rmidi0 First MIDI port, untimed 65 = /dev/rmidi1 Second MIDI port, untimed 66 = /dev/rmidi2 Third MIDI port, untimed 67 = /dev/rmidi3 Fourth MIDI port, untimed 128 = /dev/smpte0 First MIDI port, SMPTE timed 129 = /dev/smpte1 Second MIDI port, SMPTE timed 130 = /dev/smpte2 Third MIDI port, SMPTE timed 131 = /dev/smpte3 Fourth MIDI port, SMPTE timed 36 char Netlink support 0 = /dev/route Routing, device updates, kernel to user 1 = /dev/skip enSKIP security cache control block MCA ESDI hard disk 0 = /dev/eda First ESDI disk whole disk 64 = /dev/edb Second ESDI disk whole disk ... Partitions are handled in the same way as IDE disks (see major number 3). 37 char IDE tape 0 = /dev/ht0 First IDE tape 128 = /dev/nht0 First IDE tape, no rewind-on-close Currently, only one IDE tape drive is supported. block Zorro II ramdisk 0 = /dev/z2ram Zorro II ramdisk 38 char Myricom PCI Myrinet board 0 = /dev/mlanai0 First Myrinet board 1 = /dev/mlanai1 Second Myrinet board ... This device is used for status query, board control and "user level packet I/O." This board is also accessible as a standard networking "eth" device. block Reserved for Linux/AP+ 39 char ML-16P experimental I/O board 0 = /dev/ml16pa-a0 First card, first analog channel 1 = /dev/ml16pa-a1 First card, second analog channel ... 15 = /dev/ml16pa-a15 First card, 16th analog channel 16 = /dev/ml16pa-d First card, digital lines 17 = /dev/ml16pa-c0 First card, first counter/timer 18 = /dev/ml16pa-c1 First card, second counter/timer 19 = /dev/ml16pa-c2 First card, third counter/timer 32 = /dev/ml16pb-a0 Second card, first analog channel 33 = /dev/ml16pb-a1 Second card, second analog channel ... 47 = /dev/ml16pb-a15 Second card, 16th analog channel 48 = /dev/ml16pb-d Second card, digital lines 49 = /dev/ml16pb-c0 Second card, first counter/timer 50 = /dev/ml16pb-c1 Second card, second counter/timer 51 = /dev/ml16pb-c2 Second card, third counter/timer ... block Reserved for Linux/AP+ 40 char Matrox Meteor frame grabber 0 = /dev/mmetfgrab Matrox Meteor frame grabber block Syquest EZ135 parallel port removable drive 0 = /dev/eza Parallel EZ135 drive, whole disk Partitions are handled in the same way as IDE disks (see major number 3). 41 char Yet Another Micro Monitor 0 = /dev/yamm Yet Another Micro Monitor block MicroSolutions BackPack parallel port CD-ROM 0 = /dev/bpcd BackPack CD-ROM 42 Demo/sample use This number is intended for use in sample code, as well as a general "example" device number. It should never be used for a device driver that is being distributed; either obtain an official number or use the local/experimental range. The sudden addition or removal of a driver with this number should not cause ill effects to the system (bugs excepted.) 43 char isdn4linux virtual modem 0 = /dev/ttyI0 First virtual modem ... 63 = /dev/ttyI63 64th virtual modem block Network block devices 0 = /dev/nb0 First network block device 1 = /dev/nb1 Second network block device ... Network Block Device is somehow similar to loopback devices: If you read from it, it sends packet accross network asking server for data. If you write to it, it sends packet telling server to write. It could be used to mounting filesystems over the net, swapping over the net, implementing block device in userland etc. 44 char isdn4linux virtual modem - alternate devices 0 = /dev/cui0 Callout device corresponding to ttyI0 ... 63 = /dev/cui63 Callout device corresponding to ttyI63 45 char isdn4linux ISDN BRI driver 0 = /dev/isdn0 First virtual B channel raw data ... 63 = /dev/isdn63 64th virtual B channel raw data 64 = /dev/isdnctrl0 First channel control/debug ... 127 = /dev/isdnctrl63 64th channel control/debug 128 = /dev/ippp0 First SyncPPP device ... 191 = /dev/ippp63 64th SyncPPP device 255 = /dev/isdninfo ISDN monitor interface 46 char Comtrol Rocketport serial card 0 = /dev/ttyR0 First Rocketport port 1 = /dev/ttyR1 Second Rocketport port ... 47 char Comtrol Rocketport serial card - alternate devices 0 = /dev/cur0 Callout device corresponding to ttyR0 1 = /dev/cur1 Callout device corresponding to ttyR1 ... 48 char SDL RISCom serial card 0 = /dev/ttyL0 First RISCom port 1 = /dev/ttyL1 Second RISCom port ... 49 char SDL RISCom serial card - alternate devices 0 = /dev/cul0 Callout device corresponding to ttyL0 1 = /dev/cul1 Callout device corresponding to ttyL1 ... 50 char Reserved for GLINT 51 char Baycom radio modem 0 = /dev/bc0 First Baycom radio modem 1 = /dev/bc1 Second Baycom radio modem ... 52 char Spellcaster DataComm/BRI ISDN card 0 = /dev/dcbri0 First DataComm card 1 = /dev/dcbri1 Second DataComm card 2 = /dev/dcbri2 Third DataComm card 3 = /dev/dcbri3 Fourth DataComm card 53 char BDM interface for remote debugging MC683xx microcontrollers 0 = /dev/pd_bdm0 PD BDM interface on lp0 1 = /dev/pd_bdm1 PD BDM interface on lp1 2 = /dev/pd_bdm2 PD BDM interface on lp2 4 = /dev/icd_bdm0 ICD BDM interface on lp0 5 = /dev/icd_bdm1 ICD BDM interface on lp1 6 = /dev/icd_bdm2 ICD BDM interface on lp2 This device is used for the interfacing to the MC683xx microcontrollers via Background Debug Mode by use of a Parallel Port interface. PD is the Motorola Public Domain Interface and ICD is the commercial interface by P&E. 54 char Electrocardiognosis Holter serial card 0 = /dev/holter0 First Holter port 1 = /dev/holter1 Second Holter port 2 = /dev/holter2 Third Holter port A custom serial card used by Electrocardiognosis SRL <mseritan@ottonel.pub.ro> to transfer data from Holter 24-hour heart monitoring equipment. 55 char DSP56001 digital signal processor 0 = /dev/dsp56k First DSP56001 56 char Apple Desktop Bus 0 = /dev/adb ADB bus control Additional devices will be added to this number, all starting with /dev/adb. 57 char Hayes ESP serial card 0 = /dev/ttyP0 First ESP port 1 = /dev/ttyP1 Second ESP port ... 58 char Hayes ESP serial card - alternate devices 0 = /dev/cup0 Callout device corresponding to ttyP0 1 = /dev/cup1 Callout device corresponding to ttyP1 ... 59 char sf firewall package 0 = /dev/firewall Communication with sf kernel module 60-63 LOCAL/EXPERIMENTAL USE Allocated for local/experimental use. For devices not assigned official numbers, these ranges should be used, in order to avoid conflicting with future assignments. 64 char ENskip kernel encryption package 0 = /dev/enskip Communication with ENskip kernel module 65 char Sundance "plink" Transputer boards 0 = /dev/plink0 First plink device 1 = /dev/plink1 Second plink device 2 = /dev/plink2 Third plink device 3 = /dev/plink3 Fourth plink device 64 = /dev/rplink0 First plink device, raw 65 = /dev/rplink1 Second plink device, raw 66 = /dev/rplink2 Third plink device, raw 67 = /dev/rplink3 Fourth plink device, raw 128 = /dev/plink0d First plink device, debug 129 = /dev/plink1d Second plink device, debug 130 = /dev/plink2d Third plink device, debug 131 = /dev/plink3d Fourth plink device, debug 192 = /dev/rplink0d First plink device, raw, debug 193 = /dev/rplink1d Second plink device, raw, debug 194 = /dev/rplink2d Third plink device, raw, debug 195 = /dev/rplink3d Fourth plink device, raw, debug This is a commercial driver; contact James Howes <jth@prosig.demon.co.uk> for information. 66 char YARC PowerPC PCI coprocessor card 0 = /dev/yppcpci0 First YARC card 1 = /dev/yppcpci1 Second YARC card ... 67 char Coda network file system 0 = /dev/cfs0 Coda cache manager See http://www.coda.cs.cmu.edu for information about Coda. 68 char CAPI 2.0 interface 0 = /dev/capi20 Control device 1 = /dev/capi20.00 First CAPI 2.0 application 2 = /dev/capi20.01 Second CAPI 2.0 application ... 20 = /dev/capi20.19 19th CAPI 2.0 application ISDN CAPI 2.0 driver for use with CAPI 2.0 applications; currently supports the AVM B1 card. 69 char MA16 numeric accelerator card 0 = /dev/ma16 Board memory access 70 char SpellCaster Protocol Services Interface 0 = /dev/apscfg Configuration interface 1 = /dev/apsauth Authentication interface 2 = /dev/apslog Logging interface 3 = /dev/apsdbg Debugging interface 64 = /dev/apsisdn ISDN command interface 65 = /dev/apsasync Async command interface 128 = /dev/apsmon Monitor interface 71 char Computone IntelliPort II serial card 0 = /dev/ttyF0 IntelliPort II board 0, port 0 1 = /dev/ttyF1 IntelliPort II board 0, port 1 ... 63 = /dev/ttyF63 IntelliPort II board 0, port 63 64 = /dev/ttyF64 IntelliPort II board 1, port 0 65 = /dev/ttyF65 IntelliPort II board 1, port 1 ... 127 = /dev/ttyF127 IntelliPort II board 1, port 63 128 = /dev/ttyF128 IntelliPort II board 2, port 0 129 = /dev/ttyF129 IntelliPort II board 2, port 1 ... 191 = /dev/ttyF191 IntelliPort II board 2, port 63 192 = /dev/ttyF192 IntelliPort II board 3, port 0 193 = /dev/ttyF193 IntelliPort II board 3, port 1 ... 255 = /dev/ttyF255 IntelliPort II board 3, port 63 72 char Computone IntelliPort II serial card - alternate devices 0 = /dev/cuf0 Callout device corresponding to ttyF0 1 = /dev/cuf1 Callout device corresponding to ttyF1 ... 63 = /dev/cuf63 Callout device corresponding to ttyF63 64 = /dev/cuf64 Callout device corresponding to ttyF64 65 = /dev/cuf65 Callout device corresponding to ttyF65 ... 127 = /dev/cuf127 Callout device corresponding to ttyF127 128 = /dev/cuf128 Callout device corresponding to ttyF128 129 = /dev/cuf129 Callout device corresponding to ttyF129 ... 191 = /dev/cuf191 Callout device corresponding to ttyF191 192 = /dev/cuf192 Callout device corresponding to ttyF192 193 = /dev/cuf193 Callout device corresponding to ttyF193 ... 255 = /dev/cuf255 Callout device corresponding to ttyF255 73 char Computone IntelliPort II serial card - control devices 0 = /dev/ip2ipl0 Loadware device for board 0 1 = /dev/ip2stat0 Status device for board 0 4 = /dev/ip2ipl1 Loadware device for board 1 5 = /dev/ip2stat1 Status device for board 1 8 = /dev/ip2ipl2 Loadware device for board 2 9 = /dev/ip2stat2 Status device for board 2 12 = /dev/ip2ipl3 Loadware device for board 3 13 = /dev/ip2stat3 Status device for board 3 74 char SCI bridge 0 = /dev/SCI/0 SCI device 0 1 = /dev/SCI/1 SCI device 1 ... Currently for Dolphin Interconnect Solutions' PCI-SCI bridge. 75 char Specialix IO8+ serial card 0 = /dev/ttyW0 First IO8+ port, first card 1 = /dev/ttyW1 Second IO8+ port, first card ... 8 = /dev/ttyW8 First IO8+ port, second card ... 76 char Specialix IO8+ serial card - alternate devices 0 = /dev/cuw0 Callout device corresponding to ttyW0 1 = /dev/cuw1 Callout device corresponding to ttyW1 ... 8 = /dev/cuw8 Callout device corresponding to ttyW8 ... 77 char ComScire Quantum Noise Generator 0 = /dev/qng ComScire Quantum Noise Generator 78 char PAM Software's multimodem boards 0 = /dev/ttyM0 First PAM modem 1 = /dev/ttyM1 Second PAM modem ... 79 char PAM Software's multimodem boards - alternate devices 0 = /dev/cum0 Callout device corresponding to ttyM0 1 = /dev/cum1 Callout device corresponding to ttyM1 ... 80 char Photometrics AT200 CCD camera 0 = /dev/at200 Photometrics AT200 CCD camera 81 char Brooktree Bt848 frame grabbers 0 = /dev/bttv0 First Bt848 card 1 = /dev/bttv1 Second Bt848 card ... 16 = /dev/bttvc0 Control for first Bt848 card 17 = /dev/bttvc1 Control for second Bt848 card ... 32 = /dev/bttv-vbi0 VBI data of first Bt848 card 33 = /dev/bttv-vbi1 VBI data of second Bt848 card ... 82 char WiNRADiO communications receiver card 0 = /dev/winradio0 First WiNRADiO card 1 = /dev/winradio1 Second WiNRADiO card ... The driver and documentation may be obtained from http://www.proximity.com.au/~brian/winradio/ 83 char Teletext/videotext interfaces 0 = /dev/vtx Teletext decoder 16 = /dev/vttuner TV tuner on teletext interface Devices for the driver contained in the VideoteXt package. More information on http://home.pages.de/~videotext/ 84 char Ikon 1011[57] Versatec Greensheet Interface 0 = /dev/ihcp0 First Greensheet port 1 = /dev/ihcp1 Second Greensheet port 85-119 UNALLOCATED 120-127 LOCAL/EXPERIMENTAL USE 128-239 UNALLOCATED 240-254 LOCAL/EXPERIMENTAL USE 255 RESERVED **** ADDITIONAL /dev DIRECTORY ENTRIES This section details additional entries that should or may exist in the /dev directory. It is preferred that symbolic links use the same form (absolute or relative) as is indicated here. Links are classified as "hard" or "symbolic" depending on the preferred type of link; if possible, the indicated type of link should be used. Compulsory links These links should exist on all systems: /dev/fd /proc/self/fd symbolic File descriptors /dev/stdin fd/0 symbolic stdin file descriptor /dev/stdout fd/1 symbolic stdout file descriptor /dev/stderr fd/2 symbolic stderr file descriptor /dev/nfsd socksys symbolic Required by iBCS-2 /dev/X0R null symbolic Required by iBCS-2 Note: the last device is <letter X>-<digit 0>-<letter R>. Recommended links It is recommended that these links exist on all systems: /dev/core /proc/kcore symbolic Backward compatibility /dev/ramdisk ram0 symbolic Backward compatibility /dev/ftape rft0 symbolic Backward compatibility /dev/scd? sr? hard Alternate SCSI CD-ROM name Locally defined links The following links may be established locally to conform to the configuration of the system. This is merely a tabulation of existing practice, and does not constitute a recommendation. However, if they exist, they should have the following uses. /dev/mouse mouse port symbolic Current mouse device /dev/tape tape device symbolic Current tape device /dev/cdrom CD-ROM device symbolic Current CD-ROM device /dev/cdwriter CD-writer symbolic Current CD-writer device /dev/scanner scanner symbolic Current scanner device /dev/modem modem port symbolic Current dialout device /dev/root root device symbolic Current root filesystem /dev/swap swap device symbolic Current swap device /dev/modem should not be used for a modem which supports dialin as well as dialout, as it tends to cause lock file problems. If it exists, /dev/modem should point to the appropriate dialout (alternate) device. For SCSI devices, /dev/tape and /dev/cdrom should point to the ``cooked'' devices (/dev/st* and /dev/sr*, respectively), whereas /dev/cdwriter and /dev/scanner should point to the appropriate generic SCSI devices (/dev/sg*). /dev/mouse may point to a primary serial TTY device, a hardware mouse device, or a socket for a mouse driver program (e.g. /dev/gpmdata). Sockets and pipes Non-transient sockets and named pipes may exist in /dev. Common entries are: /dev/printer socket lpd local socket /dev/log socket syslog local socket /dev/gpmdata socket gpm mouse multiplexer **** TERMINAL DEVICES Terminal, or TTY devices are a special class of character devices. A terminal device is any device that could act as a controlling terminal for a session; this includes virtual consoles, serial ports, and pseudoterminals (PTYs). All terminal devices share a common set of capabilities known as line diciplines; these include the common terminal line dicipline as well as SLIP and PPP modes. All terminal devices are named similarly; this section explains the naming and use of the various types of TTYs. Note that the naming conventions include several historical warts; some of these are Linux-specific, some were inherited from other systems, and some reflect Linux outgrowing a borrowed convention. A hash mark (#) in a device name is used here to indicate a decimal number without leading zeroes. Virtual consoles and the console device Virtual consoles are full-screen terminal displays on the system video monitor. Virtual consoles are named /dev/tty#, with numbering starting at /dev/tty1; /dev/tty0 is the current virtual console. /dev/tty0 is the device that should be used to access the system video card on those architectures for which the frame buffer devices (/dev/fb*) do not exist (including the x86). Do not use /dev/console for this purpose. The console device, /dev/console, is the device to which system messages should be sent, and on which logins should be permitted in single-user mode. /dev/console should be a symbolic link to either /dev/tty0, a specific virtual console such as /dev/tty1, or to a serial port primary (tty*, not cu*) device, depending on the configuration of the system. Serial ports Serial ports are RS-232 serial ports and any device which simulates one, either in hardware (such as internal modems) or in software (such as the ISDN driver.) Under Linux, each serial ports has two device names, the primary or callin device and the alternate or callout one. Each kind of device is indicated by a different letter. For any letter X, the names of the devices are /dev/ttyX# and /dev/cux#, respectively; for historical reasons, /dev/ttyS# and /dev/ttyC# correspond to /dev/cua# and /dev/cub#. In the future, it should be expected that multiple letters will be used; all letters will be upper case for the "tty" device and lower case for the "cu" device. The names /dev/ttyQ# and /dev/cuq# are reserved for local use. The alternate devices provide for kernel-based exclusion and somewhat different defaults than the primary devices. Their main purpose is to allow the use of serial ports with programs with no inherent or broken support for serial ports. For programs with proper knowledge of serial port operation, their use should probably be avoided. Arbitration of serial ports is provided by the use of lock files with the names /var/lock/LCK..ttyX#. The contents of the lock file should be the PID of the locking process as an ASCII number. It is common practice to install links such as /dev/modem which point to serial ports. In order to ensure proper locking in the presence of these links, it is recommended that software chase symlinks and lock all possible names; additionally, it is recommended that a lock file be installed with the corresponding alternate device. In order to avoid deadlocks, it is recommended that the locks are acquired in the following order, and released in the reverse: 1. The symbolic link name, if any (/var/lock/LCK..modem) 2. The "tty" name (/var/lock/LCK..ttyS2) 3. The alternate device name (/var/lock/LCK..cua2) In the case of nested symbolic links, the lock files should be installed in the order the symlinks are resolved. Under no circumstances should an application hold a lock while waiting for another to be released. In addition, applications which attempt to create lock files for the corresponding alternate device names should take into account the possibility of being used on a non-serial port TTY, for which no alternate device would exist. Pseudoterminals (PTYs) Pseudoterminals, or PTYs, are used to create login sessions or provide other capabilities requiring a TTY line dicipline (including SLIP or PPP capability) to arbitrary data-generation processes. Each PTY has a master side, named /dev/pty[p-za-e][0-9a-f], and a slave side, named /dev/tty[p-za-e][0-9a-f]. The kernel arbitrates the use of PTYs by allowing each master side to be opened only once. Once the master side has been opened, the corresponding slave device can be used in the same manner as any TTY device. The master and slave devices are connected by the kernel, generating the equivalent of a bidirectional pipe with TTY capabilities. The entire namespace /dev/[pt]ty[p-za-o][0-9a-z] should be considered reserved for the future use of PTYs. Should more than 936 PTYs ever become a necessity, we will likely adopt a System V-like scheme by which PTYs use a subdirectory of /dev. |