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 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7616 7617 7618 7619 7620 7621 7622 7623 7624 7625 7626 7627 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 7868 7869 7870 7871 7872 7873 7874 7875 7876 7877 7878 7879 7880 7881 7882 7883 7884 7885 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7903 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7933 7934 7935 7936 7937 7938 7939 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7999 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8053 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 8101 8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117 8118 8119 8120 8121 8122 8123 8124 8125 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8143 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8173 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8239 8240 8241 8242 8243 8244 8245 8246 8247 8248 8249 8250 8251 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 8262 8263 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8293 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8359 8360 8361 8362 8363 8364 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8479 8480 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8840 8841 8842 8843 8844 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9080 9081 9082 9083 9084 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9224 9225 9226 9227 9228 9229 9230 9231 9232 9233 9234 9235 9236 9237 9238 9239 9240 9241 9242 9243 9244 9245 9246 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9284 9285 9286 9287 9288 9289 9290 9291 9292 9293 9294 9295 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359 9360 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 9397 9398 9399 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9511 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9571 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582 9583 9584 9585 9586 9587 9588 9589 9590 9591 9592 9593 9594 9595 9596 9597 9598 9599 9600 9601 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 9619 9620 9621 9622 9623 9624 9625 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9637 9638 9639 9640 9641 9642 9643 9644 9645 9646 9647 9648 9649 9650 9651 9652 9653 9654 9655 9656 9657 9658 9659 9660 9661 9662 9663 9664 9665 9666 9667 9668 9669 9670 9671 9672 9673 9674 9675 9676 9677 9678 9679 9680 9681 9682 9683 9684 9685 9686 9687 9688 9689 9690 9691 9692 9693 9694 9695 9696 9697 9698 9699 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 9715 9716 9717 9718 9719 9720 9721 9722 9723 9724 9725 9726 9727 9728 9729 9730 9731 9732 9733 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 9745 9746 9747 9748 9749 9750 9751 9752 9753 9754 9755 9756 9757 9758 9759 9760 9761 9762 9763 9764 9765 9766 9767 9768 9769 9770 9771 9772 9773 9774 9775 9776 9777 9778 9779 9780 9781 9782 9783 9784 9785 9786 9787 9788 9789 9790 9791 9792 9793 9794 9795 9796 9797 9798 9799 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 9810 9811 9812 9813 9814 9815 9816 9817 9818 9819 9820 9821 9822 9823 9824 9825 9826 9827 9828 9829 9830 9831 9832 9833 9834 9835 9836 9837 9838 9839 9840 9841 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 9852 9853 9854 9855 9856 9857 9858 9859 9860 9861 9862 9863 9864 9865 9866 9867 9868 9869 9870 9871 9872 9873 9874 9875 9876 9877 9878 9879 9880 9881 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 9901 9902 9903 9904 9905 9906 9907 9908 9909 9910 9911 9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9961 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 10011 10012 10013 10014 10015 10016 10017 10018 10019 10020 10021 10022 10023 10024 10025 10026 10027 10028 10029 10030 10031 10032 10033 10034 10035 10036 10037 10038 10039 10040 10041 10042 10043 10044 10045 10046 10047 10048 10049 10050 10051 10052 10053 10054 10055 10056 10057 10058 10059 10060 10061 10062 10063 10064 10065 10066 10067 10068 10069 10070 10071 10072 10073 10074 10075 10076 10077 10078 10079 10080 10081 10082 10083 10084 10085 10086 10087 10088 10089 10090 10091 10092 10093 10094 10095 10096 10097 10098 10099 10100 10101 10102 10103 10104 10105 10106 10107 10108 10109 10110 10111 10112 10113 10114 10115 10116 10117 10118 10119 10120 10121 10122 10123 10124 10125 10126 10127 10128 10129 10130 10131 10132 10133 10134 10135 10136 10137 10138 10139 10140 10141 10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 10153 10154 10155 10156 10157 10158 10159 10160 10161 10162 10163 10164 10165 10166 10167 10168 10169 10170 10171 10172 10173 10174 10175 10176 10177 10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 10191 10192 10193 10194 10195 10196 10197 10198 10199 10200 10201 10202 10203 10204 10205 10206 10207 10208 10209 10210 10211 10212 10213 10214 10215 10216 10217 10218 10219 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10231 10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 10243 10244 10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 10255 10256 10257 10258 10259 10260 10261 10262 10263 10264 10265 10266 10267 10268 10269 10270 10271 10272 10273 10274 10275 10276 10277 10278 10279 10280 10281 10282 10283 10284 10285 10286 10287 10288 10289 10290 10291 10292 10293 10294 10295 10296 10297 10298 10299 10300 10301 10302 10303 10304 10305 10306 10307 10308 10309 10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10321 10322 10323 10324 10325 10326 10327 10328 10329 10330 10331 10332 10333 10334 10335 10336 10337 10338 10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10351 10352 10353 10354 10355 10356 10357 10358 10359 10360 10361 10362 10363 10364 10365 10366 10367 10368 10369 10370 10371 10372 10373 10374 10375 10376 10377 10378 10379 10380 10381 10382 10383 10384 10385 10386 10387 10388 10389 10390 10391 10392 10393 10394 10395 10396 10397 10398 10399 10400 10401 10402 10403 10404 10405 10406 10407 10408 10409 10410 10411 10412 10413 10414 10415 10416 10417 10418 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10477 10478 10479 10480 10481 10482 10483 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529 10530 10531 10532 10533 10534 10535 10536 10537
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE> Linux Gazette Table of Contents LG #45</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#0000AF"
ALINK="#FF0000" >
<center>
<A HREF="http://www.linuxgazette.com/">
<H1><IMG SRC="../gx/newlogo.jpg" ALT="Linux Gazette" border="0"></H1></A>
<H4>September 1999, Issue 45 Published by <I>Linux Journal</I></H4>
</center>
<!--=================================================================-->
<table>
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif" ALT="indent" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
<tr><td>
<table>
<tr>
<td><H1><font color="#BB0000">Visit Our Sponsors:</font></H1></td></tr>
<tr>
<td><A HREF="http://www.linuxjournal.com/"><img src=../gx/ljtop.gif alt="Linux Journal" border=0></A></td></tr>
<tr>
<td><A HREF="http://www.infomagic.com/"><img src=../gx/infologo.gif alt="InfoMagic" border=0></A></td></tr>
<tr> <td>
<A HREF="http://www.suse.com/"><img vspace="10" src=../gx/suse.jpg alt="SuSE" border=0></A></td></tr>
<tr> <td>
<A HREF="http://www.redhat.com/"><img vspace="10" src=../gx/redhat.gif alt="Red Hat" border=0></A></td></tr>
<tr>
<td><A HREF="http://www.LinuxMall.com/"><img vspace="10" src=../gx/linuxmall.gif alt="LinuxMall" border=0></A></td></tr>
<tr>
<td><A HREF="http://www.cyclades.com/"><img vspace="10" src=../gx/cyclades.gif alt="cyclades" border=0></A></td> </tr>
</tr>
</table>
</td>
<!--==================================================================-->
<TD ROWSPAN="3" WIDTH="2" BGCOLOR="#000000" NOSAVE><IMG
SRC="../gx/hammel/cleardot.gif" ALT="indent" HSPACE=1 HEIGHT=1 WIDTH=1></TD>
<td VALIGN=top>
<H1><font color="#BB0000">Table of Contents:</font></H1>
<UL>
<LI><A HREF="../lg_frontpage.html">The Front Page</A>
<LI><A HREF="../lg_faq.html">The <I>Linux Gazette</I> FAQ</A>
<STRONG><FONT COLOR=RED>New feature!</FONT></STRONG>
<LI><A HREF="lg_mail45.html">The MailBag</A>
<ul>
<li><a HREF="lg_mail45.html#help">Help Wanted & Article Ideas</a>
<li><a HREF="lg_mail45.html#gen">General Mail</a>
</ul>
<LI><A HREF="lg_bytes45.html">News Bytes</A>
<ul>
<li><a HREF="lg_bytes45.html#general">News in General</a>
<li><a HREF="lg_bytes45.html#software">Software Announcements</a>
</ul>
<LI><A HREF="lg_answer45.html">The Answer Guy</A>, by James T. Dennis
<LI><A HREF="lg_tips45.html">More 2 Cent Tips</A>
<LI><A HREF="bennet.html">Living La Vida Linux</a>, by Bill Bennet
<LI><A HREF="gibbs/Linux_java.html">Setting Up A Java Development Enviroment For Linux</a>, by Chris Gibbs
<LI><A HREF="nielsen.html">Stripping and Mirroring RAID under RedHat 6.0</a>, by Mark Nielsen
<LI><A HREF="orr.html">Linux Humor</a>, by Mike Orr
<LI><A HREF="pollman/mail.html">Mail for the Home Network</a>, by JC Pollman and
Bill Mote<BR>
<LI><A HREF="stumpel.html">Experiments with SMTP</a>, by Jan Stumpel
<LI><A HREF="twining.html">Linux is Better Here</a>, by Trenton G. Twining
<LI><A HREF="ward/ward.html">Sharing a Linux server under X in the classroom</a>, by Alan Ward
<LI><A HREF="lg_backpage45.html">The Back Page</A>
<ul>
<li><a HREF="lg_backpage45.html#authors">About This Month's Authors</a>
<li><a HREF="lg_backpage45.html#notlinux">Not Linux</a>
</UL>
</UL>
<P> There is no <EM>Graphics Muse</EM> this month. The column will return
next month.
</td>
</tr>
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif" ALT="indent" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
</table>
<!--=============================================================-->
<P>
<table>
<tr><td>
<A HREF="issue45.txt.gz">TWDT 1 (gzipped text file)</A><BR>
<A HREF="issue45.html">TWDT 2 (HTML file)</A><BR>
are files containing the entire issue: one in text format, one in HTML.
They are provided
strictly as a way to save the contents as one file for later printing in
the format of your choice;
there is no guarantee of working links in the HTML version.
</td></tr>
<!--==================================================================-->
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif" ALT="indent" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
<tr><td>
<center>
<I>Linux Gazette</I><img src="../gx/tm.gif">, <A HREF="http://www.linuxgazette.com/">http://www.linuxgazette.com/</A><BR>
This page maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto: gazette@ssc.com"> gazette@ssc.com</A>
<P>
<H5>Copyright © 1996-99 Specialized Systems Consultants, Inc.</H5>
</center>
</td></tr>
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif" ALT="indent" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
</table>
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<H4>"The Linux Gazette...<I>making Linux just a little more fun!</I>"</H4>
<P> <hr> <P>
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<center>
<H1><A NAME="faq">
<img src="../gx/lg-penguin.gif" alt=" ">
<font color="#B03060">The <I>Linux Gazette</I> FAQ</font>
</A></H1>
Updated 31-Aug-1999
</center>
<p><hr><p>
<H3>Contents</H3>
<UL>
<LI> Questions about the <I>Linux Gazette</I>
<OL>
<LI> <A HREF="#why_faq">Why this FAQ?</A>
<LI> <A HREF="#formats_html">Where can I find the HTML version of the <I>Gazette</I>?</A>
<LI> <A HREF="#formats_yes">Which formats is the <I>Gazette</I> available in?</A>
<LI> <A HREF="#formats_no">Which formats is the <I>Gazette</I> <STRONG>not</STRONG> available in?</A>
<LI> <A HREF="#search">How can I find all the articles about a certain subject?</A>
<LI> <A HREF="#copying">May I copy and distribute the <I>Gazette</I> or portions thereof?</A>
<LI> <A HREF="#sponsor">You have my competitor's logo on the Front Page; will you put mine up too?</A>
</OL>
<P>
<LI> Linux tech support questions
<OL>
<LI> <A HREF="#ask_tech">How can I get help on Linux?</A>
<LI> <A HREF="#wine">Can I run Windows applications under Linux?</A>
<LI> <A HREF="#mswin">Do you answer Windows questions too?</A>
<LI> <A HREF="#where_doc">How do I find the help files in my Linux system?</A>
</OL>
</UL>
<P> <FONT SIZE=-1><EM>This FAQ is updated at the end of every month. Because
it is a new feature, it will be changing significantly over the next few
months.</EM></FONT>
<P> <HR> <P>
<!-- =============================================================== -->
<H1 ALIGN=center>Questions about the <I>Linux Gazette</I></H1>
<A NAME="why faq"></A>
<H2>1. Why this FAQ?</H2>
<P> These are the most Frequently Asked Questions in the <I>LG</I> Mailbag.
With this FAQ, I hope to save all our fingers from a little bit of typing, or
at least allow all that effort to go into something No (Wo)man Has Ever Typed
Before.
<P> <HR> <P>
<!-- =============================================================== -->
<A NAME="formats_html"></A>
<H2>2. Where can I find the HTML version of the <I>Gazette</I>?</H2>
<UL>
<LI> The main web site--<A HREF=http://www.linuxgazette.com>
www.linuxgazette.com</A>.<P>
<LI> <A HREF=../mirrors.html>Mirror sites in 47 countries</A>, some with
translations in other languages.<P>
<LI> Indirect mirrors, including
<A HREF=http://www.ssc.com/mirrors/LDP/mirrors.html>
Linux Documentation Project</A> mirror sites.<P>
<LI> In the <A HREF=http://www.debian.org>
Debian/GNU Linux</A> distribution, as ordinary *.deb packages.<P>
<LI> On CD as part of a
<A HREF=https://www.ssc.com:444/lj/backissue.html><I>Linux Journal</I>
archive CD-ROM</A>. There may also be other companies that include the
<I>Gazette</I> on their CDs--we don't keep a central list. (But we may in
the future.)<P>
</UL>
<P> <HR> <P>
<!-- =============================================================== -->
<A NAME="formats_yes"></A>
<H2>3. Which formats is the <I>Gazette</I> available in?</H2>
<UL>
<LI> <STRONG>As a single HTML file.</STRONG> Every issue includes a
TWDT (The Whole D--- Thing) file containing a copy of all the articles in one
file. This may be useful if you have a slow modem, or if you want to print it
all out at once. Look for "TWDT" near the bottom of the issue's Table of
Contents. Hyperlinks in this version are not guaranteed to work.<P>
<LI> <STRONG>As a single text file.</STRONG> This is a text-only
version of the above. Look for "TWDT" near the bottom of the issue's Table of
Contents.<P>
<LI> <STRONG>Via FTP.</STRONG> Each issue is available as a *.tar.gz
file, containing both the ordinary HTML files and the TWDT files. See
<A HREF=ftp://ftp.ssc.com/pub/lg/README>ftp://ftp.ssc.com/pub/lg/README</A>
for details. Other FTP sites are listed on our
<A HREF=../mirrors.html>mirrors</A> page.
</UL>
<P> <HR> <P>
<!-- =============================================================== -->
<A NAME="formats_no"></A>
<H2>4. Which formats is the <I>Gazette</I> <U>not</U> available in?</H2>
<P> Other archive formats. We need to keep disk space on the FTP site at a
minimum for the sake of the mirrors. Also, the Editor rebels at the thought
of the additional hand labor involved in maintaining more formats. Therefore,
we have chosen the formats required by the majority of <I>Gazette</I> readers.
Anybody is free to maintain the <I>Gazette</I> in another format if they wish,
and if it is available publicly, I'll consider listing it on the mirrors page.
<P> <STRONG>Zip,</STRONG> the compression format most common under Windows.
If your unzipping program doesn't understand the *.tar.gz format, get Winzip
at <A HREF=http://www.winzip.com>www.winzip.com</A>.
<P> <STRONG>Macintosh formats.</STRONG> (I haven't had a Mac since I sold
my Mac Classic because Linux wouldn't run on it. If anybody has any
suggestions for Mac users, I'll put them here.)
<P> <STRONG>Other printable formats.</STRONG>
<DL COMPACT>
<DT> <STRONG>PostScript</STRONG>
<DD> You can use Netscape's "print to file" routine will
create a PostScript file complete with images.
<DT> <STRONG>PDF</STRONG>
<DD> I know Adobe and others consider PDF a "universal"
format, but to me it's still a one-company format that requires a custom
viewer--not something I'm eager to maintain. If you can view PDF, can't
you view HTML?
<DT> <STRONG>Word</STRONG>
<DD> I'll be nice and not say anything about Word....
</DL>
<P> <STRONG>E-mail.</STRONG> The <I>Gazette</I> is too big to send via e-mail.
Issue #44 is 754 KB; the largest issue (#34) was 2.7 MB. Even the text-only
version of #44 is 146 K compressed, 413 K uncompressed. If anybody wishes
to distribute the text version via e-mail, be my guest. There is an
announcement mailing list where I announce each issue; e-mail
<A HREF=mailto:lg-announce-request@ssc.com>lg-announce-request@ssc.com</A>
with "subscribe" in the message body to subscribe. Or read the announcement
on <A HREF=news:comp.os.linux.announce>comp.os.linux.announce</A>.
<P> <STRONG>On paper.</STRONG> I know of no companies offering printed copies
of the <I>Gazette</I>.
<P> <HR> <P>
<!-- =============================================================== -->
<A NAME="search"></A>
<H2>5. How can I find all the articles about a certain subject?</H2>
<P> Use the <I>Linux Gazette</I>
<A HREF=http://www.linuxgazette.com/wgindex.html>search engine</A>. A link to
it is on <A HREF=lg_frontpage.html#search>the Front Page</A>, in the middle of
the page. Be aware this engine has some limitations, which are listed on the
search page under the search form.
<P> Use the <A HREF=lg_index.html>Index of Articles</A>. A link to it is on the Front Page, at the bottom of the issues links,
called "Index of All Issues". All the Tables of Contents are concatenated
here onto one page. Use your browser's "Find in Page" dialog to find
keywords in the title or author's names.
<P> <HR> <P>
<!-- =============================================================== -->
<A NAME="copying"></A>
<H2>6. May I copy and distribute the <I>Gazette</I> or portions thereof?</H2>
<P> Certainly. The <I>Gazette</I> is freely redistributable. You can copy
it, give it away, sell it, translate it into another language, whatever you
wish. Just keep the copyright notices attached to the articles, since each
article is copyright by its author. We request that you provide a link
back to <A HREF=http://www.linuxgazette.com>www.linuxgazette.com</A>.
<P> If your copy is publicly available, we would like to list it on our
<A HREF=../mirrors.html>mirrors page</A>, especially if it's a foreign language
translation. Use the submission form at the bottom of the page to tell us
about your site. This is also the most effective way to help <I>Gazette</I>
readers find you.
<P> <HR> <P>
<!-- =============================================================== -->
<A NAME="sponsor"></A>
<H2> 7. You have my competitor's logo on the Front Page; will you put mine up too?</H2>
All logos on the Front Page and on each issue's Table of Contents are from our
sponsors. Sponsors make a financial contribution to help defray the cost of
producing the <I>Gazette</I>. This is what keeps the <I>Gazette</I> free
(both in the senses of "freely redistributable" and "free of ads"
<img src="../gx/dennis/smily.gif" alt=":)">) To recognize and give thanks to our
sponsors, we display their logo.
<P> If you would like more information about sponsoring the
<I>Linux Gazette</I>, e-mail <A HREF=mailto:sponsor@ssc.com>sponsor@ssc.com</A>.
<P> <HR NOSHADE SIZE=6> <P>
<!-- =============================================================== -->
<H1 ALIGN=center>Linux tech support questions</H1>
<P> This section comprises the most frequently-asked questions in The Mailbag
and The Answer Guy columns.
<P> <HR> <P>
<!-- =============================================================== -->
<A NAME="ask_tech"></A>
<H2>1. How can I get help on Linux?</H2>
<P> (A proper answer will be posted in the next issue. In the meantime...)
<P> Check the FAQ. (Oh, you already are. :)
<P> Questions sent to <A HREF=mailto:gazette@ssc.com>gazette@ssc.com</A> will
be published in the Mailbag in the next issue. Make sure your From: or
Reply-to: address is correct in your e-mail, so that respondents can send you
an answer directly. Otherwise you will have to wait till the following issue
to see whether somebody replied.
<P> Questions sent to <A HREF=mailto:answerguy@ssc.com>answerguy@ssc.com</A>
will be published in The Answer Guy column.
<P> If your system is hosed and your data is lost and your homework is due
tomorrow but your computer ate it, and it's the beginning of the month and the
next Mailbag won't be published for four weeks, write to the Answer Guy. He
gets a few hundred slices of mail a day, but when he answers, it's direct to
you. He also copies the Gazette so that it will be published when the month
end comes comes along.
<P> You might want to check the new Answer Guy Index and see if your question
got asked before, or if the Answer Guy's curiosity and ramblings from a
related question covered what you need to know.
<P> <HR> <P>
<!-- =============================================================== -->
<A NAME="wine"></A>
<H2>2. Can I run Windows applications under Linux?</H2>
<P> An excellent summary of the current state of WINE, DOSEMU and other
Windows/DOS emulators is in issue #44, The Answer Guy,
<A HREF=issue44/tag/1.html>"Running Win '95 Apps under Linux"</A>.
<P> There is also a program called <A HREF=http://www.vmware.com>VMWare</A>
which lets you run several "virtual computers" concurrently as applications,
each with its own Operating System. There is a
<A HREF=http://www.linuxjournal.com/lj-issues/issue63/3458.html>review</A>
in <I>Linux Journal</I> about it.
<P> <HR> <P>
<!-- =============================================================== -->
<A NAME="mswin"></A>
<H2>3. Do you answer Windows questions too?</H2>
<p>Answers in either the Tips or Answer Guy columns which relate to
troubleshooting hardware, might be equally valuable to Linux and Windows users.
This is however the <I><STRONG>Linux</STRONG> Gazette</I>... so all the
examples are likely to describe Linux methods and tools.
<p>The Answer Guy has ranted about this many times before. He will
gladly answer questions involving getting Linux and MS Windows systems
to interact properly; this usually covers filesystems, use of Samba
(shares) and other networking, and discussion of how to use drivers.
<p>However, he hasn't used Windows in many years, and in fact avoids the
graphical user interfaces available to Linux. So he is not your best bet
for asking about something which only involves Windows. Try one of the
Windows magazines' letter-to-the-editor columns, an open forum offered at
the online sites for such magazines, or (gasp) the tech support that was
offered with your commercial product. Also, there are newsgroups for an
amazing variety of topics, including MS Windows.
<P> <HR> <P>
<!-- =============================================================== -->
<A NAME="where_doc"></A>
<H2>4. How do I find the help files in my Linux system?</H2>
<p>The usual command to ask for a help page on the command line is the
word <tt>man</tt> followed by the name of the command you need help
with. You can get started with <tt>man man</tt>. It might help you to
remember this, if you realize it's short for "manual."
<p>A lot of plain text documents about packages can be found in
<tt>/usr/doc/packages</tt> in modern distributions. If you installed
them, you can also usually find the FAQs and HOWTOs installed in
respective directories there.
<p>Some applications have their own built-in access to help files (even those
are usually text stored in another file, which can be reached in other
ways). For example, pressing F1 in <tt>vim</tt>, ? in <tt>lynx</tt>,
or ctrl-H followed by a key in Emacs, will get you into their help system.
These may be confusing to novices, though.
<p>Many programs provide minimal help about their command-line interface if
given the command-line option <tt>--help</tt> or <tt>-?</tt>. Even if these
don't work, most give a usage message if they don't understand their command
line arguments. The GNU project has especially forwarded this idea. It's
a good one; every programmer creating a small utility should have it
self-documented at least this much.
<p>Graphical interfaces such as <tt>tkman</tt> and <tt>tkinfo</tt> will
help quite a bit because they know where to find these kinds of help files;
you can use their menus to help you find what you need. The better ones
may also have more complex search functions.
<p>Some of the bigger distributions link their default web pages to HTML
versions of the help files. They may also have a link to help directly from
the menus in their default X Windowing setup. Therefore, it's wise to
install the default window manager, even if you (or the friend helping you)
have a preference for another one, and to explore its menus a bit.
<P>
<!--===================================================================-->
<P> <hr> <P>
<H5 ALIGN=center>
This page written and maintained by the Editor of <I>Linux Gazette</I>,
<A HREF=mailto:gazette@ssc.com>gazette@ssc.com</A><BR>
Copyright © 1999, Specialized Systems Consultants, Inc.,
<P> <hr> <P>
<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>"</H4>
<HR>
<center>
<table width="100%" cellpadding=7><tr><td>
<H2><a NAME="mail"><IMG SRC="../gx/mailbox.gif" ALIGN=MIDDLE ALT=" ">
The Mailbag!</a> </H2>
Write the Gazette at <A HREF="mailto:gazette@ssc.com"> gazette@ssc.com</A>
</td><td>
<H3>Contents:</H3>
<ul>
<li><a HREF="#help">Help Wanted -- Article Ideas</a>
<li><a HREF="#gen">General Mail</a>
</ul>
</td></tr></table>
</center>
<a name="help"></a>
<p><hr><p>
<!-- =================================================================== -->
<center><H3><font color="maroon">Help Wanted -- Article Ideas</font></H3></center>
<P>
Answers to these questions should be sent directly to the e-mail address of
the inquirer with or without a copy to gazette@ssc.com. Answers that are
copied to <I>LG</I> will be printed in the next issue in the Tips column.
<P> <STRONG>Before asking a question, please check the new
<A HREF=../lg_faq.html><I>Linux Gazette</I> FAQ</A> to see if it has been
answered there.</STRONG>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Wed, 04 Aug 1999 06:09:15 +0300
<BR>From: Marius Andreiana <<A HREF="mailto:Marius_And@usa.net">Marius_And@usa.net></A>
<BR>Subject: Article idea
<P> Hi this is Marius.
<P> I think a very good article could be made about
PostgreSQL. One which wouldn't repeat what's in
the HOWTO, but present how to use it on the web, some
interfaces to it ( like Java, Php3, Perl, ... ), with
advantages/disadvantages, links to good sites for newcomers etc.
<P> I used to developed some Visual FoxPro applications, but I'd like
something more powerful ( and free ) for use over TCP/IP.
I've read the web section in the HOWTO but I don't have the
time to get the tools described there ( must learn for getting
admitted in university ).
<P> Thank you,
Marius
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 05 Aug 1999 09:25:03 +1000
<BR>From: Dave Mason <<A HREF="mailto:91001832@snetnzwe.cpg.com.au">91001832@snetnzwe.cpg.com.au></A>
<BR>Subject: Which distribution for an advanced user?
<P> i was just curious if you had a mailing list? if you i would be very
grateful if you could add me to your mailing list.. as i am interested in
learning the problems and solutions of Linux and other important
information.
<P> Which distribution of Linux would you recommend for an Advanced Linux user?
at the moment i am using Debian 2.0 as my root source and Redhat 5.1 as my
server... I've installed and ran FreeBSD 2.8.8 but i find linux more
useable...
<BLOCKQUOTE><EM>
[See the <A HREF=../lg_faq.html><I>LG</I> FAQ</A> for the mailing list
question.
<P> I use Debian because it doesn't get in the way of the advanced
user the way some other distros do. Plus I like the "designed by
volunteers" aspect, and the fact that I can participate in the
development process to whatever extent I want. (I'm not a developer,
but I read debian-devel sometimes and worked at the Debian booth at
LinuxWorld in March.)
<P> The question is, are you dissatisfied with your current systems?
If not, why switch? -Ed.]
</EM></BLOCKQUOTE>
<P> Thanks Alot
Sifer
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 30 Jul 1999 23:21:57 -0400
<BR>From: AP <<A HREF="mailto:adpias@golden.net">adpias@golden.net></A>
<BR>Subject: modem
<P> I am a new Linux Red Hat 6.0 user.
<P> I cannot connect to the Internet (still using W98).
My 3com-USR 56K voice faxmodem-V90 is not working under Linux.
The serial # of my modem is 5685. It's p-n-p Sportster with jumper to
set com-port and IRQ manually.
<P> I could not get any help from Red Hat!
<P> I am looking for anybody who can help me to make this modem working with
Linux. If it is impossible, which modem should I buy?
<P> Please help, don't leave me with Windows!
<P> Adam
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sun, 01 Aug 1999 04:00:26 -0400
<BR>From: Zeb Morgan <<A HREF="mailto:n4zm@mindspring.com">n4zm@mindspring.com></A>
<BR>Subject: Digitizing program
<P> I have a ton of documents that I wish to digitize. Is there a program
running under Linux that is similar to PaperPort, Pagis Pro, and/or
PageKeeper?
<P> Thanks.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Tue, 3 Aug 1999 12:32:35 -0000
<BR>From: JUIN Aymeric <<A HREF="mailto:Aymeric.JUIN@DGI2000.com">Aymeric.JUIN@DGI2000.com></A>
<BR>Subject: linux on a laptop
<P> I'm a linux newbie. I installed linux (redhat 5.2) on a laptop with an ATI
rage LT PRO AGP2X, and there's no driver for this graphic card to run Xwindow,
I tried to find one on the web, but without success, I also tried other ATI
drivers (like ATI rage pro and other MACH64 drivers) without better results.
Is there any solution ? Please help me...
<P> PS : sorry for my poor english.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 05 Aug 1999 07:36:55 +1000
<BR>From: Dave Mason <<A HREF="mailto:91001832@snetnzwe.cpg.com.au">91001832@snetnzwe.cpg.com.au></A>
<BR>Subject: Running Windows Programs In Linux?
<P> Is there any way of Running Windows Applications and Programs from Linux?
i've heard of dosemu, but that only supports some of the dos games, if there is
such a product, could you tell me the name of it and where to get it from...
and is it also multi-platform Unix?,
<BLOCKQUOTE><EM>
[This is answered in the <A HREF=../lg_faq.html>FAQ</A>. -Ed.]
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 5 Aug 1999 00:49:33 +0100
<BR>From: Advanced one corporation <<A HREF="mailto:advanced1@ibm.net">advanced1@ibm.net></A>
<BR>Subject: I have a question
I hope you don't mind this question, but I am a newbie at Linux Red Hat 5.2
and I am trying to find out what is a mount point and how do I define it
during installation? T
<BLOCKQUOTE><EM>
<P> A mount point is an empty directory upon which another disk
partition is (or will be) mounted. When mounted, it creates the
illusion that the entire partition is inside that directory. This is
how UNIX handles multiple partitions, different from the C: D: E: drive
letters that Dos/Windows uses.
<P> I use Debian, so I'm not very familiar with Red Hat's installation
program. I believe the partitioning dialog (Disk Druid?) has a column
where you define the mount point for each partition, and it
automatically creates directories as needed.
<P> Later, you'll use mount points to access floppy disks, CD-ROMs,
network filesystems, etc, the same way. The "mount" and "umount"
commands (or an equivalent GUI dialog) open and close access to these
devices, through the mount point directory. -Ed.
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 05 Aug 1999 00:19:16 -0400
<BR>From: M.Myszkowski <<A HREF="mailto:myszy@home.com">myszy@home.com></A>
<BR>Subject: Network with Win98
<P> Hi,
<P> I want to put in network my two computers.
First one as a server has Win98 and is connected to the internet via
cable modem (using different ethernet card).Second one - client
has Red Hat Linux 5.2 Deluxe. I am a beginner with Linux and I don't know
how to set up network configuration in both computers.
<P> Thanks,<BR>
Marek
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Wed, 04 Aug 1999 22:09:27 -0400
<BR>From: Myk <<A HREF="mailto:mykill5@mindspring.com">mykill5@mindspring.com></A>
<BR>Subject: Essential Software...When will we get it?
<P> I have been using Linux from the early days when Slackware and Debian where
the kings. I have always had a dislike for Windows 3.1 straight through to Win
98; but the one thing Windows has is some great software from great vendors
Like Macromedia. I switch from Windows to Linux just to use programs like
Flash, DreamWeaver, QuarkXpress, as well as small programs like Rio GUI,
ReBirth, etc. When can we see these programs ported to Linux? Are there any
rumors of companies trying to port se to Linux? Is there a competant Emulator
available that can run these programs without a problem? I now use Linux as my
OS of choice. It dominates my HD and I use nothing else; but I do miss some of
the great WYSIWYG HTML Editors and Flash etc...Oh well guess I will have to
make do with what I got. The other thing is that I just purchased a laptop and
before it is delivered is there anything I should know about installing Linux
on my Laptop with minimal casulties? How should I go about installation? What
about video, sound, etc...?
<P> Thanx,<BR>
<P> Lance Miller
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Wed, 4 Aug 1999 21:55:42 -0700 (PDT)
<BR>From: BurleyRon@aol.com <<A HREF="mailto:BurleyRon@aol.com">BurleyRon@aol.com></A>
<BR>Subject: A Request for Assistance
<P> When I first read of Linux in a catalog, I had hopes that it would be my
personal ticket out of Microsoft's sticky hands. I had hoped it would be
analogous to a modern DOS or something like that. I would typify myself as
an expert in pre-Windows DOS and as passable in post-Windows DOS.
<P> Well, frankly, I hardly understand many of the words. Right away I knew I
had made a mistake. This Linux is for computer jocks and developers of the
first magnitude.
<P> My question for you is, "Am I right?" Have I stepped through the
looking-glass of computer literacy into the wonderland of the developmental
dervish? There could be one other explanation -- I jumped into the middle of
the story when I should have begun at the beginning. Is there a beginning
for the computer literate person -- where terms are defined, examples are
given, teachers are patient and I can begin to gradually "wean" myself from
Mother Windows?
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 6 Aug 1999 12:13:28 +0100
<BR>From: Geoff Hare <<A HREF="mailto:geoff@hare21.freeserve.co.uk">geoff@hare21.freeserve.co.uk></A>
<BR>Subject: Setting up LINUX
<P> I am in the process of acquiring a new PII - 450 Machine. I have
decided to have 2 x 10Gb hard drives. One of these drives will be
partitioned for LINUX programmes and LINUX Data.
<P> Is these anyone in the CROYDON-CATERHAM-CRAWLEY area would be interested
enough to help me carry out the installation process?
<P> Geoff Hare (who spotted Linux some time ago and felt that it might come
to something!)
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Mon, 09 Aug 1999 09:35:19 -0400
<BR>From: Rajani K Yellamanchili <<A HREF="mailto:Rajani.Yellamanchili@wmich.edu">Rajani.Yellamanchili@wmich.edu></A>
<BR>Subject: Unix Startup
<P> Dear Administrator:
<P> I am a student at Western Michigan University, and am currently
collecting resources for the startup tasks performed by unix/linux. I
request you to help me if you can. I state my exact requirement below.
<P> I am looking for all the files invoked/used by the init process at
startup, when a work station boots up in a network. I am also looking
for the organization of the /etc directory and its probable contents.
<P> Looking forward for your reply, I remain
<P> Regards<BR>
Raj
<BLOCKQUOTE><EM>
The boot loader starts init, which reads /etc/inittab. See man 8 init,
man 5 inittab.
Most distributions follow the Linux Filesystem Standard for the sake of
interoperability. A newer document is the File Hierarchy Standard; the
distributions have not yet implemented this, but are expected to in the
near future. <A HREF=http://www.pathname.com/fhs/>
http://www.pathname.com/fhs/</A>
The runlevels use configuration files in or near /etc/init.d and
/etc/rc.d. The "System V" method is used by Debian and Red Hat. In
it, /etc/init.d contains scripts named after a package. Symbolic links
in the /etc/rc*.d directories (numbered according to runlevel) specify
which services should be started or killed when switching to that
runlevel. The "BSD" method is used by older (and current?) Slackware
systems: /etc/init.d doesn't exist, and /etc/rc*.d are scripts (one for
each runlevel) which handle the starting and stopping of services. -Ed.
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Wed, 11 Aug 1999 18:38:04 +0000
<BR>From: R. Smith <<A HREF="mailto:rsmith13@tampabay.rr.com">rsmith13@tampabay.rr.com></A>
<BR>Subject: Why are they trying to telnet in to my Linux box?
<P> Sir,
<P> Recently I noticed that, most every time, my niece used her Win 95
computer (on my lan), I would start getting a lot of telnet attempts to
my Linux masq box. Most of them were from dalnet.somthing.or .other. So
I sent email to several of them asking why they were trying to telnet to
my box. Here's the reply that I got from one:
<P> Jason wrote:
<BLOCKQUOTE>
<P> Dear Sir or Madam,
The "attack" you have seen is not an attack at all, but a check for an
open Wingate or SOCKS server on your computer.
Toledo Internet Access is the host of glass.oh.us.dal.net. We have
recently implemented a policy of checking users on connect for open
Wingate and SOCKS servers to attempt to cut back in the abuse of Dalnet
via these often abusive services.
We apologize for any inconvience this may have caused you.
Jason Slagle
Network Administrator
Toledo Internet Access
Raistlin_Mejere - CSOP - Dalnet IRC Network
</BLOCKQUOTE>
<P> It seems that every time a client connects to a irc server, the server
tries to telnet into the client's box! This is about the dumbest thing
that I have ever heard of! I don't like having my intruder alarm go off
at 2 am because my niece wanted to use irc. I don't like anyone trying
to telnet in to my box for any reason! No sir, I don't like it at all.
<P> I suppose I will have to turn irc access off for my niece.
<P> --<BR>
Rick,<BR>
The <I>Linux Gazette</I> Editor wrote:
<BLOCKQUOTE>
Hi. This will be printed in the August Linux Gazette at the end of
the month. In the meantime...
I don't use IRC, SOCKS or WinGate, so I can't say whether they're being
reasonable or not.
</EM></BLOCKQUOTE>
<P> This is something new that the irc servers, all have started doing in
the past few weeks.
<BLOCKQUOTE>
Of course, you can always comment out telnetd in inetd, if you don't
otherwise need it.
</BLOCKQUOTE>
<P> I only allow telnet in from local machines (via hosts.allow). I have
everything else turned off in inetd per standard practice. I have
host.deny setup to log all incoming attempts and wavplay to sound an
alarm. (I haven't had any trouble since getting Road-Runner but I've been
port scanned a few times with my previous IP.) I just wrote a new log
script that will skip the alarm if the in.telnetd attempt is from a "know"
dalnet server. (So I can get some sleep!) It still logs the suckers
though!
<BLOCKQUOTE>
<P> I'm not sure whether [disablling telnet] would cause the IRC
servers to refuse service or not...
</BLOCKQUOTE>
<P> I doubt it, they are use to working with win 95. How many 95 boxes are
running incoming telnet service? That's what they are trying to find out.
<BLOCKQUOTE><EM>
[Have other people had problems with IRC authentication recently?
What are the servers doing and why? Why should they care whether
Win95 boxen are running telnetd or not? -Ed.
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 13 Aug 1999 04:42:18 +0500
<BR>From: Zahid Mannan Butt <<A HREF="mailto:zmbutt@hotmail.com">zmbutt@hotmail.com></A>
<BR>Subject: Sis6326 Driver
<P> I am new user on Lunix IS There any way to configure my SIS6326 8Mb AGP
card for lunix? Even I contect to the vendors but they can't Help me. Please
If you Know something about to configure it tell me other then
sis.com.tm/driver/driver
<P> Thanks<BR>
Zahid Mannan Butt
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 13 Aug 1999 14:19:13 +0530
<BR>From: regan <<A HREF="mailto:to_regan@hotmail.com">to_regan@hotmail.com></A>
<BR>Subject: Help Help
<P> Hi!
<P> I've installed RedHat 6.0 and have a SiS 6215 display card. During
installation, I had to specify the card details as Red Hat was unable to
detect it.
<P> Now in Gnome, my display is larger than my monitor screen. I can only
see the top 4 icons on the desktop. Also when I open any folder, the
size is four times my screen size. Is there any way I can change my
resolution or find support for this particular card. I've tried the SiS
home site and redhat.com but there's nothing available there. If anyone
has any info as to how I could solve this problem, contact me at
to_regan@hotmail.com
<P> Thanks<BR>
Regan <<A HREF="mailto:regan@irpl.com">regan@irpl.com></A><BR>
India
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 13 Aug 1999 06:08:47 -0700
<BR>From: Bobby Prater <<A HREF="mailto:bprater4@bellsouth.net">bprater4@bellsouth.net></A>
<BR>Subject: Problems with the speed my computer connects and scrolls while connected to my phone line.
<P> Is it possible the phone line we had installed solely for internet use
could slow my computer down? I have 400mhz and 128 meg ram, We decided
since all other ideas failed we would try what a friend suggested and
just bring my hard drive to their home and see if we had the same
problem, Amazingly it performed as it should I was so happy
thinking when I came home it would do for me as well as when on his
phone line; IT DID
NOT!!!! it's as poky as ever. I have tried connecting to ebay.com to
view and bid on some items for over three hours and after we connect an
error message pops up as I'm waiting for their reply, I have never had
this problem. I'm ready to quit because it is impossible for me to find
spare time in the bulk presently required to use the net. I am
completely out of solutions to try so please if you have any ideas or
suggestions email me
<P> please! Any help will be greatly appreciated.<BR>
Thank You,<BR>
Mrs. B. Prater
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 13 Aug 1999 16:16:38 +0000
<BR>From: R. Smith <<A HREF="mailto:rsmith13@tampabay.rr.com">rsmith13@tampabay.rr.com></A>
<BR>Subject: Re: Why are they trying to telnet in to my Linux box?
<P> Linux Gazette wrote:
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sat, 14 Aug 1999 06:04:01 PDT
<BR>From: Zahid Mannan butt <<A HREF="mailto:zmbutt@hotmail.com">zmbutt@hotmail.com></A>
<BR>Subject:
<P> I read your message Kindly I thanks you to response me but I try to
configure the driver from www.suse.com (both) but I am fail
Tell some other than www.suse.com this one
I am really thanks you again
Zahid Butt
<P> ______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sun, 15 Aug 1999 18:16:03 PDT
<BR>From: Joe Bubba <<A HREF="mailto:gundog1@hotmail.com">gundog1@hotmail.com></A>
<BR>Subject: RedHat 6.0
<P> To whom it may concern,
<P> I am trying to download RedHat 6.0 from a mirror site but WSFTP.exe
errors out. It errors out in the \misc directory. The files
that cause the errors look like part binary or part folder icons (a file
that contains a directory structure). I am using WSFTP32.exe on a Win95/NT
machine and my goal is to copy the files to a hard drive and burn them to a
CDROM later.
<P> The only information I could find was to create a mirror, then copy the
files to a CDROM.
<P> Any help would be greatly appreciated,
<P> Rob<BR>
gundog1@hotmail.com
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Mon, 16 Aug 1999 09:00:42 -0700
<BR>From: Douglas Nichols <<A HREF="mailto:dnichols@fhcrc.org">dnichols@fhcrc.org></A>
<BR>Subject: Concerning the Toshiba 8000
<P> I have installed Red hat 6.0 distribution of Linux on my Toshiba 8000. I
have not been able to boot into any runlevel except 5, otherwise linux
doesn't seem to respond to the keyboard- I believe this has something to
do with the mouse. Everything else is working fine with apm I am using
gnome. The pcmcia card was a problem, but I finely upgraded to 3.0.14
and everything seems to work well now. Periodically some process doesn't
allow to umount the disk( I think it's gnome) and when I reboot, I have
to fsck. If I can provide you with a ccopy of any of my config files
just e-mail me.
<P> --<BR>
Cheers, dn<BR>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Mon, 16 Aug 1999 20:08:34 -0400
<BR>From: Mulualem Takele <<A HREF="mailto:m.takele@worldnet.att.net">m.takele@worldnet.att.net></A>
<BR>Subject: MS WinModem Linux
<P> Before a month I purchased a Dell Dimension XPS T450 Pentium (r) III PC
with US Robotics 56K Voice Win (soft ware driven) Modem. Unfortunately, I
realized now that the modem I ordered is not supported by Redhat/Linux 6. Now,
I am wondering if there is anything I have to do so that I can run Netscape
Navigator on Linux. If not, what possibilities do I have?
<BLOCKQUOTE><EM>
[Get another modem. Until the winmodem manufacturers release Linux
drivers, or provide enough technical info so we can write our own
drivers, that's your only choice.
<P> In any case, a winmodem is not a complete modem. Several hardware
parts are missing, which are emulated by the Windows driver. But why
waste CPU time and memory doing something the modem should be doing?
Look for a modem that says it will work with UNIX, DOS or Macintosh as
well as Windows. If it can work with anything besides Windows, it
should be OK. The US Robotics Sportster series is good, as are other
brands. (PS. US Robotics is owned by 3Com. So if you see a 3Com
modem, it's the same as a US Robotics modem.) -Ed.
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Tue, 17 Aug 1999 01:55:51 EDT
<BR>From: <<A HREF="mailto:HUEBRIGHT@aol.com">HUEBRIGHT@aol.com></A>
<BR>Subject: 466 dell
<P> When I try to mount my CD ROM and floppy through my system it says it is
unable. I am running my CD ROM through a sound blaster 16 help
<P> Jim
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Tue, 17 Aug 1999 19:12:49 +0900
<BR>From: hansy <<A HREF="mailto:sysop@ultari.co.kr">sysop@ultari.co.kr></A>
<BR>Subject: Can you tell me the way to adduser by cgi-script?
<P> hi. This is seyong from Korea.
<P> I have so many users above 60,000,
and now i have to make them the shell id.
<P> can you tell me the way to adduser by cgi-script?
i will be waiting and waiting for your reply.
<P> if you can't, i'm so thank you.
<P> my website is http://www.ultari.com (now under construction because of the
+cgi-script).
and now i'm using the redhat linux 6.0.
thank you.
The <I>Linux Gazette</I> Editor wrote:
<BLOCKQUOTE>
Hi, Seyong. This will be published in the September Linux Gazette on
August 31.
<P> Just to make sure I understand your question:
You want a form and a CGI script that runs the "adduser" command?
<P> I do not know of any. There are Linux products which allow central
administration of a network, and some of them have web interfaces, but
I do not know the names of the products.
<P> You can of course write a CGI script yourself which runs adduser,
or hire a programmer to do this. But allowing a CGI script to run as
root (which it would have to, to have permission to run adduser) is a
potential security nightmare. Be sure the program analyses its input
very carefully before passing it on to "adduser".
</BLOCKQUOTE>
<P> hi, this is seyong han.
i'm so thanks for your replying.
i want to adduser by web interface.
the program will run as root mode.
i made an java application to run the cgi.
it will run as root mode.
so i want the cgi program it get id and password and then add user to
+/etc/passwd.
<BLOCKQUOTE><EM>
[Is there any existing code to do this? -Ed.
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Wed, 18 Aug 1999 18:10:55 +1000
<BR>From: Cooma School of Music <<A HREF="mailto:csm@cooma.snowy.net.au">csm@cooma.snowy.net.au></A>
<BR>Subject: Downloading Redhat 6
<P> Hi there. Sorry about the From, but I can't seem to change it.
I really want to have Redhat linux, but it's been hell trying to find a
document how how to download it. I assume these are in packages or images
or something. Could you possibly publish a guide on how to download it, or
could you tell me the location of a how-to.
<P> -- SK
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 19 Aug 1999 09:24:20 +0200
<BR>From: Carlo Vinante <<A HREF="mailto:vinante@igi.pd.cnr.it">vinante@igi.pd.cnr.it></A>
<BR>Subject: upgrade problem
<P> Hi ti everybody.
<P> I would ask some help on a problem recently occourred to me during an
upgrade of my system. I ran SuSe 5.3 very smoothly until I decide to
upgrade it to rev. 6, with kernel 2.2.1.
then I have encountered two problems : 1) I'm not anymore able to print,
except using the copy command to the printer. The aps filter is configured
for my printer (a HP Dj 550c); the lpr command doesn't "exist". 2) no
sound .....
<P> Does anybody know a good "rule of thumb" to avoid these kind of problems
when performing an upgrade ?
<P> Thanks to everybody
<P> Greetings
Carlo
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sat, 21 Aug 1999 02:07:53 -0500
<BR>From: Lawrence A. Bombac II <<A HREF="mailto:Lawrence_A_Bombac_II@lor.net">Lawrence_A_Bombac_II@lor.net></A>
<BR>Subject: hey
<P> would you be able to direct me to a place that will give me the source
code for linux,or could you send it to me yourself,preferably a version
that is not copyrighted,if that makes any sense
<BLOCKQUOTE><EM>
[Do you mean the Linux kernel or an entire distribution?
<P> The source code to the Linux kernel is available at FTP sites all
over the world. A list of major sites is at
<A HREF=http://www.kernel.org/mirrors>www.kernel.org/mirrors</A>.
See also the <A HREF=www.kernel.org>www.kernel.org home page</A>.
This is the core of the Linux system, or what differentiates Linux from
all other operating systems. I cannot email it because it is 14 MB
big.
<P> However, you need more than just the kernel to have a useful
computer system. You also need hundreds of third-party programs and
utilities. The easiest way to get a hold of the source code to all
these programs at once is to buy or download a Linux distribution. Be
sure the product says it "includes source". Before downloading an
entire distribution of several hundred megabytes, remember that it's
often cheaper and more convenient to simply buy a CD instead.
<P> The Linux kernel and the vast majority of programs included in any
Linux distribution are copyright according to the GNU Public License
(GPL) <A HREF=http://www.gnu.org/copyleft/gpl.html>
www.gnu.org/copyleft/gpl.html</A> or to a similar license
which allows the copying and distribution of both the source code and
compiled programs without asking anybody's permission or paying
royalties. In fact, the GPL in particular *requires* that any company
that sells a GPL'd program (and the Linux kernel is GPL'd) *must* make
the source code available. -Ed.
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sun, 22 Aug 1999 03:28:18 +0200
<BR>From: Philippe COVAL <<A HREF="mailto:philc@writeme.com">philc@writeme.com></A>
<BR>Subject: Question: HD brute format
<P> Question: HD brute format
<P> How to format a disfunctional HD ?
(hum, i know the "buy a new one" solution)
<P> how to low level format it ?
partitioning can't be aplied using fdisk ?
<P> whazup?
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sun, 22 Aug 1999 21:33:30 -0400
<BR>From: Robert Rocconella <<A HREF="mailto:roko@worldnet.att.net">roko@worldnet.att.net></A>
<BR>Subject: module not found
<P> I have installed Mandrake 6.0 on a P166 system. It runs fine except for.
I have a 4mm DAT Archive PYTHON drive, booting off a SCSI 1Gig drive. On
bootup when the system looks at my Buslogic controller and identifies
devices, it shows the tape drive as st0. The unit was in the system when I
installed it. BUT during the bootup it will report module not found when it
gets to the part where I assume it is trying to initialize the driver used
to access the st0 device. I have been looking thru various sources of
documentation but cannot find a reference to the module not found problem or
where to install it from. Thanx in advance.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Mon, 23 Aug 1999 11:38:21 -0000
<BR>From: JUIN Aymeric <<A HREF="mailto:Aymeric.JUIN@DGI2000.com">Aymeric.JUIN@DGI2000.com></A>
<BR>Subject: RE: linux on a laptop
I'm a linux newbie.
I installed linux (redhat 5.2) on a laptop with an ATI rage LT PRO
AGP2X, and there's no driver for this graphic card to run Xwindow, I
tried to find one on the web, but without success, I also tried other
ATI drivers (like ATI rage pro and other MACH64 drivers) without
better results. Is there any solution ? Please help me...
<P> PS : sorry for my poor english.
<P><STRONG><EM>The </EM>Linux Gazette<EM> Editor replied:</EM></STRONG>
<BLOCKQUOTE>
Can you use the standard SVGA driver?
</BLOCKQUOTE>
<P><STRONG><EM>Aymeric responded:</EM></STRONG>
<P> No, it works so bad. it seems to interlace about 5 vertical stripes on the
screen. I think several linux-users have this problem, because ATI rage LT pro
is a widely used graphic card on notebook.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Mon, 23 Aug 1999 22:57:18 -0400
<BR>From: wible <<A HREF="mailto:wible@uplink.net">wible@uplink.net></A>
<BR>Subject: installing linux on laptop.
<P> i'm trying to fegure out haw to install linux on my laptop.but i can only
have a floppy or a cd-rom.they use the same slot.so how do you istall a cd
without a boot floppy? I'm comleattly new to this OS.please advise.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Tue, 24 Aug 1999 22:52:01 +0200
<BR>From: Hans Borg <<A HREF="mailto:Hans.Borg@Physics.umu.se">Hans.Borg@Physics.umu.se></A>
<BR>Subject: Color depth 8/16 and Xlib
<P> Hi everybody,
<P> I am not sure this is the right forum, but if anyone can give me
some hints to solve the problem or give an alternative FAQ-site it
would be utmost appreciated.
<P> I have written a number of Xwindow applications for special purposes.
They do all run without any problems if the Xserver is configured for
a color depth of 8. Actually those applications do not need many color-
map entries (less than 10). However, for other applications like xv
and netscape a color depth of 16 is preferred. There are no problem to
run eg. xv and netscape with a depth of 16 (I guess they set up their
own colormap). But if in depth 16 then my own applications can't set up
its color entries. The idea is to be able to run simultaneously both my
own applications and applications like xv,netscape with a reasonable color
resolution.
<P> To set up my colors I basically do:
<BLOCKQUOTE><PRE>
screen=3DDefaultScreen(display);
colormap=3DDefaultColormap(display,screen);
XLookupColor(diplay,colormap,"color",exact_color,screen_color);
</PRE>
or alternatively
<PRE>
XAllocNamedColor(.....);
</PRE></BLOCKQUOTE>
<P> When in depth 16 both XLookupColor and XAllocNamedColor both raises
the Xerror: BadValue (parameter out of range) ... something like this.
I don't know which parameter causing it and apart from display it must
be colormap or "color". It is hardly "color" and if so it must be the
colormap. I have checked the "visual" on colormap and it seems OK.
I have also tried XCreateColormap(...) and other "give it a chance"
methods but I am stuck.
<P> So, please, anyone having an idea, let me know.
<P> With my best regards.
<P> Hans.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Tue, 24 Aug 1999 18:57:47 -0500
<BR>From: Amy Bellows <<A HREF="mailto:enigma99@earthlink.net">enigma99@earthlink.net></A>
<BR>Subject: ls color
<P> Hi, I have a small yet annoying problem. I'm running RedHat Linux 5.2,
and I'm still fairly new to the whole OS.
<P> I can't get ls to display defined extensions in my chosen colors,
although it does color directories, executables, etc.. I have tried
changing definitions in /etc/DIR_COLORS, and get nothing. Is there
something I'm missing?
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 2 Jul 1999 00:18:00 -0400
<BR>From: Coleman, James (GEP) <<A HREF="mailto:james.coleman@gepex.ge.com">james.coleman@gepex.ge.com></A>
<BR>Subject: color ls headache
<P> OK. I've used Linux for just over a year but have a problem with one of
three Linux PCs in our household. On one, a 486DX 50, I get color ls on every
user ID except one. I've configured /etc/bashrc as usual (alias ls = "ls
--color") and as I've done on each of the other Linux boxes. An ls command
produced a colored display with every user except one! I've tried adding an ls
alias to that user's own .bashrc file but nothing helps. If I type "ls --color"
as that user, I get color! Without it, black and white. What might be going on
and what should I look for?
<P> The problem PC is running RedHat 5.2 with all the errata upgrades.
Stock kernel, though... The other PCs are all running version 6 (stock
kernels).
<P> Thanks!!!
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Wed, 25 Aug 1999 20:21:07 +0100
<BR>From: helen <<A HREF="mailto:helen@dougal1.freeserve.co.uk">helen@dougal1.freeserve.co.uk></A>
<BR>Subject: Suse Linux 6.1
<P> Hi All,
I am a new user (possibly) who is having problems setting up xf86config.
I have an old IBM PS1/50 which has an xga-2 video card in it, (2 megs
mem on
card). After trying a lot of the video card database entries, it still
refuses to work.
All other parameters in xf86config are correct.
Has anyone any idea which driver is compatible for the ibm xga-2 video
card?
<P> The problem starts when I type STARTX.
In most cases I get a screen which is nor resolvable, or, I get the
following message:
<PRE>
The file XF86_xxxx (binary of X-Server) does'nt appear to be a binary file.
Please check it or / and install a new X-Server binary.
</PRE>
<P> Regards to All.<BR>
Geoff <<A HREF=mailto:Geoff_G0GLW@yahoo.com>Geoff_G0GLW@yahoo.com</A>>
Geoff_G0GLW@yahoo.com
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Mon, 30 Aug 1999 20:58:36 -0300
<BR>From: Carlos Massolo <<A HREF="mailto:litos@ciudad.com.ar">litos@ciudad.com.ar></A>
<BR>Subject: Problems with Diamond SpeedStar A50
<P> I am new to linux and learning fast. I just got one problem when I use
startx or kde my screen just shows Black and gray stripes. I have a Diamond
SpeedStar A50 AGP card and a Samsung SyncMaster 3Monitor. I tried the Options
nolinear, noaccel and swcursor and none worked. Any help would be great.
<P> Litos
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Wed, 25 Aug 1999 12:48:22 -0400
<BR>From: wible <<A HREF="mailto:wible@uplink.net">wible@uplink.net></A>
<BR>Subject: Re: installing linux on laptop.
<P> i'm trying to fegure out haw to install linux on my laptop.but i can only
have a floppy <STRONG>or</STRONG> a cd-rom.they use the same slot.so how do you
istall a cd wethout a boot floppy?i'm comleattly new to this o/s.please advise.
<P><STRONG><EM>The Editor wrote to Wible, and Wible responded, adding:</EM>
</STRONG>
<P> it sez cdrom includes caldera open linux 1.3 and staroffice 4.0...
and no my laptop doe's not boot to cd.
is there a way to start the install from dos using a command line or
somthing?
and can you install over a network card in pcmica by booting to the floppy?
<BLOCKQUOTE><EM>
[You can install it over the network if you have another computer that
can act as an FTP server. Or as a NFS server, if your installation
program supports installing via NFS.
<P> As far as having a DOS/Windows command that installs Linux
(LINUX.EXE?), people have talked about this theoretically, but I don't
think it's ever been tried. -Ed.
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 26 Aug 1999 10:41:58 -0400
<BR>From: Mark Jenkins <<A HREF="mailto:jenkinsm@mint.net">jenkinsm@mint.net></A>
<BR>Subject: USR 33.6 Modem Help
<P> I am running redhat 6.0, I have tried to my modem going in minicom (say
already online) I have tied in the KDE PPP dialer (get modem busy error) I
have tried setting and the jumpers for coms 2,3,4 with coresponding IRQs.
Each time I do set the modem com port in the control panel. Any help
would be great, I assume it may be a string command, I just can't seem to
find anything on it.
<P> Thanks
Mark
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 26 Aug 1999 17:58:38 IST
<BR>From: Bala Krishna H.V. <<A HREF="mailto:balak@pushpak.india.hp.com">balak@pushpak.india.hp.com></A>
<BR>Subject: Telnet would not work
<P>
I installed Linux on my PC successfully.But when I try telnet or ftp to
log on to the PC I get the error "login incorrect".
I tried changeing the password and even removing it.But no use.
Finally I changed the default shell to sh.Still I can't log on.
Could you help?
<P> --<BR>
With Regards,<BR>
Bala Krishna<BR>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 01 Jul 1999 07:40:36 +0200
<BR>From: Christopher Richardson <<A HREF="mailto:rdn@tara.n.uunet.de">rdn@tara.n.uunet.de></A>
<BR>Subject: Help Wanted - How to best install glibc onto an existing system
<P> I have the SuSe 5.1 distribution on my machine which works fine - as I do
not want to fix a running system I need some advice on how to best install the
glibc package on my machine. Newer software is linked usually written to be
linked to this package. My computer is busy compiling the glibc package, but I
am going to wait until I hear from someone before I install.
<P> Thanks
Chris Richardson
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, Jul 02, 1999 at 12:15:06AM -0400
<BR>From: robert Nuzum <<A HREF="mailto:rnuzum@earthlink.net">rnuzum@earthlink.net></A>
<BR>Subject: Unzipping commands
<P> I would like some info on good sources about how to run commands,
especially when unziping files. I'm trying to get some sound on
Netscape but can't seem to get the downloaded x-audio file to be
recognized in order to unzip it. I'll probably stumble upon the
solution after playing around with it, but shortcuts would be
appreciated.
<P> I have SuSE Linux 6.1 installed.
<P>Bob
<BLOCKQUOTE><EM>
[There is an <tt>unzip</tt> command which will unzip *.zip files.
If Netscape won't unzip it on the fly, you may have to save it to
a file and unzip it yourself.
<P> There are several books now which give an overview of Linux
commands. Try your local bookstore. -Ed.]
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Wed, 4 Aug 1999 23:46:00 -0700
<BR>From: Mark Wagnon <<A HREF="mailto:mwagnon1@home.com">mwagnon1@home.com></A>
<BR>Subject: Article Idea: Setting up Procmail
<P> Hi,
<P> I found the article "Setting Up Mail for a Home Network Using Exim" (July
99) extremely helpful on setting up mail services for my home network. How
about a follow up on using procmail to filter mail into separate folders?
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sun, 29 Aug 1999 22:09:56 -0400
<BR>From: Steve Allen <<A HREF="mailto:steveallen@earthlink.net">steveallen@earthlink.net></A>
<BR>Subject: Publishing Dynamic IP address on startup
<P> I have my Linux machine hooked to an X-10 teleresponder so I can dial-up
and turn the Linux box remotely, and I have it set to dial my ISP as
soon as it boots. I want to publish the dynamic IP address given by my
ISP to my home page as soon as I connect. I've been successful getting
the dynamic IP address by referring to the variable $4 in the script
"/etc/ppp/ip-up" that's called by pppd. The problem is FTP'ing it to my
homepage. When I try FTP'ing with a script containing the following
line from the command line as root, it works fine (I have my
logon/passwd and init macro defined in .netrc in my Linux home directory
for root).
<P> ftp ftp.homepagesite.com
<P> However, when I insert the above line in my "/etc/ppp/ip-up" script,
nothing seems to happen as my homepage is not updated with the new IP
address. Any suggestions on how to easily publish my dynamic IP address
as soon as I log on? Thanks.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
<BR>From: peter <<A HREF="mailto:peter@anet.lv">peter@anet.lv></A>
<BR>Subject: IDE Zip drive
<P> Hello!
I have some problem!
How I can Install ZIP-Drive ATAPI verssion?
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Tue, 10 Aug 1999 22:25:57 EDT
<BR>From:Symeon Vafiadi <<A HREF="mailtoSVafiadis@aol.com:"SVafiadis@aol.com>></A>
<BR>Subject: AOL and minicom
<P> How do I dial from Linux using minicom having an AOL account? Everytime I
dial in it asks me for my login and when I put in my login name it says
incorrect login.
<a name="gen"></a>
<P> <hr> <P>
<!-- =================================================================== -->
<center><H3><font color="maroon">General Mail</font></H3></center>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 27 Aug 1999 20:04:32 +0200
<BR>From: Bjorn Eriksson <<A HREF="mailto:mdeans@algonet.se">mdeans@algonet.se></A>
<BR>Subject: SV: Ooops, your page(s) formats less-optimum<tm> when viewed in Opera (http://www.operasoftware.com/)
<BLOCKQUOTE><EM>
[Bjorn wrote in to say that recent issues of the <I>Gazette</I>
(starting with #39, April 1999) do not format properly under Opera.
Is anybody else experiencing this? Any clues about how to make Opera
happy? Here are sample screenshots of the middle of the screen:
<P>
<TABLE ALIGN=center BORDER=2 CELLSPACING=5 CELLPADDING=5><TR><TH>Opera</TH><TD>
<IMG SRC="gx/mailbag/eriksson.opera.jpg" TITLE="Opera">
</TD></TR><TR><TH>Internet Explorer</TH><TD>
<IMG SRC="gx/mailbag/eriksson.ie.jpg" TITLE="Internet Explorer">
</TD></TR></TABLE>
<P> Opera is a commercial web browser for Windows. A 30-day evaluation
version is available at <A HREF=http://www.operasoftware.com/>
www.operasoftware.com</A>. The Linux port is 25% complete; ports to
other platforms are also in progress. -Ed.]
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sun, 08 Aug 1999 17:43:37 +0530
<BR>From: Prakash Advani <<A HREF="mailto:prakash@freeos.com">prakash@freeos.com></A>
<BR>Subject: FreeOS.com
<P> Hello,
<P> I am posting this message to thank Linux Gazette for publishing my
article last December and all the readers who have responded positively
and helped in developing our website <A HREF=http://www.freeos.com>
www.freeos.com</A>
<P> The site is finally up and running and is being updated regularly. Any
more people willing to help can e-mail me.
<P> Regards,<BR>
Prakash
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 13 Aug 1999 02:14:21 +0200 (CEST)
<BR>From: Roland Smith <<A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl></A>
<BR>Subject: Re: Ramdisk for Linux
<P> Hi Mark,
<P> I've got a quaestion about your ramdisk article.
<P> AFAIK Linux uses all the memory that is not in use by programs as a
unified buffer-cache. So I'd guess that all frequently used files will
probably be cached in RAM, assuming you've got enough RAM.
<P> So why go to all the trouble of using ramdisks? Is there really an
substantial speed increase?
<P>Regards,<BR>
Roland
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 19 Aug 1999 00:49:03 -0400 (EDT)
<BR>From: Nicholas Bodley <<A HREF="mailto:nbodley@shell2.tiac.net">nbodley@shell2.tiac.net></A>
<BR>Subject: Original definition of bench mark
<P> It's quite possible that this is a surveying term, for accurately-located
reference markers embedded into the ground; these are used as working
references when doing a survey. I'm just about sure you'll see bronze
domes (almost flat), maybe 4" in diameter, surrounded by concrete, with
their exact latitude and longitude (and altitude?) marked on them.
Tampering with them is a criminal offense, I believe.
<P> Sorry not to offer much help in how the term came to mean what it does to
the computer community; perhaps the idea of comparing to a reference
explains it.
<P> Any surveyors "out there"?
<P> Regards to all.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sat, 28 Aug 1999 19:01:31 -0500
<BR>From: DENNIS L PHIFER <<A HREF="mailto:den1317@intellisys.net">den1317@intellisys.net></A>
<BR>Subject: inconsiderate
<P> My opinion you have to much stuff on the net . U got in the way of my
search. Out of 391 u had at least 350 . Hope your paper goes under with
highest malice.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sun, 29 Aug 1999 11:40:20 -0400
<BR>From: Mark Moran <<A HREF="mailto:mmoran@mmoran.com">mmoran@mmoran.com></A>
<BR>Subject: DNS for home network
<P> I just wanted to drop a quick note of thanks for the article: "DNS for the
Home Network" in the August 1999 (Issue 44) issue of the Linux Gazette. I
had tried on several occasions to setup bind on my home Linux server only to
become frustrated and give up after hours of work. Well thanks to your
succinct and accurate article my home DNS server is working great now for a
few hours!
<P> Mark Moran
<!--===================================================================-->
<P> <hr> <P>
<H5 ALIGN=center>
This page written and maintained by the Editor of <I>Linux Gazette</I>,
<A HREF=mailto:gazette@ssc.com>gazette@ssc.com</A><BR>
Copyright © 1999, Specialized Systems Consultants, Inc. <BR>
Published in Issue 45 of <i>Linux Gazette</i>, September 1999</H5>
<!--===================================================================-->
<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>"</H4>
<HR>
<center>
<table cellpadding=7><tr><td>
<IMG SRC="../gx/bytes.gif" border=1 ALT="News Bytes">
</td><td>
<H3>Contents:</H3>
<ul>
<li><a HREF="#general">News in General</a>
<li><a HREF="#software">Software Announcements</a>
</ul>
</td></tr></table>
</center>
<a name="general"></a>
<p><hr><p>
<!-- =================================================================== -->
<center><H3><font color="green">News in General</font></H3></center>
<P> <hr> <P>
<!-- =================================================================== -->
<center><IMG ALT=" " SRC="gx/cover66.jpg"></center>
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
October 1999 <I>Linux Journal</I>
</font>
</H3>
<P>
The October issue of <A HREF="http://www.linuxjournal.com/"><I>Linux
Journal</I></A> will be hitting the newsstands in mid-September.
This issue focuses on embedded systems.
<P> <I>Linux Journal</I> now has articles that appear "Strictly On-Line".
Check out the Table of Contents at
<A HREF="http://www.linuxjournal.com/issue66/index.html">
http://www.linuxjournal.com/issue66/index.html</A> for articles in this
issue as well as links to the on-line articles.
To subscribe to <I>Linux Journal</I>, go to <A
HREF="http://www.linuxjournal.com/ljsubsorder.html">
http://www.linuxjournal.com/subscribe/ljsubsorder.html</A>.
<P>
<font color="green">
For Subcribers Only</font>: <I>Linux Journal</I> archives are now available
on-line at <A
HREF="http://interactive.linuxjournal.com">http://interactive.linuxjournal.com/</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">TuxFinder.com Launched
</FONT>
</H3>
<P> <A href="http://www.tuxfinder.com"><b>TuxFinder.com</b></A> is a
Linux-dedicated group of search engines designed to
help you find anything you need as a Linux user. Whatever you are looking
for: packages, RFCs, FAQs, or HOWTOs, TuxFinder.com can help you.
TuxFinder.com is also a mirror for the Linux Documentation Project. With
both English- and French-language capability, it is growing in popularity on
both sides of the Atlantic due to its simplicity, power and efficiency.<br>
<P> <p>Co-founder Olivier Macchioni said about TuxFinder.com: "As a Linux
user,I wanted something like this, and wondered how easy it was to program.
Well, it's easy and fun - and hopefully useful for some other Linux users
too."<br>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif" ALIGN=left>
<IMG ALT="[Debian logo]"
SRC=gx/debian.jpg ALIGN=right WIDTH=50 HEIGHT=61>
<FONT COLOR="green">Debian chooses new logo
</FONT>
</H3>
The <A HREF=http://www.debian.org>Debian</A> project has chosen "The Swirl" as
its new distribution logo.<BR> Actually, a pair of logos was chosen. This is
the "open use" logo, which anybody can use to refer to Debian with. The
"official" logo is only for Debian-endorsed products. It shows the swirl
rising up like smoke out of a genie's bottle. See
<A HREF=http://www.debian.org/logos/> www.debian.org/logos/</A> for more
samples of both logos.
<BR CLEAR=all>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Corel preview Corel LINUX
</FONT>
</H3>
<P> San Jose, California August 10, 1999 -- Today at LinuxWorld in San Jose,
Corel Corporation (NASDAQ: CORL, TSE: COR) unveils its distribution of the
Linux operating system, Corel LINUX, to the public for the first time.
<P> Corel LINUX is based on the Debian/GNU distribution of the Linux OS and
includes the K Desktop Environment (KDE). In its distribution, Corel has
enhanced the graphical user interface and created a new installation
program that greatly simplifies the installation process. A beta version of
Corel LINUX will be available in September 1999, and the first release is
planned for the end of the year.
<P> Corel LINUX will be available as a stand-alone product and will also be
bundled with the upcoming WordPerfect Office for LINUX suite, which is
expected to be available in early 2000. The prices for both the stand-alone
version and the suite will be announced at a later date.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">MandrakeSoft announces North American Support
</FONT>
</H3>
<P> Dallas, TX August 17th, 1999. MandrakeSoft SA, publisher of
the popular Linux-Mandrake, announced today the selection of Bynari
Systems Group to provide Mandrake's customers in North America with
complete support services.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Upcoming events
</FONT>
</H3>
<table cellpadding=10 border=3 width=100%>
<tr>
<td valign=top>
<b>Atlanta Linux Showcase</b><BR>
<td valign=top>
October 12-16, 1999<BR>
Atlanta, GA<BR>
<A
HREF="http://www.linuxshowcase.org">http://www.linuxshowcase.org</A>
<P>
<tr>
<td valign=top>
<b>COMDEX Fall /<BR>Linux Business Expo</b><BR>
<td valign=top>
November 15-19, 1999<BR>
Las Vegas, NV<BR>
<A
HREF="http://www.comdex.com/comdex/owa/event_home?v_event_id=289">http://www.comdex.com/comdex/owa/event_home?v_event_id=289</A>
<P>
<A HREF=http://www.zdevents.com/linuxbizexpo/>
http://www.zdevents.com/linuxbizexpo/</A>
<BR>
<P>
</TD></TR></TABLE>
<P> A more complete list of events is at
<A HREF=http://www.linuxjournal.com/events/index.html>
www.linuxjournal.com/events/index.html</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Operating System Supertest
</FONT>
</H3>
<P> The massive Operating System Supertest, held by
<A HREF=http://www.reviews-r-us.com>reviews 'r' us</A> has begun
work today, and Linux still looks set to be the star of the show. Still, the
Supertest as a whole should a good read, and with a bit of luck draw more
people away from the windows domination. This supertest has over 30 Articles
and interviews, and countless reviews of free, and commercial software. With
over 40 volunteers offering their services, the date of publication has been
reduced to the end of August.
<P> We still need help with this supertest though, and if you feel you could
help at all, in any way, please email Sandy Smith
( sandy@reviews-r-us.com )and offer your services. We need this to be the
biggest, best ever definition of Operating Systems, and a comparison of many
types, and articles that everyone from beginner to expert will find
interesting.
<P> Current roles needing filled: PR person, Artwork, reviewing of software.
<P> Do you need more info? Background info? please please tell me if you do
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">O'Reilly releases Perl CD Bookshelf
</FONT>
</H3>
<P> Sebastopol, CA--Arguably the best Perl books in print--"Programming
Perl", "Learning Perl", "Perl in a Nutshell", "Perl Cookbook",
"Learning Perl on Win32 Systems", and "Advanced Perl Programming"--are
now available on a single CD ROM in the immensely convenient "Perl CD
Bookshelf" by O'Reilly & Associates.
<P> Together these 6 books would retail for $199.70, but the "Perl CD
Bookshelf", which includes all 6 on a searchable CD-ROM as well as a
hard copy of "Perl in a Nutshell", sells for only $59.95.
<P> For more information about the book see:
http://www.oreilly.com/catalog/perlcdbs/
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Tru64 UNIX and LINUX Update
</FONT>
</H3>
<P> Tru64 UNIX & LINUX JumpStart<BR>
Las Vegas, NV September 8-10<BR>
Orlando, FL November 1-5
<P> Due to popular demand, ISA has extended it's UNIX JumpStart to
include LINUX, the fastest growing Operating System in the World.
<P> The Digital UNIX JumpStarts have been a huge success. Students have raved
about this unique training venue which has enabled them to get a quick and
comprehensive immersion into UNIX technology in a time efficient manner. Check
out our website for the new LINUX Track and the new and updated Tru64 UNIX
courses.
<P>
<A HREF="http://www.softadv.com/UNIX/Digital_UNIX_JumpStart/Tru64_UNIX_&_LINUX_Home_Page.htm">
www.softadv.com/UNIX/Digital_UNIX_JumpStart/Tru64_UNIX_&_LINUX_Home_Page.htm</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Ziatech introduces LinuxPCI Development System
</FONT>
</H3>
<P> <A HREF=http://www.ziatech.com/>Ziatech Corporation</A>,
the leading innovator of applied computing solutions
for telecom and Internet applications, introduced today the first in a series
of LinuxPCI development systems, a rack mount CompactPCI=AE development
platform using the Linux(tm) operating system. Designed to speed the
development of carrier-grade computing applications, the new LinuxPCI 1000
Development System for Applied Computing combines the reliable, open CompactPCI
architecture with MontaVista Software's Hard Hat(tm) Linux software. Open
CompactPCI platform for OEM fast-track development Original equipment
manufacturers on the fast-track to develop Linux-based applications for DSL
systems, PBX systems, IP telephony, voice processing, and other telecom and
Internet equipment, now have an open architecture platform designed with the
bandwidth, reliability and features those applications require. The LinuxPCI
1000 comes with the first version of Linux designed specifically for embedded
applications. The Hard Hat Linux operating system from MontaVista Software,
Inc. (Sunnyvale, CA, <A HREF=http://www.mvista.com/>www.mvista.com</A>)
combines the cost-effectiveness, openness and flexibility of Linux with the
reliability and responsiveness required for embedded and applied computing
applications. MontaVista will supplement the operating system's enhancements
with comprehensive technical support, porting and customization services.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Clustering for TurboLinux
</FONT>
</H3>
<P> TurboLinux is releasing the industry's first high-availability clustering
software solution for the enterprise-TurboCluster Server. TurboCluster Server
is the industry's FIRST Linux clustering application available and scalable for
Web servers on Intel and Alpha architecture platforms. <STRONG>Unlike Beowulf
clustering systems that are designed for highly specialized scientific
computing applications, TurboCluster Server delivers clustering technology for
Linux servers running mission-critical Web applications.</STRONG> For Net
businesses, the availability of TurboCluster Server offers, for the first time,
a low-cost alternative to proprietary and more expensive Microsoft NT and UNIX
cluster solutions. Additional information on TurboCluster Server, including a
white paper and FAQ, is available at
<A HREF=http://www.community.turbolinux.com>www.community.turbolinux.com</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Linux Webdrive available
</FONT>
</H3>
<P> SAN DIEGO, Aug. 8--StoragePoint.Com announced that it now offers a Linux
version of WebDrive, providing secure file management features never before
available to Linux users.
<P> Linux WebDrive from StoragePoint becomes the only Web-based file manager
offering automatic folder management, encryption, compression, with integrated
e-mail, calendar, and contact manager. The free service is compatible with
Netscape 4.5+ and Linux version 2.2.
<P> For more information see <A HREF=http://storagepoint.com>
storagepoint.com</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">GBdirect Delivers UK's Largest Ever Linux
Training Programme?
</FONT>
</H3>
<P> Release Date: 11th August, 1999.
<P> GBdirect and Planet Online, both leading players in the European market for
Linux skills and services, today announced what is believed to be the UK's
biggest ever Linux training programme. Over the next six weeks, 60 delegates
from Planet Online will attend GBdirect's basic, intermediate and advanced
courses in Linux Systems Administration. The students will be engineers and
technical staff from Planet's Leeds headquarters, the home of Freeserve, and
already the greatest concentration of Linux expertise in Europe.
<P>
The GBdirect's company web site is at
<A HREF=http://www.gbdirect.co.uk>www.gbdirect.co.uk</A> and their Linux
training site is at <A HREF=http://www.linuxtraining.co.uk>
www.linuxtraining.co.uk</A>.
The Planet Online web site can be visited at
<A HREF=http://www.theplanet.net>www.theplanet.net</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Linux Press book: The Best of Linux Distributions
</FONT>
</H3>
<P> PENNGROVE, CA (August 16, 1999) <A HREF=http://www.linuxpress.com> Linux
Press</A> today announced the second title in its new Linux Resource Series.
Designed to provide comprehensive documentation for the latest Linux
distributions and concepts, the Linux Resource Series enables users of all
levels to access Linux information.
<P> The Best of Linux Distributions is based on Matt Welshs cult classic Linux
Installation & Getting Started. Revised, expanded, and updated, The Best of
Linux Distributions includes a general introduction to Linux; detailed
explanations of drive partitioning, filesystems, and software package
installation; distribution-specific instructions for installing Debian
GNU/Linux, Slackware, Caldera OpenLinux, and Red Hat Linux; a complete,
low-stress Linux tutorial; system administration under Linux; X Window; and
Networking.
<P> Also included are 4 CD-ROMs containing the latest Linux operating system for
Red Hat Linux, Caldera OpenLinux, Debian GNU/Linux, and Slackware.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Linux System Solution Limited (LSSL) and INFOMATEC - IGEL Asia LTDP cooperate
</FONT>
</H3>
<P> Linux System Solution Limited (LSSL) and INFOMATEC - IGEL Asia LTD have
today formally announced their co-operation in the Internet device, Thin
Client and Networking arena.
<P> IGEL Asia LTD will endeavour to promote, market and educate customers
towards a complete Linux based Thin Client / Server solution based on
TurboLinux's product ranges complementing IGEL's Firmware. LSSL will
help promote, support, develop application solutions and, provide
maintenance and support services in the use of Thin Clients for
corporate, commercial and educational use.
<P> LSSL and IGEL will co-operate in the localisation and development of
Chinese applications and solutions via their respective engineering and
research departments.
<P>Linux System Solution Limited is a strategic
partner of TurboLinux who are deemed as the major Linux player in the
Asian Market. The Japanese version of TurboLinux has been outselling
Microsoft Windows and this trend looks set to continue throughout the
Asian Region.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">TurboLinux partnership with Enlighten Software
</FONT>
</H3>
<P> SAN FRANCISCO, Calif. (August 9, 1999) - TurboLinux and Enlighten Software
Solutions, Inc. (Nasdaq: SFTW), announced today a strategic partnership to
bundle the first enterprise-ready workgroup systems management software for
Linux with the full line of TurboLinux products.
<P> TurboLinux will be bundling a full multi-platform working version of
EnlightenDSM administration and event management software on its entire
product line for immediate, single-point management of all TurboLinux
machines. In addition, the bundled product is immediately ready for
customers to monitor and manage their existing heterogeneous Linux, UNIX
and Windows environments from the same single console.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">32BitsOnline.com to Develop UnixApps.com
</FONT>
</H3>
<P> Vancouver, BC - August 19, 1999 - Medullas Publishing Company, parent
company of 32BitsOnline Magazine, and Linux Applications announced its
new upcoming site, Unix Applications
(<A HREF=www.UnixApps.com>www.UnixApps.com</A>), today.
<P> The new software download portal will merge Linux Applications and
include applications from all Unices including FreeBSD and Herd
operating systems. Moreover, Unix Applications will also feature
applications from BeOS and other operating systems.
<P> Unix Applications will feature a brand new interface and will be rolled
out along with <A HREF=0x20.com>0x20.com</A> and
<A HREF=linuxtalks.com>0x20.com</A> this Fall.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Network giants install Linux-based test bed
</FONT>
</H3>
<P> Chicago, IL (August 23, 1999) -Linux continues to receive solid backing from
major players, with Cabletron Systems, Xylan and FORE Systems installing
network test equipment based on the popular open-source software. Designed
by benchmarking specialist Neal Nelson & Associates, the Network Stress Test
is the first large-scale tool to use real clients and servers to send actual
network traffic at very high bit rates. The speed and bandwidth capacity of
the Linux platform, coupled with Nelson's unique testing methodology,
enables manufacturers and potential buyers alike to evaluate new products
using the most extreme, real-world network traffic patterns.
<P> Unlocking the power of Linux
"Linux is an excellent operating system for large clusters of computers,"
comments John Hynds, Director of Systems Engineering for Xylan. "It has
very efficient LAN drivers, can generate high volumes of network traffic and
comes with a full set of client and server application software. Also,
there are no additional licensing charges when it is installed on a cluster
with any number of individual machines. It is a very powerful and
cost-effective option."
<P> Real network traffic provides superior testing
While other testing methods generate artificial packets of data from
simulated applications, Nelson's breakthrough in network testing enables
technicians to quickly and easily configure thousands of real clients
talking to thousands of real servers in a laboratory environment. Billions
of bits per second of real network traffic are generated by the technique,
and the network throughput can be immediately analyzed to uncover problem
areas.
<P> "This type of testing makes a lot of sense," says Kevin Brown, Senior
Marketing Director for Cabletron. "Using high volumes of real network
traffic is completely different from, and in some ways superior to, testing
with artificial traffic generators. Neal Nelson's method assures us that we
have put our products through the most realistic stress test possible."
<P> Automated test execution:
the Network Stress Test is a fully automated benchmark that can conduct long
and complicated tests with just a few clicks of the mouse. Vendors can now
conduct quality testing more efficiently, ensuring that their products are
of the highest reliability before they are released in the market. This
automation significantly improves on the industry standard 30-minute tests,
which needed to be re-set manually.
<P> The Network Stress Test runs on a cluster of Linux-based computers with
multiple local area network adapters in each machine. The infrastructure can
support 10,000 simultaneous user sessions and perform a variety of common
network activities like web browsing, Telnet/Rlogin sessions, FTP file
transfers, email, streaming video and multicast communications.
<P> Neal Nelson, founder of Neal Nelson & Associates, originally developed
the testing infrastructure for use at the US Army Technology Integration Center
in Fort Huachuca, Arizona. He comments: "Modern networks are being challenged
to handle increasingly complex loads that include huge volumes of World Wide
Web traffic, audio streams, video streams and multicast data. These rapid
innovations in network technology required that we develop similar advances in
network testing techniques. The result is our Network Stress Test - one tough
test that can assure vendors and buyers that their products won't let them down
in high-traffic, real-world conditions."
<P> About Cabletron:
Cabletron Systems is a pioneer in high-performance computer networking and
provides dependable network access and communications to millions of people
worldwide. With scaleable products designed for Fortune 1000 enterprise
networks, service providers and small businesses, Cabletron provides simple,
reliable and cost-effective business solutions for the information age.
<P> About FORE Systems:
FORE Systems is a leading global supplier of high performance networking
solutions. FORE's Networks of SteelT deliver the increased capacity,
resiliency and scalability necessary to build networks that last. Thousands
of enterprise and service provider customers worldwide have put FORE
Systems' solutions at the heart of their networks.
<P> About Xylan:
Xylan is an Alcatel company focused on developing powerful internetworking
products for enterprises and service providers. For enterprise customers,
Xylan's networks are so powerful that they can bypass an entire generation
of network change. They combine ease of management, high performance, and
easy integration with existing equipment and software. For service
providers, Xylan builds equipment for high-speed multi-service VPNs. Xylan's
solutions integrate broad connectivity options, advanced software for
partitioning and security, and any-to-any switching. Xylan helps service
providers build profitable networks.
<P> About Neal Nelson & Associates:
Neal Nelson & Associates is an independent testing and consulting company
founded in 1973. It is not affiliated with any manufacturer or vendor and
offers a number of products and services including the Business Benchmark,
the industry's premier multi-tasking artificial batch benchmark. The firm
has its primary office and a testing laboratory in Chicago.
Neal Nelson & Associates' client list includes companies such as: FedEx,
IBM, McDonald's, Northern Telecom, Sprint and major government agencies
including the Internal Revenue Service, US Department of the Air Force, US
Department of the Navy and US Department of the Army.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Aspen Systems ships 64-bit Alpha Linux
</FONT>
</H3>
<P> Wheat Ridge, Colorado, August 23, 1999 -
<A HREF=http://www.aspsys.com>Aspen Systems, Inc.</A>, a leading
high-performance computer designer and integrator, has commenced shipping its
Twin Peaks II line of 667MHz, 64-bit dual-Alpha 21264 processor workstation,
server, and cluster solutions.
<P> Twin Peaks II is a ruggedized line of custom solutions that incorporates
the world's fastest microprocessor technology with high-performance hardware
and the latest Linux and Tru64 UNIX versions to create performance-optimized
solutions for key markets such as scientific, multimedia, ISP, and other
critical applications. At SPECfp95 53.7, Twin Peaks II offers not only the
fastest Linux and UNIX processing, but also a price/performance ratio that is
up to eight times better than its nearest competitor.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">News from LinuxMall
</FONT>
</H3>
<P> Here at LinuxMall.com we've
finally unleashed our new <A HREF=http://www.linuxmall.com>web site</A>,
and we're very pleased with the results. We've added tons of new features, and
improved old ones.
<H3> Legislative Lunacy</H3>
<P> Some very scary pieces of legislation are floating around these days. The
National Conference of Commissioners on Uniform State Laws (NCCUSL) has voted
in favor of The Uniform Computer Information Transactions Act (UCITA). The
UCITA would deregulate software licensing - something that would allow software
publishers more power and guarantee the end user even fewer rights.
<BLOCKQUOTE><EM>
[For more information about this, see
<A HREF=http://www.linuxjournal.com/articles/currents/005.html>
Shrink-Wrapped UCITA</A> on the <I>Linux Journal</I> web site. -Ed]
</EM></BLOCKQUOTE>
<H3>Linux and Education</H3>
<P> Two Open Source projects focusing on education have been initiated
recently. SEUL-EDU is part of the Simple End User Linux project and provides a
mailing list and central Homepage for all aspects of educational uses of Linux,
by teachers, parents, and students. You can find out more about SEUL-EDU at:
<A HREF=http://www.seul.org/edu/>www.seul.org/edu/</A>
<P> The OpenClassroom Initiative has announced a distribution and server tools
designed to be of use in an educational environment. All of the materials are
available free of charge and are under the GNU Public License. You can check
out the OpenClassroom Inititiative at:
<A HREF=http://www.openclassroom.org/developers>
www.openclassroom.org/developers</A>
<P> --------------------------------------------------------------------------------
<H3>Cracking Windows2000 beta</H3>
<P> <A HREF=http://LinuxMall.com/News/990806_ESR.html>Eric S. Raymond comments
</A> on Microsoft's latest publicity stunt: putting a Windows2000 beta machine
on the Net and daring anyone to crack it. Someone did, apparently, but it
wasn't up long anyway - it promptly crashed under the load. Eric explains why
he doesn't think that Windows is a platform that's capable of being secure or
stable.
<P> <A HREF=http://www.LinuxMall.com/announce>More Linux Newsletter
articles</A>. Distributed via GPL.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Seagate is Linux-compatible
</FONT>
</H3>
<P> COSTA MESA, Calif., June 28, 1999 -- <A HREF=http://www.seagate.com>
Seagate Technology, Inc.</A> (NYSE:
SEG) today announced that its entire line of tape backup drives has
been certified with Linux, which is quickly gaining momentum as a powerful
network operating system for servers. After thorough testing, Seagate
received certification on its Hornet Travan, Scorpion DAT and Sidewinder
AIT tape drives through the Linux tape certification program, managed by
Enhanced Software Technologies, Inc., (EST).
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">PC-Tel software modem
</FONT>
</H3>
<P> San Jose, CA - August 2, 1999 - <A HREF=http://www.pctel.com>PC-TEL</A>
announced the availability of the industry's first Linux-compatible software
modem. This newest version of PC-TEL's popular host signal processing (HSP)
technology will facilitate the availability of low-cost, Internet-enabled
devices featuring the Linux open-source operating system.
<P> HSP modems offer leading
hardware OEMs a faster time to market, higher system reliability and a
lower cost of manufacturing. Perhaps more importantly, these solutions
are much more flexible than traditional hardware modem technology,
enabling easy modem upgradeability and international customizability
through simple software changes. The Caldera OpenLinux 2.2 version and
Red Hat Linux 6.0 of PC-TEL's Linux-PCI based MicroModem are available
immediately to OEMs developing systems requiring Internet access.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Linux Links
</FONT>
</H3>
<P> Linus announced his intention for a
<A HREF=http://www.kt.opensrc.org/kt19990819_31.html#9>kernel code freeze</A>
to pave the way for Linux 2.4. (Most of the discussion in this thread is
about the state of the ISDN drivers.)
<A HREF=http://www.mercurynews.com/svtech/news/special/linus/>
"Linus the Libertator"</A> -- a San Jose Mercury-News interview with Linus
that discusses his background, family and life.
<A HREF=http://atv.ne.mediaone.net/linux-dvd/ http://livid.on.openprojects.net/>
DVD drives and Linux</A>: the current state of the art. DVD is also
mentioned in an <A HREF=bennet.html>article by Bill Bennet</A> in this month's
<I>Gazette</I>.
<P> <A HREF=http://www.zdnet.com/sr/stories/news/0,4538,2310031,00.html>
Linux Not Mission Critical Ready? IBM says 'think' again</A>. ZDnet article.
Thanks to LinuxMall for bringing this to our attention.
<P> <A HREF=http://207.240.121.247/airport.jpg>Scary airport photo</A>.
<a name="software"></a>
<P> <hr> <P>
<!-- =================================================================== -->
<center><H3><font color="green">Software Announcements</font></H3></center>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Sun acquires StarOffice, makes it available for download
</FONT>
</H3>
<P> Sun Microsystems has acquired Star Division, the German company who made
the StarOffice office suite. For a free download or a $9.95 CD (plus
shipping), point your browser to <A HREF=http://sun.com>sun.com</A>.
<P> Sun plans to make the application suite more web-centric, so that you can
use it via a web browser.
<P> The source code will be available through Sun's Community Licensing
program to encourage industry-wide collaboration on future versions of the
software.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">C.O.L.A software news
</FONT>
</H3>
<P> <A HREF=http://digitalux.netpedia.net>OpenDIS</A> -- Open Digita Services
0.0.2. A library and utility program for cameras such as the Kodak DC-220 and
DC-260 that run Flashpoint's Digita Operating system. The utility ("ks") is a
simple command-line program for standalone downloading, taking, deleting of
photos and querying and moding the camera.
<P> <STRONG>r2d2</STRONG> uses a configuration file rather than the symlinus
of System V Init.
<DL COMPACT>
<DT> FTP site
<DD> <A HREF=ftp://ftp.guug.de/pub/members/truemper/r2d2/>
ftp.guug.de/pub/members/truemper/r2d2/</A>
<DT> Mailing list
<DD> <A HREF=http://www.guug.de/lists/>
www.guug.de/lists/</A>
<DT> Rationale
<DD> <A HREF=http://www.guug.de/lists/r2d2/msg00012.html>
www.guug.de/lists/r2d2/msg00012.html</A>
</DL>
<P> Weekly Linux Newsletter. No spam, no advertising, just heaps of Linux
tips, tricks and news from the world of Linux.
<A HREF=mailto:subscribe@thebits.co.uk>subscribe@thebits.co.uk</A>.
<P> <A HREF=http://reality.sgi.com/raju/software.html>Hinv</A> produces a
concise hardware inventory of your system. GPL.
<P> <A HREF=http://uhura.biologie.uni-freiburg.de/~drabiger/>KStock</A> -- a KDE stock ticker.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">H-P Openmail to support Linux
</FONT>
</H3>
<P> PALO ALTO, Calif., Aug. 2, 1999 -- Hewlett-Packard Company today
announced that OpenMail 6.0, HP's strategic business-messaging and
collaboration solution for UNIX(R) system computers, also will support
the Linux operating system. By supporting Linux, OpenMail 6.0 will
provide its upgraded functionality and e-services(1) capabilities to
the growing number of Linux-based businesses, offering a low-cost
alternative to other enterprise-messaging solutions.
<P> HP expects OpenMail for Linux to be available in September. A free
beta version is available now on the Internet at
<A HREF=http://www.hp.com/go/openmail>http://www.hp.com/go/openmail</A>.
<P> "HP believes that many Linux-based businesses need the type of proven
enterprise capabilities that today's OpenMail customers enjoy," said
Nigel Upton, general manager of HP's OpenMail business. "OpenMail
gives the Linux community a compelling alternative to 'generic'
Internet e-mail servers."
<P> In addition to robust Internet e-mail-standards support, <STRONG>
the Linux edition of OpenMail will include rich support for Microsoft(R)
Outlook (including full wide-area calendar/schedule access)
</STRONG>
and OpenMail 6.0's new Web client.
<P> More OpenMail information is available at on the web at
<A HREF=http://www.hp.com/go/openmail>http://www.hp.com/go/openmail</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Voice over IP from Vovida Networks
</FONT>
</H3>
<P> First Free Open Source (GNU LGPL) MGCP and RTP Stacks Running On Linux
Operating System Available from Vovida Networks
<P> MGCP is a protocol used for controlling Voice over IP (VoIP) Gateways
from external call control elements. MGCP is the emerging protocol that
is receiving wide interest from both the voice and data industries. RTP
is a protocol used to carry streaming real-time multi-media data over IP
Networks.
<P> For further information about Vovida Networks, support packages and
downloading of the MGCP and RTP stacks, please visit the Vovida Networks
web site at <A HREF=http://www.vovida.com>www.vovida.com</A>.
Download code at <A HREF=http://www.vovida.com/sub_mgcp.html>
www.vovida.com/sub_mgcp.html</A> and
<A HREF=http://www.vovida.com/sub_rtp.html>www.vovida.com/sub_rtp.html</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Cygnus Shipping Code Fusion IDE for Linux
</FONT>
</H3>
<P> LINUXWORLD, San Jose, Calif., August 09, 1999 - Cygnus Solutions, the
leader in open-source software, announced today it is shipping Code
Fusion*, the industry's highest performing(1), most complete Integrated
Development Environment (IDE) for Linux developers. Code Fusion IDE makes it
possible for developers familiar with programming on Windows platforms to
quickly become productive in developing applications for Linux.
<P> With Code Fusion, Cygnus combines the latest Cygnus-certified, open-source
GNU tools release with an intuitive graphical IDE framework. It features a C,
C++, and Java tools project manager, editor, graphical browsers and the Cygnus
Insight debugger.
<P> Code Fusion IDE is priced at $299. For more information see
<A HREF=www.cygnus.com/codefusion>www.cygnus.com/codefusion</A>.
<P> Cygnus also announced version 2.0 of its <STRONG>GNUPro Development
Kit</STRONG>. See <A HREF=http://www.cygnus.com/linux>
www.cygnus.com/linux</A> for details.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Magic Software news
</FONT>
</H3>
<P> At a press conference held at the LinuxWorld Expo in San Jose, Jack Dunietz
(CEO of <A HREF=http://www.magic-sw.com>Magic Software Enterprises</A>),
announced that Magic had ported its
award-winning e-commerce solution (eMerchant ) to the Linux platform.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Intel LANDesk Management Suite
</FONT>
</H3>
<P> AMERICAN FORK, UT, Aug. 9, 1999 -- Intel Corporation today announced it has
extended the Intel LANDesk Management Suite to provide support for Linux-based
systems. A new software module for Intel LANDesk Management Suite 6.3,
available today for download from the Internet, enables IT managers to
inventory the hardware and software assets on Linux-based laptops, PCs and
servers and take remote control of those systems when diagnosing or repairing
problems. "As many of our customers deploy Linux-based systems throughout
their organizations, especially for web, e-commerce and file and print servers,
it is imperative that they have the tools to manage and maintain these
heterogeneous environments," said Ed Ekstrom, vice president and general
manager for Intel's Systems Management Division. "Intel is committed to
supporting IT managers across the application environments they support."
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">HELIOS slashes cost of network computing
</FONT>
</H3>
<P> August 10, 1999 =8B Garbsen, Germany <A HREF=http://www.helios.com>HELIOS
Software GmbH</A>, a leading vendor of network and prepress server software,
announced a new 5-user version of EtherShare to retail at just $1,490 USD.
<P> Helios EtherShare 2.5.1 offers state-of-the-art file, print, font, mail and
timeservers with extremely fast AppleTalk routing, AppleShare IP file
transfers, and user friendly remote administration. And, when combined with
PCShare, EtherShare OPI 2.0, PDF Handshake and Print Preview, the Helios server
suite provides a true cross-platform solutio n that can handle even the most
demanding networking and printing environments.
<P> Smart Ideas for Better Networking HELIOS software products support the UNIX
and Pentium-based Linux operating systems, in addition to Apple Computer's
new Mac OS X Server platform.
<P> Helios products run on powerful and scalable servers from Apple
Computer, Data General, Digital, HP, IBM, Motorola, a wide vareity of
Pentium-based CPUs, SGI, and Sun, providing reliable cross-platform
support for Macintosh, DOS/Windows, Windows 2000, Linux and UNIX-based
clients. Distributors sell Helios products worldwide to value-added
resellers who provide complete networking solutions to customers. Helios
software products are also available as part of OEM solutions by many
major vendors in the prepress industry.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Stalker CommuniGate Pro 3.1
</FONT>
</H3>
<P> MILL VALLEY, CA - August 9, 1999 - Stalker Software, Inc. today announced
the version 3.1 of their hi-end CommuniGate Pro messaging system. CommuniGate
Pro is a Unified Messaging Server which supports most major operating systems.
CommuniGate Pro is recognized for its many features, high speed and
reliability.
<P> Since its first commercial release in September 1998, Stalker has expanded
the operating systems it supports to include Linux/LinuxPPC, Solaris, FreeBSD,
WindowsNT, MacOS X, BSDi, AIX, D/Unix, and IRIX. On all platforms, CommuniGate
Pro presents the same interface and uses the same file formats, allowing any
organization to switch server platforms in less than an hour.
<P> CommuniGate Pro can support 100,000-200,000 accounts from one server making
it a viable solution for small to mid-size ISP's. For extra large ISP's
handling millions of accounts, CommuniGate Pro offers clustering support.
<P> In addition, the new 3.1 version of CommuniGate Pro supports Personal Web
Sites with automated publishing. Users can create their own Web sites and
upload web files to the CommuniGate Pro server using any composer application
that supports the HTTP PUT method (like Netscape(r) Composer). Besides,
Personal Web Sites can be updated using simple HTML forms. Support for
uploading via the CommuniGate Pro FTP server should follow in the next release.
<P> CommuniGate Pro supports secure connections for all services it supports.
Not only the HTTP services (Web Administration and WebUser interface to E-mail)
can be used via secure internet connections, but all other communications, such
as IMAP, POP, SMTP, LDAP, ACAP can be secured.
<P> There is a Free Trial Version available at
<A HREF=http://www.stalker.com/CommuniGatePro/>
www.stalker.com/CommuniGatePro/</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Giganet cLAN (MPI Software Technology)
</FONT>
</H3>
<P> At Linux World, <A HREF=http://www.giganet.com>Giganet</A> announced that
MPI Software Technology, Inc. will distribute its cLAN server cluster
interconnects for Windows NT and Linux. The cLAN cluster interconnects,
combined with MPI Software Technologys MPI/Pro (Message Passing Interface)
software, enable compute-intensive applications to scale at new levels of
performance at a very low-cost.
<P> Applications such as weather modeling, fluid flow analysis, real-time ray
tracing and molecular modeling, traditionally have been run on supercomputers.
Through the clustering of high-performance Windows NT servers or Beowulf Linux
clusters, engineers and scientists can achieve the advantages of speed and
availability, leverage the latest technologies and lower costs. The clustered
systems work in parallel on a scientific challenge, coordinating with each
other on the intermediate results. The combined MPI/Pro and cLAN solution
enables high-speed passing of messages among systems, with minimal delay.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Udanax (Xanadu) hypertext system now open source
</FONT>
</H3>
<P> Monterey, California(August 23, 1999): Ted Nelson announced today that
the source code for a working implementation of the Xanadu hypertext
system are being made open source for developers.
Udanax.com --
formerly Xanadu Operating Company (XOC, Inc.) -- released the code and
will serve as the focal point for continuing development and
application of these powerful hypertext systems.
<P> In 1960, Nelson, who coined the term "hypertext", envisioned a
revolutionary system of publishing. He foresaw the power of publishing
over computer networks like the World Wide Web but his original vision
exceeded the capabilities of the Web. Nelson termed this vision
"Xanadu" and has sought to implement it through numerous efforts.
Udanax is the result of some of this effort.
<P> With the Xanadu schemes developed by Udanax.com:
<UL>
<LI> links do not break -- no matter how documents are moved or edited,
links remain intact;
<LI> many versions can be compared to track the evolution of documents;
<LI> links go two ways -- you can see the links pointing into a document
as well as pointing out;
<LI> documents can be edited by multiple authors allowing real time
collaboration
<LI> documents can be created out of portions of other documents -- and
you can track the source of all portions.
</UL>
<P> According to Nelson, "The Web is a foam of ever popping bubbles, rather
than stable literature." The key technical difference between the
Udanax implementations of hypertext and the WWW mechanism (HTML) is in
how connections between documents are tracked. In HTML, the links are
embedded in the document itself and are essentially named by the
location of the machine where the document is stored. Move the cited
document -- the link breaks (404 errors). In the Udanax systems, the
connections between documents are managed independently of the
documents using sophisticated software algorithms.
<P> The Udanax development efforts focused on the "back-end" or server
component of the software. By making Udanax open source, developers
can work on "front-ends" or browsers for different applications.
"Rather than focusing on a glossy user interface, the Udanax team has
focused on building a complex and robust system to manage the
information." Gregory said. To date, over 1,500 developers have
indicated interest in developing applications for the Udanax system.
<P> <A HREF=http://udanax.xanadu.com>udanax.xanadu.com</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Memory-resident Anti-Virus Protection for Linux
</FONT>
</H3>
<P> Moscow, Russia, July 15, 1999 -- Kaspersky Lab, a fast-growing
international anti-virus software development company, reports the release of
beta-version of world's first memory resident virus interceptor for Linux - AVP
Monitor.
<P> AVP Monitor for Linux is a client part of AVP Daemon that intercepts all
file operations (starting, opening and initialisation of modules) and checks
objects for viruses. Constant presence of the program in computer's memory
allows reliable control over all possible ways of virus attacks on a
computer or corporate network. Besides, AVP Monitor makes anti-virus defense
very convenient and easy to use: it is enough to install and launch the
program each time the computer starts.
<P> A beta-version of AVP Monitor for Linux is available free of charge at
Kaspersky Lab's WWW site at <A HREF=http://www.avp.ru>www.avp.ru</A>.
<P> Kaspersky Lab is a fast-growing international company with offices in
Moscow, Russia, Dublin, Ireland and Cambridge, UK. Started the business in
1992 is has concentrated in development of world-leading anti-virus
technologies and software.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Other software
</FONT>
</H3>
<P> <A HREF=http://www.parasoft.com>CodeWizard for C++ 3.0</A>
<P> <A HREF=http://www.sca.com>Linda and Paradise</A>, parallel and distributed
computing development tools, by Scientific Computing Associates, Inc.Trial
versions of the software are included on Red Hat's Applications CD, part of Red
Hat's Official Linux 6.0 operating system.
<!--===================================================================-->
<P> <hr> <P>
<H5 ALIGN=center>
This page written and maintained by the Editor of <I>Linux Gazette</I>,
<A HREF=mailto:gazette@ssc.com>gazette@ssc.com</A><BR>
Copyright © 1999, Specialized Systems Consultants, Inc. <BR>
Published in Issue 45 of <i>Linux Gazette</i>, September 1999</H5>
<!--===================================================================-->
<H3>Contents:</H3>
<p><a href="#tag/greeting"
><img src="./../gx/dennis/bbub.gif" alt="(!)" border="0"
align="middle"><strong>Greetings From Jim Dennis</strong></A></p>
<DL>
<!-- index_text begins -->
<dt><A HREF="#tag/1"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
><strong>Linux to NT PPP Connection Over Null Modem</strong></a>
<dt><A HREF="#tag/2"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Printing --or--
<dd><A HREF="#tag/2"
><strong>
Printing to old "Pin Printer"
</strong></a>
<dt><A HREF="#tag/3"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Internet Access Control --or--
<dd><A HREF="#tag/3"
><strong>
Limiting Internet Access through Cable Modems
</strong></a>
<dt><A HREF="#tag/4"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>unix question --or--
<dd><A HREF="#tag/4"
><strong>
Quotas on a Sublet Web Server?
</strong></a>
<dt><A HREF="#tag/5"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Mars NWE --or--
<dd><A HREF="#tag/5"
><strong>
MarS NWE: HOWTO and Docs in English?
</strong></a>
<dt><A HREF="#tag/6"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>java curses library and jxterm? --or--
<dd><A HREF="#tag/6"
><strong>
Old Question Revisited: Java Curses Support
</strong></a>
<dt><A HREF="#tag/7"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>RH6 Virtual Email - POP3 problem --or--
<dd><A HREF="#tag/7"
><strong>
Virtual E-mail Domains
</strong></a>
<dt><A HREF="#tag/8"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Setting up Windows and Linux --or--
<dd><A HREF="#tag/8"
><strong>
Dual Booting without Re-Partitioning
</strong></a>
<dt><A HREF="#tag/9"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>LINUX File System Standard. --or--
<dd><A HREF="#tag/9"
><strong>
<TT>/bin</TT> vs <TT>/sbin</TT> and the FHS Revisited
</strong></a>
<dt><A HREF="#tag/10"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>How to Print 2 pages on 1 sheet --or--
<dd><A HREF="#tag/10"
><strong>
Saving Trees: Laying up Multiple Pages per Printer Sheet
</strong></a>
<dt><A HREF="#tag/11"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Telnet trouble --or--
<dd><A HREF="#tag/11"
><strong>
More "Can't Telnet Around My LAN" Problems
</strong></a>
<dt><A HREF="#tag/12"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Getting on the Internet --or--
<dd><A HREF="#tag/12"
><strong>
Getting Access to the Internet
</strong></a>
<dt><A HREF="#tag/13"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
><strong>Cash In On ... Spam!</strong></a>
<!-- index_text ends -->
</DL>
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/greeting"><HR WIDTH="75%" ALIGN="center"></A>
<H3 align="left"><img src="./../gx/dennis/bbubble.gif"
height="50" width="60" alt="(!) " border="0"
>Greetings from Jim Dennis</H3>
<!-- begin greeting -->
<p>So, I spent half of the month in Japan. The first week that I was
there I was too busy, tired and disoriented to get any e-mail.</p>
<p>So my column this month is a bit thin. Of course there is this one
message that's pretty long. I think it's the second longest I've
ever written here. The longest was on Internet Routing. That one
is being used as supplemental reading for a couple of college
course from what I hear. This one is not likely to join it.</p>
<p>Meanwhile I still have about 3000 messages in my backlog folder
which will take some going through. Luckily I use MH, so I'll
probably develop a script to process most of the routine stuff.</p>
<p>Speaking of "routine" Mike Orr, and Heather have taken steps to
reduce the number of "routine" questions we get here in Linux
Gazette. They've created an <a href="../lg_faq.html">FAQ</a> and
an <a href="../lg_index_tag.html">index to all of my previous</a>
"Answer Guy" questions. I haven't seen it yet --- but
hopefully we can convince people to use it.
There are about 900 questions that I've answered listed.</p>
<p>That, and the fact that the WebGlimpse engine at Linux Gazette
(http://www.linuxgazette.com) seems to be working at last, might
help people answer alot of their own questions (which is the whole
reason I put so much time into TAG anyway).</p>
<!-- end greeting -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/1"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 1 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Linux to NT PPP Connection Over Null Modem</H3>
<p><strong>From Neal Gieselman on Wed, 28 Jul 1999
</strong></p>
<!-- ::
Linux to NT PPP Connection Over Null Modem
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>Hello,
</STRONG></P>
<P><STRONG>
You got any tips on how to get Linux to connect to NT over a null
modem cable? We intend to eventually replace the null modem with
a wireless connection.
</STRONG></P>
<P><STRONG>
Neal Gieselman
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I don't know anything about supporting NT PPP. I've
never used it. For the Linux end you'd just use the
directive "local" instead of "modem." So, look for
a similar option among the NT GUIs and dialogs. They
might have a "modems" or "serial ports" control panel
which might have a "null" or "direct" entry in the
list of supported modem models. Try that first.
</BLOCKQUOTE>
<BLOCKQUOTE>
Call MS technical support for info on making <EM>any</EM> sort
of null modem PPP connection (ask them how to make two
NT boxes connect over a null modem cable). Whatever they
suggest --- if it is standards conformant PPP or even
close --- Linux should be able to cope with it when you
replace one NT endpoint with your Linux system.
</BLOCKQUOTE>
<BLOCKQUOTE>
Why isn't there an NT answer guy?
</BLOCKQUOTE>
<BLOCKQUOTE>
You'd probably be better off installing ethernet cards
in the two boxes in question, and running a cross-over
cable between them.
</BLOCKQUOTE>
<BLOCKQUOTE>
Questions to the rest of the readership: Are there any
short-haul modems out there that provide the same interface
as a basic Hayes compatible modem? Are there any devices
which emulate dial-tone (TM), DTMF signaling and ring/busy
signals? (Such telco wire simulators would obviously be
quite handy for teaching PPP and other modem skills in a
class room setting).
</BLOCKQUOTE>
<!-- sig -->
<!-- end 1 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/2"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 2 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Printing to old "Pin Printer"</H3>
<p><strong>From Philippe on Mon, 26 Jul 1999
</strong></p>
<!-- ::
Printing to old "Pin Printer"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hello Answerguy!
</STRONG></P>
<P><STRONG>
I have been unable to print with Applixware 3.5. I am using RH6.0 and
my printer is an (old) NEC pinwriter. I use the Epson LQ850 driver with
Windows. Of course, it is not a Postscript printer. I checked all the
How-To but I am still clueless.
Could you please help?
</STRONG></P>
<P><STRONG>
Thanks in advance. Philippe.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Install Ghostscript. This will implement PostScript on
your system, and it's drivers will convert that to
pin rasters that most printers can handle.
</BLOCKQUOTE>
<BLOCKQUOTE>
Once you have Postscript emulation working, you can
feed your Applixware output to it through the normal
lpr/lpd (BSDish) print filtering facilities (as listed
in your <TT>/etc/printcap</TT> file).
</BLOCKQUOTE>
<!-- sig -->
<!-- end 2 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/3"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 3 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Limiting Internet Access through Cable Modems</H3>
<p><strong>From Chris Dahl on Fri, 20 Aug 1999
</strong></p>
<!-- ::
Limiting Internet Access through Cable Modems
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I have a Linux box set up at home that is connected to the Internet through
a Cable Modem. Myself and my kids share this connection through
IP-Masquerading using Windows Clients. Is there a program, or option that
will run on Linux that will allow me to control when they use the Internet
and for how long?
</STRONG></P>
<P><STRONG>
Or is this better controlled through the workstation?
</STRONG></P>
<P><STRONG>
Chris
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
There isn't an option or program that I know of. However,
it should be possible to write some.
</BLOCKQUOTE>
<BLOCKQUOTE>
To limit them to specific times of the day I'd just
set up a set of cron jobs that periodically remove and
replace the routes and packet filters between your kids'
systems and the Internet.
</BLOCKQUOTE>
<BLOCKQUOTE>
Let's say you give the kids' systems IP addresses like
<tt>192.168.2.*</tt>, and you give your own systems <tt>192.168.1.*</tt>
addresses. Now you can have cron jobs that add
packet filtering <tt>REJECT</tt> statements that prevent
the masquerading system from forwarding packets from
the <tt>192.168.2.0</tt> network.
</BLOCKQUOTE>
<BLOCKQUOTE>
The exact rules would depend on your needs and the
version of the Linux kernel that was running on your
router.
</BLOCKQUOTE>
<BLOCKQUOTE>
Setting up limits own now long their connections are
allowed to persist would be more challenging. I'd
probably look at doing that using DHCP --- where you'd
assign each kid's system an IP address (via it's
ethernet MAC address) and you configure the leases
so that they expire in a set time. Then you hack
the DHCP daemon's code a bit so that it refuses to reissue
those specific IP addresses within some other set time
period (say, one day).
</BLOCKQUOTE>
<BLOCKQUOTE>
Another approach would be to hack up a copy of diald
to just add and remove routes/IP masquerading entries
(read through the sources, find out where it's
calling the PPP daemon and replaces those <tt>system()</tt> calls
--- or whatever they are, with your own calls to the
<tt>ipfwadm</tt> or <tt>ipchains</tt> utilities. The same code that adds
your masquerading entries can also use an '<tt>at</tt>' command
to schedule a time to remove them).
</BLOCKQUOTE>
<BLOCKQUOTE>
These don't sound like horribly difficult programs to
write --- although it might be easier and ultimately more
effective to enforce your household rules through
old-fashioned parental supervision.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 3 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/4"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 4 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Quotas on a Sublet Web Server?</H3>
<p><strong>From Tim Pellett on Fri, 20 Aug 1999
</strong></p>
<!-- ::
Quotas on a Sublet Web Server?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
AnswerGuy,
</STRONG></P>
<P><STRONG>
I found you on the internet and was wondering if
you could answer my question/problem.
</STRONG></P>
<P><STRONG>
I am renting space on a Unix/<A HREF="http://www.apache.org/">Apache</A> server and
am at the user level. We are allowed to redistribute
the space given to us and I want to set up file quotas.
I do not want to give space to other people w/o
setting up file size limits.
</STRONG></P>
<P><STRONG>
I asked the ISP and they said I can do it myself using
'file quota software'. I cannot find such a product
for a unix/apache server. Everything is Win 95/NT etc.
I cannot use the quota command b/c I do not have access
to sys admin files.
</STRONG></P>
<P><STRONG>
Do you have any suggestions? I have been trying to
figure this out for months now, and am getting frustrated!
</STRONG></P>
<P><STRONG>
Thanks,
Tim
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Let's see if I got this right ... you have some
virtual hosted web space (not a co-located server
but an account on your ISP's web server). They
somehow allow you to create further accounts in
your virtual space. You want to do this, and to
apply quotas to those sublet accounts.
</BLOCKQUOTE>
<BLOCKQUOTE>
I can't help but ask the obvious economic question,
why would someone go through you to get this service
rather than getting directly from your ISP? Is there
really enough wiggle room in the margins for an
arbitrage opportunity here?
</BLOCKQUOTE>
<BLOCKQUOTE>
In any event, getting back to the technical question...
</BLOCKQUOTE>
<BLOCKQUOTE>
You don't mention which version of UNIX you are using.
Suppport for system quotas is one of those things that
varies considerably from one version of UNIX to another.
</BLOCKQUOTE>
<BLOCKQUOTE>
If your ISPs support people say it can be done with
software that they know of --- please press them for
the specifics.
</BLOCKQUOTE>
<BLOCKQUOTE>
My guess would be that the solution would depend quite
a bit on which version of UNIX this system was running,
and a bit on the specifics of their account management
system. If they are providing you with your own
chroot jail, and giving you access to create your own
UNIX accounts within that jail, they'd have to be
providing some pretty hairy clones to a large number
of administrative utilities in order to have any
chance of maintaining any semblance of system security.
</BLOCKQUOTE>
<BLOCKQUOTE>
(Technically all of the account management in UNIX is
done in user space. The kernel only respects UIDs and
GIDs for making access determinations. Consequently,
you could theoretically create almost any sort of
account management scheme you wanted, if you were
willing to rewrite enough of the utility and library
infrastructure to support it. I doubt they've done this,
so I have serious misgivings about the security of their
approach).
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course I'm guessing that you're talking about some sort
of relatively generalized shell/FTP/mail support for these
"sublet" user IDs.
</BLOCKQUOTE>
<BLOCKQUOTE>
If you're willing to force your customers to go through a
custom interface to update their web pages (and you're
constraining them solely to web page publication) you could
use somewhat simpler models.
</BLOCKQUOTE>
<BLOCKQUOTE>
Let's assume that you are only interested in web page
publication. I'm guessing that the account management
then boils down to something like a set of CGI/PHP scripts
that allow users to update their accounts (and manage the
usernames, passwords, directory structures and any
accounting data that you maintain).
</BLOCKQUOTE>
<BLOCKQUOTE>
You'd also be providing some sort of mechanism for them to
upload their new web masterpieces. Whatever mechanism you
provide to do this (presumably a set of CGI programs or
scripts) can perform the quota calculations and implement
your policy enforcement. It seems like quite a lot of
custom coding to duplicate a set of functions that are
already provided by the underlying operating system.
</BLOCKQUOTE>
<BLOCKQUOTE>
All in all it seems like it would be much easier and
not much more expensive to co-locate a server of your
own at some ISP site. Then you could use established
OS system features and utilities to manage all of this.
</BLOCKQUOTE>
<BLOCKQUOTE>
Otherwise I can see a general solution to your question
that doesn't involve an utter lack of security on the
part of your ISP. If they essentially give you 'root'
access to this shared server then you have to ask what
protection they are offering their customers from
one another. That becomes a question of how they are
protecting your customers from their other customers
(some of whom might be your competitors in this
bizarre multi-level ISP scheme).
</BLOCKQUOTE>
<BLOCKQUOTE>
I notice that you don't actually say you're trying to sell
this space to other people. The technical problems are the
same in any event.
</BLOCKQUOTE>
<BLOCKQUOTE>
In any event you'd have to provide quite a bit more
details about what version of UNIX this ISP is using,
(and keep in mind that I'm the <EM>Linux</EM> AnswerGuy so
Solaris, AIX, and other UNIX questions may be ignored),
about what account management mechanisms they are using,
about which services you intend to provide and about
what mechanisms and protocols you intend for them to use
in updating their web pages.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 4 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/5"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 5 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>MarS NWE: HOWTO and Docs in English?</H3>
<p><strong>From Paul Sullivan on Fri, 20 Aug 1999
</strong></p>
<!-- ::
MarS NWE: HOWTO and Docs in English?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hi Jim,
</STRONG></P>
<P><STRONG>
I'm not sure if it's fair to address this question to you, but I've drawn
a blank everywhere.
</STRONG></P>
<P><STRONG>
No one seems to ever make mention of the
<a href="http://www.novell.com/">Netware</a> emulator for
Linux "Mars" (in english anyway). I've done a few searches on the
web, and can only find communication in a foreign language. Is
there anywhere (group of english folk) that discuss mars?
</STRONG></P>
<P><STRONG>
Regards
Paul Sullivan
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Hmm. It looks like you're right. Martin Stover,
the author of MarS NWE (and presumably the person after
which it gets its first name) seems to be German (or
at least the pages I looked at list a .de e-mail address
for him).
</BLOCKQUOTE>
<BLOCKQUOTE>
I did find some docs and READMEs in English at
a mirror site in Columbia University:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
<A HREF="http://omnicam.cs.columbia.edu/linux-docs/mars-nwe-0.99pl10"
>http://omnicam.cs.columbia.edu/linux-docs/mars-nwe-0.99pl10</A>
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
But that looks like the same files you'd get from the
package itself.
</BLOCKQUOTE>
<BLOCKQUOTE>
It looks like your best source of information is the
IPX HOWTO (<A HREF="http://metalab.unc.edu/LDP/HOWTO/IPX-HOWTO.html"
>http://metalab.unc.edu/LDP/HOWTO/IPX-HOWTO.html</A>)
which seems to cover it reasonably well.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 5 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/6"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 6 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Old Question Revisited: Java Curses Support</H3>
<p><strong>From Wilson Yeung on Fri, 20 Aug 1999
</strong></p>
<!-- ::
Old Question Revisited: Java Curses Support
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hello James,
</STRONG></P>
<P><STRONG>
I don't mean to be too critical -- afterall, I realize that you must be
faced with many emails and deadlines when writing your articles for The
Answer Guy.
</STRONG></P>
<P><STRONG>
Still, I thought I should point out that you didn't help Spencer T.
Kittelson when he asked for a "Java equiv. of a C curses library".
You pointed him to Java terminal emulation applications like JXTerm or
SCO's Tarantella. If he was asking for a java telnet program, I'm sure
JXTerm would have been a good answer. Unfortunately, he wasn't (I think
the use of the words "curses library" gives it away here).
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
That's an old one. I remember that I searched around
quite a bit on the net for the suggestions that I did
give him. SCO's Tarantella is closed source, of course.
I remember that part of what I was looking for was
an open source Java terminal emulator (on the silly idea
that this might be built over a curses-like library).
</BLOCKQUOTE>
<BLOCKQUOTE>
Come to think of it, how hard would it be to port
ncurses to Java? Of course you have to get Java to
provide a terminal interface (which is why I started with
the suggestions that related to that).
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
In actual fact, he was asking for a framework/library for developing
terminal applications in the Java Programming Language. In other words,
he wanted to be able to write in Java something like PINE or "top" or
irc-ii, but without Swing or AWT and relying solely on a user having
only terminal capabilities.
</STRONG></P>
<P><STRONG>
-Wilson
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Oh! That is a different interpretation of the question.
</BLOCKQUOTE>
<BLOCKQUOTE>
Using Java to write curses mode programs? Well, that would
be nice --- but I don't think it will gain any attention.
I'd think that C and Python and PERL have that space pretty
solidly sewn up.
</BLOCKQUOTE>
<BLOCKQUOTE>
Python seems to have pretty decent curses support, and
it has many of the same OO features and dynamic protections
that Java promises. Meanwhile text-mode/curses support
seems so far away from Java's core focus that it seems like
an unlikely avenue for future development.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 6 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/7"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 7 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Virtual E-mail Domains</H3>
<p><strong>From Netvigator on Fri, 20 Aug 1999
</strong></p>
<!-- ::
Virtual E-mail Domains
~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Dear Answerguy,
</STRONG></P>
<P><STRONG>
I recently install RH6 and use linuxconf to add virtual email
domain as well as POP3 account. I test it with sending email to
that virtual email domain and sucessfull without returning
mail. However, I cannot retrieve mail using POP3. Can you give me
any idea about that ? (The DNS setup is OK since the Web virtual
domain can function properly).
</STRONG></P>
<P><STRONG>
Regards
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
When you send mail to the account into which
you are funneling this virtual e-mail domain traffic,
is the spool file created under <TT>/var/spool/mail/?</TT>
</BLOCKQUOTE>
<BLOCKQUOTE>
Is it a normal mbox file (a text file with a series of
e-mail messages concatenated together, delimited by lines
of the form <tt>^From ....*</tt>)?
</BLOCKQUOTE>
<BLOCKQUOTE>
Does your POP daemon work for any of your other accounts?
</BLOCKQUOTE>
<BLOCKQUOTE>
What mail client are you using? Does '<tt>fetchmail</tt>' work
when you use it to fetch your POP mail from localhost?
</BLOCKQUOTE>
<BLOCKQUOTE>
Are there any messages in <TT>/var/log/messages</TT> that might be
related to any of this?
</BLOCKQUOTE>
<BLOCKQUOTE>
You'll have to at least isolate the problem to the MTA (mail
transport agent, presumably <tt>sendmail</tt>) or the MSA (mail
storage agent: presumably UW's IMAP/POP3 daemon package), or
the client/delivery agents (<tt>procmail</tt>, <tt>fetchmail</tt>,
or whatever you're using).
</BLOCKQUOTE>
<BLOCKQUOTE>
Once you've isolated a problem down to the relevant
subsystem you can then work on isolating it to a specific
operation. Is your POP3 daemon being started by TCP
wrappers, tcpd (almost certainly)? Is tcpd preventing the
access from your client (quite a common problem)?
</BLOCKQUOTE>
<BLOCKQUOTE>
The fact that this is being done through <tt>linuxconf</tt> doesn't
offer me any clues. I've only played with linuxconf very
briefly, and so far I don't like it and wouldn't trust it
to set up a virtual e-mail domain.
</BLOCKQUOTE>
<BLOCKQUOTE>
Is it generating a <tt>.mc</tt> file for sendmail? I don't want to
see a <tt>sendmail.cf</tt> --- those are too long and too tedious to
read. However, if the mbox file(s) are being properly
created under <TT>/var/spool/mail</TT> as you expect then you don't
need to worry about the MTA at all.
</BLOCKQUOTE>
<BLOCKQUOTE>
Incidentally, the fact that your virtually hosted web server
works doesn't actually eliminate the possibility of DNS
problems. It could be that you have MX records pointing to
never-never-land. Those would take precedence over the
A records (which are all that are required for web browsers
to resolve your server's IP address).
</BLOCKQUOTE>
<BLOCKQUOTE>
Try doing a bit of troubleshooting to isolate the
symptoms in more detail. That will probably make the
problem more clear and suggest a solution.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 7 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/8"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 8 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Dual Booting without Re-Partitioning</H3>
<p><strong>From John Vance on Fri, 20 Aug 1999
</strong></p>
<!-- ::
Dual Booting without Re-Partitioning
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Until I migrate fully to Linux, I want to keep Windows 95/98
installed, due to the fact that I do all my school assignments on
my Win98 OS. Is there an easy way to dual boot besides using any
of the partitioning software? I am studying UNIX/Linux at College
and need to be able to do this so I can study and further
investigate Linux
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Well there are several options for you.
</BLOCKQUOTE>
<BLOCKQUOTE>
First you can install a "Mini-distribution." There are
several distributions of Linux which can be installed in a
subdirectory of your MS-DOS or Win '9x system and started
via LOADLIN.EXE.
</BLOCKQUOTE>
<BLOCKQUOTE>
Linux supports a filesystem driver called UMSDOS (including
UVFAT for FAT32 and VFAT drives under Win '9x). This allows
Linux to store and use UNIX filesystem semantics (including
ownership, group association, and permissions) under MS-DOS
compatible filesystems. It's even possible (with the
hackery employed by these mini-distributions) to mount a
subdirectory of your C: or other MS-DOS compatible drive as
the root filesystem under a Linux kernel.
</BLOCKQUOTE>
<BLOCKQUOTE>
The most popular Mini-distribution these days is probably
Kent Robotti's DOSLinux. You can find that at:
</BLOCKQUOTE>
<BLOCKQUOTE><DL><DT>
DOSLinux at Tux.org:
<DD><A HREF="http://www.tux.org/pub/people/kent-robotti"
>http://www.tux.org/pub/people/kent-robotti</A>
</DL></BLOCKQUOTE>
<p><em><dl><dt>[ You could also try ZipSlack:
<dd><a href="http://www.slackware.com/zipslack"
>http://www.slackware.com/zipslack</a>
</dl>
It's designed to fit on a ZIP cartridge, and uses UMSDOS.
-- Heather ]</em></p>
<BLOCKQUOTE>
That's probably the easiest approach. Of course there
are other options. You could install a second (or third
or fourth, etc.) hard drive. In that case you wouldn't
need to re-partition. Just put your Linux filesystems on
some parts of the new drives. (Of course you can devote
the whole new drive to Linux if you like).
</BLOCKQUOTE>
<BLOCKQUOTE>
I'd still use LOADLIN.EXE. The difference here is that
you're only storing a copy of the LOADLIN.EXE program and
a copy of any kernels that you want to boot on your C:
(or other MS-DOS) drive. The Linux kernel can be told to
mount root filesystems off of any drive that it can access
(through its built-in drivers, or via the drivers and
programs stored init its initrd, initial RAMdisk). There is
no constraint that requires a Linux kernel to be located
on the same filesystem or even on the same drive or
physical system as it will be mounting for its rootfs.
</BLOCKQUOTE>
<BLOCKQUOTE>
Yet another option would be to convert your system fully
over to Linux. Then you'd purchase and install VMWare or
one of its clones. You'd use it to create a Win '9x
partition and re-install your copy of Win '9x under that.
</BLOCKQUOTE>
<BLOCKQUOTE>
This is a relatively new option. Also VMWare is not free
or open source software. However, it does seem to be much
more usable than the currently available free software in
the same class (Bochs, <A HREF="http://www.winehq.com/">WINE</A>, etc.).
</BLOCKQUOTE>
<BLOCKQUOTE>
One of the founders at Linuxcare (<A HREF="http://www.linuxcare.com"
>http://www.linuxcare.com</A> :
where I currently work for my "day" job) chuckles every time
he gets a "blue screen of death" under NT --- as he kills
that Linux process and boots up a new virtual machine.
</BLOCKQUOTE>
<BLOCKQUOTE>
(I also know one guy who is running a copy of Linux under
a VMWare virtual machine that's running under a different
distribution of Linux. It's an odd way to test a new
distribution).
</BLOCKQUOTE>
<BLOCKQUOTE>
My preferred approach is to buy an extra hard drive.
They are pretty inexpensive these days --- and you'll
probably find some way to use the extra space, even if
you decide to consolidate all of your operations unto one
OS.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 8 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/9"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 9 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
><TT>/bin</TT> vs <TT>/sbin</TT> and the FHS Revisited</H3>
<p><strong>From Greg Morse on Fri, 20 Aug 1999
</strong></p>
<!-- ::
<TT>/bin</TT> vs <TT>/sbin</TT> and the FHS Revisited
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
I enjoyed your little write up on bin vs <TT>/sbin</TT> etc.
Is there somewhere that a file standard for non-linux systems exists?
I have heard reference to a system V standard. How different is it from
Linux?
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
There are many standards that relate to various facets
of various forms of UNIX. However, I don't know of anything
quite like the FHS for non-Linux systems.
</BLOCKQUOTE>
<BLOCKQUOTE>
I've heard that HP was looking at the Linux FHS as a
possible model for their own HP-UX filesystem/layout
specification. However that is an unsubstantiated
rumor. Of course UNIX vendors are welcome to adopt the
FHS and adapt their systems to match it. This would be
of benefit to all UNIX and Linux users.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Also linux does not seem to have a <TT>/opt</TT> filesystem which is quite
heavily used on my AIX and HPUX boxes. What is the Linux equivalent?
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Linux does offer <TT>/opt.</TT> I usually make mine a symlink to
<TT>/usr/local/opt.</TT> It is supposed to be for "applications
binaries" (so things like <A HREF="http://www.kde.org/">KDE</A>, WordPerfect, Applixware,
and StarOffice all go into the <TT>/opt</TT> hierarchy.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I would also appreciate it if you could go a bit deeper down the
directory tree, explaining as you go. The whole unix directory structure
is a mess and could really do with some xplanation as to what the common
idoms are.
Thank you.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Oooh! That would be a bit of a project. I don't think I
have time for it this month (that two week trip to Japan
and the demands of a full-time job are catching up to me).
However, I'll leave this in my inbox until the end of the
month in case I can spend a bit more time on it.
</BLOCKQUOTE>
<BLOCKQUOTE>
Note that there is a bit of a fractal quality to some parts
of the typical/conventional Linux/UNIX directory tree.
</BLOCKQUOTE>
<BLOCKQUOTE>
For example we find bin, sbin, etc, lib and doc subdirectories
under <TT>/usr/local/</TT> which serve purposes that are analogous
to the same directories that are found under <TT>/</TT> and/or under
<TT>/usr.</TT> We commonly find a similar set of directories under
<TT>/opt.</TT> It's also common to see users who put tmp, bin, src,
and even lib subdirectories under their home directories.
</BLOCKQUOTE>
<BLOCKQUOTE>
Some of the same things can be seen under the <TT>/usr/X11R6</TT>
directory tree.
</BLOCKQUOTE>
<BLOCKQUOTE>
Beyond that quite a bit of the directory structure is
specific to the packages that are installed.
</BLOCKQUOTE>
<BLOCKQUOTE>
Remember all of these are guidelines rather than strict
rules. Sysadmins frequently will set things a bit
differently --- though deviating too far from the
expectations of their software will require quite a bit
of programming and patching on their part.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 9 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/10"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 10 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Saving Trees: Laying up Multiple Pages per Printer Sheet</H3>
<p><strong>From Kong Liong Wong on Tue, 24 Aug 1999
</strong></p>
<!-- ::
Saving Trees: Laying up Multiple Pages per Printer Sheet
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hi Answerguy
</STRONG></P>
<P><STRONG>
I'm running Solaris 2.6 and I'm using HP Jetadmin to administer my network
HP laser printers. I've seen some organization who are able to print double
pages on 1 sheet, with the time stamp, user as well as page number
information neatly printed on the side. All I'm able to achieve now is
printing 1 page per sheet and the formatting is ugly.
I know I can use HP JetPrint to format my printing, but is there any other
alternative way?
</STRONG></P>
<P><STRONG>
Please help
</STRONG></P>
<P><STRONG>
regards
Kong Liong
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Is this a PostScript (TM) printer? If not you probably want to
install a Ghostcript filter so that any PostScript that you send
to the queue will be converted into your printer's native control
language (some version of PCL for your HP).
</BLOCKQUOTE>
<BLOCKQUOTE>
Once that is accomplished it's very easy to configure your system
to perform lay up as you describe. There's a program called
'<tt>mpage</tt>' which is commonly available with Linux distributions
(you'll have to dig around to find the sources and compile them
for Solaris). It's what you want.
</BLOCKQUOTE>
<BLOCKQUOTE>
'<tt>mpage</tt>' (<A HREF="http://gate.mesa.nl/pub/mpage"
>http://gate.mesa.nl/pub/mpage</A>) allows you to print 1,
2, 4 or 8 pages of text per side of a printed sheet. It does
this by arranging the text into PostScript pages, and using the
scaling and rotation features of PostScript to do the the layout.
</BLOCKQUOTE>
<BLOCKQUOTE>
'<tt>mpage</tt>' will add a small frame and a set of headers and footers
to each printed sheet by default. It offers a number of options
to disable or control these features. There's where you can get
your filename, date, username and other information onto the
output.
</BLOCKQUOTE>
<BLOCKQUOTE>
That's fine for text. However, your output is already in
PostScript there's a program called '<tt>pstops</tt>' which can do a
PostScript to PostScript "conversion/translation" according to
the parameters you specify. In that model you can provide it
with parameters to scale each odd numbered page to 60%, rotate it
ninety degrees, position it on an output sheet, take every even
numbered page, scale it, rotate it another direction, add it to
your output page, etc.
</BLOCKQUOTE>
<BLOCKQUOTE>
Notice that I gave an example of scaling/reducing the pages by
less than 50% for a reason. It turns out that typical margins
around your original pages are just a bit larger than they need
to be when you do this layout. So scaling by 55% to 65% actually
produces better looking and more readable output.
</BLOCKQUOTE>
<BLOCKQUOTE>
It can be a bit tricky to get your pstops parameters right.
While I was writing my book I'd generate the PS file from my
LaTeX <tt>.dvi</tt> files (using '<tt>dvips</tt>'), then for some of the draft
printouts I'd use '<tt>pstops</tt>' to lay that out and '<tt>gv</tt>' to select
the even sheets (print those), and finally use '<tt>gv</tt>' to toggle my
sheet/page selections, turn the paper around and print the
other sides. Most of the work was done by my book's Makefile
(using '<tt>make</tt>'). The result was that I could generate a full
draft of my book while only using about 100 sheets of paper for
400 pages of writing. (Luckily my eyes are fine with the reduction).
</BLOCKQUOTE>
<BLOCKQUOTE>
Here's a sample '<TT>pstops</TT>' command like the one that I used:
</BLOCKQUOTE>
<blockquote><code>pstops -q -pletter "2:0L@.7(21cm,0)+1L@.7(21cm,11.6cm)"
lsa.ps > /tmp/quarto.ps
</code></blockquote>
<BLOCKQUOTE>
(The term "quarto" is probably a misnomer here --- but
that's what I called it in my Makefile).
</BLOCKQUOTE>
<BLOCKQUOTE>
While writing this I've been running a couple of web searches in
my other '<tt>screen</tt>' terminals (to get a good URL on mpage and to
check the man page). While I was doing that I noticed that
'<tt>mpage</tt>' wasn't installed on my
<A HREF="http://www.debian.org/">Debian</A> box so I did an '<tt>apt-get
install</tt>' of that and found that it apparently supports layup of
PostScript as well as text files. It's probably a newer version
than I remember. Possibly it's just a feature that's been there
for years, which I just never noticed before.
</BLOCKQUOTE>
<BLOCKQUOTE>
Considering how obtuse the '<tt>pstops</tt>' command arguments can be
perhaps you should just stick with '<tt>mpage</tt>'.
</BLOCKQUOTE>
<BLOCKQUOTE>
'<tt>pstops</tt>' is part of the PSUtils page by Angus J. C. Duggan
(<A HREF="http://www.tardis.ed.ac.uk/home/ajcd/psutils"
>http://www.tardis.ed.ac.uk/home/ajcd/psutils</A>). There are a
number of other free tools that he's provided which might be of
interest to anyone with advanced printing needs. In fact,
glancing at his web page I see that I probably should have been
using '<tt>psnup</tt>' instead of '<tt>pstops</tt>' for what I was doing.
</BLOCKQUOTE>
<BLOCKQUOTE>
Oh well. Live long enough and you can learn lots. One of the
reasons I spent so much time on TAG is that it gives me the
incentive to double check the man pages and look up the web sites
for packages that I use --- so I often learn new tricks in the
process.
</BLOCKQUOTE>
<BLOCKQUOTE>
Incidentally I'd like to make a special notice on Angus' web page
for the PSUtils package. It's beautiful. There's lots of very
useful information about the package --- and he's taken the time
to give credit to a large number of people that inspired his work
or otherwise contributed to the package.
</BLOCKQUOTE>
<BLOCKQUOTE>
Thanks, Angus. (I've copied you, and the current maintainer of
'<tt>mpage</tt>' on this message. It will be published in the Linux
Gazette Answer Guy column later this month. Linux Gazette is
at <A HREF="http://www.linuxgazette.com"
>http://www.linuxgazette.com</A> --- which is odd since it's a
free webazine with very little commercial sponsorship).
</BLOCKQUOTE>
<p><em>[ Given the number of commercial support bullets, and the generous
hosting by SSC, I'm tempted to disagree on the amount of commercial
sponsorship, though I must admit that I'm very pleased not to
see it smothered with "regulation size" banner ads.
-- Heather ]</em></p>
<BLOCKQUOTE>
In any event, Mr. Wong, I hope these tips will help you get what
you want out of your printer. Of course, there are many other
print filtering packages available for Linux and other forms of
UNIX. I'm sure I'll learn about a few more, probably as a result
of some future "Answer Guy" question.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 10 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/11"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 11 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>More "Can't Telnet Around My LAN" Problems</H3>
<p><strong>From Bobby Mathew on Thu, 22 Jul 1999
</strong></p>
<!-- ::
More "Can't Telnet Around My LAN" Problems
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
I have a lan of 20 machines with one NT server and remaining Win95
clients and today I just added my LINUX Server. After Installation
of the RedHat 5.2 LINUX I have trouble telnetting to the machine
from any other machine on the lan. I am able to ping the ip
address of the LINUX server from the nodes and visa versa but not
able to ping its name. When I try telnet from the Win95 clients
by specifying the ip it says connected but nothing appears...no
username..no password nothing...... I am a newbie to LINUX and so
it is kind of frustrating experience not knowing what to do.
Please can you help ?
</STRONG></P>
<P><STRONG>
bob
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
It sounds like you don't have reasonable DNS or other name
services properly configured.
</BLOCKQUOTE>
<BLOCKQUOTE>
Being unable to ping a machine by its name requires that the
client (the running running the ping command) be able to
translate that name into an IP address (called "resolving"
in the vernacular). This is usually done via the DNS system
(using the named program from the BIND --- Berkeley Internet
Naming Daemon --- package).
</BLOCKQUOTE>
<BLOCKQUOTE>
If you can do normal web browsing of Internet web pages,
ping Internet hosts by name etc --- then you do have the
resolvers on your Win '95 and NT systems configured
reasonably for that purpose.
</BLOCKQUOTE>
<BLOCKQUOTE>
When you try to telnet to the Linux box by its IP address
then your client is able to establish the connection.
However a standard Linux distribution such as
<A HREF="http://www.redhat.com/">Red Hat</A> will
have a utility called "TCP Wrappers" (<tt>tcpd</tt>) installed and
configured to protect your system from some relatively
common forms of attack.
</BLOCKQUOTE>
<BLOCKQUOTE>
tcpd will attempt to perform a "Double reverse lookup" to
match the source IP address of any telnet, rlogin, rsh or
similar (inetd launched, or "dynamic" TCP service) to a
fully qualified domain/host name (FQDN) and back. First it
performs a reverse lookup.
</BLOCKQUOTE>
<BLOCKQUOTE>
Let's say the connection is coming from <tt>123.45.6.78</tt> --- tcpd
will look that up in the reverse DNS system (actually
looking up <tt>78.6.45.123.in-addr.arpa</tt> for crufty historical
reasons). If it got a reply from that (this IP address
example is obviously for pedogogical use --- it doesn't seem
to actually be in use on the Internet) it will do a forward
lookup on the alleged name.
</BLOCKQUOTE>
<BLOCKQUOTE>
Let's say that the hostmaster of <tt>123.45.6.*</tt> configured his
copy of named to return the name "<tt>mybad.mit.edu</tt>" for his
...78 address. It would be naive to assume that this was
actually an MIT address from that piece of info. All we
know is that some <EM>claims</EM> that this is an MIT address.
That response <EM>probably</EM> came from a caching server, which
<EM>probably</EM> got it from an authoritative server for the
<tt>123.45.6.*</tt> or <tt>123.46.*.*</tt> or <tt>123.*.*.*</tt> PTR zone, which<EM>probably</EM> was uncompromised and <EM>probably</EM> was under the
control of the proper hostmaster for that zone. This
doesn't imply that the any <tt>123.*.*.*</tt> addresses were ever
delegated to MIT.
</BLOCKQUOTE>
<BLOCKQUOTE>
So tcpd now does a forward lookup asking for any IP addresses
that are assigned to mybad.mit.edu. That response will
<EM>probably</EM> be legitimate (subject to the same issues as the
reverse lookup). It should contain a list of all IP
addresses that are assigned to that hostname. Note that
there is no one-to-one correspondence between FQDN/host
names and IP addresses. Any host can have multiple
interfaces each with its own IP addresses. A host can also
have a different name for each of it's interfaces and it can
have multiple IP addresses on any interface (a technique
called IP aliasing, which used to be used extensively for
web server "virtual hosting" before the widespread support
for HTTP 1.1 virtual hosting).
</BLOCKQUOTE>
<BLOCKQUOTE>
So, if tcpd finds the original IP address of the connecting
client among the list of addresses returned by the reverse
lookup then it logs the name and processes the connection
according to the access rules listed in the <TT>/etc/hosts.allow</TT>
and <TT>/etc/hosts.deny</TT>. Those two files allow you to accept,
deny, or specially handle requests according to where they
are (or <EM>seem</EM> to be) coming from, which service they are
requesting and which interface/IP alias they are accessing.
</BLOCKQUOTE>
<BLOCKQUOTE>
I've described this "double reverse lookup" process before
(although not usually in such detail).
</BLOCKQUOTE>
<BLOCKQUOTE>
The key point for you is that this can cause a very long
delay when you are trying access a Linux box via telnet
and most any other service that's listed in the
<TT>/etc/inetd.conf</TT> file.
</BLOCKQUOTE>
<BLOCKQUOTE>
This delay will also affect NFS mounts off of a Linux server
because the most command portmapper on Linux systems is
apparently derived from one written by Wietse Venema (the
author of TCP Wrappers) and is linked with the libwrap --- a
programming library which implements the same checks and
access control semantics as tcpd.
</BLOCKQUOTE>
<BLOCKQUOTE>
So, the problem is that you don't have name services
correctly configured for your LAN. Even if you properly
configured your forward (name to IP address) mapping,
you'd have this problem if you didn't ensure that the
reverse mappings were consistent with them.
</BLOCKQUOTE>
<BLOCKQUOTE>
If you waited for several minutes you'd probably find that
the telnet would work. Once you logged it, everything would
work at normal speeds. This only affects the behaviour on
initial connections. The fact that ping works as you
expect suggests that your addressing and routing is fine.
The Linux kernel handles ping (and other ICMP) directly
--- so tcpd doesn't protect you for (nor otherwise interfere
with) these packets.
</BLOCKQUOTE>
<BLOCKQUOTE>
The web server, mail daemon (sendmail, smtpd), and named
(DNS/BIND) processes on your Linux systems generally are
not dynamically launched. They usually are not linked
with libwrap either. Therefore they are some common
services which are usually unaffected by this problem.
</BLOCKQUOTE>
<BLOCKQUOTE>
The question then becomes: "How do you provide
name services for your LAN?"
</BLOCKQUOTE>
<BLOCKQUOTE>
One way would be to use static files. On UNIX and Linux
systems you can add entries to your <TT>/etc/hosts</TT> files
on each system. This would contain entries like:
</BLOCKQUOTE>
<blockquote><pre>127.0.0.1 localhost localhost.localdomain
192.168.2.192 win1.example.org win1
192.168.2.193 win2.example.org win2
192.168.2.194 wnt1.example.org wnt1
</pre></blockquote>
<BLOCKQUOTE>
I've heard that there's a HOSTS file facility that can be
enabled in Win '9x (presumably through a registry entry).
I don't know where the file would be located and I can't
guarantee that is uses the same syntax as a UNIX hosts
file. It would be similar to their LMHOSTS files (which
are for old IBM LAN Manager implementations of their SMB
file sharing protocol).
</BLOCKQUOTE>
<BLOCKQUOTE>
If you put the IP addresses and names (any names) of your
client systems into the <TT>/etc/hosts</TT> file on your Linux
box it will immediately solve the reverse DNS problems.
</BLOCKQUOTE>
<BLOCKQUOTE>
Actually this assumes that your <TT>/etc/nsswitch.conf</TT> is
properly configured. That should look a bit like:
</BLOCKQUOTE>
<blockquote><pre># /etc/nsswitch.conf
#
# An example Name Service Switch config file. This file should be
# sorted with the most-used services at the beginning.
#
# The entry '[NOTFOUND=return]' means that the search for an
# entry should stop if the search in the previous entry turned
# up nothing. Note that if the search failed due to some other reason
# (like no NIS server responding) then the search continues with the
# next entry.
#
# Legal entries are:
#
# nisplus or nis+ Use NIS+ (NIS version 3)
# nis or yp Use NIS (NIS version 2), also called YP
# dns Use DNS (Domain Name Service)
# files Use the local files
# [NOTFOUND=return] Stop searching if not found so far
#
passwd: files [NOTFOUND=return] nisplus nis
shadow: files [NOTFOUND=return] nisplus nis
group: files [NOTFOUND=return] nisplus nis
hosts: files dns [NOTFOUND=return] nisplus nis
services: files [NOTFOUND=return] nisplus
networks: files [NOTFOUND=return] nisplus
protocols: files [NOTFOUND=return] nisplus
rpc: files [NOTFOUND=return] nisplus
ethers: files [NOTFOUND=return] nisplus
netmasks: files [NOTFOUND=return] nisplus
bootparams: files [NOTFOUND=return] nisplus
netgroup: nisplus
publickey: nisplus
automount: files [NOTFOUND=return] nisplus
aliases: db files [NOTFOUND=return] nisplus
</pre></blockquote>
<BLOCKQUOTE>
Since you're using Red Hat 5.2 or later you should have one
of these files (though their default settings are wrong for
most sites --- files should generally be preferred over DNS
or any other source; if you bothered to edit a name into a
file the system should respect that).
</BLOCKQUOTE>
<BLOCKQUOTE>
The settings I've shown here insert an optional action to
stop trying to resolve most of these mappings without
bothering to try NIS and NIS+ (since I don't use those in my
domain).
</BLOCKQUOTE>
<BLOCKQUOTE>
I realize you may be a bit confused at this point (I'm
rambling again). Basically all this NSS stuff has to do
with how a modern Linux system's "resolver" works.
</BLOCKQUOTE>
<BLOCKQUOTE>
The resolution of names into IP addresses, services, and
even account and group names into UIDs and GIDs (the numeric
objects which the kernel and filesystems use to manage
ownership and permissions) are all done through libraries
(think DLLs since you're from an MS Windows background).
</BLOCKQUOTE>
<BLOCKQUOTE>
There are various mechanisms for performing these mappings.
Originally it was all done through simple text files. Thus
the host name to IP address mapping was done by searching
the <TT>/etc/hosts</TT> files, and the user accounts were found in
the <TT>/etc/passwd</TT> file, and the groups were in the <TT>/etc/group</TT>,
etc. Under UNIX and Linux these files are still respected
and very widely used (especially for users and groups).
</BLOCKQUOTE>
<BLOCKQUOTE>
DNS was added to provide a host name to IP address service
that was scalable to the needs of the Internet. This also
provided for some facilities that were not possible in the
<TT>/etc/hosts</TT> file (like MX records which specify alternative
locations to forward mail for a system that doesn't have
its own smtpd running).
</BLOCKQUOTE>
<BLOCKQUOTE>
Then Sun introduced its "Yellow Pages" (YP) service for
distributing user, group, host and other sorts of
information over a network. Apparently British Telecom
prevailed in some legal wrangling, forcing Sun to officially
rename YP to NIS (Network Information System). This is
vaguely analogous to Novell's NDS (Netware Directory
Services), LDAP (lightweight directory acces protocol) and
to the "Active Directory" vaporware that Microsoft is
promising to deliver in NT 5.x ... err ... Windows 2000
... err ... Windows "Consumer" or whenever.
</BLOCKQUOTE>
<BLOCKQUOTE>
(Later Sun implemented a more advanced version of the NIS
protocols called NIS+).
</BLOCKQUOTE>
<BLOCKQUOTE>
MIT developed and used (uses?) a naming/directory service
called "Hesiod" (as part of their Athena project if I
understood it correctly). This is essentially a way of
distributing lines from <TT>/etc/passwd</TT> and <TT>/etc/group</TT> through
DNS using a particular type of record. It's the most
obscure and rare of the existing naming services that I'll
mention.
</BLOCKQUOTE>
<BLOCKQUOTE>
In the bad old days the sysadmin had no control over what
order the various naming and directory services were
queried. The big commercial versions of UNIX provide a
"Names Services Switch" configuration file named
<TT>/etc/nsswitch.conf</TT>. (I think that would have been
introduced in Solaris 2.x by Sun and emulated by HP-UX, AIX
and others shortly thereafter).
</BLOCKQUOTE>
<BLOCKQUOTE>
In older versions of Linux (those relying on libc version
5.x) there were different versions of the libraries with and
without support for files, DNS, NIS and NIS+. The version
of libc that supported NIS was often referred to as the "NYS
libc." You could use the <TT>/etc/hosts.conf</TT> file to give you
limited control over the resolving process.
</BLOCKQUOTE>
<BLOCKQUOTE>
With the adoption of GNU glibc version 2.x (which is Linux
libc version 6.x) Linux distributions gained support for
<TT>/etc/nsswitch.conf</TT> and a fully modular NSS infrastructure.
files, db, DNS, and NIS support is provided with most
distributions. NIS+, LDAP, Hesiod, NDS and even custom and
as yet undeveloped naming services can be plugged in and
supported without recompiling any of the software that ships
with a typical Linux system.
</BLOCKQUOTE>
<BLOCKQUOTE>
Through the magic of dynamic linking this modular NSS will
also be supported by all programs that conform to the
standard glibc APIs for their name services request.
</BLOCKQUOTE>
<BLOCKQUOTE>
In all of these cases the DNS resolver further relies on an
<TT>/etc/resolv.conf</TT> (NOTE: no 'e' on the end of that!). That's
where the resolver libraries find pointer to "nearby" name
servers. (Actually the libraries and code don't care if
your name servers are "nearby" or not. However, your
sysadmin and others might be understandably irritated if
you configure you system to send packets to Bangladesh
for every name lookup that it performs).
</BLOCKQUOTE>
<BLOCKQUOTE>
That finally brings us back to your situation. You can
use just files through your network. With only 20 or 30
hosts that generally isn't too cumbersome. It's a bit
of a hassle to add new hosts or change them around (you
have make sure that all of the files get changed). That's
the whole reason all these other naming services were
developed.
</BLOCKQUOTE>
<BLOCKQUOTE>
You can also configure your own DNS service for your
network.
</BLOCKQUOTE>
<BLOCKQUOTE>
This gets to be a much more complex discussion.
</BLOCKQUOTE>
<BLOCKQUOTE>
Let's say that you have an Internet domain registered
with the InterNIC. That requires that you register
primary and secondary nameservers with them. These days
many smaller domains (such as yours) are served by
their ISPs nameservers. ISPs that provide name services
generally should have co-operative agreements with other
ISPs or Internet sites so that each provides secondary
services for the others.
</BLOCKQUOTE>
<BLOCKQUOTE>
This is all managed automatically by the BIND software ---
once it's properly configured then it will automatically
synchronize secondaries to primaries (using zone transfers).
</BLOCKQUOTE>
<BLOCKQUOTE>
It is also common for network administrators to run
"caching" nameservers. These aren't configured as primary
or secondary authorites for any domain. However they can
have DNS requests directed to them and they will respond
from their cache if they have recieved an authoritative
answer recently enough. The DNS protocols include
plenty of information regarding the acceptable caching
periods for any given record. So they can be configured
by the hostmasters of each domain.
</BLOCKQUOTE>
<BLOCKQUOTE>
BIND nameservers can be used for caching, and they can
concurrently be primary to some domains, secondary to
others.
</BLOCKQUOTE>
<BLOCKQUOTE>
So, why don't you just give a list of your machines to
your ISP and one of their admins put all their names and
IP addresses into your zones for you?
</BLOCKQUOTE>
<BLOCKQUOTE>
If you are a typical small site on the Internet these days
you don't use IANA assigned addresses for all of your
system. You might have a dedicated connection to the
Internet. Perhaps you have an ISN line or even a modem
that's configured for dial-on-demand. Your ISP has probably
only devoted a few IP addresses to you. If you have a
publiclly accessible web site it might be "virtual hosted"
at your ISPs site on one of their servers. The same might
be true of your FTP server and your e-mail might be served
to you through some POP mailbox hack.
</BLOCKQUOTE>
<BLOCKQUOTE>
Most of your system are probably using RFC1918 "Private
Network" IP addresses (<tt>10.*.*.*</tt>, <tt>172.16.*.*</tt> through
<tt>172.31.*.*</tt>, or <tt>192.168.*.*</tt>) and be accessing the Internet
through IP masquerading (as provided by the Linux kernel
or most modern routers) or through applications proxies
(such as SOCKS).
</BLOCKQUOTE>
<BLOCKQUOTE>
In these cases you cannot publish those host names and their
IP addresses through your public DNS records.
</BLOCKQUOTE>
<BLOCKQUOTE>
Even if you do have "real IP addresses" (which I refer to
as DRIPs --- directly routable IP addresses) you might
not want to publish them. You really only need to
publish the names and addresses of those systems which
interact directly with the Internet (public web servers,
mail exchange hubs, routers, proxy hosts, etc).
</BLOCKQUOTE>
<BLOCKQUOTE>
You want your LAN nodes to "see" one set of names and
addresses in addition to allowing them to see the
Internet name space. As your network gets larger you
don't want to have to manually synchronize alll those
hosts files (and you might not want to even hack up
Win '95 to force it to work with them in the first place).
</BLOCKQUOTE>
<BLOCKQUOTE>
So, what do you do?
</BLOCKQUOTE>
<BLOCKQUOTE>
This is where you configure your system to use "split DNS."
</BLOCKQUOTE>
<BLOCKQUOTE>
Basically you point your client systems to a nameserver
that you set up (on your Linux system would be the natural
choice). This is their primary nameserver. It is
configured to be authoritative to your domain but it is
NOT registered as an authoritative name server with the
InterNIC. In other words your domain services have a
"split" personality.
</BLOCKQUOTE>
<BLOCKQUOTE>
Your internal systems look to one system for all name
requests while the outside world looks to some other server
(probably one maintained by your ISP or one of your ISP's
secondaries).
</BLOCKQUOTE>
<BLOCKQUOTE>
This sounds much more complicated in discussion than it
turns out to be in practice. If you maintain a "flat"
domain namespace (you don't create named subdomains within
your organization) then running "split DNS" is fairly easy.
</BLOCKQUOTE>
<BLOCKQUOTE>
If you delegate subdomain zones to their own servers
(departmental or regional, for example) then you'll have
an added complication. Typically you'd have to ensure that
each of internal authoritative name servers is a secondary
for each of the "other" subdomains.
</BLOCKQUOTE>
<BLOCKQUOTE>
In other words, let's you're running the foo.not domain.
You decide to create subdomains for finance, engineering,
and IS and call them: fin.foo.not, eng.foo.not, and
is.foo.not. You can just maintain a set of zone files
for all of these on the same primary (internal) server.
However, you might want to delegate these zone ---
give the sysadmin/hostmaster of the engineering group
his/her own internal DNS server. In order for split
DNS to work, and for the fin.foo.not and is.foo.not
DNS servers to find hosts in the eng.foo.not subdomain
--- the name servers for fin. and is. must be
configured as secondaries to eng.
</BLOCKQUOTE>
<BLOCKQUOTE>
You can read more about why this is the case at:
</BLOCKQUOTE>
<BLOCKQUOTE><DL><DT>
Creating a split DNS environment
<DD><A HREF="http://www.acmebw.com/askmrdns/00408.htm"
>http://www.acmebw.com/askmrdns/00408.htm</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE>
However, it is relatively rare to have this problem.
You probably are only running a small organization, and
maintaining all of your domain in a single zone delegation
is probably feasible. In that case here's what you can
do:
</BLOCKQUOTE>
<BLOCKQUOTE>
You can easily run a copy of named on your Linux box. It's
included with all major Linux distributions. (Just install
the BIND package from your Red Hat CD).
</BLOCKQUOTE>
<BLOCKQUOTE>
Red Hat 5.2 and later ship with BIND 8.x (there was a
major change in the configuration file format between
BIND 4.9x and 8.x --- as well as jump in the version
numbering).
</BLOCKQUOTE>
<BLOCKQUOTE>
Once you've installed BIND all you have to do is
to prepare a configuration file and a set of zone files
for you forward and (especially) reverse zones.
</BLOCKQUOTE>
<BLOCKQUOTE>
Here's an example of a configuration file (similar to
the one I use for my domain):
</BLOCKQUOTE>
<blockquote><pre>options {
directory "/var/named";
dump-file "/var/tmp/named_dump.db";
pid-file "/var/run/named.pid";
statistics-file "/var/tmp/named.stats";
memstatistics-file "/var/tmp/named.memstats";
check-names master warn;
datasize 20M;
forwarders { 209.157.85.7; 209.157.85.2; 123.45.6.7;};
};
zone "." {
type hint;
file "named.root";
};
zone "localhost" {
type master;
file "master/localhost";
check-names fail;
allow-update { none; };
allow-transfer { any; };
};
zone "0.0.127.in-addr.arpa" {
type master;
file "master/127.0.0";
allow-update { none; };
allow-transfer { any; };
};
acl "internal" {
{ 192.168.64.0/24; };
};
zone "starshine.org" {
type master;
file "master/starshine.org";
check-names fail;
allow-update { none; };
allow-transfer { any; }; // just allow the secondaries
allow-query { any; };
zone "64.168.192.in-addr.arpa" {
type master;
file "master/192.168.64";
allow-update { none; };
allow-transfer { internal; localnets; localhost; };
};
</pre></blockquote>
<BLOCKQUOTE>
This configuration file refers to the starshine.org
and 192.168.64 files in the "master/" directory.
There are also localhost and 127.0.0 files under the
master/ directory. Here are copies of those two:
</BLOCKQUOTE>
<BLOCKQUOTE>
master/localhost:
</BLOCKQUOTE>
<blockquote><pre>$ORIGIN localhost.
@ IN SOA @ root.localhost. (
2 ; serial
3H ; refresh
15M ; retry
1W ; expire
1D ) ; minimum
IN NS @
IN A 127.0.0.1
</pre></blockquote>
<BLOCKQUOTE>
master/127.0.0:
</BLOCKQUOTE>
<blockquote><pre>$ORIGIN 0.0.127.in-addr.arpa.
@ IN SOA localhost. root.localhost. (
2 ; serial
3H ; refresh
15M ; retry
1W ; expire
1D ) ; minimum
IN NS localhost.
1 IN PTR localhost.
</pre></blockquote>
<BLOCKQUOTE>
Those two should be the same for every DNS server.
(I won't get into the history surrounding this ---
just take it as a quirk).
</BLOCKQUOTE>
<BLOCKQUOTE>
Here's a set of sample zone file excerpts from
my domain:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
master/starshine.org
</BlockQuote></BLOCKQUOTE>
<blockquote><pre> @ IN SOA ns1.starshine.org. hostmaster.starshine.org. (
1999071603 ; serial, todays date + todays serial #
8H ; refresh, seconds
2H ; retry, seconds
1W ; expire, seconds
1D ) ; minimum, seconds
IN NS ns1.starshine.org.
IN NS ns2.idiom.com.
IN MX 10 antares.in.starshine.org.
IN MX 20 mx.starshine.org.
IN MX 30 www.starshine.org.
IN MX 90 mx.myisp.net.
IN TXT "Starshine Technical Services"
IN A 209.157.85.7
flowpoint IN CNAME gw.starshine.org.
gw IN A 209.157.85.1
IN MX 10 antares.in.starshine.org.
IN MX 20 mx.starshine.org.
pulsar IN A 209.157.85.2
ntp IN CNAME ntp.starshine.org.
mx IN A 209.157.85.7
mail IN A 209.157.85.17
www IN A 209.157.85.7
IN MX 10 antares.in.starshine.org.
IN MX 20 mx.starshine.org.
ftp IN A 192.168.64.3
IN MX 10 antares.in.starshine.org.
IN MX 20 mx.starshine.org.
staging IN A 192.168.64.4
IN MX 10 antares.in.starshine.org.
IN MX 20 mx.starshine.org.
lasfs IN A 192.168.64.5
IN MX 10 antares.in.starshine.org.
IN MX 20 mx.starshine.org.
antares IN A 192.168.64.11
IN MX 20 mx.starshine.org.
ant IN CNAME antares.starshine.org.
betelgeuse IN A 192.168.64.12
IN MX 10 antares.in.starshine.org.
IN MX 20 mx.starshine.org.
bet IN CNAME betelgeuse.starshine.org.
canopus IN A 192.168.64.13
IN MX 10 antares.in.starshine.org.
IN MX 20 mx.starshine.org.
can IN CNAME canopus.starshine.org.
venus IN A 192.168.64.14
IN MX 10 antares.in.starshine.org.
IN MX 20 mx.starshine.org.
startop IN CNAME venus.starshine.org.
quit IN CNAME use-exit-to-quit-nslookup.
</pre></blockquote>
<BLOCKQUOTE>
master/192.168.64
</BLOCKQUOTE>
<blockquote><pre>$ORIGIN 64.168.192.in-addr.arpa.
@ IN SOA 64.168.192.in-addr.arpa. hostmaster.starshine.org. (
4 ; serial
3H ; refresh
15M ; retry
1W ; expire
1D ) ; minimum
@ IN NS ns1.starshine.org.
@ IN NS ns1.idiom.com.
1 IN PTR antares.starshine.org.
2 IN PTR betelgeuse.starshine.org.
3 IN PTR canopus.starshine.org.
4 IN PTR deneb.starshine.org.
5 IN PTR eridani.starshine.org.
6 IN PTR fomalhaut.starshine.org.
18 IN PTR rigel.starshine.org.
19 IN PTR spica.starshine.org.
22 IN PTR vega.starshine.org.
33 IN PTR andromeda.starshine.org.
97 IN PTR mercury.starshine.org.
98 IN PTR venus.starshine.org.
99 IN PTR earth.starshine.org.
100 IN PTR mars.starshine.org.
101 IN PTR jupiter.starshine.org.
102 IN PTR saturn.starshine.org.
103 IN PTR neptune.starshine.org.
104 IN PTR uranus.starshine.org.
105 IN PTR pluto.starshine.org.
106 IN PTR luna.starshine.org.
107 IN PTR deimos.starshine.org.
108 IN PTR phobos.starshine.org.
109 IN PTR titan.starshine.org.
110 IN PTR europa.starshine.org.
111 IN PTR io.starshine.org.
112 IN PTR ceres.starshine.org.
</pre></blockquote>
<BLOCKQUOTE>
... etc.
</BLOCKQUOTE>
<BLOCKQUOTE>
So you could take these as samples (though you'll have to
edit in various values). Every hostmaster I know uses
a set of templates for all of their files. Occasionally
someone needs to build one "from scratch" but most of us
maintain our zones in "monkey-mode" (as in "monkey see;
monkey do!).
</BLOCKQUOTE>
<BLOCKQUOTE>
For more information you could read the "cricket book"
whole book on DNS/BIND (*)
</BLOCKQUOTE>
<BLOCKQUOTE><ul><li>
(DNS and BIND, 3rd Edition
<A HREF="http://www.oreilly.com/catalog/dns3/noframes.html"
>http://www.oreilly.com/catalog/dns3/noframes.html</A>)
</UL></BLOCKQUOTE>
<BLOCKQUOTE>
You can also can peruse the DNS Resources Directory
(<A HREF="http://www.dns.net/dnsrd"
>http://www.dns.net/dnsrd</A>) web site, and you could
visit the Internet Software Consortium at:
<A HREF="http://www.isc.org"
>http://www.isc.org</A>. ISC is headed up by Paul Vixie,
who has been the principle programmer and maintainer of
BIND for about 20 years.
</BLOCKQUOTE>
<BLOCKQUOTE>
Hope that helps. Sorry such a simple question leads to such
a long answer. I've been meaning to write up something on
split DNS for awhile.
</BLOCKQUOTE>
<BLOCKQUOTE>
Incidentally the examples I showed were for the internal
systems. The publicly accessible servers and any hosts
with "real" IP addresses would have entries in a different
set of zone files which would be stored on a publicly access
DNS server. Keeping the two sets of zone files relatively
in sync is one of the principle disadvantages of split DNS.
There are systems out there that generate zone (and reverse
zone) files from simple text tables and/or as reports from
a database. I don't know of any that specifically support
zone "splitting" (though it would be a simple feature to
add).
</BLOCKQUOTE>
<BLOCKQUOTE>
In my case I'd only have about three or four entries
in my public DNS and I don't maintain a reverse DNS zone
for it directly (my ISP offers a web form (CGI) driven
means to allow me to submit changes to my reverse names
to his zone. That is a complex issue that I won't cover
this time around.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 11 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<HR WIDTH="40%" ALIGN="center">
<!-- begin 12 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Thanks</H3>
<p><strong>From Bobby Mathew on Fri, 23 Jul 1999
<P><STRONG>
Dear Jim,
</STRONG></P>
<P><STRONG>
I am so really impressed by your explanation of my problem. I am also
grateful for your initiative to help out. I had given up on the problem
after recieving no response for so long. But your email has encouraged me to
venture into LINUX a little more deeply. I am a novice to LINUX and so very
hesitant to venture far. Thanks a lot for your detailed explanation. Though
I must admit that most of it went over me but neverthless your email has
certainly inspired and enlightened me to go back to see if I can correct the
problem.
</STRONG></P>
<P><STRONG>
Thanks a ton for sharing your expertise and your time.
I will try it out and get back to you.....
</STRONG></P>
<P><STRONG>
God Bless you
<BR>bobby
</STRONG></P>
<!-- end 12 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/12"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 13 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Getting Access to the Internet</H3>
<p><strong>From albuquerque on Tue, 31 Aug 1999
</strong></p>
<!-- ::
Getting Access to the Internet
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hope you can help me. I have a DELL I7K laptop running WIN98 and
Linux RH6.0.
</STRONG></P>
<P><STRONG>
Linux seems to be running fine, have <A HREF="http://www.gnome.org/">GNOME</A> as my window stuff, I
can access the PCMCIA card and use a SYQUEST SCSI drive.
</STRONG></P>
<P><STRONG>
Now I'd like to use Linux to access the Internet!!!!!!!!!!!!!
</STRONG></P>
<P><STRONG>
I have read most or many How TO s etc. and keep getting lost in
the forest.
</STRONG></P>
</STRONG>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0">
That's a common problem. The answer will be a rather lengthy one.
To answer this question I'll have to start with a view from "ten
thousand feet" and then swoop down for a closer look at some
details.
</BLOCKQUOTE>
<BLOCKQUOTE>
As with the answers to many questions about Linux quite a bit of
my response will be qualified with: "It depends..."
</BLOCKQUOTE>
<BLOCKQUOTE>
Since Linux, and UNIX are written following a "toolbox" model it
provides us with tools to apply to the whole class of problems.
We have to know how to use those tools to fashion our own
solution.
</BLOCKQUOTE>
<BLOCKQUOTE>
In the case of connecting to the Internet most of the "It depends"
clauses are followed by the phrase "...on your ISP." Other things
depend on your hardware, your distribution, and even on your
personal preferences.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Problem? What are the steps need to get on the Internet. (RH
says use Linuxcfg's special command - which I can't find.) What
is need to set up the Modem; What is needed to set up the DNS
numbers(like Win98); What is needed to set up E-Mail; Where is the
"Dialer"?
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I think <A HREF="http://www.redhat.com/">Red Hat</A> recommends the use of the linuxconf
package. I don't know what Linuxcfg would be, or what
sort of "special commands" it might offer.
</BLOCKQUOTE>
<BLOCKQUOTE>
(I suspect that you have simply mangled the name of the
package and haven't referred to HOWTOs in the conventional
way. These may seem like nitpicks. However attention to
details of this sort, linuxconf vs. Linuxcfg and HOWTOs
vs. "How TO s" is actually quite important in using
most operating systems, particularly in using any UNIX
like system).
</BLOCKQUOTE>
<BLOCKQUOTE>
So, your questions were:
</BLOCKQUOTE>
<BLOCKQUOTE><ul><li>
What are the steps needed to "get on the Internet" with
Linux?
<li>What is needed to set up a modem under Linux?
<li>What is needed to set up "DNS numbers" (by which I presume
you mean: set your IP address, network/subnet mask,
broadcast address, and specify the addresses of your
"nearest" name servers)?
<li>What is needed to needed to set up e-mail?
<li>Where is the "Dialer?"
</ul></BLOCKQUOTE>
<BLOCKQUOTE>
That looks like five questions. It could also be considered
as one broad question for which you've provided four
specifications to clarify what you mean by "get on the
Internet". I'll revisit each of these questions, with
answers, below.
</UL></BLOCKQUOTE>
<BLOCKQUOTE>
However, first I'll comment on some of the overall problems
that lead to these sorts of questions. The first thought
might be to say: "Linux is too hard to use." Getting on the
Internet is one of the most common operations for PCs these
days so it <EM>SHOULD</EM> be easy and straightforward.
</BLOCKQUOTE>
<BLOCKQUOTE>
Indeed it could be. If we were buying our computers with
appropriate modems included and with Linux pre-installed and
pre-configured for our modems AND if we were subscribing to
ISPs who catered specifically to the particular Linux
distribution that our hardware vendor was providing. If we
didn't have so many choices --- then connecting to the
Internet would be pretty easy.
</BLOCKQUOTE>
<BLOCKQUOTE>
Let's compare this to the typical experience of Window '98
user buying a new system and accepting whatever options are
presented "up front" in that process. They buy a system
with a cheesy little winmodem pre-installed. It includes
icons to access MSN (the Microsoft Network) and possibly
AOL. These are already on the desktop.
</BLOCKQUOTE>
<BLOCKQUOTE>
Under those circumstances (and the similar ones which
predominate the experience of new Mac users) it is pretty
easy to "get on the Internet." We'll ignore the trifling
argument that being on MSN or AOL might not quite be the
same as "being on the Internet." That's a matter of
personal bias.
</BLOCKQUOTE>
<BLOCKQUOTE>
That process is easy. It sometimes isn't reliable. It
certainly isn't flexible and may not be economical nor
convenient (you have to put up with quite a bit of
advertising if you subscribe to either of these "loss
leader" ISPs). When things don't work right you are up
against an unyielding brick wall. Lost in all that "ease of
use" is any control over the underlying mechanics (much like
the situation under the hood of most modern vehicles ---
somewhere deeply wedged under all those proprietary
electronics is your basic internal combustion, gasoline
driven piston engine).
</BLOCKQUOTE>
<BLOCKQUOTE>
Things get very interesting if you want to have choices; to
do things your own way. Linux is very much about "doing
things your way." This is a facet of it that comes with
quite a cost. It requires quite a time commitment to climb
the Linux learning curve.
</BLOCKQUOTE>
<BLOCKQUOTE>
To complicate issues more every distribution starts out with
a set of assumptions how things "should" be done. For
example RedHat 6.0 includes '<tt>linuxconf</tt>' --- and Red Hat Inc is
encouraging people to use it.
</BLOCKQUOTE>
<BLOCKQUOTE>
Personally I don't like Linuxconf (nitpick, <tt>linuxconf</tt> is the
command, Linuxconf is the subsystem which includes the
command, some libraries, help files, an API and some other
stuff). What I want from a system configuration management
tool is much more focused than Linuxconf is written to
provide.
</BLOCKQUOTE>
<BLOCKQUOTE>
The biggest difference between configuring UNIX-like systems
and managing the configuration of NT, Win '9x, MacOS, and
other proprietary systems, is that UNIX (and Linux) use
text files to store almost all configuration data.
</BLOCKQUOTE>
<BLOCKQUOTE>
The Microsoft operating systems use a "Registry" (which
represents a giant single point of failure as well as a
key, performance limiting lock point for which many critical
subsystems compete). Almost anything "interesting" that you
want to do to configure an NT or Win '9x system involves
tweaks to the registry. Anyone from that background who
complains about how "non-intuitive" UNIX/Linux configuration
file names are should take a good look at those \HKLM\...
references to which they've become accustomed.
</BLOCKQUOTE>
<BLOCKQUOTE>
So, what I want out of a configuration management interface
is one which primarily consolidates the process of creating and
modifying these configuration text files and integrates that
with a documentation and context sensitive help system.
</BLOCKQUOTE>
<BLOCKQUOTE>
A nice thing about having lots of small, individual text
configuration file is that you can prepare one canonical or
template that is suited for a given site or situation and
easily distribute that to as many systems as necessary.
It's scaleable with simple distribution and processing
(scripting and text processing) tools.
</BLOCKQUOTE>
<BLOCKQUOTE>
The dark side of this model is that each of these conf files
has a unique syntax and set of semantics. It's like having
to know dozens of dialects of Hindi and Punjab to work
within one administrative domain. That's the problem that I
want solved.
</BLOCKQUOTE>
<BLOCKQUOTE>
Linuxconf tries to do too many other things and doesn't
offer me a way to just spit out the conf files.
</BLOCKQUOTE>
<BLOCKQUOTE>
So, I don't use it.
</BLOCKQUOTE>
<BLOCKQUOTE>
This means that its quite possible that you could use
Linuxconf to do what you want with a minimum of fuss and
virtually no understanding of what all the "moving parts"
mean or how they relate. However, I can't guide you along
that path --- since I've taken the low road (or the
"low-level" road as it were).
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Any help or assistance you can provide would be ever so greatly
appreciated!
</STRONG></P>
<P><STRONG>
Thankyou Al
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
So, let's revisit those questions:
</BLOCKQUOTE>
<BLOCKQUOTE><ul><li>
What are the steps needed to "get on the Internet" with
Linux?
</ul></blockquote>
<BLOCKQUOTE>
What do you mean by "on the Internet?" You mention
using a modem and using e-mail. So I'll guess that you
want to be a simple, dial-in PPP client, to access web
and e-mail (presumably through a POP mailbox) from a
conventional ISP.
</BLOCKQUOTE>
<BLOCKQUOTE>
Note that I'm guessing here. There are many other ways
to be "on the Internet."
</BLOCKQUOTE>
<BLOCKQUOTE>
For example you might want to have your own domain,
configure one modem to maintain a persistent connection
to the Internet, set up your own web and mail servers,
configure another modem for dial-in by some associates
etc. That would an equally legitimate interpretation of
your question.
</BLOCKQUOTE>
<BLOCKQUOTE>
In general the process of connecting a Linux box
consists of the following steps:
</BLOCKQUOTE>
<BLOCKQUOTE><ul><li>
Establish a physical link (communications
channel)
<li>
Configure a TCP/IP interface (handle IP
addressing, subnet masking, etc)
<li>
Configure routing (usually: set a default
route)
<li>
Configure name services resolution
(<TT>/etc/resolv.conf</TT>)
<li>
Configure and access specific applications
services
</ul></BLOCKQUOTE>
<BLOCKQUOTE>
Most of these correspond to the other questions you
asked. Fans of the OSI networking reference model will
note that I've listed these roughly in order from the
lowest level (physical) towards the upper (applications)
layer. We're "stacking" each step on top of the ones on
which it depends. (I bet some of you have wondered by
they call it a "TCP/IP <em>stack</em>").
</UL></BLOCKQUOTE>
<BLOCKQUOTE>
In your case you've said that you want to use a modem.
So that will be your communications channel. We'll
cover that with your next question.
</BLOCKQUOTE>
<BLOCKQUOTE>
Once you've dialed into your ISP and established a modem
connnection, you'll have to run some protocol over that
connection in order to provide any sort of networking
through it. These days that will almost certainly be
PPP. In the days of yore (about 4 or 5 years ago) you
might have been coping with SLIP. That's virtually
unheard of these days.
</BLOCKQUOTE>
<BLOCKQUOTE>
Under Linux PPP is provided by the PPP daemon, usually
installed as <TT>/usr/sbin/pppd.</TT>
</BLOCKQUOTE>
<BLOCKQUOTE>
Your ISP probably defaults to issuing "dynamic IP"
addresses. The PPP protocol has features for
negotiating and establishing addressing, masking, and
routing for each new connection. So long as you stick
with reasonable defaults then you won't have to deal
with those issues directly. We'll talk about that, and
LAN addressing when we address your third question.
</BLOCKQUOTE>
<BLOCKQUOTE>
Almost all operations on the Internet are done using
host and domain names. So one of the most vital "glue"
services provided by the Internet is DNS.
</BLOCKQUOTE>
<BLOCKQUOTE>
This is usually classified as an "applications layer"
service, because the Internet TCP/IP protocols don't
conform to the seven layer OSI reference model. I tend
to think of it as a "presentation layer" service (having
to do with the translation between user/applications
representation in the form of names to a lower level
machine representation, IP addresses). I'm sure some
OSI purist will correct me on this.
</BLOCKQUOTE>
<BLOCKQUOTE>
In any event there is a bit of a chicken-and-egg problem
when we think about DNS. We have to provide an egg, in
the form of one or more IP addresses, to gives us the
whole specifies of other nameservers that form the DNS
system.
</BLOCKQUOTE>
<BLOCKQUOTE>
So we list a few nameservers in our <TT>/etc/resolv.conf.</TT>
</BLOCKQUOTE>
<BLOCKQUOTE>
Conventionally these would either being a local caching
name server or one of the name servers operated and
maintained by our ISP. This makes quite alot of sense
since it minimizes the number of network hops taken by
our name resolution requests and their replies. In
other words it results in faster name resolution at less
overall cost in bandwidth across the Internet.
</BLOCKQUOTE>
<BLOCKQUOTE>
Usually you can just create one <TT>/etc/resolv.conf</TT> and
leave it in place permanently. Even if you have
multiple ISPs its possible to refer to any nameserver on
the Internet, even if it isn't the "closest."
</BLOCKQUOTE>
<BLOCKQUOTE>
Once you have these networking basics in place you can
access most Internet services. You can browse the web,
fetch Linux package updates over FTP, telnet, use the
finger command etc.
</BLOCKQUOTE>
<BLOCKQUOTE>
Note that your ISP might provide a proxy/cache for its
customers. If that's the case you might be a bit
happier (and make your ISP much happier) if you
configure your web browsers to point to his Squid
server, or whatever he's using. If that's the case,
your ISP should provide you with the information and
support to use the feature (it's really of more benefit
to him and your fellow customers than anyone else).
</BLOCKQUOTE>
<BLOCKQUOTE>
E-mail is special case. There are many ways for you and
your ISP to configure your e-mail services. In the
simplest case you have an address of the form:
<A HREF="mailto:YourName@YourISP.com"
>YourName@YourISP.com</A> and you just periodically use a POP
or IMAP client to fetch your mail from your ISP's
server.
</BLOCKQUOTE>
<BLOCKQUOTE>
Your POP/IMAP client might be part of a mail user agent
(MUA: a program for reading and composing/sending
e-mail) or it be a separate utility like '<tt>fetchmail</tt>'
which relays your mail from an mail store to a local
"spool" (mailbox).
</BLOCKQUOTE>
<BLOCKQUOTE>
Note that POP is only a way of receiving e-mail. When
it comes to sending e-mail there are two methods that
are commonly employed by UNIX MUAs.
</BLOCKQUOTE>
<BLOCKQUOTE>
Most well-behaved programs call on a local program named
<TT>/usr/lib/sendmail</TT> (which might be a copy of the classic
'sendmail' MTA, mail transport agent, or it might be any
program that provides a sufficiently compatible
interface to allow MUAs to feed mail to the local system
transport agents).
</BLOCKQUOTE>
<BLOCKQUOTE>
Some programs ("know-it-alls") will bypass the local MTA
and attempt to directly open their own connections to
the mail transport agent on the recipients home host (or
MX as the case may be). Netscape Communicator is an
example of this class of program.
</BLOCKQUOTE>
<BLOCKQUOTE>
The reason I make this distinction is that your choice
of MUA has implications regarding how your configure
your system so that the mail you generate has an
appropriate return address. It generates another "It
depends..."
</BLOCKQUOTE>
<BLOCKQUOTE>
If you don't configure your system correctly then most
people will not be able to respond to any mail you send
them. They'll have to remember your address and type
that in every time rather than being able to use the
"reply" feature of their MUA. That would not endear you
to your correspondents.
</BLOCKQUOTE>
<BLOCKQUOTE>
We'll get to that in a bit more detail later.
</BLOCKQUOTE>
<BLOCKQUOTE>
That's the overview of "getting on the Internet."
Obviously most of the details are left to the constituent
questions that you've provided.
</BLOCKQUOTE>
<BLOCKQUOTE><ul><li>
What is needed to set up a modem under Linux?
</ul></BLOCKQUOTE>
<BLOCKQUOTE>
First you need a real modem. This seems so obvious you
might wonder why I'd even mention it.
</BLOCKQUOTE>
<BLOCKQUOTE>
winmodems (a.k.a. "losemodems").
</BLOCKQUOTE>
<BLOCKQUOTE>
To understand the difference between a real modem and a
"winmodem" you have to know a little bit about how
modems work.
</BLOCKQUOTE>
<BLOCKQUOTE>
The term modem originally stood for
"modulator/demodulator" (which sounds like something
Marvin the Martian might be brandishing as he says "Take
me to your leader").
</BLOCKQUOTE>
<BLOCKQUOTE>
Telephone lines carry electrical signals which are
normally analog modulations of sound. The fact that
sound can be easily represented and transmitted by and
replayed from electrical signals (in the forms of
telephone, radio and phonograph, for example) is the
major realization on which Thomas Edison built his
fortune and his historical legacy.
</BLOCKQUOTE>
<BLOCKQUOTE>
For computers to make use of this medium they must be
able to convert their digital signals into modulated
electrical signals and vice versa. Thus we have devices
that modulate and demodulate.
</BLOCKQUOTE>
<BLOCKQUOTE>
Fundamentally modems are programmable tone generators,
usually with analog-to-digital (A/D) and
digital-to-analog (D/A) circuitry and other stuff in them.
</BLOCKQUOTE>
<BLOCKQUOTE>
It's this other stuff that grew increasingly
sophisticated throughout the late 70's, 80's and into
the early 90's. Modern "smartmodems" and "Hayes
Compatible" modems are essentially special purpose
computers running an embedded system. The interface to
that embedded system is any of the many variations to
the AT set that every modem manufacturer has created.
</BLOCKQUOTE>
<BLOCKQUOTE>
In particular these modems needed to do signal
transformations that were much more sophisticated that
simple AM and FM (amplitude and frequency modulations
respectively). So they needed special DSP (digital
signal processing) chips as well as a processor and
memory to handle the interpretation of AT commands.
Naturally they also had fairly significant ROMs to store
the AT command set interpreters.
</BLOCKQUOTE>
<BLOCKQUOTE>
The advantage of all this is that modems work in a
relatively standard way, through a minimal interface
(the serial port) and without introducing much
processing overhead on the host systems.
</BLOCKQUOTE>
<BLOCKQUOTE>
Ironically the most recent real modems have CPUs that
are probably more powerful than early PCs.
</BLOCKQUOTE>
<BLOCKQUOTE>
However, some manufacturers came up with the brilliant
idea of ripping out all the DSPs, processors and
firmware out of their modems. They produce a device
which is essentially just the programmable tone
generators, and force the host system to do all of the
signal processing and provide the interface (AT command
set emulation). This entails running a rather bulky and
computationally expensive driver on the host system.
</BLOCKQUOTE>
<BLOCKQUOTE>
Those are winmodems.
</BLOCKQUOTE>
<BLOCKQUOTE>
Winmodems wouldn't be such a bad idea under certain
circumstances. If the devices were priced <EM>much</EM> lower
than "real" modems, and if the programming
specifications were widely available, then the choice
would be simply be a matter of comparing cost/benefit
factors.
</BLOCKQUOTE>
<BLOCKQUOTE>
However, neither of these conditions is true of
winmodems in the current PC market. They aren't
significantly less expensive to the consumer (so the
manufacturers and distributors keep all of the margin).
Also, and here's the part that's of interest to Linux
users, the specifications for devices are not available.
Therefore the only drivers that exist for most of them
are for MS Windows. In some cases it appears that some
manufacturers have released proprietary UNIX drivers.
</BLOCKQUOTE>
<BLOCKQUOTE>
The economics that result in the widespread deployment
of winmodems are instructive. As far as I can tell they
first their way into the market through bundling. At a
certain point it became a significant marketing handicap
to sell a computer system without including a modem.
However, the only characteristic of a modem that was
important in marketing whole systems is the optimal
throughput speeds. So computer retailers included the
cheapest modems (in the right "speed" range) that they
could find.
</BLOCKQUOTE>
<BLOCKQUOTE>
Since almost every system shipped with a (win)modem
there was a corresponding drop in the sales of (real)
modems as separately purchased peripherals. (Probably
this wasn't really a "drop" so much as a slower growth
in sales as compared to the broader expansion of the
whole computing market). These (win)modems are mostly
made by the same manufacturers as real modems.
Naturally it then made sense for them to package these
devices in the same way as their real modems for
separate sales.
</BLOCKQUOTE>
<BLOCKQUOTE>
So, when you go to the store to buy a modem you'll find
that winmodems are packaged identically to internal
(real) modems. They are usually not clearly labelled
(sometimes the warning doesn't even appear in the fine
print on the outside packaging).
</BLOCKQUOTE>
<BLOCKQUOTE>
So, the easiest way to guarantee that you are getting a
real modem is to buy an external one. So far as I know
it's not possible to make an external "winmodem" that
connects to a plainn old serial port. (One could
certainly design a "RAM modem" that required a software
driver to be "uploaded" to it, and such devices might
exist --- but I'd put those in a different class even if
they did require MS Windows or other proprietary drivers
to operate).
</BLOCKQUOTE>
<BLOCKQUOTE>
The real danger of winmodems (and winprinters, which are
similar in some respects) is that they build an
artificial economic and hardware barrier to the adoption
of new or alternative software. In other words, they
give too much power to Microsoft (in this particular
case). Any similar technology is best avoided by the
wise consumer (regardless whether the co-incident
beneficiary is Microsoft or any other software company).
</BLOCKQUOTE>
<BLOCKQUOTE>
There are some efforts to write drivers for some
winmodems. Naturally the programming interfaces are
different for each model and brand of these devices. In
most cases the manufacturers are not providing any
support for the efforts (and in some cases I'd bet that
the modem manufacturers can't do so, since they may have
licensed their drivers through a third party, etc.).
</BLOCKQUOTE>
<BLOCKQUOTE>
If any of those projects is a success than the modems
that are supported by Linux will probably be called
"linmodems."
</BLOCKQUOTE>
<BLOCKQUOTE>
At that point there will probably be four or five
classes of modems in the PC world. "Real" modems
(internal ISA, PCI, and external), winmodems (those that
are still not supported by Linux), "linmodems" (those
winmodems that are supported with a Linux driver), and
possibly the USB modems will be in a class of their own.
</BLOCKQUOTE>
<BLOCKQUOTE>
Note that there is a potential problem with internal
modems even if they are "real" (non-Winmodems). Some of
these are "Plug and Pray" devices that must be
initialized by some proprietary driver. In some cases
you may be able to cope using the Linux pciutils
package.
</BLOCKQUOTE>
<BLOCKQUOTE>
PCMCIA modems, such as you might be tempted to use in
your laptop, come in both "real" and winmodem flavors.
As with other internal modems there is usually nothing
to clarify the matter on the packaging or in the
marketing literature for these modems.
</BLOCKQUOTE>
<BLOCKQUOTE>
Calling the manufacturer's technical support line might
help --- if they have one, if you can get through, and
if the person you talk to has a clue what your asking
about and the inclination and liberty to honestly answer
your question.
</BLOCKQUOTE>
<BLOCKQUOTE>
However, the simple advice is:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
Throw away the internal modem that came with
your machine.
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE><blockquote>
Buy an external modem!
</blockquote></BLOCKQUOTE>
<BLOCKQUOTE>
If I recall correctly the Dell Inspiron 7000 that you
have includes an internal "winmodem" --- ignore it.
It's not supported by Linux. (Although Dell may be
providing a supported modem in future versions since
I've heard rumors that they'll eventually be offering
desktop and laptop system with Linux pre-installed).
</BLOCKQUOTE>
<BLOCKQUOTE>
That finally leads us to the answer to the question at
hand. How do we use a <EM>real</EM> modem under Linux?
</BLOCKQUOTE>
<BLOCKQUOTE>
Linux has a very simple interface to any normal modem.
The application simply opens the device's node (entry in
the filesystem which provides a means of access
UNIX/Linux device drivers through normal file
operations).
</BLOCKQUOTE>
<BLOCKQUOTE>
This would usually be <TT>/dev/ttyS0</TT> or <TT>/dev/ttyS1</TT>, though
it could be any of the <TT>/dev/ttyS*</TT> devices that represent
access to the conventional PC serial ports (COM1 through
COM4). It could also be any of the many devices
associated with various multi-port serial cards (ttyR*
for RocketPort, ttyC* for Cyclades, ttyD* for some
Digiboard, and others for Stallion, etc.).
</BLOCKQUOTE>
<BLOCKQUOTE>
It's common for Linux users to create symlinks named
<TT>/dev/modem</TT> and <TT>/dev/mouse</TT> which point to the real
device interfaces for these common peripherals. Then
all of our applications and configuration files can use
the symbolic name. If we ever change to a different
mouse or connect a modem to a different port we can
simply update the symlink and leave all our software
alone.
</BLOCKQUOTE>
<BLOCKQUOTE>
Once a process has an open read/write connection to the
modem (and a lock on the device node to prevent other
processings from jumping into the "conversation") then
the use of the modem is rather simple. The
communications application handles all of the details
for you.
</BLOCKQUOTE>
<BLOCKQUOTE>
What's going on under the hood is a structured
conversation (protocol) between the application and the
modem. The application sends a special break signal
after a pause to "break" the modem into command mode
(similar to using the [Esc] key in 'vi' to break out of
text entry mode into its command mode). Then the
application can send a series of AT commands (that is
any command starting with the ASCII sequence "AT").
These sequences set various options on the modem, and
instruct it to dial and establish connections).
</BLOCKQUOTE>
<BLOCKQUOTE>
The modem reponds with various result codes like "OK"
and "CONNECT" and "BUSY" etc. (Most of them can be
configured to return numeric codes instead of text).
</BLOCKQUOTE>
<BLOCKQUOTE>
The basic AT command set is the same for all Hayes
compatible modems. However, there are many extensions
and settings that differ among brands and models of
modem. The most significant differences are in the
"init strings" --- these are AT commands which configure
the modem in preparation for a particular mode of
operation.
</BLOCKQUOTE>
<BLOCKQUOTE>
Tweaking init strings is more art than science. It can
depend on the modem in use, the other modem to which it
is connecting, and the software that will be
communicating over the channel ... among other things.
Every Linux serial communications utility is responsible
for its own init strings and other dialogs with the
modem.
</BLOCKQUOTE>
<BLOCKQUOTE>
This is quite unfortunate in some respects. It would be
nice if '<tt>uucico</tt>', '<tt>kermit</tt>', '<tt>pppd</tt>/<tt>chat</tt>',
'<tt>mgetty</tt>', '<tt>efax</tt>',
'<tt>minicom</tt>', '<tt>seyon</tt>', and other modem-using Linux utilities
were all "reading off the same page" for at least the
major modem settings (if they were all written to read
and parse an <TT>/etc/modemcap</TT> file, or something like
that). This would allow the admin to consolidate most
of the information into one place, while allowing the
applications to override those settings as necessary.
</BLOCKQUOTE>
<BLOCKQUOTE>
However, that's not the way it works, and it's not
likely to become a new standard. So we'll stop
daydreaming and get back to how it DOES work.
</BLOCKQUOTE>
<BLOCKQUOTE>
Here's what's necessary to get an application to talk to
your modem:
</BLOCKQUOTE>
<BLOCKQUOTE><ul><li>
Provide it with the correct device name.
<li>
Ensure that the ownership and permissions
of the device node and <TT>/dev/</TT> directory are
suitable for your applications settings (this
frequently involves marking the application/
utility as SGID to a "modem" group).
<li>
Configure it to use the same location, naming
convention and format for its lock files as
all other applications on your system which
have access to the modem.
<li>
Provide your application/utility with any
init strings or other specific settings it
needs.
<li>
Ensure that the line is "conditioned"
correctly. Most modem using applications
will do this for themselves, but sometimes
you need to write a wrapper script that will
use the 'setserial' and/or 'stty' commands to
prepare the serial line (the settings of the
device driver) for use, or reset it
afterwards.
</UL></BLOCKQUOTE>
<BLOCKQUOTE>
Distribution maintainers usually set their programs to
be mutually consistent (to use compatible lock files for
example). They often don't configure their permissions
and ownership to match my preferred policies, so I
usually have to tweak some things to get them the way I
want them to be.
</BLOCKQUOTE>
<BLOCKQUOTE>
In your case you're specifically interested in PPP. It
sounds like you won't be using '<tt>mgetty</tt>' (to recieve
incoming data connections or faxes), and it seems
unlikely that you'd be using any other modem utilities,
or that you might just want to use '<tt>sendfax</tt>' or '<tt>efax</tt>'
in addition to your PPP.
</BLOCKQUOTE>
<BLOCKQUOTE>
In addition it sounds like you are going to be running
this system as a personal workstation, with no other
accounts on it. This means that you won't have any
problem where you try to access the modem, and some
other user on you system is already using it. In other
words, you don't have to concern yourself much with
device locking and contention. The Red Hat default
settings are probably fine for your case.
</BLOCKQUOTE>
<BLOCKQUOTE>
There have been many articles on setting up '<tt>pppd</tt>' for
Linux. It's surprisingly difficult simply because there
are so many options. The Linux '<tt>pppd</tt>' is designed to act
as a networking client or server.
</BLOCKQUOTE>
<BLOCKQUOTE>
Technically PPP is a peering system, so the terms
"client" and "server" are misnomers here. However, I
use these terms to distinguish between the system that
is initiating the connection (dialing in as a "client")
and the one that is responding to it (answering the
phone as a "server").
</BLOCKQUOTE>
<BLOCKQUOTE>
The Linux PPP daemon can act in both of these roles.
</BLOCKQUOTE>
<BLOCKQUOTE>
In your case you just want your pppd to act as a client.
</BLOCKQUOTE>
<BLOCKQUOTE>
The overall process is:
</BLOCKQUOTE>
<BLOCKQUOTE><ul><li>Edit the <TT>/etc/ppp/options</TT> file,
<li>Create an <TT>/etc/ppp/options.MYISP</TT> file
<li>Create a "chat script" (<TT>/etc/ppp/chat.MYISP</TT>)
<li>Create a script to call the pppd with the
directive to use <TT>/etc/ppp/options.MYISP.</TT>
<li>(Possibly) create entries in the
<TT>/etc/ppp/pap-secrets</TT> and/or <TT>/etc/ppp/chap-secrets</TT> files
</UL></BLOCKQUOTE>
<BLOCKQUOTE>
I personally recommend that the <TT>/etc/ppp/options</TT> file
contains just one directive:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
lock
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
That will force the PPP daemon to check for, respect and
maintain a device lock file so that it can co-ordinate
its use of the modem with any other programs that might
be using it. I've talked about the gritty details of
lock files before. You needn't worry about the
details much since you probably will never really need
the lockfiles. However, it's a good "placeholder" for
your <TT>/etc/ppp/options</TT> file in most cases.
</BLOCKQUOTE>
<BLOCKQUOTE>
This allows us to put all of our other directives in a
more specific file. We can then have different options
files for different ISPs, and even for different modem
banks at each ISP (when the fast local lines are busy
you try the slower and more distant lines). It also
allows us to have special options files for each modem
(<TT>/etc/ppp/options.ttyXX</TT>) and for individual users
(<tt>~/.ppprc</tt>). Those options are for allowing dial-in PPP
If you wanted to connect to your home computer from
work, or allow your friends to connect to you.
</BLOCKQUOTE>
<BLOCKQUOTE>
After creating that file (or checking that your
distribution has created a suitable one for you) you can
then create an ISP specific options file. That might
look something like:
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQUOTE><CODE>
<BR><TT>/dev/modem</TT> 115200
<Br><BR>modem
<Br><BR>crtscts
<Br><BR>defaultroute
<Br><BR>connect "chat -f <TT>/etc/ppp/chat.MYISP</TT>"
<Br><BR># connect "chat -v -f <TT>/etc/ppp/chat.MYISP</TT>"
<Br><BR># debug
<Br><BR># kdebug 7
<Br><BR># mtu 576 # 296
<Br><BR># mru 576 # 296
</CODE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
... notice that the first line refers to our device and
speed. These must be the first options specified in
this file, or they should be listed as parameters on the
pppd command line in whatever script we write to make
our calls.
</BLOCKQUOTE>
<BLOCKQUOTE>
The next two lines instruct the PPP daemon to treat the
device as a modem (as opposed to a "local" or direct
null modem connection) and to use the RTS/CTS (ready to
send <TT>/</TT> clear to send) control wires on the cable between
the modem and the computer (a common form of hardware
handshaking).
</BLOCKQUOTE>
<BLOCKQUOTE>
The next directive instructs the PPP daemon to set a
default route pointing to whichever interface it
establishes while parsing this file. This is sensible
when you are using '<tt>pppd</tt>' as a client/caller to connect to
an Internet ISP. You would not use it if you were
making a connection to some private network, especially
if you had a DSL or other Internet connection (through
an ethernet card or some other PPP connection).
Obviously an ISP that was using Linux/pppd on its
dial-in modem servers would also NOT use this directive.
</BLOCKQUOTE>
<BLOCKQUOTE>
The next directive is the hardest for new Linux/'<tt>pppd</tt>'
users to get working. It supplies a command that pppd
use to establish new connections. As in this example
this is usually an invocation of the '<tt>chat</tt>' command.
The chat file contains supply a dialog between the
system and the modem followed by a dialog between the
local and remote computers.
</BLOCKQUOTE>
<BLOCKQUOTE>
Chat scripts are lists of "send/expect" pairs. '<tt>chat</tt>'
implements a very small programming language for
describing these dialogs, setting timeout intervals and
abort conditions, and handling simple errors. Writing
'<tt>chat</tt>' scripts by hand is a hassle. There are several
dialog/menu driven (text and GUI) front end programs
(interfaces) which try to make this process (and the
overall process of configuring PPP and connecting to the
Internet) easier. You can find a whole directory of
such tools at:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
<A HREF="http://metalab.unc.edu/pub/Linux/system/network/serial/ppp"
>http://metalab.unc.edu/pub/Linux/system/network/serial/ppp</A>
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
One that is conspicuously missing from this directory is
WvDial at:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
<A HREF="http://www.worldvisions.ca/wvdial"
>http://www.worldvisions.ca/wvdial</A>
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
... This is probably the most popular of these
interfaces. I've never used it personally (I edit my
chat scripts by hand --- they aren't very long and I had
to learn the syntax long before these tools existed).
</BLOCKQUOTE>
<BLOCKQUOTE>
However, I've heard many positive reports about it, so I
can recommend it with some confidence. I notice from my
Freshmeat search (to find its home page) that WvDial has
been upgraded quite recently (earlier this month). So
we have some indication that it's not suffering from
"code rot" and neglect.
</BLOCKQUOTE>
<BLOCKQUOTE>
If you do have to create a chat script by hand here's
what a typical one might look like:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><Code>
TIMEOUT 30
<Br>ABORT BUSY
<Br>ABORT 'NO CARRIER'
<Br>"" ATZ
<Br>OK-AT&F-OK ATDT1234567890
<Br>CONNECT \d\r
<Br>ogin:-BREAK-ogin: MYUSERNAME
<Br>ssword:-\r-ssword: \qMYPASSWORD\q
<Br>"starting PPP..."
</Code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
The first line sets the a timeout setting. The next two
lines describe a couple of conditions under which chat
should exit with an error exit value (if it receives
either of these strings, it will ABORT the rest of the
attempted dialog and call).
</BLOCKQUOTE>
<BLOCKQUOTE>
The following three lines are a simple modem dialog.
The "expect" nothing (an empty string) and send a Hayes
modem "reset" command (ATZ). If that doesn't result in
an OK response then a "reset to factory defaults" is
issued (AT&F). (If that doesn't result in the desired
OK string then the script will time out and fail). Then
we see an attempt to dial the phone and we wait for any
sort of CONNECT string. We send a "delay" followed by a
blank line. Those are indicated with the "escape
sequences" as marked by the backslash prefix in \d and
\r.
</BLOCKQUOTE>
<BLOCKQUOTE>
If your modem need some "init string" tweaks you'd
insert them after the ATZ command.
</BLOCKQUOTE>
<BLOCKQUOTE>
The last three lines are a dialog between the remote
system and ours. When a Hayes compatible modem connects
it automatically shifts into "connect/communications
mode" and ceases to interpret strings as commands. We'd
send a "delay" followed by a "+++" to break back into
the modem's command mode.
</BLOCKQUOTE>
<BLOCKQUOTE>
This dialog implements a simple login procedure. It
expects a string like "login:" or "Login:" and sends a
user/account name. The it expects a string like
"Password:" or "password:" and "quietly" sends a
password. (The "quietly" in this case refers to how
'<tt>chat</tt>' treats is "verbose" and "logging" output, and has
NOTHING to do with its communications to the remote
system). Finally our script expects an acknowlegement
from the remote system indicating that it will now
attempt to negotiate a PPP connection with us (using its
implementation of PPP). Many people will not need this
last line.
</BLOCKQUOTE>
<BLOCKQUOTE>
After this last expect string the script simply ends.
</BLOCKQUOTE>
<BLOCKQUOTE>
If '<tt>chat</tt>' gets this far in the dialog it exits without
returning any error (its system exit value is 0). Then
the pppd program which spawned it resumes control of the
file descriptor (<TT>/dev/modem</TT>) and attempts to negotiate a
network connection over this new communications channel.
</BLOCKQUOTE>
<BLOCKQUOTE>
As we can see, spaces and line feeds separate the expect
strings from the send strings. We have to quote any
strings that contain spaces (using single or double
quotes). The ABORT and TIMEOUT directives each take a
single argument. That's why we have to use multiple
ABORT directives to add a second abort string to the
list. The dashes we've embedded in some of the expect
strings implement a very simple (and somewhat crude)
error response option. If the expected string (before
the dash) is not detected within the timeout period,
then the "error string" will be send to try to get the
dialog back on track.
</BLOCKQUOTE>
<BLOCKQUOTE>
This is a very simplistic "language." It has not
structures to support conditionals (IF/THEN/ELSE) or
loops, etc. There are alternative utilities to
implement more sophisticated chat scripting languages if
you should need them. In particular you could use the
'<tt>expect</tt>' programming language (which is a TCL variant).
</BLOCKQUOTE>
<BLOCKQUOTE>
However ---- '<tt>chat</tt>' is adequate for most cases (all
that I've encountered so far).
</BLOCKQUOTE>
<BLOCKQUOTE>
One trick for getting the expect/send dialog that we
need is to manually log into our ISP using '<tt>minicom</tt>' or
Kermit. We can then capture the dialog (on paper or
using a "log to disk" feature or the '<tt>script</tt>'
(typescript) command.
</BLOCKQUOTE>
<BLOCKQUOTE>
One nice thing about using '<tt>minicom</tt>' for this early
stage of preparation and debugging is that we can
manually login and "quit" out of minicom without
resetting the modem. We can then invoke our PPP daemon
with the chat script commented out. This should result
in a working PPP connection (thus assuring us that our
PPP options are correct and allowing us to focus purely
on the chat script).
</BLOCKQUOTE>
<BLOCKQUOTE>
Getting back to our example PPP options file we see a
series of comments. These can be used for doing
debugging when we are having trouble with this
connection. The first comment is a copy of the connect
command line with the <tt>-v</tt> option added to '<tt>chat</tt>' --- this
provides us with verbose logging output (which is posted
to our system logs so we can see our system engage in
this dialog by reading our <TT>/var/log/messages</TT> file).
</BLOCKQUOTE>
<BLOCKQUOTE>
I usually login into one of my other virtual consoles
when I'm debugging PPP connnections. You might just
open an extra '<tt>xterm</tt>'. From there just issue a command
like:
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQUOTE><CODE>
tail -f /var/log/messages
</CODE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
... and leave it running. You'll see your log messages
displayed as syslog receives them. (Actually on my own
systems I add a line to my <TT>/etc/syslog.conf</TT> to post
copies of all syslog output to one of my extra virtual
consoles --- usually #24. But we won't get into that
here).
</BLOCKQUOTE>
<BLOCKQUOTE>
The next couple of comments could be "uncommented" to
direct '<tt>pppd</tt>' to be more verbose as it runs (resulting in
more output in our <TT>/var/log/messages</TT>).
</BLOCKQUOTE>
<BLOCKQUOTE>
The last couple of lines in this sample PPP options file
are examples of how we might over-ride the maximum
transmission and receive unit sizes, with a couple of
common values to which we might force them. These
mtu/mru settings might help us maintain faster, more
robust connections under some line conditions and using
some combinations of modems and other settings.
</BLOCKQUOTE>
<BLOCKQUOTE>
There are many other directives that we can put in your
options files. Some might say there are TOO many.
</BLOCKQUOTE>
<BLOCKQUOTE>
These include options for enabling software flow control
(if the crtscts directive won't work for your modem and
cable, for example) and ways to note which control
characters can't be cleanly transmitted over your
connection (which will force pppd to "quote these" as
multi-character sequences). There are several options
to control the authentication and protocol negotiation
between your PPP daemon and your ISP's system.
</BLOCKQUOTE>
<BLOCKQUOTE>
If you really want or need to know the gory details,
read the '<tt>pppd</tt>' man page.
</BLOCKQUOTE>
<BLOCKQUOTE>
Once our PPP daemon is communicating with our ISP's PPP
implementation the two of them will usually negotiate a
number of communications settings and most ISPs will
then send us our IP address, netmask, and associated
route.
</BLOCKQUOTE>
<BLOCKQUOTE>
The Linux '<tt>pppd</tt>' will look for an executable
<TT>/etc/ppp/ip-up</TT> and invoke that with a documented list of
parameters (look in the man page). This can be used to
set up additional services or doing any other custom
event handling. Perhaps you want to resynchronize your
system clock with an NTP server or three whenever you
start up a new IP connection and run '<tt>xntpd</tt>' for the
duration, or perhaps you only want to run the '<tt>ntpdate</tt>'
command on the first connection of any given
day. Perhaps you want to register your new, dynamically
assigned IP address with some dynamic DNS system or
announce that you're "online" to one or more of these
"ICQ" services, etc.
</BLOCKQUOTE>
<BLOCKQUOTE>
There is also a <TT>/etc/ppp/ip-down</TT> hook and some analogous
scripts for IPX handling.
</BLOCKQUOTE>
<BLOCKQUOTE>
Getting back to our bulleted list. When we've created a
suitable options file and a working chat script we'd
then generally create a script to call pppd with the
appropriate options to use them.
</BLOCKQUOTE>
<BLOCKQUOTE>
This might be as simple as:
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQUOTE><CODE>
<BR>#!/bin/sh
<BR><TT>/usr/sbin/pppd</TT> file <TT>/etc/ppp/options.MYISP</TT>
</CODE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
... which would simply instruct the PPP daemon to read
our options file in addition to the global one
(<TT>/etc/ppp/options</TT>).
</BLOCKQUOTE>
<BLOCKQUOTE>
In other cases we might have to prepare our serial port
with commands like '<tt>setserial</tt>' and '<tt>stty</tt>'.
'<tt>stty</tt>' has
an unusual syntax since it performs <tt>ioctl()</tt> calls on its
stdin (standard input) file descriptor. Thus we have to
use a command like:
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQUOTE><CODE>
stty crtscts cs8 -clocal 38400 < /dev/modem
</CODE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
... to actually affect the modem. Note that the
redirection is FROM the device rather than to it.
'<tt>stty</tt>' is the only command that I know of that requires
this odd syntax. The fact that I understand <EM>why</EM> it
works this way doesn't make it any better for most
users.
</BLOCKQUOTE>
<BLOCKQUOTE>
Hopefully your Red Hat installation is properly
handling the serial ports on your system already.
Otherwise you might have to play with the '<tt>setserial</tt>'
command which I simply don't have time to explain here.
</BLOCKQUOTE>
<BLOCKQUOTE>
As I've said, pppd will automatically invoke the ip-up
and ip-down scripts as appropriate. So usually the
invocation of pppd will be the last line in your
"call.MYISP" script. You could do some scripting to
retry several times, or try alternate numbers or
alternative ISPs if your connection fails too often. In
those cases you might want to use the -detach directive
in your PPP options file.
</BLOCKQUOTE>
<BLOCKQUOTE>
Its possible to include most or all of your PPP options
on '<tt>pppd</tt>'s command line (and it's possible to include
your chat script on '<tt>chat</tt>'s command line; so with clever
quoting you could have a long messy line that didn't
rely on any of the custom configuration files that I've
described here).
</BLOCKQUOTE>
<BLOCKQUOTE>
However, pppd is complicated enough without being
downright obfuscatory.
</BLOCKQUOTE>
<BLOCKQUOTE>
The last bullet point I mentioned referred to
"<TT>/etc/ppp/pap-secrets</TT> and/or <TT>/etc/ppp/chap-secrets</TT>"
files. Some ISPs may be using the PAP or CHAP
authentication protocols (which are built into Linux
pppd). If so they should provide the name and password
(secret) along with your other account information (like
their phone numbers, and the IP addresses of their
preferred nameservers). Generally the use of these
authentication protocols should shorten and simplify
your chat script. In our example the second part of the
chat dialog (the host-to-host part) performed our
authentication.
</BLOCKQUOTE>
<BLOCKQUOTE>
I realize that this was a long-winded (some might say
excruciating) description of a very simple PPP
configuration. I go into this much detail (and even
into a few digresssions) in the hopes that it will help
you and others who have tried to read the HOWTOs and the
man pages and walked away in utter confusion.
</BLOCKQUOTE>
<BLOCKQUOTE>
Notice that this whole handling of the '<tt>pppd</tt>' options
files and the '<tt>chat</tt>' scripts is the hardest part of
getting Linux connected to your ISP. The fact that
there so many options and several different files, and
the fact that these all have to be consistent with one
another in fairly complex ways it what confuses new
users (and occasionally trips up even the most
experienced of us).
</BLOCKQUOTE>
<BLOCKQUOTE>
When I'm teaching classes for Linuxcare (one of my roles
with them) I refer to these as "moving parts." Any time
we have a list of options that must correlate to one
another to get a particular feature or subsystem (like
PPP) working it requires a bit of explanation was to how
all of these options fit together.
</BLOCKQUOTE>
<BLOCKQUOTE>
I usually draw a mechanical analogy. If I try to put a
Toyota start motor into a typical Ford truck, it won't
work. The pieces will almost certainly not fit
together. The teeth in the starter's shaft will
probably not mesh with those on the flywheel. The
solenoid's throw might not push the start shaft out far
enough to even engage them. The mounting holes probably
won't line up, and the bolts probably wouldn't fit even
if they did. (Of course this analogy provides a bit
more detail than most people with no automotive
inclinations appreciate; but the idea has been pretty
clear to my students so far).
</BLOCKQUOTE>
<BLOCKQUOTE>
This concept of "moving parts" is a recurring theme in
all technical education. There are many "moving parts"
in MS Windows --- places where the value you put in one
dialog box must "match" a different value in some other
dialog, control panel or registry tree.
</BLOCKQUOTE>
<BLOCKQUOTE>
Often the settings on one machine must match settings on
a different machine. In fact, that is the essence of
networking.
</BLOCKQUOTE>
<BLOCKQUOTE>
So, having gone into great detail on this central
question we'll finish by providing somewhat shorter
answers to your other questions.
</BLOCKQUOTE>
<BLOCKQUOTE><ul><li>
What is needed to set up "DNS numbers" (by which I presume
you mean: set your IP address, network/subnet mask,
broadcast address, and specify the addresses of your
"nearest" name servers)?
</UL></BLOCKQUOTE>
<BLOCKQUOTE>
As I pointed out, most ISPs will provide your IP address
through the PPP protocol. They should also provide
forward and reverse DNS mappings between your IP address
and some name (often dyn-123.myisp.com or
dialin-123.somepop.myisp.com; where pop in this context
refers to a "point of presence" --- a location where
your ISP has modems and phone lines that connect to
their network).
</BLOCKQUOTE>
<BLOCKQUOTE>
Netmasks and broadcast addresses are handled
automatically by PPP. The basic interface route is also
handled by the PPP daemon, as is the default route in
most cases.
</BLOCKQUOTE>
<BLOCKQUOTE>
Your ISP will probably provide you with a list of
preferred name servers. You simply put those in your
<TT>/etc/resolv.conf</TT> which should look something like:
</BLOCKQUOTE>
<blockquote><pre>domain starshine.org
search starshine.org
nameserver 123.45.67.89
nameserver 12.3.5.67
nameserver 12.3.5.78
</pre></blockquote>
<BLOCKQUOTE>
If you were setting up your own network domain you'd
have to register it with some naming authority
(currently the InterNIC/NSI for the .com, .org, and .net
domains, and various regional registries for the various
national and .us state domains). When you registered
your domain you'd also register a list of authoritative
name servers (by IP address). These would have to be
persistently online (through some form of "dedicated
24x7" connection to the Internet.
</BLOCKQUOTE>
<BLOCKQUOTE>
Usually small domains run by inexperienced used simply
let their ISP handle all those details. They
"outsource" their DNS management.
</BLOCKQUOTE>
<BLOCKQUOTE>
I've written other articles in the past that go into way
too much detail about configuring your own DNS. That,
and the fact that you almost certainly do NOT want to do
this for yourself are reasons while I'll leave off
further discussion of DNS here.
</BLOCKQUOTE>
<BLOCKQUOTE>
Basically everything is handled by your PPP
configuration except for the contents of your
<tt>/etc/resolv.conf</tt>.
</BLOCKQUOTE>
<BLOCKQUOTE>
If you have multiple ISPs you can use the ip-up script
to force a symlink change whenever you connect. You
create multiple <TT>/etc/resolv.conf.*</TT> files and use your
script to create the appropriate symlink whenever you
bring up the interface. This also works reasonably well
when you are using DHCP, connecting your laptop to
someone's ethernet network.
</BLOCKQUOTE>
<BLOCKQUOTE>
You can then point your <TT>/etc/resolv.conf</TT> to
<TT>/etc/dhcpdc/resolv.conf</TT> (or wherever your DHCP client
puts it).
</BLOCKQUOTE>
<BLOCKQUOTE>
It's also possible to just leave one set of nameservers
listed in your <TT>/etc/resolv.conf</TT> and ignore your ISPs
preferred list. This may result in slower response time
and some wasted bandwidth (your name resolution requests
will travel farther across the Internet before being
answered). However, it usually works well enough for
the case where you have a secondary ISP that you only
call occasionally.
</BLOCKQUOTE>
<BLOCKQUOTE><ul><li>
What is needed to needed to set up e-mail?
</UL></BLOCKQUOTE>
<BLOCKQUOTE>
I've described a little bit of the complexity of e-mail
handling already.
</BLOCKQUOTE>
<BLOCKQUOTE>
Basically you'll need at least a mail user agent (and
MUA). Some MUAs (like Netscape Communicator and PINE)
have integrated POP/IMAP clients and transport agents.
</BLOCKQUOTE>
<BLOCKQUOTE>
Others (like elm, mh, and mutt) will only provide the
interface for reading, composing and managing your mail.
They will require the use of separate utilities to
receive your mail (i.e. '<tt>fetchmail</tt>' for POP or IMAP mail
stores) and to deliver it (typically '<tt>sendmail</tt>'
configured to "masquerade" as your ISP or vanity
domain).
</BLOCKQUOTE>
<BLOCKQUOTE>
In your particular case it might be easiest to start
with one of the "all-in-one" mail clients. I personally
don't like their approach. However they can be simpler
for a common case, even if they will cause problems for
some networks where more centralization is required
(behind firewalls and on private networks, for
example).
</BLOCKQUOTE>
<BLOCKQUOTE>
If you need or want to configure a proper MTA then
'<tt>sendmail</tt>' is still the most widespread (a statement
which will surely generate some flames from some '<tt>qmail</tt>'
fans our there). Here's is a simple sendmail "mc"
(macro configuration) file:
</BLOCKQUOTE>
<blockquote><pre>divert(0)dnl
OSTYPE(linux)
include(`/usr/share/sendmail.cf/m4/cf.m4')
FEATURE(`allmasquerade')dnl
FEATURE(`masquerade_envelope')dnl
FEATURE(`masquerade_entire_domain')dnl
FEATURE(`always_add_domain')dnl
FEATURE(`nocanonify')dnl
FEATURE(`local_procmail')dnl
MAILER_DEFINITIONS
MAILER(`smtp')dnl
MAILER(`local')dnl
MAILER(`procmail')dnl
undefine(`BITNET_RELAY')dnl
MASQUERADE_AS(`***MYISP.COM***')dnl
define(`SMART_HOST', `smtp:***MAIL.MYISP.COM***')dnl
</pre></blockquote>
<BLOCKQUOTE>
There are only two major "moving parts" to this file.
You must change the last two lines to to match the
domain/host name at which your ISP will accept mail for
you (the part of your e-mail address after the @ sign)
and you must provide a valid mail exchanger for your
SMART_HOST.
</BLOCKQUOTE>
<BLOCKQUOTE>
This file would normally be created under <TT>/etc/mail/</TT> or
under <TT>/usr/share/sendmail-cf/</TT> and would be used to
generate a sendmail.cf file with a command like:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><Code>
m4 < sendmail.mc > <TT>/etc/sendmail.cf</TT>
</Code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
... issued from the same directory as the .mc file, of
course.
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course those other lines are also "moving parts" ---
you might need to change the path to the include line,
and you might need to include or even disable some
features, etc. Like so many other coniguration files in
Linux, all I can provide is a reasonable example that
should work in many cases.
</BLOCKQUOTE>
<BLOCKQUOTE>
I've included other sample .mc files in other Answer Guy
columns in the past. Usually I include one that's
derived from whatever I'm running at home at any given
time. This has changed over the years as I've changed
my network, changed ISPs, etc.
</BLOCKQUOTE>
<BLOCKQUOTE>
For this to work smoothly you should create an account
on your system that matches your account name on your
ISP, and use that to work with your e-mail from that
address. It's possible for you to control the
name/address in your outgoing e-mail headers as well as
the domain/host name portion. In other words you could
configure '<tt>sendmail</tt>' to modify the portion of your
e-mail address that precedes the @ sign in the headers
of your outgoing mail, as well as the part that follow
it. However, that would require you to use the
"<tt>genericstable</tt>" feature which is somewhat more advanced
than I want to go in this message. (This is another
case where the "all-in-one" mailers are easier to use.
They'll generally let you set your e-mail address to
anything you like without regard to any local system or
network policies).
</BLOCKQUOTE>
<BLOCKQUOTE><ul><li>
Where is the "Dialer?"
</ul></BLOCKQUOTE>
<BLOCKQUOTE>
I think I've answered this one. '<tt>chat</tt>' is your "Dialer"
for the PPP daemon. Most other Linux/UNIX
communications packages perform their own dialing by
issuing ATDT (dial/tone) commands to the modem. If (by
some strange chance) you had a phone that required the
old pulse dialing (a rotary phone!) you'd use the ATDP
command.
</BLOCKQUOTE>
<BLOCKQUOTE>
Al,
</BLOCKQUOTE>
<BLOCKQUOTE>
I realize that this has been a long article. I know that I've
repeated myself in a few places (it's been written over several
days, with a trip to L.A. and a conference in the middle).
</BLOCKQUOTE>
<BLOCKQUOTE>
Hopefully this will give you enough of a map of the forest that you
can figure out which trees to climb, which ones to chop down and
which branches to ignore.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 13 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/14"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 14 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Cash In On ... Spam!</H3>
<p><strong>From mindkiss on Wed, 28 Jul 1999
</strong></p>
<hr width="30%" align="left"><!-- = = = = = = = -->
<P><STRONG>
Cash In
<br>On a Hot Opportunity!
</STRONG></P>
<P><STRONG>
Earn Full Time Income
<br>On a Part Time Basis!
<br>No special skills needed!!
<hr width="30%" align="left"><!-- = = = = = = = -->
Please Read This First
</STRONG></P>
<P><STRONG>
1. This email advertisement is transmitted in compliance with the new "Email"
Bill: SECTION 301. Per Section 301, Paragraph (a)(2)(C) of S1618; Refer;
<A stub="http://www.senate.gov/~murkowski/commercialemail/5771index.html"
>http://www.senate.gov/~murkowski/commercialemail/5771index.html</A>
</STRONG></P>
<p><em>[ Hundreds of bills on many juicy political issues are promoted by
senators and representatives every year. Until they are actually
passed (thus no longer a bill, but a law) they're fairly worthless.
This one is made more obvious, because its URL doesn't work...
</em></p>
<p><em>The computer industry ought to recognize when people claim compliance
with a "new standard" that hasn't been ratified yet; it happens in
our marketing literature all the time. -- Heather ] </em></p>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I don't care what delusion you are under. This
is unsolicited spam. I've heard that it is illegal
in the state of California --- which is my state of
residence and where I'm sitting as I recieve this.
</BLOCKQUOTE>
<BLOCKQUOTE>
I'll be forwarding this along to by district attorney's
office (once I dig up their e-mail address).
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
2. If you wish to be removed from our email list with respect to any further
transmissions, you may do so without cost by simply clicking on your
email program's "Reply" option and entering the word "Remove" into
the "Subject" area.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I wish to never have recieved your mail. I don't wish
to ever hear from you or any of your ilk again.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
3. The business solicitation described below is offered by a real
Florida based corporation (<em>name removed</em>, Inc.), with a
real address, real people and real products. Company details and
testimony may be obtained by calling toll free 1-888-nnn-nnnn.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Whoop-de-doo! You're a "real corporation." That
certainly doesn't preclude the likelihood that you are
lying, thieving scumbags with no regards for courtesy
or custom.
</BLOCKQUOTE>
<BLOCKQUOTE>
You're clearly unethical. You KNOW that this message
is unwelcome to most of your recipients and you sent it
anyway. Do not respond to this mail.
</BLOCKQUOTE>
<!-- sig -->
<p><em>[ To their credit... they didn't. For more help in the fight
for valid mailbox contents, the Mail Abuse Prevention System
(<a href="http://maps.vix.com/">http://maps.vix.com/</a>)
is handy, and also points to other good resources.
-- Heather ]</em></p>
<!-- end 14 -->
<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <hr> <P>
<!-- QUICK TIPS SECTION ================================================== -->
<center>
<H1><A NAME="tips"><IMG ALIGN=MIDDLE ALT="" SRC="../gx/twocent.gif">
More 2¢ Tips!</A></H1> <BR>
Send Linux Tips and Tricks to <A HREF="mailto:gazette@ssc.com">
gazette@ssc.com
</A></center>
<p><hr><p>
<H3><font color="#CC0000">New Tips:</font></H3>
<!-- BEGIN xref tips -->
<ul>
<li> <a HREF="#gmenu">Using gmenu with fvwm2</a>
<li> <a HREF="#zip_ide">Iomega ATAPI Zip Drive That Cables Up to IDE & Red Hat 6.0</a>
<li> <a HREF="#signature">A 2c Tip - Funny signature</a>
<li> <a HREF="#howto">HOWTO searching script</a>
</ul>
<!-- END xref tips -->
<H3><font color="#CC0000">Answers to Mail Bag Questions:</font></H3>
<!-- BEGIN xref tips.answers -->
<ul>
<li> <a HREF="#split">Splitting big files</a>
<li> <a HREF="#format">Formating drives</a>
<li> <a HREF="#kodak">Kodak Problems</a>
<li> <a HREF="#installation">Installation problems</a>
<li> <a HREF="#dns">DNS on the fly</a>
<li> <a HREF="#ipchains">ipchains</a>
<li> <a HREF="#gcc">gcc will not work</a>
<li> <a HREF="#dhcp">DHCP</a>
<li> <a HREF="#ppp">ppp connection</a>
<li> <a HREF="#speech">ASCII to speach</a>
<li> <a HREF="#2GB">2GB Limit in LINUX</a>
<li> <a HREF="#Win98">Windows 98 inside Linux</a>
<li> <a HREF="#distros">Distributions</a>
<li> <a HREF="#word">WORD to Postscript</a>
<li> <a HREF="#g++">g++ and including files that use templates</a>
</ul>
<!-- END xref tips.answers -->
<!-- BEGIN tips -->
<P> <hr> <P>
<!--================================================================-->
<a name="gmenu"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">Using gmenu with fvwm2
</FONT> </H3>
Sun, 01 Aug 1999 16:35:00 -0500
<BR>From: Tim Moran <<A HREF="mailto:tmoran@gbonline.com">tmoran@gbonline.com></A>
<P> I usually use fvwm, but sometimes I like to switch to enlightenment.
The problem was maintaining two sets of menus. So, with a little
tweaking, I now use the gnome menu editor to maintain both.
<P> Enlightenment is simple. The menu.cfg can read gnome's menus with:
<PRE>
BEGIN_NEW_GNOME_MENU("GNOME_USER_SUBMENU", "ROOT", HOME_DIR"/.gnome/apps")
ADD_MENU_TITLE("User Apps")
END_MENU
</PRE>
<P> Fvwm was a bit tricky. I probably am not using the best possible solution,
but it works for me.
<P> I recompiled wmconfig that comes with RedHat 6.0. In wmconfig.c there
is a section that begins #if HAVE_GNOME. I changed this to read my
~/.gnome/apps directory:
<PRE>
ret = parse_gnome_files("/home/tmoran/.gnome/apps", NULL);
</PRE>
<P> Then I made a little shell script to run wmconfig and clean up
some unneeded files:
<PRE>
#!/bin/sh
wmconfig --output=fvwm2 --no-sysdir --rootmenu="ROOTMENU" > .fmenu
find /home/tmoran -name .order -exec rm -f {} \;
find /home/tmoran -name .directory -exec rm -f {} \;
</PRE>
<P> Finally, my .fvwm2rc contains:
<PRE>
AddToMenu RootMenu
+ "&Rxvt" Exec exec rxvt
+ "" Nop
Read /home/tmoran/.fmenu
AddToMenu RootMenu
+ "" Nop
+ "&Fvwm Modules" Popup Module-Popup
+ "" Nop
+ "Refresh Screen" Refresh
+ "" Nop
+ "&Exit Fvwm" Popup Quit-Verify
</PRE>
<P> <hr> <P>
<!--================================================================-->
<a name="zip_ide"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">Iomega ATAPI Zip Drive That Cables Up to IDE & Red Hat 6.0
</FONT> </H3>
Tue, 17 Aug 1999 11:15:40 -0700
<BR>From: rbsimon <<A HREF="mailto:rbsimon@earthlink.net">rbsimon@earthlink.net></A>
<P> A simple way to mount your ATAPI Zip drive is to:
<OL>
<LI> Create a mount point, e.g. /mnt/zip
<LI> Install loadable kernel module: 'insmod ide-scsi'
<LI> Mount the device: 'mount -t msdos /dev/sda4 /mnt/zip'
<LI> To unmount: 'umount /dev/sda4'
</OL>
<P> <hr> <P>
<!--================================================================-->
<a name="signature"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">A 2c Tip - Funny signature
</FONT> </H3>
Wed, 18 Aug 1999 20:58:49 +0200
<BR>From: Csaba Feher <<A HREF="mailto:csfeher@freemail.c3.hu">csfeher@freemail.c3.hu></A>
<P> Hello guys,
<P> I just make up my mind to write a short shell-script to do some fun.
It is for making funny signatures with 'fortune'. You can use it with your
mailing software that can handle signatures. I tested it with Netscape and Pine,
with a Mandrake Linux distro.
<P> You need:
<OL>
<LI> the 'fortune' application. I think many of you have it under
/usr/games/ (Or somewhere else, so you may edit the script if you need to.) If
not, your installation media or a close FTP mirror should have it.
<LI> an 'sh' compatible shell...
<LI> the script below. I call it 'sigchange'.
<LI> a .signature file in your home directory (optional)
</OL>
<PRE>
#!/bin/sh
#
# sigchange
#
# A simple shell script to get your .signature file looking more funny....
#
# Written by Csaba Feher (csfeher@freemail.c3.hu)
#
<P> # First, if .signature exists, we just remove it, in order to start with an
empty one
if [ -f $HOME/.signature ]; then
rm -f $HOME/.signature
fi
<P> #Then, make some good-sounding signature with the help of 'fortune'.
#The -s option is because of Netscape, it says that the estimated length of the
signature was 4 lines.
#You may alter the categories to suit your needs. I prefer these two...
/usr/games/fortune -s linuxcookie computers > $HOME/.signature
S=$(cat $HOME/.signature)
<P> #Take a short look at your basic signature file,
#which you may want to appear at the end of all newly-made signature.
#Create & edit as you like. But, I suggest to keep it short.
O=$(cat $HOME/.signature.basic)
<P> #Now put the whole stuff to the usual place
echo -e "$S\n $O" > $HOME/.signature
</PRE>
<P> Usage:
<OL>
<LI> Use the script and make it executable for everybody you want to be
able to use.
<LI> Copy it under /bin or /usr/bin, or wherever you want to. Do not
forget to check your PATH variable, it should include the path to 'sigchange'.
<LI> Add the following line to your system initialization script:
<PRE>
sigchange
</PRE>
This is /etc/rc.d/rc.sysinit for Mandrake or Red Hat; it may be different in
other distributions. You should check and find the script that initializes and
boots up your system. The .signature will change each time you reboot your
Linux box.
<LI> If you prefer more changes, you can add a line containing this:
<PRE>
sigchange
</PRE>
to /etc/rc.d/rc (Mandrake/Red Hat). It starts 'sigchange' each time the runlevel
changes.
<LI> make a .signature.basic file in your home directory, or rename your
existing .signature file to it. Edit it to contain a suitable signature you want
to use at the bottom of your mails. I think you should keep it short.
</OL>
<P> Changes are made at the next reboot /runlevel change.
<P> Feel free to use and enjoy it!
Any comments are welcome!
<P> p.s.: my recent signature is made with this method...
<P>-- <BR>
But what can you do with it? -- ubiquitous cry from Linux-user partner.<BR>
(Submitted by Andy Pearce, ajp@hpopd.pwd.hp.com)<BR>
<P> ### Keep on running LINUX! # Csaba Feher # csfeher@freemail.c3.hu ###<BR>
<P> <hr> <P>
<!--================================================================-->
<a name="howto"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">HOWTO searching script
</FONT> </H3>
Wed, 25 Aug 1999 11:56:57 -0400 (EDT)
<BR>From: Matt Willis <<A HREF="mailto:matt@optimus.cee.cornell.edu">matt@optimus.cee.cornell.edu></A>
<P> I find that searching howtos is easier if you use a script. I was
inspired by another program to write a semi-smart howto script. You
use it like:
<PRE>
howto lilo
</PRE>
<P> and it searches for lilo, Lilo, LILO etc in the HOWTO tree, and
then finds LILO. If something is not found, it lists suggestions.
<P> - Matt Willis
<PRE>
#!/bin/csh
# HOWTO Database searcher with limited smarts
setenv HOWTOBASE /usr/doc/HOWTO
setenv HOWTOPATH `find $HOWTOBASE -type d -print`
setenv FOUND 0
setenv NAME1 $1
setenv NAMELC `echo $1 | tr 'A-Z' 'a-z'`
setenv NAMEUC `echo $1 | tr 'a-z' 'A-Z'`
setenv NAMEPC `echo $1 | awk '{print toupper(substr($1,1,1)) substr($1,2)}'`
foreach NAME ($NAME1 $NAMELC $NAMEUC $NAMEPC)
foreach k ($HOWTOPATH)
if (-f $k/$NAME-HOWTO) then
echo $k/$NAME-HOWTO
less -r $k/$NAME-HOWTO
setenv FOUND 1; break; break
else if (-f $k/$NAME) then
echo $k/$NAME
less -r $k/$NAME
setenv FOUND 1; break; break
else if (-f $k/$NAME-HOWTO.gz) then
echo $k/$NAME-HOWTO.gz
gunzip -c $k/$NAME-HOWTO.gz | less -r
setenv FOUND 1; break; break
else if (-f $k/$NAME.gz) then
echo $k/$NAME.gz
gunzip -c $k/$NAME.gz | less -r
setenv FOUND 1; break; break
endif
end
end
if ($FOUND == 0) then
echo "Was unable to find '$1' .. possible matches:"
# use case-insensitive name search (iname)
setenv MATCH `find $HOWTOBASE -iname ''\*$1\*'' -print`
if ("$MATCH" == "") then
echo "Nothing (sorry)!"
else
foreach k ($MATCH)
echo $k | sed 's/^.*\// /'
end
endif
endif
</PRE>
<!-- END tips -->
<P> <hr> <P>
<!--================================================================-->
<H4><font color="maroon">
Tips in the following section are answers to questions printed in the Mail
Bag column of previous issues.
</font></H4>
<!-- BEGIN tips.answers -->
<P> <hr> <P>
<!--================================================================-->
<a name="split"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Splitting big files
</FONT> </H3>
Wed, 04 Aug 1999 13:41:02 +0200
<BR>From: Finn Jespersen <<A HREF="mailto:fje@ficsgrp.com">fje@ficsgrp.com></A>
Laurent Mulot (Laurent.Mulot@anp.lip6.fr) wrote:
<BLOCKQUOTE>
I'd like to truncate a 3MB file so that I can put it on floppy disks.
The file is already compressed. Is there a Linux instruction or a
software that can do such a thing ?
</BLOCKQUOTE>
<P> Every Linux comes with the
GNU utilities. One of these is "split" which will do the job. Read man
split or info split.
<P> To split a file into floppy sized files
<PRE>
split -b1440k a_whopping_big_file chunk
</PRE>
<P> which produces chunkaaa, chunkaab, chunkaac etc.
<P> Use mcopy to copy to/from floppy. To re-create a_whopping_big_file do
<PRE>
cat chunk* &gr; a_whopping_big_file
</PRE>
<P> Hope this helps.<BR>
Finn
<P><STRONG><EM>
Martin Benthues <<A HREF="mailto:na1374@fen.baynet.de">na1374@fen.baynet.de></A>
suggests:</EM></STRONG>
<P> The required task is rather easy to be achieved if both source and
target system are linux and have GNU tar installed.
<P> Assume floppy drive is a 3.5" drive at /dev/fd0
<P> Copy to disk:
<PRE>
tar -c -f /dev/fd0 -L1440K -M <File-Name>
</PRE>
<P> Copy from disk:
<PRE>
tar -x -f /dev/fd0 -L1440K -M <File-Name>
</PRE>
<P> tar will prompt the user to enter a new disk when ever it made one full.
<P> Note:<BR>
The floppy disks will be overwritten without warning. Any old content is
lost. No useable file system is installed. The disks are treated as a
"tape" containing a set of blocks. For any later use with an operating
system (DOS, Linux) the disks need to be reformatted.
<P> Best regards,<BR>
Martin Benthues
<P><STRONG><EM> Brian <<A HREF="mailto:vocalist@home.com">vocalist@home.com></A>
says:</EM></STRONG>
<P> Short explanation:
If you use the 'split' command, you can split a file up into
chunks. Once onto a floppy, you can transport the file. When you want to
reclaim the files, you can simply copy them back to hard drive and use
'cat' to put them back together.
<P> Long (full) explanation:
I have a 292529 byte file named lasg-0-0-9.pdf on my hard drive, and
I want to save it in chunks (or less) so I can put it on floppy for
saving...
You can see that no chunk is larger than 1K, as specified by the -C1k
option to 'split'. The second option un this example is the name of the
original file, and the third option in this example is the name of the
output file prefix.
The prefix is followed up by a unique string which ensures that when
concatenated in a sorted order that you get the same file back. I tested
this with the command
<PRE>
cat lasg-0-0-9.pdg[a-z][a-z]* > tmp.lasg-0-0-9.pdf
</PRE>
and the resulting file tmp.lasg-0-0-9.pdf was
identical to the original file.
<PRE>
% split -C1k lasg-0-0-9.pdf lasg-0-0-9.pdf
%ls -al
Total 655
drwxrwxr-x 2 vocalist users 9216 Aug 21 08:53 .
drwxr-xr-x 20 vocalist users 2048 Aug 21 08:50 ..
-rw-rw-r-- 1 vocalist users 0 Aug 21 08:53 data
-rw-rw-r-- 1 vocalist users 292529 Aug 21 08:50 lasg-0-0-9.pdf
-rw-rw-r-- 1 vocalist users 898 Aug 21 08:52 lasg-0-0-9.pdfaa
-rw-rw-r-- 1 vocalist users 738 Aug 21 08:52 lasg-0-0-9.pdfab
-rw-rw-r-- 1 vocalist users 1024 Aug 21 08:52 lasg-0-0-9.pdfac
-rw-rw-r-- 1 vocalist users 1024 Aug 21 08:52 lasg-0-0-9.pdfad
[Lots and lots of lines not shown. -Ed.]
-rw-rw-r-- 1 vocalist users 1020 Aug 21 08:52 lasg-0-0-9.pdfno
-rw-rw-r-- 1 vocalist users 1000 Aug 21 08:52 lasg-0-0-9.pdfnp
-rw-rw-r-- 1 vocalist users 118 Aug 21 08:52 lasg-0-0-9.pdfnq
<P><STRONG><EM> Jimmy O'Regan <<A HREF="mailto:joeregan@tinet.ie">joeregan@tinet.ie></A>
chimes in:</EM></STRONG>
<P>You can find out more by typing "man split" or "info split".
<P> But in your case you'd probably want to try
<PRE>
$ split -b 1380k your.file your.file.
</PRE>
So it'll split the file "your.file" into files of 1.38m in size (ideal for
floppies), named your.file.aa, your.file.ab and your.file.ac (etc if you use
a different size).
<P> You can rejoin them with
<PRE>
$ cat your.file.aa your.file.ab your.file.ac & your.file
</PRE>
<P> J.
<P><STRONG><EM>Remco Schellekens <<A HREF=mailto:merty@xs4all.nl>merty@xs4all.nl></A>
suggests:</EM></STRONG>
<P> dd will do the trick.
<P> Use it in the form:
<PRE>
dd if=your-input-file of=first-out-file skip=0 count=2840
dd if=your-input-file of=second-out-file skip=2840 count=2840
dd if=your-input-file of=third-out-file skip=5680 count=2840
</PRE>
...and so on.
<P> Assuming blocksizes are 512 bytes, so the count of 2840 is approx. 1.4 Mb
To get the file back just use cat command:
<PRE>
cat first-out-file > your-file
cat second-out-file >> your-file
</PRE>
... and so on
<P> of course it will be a bit easier if you make a shell script of it.
<P> Thats it.
<P><STRONG><EM>Roland Smith <<A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl></A>
also suggests:</EM></STRONG>
<P> 3) Zip the file and use zipsplit to split it into files that will fit
on a floppy.
<P> Hope this helps.
<P> <hr> <P>
<!--================================================================-->
<a name="format"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Formating drives
</FONT> </H3>
Tue, 03 Aug 1999 22:43:10 +0100
<BR>From: Murray Gibbins <<A HREF="mailto:wibble@morpheus.ednet.co.uk">wibble@morpheus.ednet.co.uk></A>
<P> Hi,
<P> if e.g. your LS120 is on /dev/hdb try
<PRE>
mksf -t ext2 /dev/hdb
</PRE>
<P> or some variant thereof.
<P> Yours<BR>
wibble
<P> <hr> <P>
<!--================================================================-->
<a name="kodak"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Kodak Problems
</FONT> </H3>
Tue, 03 Aug 1999 22:48:24 +0100
<BR>From: Murray Gibbins <<A HREF="mailto:wibble@morpheus.ednet.co.uk">wibble@morpheus.ednet.co.uk></A>
<P> Investigate using Perl and ImageMagick, it will automate the proccess
and do everything you want.
<P> Yours<BR>
Wibble
<P><STRONG><EM>Zak <<A HREF="mailto:zak@acadia.net">zak@acadia.net></A>
responds:</EM></STRONG>
<P> I would like to thank each and every person who responded to my question
about using gimp with the subject disk. The problem was that when I put the
images on the HD (using Mcopy, since the Kodak(c) Picture Disk is a DOS/'doze
thingee), they were upside-down (and I later found *were* left to right), and
that I couldn't figure out how gimp worked. I use RH 5.1.
<P> One of the replies suggested I try 'xv', so I looked in my RH5.1 manual,
and found on page 6 that it had been replaced. I checked out my 5.1 CD (I
bought the 'official box') and guess what...it's there! I tried it and it not
only flipped the images 'rightsideup', but can also flip 'em right-to-left, and
much more. Now here's the kicker: about two weeks ago I put another roll of
film in and requested the disk when it was processed. When I got the pix and
disk back, I stuffed the disk into FRED and called up 'xv' so that I could flip
the pix again.
<P> They were all set up correctly on the disk! I didn't have to do anything
with them. Do you think maybe someone from Kodak reads <I>Linux Gazette</I>, too?
<P> Zak
<P> <hr> <P>
<!--================================================================-->
<a name="installation"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Installation problems
</FONT> </H3>
Tue, 10 Aug 1999 17:13:27 +0200
<BR>From: Michael Planes <<A HREF="mailto:Michael.Planes@bull.net">Michael.Planes@bull.net></A>
<P> Hi,
I hope you already had an answer from the net. Otherwise, I just got last week
the very same problem with a quadri Xeon and 1GB of RAM:
<PRE>
scsi : 0 hosts
scsi : detected total
Partition check
VFS: Cannot open device 08:21
Kernel panic: VFS: Unable to mount root fs on 08:21
</PRE>
Many reboots later (and many configuration changes) I finally succeeded
when I added an option when booting linux kernel:
<PRE>
linux mem=128M expert
</PRE>
<P> I checked on the web that other people already had this problem and fixed
it (removing memory, adding boot option, etc...)
It would have been nice if such an information had been clearly available
at RedHat.
I hope it will be.
bye,
<P> <hr> <P>
<!--================================================================-->
<a name="dns"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">DNS on the fly
</FONT> </H3>
Tue, 10 Aug 1999 17:13:27 +0200
<BR><BR>From: Jim Bradley -- Maryville, MO USA <<A HREF="mailto:twise@jbradley@msc.net">jbradley@msc.net></A>
<P> I have my laptop configured to plug into the network of my employer. At
home, I plug my laptop into my home network, and dial out from another
machine setup for dial on demand. Unfortunately, if it takes forever waiting
for the two timeouts when trying to connect to the employer's DNS servers
from home, and if I change the DNS order, it takes just as long for the
timeout error when attempting to connect to my ISP's DNS from my employer's
network. Is there an easy way to change the DNS servers when needed? It's
easy enough to change IP addresses with the ifconfig command, is there a
similar means for changing the DNS? Or, should I just bite the bullet and
setup BIND on the laptop?
<P> My apologies if it doesn't - I've made enough changes to my setup that I
could have automated it myself. I don't keep multiple copies of
/etc/resolv.conf yet get the correct DNS server. I know for certain that
DHCP makes the update.
<P> The only change I _remember_ making that's related to this is I generate the
hosts file at bootup, since the only thing I keep in my hosts file is
localhost and the hostname. Primarily because the long hostname can change
based on which network I'm connected to (or even not connected at all).
<P> Ted
<P><STRONG><EM>C Ted Wise <twise@jamesmartin.com> replies:</EM>
</STRONG>
<P> Your DNS server(s) are defined in the /etc/resolv.conf file. If you're
using DHCP or PPP, this should be updated automagically with the correct
server. If you're defining everything by hand, you'll need to modify this
file to reflect the correct DNS server. Changes to the file may not be
reflected in already running programs (daemons).
<P> If you're not running a DHCP server on your home network, consider one, it
will greatly ease the pain of moving the laptop between locations.
<P><STRONG><EM>The </EM>Linux Gazette<EM> Editor writes to Ted:</EM>
</STRONG>
<P> Since when did Linux PPP start automagically updating the DNS server?
Windows does this, but in my experience Linux does not. You have to have
several /etc/resolv.conf files, and use a symbolic link to point to the
"current" one. You can have a shell script that does this and calls pppd.
<P><STRONG><EM>Ted responds:</EM>
</STRONG>
<P> I've been using the KPPP dialer under KDE and that one definitely makes
changes to the /etc/resolv.conf file. When it makes a connection, it
modifies the file - commenting out the existing lines and adding ones
applicable to the PPP connection. When you exit the application, it
restores the original file.
<P> From the comments in the file, it looks to be behavior specific to KPPP.
This is where my confusion came in. My home server is running DNS and masqs
through to the PPP interface so the /etc/resolv.conf file doesn't change
based on the PPP connection. It's only my laptop that needs this and I was
making the assumption (I know, I know) that KPPP was just a pretty face on
PPPD.
<BLOCKQUOTE><EM>
[Conclusion: pppd knows nothing about /etc/resolv.conf. KPPP rewrites
it on the fly. DHCP does the Right Thing somehow automatically.
Any more comments? -Ed.]
</EM></BLOCKQUOTE>
<P><STRONG><EM>
Ernst-Udo Wallenborn <<A HREF="mailto:wall@phys.chem.ethz.ch">wall@phys.chem.ethz.ch></A>
suggests:</EM></STRONG>
<P> i use the SCHEMES facility of the PCMCIA package to solve a related
problem: how to use a laptop in two LANs with different IP addresses,
different domains, and (naturally) different DNS servers.
<P> Basically you set up a file /etc/pcmcia/network.opts
which contains all network options, esp. something like
<PRE>
case "$ADDRESS" in
home,*,*,*)
[snip]
SEARCH="domain.com"
DNS_1="1.2.3.4"
DNS_2=""
DNS_3=""
[snip]
;;
work,*,*,*)
[snip]
SEARCH="work.com"
DNS_1="5.6.7.8"
DNS_2=""
DNS_3=""
[snip]
</PRE>
<P> Then, when booting with lilo you can append SCHEME=home or SCHEME=work,
or better write this into /etc/lilo.conf directly. and type 'home'
or 'work' at the lilo prompt.
<P> The whole procedure is described in detail here:
<A HREF=http://www.suse.de/sdb/en/html/ke_pcmcia-scheme.html>
www.suse.de/sdb/en/html/ke_pcmcia-scheme.html</A>
<P> and the PCMCIA package is available here:
<A HREF=http://hyper.stanford.edu/~dhinds/pcmcia/pcmcia.html>
hyper.stanford.edu/~dhinds/pcmcia/pcmcia.html</A>
<P> hope this helps
<P> -- <BR>
Ernst-Udo Wallenborn<BR>
Laboratorium fuer Physikalische Chemie<BR>
ETH Zuerich
<P> <hr> <P>
<!--================================================================-->
<a name="ipchains"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">ipchains
</FONT> </H3>
Tue, 10 Aug 1999 15:19:38 -0600
<BR>From: Warren Young <<A HREF="mailto:tangent@cyberport.com">tangent@cyberport.com></A>
<P> "Martin L. Ferguson" wrote:
<BLOCKQUOTE>
I saw your "$0.02 Tip" response in Linux Gazette (copied below), but
the URL for the "scipts" section was not included. Could you send it
to me - I would like to look at a comprehensive ipchains configuration.
Thanks.
</BLOCKQUOTE>
<P> [snip]
<BLOCKQUOTE>
<P> From the Gazette:
<P> I think perhaps you are missing a few important rules, such as
rules to allow DNS replies. My own script for enabling
masquerading and firewalling is available at the URL below, in
the "scripts" section.
</BLOCKQUOTE>
<P> The URL my message mentions was in the signature. It is apparently the
policy of the Linux Gazette to chop signatures from messages, so it
didn't appear in the Gazette. (I'm Cc'ing this message to the Gazette's
editor, in case they want to fix that page.)
<P> The URL is
<A HREF=http://www.cyberport.com/~tangent/ix/scripts/>
www.cyberport.com/~tangent/ix/scripts/</A>
<P> The scripts I refer to in my original message are "firewall-enable" and
"firewall-disable".
<BLOCKQUOTE><EM>
[Added the URL to the previous article. The directory also contains
some other scripts to tar a directory, replace tabs with spaces,
do a hex dump, etc. And yes, I do chop off signatures. :) -Ed.]
</EM></BLOCKQUOTE>
<P> <hr> <P>
<!--================================================================-->
<a name="gcc"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">gcc will not work
</FONT> </H3>
Fri, 13 Aug 1999 00:25:55 +0200 (CEST)
<BR>From: Roland Smith <<A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl></A>
<P> Hi,
<P> I saw your e-mail in the Mailbag section in the Linux Gazette.
<P> I think you have not installed the binutils package. This contains some
programs that gcc needs to make executables out of a bunch of object
files.
<P> Hope this helps.<BR>
<P> <hr> <P>
<!--================================================================-->
<a name="dhcp"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">DHCP
</FONT> </H3>
Fri, 13 Aug 1999 00:33:38 +0200 (CEST)
<BR>From: Roland Smith <<A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl></A>
<P> Concerning your question of adding a Linux workstation to a network
that uses DHCP:
<P> You probably have a mini-HOWTO available (if you have installed them,
which is wise): /usr/doc/HOWTO/mini/DHCPcd.gz
<P> You'll need the DHCP client. Check if it is available in your
distribution, or get it at ftp.kobe-u.ac.jp from the directory
/pub/PC-UNIX/Linux/network/dhcp
<P> If you're using Red Hat you can use the control-panel to set up eth0
for DHCP.
<P> Hope this helps!
<P> <hr> <P>
<!--================================================================-->
<a name="ppp"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">ppp connection
</FONT> </H3>
Fri, 13 Aug 1999 00:43:42 +0200 (CEST)
<BR>From: Roland Smith <<A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl></A>
<P> You wrote:
<BLOCKQUOTE>
I have an interesting problem. I have configured ezppp, kppp, and
gnome-ppp to connect to my mindspring account, and all three seem to be
doing so just fine. However, when I startup netscape or any other
internet application, I can't access the internet. It just sits there
trying to lookup the host. No error message. No nothing. I am
completely stumped. Any help would be appreciated.
</BLOCKQUOTE>
<P> Some things you could look at:
<OL>
<LI> Do you actually make a connection with ppp before starting
netscape? You'll need additional software if you want to be able to dial in
automagically every time you try to reach the internet.
<LI> Have you added your ISP's name-server to /etc/resolv.conf?
<LI> he /etc/host.conf file configured correctly? It should consist
of these two lines:
<PRE>
order hosts,bind
multi on
</PRE>
</OL>
<P> Hope this helps!
<P> <hr> <P>
<!--================================================================-->
<a name="speech"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">ASCII to speach
</FONT> </H3>
Fri, 13 Aug 1999 01:34:06 +0200 (CEST)
<BR>From: Roland Smith <<A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl></A>
<BLOCKQUOTE>
<P> From your mail in the Linux gazette it is not clear what you're looking
</BLOCKQUOTE>
for.
<P> Your subject line says you're looking for ascii to speech conversion.
For that you could try "rsynth" or "festival". (look at freshmeat.net
for URL's)
<P> Voice recognition software for Linux is something else altogether. I
think IBM has released some software for this.
<BLOCKQUOTE><EM>
[Thanks, Roland, for all your answers. -Ed]
</EM></BLOCKQUOTE>
<P><STRONG><EM> Jimmy O'Regan <<A HREF="mailto:joeregan@tinet.ie">joeregan@tinet.ie></A>
adds:</EM></STRONG>
<P> ASCII to speech and speech recognition are complete opposites, but you
can find most software available for Linux for either purpose at the
BLINUX site - http://leb.net/blinux/ or at http://leb.net/pub/blinux
<P> J.
<P> <hr> <P>
<!--================================================================-->
<a name="2GB"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">2GB Limit in LINUX
</FONT> </H3>
Thu, 19 Aug 1999 16:08:23 -0700
<BR>From: Greg Morse <<A HREF="mailto:greg_morse@bctel.com">greg_morse@bctel.com></A>
<P> This limit does not apply even if the BIOS does not support the large
drive.
I recently added an 8GB drive to an old Compaq prolinea 133. the DOS
fdisk could see the drive but not use it. Linux (RH6.0) however happily
created an 8GB filesystem on the drive.
<P> JGM
<P><STRONG><EM>Niels Elgaard Larsen <<A HREF="mailto:elgaard@diku.dk">elgaard@diku.dk></A>
writes:</EM></STRONG>
1. It is _not_ down to the BIOS. You can just give the geometry as arguments
to 'fdisk'
2. Do not trust the information from the maker of the disk. I installed a 10
GB IBM disk. The geometry printed on the disk and shown on IBM's web-side was
identical to the geometry of their 8GB disk. I think they rely on special software to make it
work on Windows.
I assumed sectors and # of heads were correct and computed # of cylinders from
the capacity and fed it to cfdisk. It works.
<P> <hr> <P>
<!--================================================================-->
<a name="Win98"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Windows 98 inside Linux
</FONT> </H3>
Sat, 21 Aug 1999 08:39:45 -0400
<BR>From: Brian <<A HREF="mailto:vocalist@home.com">vocalist@home.com></A>
<P> Dear Markus,
<P> If you'll visit www.vmware.com, you'll see their product VMWare -
written up in the July 1999 issue of
<I><A HREF=http://www.linuxjournal.com/lj-issues/issue63/3458.html>
Linux Journal</A></I>, or for subscribers
<A HREF=http://interactive.linuxjournal.com/Magazines/LJ63/>
interactive.linuxjournal.com</A>).
<P> VMWare will allow you to run a number of different Virtual Machines on
top of your Linux box. See the web page for the details. Oh - the price
is $299, I'm considering it so that I can test Java on a Windows
platform without actually having Windoze in control of my hardware. :)
<P> <hr> <P>
<!--================================================================-->
<a name="distros"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Distributions
</FONT> </H3>
Wed, 25 Aug 1999 01:18:59 -0400
<BR>From: Steve Wolfe <<A HREF="mailto:swolfe@InfoAve.Net">swolfe@InfoAve.Net></A>
<P> Someone more knowledgeable than I could probably tell you the exact
differences between Suse and Red Hat. There is more activity on Red Hat.
<P> A more important question is, "What Distribution are people around you
using?"
<P> Unix/Linux is not too hard to learn - but it is different than windows.
Try to find a User's group and/or computer store that has Linux around
and then you can see it and talk to people. I liked the book "Life with
Unix" to give a good grounding on what to expect. The O'Reilly books
are invaluable. I also like the printed collections of the Linux
Documentation project containing the System's Administrator's Guide and
the Network Administrators Guide and the How-tos.
<P> I used to the idea of a dual boot system - so you can use either Linux
or Win xx, but not at the same time. This works for a while. The
drawback is that you cannot use both at the same time. The best order
of events (briefly) is 1) partition, 2) install Winxx 3) install Linux
and Lilo.
<P> Two machines are better yet. With a small LAN you can then telnet or use
an X-windowing program to use both machines - This is what I do now.
Several X-server programs exist for Windows. Hummingbird's Exceed,
Reflection's X-windows suite, and StarNet's (x-win32) are three good
ones and I have used all three.
<P> I have heard some use of virtual machines (vmware makes one) in which
you can use two operating systems at the same time on the same machine -
but I have not tried it.
<P> After reading the documentation you can mount a FAT partition from
Linux and use it as a way to transfer data back and forth between
machines. If you have two machines the network takes care of the file
transfers. Remember that a Unix/Linux text file has only linefeeds and
a PC-DOS text file has Carriage return and Linefeed.
<P> -Cheers,<BR>
Steve Wolfe
<P> <hr> <P>
<!--================================================================-->
<a name="word"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">WORD to Postscript
</FONT> </H3>
Thu, 01 Jul 1999 14:14:54 -0400
<BR>From: Reno Derosier <<A HREF="mailto:renod@capecod.net">renod@capecod.net></A>
<P> In regards to the .prn file you might try downloading Adobe's Postscript
drivers for windows at
<A HREF=http://www.adobe.com/prodindex/printerdrivers/main.html>
www.adobe.com/prodindex/printerdrivers/main.html</A>.
<P> Reno Derosier
<P> <hr> <P>
<!--================================================================-->
<a name="g++"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">g++ and including files that use templates
</FONT> </H3>
Wed, 4 Aug 1999 00:13:59 -0700 (MST)
<BR>From: Rachael A. Ludwick <<A HREF="mailto:raludwic@U.Arizona.EDU">raludwic@U.Arizona.EDU></A>
jac <<A HREF=mailto:jac@speedcom.es>jac@speedcom.es</A>> writes:
<BLOCKQUOTE>
Hello, my question is about the g++ compiler.I want to know if is able
to link files that use templates and then aren't included in the main
program (they are in different files, and only the header files are in
the main program). I have try as:
<PRE>
gcc main.cxx libro.cxx
* main: #incude "libro.h"...
* libro.cxx: #include "libro.h"...
</PRE>
But the compiler of Red Hat 6.0 gives me an error. Could you help me?
Thanks.
<P> Juan J.Alejandro (jac@speedcom.es) Girona (Spain)
</BLOCKQUOTE>
------------------------------------------------------------------------
<P> I'm not sure if this will help, but here goes...
<P> An annoying thing about C++ is that templated classes require that both
the declaration and the implementation be in the same file. Instead of
actually putting both in one file, often the header file will have the
line:
<PRE>
#include "class.cc" // or whatever the implementaion file is called
</PRE>
near the end of the file (after the declaration of the class). In this
case though, the implementation usually goes in a file called
"class.template" and #include "class.template" will be put in "class.h"
somewhere near the end of the file (after the complete declaration of the
file).
<P> Also, don't forget to guard your class from multiple include-ing by
putting something like this as the first two lines:
<PRE>
#ifndef MYCLASS_H
#define MYCLASS_H
</PRE>
and something like this as the last line:
<PRE>
#endif // MYCLASS_H
</PRE>
<P> Anyway, if you have the implementation and declaration in separate files,
and you don't have this yet, than this may be your problem. Assuming this
will fix your problem and you have a "main.cc" and templated "class.h" and
"class.cc", you should be able to compile with:
<PRE>
g++ -I. main.cc
</PRE>
<P> (of course assuming main.cc has #include "class.h").
<P> Tell me if this helps...
<P> Rachael Ludwick
<P> --<BR>
raludwic@u.arizona.edu<BR>
http://www.u.arizona.edu/~raludwic<BR>
<P> "Go Ye Lemmings into the World and Propagate!"<BR>
<!-- END tips.answers -->
<!--===================================================================-->
<P> <hr> <P>
<H5 ALIGN=center>
This page written and maintained by the Editor of <I>Linux Gazette</I>,
<A HREF=mailto:gazette@ssc.com>gazette@ssc.com</A><BR>
Copyright © 1999, Specialized Systems Consultants, Inc. <BR>
Published in Issue 45 of <i>Linux Gazette</i>, September 1999</H5>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, AuthorName <BR>
Published in Issue 45 of <i>Linux Gazette</i>, September 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Living La Vida Linux</font></H1>
<H4>By <a href="mailto:chguy@chguy.net">Bill Bennet</a></H4>
</center>
<P> <HR> <P>Have you ever thought about how things would be different if linux was never written? It makes me shudder with fright and revulsion to think of all the new computer customers lining up happily to get soaked for a new monopoly machine. Yikes.
Those poor souls get locked into the monopoly upgrade loop. Customers for WebTV are doing that right now, but what can we do about it? Well, for one thing we can <a href="#redo">recycle</a> some old machines first. Folks who use linux can at least find out how the thing works and it will help to arrest the "dumbing down of the consumer".
<h2><font color=blue>Back to School</font></h2>
<p>So the kid needs a new computer. Are you really sure about that, chief? I can think of worse things to own than an old 386 or 486 running linux. Here are some reasons to save that old clunker:
<ol>
<li>The machine runs cool and you can put it in a hot room. Minor issue, yes, I concede.
<li>It can be made Y2K compliant. Huh? Yea verily, it is so easy, O Befuddled One.
<li>It can use a 32 gigabyte hard disk. Six of them in one machine. Yes, Acquisitive One, it is so.
<li>It can use a DVD drive. Please, O Great One, no need to march about.
<li>It can make CDR and CDRW discs for you with a CDR/CDRW writer/drive. Settle down, O Frugal One.
<li>It can run a complete office productivity suite faster than you can type. The office suite is free for personal use. Yes, O Mighty Hunter-and-Pecker, your basic 386 can format and print essays for your offspring at school.
</ol>
<P> The major piece to the puzzle is linux. First you get any linux CD and boot it up (if your modern CMOS setup will let you boot from the CDROM). You can make a boot diskette set and get it from the CD that way. You can boot up poor old DOS and run a boot.bat batch file to install from the CD. You can install via a laplink cable from another machine and PLIP through the parallel port. You can boot the diskette and install via ftp over the internet or through the Local Area Network. You can boot the diskette and install via NFS mounted CD or hard disk on your local network or the internet.
The point is that linux is a network operating system; a replacement for NT and W2K. Yes, that is right, you can replace them even before you have to buy them, which would save you a ton of time and money.
<h2><font color=blue>Y2K Compliant 386</font></h2>
<P> Your old <a href="#old">386</a> can be made completely Year 2000 compliant; able to pass all the tests that the frantic doomsayers can muster. The hardware needed to make your 386 into a modern set is called a <a href="#bios">
BIOS</a> card. Even better, get a BIOS card with a secondary IDE controller on it so that you can add devices to your machine.
<h2><font color=blue>Meccano for Geeks</font></h2>
<P> The installation skills needed for this are developed by playing with Meccano. Get the Meccano set for your kid first, months before the computers. Unplug the machine. A Phillips head screwdriver will open the case for you. These old machines were made easy and boxy, just like an Austin Mini or a Volkswagen Beetle. The new modern BIOS chip is on an ISA card, so all you need is an open slot. Turf the old modem card if you are short on slots, no need for 300 baud/2400bps where you are going. If you have a secondary/tertiary IDE controller on your card like a DTC Y2K Ultima, then set the IRQ shunt (jumper) to cover IRQ 11 or 15. Stay away from IRQ 12, your PS/2 rodent may object to sharing. As an aside to new linuxians, the PS/2 rodent is /dev/psaux.
<h2><font color=blue>EIDE controller</font></h2>
<P> When the BIOS card takes over, all it does is use the CMOS BIOS settings and apply <a href="#lba">LBA</a> to any huge hard disks that are connected to the IDE controller(s). Your simple old IDE controller is now an EIDE controller, able to use the huge disk you hooked up.
<P> The BIOS card that also has a controller on it is going to let you have four IDE devices. The DTC Y2K Ultima has four irq settings, so you can even have two add on controllers plus your original for a total of six IDE devices in the machine. There are not enough brackets for six, but if you want to secure a device with a locking tie-down, you can squeeze them in there. The potential is for a 100+ gigabyte 386 sporting three or more 32 gigabyte hard disk drives plus a DVD and a CD writer.
<h2><font color=blue>Enter Linux</font></h2>
<P> As a file server, your 386 can access that <a href="#big">huge</a> archive at the speed of the EIDE controller. The CPU is not so much involved when you limit the number of users to something like 50 at a time. A big plus is that you can run this machine on 8 megabytes of RAM. Yes, it will run on 4 megabytes, but the installation will be too tricky on low memory. Stick with 8 megs or more and the install will go smoothly, especially with Slackware or Debian. If you are trying RedHat, you will need 12 megabytes to install smoothly.
<h2><font color=blue>Cable Modem 386 Internet Gateway</font></h2>
<P> As a linux user, you can now configure a network server right from the installation script; it does not matter which distribution you are installing. Your 386 can use two network cards and a big hard disk drive to make a very fast little network server for your home Local Area Network. Remember, the files are grabbed from the network card at 10 megabits (or more) per second; it does not matter what speed your CPU is walking at. The CPU just opens the door for you, it does not run the files; your client machines do that.
<P> There is no need to install X. You see, you also do not need a gui interface for your network controls. Every server job can be made to happen from the command line. Add in some nice little alias for the command sequence (a macro, O Rigid DOS person). For example, edit the .bashrc file in your home directory:
<pre>
~/.bashrc:
alias mcd='mount /dev/cdrom /cdrom'
alias umcd='umount /cdrom'
</pre>
<P> Man oh man, I love linux! No clickety-clicks, no waiting, just service and super powers. I guess it helps when your software is written by the best and brightest minds in a free thought environment.
<P> Yes, Apache webserver can serve up html files even though you have no gui. They are just files. They get handed out. Simple. Do not let any NT sales guys see this article, they will defend their turf or die trying. I say do not let them waste any more of your time or money.
<h2><font color=blue>The lack of DVD video</font></h2>
<p> For now, you can use a DVD-RAM. As far as I <a href="#dvd">know</a>, there is no way that linux can show you a DVD movie at this time. However, once you have a BIOS card, you are totally ready for that happy day when you can play a DVD movie with linux. Simply install the new drive in your old 386 and let 'er rip.
<h2><font color=blue>The toasting of CDR/CDRW discs</font></h2>
<P> Yes, this 386 CD burner is totally and completely ready for prime time, folks
<P> The linux operating system of GNU tools is going to let you make your own custom kernel for your own particular needs. Remember, you have lots of space on that disk drive, so install the bin86 and the kernel-source package, staying with 2.0.35 or newer. Then cd to /usr/src and enter the linux directory to read the README file.
<P> When you compile your CD burner kernel with "make menuconfig", make sure that SCSI support is built-in and not a module. In the general setup, say "yes" (by typing the letter y) to SCSI emulation and say "no" to ATAPI CDROM support (it will now be an SCSI emulation job). In the SCSI section, say "yes" (or "m" for module) to SCSI CDROM support and "yes" (or "m" for module) to SCSI generic device support.
The CDROM will now become /dev/scd0, so do a symbolic link to /dev/cdrom:
<pre>
rm /dev/cdrom
ln -s /dev/scd0 /dev/cdrom
</pre>
<P> When you make a CD, you will also be using the sg module, so make sure you have /dev/sg0 through /dev/sg16 at least:
<pre>
cd /dev
./MAKEDEV sg
</pre>
<P> Once your burner kernel is made you can choose to run it all the time. If it is just for special occasions then boot it by giving it a label and an entry in /etc/lilo.conf.
<h2><font color=blue>/opt/schily/bin</font></h2>
<P> Your cdrecord program is also a kick in the pants to the monopoly guys. Visit the <a href="#schily">homepage</a> of cdrecord and download 1.6.1a7 (or an alpha version if you want trouble). Then compile it and be amazed when your CDR is happily burning on a 386 with 8 megabytes of RAM with a little 145 kb program. Did I hear a monopoly guy say you need a 133 Mhz pentium and windows95 and 16 megabytes of RAM? Why yes, I agree, especially if you are going to use the software that Adaptec has managed to get into most CD writer boxes. By the way, Adaptec has no plans to port to linux. Please give them "20 million users of linux" as a good reason to make the linux port. You can tell them I sent you.
<P> Please use the home made cdrecord that you compile yourself. The version of mkisofs you will compile is hacked in order to make a better CD. Oh, and one more thing, get your opinion made up about the 'enhanced sg interface' and then let the two antagonists in the 'sg interface squabble' know it. Alan Cox needs to be made aware of the need for a resolution to this standoff, so maybe you can help.
<h2><font color=blue>Sweet Office Suite</font></h2>
<P> There is no need to let your 386 just sit there now that you have made it Y2K compliant and it has a big enough hard disk for some serious archiving. Take a look at Star Division's Star Office 5.1. You can open and use Word files as well as make full use of your video card for groovy graphics in your finished work. The best part, O Tight-Wadded One, is it is <i>free for personal use</i>. Simply visit Star Division's <a href="http://www.stardivision.com">site</a> and register and download the package. This has got to be the best deal for linuxians, so we should all hope to heaven that Sun (the new owners) will keep it available.
<h2><font color=blue>Remotely Yours</font></h2>
<P> The need-for-speed folks are going to rain all over your parade, so here is a trick for you if you want to show the limits of that free machine. First, put linux on your pentium speed-burner-CPU-melter. Then tell the pentium to accept connections from the 386 with this:
<pre>
on the pentium:
DISPLAY=386.at.your.domain.net:0
export DISPLAY
on the 386:
xhost +pentium.at.your.domain.net:0
</pre>
<P> Yes, I know, it is more secure to use cookies. So just follow the instructions in the Remote-X-Apps mini-HOWTO. The point is we want the pentium to run the big applications; namely that Netscape memory hog.
<P> Now install X on the 386. The most compact way is to use Debian, one deb at a time. If you have more than 500 megabytes free, then go ahead and install RedHat or Mandrake, but switch away from GNOME or KDE, they are too slow on a 386/486. To make an easy switch, type this in your home directory:
<pre>
echo exec icewm > .xinitrc
</pre>
<P> It helps if icewm (the ice window manager) is installed on the system. It is fast; it is small; it is cool (just ask anyone who uses it).
<P> Now that you have X running on the 386, open an xterm and do an "rlogin" to the pentium and ask for Netscape. The pentium will run the mozilla memory monster for you, and display the pretty pictures back home on your 386 monitor. Speed was the concern, now it is a non-issue. I think that the remote X apps are great good fun that you can have with a networked linux box. Not only can you run the other guy's apps, you can also run whatever is on your own system.
<hr>
<h2><a name=bios><font color=blue>BIOS </a>Card</h2></font>
<P> A BIOS card will set you back $40.00 Canadian and you can install it easily. It will be a simple little ISA card, and I have even heard of PCI versions for your old pentium. It can also be found with an IDE controller on the card, which can let you attach two more IDE devices. The Year 2000 adjustments are made for you on every boot right after you see the video BIOS and the memory check is completed. It is now safe to use your computer.
<h2><a name=old><font color=blue>386</a> Donations</h2></font>
<P> <a name=redo>So</a> there I was at Syrotech on Main Street. I asked Jeff if there were any 386 machines kicking around and he goes to have a look. He comes back with a DEC 386, no RAM, no HDD, no keyboard, no nothing. I ask how much; he looks at Tom. Tom gives the go ahead and he says "Take it away. Have fun with it." Ha! If they only knew.
A very well intentioned <a href="#donate">effort</a> is underway right now in your community to donate old computers to deserving non-profit groups and educational facilities. This article was inspired by that effort in hopes that the recipients of these machines can make the best use of them. When you combine the GNU tools with a rock solid kernel you get an OS that becomes the killer application. You know it as linux.
<hr><a name=xfree><h2><font color=blue>Reference reading and links:</h2></font></a>
<P><a name=dvd>DVD</a> the sites to see: <a href="http://atv.ne.mediaone.net/linux-dvd/">http://atv.ne.mediaone.net/linux-dvd/</a>
<a href="http://livid.on.openprojects.net/">http://livid.on.openprojects.net/</a>
<P><a name=big>Large-Disk</a> <a name=lba>mini-HOWTO</a> -- you might need to use the linear option in /etc/lilo.conf
<P>LILO mini-HOWTO -- shows the linear option for /etc/lilo.conf
<P><a name=donate>Share</a> the Technology <a href="http://www.libertynet.org/share">http://www.libertynet.org/share</a>
<P>Geeks Into The Streets <a href="http://linux.umbc.edu/gits/">http://linux.umbc.edu/gits/</a>
<P>The <a name=schily>home</a> of cdrecord: <a href="http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html">
http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html</a>
<P>Remote-X-Apps mini-HOWTO -- required reading for X on a terminal
<hr><br><P>
<center><font color=blue><strong>made with mcedit on an i486 with GNU/Linux 2.0.35<P>The adamant position of the author is in no way meant as an affront to sincere readers.</center></font></strong>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Bill Bennet<BR>
Published in Issue 45 of <i>Linux Gazette</i>, September 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Setting Up A Java Development Enviroment For Linux</font></H1>
<H4>By <a href="mailto:chrisgibbs@geocities.com">Chris Gibbs</a></H4>
</center>
<P> <HR> <P>
<h2>Contents</h2>
<p class=LG>
<a href="#jd1">Obtaining the JDK</a>
<p class=LG>
<a href="#jd2">Kernel Support For Java</a>
<p class=LG>
<a href="#jd3">JDK</a>
<p class=LG>
<a href="#jd4">Java Beans</a>
<p class=LG>
<a href="#jd5">Swing</a>
<p class=LG>
<a href="#jd6">Java Accessibility Utilities</a>
<p class=LG>
<a href="#jd7">JSDK</a>
<p class=LG>
<a href="#jd8">Documentation</a>
<p class=LG>
<a href="#jd9">Java Tutorial</a>
<p class=LG>
<a href="#jd10">Sun's HotJava Browser</a>
<p class=LG>
<a href="#jd11">Next Month</a>
<H2>Introduction</H2>
<P class=LG>This article is intended to help those new to either Linux or Java
set their machines up to run Java applications, as well as providing
an effective environment for developing new Java applications.
</P>
<P class=LG>Specifically I shall explain
how to set up Sun's <B>1.1.x JDK</B> and other related
packages. This is not the only way to run Java on Linux.
</P>
<P class=LG><A HREF="http://www.blackdown.org/">Blackdown.org</A> now offers
the new <B>1.2.x JDK</B> for Linux (at the time of writting this is still a pre-release version). I only recommend using this if
you are also using the new 2.2.x Linux kernel. If you choose to
install the <b>1.2.x JDK</b> then please note that you do not need to obtain
the <b>Swing</b> and <b>JSDK</b> packages, since they are already included. Also you
may find some compatibility problems if you use older Java
applications with the <b>1.2.x JDK</b>. In particular if you intend to
implement the <B>javapache</B> extensions to <B>Apache</B> you will
need to use <B>JDK 1.1.x.</B>
</P>
<P class=LG>In addition there exist other third party Java environments and
Java compilers such as IBM's <B>jikes</B>. Use these at your own
peril! IMHO Sun have defined and developed the Java language so I
expect their Java environments to be the most standard. Other
environments may be of interest, but I cannot cover them here.
<p class=LG>
Unfortunately the development of the Java language for Linux lags the development for other operating systems. Having said that there are still many advantages to using Java on Linux, not least of which is the easy availability of sophisticated development tools. If you have not seen a recent version of <b>DDD</b> (The Dynamic Display De-bugger), you may not realise that it now supports Java. If you write any programs under Linux <b>DDD</b> is a <i><b>must have</b></i> utility.
<p class=LG>
<b>Why use Java at all?</b>
<p class=LG>
Java's greatest advantage is also its greatest disadvantage. For reasons given below, the fact that the same Java code can be run on any platform without re-compiling is responsible for the fact that Java applications can appear slow. It is this slowness that has lead some to question the need to use Java at all.
<p class=LG>
It is true that if speed in loading and running an application is the only criteria for choosing a programming language then I would never consider using Java at all. Although applications such as <b>jedit</b> and the Java cd player described in earlier editions of this e-zine are functionaly equivalent to applications written in C they are very slow to start up and I am loath to use them when I have much faster alternatives.
<p class=LG>
But Java is not meant for such applications. Java excells in what it was originally designed for, which is to provide a means of making applications available over the Internet. Over the Internet the speed of loading an application is not really important when compared to the time it takes to download the application.
<p class=LG>
Now consider your friendly ISP, and the servers that provide you with Internet access. Your ISP (even your local Intranet) needs the fastest machines possible given certain criteria (cost etc). The cost of the actual server may not be important when compared to the software investment of server-side applications. Using Java to implement server-side applications leaves your ISP free to choose the best machine architecture and operating system without having to worry about the cost and feasibility of re-implementing such applications. They can simply be copied from one machine to another. Perhaps one day Microsoft will develop a reliable operating system that is superior to a *NIX operating system. If that day ever comes I will want to change from Linux, using Java will allow me to do that and keep exactly the same server-side applications I am running now.
<p class=LG>
If you only want to use a stand-alone computer, with no network access, either locally or over the Internet, then you probably do not need or want to consider using Java. But if your machine is going to be part of a local network or the Internet then the use of Java should be taken very seriously. Java is not the only way to develop network applications. For instance Perl can be used in a very similar way. But Java is a very attractive option.
</P>
<a name="jd1"></a><H2>Obtaining the JDK</H2>
<P class=LG>Please <B>do not</B> obtain your JDK directly from Sun. They
provide support only for Microsoft Windows, Solaris etc.
Instead go to <A HREF="http://www.blackdown.org/">Blackdown.org</A>
and find the version you require.
</P>
<P class=LG>All other packages mentioned here <B>should</B> be obtained from
Sun.
</P>
<P class=LG>The Linux port of the JDK can either be found on a Linux
distribution disk, or can be found at http://blackdown.org. You will
find you have a bewildering choice of files to install. There is the
JRE as well as the JDK. I recommend you get the full JDK package
since it contains everything in the others.
</P>
<a name="jd2"></a><H2>Kernel Support For Java</H2>
<P class=LG>Linux was possibly the first operating system to provide direct
kernel support for Java. This allows Linux to run both Java
applications and Java applets directly, without the need for a
browser such as Netscape. But if you think direct kernel support
means that the kernel has anything to do with actually running Java
code you are sadly mistaken.
</P>
<P class=LG>To understand what is happening you need to realize that Java is
really only one step removed from running interpreted programs rather
than compiled programs. In the early days of computing, it was common
to use an interpreted language, such as GW-BASIC, to write simple
applications. The code that was written was never compiled into a
program, rather the code would be parsed by an interpreter which
would perform the actual execution of instructions. This is a very
inefficient way of doing things and the results will always be slow.
</P>
<P class=LG>Java differs from an interpreted language, such as early versions
of BASIC, in that the source code is compiled. But the source is not
compiled into something a computer can directly execute as would be
the case if you compiled a C program with gcc. Instead the source
code is <I>byte-compiled</I> into a standard format. The reason that
the same Java application can be run on any platform is precisely
because this <I>byte-code</I> is in a standard format. The programs
<B>java</B> and <B>appletviewer</B>, provided by Sun or Blackdown.org
perform the function of parsing this <I>byte-code</I> and executing
the instructions. This is the reason Java applications can appear
slow, the <I>byte-code</I> must be parsed by an interpreter before it
can be executed, though the situation is not nearly as bad as it was
with early BASIC programs, since the <I>byte-code</I> has already
been optimized by the java compiler.
</P>
<P class=LG>When you compile Java support into the Linux kernel what you are
really doing is telling the operating system to invoke either <B>java</B>
or <B>appletviewer</B> when a request is made to execute a java
application. Linux is simply giving you a shorthand way of saying
'<B>appletviewer <I>myapplication</I></B>'.
</P>
<P class=LG>For this reason you need to tell the kernel where your Java
executables are kept. If you obtain the JDK from Blackdown.org then
the chances are that java and appletviewer will be placed in
/usr/local/java/bin. If you install the JDK from a S.u.S.E.
distribution disk then they will be in /usr/lib/java/bin. Of course
you might have installed the JDK to some non-standard location.
</P>
<P class=LG>Before you re-compile your Linux kernel, edit the file
/usr/src/linux/fs/binfmt_java.c to reflect the situation you actually
have.
<p class=LG>
<PRE>
#include <linux/malloc.h>
#include <linux/binfmts.h>
#define _PATH_JAVA "<font color="red">/usr/local/java/bin/java</font>" // Replace with correct location for your system.
#define _PATH_APPLET "<font color="red">/usr/local/java/bin/appletviewer</font>" // Replace with correct location for your system.
#define _PATH_SH "/bin/bash"
char binfmt_java_interpreter[65] = _PATH_JAVA;
char binfmt_java_appletviewer[65] = _PATH_APPLET; </PRE>
<P class=LG>
Please note that the references to <B>java</B> and <B>appletviewer</B>
should be to the actual location of the binaries and not to any
<I>symbolic link</I> you might have created. In the example above the
directory /usr/local/java might be a symbolic link to
/usr/lib/java-1.1.7, but the actual file refereed to is not a
symbolic link, it actually exists in /usr/lib/java-1.1.7/bin.
</P>
<P class=LG>Now you can decide if you want to compile Java support directly
into the kernel, or have it as a module. I choose to use a module.
The only comment I feel necessary is that when I try to execute a
<B>html</B> file kernld will not automatically load the binfmt_java
module, so I must "<B><I>insmod binfmt_java</I></B>" first.
</P>
<P class=LG><B>Execute a HTML file?</B>
</P>
<P class=LG>Yes, Linux will allow you to execute certain HTML files as though
they are applications. To understand why you would want to do this
you need to understand the difference between a Java applet and a
full blown Java application. Whilst a Java application provides all
the resources it needs itself, an applet does not. Normally an applet
needs to be included in a web page which is viewed by a Java enabled
browser such as Netscape or HotJava because it has no top level
window of its own. An alternative is to use the <B>appletviewer</B>
program to view the applet.
</P>
<P class=LG>Linux gives you a further option. if you add the line
</P>
<PRE STYLE="margin-bottom: 0.50cm"> <!--applet--></PRE>
<P class=LG>
to a HTML file (and '<' <B><I>must</I></B> be the first character
in the file), and <B>chmod</B> the file to be executable, then you
will be able to launch the applet(s) embedded in the file directly.
</P>
<P class=LG>In a similar manner a Java application is made up of one or more
<B><I>class</I></B> files. To make the application executable by
linux simply <B>chmod</B> the top level <B><I>class</I></B> file so
it is executable.
</P>
<a name="jd3"></a><H2>JDK</H2>
<P class=LG>Reading the documentation that comes with the <B>JDK</B>, we find
that there is no need to set the <B>CLASSPATH</B> or <B>JDK_HOME</B>
environments. Whilst this is true for the <B>JDK</B> itself, I have
found that there are some applications that expect these environments
to be set. In any case setting them will not cause you any harm and I
recommend you take the following steps to install the <B>JDK</B>
correctly:
</P>
<OL>
<LI>export
PATH=$PATH:<I>{JDK_HOME}</i>/bin
<LI>export JDK_HOME=<I>{JDK_HOME}</I>
<li>export JAVA_HOME=<i>{JDK_HOME}</i>
<LI>export CLASSPATH=./:<i>{JDK_HOME}</i>/lib/classes.zip
</OL>
<P class=LG>Where <I>{JDK_HOME}</I> is the top-level directory to which you
installed the <B>JDK</B>.
</P>
<a name="jd4"></a><H2>Java Beans</H2>
<P class=LG>The JavaBeans API allows you to create component software in the
Java programming language. Components are complete, self-contained,
reusable software items that can be visually linked into any Java
program, applet or servlet. Such software items are refereed to as
Beans. Many Java IDE's are available, such as NetBeans or Visarj,
that use this technology to provide application builder tools.
Included in the package is <b>BeanBox</b>, a simple JavaBean IDE to get you
started.
</P>
<P class=LG>When you startup <B>BeanBox</B>, by running <I>bin.sh</I> in the
<B><I>BDK/beanbox</I></B> sub-directory, three windows will open for
you:
</P>
<UL>
<LI><P>The <B>BeanBox</B> window
</P>
<BLOCKQUOTE><IMG SRC="gibbs/BeanBox.gif" NAME="Graphic2" ALIGN=BOTTOM WIDTH=400 HEIGHT=550 BORDER=0></BLOCKQUOTE>
<LI><P>A <B>ToolBox</B> window
</P>
<BLOCKQUOTE><IMG SRC="gibbs/ToolBox.gif" NAME="Graphic3" ALIGN=BOTTOM WIDTH=136 HEIGHT=376 BORDER=0></BLOCKQUOTE>
<LI><P>A <B>Properties</B> window
</P>
<BLOCKQUOTE><IMG SRC="gibbs/Properties.gif" NAME="Graphic4" ALIGN=BOTTOM WIDTH=284 HEIGHT=76 BORDER=0></BLOCKQUOTE>
</UL>
<P class=LG>The <B>ToolBox</B> initially contains a number of example beans,
you can add your own to create your own visual programming
environment. Select a bean by clicking your mouse on it. Then click
somewhere in the <B>BeanBox</B>. The javaBean will appear and a list
of its properties will appear in the <B>Properties</B> window. You
may then use the <B>Properties</b> window to customize the <b>JavaBean</B>
for your application. When you have finished adding Beans, and are
happy with the appearance of your application in the <B>BeanBox</B>
you can select <I>File/Make applet</I> from the <B>BeanBox</B>
windows menu and an applet complete with example html file will be
generated for you.
</P>
<P class=LG>As should now be clear, JavaBeans provide a means to develop
applications without writing a single line of code. Of course you
need to write the Beans themselves but many third party vendors make
Beans available and the Internet is a fine place to look for new
components.
</P>
<P class=LG>A feature of <B>JavaBeans</B> is that they are packed into the <B><I>JAR</I></B>
file format. This format has many advantages over java class files
including:
</P>
<UL>
<LI><P><B>File Compression</B> A JAR file may optionally be
compressed for more efficient storage and faster download times.
</P>
<LI><P><B>Decreased Download Times</B> An entire <B>applet</B> may
be bundled into a single JAR file. This means a users browser only
needs to open a single connection to download your applet rather
than a connection for each class file your applet requires.
</P>
<LI><P><B>Security</B> A JAR file can be digitally signed. This
gives users the opportunity to grant your software security
privileges it would not normally have, so long as the user is able
to recognize your signature.
</P>
</UL>
<P class=LG>Additional features are included in <B>JDK</B> 1.2.x including
package versioning, package sealing and packaging for extensions.
</P>
<p class=LG><b>INSTALLATION</b>
<oL>
<LI>Obtain the <B>BDK</B> from <A HREF="http://java.sun.com/beans">http://java.sun.com/beans</A>
<LI>Unpack the archive to a subdirectory, e.g. /usr/lib/BDK
<LI>Optionally add the new classes to your <B>CLASSPATH</B>. e.g.
export CLASSPATH=$CLASSPATH:/usr/lib/BDK/beanbox/classes
<LI>Enter the demo sub-directory and run "make -f
GNUMakefile"
<LI>Enter the demo/html directory and make the files executable
in the manner described above and try them out.
<LI>Enter the beanbox sub-directory and run "run.sh".
</ol>
<a name="jd5"></a><H2>Swing</H2>
<p class=LG>
Not all Java applications are equal! Some look better than others. <b>Swing</b> provides several enhancements to the Java language.
Whilst you do not need <b>Swing</b> to develop and run Java applications and applets, you may well need it to compile or run certain Java applications (such as <b>jedit</b>) that are freely available on the Internet.
<BLOCKQUOTE><IMG SRC="gibbs/Swing.gif" NAME="Graphic1" ALIGN=BOTTOM WIDTH=790 HEIGHT=550 BORDER=0></BLOCKQUOTE>
<P class=LG>The Java Foundation Classes (<B>JFC</B>, this is included in the
Swing package), together with Swing, provide a set of "lightweight"
components that work the same on all platforms. Effectively they
provide GUI extensions to the Java language that can provide many
enhancements to the look and feel of your applications.
</P>
<P class=LG>The screen-shot above shows the initial screen when you start the
<B>swingset</B> application. This can be used to demonstrate the
enhancements Swing provides. by selecting a category such as <B><I>ListBox</I></B>
you will be able to display and alter the various options that are
available and so become familiar with the effects that Swing can
provide.
</P>
<P class=LG>An application I can recommend that makes full use of Swing is
<A HREF="http://www.gjt.org/~sp/jedit.html"><B>jedit</B></A>, a very
nice editor. This is available in full source code, and is suitable
for editing plain text files such as HTML, Java source, Perl scripts,
LaTeX documents, etc. The editor supports the inclusion of plug-ins
and a couple of trivial examples are included to get you started.
</P>
<P class=LG><b>INSTALLATION</b>
<p class=LG>
<ol>
<li>Unpack the Swing package (I recommend version 1.1) to the directory of your choice. e.g. <i>/usr/local/Swing</i>
<li>export SWING_HOME=<i>{SWING_HOME}</i>
<br>
<br>
optionally,
<li>Add the <i>.jar</i> files and <i>src.zip</i> under <i>{SWING_HOME}</i> to your <b>CLASSPATH</b>.
</ol>
<p class=LG>Where <i>{SWING_HOME}</i> is the directory under which you unpacked Swing.
</P>
<a name="jd6"></a><H2>Java Accessibility Utilities</H2>
<P class=LG>Actually, there are two packages here: <B>The Java Accessibility
API</B> and the <B>Java Accessibility Utilities</B> themselves.
</P>
<P class=LG>The Java Accessibility API defines a contract between individual
user-interface components that make up a Java application and an
assistive technology that is providing access to that Java
application. If a Java application fully supports the Java
Accessibility API, then it should be compatible with, and friendly
toward, assistive technologies such as screen readers, screen
magnifiers, etc. With a Java application that fully supports the
Java Accessibility API, no off screen model would be necessary
because the API provides all of the information normally contained
in an off screen model.
</P>
<P class=LG>In order to provide access to a Java application, an assistive
technology requires more than the Java Accessibility API: it also
requires support in locating the objects that implement the API as
well as support for being loaded into the Java virtual machine,
tracking events, etc. The Java Accessibility utility classes provide
this assistance.
</P>
<BLOCKQUOTE><IMG SRC="gibbs/jaccess.gif" NAME="Graphic5" ALIGN=BOTTOM WIDTH=680 HEIGHT=500 BORDER=0></BLOCKQUOTE>
<P class=LG>As you may have guessed from the screen-shot above, the Java
Accessibility Utilities require that you have installed the Swing
package.
</P>
<P class=LG>Several example utilities are
provided in the package. The screen-shot above shows the <B>Java
Monitor</B> which allows you to obtain information about objects
being displayed on the screen by a Java Virtual Machine. Also
included are:
</P>
<UL>
<LI><P><B>AWT Monitor</B> This is the same as the <B>Java Monitor</B>
but does not require or support the Java Foundation Classes.
</P>
<LI><P><B>Explorer</B> Explorer uses the Java Accessibility
Utilities to examine accessible information about the objects in
the Java Virtual Machine. It allows the user to select different
methods for selecting the object to be examined: by following
focus, by following the mouse, by following caret position, or by
pressing the F1 when the pointer is over an object. Once an object
has been selected for examination, Explorer displays the results of
calling Java Accessibility API methods on that object.
</P>
<LI><P><B>Monkey</B> Like a monkey, Monkey "swings"
through the component trees in a particular Java Virtual Machine
and presents the hierarchy in two different ways. The first is the
actual Component hierarchy and the second is the hierarchy viewed
as Accessible objects. In addition, if the user clicks the right
mouse button over a tree node in Monkey, Monkey will present the
user with a pop-up menu containing options for manipulating the
object.
</P>
<LI><P><B>Accessibility Monitor</B> Accessibility Monitor will
monitor all accessible property change events on all of the
non-transient objects in the virtual machine. In addition, if the
user clicks the right mouse over the events presented in the table
provided by AccessibilityMonitor, AccessibilityMonitor will present
the user with a pop-up menu containing options for manipulating the
associated object.
</P>
<LI><P><B>Linker</B> Linker captures the Accessible hypertext
information contained in the object underneath the mouse (the user
the presses the F1 key), and displays a list of the the Accessible
hyperlinks within that object in a table. Selecting one of the
links and clicking "Activate Selected Link" will cause
the hypertext object to follow the link selected (to update the
display, move the mouse over the object and press F1 again).
</P>
</UL>
<p class=LG><b>INSTALLATION</b>
<p class=LG>This is a little different to the other packages mentioned here, since the different utilities included have to be explicitly enabled by you.
<p class=LG>
When you start any Java application you will also be able to automatically stat one of the utilities mentioned above by following the steps below:
<ol>
<li>Unpack the packace to the directory of your choice. e.g. /usr/local/jaccess
<li>Install the <b>Swing</b> package as described above.
<li>Add the new jar files to your CLASSPATH e.g. export CLASSPATH=$CLASSPATH:<i>{jaccess_home}</i>/jaccess.jar:<i>{jaccess_home}</i>/jaccess-examples.jar
<li>Edit the <i>JDK_HOME/lib/awt.properties</i> file to enable <b>jaccess</b> by adding the following line:
<pre>
AWT.EventQueueClass=com.sun.java.accessibility.util.EventQueueMonitor
</pre>
<li>Decide which utitility(s) you want to enable and add a line for each one to the awt.properties file. For example to enable the <b>JavaMonitor</b> add the line:
<pre>
AWT.assistive_technologies=JavaMonitor
</pre>
</ol>
<a name="jd7"></a><H2>JSDK</H2>
<P class=LG>The Java Servlet API is a standard extension to the Java
Development Kit. Servlet's are bodies of code that run inside
servers to extend their functionality. For example, servlet's offer
an efficient platform-independent replacement for CGI scripts.
Servers that can host servlet's are java-enabled servers that
respond to client requests.
</P>
<BLOCKQUOTE><IMG SRC="gibbs/model.gif" NAME="Graphic6" ALIGN=BOTTOM WIDTH=414 HEIGHT=145 BORDER=0>
</BLOCKQUOTE>
<P class=LG>The diagram above shows a typical use of a Java servlet. A HTTP
server is running a servlet that is responsible for taking data from
a HTML order-entry form and applies a companies rules for updating
their order database. Simply put, a java servlet is a servers
version of a java applet. As one might expect, since the server will
be running remotely and unattended (from a users viewpoint at least)
servlet's have no graphical user interface.
</P>
<P class=LG>Servlet's provide a way to generate dynamic documents that is
both easier to write and faster to run. Servlet's also address the
problem of doing server-side programming with platform-specific
APIs: they are developed with the Java Servlet API, a standard Java
extension.
</P>
<P class=LG>So use servlet's to handle HTTP client requests. For example,
have servlet's process data POSTed over HTTP using an HTML form,
including purchase order or credit card data. A servlet like this
could be part of an order-entry and processing system, working with
product and inventory databases, and perhaps an on-line payment
system.
</P>
<P class=LG>Amongst the many other possible
uses for servlet's are the following:
</P>
<UL>
<LI><P>Allowing collaboration between people. A servlet can handle
multiple requests concurrently, and can synchronize requests. This
allows servlet's to support systems such as on-line conferencing.
</P>
<LI><P>Forwarding requests. Servlet's can forward requests to other
servers and servlet's. Thus servlet's can be used to balance load
among several servers that mirror the same content, and to
partition a single logical service over several servers, according
to task type or organizational boundaries.
</P>
</UL>
<P class=LG>If you use Apache then you will be interested in the <B>javapache</B>
project, available from <A HREF="http://java.apache.org/">http://java.apache.org</A>.
To use this you will need to use the 1.1x JDK, and must use version
2.0 of the <B>JSDK</B>. Next month I hope to make an introduction to
this project available.
</P>
<P class=LG>The JSDK is available for download from
<A HREF="http://java.sun.com/products/java-server/servlets">http://java.sun.com/products/java-server/servlets</A>
</P>
<P class=LG>If you are using the newer 1.2.x JDK please remember you do not
need to download this package, since the JSDK is already included.
</P>
<p class=LG><b>INSTALLATION</b>
<oL>
<LI>Unpack the JSDK to your preferred location (e.g.
/usr/lib/JSDK)
<LI>Add the <B>JSDK</B> /bin directory to your path. The best
way to do this is to place a line
<PRE STYLE="margin-bottom: 0.50cm"> export PATH=$PATH:/usr/lib/JSDK/bin</PRE>
to your <I>/etc/profile</I> file.
<LI><P>Add the JSDK Classes to your <B>CLASSPATH</B>, e.g.
<PRE STYLE="margin-bottom: 0.50cm"> export CLASSPATH=$CLASSPATH:/usr/lib/JSDK/lib/jsdk.jar</PRE>
<P>Again you can add this line to your <I>/etc/profile</I> file.
</P>
</UL>
<a name="jd8"></a><H2>Documentation</H2>
<p class=LG>
Each package includes its own documentation in HTML format. However, since you need to get your <b>JDK</b> from Blackdown.org, rather than from Sun, the documentation for the <b>JDK</b> will be missing from the package.
<P class=LG>Sun provides full documentation for both 1.1.x and 1.2.x versions
of the <B>JDK</B>. Documentation for the 1.1.x version exists for
version 1.1.3. I do not think it has been updated since then.
</P>
<P class=LG>In the <B>demo</B> sub-directory you will find many examples.
Find the HTML files that launch java applets and make them
executable in the manner I have described above so you can run them
as conventional programs.
</P>
<P class=LG>The <B>docs</B> subdirectory contains a complete programmers
guide to the <B>Java</B> language. This is further enhanced by the
<B>Java Tutorial</B>.
</P>
<a name="jd9"></a><H2>Java Tutorial</H2>
<P class=LG>Sun have a comprehensive Java tutorial which can get you up to
speed programming in Java very quickly. Both the entire tutorial and
specific parts of it are available for download:
</P>
<TABLE BORDER=1 CELLPADDING=5 CELLSPACING=2>
<TR>
<TH>
<P>Bundle
</P>
</TH>
<TH>
<P>Format
</P>
</TH>
<TH>
<P>Compressed /<BR>Uncompressed
</P>
</TH>
<TH>
<P>Link to Download
</P>
</TH>
</TR>
<TR>
<TD ROWSPAN=3>
<P ALIGN=CENTER><STRONG>Online Tutorial</STRONG> <BR><FONT SIZE=2>(last
updated December 21)</FONT></P>
</TD>
<TD>
<P>Zip
</P>
</TD>
<TD>
<P>8.5 MB / 14.7 MB
</P>
</TD>
<TD>
<P><A HREF="ftp://ftp.javasoft.com/docs/tutorial.zip">ftp://ftp.javasoft.com/docs/tutorial.zip</A></P>
</TD>
</TR>
<TR>
<TD>
<P>tar/compress
</P>
</TD>
<TD>
<P>10.5 MB / 14.7 MB
</P>
</TD>
<TD>
<P><A HREF="ftp://ftp.javasoft.com/docs/tutorial.tar.Z">ftp://ftp.javasoft.com/docs/tutorial.tar.Z</A></P>
</TD>
</TR>
<TR>
<TD>
<P>tar/GNUzip
</P>
</TD>
<TD>
<P>7.2 MB / 14.7 MB
</P>
</TD>
<TD>
<P><A HREF="ftp://ftp.javasoft.com/docs/tutorial.tar.gz">ftp://ftp.javasoft.com/docs/tutorial.tar.gz</A></P>
</TD>
</TR>
<TR>
<TD ROWSPAN=3>
<P ALIGN=CENTER><STRONG>Tutorial Examples</STRONG> <BR><FONT SIZE=2>(last
updated December 21)</FONT></P>
</TD>
<TD>
<P>Zip
</P>
</TD>
<TD>
<P>2.9 MB / 4.4 MB
</P>
</TD>
<TD>
<P><A HREF="ftp://ftp.javasoft.com/docs/tut-examples.zip">ftp://ftp.javasoft.com/docs/tut-examples.zip</A></P>
</TD>
</TR>
<TR>
<TD>
<P>tar/compress
</P>
</TD>
<TD>
<P>3.6 MB / 4.4 MB
</P>
</TD>
<TD>
<P><A HREF="ftp://ftp.javasoft.com/docs/tut-examples.tar.Z">ftp://ftp.javasoft.com/docs/tut-examples.tar.Z</A></P>
</TD>
</TR>
<TR>
<TD>
<P>tar/GNUzip
</P>
</TD>
<TD>
<P>2.5 MB / 4.4 MB
</P>
</TD>
<TD>
<P><A NAME="swingarchive"></A><A HREF="ftp://ftp.javasoft.com/docs/tut-examples.tar.gz">ftp://ftp.javasoft.com/docs/tut-examples.tar.gz</A></P>
</TD>
</TR>
<TR>
<TD>
<P ALIGN=CENTER><STRONG>JFC/Swing Trail</STRONG> <BR><FONT SIZE=2>(last
updated December 21)</FONT></P>
</TD>
<TD>
<P>Zip
</P>
</TD>
<TD>
<P>2.8 MB / 4.6 MB
</P>
</TD>
<TD>
<P><A HREF="ftp://ftp.javasoft.com/docs/tut-swing.zip">ftp://ftp.javasoft.com/docs/tut-swing.zip</A></P>
</TD>
</TR>
<TR>
<TD>
<P ALIGN=CENTER><STRONG>Servlets Bookstore Example</STRONG>
<BR><FONT SIZE=2>(last updated December 21)</FONT></P>
</TD>
<TD>
<P>Zip
</P>
</TD>
<TD>
<P>18 KB / 51 KB
</P>
</TD>
<TD>
<P><A HREF="ftp://ftp.javasoft.com/docs/tut-bookstore.zip">ftp://ftp.javasoft.com/docs/tut-bookstore.zip</A></P>
</TD>
</TR>
<TR>
<TD>
<P ALIGN=CENTER><STRONG>BINGO Example</STRONG> <BR><FONT SIZE=2>(last
updated December 21)</FONT></P>
</TD>
<TD>
<P>Zip
</P>
</TD>
<TD>
<P>35 KB / 108 KB
</P>
</TD>
<TD>
<P><A HREF="ftp://ftp.javasoft.com/docs/tut-bingo.zip">ftp://ftp.javasoft.com/docs/tut-bingo.zip</A></P>
</TD>
</TR>
</TABLE>
<P class=LG>Alternatively you can read the tutorial on-line at
<A HREF="http://java.sun.com/docs/books/tutorial">http://java.sun.com/docs/books/tutorial</A>.
</P>
<P class=LG><B>Please note:</B> Whilst you are free to mirror this tutorial
on a local network or Intranet, Sun request that you do not make it
available publicly on the Internet.
</P>
<a name="jd10"></a><H2>Sun's HotJava Browser</H2>
<P class=LG>This is a web browser written entirely in Java. For that reason
even on a 133Mhz pentium class processor it is very slow. Its
advantage is that it is one of the very few browsers available for
Linux that can run Java applets. It is also very interesting for
other reasons.
</P>
<P class=LG>HotJava is highly modular, the user interface is easily
customizable and has a small footprint (does not take up a large
amount of system resources). Well that is what Sun claims. I find in
practice that if I try loading java applets whilst running other
applications the browser will die on me. I would have thought that
if it does have a small footprint this would not happen - whatever.
</P>
<P class=LG>Sun further claim that the browser is ideal for a variety of
devices - such as screen phones as well as desktop PC's. All I can
say is that until the browser can perform faster (on my pentium
class box with 32Meg ram it takes about three minuets to start up
and load the default screen), and is more reliable, then it is
unlikely to be of much use unless you have a very fast processor.
</P>
<P class=LG>The heart of HotJava is the <B>HotJava HTML Component</B>. This
is a JavaBean that parses and renders HTML. This can be embedded
into your own applications, anything from a newsreader to a
microwave oven (yes there are microwaves and even fridges that give
you Internet access now), can make use of it to display information.
</P>
<P class=LG>HotJava supports the following
Internet standards:-
</P>
<UL>
<LI><P STYLE="margin-bottom: 0.00cm">JDK 1.1
</P>
<LI><P STYLE="margin-bottom: 0.00cm">HTTP 1.1 Protocol
</P>
<LI><P STYLE="margin-bottom: 0.00cm">HTML 3.2
</P>
<LI><P STYLE="margin-bottom: 0.00cm">Tables and Frames
</P>
<LI><P STYLE="margin-bottom: 0.00cm">FTP and Gopher File Transfer
Protocols
</P>
<LI><P STYLE="margin-bottom: 0.00cm">Persistent Cookies
</P>
<LI><P STYLE="margin-bottom: 0.00cm">GIF and JPEG Media Formats
</P>
<LI><P STYLE="margin-bottom: 0.00cm">AU audio format
</P>
<LI><P STYLE="margin-bottom: 0.00cm">SMTP and MIME E-mail Protocols
</P>
<LI><P STYLE="margin-bottom: 0.00cm">SOCKS Protocol
</P>
<LI><P STYLE="margin-bottom: 0.00cm">SSL 3.0
</P>
<LI><P>Java Archive (jar) Format
</P>
</UL>
<P class=LG>The following packages are
available depending on your needs:
</P>
<UL>
<LI><P STYLE="margin-bottom: 0.00cm">HotJava Browser Source Code
(including HotJava HTML Component)
</P>
<LI><P STYLE="margin-bottom: 0.00cm">HotJava Browser Binary
</P>
<LI><P STYLE="margin-bottom: 0.00cm">HotJava HTML Component Source
Code
</P>
<LI><P>HotJava HTML Component Binary
</P>
</UL>
<a name="jd11"></a><H2>Next Month</H2>
<P class=LG>Last month I explained how to set up the Apache HTTP server. Next
month I intend to tie these two articles together by showing you how
to incorporate the <B>javapache</B> extensions to Apache so you can
use Java to create dynamic HTML pages and server side applications
to enhance your web site.
</P>
<P class=LG>In a future article I shall give an overview of the available
Netscape Plug-ins and show how <I>simple</I> it is to develop your
own plug-ins. In the meantime I welcome your comments and
suggestions for future articles.
</P>
</OL>
<P><HR><P> <!-- ************************************************* -->
<EM>Editor's note:</EM> October's <EM>Linux Journal</EM>, in the Strictly
On-Line section, contains two
articles related to Java:
<UL>
<li><a href="http://www.linuxjournal.com/lj-issues/issue66/3119.html">Java Servlets</a>
<li><a href="http://www.linuxjournal.com/lj-issues/issue66/3424.html">Java 2 Software Development Kit</a>
</UL>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Chris Gibbs<BR>
Published in Issue 45 of <i>Linux Gazette</i>, September 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<CENTER>
<H1><font color="maroon">Stripping and Mirroring RAID under RedHat 6.0</font></H1>
<H4>By <a href="mailto:dude@linux.com">Mark Nielsen</a></H4>
</CENTER>
<P> <HR> <P>
<h2>Index:</h2>
<ol>
<li> <a href="#Resources"> Resources</a>
<li><a href="#Intro"> Introduction to RAID</a>
<li><a href="#Strip"> Setting up a RAID Strip </a>
<li><a href="#Mirror"> Setting up a RAID Mirror </a>
<li><a href="#5"> RAID 5 with a spare device </a>
<li><a href="#Comments"> Comments</a>
</ol>
Future updates for this article will be located at
<a href="http://www.tcu-inc.com/mark/articles/Raid.html">
http://www.tcu-inc.com/mark/articles/Raid.html</a>.
<hr>
<a name="Resources"></a>
<h2>Resources</h2>
<ol>
<li> <a href="http://ostenfeld.dk/~jakob/Software-RAID.HOWTO/">
http://ostenfeld.dk/~jakob/Software-RAID.HOWTO/</a>
<li> /usr/doc/raidtools-0.90
</ol>
These links are hardware specific which go beyond the scope of this article.
<ol>
<li> Here is a DPT HOWTO,
<a href="http://www.ram.org/computing/linux/dpt_raid.html">
http://www.ram.org/computing/linux/dpt_raid.html</a>
</ol>
<hr>
<a name="Intro"></a>
<h2>Introduction to RAID</h2>
It is assumed that you will read the
<a href="http://ostenfeld.dk/~jakob/Software-RAID.HOWTO/">
The Software-RAID HOWTO</a> by jakob@ostenfeld.dk. Apparently, he comes
from Danmark (not Denmark), which is, of course, the best country in the world
where a lot of smart people are located. Anyways, he does such a good job
at his HOWTO, this article is probably not necessary. I only started
this because the documentation
used to suck really bad, which doesn't appear to be the case anymore.
Also, this setup is specific for RedHat 6.0, but it should work
with any distribution. When am I going to switch to Debian for good?
Soon I hope.
<p>
What is RAID? Well, it basically gives you the power to do some funky
stuff with multiple hard drives. It lets you combine hard drives, split
data amongst several hard drives, and do other things. It can increase
the speed to write and read your data to your hard drives and it can make
backup copies of your hard drives so that if one hard drive crashes, you
can most likely retrieve all your data.
Read more about the
<a href="http://ostenfeld.dk/~jakob/Software-RAID.HOWTO/Software-RAID.HOWTO-2.html#ss2.3">
RAID Levels</a>
from
<a href="http://ostenfeld.dk/~jakob/Software-RAID.HOWTO/Software-RAID.HOWTO-2.html#ss2.3">
The Software-RAID HOWTO
</a> right now to get a better idea about the different types of
Software RAID.
<p>
Also, you will need to setup several small partitions for this example.
I suggest having 1 gig of diskspace free for an extended partition, and then
to make 100 meg logical partitions out of the extended partition. Also, PLEASE
PLEASE PLEASE only test raiding on a hard drive you don't care about. If you
screw it up, it is your fault, even if my documentation is incorrect.
<hr>
<a name="Strip"></a>
<h2>Strip RAID</h2>
I am ONLY going to show you how to setup a strip for DATA only. This means,
I won't be stripping the main operating system. There can be problems
trying to strip an entire system, and so, I won't do it here.
<p>
There are basically 4 steps to setup a Strip RAID on your Linux system.
Stripping puts data on two or more hard drives (actually partitions) where
half the data is on one hard drive and the other half on the other. This
increases your speed since you use BOTH the hard drives at the same time to
get each half of the data. Again, please read more about this in the
HOWTO.
<p>
First, we need to configure /dev/md0, then we need to initialize the
partitions, and then we need to configure /etc/rc.d/rc.local to activate
the raid, and then we need to configure /etc/rc.d/rc.local to mount the
stripped device to a directory.
<p><b> The Steps</b>
Well, I am going to do a trick. Instead of actually using two hard drives,
I am going to assume that most of the low-end users don't have two hard
drives. Hence, I will use two partitions on the same hard drive. Make
an extended partition with two logical partitions, /dev/hda5 and /dev/hda6,
which should be the same size. Stripping two partitions on the same hard drive
is almost pointless, and even on the same IDE controller it is almost
pointless. Still, this is just an EXERCISE.
<ol>
<li> Configure /etc/raidtab with this text
<pre>
raiddev /dev/md0
raid-level 0
nr-raid-disks 2
nr-spare-disks 0
chunk-size 4
persistent-superblock 1
device /dev/hda5
raid-disk 0
device /dev/hda6
raid-disk 1
</pre>
<li> Format the partitions with the command
<pre>
mkraid /dev/md0
</pre>
If you have problems with using the "mkraid" command, it will tell you how
to get around any problems. Then issue this command
<pre>
mkfs -t ext2 /dev/md0
</pre>
Also, check out the status of your raid by looking at the "/proc/mdstat"
file/.
<pre>
cat /proc/mdstat
</pre>
<li> Execute this command which will add a line to /etc/rc.d/rc.local
<pre>
echo "raidstart /dev/md0" >> /etc/rc.d/rc.local
</pre>
<li> Execute this command once. It will make you the directory for
the RAID device and add a command to /etc/rc.d/rc.local.
<pre>
mkdir /RAID
echo "mount /dev/md0 /RAID" >> /etc/rc.d/rc.local
</pre>
<li> If you don't want to reboot your computer, and you want to activate
the raid now,
<pre>
raidstart /dev/md0
mount /dev/md0 /RAID
</pre>
Also, check out the status of the mounted directory by issuing the single
command
<pre>
df
</pre>
</ol>
<hr>
<a name="Mirror"></a>
<h2>Mirror RAID</h2>
Like the example for stripping, I will use two partitions on the same
hard drive and I will only mirror partitions that are used for data.
<p>
<p>
First, we need to configure /dev/md0, then we need to initialize the
partitions, and then we need to configure /etc/rc.d/rc.local to activate
the raid, and then we need to configure /etc/rc.d/rc.local to mount the
mirrored device to a directory.
<ol>
<li> Configure /etc/raidtab with this text
<pre>
raiddev /dev/md0
raid-level 1
nr-raid-disks 2
nr-spare-disks 0
chunk-size 4
persistent-superblock 1
device /dev/hda5
raid-disk 0
device /dev/hda6
raid-disk 1
</pre>
<li> Format the partitions with the command
<pre>
mkraid /dev/md0
</pre>
If you have problems with using the "mkraid" command, it will tell you how
to get around any problems. Then issue this command
<pre>
mkfs -t ext2 /dev/md0
</pre>
Also, check out the status of your raid by looking at the "/proc/mdstat"
file/.
<pre>
cat /proc/mdstat
</pre>
<li> Execute this command which will add a line to /etc/rc.d/rc.local
<pre>
echo "raidstart /dev/md0" >> /etc/rc.d/rc.local
</pre>
<li> Execute this command once. It will make you the directory for
the RAID device and add a command to /etc/rc.d/rc.local.
<pre>
mkdir /RAID
echo "mount /dev/md0 /RAID" >> /etc/rc.d/rc.local
</pre>
<li> If you don't want to reboot your computer, and you want to activate
the raid now,
<pre>
raidstart /dev/md0
mount /dev/md0 /RAID
</pre>
Also, check out the status of the mounted directory by issuing the single
command
<pre>
df
</pre>
</ol>
<hr>
<a name="5"></a>
<h2>RAID 5 with a spare partition</h2>
Okay, RAID 5 with a spare device is a VERY cool thing to do. Again, we will
just be using one hard drive. Generally, for experimenting, I would just
use 100 meg logical partitions. If you have a 1 gig extended partition, you
can have 10 logical partitions for goofing around with.
<p>
Use the same steps for the Mirror or Strip, just change the config file to
this.
<pre>
raiddev /dev/md0
raid-level 5
nr-raid-disks 7
nr-spare-disks 1
persistent-superblock 1
parity-algorithm left-symmetric
chunk-size 32
device /dev/hda5
raid-disk 0
device /dev/hda6
raid-disk 1
device /dev/hda7
raid-disk 2
device /dev/hda8
raid-disk 3
device /dev/hda9
raid-disk 4
device /dev/hda10
raid-disk 5
device /dev/hda11
raid-disk 6
### Also, let us have a spare device
device /dev/hda12
spare-disk 0
</pre>
<hr>
<a name="Comments"></a>
<h2>Comments</h2>
Mount the raid device in /etc/rc.d/rc.local and don't bother putting it
into /etc/fstab. If you want to put it into /etc/fstab, go ahead and try.
It probably won't work, but sometimes people just like to see it for
themselves (like I do). I like the power to shoot myself in the foot. It
makes the surgery interesting.
<p>
Well, it is pretty freaking cool. The documentation used to really
suck rocks, but that howto has been updated, the tools seem easier to use,
and with these few examples, and amateur who knows how to use Linux can
probably setup a raid device. Hopefully this will reduce the overall cost
of RAID servers.
<p>
If you really want to do Software raiding
correctly, get an U2W SCSI controller, like
an Adaptec controller or other good brands, DPT, Mylex, etc. For cheap
raids where you are just mirroring and don't care about speed, IDE
hard drives are okay. If you want to go one step beyond software raid and
to get into hardware raid, then several companies support hardware raid
for Linux.
<hr>
<i>
<a href="mailto:mark@tcu-inc.com">Mark</a>
works as a receptionist (shorts and tee-shirt)
at
<a href="http://www.tcu-inc.com"> The Computer Underground</a>
and as a professional (suit and tie) consultant at
<a href="http://www.800linux.com">
800linux.com</a>. In his spare time, he does volunteer stuff, like writing
these documents to help stop entities which thrive on the
ignorant. I wonder which company is like that?
Edited using emacs and ispell.
</i>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Mark Nielsen <BR>
Published in Issue 45 of <i>Linux Gazette</i>, September 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Linux Humor</font></H1>
<H4>By <a href="mailto:gazette@ssc.com">Mike Orr</a></H4>
</center>
<P> <HR> <P>
<P> This is the first in a series of Linux-related humor which will be
published whenever I have material. If you know a Linux joke you'd
like to contribute for this column, e-mail it to
<A HREF=mailto:gazette@ssc.com>gazette@ssc.com</A>.
<P> Contents:<BR>
[ <A HREF="#airlines">If Operating Systems Ran The Airlines</A> ]
[ <A HREF="#torvalds">Linus Torvalds entry in <EM>Encyclopedia
Galactica</EM></A> ]
<P>
<A NAME=airlines></A><HR> <!-- ***************************************** -->
<H1 ALIGN=center>If Operating Systems Ran The Airlines</H1>
<FONT SIZE=-1><EM>Different versions of this joke have been floating around the
net for the past couple years, but I found this one especially hilarious. It
was found by
<A HREF=brucek@pacifier.com>Bruce Kingsland</A>.
The original author is unknown.</EM></FONT>
<P>
<H4>UNIX Airways</H4>
<P> Everyone brings one piece of the plane along when they come
to the airport. They all go out on the runway and put the
plane together piece by piece, arguing non-stop about what
kind of plane they are supposed to be building.
<H4>Air DOS</H4>
<P> Everybody pushes the airplane until it glides, then they jump
on and let the plane coast until it hits the ground again.
Then they push again, jump on again, and so on ...
<H4>Mac Airlines</H4>
<P> All the stewards, captains, baggage handlers, and ticket agents
look and act exactly the same. Every time you ask questions
about details, you are gently but firmly told that you don't
need to know, don't want to know, and everything will be done
for you without your ever having to know, so just shut up.
<H4>Windows Air</H4>
<P> The terminal is pretty and colorful, with friendly stewards,
easy baggage check and boarding, and a smooth take-off. After
about 10 minutes in the air, the plane explodes with no warning
whatsoever.
<H4>Windows NT Air</H4>
<P> Just like Windows Air, but costs more, uses much bigger planes,
and takes out all the other aircraft within a 40-mile radius
when it explodes.
<H4>Linux Air</H4>
<P> Disgruntled employees of all the other OS airlines decide to
start their own airline. They build the planes, ticket counters,
and pave the runways themselves. They charge a small fee to
cover the cost of printing the ticket, but you can also download
and print the ticket yourself. When you board the plane, you
are given a seat, four bolts, a wrench and a copy of the
Seat-HOWTO.html. Once settled, the fully adjustable seat is
very comfortable, the plan leaves and arrives on time without
a single problem, the in-flight meal is wonderful. You try to
tell customers of the other airlines about the great trip, but
all they can say is, "You had to do what with the seat?"
<P>
<A NAME=torvalds></A><HR> <!-- ************************************** -->
<H1 ALIGN=center>Linus Torvalds entry in <EM>Encyclopedia Galactica</EM></H1>
<FONT SIZE=-1><EM>
The following was sent to the </EM>Linux Journal<EM> Editor by an anonymous
contributor.
</EM></FONT>
<P>
<STRONG>Torvalds, Linus-</STRONG>
... historians generally agree was an actual
person and completed a large portion of the programming used to
develop the positronic brain sometime before the earliest
recorded history. A number of programs have been copied from
active positronic memory and have been proven to be based on the
galactic standard programming language VM (vit-min) C. The memory
patterns include references to the genetic programmer Linus (la-news)
Pauling and have revealed where Torvalds named the earliest
cores of the positronic brain for the VM C language. Torvalds
is universally regarded by historians as the greatest linguist
of the core development project. Torvalds was known to have
mastered all of the known languages of the time while working in
an advanced development laboratory called the Swiss (s-weex) Patent Office
of Pari (par-ee) and selected the VM C core in preference to the previous
Finn language from predecessors Norway (Turbo-C) and Sweden (ANSI-C).
Torvald's mastery of the language in the VM C core is regarded
galaxy wide as the reason for the estimated 100,000 year uptime
for the original positronic brains. The X Law of Robotics
burned into all positronic brains has been found still undecoded in
currently functioning examples of the oldest
portion of the memory used by the LinuX kerning (coy-nah).
Historians are unanimous in identifying Torvalds as the
most ingenious programmer in galactic history.
<DIV ALIGN=right><CITE>--Encyclopedia Galactica</CITE><SUP>1</SUP></DIV>
<P>
<FONT SIZE=-1><SUP>1</SUP> Allusion to Isaac Asimov's <EM>Foundation</EM>
Series.</FONT>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Mike Orr <BR>
Published in Issue 45 of <i>Linux Gazette</i>, September 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Mail for the Home Network</font></H1>
<H4>By <a href="mailto:jpollman@bigfoot.com">JC Pollman</a>
and <a href="mailto:bill.mote@bigfoot.com">Bill Mote</a></H4></center>
<P> <HR> <P>
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 97">
<meta name="GENERATOR" content="Mozilla/4.61 [en] (X11; I; Linux 2.2.10 i686) [Netscape]">
</head>
<body link="#0000FF">
<center><b><font size=+1>Mail for the Home Network</font></b></center>
<p>Mail for the home network sounds like a fairly simple project, but it
is quite ambitious: say good-bye to the wife and kids for the better part
of a week if this is new ground for you. Rest assured, the end results
are worth it.
<p><b>Disclaimer: </b>This article provides information we have gleamed
from reading the books, the HOWTOs, man pages, usenet news groups, and
countless hours banging on the keyboard. It is not meant to be an all inclusive
exhaustive study on the topic, but rather, a stepping stone from the novice
to the intermediate user. All the examples are taken directly from
our home networks so we know they work.
<p><b>How to use this guide:</b>
<ul>
<li>
Words encapsulated by square brackets like [Enter] indicate the depression
of a key on the keyboard or a mouse button [Mouse1]</li>
<li>
Words encapsulated by squiggly brackets like {your name here} indicate
data that will/should be substituted with "real" data</li>
<li>
Text depicted in italics are commands you, the user, should type at a prompt</li>
</ul>
<b>Prerequisites:</b> This guide assumes that you have the following things
installed:
<ul>
<li>
Bind</li>
</ul>
<ol>
<ol>
<li>
You must have a legal domain name</li>
<li>
You must be using IP Masquerade to "hide" your machine from the internet</li>
<li>
And that you can consistently connect to the internet</li>
</ol>
</ol>
<ul>
<li>
SendMail</li>
<li>
FetchMail</li>
<li>
IMAP (pop3d)</li>
<li>
ProcMail</li>
</ul>
<b>What should home mail do? </b>Before we go sprinting off into the guts
of this project, lets consider what we want this mail system to do:
<ul>
<li>
It should get our mail from the internet and serve it locally.</li>
</ul>
<ul>
<li>
It should send our mail to the internet.</li>
</ul>
<ul>
<li>
It should be a mail server for local mail (mail sent within our network).
In a trivial example, Mom should be able to email Dad and the mail never
leaves our home. More importantly, servers send messages to root, and we
want these messages collected up and sent to only one person. Example:
I have two servers and my own computer, I do not want to have to check
3 email accounts to see all the messages.</li>
</ul>
Home mail sounds like a simple concept, especially as many user email programs,
like netscape, seem to handle all the necessary functions all by themselves.
Unfortunately, there is a big difference between a user's mail "system"
and a network mail system. Your mail system will need at least five programs
to function properly:
<ul>
<li>
The program you use, as a user, to read and write your mail - xfmail, netscape,
outlook, etc. We will not be covering these programs in this article -
but they are the programs you know so well. When we are done, you will
point these programs to the mail server on your network, instead of your
ISP, to send and receive your mail.</li>
</ul>
<ul>
<li>
The program that gets our mail from our ISP, and we want it to get the
mail for all the family accounts. In this article we will be using fetchmail.</li>
</ul>
<ul>
<li>
The program that transports the mail message from one computer to another.
This program takes the mail from your mail reader, e.g. netscape, and either
sends it to the internet or keeps it on our mail server. In this article
we will be using the program sendmail. This will become our SMTP connection.</li>
</ul>
<ul>
<li>
Sendmail and fetchmail do not store the mail on the hard drive, rather,
they hand it off to another program that puts each user's mail where it
is suppose to go. In this article we will be using procmail.</li>
</ul>
<ul>
<li>
The program that servers our mail when we connect to it with our user email
program. In this article we will be using ipop3d. This will become our
pop3 server.</li>
</ul>
<b>Install the programs</b>. Before we get started, check to see that you
have all the necessary programs installed. Easiest way to check is
to issue the whereis command:
<blockquote><i>whereis sendmail [Enter]</i></blockquote>
For those of you using RedHat, you can type:
<blockquote><i>rpm -qa|grep sendmail [Enter]</i></blockquote>
to see if any sendmail package is installed. Other distributions have a
similar way of checking if a package is installed. Make sure you installed
the sendmail-cf package as well.
<p><b>procmail:</b> Whatever version came with your distribution is fine.
<br><b>ipop3d: </b>Whatever version came with your distribution is fine.
Note: most distributions put ipop3d in the imap package.
<br><b>fetchmail:</b> Fetchmail is a moving target and new versions come
out frequently. We would suggest using version 5.0 or higher, though whatever
came with your distribution is probably fine.
<br><b>sendmail</b>: Most distributions come with three sendmail packages:
sendmail, sendmail-cf, and sendmail-doc. Install all three. We will be
using sendmail version 8.9.3 in this article. If you are running anything
less than version 8.9.2 we very strongly recommend you upgrade, both because
of security reasons, and because most of the information presented here
will not be useable with older versions.
<br><b>m4: </b>Whatever version came with your distribution should be fine.
<p><b>Let's get started!</b> Do 10 sets of finger exercises, replace Zeppelin
with a Mozart CD, and click on the links below. Note: follow them IN ORDER,
as some programs rely on others!
<p><a href="dns_mail.html">Setting up dns for mail</a>
<br><a href="procmail.html">Setting up procmail</a>
<br><a href="sendmail.html">Setting up sendmail</a>
<br><a href="pop3.html">Setting up pop3</a>
<br><a href="fetchmail.html">Setting up fetchmail</a>
<br><a href="final_thoughts.html">Some Final Thoughs</a>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, JC Pollman and Bill Mote <BR>
Published in Issue 45 of <i>Linux Gazette</i>, September 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H4><font color="maroon">Mail for the Home Network</font></H4>
<H1><font color="maroon">DNS for Mail</font></H1>
<H4>By <a href="mailto:jpollman@bigfoot.com">JC Pollman</a>
and <a href="mailto:bill.mote@bigfoot.com">Bill Mote</a></H4></center>
</center>
<P> <HR> <P>
<p>In last month's article we set up dns as a name server for network.
Sendmail, and most other mail transport programs, use dns to decide where
to send the mail, but we need to modify it a bit. The name-to-ip
file has to have a MX line for each computer, which essentially says: for
this computer, use this other computer for storing mail.
<p>The file from last month looks like this. Note, the *** are not part
of the file:
<br>**************************************************************
<br><tt>@ IN SOA master.kulai.org. jpollman.kulai.org. (</tt>
<br><tt> 1;</tt>
<br><tt> 10800;</tt>
<br><tt> 3600;</tt>
<br><tt> 604800;</tt>
<br><tt> 86400 );</tt>
<p><tt> IN NS master.kulai.org.</tt>
<br><tt>master IN A 192.168.124.10</tt>
<br>
<p><tt>mail IN A 192.168.124.10</tt>
<br><tt>www IN A 192.168.124.10</tt>
<br><tt>news IN A 192.168.124.10</tt>
<p><tt>localhost IN A 127.0.0.1</tt>
<p><tt>fserver IN A 192.168.124.11</tt>
<br><tt>jc IN A 192.168.124.1</tt>
<br><tt>phillip IN A 192.168.124.20</tt>
<p>**************************************************************
<p>We change this to add in the MX lines. Note: the Bold items are explained
below and are not part of the format of the file. It now looks like this:
<p>**************************************************************
<br><tt>@ IN SOA master.kulai.org. jpollman.kulai.org. (</tt>
<br><tt> 2</tt>
<br><tt> 10800</tt>
<br><tt> 3600</tt>
<br><tt> 604800</tt>
<br><tt> 86400 )</tt>
<p><tt>
IN NS master</tt>
<br><tt> <b>
IN MX 10 master</b></tt>
<br><tt>master IN A 192.168.124.10</tt>
<br><b><tt>master IN MX 10 master</tt></b>
<p><tt>mail IN A 192.168.124.10</tt>
<br><tt>www IN A 192.168.124.10</tt>
<br><tt>news IN A 192.168.124.10</tt>
<p><tt>localhost IN A 127.0.0.1</tt>
<p><tt>fserver IN A 192.168.124.11</tt>
<br><b><tt>fserver IN MX 10 master</tt></b>
<p><tt>jc IN A
192.168.124.1</tt>
<br><b><tt>jc IN
MX 10 master</tt></b>
<p><tt>phillip IN A 192.168.124.20</tt>
<br><b><tt>phillip IN MX 10 master</tt></b>
<br>**************************************************************
<br>Now each computer's (master, fserver, jc, phillip) email server is
master.kulai.org (actually it is called a "mail exchanger", but since we
have only one computer server mail, it functions as a email server.) We
also have a line with no name that points to master.kulai.org as the email
server - this is for the domain: kulai.org. You noticed there is a "10"
in each line. The number, 10 in this case, is a relative value, and
is used when you have multiple mail exchangers - something we are not covering
here. Note, failure to put the number in will cause an error in named.
Now, restart named, and check /var/log/messages for any errors.
<p>You have to put a line in for each computer: kulai.org by itself will
not work.
<br>
<br>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, JC Pollman and Bill Mote <BR>
Published in Issue 45 of <i>Linux Gazette</i>, September 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H4><font color="maroon">Mail for the Home Network</font></H4>
<H1><font color="maroon">Procmail</font></H1>
<H4>By <a href="mailto:jpollman@bigfoot.com">JC Pollman</a>
and <a href="mailto:bill.mote@bigfoot.com">Bill Mote</a></H4></center>
</center>
<P> <HR> <P>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Author" content="JC Pollman">
<meta name="GENERATOR" content="Mozilla/4.61 [en] (X11; I; Linux 2.2.10 i686) [Netscape]">
<title>procmail</title>
</head>
<body>
<center><b><font size=+1>Procmail</font></b></center>
<p>For purposes of this article, all we want procmail to do is to put the
mail in the users' account in /var/spool/mail. As such, remove all
~/.procmailrc and ~/.forward files from each user's home directory. Procmail
deserves its own article, so we will not cover it here. For our purposes,
as long as procmail is installed on your server, things will work.
<p>Procmail is a very powerful program. After your home mail system is
setup completely, here is what procmail can do for you:
<ul>
<li>
Sets the appropriate variables</li>
</ul>
<ul>
<li>
Creates a backup cache of messages so that, if anything goes wrong, you
always have the last 100 messages you received.</li>
</ul>
<ul>
<li>
Filter out mailing list mail into a "Bulk Mail" folder.</li>
</ul>
<ul>
<li>
Filter the remaining mail for spam, either deleting the spam or putting
it into a separate folder, as you prefer, and tagging suspicious email/probable
spam and filing it separately from non-spam email.</li>
</ul>
<ul>
<li>
Deliver the filtered personal mail to your inbox, where you can read it
with Eudora or a POP program, or on shell with elm or pine.</li>
</ul>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, JC Pollman and Bill Mote <BR>
Published in Issue 45 of <i>Linux Gazette</i>, September 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H4><font color="maroon">Mail for the Home Network</font></H4>
<H1><font color="maroon">Sendmail</font></H1>
<H4>By <a href="mailto:jpollman@bigfoot.com">JC Pollman</a>
and <a href="mailto:bill.mote@bigfoot.com">Bill Mote</a></H4></center>
</center>
<P> <HR> <P>
<p>Sendmail has a bad reputation because of security issues in the past
and because its configuration file, sendmail.cf, is a horrible, ugly, wart
infested, sadistic file to understand and edit. As an example, would you
like to make changes to this bit:
<p><tt># localize and dispose of route-based addresses</tt>
<br><tt>R@ $+ : $+
$@ $>96 < @$1 > : $2
handle <route-addr></tt>
<p>Sendmail is a rules based program: the rules determine how sendmail
should react. O'Reilly has published "The Bat Book" on sendmail: it is
1021 pages! We are not going to discuss the rules here - we just want to
get it up and running. After you are happy with the basic setup,
sendmail is a very deep mine you can excavate for all the gold you want.
There are a number of files you have to edit to make sendmail work. Here
we take them one at a time.
<p>Prerequisite: For the initial setup of sendmail, make a user with the
same login name as your email account on your ISP, e.g. my ISP email account
is jpollman@deniz.com so I have an account on my mail server: jpollman@kulai.org.
After sendmail is working with this setup, you can go to the <a href="ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/mini/Sendmail-Address-Rewrite">Sendmail-Address_Rewrite
Howto</a> for using a different local name.
<p><b>/etc/mail/aliases</b>: Depending on your distribution, this file
might be /etc/aliases. It has two main purposes: to allow all the admin-users/daemons
to send reports to somebody, and to create group lists. If you are interested
in the group lists, read the sendmail man page. By default, the daemons
send their reports to root, but since you do NOT log in as root on a regular
basis, (really, I know you don't!) it is better to send all of root's mail
to you. Edit the file, and usually at the bottom are these two lines:
<p><tt># Person who should get root's mail</tt>
<br><tt>root: jpollman@kulai.org</tt>
<p>Usually there is a # in front of the second line (with root: at the
beginning). Remove the # and put your home email address to the right of
the ":". After you save the file, type:
<p> <i>newaliases [Enter]</i>
<p>Newaliases will convert the aliases file to a format that sendmail can
read efficiently, and save it as: aliases.db. Almost everyone who has ever
played with sendmail, sooner or later, has edited the aliases file, restarted
sendmail, and got mad because the new aliases where not functioning. Remember
to run newaliases!
<p><b>/etc/mail/relay-domains</b>: Again, this file maybe /etc/relay-domains.
This file tells sendmail that if it gets mail from the computers listed
in this file it should handle them. If this file is empty, you can not
use sendmail as your SMTP host for your network because it will not accept
any mail from other computers. It should list each computer that will be
using your server. There are probably more posts about problems with relaying
on the comp.mail.sendmail than any other topic. From the sendmail FAQ:
<blockquote>You need to add the fully-qualified host name and/or IP address
of each client to class R, the set of relay-allowed domains. For
8.9.X, it is typically etc/mail/relay-domains . Note: if your DNS is problematic,
you may need to list the IP address in square brackets (e.g., [1.2.3.4])
to get the ${client_name} macro to work properly; in general, however,
this should not be necessary.</blockquote>
My relay_domains file looks like this:
<blockquote><tt>jc.kulai.org</tt>
<br><tt>phillip.kulai.org</tt>
<br><tt>fserver.kulai.org</tt></blockquote>
<b>/etc/sendmail.cw:</b> this file helps sendmail know where it is and
any aliases for the server it runs on. Mine has a single line: kulai.org.
<p><b>/etc/sendmail.cf:</b> And now for the monster itself! Fortunately
for us, life has gotten much much much easier than it used to be. Here
is the gist of what we are going to do: modify a generic sendmail.mc file,
run it through m4, copy it to /etc/sendmail.cf, and restart sendmail. Actually,
it is pretty easy.
<p>Go to /usr/lib/sendmail-cf/cf. There should be a generic file with a
mc extension. If not, there maybe one named redhat.mc. And if that is missing,
you can copy <a href="generic.mc.txt">this file</a> to that
directory. Personally, we recommend you start with our file as we know
it works :^) Now copy that file to another name, like maybe the name of
your server: master.mc. You want to keep the original file unchanged so
if you really screw things up you can at least start over from scratch.
Edit your mc file. There are many rules already defined, and they
work well as the default. To make it work on your server, add these lines
to the bottom of the file. Note: my smtp server is: ix.deniz.com and my
ISP is deniz.com, yours is different, so do not simply copy these lines
without editing them!
<blockquote><tt>define(`SMART_HOST',`smtp:[ix.deniz.com]')</tt>
<br><tt>MASQUERADE_AS(`deniz.com')</tt>
<br><tt>FEATURE(`masquerade_envelope')</tt>
<br><tt>define(RELAY_MAILER, TCP)</tt>
<br><tt>FEATURE(`accept_unqualified_senders')</tt></blockquote>
<b>SMART_HOST:</b> this is your ISP's SMTP host. This is where sendmail
will send email that is not for the kulai.org domain, i.e. ix.deniz.com
for me.
<br><b>MASQUERADE_AS(`deniz.com'):</b> this will rewrite part of the "From:"
line on your emails so they will look like they come from deniz.com, which
is where my email address on the internet is, Note: change deniz.com to
your ISP - otherwise deniz.com might get excited about other people (spammers?)
trying to use their service. In other words, deniz.com will not allow mail
from jpollman@kulai.org but will allow mail from jpollman@deniz.com. This
is because of their relay-domains file.
<br><b>masquerade_envelope:</b> this will rewrite some of the email header
so it will look like the mail came from deniz.com
<br><b>RELAY_MAILER, TCP:</b> This is not strictly necessary, but it does
not hurt.
<br><b>accept_unqualified_senders:</b> this is so, if you have jpollman@deniz.com
in your From: line in your email program, sendmail will accept the mail.
Normally it is expecting a kulai.org as the domain.
<p>Also note that sendmail uses <b>both</b> tick marks: ` and '.
<p>Now, to take this relatively easy-to-read file and turn it into sendmail-speak,
type:
<blockquote><i>m4 master.mc > _master.cf [Enter]</i></blockquote>
where master.mc is the file you were editing and _master.cf is the name
we are telling m4 to give the file it creates. This happens very quickly:
on my pentium II 266 it takes about 2 seconds. The _master.cf is the complete
sendmail.cf - we probably could have typed: m4 master.mc > /etc/sendmail.cf,
but it is good to keep an extra copy around. Now, copy _master.cf to: /etc/sendmail.cf
- which will over write your previous copy of sendmail.cf: probably ought
to make a copy of the original just in case. Restart sendmail by doing
a: killall -HUP sendmail (in Redhat: /etc/rc.d/init.d/sendmail restart).
Sendmail has a number of options when you start it. <a href="start-sendmail.html">Click
here</a> to see those options. In review:
<blockquote><tt>cp /etc/sendmail.cf /etc/sendmail.original</tt>
<br><tt>m4 master.mc > _master.cf</tt>
<br><tt>cp _master.cf /etc/sendmail.cf</tt>
<br><tt>killall -HUP sendmail</tt></blockquote>
<p><br>If everything went ok, you are now done except for testing. Send
email to someone on your network. Send email to your ISP account email
address. If all this works, you can point the other computers on your network,
including those running any Microsoft operating systems, to your email
server for SMTP services.
<p>There are 3 fixes you may have to perform manually if things are not
working as you would like them:
<blockquote>1. If sendmail can not "find" your email server:
<br>Edit your /etc/sendmail.cf and look for this line:
<br><tt>#Dj$w.Foo.COM</tt>
<br>and change it to:
<br><tt>Djmaster.kulai.org</tt>
<br>Where master.kulai.org is the name of your email server. Note:
remove the # at the front of the line as # means: ignore - this is a comment
line. This is one of sendmail's rules and it tells sendmail what the name
of the email server is - in case dns, or other ways, do not tell sendmail
what it wants.
<p>2. Masquerading based on destination:
<br>I had the hardest time trying to get sendmail to masquerade only the
mail sent to the internet and not local mail, e.g. I wanted local mail
to show the sender as: bmote@kulai.org and not bmote@deniz.com, but obviously
I wanted mail that went out into the internet to show: bmote@deniz.com.
To solve this you have to manually edit the /etc/sendmail.cf. Find the
definitions of local rulesets 10 and 30 within sendmail.cf, (hint: search
for S10 and S30) and delete these 2 lines - or put a # in front of them:
<p><tt># Envelope sender rewriting</tt>
<br><tt>#</tt>
<br><tt>S10</tt>
<br><tt>R<@> $n
errors to mailer-daemon</tt>
<br><tt>R@ <@ $*> $n
temporarily bypass Sun bogosity</tt>
<br><tt>R$+ $: $>50 $1
add local domain if needed</tt>
<br><tt>R$* $: $>94 $1
do masquerading <b><-- delete this line</b></tt>
<br><tt>#</tt>
<br><tt># Header sender rewriting</tt>
<br><tt>#</tt>
<br><tt>S30</tt>
<br><tt>R<@> $n
errors to mailer-daemon</tt>
<br><tt>R@ <@ $*> $n
temporarily bypass Sun bogosity</tt>
<br><tt>R$+ $: $>50 $1
add local domain if needed</tt>
<br><tt>R$* $: $>93 $1
do masquerading <b><-- delete this line</b></tt>
<p><tt>There is no m4-based solution for this, so you have to modify sendmail.cf
directly. You need to restart sendmail afterwards, of course.</tt>
<p>Note: I have jpollman@kulai.org in my From: line in my email program,
so sendmail will masquerade only out-going mail. Many thanks to: Achim
Löbbert for the solution.
<p>3. Using unqualified names fails:
<br>If you type just the user's name in the To: part of the email and it
disappears into the internet, you may have to tell sendmail where to put
email with unqualified names. Add this to the bottom of your master.mc:
<p><tt>define(`LOCAL_RELAY',`mail.kulai.org')</tt>
<p><b>LOCAL_RELAY:</b> again: instead of mail.kulai.org, put your mail
server's name here. This line will make sendmail send unqualified names,
like just "bmote", to your mail server, i.e. sendmal will add the kulai.org
onto bmote for you. This way you can type just bmote in the To: field in
your email program instead of bmote.kulai.org. Of course you will have
to do the m4, copy, restart routine again to make it take effect.</blockquote>
<p><br>I have no idea how many times I have m4'ed my sendmail.mc files
and then did the copy - restart routine. I wrote a shell script to do this
for me. Now, all I have to do is edit the master.mc file and type: ./newsendmail
(the name of the script). Here it is:
<blockquote><tt>#!/bin/sh</tt>
<br><tt>m4 master.mc > _master.cf</tt>
<br><tt>cp _master.cf /etc/sendmail.cf</tt>
<br><tt>/etc/rc.d/init.d/sendmail restart</tt></blockquote>
Put this in your /usr/lib/sendmail-cf/cf directory and make it executable
<blockquote><i>chmod 700 newsendmail [Enter]</i></blockquote>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, JC Pollman and Bill Mote <BR>
Published in Issue 45 of <i>Linux Gazette</i>, September 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H4><font color="maroon">Mail for the Home Network</font></H4>
<H4><font color="maroon">Sendmail</font></H4>
<H1><font color="maroon">Starting Sendmail</font></H1>
<H4>By <a href="mailto:jpollman@bigfoot.com">JC Pollman</a>
and <a href="mailto:bill.mote@bigfoot.com">Bill Mote</a></H4></center>
</center>
<P> <HR> <P>
<p>Sendmail has a number of starting options. We will only give a brief
over view of the common commands. You should read the man page for further
information.
<p>-bd Run as a daemon.
Sendmail will fork and run in background listening on socket 25 for incoming
SMTP connections.
<p>-q[time] Processe saved messages in the
queue at given intervals. If time is omitted, process the queue
once. Time is given as a tagged number, with `s' being seconds,
`m' being minutes, `h' being hours, `d' being days,
and `w' being
<br>weeks. For example, `-q1h30m' or `-q90m'
would both set the timeout to one hour thirty minutes.
If time is specified, sendmail will run in background.
This option can be used safely with -bd
<p>So, if you set the time with the -q switch, do not be surprised if your
email is not delivered for a while. With Redhat, check the file: /etc/sysconfig/sendmail.
It will set the background/queue time so you only need to type:
<p><i>/etc/rc.d/init.d/sendmail start [Enter] (or restart if
it is already running)</i>
<p>Make certain you do not try to start sendmail if it is already running
as you will not accomplish what you want.
<br>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, JC Pollman and Bill Mote <BR>
Published in Issue 45 of <i>Linux Gazette</i>, September 1999</H5></center>
<!--===================================================================-->
<PRE>
divert(-1)
include(`../m4/cf.m4')
define(`confDEF_USER_ID',``8:12'')
OSTYPE(`linux')
undefine(`UUCP_RELAY')
undefine(`BITNET_RELAY')
define(`confAUTO_REBUILD')
define(`confTO_CONNECT', `1m')
define(`confTRY_NULL_MX_LIST',true)
define(`confDONT_PROBE_INTERFACES',true)
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')
FEATURE(`smrsh',`/usr/sbin/smrsh')
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')
FEATURE(redirect)
FEATURE(always_add_domain)
FEATURE(use_cw_file)
FEATURE(local_procmail)
MAILER(procmail)
MAILER(smtp)
dnl HACK(check_mail3,`hash -a@JUNK /etc/mail/deny')
dnl HACK(use_ip,`/etc/mail/ip_allow')
dnl HACK(use_names,`/etc/mail/name_allow')
dnl HACK(use_relayto,`/etc/mail/relay_allow')
dnl HACK(check_rcpt4)
dnl HACK(check_relay3)
FEATURE(`access_db')
FEATURE(`blacklist_recipients')
dnl FEATURE(`relay_based_on_MX')
</PRE>
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H4><font color="maroon">Mail for the Home Network</font></H4>
<H1><font color="maroon">Pop3</font></H1>
<H4>By <a href="mailto:jpollman@bigfoot.com">JC Pollman</a>
and <a href="mailto:bill.mote@bigfoot.com">Bill Mote</a></H4></center>
</center>
<P> <HR> <P>
<p>Setting up a pop3 server is a very easy operation. First setup
the pop3 server and then setup the accounts.
<p>Edit /etc/services and make sure these two lines are in there and remove
any # in front of them:
<p><tt>pop-3 110/tcp # PostOffice V.3</tt>
<br><tt>pop 110/tcp # PostOffice V.3</tt>
<p>Edit /etc/inetd.conf and remove the # in front of this line:
<p><tt>pop-3 stream tcp nowait
root /usr/sbin/tcpd ipop3d</tt>
<p>and then restart inetd by typing:
<blockquote><i>killall -HUP inetd [Enter]</i></blockquote>
Your pop3 server is now fully up and operational. Nice and simple.
<p>It will serve mail to any user that has an account on your server using
the user's login name and password. If you have users who will be
using the mail server only for mail, for security reasons, you should limit
their access to the other services. To make the account unusable
for log in, put a * in the password field of /etc/passwd and specifying
a bogus shell - like /bin/false - in the last field of the password file
entry. They will still be able to get and send mail, as well as use
the modem if masquerading is setup, but they will not be able to telnet,
ftp, or run remote programs on the mail server itself.
<p>Many of you might want to use imap instead of pop3. For the purposes
of this article, set up pop3 first, and once everything is working, you
can try imap. Although imap gives serious advantages to the user, particularly
if you move between operating systems and mail clients, we have strong
reservations about. Almost every time someone has attempted to crack into
my server, imap was tested. There were some security concerns about earlier
versions of imap which are now fixed, so we would very strongly urge you
to run only the latest version if you intend to implement it on your server.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, JC Pollman and Bill Mote <BR>
Published in Issue 45 of <i>Linux Gazette</i>, September 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H4><font color="maroon">Mail for the Home Network</font></H4>
<H1><font color="maroon">Fetcahmail</font></H1>
<H4>By <a href="mailto:jpollman@bigfoot.com">JC Pollman</a>
and <a href="mailto:bill.mote@bigfoot.com">Bill Mote</a></H4></center>
</center>
<P> <HR> <P>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Author" content="JC Pollman">
<meta name="GENERATOR" content="Mozilla/4.61 [en] (X11; I; Linux 2.2.11 i686) [Netscape]">
<title>Fetchmail Setup</title>
</head>
<body>
<center><b><font size=+1>Fetchmail</font></b></center>
<p>Fetchmail will get mail from your email on the net (your ISP account
and wherever else you have an email account) and pass the mail off to procmail
running on your mail server to put it in your mail account on your server.
It can handle a wide variety of mail servers including POP3 and IMAP, but
it can not handle an Exchange Server.
<p>Although fetchmail can be configured to handle quite a variety of chores,
we will keep it simple here. For each user that has an email account on
the internet create a file: ~/.fetchmailrc For user jpollman
on our server, the file /home/jpollman/.fetchmailrc looks like this:
<p><tt>poll www.deniz.com with proto POP3</tt>
<br><tt> user "jpollman" there with
password "mypassword" is jpollman here</tt>
<p>Explaining each part:
<br> <b>poll www.deniz.com</b>: contact www.deniz.com
which is my ISP's pop3 server.
<br> <b>with proto POP3:</b> use the pop3 protocol to
get the mail.
<br> <b>user "jpollman" there:</b> my login name for
email on my ISP.
<br> <b>with password "mypassword": </b>this is my password
to my ISP.
<br> <b>is jpollman here:</b> jpollman is the user on
our home mail server.
<p>Put a .fetchmailrc file in the home directory of each user that needs
to get mail from the internet. Note: each .fetchmail will be a little
different because everyone has a different email address on the internet.
Also, fetchmail is very particular about permissions and ownership - which
is a good thing as email passwords need to be kept private. To make
sure .fetchmailrc is correct, using the example above for jpollman:
<blockquote><i>chown jpollman /home/jpollman/.fetchmailrc [Enter]</i>
<br><i>chmod 700 /home/jpollman/.fetchmailrc [Enter]</i></blockquote>
If a user has more than one account on the internet, just add additional
lines starting with: poll.
<p>We could have set fetchmail to run as a daemon and poll the ISP every
so often, but fetchmail will cause diald to call out if we are not connected.
Instead we have a simple script, I call it: getmail, that is called both
by <a href="#cron">cron</a> and by <a href="#ipup">ip-up.local</a> - see
below for examples. Here it is:
<p><tt>#!/bin/sh</tt>
<p><tt>if [ -f /var/lock/LCK..ttyS3 ]; then</tt>
<br><tt> su jpollman -c fetchmail</tt>
<br><tt> su bmote -c fetchmail</tt>
<br><tt>fi</tt>
<p>When it runs, it first checks to see if we are connected (diald puts
a file called LCK..ttyS3 in my /var/lock directory when it is connected,
and removes it when it disconnects.) Note: you may have set diald
up differently than we did, or may be using pppd daemon, or using a different
com port, so the lock file may have a different name. This script exits
if the lock file is not there. If we are connected, the script will
use su to become jpollman and executes the fetchmail program. The -c means;
run the following command. After fetchmail is has gotten jpollman's mail,
the script becomes bmote via su and runs fetchmail to get his mail. Note:
jpollman and bmote are user names on our server - not the names for their
ISP email accounts.
<p><a NAME="cron"></a><b>Cron:</b> here is a really quick, down-n-dirty,
tutorial on cron. Crond is the daemon that is started when your machine
boots, and so, is always running in the background. It reads the crontab
files every minute to see if anything needs to run. You need to create
a crontab for user "root". To do this, as root, type:
<blockquote><i>crontab crontab [Enter]</i></blockquote>
Root now has his own crontab file - which is identical to the system's
crontab file. To edit root's crontab, type
<blockquote><i>crontab -e [Enter]</i></blockquote>
Leave all the header line alone and delete the program lines. When you
are done, it should look something like this:
<blockquote><tt>SHELL=/bin/bash</tt>
<br><tt>PATH=/sbin:/bin:/usr/sbin:/usr/bin</tt>
<br><tt>HOME=/</tt>
<br><tt>MAILTO="root"</tt></blockquote>
To make cron run a program, add a line with 6 fields: the first five are
the time fields and the six field is the program. As an example:
<blockquote><tt>0 1 * * * getmail</tt></blockquote>
The time fields are broken down this way:
<p><tt> The time and date fields are:</tt>
<p><tt>
field allowed values</tt>
<br><tt>
----- --------------</tt>
<br><tt>
minute 0-59</tt>
<br><tt>
hour 0-23</tt>
<br><tt>
day of month 0-31</tt>
<br><tt>
month 0-12 (or names,
see below)</tt>
<br><tt>
day of week 0-7 (0 or 7 is Sun, or use names)</tt>
<p><tt> A field may
be an asterisk (*), which always stands for</tt>
<br><tt> ``first-last''.</tt>
<p><tt> Ranges of numbers are allowed.
Ranges are two numbers</tt>
<br><tt> separated with
a hyphen. The specified range is inclu-</tt>
<br><tt> sive. For example, 8-11
for an ``hours'' entry specifies</tt>
<br><tt> execution at hours 8, 9, 10
and 11.</tt>
<p>So, in the above example (<tt>0 1 * * * getmail</tt>) getmail will run
at 1 o'clock in the morning everyday. I would prefer to have it run every
5 minutes, so my crontab entry looks like this:
<blockquote><tt>0-59/12 * * * * /usr/local/bin/getmail</tt></blockquote>
To find out more about the crontab file, type:
<blockquote><i>man 5 crontab [Enter]</i></blockquote>
<a NAME="ipup"></a><b>ip-up.local:</b> to have the script run every time
you connect, just add it to your /etc/ppp/ip-up.local (or ip-up file if
that is all you have). To add it, just type it in as a single line with
full path. Mine looks like this:
<blockquote><tt>/usr/local/bin/getmail</tt></blockquote>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, JC Pollman and Bill Mote <BR>
Published in Issue 45 of <i>Linux Gazette</i>, September 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H4><font color="maroon">Mail for the Home Network</font></H4>
<H1><font color="maroon">DNS for Mail</font></H1>
<H4>By <a href="mailto:jpollman@bigfoot.com">JC Pollman</a>
and <a href="mailto:bill.mote@bigfoot.com">Bill Mote</a></H4></center>
</center>
<P> <HR> <P>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Author" content="JC Pollman">
<meta name="GENERATOR" content="Mozilla/4.61 [en] (X11; I; Linux 2.2.11 i686) [Netscape]">
</head>
<body>
<center><b><font size=+1>Some Final Thoughts</font></b></center>
<p>Where does sendmail put the mail when it queues it? The mail queue directory
is /var/spool/mqueue. All mail messages become two files, one named dfXXXnnnnn
, the other qfXXXnnnnn , where XXX is a three-letter sequence, nnnnn a
five-digit sequence. They are used to give every message a unique identifier.
The "qf'", or queue control file, contains the e-mail message header and
various processing information, and the "df'", or data file, contains the
body of the e-mail message. There are other files, but they are of interest
only to sendmail.
<p>To see what sendmail is doing, check the file: /var/log/maillog. It
is pretty hard to read, but is your only real chance to see what the error
might be.
<p>Some of you may log into your local computer with a different name than
what you use for your ISP. Fetchmail will obviously get your mail and put
it where it belongs, but sendmail needs some special help. Check out the
<a href="ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/mini/Sendmail-Address-Rewrite">Sendmail-Address_Rewrite
Howto</a>. If you have been able to followed this article, this Howto is
pretty simple.
<p>Do not be put off if things do not work the first time! I have been
using sendmail for 4 years with varying degrees of success. It is a big
beast that has evolved greatly over time. Since the vast majority of email
on the internet travels via sendmail somewhere along the way, it is worth
the time to get it working on your computer.
<p><b>Final thoughts</b>: We have given you a cookie-cutter recipe for
setting up a simple home mail system. Since success usually creates
greater interest, here are some places to learn more:
<p><a href="http://www.sendmail.org/">Sendmail Homepage</a>
<br><a href="http://www.tuxedo.org/~esr/fetchmail/index.html">Fetchmail
Homepage</a>
<br><a href="http://www.hrweb.org/spambouncer/proctut.shtml">Procmail Info</a>
<p>Two well know alternatives to sendmail:
<p><a href="http://www.exim.org/">Exim</a>
<br><a href="http://www.qmail.org/">Qmail</a>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, JC Pollman and Bill Mote <BR>
Published in Issue 45 of <i>Linux Gazette</i>, September 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<font color="maroon">
<H1>Experiments with SMTP</H1>
<h4>(or: Mail for a Home Network, continued..)</h4>
</font>
<H4>By <a href="mailto:JW.Stumpel@inter.NL.net">Jan Stumpel</a></H4>
</center>
<P> <HR> <P>
<h4>
1. Introduction</h4>
I got a lot of reactions to '<a href="../issue43/stumpel.html">Setting
Up Mail for a Home Network Using Exim'</a> in LG 43. Most of them said
two things:
<ul>
<li>
your article was most welcome. I have been struggling with the same problem
myself.</li>
<li>
but I did what you said, and it does not work!</li>
</ul>
So I went 'back to the drawing board' and had a good look at what happens
when e-mail is sent. As a result, this article explains what you must do
to make the setup in the LG 43 article <i>really</i> work (I think) ..
and also why.
<h4>
2. SMTP</h4>
SMTP, as you probably know, stands for 'Simple Mail Transfer Protocol'.
It is the method by means of which mail is exchanged between computers
on the Internet. Basic <i>communication</i> between computers (exchange
of single packets and of streams of information) is provided for by TCP/IP.
SMTP is a protocol 'on top of' TCP/IP for exchanging <i>messages</i> between
computers. Let's do a few experiments to see how SMTP works.
<p>A basic tool for making TCP/IP connections is telnet. If you type
<p><tt>telnet <i>host port</i></tt>
<p>your computer makes a connection to a computer named <i><tt>host</tt></i>
on port <i><tt>port</tt></i>. It is like making a telephone call to the
office of a company called 'host' and asking to speak to Mr. Port. Only
if Mr. Port is in and willing to talk to you, will the call succeed.
Similarly, a program ('daemon') must be active on the other computer, 'listening'
for connections on the specified port, otherwise you will get the message
'connection refused'.
<p><i><tt>port</tt></i> is a (16-bit) number. Certain port numbers have
been pre-assigned to certain services. Electronic mail (SMTP) uses port
25, and the daemon listening to port 25 is the MTA (the Mail Transport
Agent: sendmail, exim, qmail, etc.). If your Linux box is called <tt>heaven</tt>,
you call its SMTP service by typing
<p><tt>telnet heaven 25</tt>
<p>You can do this from another computer through a network (LAN or Internet),
but you don't need a network: you can test it also by running telnet from
the same computer that the MTA runs on. You can even type
<p><tt>telnet heaven smtp</tt>
<p>because telnet finds out what the port number of SMTP is by looking
it up in <tt>/etc/services</tt>. The result will be something like:
<p><tt>Trying 192.168.1.1...</tt>
<br><tt>Connected to heaven.home.</tt>
<br><tt>Escape character is '^]'.</tt>
<br><tt>220 heaven.home ESMTP Exim 3.03 #1 Sun, 8 Aug 1999 12:47:24 +0200</tt>
<p>This shows that I am running exim 3.03 (I recently upgraded from 2.05
for a good reason, see section 5 below). If I telnet in the same way to
the mail server of my ISP, I see that they run Sendmail 8.8.8/1.19.
<p>After the line beginning with 220 you see no prompt or anything; the
MTA awaits your instructions. What to do next? Try typing <tt>help</tt>.
The reaction is:
<p><tt>help</tt>
<br><tt>214-Commands supported:</tt>
<br><tt>214- HELO EHLO MAIL RCPT DATA</tt>
<br><tt>214 NOOP QUIT RSET HELP</tt>
<p>These are the commands of the SMTP command language, or 'protocol',
that are supported by your site. Not a lot of commands! SMTP is really
a 'simple' protocol. The commands are described in the Internet standard
<a href="http://sunsite.auc.dk/RFC/rfc/rfc821.html">RFC821</a>.
Some 'extended' commands were added later, in other RFC's, for instance
<a href="http://sunsite.auc.dk/RFC/rfc/rfc1869.html">RFC1869</a>.
Systems which recognize the extended commands are said to support 'Extended
SMTP', or ESMTP. Such systems announce this in their 'welcoming line',
as Exim 3.03 did above. The differences between SMTP and ESMTP are not
great.
<p>To break the SMTP connection, send the QUIT command.
<h4>
3. Exchanging greetings: the HELO/EHLO command</h4>
After the welcoming line (beginning with 220) from the remote system, you
are supposed to send commands. The first command should be HELO, or, if
you are dealing with an ESMTP system, EHLO, the more modern version. The
command should have your domain name as argument:
<p><tt>EHLO <i>yourdomainname</i></tt>
<p>If you have a home system without an official domain name, what
name do you use? In fact anything is OK, including your own, self-chosen
domain name, such as heaven.home. Let's try it with our ISP's SMTP server
by typing <tt>telnet smtp.isp.com 25</tt> or whatever. After the welcome
message type
<p><tt>EHLO heaven.home</tt>
<p>We get a more or less elaborate 'greeting' message, like:
<p><tt>250-smtp.isp.com Hello customer123.dialin.isp.com [xxx.yyy.zzz.123],
pleased to meet you</tt>
<br><tt>250-EXPN</tt>
<br><tt>250-VERB</tt>
<br><tt>250-8BITMIME</tt>
<br><tt>250-SIZE</tt>
<p>The greeting begins with '250'; this is the SMTP 'OK' code. In this
case we are also greeted with our temporary domain name (<tt>customer123.dialin.isp.com</tt>)
and temporary IP address (<tt>xxx.yyy.zzz.123</tt>) that were dynamically
assigned to us when we opened the ppp connection. This information is available
to the other system from the underlying Internet transport layer (TCP/IP).
In the case of an EHLO command, the other system also sends a few '250'
lines announcing which <i>extra</i> SMTP or ESMTP commands it understands,
apart from the minimum set required by RFC821.
<p>Mail servers generally don't look at the <i>argument</i> of the EHLO
or HELO command at all ('heaven.home'). That means that in practice the
EHLO/HELO transaction always succeeds. If the other system doesn't want
to do business with you, it has already refused the <tt>telnet <i>host</i>
smtp</tt> connection.
<h4>
4. Sending the mail</h4>
By just a <tt>telnet <i>host</i> smtp</tt> connection to a mail server
you can send electronic mail 'by hand', without even using an MTA or a
mail user program like pine. Let's try this (for safety's sake) within
our own network at first; in this case of course, we must have a mail server
(MTA) running. User <tt>joe</tt> sends a message to user <tt>emi</tt>.
This involves three steps. First the MAIL FROM<tt>:</tt> command (SMTP
commands are not case sensitive, so you could also type <tt>mail from:</tt>).
<p><tt>MAIL FROM: joe@home</tt>
<br><tt>250 <joe@home> is syntactically correct</tt>
<p>We get a '250' line as answer, so this is OK. Now the second step: the
RCPT TO: command, specifying who will get the message.
<p><tt>RCPT TO: emi@home</tt>
<br><tt>250 <emi@home> is syntactically correct</tt>
<p>So this is also 250, OK. The third step: we enter the message itself,
using the DATA command:
<p><tt>DATA</tt>
<br><tt>354 Enter message, ending with "." on a line by itself</tt>
<p>The '354' reply invites us to type the message data. <i>This is not
only the text (or 'body') of the message!</i> The 'message data'
also include the message headers, such as Subject:, To:, Cc:, and From:.
The structure of a message is specified in another Internet standard,
<a href="http://sunsite.auc.dk/RFC/rfc/rfc822.html">RFC822</a>.
Strictly speaking that is no longer SMTP's business. SMTP is only concerned
with the <b>envelope </b>of the message, that is, the information in the
MAIL FROM: and RCPT TO: commands. So, the To: header <i>inside</i> the
message and the RCPT TO: address <i>on the envelope</i> of the message
are in principle two different things. You can actually <i>make</i> them
different (experiment only with <i>local</i> messages please!). So, for
instance, after the '354' reply we can type a message with 'fake headers':
<p><tt>To: My Daughter</tt>
<br><tt>From: Your Dad</tt>
<br><tt> </tt><--(a
blank line separates the headers from the body of the message)
<br><tt>Happy birthday!</tt>
<br><tt>. </tt><--(a
period at the beginning of a line ends the message)
<p>This will be promptly delivered to user <tt>emi</tt>. If she opens the
message using pine, she will see the <tt>To: My Daughter</tt> and <tt>From:
Your Dad</tt> addresses.
<p>Problems arise when she tries to <i>reply</i> to the message. Replies
by users do not go to the 'envelope from' address (SMTP's MAIL FROM:),
but to the From: address which is part of the message data. For starters,
pine will think that 'Your' and 'Dad' are two different addresses, and
complain that they should be separated by a comma, not a space! And of
course there are no mail accounts 'Your' or 'Dad' registered on this machine,
or anywhere else. Manipulating or omitting the various addresses is a fertile
field for pranksters and spammers.
<h4>
5. Mail setup for your home network</h4>
Now we get to what was wrong with my article in LG 43. Apart from the 'pine
bug' that I wrote a <a href="../issue44/stumpel.html">note</a>
about in LG 44, the two major problems encountered by readers were:
<p><i>The MTA may not be active at all</i>
<br>I said that the mail client (e.g. pine) on the Linux side can be used
'out of the box'. This is true, but the problem is that with many users
the mail client does <i>not</i> come out of the box, but is already installed
and being used. Often this means that in its configuration there will be
a setting for 'SMTP server', set to the address of the ISP's mail server.
In such a case the mail client itself will do the SMTP transaction
(most of them, apart from <tt>mail</tt>, can do this), and your MTA <i>will
not be used at all</i>. Therefore the transport filter will not be used,
and the From: address inside the message will not be changed. Remedy: set
'SMTP server' in the mail client to the name of your Linux box, so the
mail client will hand over messages to the MTA. If asked for 'your e-mail
address', use your <i>local</i> address; exim's transport filter will change
it for outgoing mail.
<p><i>The 'envelope from' is not changed</i>
<br>This was the really big problem. As I said, the exchange of e-mail
with an SMTP host involves three steps:
<ol>
<li>
MAIL FROM:</li>
<li>
RCPT TO:</li>
<li>
DATA</li>
</ol>
If everything goes well, the remote system will answer 'OK' (i.e., '250')
to the first two steps. But sometimes it won't! Many (probably most) mail
servers, including the one at my own ISP, do not check the MAIL FROM: address.
They always say 'OK' . But some <i>verify</i> that the domain part of the
MAIL FROM: address really exists. If not, the mail is refused. If your
own ISP checks the MAIL FROM:, the mail setup of my previous article will
simply
<i>not work</i> for outgoing mail. If your ISP doesn't check, but
you send mail to a <i>destination</i> which does, your messages will not
arrive and you will get <i>no warning of this.</i>
<p>This means that we definitely should fix not only the From: address
<i>inside</i>
the message (using the program <tt>outfilt</tt> described in my previous
article) but also the MAIL FROM: (or 'envelope from'). There are two ways
in which you can do this.
<p><b>If you have exim 2.05 or earlier</b> the only way is to add a line
in the last section, <tt>REWRITE CONFIGURATION</tt>, of exim.conf:
<p><tt>*@home joe.bloggs@isp.com F</tt>
<p>This changes all local MAIL FROM: addresses to the address at the ISP.
Unfortunately, with this method not only the outgoing mail is changed,
but the local mail also. You can live with this, because users never see
the 'envelope from' when they open a mail message. Replies will go to the
correct (message From:) address. However, if someone makes a mistake typing
a local address, so that mail is addressed to a non-existent local user,
an error message will be sent to the address at the ISP instead of locally.
<p><b>If you have exim 2.10 or later</b> you can instead add an option
to the <tt>remote_smtp</tt> subsection of the <tt>TRANSPORTS CONFIGURATION</tt>
section of exim.conf. These newer exims allow the 'envelope from' to be
changed <i>for outgoing mail only</i>. After the line <tt>driver = smtp</tt>
you insert a line
<p><tt> return_path = "joe.bloggs@isp.com"</tt>
<p>As this is a better method, I advise you to upgrade if you have exim
2.05. In the case of Debian, the latest version of exim (at the time of
writing, version 3.03) can be found at <a href="http://www.debian.org">www.debian.org</a>
among the 'unstable' packages (it is quite stable, don't worry). Upgrading
is pretty painless.
<p>Both methods described above produce a <i>fixed</i> 'envelope from'
address, just as the program <tt>outfilt</tt> in my previous article produced
a <i>fixed</i> 'message From:' address. I am describing a situation with
only one e-mail account. If your home users are known to the outside world
by <i>different</i> e-mail addresses, the setup becomes a little bit more
complicated, but still possible. It would take a little bit too long to
describe the various possibilities here; you might look at 'string expansion'
and possibly 'file lookup' in the exim doc's.
<center>
<p>-o-o-o-o-o-</center>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Jan Stumpel <BR>
Published in Issue 45 of <i>Linux Gazette</i>, September 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Linux is Better Here</font></H1>
<H4>By <a href="mailto:tgt@usa.net">Trenton G. Twining</a></H4>
</center>
<P> <HR> <P>
In the past months Linux has gained momentum in corporate acceptance.
Recent announcements by IBM, Netscape, Oracle, Sun and others have
triggered a new degree of recognition for Linux. However, many major
corporations may have been using Linux without fanfare, as we are in
the offices of a Regional Bell Operating Company (RBOC).
<p>
Our project involves producing application program interfaces used by
UNIX applications company wide. The developers were all initially
supplied with PC_compatible workstations with MS Windows 95 or NT. On
each machine was installed one of two commercial communications
packages. Developers could request an X server (optional with one of
the communication packages).
<p>
Before I became involved in the project, at least two developers had
installed Linux in lieu of NT. As a Linux advocate, I was
delighted at the acceptance of Linux in a corporate setting. I had
met with only rare success in convincing other shops to use Linux
on the desktop. At this RBOC, I found a willingness to allow innovation
on the developers desktop. I wasted little time installing Linux on my
desktop machine.
<p>
It was more convenient for me to retain NT in order to support users
of some Windows-based applications. <b>Hint:</b> Be sure you know
what you are doing before attempting to make NT part of a multiple
operating system scheme. It is not particularly difficult to
accomplish, but it is not at all intuitive.
<p>
One of the greatest benefits we enjoy as Linux users is X11. The
various X servers in use on Linux were uniformly more stable, more
complete and offered better performance than the NT-based X11
servers. While I found one of the Windows-based X servers acceptable
on NT, it did not perform as well as either of those I tried on Linux
(on the same machine).
<p>
The built-in support for NFS was another big plus. When we received
distribution media for software, I could mount the CD on my drive and
all the UNIX/Linux-based computers in the project could install
without a need to keep track of who had the CD last. This was
particularly helpful for installing software on our HP server. This
machine is in another building and I do not have ready access to it. Thus,
mounting a CD as an NFS volume was an important capability.
<p>
The Linux users installed Netscape Communicator, giving us a
familiar and easily configured communications suite. (We had already
been licensed and using it on MS Windows.)
<p>
The biggest benefit for me, as a UNIX system administrator and Perl
programmer, is the ability to write and test programs locally. Some of
my programs have the potential for bad side-effects. If tested on our
HP server, my team members could be (and I'm afraid have been) adversely
affected. With Linux on my desktop, I have a dual opportunity. First,
I can write and test programs on my desktop machine. If I
accidentally make the root directory permissions ``drwxr--r--'' (which I
once did when invoking a poorly written Makefile), only I am unable to
use my machine, rather than 20 users being locked out. Second, I
am motivated to make my programs more adaptive by making sure they
will run in the BSD-like Linux environment as well as the SVR4 worlds
of HP-UX and Solaris.
<p>
Our team presently has Linux installed on four PCs with two others as
likely prospects. We also have it installed on three Sun Ultra 5
desktop machines. Linux performance (particularly X11) is
breathtaking on the Ultra 5. Several people on our project and
neighboring projects have installed Linux on their home PCs after
seeing it the workplace. For these people, learning UNIX has
accelerated markedly.
<p>
The accelerated UNIX acclimatization is a plus for the company. Any
company involved in migration from legacy systems to a UNIX platform
will have a significant cost in retraining. We saw people learning UNIX
at an accelerated pace after becoming Linux enthusiasts. This certainly
appeared to be a productivity boost and training cost reduction.
<p>
If your company could benefit from having UNIX workstations on
employee's desks, look at the low cost of entry into Linux. All it takes
is a PC (you've probably already got that) and a Linux distribution (not
very expensive). Make life better where you are--get Linux.
<p>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Trenton G. Twining <BR>
Published in Issue 45 of <i>Linux Gazette</i>, September 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Sharing a Linux server under X in the classroom</font></H1>
<H4>By <a href="mailto:award@mypic.ad">Alan Ward</a></H4>
</center>
<P> <HR> <P>
<H3>The current situation:</H3>
<P> I manage a high school computer lab of 14 Pentiums under Windows 98. These
are used for basic instruction in Windows, Works, Office and the basics of
programming.
<P> This term, I would like to introduce the older students (17 - 18 year-olds)
to Unix, specifically Linux. Besides normal user tasks, I would like them to do
a bit of programming, especially with X: drawing sine curves and the like. I
would also like them to use Unix math programs such as gnuplot and octave.
<P> However, I need to keep the Pentiums as they are, under Windows. This is
for the younger students (16 - 17 year-olds) and staff, who are not--and will
not be in the foreseeable future--Linux literate.<P>
<CENTER>
<img src="ward/art0.jpg"><BR>
<I>Lasciate ogne speranze, voi qu'intrate ...</I></CENTER>
<P> Everything is connected together via Ethernet.
<P> The extra hardware I have been able to squirrel out of various people
consisted of a 486 DX 2 (our server !!), several rather elderly 386 and 486s,
and the future prospect of a Pentium of indeterminate speed. None of these
has more than 16 Mbytes of RAM.
<P> <I>Personal comment: some people in the administration are not yet
confortable with the idea of a free system - it goes against years of
"tradition". That may be the worst Linux has to face!</I>
<HR>
<H3>My approach</H3>
<P> I undertook this from two different directions:
<UL>
<LI>Configure those 386 and 486 boxes still worth it as X terminals
under Linux.
<LI>Get an X server for the Pentium boxes under Windows. I couldn't
make these dual boot because of a lack of hard drive space and, quite
frankly, because repartitioning would have been too much work!
</UL>
<H3>Configuring the 386 and 486s as X terminals.</H3>
<P> Although all these boxes are different, our "best" configuration
is more or less as follows:
<UL>
<LI>486 DX 33MHz processor
<LI>4 Mbytes RAM
<LI>40 Mbytes disk
<LI>1 Mbyte VGA
<LI>14" color or B/W (!!! Bank surplus) screen
</UL>
<P> In all, a typical 1985 MS-DOS configuration. This meant we had to get
things rather tight for it to work for us.
<CENTER>
<img src="ward/art1.jpg"><BR>
<I>Building a working 386 out of spare parts</I></CENTER>
<P>
<P> To save space, I installed an old 1.2.13 kernel. This has the double
advantage of taking up less hard disk space and memory, and also booting
rathing quickly (no modules).
<P> It came from a Slackware distribution, of which I installed only the A and
X series. I rather like slack for this kind of project, as you have much
control over exactly what is installed. It is also the only distribution that
can be installed by diskette if you can't get nfs to work!
<P> The hard disk partitioning was: 34 M as Linux native, 6 M as Linux swap. I
formatted hda1 with 1024 byte inodes, which may have been a mistake. df reports
HD use as 28K inodes out of 31K, and <B>98%</B> of our 34 Mbytes <I>(ouch!
gasp!).</I>
<P> As for memory, normal use amounts to about 7 Mbytes (3.5 M hard + 3.5 M
swap).
<P> A normal student session on one of these clients consists of the following, most of which is scripted:
<TABLE>
<TR><TD>startx<TD><I>in .login: NOTE tcsh shell, not bash</I></TR>
<TR><TD>xterm<TD><I>in xinit</I></TR>
<TR><TD>xhost "server IP"<TD><I>allow server to use local screen</I></TR>
<TR><TD>rsh "server IP"<TD><I>login on server</I></TR>
<TR><TD>xterm -display "client IP":0.0<TD><I>get a server terminal on our client window, screen 0.0</I></TR>
<TR><TD>exit<TD><I>from server remote shell</I></TR>
<TR><TD>...<TD><I>continue on client<I></TR>
</TABLE><P>
<H3>X server on the Pentiums under Windows</H3>
<P> The X server I used was MIXServer 5.6 from
<A HREF="http://www.microimages.com"> Microimages</A>. This is a rather
standard X server for Windows 9X, with a twm type window manager built-in. I
got it on the S.U.S.E. 5.1 distribution CD.
<P> It works quite nicely in 640x480x8 to 800x600x24 resolutions. (I haven't
tested it any further.) Most line art and characters come out well, but there
can be some problems with bitmaps. My final tests were kmahjongg and
netscape.
<CENTER>
<img src="ward/art2.jpg"><BR>
<I>The X screen as seen under Windows</I></CENTER>
<P>
<P> A typical student session is as follows:
<TABLE>
<TR><TD>start MIX</TR>
<TR><TD>telnet the server<TD><I>with standard c:\windows\telnet.exe</I></TR>
<TR><TD>xterm -display "client IP":0.0<TD><I>don't forget the 0.0 screen!</I></TR>
<TR><TD>logout from telnet</TR>
<TR><TD>... <TD><I>continue on client</I></TR>
</TABLE>
As you see, no xhost is necessary, since MIX accepts all X requests without
blinking.
<HR>
<P> I hope to publish some results obtained with the kids during the 1999-2000
term on our
<A HREF="http://www.andorra.ad/escola_andorrana/batxillerat">web site</A>
(Sorry, it's still only in Catalan. But many pretty pictures, for what that's
worth).
<BLOCKQUOTE><EM>
[Especially
<A HREF=http://www.andorra.ad/escola_andorrana/batxillerat/catala/index.htm>
these pictures</A>. --Ed.]
</EM></BLOCKQUOTE>
<P> Meanwhile, I would welcome both comments and constructive criticism :-)
<P> The author:
<A HREF="mailto:award@mypic.ad">Alan Ward</A><BR>
CS Department<BR>
Escola Andorrana (Batxillerat)<BR>
Principality of Andorra<BR>
Phone 327.185
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Alan Ward <BR>
Published in Issue 45 of <i>Linux Gazette</i>, September 1999</H5></center>
<!--===================================================================-->
<center><H2>
<A HREF="http://www.linuxgazette.com/">
<IMG SRC="../gx/newlogo.jpg" width=600 height=256 border=0
ALT="Linux Gazette... making Linux just a little more fun!"></a>
</H2>
<H4>Published by <A HREF="http://www.linuxjournal.com/"><I>Linux Journal</I></A></H4>
</center>
<P> <hr> <P>
<H1><font color="maroon">The Back Page</font></H1>
<ul>
<li><a HREF="#authors">About This Month's Authors</a>
<li><a HREF="#notlinux">Not Linux</a>
</ul>
<a name="authors"></a>
<P> <HR> <P>
<!--======================================================================-->
<center><H3><font color="maroon">About This Month's Authors</font></H3></center>
<P> <HR> <P>
<!--======================================================================-->
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Bill Bennet</H4>
Bill,
the ComputerHelperGuy, lives in Selkirk, Manitoba, Canada; the "Catfish
Capitol of North America" if not the world. He is on the Internet at
www.chguy.net. He tells us "I have been a PC user since 1983 when I got my start as a
Radio Shack manager. After five years in the trenches, I went into
business for myself. Now happily divorced from reality, I live next to my
Linux box and sell and support GPL distributions of all major Linux
flavours. I was a beta tester for the PC version of Playmaker Football and
I play `pentium-required' games on the i486. I want to help Linux become a
great success in the gaming world, since that will be how Linux will take
over the desktop from DOS." It is hard to believe that his five years of
university was only good for fostering creative writing skills.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Jim Dennis</H4>
Jim is the proprietor of <A href="http://www.starshine.org">
Starshine Technical Services</A> and is now working for <A
HREF="http://www.linuxcare.com/">LinuxCare</A>.
His professional experience includes work in the technical
support, quality assurance, and information services (MIS)
departments of software companies like
Quarterdeck, Symantec/Peter Norton Group and
McAfee Associates -- as well as
positions (field service rep) with smaller VAR's.
He's been using Linux since version 0.99p10 and is an active
participant on an ever-changing list of mailing lists and
newsgroups. He's just started collaborating on the 2nd Edition
for a book on Unix systems administration.
Jim is an avid science fiction fan -- and was
married at the World Science Fiction Convention in Anaheim.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Bill Mote</H4>
Bill is the Technical Support Services manager for a multi-billion dollar
publishing company and is responsible for providing 1st and 2nd level
support services to their 500+ roadwarrior sales force as well as their
3,500 workstation and laptop users. He was introduced to Linux by a good
friend in 1996 and thought Slackware was the end-all-be-all of the OS world
... until he found Mandrake in early 1999. Since then he's used his
documentation skills to help those new to Linux find their way.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Mark Nielsen</H4>
Mark founded The Computer Underground, Inc. in June of 1998. Since then,
he has been working on Linux solutions for his customers ranging from custom
computer hardware sales to programming and networking. Mark specializes in Perl,
SQL, and HTML programming along with Beowulf clusters. Mark believes in the
concept of contributing back to the Linux community which helped to start his
company. Mark and his employees are always looking for exciting projects to do.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Mike Orr</H4>
Mike is the Editor of the <I>Linux Gazette</I>. You can read what he has to
say in the Back Page column in this issue. He has been a Linux enthusiast
since 1991 and a Debian user since 1995. He is SSC's Webmaster. He also
enjoys the Python programming language. Non-computer interests include
ska/oi! music and the international language Esperanto.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">JC Pollman</H4>
I have been playing with linux since kernel 1.0.59. I spend way too much
time at the keyboard and even let my day job - the military - interfere once in
a while. My biggest concern about linux is the lack of documentation for the
intermediate user. There is already too much beginner's stuff, and the
professional material is often beyond the new enthusiast.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Jan W. Stumpel</H4>
Jan lives in Oegstgeest, The Netherlands.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Trenton G. Twining</H4>
Trenton is a process consultant for Terrapin Technologies, Inc. He specializes
in configuration management, complexity management and training in several
technical areas. After being a happy user of Coherent, he switched to using
Linux in the Summer of '94. Since then he has been a Linux evangelist.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Alan Ward</H4>
"Alan teaches CS in Andorra at highschool and university levels. He's
back to Unix this year after an 8-year forced interlude since he
graduated -- it makes networking so much easier. His hobbies include
science photography (both digital and traditional), trekking, rock and
processor collecting.
<a name="notlinux"></a>
<P> <hr> <P>
<!--====================================================================-->
<center><H3><font color="maroon">Not Linux</font></H3></center>
<P> <HR> <P>
<!--======================================================================-->
<IMG ALT="[ Penguin reading the Linux Gazette ]"
SRC=../gx/lg-penguin.gif ALIGN=right>
<P>
<P>
For what it's worth, during July 1999, www.linuxgazette.com had:
<TT><UL>
<LI> 57703 visitors (=unique domains or IPs)
<LI> 623394 page views (=HTML files downloaded)
<LI> 2048966 hits (=all files downloaded including graphics)
</UL></TT>
Of course, this doesn't include the mirror sites.
<P> I've gotten over the New Editor ("O dear, when am I going to do something
Really Stupid?") stage, and I'm beginning to really enjoy working with the
<I>Gazette</I>. It was fun gathering ideas for the FAQ. I also had the
opportunity this month to write some scripts in my favorite programming
language--Python--to help format the Mailbag, 2-cent Tips and News Bytes. Those
scripts alone will save my fingers three hours a month in formatting e-mail
addresses and the like. :)
<P>-Mike Orr<br>
Editor, <A HREF="http://www.linuxgazette.com/"><i>Linux Gazette</i></A>, <A
HREF="mailto:gazette@ssc.com">gazette@ssc.com</a>
<BR CLEAR=all>
<P> <HR> <P>
<!--====================================================================-->
<A HREF="lg_toc45.html"><IMG SRC="../gx/indexnew.gif" ALT="[ TABLE OF
CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG SRC="../gx/homenew.gif" ALT="[ FRONT
PAGE ]"></A>
<A HREF="ward/ward.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
<p><hr><p>
<center>
<I>Linux Gazette</I> Issue 45, September 1999,
<A HREF="http://www.linuxgazette.com/">http://www.linuxgazette.com</A><BR>
This page written and maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto:gazette@ssc.com"> gazette@ssc.com</A>
<H5>Copyright © 1999 Specialized Systems Consultants, Inc.<br>
</center>
<P>
</BODY>
</HTML>
|