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 10538 10539 10540 10541 10542 10543 10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 10570 10571 10572 10573 10574 10575 10576 10577 10578 10579 10580 10581 10582 10583 10584 10585 10586 10587 10588 10589 10590 10591 10592 10593 10594 10595 10596 10597 10598 10599 10600 10601 10602 10603 10604 10605 10606 10607 10608 10609 10610 10611 10612 10613 10614 10615 10616 10617 10618 10619 10620 10621 10622 10623 10624 10625 10626 10627 10628 10629 10630 10631 10632 10633 10634 10635 10636 10637 10638 10639 10640 10641 10642 10643 10644 10645 10646 10647 10648 10649 10650 10651 10652 10653 10654 10655 10656 10657 10658 10659 10660 10661 10662 10663 10664 10665 10666 10667 10668 10669 10670 10671 10672 10673 10674 10675 10676 10677 10678 10679 10680 10681 10682 10683 10684 10685 10686 10687 10688 10689 10690 10691 10692 10693 10694 10695 10696 10697 10698 10699 10700 10701 10702 10703 10704 10705 10706 10707 10708 10709 10710 10711 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 10723 10724 10725 10726 10727 10728 10729 10730 10731 10732 10733 10734 10735 10736 10737 10738 10739 10740 10741 10742 10743 10744 10745 10746 10747 10748 10749 10750 10751 10752 10753 10754 10755 10756 10757 10758 10759 10760 10761 10762 10763 10764 10765 10766 10767 10768 10769 10770 10771 10772 10773 10774 10775 10776 10777 10778 10779 10780 10781 10782 10783 10784 10785 10786 10787 10788 10789 10790 10791 10792 10793 10794 10795 10796 10797 10798 10799 10800 10801 10802 10803 10804 10805 10806 10807 10808 10809 10810 10811 10812 10813 10814 10815 10816 10817 10818 10819 10820 10821 10822 10823 10824 10825 10826 10827 10828 10829 10830 10831 10832 10833 10834 10835 10836 10837 10838 10839 10840 10841 10842 10843 10844 10845 10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 10860 10861 10862 10863 10864 10865 10866 10867 10868 10869 10870 10871 10872 10873 10874 10875 10876 10877 10878 10879 10880 10881 10882 10883 10884 10885 10886 10887 10888 10889 10890 10891 10892 10893 10894 10895 10896 10897 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 10908 10909 10910 10911 10912 10913 10914 10915 10916 10917 10918 10919 10920 10921 10922 10923 10924 10925 10926 10927 10928 10929 10930 10931 10932 10933 10934 10935 10936 10937 10938 10939 10940 10941 10942 10943 10944 10945 10946 10947 10948 10949 10950 10951 10952 10953 10954 10955 10956 10957 10958 10959 10960 10961 10962 10963 10964 10965 10966 10967 10968 10969 10970 10971 10972 10973 10974 10975 10976 10977 10978 10979 10980 10981 10982 10983 10984 10985 10986 10987 10988 10989 10990 10991 10992 10993 10994 10995 10996 10997 10998 10999 11000 11001 11002 11003 11004 11005 11006 11007 11008 11009 11010 11011 11012 11013 11014 11015 11016 11017 11018 11019 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 11035 11036 11037 11038 11039 11040 11041 11042 11043 11044 11045 11046 11047 11048 11049 11050 11051 11052 11053 11054 11055 11056 11057 11058 11059 11060 11061 11062 11063 11064 11065 11066 11067 11068 11069 11070 11071 11072 11073 11074 11075 11076 11077 11078 11079 11080 11081 11082 11083 11084 11085 11086 11087 11088 11089 11090 11091 11092 11093 11094 11095 11096 11097 11098 11099 11100 11101 11102 11103 11104 11105 11106 11107 11108 11109 11110 11111 11112 11113 11114 11115 11116 11117 11118 11119 11120 11121 11122 11123 11124 11125 11126 11127 11128 11129 11130 11131 11132 11133 11134 11135 11136 11137 11138 11139 11140 11141 11142 11143 11144 11145 11146 11147 11148 11149 11150 11151 11152 11153 11154 11155 11156 11157 11158 11159 11160 11161 11162 11163 11164 11165 11166 11167 11168 11169 11170 11171 11172 11173 11174 11175 11176 11177 11178 11179 11180 11181 11182 11183 11184 11185 11186 11187 11188 11189 11190 11191 11192 11193 11194 11195 11196 11197 11198 11199 11200 11201 11202 11203 11204 11205 11206 11207 11208 11209 11210 11211 11212 11213 11214 11215 11216 11217 11218 11219 11220 11221 11222 11223 11224 11225 11226 11227 11228 11229 11230 11231 11232 11233 11234 11235 11236 11237 11238 11239 11240 11241 11242 11243 11244 11245 11246 11247 11248 11249 11250 11251 11252 11253 11254 11255 11256 11257 11258 11259 11260 11261 11262 11263 11264 11265 11266 11267 11268 11269 11270 11271 11272 11273 11274 11275 11276 11277 11278 11279 11280 11281 11282 11283 11284 11285 11286 11287 11288 11289 11290 11291 11292 11293 11294 11295 11296 11297 11298 11299 11300 11301 11302 11303 11304 11305 11306 11307 11308 11309 11310 11311 11312 11313 11314 11315 11316 11317 11318 11319 11320 11321 11322 11323 11324 11325 11326 11327 11328 11329 11330 11331 11332 11333 11334 11335 11336 11337 11338 11339 11340 11341 11342 11343 11344 11345 11346 11347 11348 11349 11350 11351 11352 11353 11354 11355 11356 11357 11358 11359 11360 11361 11362 11363 11364 11365 11366 11367 11368 11369 11370 11371 11372 11373 11374 11375 11376 11377 11378 11379 11380 11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391 11392 11393 11394 11395 11396 11397 11398 11399 11400 11401 11402 11403 11404 11405 11406 11407 11408 11409 11410 11411 11412 11413 11414 11415 11416 11417 11418 11419 11420 11421 11422 11423 11424 11425 11426 11427 11428 11429 11430 11431 11432 11433 11434 11435 11436 11437 11438 11439 11440 11441 11442 11443 11444 11445 11446 11447 11448 11449 11450 11451 11452 11453 11454 11455 11456 11457 11458 11459 11460 11461 11462 11463 11464 11465 11466 11467 11468 11469 11470 11471 11472 11473 11474 11475 11476 11477 11478 11479 11480 11481 11482 11483 11484 11485 11486 11487 11488 11489 11490 11491 11492 11493 11494 11495 11496 11497 11498 11499 11500 11501 11502 11503 11504 11505 11506 11507 11508 11509 11510 11511 11512 11513 11514 11515 11516 11517 11518 11519 11520 11521 11522 11523 11524 11525 11526 11527 11528 11529 11530 11531 11532 11533 11534 11535 11536 11537 11538 11539 11540 11541 11542 11543 11544 11545 11546 11547 11548 11549 11550 11551 11552 11553 11554 11555 11556 11557 11558 11559 11560 11561 11562 11563 11564 11565 11566 11567 11568 11569 11570 11571 11572 11573 11574 11575 11576 11577 11578 11579 11580 11581 11582 11583 11584 11585 11586 11587 11588 11589 11590 11591 11592 11593 11594 11595 11596 11597 11598 11599 11600 11601 11602 11603 11604 11605 11606 11607 11608 11609 11610 11611 11612 11613 11614 11615 11616 11617 11618 11619 11620 11621 11622 11623 11624 11625 11626 11627 11628 11629 11630 11631 11632 11633 11634 11635 11636 11637 11638 11639 11640 11641 11642 11643 11644 11645 11646 11647 11648 11649 11650 11651 11652 11653 11654 11655 11656 11657 11658 11659 11660 11661 11662 11663 11664 11665 11666 11667 11668 11669 11670 11671 11672 11673 11674 11675 11676 11677 11678 11679 11680 11681 11682 11683 11684 11685 11686 11687 11688 11689 11690 11691 11692 11693 11694 11695 11696 11697 11698 11699 11700 11701 11702 11703 11704 11705 11706 11707 11708 11709 11710 11711 11712 11713 11714 11715 11716 11717 11718 11719 11720 11721 11722 11723 11724 11725 11726 11727 11728 11729 11730 11731 11732 11733 11734 11735 11736 11737 11738 11739 11740 11741 11742 11743 11744 11745 11746 11747 11748 11749 11750 11751 11752 11753 11754 11755 11756 11757 11758 11759 11760 11761 11762 11763 11764 11765 11766 11767 11768 11769 11770 11771 11772 11773 11774 11775 11776 11777 11778 11779 11780 11781 11782 11783 11784 11785 11786 11787 11788 11789 11790 11791 11792 11793 11794 11795 11796 11797 11798 11799 11800 11801 11802 11803 11804 11805 11806 11807 11808 11809 11810 11811 11812 11813 11814 11815 11816 11817 11818 11819 11820 11821 11822 11823 11824 11825 11826 11827 11828 11829 11830 11831 11832 11833 11834 11835 11836 11837 11838 11839 11840 11841 11842 11843 11844 11845 11846 11847 11848 11849 11850 11851 11852 11853 11854 11855 11856 11857 11858 11859 11860 11861 11862 11863 11864 11865 11866 11867 11868 11869 11870 11871 11872 11873 11874 11875 11876 11877 11878 11879 11880 11881 11882 11883 11884 11885 11886 11887 11888 11889 11890 11891 11892 11893 11894 11895 11896 11897 11898 11899 11900 11901 11902 11903 11904 11905 11906 11907 11908 11909 11910 11911 11912 11913 11914 11915 11916 11917 11918 11919 11920 11921 11922 11923 11924 11925 11926 11927 11928 11929 11930 11931 11932 11933 11934 11935 11936 11937 11938 11939 11940 11941 11942 11943 11944 11945 11946 11947 11948 11949 11950 11951 11952 11953 11954 11955 11956 11957 11958 11959 11960 11961 11962 11963 11964 11965 11966 11967 11968 11969 11970 11971 11972 11973 11974 11975 11976 11977 11978 11979 11980 11981 11982 11983 11984 11985 11986 11987 11988 11989 11990 11991 11992 11993 11994 11995 11996 11997 11998 11999 12000 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011 12012 12013 12014 12015 12016 12017 12018 12019 12020 12021 12022 12023 12024 12025 12026 12027 12028 12029 12030 12031 12032 12033 12034 12035 12036 12037 12038 12039 12040 12041 12042 12043 12044 12045 12046 12047 12048 12049 12050 12051 12052 12053 12054 12055 12056 12057 12058 12059 12060 12061 12062 12063 12064 12065 12066 12067 12068 12069 12070 12071 12072 12073 12074 12075 12076 12077 12078 12079 12080 12081 12082 12083 12084 12085 12086 12087 12088 12089 12090 12091 12092 12093 12094 12095 12096 12097 12098 12099 12100 12101 12102 12103 12104 12105 12106 12107 12108 12109 12110 12111 12112 12113 12114 12115 12116 12117 12118 12119 12120 12121 12122 12123 12124 12125 12126 12127 12128 12129 12130 12131 12132 12133 12134 12135 12136 12137 12138 12139 12140 12141 12142 12143 12144 12145 12146 12147 12148 12149 12150 12151 12152 12153 12154 12155 12156 12157 12158 12159 12160 12161 12162 12163 12164 12165 12166 12167 12168 12169 12170 12171 12172 12173 12174 12175 12176 12177 12178 12179 12180 12181 12182 12183 12184 12185 12186 12187 12188 12189 12190 12191 12192 12193 12194 12195 12196 12197 12198 12199 12200 12201 12202 12203 12204 12205 12206 12207 12208 12209 12210 12211 12212 12213 12214 12215 12216 12217 12218 12219 12220 12221 12222 12223 12224 12225 12226 12227 12228 12229 12230 12231 12232 12233 12234 12235 12236 12237 12238 12239 12240 12241 12242 12243 12244 12245 12246 12247 12248 12249 12250 12251 12252 12253 12254 12255 12256 12257 12258 12259 12260 12261 12262 12263 12264 12265 12266 12267 12268 12269 12270 12271 12272 12273 12274 12275 12276 12277 12278 12279 12280 12281 12282 12283 12284 12285 12286 12287 12288 12289 12290 12291 12292 12293 12294 12295 12296 12297 12298 12299 12300 12301 12302 12303 12304 12305 12306 12307 12308 12309 12310 12311 12312 12313 12314 12315 12316 12317 12318 12319 12320 12321 12322 12323 12324 12325 12326 12327 12328 12329 12330 12331 12332 12333 12334 12335 12336 12337 12338 12339 12340 12341 12342 12343 12344 12345 12346 12347 12348 12349 12350 12351 12352 12353 12354 12355 12356 12357 12358 12359 12360 12361 12362 12363 12364 12365 12366 12367 12368 12369 12370 12371 12372 12373 12374 12375 12376 12377 12378 12379 12380 12381 12382 12383 12384 12385 12386 12387 12388 12389 12390 12391 12392 12393 12394 12395 12396 12397 12398 12399 12400 12401 12402 12403 12404 12405 12406 12407 12408 12409 12410 12411 12412 12413 12414 12415 12416 12417 12418 12419 12420 12421 12422 12423 12424 12425 12426 12427 12428 12429 12430 12431 12432 12433 12434 12435 12436 12437 12438 12439 12440 12441 12442 12443 12444 12445 12446 12447 12448 12449 12450 12451 12452 12453 12454 12455 12456 12457 12458 12459 12460 12461 12462 12463 12464 12465 12466 12467 12468 12469 12470 12471 12472 12473 12474 12475 12476 12477 12478 12479 12480 12481 12482 12483 12484 12485 12486 12487 12488 12489 12490 12491 12492 12493 12494 12495 12496 12497 12498 12499 12500 12501 12502 12503 12504 12505 12506 12507 12508 12509 12510 12511 12512 12513 12514 12515 12516 12517 12518 12519 12520 12521 12522 12523 12524 12525 12526 12527 12528 12529 12530 12531 12532 12533 12534 12535 12536 12537 12538 12539 12540 12541 12542 12543 12544 12545 12546 12547 12548 12549 12550 12551 12552 12553 12554 12555 12556 12557 12558 12559 12560 12561 12562 12563 12564 12565 12566 12567 12568 12569 12570 12571 12572 12573 12574 12575 12576 12577 12578 12579 12580 12581 12582 12583 12584 12585 12586 12587 12588 12589 12590 12591 12592 12593 12594 12595 12596 12597 12598 12599 12600 12601 12602 12603 12604 12605 12606 12607 12608 12609 12610 12611 12612 12613 12614 12615 12616 12617 12618 12619 12620 12621 12622 12623 12624 12625 12626 12627 12628 12629 12630 12631 12632 12633 12634 12635 12636 12637 12638 12639 12640 12641 12642 12643 12644 12645 12646 12647 12648 12649 12650 12651 12652 12653 12654 12655 12656 12657 12658 12659 12660 12661 12662 12663 12664 12665 12666 12667 12668 12669 12670 12671 12672 12673 12674 12675 12676 12677 12678 12679 12680 12681 12682 12683 12684 12685 12686 12687 12688 12689 12690 12691 12692 12693 12694 12695 12696 12697 12698 12699 12700 12701 12702 12703 12704 12705 12706 12707 12708 12709 12710 12711 12712 12713 12714 12715 12716 12717 12718 12719 12720 12721 12722 12723 12724 12725 12726 12727 12728 12729 12730 12731 12732 12733 12734 12735 12736 12737 12738 12739 12740 12741 12742 12743 12744 12745 12746 12747 12748 12749 12750 12751 12752 12753 12754 12755 12756 12757 12758 12759 12760 12761 12762 12763 12764 12765 12766 12767 12768 12769 12770 12771 12772 12773 12774 12775 12776 12777 12778 12779 12780 12781 12782 12783 12784 12785 12786 12787 12788 12789 12790 12791 12792 12793 12794 12795 12796 12797 12798 12799 12800 12801 12802 12803 12804 12805 12806 12807 12808 12809 12810 12811 12812 12813 12814 12815 12816 12817 12818 12819 12820 12821 12822 12823 12824 12825 12826 12827 12828 12829 12830 12831 12832 12833 12834 12835 12836 12837 12838 12839 12840 12841 12842 12843 12844 12845 12846 12847 12848 12849 12850 12851 12852 12853 12854 12855 12856 12857 12858 12859 12860 12861 12862 12863 12864 12865 12866 12867 12868 12869 12870 12871 12872 12873 12874 12875 12876 12877 12878 12879 12880 12881 12882 12883 12884 12885 12886 12887 12888 12889 12890 12891 12892 12893 12894 12895 12896 12897 12898 12899 12900 12901 12902 12903 12904 12905 12906 12907 12908 12909 12910 12911 12912 12913 12914 12915 12916 12917 12918 12919 12920 12921 12922 12923 12924 12925 12926 12927 12928 12929 12930 12931 12932 12933 12934 12935 12936 12937 12938 12939 12940 12941 12942 12943 12944 12945 12946 12947 12948 12949 12950 12951 12952 12953 12954 12955 12956 12957 12958 12959 12960 12961 12962 12963 12964 12965 12966 12967 12968 12969 12970 12971 12972 12973 12974 12975 12976 12977 12978 12979 12980 12981 12982 12983 12984 12985 12986 12987 12988 12989 12990 12991 12992 12993 12994 12995 12996 12997 12998 12999 13000 13001 13002 13003 13004 13005 13006 13007 13008 13009 13010 13011 13012 13013 13014 13015 13016 13017 13018 13019 13020 13021 13022 13023 13024 13025 13026 13027 13028 13029 13030 13031 13032 13033 13034 13035 13036 13037 13038 13039 13040 13041 13042 13043 13044 13045 13046 13047 13048 13049 13050 13051 13052 13053 13054 13055 13056 13057 13058 13059 13060 13061 13062 13063 13064 13065 13066 13067 13068 13069 13070 13071 13072 13073 13074 13075 13076 13077 13078 13079 13080 13081 13082 13083 13084 13085 13086 13087 13088 13089 13090 13091 13092 13093 13094 13095 13096 13097 13098 13099 13100 13101 13102 13103 13104 13105 13106 13107 13108 13109 13110 13111 13112 13113 13114 13115 13116 13117 13118 13119 13120 13121 13122 13123 13124 13125 13126 13127 13128 13129 13130 13131 13132 13133 13134 13135 13136 13137 13138 13139 13140 13141 13142 13143 13144 13145 13146 13147 13148 13149 13150 13151 13152 13153 13154 13155 13156 13157 13158 13159 13160 13161 13162 13163 13164 13165 13166 13167 13168 13169 13170 13171 13172 13173 13174 13175 13176 13177 13178 13179 13180 13181 13182 13183 13184 13185 13186 13187 13188 13189 13190 13191 13192 13193 13194 13195 13196 13197 13198 13199 13200 13201 13202 13203 13204 13205 13206 13207 13208 13209 13210 13211 13212 13213 13214 13215 13216 13217 13218 13219 13220 13221 13222 13223 13224 13225 13226 13227 13228 13229 13230 13231 13232 13233 13234 13235 13236 13237 13238 13239 13240 13241 13242 13243 13244 13245 13246 13247 13248 13249 13250 13251 13252 13253 13254 13255 13256 13257 13258 13259 13260 13261 13262 13263 13264 13265 13266 13267 13268 13269 13270 13271 13272 13273 13274 13275 13276 13277 13278 13279 13280 13281 13282 13283 13284 13285 13286 13287 13288 13289 13290 13291 13292 13293 13294 13295 13296 13297 13298 13299 13300 13301 13302 13303 13304 13305 13306 13307 13308 13309 13310 13311 13312 13313 13314 13315 13316 13317 13318 13319 13320 13321 13322 13323 13324 13325 13326 13327 13328 13329 13330 13331 13332 13333 13334 13335 13336 13337 13338 13339 13340 13341 13342 13343 13344 13345 13346 13347 13348 13349 13350 13351 13352 13353 13354 13355 13356 13357 13358 13359 13360 13361 13362 13363 13364 13365 13366 13367 13368 13369 13370 13371 13372 13373 13374 13375 13376 13377 13378 13379 13380 13381 13382 13383 13384 13385 13386 13387 13388 13389 13390 13391 13392 13393 13394 13395 13396 13397 13398 13399 13400 13401 13402 13403 13404 13405 13406 13407 13408 13409 13410 13411 13412 13413 13414 13415 13416 13417 13418 13419 13420 13421 13422 13423 13424 13425 13426 13427 13428 13429 13430 13431 13432 13433 13434 13435 13436 13437 13438 13439 13440 13441 13442 13443 13444 13445 13446 13447 13448 13449 13450 13451 13452 13453 13454 13455 13456 13457 13458 13459 13460 13461 13462 13463 13464 13465 13466 13467 13468 13469 13470 13471 13472 13473 13474 13475 13476 13477 13478 13479 13480 13481 13482 13483 13484 13485 13486 13487 13488 13489 13490 13491 13492 13493 13494 13495 13496 13497 13498 13499 13500 13501 13502 13503 13504 13505 13506 13507 13508 13509 13510 13511 13512 13513 13514 13515 13516 13517 13518 13519 13520 13521 13522 13523 13524 13525 13526 13527 13528 13529 13530 13531 13532 13533 13534 13535 13536 13537 13538 13539 13540 13541 13542 13543 13544 13545 13546 13547 13548 13549 13550 13551 13552 13553 13554 13555 13556 13557 13558 13559 13560 13561 13562 13563 13564 13565 13566 13567 13568 13569 13570 13571 13572 13573 13574 13575 13576 13577 13578 13579 13580 13581 13582 13583 13584 13585 13586 13587 13588 13589 13590 13591 13592 13593 13594 13595 13596 13597 13598 13599 13600 13601 13602 13603 13604 13605 13606 13607 13608 13609 13610 13611 13612 13613 13614 13615 13616 13617 13618 13619 13620 13621 13622 13623 13624 13625 13626 13627 13628 13629 13630 13631 13632 13633 13634 13635 13636 13637 13638 13639 13640 13641 13642 13643 13644 13645 13646 13647 13648 13649 13650 13651 13652 13653 13654 13655 13656 13657 13658 13659 13660 13661 13662 13663 13664 13665 13666 13667 13668 13669 13670 13671 13672 13673 13674 13675 13676 13677 13678 13679 13680 13681 13682 13683 13684 13685 13686 13687 13688 13689 13690 13691 13692 13693 13694 13695 13696 13697 13698 13699 13700 13701 13702 13703 13704 13705 13706 13707 13708 13709 13710 13711 13712 13713 13714 13715 13716 13717 13718 13719 13720 13721 13722 13723 13724 13725 13726 13727 13728 13729 13730 13731 13732 13733 13734 13735 13736 13737 13738 13739 13740 13741 13742 13743 13744 13745 13746 13747 13748 13749 13750 13751 13752 13753 13754 13755 13756 13757 13758 13759 13760 13761 13762 13763 13764 13765 13766 13767 13768 13769 13770 13771 13772 13773 13774 13775 13776 13777 13778 13779 13780 13781 13782 13783 13784 13785 13786 13787 13788 13789 13790 13791 13792 13793 13794 13795 13796 13797 13798 13799 13800 13801 13802 13803 13804 13805 13806 13807 13808 13809 13810 13811 13812 13813 13814 13815 13816 13817 13818 13819 13820 13821 13822 13823 13824 13825 13826 13827 13828 13829 13830 13831 13832 13833 13834 13835 13836 13837 13838 13839 13840 13841 13842 13843 13844 13845 13846 13847 13848 13849 13850 13851 13852 13853 13854 13855 13856 13857 13858 13859 13860 13861 13862 13863 13864 13865 13866 13867 13868 13869 13870 13871 13872 13873 13874 13875 13876 13877 13878 13879 13880 13881 13882 13883 13884 13885 13886 13887 13888 13889 13890 13891 13892 13893 13894 13895 13896 13897 13898 13899 13900 13901 13902 13903 13904 13905 13906 13907 13908 13909 13910 13911 13912 13913 13914 13915 13916 13917 13918 13919 13920 13921 13922 13923 13924 13925 13926 13927 13928 13929 13930 13931 13932 13933 13934 13935 13936 13937 13938 13939 13940 13941 13942 13943 13944 13945 13946 13947 13948 13949 13950 13951 13952 13953 13954 13955 13956 13957 13958 13959 13960 13961 13962 13963 13964 13965 13966 13967 13968 13969 13970 13971 13972 13973 13974 13975 13976 13977 13978 13979 13980 13981 13982 13983 13984 13985 13986 13987 13988 13989 13990 13991 13992 13993 13994 13995 13996 13997 13998 13999 14000 14001 14002 14003 14004 14005 14006 14007 14008 14009 14010 14011 14012 14013 14014 14015 14016 14017 14018 14019 14020 14021 14022 14023 14024 14025 14026 14027 14028 14029 14030 14031 14032 14033 14034 14035 14036 14037 14038 14039 14040 14041 14042 14043 14044 14045 14046 14047 14048 14049 14050 14051 14052 14053 14054 14055 14056 14057 14058 14059 14060 14061 14062 14063 14064 14065 14066 14067 14068 14069 14070 14071 14072 14073 14074 14075 14076 14077 14078
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE> Linux Gazette Table of Contents LG #48</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>
<H2>December 1999, Issue 48
Published by <I>Linux Journal</I></H2>
<A HREF=../lg_frontpage.html>Front Page</A> |
<A HREF=../lg_frontpage.html>Back Issues</A> |
<A HREF=../lg_faq.html>FAQ</A> |
<A HREF=../mirrors.html>Mirrors</A> |
<A HREF=http://www.linuxgazette.com/wgindex.html>Search</A>
</center>
<!--=================================================================-->
<table>
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif" ALT="" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
<tr><td>
<table>
<tr>
<td VALIGN="top"><H1><font color="#BB0000">Visit Our Sponsors:</font></H1></td></tr>
<!-- *** BEGIN sponsors *** -->
<TR><TD>
<A HREF="http://www.linuxjournal.com"><IMG ALT="Linux Journal" SRC="../gx/ljtop.gif" BORDER="0" VSPACE="10"></A>
</TD></TR>
<TR><TD>
<A HREF="http://www.linuxcare.com"><IMG ALT="LinuxCare" SRC="../gx/linuxcare.gif" BORDER="0" VSPACE="10"></A>
</TD></TR>
<TR><TD>
<A HREF="http://www.infomagic.com"><IMG ALT="InfoMagic" SRC="../gx/infologo.gif" BORDER="0" VSPACE="10"></A>
</TD></TR>
<TR><TD>
<A HREF="http://www.suse.com"><IMG ALT="SuSE" SRC="../gx/suse.jpg" BORDER="0" VSPACE="10"></A>
</TD></TR>
<TR><TD>
<A HREF="http://www.redhat.com"><IMG ALT="Red Hat" SRC="../gx/redhat.gif" BORDER="0" VSPACE="10"></A>
</TD></TR>
<TR><TD>
<A HREF="http://www.linuxmall.com/"><IMG ALT="LinuxMall" SRC="../gx/linuxmall.gif" BORDER="0" VSPACE="10"></A>
</TD></TR>
<TR><TD>
<A HREF="http://www.cyclades.com"><IMG ALT="Cyclades" SRC="../gx/cyclades.gif" BORDER="0" VSPACE="10"></A>
</TD></TR>
<!-- *** END sponsors *** -->
</table>
</td>
<!--==================================================================-->
<TD ROWSPAN="3" WIDTH="2" BGCOLOR="#000000" NOSAVE><IMG
SRC="../gx/hammel/cleardot.gif" ALT="" HSPACE=1 HEIGHT=1 WIDTH=1%></TD>
<td VALIGN=top>
<H1><font color="#BB0000">Table of Contents:</font></H1>
<!-- *** BEGIN toc *** -->
<UL>
<LI> <a HREF="lg_mail48.html">The MailBag</A>
<UL>
<LI> <a HREF="lg_mail48.html#help">Help Wanted & Article Ideas</A>
<LI> <a HREF="lg_mail48.html#gen">General Mail</A>
</UL>
<LI> <a HREF="lg_bytes48.html">News Bytes</A>
<UL>
<LI> <a HREF="lg_bytes48.html#distro">Distro News</A>
<LI> <a HREF="lg_bytes48.html#general">News in General</A>
<LI> <a HREF="lg_bytes48.html#software">Software Announcements</A>
</UL>
<LI> <a HREF="lg_answer48.html">The Answer Guy</A> , <EM>by James T. Dennis</EM>
<LI> <a HREF="lg_tips48.html">More 2-Cent Tips</A>
<LI> <a HREF="adler.html">It's Only a One Day Conference...</A> , <EM>by Stephen Adler</EM>
<LI> <a HREF="blanchard.html">SAMBA, Win95, NT and HP Jetdirect</A> , <EM>by Eugene Blanchard</EM>
<LI> <a HREF="dellomodarme.html">LinuxThreads Programming</A> , <EM>by Matteo Dell'Omodarme</EM>
<LI> <a HREF="fischer.html">A Brief History of the 'ls' command</A> , <EM>by Eric Fischer</EM>
<LI> <a HREF="fisher.html">Advanced Programming in Expect: A Bulletproof Interface</A> , <EM>by David Fisher</EM>
<LI> <a HREF="lane.html">Linux, Java and XML</A> , <EM>by Eoin Lane</EM>
<LI> <a HREF="pollman.html">DHCP for the Home Network</A> , <EM>by JC Pollman, Bill Mote</EM>
<LI> <a HREF="lg_backpage48.html">The Back Page</A>
<UL>
<LI> <a HREF="lg_backpage48.html#authors">About This Month's Authors</A>
<LI> <a HREF="lg_backpage48.html#notlinux">Not Linux</A>
</UL>
</UL>
<!-- *** END toc *** -->
</td>
</tr>
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif"
ALT="-------------------------------------------------------------"
HSPACE=30 VSPACE=2 HEIGHT=1 WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
</table>
<!--=============================================================-->
<P>
<table>
<tr><td>
<A HREF="issue48.txt.gz">TWDT 1 (gzipped text file)</A><BR>
<A HREF="issue48.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="" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
<tr><td>
<center>
<I>Linux Gazette</I><img alt="[tm]" 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-1999 Specialized Systems Consultants, Inc.</H5>
</center>
</td></tr>
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif" ALT="" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
</table>
<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
<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">
Mon, 1 Mar 1999 14:28:50 -0800
<BR>From: Vijaya Kittu <<A HREF="mailto:vijaykittu@hotmail.com">vijaykittu@hotmail.com></A>
<BR>Subject: Visual Basic for Linux ???
<P> I'm looking for a good and easy "Basic" Language Port (such as VB in
Windoze) on X-Windows.
<P> If any one is using any Visual Development tool, kindly send comments back
to me.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 29 Oct 1999 16:22:22 +0200
<BR>From: <<A HREF="mailto:Douwe.vanderVeen@95.Student.WAU.NL">Douwe.vanderVeen@95.Student.WAU.NL></A>
<BR>Subject: connecting SPARC and 386 for printing purposes
<P> having a SPARCstation 10/20 with Redhat 5.1/SPARC working fine on it, I
wanted to connenct a printer to the system. Since the parallel port is not
supported under S/Linux, I wanted to connect my SPARC with a cheap 386. The 386
is working under MS-DOS.
<P> I bought an ethernet card for my 386, and connected the in-board ethernet
card on the SPARC with the ethernetcard on the 386. The cable is twisted-pair,
since only two computers are to be connected.
<P> If I turn on both computers, I can start a testing program for the ethernet
card on the 386. It will wait for any external signal.
When booting the SPARC (the 386 sensing for any action), the SPARC checks for
'eth0' but finds no other computer on the other side.
<P> Questions:
(1) how can I let my 386 tell to the SPARC he is there?
(2) How can I make the 386 accessible (that is: the parallel printer port)
from the SPARC?
<P> Thanks in advance for any help!!
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sat, 30 Oct 1999 21:19:01 +0200
<BR>From: Dr. Bodo Zimmermann DD-260 <<A HREF="mailto:dozi@iwka.de">dozi@iwka.de></A>
<BR>Subject: problems with tcp/ip in kernel 2.2.x
<P> I have found problems with ftp aund telnet
(tn3270, x3270) in the kernel 2.2.5 and 2.2.10
when connecting to IBM mainframes (VM/ESA).
I cannot tranfer any data!
<P> There are no problems at all with a kernels 2.0.x
<P> Whom may I address?
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sat, 30 Oct 1999 23:25:05 EDT
<BR>From: Richard Monte <<A HREF="mailto:richard_monte@hotmail.com">richard_monte@hotmail.com></A>
<BR>Subject: Running MS applications on Linux?
<P> I was wondering if I can run my MS applications on Linux? What would I
need?
<P> If I can, what are the advantages and/or disadvantages of doing so?
<P> Are there any legal issues related to running MS applications on a
non-Windows OS?
<P> -Rick
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sun, 31 Oct 1999 12:54:24 +0100 (MET)
<BR>From: Mika Numminen <<A HREF="mailto:mika@Oink.Midgard.HIG.SE">mika@Oink.Midgard.HIG.SE></A>
<BR>Subject: Hmmm.... don't know how to categorize this..
<P> I usually log into my machine with SSH from home (no concole access)
and I was wondering if there is a way to have processes still running
after I log out. For instance an ftp-session loading an ISO, etc..
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Mon, 1 Nov 1999 18:53:32 -0600
<BR>From: lordj <<A HREF="mailto:lordj@iaw.on.ca">lordj@iaw.on.ca></A>
<BR>Subject: linux sound problems
<P> I run sndconfig and the friggin thing just fails. it finds my card and
then sets up the irqs and all that rot, and then when it trys to play
the sound sample i get the failure "don't know what to do with CONFIG
CTL002b/4886122 ... error parsing file" and stuff like that. what is
wrong with it?
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Tue, 02 Nov 1999 18:21:51 +0800
<BR>From: Zon Hisham Bin Zainal Abidin <<A HREF="mailto:zon@mad.scientist.com">zon@mad.scientist.com></A>
<BR>Subject: Telnet 110 fails
<P> Now that my LILO is back (up and running), it's time for something else.
<P> I have 6-7 pcs in the office on LAN. I am on RH6.0 and the rest on W98.
I am trying to configure my pc as the email server for this small LAN.
<P> I have managed to correctly setup DNS. A remote PC can resolve the DNS
server correctly. Then I went into Linuxconf and setup the Email server
portion. My Linux PC by the way is named svr and the domain is cma.com
<P> We are using Netscape as the email client. I entered svr.cma.com
as the Incoming and Outgoing mail servers. Netscape client can sent
email but were unable to receive (email) with the message:
"Netscape's network connection was refused by the server svr.cma.com
The server may not be accepting connections or may be busy. Try
connecting again later."
<P> I did a <CODE>telnet svr.cma.com 110</CODE> with a "Unable to
connect to remote host" message. But a <CODE>telnet svr.cma.com 25</CODE>
is ok. That explaint why sending is OK but not receiving rite?
<P> How do I fix this?
<P> rgds.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Tue, 02 Nov 1999 20:53:57 +0000
<BR>From: Anatoli B. Titarev <<A HREF="mailto:Anatoli_Titarev@swin.edu.au">Anatoli_Titarev@swin.edu.au></A>
<BR>Subject: HELP with LT Win Modem and SB 16 Sound Blaster wanted!
<P> I am a new Linux Red Hat 6.0 user.
<P> I cannot connect to the Internet (still using Winows 98).
My LT Win Modem connected to com3 is not working under Linux.
(Someone wrote that trying to config Win modems for Linux is waste of
time, is it true?)
<P> Connection: 8, parity - none, stopbit - 1.
I told the 'modemtool' to use to use the serial port to which my modem
is connected.
I removed the word 'lock' in /etc/ppp/options file.
<P> I get 'modem is busy' in kppp configuration program
or 'mode is locked' errors in other programs.
<P> I also have a problem with SB 16 sound blaster. 'sndconfig' program
doesn't help!
<P> I am looking for anybody who can help me to make my modem and sound
blaster working with Linux.
<P> Please help!!!
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Tue, 2 Nov 1999 16:09:01 -0600
<BR>From: smita narla <<A HREF="mailto:snarla@cse.unl.edu">snarla@cse.unl.edu></A>
<BR>Subject: Re: your mail
<P> hello,
I'm doing a general survey on the testing techniques used in open
source.I've a questionnaire with some 12 questions.Since you are
a developer can you answer this questionnaire.I'm doin this for one of my
class projects and i need to send the questionnaire to some 200
developers.Can you send me the addresses of some other developers ?
<P> I'll be glad if u can send me some questions to improve my questionnaire.
<P> Thank you
smita
<P><STRONG>The Editor sent some suggestions, and Smita responded:</STRONG>
<P> Hello,
thanks for your response. i 've ghone to the sites u have mentioned in
you previous mail. i got some info but not exactly what i'm looking for. i
need some nice multiple choice questions for my Survey of testing
techniques in open source.Some of the questions I've found are:
<P> 2. When ever you make a minor release do you make a complete
regression tests and test for the bugs fixed in this released ?
<P> 3. For every major/minor release do you make tests for the bugs you
fix ?
<P> 4. Will there a any test planning carried parallel to development of
coding ?
<P> 5. What will be the acceptance criteria for the source you releasing
(based on the test results) ?
<P> 6. Are you satisfied that test you are planning to execute will
cover all the required conditions.
<P> But i dont think they will serve the exact purpose. Ineed some real good
multiple choice questions (which are easy to answer with out much thiking
from the developers point of view).
<P> I'll be glad if you could help with some nice questions and some mailing
lists of open source developers.
<P> thank you,
smita
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Wed, 3 Nov 1999 00:14:11 +0100
<BR>From: cabotzen <<A HREF="mailto:cabotzen@wanadoo.fr">cabotzen@wanadoo.fr></A>
<BR>Subject: a problem
<P> This is a multi-part message in MIME format.
<P> Hello i'm french and i love linux, but i try to install it on a notebook
with win98, i have a samsung's notebook. After i have installed all the
paquages, the instalation stopped when it wanted to reconize the mouse
and i can't continue the instalation. CAN YOU HELP ME PLEASE. Good buy
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Tue, 2 Nov 1999 18:14:44 -0500
<BR>From: Paul Nathaniel (NOL1NXP) <<A HREF="mailto:nol1nxp@ups.com">nol1nxp@ups.com></A>
<BR>Subject: Linux command questions
<P> fsck /usr: What does this command do? What is its NT equivalent.
<P> What is this command: cat /etc/passwd; and what is it's NT equivalent?
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Wed, 03 Nov 1999 07:44:42 CST
<BR>From: Jim Bradley <<A HREF="mailto:jbradley@msc.net">jbradley@msc.net></A>
<BR>Subject: slowwwww ftp and partition problem
<P> I have encountered two problems with linux (Mandrake 6.1) that I haven't
figured out how to overcome.
<P> The first problem is the logon speed for ftp. I have 3 desktops and a laptop
that I have networked with 100 Mbps ethernet. 2 of the 3 desktops are dual
booted with OS/2 and linux, the remaining desktop and the laptop are linux only.
If I try to connect to ftpd on linux with an ftp client on either OS/2 or linux,
there is an approximately 3-5 minute wait before a logon prompt is returned.
This is clearly not running properly! I can use a linux client to an OS/2 ftpd,
and promptly get the logon prompt. I've tried "renice" at both -20 and +20 using
KDE's task manager. What do I need to do to speed this up?
<P> The second problem is:
I have one machine with an 8 Gb drive partitioned into a 2Gb,6Gb, and 128k
swap. Mandrake 6.1 is installed on the 2Gb partition, hda1. The 6Gb partition,
hda3, is an ext2 partition. After linux boots, the 6Gb partition is mounted to
/mnt/hda3. The problem that I've encountered is that when copying files to
/mnt/hda3, it is the first partition that fills up, not the second. What's
happening here? I was using kdisk to monitor the disk size when mirroring
another site to /mnt/hda3, and it wasn't the correct partition that enlarged.
After this occurred, totally filling the smaller partition, I could no longer
umount the partition, either, getting a message "device is busy."
<P> Any help to solve either of these problems??
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Wed, 3 Nov 1999 10:49:32 -0600
<BR>From: Hunter, Kevin <<A HREF="mailto:Kevin_Hunter@AFCC.com">Kevin_Hunter@AFCC.com></A>
<BR>Subject: LinNeighborHood
<BLOCKQUOTE>
<P> Thu, 28 Oct 1999 14:54:48 +0100 <BR>
From: Network Desktop User <<A HREF=mailto:G.F.Wood@shu.ac.uk>G.F.Wood@shu.ac.uk </A>><BR>
Subject: Linneighbourhood<BR>
Hi, sorry to bother you with inconsequential mail but I think you of all
people should know this !! I'm looking for some software called
Linneighbourhood. It's a network neighbourhood browser for Linux. I have
scoured the net for it but to no avail !! Can you help??
</BLOCKQUOTE>
<P> http://www.bnro.de/~schmidjo/
<P>
<H4>From: Graeme Wood <<A HREF="mailto:G.F.Wood@shu.ac.uk">G.F.Wood@shu.ac.uk></A>:</H4>
I think their is a gnome program that lets you browse the net
neighbourhood as in win 9X. i do not know the name right now. but if you
want i will figure it out
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Wed, 03 Nov 1999 10:14:02 -0800
<BR>From: Chuck Newman <<A HREF="mailto:cnewman@cncnet.com">cnewman@cncnet.com></A>
<BR>Subject: Linux Communications
<P> Is there a Linux based communications program similar to pcAnywhere or
Carbon Copy? I need remote PC control. Don't need to transfer files.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Mon, 08 Nov 1999 16:18:50 -0500
<BR>From: Sunshine Smith <<A HREF="mailto:sunshine@margaritaville.com">sunshine@margaritaville.com></A>
<BR>Subject: Installing RH6.0
<P> I am trying to install RH 6.0 on a Thinkpad 760ED, unfortunately the
cdrom (Teac 44E) does not appear on the supported cdrom drives, does
anyone have any ideas other than buying an external (supported) cdrom
drive.
<P> Thank you
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Tue, 09 Nov 1999 10:36:19 +0200
<BR>From: Lucian Hanga <<A HREF="mailto:lhanga@saguaro.dnttm.ro">lhanga@saguaro.dnttm.ro></A>
<BR>Subject: about ESS Solo 1
<P> ESS Solo 1.
Unfortunately I have one !!!!
If smbd. kwon how to make it works !!!!
Please email me !!!!!!
<P> 10x
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Wed, 10 Nov 1999 16:54:20 -0000
<BR>From: Ben Huckel <<A HREF="mailto:ben.huckel@virgin.net">ben.huckel@virgin.net></A>
<BR>Subject: Virtual Terminals in windows
<P> Can you offer any advice....?
I am currently considering a project for my third year project of a
bsc(hons) in computer science which would implement virtual terminals
for windows 95/8......
Do you know if there is any info on this sort of thing, has it already
been done?
Any help or ideas would be greatly appreciated.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 11 Nov 1999 00:06:50 +0000
<BR>From: Nadeem Oozeer <<A HREF="mailto:nadeemooz@intnet.mu">nadeemooz@intnet.mu></A>
<BR>Subject: SDRAM Problem
<P>
I've got a PII with 128MB SDRAM PC100, with 8MB AGP onboard, running
windows and Linux Red Hat 6.0. I've been told that the AGP uses 8MB from
the SDRAM that's why on windows I get 120MB in system. On Linux however,
I get only 64MB of RAM in /etc/meminfo .... How can I get all the 128 MB
? I've tried append in lilo.comf, but it freezes my PC with strange
codes ?
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 11 Nov 1999 12:22:57 +0800
<BR>From: Brian <<A HREF="mailto:c6028408@comp.polyu.edu.hk">c6028408@comp.polyu.edu.hk></A>
<BR>Subject: How to set the Linux as a router!
<P> I would like to set a single PC as a router by using Redhat 6.0.
However, I find difficulties in finding the related topics in books or
journals. Can you tell me how I can find the related topics? Thanks!
<P> Best regards,
Yvonne.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 11 Nov 1999 13:47:55 -0600
<BR>From: anthony <<A HREF="mailto:aokrongly@galacticmarketing.com">aokrongly@galacticmarketing.com></A>
<BR>Subject: Looking for open-source programmers
<P> I need to start somewhere, so I'll start here. I am trying to find
programmers interested in developing a new piece of software. I thought I
would give Linux Open License types the first shot at it. We are looking
for this solution for our small company, but are willing to share it to help
defray development costs.
<P> Can you help direct me? Or am I spinning my wheels?
<P> The initial write up on the proposed application is
<A HREF=misc/mail/krongly.txt>attached</A>. I know this
isn't the normal way to develop software, but I wanted to give it a try.
<P> Anthony O'Krongly, Dir. of I.T.
<BLOCKQUOTE>
<P> [If you just want to throw a project idea out and see if anybody is
interested in helping, I'll put it in the Mailbag. (Which I'm doing now. :)
<P> If it's a critical piece of software for your company and needs to be
completed "soon" and with "professional quality", you might have a
look at www.cosource.com and www.sourcexchange.com instead. They
act as auction brokers between those willing to pay to help get
open-source software developed and those who wish to work on such
projects.
<P> The GNU Gnats program may partially meet your requirements. It allows
one to keep track of "job requests" in several categories, and to see
which ones have been followed up on and what needs to be done with the
remaining ones. The Tkgnats program is a GUI front-end. Perhaps this
could link into your ordering and accounting system somehow. -Ed.]
</BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 11 Nov 1999 19:41:36 -0000
<BR>From: ggg <<A HREF="mailto:nice@simpm.freeserve.co.uk">nice@simpm.freeserve.co.uk></A>
<BR>Subject: help please
<P> please can you help me im new to remote booting i have got the hardware
one network card with a boot rom and one with out so im fine on the
hardware side but how do i configure linux for remote booting i am new
to linux so i really have not got the foggiest.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 11 Nov 1999 17:20:41 -0800
<BR>From: Johnny Lam <<A HREF="mailto:truelightpip33@hotmail.com">truelightpip33@hotmail.com></A>
<BR>Subject: hi
<P> Hi, i'm very new to Linux but i got a question, it may sound silly but
pls help me with it. I've just install linux 6.1 as a server, but for
some reason i can't get the x-window to work, can u pls tell me how i
can use x-window as a server? thank you very much
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 11 Nov 1999 20:51:35 -0500
<BR>From: Gary R. Cook <<A HREF="mailto:grcook@erols.com">grcook@erols.com></A>
<BR>Subject: X-windows application for communicating over /dev/ttyS1 (COM2)
<P> Does anyone know where I can find a utility (with source code) that uses
an xterm window for communicating with a remote asynchronous device over
/dev/ttyS1?
<P> Thanks!!
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sat, 13 Nov 1999 03:18:19 +1100
<BR>From: Greg W <<A HREF="mailto:greg@ausit.com">greg@ausit.com></A>
<BR>Subject: Hello
<P> I am sure you get swamped with questions, now that I have acknowledged
that, I feel better about asking if you know, or know someone who can point
me to a good working example for ipchains for a machine that is standalone,
I have 64 IPs all routed through a PC, this PC is not Linux based, so I
dont want MASQ or ppp examples
<P> A straight up script to disallow spoofing, and everything else besides the
"normal" services (i can easily add or remove as necesarry)
<P> All examples seen so far dont work because they are based on like I said,
MASQ or ppp0 being present.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sat, 13 Nov 1999 20:42:18 -0500
<BR>From: zak <<A HREF="mailto:zak@acadia.net">zak@acadia.net></A>
<BR>Subject: Apollo P-1200 Inkjet Printer
<P> Today I purchased an Apollo P-1200 inkjet printer at
the local drug store (yes, drug store!), the main
attraction being it cost $90 *before* a $50 rebate!
This is supposed to be a new 'low-end' printer, using
H-P technology.
The downside is that the CD that came with it only
covers installation for 'doze.
Has any other LG reader purchased one of these? If so,
where can I find an appropriate Linux driver for it? I
tried the http://www.myapollo.com site, but all that's
there is also 'doze stuff.
If anyone knows the nearest this thing is with any H-P
driver, that would also be useful. I mainly use a
printer for printouts of txt and html documents, and
with Corel Word Perfect 8.0 for Linux.
Thanks in advance for any assistance.
Zak
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sun, 14 Nov 1999 02:43:43 -0000
<BR>From: George Christofi <<A HREF="mailto:george@slamdog.co.uk">george@slamdog.co.uk></A>
<BR>Subject: Getting linux to authenticate to nt domains.
<P> I want to get linux to authenticate to my NT network. As a newbie, I am
stunned by the complexity of the whole Linux thing. I find it easier and
more reliable to do things with NT Server. I am not thick (just MCSE
qualified), but cannot see how to get it to perform this seemingly simple
task.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sun, 14 Nov 1999 12:40:36 -0800
<BR>From: Kenneth MacCallum <<A HREF="mailto:tandk@primex.co.uk">tandk@primex.co.uk></A>
<BR>Subject: Linux memory woes
<P> Hi, I've just installed Red Hat 6.0 and it's not detecting all of my
memory. I tried typing linux mem=64M at the LILO prompt as recommended
but then the boot-up fails. As it is it only detects 14M or so of my
64M.
<P> I had a look in my bios, and I noticed a line saying that there is a
memory hole at 15M. I'm guessing that this is causing Linux to not see
memory above this, but I don't know why this "hole" is there. I had a
look in my motherboard manual (PC Chips M577) but it didn't mention
anything useful. This hole doesn't seem to upset Windows; is there
anything I can do to get Linux to work too?
<P> I also tried swapping my DIMMs around, thinking that if the hole was due
to a bad DIMM it might move up to 47M (?) but it doesn't.
<P> I've been searching about the web for some insight but I've had no luck
so far.
<P> Can you help?
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Mon, 15 Nov 1999 12:12:50 -0500
<BR>From: Bruce Kramer <<A HREF="mailto:bruce.kramer@PaineWebber.COM">bruce.kramer@PaineWebber.COM></A>
<BR>Subject:
<P> Editor,
I'm looking for some help in the Detroit, MI area.
I have a son, 16 yrs old - junior in high school, presently enrolled in
some special projects at school. One of which is to learn Linux. He
recently removed Windows from our home computer to install Linux. After
attempting this for four weeks now he is frustrated and ready to give
up. Rather than giving up and going back to Windows I thought that it
might be possible to find someone in our area who could help get Linux
up and operating on our computer. Any suggestions?
<BLOCKQUOTE>
[Look at <A HREF=http://www.linuxjournal.com>www.linuxjournal.com</A>
under "User Groups (GLUE)" and see if there are any contacts in your
area. -Ed.]
</BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Mon, 15 Nov 1999 22:00:36 -0500
<BR>From: Pierce C. Barnard <<A HREF="mailto:pbarnard@ultranet.com">pbarnard@ultranet.com></A>
<BR>Subject: Looking for the Korn shell
<P> Hi, I recently obtained Redhat V6.0 and I found out to my dismay, that it
does not have the Korn shell with it. Does anybody know where I can find a
copy of it? Thanks.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Wed, 17 Nov 1999 19:16:38 +0800
<BR>From: Yvonne Chung <<A HREF="mailto:yychung@doramail.com">yychung@doramail.com></A>
<BR>Subject: How to set a PC as a router with Linux6.0?
<P> Dear Sir/Madam,
<P> I would like to set a single PC as a router by using Redhat 6.0.
However, I find difficulties in finding the related topics in books or
journals. Can you tell me how I can find the related topics? Thanks!
<P> Best regards,
Yvonne.
--
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Wed, 17 Nov 1999 13:03:37 +0100
<BR>From: Harold Konijnenberg <<A HREF="mailto:hhkonijn@worldonline.nl">hhkonijn@worldonline.nl></A>
<BR>Subject: ipop3d/imap server problem
<P> Problem with IMAP/Ipop3d server
<P> I have a problem with getting the Ipop3d/Imap server to work.
I use the Imap 4.5 package on my Red Hat 6.1 system.
After installing RH 6.1 and configuring the system all services like
Samba, Apache, FTP, telnet are working fine.
But now I want to add a pop3 server. I checked my /etc/services file
and Imap and pop3 services are enabled here.
in the /etc/inetd.conf file the imap and pop3 services are not enabled,
so i uncomment de following lines
<PRE>
#pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
#imap stream tcp nowait root /usr/sbin/tcpd imapd
</PRE>
<P> After uncommenting these lines in the inetd.conf file i kill the
inetd proces to reload /etc/inetd.conf with the following command:
<PRE>
killall -HUP inetd
</PRE>
<P> When i try to telnet in to the linux box now by:
<CODE>telnet 192.168.1.254</CODE>
(my linux box) i can't connect.
FTP'ing into the linux box gives a problem with the in.ftpd daemon.
<P> When i restore the original /etc/inetd.conf all problems are disappeared
and eveything works fine again.
<P> I can't figure out what is the problem.
I know that the problem starts when changing the /etc/inetd.conf file,
so perhaps its some kind of security issue???
<P> Any help is very welcome,
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 18 Nov 1999 17:06:03 IST
<BR>From: nayab shaikh <<A HREF="mailto:nayabs@hotmail.com">nayabs@hotmail.com></A>
<BR>Subject: How to configure isdn on linux
<P> Hi friends,
<P> Can anybody of you guide how to configure isdn on linux.I have Red Hat linux
6.0 server installed on my computer.I have a 56.6 kbps ext modem ....also is
RADIUS is possible with it.(remote athentication dial in user service)....
<P> Waiting for your reply...
<P> Nayab
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sat, 20 Nov 1999 12:22:12 +0530
<BR>From: Sivaraman Manivasagam <<A HREF="mailto:sivsons@vsnl.com">sivsons@vsnl.com></A>
<BR>Subject: Regd Lexmark Printer Drivers
<P> I've recently installed Redhat Linux 5.2 am having a problem installing
my Lexmark Optra E ( PS Support ) Laser Printer .I have been to the
Lexmark site and there are no drivers for Linux.Any help in this matter
would be appreciated.
<P> Kindly mail to : sivsins@vsnl.com<BR>
a copy to : mani@amoebatel.com
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sat, 20 Nov 1999 19:24:56 -0500
<BR>From: GZukoff <<A HREF="mailto:Gzukoff@onebox.com">Gzukoff@onebox.com></A>
<BR>Subject: None
<P> I have stumbled upon your website and was exterely pleased!!! I am a
newbie to Linux but have been interested in alternate OS's for about 18
months after trying (in vain) to install FreeBSD. I have downloaded and
am installing Corel Linux 1.0 and was hoping you wil be doing a write up
regarding it son. I am anxious to see how it stacks up against the
other Linux releases.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sat, 20 Nov 1999 22:33:04 -0500
<BR>From: outofstep <<A HREF="mailto:outofstep@mindspring.com">outofstep@mindspring.com></A>
<BR>Subject: xwindows display problems?
<P> i recently installed redhat 6.1,, i have a voodoo banshee 2 graphics
card, and i get ditorted pixels on the screen when i scroll and move
windows... is there a driver update or something i need to fix this?
please help.
so far i love linux, and this is my only problem :)
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sat, 20 Nov 1999 21:27:52 -0700 (MST)
<BR>From: <<A HREF="mailto:steve@mailandnews.com">steve@mailandnews.com></A>
<BR>Subject: Question
<P> Hi
<P> I hope this is the right address to right to with a Linux question.
<P> I have a lot of Joliet format CD's made with DirectCD in Windows. Linux
can read the CD's, but on files with long names (Over 20 characters or so)
the filesize is dramatically misreported. 6-7 meg files are listed as 2-3
meg files. Linux can't see it all, and this of course means the file is
pretty much corrupt and of no use in Linux. The CD's are readable fine in
Windows, but not Linux. I've searched high and low and can find no answer
to this problem. I hope you can help.
<P> Thanks
<P> Steve - mr_drood@mailandnews.com<BR>
<BLOCKQUOTE><FONT SIZE=-1>
<STRONG>angry fruit salad</STRONG> (n.)
<P> A bad visual-interface design that uses too many colors. (This term
derives, of course, from the bizarre day-glo colors found in canned
fruit salad.) Too often one sees similar effects from interface
designers using color window systems such as X; there is a tendency
to create displays that are flashy and attention-getting but
uncomfortable for long-term use.
<P> JARGON FILE, VERSION 4.1.4
</FONT></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 18 Nov 1999 21:47:28 -0500
<BR>From: Edith & Steve Dolesch <<A HREF="mailto:nedes@sprint.ca">nedes@sprint.ca></A>
<BR>Subject: Fw: Disability Features.
<P> I just need to know if Linux has disability features like Windows (all
versions)? I'm a disabled person and use StickyKeys to write with one
hand if needed and the Numeric Pad to move the mouse cursor.
<BLOCKQUOTE> <EM>
[The <A HREF=http://www.ssc.com/mirrors/LDP/HOWTO/Access-HOWTO.html>
Linux Access-HOWTO</A> explains the
capabilities Linux systems have for people with disabilities. It says that
X-windows has a StickKeys feature, and the FVWM window manager can be
controlled without a mouse. -Ed.]
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Tue, 23 Nov 1999 10:30:53 +0800
<BR>From: ZHOUKM <<A HREF="mailto:zhoukm@red.semi.ac.cn">zhoukm@red.semi.ac.cn></A>
<BR>Subject: winNT+MSproxy+linux question
<P> My PC is in a WindowsNT-based LAN which has a MSproxy system, under win9x
session in order to connect to internet I have to login the WinNT domain,
and Of course the win9x is equiped with msproxy client. A linux system is
also installed in my machine, but how to visit the internet?
<P> Thank you
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Mon, 22 Nov 1999 21:55:00 EST
<BR>From: <<A HREF="mailto:Hlinlin@aol.com">Hlinlin@aol.com></A>
<BR>Subject: do you know the USB(network adapter 10T) can run under linux?
<P> Do you know the Universal serial bus with ehternet 's network adapter can work under Linux? or where we can down load driver?
<P> hope to get your reply and help
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Mon, 22 Nov 1999 21:10:13 -0800
<BR>From: Yunfei Deng <<A HREF="mailto:greenmoon@ureach.com">greenmoon@ureach.com></A>
<BR>Subject: Setup network printer
<P> I have RedHat 6.1 installed, but need to figure out how to use the
network
printer. The network printer is shared on a NT domain which is
available to use if I login in NT. Any tip is welcome.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Tue, 23 Nov 1999 11:16:44 -0600
<BR>From: Carlos Alarcon <<A HREF="mailto:carlos.alarcon@softtek.com">carlos.alarcon@softtek.com></A>
<BR>Subject: Hi!!! I have a big problem
<P> I just bought a new computer. It has an "on-board" video card, Intel 810
chipset. I couldn't configure X to work with this type of card. First, I let
Linux probed, it failed. Then I looked at the list, of course, it wasn't
there. Then I tried an unlisted card and configured it as a general svga, it
still failed. What to do now?
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Tue, 23 Nov 1999 21:09:22 PST
<BR>From: Edgar Henry <<A HREF="mailto:edgar_henry@hotmail.com">edgar_henry@hotmail.com></A>
<BR>Subject: Accessing previous partition (path 16 and 32)
<P> I am trying to install redhat linux 6.0 on my PC which is dual booting on
Windows 98 and windows NT and has a patition of Path 16 and 32. When I try
to install Redhat Linux choosing the workstation its automatically
installing and I cannot access my data anymore using the windows 98 or NT
since it is not recognizing the partition.
<P> It is possible for me to get my data from my previous windows.
<P> Thank you very much
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Wed, 24 Nov 1999 02:57:15 -0800
<BR>From: kevin hartman <<A HREF="mailto:kevinh@hsaeug.com">kevinh@hsaeug.com></A>
<BR>Subject: Direct Cable Connection between Win95 and Linux, by Thomas P. Smyth
<P> Would you happen to have a current e-mail address for Thomas P. Smyth,
author of Direct Cable Connection between Win95 and Linux?
<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">
Sat, 30 Oct 1999 17:47:57 +0100
<BR>From: Andy D Williams <<A HREF="mailto:andy.d.williams@btinternet.com">andy.d.williams@btinternet.com></A>
<BR>Subject: a complaint about issue 47
<P> Hello
<P> I am a regular reader of your gazette magazine who is using windows 95. I
download and extract your magazine onto a local disk for reading at my
pleasure and I find it very useful and informative about installing and use
of linux. I intend to move over to a unix like system permanently sometime
in the future and prefer to read your magazine on my windows hard disk while
I'm learning to get to grips with linux.
<P> So onto the complaint! How can I read your magazine if your tar.gz files
won't extract onto my hard disk! Why won't they extract or why won't issue
47 extract? Your issue 47 tar.gz appears to be using a dos/windows reserved
system name for a directory or filename! the lg/issue47/aux directory can't
be created on my windows disks because aux is one of those names. Assuming
you or your contributors have used dos and windows in the past why didn't
they know about these names in dos and windows?
<P> Are you trying to stop windows users from learning about linux?
<P> I have been able to read your excellent magazine from issue 1 to issue 46
without any problems and would like to continue until and after I am no
longer using windows as my primary operating system.
<P> Thank you very much
<P> Andy Williams
<BLOCKQUOTE><EM>
[Argh, I forgot <TT>aux</TT> is a reserved devide name under
DOS/Windows. This was corrected in early November. (The directory
name is now <TT>misc</TT>.)
<P> I also corrected
a link to a program listing in JC Pollman's and Bill Mote's article
<A HREF=../issue47/pollman.html>Backup for the Home Network</A>.
If you were unable to view these files earlier, please try again now.
Apologies to the authors of an excellent article which is being widely
read, judging from the number of messages I received about this link.
<P> Starting in issue 47, I have been moving all program listings into
their own text files rather than keeping them inline as part of the
HTML. This will hopefully be a convenience for readers who wish to
run the programs or borrow code from them. --Ed.]
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 12 Nov 1999 10:05:43 +0100
<BR>From: Joachim Krieger <<A HREF="mailto:krieger@the45er.de">krieger@the45er.de></A>
<BR>Subject: AW: Duplicate messages, unreadable listings, Pollman article
<BLOCKQUOTE><EM>
[The following are excerpts from a larger conversation. The issue is,
after there's been a correction to the </EM>LG<EM> FTP files, how does
one tell whether the file(s) s/he has are the old ones or the new ones?
If the file date at the main FTP site is newer, obviously the user has
an old file. But if the user's program or a mirror site
<tt>touch</TT>ed the file, its modification date could be misleadingly
recent. -Ed.]
</EM></BLOCKQUOTE>
<P> Is there any criteria that allows to distinguish the old issue47 from
the new one ? ( beside the file-date/time )
<P> OK - I got the fix and offer it on our server. ( http://www.the45er/lg
resp. ftp://ftp.the45er.de/pub/lg )
<P> Not your - but my problem is, that the .gz-file carries date/time-stamp of
my download - and that's Nov 11.
<P> Assume:
Someone has an old version - including the problems you've fixed. This
person is looking for the fixed file.
Question:
does this person have to download 'lg-issue47.tar.gz' and unpack it
<UL>
<LI> to find out he/she got the same (old) stuff
<LI> or he/she got that, whats wanted.
</UL>
File date/time can't be the criteria, because of touching by some clients...
<P><STRONG>The <I>Linux Gazette</I> Editor wrote:</STRONG>
<P> I'm not sure how to deal with that situation. I'll put it in the
Mailbag and see if somebody can come up with a solution. It might be
worth adding a changelog to the README, but that won't help you decide
whether the file you have is the old one or the new one. I could link
the new file to a different filename (lg-issue47-fixed-nov-2.tar.gz),
but that would cause too much clutter in the directory and may not be
welcomed by the mirrors.
<P> It seems like this is what the modification date is for, and if some
programs aren't preserving it on downloads, the solution is to fix those
programs or figure out how to work around them (e.g., set up an alias with
the correct command-line options to preserve the timestamp); otherwise, you'll
have even more problems later with other files, trying to figure out what is
up to date and what isn't.
<P><STRONG>Joachim responded:</STRONG>
<P> maybe one solution could be an aditianal note apended to one of the
files - or a new file with that.
The result should be a different filesize of the newly created tar.gz.
<P> Perhaps publishing the size of the old - and the size of the new file
may help.
<BLOCKQUOTE><EM>
[Readers, would this be helpful? Or exactly what information would
be most helpful to you? -Ed.]
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 05 Nov 1999 09:57:04 -0500
<BR>From: Darren and Kristen Morin <<A HREF="mailto:sarcasmo@choice.net">sarcasmo@choice.net></A>
<BR>Subject: Excellent job!
<P> Yeah, THIS is the kind of content I like to read.
<P> Hello my name is Darren and I have been a linux user for about two
years. While I may be past the point of out-and-out newbie, I'm
certainly NOT a Guru. The articles in the Nov.99 issue are excellent1
It is almost like you folks were picking my brains, because these were
the kinds of issues on my mind right now, especially the features on
security and running unix as a home user. More features like this,
please!
<P> Keep up the great job folks. I don't know if you get many encouraging
letters, considering this as one of them.
<P> Bye for now
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Mon, 1 Nov 1999 23:19:07 -0800 (PST)
<BR>From: Heather <<A HREF="mailto:star@betelgeuse.starshine.org">star@betelgeuse.starshine.org></A>
<BR>Subject: Re: New format: My 2 cents
<BLOCKQUOTE>
<P> Sorry, not to offend, but I really don't like the new Answer Guy
format! I prefer to read it in "The Whole Damn Thing" format.
</BLOCKQUOTE>
<P> TWDT is always available but please, read onward...
<BLOCKQUOTE>
<P> I find that I can pick out the things that interest me much easier
if I can scan the message contents as well as just the titles. I
usually just use the down arrow and pagedown keys to browse through the
articles.
</BLOCKQUOTE>
<P> November's style *not* a new format; this is a special edition. People
have been asking for the titles to be indexed, and it was clear that some i
of them did not spot the "Index to Past Answers" gadgets found at the
bottoms of the single messages (see October issue, any message, footer).
<P> There were a great many messages this month, but they will be published in
December's issue, in the same format that October's was.
<BLOCKQUOTE>
<P> I understand that the new format is more search engine friendly so
maybe a compromise is in order. How about a complete page in TWDT
format for each primary topic. That way those of us that like to scan a
whole series can do so without having to bounce back and forth between
individual articles and the index and the associated page reload
delays.
</BLOCKQUOTE>
<P> Not mentioned before is that cooking the TWDT version is a normal part of
my submission at the end of the month... Mike, this sounds like a request
to normally link that in at the Answer Guy Index level.
<P> Of course this returns us to torturing the search engines as it would hit
on TWDT.lg_answerNN.html for every amazing topic in linuxdom. (Because we
get a wide variety of questions each month, and so few search engines search
for the keywords being anywhere near each other.) I'm not at all sure
I favor this. This is why it hasn't been linked in even though my submits
have included TWDT format subfiles for a long time. Mike, Jim, any opinions?
<P> However, Rob, to address what you really seem to be asking for: No. Sorry.
I am *not* going to republish the whole of the past answer guy messages
in TWDT format by the topics I selected. It's weird enough that I only
picked one classification each, when several of them fit more than one.
Several of them are superseded long ago by changes in Linux itself.
It's an *index* ... that means it does *not* contain anything but pointers.
Since it doesn't point to any new content, it would be a waste of time
better spent on the newer messages. Please bear in mind I do this work
for LG on a volunteer basis. I have consulting work to do as well, and
would like to limit the time I spend on this.
<BLOCKQUOTE>
As a side note, I usually read the Gazette on my work machine which is
that other OS :-( which complicates the process of reading the tar.gz
version.
<P> -Rob-
</BLOCKQUOTE>
<P> That question is answered in the FAQ. WinZIP for "that other system"
handles tar, gzip, or tgz files without complaint. If you insist on
doing it the hard way I believe tar and gzip might have been ported as
commandline utilities, but you'll have to go find them yourself, perhaps
at winfiles.com.
<P> I hope you enjoy next month's column.
<P> * Heather Stern, HTML Editor for "The Answer Guy"
<BLOCKQUOTE><EM>
[I'm currently doing a lot of "under the hood" work on how the
</EM>Gazette<EM> is linked together. That is, writing scripts
to auto-generate the links and update them, rather than placing
the links by hand. Once this is complete, we can look at adding
links to make The Answer Guy more readable. But first, we have to
get used to the new Answer Guy format for a couple issues, so we can
see what is working well and what isn't. -Ed.]
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Tue, 16 Nov 1999 10:08:03 +0100
<BR>From: marco masini <<A HREF="mailto:m.masini@attrezzeriamarin.com">m.masini@attrezzeriamarin.com></A>
<BR>Subject: "great ideas" ??? :-))
<P> Hi guy
How are U? U make a good work with linux gazette
<P> Why U don't create an "index" by word (analitical index is better? :-) )
?
<P> I' m looking for emacs but I don't know how to find something about it on
your pages.
<P> Bye
<P> PS. I apologize for my englis
<BLOCKQUOTE><EM>
<P>[There is a search engine at the main site. Starting this
issue there is a "Search" link near the top of both the Table of
Contents and the Front Page.
<P> I typed "emacs" into the search dialog and got lots of links back.
-Ed.]
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Mon, 15 Nov 1999 11:43:26 -0800
<BR>From: Guillermo Schimmel
<BR>Subject: Re: I can't access ftp.ssc.com
<P> I can't access ftp.ssc.com anymore. Is my problem or the server is down?
<BLOCKQUOTE><EM>
[The server has PARANOID turned on, which means your (the client's)
forward and reverse DNS names must match or it won't allow access.
Could that be the problem?
<P> I asked our sysadmin if we could turn off the PARANOID feature,
since the files are public anyway. However, he was adamant that it's a
necessary security measure. -Ed.]
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sun, 31 Oct 1999 10:21:14 +0100
<BR>From: Paul Dunne <<A HREF="mailto:paul@dunne.dhis.org">paul@dunne.dhis.org></A>
<BR>Subject: to MIME or not to MIME?
<P> I can't take issue with your plea for writers-in to stop using HTML.
But I do take exception to this:
<BLOCKQUOTE>
<P> And if your mailer splits long lines by putting an "="
at the end of the line and moving the last character or two to the
next line, please try to turn that feature off. Also some mailers
turn punctuation and foreign characters into "" and "=E9" and the
like. I can't reformat those, since I don't know what the original
character was! -Ed. P.S. This the first time ever I have resorted
to blinking text, which I usually despise. I understand some mailers
don't allow you to turn off this obnoxious "multimedia" formatting.
But if you can, please do so.
</BLOCKQUOTE>
<P> If your mailer can't understand MIME, and translate a so-encoded
document it back into proper text when appropriate, then your
mailer is broken, and you need either to fix it, or get another
that isn't broken. It really is as simple as that.
<BLOCKQUOTE><EM>
[I use mutt, which is supposed to be one of the most MIME-capable
mailreaders around. -Ed.]
</EM></BLOCKQUOTE>
<BR><STRONG>From: Pepijn Schmitz <<A HREF="mailto:p.schmitz@xpuntx.nl">p.schmitz@xpuntx.nl></A></STRONG>
<P> You can use any extensions you want, as long as you configure your
webserver to use the text/plain MIME type for them. It's the mime type
that the browser uses to decide whether or not to display a file, not
the extension. Only when the web server doesn't provide a MIME type does
the browser try to guess at it using the extension.
<P> Also, regarding your request to turn off quoted printable characters
(, etc.), my question is: why? It's a lot better than leaving the
original 8-bit characters in, which may display very differently on your
screen than the author of the email intended, or may be control
characters which will screw up your terminal settings. Quoted printable
characters (and also the ='s at the end of a line) are part of the MIME
standard and should be converted back by any MIME compliant mail reader.
<P> HTML email is even better, because it allows you to include
international characters in a platform independent way (quoted printable
is not platform independent). If I were you, I'd upgrade to an email
reader that will handle all these things, such as Netscape Messenger.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
31 Oct 1999 14:00:10 -0800
<BR>From: Stephen R. Savitzky <<A HREF="mailto:steve@theStarport.org">steve@theStarport.org></A>
<BR>Subject: Re: Filename extensions for web program listings
<P> You [the <I>LG</I> Editor] write:
<BLOCKQUOTE>
My question is, which filename extensions are safe to use so that
they'll show up properly as text files in the browsers? I'm wavering
between using a language-specific extension (.c, .sh, .pl, .py, etc.)
vs putting .txt at the end of all of them (or .sh.txt, etc.) What about
listings that don't have an extension on the source file? They display
as text on my browser, but do they display properly on yours?
</BLOCKQUOTE>
<P> The correct solution is to use the correct language-specific extensions,
and to configure your server to give files with those extensions the
MIME type "text/plain". This means that the browser doesn't need to
guess (and guess wrong, in most cases) about what type the file really
is.
<BLOCKQUOTE>
Language-specific extensions would be the most ideal, because they
offer the possibility of syntax highlighting if the browser supports
it. (Does any browser support this?) However, I know I've tried to
view files on other sites that I know perfectly well are
text-readable, but the browser insists on downloading them rather than
viewing them because it doesn't recognize the type. (Of course, that's
better than the corollary, where it tries to view .tar.gz or .mp3
files as text.)
</BLOCKQUOTE>
<P> All browsers should use the type supplied by the server in the headers;
only if the server fails to provide a "Content-Type:" header is the
browser permitted to guess. If your server is Apache, for example, you
can perform the extension-to-type mapping in a ".htaccess" file in the
directory containing the listings -- see the Apache documentation for
details.
<P> Syntax highlighting can be done by providing two versions of the file,
one in plain text and the other (with, e.g., a ".c.html" extension) in
HTML as generated by a clever highlighting programm that you run once,
on the server side. Again, nothing is left up to the browser; it's all
done on the server.
<P><STRONG>From: Rich Brown <<A HREF="mailto:rabmar@FreeMars.org">rabmar@FreeMars.org></A>:</STRONG>
<P> My suggestion is xxxxx.c.txt, yyyyy.sh.txt, zzzzz.pl.txt, and so on.
<P> Keep up the great work. LG is one of my prime resources.
<P><STRONG>From: Anthony E. Greene <<A HREF="mailto:agreene@pobox.com">agreene@pobox.com></A>:</STRONG>
<P> I'd say no extensions should be used. Most web servers default to text/plain when sending unknown files to browsers. I've never seen a browser that supports highlighting, so language-specific extensions are of limited utility.
<P><STRONG>From: <<A HREF="mailto:helpdesk@buzco.penguinpowered.com">helpdesk@buzco.penguinpowered.com></A>:</STRONG>
<BLOCKQUOTE>
What about listings that don't have an extension on the source file?
They display as text on my browser, but do they display properly on
yours?
</BLOCKQUOTE>
<P> Not easily (am using StarOffice-5.1a).
<BLOCKQUOTE>
Language-specific extensions would be the most ideal, because they
offer the possibility of syntax highlighting if the browser supports
it. (Does any browser support this?)
</BLOCKQUOTE>
<P>[...]
<P> The answer to both objections is an easy-to-use, GUI, Mime setup
program. The other side of this is that so many software packages ignore
the system (and user for that matter) mailcap and mime-type files in
favor of their own.
<P> No extension should not be an option. Without an extension there is *no*
handle to decide what to do with the file. Add ".txt" to these.
<P> Where an extension is already present, leave it, but provide an
alternative of the same filename + ".txt". Thus "foo.c" would be
available both as "foo.ads" and "foo.ads.txt".
<P> Hope this helps,<BR>
== Buz :)
<P><STRONG>From: walt <<A HREF="mailto:walt@aye.net">walt@aye.net></A></STRONG>
<P> use the .txt extension
<P> and if you really feal froggy, call it ".text" so the point and click
crowd
doesn't get confused.
<P><STRONG>From: Vrenios Alex <<A HREF="mailto:Alex.Vrenios@motorola.com">Alex.Vrenios@motorola.com></A></STRONG>
<P> First, I believe that I can "set" my text editor to be called up when a
".sh" or a ".csh" suffix is found. But that might be oo much of a pain for
most people (even me) to do for every possible extension. Here's my
recommendation:
<P> Given mountfloppy.csh, a C shell script that mounds a floppy disk, use
mountfloppy_csh.txt
<P> Given convertIP.c, a C language program that converts an IP address from hex
to dotted decimal or back, use convertIP_c.txt
<P> The use of that underscore is visually descriptive, letting everyone know
exctly what kind of file it is intended to be, which the dot-txt tells your
OS which editor to bring up, for every one of these ascii files.
<P> Are there any files that you are considering setting up that are -not- ascii
text files? If not, maybe this will work. Good luck.
<P><STRONG>From: Jeff Rose <<A HREF="mailto:whisper@iag.net">whisper@iag.net></A>:</STRONG>
<P> Subject: Filename extensions for web program listings ...
<P> I'm enjoying reading this issue of LG on my Palm Vx after downloading your text version then using a small conversion util to format into PDBformat.
<P> Anyway, I vote for the age-old '.txt' extention for filenames. Why re-invent the wheel? And the less formatting - the better. We have _plenty_ of utilities for conversion: but TEXT vs. PDF, etc., .txt is the painless route.
<P> My $0.02.
<P><STRONG>From: Sylvia Wong <<A HREF="mailto:swon074@yahoo.co.uk">swon074@yahoo.co.uk></A></STRONG>
<P> Language specific extension wouldn't work coz it's too much hard work
to change the mailcap to browse a few program listing. I prefer language
extension + .txt. This way, when I want to save the file (I'm using
Netscape), I could just delete the .txt and don't have to type a .pl or
.c or whatever.
<P> Does Windose handle files with 2 extensions well? (Or maybe we don't
care about them at all as why would anyone read Linux Gazette using
windose).
<BLOCKQUOTE><EM>
[I decided to go the <TT>*.sh.txt</TT> route, using a language-specific
extension when one exists, but always ending in <TT>.txt</TT>. This
should ensure the files can be both read and downloaded verbatim on the
widest variety of web servers and browsers.
<P> BTW, a lot of people do read the <I>Gazette</I> on Windows
machines. -Ed.]
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 04 Nov 1999 18:49:22 +0100
<BR>From: <<A HREF="mailto:AntonioM.=?iso-8859-1?Q?Mu=F1oz?=Crespo">AntonioM.=?iso-8859-1?Q?Mu=F1oz?=Crespo></A>
<BR>Subject: Spanish tranlations of Linux Gazette
<P> Dear editor,
<P> As you said in your reply to Mr. Offret currently there's no Spanish
translations of Linux Gazette. However, the only Linux on-line magazine
translated into Spanish is Linux Focus (ok, they're your competitors,
but it's the only you can get in Spanish for free). There're also a
number of Linux magazines in Spanish but, as far as I know, they're all
printed editions and they're not free!. Here is a list:
<UL>
<LI> "Solo Linux"
<LI> "Linux Actual"
<LI> "Linux Journal" <-- Yes, it's published in Spanish since october or
september '99!.
</UL>
<P> All of them are published by the same publisher "Prensa Tecnica". I
don't know if you can get these magazines outside Spain.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sat, 6 Nov 1999 14:49:51 -0500
<BR>From: Gerard Beekmans <<A HREF="mailto:glb@dds.nl">glb@dds.nl></A>
<BR>Subject: Re: Compiling everything myself
<BLOCKQUOTE>
<P> Greetings, ladies and gentleusers.
I would like to compile my own Linux system. Not just the kernel.
Everything. I've got enough room and partitions on my
disk(s) to do it. Do not tell me do buy a distribution. Until now, I've
tried a lot of them - I count eleven on my shelf - I do not
like one of them the way I would like a self-created one.
I just need a place to start. All of the distributions must have started
at some point or another - how did they do it? Please
point to a location where info may be obtained. The LDP seem to provide
_nothing_ concerned to this task.
Every hint will be highly appreciated. I would also love to contribute
documentation of the process to the Free Software
community.
Every reader is invited to answer via email.
</BLOCKQUOTE>
<P> I currently am writing a series or articles that do this exact same
thing: building a new Linux distribution from scratch. Every program is
built from source (though you do need a working Linux to get it initial
working (eg: you need to have a running Linux + compiler to compile a
compiler so you can install that on the new system and start compiling
other things there).
<P> There's one downside for you I'm afraid: I'm writing these articles for
a Dutch/Belgium Ezine and therefore the articles are in Dutch
(surprised? ;) But wait, there's a good side: I'm also in the process of
translating these articles into English. I decided to start translating
these articles a week or so ago and I haven't started doing so yet (the
usual excuse; too busy with other things).
<P> I'm also thinking of giving them to the LDP so they can be distributed
as a HOWTO of some sort.
<P> Another reason I haven't started this translation yet is because I don't
know yet how usefull they would be (ie; if people actually are thinking
of doing this besides me). The Dutch articles aren't done yet either
because I got stuck after a while since I don't know 100% how to
configure every program and things like that (building from scratch for
me means also completely making your own sendmail.cf file and things
like the ruleset's are just a bit over my head at the moment).
<P> If you're interested picking up this project I'd be happy to start
translating the articles I already have written and then continue
finishing them with you (and possible other people who read this since I
CC'ed it to LG aswell).
<P> Hope to hear from you soon.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Wed, 10 Nov 1999 09:25:22 -0700
<BR>From: TJ Miller jr <<A HREF="mailto:tjmiller@datc.tec.ut.us">tjmiller@datc.tec.ut.us></A>
<BR>Subject: Will The Priests Please Refrain From Kicking The Heathens?
<P> Listen my children, and ye shall receive news, of a troublesome plague that
sweepeth across the Land of The Holy Penguin...
<P> Allow me to confess the blight which lay upon my soul: I am cursed by
professional necessity with an MCSE, but I want someday to hear the
revelation, the revelation that a Microsoft certification is about as
worthless, as worthless an ArcNet certification would be this very day.
Verily, I further want to have the luxury of looking upon my MCSE and saying
"there shalt not be further need to keepeth this foul brand upon my wretched
soul..." Can I get an "Amen!?"
<P> The problem remains that, in order to maketh a living, I have to prepareth
my high-school aged disciples for the IT industry at large...and that
necessitates teaching them the blasphemy that is Microsoft. (On a happy
note, I finally got permission to get decent Linux curricula going - it will
be out in January. Refer to
http://www.linuxgazette.com/issue47/lg_mail47.html for more information, and
pitch some more opinions at me - I'm about half-way down that page.)
<P> But enough of the digression, my dear flock...let us kneel together, to
meditate upon the source of my distress...
<P> However, let's do it in plain English...because all kidding aside, we've got
a growing and serious problem here:
<P> While perusing the web for ideas about what would make a good set of Linux
classes, I come across a disturbing trend, one that was once only an
insignificant bother, but hath now become enough of a problem to warrant
attention:
<P> Linux Over-Zealotry.
<P> I guess it began to demand notice (for me) during the badly-managed PCWeek
NT vs. Linux security tests. Now, I believe that PCWeek made a huge mistake
(they forgot an RPM patch), but, IMO, an honest one...could have happened to
anyone. The reaction sickened me... zealots everywhere began screaming about
how PCWeek was "Microsoft's Whore", and how they were suddenly a part of
some huge conspiracy to quash Linux... I then begin to look about the
various Linux forums, to see even more venom and flame, directed at anyone
who dares to say that perhaps Microsoft does have software that will do
certain things better than Linux.
<P> I have a newsflash for the zealots: In some cases, NT is better than Linux.
In Others, Linux is better than NT. It all depends on your specific needs
and circumstances. Any real-world IT manager with more than three working
brain cells will tell you the very same thing.
<P> Now, what motivated me to write this was an article I noticed, which read:
<P> "The people who complain about it not supporting 100% of games or whatever
don't seem to get what the alternative is. It's easy to say Linux is better
than a certain monoploy(sic) based OS but to put your money (ok it's free
but nevermind) where your mouth is, is something else."
<P> -James Rogers, recently in osOpinion
<P> Now, if I owned a business, didn't know much about computers, and needed an
OS that was compatible with all of the machines I have, the last thing I
want to hear is: "Too bad you Microsoft scum!"
<P> If I were Joe Six-Pack, wanting a decent OS at home to do my bills and send
the occasional e-mail to mom with (and an OS with all the cool games for my
kids, of course), the last thing I want to hear would be: "no way, d00d -
you gotta conform to the Linux way or else! We don't support yer fave games,
so deal with it!"
<P> You notice a trend here (at least I hope you do...): I used regular, typical
situations. If you want Microsoft's piece of The Market Pie, you're going to
have to woo these exact types of people away from their MS-run boxes...
<P> A Very Big Clue: You won't capture the heats and minds of MS users by
calling them "sheeple". You won't do it by insulting their intelligence. You
won't do it by shouting like a spoiled child whenever Linux gets bad press
(no matter the reason.) And most importantly, you certainly won't lure them
away form Microsoft by demanding that they do something the hard way, when
for only $85 they can do it easier with (insert big, bad, monopoly OS
product upgrade here.)
<P> You also won't do it by letting others perform these same indecent act
without nary a comment from members of the Linux community who happens to
catch them in the act...
<P> Now, it had always been (at least, used to always be) the case that Linux
adapted to needs - someone needed a driver for (insert oddball peripheral
item here), odds are that all he/she needed to do was ask, and there was
more than likely a driver written for it by (insert friendly programmer's
name here), and that it can be downloaded for free at (insert URL here).
<P> If Linux wants a bigger market share, this is exactly what needs to continue
happening....customer-focused, friendly service to the world community at
large.
<P> I recall - that there indeed is a perfect article for describing how we can
advocate, and by extension make Linux a dominant OS in this world...I
propose that we all read it at least once in our lifetimes:
http://www.ssc.com/mirrors/LDP/HOWTO/mini/Advocacy.html
<P> After all, if you want converts, you don't do it by kicking the heathens you
want to proselytize...especially not in a consumer-driven market such as
computer products.
<P> There is one other note: If you see anyone misbehaving, thereby giving
Linux a bad name, then go out of your way to show that person the
light...and in the process showing the world at large that the Linux
community won't tolerate childish behavior...which would make an ever better
impression on the undecided and the unknowing.
<P> Now go forth my precious flock, to spread peace and Open Source among the
perilous world in which we live...
<P> TJ Miller jr (tjmiller@datc.tec.ut.us) is a secondary education teacher in
the Utah ATE (read: Vocational Technologies) school system, specializing in
the instruction of Unix, Networking, and (because they make me do it) that
big, bad GUI-based OS we've all heard of. He putzes around with Linux far
more than is considered healthy, but enjoys the outdoors enough to go
hunting, skiing, hiking and fishing whenever weather and time permit.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Mon, 1 Nov 1999 13:35:49 +0800
<BR>From: Li Wei <<A HREF="mailto:leeway@kali.com.cn">leeway@kali.com.cn></A>
<BR>Subject: comment
<P> the 47th issue is the most boring lg i ever read. in other lgs, i can
always find some interesting articles.
<BLOCKQUOTE><EM>
[Which kinds of articles do you consider "interesting" and "boring"?
-Ed.]
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 11 Nov 1999 11:26:51 -0800 (PST)
<BR>From: Nicolas Chauvat <<A HREF="mailto:nico@ISI.EDU">nico@ISI.EDU></A>
<BR>Subject: Re: Duplicate messages, unreadable listings, Pollman article
<BLOCKQUOTE>
The [<I>LG</I>] FTP file for issue 47 is 2.6 MB. This is due to the
large number of graphics. Next month will have fewer graphics to bring
the file size down.
</BLOCKQUOTE>
<P> Graphics shouldn't be a problem. You have a lot more graphics in some web
pages and the whole thing is much lighter than this. The problem is that
most graphics are not compressed... well, they are, but not enough, or the
image depth is to high. Just make the authors follow the basic rules of
image making for the web and it will be fine, even if you have more
graphics.
<P> Use jpg for photos (lots of colors, no line or clear boundary)<BR>
Use gif for others (fewer colors, sharp boundaries)<BR>
Use png for either one.<BR>
Try with different compression levels (jpg) and different image
depth/palette (gif).
<P> There are programs out there that do that for you, i.e. take the image and
output the same with the best compromise size/quality. I don't remember
the names though, but they are probably listed on freshmeat or linuxberg.
<P> Hope this helps,
<P> -- Nicolas, Coordinator of the french translation of the Linux Gazette
<BLOCKQUOTE><FONT SIZE=-1>
Hi, I'm a deadly e-mail virus, please copy me into your .signature file
to help me spread. :: Bonjour, je suis un dangereux virus. SVP
copiez-moi dans votre fichier .signature pour m'aider =E0 me propager
</FONT></BLOCKQUOTE>
<BLOCKQUOTE><EM>
[There's one of those pesky <TT>=E9</TT>'s again. Wish I had a table
to convert it to its Latin-1 equivalent. Must be an
<STRONG>à</STRONG>. -Ed.]
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
31 Oct 1999 09:33:31 -0700
<BR>From: Eric Hanchrow <<A HREF="mailto:offby1@blarg.net">offby1@blarg.net></A>
<BR>Subject: Suggestion for TOC pages on the web
<P> I'm looking at http://www.linuxgazette.com/issue47/lg_toc47.html, and
I see many bulleted items, each corresponding to one article in the
current issue of Linux Gazette. It would make my life a tiny bit
easier if each of those items showed me, not just the article's title,
but the first few lines of the article itself. That way I could tell
if I wanted to read the entire article. As it stands, I have to
guess. This is especially true for the articles that appear to be
regular features.
<BLOCKQUOTE><EM>
[There isn't enough room in our current table of contents layout
for these lines. For the Mailbag, 2-Cent Tips and News Bytes, it
wouldn't make sense because these columns consist of a lot of small
items which are not related to each other, and thus, the first letter
is not representative of them all. Also, it would mean a lot more
manual editing to decide which lines to include.
<P> Thanks for the suggestion, though, and I'm open to hearing any
others you may have. -Ed.]
</EM></BLOCKQUOTE>
<!-- *** BEGIN copyright *** -->
<P> <hr> <P>
<H5 ALIGN=center>
This page written and maintained by the Editor of the <I>Linux Gazette</I>.<BR>
Copyright © 1999, <A HREF="mailto:gazette@ssc.com">gazette@ssc.com</A><BR>
Published in Issue 48 of <i>Linux Gazette</i>, December 1999</H5>
<!-- *** END copyright *** -->
<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="#distro">Distro News</A>
<li><a HREF="#general">News in General</a>
<li><a HREF="#software">Software Announcements</a>
</ul>
</td></tr></table>
</center>
<P> <hr> <P>
<!-- =================================================================== -->
<center><IMG ALT=" " SRC="gx/cover68.jpg" WIDTH=200 HEIGHT=268></center>
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
December 1999 <I>Linux Journal</I>
</font>
</H3>
<P>
The December issue of <A HREF="http://www.linuxjournal.com/"><I>Linux
Journal</I></A> is already on the newsstands.
This issue focuses on system administration.
<P> <I>Linux Journal</I> has articles that appear "Strictly On-Line".
Check out the Table of Contents at
<A HREF="http://www.linuxjournal.com/issue68/index.html">
http://www.linuxjournal.com/issue68/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/subscribe/index.html">
http://www.linuxjournal.com/subscribe/index.html</A>.
<P>
<font color="green">
For Subcribers Only</font>: <I>Linux Journal</I> archives are 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"><I>Linux Journal</I>/<I>Linux Gazette</I> Millenium Edition Archive CD-ROM
</FONT>
</H3>
<P> Can't find that April 1996 Linux Journal?
Someone borrowed the September 1998 copy?
<P> Now you can have it all! All of Linux
Journal (issues 1-56; 1994-1998) and
all of Linux Gazette (issues 1-45; 1995-1998)
on one archive CD.
<P> Click <A HREF=http://www.linuxjournal.com/subscribe/cdrom.html>here</A>
for more information.
<a name="distro"></a>
<p><hr><p>
<!-- =================================================================== -->
<center><H3><font color="green">Distro News</font></H3></center>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Caldera
</FONT>
</H3>
<H4> Antarctica IT and Caldera Team Up</H4>
<P> Framingham, MA, November 11, 1999 - Antarctica IT, Inc. and Caldera
Systems, Inc. will work together to provide Linux services in Boston
and New England.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Corel
</FONT>
</H3>
<P> <A HREF=http://www.ecommercetimes.com/news/articles/991103-5.shtml>
Corel Signs Linux OEM Agreement With PC Chips</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Libra
</FONT>
</H3>
<P> NORTH VANCOUVER, BC, November 2, 1999 - Libra Computer Systemstoday
announced the release of 'Linux by Libranet', based on Debian. The CD, includes
one year of support via email and fax, Linux HOWTO documentation and the
Debian-Guide, a concise, easy to follow guide to the use of the Debian Linux
Distribution. The CD may be purchased for $27.00 at <A
HREF=http://www.libranet.com>www.libranet.com</A>. Libra Computer Systems is a
privately held company based in North Vancouver, BC, Canada.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Red Hat
</FONT>
</H3>
<H4>Red Hat acquires Cygnus, promotes Matthew Szulik to CEO</H4>
See press releases at the <A HREF=http://www.redhat.com>Red Hat home page</A>,
and the commentary
<A HREF=http://www.linuxjournal.com/articles/briefs/032.html>
Red Hat acquires Cygnus</A>.
<h4>Red Hat to Support Leading Open Source Application</H4>
<P> Durham, N.C.--November 3, 1999--Red Hat, Inc., today announced
an expansion of its services program that will provide the consulting and
support enterprise organizations need for nearly all of the popular,
powerful, open source software applications used by enterprises worldwide.
<P> As the first step in the program, Red Hat's worldwide services group will
immediately offer expanded Service Programs for popular open source
software solutions, including top Internet software like the Apache Web
Server, Sendmail and Postfix. Apache is the number one Web server and runs
more than 55 percent of the Internet's Web sites. Sendmail is a messaging
solution that powers 80 percent of Internet Service Providers (ISPs).
<P> The sweeping initiative will expand in the coming months, embracing more
open source solutions. This broad support program delivers enterprise
users a single, trusted source for their open source computing needs.
<H4>Center for Open Source</H4>
<P> DURHAM, N.C.--November 1, 1999--Red Hat, Inc. announced
the formation of a new non-profit organization, the Red Hat Center for
Open Source (RHCOS), that will sponsor, support, promote and engage in a
wide range of scientific and educational projects intended to advance the
social principles of open source for the greater good of the general
public.
<H4>eSoft</H4>
<P> <A HREF=http://www.esoft.com>eSoft Inc.</A>, a company that develops and
markets the TEAM Internet Linux software suite for small businesses, has joined
Red Hat Inc.'s Development Partner Program.
<H4>Pact With RSA To Enhance Security</H4>
<P> Red Hat, Inc. has
entered into a new
<A HREF=http://www.ecommercetimes.com/news/articles/991112-7.shtml>
strategic agreement</A> with RSA Security, Inc.
to enhance security for professional users of
the Red Hat Linux OS package...
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">SuSE
</FONT>
</H3>
<H4>Photodex and SuSE Give Linux an Imaging Boost </H4>
<P> Austin, Texas -- November 8, 1999 -- <A HREF=http://www.photodex.com>
Photodex</A> Corporation, a leading
supplier of digital content management, imaging and multimedia software,
and SuSE Inc., announced today their partnership to provide
CompuPic Digital Content Manager software for the SuSE Linux operating
system.
<P> "CompuPic brings powerful, yet user-friendly imaging capabilities to
the SuSE Linux desktop, enabling SuSE Linux to compete head-on with
other platforms. These tools should not be taken for granted," said
Paul Schmidt, CEO, Photodex. "Professional web developers need
powerful tools to more easily develop and maintain web sites. Even
novice users find it easier to use the Linux desktop when familiar
applications are available. CompuPic solves these problems and more."
<H4> E-Commerce on SuSE's Portal</H4>
<P> Linux vendor SuSE announced this week that it has tapped
outsource solutions provider Digital River, Inc. (Nasdaq: DRIV)
to turn its online information portal into an
<A HREF=http://www.ecommercetimes.com/news/articles/991117-8.shtml>
e-commerce site</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Storm
</FONT>
</H3>
<H4> Storm Linux 2000 to Ship with VMware</H4>
<P> Vancouver, Canada - November 17, 1999 - Stormix Technologies,
Inc., announces that Storm Linux 2000 will ship with the VMware
evaluation binaries, a software technology that allows the
running of other operating systems, including Windows, from
within Linux.
<P> Stormix also announced Storm Linux will ship with a full version of
StarOffice, and a demo copy of Enhanced Software Technologies' BRU (Backup and
Restore Utility).
<a name="general"></a>
<p><hr><p>
<!-- =================================================================== -->
<center><H3><font color="green">News in General</font></H3></center>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">C.O.L.A news
</FONT>
</H3>
<P> <A HREF=http://TheStuff.net>TheStuff.net</A> is a new, online source for
information and tools encompassing all free Unix operating systems.
<P> <A HREF=http://segurinet.com>Spanish translation of the Linux
Administrator's Security Guide</A>
<P> <A HREF=http://www.etherboy.com/dns/chrootdns.html>
Dual chrooted Bind/DNS servers Mini-HOWTO</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">News from The Linux Bits
</FONT>
</H3>
<P> <I>LG</I> got a nice little mention in TLB issue 23
(<A HREF=http://www.linuxdot.org/tlb/24.html>http://www.linuxdot.org/tlb/24.html</A>):
<BLOCKQUOTE>
The latest edition of the "New York Times of Linux e-zines" - Linux
Gazette - was released today, featuring the usual crop of interesting
reading -- and plenty of it. Once again we get a few mentions. "Gee
ma, we're famous." :)
</BLOCKQUOTE>
<P> Other news in issue 23:
<UL>
<LI> <a href="http://www.ga-source.com/all/news/bits/09+29+1999/15:09:37.shtml">
Creative Labs To Embrace The Open Source Philosophy</a>
</UL>
<P> From issue 22
(<A HREF=http://www.linuxdot.org/tlb/24.html>
http://www.linuxdot.org/tlb/24.html</A>):
<UL>
<LI> <a href="http://www.zdnet.co.uk/news/1999/42/ns-10883.html">
ATI Embraces Linux</a>
<LI> <A HREF=http://www.toms.net/rb/home.html>Tom's Root/Boot Disk</A>
A good rescue disk to have. <EM>[Our sysadmins use it to do workstation
installs and can't sing enough praise of it. -Ed.]</EM>
<LI> <a href="http://www.linuxdot.org/nlm/part1/emacs1.html">Emacs Tutorial #1: Basic Editing</A>
"A complete command reference list. Perfect for printing off and having at your side whilst you struggle to
become proficient with this scary package."
</UL>
<P> TLB's Laurence Hunter wrote to the <EM>LG</EM> Editor:
<BLOCKQUOTE>
If there's ever an article that you particulary like in any issue (even
back issues) feel free to use it, change the formatting to your liking,
and edit it to your heart's content. You don't need to ask our
permission either. Like you we put together The Linux Bits purely for
fun so no copyrights etc exists on them and we ask nothing in return.
Anything to help out the Linux community is plenty payment for us.
</BLOCKQUOTE>
<BLOCKQUOTE><EM>[Thanks! I'll remember that. -Ed.]</EM></BLOCKQUOTE>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Upcoming conferences & events
</FONT>
</H3>
<P>
<b>The Bazaar</b>: "Where free and open-source software meet the real world".
Presented by EarthWeb.
December 14-16, 1999.
New York, NY.
<A
HREF="http://www.thebazaar.org/">http://www.thebazaar.org/</A>
<P> <b>SANS 1999 Workshop On Securing Linux</b>. The SANS Institute is a
cooperative education and research organization.
December 15-16, 1999.
San Francisco, CA.
<A
HREF="http://www.sans.org">http://www.sans.org</A>
<P>
</td></tr>
<P> IDG Communications France, organisateur de LinuxWorld, et Sky Events,
organisateur de LinuxExpo, unissent leurs efforts pour crer une
manifestation unique, <b>LinuxWorld/LinuxExpo</b>.
Cet vnement Linux ouvrira ses portes du 1er au 3 fvrier 2000, au Palais
des Congrs de Paris (Porte Maillot).
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Linux File, Print & CD Thin Server in Flash-ROM
</FONT>
</H3>
<P> KYZO has today released the commercial version of its hugely popular
PizzaBox Linux distribution, so called because a prototype server was
built in a Pizza Hut Takeout box - take a look -
<A HREF=http://www.kyzo.com>www.kyzo.com</A>
<P> In the first month the site took over 500,000 hits has recently
registered 75,000 in one day. Registered users that have downloaded and
run the free PizzaBox Server include both the Goddard Space Flight
Centre and the Jet Propulsion Laboratories at NASA.
<P> The commercial version is the same basic software as the free version,
which will still be available, but differs in one significant respect.
It is shipped pre-installed in a bootable Flash-ROM and comes with the
the circuit board you need to make it boot in any 486 (or above) PC.
With 10 times the life span of a hard disk, the package is aimed at
system builders who are fed up with having to send skilled engineers to
sites for days on end to re-install a File Server every time a hard
drive goes down.
<P> The system includes File, Print & CD sharing, remote access (for full
remote administration), UPS monitoring, Tape backup, Hardware
monitoring, APM. It will automatically accept both SCSI & IDE hard
drives and comes with a sophisticated, JavaScript enabled, web
management interface. It is aimed squarely at the SME market where
current offerings from the big players are overcomplicated for the SME
sector.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Cobalt Networks Selected by Allegiance Telecom
</FONT>
</H3>
<P> Cobalt Networks has announced that its RaQ 2 server appliance will be the dedicated web hosting platform for Allegiance Telecom customers. The RaQ 2 provides a way for ISPs like Allegiance to offer top quality dedicated web hosting with a low TCO and a quick ROI.
<P> This news comes on the heals of last week's introduction of the RaQ 3i, Cobalt's third-generation server appliance. The RaQ 3i rounds out Cobalt's product family by offering ISPs a high-end server appliance that can handle high-traffic Web portals, e-commerce, and application hosting at a price that the small to mid-sized business market can afford.
<P> <A HREF=http://www.cobaltnet.com>www.cobaltnet.com</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">E-Commerce Minute
</FONT>
</H3>
<P> <A HREF=http://www.ecommercetimes.com/news/articles/991104-3.shtml>
EBIZ Re-Launches TheLinuxStore </A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">E-Exams announces a Linux System Adminstration exam
</FONT>
</H3>
<P> E-Exams announces a Linux System Adminstration exam.
With E-Exams you can create customized technical exams to assess
potential employees. Among the many exams E-Exams is offers, is an exam
for Linux System Administrators. Companies who have signed-up for the
service, can have potential employees take a web based exam. Questions
range from beginner, to intermediate to expert. The results can be used
to determine whether the candidate should take the next step in the
hiring process.
The Linux System Administration exam is distribution neutral. It also
among the first exams which the company is offering. The company is
planning to create many more exams, including some distribution specific
nes, starting with a Red Hat Linux exam. Specific topics such as
networking with Samba are also in the works.
<P> You can learn more about E-Exams at:
<A HREF=http://www.eexams.com/>www.eexams.com</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">National Semiconductor announces Linux support for its geode webpad reference design
</FONT>
</H3>
November 15, 1999 - National Semiconductor Corporation today announced that
Infomatec AG will port its custom Linux-based basic platform Java Network
Technology (JNT) operating system to the National Geode WebPAD platform - a
complete hardware and software reference design for a wireless Internet
personal access device (PAD). This collaboration is the first result of an
agreement signed earlier this year by National and Infomatec to partner on the
development of information appliances such as set-top boxes, thin clients and
PADs.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Is Linux available on my platform?
</FONT>
</H3>
<P> The
<A HREF=http://www.ctv.es/USERS/xose/linux/linux_ports.html>
Current ports of the Linux OS</A> web page lists a wide variety of
architectures and platforms Linux is available on.
<P> The main ports are :
<P> - Special PCs and Near-PCs SGI-Linux (intel-SGI), MCA Linux
(MicroChannel), Linux/98 (NEC PC-98), LinuxIA64 (new 64bits-merced-
intel chip)
<P> - Motorola processors Linux/m68k (Motorola 68000), LinuxPPC (PowerPC)
<P> - SPARC chips S/Linux (Sun SPARCstations), UltraLinux (Sun UltraSPARC)
<P> - Compaq (former Digital) chips and equipments VAXlinux (VAX computers),
Linux/Alpha (Alpha processors)
<P> - Other RISC chips ARM Linux (ARM/StrongARM), Linux PA-RISC (HP's
PA-RISC), Linux/MIPS (MIPS chips)
<P> - Handhelds, Microcontrollers, embedded and other small systems LinuxSH3
(Hitachi SH3), Linux/Microcontrollers (Palm,Motorola ColdFire), ELKS
(8086-80286), VMELinux (VMEbus embedded systems), LinuxCE (to substitute
WindowsCE), PDAs in general
<P> - Microkernels and real-time MkLinux (Linux on Mach =B5-Kernel for Apple
PowerMacintosh, HP PA-RISC and x86), DROPS (Linux on the L4 =B5-Kernel and
Fiasco =B5-kernel), Real Time Linux (RTLinux and KURT)
<P> - Multimedia Computing, QLinux
<P> - SMP and clustering MOSIX for Linux (a bridge between SMP and MPP),
Beowulf Project (parallel clusters), Linux SMP(multiprocesor)
<P> - Misc ports Linux on IBM 370/390, Linux/AP+(Fujitsu AP1000+),
Linux-AS/400(IBM AS/400)
<P> - Cool things running Linux Not ports, but who cares?
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">"Linux Administration Made Easy" (LAME) guide
</FONT>
</H3>
<P> The "Linux Administration Made Easy" (LAME) guide, recently updated for
Red Hat 6.1, attempts to describe day-to-day administration and
maintenance issues commonly faced by Linux system administrators.
<P> This 130+ page guide is geared to an audience of both corporate as well as
home users, and attempts to summarize the installation and configuration,
as well as the day-to-day administrative and maintenance procedures that
should be followed to keep a Linux-based server or desktop system up and
running.
<P> LAME can be found at
<A HREF=http://www.LinuxNinja.com/linux-admin/>
www.LinuxNinja.com/linux-admin/</A> in a variety of document formats.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Linux Links
</FONT>
</H3>
<P> <A HREF=http://legalnews.findlaw.com/LegalNews/Microsoft/findings.html>
The legal findings in the antitrust case against Microsoft</A>
<P> An article that alleges
<A HREF=http://www.billparish.com/msftfraudfacts.html>Microsoft is operating a
pyramid scheme</A> to artificially boost its stock price.
<P> <A HREF=http://laughs.linuxlots.com/>
Parodies of Linux and its friends and enemies</A>:
mages,
webpage sendups, poetry, songs, articles, etc. Stars a Microsoft Myths spoof
page.
<P> <A HREF=http://www.linuxfool.com>Linux Fool.com</A> is a new web site
offering Linux users an unbiased forum for discussions and information sharing.
LinuxFool.com is an official mirror of the Linux Documentation Project.
<P> <A HREF=http://www.QuestionExchange.com>/www.QuestionExchange.com</A>
allows
users or system administrators to name their price for high-end tech support in
open systems -- Linux, Apache server, Sendmail, etc.
<P> How the <A HREF=http://parallel.park.uga.edu/~kirby/linuxnc.html>
University of Georgia English Department</A> is using Linux.
<P> A
<A HREF=http://www.linuxstart.com/~marius>Linux-Windows comparision</A>, and
other Linux-related stuff.
<P> <A HREF=http://www.linuxjournal.com/articles/briefs/033.html>Transmeta's Crusoe</A>
<P> <A HREF=http://www.ecommercetimes.com/news/articles/991118-9.shtml>
LinuxMall Re-Launches With New Look</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">C.O.L.A software news
</FONT>
</H3>
<P> <A HREF=http://freeweb.dnet.it/kmj/index.html>Kmahjongg 0.5 (beta)</A>
<P> <A HREF=http://www.csv.ica.uni-stuttgart.de/homes/js/vrmldemo/warbird.tgz>
Warbird</A> is "a new silly 3D game" using VRML.
<P> <A HREF=http://www.easysw.com/htmldoc>
HTMLDOC v1.8 HTML document conversion</A> to PDF, Postscript and indexed
HTML.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Calerga SysQuake Viewer
</FONT>
</H3>
<P> Lausanne, Switzerland, November 2, 1999 - Calerga announces today SysQuake
Viewer for Linux, a port to the Linux operating system of the software for
understanding systems by interactive manipulation of graphics.
<P> SysQuake is a ground-breaking application for understanding and designing
complex systems by the use of interactive graphics. Interactivity lets the
user manipulate graphics, observe how phenomena are related, and change
parameters to improve the design of a technical device. Understanding how
initial conditions affect a simulation or how the parameters of a feedback
controller determine the behavior of a dynamic system is made much
easier
than with the static graphics created by existing software.
<P> <A HREF=http://www.calerga.com/SQViewer/index.html>
www.calerga.com/SQViewer/index.html</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">EasyCopy screen capture utility
</FONT>
</H3>
<P> SAN JOSE, Calif., October 19, 1999 - AutoGraph International (AGI) is
demonstrating its commitment to the Linux community through our EasyCopy suite
of products. The Linux operating system has always played an immense role in
AGI and some of our developers are active in the Danish Linux community. In
fact, Linux engenders a decidedly emotional response from our normally cool,
analytical development staff.<BR>
<P> Enhanced X Capture offers full screen, selected window or an arbitrary
rectangular area capture. All original colors of the windows are preserved
with any combination of windows. Even when a window appears in false colors on
the screen due to color table overrun, it is captured in its original colors by
EasyCopy and printed correctly.
<P> <A HREF=http://www.augrin.dk/>www.augrin.dk</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">DataKeeper
</FONT>
</H3>
<P> <A HREF=http://www.os2.co.za/software> DataKeeper</A> by PowerQuest
(maker's of PartitionMagic) ensures backup protection by continuously
monitoring file activity in the background, and supporting compressed backups
on the fly. The user configures the programme and specifies backup methods to
backup drives, folders and files, and DataKeeper then follows these commands
automatically, and unobtrusively.
<P> Because DataKeeper creates a backup each time a file is modified,
scheduling is unnecessary.
<P> Any removable disk drive, network drive, hard disk or floppy drive is
supported by DataKeeper. And because it uses a high compression rate,
DataKeeper saves disk space.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">News from Loki Entertainment Software
</FONT>
</H3>
<P> TUSTIN, CA -- November 1, 1999 -- Loki announces
the Linux demo version of Railroad Tycoon II: Gold Edition.
<P> Loki released the full version of Railroad Tycoon II, along with The
Second Century Expansion Pack, last month to strong reviews. This
real-time strategy simulation game places gamers in a world of big
business, expansion and engineering in which all aspects of the railroad
industry can be controlled. It features a simulated stock market and
sophisticated economic system, and as the years progress, gamers must
solve modern problems such as the increasing demand for mass
transportation in major cities.
<P> The demo allows users to exercise their tycoon tendencies in five
different scenarios, and is now freely available for
<A HREF=http://www.lokigames.com/products/rt2/demo.php3>download</A>.
<P> TUSTIN, CA, November 3, 1999 -- Loki is now developing the Linux version of
Heroes of Might and Magic(tm) III.
<P> Heroes of Might and Magic III is the latest installment in the series of
top-selling, critically-acclaimed strategy games. This turn-based,
strategy war game set in the popular Might and Magic(r) fantasy world has
already captivated legions of PC gamers. It was awarded 5 out of 5 stars
from both Computer Games Magazine and the CNET Gamecenter, as well as an
Editor's Choice Award from Computer Gaming World Magazine.
<P> Heroes III will be available for the Linux operating system wherever
software is sold by mid-December.
<P> The Loki Hack hacks on the Linux version of Activision's Civilization:
Call to Power are <A HREF=http://www.lokigames.com/hack/patches.html>
now available</A> for public consumption.
<P> TUSTIN, CA -- November 4, 1999 -- Loki Entertainment announces today the
creation of a CVS server to facilitate public access to its Open-Source
projects.
<P> "One reason we've been successful is that we create Open Source tools to
replace proprietary code in our games," said Scott Draeker, president of
Loki. "We give these tools back to the community in the form of Open
Source projects. We hope other developers will evaluate our tools for
projects and choose to use them rather than the proprietary alternatives."
<P> The Loki CVS server allows the public to access the latest development
source code for Loki's several Open-Source projects, including SMJPEG, a
motion JPEG library, SMPEG, a MPEG-1 playback library, and Setup, a GUI
Installer. Other modules available for viewing include SDL, a
cross-platform multimedia development API, and Mixer, an enhanced version
of the sample SDL audio mixer.
<P> Loki's Open-Source projects are freely available for download from <A
HREF=http://www.lokigames.com>www.lokigames.com</A>, and are offered under the
GNU Library Public License (LGPL). A web interface for the CVS server is
available at <A HREF=http://cvs.lokigames.com>cvs.lokigames.com</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Other software
</FONT>
</H3>
<P> <A HREF=http://www.ecommercetimes.com/news/articles/991110-5.shtml>
Anti-virus software</A> from Central Command, Inc. and
Kaspersky Lab.
<P> <A HREF=>Max for Linux</A> is a new product for compiling and running Xbase
code on Linux-based computers, and is available for dowload.
<P> <A HREF=http://www.paulnolan.com>Photogenics</A> is an award-winning
graphics package, first released on the Amiga five years ago. It will soon be
available on Linux.
<P> <A HREF=http://www.cycas.de>Cycas</A> is a new 2D + 3D CAD software, based on GTK. In addition to typical
CAD functions, it offers special elements and techniques for architectural
design.
<P> The <A HREF=http://www.vital.com>CRiSP</A> visual text editor from Vital.
<P> <A HREF=http://www.sanface.com/projects.html>
txt2pdf</A> from Sanface converts text reports to PDF format. Can colorize
words using Perl regular expressions, add border to every page, print in
2-column format, and more.
<!-- *** BEGIN copyright *** -->
<P> <hr> <P>
<H5 ALIGN=center>
This page written and maintained by the Editor of the <I>Linux Gazette</I>.<BR>
Copyright © 1999, <A HREF="mailto:gazette@ssc.com">gazette@ssc.com</A><BR>
Published in Issue 48 of <i>Linux Gazette</i>, December 1999</H5>
<!-- *** END copyright *** -->
<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"
></a>PCI Winmodem --or--
<dd><A HREF="#tag/1"
><strong>
Why Winmodems Don't Work Under Linux, Yet!
</strong></a>
<dt><A HREF="#tag/2"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Do you know of any V.90 internal modems that are not winmodems? --or--
<dd><A HREF="#tag/2"
><strong>
Linmodems.org
</strong></a>
<dt><A HREF="#tag/3"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>LI_ DOH! --or--
<dd><A HREF="#tag/3"
><strong>
Major Hardware Problems
</strong></a>
<dt><A HREF="#tag/4"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
><strong>Clearing Lilo from MBR</strong></a>
<dt><A HREF="#tag/5"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>modem problems --or--
<dd><A HREF="#tag/5"
><strong>
Modem Problems on a Win '95 System
</strong></a>
<dt><A HREF="#tag/6"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Questions about Linux --or--
<dd><A HREF="#tag/6"
><strong>
Setting COM port speeds
</strong></a>
<dt><A HREF="#tag/7"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>virus protection --or--
<dd><A HREF="#tag/7"
><strong>
Virus Protection for Linux: A Non-Issue ... But....
</strong></a>
<dt><A HREF="#tag/8"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
><strong>Telnet trouble</strong></a>
<dt><A HREF="#tag/9"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Modem Noises --or--
<dd><A HREF="#tag/9"
><strong>Quiet, Modem!</strong></a>
<dt><A HREF="#tag/10"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
><strong>Dual Booting without Re-Partitioning</strong></a>
<dt><A HREF="#tag/11"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
><strong>Regards from Argentina</strong></a>
<dt><A HREF="#tag/12"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
><strong>re: Helpless (issue 45 of linuxgazette)</strong></a>
<dt><A HREF="#tag/13"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
><strong>Thanks!</strong></a>
<dt><A HREF="#tag/14"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>thanks answer guy! --or--
<dd><A HREF="#tag/14"
><strong>
Just Buy a REAL Modem
</strong></a>
<dt><A HREF="#tag/15"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Red Hat --or--
<dd><A HREF="#tag/15"
><strong>
Telnet gives: "Connection closed by foreign host..."
</strong></a>
<dt><A HREF="#tag/16"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>multiple root accounts --or--
<dd><A HREF="#tag/16"
><strong>
Multiple Root Accounts: Delegation
</strong></a>
<dt><A HREF="#tag/17"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>opl3 yamaha/SAx sound card --or--
<dd><A HREF="#tag/17"
><strong>
Soundcard Drivers for Win '98?
</strong></a>
<dt><A HREF="#tag/18"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Another "respawning" question --or--
<dd><A HREF="#tag/18"
><strong>
Author Responds to "gdm Murdered Mysteriously"
</strong></a>
<dt><A HREF="#tag/19"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Unable to login to SuSE --or--
<dd><A HREF="#tag/19"
><strong>
Upgrade to 6.2 from 6.1 Disables Login
</strong></a>
<dt><A HREF="#tag/20"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Doslinux --or--
<dd><A HREF="#tag/20"
><strong>
Euphoria
</strong></a>
<dt><A HREF="#tag/21"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
><strong>
Dell EIDE TR5 Tape Drive
</strong></a>
<dt><A HREF="#tag/22"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Some basic ftp questions --or--
<dd><A HREF="#tag/22"
><strong>
FTP Daemon: Special Requirements
</strong></a>
<dt><A HREF="#tag/23"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>RedHat Login Problems --or--
<dd><A HREF="#tag/23"
><strong>
login, su, and passwd dies: Everybody dies!
</strong></a>
<dt><A HREF="#tag/24"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Files invisible via Telnet? --or--
<dd><A HREF="#tag/24"
><strong>
Files invisible via Telnet?
</strong></a>
<dt><A HREF="#tag/25"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Thanks for the sendmail info in September's column --or--
<dd><A HREF="#tag/25"
><strong>
sendmail Masquerading, Configuration, and User Masquerading Revisited
</strong></a>
<dt><A HREF="#tag/26"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Segmentation Faults --or--
<dd><A HREF="#tag/26"
><strong>
General S. Fault
</strong></a>
<dt><A HREF="#tag/27"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Problem of Linux connecting to the Internet thro' MS Proxy --or--
<dd><A HREF="#tag/27"
><strong>
Linux Workstations Behind a Proxy/Firewall
</strong></a>
<dt><A HREF="#tag/28"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>LILO Lockup --or--
<dd><A HREF="#tag/28"
><strong>
LILO Stops at LI
</strong></a>
<dt><A HREF="#tag/29"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Need help !! --or--
<dd><A HREF="#tag/29"
><strong>
Protocols on top of Protocols: It's Protocols ALL THE WAY DOWN!
</strong></a>
<dt><A HREF="#tag/30"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Uninstall Linux --or--
<dd><A HREF="#tag/30"
><strong>
Uninstalling Linux
</strong></a>
<dt><A HREF="#tag/31"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>your web --or--
<dd><A HREF="#tag/31"
><strong>
Who is Jim Dennis?
</strong></a>
<dt><A HREF="#tag/32"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>FoxPro 2.6 on Linux --or--
<dd><A HREF="#tag/32"
><strong>
FoxPro 2.0 (SCO) Running Under Linux: Try Flagship?
</strong></a>
<dt><A HREF="#tag/33"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
><strong>
Coping with Bad Sectors
</strong></a>
<dt><A HREF="#tag/34"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Linux memory management --or--
<dd><A HREF="#tag/34"
><strong>
Homework Assignment: Write about Linux Memory Management
</strong></a>
<dt><A HREF="#tag/35"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Lt Modem --or--
<dd><A HREF="#tag/35"
><strong>
HP with LT Winmodem
</strong></a>
<dt><A HREF="#tag/36"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>about slackware --or--
<dd><A HREF="#tag/36"
><strong>
Linux to HP9000 Through RAS?
</strong></a>
<dt><A HREF="#tag/37"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>TCPMUX on Linux --or--
<dd><A HREF="#tag/37"
><strong>
TCPMux Revisited: You'll need a Daemon for it, or a Better inetd
</strong></a>
<dt><A HREF="#tag/38"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>probs --or--
<dd><A HREF="#tag/38"
><strong>
Overwrote NT with RedHat: Good Idea But Bad Move
</strong></a>
<dt><A HREF="#tag/39"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Need Advice --or--
<dd><A HREF="#tag/39"
><strong>
Partitioning Advice
</strong></a>
<dt><A HREF="#tag/40"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Unix emulator under Linux. --or--
<dd><A HREF="#tag/40"
><strong>
UNIX Emulation Under Linux? iBCS
</strong></a>
<dt><A HREF="#tag/41"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
><strong>PAM applications running as root (Was Re: WebTrends Enterprise Reporting Server)</strong></a>
<dt><A HREF="#tag/42"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Looking for help --or--
<dd><A HREF="#tag/42"
><strong>International Keyboard Mappings for</strong></a>
<dt><A HREF="#tag/43"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>rsh --or--
<dd><A HREF="#tag/43"
><strong>
Really Wants 'rsh' to Work. Really
</strong></a>
<dt><A HREF="#tag/44"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>RedHat 6.0 - various problems --or--
<dd><A HREF="#tag/44"
><strong>
Laundry List of RH 6.0 Problems or Hardware Blues
</strong></a>
<dt><A HREF="#tag/45"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>spying --or--
<dd><A HREF="#tag/45"
><strong>
More AOL Instant Messenger Spying
</strong></a>
<dt><A HREF="#tag/46"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>X respawning question and answer --or--
<dd><A HREF="#tag/46"
><strong>Another Solution, or a Different Problem</strong></a>
<dt><A HREF="#tag/47"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Using LILO to boot directly to dos --or--
<dd><A HREF="#tag/47"
><strong>Setting the LILO Default</strong></a>
<dt><A HREF="#tag/48"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>glibc --or--
<dd><A HREF="#tag/48"
><strong>Multiple Concurrently Installed Version of glibc</strong></a>
<dt><A HREF="#tag/49"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
><strong>lg #45: Limiting Internet Access through Cable Modems</strong></a>
<dt><A HREF="#tag/50"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
><strong>The Linux Startup Script?</strong></a>
<dt><A HREF="#tag/51"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Comcast and IPmasq --or--
<dd><A HREF="#tag/51"
><strong>Short names for Long Domains?</strong></a>
<dt><A HREF="#tag/52"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>serial port snooping --or--
<dd><A HREF="#tag/52"
><strong>Snooping on a Serial Port</strong></a>
<dt><A HREF="#tag/53"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Maximal mount reached; check forced --or--
<dd><A HREF="#tag/53"
><strong>Maximal Mount Count Reached</strong></a>
<br>plus, Ted T'so replies.
<dt><A HREF="#tag/54"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>QUESTION --or--
<dd><A HREF="#tag/54"
><strong>Selecting a Lotus Notes Platform</strong></a>
<dt><A HREF="#tag/55"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>RedHat 6.0:Telnet has no login prompt --or--
<dd><A HREF="#tag/55"
><strong>"telnetd connected:" But No "login" Prompt</strong></a>
<dt><A HREF="#tag/56"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>A Staging Server --or--
<dd><A HREF="#tag/56"
><strong>Staging Server on localhost</strong></a>
<dt><A HREF="#tag/57"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>CDR used in scsi emulation --or--
<dd><A HREF="#tag/57"
><strong>Mounting CDs on IDE CDRW Drives</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>I was working on a long, involved, probably tasty message to use
for my greetings this month. Unfortunately, it's long, involved, and I
think I want to rearrange it a bit, but don't have a lot of time because
we're heading down to L.A. to be with family -- specifically, a science
fiction convention we attend every year. </p>
<p>So, I'll aim for something less lofty. I'm finally getting a chance to
work a bit with my new improved workstation, and I must say I'm quite
pleased with console-apt (a curses interface for Debian's "apt" package
manager). We still have quite a mixed bag of distributions around the
house though. I think I might write an article comparing the various
package management styles available. I may or may not focus only on
Linux for that.</p>
<p>Sadly I get to spend even more time in Arizona after I get back. Most
people would call me crazy, but I like it a bit better when it's gray
and rainy -- reminds me of my youth in Oregon. </p>
<p>Happy Thanksgiving, everyone.</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"
>Why Winmodems Don't Work Under Linux, Yet!</H3>
<p><strong>From Chuck Winters on Thu, 23 Sep 1999
</strong></p>
<!-- ::
Why Winmodems Don't Work Under Linux, Yet!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
What is the difference between a winmodem and a regular modem and why
will it not work on a Linux box. I have been looking all over for this
information, and I can't find it. All I can find is that a Winmodem
doesn't work on a Linux box. Could you also put up some reference links
to some reading material on the web. Thanks.
</STRONG></P>
<P><STRONG>
Chuck Winters
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Check out <A HREF="http://linmodems.org"
>http://linmodems.org</A>
</BLOCKQUOTE>
<BLOCKQUOTE>
Also look at my recent rants on the topic using the
Linux Gazette search engine (WebGlimpse)
(<A HREF="http://www.linuxgazette.com/wgindex.html"
>http://www.linuxgazette.com/wgindex.html</A>).
</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"
>Linmodems.org</H3>
<p><strong>From Dick King on Thu, 23 Sep 1999
</strong></p>
<!-- ::
Linmodems.org
~~~~~~~~~~~~~
:: -->
<P><STRONG>
It's kind of annoying. You can't tell by looking at the ad or
sometimes even the box [unless you notice that it requires a
Pentium, but they don't always admit that]. I would rather buy an
internal modem because the only space i have on my cluttered desk
is inside the tower and my transient absorber has no room for one
of those little power cubes
<IMG SRC="../gx/dennis/smily.gif" ALT=";-)"
height="24" width="20" align="middle"> but it looks like i need to go
external to be safe.
</STRONG></P>
<P><STRONG>
-dk
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
><DL><DT>
Try following the FAQ link somewhere under
<DD><A HREF="http://linmodems.org"
>http://linmodems.org</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE>
There is an interesting discussion about Linux support
for Winmodems and a link to someone else's FAQ for
identifying the bloody things.
</BLOCKQUOTE>
<BLOCKQUOTE>
(I like the idea of "linmodem" as a generic cheap
telephony interface card. We'll see what it does
to performance and all that, when someone ships code).
</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"
>Major Hardware Problems</H3>
<p><strong>From Rian Kruger on Thu, 23 Sep 1999
</strong></p>
<!-- ::
Major Hardware Problems
~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Here is my problem.
</STRONG></P>
<P><STRONG>
I have been asked to fix a computer which uses LILO to Boot and is
partitioned WinNT, Linux. Fine and Dandy.
</STRONG></P>
<P><STRONG>
The problem is that one morning the computer desides not boot.
All I get is LI_ where it should say LILO: and then boot up.
</STRONG></P>
<P><STRONG>
I have a rescue disk but this was created when installing Linux on
another machine. Both Destributions are <A HREF="http://www.redhat.com/">Red Hat</A>.
</STRONG></P>
<P><STRONG>
I insert the disk and start the machine
</STRONG></P>
<P><STRONG>
So then I get LILO: it then says type rescue, which I did...
Alls well, till the machine asks:
</STRONG></P>
<Pre><STRONG><BlockQuote>
VFS: Insert root floppy disk to be loaded into ramdisk and press ENTER
</BlockQuote></STRONG></Pre>
<P><STRONG>
On pressing error things go well enough for long enough to give you a
false sense of security before hitting you with.
</STRONG></P>
<Pre><STRONG>
floppy0: data CRC error: track 0, head 1, sector 12, size 2
floppy0: data CRC error: track 0, head 1, sector 12, size 2
end_request: I/O error, dev 02:00, sector 29
</STRONG></Pre>
<P><STRONG>
repeatedly
</STRONG></P>
<P><STRONG>
If I try to boot linux from the same Boot disk.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
[crash messages ellided]
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Thats when I got desperate and tried to boot from a NT repair disk (also
created on another machine during installation)
</STRONG></P>
<P><STRONG>
And the Computer Says:
</STRONG></P>
<Pre><STRONG><BlockQuote>
The emergency Repair Disk is not startable.
</BlockQuote></STRONG></Pre>
<P><STRONG>
Repairing a damaged Win Nt Installation is an option available at the
beginning of the win NT Instalation.
</STRONG></P>
<Pre><STRONG>
To start setup bla bla bla....
</STRONG></Pre>
<P><STRONG>
If I take this root, am I going to have to reformat the entire machine,
will I loose all the Linux info, How do I save the situation. Please
help, sagely advice would be much appreciated.
</STRONG></P>
<P><STRONG>
Thanks
<br>Rian
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Sounds like a bad controller, or a dead DMA
chip. Might be some memory that went wacky.
</BLOCKQUOTE>
<BLOCKQUOTE>
It sounds like hardware failure.
</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"
>Clearing Lilo from MBR</H3>
<p><strong>From Norman Elliott on Thu, 23 Sep 1999
</strong></p>
<P><STRONG>
Just read the item on clearing lilo.
</STRONG></P>
<P><STRONG>
All I do is boot from a Dos ( 5 or greater ) boot disc and issue the
command:
</STRONG></P>
<P><STRONG><BlockQuote><Code>
fdisk <TT>/mbr</TT>
</Code></BlockQuote></STRONG></P>
<P><STRONG>
that seems to fix anything including boot sector viruses.
Maybe Linux fdisk would take the same parameter.
I enjoy your column, keep up the good work,
best wishes,
</STRONG></P>
<P><STRONG>
norm
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
The <TT>/MBR</TT> option was undocumented and only introduced in
MS-DOS 5.0. I don't remember the question to which you
were referring. If I didn't mention FDISK <TT>/MBR</TT> it was
probably because I was not assuming that the user was
trying to restore an MS-DOS 5.0 or later boot loader
to their system.
</BLOCKQUOTE>
<BLOCKQUOTE>
Linux fdisk is a different program and doesn't
touch the boot code in the MBR. It only works on the
partition tables (which comprise the last 66 bytes of the
MBR and possibly a set of others for extended partitions).
</BLOCKQUOTE>
<BLOCKQUOTE>
There are several Linux programs which do write boot
records. <TT>/sbin/lilo</TT> is the most commonly used. 'dd'
will do in a pinch (if you have a .bin image to put into
place).
</BLOCKQUOTE>
<BLOCKQUOTE>
BTW: don't count on <TT>/MBR</TT> to fix a virus. Some viruses
encrypt portions of your filesystem, thus causing major
problems if they aren't removed corectly. To prevent
infection by boot sector viruses, disable the "floppy
boot" options in your BIOS. You should only enable those
long enough to perform an OS installation or system recovery
and disable it immediately thereafter. To prevent viral
infect by "multi-partite" and "file infector" viruses,
stop running MS-DOS. To avoid MS Windows macro viruses,
avoid MS Office, MS Exchange and related software (with
virus^H^H^H^H macroing hooks built into them).
</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"
>Modem Problems on a Win '95 System</H3>
<p><strong>From Benedict, Kevin F on Thu, 23 Sep 1999
</strong></p>
<!-- ::
Modem Problems on a Win '95 System
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
I have a windows 95 system, and was using a U.S. Robotics 33 external modem.
It started working spiratically. I received a U.S. Robotics 56k external
modem as a gift. It was new. I hooked it up, and now my machine will not
boot up unless the modem is turned off, or the serial cable is unplugged.
The control panel identifiles com 2, . If I boot up, and then connect it,
and try to add it to the system, the system locks up. On boot up, the system
gets all the way to "starting windows 95" , access the cd rom drive light
briefly, then the modem trsl ight, then locks up. Microsoft says it is a
hardward problem, and U.S. Robotics took the modem in for service, and
returned it, saying nothing was wrong with it. I have replaced the cable,
with no effect. I can boot up in safe mode o.k.. Is there something that
could help me besides taking the machine into a shop? thanks for your
consideration.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Well, it's an external modem. So, it will probably run
under Linux. Of course the machine might have problems
running Linux --- so you might want to replace that and your
OS. I'd start by just replacing MS Windows '9x with
Linux or <A HREF="http://www.freebsd.org/">FreeBSD</A>. See if that works.
</BLOCKQUOTE>
<BLOCKQUOTE>
BTW: I'm the Linux Gazette Answer Guy. You might want to
read some of the back issues, or the FAQ, to understand why
my answer is so obtuse. More importantly you might want to
actually READ some of the web pages that come up when you're
desperately searching for support that your software vendor
clearly is not providing. If you'd READ any of the links
from which you found my e-mail address then you might have
seen that I don't DO Windows. Most importantly you if you
READ before you e-mail question you won't sent "off-topic"
questions to UNIX, MacOS, and other "answer guys" that don't
DO Windows.
</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"
>Setting COM port speeds</H3>
<p><strong>From Jason_Magill on Thu, 23 Sep 1999
</strong></p>
<!-- ::
Setting COM port speeds
~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Answer Guy,
</STRONG></P>
<P><STRONG>
I have an application that I am running that requires me to read the
serial port (Com2). The problem is that I need to read it at 9600
7-E-1. How would you go about doing that so when the system is
rebooted it will automatically read the serial port at 9600 7-E-1?
</STRONG></P>
<P><STRONG>
I could really use your help.
</STRONG></P>
<P><STRONG>
Thanks,
Jason
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
You should be able to do that with the following command:
</BLOCKQUOTE>
<blockquote><pre> stty 9600 parenb cs7 < /dev/ttyS1
</pre></blockquote>
<BLOCKQUOTE>
... or something like that.
</BLOCKQUOTE>
<BLOCKQUOTE>
Note you must redirect <EM>INPUT</EM> from the serial port to the
'stty' command. This is because the terminal settings are
accomplished through an<TT> ioctl()</TT>.
</BLOCKQUOTE>
<BLOCKQUOTE>
You might also look at the 'setserial' program. It
works a bit differently (and is Linux specific) whereas the
'stty' program has been around for UNIX for many years.
</BLOCKQUOTE>
<BLOCKQUOTE>
Note also that we use ttyS1 for MS-DOS COM2. This is
because Linux counts these devices from zero. There is no
guarantee that Linux will detect these ports in the same
order as MS-DOS, but usually COM2 should be <TT>/dev/ttyS1.</TT>
</BLOCKQUOTE>
<BLOCKQUOTE>
The parenb is to set "parity even" (I don't know why the
have the "b" there --- for "byte" maybe?) and the cs7 is
to set the "character size." There are many other 'stty'
settings available. Read the 'man' page for details.
</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"
>Virus Protection for Linux: A Non-Issue ... But....</H3>
<p><strong>From muzician on Thu, 23 Sep 1999
</strong></p>
<!-- ::
Virus Protection for Linux: A Non-Issue ... But....
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Subject: Re: virus protection
I cant find any references to that. I am installing 6.0 for the
first time, and need to know what to do.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Basically viruses are a non-issue for Linux and other forms of
UNIX. While it is technically possible to create them, the
multi-user design of UNIX-like systems coupled with the
widespread practices that separate "normal use" (access to
applications, and user data) from "administration" (use by
'root' user) make the OS very hostile to virus propagation.
</BLOCKQUOTE>
<BLOCKQUOTE>
You can write a virus, but it won't spread.
</BLOCKQUOTE>
<BLOCKQUOTE>
This is one of the benefits to the convention of logging in as a
"normal user" for most of your Linux work and reserving the "root"
account for upgrading and installing software. Another benefit
is that it limits the damage you'll do with a careless user
command.
</BLOCKQUOTE>
<BLOCKQUOTE>
This is not to say that Linux and UNIX are immune to viruses,
trojan horses and other forms of hostile code. Far from
it. There are many programs that run with "root" privileges on a
typical installation. Any of these <EM>might</EM> be "tricked" into acting
on an attackers behalf. They can be subverted, which leads to
the compromise of the whole system's security.
</BLOCKQUOTE>
<BLOCKQUOTE>
Any program that can be "tricked" (subverted) into running
foreign code, or otherwise compromise the user's and system
administrator's intentions has a bug. When we find these bugs
we fix them.
</BLOCKQUOTE>
<BLOCKQUOTE>
Finding the ways in which such programs can be commandeered by
hostile users, and by anonymous attackers over networking
connections is an ongoing effort by thousands of programmers
throughout the open source community. There is nothing Linux
specific about these efforts. <A HREF="http://www.openbsd.org/">OpenBSD</A> (<A HREF="http://www.openbsd.org"
>http://www.openbsd.org</A>)
is most renowned for it's accomplishment of a comprehensive audit
of its own code. Some of that code is being re-ported to Linux
(for example the BSDish FTP daemon that's included with some
distributions).
</BLOCKQUOTE>
<BLOCKQUOTE>
Linux and UNIX code auditors tend to focus on programs that are
run "SUID" (with the effective permissions of the program's
owner, rather than those of the owner of the executing process)
and with "daemons" (programs that act as "servers" for network
protocols and provide other local services). These are the most
obvious cases where programs are an interface between "security
contexts."
</BLOCKQUOTE>
<BLOCKQUOTE>
For a cracker (any anonymous attacker of your systems) the
"mother lode" is a network process that runs as 'root' and
has a remotely exploitable bug (often a buffer overflow, a
particular sort of bug where an expected input is filled with
an excessively long response which contains some hostile code).
Finding one of these allows a cracker to remotely assume control
of a whole system.
</BLOCKQUOTE>
<BLOCKQUOTE>
These sorts of bugs are not specific to Linux, or UNIX. They're
possible under NT and most other operating systems as well. They
are commonly detected on UNIX systems and quickly fixed (and
occassionally re-introduced in future versions and new programs).
It is believed that there are about as many exploitable bugs in
NT and MacOS servers as there have been in Linux and UNIX. They
usually show up as "hangs" or "abends" (abnormal ends) in the
services or on those systems, rather than complete, interactive
exploitation.
</BLOCKQUOTE>
<BLOCKQUOTE>
(The reasons for this have to do with the rather poor remote
administration features and somewhat more complicated programming
models of these other systems). So on the surface NT and MacOS
seem to "failsafe" (die without giving the attacker access) ---
although this is probably an illusion, waiting to be dispelled by
the next generation of crackers).
</BLOCKQUOTE>
<BLOCKQUOTE>
Again, these are NOT viruses. However, they have similar
results, someone runs code on your system that you didn't approve
and don't want.
</BLOCKQUOTE>
<BLOCKQUOTE>
So these vulnerabilities (especially buffer overflows in network
daemons like popd, imapd, mountd, ftpd, etc) are the greatest
risk to the security of your system. That's why companies put
up firewalls. That's why sysadmins tell you not to leave
"ports open" (these services available) on your systems, or to
use TCP Wrappers (pre-installed on every major Linux
distribution) to limit the networks and systems that can access
those services that you REALLY need.
</BLOCKQUOTE>
<BLOCKQUOTE>
I mentioned that security auditors focus on SUID progams and
networking daemons. This is a matter of priorities as those are
the most "attractive" points for an attacker to probe. However,
we have to be aware that security auditing and robust code is
necessary ANY TIME A PROGRAM ACTS AS AN INTERFACE BETWEEN/AMONG
DIFFERENT SECURITY CONTEXTS.
</BLOCKQUOTE>
<BLOCKQUOTE>
We must be concerned about bugs IN ANY CODE THAT PROCESSES
UNTRUSTED DATA.
</BLOCKQUOTE>
<BLOCKQUOTE>
(I'm shouting about this since it is a point that is often
overlooked, even by some of the most respected programmers that I
know).
</BLOCKQUOTE>
<BLOCKQUOTE>
For example, when you sent me e-mail. Your mail comes from
one security context (the outside world, from a complete
stranger). My mail user agent (MUA) acts as an interface between
you data and me. If there's a bug in my mailer (or the editor
that my mailer invokes when I want to respond) then you might be
able to craft a piece of e-mail that will crash my program, and
possibly even subvert it.
</BLOCKQUOTE>
<BLOCKQUOTE>
Such a "black widow" would be very hard to write for any UNIX
mailer (though the addition of MIME handling features did
introduce some such bugs in some mailers). It would also be
limited in its effect. It probably could only affect one mailer
under one operating system. It might not propagate through POP
servers and/or through certain POP clients (like 'fetchmail').
</BLOCKQUOTE>
<BLOCKQUOTE>
There are dozens of common MUAs (mailers) used by UNIX and Linux
people. So any such bug is likely to only hurt a few of them
(and not propagate from them to others). Likewise for many
other classes of programs.
</BLOCKQUOTE>
<BLOCKQUOTE>
The worst security risks are incurred by "monocultures" (a term
borrowed from agriculture). If we all grow the same strains of
the same crops, one blight and we all starve. If a few of us
grow one strain, others grow a different crop, etc --- then the
damaged is limited and the blight doesn't spread as far or as
fast (since the various fields of any one crop/strain are
separated by buffer zones).
</BLOCKQUOTE>
<BLOCKQUOTE>
When you think about the effects of Melissa, and WinExplorere.zip
and the many other MS Windows macro viruses you see the inherent
risks in monoculture. (You also see that Microsoft added
features to their office suite and mail client which make it
easy to write trojans and worms).
</BLOCKQUOTE>
<BLOCKQUOTE>
Computer systems and networks exhibit similar characteristics in
the face of hostile programmers.
</BLOCKQUOTE>
<BLOCKQUOTE>
(In other words diversity is good. Some of us should run <A HREF="http://www.freebsd.org/">FreeBSD</A>,
Solaris, and some completely non-UNIX operating systems that
aren't even C derived. Some of us should run Linux on x86,
while others use Alphas, PowerPCs, etc. Uniformity has some
short-term cost and training benefits --- but that way lies
great danger!).
</BLOCKQUOTE>
<BLOCKQUOTE>
How bad is this danger?
</BLOCKQUOTE>
<BLOCKQUOTE>
Well, I've been running an experiment. I administer a system (a
web server for a small literary organization, a non-profit) which
is exposed to the Internet and gets very little administrative
attention. I tend not to upgrade it until I have to. It's been
cracked twice in three years. It <EM>probably</EM> hasn't been cracked
on other occasions since I actually do have a sneaky trick up my
sleeve that allows me to detect and recover from the garden
variety "script kiddie" attacks fairly quickly (and remotely). I
do say "probably" since anyone that asserts that he or she has
"never" been cracked or that he or she is "sure" that they are
secure is really a bit foolish. You can have a very high degree
of confidence --- but certaintly in this case is a sin.
</BLOCKQUOTE>
<BLOCKQUOTE>
That is on a box which is effectively "wide open." With a
modicum of configuration (not running inetd, limiting access
to any services you <EM>must</EM> run, updating your packages as bug
fixes are announced, etc) you can limit your chances of being
compromised to very low values. Read the Linux Security HOWTO
and with about five percent of the effort described there you'll
eliminate well over ninety percent of the risk.
</BLOCKQUOTE>
<BLOCKQUOTE>
Note: Symantec is apparently shipping an anti-virus for Linux.
I've heard that Trend is also testing one. I guess these are
designed to catch the two strains of viruses that have been heard
of for Linux. I also gather that they will scan your system for
MS-DOS and Windows macro viruses (well over 10,000 of those).
This is to protect the clients that might be using your Linux
system as an FTP, Samba, or NFS server, and to save you from the
infection on your "other OS" on those multi-boot systems.
</BLOCKQUOTE>
<BLOCKQUOTE>
Personally I suggested to Symantec (back when I worked there)
that the best Linux product they could release would be a simple
terminal to the PCAnywhere package. Let me use a window on my
Linux system to remotely manage any MS Windows PC's that I have
to deal with.
</BLOCKQUOTE>
<BLOCKQUOTE>
They didn't listen, and now we don't need it. VNC (*) seems to
do the job well enough, and we may stomp out most of MS Windows
before Symantec could code up a new PC Anywhere client.
</BLOCKQUOTE>
<BLOCKQUOTE><ul><li>
(Apparently ORL got aquired, so VNC is now at:
<A HREF="http://www.uk.research.att.com/vnc"
>http://www.uk.research.att.com/vnc</A>)
There are also a couple of packages for UNIX (some with Linux
ports) that will scan your mail for embedded PC/MS-DOS viruses
as it's relayed through your mail server. This can help catch
many macro viruses (though the things are so easy to write that
the anti-virus software companies will always be a reactive
coping mechanism rather than a true solution).
</UL></BLOCKQUOTE>
<BLOCKQUOTE>
Remember, a virus is just a bit of programming code. It does
things that most recipients don't want --- but nothing short of a
brilliant AI (artificial intelligence) can be relied upon to
distinguish a virus from any other (benign) program. "Heuristic"
virus scanners have been written --- they haven't fared
significantly better than the traditional reactive signature
scanners.
</BLOCKQUOTE>
<BLOCKQUOTE>
(I used to work for Symantec, and for McAfee. I've read, heard,
and dealt with far more about PC and Mac viruses than I can
possibly type here).
</BLOCKQUOTE>
<BLOCKQUOTE>
Summary: Don't worry about viruses on your Linux box. They
aren't a problem. As for the security concerns, just
lock down those stray networking services and don't give accounts
out on your system to people you don't trust. If all you do is
add the following to your <TT>/etc/hosts.deny:</TT>
</BLOCKQUOTE>
<BLOCKQUOTE><blockquote><code>
ALL:ALL
</code></blockquote></BLOCKQUOTE>
<BLOCKQUOTE>
... you've done plenty to secure your home system from the
occasional portscan attack through your dial-up ISP connection.
</BLOCKQUOTE>
<BLOCKQUOTE>
If you read the Security HOWTO (*) by Kevin Fenzi and Dave Wreski
and follow most of their suggestions then you'll probably never
have a problem. Under Linux you can keep your system as
wide-open or just about as locked down as you like.
</BLOCKQUOTE>
<BLOCKQUOTE><ul><li>
(<A HREF="http://www.linuxdoc.org/HOWTO/Security-HOWTO.html"
>http://www.linuxdoc.org/HOWTO/Security-HOWTO.html</A>)
</UL></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"
>Telnet trouble</H3>
<p><strong>From Mathew on Sat, 25 Sep 1999
</strong></p>
Dear Jim
</UL>
<P><STRONG>
Your email did help me to solve the problem with the telnet in
linux. It works fine now. Thanks a million.....
</STRONG></P>
<P><STRONG>
I have a small doubt. Let me explain...... My network has a NT
server, LINUX server and 20 windows 95 clients. I followed your
instructions and added the address of all the clients into the
<TT>/etc/hosts</TT> file on the LINUX machine and voila the telnet worked
immediately.
</STRONG></P>
<P><STRONG>
But the NT server was the one who was running a DHCP server and
dynamically allocating the addresses to the clients. The clients
were configured to use DHCP and were not statically given and ip
addresses. I managed to see the current DHCP allocation for each
client and add those address into the <TT>/etc/hosts</TT> file on the LINUX
server but my doubt is what happens when the DHCP address for the
client changes? Then again we'll have to change the address in
the <TT>/etc/hosts</TT> file right? This seems silly. Is there anyway to
make the LINUX hosts file to automatically pick up the DHCP
address from the NT server?
</STRONG></P>
<P><STRONG>
Also another important thing is I am still unable to ping from the
NT server to the LINUX server using the name. It works only with
the IP address. Is there any way to make the NT DHCP to recognize
the LINUX server?
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Well, either you shouldn't use dynamic addressing
(DHCP) or you should use dynamic DNS. You could
also disable TCP Wrappers (edit your <TT>/etc/inetd.conf</TT>
to change lines like:
</BLOCKQUOTE>
<blockquote><pre>telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
</pre></blockquote>
<BLOCKQUOTE>
... to look more like:
</BLOCKQUOTE>
<blockquote><pre>telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd
</pre></blockquote>
<BLOCKQUOTE>
(and comment out all of the services you don't
need while you're at it).
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Thanks Jim for all your help....you've become my LINUX
guru.............
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Perhaps you should consider getting a support
contract (or joining a local users group). I may
not always respond as quickly nor as thoroughly
as you'd like.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Best Regards
<br>bob
</STRONG></P>
<!-- 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"
>Quiet, Modem!</H3>
<p><strong>From qed on Fri, 24 Sep 1999
</strong></p>
<!-- ::
Quiet, Modem!
~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hi,
</STRONG></P>
<P><STRONG>
I know this is a nitpicky thing, but I bounce back and forth between
Linux and that other operating system(Doors?), and the thing that's
bugging me is that I can turn off the modem noises in Win95, but I don't
know how to reroute them to <TT>/dev/null</TT> in Linux.
</STRONG></P>
<P><STRONG>
Later,
Jerry Boyd
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
><tt>
echo ATL0M0 > /dev/modem</TT>
</BLOCKQUOTE>
<BLOCKQUOTE>
... Actually you want to add the <tt>L0M0</tt> (those are zeros)
to your init strings in whichever Linux programs you're
using with your modem (like your PPP chat scripts).
</BLOCKQUOTE>
<BLOCKQUOTE>
(You many want to check with your modem to make sure it
understands these AT commands --- but it should if it's
even moderately Hayes compatible).
</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"
>Dual Booting without Re-Partitioning</H3>
<p><strong>From Hoyt on Fri, 17 Sep 1999
</strong></p>
<BLOCKQUOTE>
In addition to the suggestions you made, you could also look at Lnx4Win, a
Mandrake Linux product. Read more about it at
<A HREF="http://linuxforum.com/99/07/linux4win.html"
>http://linuxforum.com/99/07/linux4win.html</A>
</BLOCKQUOTE>
<BLOCKQUOTE>
Hoyt
</BLOCKQUOTE>
<!-- 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"
>Regards from Argentina</H3>
<p><strong>From Horacio Pea on Wed, 15 Sep 1999
</strong></p>
<BLOCKQUOTE>
Jim and Heather:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
I just want to thank you for the extraordinary job you both are doing
with the "Answer Guy".
The whole Gazette is wonderfull; I have all issues, but the Answer Guy
is the first thing I read. I have learned a lot with it.
Carry on !
<br>PS: my regards to all folks at the Gazette.
</BlockQuote></BLOCKQUOTE>
<HR width="10%" align="left">
<BLOCKQUOTE>Horacio Pea - Quilmes Oeste
<br>[[ Argentina ]]
</BLOCKQUOTE>
<!-- end 11 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/12"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 12 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>re: Helpless (issue 45 of linuxgazette)</H3>
<p><strong>From Alex Brak on Thu, 9 Sep 1999
</strong></p>
<BLOCKQUOTE>
Hi,
</BLOCKQUOTE>
<BLOCKQUOTE>
In the Answer Guy article titled "Helpless"
(<A HREF="http://www.linuxgazette.com/issue44/tag/33.html"
>http://www.linuxgazette.com/issue44/tag/33.html</A>), I think Leslie was
referring to Data Access Objects (DAO), a Microsoft data access API/toolkit.
AFAIK, there's no Linux/Unix version, as it is a MS-proprietary technology.
</BLOCKQUOTE>
<BLOCKQUOTE>
btw, the answer to his/her question is that DAO will work on Win98, as it
did with Win95 -- he/she will, however, have to install the latest DAO
runtime redistributable K to develop software using DAO. One should be able to find it on the
Microsoft Developer Network site: <A HREF="http://msdn.microsoft.com"
>http://msdn.microsoft.com</A>
</BLOCKQUOTE>
<BLOCKQUOTE>
I'm not sure why leslie sent this to you of all ppl
<IMG SRC="../gx/dennis/smily.gif" ALT=":)"
height="24" width="20" align="middle">
</BLOCKQUOTE>
<BLOCKQUOTE>
keep up the good work,
</BLOCKQUOTE>
<BLOCKQUOTE>
Alex Brak
</BLOCKQUOTE>
<!-- end 12 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/13"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 13 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Thanks!</H3>
<p><strong>From Moore, John R on Sat, 4 Sep 1999
</strong></p>
<BLOCKQUOTE>
Mr. Dennis:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
I just sent a pathetic pleading letter from a confused newbie (me)to an
author of a PPP HOWTO begging for some clarification on how to setup the
necessary files to communicate with my ISP using RH5.2.
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
In yet another desperate attempt to find the truth, I ran across you
response to some other poor souls similar dilema dated Tuesday August 31 of
this year.
</BLOCKQUOTE>
<BLOCKQUOTE>
Finally, some answers I think I can understand. You'd most certainly expire
laughing if you knew what I've been through to get on the net. Only now,
after reading your article, do I understand that I must create a script that
runs, rather than just typing in the commands at some terminal window.
</BLOCKQUOTE>
<BLOCKQUOTE>
It is no wonder that so many users run as fast as they can in the opposite
direction. In a time when the Linux community is trying to be "picked up"
by the corporate world and become a viable "player", I find it amusing that
so many in that same community can't understand why they get repelled rather
than attracted. I myself spent the past three weeks trying to configure my
one computer to establish a link on the internet without any success. Oh
sure, I was ble to get minicom to dial my ISP...ooohhh, look out big blue!
Watch out Bill Gates! C'mon corporate world...jump on the Linux band
wagon...we're great! I was beginning to suspect that most new members of the
Linux community are bald from pulling their hair out...I know I was getting
that way.
</BLOCKQUOTE>
<BLOCKQUOTE>
And then along comes your informative, albeit wordy (like myself) article
that will hopefully clear some of the haze. It is refreshing to read an
article that doesn't assume we all grew up in Berkley with nothing better to
g <TT>/etc/host</TT> for
hours on end. Still some assumptions were made, but hopefully, this time
next week, I'll be sending you email on a Linux box, looking over at my
Windows box with a sly grin, rather than visa versa with a look of total
frustration.
</BLOCKQUOTE>
<BLOCKQUOTE>
Sincerely,
</BLOCKQUOTE>
<BLOCKQUOTE>
John Moore
</BLOCKQUOTE>
<!-- 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"
>Just Buy a REAL Modem</H3>
<p><strong>From Jonathan J. Rakocy on Thu, 26 Aug 1999
</strong></p>
<BLOCKQUOTE>
Dear AnswerGuy,
</BLOCKQUOTE>
<BLOCKQUOTE>
Well thanks for your response answer guy. I apprieciarte the prompt reply.
</BLOCKQUOTE>
<BLOCKQUOTE>
To the tech store i go! Happy computing and maybe I talk to you again?
I f you have a mailing list add me if possible. Thanks again!
</BLOCKQUOTE>
<BLOCKQUOTE>
Sincerely
Jonathan Rakocy <lunar>
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQUOTE><CODE>
At 09:48 PM 8/25/99 -0700, you wrote:
</CODE></BLOCKQUOTE></BLOCKQUOTE>
<!-- ::<BlockQuote>
Just Buy a REAL Modem
~~~~~~~~~~~~~~~~~~~~~
</BlockQuote>:: -->
<P><STRONG><FONT COLOR="#000066"><EM>
Hello answer guy. My name is Jonathan. I am a tired windows user
</EM></FONT></STRONG></P>
<P><STRONG><FONT COLOR="#000066"><EM>
trying to educate myself on the in and outs of open source, and in my
case linux. i love the idea and concepts behind it. I've been
downloading pages and saveing links. buying books and reading till 3 in
the morning like now.
</EM></FONT></STRONG></P>
<P><STRONG><FONT COLOR="#000066"><EM>
so to my point. First i installed linux along side windows. i need
</EM></FONT></STRONG></P>
<P><STRONG><FONT COLOR="#000066"><EM>
it ( unfortunatly for school so far). ihope to learn how to work
around it. but as you probably know by now, i am quite green. I ve not
been able to connect ot the www. Now it comes down to the modem i
think. i have a winmodem and i ve recently learned that the y are junk.
after reading the essay on them in the gazette, my fears are
confirmed. do i truely lose? or is there something i can do? say
rewrite something? where can i find more in formation on this or do i
just go buy a new modem if i wnat to continue? thanks for your
patience. it is late and my eyes are blurry. have a good day.
Sincerely
Jonathan Rakocy
linux Supporter
</EM></FONT></STRONG></P>
<P><STRONG>
The answer is still:
</STRONG></P>
<P><STRONG><BlockQuote>
Just Buy a REAL Modem!
</BlockQuote></STRONG></P>
<!-- sig -->
<!-- end 14 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/15"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 15 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Telnet gives: "Connection closed by foreign host..."</H3>
<p><strong>From Martin Osvaldo Mauri on Wed, 13 Oct 1999
</strong></p>
<!-- ::
Telnet gives: "Connection closed by foreign host..."
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Dear James:
</STRONG></P>
<P><STRONG><BlockQuote>
I've had a problem with <A HREF="http://www.redhat.com/">Red Hat</A> 6.0 while trying to telnet from
one machine to another. All the configurationfiles seems to be
OK, but when I telnet, it gives me the message "connection
closed by foreign host..."
</BlockQuote></STRONG></P>
<P><STRONG>
Any suggestion?
best regards,
</STRONG></P>
<P><STRONG>
Martin O. Mauri
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
What does the syslog (<TT>/var/log/messages</TT>) say on
the server?
</BLOCKQUOTE>
<BLOCKQUOTE>
This message indicates that the remote system is
disconnecting you. Probably the remote system is
enforcing some security or access policy, or you're
missing a file (such as the <TT>/usr/sbin/in.telnetd</TT>
program).
</BLOCKQUOTE>
<BLOCKQUOTE>
I'd look at the <TT>/etc/hosts.allow</TT> and <TT>/etc/hosts.deny</TT>
files. I'd also look at the <TT>/etc/inetd.conf</TT> file.
</BLOCKQUOTE>
<BLOCKQUOTE>
In <TT>/etc/hosts.allow</TT> and hosts.deny there might be a
set of rules specifying a list of services (such as
in.telnetd). Each of these services can be associated
with a list of host/domain and network address patterns.
Entries in the hosts.allow are allowed to access the
specified services while entries in the hosts.deny
are disconnected (as you described). All attempts to
access any service are logged.
</BLOCKQUOTE>
<BLOCKQUOTE>
There are two groups of network services for which
access can be controlled through these two hosts files:
those that are dynamically launched through the 'inetd'
dispatcher (any lines that refer to <TT>/usr/sbin/tcpd</TT>), and
any "standalone" services which are linked to the "libwrap"
libraries (such as the portmapper daemon that's shipped
with most Linux distributions).
</BLOCKQUOTE>
<BLOCKQUOTE>
At a guess I'd say that your problem is not related to
entries in <TT>/etc/hosts.allow</TT> and <TT>/etc/hosts.deny.</TT> Most
Linux distributions ship with those as empty files; they're
just placeholders with comments.
</BLOCKQUOTE>
<BLOCKQUOTE>
It's more likely that you're actually missing your
<TT>/usr/sbin/in.telnetd.</TT> This should show up in your logs
as a message like: "unable to execute"
</BLOCKQUOTE>
<BLOCKQUOTE>
If that's the case: mount up your CD (on the server),
change to the RPMS directory and type a command like:
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQUOTE><CODE><BlockQuote>
rpm -Uvh telnet*.rpm
</BlockQuote></CODE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
... that should install the telnet server and client.
Red Hat 5.2 used to put those both in a single package.
I don't remember if RH 6.0 split those into separate
packages or not.
</BLOCKQUOTE>
<BLOCKQUOTE>
While you're thinking about this you should consider
avoiding telnet, rsh, and other insecure protocols. They
are not appropriate for use over untrusted networks.
The telnet protocol transmits all information as "plain"
text. This means that your passwords can be "sniffed"
as you type them into your login and 'su' prompts.
</BLOCKQUOTE>
<BLOCKQUOTE>
We won't even get into the many problems posed by
rsh/rlogin. Suffice it to say that these suffer from
a very weak authentication model in addition to being
"sniffable."
</BLOCKQUOTE>
<BLOCKQUOTE>
So, you may want to install a set of cryptographically
secure tools for your remote access needs. 'ssh' is a
secure (cryptographically enabled) program that works
like rsh and rlogin. It's the most popular tool for this
sort of work. There are also tools like STEL (secure
telnet) and ssltelnet.
</BLOCKQUOTE>
<BLOCKQUOTE>
Most of these are freely available. ssh version 2 is only
free for some forms of "personal use" while the older ssh
version 1.2 is free for a broader interpretation of
"personal use." STEL was developed by the Italian
CERT (computer emergency response team) and is ...
</BLOCKQUOTE>
<BLOCKQUOTE>
I've talked about the many free cryptography tools
available for Linux in a previous column
(The Answer Guy 35: FS Security using Linux
<A HREF="http://www.linuxgazette.com/issue35/tag/crypto.html"
>http://www.linuxgazette.com/issue35/tag/crypto.html</A>)
</BLOCKQUOTE>
<BLOCKQUOTE>
I hope most of those links are still valid. Meanwhile
let me assure you that the most useful site on the
Internet for getting free crypto packages is still:
Replay Associates (<A stub="http://www.replay.com"
>http://www.replay.com</A>).
</BLOCKQUOTE>
<p><em>[ Replay Associates has moved to
<a href="http://www.zedz.net/"
>http://www.zedz.net/</a>. Apparently ReplayTV really
wanted the name they had
<IMG SRC="../gx/dennis/smily.gif" ALT=":)"
height="24" width="20" align="middle"> -- Heather ]</em></p>
<BLOCKQUOTE>
They currently have one of my favorite Latin quotes
on their web page:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
"Quis custodiet ipsos custodes?"
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
Hope that helps.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 15 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/16"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 16 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Multiple Root Accounts: Delegation</H3>
<p><strong>From R Dalton on Wed, 13 Oct 1999
</strong></p>
<!-- ::
Multiple Root Accounts: Delegation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hello Answer Guy
</STRONG></P>
<P><STRONG>
I'm wondering if it is possible to setup multiple root
accounts on a linux system for more than one
unix admin to monitor a system ?
</STRONG></P>
<P><STRONG>
If this is possible how ?
also can they have different root directories ?
</STRONG></P>
<P><STRONG>
Thanks.
R Dalton
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
It is possible to have multiple accounts with
'root' privileges. The easiest way is to
edit the <TT>/etc/passwd</TT> file (using 'vipw') and
make extra copies of the line that starts with
"root" (the root account entry).
</BLOCKQUOTE>
<BLOCKQUOTE>
Then you edit the login name field (the first one),
and the full name (GECOS) field, the home directory
field, and the shell field. Then you issue the
'passwd' command to set each of the initial passwords
for each of these.
</BLOCKQUOTE>
<BLOCKQUOTE>
Example (excerpt from an <TT>/etc/passwd</TT> file):
</BLOCKQUOTE>
<blockquote><pre>root:x:0:0:root:/root:/bin/bash
toor:x:0:0:Alternative Root Acct:/root:/bin/bash
ruut:x:0:0:Cracker Jack:/root:usr/bin/pdksh
jonroot:x:0:0:Jon Doe:/home/jon/root:/bin/bash
tomroot:x:0:0:Tom Boote:/home/tom/root:/bin/bash
jillroot:x:0:0:Jill Tedd:/home/jill/root:/bin/tcsh
jimd:x:500:123:Jim Dennis:/home/jimd:/bin/bash
</pre></blockquote>
<BLOCKQUOTE>
In this example I have the customary root account
followed by 'toor' ("root" backwards) and 'ruut'
(punny spelling of "root"). Then I have a set of
root equivalent accounts for Jon, Tom, and Jill.
</BLOCKQUOTE>
<BLOCKQUOTE>
I've followed those entries with a token "normal"
user account for comparison. The only important detail
is that the 3rd field on the root equivalent accounts
is set to '0' while all non-root accounts have other
numbers (UIDs).
</BLOCKQUOTE>
<BLOCKQUOTE>
All kernel and filesystem data structures that store and
manipulate ownership (of files, processes, etc) and check
permissions use the numeric UID. The <TT>/etc/passwd</TT> file is
the primary way to map names to UIDs and vice versa.
</BLOCKQUOTE>
<BLOCKQUOTE>
Note that this works in any form of UNIX. However,
it is not necessarily the best way to do things.
Some programs will do get a login name by looking up
the UID. When we have non-unique UIDs, we can confuse
those programs (of course, you probably shouldn't be
running those programs as 'root' anyway).
</BLOCKQUOTE>
<BLOCKQUOTE>
There are other potential problems with this strategy.
Obviously having more people and more passwords that
give the same level of access increases the risk that
unauthorized people will guess or steal those passwords,
or trick one of the admins into doing "bad things"
(social engineering). Also this mechanism provides
no tracking of who did what. There is no way to
distinquish between what jillroot and tomroot did (since
they have the same UID --- which is all the system uses
for marking file ownership and checking privileges).
</BLOCKQUOTE>
<BLOCKQUOTE>
A better way for most situations is to install ' <TT>sudo</TT>'
</BLOCKQUOTE>
<BLOCKQUOTE>
The sudo package allows you to selectively give
access to specific users and groups, allowing them to
execute specific programs and with specific options.
The users run the 'sudo' command, which prompts them
for their own (normal user account) password.
</BLOCKQUOTE>
<BLOCKQUOTE>
In your case you might just start by installing sudo
and configuring it to allow access to a command
shell (<TT>/bin/sh</TT> and/or <TT>/bin/bash</TT>). That's pretty
simple. It effectively gives you the benefits
of the multiple account entries (though it doesn't
set up separate home directories). One advantage
is that it does logging of who used which sudo commands
at what time.
</BLOCKQUOTE>
<BLOCKQUOTE>
(Obviously a 'root' user can edit the local syslog
entries and can stop, restart, and resplace the local
syslogd daemon to "cover his tracks" --- 'sudo' to
root access doesn't protect you from unreasonable
expectations. But the logging can help a bit).
</BLOCKQUOTE>
<BLOCKQUOTE>
As you more clearly define the precise operations
that you need to delegate; you can edit your
<TT>/etc/sudoers</TT> file to more precisely limit your users
and groups to those specific programs and scripts
that they need.
</BLOCKQUOTE>
<BLOCKQUOTE>
The sudoers file is relatively to understand.
</BLOCKQUOTE>
<BLOCKQUOTE>
The only confusing part is that its entries refer to network
hosts and "netgroups" (a Sun NIS concept). This is intended
to allow sites to create a single <TT>/etc/sudoers</TT> file and
distribute that to all of their systems. The reason I found
this confusing when I first installed 'sudo' is that 'sudo'
itself doesn't providing any networking or distribution
mechanism (and the man page doesn't actually explain <EM>why</EM>
they put these hostname references there or how you'd use
them). It assumes that the sysadmins using the package
will want to create a uniform sudoers file and know how to
do it (through rdist, ssh/scp, rsync, etc).
</BLOCKQUOTE>
<BLOCKQUOTE>
cfengine is another package you might want to consider.
It has nothing to do with authority delegation (giving
out root privileges to more users), but may be useful for
automating your system monitoring and configuration
tasks.
</BLOCKQUOTE>
<BLOCKQUOTE>
cfengine is a host configuration utility. It implements a
language to describe certain sorts of system administration
policies and corrective actions. It's an intriguing
concept that I've only played with a little bit. However,
it is gaining popularity in sysadmin circles (along with
the healthy respect that one reserves for a loaded firearm
--- one mistake in a cfengine script can make thousands of
changes on hundreds of hosts).
</BLOCKQUOTE>
<!-- sig -->
<!-- end 16 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/17"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 17 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Soundcard Drivers for Win '98?</H3>
<p><strong>From Adam Moore on Tue, 12 Oct 1999
</strong></p>
<!-- ::
Soundcard Drivers for Win '98?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
hello i'm currently trying to find a driver for the OPL3
YAMAHA/SAx sound card for win98 any help you can give me would be
appreciated.
</STRONG></P>
<P><STRONG>
thanks
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I don't do (MS) Windows. Contact Microsoft, or your
sound card manufacturer, or your local retailer.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 17 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/18"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 18 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Author Responds to "gdm Murdered Mysteriously"</H3>
<p><strong>From Martin K. Petersen on Tue, 12 Oct 1999
</strong></p>
<!-- ::
Author Responds to "gdm Murdered Mysteriously"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><BlockQuote>
Sorry about the delay. I've been attending Linux Kongress the past
week.
</BlockQuote></STRONG></P>
<P><STRONG><FONT COLOR="#000099"><EM>
The fact that the version of <A HREF="http://www.gnome.org/">GNOME</A> gdm that shipped with <A HREF="http://www.redhat.com/">Red Hat</A>
6.x can't gracefully handle (clean up after) an inadvertant
shutdown or other mishap is very disappointing.
</EM></FONT></STRONG></P>
<P><STRONG>
Well, contrary to common belief X display management isn't trivial at
all. Since gdm is a complete redesign/rewrite of xdm, it is bound to
have problems. I have never tried to conceal the fact that gdm has
issues. It even says so on the web page.
</STRONG></P>
<P><STRONG>
That being said, gdm works ok for local display management, provided
the X server is relatively well behaved (i.e. not buggy).
</STRONG></P>
<P><STRONG><FONT COLOR="#000099"><EM>
The fact that the version of GNOME gdm that shipped with Red Hat
6.x can't gracefully handle (clean up after) an inadvertant
shutdown
</EM></FONT></STRONG></P>
<P><STRONG>
Yes it can. You're speculating.
</STRONG></P>
<P><STRONG>
I find it disappointing that a person like you, who has been in the
Linux business for several years, resorts to spreading FUD. Don't
answer questions, if you don't know the answer.
</STRONG></P>
<P><STRONG>
The right answer here, like in 99% of all other cases concerning
system daemons, would be to consult the syslog.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I believe I did consult the syslogs. I
remember that I did have to remove some sort of
lock file or something before I could get gdm working
again (but I don't remember the details).
</BLOCKQUOTE>
<P><STRONG><FONT COLOR="#000099"><EM><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I did NOT see this question listed in their FAQ (which surprises
me, since I would think that this would be a very commonly
encountered problem among RH6/GNOME users).
However, I did find a link to a bug tracking system. From there I
searched for messages related to our "murdered mysteriously"
problem. There was some indication that Martin K. Petersen is
the contact for gdm and that he posted patches to resolve that
(and several other) gdm issues.
</EM></FONT></STRONG></P>
<P><STRONG>
The "murdered mysteriously" message is a non-critical warning, not a
failure. Thus it hasn't and never will be "fixed". Neither have I
posted any patches to resolve it.
</STRONG></P>
<P><STRONG>
The message indicates that something killed the master gdm process or
something left Xlib in a state which it couldn't handle gracefully.
I.e. gdm was forced to about without cleaning up. However, this
doesn't affect subsequent startups in any way.
</STRONG></P>
<P><STRONG>
/Martin
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
This suggests that a simple [Ctrl][Alt][BackSpace] or
a 'telinit q' command should restore 'gdm' to functioning.
Or is there some sort of state preserved by Xlib
in the filesystem?
</BLOCKQUOTE>
<BLOCKQUOTE>
I'm sorry if my message offended you. I was frustrated
when I first encounted this error message (in front of a
class full of new Linux students, in fact) and I seem to
recall that the problem persisted through a reboot, and
required some fussing with lockfiles or unix domain socket
entries, or something.
</BLOCKQUOTE>
<BLOCKQUOTE>
I was also frustrated when I got the question for my
column.
</BLOCKQUOTE>
<BLOCKQUOTE>
Since I don't run GNOME on my home systems or my workstation
I don't have an easy way to attempt to reproduce the problem
myself. The user didn't provide me with much info either.
</BLOCKQUOTE>
<BLOCKQUOTE>
(Thus I am forced to speculate: frequently and for many of
my answers. I try to let people know when I'm guessing
and when I'm speaking from first hand experience. Sometimes
I fail).
</BLOCKQUOTE>
<BLOCKQUOTE>
I have seen Red Hat 6.0 systems FAIL to bring up gdm
in a persistent way. I've seen the message "gdm murdered
mysteriously" associated with this failure. It might not
be a failure of gdm's --- but the gdm error message is
certainly occurring at about the same time.
</BLOCKQUOTE>
<BLOCKQUOTE>
Anyway, hopefully GNOME will be more stable in Red Hat 6.2
or 6.3. Overall I think Red Hat Inc has been pushing it
on to too many desktops a little too quickly.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 18 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/19"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 19 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Upgrade to 6.2 from 6.1 Disables Login</H3>
<p><strong>From Dave on Tue, 12 Oct 1999
</strong></p>
<!-- ::
Upgrade to <A HREF="http://www.suse.com/">S.u.S.E.</A> 6.2 from 6.1 Disables Login
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
I recently began setting up a SuSE linux system to replace my Win9x system.
The installation of SuSE 6.1 went great. As well as XFree86 and several
software packages including Netscape and RealPlayer.
</STRONG></P>
<P><STRONG>
While under X I installed the base RPM upgrades for SuSE 6.2. The only
packages it replaced are at
<A HREF="ftp://ftp.suse.com/pub/suse/i386/update/6.2/a1"
>ftp://ftp.suse.com/pub/suse/i386/update/6.2/a1</A>.
</STRONG></P>
<P><STRONG>
Nothing that would affect my logging I thought. After logging out
as root I was unable to log back in as root or my user account.
It would just give me and "invalid login" message. I tried going
into rescue mode and clearing the root password entry in the
<TT>/etc/shadow</TT> file as well as the <TT>/etc/passwd</TT> file.
</STRONG></P>
<P><STRONG>
The login error remains. Can you give any suggestions as to where the
source of this problem might be?
</STRONG></P>
<P><STRONG>
Thanks,
-- Dave N.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
My wife just did the same thing this weekend. She's
still working on it. Her plan is to push forward
with the full system upgrade. She's using one of the
other systems to fetch all the RPMs to a local mirror
(since full FTP installation/upgrade over the Internet
is far too unreliable to complete; she tried that
already).
</BLOCKQUOTE>
<BLOCKQUOTE>
So, she's still waiting on the DSL line to finish that
process. She has a <A HREF="http://www.debian.org/">Debian</A> laptop and we have a couple of
others Linux boxes around, so it's not like she's totally stuck.
</BLOCKQUOTE>
<p><em>[ I was solved fairly quickly once I got enough of the
base back in sync with itself. Because I was foolish enough to
do my update over the net (I was too impatient to wait for the
boxed copy to arrive at my local store) I had to wait for hours
that were lightly travelled around here, and a mirror that had
free ftp logins available around that hour. </em></p>
<p><em>Many things about my system seem more stable now, although gimp
and enlightenment appear to have an allergy with each other.
-- Heather ] </em></p>
<BLOCKQUOTE>
I would guess that there's a problem with the libc
libraries. I guess that S.u.S.E. 6.2 installs glibc 2.1
libraries. Some of the programs that are linked to glibc2
(libc.so.6) are failing on some differences between 2.0 and
2.1. (Those programs probably should have been linked more
tightly --- to 2.0 rather than just 2).
</BLOCKQUOTE>
<BLOCKQUOTE>
Anyway, your best best is probably to push forward and
upgrade the whole system. You might be able to temporarily
fix your system (well enough to log in) by booting from
a rescue floppy, mounting your root filesystem and tweaking
the symlinks under <TT>/lib.</TT> Basically make the libc.so.2
link point to libc.so.2.0 rather than libc.so.2.1. (If the
links don't look something like that when you get there,
it blows my theory; there'd have to be something else
wrong). If you do find the symlinks wrapped like I'm
thinking --- change them around, cd to the root of
filesystem (the top level mount point below your rescue,
usually <TT>/mnt</TT>) and run the command:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><Code>
usr/sbin/chroot . <TT>/sbin/ldconfig</TT>
</Code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
... that should force the ldconfig command to execute
properly on your filesystem tree.
</BLOCKQUOTE>
<BLOCKQUOTE>
This "chroot" stuff is very handy for working on rescue
disks. You boot on the rescue, mount your normal
filesystems under <TT>/mnt</TT>, cd to there and "chroot . <TT>/bin/sh</TT>"
Then you can work on your normal fs structure and the
commands you use like <TT>/sbin/lilo</TT>, rpm, ldconfig, passwd,
et al, will all find things where they're "supposed to be"
(like the <TT>/etc</TT> directory, the rpm dbm files under
<TT>/var/lib/redhat</TT>, and the <TT>/lib</TT> directory).
</BLOCKQUOTE>
<BLOCKQUOTE>
It's a bit confusing to describe. Play with it a bit and
see what you figure out.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 19 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/20"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 20 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Euphoria</H3>
<p><strong>From Greg Phillips on Tue, 12 Oct 1999
</strong></p>
<!-- ::
Euphoria
~~~~~~~~
:: -->
<P><STRONG>
I've been using Doslinux for quite some time now, and am quite
impressed. Unfortunately, Kent Robotti doesn't answer his email, it
seems =)
</STRONG></P>
<P><STRONG>
I'm a member of a mailing list, which pertains to Euphoria. No, not
intense joy, but a relatively new and unknown programming language.
While the number of users is small, we're very passionate about
Euphoria. Recently, a linux version was released, and many users wanted
to use it. A fair chunk of them were hesitant to repartition their
hardrive and install a new OS, so I recommended Doslinux. While it
worked well for some users, others had trouble installing Euphoria, and
other applications. This was no fault of their own: Doslinux
documentation is a little bit skimpy, if you're new to Linux and don't
know where to look. Being the resident Doslinux veteran, I was soon
flooded with questions (How do I install X? How can I get <A HREF="http://www.kde.org/">KDE</A> to run?
How do I log in? Why doesn't this work?). So I opted to make a CD for
the Eu community, with Doslinux, all the extras (gcc, x, kde or gnome,
euphoria, etc.) already installed. Unfortunately this proved to be a
lot of work. Trying to stuff a bunch of software into a pre-made
distribution was getting to be painful.
</STRONG></P>
<P><STRONG>
So, after some reading, experimenting, etc., I decided to create
EuLinux. The same idea as Doslinux, but customized towards Euphoria
users. So, here's my question: How?
</STRONG></P>
<P><STRONG>
I've read everything I can get my eyes on, and, as I understand
it, this is how DOSLinux works in a nutshell:
It uses a loopback filesystem as the root device.
</STRONG></P>
<P><STRONG>
To install the whole system, a ramdisk device is mounted, which is used
to create an empty file of a fixed size on the dos partition.
The linux system can then be copied into that empty file, which can be
booted with LOADLIN.
</STRONG></P>
<P><STRONG>
I know there's a lot more to that, but I hope I've got the basics
correct.
</STRONG></P>
<P><STRONG>
Am I right? Can you point me to some documentation? Is it even worth
trying?
</STRONG></P>
<P><STRONG>
Thank you,
Greg Phillips
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Well, it certainly sounds like an interesting
and worthwhile project. However, I might suggest
a slightly different approach.
</BLOCKQUOTE>
<BLOCKQUOTE>
It would be nice if <A HREF="http://www.debian.org/">Debian</A> could be installed
on a FAT filesystem (sort of a blend of DOSLinux and
Debian). Then you could create a Debian package
(and an RPM). This would make Euphoria accessible
to most Linux users with a minimum of fuss while
make DOSLinux capable of installing a very large number
of well-maintained packages.
</BLOCKQUOTE>
<BLOCKQUOTE>
I suggest the DOSLinux/Debian merge for a couple of
reasons.
</BLOCKQUOTE>
<BLOCKQUOTE>
First Debian has more packages that <A HREF="http://www.redhat.com/">Red Hat</A>, <A HREF="http://www.suse.com/">S.u.S.E.</A> etc.
Many Debian packages are smaller and more focused, while Red
Hat tends to put more stuff in a given package. That leads
to coarser dependency granularity for Red Hat.
</BLOCKQUOTE>
<BLOCKQUOTE>
Also Debian has developed "virtual packages" and
"alternatives" which allow for more choices without having
to work around the dependency/conflict management features
of its packaging system. (For example in Debian some
packages depend on "MTA" which is a virtual package that can
be provided by exim, sendmail, qmail, etc).
</BLOCKQUOTE>
<BLOCKQUOTE>
Debian packages tend to "fit together" a bit better than
those from Red Hat and other RPM distributions. Debian are
hundreds of volunteer maintainers. Many of those maintainers
tend to more proactively patch the base sources and feed their
patches "upstream" (to the program authors). They seem to
have closer ties between their package maintainers and the
software authors (probably since there are so many
maintainers, so each can afford a bit more time on the few
packages that each one maintains).
</BLOCKQUOTE>
<BLOCKQUOTE>
Meanwhile Red Hat, <A HREF="http://www.caldera.com/">Caldera</A>, S.u.S.E., TurboLinux and other
distribution maintainers each have a smaller number of
professional developers. The various RPM distributions tend
not to have compatible package dependencies and they
duplicate quite a bit of the packaging effort.
</BLOCKQUOTE>
<BLOCKQUOTE>
Keep in mind that the core software among all of these is
mostly the same. The differences show up in packaging,
dependency and conflict management, and configuration tools.
Debian package configuration mostly falls into the "it's
ugly but it works" model --- where a package might prompt
for one to five answers (with reasonable defaults). This
is done basically as a simple list of "echo/read" (shell
script) questions. It's not pretty, but it is elegant and
minimal --- and it works better than linuxconf.
</BLOCKQUOTE>
<BLOCKQUOTE>
(Don't get me started about linuxconf. I've banned that
from my systems until further notice!)
</BLOCKQUOTE>
<BLOCKQUOTE>
So, that's what I'd like to see. A DOSLinux that could be
used as the base system for a Debian system. (For that
matter any improvement to the Debian bases system install
would be welcome. It's a really good system once you get
it up --- but that first step is still a bit of a doozy.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 20 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/21"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 21 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Dell EIDE TR5 Tape Drive</H3>
<p><strong>From Yixin Diao on Tue, 12 Oct 1999
</strong></p>
<!-- ::
Dell EIDE TR5 Tape Drive
~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hi, Jim,
</STRONG></P>
<P><STRONG>
I know you after I read your message "Open Letter Re: Linux on Dell
Hardware". May I ask you a question? Can Dell's tape drive "10/20GB EIDE
TR5 Tape Backup" work well under Linux?
</STRONG></P>
<P><STRONG>
Thanks!
Yixin
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Ahh Yes! The old "open letter to Dell." Of course I can't
take any credit for the fact that Dell does now offer Linux
pre-installed on selected models. I don't even know if my
letter ever made it to Micheal Dell or anyone beyond
"secretary." Ironically I work for the company that
provides Linux technical support to Dell.
</BLOCKQUOTE>
<BLOCKQUOTE>
I haven't played with any TR5 tape drives. However,
I suspect that it should work. Be sure to compile a kernel
with support for IDE tape drives (it's in the menuconfig
options after IDE CD-ROM drives, and IDE hard drives).
</BLOCKQUOTE>
<BLOCKQUOTE>
According to <TT>/usr/src/linux/Documentation/ide.txt</TT>
you should be able to use <TT>/dev/ht0</TT> to access your IDE
tape drive, just as you'd use <TT>/dev/st0</TT> to work with a
SCSI tape drive.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 21 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/22"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 22 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>FTP Daemon: Special Requirements</H3>
<p><strong>From William Dawson on Tue, 12 Oct 1999
</strong></p>
<!-- ::
FTP Daemon: Special Requirements
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hello, Mr. Dennis.
</STRONG></P>
<P><STRONG>
I'm in desperate need of help...I'm down to only one functioning
nerve...
</STRONG></P>
<P><STRONG>
After much brain-strain and (I don't mind saying) heavy persistence, I
finally found the right man pages to tell me how to change the port that
ftp listens on, and other things of the like. My problem now is that
can't seem to figure out how to set the maximum number of simultaneous
ftp users (limit<class><n><times><message_file> seems not to work in the
ftpaccess file...<times> format is of particular concern). Also, how do
I limit users to only one ftp connection (login) at a time?
</STRONG></P>
<P><STRONG>
If you can help me out with any of this, I would be eternally grateful.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Are you sure you're running WU-ftpd? Other FTP daemons
don't necessary read the <TT>/etc/ftpaccess</TT> file.
</BLOCKQUOTE>
<BLOCKQUOTE>
If you're using the BSD ftpd (possibly reported from
<A HREF="http://www.openbsd.org/">OpenBSD</A>) then it would ignore <TT>/etc/ftpaccess</TT> (unless
then changed it). If you're using ProFTPd, BeroFTPd,
or ncftpd then you'd use different files to configure
each of them.
</BLOCKQUOTE>
<BLOCKQUOTE>
Also are you SURE you want to change the port on which
you are running your FTP daemon. I could see cases where
you might want your ftpd to selectively bind to some
interfaces or IP aliases and to ignore others (which
means that you can support FTP virtual hosting, among
other things). However, running it on a different port
seems like a bad idea since many FTP clients (especially
those in MS Windows) don't offer options to connect to
non-standard ports.
</BLOCKQUOTE>
<BLOCKQUOTE>
The limit directive in the WU-FTPD doesn't give you
a way to limit the number of concurrent connections
<EM>PER USER</EM>. (At least I don't remember such a thing).
It's intended to limit the total number of connections
for each "class" of users (mostly to insure that
anonymous users don't bog the machine down so much
that your own employees, students, etc can't access the
system).
</BLOCKQUOTE>
<BLOCKQUOTE>
I think you might want to look at the documentation
for the ProFTPd and/or the ncftpd packages before you
fight too much with your current FTP daemon. Please
note that ProFTPd has been hit with a couple of
security exploits recently --- so make sure you get the
most recent version (with bug fixes) and you what the
'net for alerts. There may be more bugs waiting to be
discovered in this package. (Of course that's true in
every software package. But some have a better reputation
than others; and write now WU-FTPD and ProFTPd are at the
high end of that reputation scale.).
</BLOCKQUOTE>
<BLOCKQUOTE>
ncftpd is not free software. However, Mike Gleason, its
author has a good reputation in the open source community.
His ncftp CLIENT is free and is one of the best.
</BLOCKQUOTE>
<BLOCKQUOTE>
You can find these at:
</BLOCKQUOTE>
<BLOCKQUOTE><DL><DT>
NcFTP Software
<DD><A HREF="http://www.ncftp.com"
>http://www.ncftp.com</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE><DL><DT>
ProFTPd
<DD><A HREF="http://www.proftpd.org"
>http://www.proftpd.org</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE><DL><DT>
WU-ftpd
<DD><A HREF="http://www.wu-ftpd.org"
>http://www.wu-ftpd.org</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE><DL><DT>
BeroFTPd
<DD><A HREF="http://apps.freshmeat.net/download/895008043"
>http://apps.freshmeat.net/download/895008043</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE><DL><DT>
pftpd
<DD><A HREF="http://apps.freshmeat.net/download/918313631"
>http://apps.freshmeat.net/download/918313631</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE>
I tossed in links to a couple of other FTP daemons
that might be interesting.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 22 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/23"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 23 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>login, su, and passwd dies: Everybody dies!</H3>
<p><strong>From Tim Kientzle on Mon, 11 Oct 1999
</strong></p>
<!-- ::
login, su, and passwd dies: Everybody dies!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
I'm having a hard time finding good technical archives for Linux.
I've been searching 'linux login' trying to find someone else
who's had this problem; I stumbled across a couple of your columns
in the process.
</STRONG></P>
<P><STRONG>
In any case, I have a useful factlet for you regarding login
problems: The <A HREF="http://www.kde.org/">KDE</A> 'add user' program by default does not assign a
login shell. Thus, accounts that cannot be logged into.
</STRONG></P>
<P><STRONG>
For myself, I have a RedHat 6.0 machine that does not accept any
logins, not even root. It never gets to a password prompt. This
is true of getty, telnet, ftp, and KDM logins. I brought the
machine up in single-user mode, and found that 'su' and 'passwd'
both crash, also. It looks as though any program that needs to
touch the password file simply dies at that point. (Note that
'su' does not crash if you use it to go from root to a non-root
user.)
</STRONG></P>
<P><STRONG>
Oddly enough, this problem arose spontaneously; the machine has
worked fine (about 8 functioning accounts) for a week. I came in
this morning, and tried to telnet into that machine; the
connection dropped at the telnet prompt. I rebooted the machine
(which required hitting the big red button, since I can't login as
root to safely shut down) and then KDM won't come up; it seems to
crash the X server. No useful messages to <TT>/var/log/messages</TT>, just
a machine that can't even be reasonably debugged.
</STRONG></P>
<P><STRONG>
I'm almost ready to drop RedHat and go with <A HREF="http://www.freebsd.org/">FreeBSD</A>
instead. <sigh>
</STRONG></P>
<P><STRONG>
- Tim Kientzle
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
It sounds like massive corruption to your libraries
or to your <TT>/etc/passwd</TT> file. I'd start by booting from
a rescue diskette (as you've already done once) and
editing the <TT>/etc/passwd</TT> and <TT>/etc/group</TT> files.
</BLOCKQUOTE>
<BLOCKQUOTE>
If those look alright (compare their formatting to the ones
on your rescue floppy) then check the <TT>/etc/shadow</TT> file. You
could just rename the etc/shadow file and try the 'passwd'
command again.
</BLOCKQUOTE>
<BLOCKQUOTE>
(The libraries use the existence of an <TT>/etc/shadow</TT> file as a
hint to use shadow passwords).
</BLOCKQUOTE>
<BLOCKQUOTE>
Another thing to try is the following commands:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
cd <TT>/mnt/</TT> && usr/sbin/chroot . <TT>/bin/sh</TT>
rpm -Va
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
(or, if you have a copy of the 'rpm' command on your resuce
diskette you can use: 'rpm --root <TT>/mnt</TT> -Va')
</BLOCKQUOTE>
<BLOCKQUOTE>
This rpm command will check the integrity of the system
files, libraries and binaries, and the ownership, modes, and
other particulars for every file that included in any
package you installed.
</BLOCKQUOTE>
<BLOCKQUOTE>
You can use the 'rpm -qf' command to match the filenames
that the verification reports to the package names that you
might need to re-install.
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course you could re-install from scratch. However,
it would be very unsettling to me to do that with no
understanding of what went wrong. I suspect that
you feel the same; how can you trust a system that
"did that" all of a sudden.
</BLOCKQUOTE>
<BLOCKQUOTE>
One possibility is that your system was cracked
(incompetantly). The programs you mention are some of
the same ones that are replace by most "rootkits." If
some script kiddie broke into your system and tried to
install a rootkit that was pre-compiled for libc5 then
I could see it give symptoms just like those you've
described.
</BLOCKQUOTE>
<BLOCKQUOTE>
The 'rpm -Va' command might uncover this. Script
kiddies and their canned cracker tools don't seem to have
added "rpm dbm patchers" YET. However, it's only a
matter of time before they do.
</BLOCKQUOTE>
<BLOCKQUOTE>
In a past issue(*) I've described more robust techniques for
using write-protected boot floppies, you original CD, the
rpm command and some shell utilities to perform a system
integrity audit on a <A HREF="http://www.redhat.com/">Red Hat</A> or other RPM based system.
That article was long-winded since I explained the method in
some detail.
</BLOCKQUOTE>
<BLOCKQUOTE><ul><li>
(<A HREF="http://www.linuxgazette.com/issue37/tag/44.html"
>http://www.linuxgazette.com/issue37/tag/44.html</A>
search the page for "pkg.inst")
As for running FreeBSD: It's a nice system. It's a bit
more carefully integrated then most Linux distributions
and it can run most Linux binaries. I've suggested that
intermediate and advanced Linux users give it a try some
time (next time you're about to install an OS on a new
machine and you have a couple of days to "tinker" with
it).
</UL></BLOCKQUOTE>
<BLOCKQUOTE>
You might also try <A HREF="http://www.debian.org/">Debian</A>. I'm slowly switching my home
systems and laptop over to it. I just got my new
personal workstation up and running this weekend, got
my home directory tree (700Mb, mostly of e-mail archives)
transferred and have spent all day answer e-mail on it.
</BLOCKQUOTE>
<BLOCKQUOTE>
Let me give an example of what I like about Debian.
</BLOCKQUOTE>
<BLOCKQUOTE>
I chose a minimal installallation to start with (about
100Mb total. I upgraded it from the CD version to the
latest version of everything in "unstable" by editing
one file (<TT>/etc/apt/sources.list</TT>) and issuing one command
(apt-get update && apt-get dist-upgrade -f). It sucked
down 120 packages from the 'net and put them all in place.
</BLOCKQUOTE>
<BLOCKQUOTE>
Then I installed a curses package selection tool
(console-apt) and used that to select a few other programs
that I wanted (things like xemacs). apt-get and console-apt
use the same selection database, and use the dpkg command
under the hood. They automatically get any libraries and
ancillary packages to resolve dependencies.
</BLOCKQUOTE>
<BLOCKQUOTE>
Later, after I'd transferred all of my home directory
files, I starting working like I prefer (running xemacs,
in viper-mode under 'screen'). At some point I typed a
word that look "wrong" and I hit [F3][$] (my personal xemacs
macro for spell-checking the word under my cursor).
Ooops, ispell wasn't installed!
</BLOCKQUOTE>
<BLOCKQUOTE>
So I switch to another VC, type:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
apt-get install ispell iamerican
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
... wait about 30 seconds and go back to my editing.
my spell check now works.
</BLOCKQUOTE>
<BLOCKQUOTE>
Another time a few weeks ago I was answering a question
about LPRng. I logged into my other Debian system
(a little file and mail server, antares), installed
the package, read the doc page I was looking for, and
removed it. That was faster than hunting for it in
Yahoo!
</BLOCKQUOTE>
<BLOCKQUOTE>
That's what I like about Debian. I've been doing that
sort of thing for months on my machine at the office.
</BLOCKQUOTE>
<BLOCKQUOTE>
In fairness to Red Hat and it's ilk, the 'rpmfind'
command (<A HREF="http://rufus.w3.org"
>http://rufus.w3.org</A>) makes RPMs <EM>almost</EM> as easy
to manage. However, debian does have a lot more
packages and apt-get seems more stable than rpmfind.
</BLOCKQUOTE>
<BLOCKQUOTE>
So far the Debian apt-get facility is the only one
that I've ever trusted with automatic system
upgrades. I've been running regular dist-upgrades
on my box at work for months --- on the UNSTABLE
development series, the betas --- and I haven't
broken my system yet (sometimes one or two packages get
a bit messed up; but nothing that's caused real problems).
</BLOCKQUOTE>
<BLOCKQUOTE>
Meanwhile Debian is not for the UNIX novice. Most
users would not know that xemacs and emacs call on
a program named 'ispell' and most wouldn't know that
the various dictionary/wordlist files for ispell are named
like iamerican, ibritish, etc. While Debian has more
packages, part of this is because they them to a finer
granularity. They don't put an IMAP daemon and a POP
daemon in the same package. Also many of the Debian
packages are alternatives or are fairly obscure. They
are the sort of thing that
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course the FreeBSD "ports" system is also pretty
good. I'd still like to see something like it for
Linux. (It gets the prize for most comprehensive use
of the 'make' command).
</BLOCKQUOTE>
<BLOCKQUOTE>
Anyway, I hope you track down the problem. If it
does turn out to be a cracker, be sure to get the
latest security fixes when you re-install. There have
been a number of bugs with wu-ftpd and ProFTPd recently
and they are being actively exploited. (Fixes for the
known bugs are at the Red Hat updates site, and at
the archive sites for most other Linux distributions.
</BLOCKQUOTE>
<BLOCKQUOTE>
As usually you should disable any services that you
don't absolutely need to run, limit access to your
non-anonymous services (using TCP Wrappers and/or
ipchains) wherever that's possible, replace 'telnet'
support with 'ssh', 'ssltelnet' or 'STEL', use
shadow passwords, etc.
</BLOCKQUOTE>
<BLOCKQUOTE>
Read the Security-HOWTO
(<A HREF="http://www.linuxdoc.org/HOWTO/Security-HOWTO.html"
>http://www.linuxdoc.org/HOWTO/Security-HOWTO.html</A>)
and the Linux Administrator's Security Guide
(<A HREF="http://www.seifried.org/lasg"
>http://www.seifried.org/lasg</A>) for lots of details on
that.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 23 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/24"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 24 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Files invisible via Telnet?</H3>
<p><strong>From Norris on Mon, 11 Oct 1999
</strong></p>
<!-- ::
Files invisible via Telnet?
~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
First off, thank you for a good site, a real valuable source on
all those little (and not so little) problems you run into
<IMG SRC="../gx/dennis/smily.gif" ALT=":)"
height="24" width="20" align="middle">
</STRONG></P>
<P><STRONG>
Second, im not sure if I should go and ask questions directly to
you, but it seems others have done so, but if i am in error,
please just ignore me
<IMG SRC="../gx/dennis/smily.gif" ALT=":)"
height="24" width="20" align="middle">
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
You did it right: mail to the <A HREF="mailto:answerguy@ssc.com"
>answerguy@ssc.com</A>.
It's a shame that so many people still send their
questions to <A HREF="mailto:jimd@starshine.org"
>jimd@starshine.org</A> (which is the same
mailbox) because I can auto-sort LG mail from
personal mail. However, that just comes with the
territory.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
The Problem:
</STRONG></P>
<P><STRONG><BlockQuote>
I have allowed telnet acces to my server, and i can login fine, i
can su and so forth, but a lot of files just dont show up via
telnet? i have messed with many combinations of file permissions,
but that doesnt seem to do it... any help would be appreciated,
thank you
<IMG SRC="../gx/dennis/smily.gif" ALT=":)"
height="24" width="20" align="middle">
</BlockQuote></STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Linux and UNIX have no mechanism for selectively "hiding"
files based on the protocol through which you've logged
in. Unless you are running your telnet daemon or inetd
in a "chroot jail" (a fairly obscure custom configuration)
then you should be able to see everything.
</BLOCKQUOTE>
<BLOCKQUOTE>
Now, if you mean that some files don't appear to be readable
through your terminal (you do an 'ls' and see "blanks"
where there should be files) then that's another matter
entirely. Trying using the command:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><Code>
ls --color=never
</Code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
... if your files are suddenly visible then you're just
suffering from a bad terminal type (TERM environment
variable) setting.
</BLOCKQUOTE>
<BLOCKQUOTE>
You could also try the commands:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
export TERM=dumb
find . | less
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
... (assuming you're using a Bourne compatible shell -- like
the default 'bash'). This should show you all your files.
</BLOCKQUOTE>
<BLOCKQUOTE>
The 'ls --color' trick has to do with the ncurses color
support in the GNU version of 'ls'. Some distributions
set a system default alias like: alias ls='ls --color=auto'
so that you'll see your files in pretty colors when using
a color capable terminal (such as the console, or a
color xterm). If your TERM environment variable is set
correctly, and your terminfo libraries and data files are
installed correctly then this alias should automatically
disable the use of color when necessary.
</BLOCKQUOTE>
<BLOCKQUOTE>
Unfortunately the MS Windows version of TELNET.EXE is
pretty wretched. It defaults to settings which do not
implement enough VT100, VT220 or VT330 support to be usable
for most Linux tasks. You're usually better off forcing
that telnet client to use the older, less powerful VT52
mode. You'd be MUCH better off to replace it with a
good telnet client, such at K'95 (The Win '95 port
of Columbia University's Kermit package).
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course I'm just guessing at what you mean by
"invisible." It's possible that you are in a
"chroot" jail (in which case you wouldn't see ANY
files and directories "above" a certain point in
the real directory tree. This would probably be
quite confusing to you since you'd have to have
duplicate <TT>/etc</TT>, <TT>/dev</TT>, and <TT>/usr/bin</TT> directory
structures and filesets.
</BLOCKQUOTE>
<BLOCKQUOTE>
I've set up systems like that (in fact I've just
configure my new personal workstation in this way
this weekend). However it's a relatively obscure
and advanced technique that almost no one uses.
You couldn't have set that up "accidentally" or
without knowing about it.
</BLOCKQUOTE>
<BLOCKQUOTE>
So I'm assuming the more likely interpretation of
your question. (I usually have to do that in this
business).
</BLOCKQUOTE>
<!-- sig -->
<!-- end 24 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/25"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 25 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>sendmail Masquerading, Configuration, and User Masquerading Revisited</H3>
<p><strong>From Willy Lee on Mon, 11 Oct 1999
</strong></p>
<!-- ::
sendmail Masquerading, Configuration, and User Masquerading Revisited
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hi Mr. Dennis,
</STRONG></P>
<P><STRONG>
The information in your September 1999 column regarding fiddling with
sendmail configuration was very informative, and very welcome! I knew
that sendmail looked at sendmail.cf, and that you were supposed to run
a file through m4 to generate sendmail.cf, but I didn't know how to do
it, now I at least have some idea.
</STRONG></P>
<P><STRONG>
Unfortunately Netscape rendered the backquotes rather oddly, so I
labored for about an hour under the mistaken impression that they were
pairs of single quotes, instead of backquote/quote pairs.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Sorry. I'll try to remember to mention that next time
I use unusual syntax such as m4's.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
You said, "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." Unfortunately my desired
username was already taken at my ISP, so my mail address is 'willy2'
instead of 'willy', which is my account on my machine at home.
</STRONG></P>
<P><STRONG>
I use Gnus from within Emacs as my MUA and I've told it my correct mail
address. I believe it sets the Reply-to field, so that should be ok,
shouldn't it?
</STRONG></P>
<P><STRONG>
Well, if I get a reply from you, then I'll know that my Gnus/sendmail
setup is working
<IMG SRC="../gx/dennis/smily.gif" ALT=":)"
height="24" width="20" align="middle">
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Your method seems to be working. Under some
systems you can't easily set the return addresses
from your MUA. You can have sendmail rewrite the
username portion of the addresses by using the
genericstable FEATURE.
</BLOCKQUOTE>
<BLOCKQUOTE>
I didn't want to get into that last time I was talking about
this since it just adds a bit more complication. The
original correspondent was probably having enough trouble
digesting all that I said as it was.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Thanks for all your columns!
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
You're welcome. Glad I could help.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 25 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/26"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 26 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>General S. Fault</H3>
<p><strong>From dlancas on Mon, 11 Oct 1999
</strong></p>
<!-- ::
General S. Fault
~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Along the lines of "wha'appen?", I started using <A HREF="http://www.kde.org/">KDE</A> the other day, and
klicked on my kcalc and waited... and waited.... and then I klicked
again just for the heck of it. When I tried to start the calculator
from the terminal, I got the wonderful segmentation fault. This
happened previously with xosview which was working great then stopped
working one day. I recently upgraded KDE to the newest stable version
(1.1.2) and noticed that along with the calculator, some other programs
are also giving me segmentation faults (such as the KDE text editor).
</STRONG></P>
<P><STRONG>
Just who is segmentation and why is my computer blaming him for screwing
up my system? I looked in numerous books, etc, and can not find any
mention of this. Thanks in advance.
</STRONG></P>
<P><STRONG>
Doug Lancaster
www.lancompworx.com
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Maybe "Segmentation" is General Protection Fault's middle
name
<IMG SRC="../gx/dennis/smily.gif" ALT=";-)"
height="24" width="20" align="middle">
</BLOCKQUOTE>
<BLOCKQUOTE>
Actually a segmentation fault is Unix technese for:
"that program stepped out of bounds!" It is similar
to the old MS Windows "General Protection Fault" or the
old QEMM "Exception 13" etc (except that segfaults don't
make Linux kernels unstable and don't indicate that we
should hastily save all our work and reboot "before it's
too late!").
</BLOCKQUOTE>
<BLOCKQUOTE>
The way that Linux keeps user programs from interferring
with system operations, and other user programs is through
memory management.
</BLOCKQUOTE>
<BLOCKQUOTE>
When a program is loaded it is allocated some memory for
it's binary executable code (ironically called "text"), it's
static data segment (the "BSS"), and its stack and heap
(dynamic data). If the program needs more memory it must
request it through the<TT> malloc()</TT> system call. If a program
ever tries to access memory outside of its segments it
is stopped by the processor (on x86 and some other
platforms) or some other hardware MMU (on some other CPU
architectures). This processor or MMU "exception" (or
"trap" as its known in some architectures) then calls on
a kernel exception handler, which then summarily kills the
program, (optionally) dumps a post mortem debugging file,
usually named 'core' (and consequently known as a "core
file"), and signals the program's parent process (with a
SIGCHLD).
</BLOCKQUOTE>
<BLOCKQUOTE>
When the parent process is the shell, it prints a message
like the one you describe: "segmentation fault, core dumped"
</BLOCKQUOTE>
<BLOCKQUOTE>
So, probably the programs in question have bugs in them.
Perhaps they swallowed a corrupt bit of data that the
programmer wasn't quite clever enough to foresee in his
parsers. Possibly some of the libraries on which these
programs depend have changed or differ from the versions
that the programmer was using.
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course there are other possibilities. Perhaps the
binaries or some of their libraries have been corrupted on
the disk. Possibly you have some bad memory chips (possibly
some RAM that only misbehaves under specific conditions,
such as when you are running the video card is specific
resolutions). Those sorts of problems usually give other
symptoms like the infamous "Sig 11" problems
(<A HREF="http://www.bitwizard.nl/sig11"
>http://www.bitwizard.nl/sig11</A>).
</BLOCKQUOTE>
<BLOCKQUOTE>
I'd definitely shutdown and force a full fsck of all your
filesystems ASAP. If that doesn't report any problems
then it probably is just the software.
</BLOCKQUOTE>
<BLOCKQUOTE>
Probably the latest "stable" KDE is not as stable as your
previous version. Maybe you need to upgrade some libraries
to go with the new release.
</BLOCKQUOTE>
<BLOCKQUOTE>
Good luck. You might try downgrading back to the older
version to see if that clears it up.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 26 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/27"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 27 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Linux Workstations Behind a Proxy/Firewall</H3>
<p><strong>From anil kumar on Mon, 11 Oct 1999
</strong></p>
<!-- ::
Linux Workstations Behind a Proxy/Firewall
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hi Jim,
</STRONG></P>
<P><STRONG>
This is Anil from India.I saw your letter in the red hat site &
wanted some details on how to access the internet from my Linux box.
I dual boot it with my NT.Now,I am behind a Proxy(MS Proxy & firewall)& my
Ip address has been given permission to access the internet.I access it in
the usual way from NT but when i boot thro' Linux, I dont get any option to
configure the Proxy server.Does the name resolution request go to the DNS
configured in our local network first & from there upon not resolving to the
next higher level that is, the local ISP DNS ?But i have configured my Linux
box for the DNS.Now how do i configure my Linux to access the net?.I would
appreciate if you would throw some light on it.
</STRONG></P>
<P><STRONG>
Thanx in advance,
Anil.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
You're probably expected to use SOCKS clients.
Most proxying firewalls conform to the NEC SOCKS proxy
traversal protocol (a standard way for client programs to
contact a proxy and request a service).
</BLOCKQUOTE>
<BLOCKQUOTE>
The normal Linux client software (telnet, ftp, etc)
are not "SOCKSified" (linked to library functions which
check for proxying). So you want to install the
socks-clients RPM package.
</BLOCKQUOTE>
<BLOCKQUOTE>
You can find a copy of that at:
</BLOCKQUOTE>
<BLOCKQUOTE><DL><DT>
socks5-clients-1.0r6-1.i386 RPM
<DD><A HREF="http://rufus.w3.org/linux/RPM/turbolinux/3.0/RPMS/socks5-clients-1.0r6-1.i386.html"
>http://rufus.w3.org/linux/RPM/turbolinux/3.0/RPMS/socks5-clients-1.0r6-1.i386.html</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE>
It will replace most of your network client software
utilities. You'll then have to edit the
<TT>/etc/libsocks5.conf.</TT> One of mine looks like:
</BLOCKQUOTE>
<blockquote><pre>socks5 - - - - 192.168.1.5
noproxy - 192.168.1. -
noproxy - 123.45.67.0/255.255.255.240 -
</pre></blockquote>
<BLOCKQUOTE>
Creating this file is the hardest part of using
the SOCKS client RPM. You have to put in your SOCKS proxy
server at the end that first line. That's an IP address.
Then you can put into IP address patterns on your noproxy
line(s). I have set a noproxy for one RFC1918 address
block, and one (sanitized) "real" address block with a
netmask. This would be a typical arrangement if there
where a block of servers on our DMZ (Internet
exposed network segment) that were directly accessible from
my station. In many other cases you wouldn't have that
3rd line, you'd go through the proxy to get to your DMZ,
too.
</BLOCKQUOTE>
<BLOCKQUOTE>
The programs provided by this RPM will all read the
<TT>/etc/lib5socks.conf</TT> file automatically. There is also
a shared library which can be used to "socksify" many
"normal" TCP programs. In particular, under Linux it's
possible to over-ride the normal shared library (DLL)
loading sequence, forcing a program to preload
(LD_PRELOAD_PATH) a custom dynamical library. Thus with
a short wrapper script (described in the documentation
of this package) it's possible to redefine how a program
implements some library calls without recompiling the
package.
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course these libraries can also be used explicitly
(by linking programs to them). This obviates the need
for LD_PRELOAD_PATH shenanigans. Personally I haven't
used this "socksify" technique.
</BLOCKQUOTE>
<BLOCKQUOTE>
Some programs (like ncftp) might have to be replaced
separately. In some cases you'll have to fetch the sources
and compile programs with non-default options. In other
cases, like Netscape Navigator, you'll want to just
configure them (under Navigator and Communicator look for
"Edit, Preferences, Advanced, Proxying" and fill in the
dialog box).
</BLOCKQUOTE>
<BLOCKQUOTE>
Some software and some protocols will not work through SOCKS
proxying or will have to be patched to do so. (Some of the
Pointcast, RealAudio, CU-See-Me, and other protocols don't
support SOCKS, or require proprietary proxying packages in
order to traverse your firewall).
</BLOCKQUOTE>
<BLOCKQUOTE>
The canonical site for information about SOCKS is:
</BLOCKQUOTE>
<BLOCKQUOTE><DL><DT>
SOCKS Proxy Protocol
<DD><A HREF="http://www.socks.nec.com"
>http://www.socks.nec.com</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE>
In particular you'll want to read the Socks FAQ
(<A HREF="http://www.socks.nec.com/socksfaq.html"
>http://www.socks.nec.com/socksfaq.html</A>)
</BLOCKQUOTE>
<BLOCKQUOTE>
You probably don't need a SOCKS server (you've already got
one) you just need the client software for there protocols
you plan to use through this firewall).
</BLOCKQUOTE>
<BLOCKQUOTE>
However, I provide pointers to some server software for
other readers. You can download NEC's SOCKS software
for Linux (in source form) from the web site listed above.
However, you'll want to read the license on that before
using or distributing it.
</BLOCKQUOTE>
<BLOCKQUOTE>
In addition to the NEC SOCKS implementation, Linux supports
a couple of alternative SOCKS servers (NEC's SOCKS is not
under GPL or BSD and it's not fully "free" software).
</BLOCKQUOTE>
<BLOCKQUOTE>
One that I've used is DeleGate (<A HREF="http://wall.etl.go.jp/delegate/"
>http://wall.etl.go.jp/delegate/</A>)
Another that I've read about but never used is Dante
(<A HREF="http://www.inet.no/dante/"
>http://www.inet.no/dante/</A>). DeleGate and Danta are free
under the BSD license.
</BLOCKQUOTE>
<BLOCKQUOTE>
One thing I like about DeleGate in particular is that it's
possible to manually traverse it. In other words, if you
have a favorite ftp or telnet client that doesn't know
how to talk the SOCKS protocol, you can manually connect
to DeleGate, type some magic commands at it, and it will
then open up the same sort of connection that the SOCKsified
client would have. (This is like the FWTK and other
manually traversed proxy systems).
</BLOCKQUOTE>
<BLOCKQUOTE>
There are a number of other firewall and proxying packages
available for Linux.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 27 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/28"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 28 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>LILO Stops at LI</H3>
<p><strong>From Peter.Oliver2 on Mon, 11 Oct 1999
</strong></p>
<!-- ::
LILO Stops at LI
~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
James,
</STRONG></P>
<P><STRONG>
I hope that its OK to email you here!
</STRONG></P>
<P><STRONG>
I recently installed OpenLINUX v2.2. After installation,
everything seems to work fine. When I restarting LILO starts to
boot with the first two letters LI and then everything locks up.
None of the keys work and the only way round is a hardware reset.
</STRONG></P>
<P><STRONG>
I used a RedHat6.0 boot floppy which gets OpenLinux2.2 up and
running. When finally back in linux I ran fdisk. fdisk reported
that my hard drive has 1027 cylinders and warns that more than
1024 can cause problems with some programs such as LILO.
</STRONG></P>
<P><STRONG>
Do you think that this is the cause of the LILO boot problem?
</STRONG></P>
<P><STRONG>
In addition when booting from the floppy disk OpenLinux2.2 does
not work properly eg. automount for the floppy disk and cdrom does
not work.
</STRONG></P>
<P><STRONG>
If you get around to having a look at this I would appreciate it
very much!
</STRONG></P>
<P><STRONG>
Thanks
Peter Oliver
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
This symptom is one of those that would I expect from
trying to load a kernel image or boot map that is
inaccessible to your BIOS.
</BLOCKQUOTE>
<BLOCKQUOTE>
However, I would expect that a boot floppy would work.
So long as your kernel is on the floppy (or CDROM) and
your kernel supports the controller to which your hard
disk is attached. Of course it's possible to create a
floppy which just has a LILO primary boot block on it
(with no kernel or boot map files). That's pretty
rare so I wouldn't have expected you to make one of
those (none of the common distributions would have
set it up that way).
</BLOCKQUOTE>
<BLOCKQUOTE>
If you have a copy of MS-DOS/Win '9x on that drive,
I'd used LOADLIN.EXE to run Linux. I've described it
many times before so do a search on the term LOADLIN and
you'll find explanations of how that works. Basically it
lets you load Linux from a DOS command prompt.
</BLOCKQUOTE>
<BLOCKQUOTE>
Allegedly there was an effort to write a version of LOADLIN
to run from the NT CMD.EXE console (a Win32s version).
However, I've never seen that.
</BLOCKQUOTE>
<BLOCKQUOTE>
So, if you have NT installed, and you don't want to
repartition the first portion of this drive (to make a small
Linux <TT>/boot</TT> partition), and you don't have MS-DOS installed
(so you can run LOADLIN.EXE), then you'll want to use a
floppy (with a properly configured kernel on it) to boot
Linux. Considering how rarely most of us boot Linux
this is not much of a hardship. Note: for your purposes
you only need the kernel on the floppy. You don't need
a root filesystem (like you'd find on a Tom's Root/Boot
or some other rescue floppy).
</BLOCKQUOTE>
<BLOCKQUOTE>
You can put a kernel on an MS-DOS formatted floppy, and run
syslinux on that. This lets you select kernel options and
pass command line parameters to the kernel (like LILO). You
could also put an ext2 or minix filesystem on a floppy,
copy your kernel to that and use <TT>/sbin/lilo</TT> on that. That
too will let you configure various parameters, prompts,
boot passwords, etc. You can even 'dd' a kernel directly
on to a floppy (with no filesystem on it). This will still
boot --- but it won't give you any prompt, so you can't
pass command line options to the kernel or through it to
init. That makes booting into single user mode (or any
non default mode) rather difficult, so I don't recommend it.
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course it's much easier if you just re-partition the
drive. You can create a small Linux partition that's
below the infamous 1024 cylinder boundary. That should be
about 16 to 32 megabytes. You'd configure that as <TT>/boot</TT>
(a separate small filesystem mounted off of the rootfs).
You can use Linux' fdisk to put that partition near the
beginning of the drive, while putting your other Linux
partitions near the end.
</BLOCKQUOTE>
<BLOCKQUOTE>
The only hard part in that is getting NT, MS-DOS, or
other operating systems to work around it. If you make
a small C: drive under your MS OS' then you can still
fit <TT>/boot</TT> in under the 1024 cylinder mark.
</BLOCKQUOTE>
<BLOCKQUOTE>
Another approach is to install a second drive. PC
can boot from the first or second hard disk on the
primary controller. (If you have CD-ROMs, IDE tape
drive, DVD, etc. put them on the secondary and tertiary
controllers).
</BLOCKQUOTE>
<BLOCKQUOTE>
Yet another approach is to use a commercial utility like
Partition Magic, or a different freeware boot loader like
GRUB (<A HREF="http://www.gnu.org/software/grub"
>http://www.gnu.org/software/grub</A>) although the FSF
apparently still considers GRUB to be in "alpha" (as in
"unreleased, unstable, no ready for prime time").
</BLOCKQUOTE>
<BLOCKQUOTE>
I hope you can see that the problem is not with Linux here.
You're fighting against the legacy of the PC architecture
which has never handled multiple boot gracefully and was
never designed for hard drives of over 1024 cylinders. The
first PC hard drives were 5 and 10 Mb. The early IDE drives
were limited to 540Mb, which was extended to 8Gb through LBA
"translation" (a technique for having the BIOS combine the
traditional cylinder head sector (CHS) co-ordinates into
linear block addresses (LBA) which were then converted back
into real sector locations by the drive's electronics).
Many BIOS still need to use CHS addresses to boot (thus the
1024 cylinder limits, which is 10 bits out of the 16-bit
value that stores cylinder and sector).
</BLOCKQUOTE>
<BLOCKQUOTE>
Now we have UltraDMA drives of 15, 20, and 30 Gigabytes and
some BIOS can't handle them. The MBR only has room for
about 466 bytes of program loader code (the other 66 bytes
are the partition table and a flag to tell fdisk that this
isn't a blank drive). Thus the need to create small
"partition manager" or "boot manager" partitions to provide
room for more software, to work around these firmware
limitations.
</BLOCKQUOTE>
<BLOCKQUOTE>
I'll be so glad to see the demise of PCs!
</BLOCKQUOTE>
<!-- sig -->
<!-- end 28 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/29"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 29 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Protocols on top of Protocols: It's Protocols ALL THE WAY DOWN!</H3>
<p><strong>From Alicia Romero on Mon, 11 Oct 1999
</strong></p>
<!-- ::
Protocols on top of Protocols: It's Protocols ALL THE WAY DOWN!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hello my name is Alicia; I'm a student looking for help
</STRONG></P>
<P><STRONG>
I have a class of networking and there is one thing I don't get
the Questions is What protocol is use typically by UNIX to connect
to a network using TCP/IP?
</STRONG></P>
<P><STRONG>
Can you help me ??
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
It sounds like you are underestimate how much you
don't get.
</BLOCKQUOTE>
<BLOCKQUOTE>
TCP/IP <EM>IS</EM> a set of networking protocols!
</BLOCKQUOTE>
<BLOCKQUOTE>
The question you ask, answers itself. UNIX uses the
TCP/IP suite of protocols for almost all of its networking.
IP (internet protocol) is the lower portion of the suite.
TCP (transport control protocol), UDP (unreliable datagram
protocol), ICMP (internetwork control messaging protocol),
and other protocols work over IP.
</BLOCKQUOTE>
<BLOCKQUOTE>
IP packets have source and destination IP addresses. TCP
packets add source and destination ports, sequence numbers,
and options/flags to support flow control, acknowledgement
and handshaking. UDP packet headers lack some of features
of TCP packets, so they are different variations of an
IP packet. ICMP packets (which are used by the 'ping'
and some versions of the 'traceroute' commands) have
headers that are different from UDP and TCP.
</BLOCKQUOTE>
<BLOCKQUOTE>
In addition to TCP, UDP, and ICMP there are also some other
protocols that ride directly over IP (for example GRE, a
routing encapsulation protocol).
</BLOCKQUOTE>
<BLOCKQUOTE>
Other (applications level) protocols are built over TCP and
UDP. (ICMP is used for very specific operations, so
protocols aren't generally built over that)(*).
</BLOCKQUOTE>
<BLOCKQUOTE><ul><li>
(An aquaintance who's wired into the
black hat scene once told me about
a kernel hack that implemented a "stealth
telnet and file transfer protocol" by using
the normally unused data payload portion of
ICMP packets. This would require kernel
modules or patches since normally ICMP
packets are not routed to user space
applications. I'm not sure if this story
is apocryphal. If not it makes for a
scary way for crackers to traverse many
"naive" packet filtering schemes.)
</UL></BLOCKQUOTE>
<BLOCKQUOTE>
So, protocols like telnet, HTTP, and FTP are implemented
over TCP while protocols like SNMP, syslog and FSP(*)
are implemented over UDP.
</BLOCKQUOTE>
<BLOCKQUOTE><ul><li>
(a fairly obscure file sharing protocol,
which used to be particularly popular among
purveyors of "warez" -- pirated software)
</UL></BLOCKQUOTE>
<BLOCKQUOTE>
Some services use UDP and TCP. For example SMB uses
hybrid protocols over both. DNS uses UDP for normal
name resolution and uses TCP for "zone transfers"
(updating secondary authority servers).
</BLOCKQUOTE>
<BLOCKQUOTE><ul><li>
(Another, mythical stealth communications tool
apparently uses DNS/UDP packets with "magic"
domain names as the communications
mechanism. That's even scarier since there are
lots of sites that block ICMP while there are
fewer that would block DNS).
</UL></BLOCKQUOTE>
<BLOCKQUOTE>
So, you have applications protocols over transport
protocols. Under the IP layer you have network layer
protocols like ethernet CSMA/CD, token ring, ARCnet,
etc. Under that you have media layer (physical) protocols
which describe the wires, fibres, voltages, frequences
and modulation parameters of the signals that actually
carry all of these protocols.
</BLOCKQUOTE>
<BLOCKQUOTE>
So, your question is a bit confusing. It's like asking:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
What driver does a bus driver use to drive a bus?
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
UNIX and Linux predominantly use TCP/IP for most of their
applications protocols. Connecting UNIX to a network
involves running many protocols over the TCP/IP suite.
</BLOCKQUOTE>
<BLOCKQUOTE>
It's worth noting that Linux and some other forms of UNIX
also offer support for some other transport protocols like
Novell's IPX/SPX, Apple's DDP and DEC's DECnet (Pathworks)
protocols.
</BLOCKQUOTE>
<BLOCKQUOTE>
All of this material should have been covered in the
first day of any decent computer networking class. (Except
for the references to FSP, and those mythical/apocryphal
"stealth" protocols, of course).
</BLOCKQUOTE>
<BLOCKQUOTE>
Consider taking a better course, getting better text books
to study on your own, or something --- because it sounds
like this one is just not doing it for you.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 29 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/30"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 30 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Uninstalling Linux</H3>
<p><strong>From Victor Turner on Mon, 11 Oct 1999
</strong></p>
<!-- ::
Uninstalling Linux
~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hi - hope you can help me,
</STRONG></P>
<P><STRONG>
I found and read your answer to how to uninstall Linux [dated 18th Dec
</STRONG></P>
<P><STRONG>
1998 from Tom Monaghan] - which related to uninstalling <A HREF="http://www.redhat.com/">Red Hat</A> Linux 5.2
- and thinking that I could use the info you gave in the answer to remove &
uninstall my version of Linux which is <A HREF="http://www.caldera.com/">Caldera</A> open Linux 2.2, I followed
the instructions . .
</STRONG></P>
<P><STRONG>
but as a complete moron when it comes to computers I somehow failed to
obtain the results expected and linux won't go away !
I have it installed on my Olivetti Echos 133EM laptop PC which has 1.6gig
hard drive partitioned [during the Linux install] to 2 partions, 1 of 92% &
the other of 8%
</STRONG></P>
<P><STRONG>
there is 80 meg RAM/ CD-ROM & Floppy drive
The Caldera open Linux 2.2 used a built in version of Partition magic to
partition thye hard drive during installation.
</STRONG></P>
<P><STRONG>
I SHOULD have waited until I obtained a second hard drive for my desktop PC
where I could 'play' with Linux and learn to my hearts content whist still
having my laptop [which used to have Win95 for work related stuff ] - but I
was not patient and now seem to be suffering for it as I can not find out
any information [other than your answer to Toms question] - which was for a
different breed of Linux.
</STRONG></P>
<P><STRONG>
Can you help me PLEASE !
<br>Yours in anticipation,
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
There is nothing special about the suggestions I offered.
It doesn't matter what Linux distribution (or even what
operating system) you're trying to remove. The process
boils down to:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><ul>
<li>Run fdisk (from a Linux rescue diskette) and delete the
Linux partitions. That will leave the space that those
filesystems occupied as "unallocated" so far as MS-DOS
and other operating systems are concerned. (You con't
actually have to remove the data that was in those
partitions --- simply removing the partition table
entries that describe the should be sufficient).
<li>Boot from an MS-DOS floppy and type FDISK <TT>/MBR.</TT>
</ul></Blockquote></BLOCKQUOTE>
<BLOCKQUOTE>
This last step makes sense for versions of MS-DOS after
version 5.x. Win '9x is really still just MS-DOS with a
GUI glued over the front of it. So most of this should
apply to it as well, when you manage to get in behind the
GUI. Alternatively you should be able to use the command:
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQUOTE><CODE><BlockQuote>
lilo -U
</BlockQuote></CODE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
... BEFORE you delete your Linux partitions.
</BLOCKQUOTE>
<BLOCKQUOTE>
When you first install Linux using LILO, the <TT>/sbin/lilo</TT>
command will create a <TT>/boot/boot.0XXX</TT> file, a backup of the
MBR that it originally found on the system. The -U and -u
options of the <TT>/sbin/lilo</TT> command will put that backup
copy back into place (if it exists and with some sanity
checks).
</BLOCKQUOTE>
<BLOCKQUOTE>
Note: The lilo -U command is basically the same as using
a command like:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><Code>
dd if=/boot/boot.0XXX of=/dev/hdX count=446
</Code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
... though it should be a tiny bit safer. In any case I
highly recommend performing a backup of your system before
doing any software installations, upgrades, or removals.
</BLOCKQUOTE>
<BLOCKQUOTE>
Incidentally, if you really want to wipe data from those
Linux filesystems before you remove the partitons you can
use a command like:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><Code>
dd if=/dev/zero of=/dev/hdXXX
</Code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
... do over-write a whole partition or drive with ASCII
NULs. Note: if you do that with of= (output file)
<TT>/dev/sda</TT> you'll wipe your entire first SCSI hard drive.
If you do it with <TT>/dev/sda1</TT> you'll only much the first
partition on that drive. If you use <TT>/dev/hdb3</TT> you'll
destroy the number three primary partition on your
second IDE drive, <TT>/dev/hda6</TT> will get the second LOGICAL
partition on your first IDE drive, and so on.
</BLOCKQUOTE>
<BLOCKQUOTE>
If that doesn't scare you then you didn't read it carefully
enough. You can wipe out whole drives or individual
partitions using the 'dd' command. It should be treated
like a six-foot razor!
</BLOCKQUOTE>
<BLOCKQUOTE>
Also note that you really want to do these operations
while booted from a rescue floppy. Otherwise you'll
destroy shared libraries, swap partitions, and other
data that Linux needs to complete your swipes.
</BLOCKQUOTE>
<BLOCKQUOTE>
In the worst case to a backup of your entire DOS/Win '9x
system. Test it. Then boot from a rescue floppy,
zero out the whole drive; re-install MS Windows from
scratch and restore your data. I know that's inconvenient
and scary.
</BLOCKQUOTE>
<BLOCKQUOTE>
It's the shame of the whole computer industry. Backups and
restores are slow, expensive, unreliable and instill
little confidence in most users. That problem is hardly
unique to Linux, or PCs; I hear that from all sorts of
users.
</BLOCKQUOTE>
<BLOCKQUOTE>
(My preferred means of doing software and OS upgrades is
to perform the installation on a new system, then copy
my data and configuration over. I just did that to canopus
this weekend, so I'm writing from canopus2. In a week or
so I'll wipe out the old canopus and rename my new host
to use the old name).
</BLOCKQUOTE>
<!-- sig -->
<!-- end 30 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/31"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 31 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Who is Jim Dennis?</H3>
<p><strong>From SeanieDude on Mon, 11 Oct 1999
</strong></p>
<!-- ::
Who is Jim Dennis?
~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
hey why did it take you so long to respond
i don't even know what i searched for anymore
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I've been busy.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
anyway go to my page at <A HREF="http://go.to/3d~now"
>http://go.to/3d~now</A>
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Yuck! Looks really ugly in Lynx. Of course you
seem to be selling banner ad graphics design services
and you seem to want frames and require JavaScript to
view your site. So Lynx users wouldn't be interested
anyway.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Sean
</STRONG></P>
<!-- sig -->
<!-- end 31 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/32"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 32 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>FoxPro 2.0 (SCO) Running Under Linux: Try Flagship?</H3>
<p><strong>From Joseph Gazarik on Mon, 11 Oct 1999
</strong></p>
<!-- ::
FoxPro 2.0 (SCO) Running Under Linux: Try Flagship?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Dear James,
</STRONG></P>
<P><STRONG>
Hello, my name is Joe Gazarik. I am a software support specialist
</STRONG></P>
<P><STRONG>
with Signal Software in Pittsburgh, PA. Signal produces accounting software
for the automotive aftermarket. Our current product, TireWorks Gold is
FoxPro 2.6 based running on SCO. I have been commissioned to get that
FoxPro 2.6 SCO program working in Linux. I would appreciate any and all
help that you could lend me. Do you have any suggestions in getting FoxPro
2.6 runtime for SCO Unix running on Linux? Thanks in advance for your
assitance!
</STRONG></P>
<P><STRONG>
Best Regards,
Joe Gazarik
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Well, I don't know of a Linux port of FoxPro. It seems
unlikely that we'd see one any time soon since Fox software
was aquired by Microsoft.
</BLOCKQUOTE>
<BLOCKQUOTE>
In general you can run SCO compatible software under
Linux by using the iBCS libraries. For that I'd run
<A HREF="http://www.caldera.com/">Caldera</A>'s OpenLinux since they provide a kernel with
iBCS patches already applied.
</BLOCKQUOTE>
<BLOCKQUOTE>
For FoxPro specifically you might find that they rely on
some of SCO's proprietary libraries. You'd have to copy
those unto your Linux system from your SCO system --- and
you'd have to watch the licensing issues that relate to
that. Obviously that might cause some serious problems
for your software distribution plans.
</BLOCKQUOTE>
<BLOCKQUOTE>
You could port your software to Flagship
(<A HREF="http://www.wgs.com/fsad.html"
>http://www.wgs.com/fsad.html</A>). That is a package from
WorkGroup Solutions which provides a set of programming
tools for compiling dBase code (with Fox, Clipper and other
xBase extensions).
</BLOCKQUOTE>
<BLOCKQUOTE>
You can then create and distribute standalone native
applications using your existing xBase sources. The
resulting programs are royalty free and should run on Linux
systems without any need for iBCS or any proprietary
libraries.
</BLOCKQUOTE>
<BLOCKQUOTE>
As a commercial software developer this sounds like it
would be your best bet.
</BLOCKQUOTE>
<BLOCKQUOTE>
In addition it looks like Flagship offers modules to support
connections to SQL backend databases. This could be useful
if you develope client/server versions of your package in
the future.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 32 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/33"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 33 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Coping with Bad Sectors</H3>
<p><strong>From excess6 on Mon, 11 Oct 1999
</strong></p>
<!-- ::
Coping with Bad Sectors
~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hi, i found out my 4month old quantum hdd has some bad clusters, is there a
way i can fix it?
what happed was i turned off ym poota in windows and later on i turned it
on and it said data error reading c:
i did scandisk surface scan and it found 1 of my sectors was bad, i
rebooted later and windows is working but is there anything i can do to
like isolate the sector so i dont put inportant stuff on that sector or
something.
-cheers excess
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I would hope that SCANDISK.EXE would mark bad sectors
so they would no longer be used. If not, get a copy of
Norton Utilities or download some shareware utilities
for MS-DOS. There used to be a few utilities with names
like MARKBAD.COM that would mark clusters as bad under
MS-DOS. (Windows '9x filesystems are mostly the same as
MS-DOS FAT with some hackery involving extra "volume labels"
to get long filename support. MS should have called
their new variant KFAT -- for "kludge" rather than VFAT).
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course if you were using Linux you could just use
'e2fsck -c' to check your filesystems, test them for back
blocks and automatically assign any bad blocks to a special
system list (thus prevent them from every being accessed by
anything else).
</BLOCKQUOTE>
<BLOCKQUOTE>
When you create new filesystems under Linux, you should
also use the -c option to mkfs (or check the appropriate
box/option in any GUI/dialog that you happen to be using).
</BLOCKQUOTE>
<!-- sig -->
<!-- end 33 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/34"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 34 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Homework Assignment: Write about Linux Memory Management</H3>
<p><strong>From Rhymer,Robert on Mon, 11 Oct 1999
</strong></p>
<!-- ::
Homework Assignment: Write about Linux Memory Management
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
I was wondering if you knew a site where I can get alot of information
on Linux's Memory Management. I am doing a report on it and need as
much infomation I can get. Websites, books, etc.. any info will help.
Thank you for your time.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
How about the source code? That would be the most
authoritative resource on the topic. Look through the
sources in <TT>/usr/src/linux/mm</TT> for starters.
</BLOCKQUOTE>
<BLOCKQUOTE>
If you look at my "LDP by Topics" page and search on
"programming" you'll find a list of all of LDP HOWTOs and
guides that relate to Linux programming. In particular
there the ones that refer to the "kernel." That might
be a good introduction; help you get your bearings.
</BLOCKQUOTE>
<BLOCKQUOTE>
There is also the "The Linux Programmer's BouncePoint"
at <A HREF="http://www.ee.mu.oz.au/linux/programming"
>http://www.ee.mu.oz.au/linux/programming</A> and the
Linux Programming page at the #LinuxOS (IRC Channel)
home page: <A HREF="http://www.linuxos.org/Lprogram.html"
>http://www.linuxos.org/Lprogram.html</A>
Another site is Rik van Riel's Linux Memory Management
page at: <A HREF="http://www.linux.eu.org/Linux-MM"
>http://www.linux.eu.org/Linux-MM</A> (though this
is really pretty preliminary -- it has links to related
topics. Rik apparently started this, then got side-tracked
to write a performance tuning guide. (An understandable
priority, considering things like the Mindcraft fiasco).
</BLOCKQUOTE>
<!-- sig -->
<!-- end 34 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/35"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 35 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>HP with LT Winmodem</H3>
<p><strong>From Bob Gregg on Mon, 11 Oct 1999
</strong></p>
<!-- ::
HP with LT Winmodem
~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
I have just purchase a HP computer with LT Winmodem . DEspite
loading new and latest drivers etc I can only connect at 28,800 to
my isp . I have tried other isp's as well spoken to HP at length
and to no avail. any suggestions.
</STRONG></P>
<P><STRONG>
Bob Gregg
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
It sounds like you're not running Linux. So my first
suggestion is: don't send non-linux questions to the Linux
Gazette Answer Guy.
</BLOCKQUOTE>
<BLOCKQUOTE>
If you're getting 28.8 then be happy. Speed claims
beyond that are dubious and likely to occur only under
optimal conditions, rarely and briefly. If you really
need faster access you'll have to look at alternative
technologies (ISDN, cable modem, leased line, DSL, etc).
</BLOCKQUOTE>
<!-- sig -->
<!-- end 35 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/36"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 36 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Linux to HP9000 Through RAS?</H3>
<p><strong>From hansmok on Mon, 11 Oct 1999
</strong></p>
<!-- ::
Linux to HP9000 Through RAS?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Dear Jose L. Torres Reyes,
</STRONG></P>
<P><STRONG>
I am a beginer who have interest in linux in South Korea.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
First, please don't send e-mail in HTML format.
Most people won't appreciate it. (Obviously if
you have some friends who prefer it, you can do
what you like with them.
</BLOCKQUOTE>
<BLOCKQUOTE>
The best way to send e-mail is as plain, simple
ASCII text with no special characters, and
simple line, space and tab formatting. Keep the
lines down to about 72 characters or less. For
best results leave a few spaces or a tab on the
left as a "margin."
</BLOCKQUOTE>
<p><em>[ We've no idea who Mr. Reyes is, either. But it was,
at least, a Linux question. -- Heather ]</em></p>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I tried contacted between personal computer(operating
system:slackware linux) and HP9000 unix server(operating
system:UNIX) through PPP(point to point protocol) method.
</STRONG></P>
<P><STRONG>
I checked success in login into HP9000 unix server but failed
after inserting password.
</STRONG></P>
<P><STRONG>
I don't know the reason that failed in contacting into
HP9000 unix server.
</STRONG></P>
<P><STRONG>
I use RAS(Remote Access Service) in contacting.
I'd like to receive your answer as soon as possible.
</STRONG></P>
<P><STRONG>
Bye.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
There are many ways to set up PPP among UNIX and
Linux systems. I don't know what your HP-UX is
referring to as "RAS" (remote access server). It
could be that they've implemented some service that
is designed to allow NT systems to log into theirs.
(That would be the most likely meaning of the term
RAS in this context).
</BLOCKQUOTE>
<BLOCKQUOTE>
The Linux PPP daemon would not normally function as
a RAS client. There maybe options to do that, however
it seems like it would just complicate matters. I'd
suggest that you just play with the HP PPP settings
(see their docs for info on that --- or talk to their
technical support) so that they allow simple PAP or
CHAP authentication. Then configure your Linux pppd
accordingly.
</BLOCKQUOTE>
<BLOCKQUOTE>
The difficult thing about PPP in general is that you
have to make sure that your settings and those of your
remote (ISPs in most cases, the HP9000 in yours) all
match. Different PPP implementations use slightly
different terms for some of the many features that they
offer, and most of them have completely different
configuration file formats, locations and
command line options.
</BLOCKQUOTE>
<BLOCKQUOTE>
Be sure to spend time with the Linux PPP HOWTO
at <A HREF="http://www.linuxdoc.org/HOWTO/PPP-HOWTO.html"
>http://www.linuxdoc.org/HOWTO/PPP-HOWTO.html</A>.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 36 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/37"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 37 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>TCPMux Revisited: You'll need a Daemon for it, or a Better inetd</H3>
<p><strong>From Helpdesk on Fri, 1 Oct 1999
</strong></p>
<BLOCKQUOTE>
Thnx jim (hope i can call you that).
</BLOCKQUOTE>
<BLOCKQUOTE>
i could make my work do with the Mike Neuman's BINETD,
"Better INETD" at: <A HREF="http://www.engarde.com/~mcn/binetd/index.htm"
>http://www.engarde.com/~mcn/binetd/index.htm</A>)
</BLOCKQUOTE>
<BLOCKQUOTE>
works ok till now.
</BLOCKQUOTE>
<BLOCKQUOTE>
will be in touch.
</BLOCKQUOTE>
<BLOCKQUOTE>
ciao
</BLOCKQUOTE>
<BLOCKQUOTE>
jaggu
</BLOCKQUOTE>
<!-- end 37 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/38"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 38 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Overwrote NT with RedHat: Good Idea But Bad Move</H3>
<p><strong>From tonyray on Mon, 11 Oct 1999
</strong></p>
<!-- ::
Overwrote NT with RedHat: Good Idea But Bad Move
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hi there answer guy,
</STRONG></P>
<P><STRONG>
Im tonyray form philippines, got a big problem.
</STRONG></P>
<P><STRONG>
I was installing a redhat 5.2 on my computer, with 1st hardrive
ide-with nt4 normally working, 2nd hardrive for redhat5.2. What
happened the nt4 hardrive was deleted reformatted into linux
native. Is there a way to get back my nt4 files, like unformat?
</STRONG></P>
<P><STRONG>
please help
thanks
tonyray
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Unformat would NOT help in this situation regardless of which OS
or platform was involved. You didn't merely reformat your drive
or delete those files. You've overwritten most or all of them.
</BLOCKQUOTE>
<BLOCKQUOTE>
The only reasonable way to get back your files is from a backup.
I realize that you probably don't have one --- I've found that
too many people walk the software installation and upgrade high
wire with the safety net of a recent, tested backup of their
data.
</BLOCKQUOTE>
<BLOCKQUOTE>
Sorry I can't offer you better news or more hope. If your
data is worth quite a bit more than your computer you could
look into data recovery using "magnetic force microscopy"
(a technique used in criminal crime labs computer forensics).
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course the procedure would probably cost more than my
annual salary and probably only be partially successful. So
that suggestion is not practical.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 38 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/39"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 39 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Partitioning Advice</H3>
<p><strong>From Stock Watch on Fri, 15 Oct 1999
</strong></p>
<!-- ::
Partitioning Advice
~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Greetings James,
</STRONG></P>
<P><STRONG>
Hi, I'm Wong. I need your advice on how to partition a 6.2GB hard
disk so that it can optimize the usage of Linux. This is my first
time installing Linux. I intend to set it as a full Linux
server. The main purpose of the Linux server is to act as a mail
server besides doing other functions. I also learn that it need a
swap partition. Please advice. Thanks in advance.
</STRONG></P>
<P><STRONG>
Cheers,
Wong
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
This is a very common question. There are differing
views and philosophies on the subject as well.
</BLOCKQUOTE>
<BLOCKQUOTE>
Here's my suggestions:
</BLOCKQUOTE>
<blockquote><pre> /boot 31Mb
/ 127Mb
(swap) 127Mb
/usr 1635Mb (1.5Gb)
/tmp 127Mb
/home 2047Mb (2Gb)
/var (rest: ~3Gb)
</pre></blockquote>
<BLOCKQUOTE>
... and on some systems I'd add other filesystems on another
drive. For example a filesystem on <TT>/var/spool/mail</TT> can be
mounted with the "sync" (insuring that all writes to that
filesystem are done synchronously --- minimizing the damage
down by a power failure).
</BLOCKQUOTE>
<BLOCKQUOTE>
This set of values is based on years of experience. It
leaves plenty of room for extra kernels, initrd images and
System.map files on <TT>/boot</TT>, gives plenty of room for paging
(swap). <TT>/usr</TT> is big enough to install LOTS of software. If
this was going to be used exclusively as a mail server then
you don't need anywhere near that much space on <TT>/usr.</TT> Of
course you shouldn't need anywhere neer 3Gb for normal mail
and POP services either.
</BLOCKQUOTE>
<BLOCKQUOTE>
That should get you started. If you find that you do manage
to outgrow your disk space, you can add additional drives
pretty easily. I've described that process in previous
Answer Guy columns.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 39 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/40"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 40 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>UNIX Emulation Under Linux? iBCS</H3>
<p><strong>From antonio on Fri, 15 Oct 1999
</strong></p>
<!-- ::
UNIX Emulation Under Linux? iBCS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hi James,
</STRONG></P>
<P><STRONG>
i read an answer of your's in Linux Gazzette regarding Unix emulators.
</STRONG></P>
<P><STRONG>
I seem to understand that Lucent's Inferno is a Unix emulator for
Linux??
</STRONG></P>
<P><STRONG>
I have a problem. There is a program for Pharmacy's here in Italy (very
widely used) which has the function of registering medical codes etc.
but which runs only under Unix. But Unix OS's are not free so Pharmacies
are forced to buy Unix OS (Open Server) only for the sake of letting the
computer run for that specific prog i mentioned above. Linux instead is
free so pharmacies would not have to afford the price of the OS. Though
the company that wrote the prog is not willing to port it under linux
... for obvious reasons of economical interest as they handle the
licence of the OS and thus have a share on that too. With linux they
would have to give up the that share.
Can you help me??
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
First Lucent's Inferno operating system is not a form of
UNIX. It can run as a "standalone" (traditional) operating
system, and it can apparently run as a "rehosted" OS
(that is an operating system which runs under another
system's kernel, and accesses the system hardware through
the host OS' system calls). So, Inferno can run under
Linux.
</BLOCKQUOTE>
<BLOCKQUOTE>
Now onto your core question. When you say that this
proprietary software runs "only under Unix" what do you
really mean? UNIX is not a single product or operating
system. UNIX is a family of operating systems and related
utilities, and a philosophy or paradigm for system design.
In that sense Linux <EM>is</EM> UNIX.
</BLOCKQUOTE>
<BLOCKQUOTE>
It is meaningless to say that UNIX is not a free OS.
<A HREF="http://www.freebsd.org/">FreeBSD</A>, 386BSD, <A HREF="http://www.openbsd.org/">OpenBSD</A>, <A HREF="http://www.netbsd.org/">NetBSD</A>, all have as much
historical claim to "being UNIX" as any AT&T SVR4 system.
Those are all free operating systems. Linux was
independently developed. So it can't claim to <EM>be</EM> UNIX
on historical or "familial" grounds.
</BLOCKQUOTE>
<BLOCKQUOTE>
What I think you were saying is that this proprietary
pharmaceutical management product is written to run under
one of SCO's UNIX products (Open Server, or Open Desktop).
</BLOCKQUOTE>
<BLOCKQUOTE>
If that is the case than you might be able to run the
package under iBCS.
</BLOCKQUOTE>
<BLOCKQUOTE>
iBCS is the "Intel Binary Compatibility Specification" ---
an old (pre-Linux) standard binary format for executables
on x86 forms of SVR4 UNIX. At one time there were over
20 different commercial competitors to SCO on x86 hardware.
There was a lackluster effort among these vendors to share
a common executable file format and suite of libraries
so that "shrinkwrapped shelfware" could be developed for
"any" version of UNIX on the x86.
</BLOCKQUOTE>
<BLOCKQUOTE>
SCO OSVR and ODT programs are iBCS by default (if I
understand it correctly).
</BLOCKQUOTE>
<BLOCKQUOTE>
Linux does support iBCS through a set of optional
libraries. (Ironically SCO and Solaris now support Linux
binaries through their lxrun packages. FreeBSD has been
able to run Linux binaries for years).
</BLOCKQUOTE>
<BLOCKQUOTE>
So, it might be technical possible for you to run this
proprietary application. Then again the app. might be
linked against some SCO proprietary libraries ---
which you might not be licensed to copy to your Linux
systems.
</BLOCKQUOTE>
<BLOCKQUOTE>
Aside from the technical issues you must consider the
legalities. It might be a violation of your license to
run this software under a different OS. Of course it
might also be an illegal and unenforcable contract
in your jurisdiction. If this company requires that
you buy a given product with theirs (bundling), you
might have legal recourse.
</BLOCKQUOTE>
<BLOCKQUOTE>
I don't know. I'm not a lawyer.
</BLOCKQUOTE>
<BLOCKQUOTE>
So, I'll just get back to the technical issue. You can
probably get this to run under Linux by using iBCS.
</BLOCKQUOTE>
<BLOCKQUOTE>
The iBCS libraries ship with most Linux distributions.
You can also find them on line with a simple Yahoo! or
Google search.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 40 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/41"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 41 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>PAM applications running as root (Was Re: WebTrends Enterprise Reporting Server)</H3>
<p><strong>From Darren Moffat on Sun, 17 Oct 1999
</strong></p>
<P><STRONG><FONT COLOR="#000066"><EM>
You can run the server as root or as some other user. In order to
use PAM (Pluggable Authentication Module) it has to run as root.
</EM></FONT></STRONG></P>
<P><STRONG>
A general comment about PAM rather than this specific problem.
</STRONG></P>
<P><STRONG>
It is NOT a requirement of the PAM framework that application be
running as root. There are two cases though that make login type
applications need to run as root.
</STRONG></P>
<P><STRONG>
1) The password is stored in <TT>/etc/shadow</TT> which only root can read
</STRONG></P>
<P><STRONG>
If the password was in NIS/NIS+/LDAP then the authentication
could succeed are an ordinary user.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Actually it should be possible for <TT>/etc/shadow</TT> to be
group readable and associated with a "shadow" or "auth"
group. Then SGID programs could authenticate against it.
</BLOCKQUOTE>
<BLOCKQUOTE>
A different level of access could be required to
modify it (that would presumably be reserved for root,
since the ability to modify the <TT>/etc/shadow</TT> and <TT>/etc/passwd</TT>
files on those systems that are configured to honor local
files will consitute root access in any event).
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
2) the login application needs to make setuid/setgid calls this
</STRONG></P>
<P><STRONG>
usually happens in the application after PAM authentication has
been completed and is thus nothing to do with PAM.
</STRONG></P>
<P><STRONG>
If the OS has privileges/capabilities then the application would
assert PROC_SETID/CAP_SETID instead of being root to make the
setuid/setgid calls.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Linux 2.2 has privs implemented in the kernel. There is,
as yet, no filesystem system support for storing the
priv. bitfield metadata. So, anyone wishing to "capify"
the Linux authentication system would have to do so through
wrappers.
</BLOCKQUOTE>
<BLOCKQUOTE>
I'm personally disappointed by the lack of progress in
this field.
</BLOCKQUOTE>
<BLOCKQUOTE>
It seems that we should have at least attained the ability
to emulate BSD securelevel (wrapper or patches to init(8))
and to limit certain well-defined daemons (like xntpd,
routed/gated, syslogd) to their specific priv sets (set
time, modify routing tables, bind to priv ports).
</BLOCKQUOTE>
<BLOCKQUOTE>
We should be able to use the immutable and append-only
filesystem attributes, the read-only mount option and the
<TT>chroot()</TT> system calls as rootsafe security features and we
should be able to audit many (traditionally root run
processes) daemons and SUID utilities in terms of their
"most damage from subversion."
</BLOCKQUOTE>
<BLOCKQUOTE>
Well, it looks like I have to do some coding on this myself.
(One look at my code should scare some others into doing it
right!)
</BLOCKQUOTE>
<BLOCKQUOTE>
BTW: Does Solaris implement POSIX.1e "capabilities"
(privs)? How about HP-UP, AIX, et al? Are those in the
mainstream OS APIs or are they only available in "Trusted"
(MLS/CMW) versions?
</BLOCKQUOTE>
<!-- sig -->
<!-- end 41 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/42"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 42 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>International Keyboard Mappings for</H3>
<p><strong>From Hector Rivera on Mon, 18 Oct 1999
</strong></p>
<!-- ::
International Keyboard Mappings for <A HREF="http://www.caldera.com/">Caldera</A>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hi there,
</STRONG></P>
<P><STRONG>
Sorry for approaching you like this. But I need help. I learned about
you from Linux Gazette.
</STRONG></P>
<P><STRONG>
I'm new to Linux but somewhat familiar with Unix. Just installed Caldera
Open Linux 2.3 with <A HREF="http://www.kde.org/">KDE</A> GUI. I share the HD with Win98.
</STRONG></P>
<P><STRONG>
I want to find how I can configure my US keyboard for
US-International mapping, like Win98. I need to be able to have
access to latin characters without having to replace the keyboard.
Is there a way to setup KDE or X to US-International? If so, how?
Will it work with other Linux applications like StarOffice, Word
Perfect, email clients, etc?
</STRONG></P>
<P><STRONG>
Let me know if you need more details.
</STRONG></P>
<P><STRONG>
Thanks in advance,
Hector
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Under Linux your cosnole keyboard mappings are setting
in two places.
</BLOCKQUOTE>
<BLOCKQUOTE>
The text mode virtual consoles are controlled with utilities
from the kbd or console-tools package. (Older versions were
called kbd; this as been supplanted by the console-tools
package since kbd was no longer under active development;
think of it as simply a renamed and updated package).
</BLOCKQUOTE>
<BLOCKQUOTE>
In particular the utility you want is 'loadkeys' which
takes mapping files that are similar in syntax to those
from the standard xmodmap utility that you find with
any implementation of the X Window system.
</BLOCKQUOTE>
<BLOCKQUOTE>
'xmodmap' and the 'xkeycaps' utility are normally used for
X. I don't know if KDE and <A HREF="http://www.gnome.org/">GNOME</A> have their own
frontends for setting xmodmap. I would expect their
"control panel" facilities to offer this sort of thing
(given that the KDE project was started by Germans, and
some of the principle GNOME developers are Mexican, and
both projects have developers from all over the world).
</BLOCKQUOTE>
<BLOCKQUOTE>
The best resource for customizing your Linux keyboard is:
</BLOCKQUOTE>
<BLOCKQUOTE><DL><DT>
The Linux Keyboard and Console HOWTO
<DD><A HREF="http://www.linuxdoc.org/HOWTO/Keyboard-and-Console-HOWTO.html"
>http://www.linuxdoc.org/HOWTO/Keyboard-and-Console-HOWTO.html</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE>
One HOWTO specifically about coping with Linux in Spanish is:
</BLOCKQUOTE>
<BLOCKQUOTE><DL><DT>
Spanish Linux HOWTO
<DD><A HREF="http://www.linuxdoc.org/HOWTO/Spanish-HOWTO.html"
>http://www.linuxdoc.org/HOWTO/Spanish-HOWTO.html</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE>
... although that doesn't seem to have been updated since
1996. There's got be something newer out there!
</BLOCKQUOTE>
<BLOCKQUOTE>
The LDP (<A HREF="http://www.linuxdoc.org"
>http://www.linuxdoc.org</A>) has a set of
non-english links including a section on Spanish web sites
at:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
<A HREF="http://www.linuxdoc.org/links/nenglish.html#spanish"
>http://www.linuxdoc.org/links/nenglish.html#spanish</A>
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
You can find a whole list of HOWTOs on Linux support for
various other languages at:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
<A HREF="http://www.starshine.org/jimd/LDPxTopic.html#international"
>http://www.starshine.org/jimd/LDPxTopic.html#international</A>
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
This last item is my own modest attempt to arrange a list of
links LDP HOWTOs and guides by Topic
(<A HREF="http://www.starshine.org/jimd/LDPxTopic.html#international"
>http://www.starshine.org/jimd/LDPxTopic.html#international</A>)
</BLOCKQUOTE>
<BLOCKQUOTE>
(Sometime I should put some more work into it. For now it
tries to start with basics and user stuff and progress
towards more advanced and obscure topics.)
</BLOCKQUOTE>
<BLOCKQUOTE>
As for support for non-English in an applications suite,
I'd expect StarOffice to have the edge. It was created
in Germany and does support several European languages.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 42 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/43"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 43 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Really Wants 'rsh' to Work. Really</H3>
<p><strong>From Mike Hahn on Mon, 18 Oct 1999
</strong></p>
<!-- ::
Really Wants 'rsh' to Work. Really
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Dennis,
</STRONG></P>
<P><STRONG>
I have read all I could find on rsh and getting it to work to no avail.
I run a small CAD network and am in need of the rsh function. We are
on a small private network so hacking is not really a consern. I run
Mandrake Linux 6.0, Windows95/8/NT, IBM AIX, SUN Solaris, and DOS 6.2.
I can rsh from to all machines exept the Linux boxes. I have tried all
the suggestions in the "Answer Guy" columns that I could find. I did
notice that in all of the "problems" the error message was "permission
denied", what I am getting is "Connection Refused" Can you HELP?
</STRONG></P>
<P><STRONG>
Thank You.
</STRONG></P>
<P><STRONG>
M. Hahn
Systems Admin.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
What does the rsh line in your <TT>/etc/inetd.conf</TT> file
look like?
</BLOCKQUOTE>
<BLOCKQUOTE>
It might be configured with command line options that
prevent the Linux version of in.rshd from honoring
certain types of .rhost file or force it to ignore
<TT>/etc/hosts.equiv.</TT> Here's an example:
</BLOCKQUOTE>
<blockquote><pre># /etc/inetd.conf: see inetd(8) for further informations.
shell stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rshd -h
login stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rlogind
</pre></blockquote>
<BLOCKQUOTE>
In this example the -h option was specified. That is a
common setting on many Linux distributions. It means that
"super user accounts may not be accessed through this
service" (i.e. 'root' and any other accounts with UID=0).
</BLOCKQUOTE>
<BLOCKQUOTE>
If a -l option is specified than nobody's .rhosts file
will be allowed. (Only the <TT>/etc/hosts.equiv</TT> would be
consulted).
</BLOCKQUOTE>
<BLOCKQUOTE>
Read the in.rshd man page for all the gory details.
Keep in mind that the Linux version of rshd is likely to be
very picky about the forward and reverse hostname-IP address
mappings (in a mostly futile attempt to foil spoofing).
</BLOCKQUOTE>
<BLOCKQUOTE>
One trick for testing these sorts of problems is to
temporarily replace the in.rshd (or other inetd launched
daemon) with a wrapper shell script that calls 'strace'
with a command like:
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQUOTE><CODE><BlockQuote>
strace -o <TT>/tmp/rshd.strace</TT> <TT>/usr/sbin/in.rshd.real</TT> $@
</BlockQuote></CODE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
... and then try to connect to the service. After you get
an error, login to the system using some other means and
view the resulting "system call trace" file.
</BLOCKQUOTE>
<BLOCKQUOTE>
These 'strace' files can be difficult to read. However,
you can usually take a pretty good guess as to what the
problem is by watching for failures on<TT> open()</TT>,<TT> stat()</TT> and
<TT>lstat()</TT> calls.
</BLOCKQUOTE>
<BLOCKQUOTE>
(This strace trick is useful for all sorts of problems,
helping you isolate the missing configuration file or
directory that some program is failing to find or unable
to create/see. Of course I'd love to see a massive
"error messages" project for Linux that would add patches
to these programs to ensure that every distinct failure
mode at a clear error message and every man page had an
comprehensive list of the associated error messages and
suggested coping strategies).
</BLOCKQUOTE>
<BLOCKQUOTE>
Good look.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 43 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/44"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 44 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Laundry List of RH 6.0 Problems or Hardware Blues</H3>
<p><strong>From root on Mon, 18 Oct 1999
</strong></p>
<!-- ::
Laundry List of RH 6.0 Problems or Hardware Blues
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hi
</STRONG></P>
<P><STRONG>
I am hoping you will be able to help. I have various problems with
Redhat 6.0
</STRONG></P>
<P><STRONG>
A Current problem
</STRONG></P>
<P><STRONG>
1. Whilst running gnome 1.04 I can access no terminal windows except kde
terms.
</STRONG></P>
<P><STRONG>
Xterm window does not appear complaining about no ptys free
</STRONG></P>
<P><STRONG>
rxvt does not appear complaining about colour maps
</STRONG></P>
<P><STRONG>
Gnome-terminal appears but with no promt just a cursor which I cannot
type into.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Wow! That's pretty irritating.
</BLOCKQUOTE>
<BLOCKQUOTE>
The ptys problem suggests that your don't have the new
<TT>/dev/pts</TT> psuedo-filesystem mounted. <TT>/dev/pts</TT> is a virtual
filesystem (similar to <TT>/proc</TT>). It allows those programs
with the appropriate library support to dynamically allocate
ptys (psuedo-ttys, used by each xterm, telnet session,
'screen' window, etc).
</BLOCKQUOTE>
<BLOCKQUOTE>
My guess is that your other terminal emulators aren't
using that method, so they are searching through the list
of traditional ptys (<TT>/dev/ttyp*</TT>). It would be nice if the
programs that try to go through the pts system would fall
back to the old method automatically. (Of course I could be
wrong, perhaps it is the xterm that is using the old method,
and the others are getting they ptys dynamically. Look
under <TT>/dev</TT> for <tt>ttyp</tt>* and look at the mount command for a
<tt>/dev/pts</tt>.
</BLOCKQUOTE>
<BLOCKQUOTE>
The color maps problem suggests that the <A HREF="http://www.gnome.org/">GNOME</A>/Enlightenment
theme that you're using is taking up enough colors that
there aren't any available for your other applications.
If you're running Netscape Navigator/Communicator before you
try these commands, then it is the likely culprit --- it
steals a lot of colors.
</BLOCKQUOTE>
<BLOCKQUOTE>
You could try starting X with --bpp 16:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><code>
startx -- :1 --bpp 16
</code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
... (this is to put a 2nd X session on a new virtual
console, on the assumption that you are using a gdm, kdm, or
xdm graphical login on <tt>:0</tt>).
</BLOCKQUOTE>
<BLOCKQUOTE>
With 16 bits per pixel (if your video card and configuration
supports it) you should have lots more room in the color
map.
</BLOCKQUOTE>
<BLOCKQUOTE>
Another alternative is to change your X configuration and
disable your current list of startup applications (just
start with an xterm as the session manager, no window
managers, no xclocks or other widgets).
</BLOCKQUOTE>
<BLOCKQUOTE>
I have no idea what's wrong with your GNOME-terminal. It
could be suffering from the color map shortage as well.
Possibly it simply isn't communicating the problem as
gracefully as rvxt.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
2. While checking rpms gnorpm dies when I try to access System
environment/ base (but only this category)
</STRONG></P>
<P><STRONG>
An xterm window sees to try to appear at this time.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
This sounds like its related to the problem above.
</BLOCKQUOTE>
<BLOCKQUOTE>
(Personally I don't use any GnoRPM or Glint type front
ends to RPM. I just use the 'rpm' command).
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I can access gnome via gdm most of the time and run all programs except
these I believe.. It could possibly be a problem to do with the gtk
libraries bu I am running out of ideas
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I don't thinks the libraries are the problem in your case.
Certainly you might want to download many of the 125 upgraded
packages from <A HREF="ftp://updates.redhat.com"
>ftp://updates.redhat.com</A>
</BLOCKQUOTE>
<BLOCKQUOTE>
That site is very busy and often full. So you may want to
go to a mirror site such as:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
<A stub="ftp://ftp.cdrom.com/pub/linux/redhat/6.0/i386"
>ftp://ftp.cdrom.com/pub/linux/redhat/6.0/i386</A>
</BlockQuote></BLOCKQUOTE>
<p><em>[ You'd better stick with
<A href="ftp://ftp.cdrom.com/pub/linux/redhat/"
>ftp://ftp.cdrom.com/pub/linux/redhat/</A> and use
human judgement for the directories beyond that; they
keep changing the directory structure. -- Heather ]</em></p>
<BLOCKQUOTE>
There are at least seven GNOME related update packages
there.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
B Recurring problem (which I think has caused the present problem.
</STRONG></P>
<P><STRONG>
regularly when rebooting e2fsck destrotys patrts of my file system. This
has appeared in various ways:
</STRONG></P>
<P><STRONG><BlockQuote>
moving directories into lost+found
deleting entiring directories
deleting/corrupting files (last deleted several files on my root
partition particularly fstab causing current problem)
</BlockQuote></STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Are you sure that e2fsck is doing the "destroying" here?
It seems more likely that e2fsck is attempting to recover
from damage that's being down to your filesystem during the
previous session.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
This problem has caused me to re-install several times which timakes a
long time on my system due to repeated Sig 11 faults.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Whoa!
</BLOCKQUOTE>
<BLOCKQUOTE>
Have you read the Sig 11 page (<A HREF="http://www.BitWizard.nl/sig11"
>http://www.BitWizard.nl/sig11</A>)?
</BLOCKQUOTE>
<BLOCKQUOTE>
The bad news is that you probably have some bad memory or
some other hardware problem. Did you check the "Scan for
Bad Blocks" option when creating your swap partitions and
filesytem? If not, go back and try that! Then go through
the SIG 11 FAQ in detail.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Any help would be appreciated
</STRONG></P>
<P><STRONG>
My system is
</STRONG></P>
<P><STRONG>
RedHat 6.0 running gnome, Afterstep and <A HREF="http://www.kde.org/">KDE</A> 1.1.1pre2
Partitions <TT>/boot</TT> 7M <TT>/</TT> 220M <TT>/usr</TT> 820M <TT>/home</TT> 170M <TT>/dos</TT> 700M
Kernel 2.2.10
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Be sure you are enabling the "Unix98 PTY Support" option
under "Character devices" when compiling these new kernels.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Motherboard PC Chips M590
Memory 64M PC100
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Try taking out first one, then the other of your
memory modules (presuming that you have a couple of
32Mb DIMMs or SIMMs). If not, see about getting another
memory module and trying that in the system. If that
works, or you can't get more memory, then take your existing
RAM in for testing.
</BLOCKQUOTE>
<BLOCKQUOTE>
Most SIG 11s are caused by faulty RAM. Nothing works your
RAM like UNIX and Netware. They are a better burn-in
test then any "memory test" software, or even test bench
equipment. (They <EM>are</EM> the real world, whereas the test
software and hardware are simulating the load that they
create).
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
32X CDROM
Graphics SIS 3D AGP Pro ebedded in otherboard
generic V90 modem
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Even aside from the likelihood that you're suffering from
hardware problems, I have to say again that I don't like
the state in which GNOME was pushed into RH 6.0. I've seen
its components dropping core files all over the few systems
where I've run RH 6.x, and I've heard that this is the case
for just about everybody. core files are a symptom of bugs.
When almost everyone is getting core files in "normal
operation" then the product/package is not ready for
production use. Let's not adopt the Microsoft attitude
towards "1.0" products.
</BLOCKQUOTE>
<BLOCKQUOTE>
With the upcoming release of RH 6.1 I certainly hope <A HREF="http://www.redhat.com/">Red Hat</A>
has stabilized their flagship GUI.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 44 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/45"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 45 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>More AOL Instant Messenger Spying</H3>
<p><strong>From Jon Sandler on Mon, 11 Oct 1999
</strong></p>
<!-- ::
More AOL Instant Messenger Spying
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
it is very important to me as well that i spy on other people's
instant messages - seeing messages from both the sender and the
reciever. your help would be greatly appreciated. and im not too
in tune with the technical stuff, so a simple way would be
good. thank you very much.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
You are also "not too in tune" with ethics. You're also
not too bright, and you're lazy (since I'm sure you know
something about the basics of capitalization, et al).
</BLOCKQUOTE>
<BLOCKQUOTE>
I don't use AOL or any other instant messaging facility.
I don't care about AOL or instant messaging.
I don't know how to spy on people using this software,
and if I did know (if I took the time to figure it
out) I wouldn't tell you.
</BLOCKQUOTE>
<BLOCKQUOTE>
What I don't understand is why people like you send
me questions like this.
</BLOCKQUOTE>
<BLOCKQUOTE>
I can only imagine that you came across my name
using a web search. If you searched on "AOL" or "IM" and
"spying" (or similar topics) then you might have found
other issues of the Linux Gazette where I've told other
people that I don't dispense advice on spying. So I can
only conclude that you found my address, didn't bother to
read any of my writing, and blindly mailed me. Like I
said, not terribly bright.
</BLOCKQUOTE>
<BLOCKQUOTE>
I'm sure you could find people who are more "in tune" with
your interests and ethics in some of the seedier IRC
channels. Of course you'll have to learn quite a bit to
figure out how use IRC.
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course, I do wonder if anyone else at your site
knows, or cares about your clandestine interests. I'll
just copy the postmaster there on this reply (since
you might be violating your employer's policies or
your ISP's acceptable use policy by attempting to
invade the privacy of others).
</BLOCKQUOTE>
<!-- sig -->
<!-- end 45 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/46"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 46 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Another Solution, or a Different Problem</H3>
<p><strong>From Paul Leclerc on Mon, 11 Oct 1999
</strong></p>
<!-- ::
Another Solution, or a Different Problem
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
First of thanks for your column. It's a great source of
help for me.
</STRONG></P>
<P><STRONG>
Your recent question and answer in LG about X respawing,
etc. may have another solution.
</STRONG></P>
<P><STRONG>
I was mucking around with my XF86Config file trying to
get 16bpp to work. I really wasn't sure what I was doing
and put various directives in different "sections" of the
file.
</STRONG></P>
<P><STRONG>
One mistake that I made (and I don't remember what!!)
caused the same problem, i.e. X respawning. I went back to
the original file and everything was fixed.
</STRONG></P>
<P><STRONG>
Paul Leclerc
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Certainly having bad values in your XF86Config file
can cause failure to load X. In general anything that
prevents X Windows from loading cause a "respawning too
fast" error from 'init' when running 'xdm' (or it's
cousins, 'gdm', 'kdm' etc) from the <TT>/etc/inittab.</TT>
</BLOCKQUOTE>
<BLOCKQUOTE>
In fact, any program listed on a "respawn" line of
<TT>/etc/inittab</TT> will cause this error message if it
exits too quickly after loading (commonly the case
when the program fails).
</BLOCKQUOTE>
<BLOCKQUOTE>
The message is from a feature of the 'init' program
which attempts to prevent overwhelming the system with
respawning activity.
</BLOCKQUOTE>
<BLOCKQUOTE>
So one must be sure that their 'getty' and other programs
are properly configured before adding them to the inittab
file. This can be a challenge with some programs (like
the various forms of 'getty' that prompt your for a
login name on your console and on any serial terminals or
modems that you configure as login devices for your system).
Some programs like 'getty' cannot normally be run from a
shell prompt -- they must be started through 'init'.
</BLOCKQUOTE>
<BLOCKQUOTE>
One sort of program that is often difficult to run from
'init' is 'syslogd'. It is one of those programs that
normally peforms a "double<TT> fork()</TT> and exec" as it loads.
This is a programming technique for writing daemons
such that they run disconnected from their parent process.
The primary benefit is that it prevents "zombies." When the
daemon dies or exits later, its return value will be
automatically "reaped" (discarded) by 'init' (which
adopts orphan processes for this purpose).
</BLOCKQUOTE>
<BLOCKQUOTE>
Basically some process must go through the process table
periodically and read the exit values of "zombies."
(a "zombie" is a dead process whose status is retained in
the process table). This is normally the job of a
process' parent. However, if the parent exits/dies before
some of its children then 'init' takes on the job.
</BLOCKQUOTE>
<BLOCKQUOTE>
However, if you have one of these "double<TT> fork()</TT>-ing"
daemons, and you try to run it directly from 'init'
under a "respawn" directive, you'll get the "respawning
too fast" error.
</BLOCKQUOTE>
<BLOCKQUOTE>
In the case of the Linux 'syslogd' (the system logging
daemon) we can add a -n option to "not<TT> fork()</TT>." This
would be done like so (<TT>/etc/inittab</TT> extract):
</BLOCKQUOTE>
<blockquote><pre>sl:2345:respawn:/sbin/syslogd -n -m 10
</pre></blockquote>
<BLOCKQUOTE>
Here I've give this line an "ID" of "sl" (SysLog). I've
marked it to run in levels 2 through 5 (1 is single-user
repair mode, 0 is halt, and 6 is reboot). I've also
set the "heartbeat" or "mark" interval to 10 minutes.
</BLOCKQUOTE>
<BLOCKQUOTE>
(The 'syslogd' "mark" option forces it to send a message
at some interval even if nothing has been logged, it's
used for automated monitoring in conjunction with remote
logging. Read the syslog and syslog.conf man pages for
details).
</BLOCKQUOTE>
<BLOCKQUOTE>
BTW: I think the option you might have been looking
for in your XF86Config might have been:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
"DefaultColorDepth"
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
... which has to go into the correct "Driver" section for your video card. The
fact that XFree86 support multiple video card and monitor
specifications inside of a single config file is an
endless source of complication and confusion.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 46 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/47"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 47 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Setting the LILO Default</H3>
<p><strong>From Ryan Sheidow on Mon, 11 Oct 1999
</strong></p>
<!-- ::
Setting the LILO Default
~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
I want to set the LILO boot system to load dos by default. Could you
please send me a detailed algorithm that would allow me to do this. I
am just a linux beginner and do not know anything.
</STRONG></P>
<P><STRONG>
Thank You,
Ryan Sheidow
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
The easiest way is to edit your <TT>/etc/lilo.conf</TT> file,
add an appropriate default= line near the top (first
line of the file is O.K.) and then run <TT>/sbin/lilo.</TT>
</BLOCKQUOTE>
<BLOCKQUOTE>
The default= line should refer to the label in your
MS-DOS "stanza." Basically that would be whichever
word you've been manually typing at the LILO: prompt
to get into MS-DOS.
</BLOCKQUOTE>
<BLOCKQUOTE>
Here's a sample:
</BLOCKQUOTE>
<blockquote><pre>default=dos
boot=/dev/hda3
root=/dev/hda3
install=/boot/boot.b
map=/boot/map
vga=normal
delay=20
image=/vmlinuz
label=Linux
read-only
other=/dev/hda1
label=dos
</pre></blockquote>
<BLOCKQUOTE>
Of course, as with any changes to your kernels, partitions,
or lilo.conf files you must run the <TT>/sbin/lilo</TT> command to
update your boot record and maps in order for your changes
to take effect.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 47 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/48"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 48 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Multiple Concurrently Installed Version of glibc</H3>
<p><strong>From Young, Geoffrey S. on Tue, 12 Oct 1999
</strong></p>
<!-- ::
Multiple Concurrently Installed Version of glibc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hello -
</STRONG></P>
<P><STRONG>
I am currently using RedHat 5.2, but would like to upgrade to the
Perl rpm provided with RH6.0. When I test the rpm dependencies,
the newer perl requires glibc 2.1. Ordinarily, I would just
upgrade glibc while I'm at it, except that I am running an
application that is not compatible with glibc 2.1 (it was
specifically developed for RH5.2, which uses glibc 2.0.7).
</STRONG></P>
<P><STRONG>
Can I have both versions of glibc on the same system? If so, can
I still use the rpm format?
</STRONG></P>
<P><STRONG>
thanks
--Geoff
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
You can have multiple version of any shared libraries under
Linux. When they have different version numbers then the
dynamic loader (ld.so) will find the one that a given binary
is linked against. That's why there are symlinks under <TT>/lib</TT>
pointing from major versions to the most recent minor
versions. (Study the links under there to see what I mean).
</BLOCKQUOTE>
<BLOCKQUOTE>
However, as you say, there can sometimes be problems with
this automatic loading mechanism. Sometimes the author of a
package needs to specify a a more tight binding to some
shared libraries. However, that involves recompiling it.
</BLOCKQUOTE>
<BLOCKQUOTE>
There is another way. You can use LD_PRELOAD_PATH and/or
LD_LIBRARY_PATH environment variable to over-ride the normal
library loading mechanism of normal (non-SUID) programs.
(The loader over-ride is disabled when EUID doesn't match
RUID, as is the case while running SUID programs. If this
wasn't true it would be trivially easy to bypase system
security with custom libraries and access to any dynamically
linked SUID binary).
</BLOCKQUOTE>
<BLOCKQUOTE>
They way to use the LD_*_PATH variables is to sequester your
special libraries in their own directory, and write small
wrapper script to set and export the LD_*_PATH environment
variable, then execute the necessary program. You do this
with each program that needs the special library version.
</BLOCKQUOTE>
<BLOCKQUOTE>
Read the ld.so man page for more details.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 48 -->
<!-- . . . . . . . . . . . . . . . . . . . -->
<HR WIDTH="40%" ALIGN="center">
<!-- begin 48 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Geoffrey Replies...</H3>
<p><strong>From Young, Geoffrey S. on Tue, 12 Oct 1999
</strong></p>
<!-- ::
Geoffrey Replies...
~~~~~~~~~~~~~~~~~~~
:: -->
<BLOCKQUOTE>
thanks for your help. I'll read the ld manpages and play with LD_*_PATH,
but I think that the application in question is running SUID.
</BLOCKQUOTE>
<BLOCKQUOTE>
Anyway, you have given me lots to go on - thanks again
</BLOCKQUOTE>
<BLOCKQUOTE>
--Geoff
</BLOCKQUOTE>
<!-- end 48 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/49"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 49 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>lg #45: Limiting Internet Access through Cable Modems</H3>
<p><strong>From August Hrandl on Tue, 12 Oct 1999
</strong></p>
<BLOCKQUOTE>
more on: lg #45: Limiting Internet Access through Cable Modems
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Hi,
in your answer you missed another possibility:
the squid proxy program can use ACL: you can easily set up allowed
access times for each clients and a lot of other stuff; squid can even
be used to filter certain sites. you also get log files and can check
which places have been visited
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
It sounds interesting. I'm not sure I'd
suggest squid as a security proxy. There seem to two
different classes of web proxy software, those for
firewalls (focus on security) and those for caching,
content filtering and features (like Squid).
</BLOCKQUOTE>
<BLOCKQUOTE>
However, you're right. I should have mentioned
that the features exist. I think you have to
get some Squid plugins for some of these features.
</BLOCKQUOTE>
<BLOCKQUOTE>
(It never ceases to amaze me how many Linux/UNIX
subsystems are "modularizing" with Perl modules,
<A HREF="http://www.apache.org/">Apache</A> modules, loadable kernel modules, Squid modules,
Netscape Navigator/Communicator plugins etc).
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Gustl
<br>ps: keep on the good work - i like your answers
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I'm glad.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 49 -->
<!-- . . . . . . . . . . . . . . . . . . . -->
<HR WIDTH="40%" ALIGN="center">
<!-- begin 49 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>lg #45: Limiting Internet Access through Cable Modems</H3>
<p><strong>From <em>The Answer Guy</em> on Wed, 13 Oct 1999
</strong></p>
<P><STRONG><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>It sounds interesting. I'm not sure I'd
suggest squid as a security proxy. There seem to two
different classes of web proxy software, those for
firewalls (focus on security) and those for caching,
content filtering and features (like Squid).
</STRONG></P>
<P><STRONG>
However, you're right. I should have mentioned
that the features exist. I think you have to
get some Squid plugins for some of these features.
</STRONG></P>
<BLOCKQUOTE><DL><DT><IMG SRC="../gx/dennis/qbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>there is a nice guide at
<DD><A HREF="http://info.ost.eltele.no/freeware/squidGuard"
>http://info.ost.eltele.no/freeware/squidGuard</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE>
i had to solve another problem:
i am teacher and net admin in a technical high school; we have full
internet access - but it is impossible to teach anything if the internet
is accessable
<IMG SRC="../gx/dennis/smily.gif" ALT=";-)"
height="24" width="20" align="absmiddle">
so i had to find a easy solution to "toggle" a whole
classroom (= a subnet). i did it via a little script (which includes menues
via dialog), which creates a file with acls for squid. teachers are allowed to
call the script via sudo (needed to restart squid)
</BLOCKQUOTE>
<BLOCKQUOTE>
Regards
Gustl
</BLOCKQUOTE>
<p align="center"><em>* * * Linux... Don't fear the penguins * * *</em>
<br>August Hrandl
</p>
<!-- end 49 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/50"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 50 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>The Linux Startup Script?</H3>
<p><strong>From Joe Lorino on Thu, 23 Sep 1999
</strong></p>
<!-- ::
The Linux Startup Script?
~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
In a message I found in a search about syslogd parameters, you
mention modifying the Linux startup script. Can you tell me what
file that is?
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Normally Linux has a number of startup scripts. Those
include all of the files under <TT>/etc/rc.d/rc3.d</TT> (or
<TT>/etc/rc2.d</TT> on <A HREF="http://www.debian.org/">Debian</A> systems, or various others on
other systems). This also depends on your operating
mode (default runlevel).
</BLOCKQUOTE>
<BLOCKQUOTE>
However, I would say that the <TT>/etc/inittab</TT> is really
THE Linux startup file. Ultimately a Linux kernel really
only starts one process, 'init'(*). Then 'init' reads the
<TT>/etc/inittab</TT> file and all of the rc.sysinit, rc*.d/S*
files, etc. are run by that.
</BLOCKQUOTE>
<BLOCKQUOTE>
If you're going to run 'syslogd' directly from the inittab
then you should use the "-n" (no forking) option. Be sure
to upgrade to a reasonably new version as it was broken in
some older ones. (Thank you, Martin Schulz for fixing that!
It was a but that I reported). Also be sure to disable any
<TT>/etc/rc*.d/S*syslog</TT> script you're running.
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course you could also just edit our <TT>/etc/*/init.d/syslog</TT>
script file.
</BLOCKQUOTE>
<BLOCKQUOTE>
I presume you're planning to add either the -m (generate
"heartbeat" marks for remote monitors) or the -r (allow
reception of remote syslog messages on a central loghost).
Please be aware that -r might leave you vulnerable to some
attacks --- particularly some DoS (denial of service)
shenanigans. Use it with caution, and arrange your packet
filters to limit access from untrusted networks.
</BLOCKQUOTE>
<BLOCKQUOTE><ul><li>
(Technically a modern Linux kernel might also be running
some things before it starts 'init'. This is a uniquely
Linux feature that allows you to run a <TT>/linuxrc</TT> program
from your initrd (initial RAM disk). However, when that
exits, init will normally be started. Don't worry about
that --- it's just a techie note to stave off the nitpick
I'd get if I over-simplified.)
</UL></BLOCKQUOTE>
<!-- sig -->
<!-- end 50 -->
<!-- . . . . . . . . . . . . . . . . . . . -->
<HR WIDTH="40%" ALIGN="center">
<!-- begin 50 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>followup: The Linux Startup Script?</H3>
<p><strong>From Joe Lorino on Mon, 11 Oct 1999
</strong></p>
<P><STRONG>
Thank you for your reply. The information you provided is very helpful.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Good. The most important thing for troubleshooting
most computer systems is knowing in detail exactly what
steps they go through as they start up.
</BLOCKQUOTE>
<BLOCKQUOTE>
Glad I could help.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 50 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/51"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 51 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Short names for Long Domains?</H3>
<p><strong>From Green, David on Tue, 12 Oct 1999
</strong></p>
<!-- ::
Short names for Long Domains?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Gentlemen,
</STRONG></P>
<P><STRONG>
I have a COMCAST modem and ipmasq and everything connects and runs
</STRONG></P>
<P><STRONG>
fine (http browsing, ICQ, realaudio) except my MS mail can't find the pop
and smtp servers "mail" and the news server "news." I can ping the long
address mail.etntwn1.nj.home.com or the IP address, but I can't ping "mail"
nor can my mail client (Outlook express) find "mail" or "news". Have you
seen a similar problem and how did you solve it?
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Umm ... so why don't you configure MS Mail to use
mail.etntwn1.nj.home.com and news.etntwn1.nj.home.com (the
long names) instead of trying to use the the short names.
</BLOCKQUOTE>
<BLOCKQUOTE>
If your domain was set to "etntwn1.nj.home.com" then
the bare hostnames should work. Under Linux or UNIX you
could add directives to your <TT>/etc/resolv.conf</TT> file to
force it to search additional domains. I don't know how
to do that under Win '9x or NT (or even it it's possible
for them).
</BLOCKQUOTE>
<BLOCKQUOTE>
So, try that.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 51 -->
<!-- . . . . . . . . . . . . . . . . . . . -->
<HR WIDTH="40%" ALIGN="center">
<!-- begin 51 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>RE: Comcast and IPmasq</H3>
<p><strong>From Green, David on Tue, 12 Oct 1999
</strong></p>
<BLOCKQUOTE>
Jim,
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
why don't you configure MS Mail to use mail.etntwn1.nj.home.com
and news.etntwn1.nj.home.com
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I tried that already. The problem was apparently that somone hacked our
local comcast mail and news servers so they were off line for a day or so.
Everything works great now. Thanks.
</BLOCKQUOTE>
<BLOCKQUOTE>
--David Green
</BLOCKQUOTE>
<!-- end 51 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/52"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 52 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Snooping on a Serial Port</H3>
<p><strong>From Rudy Moore on Mon, 11 Oct 1999
</strong></p>
<!-- ::
Snooping on a Serial Port
~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
How can I snoop what an application is sending and receiving from a
serial port?
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Look for ttysnoop. Here are a few URLs:
</BLOCKQUOTE>
<BLOCKQUOTE><DL><DT>
ttysnoop-0.12c-4.i386 RPM
<DD><A HREF="http://rufus.w3.org/linux/RPM/contrib/libc5/i386/ttysnoop-0.12c-4.i386.html"
>http://rufus.w3.org/linux/RPM/contrib/libc5/i386/ttysnoop-0.12c-4.i386.html</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE><DL><DT>
[freshmeat] ttysnoop
<DD><A HREF="http://freshmeat.net/appindex/1999/09/05/936520647.html"
>http://freshmeat.net/appindex/1999/09/05/936520647.html</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE><DL><DT>
<A HREF="http://www.debian.org/">Debian</A> GNU/Linux -- ttysnoop
<DD><A HREF="http://www.debian.org/Packages/unstable/admin/ttysnoop.html"
>http://www.debian.org/Packages/unstable/admin/ttysnoop.html</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE>
You might also look at:
</BLOCKQUOTE>
<BLOCKQUOTE><DL><DT>
Debian GNU/Linux -- ttylog
<DD><A HREF="http://www.debian.org/Packages/unstable/utils/ttylog.html"
>http://www.debian.org/Packages/unstable/utils/ttylog.html</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE>
... which is a similar program. You could probably use the
'alien' package (<A HREF="http://kitenet.net/programs/alien"
>http://kitenet.net/programs/alien</A>) to
convert the Debian package into some other format (like
RPM).
</BLOCKQUOTE>
<BLOCKQUOTE>
I trust you will be using these for ethical purposes.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
(Not sure if you prefer long or short questions, but I can elaborate if
you'd like more information.)
</STRONG></P>
<P><STRONG>
Rudy
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I prefer questions that provide just enough information
that I can answer them. I like them to be just general
enough that they will be useful to some significant number
of the Linux Gazette readers and to the many people who
find my back issues using Yahoo!, Google, Alta Vista, Deja
and just specific enough that I can answer them in less
than five pages.
</BLOCKQUOTE>
<BLOCKQUOTE>
Oddly enough yours is the first question I can remember that
actually asked what sort of questions I prefer.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 52 -->
<!-- . . . . . . . . . . . . . . . . . . . -->
<HR WIDTH="40%" ALIGN="center">
<!-- begin 52 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>More on: Snooping on a Serial Port</H3>
<p><strong>From rudy on Wed, 13 Oct 1999
</strong></p>
<!-- ::
More on: Snooping on a Serial Port
~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
The problem with ttysnoop is that it's heavily oriented toward spying on a
network connection - which is different from protocol analysis. The first
begs the "ethical?" question, the second implies reverse engineering - or
debugging. And I would venture to say that debugging in this manner is
really just a form of reverse engineering, so...
</STRONG></P>
<P><STRONG>
I wrote a PERL frontend to strace and have made a pretty darn useful
protocol analyser. At some point in the future, I'll post my code so others
can benefit from it.
</STRONG></P>
<P><STRONG>
Thanks for the reply!
Rudy
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I agree that ttysnoop isn't well-suited for
protocol analysis. However, I was unable to find
any tools specifically for that.
</BLOCKQUOTE>
<BLOCKQUOTE>
One thing that would be cool would be a modified form
of the serial device driver --- one that could used
to capture and log data as it is passed from the
interface to the userspace process.
</BLOCKQUOTE>
<BLOCKQUOTE>
This has shades of "STREAMS" gathering like storm clouds
over it. The ability to attach filters into the streams
of data on UNIX device driver is a major feature of STREAMS.
There is an optional set of STREAMS patches (LiS) available
for Linux. However, they are not part of the standard
interfaces and drivers (and probably never will be).
</BLOCKQUOTE>
<BLOCKQUOTE>
One of the key arguments against STREAMS in the mainstream
Linux kernel is that we have the driver sources available.
If we need to add custom filtering, logging, etc, into
those at a low level --- we should modify the driver.
This prevents the rest of the drivers from suffering
from bloat and performance restrictions that would be
necessary to fully support the STREAMS infrastructure.
(Those are the arguments as I remember and understand
them. I'm not a kernel or device driver developer
and don't really have a qualified opinion on the whole
debate).
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course, if the 'strace' solution is working for you, then
use it. It sounds interesting and useful. However, if
'strace' doesn't do it, or it costs too much load for
your purposes, maybe you could use a patched driver.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 52 -->
<!-- . . . . . . . . . . . . . . . . . . . -->
<HR WIDTH="40%" ALIGN="center">
<!-- begin 52 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Another Call for Serial Snooping</H3>
<p><strong>From VETTER Joe on Tue, 12 Oct 1999
</strong></p>
<!-- ::
Another Call for Serial Snooping
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hi,
</STRONG></P>
<P><STRONG>
I have a program which communicates through the serial port to a data
logger. The program is not very functional and I would like to reproduce it.
The problem is I do not know the commands to send to request data from the
data logger. I am looking for a program which will monitor the data passing
in and out of the serial port, without actually stopping the other program
from using the serial port. Any ideas ?
</STRONG></P>
<P><STRONG>
Thanks in Advance
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Look for ttysnoop. This is a package that is
specifically designed to "listen in on" Linux ttys
(serial or console).
</BLOCKQUOTE>
<BLOCKQUOTE>
Here's the Freshmeat pointer:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
<A HREF="http://freshmeat.net/appindex/1999/09/05/936520647.html"
>http://freshmeat.net/appindex/1999/09/05/936520647.html</A>
</BlockQuote></BLOCKQUOTE>
<!-- sig -->
<!-- end 52 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/53"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 53 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Maximal Mount Count Reached</H3>
<p><strong>From Marius Andreiana on Sat, 25 Sep 1999
</strong></p>
<!-- ::
Maximal Mount Count Reached
~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Dear Answer Guy,
</STRONG></P>
<P><STRONG>
I'm Marius and here is my problem :
</STRONG></P>
<P><STRONG>
From time to time ( seldom ), my RH Linux 6.0 says during booting
"<TT>/dev/hdaX</TT> had reached maximal mount count; check forced"
where X is 3 and 4. Here's my partition table :
</STRONG></P>
<Pre><STRONG><BlockQuote>
/dev/hda1, 170 MB, type= 6h (DOS 16-bit >=32)
/dev/hda2, 16 MB, type=82h (Linux swap)
/dev/hda3, 497 MB, type=83h (Linux native)
/dev/hda4, 129 MB, type=83h (Linux native)
</BlockQuote></STRONG></Pre>
<P><STRONG>
I always perform clean shutdowns. I suppose this is because all the
above 4 partitions are primary. But then why does it report
that message only from time to time ?
</STRONG></P>
<P><STRONG>
Thanks a lot for your time
<br>Marius
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
We call that "losing the lottery." It always seems to
happen when you're in a hurry to get the system back up and
running.
</BLOCKQUOTE>
<BLOCKQUOTE>
Don't worry about this message, though. It's perfectly
normal. Even if you do cleanly shutdown every time, there's
always that chance that some filesystem corruption has crept
in. So each filesystem stores the number of times you've
mounted it since you did an fsck (filesystem check) and
automatically forces one at those points.
</BLOCKQUOTE>
<BLOCKQUOTE>
If you want to live dangerously you can change the
the maximal mount count value on a filesystem
using the 'tune2fs' command's -c option. You can also
manually set the mount value using the -C (upper case)
option. You can see the current values using a command
like:
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQUOTE><CODE><BlockQuote>
tune2fs -l <TT>/dev/hda1</TT>
</BlockQuote></CODE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
... This is the only command that you might run on any of
these devices while it is mounted. In my particular case it
shows a maximal mount count of 20. You should unmount any
filesystem before using tune2fs to write any new values unto
them using the other options from this command. (It should
be safe to change some values when you have a filesystem
mounted read-only; though it might be worth asking an
expert, so I've copied Ted T'so and Remy Card on this
message).
</BLOCKQUOTE>
<BLOCKQUOTE>
You can also set a volume label on any of your
ext2 filesystems using this command (BTW: 'tune2fs'
only works on ext2fs --- don't try to use it on
any other sorts of filesystems that you have). I
notice that the man page doesn't tell us anything
about these volume labels (like what characters
are allowed, and how long they can be). Glancing
at the source code to e2fsprogs I find that you can
have volume labels of up to 16 characters. I didn't
see any filtering on characters so I suppose any
string of non-NUL characters might be used ---
though I'd stick with simple alphanumerics and
printable punctuation to be safe.
</BLOCKQUOTE>
<BLOCKQUOTE>
As far as I know there is no way in which this
volume label is currently used. It seems to be a
wholly optional feature; I guess we can use these
to keep track of our removable media or something.
</BLOCKQUOTE>
<BLOCKQUOTE>
(Ted, Remy, is it safe to set some or all tune2fs
values on a filesystem while it's mounted read-only?
Are there any characters that should NOT be used
in the volume labels? Is there anything that uses
these volume labels, or are they just obscure
cosmetic options?)
</BLOCKQUOTE>
<!-- sig -->
<!-- end 53 -->
<!-- . . . . . . . . . . . . . . . . . . . -->
<HR WIDTH="40%" ALIGN="center">
<!-- begin 53 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Having been cc'd, Ted T'so adds...</H3>
<p><strong>From tytso on Mon, 27 Sep 1999
</strong></p>
<!-- ::
Having been cc'd, Ted T'so adds...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Date: Sat, 25 Sep 1999 01:14:42 -0700
From: Jim Dennis <<A HREF="mailto:jimd@starshine.org"
>jimd@starshine.org</A>>
</STRONG></P>
<P><STRONG>
We call that "losing the lottery." It always seems to
happen when you're in a hurry to get the system back up and
running.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Yup. Note that even once we have journalling support in ext2, you will
want to occasionally force an fsck over the filesystem just to make sure
there haven't been any errors caused by memory errors, disk errors,
cosmic rays, etc.
</BLOCKQUOTE>
<BLOCKQUOTE>
If you need your laptop to reboot quickly just before a demo (and your
laptop doesn't have a hiberate feature or some such), something you can
do is to sync your disks, make sure your system is quiscient (i.e.,
nothing is running), and then force a power cycle and let your system
reboot. Your system will then fsck all of your disks, and you can then
shutdown your system, confident that the dreaded "maximal mount count"
message won't appear during that critical demo.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
If you want to live dangerously you can change the
the maximal mount count value on a filesystem
using the 'tune2fs' command's -c option. You can also
manually set the mount value using the -C (upper case)
option. You can see the current values using a command
like:
</STRONG></P>
<P><STRONG><BlockQuote><Code>
tune2fs -l <TT>/dev/hda1</TT>
</Code></BlockQuote></STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
If you know that your system is fairly reliable --- you've been running
it for a while and you're not seeing wierd failures due to cheasy cheap
memory or overly long IDE or SCSI cables, etc. it's actually not so
dangerous to set a longer maximal count time.
</BLOCKQUOTE>
<BLOCKQUOTE>
One approach if your system is constantly getting shutdown and restarted
is to set the filesystem so it uses the time the filesystem was last
checked as a criteria instead of a maximal count. For example:
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQUOTE><CODE>
tune2fs -c 100 -i 3m <TT>/dev/hda1</TT>
</CODE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
This will cause the filesystem to be checked after 100 mounts, or 3
months, whichever comes first.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
(It should be safe to change some values when you have a
filesystem mounted read-only; though it might be worth asking
an expert, so I've copied Ted T'so and Remy Card on this
message).
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Yes, it's safe these values if the filesystem is mounted read-only. If
you're ***sure*** that the filesystem is quiscent, and nothing is
changing on the filesystem, you can even get away with changing it while
the filesystem is mounted read-write. It's not something I'd really
recommend, but if you know what you're doing, you can get away from it.
It really depends on how much you like working without a safety net.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
As far as I know there is no way in which this
volume label is currently used. It seems to be a
wholly optional feature; I guess we can use these
to keep track of our removable media or something.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
You can use the volume label in your <TT>/etc/fstab</TT> if you like: For
example:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
LABEL=temp <TT>/tmp</TT> ext2 defaults 1 2
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
or
</BLOCKQUOTE>
<BLOCKQUOTE>
UUID=3a30d6b4-08a5-11d3-91c3-e1fc5550af17 <TT>/usr</TT> ext2 defaults 1 2
</BLOCKQUOTE>
<BLOCKQUOTE>
The advantage of doing this is that the filesystems are specified in a
device independent way. So for example, if your SCSI chain gets
reordered, the filesystems will get mounted correctly even though the
device names may have changed.
</BLOCKQUOTE>
<BLOCKQUOTE>
- Ted
</BLOCKQUOTE>
<!-- end 53 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/54"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 54 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Selecting a Lotus Notes Platform</H3>
<p><strong>From Rebecca Henderson on Mon, 11 Oct 1999
</strong></p>
<!-- ::
Selecting a Lotus Notes Platform
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
I have Lotus Notes on my box and it is in a UNIX environment, A question
of platforms has come up. As400 vs UNIX, Solaris.
What do you feel would be easiest to support and maintain?
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I've never worked with an AS/400. I've heard that they are
quite easy to administer though they have a somewhat limited
range of utilities and applications. (Indeed it seems, from
what I've heard, that the limited range of utilities and
peripherals available for the 400 is what makes it possible
for IBM to make a fully integrated menu-driven
administration system that's usable by relatively
unsophisticated operators).
</BLOCKQUOTE>
<BLOCKQUOTE>
It seems like a odd question to ask since you say that you
already have Lotus Notes installed on an existing UNIX
system. If your staff already has UNIX experience (and
possibly a preference for it) or if you need the sort of
flexibility and control that UNIX gives you (which leads to
the "do-it-yourself" flavor of the administrative interfaces
and tools) then UNIX would be the obvious choice.
</BLOCKQUOTE>
<BLOCKQUOTE>
UNIX is not the "easiest" in terms of learning curve.
However it may be the "easiest" in terms of giving you the
tools you need to suit your precise needs. In other words,
if your needs exactly match the design of the OS/400 --- if
they match the platform --- then it's likely to be the
easiest. If you have needs for customized procedures or
specialized hardware then UNIX is probably the easiest to
adapt.
</BLOCKQUOTE>
<BLOCKQUOTE>
As with all questions that relate to selecting a platform
(hardware or software) the answer always boils down to: "it
depends on your requirements."
</BLOCKQUOTE>
<BLOCKQUOTE>
Unfortunately I see far too many cases where selections are
made before requirements are understood, and where the
selection process is constrained by organizational politics
more than by requirements analysis.
</BLOCKQUOTE>
<BLOCKQUOTE>
The real job of a consultant is to assess and analyze your
requirements and provide recommendations to match them.
Too many people who use the term consultant are actually
referring to "contractors" or "VARs"; contractors implement
and VARs sell. Consultants provide consultation.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 54 -->
<!-- . . . . . . . . . . . . . . . . . . . -->
<HR WIDTH="40%" ALIGN="center">
<!-- begin 54 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>QUESTION</H3>
<p><strong>From Rebecca Henderson on Mon, 11 Oct 1999
</strong></p>
<BLOCKQUOTE>
Thanks for your input.
We are on Sun Solaris now and the application is quite stable.
I guess it is a "politics" issue. At least from my point of view.
Requirements for 3rd party software are an issue with UNIX and the Lotus Notes application.
Your input has helped.
</BLOCKQUOTE>
<BLOCKQUOTE>
Sincerely,
<br>Rebecca M Henderson
<br>UNIX System Administrator.
</BLOCKQUOTE>
<!-- end 54 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/55"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 55 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>"telnetd connected:" But No "login" Prompt</H3>
<p><strong>From cbgyeh on Mon, 11 Oct 1999
</strong></p>
<!-- ::
"telnetd connected:" But No "login" Prompt
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hi,
</STRONG></P>
<P><STRONG>
I appreciate that if you can help me the problem related to telnet
running RedHat 6.0.
</STRONG></P>
<P><STRONG>
I recently configured RedHat 6.0. When I telnet to the server, I see
the banner message. There is no login prompt. The <TT>/var/log/secure</TT>
indicates telnetd connected from xxx.xxx.xxx.xxx. When I test the loop
back i.e. 127.0.0.1, the telnetd works correctly. Ping and ftp work
well. FTP has no delay at all.
</STRONG></P>
<P><STRONG>
I did not install any patches yet.
Ching
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
It sounds like a TCP Wrappers problem.
</BLOCKQUOTE>
<BLOCKQUOTE>
Linux systems normally have TCP Wrappers (tcpd)
preconfigured to provide selective access control to
all 'inetd' launched services. You'll see this if you
look in your <TT>/etc/inetd.conf.</TT> Thus 'inetd' is configured
to listen to the telnet service port (23, as listed in
<TT>/etc/services</TT>). 'inetd' find 'tcpd' and runs that. Thus
'inetd' won't complain about a "program not found."
</BLOCKQUOTE>
<BLOCKQUOTE>
TCP Wrappers will log the connection attempt (under the service
name). Then it will do a double-reverse lookup (taking
the source IP address of the connection, getting a purported
host/domain name, then doing a a forward lookup of that to
scan for the original source IP address). If those values
are inconsistent it may just drop the connection or it
may continue as normal.
</BLOCKQUOTE>
<BLOCKQUOTE>
TCP Wrapper will then check the <TT>/etc/hosts.allow</TT> and the
<TT>/etc/hosts.deny</TT> files. It will look for a line that
applies to this service (in.telnetd) followed by a list
of allowed (or denied) IP address or host/domain name
patterns. The syntax of these files is described in
the hosts_access man pages.
</BLOCKQUOTE>
<BLOCKQUOTE>
I've described TCP Wrappers and this double reverse lookup
before. If you're reverse DNS zones aren't properly
configured you may seen very log delays on connections at
this point (several minutes). You're test from localhost
succeeds because you have localhost (127.0.0.1) listed in
your <TT>/etc/hosts</TT> file so the forward and reverse records will
always be correct so long as the 'files' entry in your
<TT>/etc/nsswitch.conf</TT> (<TT>/etc/hosts.conf</TT> for older libc5
packages) is properly maintained.
</BLOCKQUOTE>
<BLOCKQUOTE>
Usually your FTP daemon would also be protected this way.
However, new Linux distributions sometimes are using
ProFTPd which is often run "standalone" (not through the
inetd dispatcher). ProFTPd has optional service access
controls of it's own (and might not be configured to do
this "double-reverse lookup").
</BLOCKQUOTE>
<BLOCKQUOTE>
So, try adding the appropriate IP addresses and names to
your <TT>/etc/hosts</TT> file or get your hostmaster to get your
reverse zone maps configured properly. If that doesn't
work trying using strace. To do that replace the in.telnetd
line in your <TT>/etc/inetd.conf</TT> file with something like:
</BLOCKQUOTE>
<blockquote><pre>telnet stream tcp nowait telnetd.telnetd /usr/sbin/tcpd /root/bin/trace.telnetd
</pre></blockquote>
<BLOCKQUOTE>
... (all on one line, of course --- the backslash is just
to note that this is a "continued" line in my e-mail ---
DON'T put that in the inetd.conf file).
</BLOCKQUOTE>
<BLOCKQUOTE>
"<TT>/root/bin/trace.telnetd</TT>" is a shell script that
looks like:
</BLOCKQUOTE>
<blockquote><pre>#!/bin/sh
exec strace -o root/tmp/telnetd.trace /usr/sbin/in.telnetd
</pre></blockquote>
<BLOCKQUOTE>
... that can give you a system call trace of what the telnet
daemon is doing after its launched. Of course you have to
signal your inetd to re-read it's configuration file using
a command like:
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQUOTE><CODE><BlockQuote>
kill -HUP $(cat <TT>/var/run/inetd.pid</TT>)
</BlockQuote></CODE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
... in order for this change to take effect. (It would also
take effect after a reboot, of course).
</BLOCKQUOTE>
<BLOCKQUOTE>
NOTE: I don't recommend that you run with this strace
script during normal production use. It could be insecure
and it's likely to be a bad idea in any event. However,
it's useful for capturing some low level diagnostic data.
</BLOCKQUOTE>
<BLOCKQUOTE>
Reading strace output is challenging. However, you can
usually get by okay by simply looking for failed<TT> open()</TT>,
<TT>stat()</TT>, and<TT> lstat()</TT> calls.
</BLOCKQUOTE>
<BLOCKQUOTE>
If that line doesn't work (you don't get any telnet.trace
output) try:
</BLOCKQUOTE>
<blockquote><pre>telnet stream tcp nowait telnetd.telnetd /root/bin/trace.telnetd telnetd
</pre></blockquote>
<BLOCKQUOTE>
... (all on one line, as before). In this case we are
eliminating tcpd from the picture. The confusing part
about the inetd.conf file syntax is that you seem to repeat
the name of the program your running twice on each service
line. The first reference is the program that will be run,
the next is the name under which it will appear in a 'ps'
(process status) listing and anything else on the line will
be passed as command line arguments to the daemon.
</BLOCKQUOTE>
<BLOCKQUOTE>
This ability to separately supply an executable patch/name
and a full argument list, including "arg(0)" --- the
'ps' name --- is normal for UNIX and Linux, it's just not
something you'd see from using the command shell. That and
'init' always start programs using the same value for
both the executable path and the arg(0).
</BLOCKQUOTE>
<BLOCKQUOTE>
I doubt you'll have to go to that level of debugging for
this. I'm just describing the technique (again) for
other readers and in case you do need it.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 55 -->
<!-- . . . . . . . . . . . . . . . . . . . -->
<HR WIDTH="40%" ALIGN="center">
<!-- begin 55 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Ying at New York: Re: RedHat 6.0:Telnet has no login prompt</H3>
<p><strong>From chgyeh on Fri, 15 Oct 1999
</strong></p>
<BLOCKQUOTE>
Jim,
</BLOCKQUOTE>
<BLOCKQUOTE>
Thank you so much for showing me strace command. I was able to look at
the trace file and determined my nsswitch was not correct. It was
hanging at the nis+ which I did not configure to use. Again, thank you
for your help.
</BLOCKQUOTE>
<BLOCKQUOTE>
Ching
</BLOCKQUOTE>
<!-- end 55 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/56"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 56 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Staging Server on localhost</H3>
<p><strong>From Larry on Wed, 13 Oct 1999
</strong></p>
<!-- ::
Staging Server on localhost
~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Your answer to Mark was accurate as it stood, but you
left out a second, possibly better, solution: put
Linux on the Mac! Instead of buying a basic PC, save
the money and use one computer for two purposes.
</STRONG></P>
<P><STRONG>
I have an older PowerMac running a webserver (<A HREF="http://www.apache.org/">Apache</A>
under MkLinux to be precise) on our corporate intranet,
and it does a fine job. I also have a dual-booting G3
at home, plus an older system dedicated to <A HREF="http://www.netbsd.org/">NetBSD</A>.
</STRONG></P>
<P><STRONG>
Back to the staging server -- if Mark were to simply
use the Mac (running Linux) to do the testing, he could
pull up a browser under X11 and make all his calls to
<http://localhost>.
</STRONG></P>
<P><STRONG>
Just another idea.
Larry
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
You are correct. He could run Linux on
his Mac. He didn't specify which platform his
Mac was (PPC or older 68K) but there are versions
of Linux for both. For PowerPC there are a number
of distributions available: LinuxPPC, mkLinux,
Yellow Dog (YDL), and <A HREF="http://www.debian.org/">Debian</A>, to name a few.
</BLOCKQUOTE>
<BLOCKQUOTE>
For the 68K I think Debian might be the only full
distribution around.
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course it might be that Mark actually likes
MacOS, or some of the tools that currently run under
it and haven't been ported to Linux. It's also
possible that some of the testing that he wants to
do is not feasible through the loopback interface.
</BLOCKQUOTE>
<BLOCKQUOTE>
However, it's worth mentioning and remembering.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 56 -->
<!-- . . . . . . . . . . . . . . . . . . . -->
<HR WIDTH="40%" ALIGN="center">
<!-- begin 56 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>A Staging Server</H3>
<p><strong>From <EM>anonymous</EM> on Fri, 15 Oct 1999
</strong></p>
<P><STRONG><FONT COLOR="#000066"><EM>
You are correct. He could run Linux on
his Mac. ...
</EM></FONT></STRONG></P>
<P><STRONG><FONT COLOR="#000066"><EM>
For the 68K I think <A HREF="http://www.debian.org/">Debian</A> might be the only full
distribution around.
</EM></FONT></STRONG></P>
<P><STRONG>
There's also <A HREF="http://www.netbsd.org/">NetBSD</A>/mac68k, which I hesitate to mention
because this <EM>is</EM> a Linux publication.
<IMG SRC="../gx/dennis/smily.gif" ALT=":-)"
height="24" width="20" align="middle"> But from
personal experience, it's a good choice for a 68K system.
</STRONG></P>
<P><STRONG>
Larry
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
You're right about that, too. NetBSD support on
several platforms pre-dates Linux by a few years.
</BLOCKQUOTE>
<BLOCKQUOTE>
I wouldn't hesitate to mention it because of this
being a Linux venue. I've recommended *BSD to Linux
users before and I will again. <A HREF="http://www.freebsd.org/">FreeBSD</A> is a slick
system. It's well integrated and robust. I've used
it and I suggest that every serious Linux enthusiast
try FreeBSD or {Net,Open}BSD at least once.
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course I prefer Linux. But my preference is based
on personal experience, and relatively minor issues.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 56 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/57"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 57 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Mounting CDs on IDE CDRW Drives</H3>
<p><strong>From Anthony Dearson on Thu, 23 Sep 1999
</strong></p>
<!-- ::
Mounting CDs on IDE CDRW Drives
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
You had a question about mounting CDRW drives when using SCSI emulation. I
found that using <TT>/dev/scdX</TT> allowed mounting the CDRW. <TT>/dev/cdrom</TT> can be
linked to that instead of <TT>/dev/HDX</TT>
Tony Dearson
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Ironically I guessed that and gained some first hand
experience about a week ago when I bought and installed
one of the silly things into my workstation. I also found
out about the need to append hdc=ide-scsi on my shiny new
2.0.38 kernel to get the SCSI emulation working. I also
found out that my normal CD-ROM drive (<TT>/dev/hdb</TT>) can't
read CDRW media (though it seems to do O.K. with the
CDR's that I burn in the same drive).
</BLOCKQUOTE>
<BLOCKQUOTE>
Thanks for confirming my guess.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 57 -->
<!-- . . . . . . . . . . . . . . . . . . . -->
<HR WIDTH="40%" ALIGN="center">
<!-- begin 57 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>More CDRW</H3>
<p><strong>From David G. Watson on Thu, 23 Sep 1999
</strong></p>
<!-- ::
More CDRW
~~~~~~~~~
:: -->
<P><STRONG>
I have an IDE CD-RW drive, and it's just a little bit tricky
getting it to work. The guy who you responded to in TAG is very
close - he's just looking at the wrong device. The one he really
wants is <TT>/dev/scd0.</TT> I haven't managed to get all CD playing
software to recognize this when I'm not root, but most X CD
players can (xplaycd, workman, synaesthesia, kscd, etc.).
</STRONG></P>
<P><STRONG>
Hope this helps,
-Dave Watson
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Yep! I got one and had to learn a bit about it myself.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 57 -->
<!-- . . . . . . . . . . . . . . . . . . . -->
<HR WIDTH="40%" ALIGN="center">
<!-- begin 57 -->
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Even more on CDRW</H3>
<p><strong>From Lance DeVooght on Thu, 23 Sep 1999
</strong></p>
<!-- ::
Even more on CDRW
~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
James,
Regarding,
</STRONG></P>
<P><STRONG>
"Reading CD Discs on an IDE CDR Drive
From balou nguyen on Wed, 14 Jul 1999 "
</STRONG></P>
<P><STRONG>
He needs to use:
mount -t iso9660 <TT>/dev/scd0</TT> <TT>/mnt/cdrom</TT>
</STRONG></P>
<P><STRONG>
if his CD-ROM drive is the master on the secondary IDE controller.
</STRONG></P>
<P><STRONG>
I just had this same problem on my system.
It seems that after enabling SCSI emulation, the CD-ROM drives are seen as
SCSI devices.
</STRONG></P>
<P><STRONG>
So, the slave drive on the secondary IDE controller is <TT>/dev/scd1.</TT>
</STRONG></P>
<P><STRONG>
You have probably already found this out but I couldn't resist
trying to help the "Answer Guy" for a change.
</STRONG></P>
<P><STRONG>
Thanks for a great column!
</STRONG></P>
<P><STRONG>
Another fan,
Lance DeVooght
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Obviously the CDRW medium as arrived! I've gotten
more clarifications on that point then I can remember
getting on any other.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 57 -->
<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 tips -->
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">2 Cent Tricks & Tips - Mounting a zip drive
</FONT> </H3>
Sat, 30 Oct 1999 21:48:16 -0700
<BR>From: David <<A HREF="mailto:elvii@writeme.com">elvii@writeme.com></A>
<P> Well, this topic has been covered a number of times, but one minor nit
from your "Mounting a zip disk" in issue #47 - the printed tip reads:
<P> 1) Compile in IDE Floppy support in the kernel - there is no need for
scsi emulation unless you want auto-eject support. Also remember to
compile in support for the filesystems you wish to have on your zip
disks.
<P> Under Debian potato, kernel 2.2.13, eject version 2.0.2, I am able to
eject the zip disk from the ATAPI zip drive without using ide-scsi
emulation. I've been able to eject it this way at least since 2.2.5 or
so, I believe, thou I'm not sure quite when I found this out. I didn't
have the zip when I ran 2.0.x kernels, so ide-scsi might've been needed
there, but not anymore, it seems.
<P> David
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">atapi zip drive comment
</FONT> </H3>
Tue, 02 Nov 1999 11:36:25 -0600
<BR>From: Draper7 <<A HREF="mailto:draper7@earthlink.net">draper7@earthlink.net></A>
<P> Hello and how are you? I just wanted to say thanks for the help
with my linux problems and make one small comment. In the
documentation on the atapi zip drive I think that alot of newbies
might find it helpful if you added how to format a zip disk for the
dos filesystem.
<PRE>
/sbin/mkdosfs ..........
</PRE>
thanks again for the help documentation!!<BR>
Jeremy
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">Toshiba Cyber 9525 video chipset
</FONT> </H3>
Sat, 13 Nov 1999 01:13:22 -0500
<BR>From: Cliff Miller <<A HREF="mailto:cliff52@usa.net">cliff52@usa.net></A>
<P> Re: (LG 43, mailbag...)
<P>
From: ANTONIO SORIA (mpenas@sego.es)
<BLOCKQUOTE>
to buy a Toshiba Satellite S4030CDS which comes with the Trident Cyber
9525 video card...
</BLOCKQUOTE>
<P> ...a good resource is
<A HREF=http://www.741systems.com/linux/2595XDVD-install.html>
www.741systems.com/linux/2595XDVD-install.html</A>
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">Sorting the lines in a file
</FONT> </H3>
Fri, 12 Nov 1999 01:37:22 -0500 (EST)
<BR>From: Mike Smith <<A HREF="mailto:mesmith@panix.com">mesmith@panix.com></A>
<BLOCKQUOTE>
I have unsubscribed that address, run "uniq" on the mailing list to
remove any other duplicates, and unsubscribed all other addresses with
</BLOCKQUOTE>
<P> Just in case you forgot (we all do sometimes), uniq presupposes that
the stream it is processing is already sorted. `Sort -u' will screen
out duplicates, too.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">Winmotherboard
</FONT> </H3>
Sun, 14 Nov 1999 18:41:26 -0500
<BR>From: Pierre Abbat <<A HREF="mailto:phma@oltronics.net">phma@oltronics.net></A>
<P> You've heard of Winmodems, now there are Winmotherboards.
<P> I bought a Shuttle Spacewalker HOT-591P to upgrade an existing system. I put a
Pentium in it, tweaked the speed switches until it came up, attached the hard
drives, turned it on again, and set the hard drive size. I got an error message:
<P> No [active partition] found
DISK BOOT FAILURE, INSERT SYSTEM DISK AND PRESS ENTER
<P> This is the first time I have seen a motherboard *require* that relic of the
DOS age, the bootable partition.
<P> Unlike the Winmodem, there is a way around this. Run cfdisk and set one of the
partitions on hda as the active partition.
<P> phma
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">Followup to Running UNIX At Home
</FONT> </H3>
Mon, 22 Nov 1999 15:38:59 -0500
<BR>From: Rob Reid <<A HREF="mailto:reid@astro.utoronto.ca">reid@astro.utoronto.ca></A>
<P></STRONG>From: Javier López Pérez <<A HREF="mailto:jlopezpe@idecnet.com">jlopezpe@idecnet.com></A>:</STRONG>
<P> Hello Mr. Reid:
<P> In your article "Running UNIX At Home" in LinuxGazette #47 you wrote:
<BLOCKQUOTE>
None of my cron jobs, like updating locate's database and trimming the
log files, were being done since the computer was hardly ever on in the
wee hours of the morning, the time chosen by the distributions
(Slackware, then Red Hat 3.0.3, then 5.1) for housecleaning.
</BLOCKQUOTE>
<P> Like most home users, I have also stumbled across cron not running the
programs it should because of my computer being off. Although the script you
provide looks great, I was wondering if you know that there already are, to my
knowledge, two programs that resolve this very same issue: anacron and hc-cron
(sorry, I have not an URL to give, but I bet that a search to
http://freshmeat.net would be useful.)
<P> In the same article you also mention that to change runlevels you
stop/start starter scripts by hand [...]
<P> You can do this in a more convenient manner by using /sbin/telinit, giving
it the runlevel you want to change to. To change from any runlevel to runlevel
3 you would just type (as root, of course): /sbin/telinit 3 and that is all. As
far as I know, all your programs will be SIGTERM or SIGKILL by doing this,
while starter scripts will be called to start/stop services as needed.
<P> I hope this information is of any help to you. I also deeply hope not to
have
made any big mistake in what I have said.
<P> Best wishes.
<P><STRONG>Rob Reid responds:</STRONG>
<P> ----- Forwarded message from Howard Shaw
<<A HREF=mailto:howard@tyroldata.com>howard@tyroldata.com</A>> -----
<BLOCKQUOTE>
First, with regard to your cron problems, you might consider using
hc-cron.
Here is Freshmeat's description of it...
<P>hc-cron will remember the time when it was shut down and catch
up jobs that have occurred during down time when it is started again.
</BLOCKQUOTE>
<P> ----- Forwarded message from Duckie <<A HREF=mailto:duckie@node0911.a2000.nl>duckie@node0911.a2000.nl</A>> -----
<BLOCKQUOTE>
Debian installation offers "profiles" nowadays. The "Personal
workstation" profile includes anacron.
</BLOCKQUOTE>
<P> That's great, but groundskeeper will make sure that the commands are run at
*convienient times for the users* as closely to the specified intervals as
machine uptime permits. In other words, it uses batch and the others don't.
<BLOCKQUOTE>
You have a very good point here. I filed it as a wishlist item for
anacron on Debian's bugtracking system, from where it'll be forwarded
to whoever maintains the program itself.
<P>Thanks,<BR>
Arjan Drieman
</BLOCKQUOTE>
<P> ----- Forwarded message from Howard Shaw
<<A HREF=mailto:howard@tyroldata.com>howard@tyroldata.com</A>> -----
<BLOCKQUOTE>
Second, with regard to your runlevel usage, while you can write scripts
for starting your networking mechanisms, and there are valid reasons
for doing so, you can also change your runlevel without rebooting by
executing, as root, 'init X' where x is the runlevel. So you can start
at runlevel 4, then use init 3 to drop to runlevel 3 and start those
scripts, then use either init 0 to shutdown, or init 6 to restart your
system.
</BLOCKQUOTE>
<P> This was the other thing people wrote to remind me: use init (or sysinit) to
switch runlevels without rebooting. It's very useful; in going from 4 (no
internet) to 3 (internet) it stops and restarts some services that look like
they could have been left alone, but it does the job in a one line command!
<P> Thanks for everyone's feedback.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">FYI: PS/2 Port Problem In 2.2 Kernel
</FONT> </H3>
Mon, 22 Nov 1999 16:12:20 -0800
<BR>From: Bovy, Steve <<A HREF="mailto:Steve.Bovy@sterling.com">Steve.Bovy@sterling.com></A>
<P> In the past few months I have attempted to
install RedHat 6.0 Caldera 2.2 and Caldera 2.3
on my Compaq Presario 5630 Pentium Computer.
<P> What I discovered is that regardless of which distro,
or which mouse I use, any attempt to install with a
mouse attached to the ps/2 port always fails with
a "frozen" machine.
<P> Caldera support and the Caldera Knowledge base has finally
acknowledged that this problem is "real", and that they are
looking into it.
<!P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Filename extensions for web program listings ...
</FONT> </H3>
Sun, 21 Nov 1999 22:41:10 -0500
<BR>From: Jeff Rose <<A HREF="mailto:whisper@iag.net">whisper@iag.net></A>
<P> I'm enjoying reading this issue of LG on my Palm Vx after downloading
your text version then using a small conversion util to format into PDB
format.
<H4>The <I>Linux Gazette</I> Editor wrote:</H4>
<P> Do you mean PDF? If so, which program do you use?
<H4>Jeff clarified:</H4>
<P> I meant *.pdb :) format using the attached 'txt2pdbdoc' utility. GNU
ZDoc, Aportisdoc, and other utilities convert quick and hotsync quick
for a nice 'mobile Linux-related Library'! ;-)
<BLOCKQUOTE><EM>
[<TT>txt2pdbdoc</TT> is at
<A HREF=http://www.best.com/~pjl/software.html>
http://www.best.com/~pjl/software.html</A>. -Ed.]
</EM></BLOCKQUOTE>
<P> To make things easier, I made a symbolic link from txt2pdbdoc to 2pdb,
so I can just type
<PRE>
$ 2pdb {filename.you.want.2.show.on.pda} {filename.original}
{outputfilename.pdb}
</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=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Terminal emulators
</FONT> </H3>
Sat, 30 Oct 1999 16:00:13 -0400
<BR>From: Michael Kohne <<A HREF="mailto:mhkohne@discordia.org">mhkohne@discordia.org></A>
<P> If what you want is a telnet program for windows that's better than
Microsoft's, check
http://www.geocities.com/SiliconValley/Network/1027/
Kevterm is a very simple vt100 emulating telnet client. It's biggest
features are that it's small, and it works. I'm personally a big fan of
low feature count, but fully working software, and Kevterm is that in
spades. It does everything I need
<P> It's not very fancy, but I've found it to be very useful over time.
<H4>From: Richard Cohen <<A HREF="mailto:vmlinuz@vmlinuz.org">vmlinuz@vmlinuz.org></A>:</H4>
<P> http://tucows.mirror.ac.uk/term95.html (or the same page at any more local
TUCOWS mirror) contains a list of telnet clients for Win95/98, including
some freeware and lots of shareware. I seem to remember having heard good
things in the past about Tera Term Pro (which is free and has a SSH
plug-in available, if you care about that).
<P><STRONG>From: Jonathan Hutchins <<A HREF="mailto:hutchins@kc.net">hutchins@kc.net></A>:</STRONG>
<P> Look for a program called "TerraTerm" on your favorite shareware site.
There are modules for SSH connections available.
<P> Good terminal emulators can cost $250 per workstation, and can eat up a lot
of resources for graphic and keyboard mapping (IBM's Personal Communications
Suite, Reflections). TerraTerm will do 95% of what you want with a
reasonable footprint similar to Microsoft's Telnet.
<H4>From: Pierre Abbat <<A HREF="mailto:phma@oltronics.net">phma@oltronics.net></A>:</H4>
<BLOCKQUOTE>
<P> I have a linux shell from my Win98 machine via a terminal login. I am
presently using telnet to do this, however this causes profound graphical
errors, no color, and other problems. I am looking for a better terminal. Any
suggestions?
</BLOCKQUOTE>
<P> Try TeraTerm. I got mine from srp.stanford.edu; it's a doctored version that
supports SRP authentication, though it doesn't encrypt as the SRP telnet for
Linux does. TeraTerm does colors, but the keyboard isn't perfect, and I have to
use u and d in less instead of pgup and pgdn.
<P> phma
<H4>From: Charles Hethcoat <<A HREF="mailto:CHETHCOA@oss.oceaneering.com">CHETHCOA@oss.oceaneering.com></A>:</H4>
<P> If you are looking for a better telnet for a Windows machine, you might
check out Tera Term Pro:
<P> teranishi@rikaxp.riken.go.jp
<P> It is much nicer than the plain jane Telnet that comes with Windows.
<P> I am aware of no totally free X servers that run under Windows. If you
will settle for a nonfree but cheap Windows X server, try the MicroImages
X server 2.0 (or latest) from www.microimages.com. It's pretty plain, but
works fine for connecting to Linux X clients. And it's pretty inexpensive,=
too.
<P> Charles Hethcoat
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">LS120
</FONT> </H3>
Sun, 31 Oct 1999 04:25:32 +0100
<BR>From: Ghlenn Willard <<A HREF="mailto:ghlenn@presidency.com">ghlenn@presidency.com></A>
<P> Ghlenn Willard (ghlenn@presidency.com):
<BLOCKQUOTE>
<P> I would like to know exactly what I need to input into the /etc/fstab concerning having OpenLinux 2.2 to see the
LS120 drive. My system has the 1.44 floppy drive at fd0, hard drive at hda and hda1, and the cdrom at hdc. I tried the
approach Caldera suggested for the owner of OpenLinux 1.3, it didn't work or I messed up, which is possible since I am
still a greenhorn at this.
</BLOCKQUOTE>
<P> I have two HDs, hda and hdc (IDE Primary 1, IDE Secondary 1), a CD-ROM,
hdb, (IDE Primary 2), and an LS120 as hdd (IDE Secondary 2), and it
works well with this /etc/fstab:
<PRE>
/dev/hdb /cdrom iso9660 ro,noauto,user 0 0
# This is for "DOS"-formatted disks - gets mounted with mount /B
/dev/hdd /B vfat noauto,posix,user 0 0
# This is for ext2-formatted disks - gets mounted with mount /E
/dev/hdd /E ext2 noauto,user 0 0
</PRE>
<P> Needless to say: the mounting points /B and /E must exist - beforehand.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Lilo gone
</FONT> </H3>
Sun, 31 Oct 1999 11:16:28 +0100
<BR>From: Ivo Naninck <<A HREF="mailto:inaninck@solair1.inter.nl.net">inaninck@solair1.inter.nl.net></A>
<BLOCKQUOTE>
<P> My wife ran Norton antivirus and detected that the MBR was changed.
She checked the 'Repair' box. Now my LILO is gone. How do I install it
back into the MBR?
</BLOCKQUOTE>
Boot your rescue floppy and mount your root filesystem on for
example /mnt. Then run /mnt/sbin/lilo and that should fix it.
Then remove any software from/or your other OS(?) that is capable of
mucking
around with critical parts of the system.
<P><STRONG>From: Tomislav Filipcic <<A HREF="mailto:tojo@softhome.net">tojo@softhome.net></A>:</STRONG>
<P> This can be fixed easily. Get a boot floppy (or get a friend to make one
for you) and use it boot linux. When you get to the prompt just type "lilo"
and the MBR will be fixed.
<H4>From: Zon Hisham Bin Zainal Abidin <<A HREF="mailto:zon@mad.scientist.com">zon@mad.scientist.com></A>:</H4>
<P> Thank you everybody for helping me out with the LILO issue.
<P> Think I am gonna luv this Linux thingy. And the amount of support that I
have received...it's just fascinating. Keep up with the good work to
help newbies like me...so that I am able to help newer newbies in the
future.
<P> The latest problem that I face at the moment is the task of removing the
largest virus partition on my PC...that is the DOS partition :)
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Dialling up my ISP (Freeserve)
</FONT> </H3>
Mon, 01 Nov 1999 12:14:10 +0000
<BR>From: Maxwell Lock <<A HREF="mailto:maxwell@reading.sgi.com">maxwell@reading.sgi.com></A>
<P> Hi there,
<P> To connect to Freeserve using RedHat, follow the instructions in the freeserve
HOWTO:
<P> http://www.damtp.cam.ac.uk/user/ig206/freeserve/
<P> and
<P> http://www.scottish.lug.org.uk/freeserve.html
<P> -Cheers, Max.
<H4>From: Steve Phipps <<A HREF="mailto:steve@sjp1.freeserve.co.uk">steve@sjp1.freeserve.co.uk></A>:</H4>
<P> I use Freeserve with Red Hat Linux and find that it works perfectly
well.
<P> I have no idea what the problem is in your case, so I'll go through my
configuration in detail. Hopefully this will enable you to find the
fault - you can always copy my setup if all else fails!
<PRE>
First of all, ensure that the file /etc/hosts.allow contains the line
ALL: LOCAL
, that /etc/hosts.deny contains the line
ALL: ALL
, that /etc/resolv.conf conatins the lines
search .
nameserver 195.92.195.94
(the number is the IP address of Freeserve's nameserver) and that
/etc/hosts contains the line
127.0.0.1 localhost
Next you need a chat script, which should be placed in the file
/etc/ppp/chatscript. Mine, which is fairly basic, is as follows:
# Set abort conditions
ABORT 'NO CARRIER'
ABORT BUSY
ABORT 'NO DIALTONE'
# Set a nice long timeout because Freeserve can be a bit slow
TIMEOUT 120
# Reset modem
'' ATZ
# Dial (0845) 079 6699
SAY 'Dialling Freeserve...\n'
OK ATDT08450796699
# Log in to remote machine
CONNECT ''
SAY 'Connection established, logging in...\n'
ogin: <username>
word: <password>
# Log in complete
SAY 'Log in successful...\n'
</PRE>
<P> Obviously, replace <username> and <password> with the appropriate values
for your account. See man chat if you want to write your own script.
<P> Finally, you need to initiate PPP. I have a file called dialup in my
home directory which simply contains the command
<PRE>
exec pppd connect 'chat -v -f /etc/ppp/chatscript' -detach crtscts \
modem defaultroute /dev/ttyS1 38400
</PRE>
<P> See man pppd if you want to know what's going on here. To connect to
the Internet, make sure that you're in your home directory and enter
<PRE>
source dialup
</PRE>
<P> (you'll have to su first). You should now be connected! Once you're
finished, just hit Ctrl-c to terminate the connection.
<P> This should be enough to connect to Freeserve from a stand-alone
terminal. I'm assuming that PPP is installed on your machine and that
your modem is connected to the second serial port (/dev/ttyS1, or COM2
under DOS).
<P> If this still doesn't work, look in /var/log/messages. That should tell
you why the connection failed.
<P> Good luck!
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">At-command error message
</FONT> </H3>
Mon, 01 Nov 1999 12:14:10 +0000
<BR>From: Buz Cory <<A HREF="mailto:helpdesk@buzco.penguinpowered.com">helpdesk@buzco.penguinpowered.com></A>
<P> On Tue, 28 Sep 1999 03:51:36 +0000, Ben <benvh@wish.net>
wrote regarding "AT-command error message ":
<BLOCKQUOTE>
Whenever I try to run "at" I get an error message, like so:
<PRE>
root@benzz:> at 10:15 command
Only UTC Timezone is supported. Last token seen: command
Garbled time
</PRE>
This is actual output. My system _is_ on UTC timezone,
</BLOCKQUOTE>
<P> I think that the reference to "UTC" in the error message is to the
command line, not what your system clock is running.
<P> AFAIK, at uses *local* time unless you specify "UTC", and seems not to
accept any other time zones. It seems in your example to be trying to
interpret "command" as a time zone.
<BLOCKQUOTE>
the at man-page didn't help a bit.
</BLOCKQUOTE>
<P> I suggest that you read the man page again.
<P> If you don't know what "standard input" is, this could be the problem.
<P> From the man page:
"at and batch read commands from standard input or a specified file
which are to be executed at a later time, using /bin/sh."
<BLOCKQUOTE>
Someone suggested that I should write a file:
<PRE>
echo command> file at 10:15 cat < file
</PRE>
</BLOCKQUOTE>
<P> This is almost correct. Any of
<PRE>
echo command > file ; at 10:15 cat < file
echo command > file && at 10:15 cat < file
or
echo command > file
at 10:15 cat < file
</PRE>
would work. (These are two separate commands, and must be seen by the
shell as such).
<BLOCKQUOTE>
but that wouldn't help, as "at" is still in there, and it's "at"
making trouble.
</BLOCKQUOTE>
<P> Not exactly, it's misuse of "at" that is making the trouble.
<P> All "at" expects on its command line is the time and in your example it
is trying to interpret what follows the time as part of the time.
<P> The examples above avoid this, but they are kludgey.
<P> If you wish to run the *same* command from "at", then make it a shell
script and use the "-f" option, eg:
<PRE>
at -f my-script noon
</PRE>
or
<PRE>
at noon < my-script
</PRE>
<P> Otherwise, just use a pipe:
<PRE>
echo command | at noon
</PRE>
<P> Granted, this is non-intuitive, but it is the way "at" has worked for
over 20 yrs.
<BLOCKQUOTE>
Does anybody know what I'm doing wrong? Or just another way to
schedule tasks? I'm getting desperate now...
</BLOCKQUOTE>
<P> There is also another way to schedule tasks. "at" is for once-only
tasks. "cron" is for periodic tasks and works a whole different way.
<P> Hope this helps,<BR>
== Buz :)
<P><STRONG>From: Ben <<A HREF="mailto:benvh@wish.net">benvh@wish.net></A>:</STRONG>
<BLOCKQUOTE>
All "at" expects on its command line is the time and in your example it
is trying to interpret what follows the time as part of the time.
</BLOCKQUOTE>
<P> This was the exact piece of information I was looking for. I didn't realize
"at" is interactive, and if anyone would have told me before, or if this
information was obvious from the man-page, I would have had my brain around the
concept of 'standard input' a lot sooner.
<P> Thanks again, Buz.
<H4>From: Buz:</H4>
<BLOCKQUOTE>
This was the exact piece of information I was looking for.
</BLOCKQUOTE>
<P> Good, but the following indicates you still don't quite get it.
<BLOCKQUOTE>
I didn't realize "at" is interactive,
</BLOCKQUOTE>
<P> It isn't, exactly, though it can be used that way. It is mostly
intended to be used as the end of a pipeline.
and if anyone would have told me before,
<BLOCKQUOTE>
<P> That's why I stuck in my 2 cents.
</BLOCKQUOTE>
<BLOCKQUOTE>
or if this information was obvious from the man-page,
</BLOCKQUOTE>
<P> It is (or should be), but only if you are already familiar with the
concept and workings of Standard Input.
<BLOCKQUOTE>
I would have had my brain around the concept of 'standard input' a lot
sooner.
</BLOCKQUOTE>
<P> As I mentioned above, you still don't seem to grok it in fullness. It is
intimately related to concepts like "pipes", "pipelines", "filters", and
"redirection".
<P> M$-DOS had these concepts, to but they don't work as well there as in
Un*x, DOS not being multi-tasking. Hardly anyone used them or even knew
about them.
<P> Now that I think about it, have not seen a good discussion of these for
a long time. (10 yrs or more?). Seems I might have to write one, but
don't want to put it in the body of this mail.
<P> You might go to "UnixHelp for Users" at
<A HREF=http://unixhelp.ed.ac.uk/>unixhelp.ed.ac.uk</A>
(please use one of their many mirrors). This site provides the best intro
to using Un*x that I have seen online, but far from the best possible.
In particular, their glossary leaves much to be desired.
<P> Or the Unix Version 7 Manuals at
<A HREF=http://plan9.bell-labs.com/7thEdMan/index.html>
plan9.bell-labs.com/7thEdMan/index.html</A>.
This will take some work to make readable, but you will learn quite a
bit in just making it readable. The documents here were all written by
the *original* Unix gurus at AT&T about 1979. Not everything here is
still relevant, but most is. I plan to eventually have all this online
as HTML, but probably not till next year sometime.
<P> There are several HardCopy (book) resources available, but this email is
getting far too long.
<P> [...]
<P> You should try "man stdio" and then "man stdin" for a complete and
correct (if not terribly clear) description of the meaning and purpose
of "standard input", etc from the program's point of view.
This is written for "C" programmers, but most of it applies for any
language.
<P> I shall continue working on getting a <EM>good</EM>, <EM>clear</EM>
definition that is independent of OS and programming language.
<P> You might also try the section on "Text_IO" in the Ada definition, the
same concepts apply.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Connecting a Linux PC to an ADSL modem
</FONT> </H3>
Mon, 1 Nov 1999 09:45:15 -0600
<BR>From: Jonathan Hutchins <<A HREF="mailto:hutchins@kc.net">hutchins@kc.net></A>
<P> Take a look at some of the Firewall/Router/IPForwarding HOWTO's.
<P> Basically what you need is to connect one PC running Linux to the ADSL
connection, then connect the other PC's to an ethernet segment that also
includes the connected PC. Run IPChains/IPMasq on the connected station,
and you have a firewalled router that connects your private LAN to the
internet using seamless TCP/IP.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Is SMP worth it?
</FONT> </H3>
Mon, 1 Nov 1999 09:39:03 -0600
<BR>From:
"Jonathan Hutchins" <<A HREF=mailto:hutchins@kc.net>hutchins@kc.net</A>>
<P> I haven't seen any benchmarks for Linux SMP, but generally you not only need
the SMP kernel, you need code that is optimized for the number of processors
you are running.
<P> The rule of thumb I know is from the NT universe, building and selling
servers, and that is that a second CPU results in about a 40% gain in
throughput. Be sure to compare the cost of a second CPU and the dual socket
motherboard against a 40% faster CPU (or maybe an Alpha?).
<P> You don't indicate how long these modeling sessions run, but if they're
reall clock hogs you might consider something like a Beowulf array using
less-than-state-of-the-art CPU's.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Lexmark printer drivers, and Zoom modem
</FONT> </H3>
Mon, 1 Nov 1999 09:45:15 -0600
<BR>From: Jonathan Hutchins <<A HREF="mailto:hutchins@kc.net">hutchins@kc.net></A>
<P> Don't know about your Zoom modem - presumably you know enough to avoid
Winmodems and Plug-and-Pray devices. Could be that something like a NIC is
grabbing the port - Linux brings up the NIC before the serial port, so where
in DOS you get a modem but the NIC fails, in Linux you get the NIC but no
modem.
<P> As far as your Lexmark goes, 1) Hassle IBM to provide drivers, and 2) Set it
to emulate an HP printer and use the driver for that.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Linux classes
</FONT> </H3>
Mon, 1 Nov 1999 09:45:15 -0600
<BR>From: Jonathan Hutchins <<A HREF="mailto:hutchins@kc.net">hutchins@kc.net></A>
<BLOCKQUOTE>
My question to all of you in the industry is this: What parts of Linux,
and the networking of same, are most important to you? Should there be
more concentration in TCP/IP fundamentals (which I have included),
specific Linux/*ix-based programs ( KDE, Gnome, Apache), or which? What
is it that you most desire in an entry-level (or not-so-entry-level)
employee candidate?
</BLOCKQUOTE>
<P> I think you should leave the TCP/IP stuff for a Networking class - it's
pretty independent of LINUX, and spending a lot of time on it would
shortchange the Linux specific material.
<P> I think there are two basic categories to Linux - First, setting a system
up, getting it running correctly and getting software installed for whatever
end-use is in mind. Second, ongoing administration - program updates,
troubleshooting, setting changes, maintaining things from routing tables to
firewall patches.
<P> I would look at the Microsoft "Installing and Configuring" classes for the
first level. Start with planning: hardware selection and compatibility,
selecting network topology and protocol, determining what services will run,
etc. Work with such indefinates as how to configure Xwindows for something
like the Asus SP97-V which isn't correctly supported by the install scripts.
Work on building install scripts for the various distribs like Linux and
Caldera that allow you to build your own. Mention common wierdnesses - like
the fact that Linux brings up Network cards first, then serial ports, which
is the opposite of DOS and means that in a conflict it will be the serial
port instead of the NIC that fails.
<P> Ongoing admin can be anything from finding module and library dependencies
to compiling custom kernels. How to keep the patches and updates current
without scrambling the system with multiple installations of common
libraries. Strategies for testing updates before rolling them out to
production.
<P> The first class would be most of what someone would need to maintain a
single-user workstation or a home router/server. Some topics wold cross
over - installing and updating new Xwindows software would be of concern to
the person setting up a new system and adding productivity software, to the
individual maintaining a single-user workstation, and to the system
administrator rolling out a new WordPerfect to a 100 user office. Probably
the basics would be covered in the first class, and the strategies for a
large rollout in the second.
<P> Anyway, there's what I think. Let us know what you end up with.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Diamond A50
</FONT> </H3>
Fri, 19 Nov 1999 17:19:13 -0500
<BR>From: Anthony J Placilla <<A HREF="mailto:anthony_placilla@suth.com">anthony_placilla@suth.com></A>
<P> The Diamond A50 will work with a little configuration. You need to
modify /etc/X11/XF86Config.
Go to the "Graphics Device" section. You'll see a stanza that starts
with " Device configured by Xconfigurator"
Underneath the "Boardname" line add the following 3 line:
<PRE>
option "no_bitblt"
option "no_imageblt"
option "sw_cursor"
</PRE>
<P> the video ram line will probably be commented. Remove the # in front of
it, save & exit the file.
<PRE>
startx
</PRE>
<P> Have fun
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Telnet Trouble
</FONT> </H3>
04 Nov 1999 14:03:58 -0600
<BR>From: Omegaman <<A HREF="mailto:scotth@fastband.com">scotth@fastband.com></A>
<P> Jim,
The user shouldn't need to disable TCP wrappers. I have left both
messages in full for my explanation.
<P> --Sat, 25 Sep 1999 01:28:37 -0700
From: Jim Dennis (jimd@starshine.org)
<P> Dear Jim
<BLOCKQUOTE>
<BLOCKQUOTE>
Your email did help me to solve the problem with the telnet in
linux. It works fine now. Thanks a million.....
I have a small doubt. Let me explain...... My network has a NT
server, LINUX server and 20 windows 95 clients. I followed your
instructions and added the address of all the clients into the
/etc/hosts file on the LINUX machine and voila the telnet worked
immediately.
But the NT server was the one who was running a DHCP server and
dynamically allocating the addresses to the clients. The clients
were configured to use DHCP and were not statically given and ip
addresses. I managed to see the current DHCP allocation for each
client and add those address into the /etc/hosts file on the LINUX
server but my doubt is what happens when the DHCP address for the
client changes? Then again we'll have to change the address in the
/etc/hosts file right? This seems silly. Is there anyway to make the
LINUX hosts file to automatically pick up the DHCP address from the
NT server?
Also another important thing is I am still unable to ping from the
NT server to the LINUX server using the name. It works only with the
IP address. Is there any way to make the NT DHCP to recognize the
LINUX server?
</BLOCKQUOTE>
Well, either you shouldn't use dynamic addressing (DHCP) or you
should use dynamic DNS. You could also disable TCP Wrappers (edit
your /etc/inetd.conf to change lines like:
<PRE>
telnet stream tcp nowait root/usr/sbin/tcpd in.telnetd
</PRE>
... to look more like:
<PRE>
telnet stream tcp nowait root/usr/sbin/in.telnetd in.telnetd
</PRE>
</BLOCKQUOTE>
<P> There's no need to do this. hosts.allow and hosts.deny allow
network/netmask specifications. So lets say our user's DHCP assigns
from the simple class C 192.168.0.1 - 192.168.0.255. In hosts.allow we
can then put:
<PRE>
in.telnetd: 192.168.0.
</PRE>
<P> -- OR --
<PRE>
in.telnetd: 192.168.0.0/255.255.255.0
</PRE>
<P> you can also allow/deny based on host or domain name:
<P> in.telnetd: .domain.com
<P> Then you won't need mappings in /etc/hosts for the current DHCP
assigned address. You may want to do dynamic DNS if you need the
hostnames of the windows workstations. Then point the linux box's
resolv.conf at your NT server with the DNS mappings. Or, better
still, make the linux box your DHCP server/DNS server and use BIND 8's
dynamic DNS features.
<P> Windows also has a HOSTS file with a format identical to /etc/hosts in
the windows or winnt directory. You'll find the entry for localhost
already in it. You can add the linux box's IP there for name
resolution.
<BLOCKQUOTE>
(and comment out all of the services you don't need while you're at
it).
</BLOCKQUOTE>
<P> Definitely a good idea.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">DHCP and Dynamic DNS
</FONT> </H3>
Thu, 4 Nov 1999 15:17:38 -0600
<BR>From: Jonathan Hutchins <<A HREF="mailto:hutchins@kc.net">hutchins@kc.net></A>
<P> Jim Dennis says:
<P> "But the NT server was the one who was running a DHCP server and dynamically
allocating the addresses to the clients. The clients were configured to use
DHCP and were not statically given and ip addresses. I managed to see the
current DHCP allocation for each client and add those address into the
/etc/hosts file on the LINUX server but my doubt is what happens when the
DHCP address for the client changes? Then again we'll have to change the
address in the /etc/hosts file right? This seems silly. Is there anyway to
make the LINUX hosts file to automatically pick up the DHCP address from the
NT server?
<P> Also another important thing is I am still unable to ping from the NT server
to the LINUX server using the name. It works only with the IP address. Is
there any way to make the NT DHCP to recognize the LINUX server? "
<P> Microsoft's answer to this problem is to run the Windows Internet Name
Service - WINS. This provides NetBIOS name resolution to dynamic addresses
as assigned by WindowsNT DHCP. The WindowsNT DNS system will also allow you
to provide Internet Name resolution for dynamic addresses. Since you're
mostly running WIndows95 clients, these clients can be pointed to the WINS
server via the variables on the DHCP server, and will be able to resove
addresses for TELNET and other services. (Be sure to take advantage of the
WINS node-type configuration in DHCP too - it reduces broadcast traffic for
name resolution.) If you need non-Windows applications or clients to
resolve names, you'll need the DNS system as well.
<P> Another solution is to go into the DHCP configuration and make each IP
Address assignment a "reserved" address - reserved for the MAC address of a
given machine. That way, you have the advantages of centralised
administration of Internet paramaters such as Gateway and DNS servers
without having the IP addresses change unless you tell them to.
<P> Finally, the Microsoft implementation of the LMHOSTS and HOSTS files allows
using an "INCLUDE" statement to link to a central address file (on the
server, for instance). This lets you use these files instead of WINS and
DNS (respectively), but maintain the tables in a single, central file.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">i740 AGP
</FONT> </H3>
Thu, 4 Nov 1999 15:08:46 -0500 (EST)
<BR>From: Gleef <<A HREF="mailto:gleef@capital.net">gleef@capital.net></A>
<P> Hakon Andersson wrote:
<BLOCKQUOTE>
I wish to run my i740 AGP under Linux. I am a Linux newbie though. I was
wondering if you could tell me, or direct me onto some resources on how
to setup my i740, or which server to install during installation. I am
installing Redhat5
</BLOCKQUOTE>
<P> I currently have an i740 AGP system running under Linux. The problem is
that, back when Red Hat version 5 came out, Intel was refusing to release
information about that video chipset. There was a binary-only X Server,
but it was poor. Since then, Intel apparently opened up its NDA (with
Red Hat's urging, if I recall), and the source code for that X Server was
released. Since then, the source code has been cleaned up, and
incorporated into the standard SVGA server for XFree86.
<P> The i740 works very well with the XFree86 SVGA server, but only in
versions 3.3.4 and later. Red Hat 5 has a much earlier version, but it
probably can be upgraded with a little effort. You're probably better off
just using a more recent distribution, such as Red Hat 6.1.
<P> Best of Luck,
-Gleef
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">3-button mouse on X Window System
</FONT> </H3>
Thu, 4 Nov 1999 21:27:38 -0600
<BR>From: Alan Wormser <<A HREF="mailto:n5lf@qsl.net">n5lf@qsl.net></A>
<P> Angelo:
<P> I use Red Hat 5.1, so your subdirectories may be a little different, but
here is a solution:
<P> 1. Log in as "root" so you can modify the configuration files for XWindows.
(As an alternative, you could log in as a regular user and use the "su"
command to get root access.)
<P> 2. Edit the file called "XF86Config" in the "/etc/X11" directory. This is
a regular text file that has all your X settings for mouse, keyboard,
monitor, and video card.
<P> 3. Find the "Pointer Section" which is about on line 125 (out of 383 lines
in my copy of the file).
<P> 4. Find the line that says, "# Emulate3Buttons", and remove the "#" sign.
The "#" indicates a comment and removing it turns the comment into a
command.
<P> 5. Save and exit and log back in as a regular user (never play around as
"root" -- it's too dangerous).
<P> I think that will fix xstart for you! Good luck!
<P> Alan Wormser
Austin, TX
<H4>From: <<A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl></A>:</H4>
<P> Dear Angelo,
<P> In Linux Gazette nr. 47, you write:
<BLOCKQUOTE>
Can anybody help me with this simple (I guess) problem? My three-button
mouse works very fine on the console, but it doesn't when I "startx".
What's going on? How can I solve this problem and start using the
middle mouse button under X? Any suggestion will be appreciated.
</BLOCKQUOTE>
<P> What's going on is that your gpm (console mouse daemon) is probably set
up differently from ths X Window System.
<P> Look for the file XF86Config (probably in /etc/X11/)
<P> Look for the "Pointer" section, and change the protocol from Microsoft
to MouseSystems, as shown below:
<PRE>
Section "Pointer"
# Protocol "Microsoft"
Protocol "MouseSystems"
Device "/dev/mouse"
EndSection
</PRE>
<P> That should do the trick.
<H4>From: Gerard Beekmans <<A HREF="mailto:glb@dds.nl">glb@dds.nl></A>:</H4>
From: angico@yahoo.com:
<BLOCKQUOTE>
<P> Can anybody help me with this simple (I guess) problem? My three-button
mouse works very fine on the console, but it
doesn't when I "startx". What's going on? How can I solve this problem
and start using the middle mouse button under X?
Any suggestion will be appreciated.
</BLOCKQUOTE>
<P> Start by opening your XF86Config file. It's under one of these places
(under normal circumstances):<BR>
/etc/XF86Config<BR>
<XRoot>/lib/X11/XF86Config.hostname<BR>
<XRoot>/lib/X11/XF86Config<BR>
<P> Look for the section "Pointer"
<P> See if you have these (similair) lines:<BR>
Emulate3Buttons<BR>
Emulate3Timeout 50<BR>
<P> If you have them, comment them out (by putting #'s in front of them)
If you don't have them, you can try adding them.
<P> Exit X and restart it (and cross your fingers ;)
<P> If this doesn't work, could you tell me what kind of mouse (brand and
connection like serial mouse or ps/2 mouse) you're using?
And can you send me your XF86Config file too.
<H4>From: Joachim Noffke <<A HREF="mailto:Joachim.Noffke@t-online.de">Joachim.Noffke@t-online.de></A>:</H4>
<P> The mouse configurations for the console and for X are independent from
each other. You probably have configured X with a different mouse type
that doesn't support three buttons. If your mouse works on the text
console, try using the same settings for X.
<P> To do this, check your "gpm" command in /etc/rc.d/rc.local (for
Slackware, filename may vary depending on your distribution) to find out
which mouse type is being used there (argument "-t"). Reconfigure the
mouse under X accordingly (i.e. rerun XF86Setup, xf86config, or whatever
you're using).
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Dual PIII Xeon performance
</FONT> </H3>
Sat, 6 Nov 1999 16:00:01 +0100 (CET)
<BR>From: <<A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl></A>
<P> Dear Nick,
<P> In issue 47 of the Linux Gazette, you wrote
<BLOCKQUOTE>
<P> I do some intensive (multi-week runs) ocean modeling on my Dell 610 w/
a PIII 500 Mhz Xeon. I am having a hard time finding out whether a
second PIII will improve the speed of a single process, or only for
multi-processes. Either way would help, but it would be nice to know
before laying out the $.
</BLOCKQUOTE>
<P> A second processor cannot really enhance the speed of a single process,
other than distributing all the processes on your PC over two
processsors. Remember that Linux is a multiuser/multitasking systems.
At any time several processes are waiting for processor time.
<P> If your application is capable of running multiple instances of itself,
working together on the same data-set, you would see the largest speed
increase.
<P> Remember that you need a kernel compiled for SMP to be able to use 5the
second processor. AFAIK, an SMP-able kernel doesn't work with a single
processor.
<P> Other things you could try to make your process run faster are:
<UL>
<LI> killing unnecessary daemons (e.g. inetd, sendmail and lpd) when you
don't need them.
<LI> give the process a higher priority (negative nice value) using
"nice". Mind you, the superuser has to do this.
</UL>
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">epson 800 printer driver
</FONT> </H3>
Sat, 6 Nov 1999 16:16:52 +0100 (CET)
<BR>From: <<A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl></A>
<P> Dear Linda,
<P> In the Linux Gazette nr. 47, you wrote:
<BLOCKQUOTE>
We need to install above and need a driver installer disk, can you
help. e:mail us or please call 01752 788099, we are desperate.
</BLOCKQUOTE>
<P> Linux doesn't have printer drivers as such. Printing services aren't
part of the Linux kernel.
<P> Most Linux users use Ghostscript (a postscript interpreter) as a way to
use their printer as a postscript printer. The Epson Stylus 800 is
supported by Ghostscript 5.5. Most modern distributions have this.
<P> Install Ghostscript, adapt your /etc/printcap so that all programs that
print via the printing daemon can access them.
<P> Read the Printing-HOWTO.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">KDE slower than windoze?
</FONT> </H3>
Sat, 6 Nov 1999 16:23:21 +0100 (CET)
<BR>From: <<A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl></A>
<P> Dear Sandra,
<P> In Linux Gazette nr. 47 you wrote:
<BLOCKQUOTE>
I've just installed linux on my Acer Notebook 370 and I thought
everthing works fine. But when I'm running KDE it takes e.g. about 5
minutes to open Netscape!!! Is anybody out there who knows what's wrong
with my installation???
</BLOCKQUOTE>
<P> How much memory does your notebook have? I'd say you would need at
least 16 MB to get a somewhat usable X environment, but 32 or 64 MB
would be better. It sounds like your system is swapping a lot to get
Netscape to load.
<P> I would recommend you switch from KDE to a less memory intensive Window
Manager (try fvwm1). Netscape itself is also quite big, although older
versions (3.x) are smaller then new ones.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">My Windows partition hasd full access for root only
</FONT> </H3>
Sat, 6 Nov 1999 14:34:00 -0500
<BR>From: Gerard Beekmans <<A HREF="mailto:glb@dds.nl">glb@dds.nl></A>
<BLOCKQUOTE>
<P> I have 2 questions:
I have partitioned my HD in 4 partitions.
1.1 - Win98 (Filesystem is FAT-Win95) <BR>
2.Linux Swap <BR>
3.Linux OS <BR>
4.Personal Data (Filesystem is FAT-Win95) <BR>
Questions 1.<BR>
Both the FAT-Win95 Filesystem Partitoins get mounted properly in Linux
but the problem is that only root has
read/write/execute permission. The other users only have read/execute
permissions.How can I have it set up so that
everyone had r/w/x permission to the mounted filesystems (and all the
subdirectories within them)
</BLOCKQUOTE>
<P> Here's a solution. When you mount the partition, use this command:
<PRE>
mount -t vfat -o umask=000 partition mountpoint
</PRE>
<P> You might use a slightly differnet command (aside the -o umask=000
option). The thing is: you need to put -o umask=000 somewhere. This
command makes all files/directories mode 777 (r/w/x) for everybody
(owner, group and other).
<P> This doesn't add attributes which aren't originally present. Normally
when root mounts, the write-attribute is removed from every file when
you mount it (since root has usually umask 022 - group and other don't
get write permissions when new files are created. If you use umask in a
mount command every file that is on that filesystem will be treated like
it has just been created (to put it simple)). If a file is marked
read-only by Windows, the mount program will see that and will treat it
like that aswell. Therefore you can't write to files that are already
read-only, unless you're root.
<BLOCKQUOTE>
<P> Question 2.<BR>
If I access any file from the FAT-WIN95 filesystem and make a change to
it within Linux, when I boot in windows, that file is
marked as "read only". Any idea why this is happening and how I can stop
this from happening?
</BLOCKQUOTE>
<P> I've never seen this happen on my system. I usually don't even use the
umask=000 setting (since i hardly access the win95 partition at all. If i have
to do it, i just do it as root). My only guess is that your root's umask
has the first digit set to 2. If you type 'umask' at your prompt you
should see '022'. But I don't think this is the case here. Check it
anyway just to be sure :)
<P> Perhaps this umask=000 setting answers your 2nd question. Again, since
it doesn't happen here I can't test it either i'm afraid.
<BLOCKQUOTE>
<P> Maybe the two are related. Any help will be greatly appreciated.
</BLOCKQUOTE>
<P> You're most welcome. Hope all goes well. If you have more questions,
feel free to ask ;)
<H4>From: Joachim Noffke <<A HREF="mailto:Joachim.Noffke@t-online.de">Joachim.Noffke@t-online.de></A>:</H4>
<P> If your FAT partitions are mounted automatically at boot time, all files
on them will belong to root. To change the permissions for other users,
edit your /etc/fstab file: in the two lines corresponding to your FAT
partitions (the ones which contain "vfat" or "msdos" in the third
column), add the mount option "umask=0" to the fourth column. This
should solve at least problem #1.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Tryin' to install a Diamond SupraExpress 56i V PRO
</FONT> </H3>
Sat, 6 Nov 1999 14:35:06 -0500
<BR>From: Gerard Beekmans <<A HREF="mailto:glb@dds.nl">glb@dds.nl></A>
<BLOCKQUOTE>
<P> I have a problem with my new modem. I tried to install it under Red-Hat
5.2 but it doesn't work. My modem is an internal
Diamond Supra Express 56i V PRO and under W98 the default configuration
is irq 12 an I/O port 0x3e8. Under W98 it works
perfectly and i don't think this is a "winmodem"(isn't it?). Windows
"says" that under DOS it must be configured with: COM 3,
irq 4 and I/O port 0x3e8 (/dev/ttyS2 isn't it?)
I just want to know if this is a winModem or not and how can I install
it.
</BLOCKQUOTE>
<P> First we have to make sure wether it's a winmodem or not.
<P> How do you configure the modem? Do you need to change jumpers on the
modemcard itself to change IRQ's and the like? If so, then chances are
high that it is not a winmodem.
<P> Here's a second check.
<P> When you boot the computer, you get the BIOS tests output. It also
contains a list with comports it had found. If that lists the comport
of your modem, then you are sure that your modem is not a winmodem.
<P> I advise to put your modem on COM4 (IRQ3 I/O 2E8) since that works best
and in case you have a serial mouse it won't interfere with it (if you
have a serial mouse on COM1 and a modem on COM3, they both have the same
IRQ and that is a possible problem hazard). If you, however, have a PS/2
mouse, then you can safely leave it on com3.
<P> And yes, COM3 is /dev/ttyS2 under Linux.
<P> Have you tried minicom under Linux? It's a program similair to
Hyperterminal from Windows. You can use the program to send AT-commands
(modem commands) to a serial port and in that way you can determine if
the modem is responding or not.
<P> Good luck.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Linneighbourhood
</FONT> </H3>
Thu, 11 Nov 1999 01:25:12 +0530 (IST)
<BR>From: Raj <<A HREF="mailto:s_raj@flashmail.com">s_raj@flashmail.com></A>
<P> this is the rpm info extracted with the rpm -qip command
<PRE>
Name : gnomba Relocations: (not relocateable)
Version : 0.3 Vendor: (none)
Release : 1 Build Date: Thu Jul 2911:10:45 1999
Install date: (not installed) Build Host:otherland.darkcorner.net
Group : Utilities/Network Source RPM:gnomba-0.3-1.src.rpm
Size : 64461 License: GPL
Summary : Gnome Samba Browser
Description :
gnomba is a GUI network browser using the smb protocol. It allows users
to browse workgroups, machines, and shares in a "Network Neighborhood."
</PRE>
<P> i havn't installed this nor tested this
<P> if you find time pl send me the comments about this rpm
<P> raj
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Compiling your own Linux distro.
</FONT> </H3>
Fri, 12 Nov 1999 21:04:49 +0200
<BR>From: Willem Brown <<A HREF="mailto:willem@brwn.org">willem@brwn.org></A>
<P> Hi,
<P> I recently came across this on the web.
<P> The ROCK Linux Homepage: <A HREF=http://linux.rock-projects.com/>
linux.rock-projects.com</A>
<P> ----- snip README ------
<P> ROCK Linux is built by a few shell scripts. These scripts can download
all necessary sourcecode from the internet, compile the packages with
optimizations for your choice of processor, build the package files
and (optionally) create a CD-ROM image.
<P> ROCK Linux is a small distribution, but it's not a "mini distribution".
It comes with over 200 packages including X11 and the GNOME Desktop.
<P> ----- snip README ------
<P> These scripts is about 1.3MB in size.
<P> HTH
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">SiS
</FONT> </H3>
Sun, 21 Nov 1999 21:04:48 -0600
<BR>From: Alton W. Jones <<A HREF="mailto:wljones@hex.net">wljones@hex.net></A>
<P> Your November column had some advice for a newbie struggling with an SiS
video assembly. I offer the folowing:
<P> For S.u.S.E.
Go to their site http://www.suse.com/ for drivers. I did this with
S.u.S.E. Linux 6.1. The drivers work, but can be installed only with
S.u.S.E. SaX. The other installation programs will not work. The
XF86Config file written is NOT compatible with xf86config, but is
required to get SiS up. My SiS 530 on-board setup is limited to 16-bit
color depth. Windows on the same computer has 32-bit color depth.
<P> For Red Hat 6.0, Open Linux 2.0, and Slackware 3.6
There are drivers at http://www.sis.com.tw/. There are also
instructions. I have not tried them, so you are on your own. Have fun.
<P> Regards,
William L. Jones, P.E.
wljones@hex.net
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">RedHat Business Model
</FONT> </H3>
Mon, 1 Nov 1999 09:47:25 -0600
<BR>From: Jonathan Hutchins <<A HREF="mailto:hutchins@kc.net">hutchins@kc.net></A>
<BLOCKQUOTE>
One part of my research is where I am analysing the business model of
Linux (from Redhat) . However I fear by going to Redhat's website the
information about it's product may be biased and I may not be able to
get an all rounded opinion.
</BLOCKQUOTE>
<P> Get your basic info from RedHat, state your thesis on line (newsgroups?) and
ask people to refute it. RedHat's pretty above-board, and most people don't
have too much argument about their policies.
<!-- END tips.answers -->
<!-- *** BEGIN copyright *** -->
<P> <hr> <P>
<H5 ALIGN=center>
This page written and maintained by the Editor of the <I>Linux Gazette</I>.<BR>
Copyright © 1999, <A HREF="mailto:gazette@ssc.com">gazette@ssc.com</A><BR>
Published in Issue 48 of <i>Linux Gazette</i>, December 1999</H5>
<!-- *** END copyright *** -->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">It's Only a One Day Conference...</font></H1>
<H4>By <a href="mailto:adler@ssadler.phy.bnl.gov">Stephen Adler</a></H4>
</center>
<P> <HR> <P>
<!-- END header -->
<CENTER><img src=gx/adler/TheBanner.jpg></CENTER>
<br CLEAR=all>
<SPACER TYPE=vertical SIZE=20>
<table align=right hspace=10 vspace=10>
<caption align=bottom><font size=-1>
A pile of conference badges. If you look closely, you'll see Maddog's
badge on top.
</font></caption>
<tr><td>
<img src=gx/adler/BadgesSmall.jpg>
</table>
It was sometime during the week of Oct 4th. The day was sunny, bright,
the sky a piercing light blue. I was walking north along Bell Avenue in
Brookhaven National Laboratory on my way to the bank. I had just
finished lunch and was savoring the walk. It was quiet, peaceful. The
first sunny, crisp days of fall had arrived. The peacefulness
surrounding me was so impressive. It had been 4 months since I've been
able to enjoy such a quiet moment.
<p>
"What do you mean there are a busload of people wandering lost around
the RHIC ring!" I replied to one of the organizers after being
interrupted from fidgeting with that damn PC projector. "That's what
I've been told, and <b>YOU HAVE TO DO SOMETHING!</b>" she replied. I
ran out to the lobby in a frantic disposition. One of my PHENIX
collaborators was walking around looking at the vendor
exhibits. "Please John, go out and find those wandering conference
attendees and give them a tour of the PHENIX detector!" He looked a
bit puzzled as I explained the situation to him, but was off in a rush
after he understood what was going on.
<br clear=right>
<p>
<center>
<table>
<caption align=bottom><font size=-1>
That's me making cables. One of those valuable Ph.D. analytical
skills I've picked up. The poster/demo room's IT infrastructure
needed to be assembled and thus there you have me making RJ45 cables.
</font></caption>
<tr><td>
<img src=gx/adler/RJ45Small.jpg>
</table>
</center>
<p>
That was October 2nd, the day of the Open Source/Open Science
conference. The whole day was a series of crises. The first crisis
started that morning when we fired up the projector which was hooked
up to the PC running Linux. The projected image jittered in such a way
as to give me a rather nasty headache. "This will not do!" I
exclaimed. Malcolm, one of the organizers swore again and again that
it was working great the night before. "Hooking up a another laptop or
PC is no easy feat" he warned me. It takes a good 20 minutes to figure
out the settings on the projector so that it will sync properly with
the video output. What to do - what to do. I had 15 minutes before the
conference started, and the only working PC/projector setup was
running Windows NT. What an embarrassment for an Open Source/Open
Science conference. I was not going to do my introductory talk with
the NT desktop brightly displayed behind me, as I used IE to down load
my presentation. I had my laptop setup on a table on the auditorium
stage from where I was going to run the conference. My intent was to
monitor the inbox of the osos account on that laptop, to which people
were to send their e-mail with questions I was to ask the speakers. I
took down my laptop, set it up next to the projector, plugged in the
video cable and pressed <em>fn</em>-<em>crt</em> which in theory
should enable the video output on my laptop. Nothing. A big blue box
shown on the screen with a clear message reading "No video sync." The
conference was to start in 10 minutes. I quickly booted my laptop into
windows 98, and back into Linux. The video projector came alive and
projected my GNOME desktop after logging into my account. 5 minutes to
go and I had a working Linux desktop environment projected onto the
screen for the audience to see and from which I would present the
introductory talk. Wheeewww. Crisis #48 averted....
<p>
<table align=left vspace=10 hspace=10>
<caption align=bottom><font size=-1>
A view of the RHIC tunnel with some of the invited OSOS'99 guests and
then some. Of those who I recognize are Gabor David of PHENIX on the
far left, John Hall 5th from left, Mark Galassi one over from John
Hall, followed by Fred Johnson of DOE, skip one and then Michael
Johnson of Red Hat and finally Bruce Perens.
</font></caption>
<tr><td>
<img src=gx/adler/RHICTunnelSmall.jpg>
</table>
The idea for this conference was begot back in early June after a
lunch I had with Sean McCorkle. As we walked out of the cafeteria,
Sean suggested that we put on an Open Source conference. This was the
same idea I had in the back of my head for a long time now. "I would
be glad to dedicate time for an Open Source conference," Sean told
me. He said it with a zealot's enthusiasm whence I knew he meant what he
said. With that bit of encouragement, I told him that we should
"explore" the idea further.
<p>
A couple of days later, Malcolm Capel, a big Linux user doing
structural biology work at the Light Source, Tim Sailer, a big Linux
(Debian) developer, who was working for the RHIC computing facility at
the time, Sean McCorkle, who does database work for the Human Genome
project and myself, who spends much too much time on these silly
write-ups, gathered during lunch to push forward this idea of
organizing an Open Source conference at the Lab.
<br clear=left>
<p>
<table align=right vspace=10 hspace=10>
<caption align=bottom><font size=-1>
Same gang, but now we are posing for a photo op in front of the STAR
detector. This is one of the two BIG detectors ready to study the
creation of the Universe at BNL. Maddog took this picture.
</font></caption>
<tr><td>
<img src=gx/adler/STARSmall.jpg>
</table>
"Let's get Maddog." "How about Bob Young." "Yea, IBM just released
its data visualization software under an Open Source copyright
license. Let's get them." "SGI has a bunch of Open Source projects,
XFS etc." "Hey, Lincoln Stein wrote the CGI perl module. He works at Cold
Spring Harbor Lab, that's right here on Long Island. He'd be a great
speaker!" And so the meeting went. By the time lunch was over I asked
the question, "So will it be worth having an Open
Source conference?" The consensus was yes, its worth the time
and effort. I can't remember who, but someone said that working on a
conference takes up all your time. This was in reference to a
conference which was recently held at BNL where 300 people came for a
week to talk about small angle scattering experiments at the Light
Source. The head organizer spent <em>all</em> his time working on the
conference. We blew that fact off. "It's only a one day conference."
(That phrase would be uttered many times between then and Oct. 2nd.)
"How much time could it possibly take?!" It was going to be a bunch of guys
from BNL plus a couple of outside speakers. "What's the big deal!"
<br clear=right>
<p>
<table align=left vspace=10 hspace=10>
<caption align=bottom><font size=-1>
I couldn't resist this photo. The PHENIX central magent system is in
the background, with its logo painted on top, and Bruce Perens
<em>Penguin Power</em> t-shirt logo in the forground. Nice juxtaposition of
symbols.
</font></caption>
<tr><td>
<img src=gx/adler/PHENIXSmall.jpg>
</table>
This brainstorming session stirred my blood for some action. I
fired off an e-mail to Bob Young, Maddog, and Richard Stallman. I had
met each one of them from previous meetings I strayed to earlier this
year. The e-mail outlined the idea for the conference and asked for
feedback. "Is this a good idea or not?" Bob replied within several
hours. He thought it was a good idea. Maddog got back a couple of days
later. He also thought it was a good idea. I didn't hear back from
Richard for a couple of months. (Some e-mail glitch was at fault and
the outcome turns out to be a whole 'nother chapter.)
<p>
With that positive feedback from Bob and Maddog, I asked to meet with
Mike Murtagh, the chair of the physics department. "It's a software
conference." I told him. "We spend too much of our time on software
not to talk about it." I told him about IBM and SGI and their software
work and about how our software affects our science work and how
people may be interested in what we do, etc. Mike was warming up to the
idea and it wasn't until about 45 minutes into this discussion that I
spoke the words "Open Source" and "Free Software." When I did, Mike
uttered a long "Ooohhh, that's what this is all about" with his
signature Irish accent. He had visions of people dressed in tie-dyed
tee shirts, purple colored rim sun glasses, and flower sack dresses
forming a "Free Software" commune on site during the
conference. "That's not quite the idea Mike, but it's close..." Mike
told me that he noticed that I didn't say "Open Source" or "Free
Software" until well into the discussion. I did that on purpose.
<p>
Getting other Lab officials involved in the conference was something I
didn't like. "They're going to hijack the idea and run away with it
and take all the credit for it!" I told Mike. Mike was sensitive to
this problem, but left me no choice. Either the Lab management was to
get involved and give their stamp of approval or there was going to be
no conference. "You can always reserve a conference room and invite
your speakers, but if you want the Lab's logo (and resources and money)
to back your conference, you have no choice but to get one of the
departments to back you." Mike continued, "If it were a Physics
conference or workshop, I could see the physics department backing you
up, but for this one, you need to go to ITD." (ITD is the Information
Technology Division.) I don't know why I was so jealous of this
conference idea. Who on earth would want to take over this Open Source
conference? No one in the Lab management had ever heard of the term
"Open Source" and they had no interest in the matter. (As it turned
out, this was mostly true. There were several "directors" in the
directors office (we have lots of directors) who, in the end, did show
interest.) I guess what I was worried about was that my efforts in
trying to promote this as a computing conference as much as an Open
Source conference would get those with computing empires at the Lab to
take note and take the conference over. Hindsight has proven that this
was the least of my worries.
<br clear=left>
<p>
<table align=center hspace=10 vspace=10>
<caption align=bottom><font size=-1>
Berkner Hall, the building where the conference took place, at about
7am the morning of the conference. That was the last quiet moment I
had before my crisis management skills were tested.
</font></caption>
<tr><td>
<img src=gx/adler/BerknerSmall.jpg>
</table>
<p>
<table align=right hspace=10 vspace=10>
<caption align=bottom><font size=-1>
Nice photo of Maddog starting his talk.
</font></caption>
<tr><td>
<img src=gx/adler/MaddogSmall.jpg>
</table>
From that meeting, Mike told me how to proceed. Make sure I get
ITD management to back the conference. I had to
broach the idea to them which meant getting ITD involved. We also
needed to get someone from the Directors Office involved as well. My
tendency was to go straight to the top, but Mike warned me that the
first thing anyone in the directors office would do is consult with
Don Fleming, the new Lab CIO and chair of ITD.
<p>
While I was pushing the idea of this conference through my contacts,
Sean and Malcolm were pursuing the idea of the conference through
Biology. From that we got two key people on the organizing
committee. Donna Zadow and Ann Emrick. They are pros in this
conference stuff, which I would later find out. "Let us worry about
getting the speakers here, you worry about the content of the
conference." That was a phrase they kept telling me. (And they were right.)
<br clear=right>
<p>
<table align=left vspace=10 hspace=10>
<caption align=bottom><font size=-1>
A picture of the LUG tables. The Conneticut Free Unix Group's table is
in the forground and the Long Island LUG is in the back. Larry
Augustin is hanging with the LILUG guys trading Linux war
storries. CFUG is working on getting X to run on the FreeBSD
setup. Give these guys a power strip and an RJ45 jack into the
Internet and they're set to go.
</font></caption>
<tr><td>
<img src=gx/adler/LUGSSmall.jpg>
</table>
After several weeks of having meetings to meet with X, Y and Z,
meeting with X, Y and Z and then having more meetings to meet with U,
V and W, we finally got 3 of the working folk of ITD involved. Tom
Schlagel, Ed McFadden and Susan McKeon. Ed really pushed the
conference idea. He wanted to set up meetings with Don Fleming and Jim
Glim, the new head of the Center for Data Intensive Computing. We
needed to get their OK for this conference to proceed. And at about
this time, word started to leak to them of the conference as well as
to Peter Paul, the big cheese in the Directors office. As I said, we
have many directors. At the top is the Lab director, Dr. John
Marburger. He had no interest in any of this, which was leaked to me
by his secretary when she called about a month later, to inform me
that he turned down my personal invitation to attend the conference
and VIP dinner. Under him there is Peter Paul, who is the
scientific lab co-sub director. There is another guy who is also a
co-sub director who is in charge of the non-scientific aspect of lab
management. The guy to talk to was Peter Paul. If we got his OK, then
we knew the conference would happen. But we wanted to make sure he
heard it from us, the original organizers. Not the head of ITD or
anyone else. We had the idea first, and we want to make sure Peter
knew that. (Again, I don't know why I was so jealous of this fact, but
I was.) So, Malcolm, Sean, Tim and I decided on a pre-emtive
strike. Instead of letting Peter hear about the conference from Don
Fleming, or anyone in ITD, we were going to go to him first. The guys
from ITD said that having this meeting with Peter Paul without someone
from ITD would make it look disorganized and could potentially derail
the conference. We didn't care, "This is just a <em>pre</em>-meeting"
to tell Peter what was coming down the pipe. "It's just a heads up
thing."
<p>
<table align=right vspace=10 hspace=10>
<caption align=bottom><font size=-1>
The SGI table. Chris Porter is on the left and Ken Howard of Comnet,
a local SGI reseller, is on the right. They're showing off their L1400
server.
</font></caption>
<tr><td>
<img src=gx/adler/SGISmall.jpg>
</table>
So I called Peter Paul's secretary, set up a meeting and within a day
we were talking to him in his office. "We want to have the accelerator
facility, the Light Source and the lab scientific infrastructure as a
backdrop to this conference." "It's a great way to promote the
computing efforts of the Lab." "Look, people use this same software on
their PC's at home that we use to do our research. This commonality is
a great way to get them into the lab and show them around." And so we
pitch the idea. "Wait a minute!" he said, shuffling over to his
Xterminal, groping for his mouse. Click, click, click. "Hmmm, October
2nd? I won't be here." Pause.... "But I don't have to be here for the
conference do I..." Finally after about 30 minutes of pitching the idea
to him, (some small/short heads up meeting this was, it was a full
blown presentation,) he asked, "Well, what do you want from me?" It
suddenly dawned on me what he was really asking, was "How much
<em>money</em> do you want from me?" After a brief pause to think
about what he was really asking for, I said. "We need money." I didn't
say anything about how much we needed. He just offered to kick in $2K
to get the conference going. He's got his own directors stash which he
can do with as he pleases and that afternoon he gave us, what turned
out to be, the last $2K he had in his scientific co-directors
fund. Looking back on this, that was quite a feat on our part. Peter
just donated $2K to help promote the use of "Open Source" software at
BNL. More importantly, we got the official backing from the Lab Mike
Murtagh told me I should get. But there was still work to be
done. Peter said that we got his blessing and money but we still
needed to get ITD to fully back the conference. This meant we needed to
get back with the ITD contingent of our organizing committee and
schedule a meeting with Don Fleming.
<p>
<table align=left vspace=10 hspace=10>
<caption align=bottom><font size=-1>
The AndoverNet reps read my Slashdot paper and wouldn't let me leave
without getting a picture taken with me. I tried to explain
to them that my /. paper was a bit of joke, but that didn't phase
them. They still wanted a picture with "Dr. Adler". What could I do?
</font></caption>
<tr><td>
<img src=gx/adler/AndoverNetSmall.jpg>
</table>
In the meantime, I set out to try and get other departments to
contribute money to the conference. Our eventual plan was to hit up
the vendors for money by selling ad space on our conference web site
and floor space in the auditorium lobby. But for now, we needed some
"startup" funds. Physics and the Light Source kicked in $2K each
without much fuss. Mike knew that I would need money. I asked if I
could put money in from my own computing funds for the physics
department. He OK'ed that. I sent an e-mail to the head of the Light
Source and that was all it took to get $2K out of him. Chemistry never
responded and I was told that Biology had no money. (But we did get 4
people from Biology on the organizing committee, a much more valuable
contribution. And we did eventually get $2K from Biology, thanks to
Ann Emrick, about a month later which was a real help.) Mike Murtagh
told me that I could ask one of the physics secretaries to help with
the conference and I was able to recruit Bonnie Sherwood, another gold
nugget. The other missing component of this conference was a
budget. Ann Emrick worked up a MS Excel spread sheet with a bunch of
costs she could think of. "You need XXX for lunch, the conference
banners will be that much, the buses will cost this much." She had the
figures pretty much on the ball. The total cost of the conference, if
we did get 450 people to attend, would be $25K. The biggest single and
unpredictable cost was the food which was going to be $25 per
person. If we added a $25 entrance fee, the cost would be $15K. We got
$6K in the bag and needed $9K more to go.
<p>
<table align=center vspace=10 hspace=10>
<caption align=bottom><font size=-1>
A shot of the panel disussing how we can get DOE and BNL to GPL the software
they write, among other issues. From left to right are Maddog, Larry Augustin,
Oggy Shentov, Mike Johnson, Bruce Perens, and Fred Johnson.
</font></caption>
<tr><td>
<img src=gx/adler/panelSmall.jpg>
</table>
<p>
This set the stage for the crucial meeting with Don Fleming. We knew
the numbers, we had a rough idea of who we were going to invite, the
date of the conference and all we really needed now was someone to
sign the lab conference paper work. In order to have a conference at
the Lab, you are required to fill out a form, get a head of a
department to sign it and submit it to staff services who works within
the director's office. This will then get an account created where one
can deposit money and more importantly, spend it.
<p>
<table align=left vspace=10 hspace=10>
<caption align=bottom><font size=-1>
Mark Galassi on the left, Constantine Olchanki with is back to us and
Sean McCorkle on the right are blowing off some steam after the
conference finished. We are siting around waiting for rides to the
Bellport where we had our VIP dinner.
</font></caption>
<tr><td>
<img src=gx/adler/MusicSmall.jpg>
</table>
The meeting we had with Don Fleming was a small one. Tom Schlagel was
there, along with Ed McFadden, Sean McCorkle and myself. We pitched
the idea to Don. Don got into the Open Source bit. Microsoft vs the
"Free Software" community was a theme he picked up on. He saw this as a
way of promoting ITD and the new computing initiatives the Lab was
embarking on. After about 30 minutes or so he wanted to know "What do
you want from me." Again, that question popped up which really meant,
"How much money do you want from me." We pull out the spread sheet,
showed him the figures. "We have $6K from other departments, the
conference will cost $15K" I started. I then I told him we would try
and raise as much money from outside sources as possible, implying
that this would repay any money he gave us. "OK he said, I'll cover
the remainder." Meaning that he would give us up to $9K for the
conference and he would sign that form needed by Staff Services.
<p>
Bingo! That was it! We had our conference! There was no turning back
now!
<blockquote><tt> *commit* *commit* *commit* *awwuuuugah*
*commit* *commit* *commit*<br><br>
Its a shootin war now, boys.
</tt></blockquote>
Was one e-mail Sean McCorkle fired off to our internal organizers
e-mail list. Just after that meeting, I had to give a talk to the
PHENIX detector council. The head of the online controls group, the
group I worked in for the PHENIX experiment, touted this talk as some
kind of opportunity to get in front of the senior scientist of the
experiment and "get some exposure." I was on such a high going into
that talk, that they must of thought I had lost it. I was so giddy
during that presentation. There is always some kind of tension in the
PHENIX experiment coming from a competitive attitude within the
various subgroups. This manifests itself through criticism of ones work
as being insufficient, late, not working or whatever angle of attack
your colleague conjures up at the moment. The speaker before me was
one such notorious colleague who would be quick to "qualify" any
statements I said about my particular project for the PHENIX
detector. As it turned out, I wouldn't care less what <em>anyone</em>
in that room thought about what I was presenting. And I was talking
away, at a mile a minute, bouncing around the front of the room,
making jokes about the work, heading off "suggestions" from my
notorious colleague with out a pause, and all the time I had one
thought screaming in the back of my mind. I had just raised $15K to
put on an Open Source conference at the Lab. "PHENIX detector council,
eat your heart out!" Of course I never said that to them, but they
must have known something was going on.
<p>
<table align=right vspace=10 hspace=10>
<caption align=bottom><font size=-1>
Malcolm Capel setting up and testing the display projectors used for
the conference.
</font></caption>
<tr><td>
<img src=gx/adler/CapelSmall.jpg>
</table>
The next step was to try and raise money from the Linux business
community. I got a copy of the Linux Journal and made a list of every
company who advertised there. I then split up the companies into 3
groups of which I was in charge of calling up 1/3 of them. The other
2/3rd's were delegated out to two others in the organizing
committee. Sean McCorkle snagged someone from Microway. He asked me to
follow through with them. I spent a couple of days working down my
list. I learned a valuable lesson during this part of the fund raising
campaign. One of the hardest things to do is call someone up you don't
know and try and sell them on the idea of giving you money. It is a
humiliating experience with a capital H. I have gotten a gazillion
calls from vendors trying to sell me their products and I usually keep
their pitch short and send them on their way. Now it was my turn to be
on the other end of the phone. Most of the time I couldn't get through
to the person in charge of promotions. A lot of the times all I could
do was send e-mail to these people and never get a reply. But there was
the occasional time I did get through to somebody. The first one I
did get through was KAI. I managed to pitch the conference to someone
important there. A week later, I got an e-mail that they were
interested in the coffee break sponsorship. Another victory celebration
erupted immediately.
<p>
<table align=left vspace=10 hspace=10>
<caption align=bottom><font size=-1>
Bonnie Sherwood and Elaine Dimasi pictured the day before the
conference as they sorted out the badges for the registrants.
</font></caption>
<tr><td>
<img src=gx/adler/SherwoodDimasiSmall.jpg>
</table>
Through out all this, we kept brining up the idea of getting a "major
sponsor" for the conference. They would contribute the full amount
needed to organize the conference and this would free up our time to
organize it rather than wasting precious time on this fund raising
task. "Ask Red Hat, they got lots of money." Was one comment. "These
guys are flush in Venture Capital funds." Referring to the general
Open Source business community like VA Linux and others. So it was
left to me to try and contact Red Hat and VA Linux. I knew Jim Gleason
of VA Linux from the NYLUG so I contacted him. He gave me names,
numbers and e-mail address of those over in corporate HQ who could
make the decisions. I contacted (via e-mail) Bob Young and pitched
the idea. He warmed up to it. VA Linux after a couple of days told me
that they could only be a minor sponsor. "All our funds have been
committed for the year" I was told. Fair enough, we were pushing to
fund a conference about 3 months before it was to take place. (Its now
mid July.) Also, everyone in Linux land was getting ready for the
Linux World Expo in San Jose CA (early August) and I knew that OSOS
would have to take a back seat to that event until it was over.
<p>
Parallel to raising money for the conference, we started to worry
about promoting it. When we first started working on organizing it, I
thought that a couple of postings on Slash Dot, Linux Today, Linux
Weekly News, Freshmeat and some well chosen news groups would be all
that we needed. WRONG! The first thing we needed to do was get the
word out to those who worked at the lab. "Simple!" I thought. BNL has
a Public Affairs office (PA) who's sole purpose is to promote the
Laboratory. I would just use those resources.
<p>
<table align=right vspace=10 hspace=10>
<caption align=bottom><font size=-1>
Lars Ewell on the left, who's my office mate, and Martin Purschke, who
does online work for the PHENIX experiment are pretending to show off
a poster which is going to be presented at the conference. The poster
was made by Martin.
</caption>
<tr><td>
<img src=gx/adler/EwellPurshkenSmall.jpg>
</table>
"You can't use the term Open Source. Nobody know what it is." I was
told by PA, in response to our text for the BNL e-mail announcement I
wanted them to send out lab wide. "What do you mean I can't use the
term Open Source. It's an Open Source conference. It's in the Title!"
I argued. "Also, no one knows what source code is. You can't use that
term either" they continued. "We asked someone here what they thought
source code was and they said it must be some kind of government
specification for plumbing. Sorry, you can't use it" PA said. I
couldn't believe what I was up against. PA continued, "Also, we don't
e-mail lab wide announcement of conferences. No body is interested in
conferences, and that is not our job. We do have a special e-mail
list which people sign up to where we can post your announcement
too. It has about 800 people signed up" they boasted. I checked out who
was on the list and it was slim pick'ns as far as laboratory
scientists and engineers went. I had never heard of this announcement
e-mail list which PA was telling me about so how would the rest of the
lab know about it. And I have been at the lab for over 10 years!. So
be it, we did our best to reword the text for our e-mail announcement
to the Lab, replacing the terms Open Source and source code and let
them send out the e-mail to the their 800 list subscribers. This
generated about 30 hits on our web site of which about 5 were
interested in the conference. We had to do something. We used the lab
channels and came up empty handed. Furthermore, of all the people I
asked, no one had gotten our e-mail announcement. And I asked all my
colleagues who I worked with who I knew would be interested in it. This
left us with little recourse but to SPAM the Lab. We were left with no
choice. We were going to get the word out to the Lab via e-mail no
matter how high the obstacles PA and Lab management were going to
throw up in our path. So, after about 2 hours of perl scripting, I
was able to generate a list of over 5000 e-mail addresses of anyone
who in one way or other was involved with the Laboratory. After
setting the mailing in motion, (I had to send out the e-mails slowly
since there was the possibility of crashing the NT mail exchange server
of the Lab and if the OSOS SPAMing did so, we would be in <em>big</em>
trouble. It had happened once before with a situation not related to
our conference and thus our caution) we got a healthy hit rate on our
web site and everyone I talked to had received notice of the
event. Sorry Public Affairs, but we just had to do it. You left
us no choice in the matter.
<p>
<table align=left vspace=10 hspace=10>
<caption align=bottom><font size=-1>
The photo of Eliane Dimasi, Bruce Perens and Jon "maddog" Hall during
the pre-registration dinner.
</font></caption>
<tr><td>
<img src=gx/adler/RegDinnerSmall.jpg>
</table>
But that was just the beginning of our efforts to get the the word
out. We spent a healthy 2 weeks generating our own mailing list of
colleges and Universities through out the NE to which we would
snail-mail a flier announcing the conference. But we realized that we
needed to do more. We further realized that we didn't budget a penny
to advertise the conference. By this time, I was able to get KAI, SGI,
Portland Group and others to sponsor the conference. We had generated
about 5K in sponsorships at this point. So we decided to spend all
those funds on advertising. Also, this was just around the Linux World
conference. It turned out that Donnie Barns was talking with VA Linux
during Linux Expo, about a possible joint major sponsorship. A week
later I got e-mails from VA Linux and Red Hat that they were
interested. This sent chills down my spine. This was the mother load!
The organizing committee huddled and tried to figure out how we would
"package" a major sponsorship. It was rather easy. We would put
their names and logos on every bit of real estate we owned, on the web,
on every banner, conference bag and brochure we would print. Anywhere
and everywhere we could think of, Red Hat's and VA Linux's logo would
be there. They like it, and we got $25K. Thank God, because we spent
it <em>all</em> on advertising.
<p>
<table align=right vspace=10 hspace=10>
<caption align=bottom><font size=-1>
Bill Horn talking about openDX.
</font></caption>
<tr><td>
<img src=gx/adler/HornSmall.jpg>
</table>
The NY Times science section and Newsday took up the lion's share of
advertising funds. We also got 10 days of prime time space on WSHU,
the local public radio station broadcasting out of Connecticut. My
guess is that we got word out about the conference to well over
100,000 people. In the end over 200 people showed up, a 10^-3 effect
which is what I expected. The important thing was not so much that we
got over 200 people to attend the conference, but that hundreds of
thousands of people saw the Brookhaven Laboratory logo associated with
Open Source software along with Red Hat and VA Linux. In a country of
250 million people, hundreds of thousands are not large numbers, but
you have to start somewhere. And the long term effects of this "brand
name" association are yet to be known but I'm sure it will be
positive. (Dr. John Marburger, the director of the Laboratory, should
be very grateful of us for what we did here.)
<br clear=left>
<br clear=right>
<p>
<table align=left vspace=10 hspace=10>
<caption align=bottom><font size=-1>
"Where are those PC's!"<br>
Jim Gleason and Ari of VA Linux screwing around for a photo op in the
basement of the Physics building while we were looking for Xterminals.
</font></caption>
<tr><td>
<img src=gx/adler/JimAriSmall.jpg>
</table>
By the time the spots on NPR started airing and the ads in the NY
Times and Newsday started to appear, the registration rate started to
pick up. It peaked the weekend before the conference. All that was
left was to make sure we put on a good show for the attendees. (Ehmm,
I meant to say a good "conference".)
<p>
"What do you mean the VA Linux PC's are stuck in NYC?" I asked Jim
Gleason. Those were the PC's we were going to use for the Post/Demo
room. "Its a union thing" he replied. "The Fed Ex guy wasn't allowed to
cross the corridor to pickup the boxes. Only a union guy could do
that." Where are are we going to get replacements? "Sean, Ed,
Heeeelp!" (Sean McCorkle, Ed McFadden and I managed to scrounge up
enough Xterminals from around the Lab to cover the missing VA Linux
boxes.) "What to do you mean we have to have to conference photo in
the back of Berkner. I want it taken just out side the main entrance!"
I told Ann Emrick. "Sorry, the photographer said there was too much
sun light" she replied. Who ever heard of too much sun light!
<br clear=left>
<p>
<table align=right vspace=10 hspace=10>
<caption align=bottom><font size=-1>
The VIP Dinner. From left to right are Steve Adler (me), Larry
Augustin; CEO and co-founder of VA Linux, an attendee, Sean McCorkle,
Ari of VA Linux, Ed McFadden, Maddog and Bruce Perens. My stiff drink
is hidden behind that carafe.
</font></caption>
<tr><td>
<center>
<img src=gx/adler/VipDinnerSmall.jpg>
</center>
</table>
And so October 1st and 2nd went, one crisis situation after
another. The day flew by and before I knew it, what remained of the
speakers and who ever I could find hanging around after the
conference, were seated at <em>The Bellport</em>, for our "VIP"
dinner. It was all over at that point. I had a stiff drink which I
rarely do. "A whiskey on the rocks please, and make it a double."
Everyone seemed to have a good time there. I spent most of my time
reminiscing about DEC hardware with Maddog, Larry Augustin, and Bruce
Perens.
<p>
The following week I started to hear feedback on the conference. As
best as I can tell, it turned out to be a great success. The most
admirable compliment came from Tom Kirk, the associate director for
Nuclear and High Energy Physics. (He makes all the decisions
regarding future nuclear and high energy experiments at the Lab. In
other words, he's an important guy.) He told me that the conference,
when looked back several years from now, would be considered as a
key turning point on the topic of Open Source and science. I also got
word that a lot of good things were said about the conference through
out the directors office.
<p>
<table align=left>
<caption align=bottom>
<font size=-1>
There I am on the left with Sean McCorkle on the right. Cheers to the
Open Source/Free Software world from BNL!
</font>
</caption>
<tr><td>
<img src=gx/adler/SteveSeanSmall.jpg vspace=10 hspace=20>
</table>
So there I strolled along Bell Avenue, heading north towards the
bank. A bright breezy day. The surrounding trees vibrated in fall color.
Peace and quiet. "So what's next?" was a thought I was trying to avoid. I
was recovering from my 4 month marathon organizational project. I was
going to have to heal some open wounds I had left with my colleagues
over in PHENIX. They were threatening to take my name off the
authorship list of the PHENIX experiment for skipping out on all their
meetings and generally blowing them off. Finally, I was going to have
to think about the future. "Open Source/Open Science 2K. Hmmm that has
a nice ring to it."
<br clear=all>
<P>
<FONT SIZE=-1><EM>
I would like to thank Matthew Prete, Joe Louderback and Andrew Pimlott
for their corrections to the grammar and spelling of this
article. Thanks guys.
</EM></FONT>
<!-- *** BEGIN copyright *** -->
<P> <hr> <P>
<H5 ALIGN=center>
Copyright © 1999, Stephen Adler<BR>
Published in Issue 48 of <i>Linux Gazette</i>, December 1999</H5>
<!-- *** END copyright *** -->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">SAMBA, Win95, NT and HP Jetdirect</font></H1>
<H4>By <a href="mailto:blanchas@cadvision.com">Eugene Blanchard</a></H4>
</center>
<P> <HR> <P>
<!-- END header -->
<P> I am running a computer routing lab that is used to teach routing
fundamentals on proprietary equipment. It consists of an 18 seat lab with 9
PCs, 1 server and 1 HP LaserJet 4050N with a HP Jetdirect print server
card installed. The server is running Slackware 4.0 with Linux 2.2.6 on it.
Eight of the PCs are running WinNT 4.0 SP5 and one PC is running Win95a.
<p>My requirements for the Linux server are as follows:
<ul>
<li>run as a workgroup server not as a primary domain controller</li>
<li>run as master browser</li>
<li>share each user's home directory</li>
<li>share a common directory among users called public</li>
<li>share the server's CD ROM drive</li>
<li>share the HP LaserJet printer</li>
</ul>
There was a choice of using NFS and configure each client to connect to
the Linux server or to use SAMBA and only configure the server. During
the normal operation of the lab, the clients are regularly rebuilt, rebooted and
reconfigured. It was felt that by running SAMBA services, the Linux server
would be transparent to the clients and allow the simplest client install.
<p>
This article will describe how I used SAMBA to:
<ul>
<li>setup SAMBA to run on a Slackware Linux server</li>
<li>share drives</li>
<li>connect and logon from Win95</li>
<li>connect and logon from WinNT using encrypted passwords</li>
<li>how to connect Linux to HP Jetdirect print server</li>
<li>how to share a Linux printer using SAMBA</li>
</ul>
<p><i>NOTE: This is not a "howto" type of article but an example of a working configuration
and the process used to configure SAMBA</i><p>
<hr WIDTH="100%">
<h2>
Installing SAMBA</h2>
The installation process will vary depending on which distribution of Linux
you are running. Under Slackware, select SAMBA during the installation
process or if you are adding SAMBA to an existing system, use the pkgtool
program.
<p>
Change to the Slackware CD, cd to /slakware/N11. Type pkgtool
and "Install packages from current directory". For all other distributions,
this article will assume that you have SAMBA properly installed on your
system.
<p>
SAMBA is started under Slackware by the rc script "/etc/rc.d/rc.samba":
<p>
<pre>
#
# rc.samba: Start the samba server
#
if [ -x /usr/sbin/smbd -a -x /usr/sbin/nmbd ]; then
echo "Starting Samba..."
/usr/sbin/smbd -D
/usr/sbin/nmbd -D
fi
</pre><p>
The smbd program provides SMB/CIFS services to clients. SMB (Server Message
Block) is the services that Win95 and NT clients use to connect over networks.
The new name for SMB is the Common Internet File System (CIFS).
<p>
The nmbd program is a NETBIOS name server to allow NETBIOS over
IP naming services to clients.
<p>
Typing "ps -aux" at the command prompt allows us to view the processes
that are running and to see if smbd and nmbd are actually present:
<p>
<pre>
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 220 128 ? S Oct21 0:02 init
root 2 0.0 0.0 0 0 ? SW Oct21 0:00 [kflushd]
root 3 0.0 0.0 0 0 ? SW Oct21 0:00 [kpiod]
root 4 0.0 0.0 0 0 ? SW Oct21 0:00 [kswapd]
<SNIP>
root 101 0.0 0.5 1544 380 ? S Oct21 0:00 /usr/sbin/smbd -D
root 103 0.0 0.9 1196 584 ? S Oct21 0:03 /usr/sbin/nmbd -D
<SNIP>
root 8113 0.4 0.9 1164 616 ttyp0 S 11:14 0:00 -bash
root 8120 0.0 1.1 2272 744 ttyp0 R 11:14 0:00 ps -aux
</pre>
<hr>
<h2>
SAMBA Configuration File</h2>
The configuration file for SAMBA is /etc/smb.conf and there are many
examples configurations available in /usr/doc/samba-2.0.3/examples. <p>
The /etc/smb.conf can be divided into
3 general sections:
<ul>
<li>Global</li>
<li>Shares</li>
<li>Printers</li>
</ul>
The <b>Global</b> section deals with global parameters such as workgroup
name, netbios name, IP interface used. For example:
<p>
<pre>
# Global parameters
workgroup = E328 # workgroup name
netbios name = E328-00 # Linux server's netbios name
server string = %h - Linux Samba server # comment shown in Win's Network Neighborhood detail view
interfaces = 192.168.1.3/24 # NICs + subnet mask (24 = 255.255.255.0)
encrypt passwords = Yes # Required for NT (Win95 will work with encrypted or not)
null passwords = No # Must have a password
log file = /var/log/samba. # location of samba log files (many!)
max log size = 50 # maximum size of each log file
socket options = TCP_NODELAY # Speeds up convergence of netbios
os level = 33 # Gives a higher browse master "priority"
preferred master = Yes # This server is the browsemaster
guest account = pcguest # guest account name
hosts allow = 192.168.1. 127. # networks allowed to access this server using SMB
</pre>
The <b>Shares</b> section deals with sharing file directories. For example:
<p>
<pre>[homes]
comment = Home Directories # comment shown in Win's Network Neighborhood detail view
path = %H # automatically display user's home directory as SMB share
valid users = %S # Only user is allowed to access this directory
read only = No # can read/write
create mask = 0750 # permissions given when creating new files
browseable = No # only show user's home directory not "homes" folder
[public]
comment = Public Files # comment shown in Win's Network Neighborhood detail view
path = /home/ftp/pub # path to public directory
guest ok = Yes # anyone can access this directory
[cdrom]
comment = Cdrom on E328-00 # comment shown in Win's Network Neighborhood detail view
path = /cdrom # path to cdrom drive
guest ok = Yes # anyone can access cdrom drive, public share
</pre><p>
The <b>Printers</b> section deals with sharing printers. For example:
<p>
<pre>[lp]
comment = E328-Laser # comment shown in Win's Network Neighborhood detail view
path = /var/spool/samba # path to spool directory
print ok = Yes # allowed to open, write to and submit to spool directory
</pre><p>
You can manually create the /etc/smb.conf file if you know what each of
the entries mean or you can use the web GUI called <b>SWAT</b> (SAMBA Web
Administration Tool). An added bonus of using SWAT was the online help
files that described each of the choices available. I understand that SWAT
is installed automatically with all versions of SAMBA from 2.0 and up.
<p>
<hr>
<h2>
Running SWAT</h2>
The following instructions are taken directly from the /usr/doc/samba-2.0.3/swat/README
file:
<p>
<pre>Running via inetd
-----------------
You then need to edit your /etc/inetd.conf and /etc/services to enable
SWAT to be launched via inetd.
In /etc/services you need to add a line like this:
swat 901/tcp
the choice of port number isn't really important except that it should
be less than 1024 and not currently used (using a number above 1024
presents an obscure security hole depending on the implementation
details of your inetd daemon).
In /etc/inetd.conf you should add a line like this:
swat stream tcp nowait.400 root /usr/local/samba/bin/swat swat
One you have edited /etc/services and /etc/inetd.conf you need to send
a HUP signal to inetd. On many systems "killall -1 inetd" will do this
on others you will need to use "kill -1 PID" where PID is the process
ID of the inetd daemon.
Launching
---------
To launch SWAT just run your favourite web browser and point it at
http://localhost:901
Note that you can attach to SWAT from any IP connected machine but
connecting from a remote machine leaves your connection open to
password sniffing as passwords will be sent in the clear over the
wire.
You should be prompted for a username/password when you connect. You
will need to provide the username "root" and the correct root
password.
</pre><p>
Once SWAT is up and running, you should see the following:
<p>
<img SRC="gx/blanchard/samba.gif">
<p>
The menu buttons are pretty self-explanatory and there are excellent help screens available.
A quick break down of the menus:<p>
<ul>
<li>Home: Takes you to the main page
<li>Globals: Allows you to configure the global parameters
<li>Shares: Allows you to configure directory shares
<li>Printers: Allows you to configure printers based on the /etc/printcap file
<li>Status: Allows you to start and stop the smbd and nmbd server and show the status.
<li>View: Views the /etc/smb.conf file
<li>Password: Allows you to change the server password and account.
</ul><p>
Whenever changes are made to the configuration in the Global, Shares and Printer section,
the changes must be <b>committed</b> using the commit button/icon on the respective page.
Otherwise the /etc/smb.conf file is not modified.<p>
Once the changes are committed (/etc/smb.conf modified), the smbd and nmbd server should be
restarted. The Status menu has options that allow the servers to be stopped and restarted.<p>
<img SRC="gx/blanchard/start.gif"><p>
I found that a good way of understanding the process that was going on was to view the
/etc/smb.conf file as I made changes using the View button in SWAT.<p>
<hr>
<p>
<h2>Usernames</h2><p>
It is very important that the usernames and passwords are the same for both the Windows and
Linux environments. The synchronization of the Linux passwords with the SMB encrypted passwords
is done using the shell script mksmbpasswd.sh which is found in the /usr/lib/samba/private.<p>
<i>Note: For Slackware, the directory for SAMBA is /usr/lib not the standard /usr/local directory.</i><p>
The following information is taken from the /usr/doc/samba-2.0.3/docs/textdocs/ENCRYPTION.txt file:<p>
<pre>
The smbpasswd file.
-------------------
In order for Samba to participate in the above protocol it must
be able to look up the 16 byte hashed values given a user name.
Unfortunately, as the UNIX password value is also a one way hash
function (ie. it is impossible to retrieve the cleartext of the users
password given the UNIX hash of it) then a separate password file
containing this 16 byte value must be kept. To minimise problems with
these two password files, getting out of sync, the UNIX /etc/passwd and
the smbpasswd file, a utility, mksmbpasswd.sh, is provided to generate
a smbpasswd file from a UNIX /etc/passwd file.
To generate the smbpasswd file from your /etc/passwd file use the
following command :-
cat /etc/passwd | mksmbpasswd.sh >/usr/local/samba/private/smbpasswd
</pre><p>
The problem that I found with this step was that I expected that it would automatically
recognize shadowed passwords and place them in the smbpasswd file. Unfortunately, it didn't
and I had to manually enter in the passwords using the smbpasswd command. Luckly, I had only
only about 10 passwords to enter in. There is probably a method of doing this automatically
and I am just not aware of it.<p>
Once completed, I was able to use Network Neighborhood and point and click on the Linux directory
shares without being prompted for a username and password.<p>
<hr>
<h2>Configuring the HP JetDirect Card using Linux</h2><p>
Getting Linux and the HP JetDirect card to work was surprisingly easy. The JetDirect card is a print server
card that fits into the HP 4050N printer. The first step is to configure the HP JetDirect card and printer.
The standard install disk does not contain support for Linux but there is a WebAdmin tool that you can download
from HP's website: <A HREF="http://www.hp.com/support/net_printing">http://www.hp.com/support/net_printing</a>.
I chose to do it manually by using telnet and the built-in webserver of the JetDirect card.<p>
<b>Telneting to the JetDirect Card</b><p>
In order to telnet to the JetDirect card, you need to configure the printer's IP address. The default IP address
is 192.0.0.192 which most likely will not be a valid address on your network. The HP 4050N printer allows you to
to configure the IP address through the printer's status window. Select "JetDirect Menu" from the Menu button and
then follow the directions for configuring the network. After the IP address is set, configure the subnet mask in
a similar manner. <p>
Telnet to your printer's IP address. You have two choices when telnetting in, you can view the current settings
of the printer by typing "/" or viewing the help menu using "?" as shown by the following:<p>
<pre>
Please type "?" for HELP, or "/" for current settings
>/
===JetDirect Telnet Configuration===
Firmware Rev. : G.07.20
MAC Address : 00:10:83:1b:41:c7
Config By : USER SPECIFIED
IP Address : 192.168.1.10
Subnet Mask : 255.255.255.0
Default Gateway : 192.168.1.1
Syslog Server : Not Specified
Idle Timeout : 120 Seconds
Set Cmnty Name : notachance
Host Name : E328-LASER
DHCP Config : Disabled
Passwd : Enabled
IPX/SPX : Disabled
DLC/LLC : Enabled
Ethertalk : Disabled
Banner page : Disabled
>?
To Change/Configure Parameters Enter:
Parameter-name: value <Carriage Return>
Parameter-name Type of value
ip: IP-address in dotted notation
subnet-mask: address in dotted notation
default-gw: address in dotted notation
syslog-svr: address in dotted notation
idle-timeout: seconds in integers
set-cmnty-name: alpha-numeric string (32 chars max)
host-name: alpha-numeric string (upper case only, 32 chars max)
dhcp-config: 0 to disable, 1 to enable
ipx/spx: 0 to disable, 1 to enable
dlc/llc: 0 to disable, 1 to enable
ethertalk: 0 to disable, 1 to enable
banner: 0 to disable, 1 to enable
Type passwd to change the password.
Type "?" for HELP, "/" for current settings or "quit" to save-and-exit.
Or type "exit" to exit without saving configuration parameter entries
</pre><p>
The first thing that you should do is type "passwd" and add an administrator password to the printer.
Next configure the default gateway and then the host name. The rest will be configured
using the printer's built-in webserver.<p>
<b>HP JetDirect Webtool</b><p>
<IMG SRC="gx/blanchard/hpweb.gif"><p>
The HP JetDirect webtool has 6 menu tabs available:<p>
<ul>
<li>Status Tab<p>
Displays current status of printer including network stats<p>
<li>Identity<p>
Displays current software/hardware revisions, host name, IP address, etc..<p>
<li>Configuration<p>
Allows configuration of TCP/IP (default protocol), IPX/SPX, DLC/LLC, Ethertalk and SNMP.<p>
<li>Security<p>
Allows changing of the administrator password and SNMP community name.<p>
<li>Diagnostics<p>
Displays statistics and information on TCP/IP, IPX/SPX, DLC/LLC, Ethertalk, printer and Jetdirect.<p>
<li>Support<p>
Takes you to the HP support website.
</ul><p>
<hr><p>
<h2>Printing from Linux to JetDirect</H2><p>
In order to print from Linux to the JetDirect print server, an entry was made in the /etc/printcap file.
I made a new spool directory called /usr/spool/lj4050n but the default /usr/spool/lpd should really be used.
The directory /usr/spool is a softlink to /var/spool.<p>
The following is a listing of the /etc/printcap file that was used to communicate with the HP JetDirect print
server:<p>
<pre>
# HP Laserjet 4050n
lp|lj4050n:\
:lp=/dev/null:sh:\
:mx#0:\
:sd=/usr/spool/lj4050n:\
:rm=e328-laser.domainname.com:rp=text:
</pre><p>
Where:<p>
<ul>
<li>lp|lj4050n:\<p>
indicates the default default printer "lp" with an alias/description of "lj4050n". If there was a space
in the alias, it would automatically be detected as a description.<p>
<li>:lp=/dev/null:sh:\<p>
indicates that the printer is not connected to a physical port<p>
<li>:mx#0:\<p>
indicates that there is no maximum file size to send to the printer<p>
<li>:sd=/usr/spool/lj4050n:\<p>
indicates the path to the spool directory<p>
<li>:rm=e328-laser.domainname.com:rp=text:<p>
indicates the domain name of the printer to send print jobs to and what format to send it in. The choices were
text or raw for HP printers. I found that the printer was intelligent enough that it automatically detected whether it
was a text file, postscript file or PCL file.
</ul><p>
<hr><p>
<h2>Configuring Windows for Linux Shared Printer</h2><p>
>From Network Neighborhood, double-click on the Linux server's shared printer icon. Windows will ask you to configure the
printer. I shared the printer's configuration CD on the Linux box and went to the disk1 folder to find the INF file.
The printer configuration/installation will stop and display a message something to the tune that it "can't find disk2"
just go up a directory to find the disk2 folder. It will finish the installation
and you are done. I usually run a Print Testpage to ensure that it works properly.<p>
The normal installation procedure is to run the setup utility from the CD. This installs megabytes of data on to the
client which was not what I wanted. I only wanted the print driver and found that the above method gave me a quick,
clean and simple printer configuration.<p>
<hr><p>
<h2>Summary</h2>
It was surprisingly easy to configure SAMBA and have it meet the lab's objectives. When I first ran SAMBA, it took less than 10
minutes to communicate with Win95. This was amazing as I had no prior experience with it. <p>
In configuring the lab environment, I ran into a few problems, some annoying and some took a bit of work to sort but all were solved.<p>
An example of one of the annoying problems was having the [homes] folder show up as a share on a client. It was identical
to the client's home directory. Selecting "Browseable = No" in the Global section of /etc/smb.conf solved that.<p>
The most frustrating problem was finding out the the smbpasswd file did not automatically convert passwords from shadow files.
I kept getting asked for a username and password whenever I tried to connect to a network share. All the documentation indicated that
I was doing everything correct. Manually entering each username's password using the smbpasswd program solved this.
I am sure that there is an automatic process for this, as this would
not be acceptable if there more than my 10 generic user accounts.<p>
All in all, I was able to configure the network quicker and easier than if I used an NT server and the Linux server is
totally transparent to the user. Here's an interesting point: this article has taken longer to write than it did to configure
the network.<p>
</body>
</html>
<!-- *** BEGIN copyright *** -->
<P> <hr> <P>
<H5 ALIGN=center>
Copyright © 1999, Eugene Blanchard<BR>
Published in Issue 48 of <i>Linux Gazette</i>, December 1999</H5>
<!-- *** END copyright *** -->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">LinuxThreads Programming</font></H1>
<H4>By <a href="mailto:matt@martine2.difi.unipi.it">Matteo Dell'Omodarme</a></H4>
</center>
<P> <HR> <P>
<!-- END header -->
<h2 align=center>Some theory...</h2>
<b>Introduction</b><p>
LinuxThreads
is a Linux library for multi-threaded programming. LinuxThreads
provides kernel-level
threads: threads are created with the <em>clone()</em> system call and
all scheduling is done in the kernel. It
implements the Posix 1003.1c
API (Application Programming Interface) for threads and runs on any
Linux system with kernel 2.0.0
or more recent, and a suitable C library.
<p>
<b>What are threads?</b>
<p>
A thread is a sequential flow of control through a
program. Thus multi-threaded programming is a
form of parallel programming where several threads of control are
executing concurrently in the program.
<p>
Multi-threaded programming differs from Unix-style multi-processing in
that all threads share the
same memory space (and a few other system resources, such as file
descriptors), instead of running in
their own memory space as is the case with Unix processes.
So a context switch between two threads in a single process is
considerably cheaper than a context
switch between two processes
<p>
There are two main reasons to use threads:
<OL>
<LI> Some programs reach their best performance only expressed as
several threads that communicate together (i.e. servers), rather than
a single flow of instructions.<P>
<LI> On a multiprocessor system, they can run in parallel on
several processors, allowing a single program to divide its work
between different processor. Such programs run faster than a single-thread
program which can exploits only a CPU at a time.<P>
</OL>
<b>Atomicity and volatility</b>
<p>
Accessing the memory shared from threads require some care, because
your parallel program can't access shared memory
objects as they were in ordinary local memory.<p>
<em>Atomicity</em> refers to the concept that an operation on an object is
accomplished as an indivisible, uninterruptible, sequence.
Operations on data in shared memory can occur not atomically,
and, in addition of that, GCC compiler will often performs some
optimizations, buffering values of shared variables in registers,
avoiding the memory operations needed to ensure that all processors
can see the changes on shared data. <p>
To prevent GCC's optimizer from buffering values of shared memory
objects in registers, all objects in shared memory should be declared
as having types with the <em>volatile</em> attribute, since
volatile objects reads and writes that require just one word access will
occur atomically.<p>
<b>Locks</b>
<p>
The load and store of the result are
separate memory transactions: ++<em>i</em> doesn't always work to
add one to a variable <em>i</em>
in shared memory because other processors could access <em>i</em>
between these two transactions. So, having two processes
both perform ++<em>i</em> might only increment <em>i</em> by one,
rather than by two.
<p>
So you need a system call that prevents a thread to work
on a variable while another one is changing its value. This
mechanism is implemented by the lock scheme, explained just below.<br>
Suppose that you have two threads running a routine which change the
value of a shared variable.
To obtain the correct result the routine must:
<ul>
<li> assert a lock on variable <em>i</em>
<li> modify the value of the locked variable
<li> remove the lock
</ul>
When a lock is asserted on a variable only the thread which locked the
variable can change its value. Even more the flux of the other thread
is blocked on the lock assertion, since only one lock at a time is
allowed for a variable. Only when the first thread remove the lock the
second one can restart asserting its own lock.<p>
Consequently using shared variables may delay memory activity from other
processors, whereas ordinary references may use local cache.
<h2 align=center>... and some practice</h2>
<p>
<b>The header pthread.h</b>
<p>
The facilities provided by LinuxThreads are available trough the
header /usr/include/pthread.h which declare the prototypes of the
thread routines.<p>
Writing a multi-thread program is basically a 2 step process:
<ul>
<li> use the pthread routines to assert locks on shared variables and
generate the threads.
<li> create a structure for all the parameters you must pass to the
thread subroutine
</ul>
Let's analyze the two steps starting from a brief description of
some basic pthread.h routines.<p>
<b>Initialize locks</b>
<p>
One of the first actions you must accomplish is initialize all the locks.
POSIX locks are declared as variables of type <em>pthread_mutex_t</em>;
to initialize each lock you will need, call the routine:
<pre>
int pthread_mutex_init(pthread_mutex_t *mutex,
const pthread_mutexattr_t *mutexattr);
</pre>
as in the costruction:
<pre>
#include <pthread.h>
...
pthread_mutex_t lock;
pthread_mutex_init(&lock,NULL);
...
</pre>
The function
<em>pthread_mutex_init</em> initializes the mutex object pointed to
by mutex according to the mutex attributes specified in
mutexattr. If mutexattr is NULL, default attributes are
used instead.<p>
In the continuation is shown how to use this initialized locks.<p>
<b>Spawning threads</b>
<p>
POSIX requires the user to declare a variable of type
<em>pthread_t</em> to identify each thread. <br>
A thread is generated by the call to:
<pre>
int pthread_create(pthread_t *thread, pthread_attr_t *attr,
void *(*start_routine)(void *), void *arg);
</pre>
On success, the identifier of the newly created thread is
stored in the location pointed by the thread argument, and
a 0 is returned. On error, a non-zero error code is
returned.<p>
To create a thread running the routine <em>f()</em> and pass to <em>f()</em>
a pointer to the variable <em>arg</em> use:
<pre>
#include <pthread.h>
...
pthread_t thread;
pthread_create(&thread, NULL, f, &arg).
...
</pre>
The routine <em>f()</em> must have the prototype:
<pre>
void *f(void *arg);
</pre>
<b>Clean termination</b>
<p>
As the last step you need to wait for the termination of all the
threads spawned before accessing the result of the routine
<em>f()</em>. The call to:
<pre>
int pthread_join(pthread_t th, void **thread_return);
</pre>
suspends the execution of the calling thread
until the thread identified by th terminates.<br>
If thread_return is not NULL, the return value of th is
stored in the location pointed to by thread_return. <p>
<b>Passing data to a thread routine</b>
<p>
There are two ways to pass informations from a caller routine to a
thread routine:
<ul>
<li> Global variables
<li> Structures
</ul>
The second one is the best choice in order to preserve the modularity
of the code.<br>
The structure must contain three levels of information; first of all
informations about the shared variables and locks, second
informations about all data needed by the routine; third an
identification index distinguishing among threads and the number of
CPU the program can exploit (making easy to provide this information
at run time).<p>
Let's inspect the first level of that structure; the information passed
must be shared among every threads, so you must use pointers to the
needed variables and locks. To pass a shared variable <em>var</em> of
the type <em>double</em>, and its lock, the structure must
contain two members:
<pre>
double volatile *var;
pthread_mutex_t *var_lock;
</pre>
Note the use of the volatile attribute, specifying that not pointer
itself but <em>var</em> is volatile.<p>
<b>Example of parallel code</b>
<p>
An example of program which can be easily parallelized using threads is the
computation of the scalar product of two vectors. <br>
The code is shown below with comments inserted.
<pre>
/* use gcc <progname> -D_REENTRANT -lpthread to compile */
#include<stdio.h>
#include<pthread.h>
/* definition of a suitable structure */
typedef struct
{
double volatile *p_s; /* the shared value of scalar product */
pthread_mutex_t *p_s_lock; /* the lock for variable s */
int n; /* the number of the thread */
int nproc; /* the number of processors to exploit */
double *x; /* data for first vector */
double *y; /* data for second vector */
int l; /* length of vectors */
} DATA;
void *SMP_scalprod(void *arg)
{
register double localsum;
long i;
DATA D = *(DATA *)arg;
localsum = 0.0;
/* Each thread start calculating the scalar product from i = D.n
with D.n = 1, 2, ... , D.nproc.
Since there are exactly D.nproc threads the increment on i is just
D.nproc */
for(i=D.n;i<D.l;i+=D.nproc)
localsum += D.x[i]*D.y[i];
/* the thread assert the lock on s ... */
pthread_mutex_lock(D.p_s_lock);
/* ... change the value of s ... */
*(D.p_s) += localsum;
/* ... and remove the lock */
pthread_mutex_unlock(D.p_s_lock);
return NULL;
}
#define L 9 /* dimension of vectors */
int main(int argc, char **argv)
{
pthread_t *thread;
void *retval;
int cpu, i;
DATA *A;
volatile double s=0; /* the shared variable */
pthread_mutex_t s_lock;
double x[L], y[L];
if(argc != 2)
{
printf("usage: %s <number of CPU>\n", argv[0]);
exit(1);
}
cpu = atoi(argv[1]);
thread = (pthread_t *) calloc(cpu, sizeof(pthread_t));
A = (DATA *)calloc(cpu, sizeof(DATA));
for(i=0;i<L;i++)
x[i] = y[i] = i;
/* initialize the lock variable */
pthread_mutex_init(&s_lock, NULL);
for(i=0;i&lt;cpu;i++)
{
/* initialize the structure */
A[i].n = i; /* the number of the thread */
A[i].x = x;
A[i].y = y;
A[i].l = L;
A[i].nproc = cpu; /* the number of CPU */
A[i].p_s = &s;
A[i].p_s_lock = &s_lock;
if(pthread_create(&thread[i], NULL, SMP_scalprod, &A[i] ))
{
fprintf(stderr, "%s: cannot make thread\n", argv[0]);
exit(1);
}
}
for(i=0;i<cpu;i++)
{
if(pthread_join(thread[i], &retval))
{
fprintf(stderr, "%s: cannot join thread\n", argv[0]);
exit(1);
}
}
printf("s = %f\n", s);
exit(0);
}
</pre>
<!-- *** BEGIN copyright *** -->
<P> <hr> <P>
<H5 ALIGN=center>
Copyright © 1999, Matteo Dell'Omodarme<BR>
Published in Issue 48 of <i>Linux Gazette</i>, December 1999</H5>
<!-- *** END copyright *** -->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">A Brief History of the 'ls' command</font></H1>
<H4>By <a href="mailto:enf@pobox.com">Eric Fischer</a></H4>
</center>
<P> <HR> <P>
<!-- END header -->
The <tt>ls</tt> command, which lists files,
is one of the most essential
utilities for Unix and Linux users and, not surprisingly, one of the
oldest. In its earliest form it was called <tt>listf</tt>
and was available
on the Massachusetts Institute of Technology's Compatible Time Sharing
System (CTSS) by July, 1961. By 1963, there were a few options that could be
used to vary what <tt>listf</tt> would list:
<p>
<table>
<tr>
<td><tt>listf</tt></td>
<td>list files, newest first</td>
</tr>
<tr>
<td><tt>listf rev</tt></td>
<td>list files, oldest first</td>
</tr>
<tr>
<td><tt>listf</tt> <i>file</i> <i>extension</i></td>
<td>give information about the named file</td>
</tr>
<tr>
<td><tt>listf</tt> <i>month</i> <i>day</i> <i>year</i></td>
<td>list files older than the given date</td>
</tr>
</table>
<p>
In 1965, listf was extended to recognize ``<tt>*</tt>'' as a way to list all
files that matched a specific pattern, with further improvements to
the pattern matching in an updated version dated January 3, 1966.
The 1966 version also generalized the syntax and added lots of
options, including:
<p>
<table>
<tr>
<td><tt>listf (file)</tt></td>
<td>list only files, not links</td>
</tr>
<tr>
<td><tt>listf (auth)</tt> <i>user</i></td>
<td>list files created by the given user</td>
</tr>
<tr>
<td><tt>listf (made)</tt> <i>mmddyy</i> [<i>mmddyy</i>]</td>
<td>list files created between the given dates</td>
</tr>
<tr>
<td><tt>listf (srec)</tt></td>
<td>list by size</td>
</tr>
<tr>
<td><tt>listf (smad)</tt></td>
<td>list by date of last modification</td>
</tr>
<tr>
<td><tt>listf (rev)</tt></td>
<td>list in reverse order</td>
</tr>
<tr>
<td><tt>listf (long)</tt></td>
<td>list in long format</td>
</tr>
</table>
<p>
When CTSS was superseded by Multics, the <tt>listf</tt> command
was renamed to <tt>list</tt>, which could optionally be
abbreviated to <tt>ls</tt>. The early version of
<tt>ls</tt> had fewer options than late versions of
<tt>listf</tt> had, but still included, along with a few others:
<p>
<table>
<tr>
<td><tt>list -all</tt></td>
<td>(<tt>ls -a</tt>)</td>
<td>list everything</td>
</tr>
<tr>
<td><tt>list -date_time_modified</tt></td>
<td>(<tt>ls -dtm</tt>)</td>
<td>list by date of last modification</td>
</tr>
<tr>
<td><tt>list -reverse</tt></td>
<td>(<tt>ls -rv</tt>)</td>
<td>list in reverse order</td>
</tr>
</table>
<p>
When Bell Labs dropped out of Multics development in 1969 and work began on
Unix, only the abbreviated name of <tt>list</tt>, <tt>ls</tt>, was
retained. The First Edition (November 3, 1971) Unix manual documented
the following options for <tt>ls</tt>, all of which are still available today:
<p>
<table>
<tr>
<td><tt>ls -l </tt></td>
<td>list in long format</td>
</tr>
<tr>
<td><tt>ls -t</tt></td>
<td>sort by time modified</td>
</tr>
<tr>
<td><tt>ls -a</tt></td>
<td>list everything, including names starting with `<tt>.</tt>'</td>
</tr>
<tr>
<td><tt>ls -s</tt></td>
<td>include the size of files in the listing</td>
</tr>
<tr>
<td><tt>ls -d</tt></td>
<td>list directories' names, not their contents</td>
</tr>
</table>
<p>
By the Fifth Edition (manual page dated March 20, 1974) the list of
options for <tt>ls</tt> had expanded to include:
<p>
<table>
<tr>
<td><tt>ls -r </tt></td>
<td>list in reverse order</td>
</tr>
<tr>
<td><tt>ls -u</tt></td>
<td>use access time, not modification time</td>
</tr>
<tr>
<td><tt>ls -i</tt></td>
<td>list i-number for each file</td>
</tr>
<tr>
<td><tt>ls -f</tt></td>
<td>don't sort the listing at all</td>
</tr>
</table>
<p>
The Sixth Edition (May, 1975) added one more:
<p>
<table>
<tr>
<td><tt>ls -g </tt></td>
<td>list group IDs in the long format listing</td>
</tr>
</table>
<p>
In May and August, 1977, Bill Joy made some modifications of his own to
<tt>ls</tt> at the University of California, Berkeley, which he
subsequently distributed as part of the First Berkeley Software
Distribution, 1BSD. The most dramatic difference with this version of
<tt>ls</tt> was that it listed files in multiple columns rather than
only listing one name per line. The options to control this new format
were:
<p>
<table>
<tr>
<td><tt>ls -1 </tt></td>
<td>list one name per line (no columns)</td>
</tr>
<tr>
<td><tt>ls -c</tt></td>
<td>list in columns</td>
</tr>
<tr>
<td><tt>ls -x</tt></td>
<td>list in columns, but sort across, not down</td>
</tr>
<tr>
<td><tt>ls -q</tt></td>
<td>show control characters as `<tt>?</tt>'</td>
</tr>
<tr>
<td><tt>ls -m</tt></td>
<td>everything on one line, separated by commas</td>
</tr>
</table>
<p>
There was some controversy over whether it was appropriate to
include code to print in columns as an integral part of <tt>ls</tt>
or whether
instead the formatting into columns should be done by a separate program
into which the output of <tt>ls</tt> (or any other program) could be piped.
<p>
At the beginning of 1979, Bell Labs released Seventh Edition Unix. Its
version of <tt>ls</tt> did not incorporate the controversial changes,
and had one new option
that conflicted with a letter that Joy had also used:
<p>
<table>
<tr>
<td><tt>ls -c </tt></td>
<td>use inode change time, not modification time</td>
</tr>
</table>
<p>
A new Berkeley version of <tt>ls</tt>, dated August 26, 1980 and released with
4.0BSD, resolved the conflict by capitalizing the option to list in
columns: <tt>ls -C</tt>. It also added to what the manual was
by this time calling ``an unbelievable number of options:''
<p>
<table>
<tr>
<td><tt>ls -F </tt></td>
<td>mark directories with `<tt>/</tt>', programs with `<tt>*</tt>'</td>
</tr>
<tr>
<td><tt>ls -R</tt></td>
<td>recursively list subdirectories</td>
</tr>
<tr>
<td><tt>ls -b</tt></td>
<td>show control characters as their ASCII codes</td>
</tr>
</table>
<p>
Another revision in 4.2BSD (July 28, 1983) removed the <tt>-m</tt>,
<tt>-b</tt>, and <tt>-x</tt>
options -- but not before System V Release 2 had added all three of these
to its own repertoire of options.
They temporarily stayed alive there, but
none of the three survived POSIX standardization
so the 4.2BSD version of <tt>ls</tt> is essentially <tt>ls</tt>
as we know it today.
<!-- *** BEGIN copyright *** -->
<P> <hr> <P>
<H5 ALIGN=center>
Copyright © 1999, Eric Fischer<BR>
Published in Issue 48 of <i>Linux Gazette</i>, December 1999</H5>
<!-- *** END copyright *** -->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Advanced Programming in Expect: A Bulletproof Interface</font></H1>
<H4>By <a href="mailto:dlf@cotse.com">David Fisher</a></H4>
</center> <P> <HR> <P>
<!-- END header -->
<P><EM>Links to the scripts in this article are included in the Linux Gazette.
Off-site links to Expect manual pages are indicated by a "(*)" after the
link.</EM>
<h2>
<b><font face="Arial"><font size=+0>Introduction:</font></font></b></h2>
This article assumes the reader has a thorough understanding of the basics
of the Expect scripting language and is looking for advanced solutions.
For more on Expect, see:
<dir><a href="http://www.cotse.com/dlf/man/expect/index.html">http://www.cotse.com/dlf/man/expect/index.html</a> (*)</dir>
In the design of automated systems using the Expect programming language,
one of the more difficult hurdles many programmers encounter is ensuring
communication with ill-behaved connections and remote terminals. The <a href="misc/fisher/send_expect.txt">send_expect</a>
procedure detailed in this article provides a means of ensuring communication
with remote systems and handles editing and rebroadcast of the command
line. Where a programmer would usually send a command line and then expect
the echo from the remote system, this procedure replaces those lines of
code and provides the most reliable interface I have come across. Features
of this interface include:
<ul>
<li>
Guarantees transmission via remote system echo</li>
<li>
Tolerates remote terminal control codes and garbage characters in the echo</li>
<li>
Persistence of attempts and hierarchy of methods before declaring a failure</li>
<li>
Interactively edits and retransmits command lines that cannot be verified</li>
<li>
Maintains its own moving-window diagnostics files, so they are small and
directly associated with the errors</li>
</ul>
Communication with local processes (i.e. those running on the same workstation
as the expect process) is typically not problematic and does not require
the solutions detailed in this article. External processes, however, can
create a number of problems that may or may not affect communication, but
will affect an automated system's ability to determine the success of the
communication. In cases where it is corrupted, it is not always immediately
obvious: a corrupted command may trigger an error message, but data which
has been corrupted may still be considered valid and the error would not
show up immediately, and may cause a variety of problems. This is why it
is necessary to ensure that the entire string that is transmitted is properly
received echoed by the remote system.
<p>
The basic idea of this interface is to send the command string except
for its terminating character (usually, a carriage return) and look at
the echo from the remote system. If the two can be matched using the regular
expressions in the expect clauses, then the terminating character is sent
and transmission is considered successful. If success cannot be determined,
the command line is cleared instead of being sent, and alternative transmission
modes are used.
<p>
In many cases, nothing more than expecting the exact echo of the string
is sufficient. If you're reading this article, though, I suspect that you've
encountered some of the problems I have when programming in Expect, and
you're looking for the solution here. If you're just reading out of interest,
the problems arise when automating a session on a machine off in a lab,
or on the other side of the world. Strange characters pop up over the connection,
and the terminal you're connected to does weird things with its echo, but
everything is working. It becomes very difficult to determine if what was
sent was properly received when you have noise on the connection, terminal
control codes inserted in the echo, and even server timeouts between the
automation program and the remote session. This interface survives all
of that, and if it can't successfully transmit the string, it means that
the connection to the remote system has been lost.
<p>
The code provided in this article is executable, but needs to be incorporated
into any system in which it is to be used. Ordinarily, system-dependent
commands need to be added based on the needs of the target system. Also,
this code uses simple calls to the
<a href="http://www.cotse.com/dlf/man/TclCmd/puts.htm">puts</a> (*)
command to output status messages - these should be changed to use whatever
logging mechanism is used by the rest of the system. A final caveat, and
I can't emphasize this enough: always wear eye protection.
<h2>
<hr WIDTH="100%"><b><font face="Arial"><font size=+0>Setting Up The Interface:</font></font></b></h2>
The procedures provided in this article are:
<ul>
<li>
<a href="misc/fisher/send_expect_init.txt">send_expect_init</a></li>
<li>
<a href="misc/fisher/send_only.txt">send_only</a></li>
<li>
<a href="misc/fisher/send_expect.txt">send_expect</a></li>
<li>
<a href="misc/fisher/send_expect_report.txt">send_expect_report</a></li>
</ul>
The interface is initialized with the send_expect_init procedure, which
sets up all the globals required by the other procedures. See the section
on controlling the behavior of the interface for an explanation of the
parameters. The send_expect_init procedure is run once, at the beginning
of execution (before the interface is to be used). It may be run a second
time to restore settings, if necessary.
<p>
The send_only procedure is a wrapper for the
<a href="http://www.cotse.com/dlf/man/expect/exp_send.htm">exp_send</a> (*)
command, and is used by send_expect to transmit strings. The only time
this procedure is called directly is for strings that are not echoed, such
as passwords, and multi-byte character constants, such as the telnet break
character (control-]).
<p>
The send_expect procedure is the actual interface between the automated
system and its remote processes, and is detailed in the next section.
<p>Finally, the send_expect_report procedure is used at the end of execution
to output the statistics of the interface for debugging. This procedure
may also be run during execution, if incremental reports are needed.
<h2>
<b><font face="Arial"><font size=+0>Using The send_expect Procedure</font></font></b></h2>
Once the interface has been initialized using send_expect_init, and a process
has been spawned, it is ready to be used with the syntax:
<blockquote>send_expect id command;</blockquote>
where
<blockquote>id = the spawn id of the session on which to send the command
<br>command = the entire command string including the terminating carriage-return,
if any.</blockquote>
This syntax, and the implementation of the expression-action lists, support
multiple-session applications.
<p>
Many people who follow the documented examples tend to write the same
kind of error-prone code, because they follow the example as if it's the
best example, instead of just a simple example. Examples are kept uncluttered
by the little details that make the difference between bulletproof code
and code that will eventually fail. The examples provided in this article
are simple examples but with more attention to detail, and where warranted
a complete implementation is provided as an example. The send_expect procedure
usually replaces only two lines of code in an existing system.
<p>
The full syntax for properly using the interface is actually:
<blockquote>if { [send_expect $id $command] != 0} {
<br> ## handle your error here
<br>}</blockquote>
<p><br>
<hr WIDTH="100%"><b><font face="Arial">How It Works:</font></b>
<p>The interface uses four different transmission modes, in order:
<ul>
<li>
send the entire string and hope for the best (fastest, but least reliable)</li>
<li>
send the entire string using the <a href="http://www.cotse.com/dlf/man/expect/send_slow.htm">send_slow</a> (*)
list</li>
<li>
send the string in blocks of eight characters</li>
<li>
send the string one character at a time (slowest, but most reliable)</li>
</ul>
If a mode fails, the command line is cleared by sending the standard control-U,
the expect buffer is cleared, and the next mode is tried. Each mode except
the last one can also have a failure tolerance set, using:
<dir>sendGlobals(ModeXFailMax), where X is either 1,2 or 3.</dir>
If this max value is set to a positive number, once the failures for that
mode exceeds this value, it is no longer used. If it is set to 0, then
each mode is tried for each transmission, regardless of the number of failures.
Each of the modes uses the send_only procedure as a wrapper for exp_send.
If this procedure returns an error, it most likely means that the connection
was lost, and the spawn id is checked to see if the session is still active.
The error is returned to send_expect, which in turn returns an error to
the calling procedure.
<p>
For local processes and robust remote connections, mode 1 is usually
sufficient. If the remote system is a bit slow, mode 2 may be required.
Mode 3 has proven invaluable when connected to routers and clusters which
provide rudimentary terminal control. Mode 4 is rarely required, but acts
as a backup to mode 3.
<h2>
<hr WIDTH="100%"><b><font face="Arial"><font size=+0>Moving Window Diagnostics</font></font></b></h2>
Expect provides a means of controlling the output of its internal diagnostics
and expression-matching attempts using the command "<a href="http://www.cotse.com/dlf/man/expect/exp_internal.htm">exp_internal</a>" (*).
The send_expect interface makes use of this command to create a diagnostics
output file for each transmission attempt - for each attempt, a new diagnostics
log file is created using exp_internal -f. If transmission is successful,
the file is deleted. If it fails, the file is renamed using the syntax
<blockquote>send.n.i.command.diags</blockquote>
where
<dir>n = the number of the failure
<br>i = the spawn id of the channel that had the failure
<br>command = the first word of the command string that failed to get sent
properly.</dir>
If you've ever read a 30 Megabyte log file with all of the diagnostics
from the beginning to the end of execution, you'll understand why this
is necessary. The diagnostics files created using this method are usually
less that 2 Kilobytes, and since they are directly associated with failures
(because the window file is deleted for successful transmissions), debugging
is far more efficient.
<p>
The moving window diagnostics file is the fastest and smallest way to
implement full diagnostics output during the execution of a send command.
If the transmission succeeds, this file is deleted. If there is a failure,
this file is closed and renamed, and on the next invocation of the send
command a new file is created. This results in very small files (comparatively)
with all of the diagnostics from expect and the user-defined messages,
from the very beginning of the attempt to send the command.
<p>
Ideally, if there are no failures during execution, there should be
no more than one send diagnostics file in existence at any time, named
send.diagnostics. If there are diagnostics files, each is associated with
a particular failure and should be used in debugging that failure.
<h2>
<hr WIDTH="100%"><b><font face="Arial"><font size=+0>
Controlling The Behavior Of The Interface:</font></font></b></h2>
The sendGlobals array contains all of the parameters used by the interface,
and may be modified at runtime to control how the interface works. This
section will cover the meanings of these parameters and how they may be
modified. See
<a href="misc/fisher/send_expect_init.txt">send_expect_init</a>
for the initial values of these parameter.
<p>
The failure limit elements (Mode1FailMax, Mode2FailMax, and Mode3FailMax)
determine how many failures are permitted for modes 1, 2 and 3 (respectively).
A value of zero disables this limitation, and any positive integer sets
the maximum number of failures for that mode before it is no longer used
by the interface. There is no failure limit for the last mode.
<p>
The element useMode allows the system to determine which transmission
mode should be used first, so that the less reliable modes (the first and
second) can be bypassed. Allowable values for this parameter are 1, 2,
3, or 4. Invalid values will be replaced by the default mode (1).
<p>
If transmission errors are not considered fatal, the sendErrorSeverity
element may be specified to a more tolerant value. Note that this parameter
is not used internally, so if the automated system does not access this
value, it won't affect the interface.
<p>
The kill element defines the command line kill character, which is defaulted
to the Gnu-standard control-U.
<p>
The diagFile parameter names the temporary internal diagnostics file
(generated from exp_internal).
<p>
The logDiags allows disabling of all diagnostics output for faster execution,
but be forewarned that disabling this feature well make debugging much
more difficult.
<p>
The sleepTime parameter, when set to a positive integer, causes the
interface to sleep for the designated amount of time before starting transmission.
This is useful if the automated system appears to be going faster than
the remote system can handle - the consistent loss of characters in the
transmission phase usually indicates a speed and synchronization problem,
and this parameter is provided as an allowance for such cases.
<p>
The interval and delay elements represent the two items in the send_slow
list, which is used by the second and third modes.
<p>
For experimentation purposes, it is recommended that these parameters
be modified by the automated system at runtime, rather than directly editing
the defaults in the initialization procedure. Once valid settings are found
the defaults may be changed to reflect them.
<h2>
<hr WIDTH="100%"><b><font face="Arial"><font size=+0>Failures:</font></font></b></h2>
When the send_expect procedure returns a failure, it indicates an unreliable
connection to the remote system, and manual verification will confirm this.
Such a failure is fatal to the reliability of any automated system, and
must be corrected before the system can run properly.
<p>
If the procedure itself appears to be malfunctioning, the diagnostics
files that were created during the failure should help in debugging. This
interface has yet to fail with a reliable connection.
<br>
<br>
<!-- *** BEGIN copyright *** -->
<P> <hr> <P>
<H5 ALIGN=center>
Copyright © 1999, David Fisher<BR>
Published in Issue 48 of <i>Linux Gazette</i>, December 1999</H5>
<!-- *** END copyright *** -->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Linux, Java and XML</font></H1>
<H4>By <a href="mailto:eoinlane@esatclear.ie">Eoin Lane</a></H4>
</center>
<P> <HR> <P>
<!-- END header -->
<p align="justify"><b>Abstract:</b><i>This article is a basic introduction to the new web markup
language XML and the transformation language XSL. Here I show
how the Apache web server can be configured using the servlet engine
JServ, to do client side XML/XSL transformation using Apache's Cocoon servlet.</i></p><p align="justify">Future updates for this article will be located at <A HREF="http://www.inconn.ie/article/cocoon.htm.">http://www.inconn.ie/article/cocoon.htm</A> <BR>(The domain name is currently non-functional but is expected soon.)</p><h2 align="left">Introduction</h2><p align="justify"><i>The eXtensible Markup Language</i> (XML) is a powerful new web markup language (ISO approval in February 1999). It is a powerful way of separating web content and
style. A lot has been written about XML, but to be used effectively in web design the technologies behind it must be understood. To this end I have added my own two pence worth to the already
vast amount of literature out there on the subject. This article is not
a place to learn XML, nor is it a place where the capabilities of XML are
explored to their fullest, but is is a place where the technologies behind XML can be
put in practice immediately.</p><p align="justify">Before I go any further, I should recommend the two sites where
definitive information on XML can be obtained. The first is the <i>World
Wide Web Consortium (W3C) site </i><A HREF="http://www.w3.org/">http://www.w3.org/</A>. The W3C are responsible for the XML specification. The second site is the
XML <i>frequency asked
questions</i> site (<A HREF="http://www.ucc.ie/xml/">http://www.ucc.ie/xml/</A>)
which will answer any other questions. I also recommend the XML
pages hosted by IBM,
<A HREF="http://www.ibm.com/xml/">http://www.ibm.com/xml/</A>,
where you will find a wide range of excellent tutorials and articles on XML.</p><p align="justify">The original web language, SGML (around since 1986) is the mother of all mark-up
languages. SGML can be used to document any
conceivable system; from complex aeronautical design to ancient Chinese
dialects. However, it
suffers from being over complex and unwieldy for routine web
applications. HTML is basically a very cut down version
of SGML, originally designed with the scientific publishing community
in mind. It is a
simple mark-up language (it has been said "anyone with a pulse
can learn it") and with the explosion of the web it is clear that the people with pulses have spoken. Since its foundation the web has
grown in complexity and it has long outgrown its lowly beginning in the
scientific community.</p><p align="justify">Today web pages need to be dynamic, interactive,
back-ended with databases, secure and eye catching to compete in an ever
more crowded cyberspace. Enter XML, a new mark-up language to deal
with the complexities of modern web design. XML is only 20 percent as
complex as SGML and can handle 80 percent of SGML situations (believe me
when you are talking about coding ancient Chinese dialects, 80 percent
is plenty). In the following section I will will briefly compare two markup examples, one in HTML and the second is XML, demonstrating the benefits of an XML approach. In the final section I will show you
how to set up an Apache web server to serve an XML document so
that you may begin immediately to start using XML in your web design.</p><h2 align="left">HTML</h2><p align="justify"> The following example is a very simple HTML document that everyone will be familiar with:
<p> <font color="#3333FF"><html></font>
<br> <font color="#3366FF"><head></font>
<br> <font color="#3333FF"><title></font><font color="#33CC00">This
is my article</font><font color="#3333FF"></title></font>
<br> <font color="#3333FF"></head></font>
<br> <font color="#3333FF"><body></font>
<br> <font color="#3333FF"><h1
align="center"></font><font color="#33CC00">This is my article</font><font color="#3333FF"></h1></font>
<br> <font color="#3333FF"><h3
align="center"></font><font color="#33CC00">by</font> <font color="#3333FF"><a
href="mailto</font>:<font color="#33CC00">eoinlane@esatclear.ie</font><font color="#3333FF">"></font><font color="#33CC00">EoinLane</font><font color="#3333FF"></a></h3></font>
<br> ...
<br> <font color="#3333FF"></body></font>
<br><font color="#3333FF"> </html></font>
<br>
Two important points can be made about this document.
<ul><li> The content and style are tied together in the document.</li><li> It would be very difficulty for a search program to search
this document and extract the mail address of Eoin lane.</li></ul>
XML addresses these two issues.
</p><h2 align="left">XML</h2><p align="justify">The XML equivalent is as follows:
<p> <font color="#3333FF"><?xml
version="1.0"?></font>
<br><font color="#3333FF"> <page></font>
<br><font color="#3333FF">
<title></font><font color="#33CC00">This is my article</font><font color="#3333FF"></title></font>
<br><font color="#3333FF">
<author></font>
<br><font color="#3333FF">
<name></font><font color="#33CC00">Eoin Lane</font><font color="#3333FF"></name></font>
<br><font color="#3333FF">
<mail></font><font color="#33CC00">eoinlane@esatclear.ie</font><font color="#3333FF"></mail></font>
<br><font color="#3333FF">
</author></font>
<br><font color="#3333FF">
...</font>
<br><font color="#3333FF"> </page></font>
</p><p align="justify">The first thing to note is that this document, along with all
other valid XML
documents, is <i>well formed</i>. To be a <i>well formed</i>
document every tag must have an open and close brace. A program
searching for the mail address then has only to locate the text in between
the opening and closing tags of <i>mail</i>.
</p><p align="justify">The second and crucial point is that this XML document contains just data. There is nothing in this document
that dictates how to display the author's name or his mail address. In practice it is easier to
think about web design in terms of data and presentation separately. In
the design of medium to large web sites, where all the pages have the
same look and only the data is changing form page to page, this is
clearly a better solution. Also it allows a division of labour where, style and content can be
handled by two different departments, working independently. It also allows the possibility of having one set of data with a number of ways of presenting
it.</p><p align="justify">
An XML document can be presented using two different methods. One is using a Cascading Style Sheet (CSS) (see <A HREF="http://www.w3.org/style/css/">http://www.w3.org/style/css/</A>) to markup up the text in
HTML. The second is using a transformation language called XSL, which
converts the XML document into HTML, XML, pdf, ps, or
Latex. As to which one to use, the W3C (the people responsible for these specification) has this to say:<p align="center"><b>Use CSS when
you can, use XSL when you must.</b></p> They go on to say:
<p align="justify"><i>The reason is that CSS is much easier to use, easier to
learn, thus easier to maintain and cheaper. There are WYSIWYG editors
for CSS and in general there are more tools for CSS than for XSL. But
CSS's simplicity means it has its limitations. Some things you cannot
do with CSS, or with CSS alone. Then you need XSL, or at least the
transformation part of XSL.</i></p><p align="justify"><i>So what are the things you cannot do with
CSS? In general everything that needs transformations. For example, if
you have a list and want it displayed in lexicographical order, or if
words have to be replaced by other words, or if empty elements have to
be replaced by text. CSS can do some text generation, but only for generating small things, such as numbers of section headers.</i></p></p><h2 align="left">XSL</h2><p align="justify"> XSL <A HREF="http://www.w3.org/style/xsl/">(eXtensible Stylesheet
Language)</A> is
the language used to transform and display XML documents. It is not yet finished so
beware! It is a complex document formating
language that is itself an XML document. It can be further subdivided
in two parts: transformation (XSLT) and formatting objects (sometimes
referred to as FO, XSL:FO or simply XSL). For the sake of simplicity I
will only deal with XSLT here.</p><h3 align="left">XSL Transformations (XSLT)</h3><p align="justify">As of the 16th of November 1999 the World Wide Web Consortium
has announced the publication of XSLT as a W3C Recommendation. This
basically means that XSLT is stable and will not change in the
future. The above XML document can be transformed into a HTML document and
subsequently displayed on any browser using the following XSLT file.
<p><font color="#3333FF"><?xml version="1.0"?></font>
<br><font color="#3333FF"><xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0"></font><font color="#3333FF"></font>
<p><font color="#3333FF"> <xsl:template match="page"></font>
<br><font color="#3333FF"> <html></font>
<br><font color="#3333FF"> <head></font>
<br><font color="#3333FF"> <title></font>
<br><font color="#3333FF"> <xsl:value-of
select="title"/></font>
<br><font color="#3333FF"> </title></font>
<br><font color="#3333FF"> </head></font>
<br><font color="#3333FF"> <body bgcolor="#ffffff"></font>
<br><font color="#3333FF"> <xsl:apply-templates/></font>
<br><font color="#3333FF"> </body></font>
<br><font color="#3333FF"> </html></font>
<br><font color="#3333FF"> </xsl:template></font><font color="#3333FF"></font>
<p><font color="#3333FF"> <xsl:template match="title"></font>
<br><font color="#3333FF"> <h1 align="center"></font>
<br><font color="#3333FF"> <xsl:apply-templates/></font>
<br><font color="#3333FF"> </h1></font>
<br><font color="#3333FF"> </xsl:template></font><font color="#3333FF"></font>
<p><font color="#3333FF"> <xsl:template match="author"></font>
<br><font color="#3333FF"> <h3 align="center"></font>
<br><font color="#3333FF"> by <xsl:apply-templates/></font>
<br><font color="#3333FF"> </h3></font>
<br><font color="#3333FF"> </xsl:template></font><font color="#3333FF"></font>
<p><font color="#3333FF"> <xsl:template match="mail"></font>
<br><font color="#3333FF"> <h2 align="left"></font>
<br><font color="#3333FF"> <xsl:apply-templates/></font>
<br><font color="#3333FF"> </h2></font>
<br><font color="#3333FF"> </xsl:template></font><font color="#3333FF"></font>
<p><font color="#3333FF"></xsl:stylesheet></font><font color="#3333FF"></font>
</p><p align="justify">To learn more about XSLT, I recommend the XSLINFO site
(<A HREF="http://www.xslinfo.com/">http://www.xslinfo.com/</A>
as a good starting point. Also I found the <A HREF="http://metalab.unc.edu/xml/books/bible/updates/14.html">revised Chapter 14 from the
XML
Bible</A>
to be very good. This revision is based on the specifications that
eventually became the recommendation.</p><p align="justify">With the arrival of the next generation of browsers,
<i>i.e.</i> Netscape 5 (currently under construction <A HREF="http://www.mozilla.org">http://www.mozilla.org/</A>)
this transformation with be done client side. When an XML
file is requested the
corresponding XSL file will be sent along with it, and the transformation will be done by
the browser. Currently there are a lot of browsers only capable of
displaying HTML, and until then the transformation must be done server
side. This can be accomplished by using Java
servlets (Java server side programs).</p><p align="justify">The Cocoon servlet is such a
servlet, written by some very clever people at Apache (<A HREF="http://www.apache.org/">http://www.apache.org/</A>). It basically takes
an XML document and transforms it using a XSL document. An example of
such a transformation would be to convert the XML document into HTML
so that the browser can display it. So if your web
server is configured to run servlets, and you include the cocoon
servlet, then you can start designing your web pages using XML. The rest of this article will show exactly how to do this.</p><h2 align="left">How do I do it?</h2><p align="justify">I have tested the following instructions on a fresh installation of Red Hat 6.0, so I know it works.</p><h3 align="left">Apache Web Server</h3><p align="justify">First set up the Apache web server. On Red Hat this comes
pre installed but I want you to blow it away using: <font color="red" face="serif" size="3"><p>rpm
-e --nodeps apache</p></font> and do not worry about the error
messages. Next get a hold of the most recent Apache (<A HREF="http://www.apache.org/">http://www.apache.org/</A>) (currently verison 1.3.9) and copy it somewhere handy. I put mine in
<font color="black" face="serif" size="4">/usr/local/src</font>. Tar and unzip the file using:
<font color="red" face="serif" size="3"><p>tar zxvf apache_1.3.9.tar.gz</p></font> This will
expand the installation into the directory
<font color="black" face="serif" size="4">/usr/local/src/apache_1.3.9</font>. Change into this directory
and configure, build and install the application using the
following:<font color="red" face="serif" size="3"><p>./configure --prefix=/usr/local/apache
--mandir=/usr/local/man --enable-shared=max</p></font><font color="red" face="serif" size="3"><p>make</p></font><font color="red" face="serif" size="3"><p>make install</p></font>
This will install apache into the directory
<font color="black" face="serif" size="4">/usr/local/apache</font> and the important file to note here is
<font color="black" face="serif" size="4">http.conf</font> which can be found in the directory
<font color="black" face="serif" size="4">/usr/local/apache/conf</font>. This file contains most of the
important information necessary to run apache correctly. It contains
information on: where to serve the web documentsfrom, virtual web
servers and folder aliases. We will be returning to this file shortly so become familiar with it's general
layout. At this stage I had to reboot Linux and then start Apache using the following
instruction <font color="red" face="serif" size="3"><p>/usr/local/apache/bin/apachectl start</p></font>
To test it, point your web browser to <A HREF="http://localhost/">http://localhost/</A> and
you're in business, hopefully!
For good web design and planning I would refer you to an article that
I found invaluable in setting up my own web site: <A HREF="http://www.linuxgazette.com/issue43/gibbs/Web_Design.html">Better Web Site
Design under
Linux</A></p><h3 align="left">Java and JSDK</h3><p align="justify">As of October, IBM have released the Java Development Kit 1.1.8 for
Linux. It claims to be faster than the corresponding Blackdown's
(<A HREF="http://www.blackdown.org/">http://www.blackdown.org/</A>)
and Sun's
JDKs. Download IBM JDK (see
<A HREF="http://www.ibm.com/java/">http://www.ibm.com/java/</A>).
Again tar and unzip this into the
<font color="black" face="serif" size="4">/usr/local/src/jdk118</font> directory. Next, download the
<A HREF="http://java.sun.com/products/servlet/">JavaSoft's JSDK2.0</A>, the solaris version (not JSDK2.1 or any other flavours you might be
tempted to get) and tar and unzip it - again I put it in
<font color="black" face="serif" size="4">/usr/local/src/JSDK2.0</font>. Add the following or equivalent
to <font color="black" face="serif" size="4">/etc/profile</font> to make them available to your system.
<p><font color="blue" face="serif" size="3"><i>JAVA_HOME="/usr/local/src/jdk118"<br></i></font><font color="blue" face="serif" size="3"><i>JSDK_HOME="/usr/local/src/JSDK2.0"<br></i></font><font color="blue" face="serif" size="3"><i>CLASSPATH="$JAVA_HOME/lib/classes.zip:$JSDK_HOME/lib/jsdk.jar"<br></i></font><font color="blue" face="serif" size="3"><i>PATH="$JAVA_HOME/bin:$JSDK_HOME/bin:$PATH"<br></i></font><font color="blue" face="serif" size="3"><i>export PATH CLASSPATH JAVA_HOME JSDK_HOME<br></i></font></p>
To test them
run: <font color="red" face="serif" size="3"><p>java -version</p></font> at the command prompt, and you should get back the
following message <p align="left"><font color="brown" face="serif" size="3"><i>java version "1.1.8"<br></i></font></p> and to test the servlet development kit run:
<font color="red" face="serif" size="3"><p>servletrunner</p></font> and if all goes well you
should get back the following: <p align="left"><font color="brown" face="serif" size="3"><i>servletrunner starting with settings:<br></i></font><font color="brown" face="serif" size="3"><i>port = 8080<br></i></font><font color="brown" face="serif" size="3"><i>backlog = 50<br></i></font><font color="brown" face="serif" size="3"><i>max handlers = 100<br></i></font><font color="brown" face="serif" size="3"><i>timeout = 5000<br></i></font><font color="brown" face="serif" size="3"><i>servlet dir = ./examples<br></i></font><font color="brown" face="serif" size="3"><i>document dir = ./examples<br></i></font><font color="brown" face="serif" size="3"><i>servlet propfile = ./examples/servlet.properties<br></i></font></p>
We are now ready to install Apache's servlet engine, ApacheJServ.</p><h3 align="left">ApacheJServ</h3><p align="justify">Again, download the latest ApacheJServ (version 1.0 at this time,
although version 1.1 is in it's final beta stage) from Apache's Java Site
(<A HREF="http://java.apache.org/">http://java.apache.org/</A>)
and expand it into <font color="black" face="serif" size="4">/usr/local/src/ApacheJServ-1.0/</font>. Configure, make and
install it using the following instructions: <font color="red" face="serif" size="3"><p>./configure
--with-apache-install=/usr/local/apache --with-jsdk=/usr/local/src/JSDK2.0</p></font><font color="red" face="serif" size="3"><p>make</p></font><font color="red" face="serif" size="3"><p>make install</p></font>
When this has successfully completed add the following line to the end
of the <font color="black" face="serif" size="4">http.conf</font> file that I refereed to earlier during the Apache web
server installation: <p><font color="blue" face="serif" size="3"><i>Include /usr/local/src/ApacheJServ-1.0/example/jserv.conf<br></i></font></p>and restart the web server using:
<font color="red" face="serif" size="3"><p>/usr/local/apache/bin/apachectl restart</p></font> Now
comes the moment of truth, point your web browser to
<A HREF="http://localhost/example/Hello">http://localhost/example/Hello</A>
and if you get back the following two lines:<p align="left"><font color="brown" face="serif" size="3"><i>Example Apache JServ Servlet<br></i></font><font color="brown" face="serif" size="3"><i>Congratulations, Apache JServ is working!<br></i></font></p>
then you are almost home.</p><h3 align="left">Cocoon</h3><p align="justify">Finally, download the latest version of Cocoon (version 1.5 at this time) from Apache's Java Site
(<A HREF="http://java.apache.org/">http://java.apache.org/</A>).
Cocoon is distributed as a Java jar file and can be extracted using the command
<i>jar</i>. First, create the directory
<font color="black" face="serif" size="4">/usr/local/src/cocoon</font> and then expand the cocoon jar file
into it:
<font color="red" face="serif" size="3"><p>mkdir /usr/local/src/cocoon</p></font><font color="red" face="serif" size="3"><p>jar -xvf Cocoon_1.5.jar</p></font>
Now comes the tricky part of
configuring the JServ engine to recognise a file with a
<font color="black" face="serif" size="4">.xml</font> extension and to use the cocoon servlet process and
serve them.
</p><p align="justify">Locate the file <font color="black" face="serif" size="4">jserv.properties</font> which you will find in the
directory <font color="black" face="serif" size="4">/usr/local/src/ApacheJServ-1.0/example/</font> and at
the end of the section that begins:<p><font color="blue" face="serif" size="3"><i># CLASSPATH environment
value passed to the JVM<br></i></font></p> add the following:<p><font color="blue" face="serif" size="3"><i>wrapper.classpath=/usr/local/src/cocoon/bin/xxx.jar<br></i></font></p>
In the case of Cocoon 1.5 this means adding the following three lines:<p><font color="blue" face="serif" size="3"><i>wrapper.classpath=/usr/local/src/cocoon/bin/fop.0110.jar<br></i></font><font color="blue" face="serif" size="3"><i>wrapper.classpath=/usr/local/src/cocoon/bin/openxml.106-fix.jar<br></i></font><font color="blue" face="serif" size="3"><i>wrapper.classpath=/usr/local/src/cocoon/bin/xslp.19991017-fix.jar<br></i></font></p>
Although these files will change with different versions. The next file to locate is the <font color="black" face="serif" size="4">example.properties</font> file,
again found in the <font color="black" face="serif" size="4">/usr/local/src/ApacheJServ-1.0/example/</font>
directory and add the following line:
<p><font color="blue" face="serif" size="3"><i>repositories=/usr/local/src/cocoon/bin/Cocoon.jar<br></i></font></p>
In my <font color="black" face="serif" size="4">example.properties</font> file it meant changing the line:
<p><font color="blue" face="serif" size="3"><i>repositories=/usr/local/src/ApacheJServ-1.0/example<br></i></font></p>
to the following:
<p><font color="blue" face="serif" size="3"><i>repositories=/usr/local/src/ApacheJServ-1.0/example,/usr/local/src/cocoon/bin/Cocoon.jar<br></i></font></p>
Also add the following line to the end of the
<font color="black" face="serif" size="4">example.properties</font> file:
<p><font color="blue" face="serif" size="3"><i>servlet.org.apache.cocoon.Cocoon.initArgs=properties=/usr/local/src/cocoon/bin/cocoon.properties<br></i></font></p></p><p align="justify">The JServ engine is now properly configured and all that is left
for us to do it to tell Apache to direct any call to an XML file (or
any other file you want Cocoon to process) to the Cocoon servlet. For
this we need the JServ configuration file,
<font color="black" face="serif" size="4">jserv.conf</font> mentioned earlier (again in the same directory). Include the following line: <p><font color="blue" face="serif" size="3"><i>ApJServAction .xml
/example/org.apache.cocoon.Cocoon<br></i></font></p></p><p align="justify">In order to
access the cocoon documentation and examples add the following lines to
the <i>alias</i> section of
your <font color="black" face="serif" size="4">http.conf</font> file:
<p><font color="#3333FF"><font size=+0>Alias /xml/ "/usr/local/src/cocoon/"</font></font><font color="#3333FF"><font size=+0></font></font>
<p><font color="#3333FF"><font size=+0><Directory "/usr/local/src/cocoon/"></font></font>
<br><font color="#3333FF"><font size=+0> Options Indexes
MultiViews</font></font>
<br><font color="#3333FF"><font size=+0> AllowOverride
None</font></font>
<br><font color="#3333FF"><font size=+0> Order allow,deny</font></font>
<br><font color="#3333FF"><font size=+0> Allow from all</font></font>
<br><font color="#3333FF"><font size=+0></Directory></font></font><font color="#3333FF"><font size=+0></font></font>
<p><font color="#3333FF"><font size=+0>Alias /xml/ example/"/usr/local/src/cocoon/example/"</font></font><font color="#3333FF"><font size=+0></font></font>
<p><font color="#3333FF"><font size=+0><Directory "/usr/local/src/cocoon/example/"></font></font>
<br><font color="#3333FF"><font size=+0> Options Indexes
MultiViews</font></font>
<br><font color="#3333FF"><font size=+0> AllowOverride
None</font></font>
<br><font color="#3333FF"><font size=+0> Order allow,deny</font></font>
<br><font color="#3333FF"><font size=+0> Allow from all</font></font>
<br><font color="#3333FF"><font size=+0></Directory></font></font><font face="serif"><font color="#3333FF"><font size=+0></font></font></font>
<p align="justify">
Restart the web browser for this to take effect:
<font color="red" face="serif" size="3"><p>/usr/local/apache/bin/apachectl restart</p></font>
Now point your browser to <A HREF="http://localhost/xml/">http://localhost/xml/</A>
to browse the documentation and
<A HREF="http://localhost/xml/example/">http://localhost/xml/example/</A>
to try out the examples. If Cocoon complains about a exceeding a memory limit then open the file <font color="black" face="serif" size="4">cocoon.properties</font> found in the <font color="black" face="serif" size="4">/usr/local/src/cocoon/</font> directory. Find the line <p><font color="blue" face="serif" size="3"><i>store.memory = 150000<br></i></font></p>and change it to something lower like 15000. To try out the PDF examples, which I think
are very cool, you have to have Acrobat Reader installed as a
netscape plug-in, but it is worth the extra effort to get this
working.
</p><h2 align="left">Cocoon 2</h2><p align="justify">The Cocoon 1.x series has basically been a work in progress.
What started out as a simple servlet for static XSL transformation has grown into
something much more. With this ongoing development, design
considerations taken at the beginning of the project are now hampering future
developments as the scale and the scope of the project becomes
apparent. To add to this, XSL is also a work in progress,
although the current version of XSLT has become a W3C Recommendation (as of November, 16 1999).
</p><p align="justify">Cocoon 2 intends to address these issues and provide us with a
servlet for XML transformations that is scalable to handle large quantities
of web traffic. Web design of medium to large sites in the
future will be based entirely around XML, as its benefit become apparent, and the Cocoon 2 servlet will hopefully provide us with a way to use it effectively.</p><h2 align="left">Conclusions</h2><p align="justify"><p align="justify">Even as I have
been writing this article, Apache have opened a new site dedicated exclusively to
XML
(see <A HREF="http://xml.apache.org/">http://xml.apache.org/</A>).
The cocoon project has obviously grown beyond all expectations, and with
the coming of Cocoon 2 will be a commercially viable servlet to
enable design of web sites in XML to become a reality. The people at
Apache deserve a lot of credit for this so write to them and thank them,
join the mailing list and generally lend your support. After
all this is open source code and this is what Linux is all about. </p></body></html>
<!-- This page was served in 5463 milliseconds by Cocoon 1.5 -->
<DL>
<DT> <A HREF="misc/lane/lane.xml">lane.xml</A>
<DD> An XML version of this article.
<DT> <A HREF="misc/lane/lane.xsl">lane.xsl</A>
<DD> Its XSL style sheet.
<DT> <A HREF="misc/lane/lane.xml.txt">lane.xml.txt</A>
<DD> A text version of the XML source.
<DT> <A HREF="misc/lane/lane.xsl.txt">lane.xsl.txt</A>
<DD> A text version of the XSL source.
</UL>
<!-- *** BEGIN copyright *** -->
<P> <hr> <P>
<H5 ALIGN=center>
Copyright © 1999, Eoin Lane<BR>
Published in Issue 48 of <i>Linux Gazette</i>, December 1999</H5>
<!-- *** END copyright *** -->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">DHCP 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>
<!-- END header -->
<p>Tired of lugging that laptop from the office to home only to find that
once you get there you have to boot your M$ operating system, change your
network settings to work with your home network, and then ... ah-hem REBOOT?!
I was! [Enter DHCP from stage left.]<font color="#000000">
If </font>your <font color="#000000">office and home environments are configured
correctly, DHCP is a</font>bout to be your new best friend!
<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 at least DHCP 2.0
installed and that your local IP network is setup and functioning.
<p><b>DHCP@Home, why? </b>Convenience. I was fed up with changing
network configurations when I came home and then subsequently went back
to the office. It was completely unacceptable to add a bolt-on utility
to manage these settings for me. Then one day it hit me. We
use DHCP at work. Why shouldn't I use it at home! It'll give
me an IP address on the local network, the necessary DNS information, and
the correct gateway.
<p><b>DHCP@Work, why?</b> This one is a little easier to justify
than simply being inconvenienced. I worked at a facility with ~600
workstations. On the 1st day with the company I had to setup my own
machine and get it on the network. It took nearly 30-minutes for
an ill-equiped network administrator, I'll leave his name out of this article
since he's still providing network services for a local company, to find
an empty IP address that I could statically assign to my system.
He had paper print outs of 3-complete Class-C networks (192.168.[1-3].[1-254]).
It doesn't take higher math to figure out that there's over 750 addresses
available. 255 of which were on the network segment I was on.
<p>His process:
<blockquote>1. Find an open slot on the printed copy
<br>2. Verify it was open in his electronic copy
<br>3. Ping the address to verify no one was on it
<br>4. Give it to me, write it on the paper and enter it electronically</blockquote>
That was Friday. Monday morning I had an IP Conflict. Real
accurate system. All I knew about DHCP was that I had to select it
to get an IP address from my ISP at home. I had no idea how it worked
nor if we could use it to fix this `problem'. I joined forces with
a different network services group in the company, they educated me, and
we did a full frontal assault on every machine. DHCP is running to
this day ...
<p><b>IP Numbering Schemes: </b>If you've decided to run DHCP at
home then be smart about it. Figure out a numbering scheme and stick
with it. You'll know exactly what's on your network just by seeing
the IP address. This advice holds more weight in the corporate world
where you're likely to be hosting more machines. Anyway, this is
what I use at home and it closely resembles work as well:
<p><tt><u>IP Address Range Hosts</u></tt>
<p><tt><font color="#3333FF">* Important machines and network equipment
*</font></tt>
<p><tt> .001
Your router (if present)</tt>
<br><tt> .002 - .009 Network
equipment (switches and hubs)</tt>
<br><tt> .010 - .075 Servers</tt>
<br><tt> .076 - .099 Network
Printers</tt>
<p><tt><font color="#3333FF">* User workstations *</font></tt>
<p><tt> .100 - .254 DHCP
range</tt>
<br>
<p>Sticking with a scheme like the one above will make visual scans of
your logs much easier since you'll likely notice an oddball IP address
doing something it's not supposed to or not capable of, i.e., a printer
trying to telnet into your machine? Not likely ... and a good indicator
that you didn't read last month's article on security!
<p><b>Are you ready?</b> Type the following command at a shell prompt:
<br>
<blockquote><i>whereis dhcpd[Enter]</i></blockquote>
You should see output similar to the following line. If not, then
you still need to install DHCP. Get to it and come back here:
<blockquote>dhcpd: /usr/sbin/dhcpd /etc/dhcpd.conf /etc/dhcpd.leases
/etc/dhcpd.leases~</blockquote>
<p><br><b>/etc/dhcpd.conf:</b> This is where we start. This file
is the key to it all and it's extremely simple in design. Here's
what mine looks like:
<br>
<center><table BORDER COLS=1 WIDTH="50%" BGCOLOR="#FFFFFF" NOSAVE >
<tr NOSAVE>
<td BGCOLOR="#3366FF" NOSAVE>
<h1>
<b><font color="#FFFFFF">/etc/dhcpd.conf</font></b></h1>
</td>
</tr>
<tr NOSAVE>
<td BGCOLOR="#3366FF" NOSAVE>September 18, 1999</td>
</tr>
<tr NOSAVE>
<td BGCOLOR="#3366FF" NOSAVE>Author: Bill Mote</td>
</tr>
<tr NOSAVE>
<td ROWSPAN="2" NOSAVE>default-lease-time 36000;
<br>max-lease-time 7200;
<br>option subnet-mask 255.255.255.0;
<br>option broadcast-address 192.168.1.255;
<br>option routers 192.168.1.10;
<br>option domain-name-servers 192.168.1.10;
<br>option domain-name "mynetwork.cxm";
<p>subnet 192.168.1.0 netmask 255.255.255.0 {
<br> range 192.168.1.100 192.168.1.254;
<br>} </td>
</tr>
</table></center>
<p><b>/etc/dhcpd.leases: </b>We now need to give the dhcp server somewhere
to start. We do so by creating an empty leases file. Type the
following command at a shell prompt:
<blockquote><i>touch /etc/dhcpd.leases[Enter]</i></blockquote>
Below is a `live' dhcpd.leases file from my system. Please note that
your file will be empty until a DHCP client successfully obtains an IP
address from your server.
<br>
<br>
<center><table BORDER COLS=1 WIDTH="50%" NOSAVE >
<tr NOSAVE>
<td BGCOLOR="#3366FF" NOSAVE>
<h1>
<font color="#FFFFFF">/etc/dhcpd.leases</font></h1>
</td>
</tr>
<tr NOSAVE>
<td BGCOLOR="#3366FF" NOSAVE>September 18, 1999</td>
</tr>
<tr NOSAVE>
<td BGCOLOR="#3366FF" NOSAVE>Author: {auto generated by dhcpd}</td>
</tr>
<tr NOSAVE>
<td BGCOLOR="#FFFFFF" NOSAVE>lease 192.168.1.100 {
<br> starts 6 1999/09/18 17:27:36;
<br> ends 6 1999/09/18 17:37:36;
<br> hardware ethernet 00:60:08:e3:60:03;
<br> uid 01:00:60:08:e3:60:03;
<br> client-hostname "NoFear";
<br>}</td>
</tr>
</table></center>
<p><b>Let's go already! </b>It's what you've been waiting for.
Time to startup the dhcp server and get a client running. Type the
following command at a shell prompt:
<blockquote><i>/usr/sbin/dhcpd[Enter]</i></blockquote>
That's it for the server side. Now onto client configuration.
<p><b>M$ client: </b> For the purposes of this article I'm going to
assume that you've got mostly M$ machines connected to a linux server.
<p>The Microsoft client is actually very easy to configure. Follow
these mouse clicks:
<br>
<blockquote><i>Start -> Settings -> Control Panel -> Network</i></blockquote>
Find the `TCP/IP protocol for your network adapter'. Highlight it
get to the properties window by pressing [Mouse1] on the `Properties' button.
Since pictures are better than words I'll use the following 3 pictures
to illustrate how your TCP/IP settings should be configured:
<br>
<br>
<br>
<br>
<center>
<p><img SRC="gx/pollman/ip_address.gif" HSPACE=3 VSPACE=3 height=441 width=356>
<br><img SRC="gx/pollman/gateway.gif" HSPACE=3 VSPACE=3 height=441 width=356>
<br><img SRC="gx/pollman/dns.gif" HSPACE=3 VSPACE=3 height=441 width=356></center>
<p><br>
<br>
<br>
<br>
<br>
<br>
<br>
<p>After a quick M$ reboot you should be golden! For more info on
DHCP see the <font color="#FF6666"><a href="http://www.linuxhq.com/HOWTO/mini/DHCP.html">DHCP-minihow-to</a></font>.
Notice in the opening sentence of this paragraph the word, "should".
Well, here's what I've found.
<br>
<blockquote>DHCP and Win98 SE (second edition) -- [Bill steps onto his
soap box] Nothing like a little competition to spark the boys in Redmond,
eh? The impression was the *everyone* was setting up Linux boxes
to share their internet connections at home. Microsoft responds in
short order with Internet Connection Sharing included in Win98 SE.
Quite frankly, I loved it. I used it to get our church computers
running from a single dial connection and it's working great.
<p>However, Win98 SE's ICS seems to be doing something a little off the
wall when it comes to DHCP. My Win98 SE machine at home assigns an
IP address to my NIC if it can't find a DHCP server. In the old days
Win9x would use it's last known IP address as long as the lease hadn't
expired ... not any more.
<p>If you have problems getting your Win98 SE box to get an IP address
then you may want to assign it a permanent address. What about the
numbering scheme you ask? You `could' set a small range aside at
the bottom or top of the range, but still above our default .100 (like
.100 - .105).
<p>If you still want the box to have an IP address assigned by DHCP then
you can do the following:
<blockquote>
<ul>
<li>
Give the Win98 SE box an IP address on your network. Don't worry
it'll just be temporary.</li>
<li>
Wait a couple of days (haven't narrowed the time down yet)</li>
<li>
Set the machine back to DHCP</li>
</ul>
</blockquote>
Ridiculous? Yes. I just haven't looked for a way to permanently
fix the problem. There's probably some undocumented Win9x registry
tweak ... If anyone knows send it to my e-mail address below please!</blockquote>
<br>Next month we will be discussing Linux Client Side DHCP.
<p><br>
</body>
</html>
<!-- *** BEGIN copyright *** -->
<P> <hr> <P>
<H5 ALIGN=center>
Copyright © 1999, JC Pollman, Bill Mote<BR>
Published in Issue 48 of <i>Linux Gazette</i>, December 1999</H5>
<!-- *** END copyright *** -->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">The Back Page</font></H1>
<!-- H4>By <a href="mailto:%(email)s">%(author)s</a></H4 -->
</center>
<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">Steven Adler</H4>
While not building <a href="http://www.phenix.bnl.gov">detectors</a>
in search of the quark gluon plasma, Steve Adler spends his time either
4 wheeling around the lab grounds or writing articles about the people
behind the open source movement.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Eugene Blanchard</H4>
Eugene is an Instructor at the Southern Alberta Institute of
Technology in Calgary, Alberta, Canada where he teaches electronics,
digital, microprocessors, data communications, and operating
systems/networking in the Novell, Windows and Unix worlds. When he is not
spending quality time with his wonderful wife and 18 month old daughter
watching Barney videos, he can be found in front of his Linux box. His
hobbies are hiking, backpacking, bicycling and chess.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Eric Fischer</H4>
Eric currently lives in Chicago, Illinois and is employed by RootsWeb, Inc. He
was formerly involved in the development of the Vim text editor.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">David Fisher</H4>
Dave has been working as a software consultant for 12 years doing development,
QA, and automation in both military and commercial projects. He also designs
strategic games and is a published musician.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Eoin Lane</H4>
Eoin is the managing director of <a href="http://www.inconn.ie/">InConn
Technologies Ltd</a>., an intranet document management company. After completing
his Ph.D., in chemical physics Eoin saw the potential of using a Linux
server to centrally manage documents, from this he decided to set up the
company InConn Technologies Ltd., to explore this technology commercially.
Eoin specialises in XML solutions for complex document and knowledge management
problems.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">JC Pollman and Bill Mote</H4>
JC has been playing with Linux since kernel 1.0.59. He spend way too much
time at the keyboard and even let his day job - the military - interfere once in
a while. His 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> 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+ road-warrior 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">Bob Reid</H4>
Rob is doing his Ph.D. in Astronomy at the University of Toronto, where he
was a system administrator on the side for a while along with running his own
Linux boxes at home and school since 1995.
<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> This issue is short on articles because the Thanksgiving weekend pushed
the deadline too far forward for some of the authors. Articles by <I>LG</I>
regulars Bill Bennet, Slambo, Sean Lamb and Anderson Silva will be in the
January issue.
<P> Since the <I>Linux Gazette</I> Spam Count has been
hovering steadily at 26-28%, I decided to look at a new statistic this month:
the <STRONG><I>Linux Gazette</I> Bounce Count</STRONG>. This is the number
of messages that were undeliverable on the 5500-member <tt>lg-announce</tt>
mailing list. Bounce count: 1034 messages, creating a wopping 7.5 MB
file of error messages. Most of these were because of the mail loop created by
the jankog@penatex.si address, which is now unsubscribed. There are still some
problems which duplicate messages on the list. We are currently trying to pin
down where these messages are being generated from.
<P> Today is the first day of the World Trade Organization meetings her in
Seattle, and the protesters stated a day earlier than expected, on Sunday.
Nothing unusual to report so far that you won't find in the papers.
<P> Finally, a tongue twister from my boss Dan Wilder. Say it three times
fast:
<BLOCKQUOTE><FONT FACE=arial,helvetica>
How many nets could a Netwinder wind if a Netwinder could wind nets?
</FONT></BLOCKQUOTE>
<p><hr><p>
<center>
<I>Linux Gazette</I> Issue 47, 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>
|