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
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE> Linux Gazette Table of Contents LG #42</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#0000AF"
ALINK="#FF0000" >
<center>
<A HREF="http://www.linuxgazette.com/">
<H1><IMG SRC="../gx/newlogo.jpg" ALT="Linux Gazette" border="0"></H1></A>
<H4>June 1999, Issue 42 Published by <I>Linux Journal</I></H4>
</center>
<!--=================================================================-->
<table>
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif" ALT="indent" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
<tr><td>
<table>
<tr>
<td><H1><font color="#BB0000">Visit Our Sponsors:</font></H1></td></tr>
<tr>
<td><A HREF="http://www.linuxjournal.com/"><img src=../gx/ljtop.gif alt="Linux Journal" border=0></A></td></tr>
<tr>
<td><A HREF="http://www.linuxtoday.com/"><img vspace="10" src=../gx/lt-lg.gif alt="LinuxToday" border=0></A></td>
<tr>
<td><A HREF="http://www.stalker.com/ads/cg-lgp.html"><img vspace="10" src=../gx/stalker.gif alt="Communigate Pro" border=0></A></td></tr>
<tr>
<td><A HREF="http://www.cyclades.com/"><img vspace="10" src=../gx/cyclades.gif alt="cyclades" border=0></A></td> </tr>
<tr>
<td><A HREF="http://www.linuxresources.com/"><img vspace="10" src=../gx/linux6.gif alt="Linux Resources" border=0></A></td></tr>
<tr>
<td><A HREF="http://www.LinuxMall.com/"><img vspace="10" src=../gx/linuxmall.gif alt="LinuxMall" border=0></A></td></tr>
<tr> <td>
<A HREF="http://www.redhat.com/"><img vspace="10" src=../gx/redhat.gif alt="Red Hat" border=0></A></td></tr>
<tr> <td>
<A HREF="http://www.suse.com/"><img vspace="10" src=../gx/suse.jpg alt="SuSE" border=0></A></td></tr>
<tr>
<td><A HREF="http://www.infomagic.com/"><img src=../gx/infologo.gif alt="InfoMagic" border=0></A></td></tr>
</tr>
</table>
</td>
<!--==================================================================-->
<TD ROWSPAN="3" WIDTH="2" BGCOLOR="#000000" NOSAVE><IMG
SRC="../gx/hammel/cleardot.gif" ALT="indent" HSPACE=1 HEIGHT=1 WIDTH=1></TD>
<td>
<H1><font color="#BB0000">Table of Contents:</font></H1>
<UL>
<LI><A HREF="../lg_frontpage.html">The Front Page</A>
<LI><A HREF="./lg_mail42.html">The MailBag</A>
<ul>
<li><a HREF="./lg_mail42.html#help">Help Wanted & Article Ideas</a>
<li><a HREF="./lg_mail42.html#gen">General Mail</a>
</ul>
<LI><A HREF="./lg_bytes42.html">News Bytes</A>
<ul>
<li><a HREF="./lg_bytes42.html#general">News in General</a>
<li><a HREF="./lg_bytes42.html#software">Software Announcements</a>
</ul>
<LI><A HREF="./lg_answer42.html">The Answer Guy</A>, by James T. Dennis
<LI><A HREF="./lg_tips42.html">More 2 Cent Tips</A>
<LI><A HREF="./nielsen.html">autofs tutorial revisited</a>, by Mark Nielsen
<LI><A HREF="./lamb.html">Caldera 2.2 Quick Review</a>, by Sean Lamb
<LI><A HREF="./adler.becker.html">From Word Processors to Super Computers</a>, by Stephen Adler
<LI><A HREF="./gm/gm.html">Graphics Muse</a>, by Michael J. Hammel
<LI><A HREF="./adler.fnal.html">Linus at Fermi Lab</a>, by Stephen Adler
<LI><A HREF="./richardson.html">Linux Expo 1999</a>, by Marjorie Richardson
<LI><A HREF="./coats.html">Book Review: Programming Web Graphics</a>, by
Jack Coats
<LI><A HREF="./stumpel.html">Setting up mail for a home network using exim</a>, by Jan W. Stumpel
<LI><A HREF="./carlson.html">An xdm Session</a>, by Chris Carlson
<LI><A HREF="./lg_backpage42.html">The Back Page</A>
<ul>
<li><a HREF="./lg_backpage42.html#authors">About This Month's Authors</a>
<li><a HREF="./lg_backpage42.html#notlinux">Not Linux</a>
</UL>
</UL>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
</td>
</tr>
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif" ALT="indent" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
</table>
<!--=============================================================-->
<P>
<table>
<tr><td>
<A HREF="./issue42.txt.gz">TWDT 1 (gzipped text file)</A><BR>
<A HREF="./issue42.html">TWDT 2 (HTML file)</A><BR>
are files containing the entire issue: one in text format, one in HTML.
They are provided
strictly as a way to save the contents as one file for later printing in
the format of your choice;
there is no guarantee of working links in the HTML version.
</td></tr>
<!--==================================================================-->
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif" ALT="indent" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
<tr><td>
<center>
<I>Linux Gazette</I><img src="../gx/tm.gif">, <A HREF="http://www.linuxgazette.com/">http://www.linuxgazette.com/</A><BR>
This page maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto: gazette@ssc.com"> gazette@ssc.com</A>
<P>
<H5>Copyright © 1996-99 Specialized Systems Consultants, Inc.</H5>
</center>
</td></tr>
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif" ALT="indent" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
</table>
<H4>"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="./lg_mail42.html#help">Help Wanted -- Article Ideas</a>
<li><a HREF="./lg_mail42.html#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> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Thu, 27 May 1999 12:33:42 -0230 (NDT)<BR>
From: Neil Zanella, <A HREF="mailto:nzanella@cs.mun.ca">
nzanella@cs.mun.ca</A> <BR>
Subject: <font color="navy">call for article: wireless ethernet</font>
<P>
It would be nice if someone wrote an article on wireless ethernet on Linux
(eg. WaveLAN). I think it would make a good article.
<P>
Best Regards,
<P>
--<BR>
Neil Zanella
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 03 May 1999 16:33:32 -0500<BR>
From: Pete Nelson, <A HREF="mailto:pete.nelson@ci.stpaul.mn.us">
pete.nelson@ci.stpaul.mn.us</A> <BR>
Subject: <font color="navy">Any inetd wizards out there?</font>
<P>
I have been digging for the past several months to try and find any way
to bind inetd to one IP / interface. I have a machine with several
virtual hosts, and had originally intended for only the main IP /
interface to respond to telnet, ftp, etc. The virtuals would only
respond via httpd. Unfortunatly, this doesn't seem to be the way it's
working - not only can I telnet / ftp to all addresses, it seems like
every inetd connection shows up on the LAST IP interface for some
reason.
<P>
I've looked thru manpages, NAG, websites, and while I know a lot more
than when I started looking, I was never able to solve this binding
problem.
<P>
Anyone have the answer?
<P>
--<BR>
Pete
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 3 May 1999 13:07:07 -0700 <BR>
From: Darrin Mossor, <A
HREF="mailto:darrinm@Model.com">darrinm@Model.com</A><BR>
Subject: <font color="navy">LILO Lock</font>
<P>
I have a Dell PII-450 with an STB4400 Riva TNT video board, 128M RAM. I
dual boot Windows (for the kids and some games) and RedHat5.2. I use LILO
to
handle the booting, with Windows being the default. Occasionally, Windows
will
lockup (big surprise), especially when playing more recent, graphics
intensive,
games. When this happens, a reset is required and the magic reset button is
<P>
pressed. Most of the time, on the LILO screen, the boot locks, displaying
"LIX". A
second reset is required to get things moving again.
<P>
I'm looking for two things:
<P>
1) Possible explanations for what would cause LILO to hang (I suspect the
video
drivers, but I've tried the ones that shipped with the PC, the latest and
even the
Detonator drivers from nVidia - no change in the frequency of lockups or the
LILO
hang.
<P>
2) Where can I find out what (if anything) LILO is trying to tell me by
displaying
"LIX". I have a feeling it's trying to tell me something useful, if I new
how to decode
it. And I would like to know the source of this information. I have pretty
good luck
find the answers myself, but this one has eluded me.
<P>
Other possible details: SB16 for sound, 13.6G IDE HD.
<P>
Thanks,
<P>
--<BR>
Darrin Mossor
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sat, 8 May 1999 18:09:51 -0700 (PDT)<BR>
From: Ariel "Leon", <A HREF="mailto:a_soul@rocketmail.com">
a_soul@rocketmail.com</A> <BR>
Subject: <font color="navy">I need some help here, please!</font>
<P>
Hi, I wonder if anyone can help me out here with my
partitions. I have a P100 with 16RAM, i recently
changed my HDD 'cause it died, i replaced it with a
6.4Gb WesternDigital HDD. When i was installing it
using EZ-Drive, the setup program detected that my
bios wasn't going to support large drives so it
installed EZ-Bios, EZ-Drive also partitioned the
drive into four partitions (right now one has win95
and the others are free).....when i tried to install
debian 1.3.1 the setup insisted in trying to go
through the partitioning process but it detected "bad
logical partitions".
<P>
What can i do to install linux in two of the existing
partitions without losing my data (i'd like to run
dual boot). One more thing, the D:, E: and F:
partitions have recycle bins and i can't get rid of
them even when formating them, what's going on here.
<P>
Thanks
<P>
--<BR>
Ariel
<P>
Date: Sun, 9 May 1999 19:03:42 +0100 (BST)<BR>
From: "D. Lovecraft", <A HREF="mailto:dl19@leicester.ac.uk">
dl19@leicester.ac.uk</A> <BR>
Subject: <font color="navy">Choosing GUI for users</font>
<P>
I have set up my PC to allow all the people in my household (we're
students, by the way) to use various accounts in Linux. No problem
there.
<P>
The thing is the user-interface we use. Everyone uses KDE for their
chosen interface, but I prefer Afterstep. I use the kwm login program
to allow people to,... well,... login, but it always defaults to using
KDE. For the people in my household, this poses no great problem, as
that is what they are after. I would like to be able to use Afterstep
though.
<P>
But try as I might, I cannot get it to load Afterstep just for me. I
have tried editing .xinitrc in my directory, and many other things
besides, but I cannot get it to go.
<P>
Please, oh wise one, what should I do???
<P>
--<BR>
Dela Lovecraft
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 10 May 1999 22:11:59 +0100<BR>
From: "Michael", <A HREF="mailto:michael@cimmj.freeserve.co.uk">
michael@cimmj.freeserve.co.uk</A> <BR>
Subject: <font color="navy">Direct Cable Connection between Win95 and Linux</font>
<P>
Just read issue 41 and read the great article about direct cable connections
between
Win95 and Linux, I tried implementing this method but came across a couple
of problems
running Windows 98. (4.10.1998)
<P>
I can get terminal emulation (using HyperTerminal) running at 38400 baud
but 115200 crashes at the password prompt. (115200 works with xon/xoff
using kermit as the terminal program).
<P>
Can't figure out how to get Windows to dial out over the serial line as in
your article.
I tried creating a new modem using the modems wizard in the control panel
using
'standard serial between 2 PC's' and it goes through the process reporting
success at
the end but no device appears anywhere.
<P>
In control-panel|System Devices|Com Ports another device appears for COM1 so
Windows
thinks I have 2 COM1's ?
<P>
I click on add Dial Up Connection and can't select anything other than the
Hayes accura
modem I have on COM3.
<P>
Any Ideas ?
<P>
Thanks in advance for any help you may be able to give.
<P>
PS.
<P>
I am running RedHat Linux 5.2 and can't find the ftpserver*.rpm. Do you
have details
on where I can get the sources/binaries (in any package format - I have the
alien
script and ar) so I can set up an ftp server on this machine.
<P>
--<BR>
Michael
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 10 May 99 16:05:05 PDT<BR>
From: "Ross Waters", <A HREF="mailto:rwaters@tartannet.ns.ca">
rwaters@tartannet.ns.ca</A> <BR>
Subject: <font color="navy">Linux and Windows</font>
<P>
I am new to the computer world and I only have a 386 laptop running Win3.1.
Is there a small linux program I can Install without losing my win3.1.
I have 200 meg hard ddrive and 8Megs of RAM.
<P>
--<BR>
Ross Waters
<blockquote> <I>
(Check out the article, <A HREF="../issue38/veselosky.html">"Windows/Linux Dual Boot"</A> by Vince Veselosky in issue
38. --Editor)</I> </blockquote>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 17 May 1999 13:52:34 -0600<BR>
From: Chris Hirsch, <A HREF="mailto:chris@symsystems.com">
chris@symsystems.com</A> <BR>
Subject: <font color="navy">Netscape Bookmark Window Width</font>
<P>
I'm trying to figure out how to adjust the bookmark window width for
netscape 4.51. My problem with the current size is that when looking at
bookmarks that have very long descriptions they get truncated in the
middle and make the descriptions worthless. Is there some way to
dynamically size them? I'll even settle for a static size as long as its
bigger than the defautlt.
<P>
Any suggestions?
<P>
Thanks,
Chris
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Thu, 20 May 1999 20:30:54 -0400<BR>
From: "Jesse Legg", <A HREF="mailto:jesse.legg@axom.com">
jesse.legg@axom.com</A> <BR>
Subject: <font color="navy">Good commercial Terminal Emulation</font>
<P>
I'm in need of a good commercial package for Linux and terminal
emulation. It needs a *very good* VT320 support and such. Any
suggestions?
<P>
--<BR>
Jesse
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Fri, 21 May 1999 18:01:02 -0500<BR>
From: Noel Stoutenburg, <A HREF="mailto:mjolnir@ticnet.com">
mjolnir@ticnet.com</A> <BR>
Subject: <font color="navy">re: gzipping TWHT-1</font>
<P>
I am in the process of switching to Linux, however, I cannot complete
the process just yet, in addition, I am in the process of moving, and my
linux box is not presently functioning.
<P>
I have been downloading and saving the LG issues, using TWDT - 1, and
discovered that the last three issues have been gz files, but I cannot
figure out how to get these expanded on my win/dos system. Maybe you
can point me to a place where I can find out what process to use, and
where to get the appropriate software to accomplish the expansion on
DOS/WIN.
Thanks.
<P>
--<BR>
Noel
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Fri, 21 May 1999 18:04:06 -0500<BR>
From: Noel Stoutenburg, <A HREF="mailto:mjolnir@ticnet.com">
mjolnir@ticnet.com</A> <BR>
Subject: <font color="navy">PS to re: gzipping TWHT-1</font>
<P>
I am in the process of switching to Linux, however, I cannot complete
the process just yet, in addition, I am in the process of moving, and my
Linux box is not presently functioning.
<P>
I have been downloading...[snip]...expansion on
DOS/WIN.
<P>
Thanks.
<P>
P.S. Maybe you could add TWDT 3, which would be an uncompressed file...
--<BR>
Noel
<blockquote> <I>
(Check this month's 2 Cent Tips for ways to uncompress Linux files using Windows. The HTML file is not compressed and for most issues neither is the txt file. I just started compressing it lately at user's request. --Editor)
</I> </blockquote>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sun, 23 May 1999 20:47:57 -0600<BR>
From: "Steven Koch", <A HREF="mailt:kochsb@home.com">
kochsb@home.com</A> <BR>
Subject: <font color="navy">How To Make A Bootable Linux (OpenLinux 2.2) Floppy?</font>
<P>
Question: How do I make a bootable OpenLinux 2.2 floppy? I have Windows
95 on my PC right now. I already installed OpenLinux 2.2 on my HDD. I
put Linux (Root & Swap) on my Second HDD - D: drive. I did a Full
install & works great. But I can't seem to boot to the Linux anymore.
I boot straight to Windows 95 (with no problems). I don't know if LILO
will work? On my PC (Acer Open - P133) I have EZ-Drive installed in theDC
BIOS (my BIOS couldn't handle the 6.4MB WD HDD). I've tried PM's
BootMagic, it won't work because of the EZ-Drive. That's why I want to
know if it's possible to Boot to Linux from a Floppy? I tried these
methods from a Web Site:
<P>
I have these 3 files in my C: root drive:<BR>
-> Loadlin.exe<BR>
-> Vmlinux<BR>
-> Linux.bat (Below is what's inside of LINUX.BAT file)....<BR>
<pre>
@echo off
cls
echo.
echo.
echo.
echo.
c:\windows\command\choice /t:y,5 "Do you wish to boot Linux?"
if errorlevel 2 goto End
c:\loadlin.exe c:\vmlinuz root=3D/dev/hdb4 ro
:End
</pre>
I also made this Boot Floppy (According to the Web Site) & it has these
2 files:<BR>
-> autoexec.bat (Below is what's inside of AUTOEXEC.BAT file)....
<PRE>
goto %config%
:win95=20
SET CTCM=3DC:\WINDOWS
SET SOUND=3DC:\PROGRA~1\CREATIVE\CTSND
SET MIDI=3DSYNTH:1 MAP:E
SET BLASTER=3DA220 I10 D3 H3 P300 T6
</PRE>
-> config.sys (Below is what's inside of CONFIG.SYS file)....
<PRE>
[menu]=20
menuitem=3DLinux, Boot to Linux
menuitem=3DWin95, Boot to Windows 95=20
menucolor=3D15,1
menudefault=3DLinux, 15
[linux]
shell=3Dc:\loadlin.exe c:\vmlinuz root=3D/dev/hdb4 ro
[win95]
</PRE>
When I Do Boot With The Floppy In The A: Drive, I Receive This Error
Message:
<PRE>
Invalid System Disk
Replace The Disk, And Then Press Any Key
</pre>
I Take Out Floppy & It Boots To Windows 95. Am I Doing Something Wrong
Here? I Did Exactly What The Web Site Said To Do. I Know It's Something
In One OF These Files Or There All Wrong? Or do you know a better
alternative?
Thanks,
<P>
--<BR>
Steve
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 24 May 1999 12:58:40 -0400<BR>
From: Steve Ickes, <A HREF="mailto:stevei@paonline.com">
stevei@paonline.com</A> <BR>
Subject: <font color="navy">Help wanted</font>
<P>
I am currently trying to install Star Office so that I may finally do
away with my Microsloth products. However, when running ./setup, I get
a script error. I have searched and posted but to no avail. I did find
reference to using 'ldd' instead of 'exec' when running ./setup.bin.
However, being relatively new to Linux, this means very little to me.
<P>
Any ideas, help or suggestions? I wouldn't think that this is a big
issue. Yes, I am running the appropriate versions of glib and lib and
running Red Hat v5.2 with the GNOME desktop and FVWM.
<P>
--<BR>
Steve
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sun, 9 May 1999 20:48:19 -0400<BR>
From: "Timothy Gray", <A HREF="mailto:timgray@geocities.com">
timgray@geocities.com</A> <BR>
Subject: <font color="navy">CAD on Linux and X</font>
<P>
I have a CAD station that is currently windows crippled. I have a
summagraphics tablet and a hp plotter which both work great under WIN95/98
(both are old by most everyones standards.. circa 1989-1990). But, I cannot
find anything on the net about using a tablet with X windows, or a plotter.
Xfree86's sites all mention mice and never say anything about any other
input device. Both items have win/dos/cad drivers along with SCO and VMS
drivers.
<P>
Is there anything I can find about serious CAD under linux and using my
hardware on the net? If I can get this running under xfig I can save
thousands and give me one more reason to use my windows CD's as coasters.
<P>
--<BR>
Timothy
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Tue, 11 May 1999 10:36:39 +0200
From: Matthias Mikuletz, <A HREF="mailto:matthias@theo2.physik.uni-stuttgart.de">
matthias@theo2.physik.uni-stuttgart.de</A>
Subject: Corrupt partition table
<P>
I need urgent HELP.
<P>
After having deleted a 8gig primary FAT32 partition and reinstalled a 4gig primary
<P>
and a 4gig extended FAT32 partition on a 13.5 gig drive the linux partition on the last 5gig
<P>
isn't accessible anymore.
<P>
Dos Fdisk works properly, doesn't show up anything unusual, but linux fdisk complains about
<P>
different logical/physical beginnings/endings and overlapping. Also PartitionMagic 3.0 only
tells me about a partition table error #116.
<P>
Windows95 works properly on the first two partitions.
<P>
Can anyone tell me about a tool to fix the partition table (to scan the disk and guess
correct cylinder/head values)?
<P>
Maybe the reassigning of the extended FAT32 partition has destroyed the linux partition.
<P>
Thanks a lot in advance.
<P>
--<BR>
matthias
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 26 May 1999 23:37:13 EDT<BR>
From: <A HREF="mailto:Robert8005@aol.com">
Robert8005@aol.com</A> <BR>
Subject: <font color="navy">Video Problems</font>
<P>
I new to linux and learning fast. I just got one problem when I use startx or
kde my screen just shows Black and gray stripes. I have a Diamond SpeedStar
A50 AGP card and a ViewSonic 17EA Monitor. I tried the optiond Caldera said
and none worked. ANy help would be great.
<P>
--<BR>
Robert
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 2 Jun 1999 02:43:24 -0700 (PDT)<BR>
From: kenneth kenneth, <A HREF="mailto:monkeydrum_98@yahoo.com">
monkeydrum_98@yahoo.com</A> <BR>
Subject: <font color="navy">Red Hat</font>
<P>
Can you tell me where can i find the step to install
Linux Red Hat 5.2 ....
<P>
--<BR>
Kenneth
<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">
Date: Fri, 04 Jun 1999 01:31:14 +1000
From: peter, <A HREF="mailto:marshypj@ozemail.com.au">
marshypj@ozemail.com.au</A>
Subject: netled article issue 41, by larry ayers
<P>
Zee correct address for Matthew Bevan site and NetLed Program is :
<P>
http://mars.ark.com/~mbevan/products/netled.shtml
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Tue, 4 May 1999 00:54:19 -0700 (PDT)<BR>
From: Felix Morley Finch, <A HREF="mailto:felix@crowfix.com">
felix@crowfix.com</A> <BR>
Subject: <font color="navy">Conversation with Craig Burton</font>
<P>
I think Mr Burton has a lack of imagination on how Linux can take over
a lot of desktops. He claims
<blockquote> <font color="navy">
Windows growth would have to go to zero and Linux would have
to grow exponentially for the next eight to ten years before
it would even begin to gain on Microsoft. And until Linux is
at 20% market share, no serious developer is going to give it
any respect.
</font></blockquote>
It might be so if the hundreds of millions of Windows PCs in use now
would still be in use eight to ten years from now. But PCs will be
replaced several times during that period. Each replacement is
another opportunity for Linux.
<P>
Most people use Windows for Office file compatibility and games.
StarOffice, ApplixWare, and Word Perfect already offer almost complete
Word compatibility, and games are beginning to appear. In a year or
two, Linux will be reasonable for a majority of uses. A few early
adaptors will smuggle Linux into offices, its viability will become
evident under practical conditions, and managers will realize they can
save money, downtime, and headaches by installing Linux.
<P>
Internet compatibility requirements, and resentment over expensive
upgrades, will prevent MS from force feeding many more incompatible
Office file format "upgrades". Cheaper and cheaper hardware will make
the cost of MS software more apparent. Just as MS Works was developed
as a cheaper alternative to Office, people will "settle" for Linux for
their kids.
<P>
Linux doesn't have to replace existing Windows machines. It only has
to be a proven viable alternative when people replace old PCs. Faced
with forced upgrades by MS's short sighted policies, people will
choose inexpensive compatible standards-friendly Linux over expensive
incompatible Redmond-protocols Microsft.
<P>
--<BR>
Felix
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 3 May 1999 18:30:31 EDT<BR>
From: <A HREF="mailto:Robbo0119@aol.com">Robbo0119@aol.com</A> <BR>
Subject: <font color="navy">Linux and W98</font>
<P>
I use W98 for most of my essential tasks and also use it for "GAMES". I own a
lot of games.
<P>
HOWEVER i recently started to use Linux as an alternative operating system.
It has a steep learning curve , ( at least for me, because I don't seem to
own the hardware that it comes ready for and have had to hunt down drivers on
the net, and also learn to install them properly.)
<P>
The current state of Linux reminds me of OS/2 when it first came out. I liked
OS/2 (I had the 3.0 ). BUT . I stopped using it because there were very few
(almost none) programs for OS/2 at the time. I considered it a superior OS to
Windoze. It actually worked.But you had to learn how to make it work.
<P>
I will be really glad if Linux makes it in the market, Be assured that Bill
Gates with all of his money is not going to let an Operating System that's
essentially FREE take over his market share ( probably he thinks of it as his
domain).
Good Luck Linux!!
<P>
--<BR>
robbo
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 03 May 1999 23:58:12 -0500<BR>
From: <A
HREF="mailto:cbbrowne@godel.brownes.org">cbbrowne@godel.brownes.org</A> <BR>
Subject: <font color="navy">LinuxCAD Reviewz</font>
<P>
I think that it is a very good thing that you presented the Official
Reaction of Software Forge Inc to the previous "LinuxCAD" Review;
the quality of the response as well as the advertising material speaks
as loudly as any review could. (Including the one claimed to be
"fraudulent.")
<P>
It is clearly important for Linux Gazette to remain editorially objective;
in this case that has been quite successfully done. However badly you
may have wanted to use a spell-checker, the community will always remain
grateful for your self-control in throttling that impulse. :-).
<P>
--<BR>
cb
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Tue, 4 May 1999 20:41:47 +0200<BR>
From: Craig Schlenter, <A HREF="mailto:craig@qualica.com">
craig@qualica.com</A> <BR>
Subject: <font color="navy">NetLED security problem?</font>
<P>
I read an article in <I>Linux Gazette</I> about netled and the comment about not
prepending /dev/ to any of the command line arguments intrigued me so I
thought I'd look at the source code:
<P>
From netled.c:
<pre>
char tty[10] = "/dev/";
[snip]
strcat(tty,argv[1]);
if((ttyfd = open(tty,O_RDWR)) < 0) {
fprintf(stderr,"Error opening keyboard %s\n ",tty);
exit(1);
}
[snip]
</PRE>
<P>
I'm not an expert in these matters but this would appear to be prone to
a buffer-overflow/stack-smashing attack. The fact that it's part of
main() and not some subroutine might have some bearing on the matter as
I'm not too sure whether exit() will look for some sort of return
address on the stack (and no libc source handy to check) but either way
it looks like something that needs fixing ...
<P>
I'd recommend a
<PRE>
if (strlen(argv[1]) >= 5) {
fprintf(stderr, "argument too long");
exit (1);
}
</pre>
be added before the strcat. This is especially relevant since you recommend
running the program SUID root. Actually a size of 10 for tty is too low as a
size since you want argv[1] to be "console" ...
<P>
I've cc'ed the author of the article, linux-gazette too and one of the
security mailing lists maintainers who is probably far more
knowledgeable than me about stack overflows to shed some light on the
matter.
Thank you,
<P>
--<BR>
Craig
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Tue, 11 May 1999 11:12:05 -0600<BR>
From: <A HREF="mailto:njg@itmin.com">njg@itmin.com</A> <BR>
Subject: <font color="navy">Desktop Users</font>
<P>
I wish to make a request to the editor of the LG and hope others in my
category will support me. I was prompted to do this after reading mail in
your journal. The letter in April <BR>
From: "Michael J. Hammel", mjhammel@graphics-muse.org <BR>
Subject: Re: a newbie's grief : Erik Refner & Clara Lundqvist: "<BR>
is one such example.
(I must admit that in my debut I created a partition with FIPS and installed
RedHat Linux ver 2.1 on my PC in 1995 with only few problems. So it is not
THAT bad really..But I could not get my modem to work!)
<P>
Linux is more than a BIG OS for developers and programmers. It has a great
future for ordinary PC DESKTOP users like me. Many people in the world
cannot afford Microsoft software. The OS and their Offfice suite is very
expensive. The restrictions of a single PC means if you have more than one
PC the cost increases.
Linux is affordable. One copy of the latest version in a library can be
shared by many. In poorer countries this will be a great boon. People will
learn to manage with the free software that is there to use. Going on the
internet will be easy as Netscape, familiar to everyone is available. A
simple x-based email client allowing multiple users will be all that is
needed, as Netscape does not allow multiple addresses on the same PC.
Also viruses are not a problem in linux, as yet!!! :-)
I read in the news in lg that Corel was going to build a desktop PC version
for ordinary PC users in MAY lg news...
<P>
"Ottawa, Canada - April 21, 1999 - Corel Corporation (NASDAQ: COSFF, TSE:
COS) today announced an alliance with
two major Open Source developer communities to advance the development of
its proposed Linux distribution; a user-friendly
Linux installation and graphical user interface (GUI) for the desktop PC."
<P>
But this may be costly. In the April news there was some hope...
"Project Independence: Linux for the Masses,
http://independence.seul.org/distribution/ "
<P>
Therefore my request.
Could you please reserve a little section of your lg for simple desktop uses
of Linux, as opposed to programmers, LAN users, Server users etc.? News as
well as software reviews specially of value to us could be great!
Thanks
<P>
--<BR>
Nandalal Gunaratne
<blockquote> <I>
(I'd be happy to have deskopt uses included. Anyone who submits this type of
article can be assured that we will post it. --Editor)
</I> </blockquote>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 5 May 1999 16:53:53 -0400<BR>
From: Larry Kollar, <A HREF="mailto:lkollar@my-dejanews.com">
lkollar@my-dejanews.com</A> <BR>
Subject: <font color="navy">Re: KDE is bloated and slow (not</font>)
<P>
I keep hearing all this stuff about KDE is bloated, KDE is slow, KDE
put a nasty stain on my favorite T-shirt and I can't get it clean,
you get the idea....
<P>
I run Linux part-time on a Mac G3/266 (the beige box, "only" 32MB of
RAM), with KDE as my standard GUI, and I don't see what people are
complaining about. Maybe I'd feel different if I had to run it on
a Pentium, or on a Mac IIsi running NetBSD or Linux-68k, but KDE
responds well to decent hardware. I recently updated from a beta
to 1.1, and it does feel a bit snappier.
<P>
I'll admit to shutting down X to compile large projects, but only
because of my current RAM limits. Once I add more RAM, I'll probably
change the runlevel to 5 and have X + KDE running all the time.
<P>
Besides, my wife would kill -9 me if I removed KDE -- she learned how
to boot into Linux & start X just so she can play kmahjongg and a couple
of the other games. This by itself is a reason to have KDE available;
you can spend a few minutes showing newbies a comfortable interface
and blunt the irrational fear of not-Windows.
<P>
Looking for a 3-button ADB mouse,
<P>
--<BR>
Larry
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 24 May 1999 14:52:06 +0200<BR>
From: Roger
Subject: <font color="navy">MTBF for Craig Burton</font>
<P>
Craig Burton said "Show me the MTBF figures"
<P>
I am used to a hardware background, where we calculate MTBF figures
before releasing systems. If nothing else, they give a rougth guide to
how many spares you need;-)
<P>
BUT, basicly speaking, this calculation is done by taking an MTBF figure
for each element (This type of component employed in this manner has
this MTBF), which are text book figures derived from statistical
analysis, and then you add them all together.
<P>
This means if system A has 10 widgets and 6 doofas, whilst system B has
15 widgets and 12 doofas, then system A will have a much lower MTBF.
<P>
It may seem a harsh way to calculate reliability, but generaly speaking
it works, and one always regards system reliability as being inversely
proportional to system complexity. Most of us are not able to review the
NT source, but it is believed to be far more complex than Linux, which
would suggest that the MTBF is proportionatlely lowwer.
<P>
Of course in software there are many other parameters, but nontheless
complexity is a major parameter. Another biggie is the language used for
development, C programming is far more vulnerable than higher level
languages for obscure bugs such as memory leaks, but for performance
reasons so low level languages are considered essential for OS work, and
so both have the same vulnerability (in fact one can easily find
disaster tales of e.g. memory leaks on both platforms).
<P>
Another major factor is using tried and trusted methods (or re-using
well proven code). Much of the reason for NT's additional complexity is
that it has to support so many MS invented protocols designed to render
it incompatible with the rest of the world. This is particularly so when
one get's out of kernel space into userland, Linux makes heavy (re)use
of legacy *nix software such as sendmail which has a very long history.
<P>
In a nutshell, there are sound scientific arguments as to why Linux may
be more relaible than NT, indeed one of Linus's rallying cries is to
keep things simple, and he resists attempts to over complicate the
kernel. MS (IMHO) appear to have tied themselves in knots with all thier
attempts to do things in a proprietry manner.
<P>
I think Craigs comments that imply that people who say Linux never goes
down are talking shit and are just Linux worshippers are a bit
excessive. Of course Linux does go down, but these people are just
reflecting a common appearence that Linux boxes do seem to go months
before re-boots (so one forgets when one last re-booted), wheras NT
reboots tend to be common enougth to be frustrating (...but we re-booted
just a couple of weeks ago). It is a subtle difference, but Linux by
being a little better appears to cross the memory threshold.
<P>
All I will add is that at work I use both a Linux and NT server, neither
are particularly loaded, and both are doing file and print sharing
(allthougth the Linux box does handle a mega printer which often has
100's of megabytes in the queue, it was moved from the NT box because it
did not work there). The Linux box has only ever gone down during power
outages (no UPS), whilst the NT box (which does has a UPS), has gone
down several times in the two year period I have been in this
environment. Note that the Linux server was just loaded and set up on
the fly by ourselves, whilst the NT box was set up, and is maintained,
by an outside firm with MS certified personel.
<P>
Am I a religious nut for pointing this out?
<P>
I think Craigs comments that imply that people who say Linux never goes down are talking shit and are just Linux worshippers are a bit excessive. Of course Linux does go down, but these people are just reflecting a common appearence that Linux boxes do seem to go months before re-boots (so one forgets when one last re-booted), wheras NT reboots tend to be common enougth to be frustrating (...but we re-booted just a couple of weeks ago). It is a subtle difference, but Linux by being a little better appears to cross the memory threshold.
<P>
--
Bye for now, And watch out for those
low flying Penguins.......
<P>
Roger
<P> <hr> <P>
<!--================================================================-->
<center>Published in <i>Linux Gazette</i> Issue 42, June 1999</center>
<!--====================================================================-->
<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="./lg_bytes42.html#general">News in General</a>
<li><a HREF="./lg_bytes42.html#software">Software Announcements</a>
</ul>
</td></tr></table>
</center>
<a name="general"></a>
<p><hr><p>
<!-- =================================================================== -->
<center><H3><font color="green">News in General</font></H3></center>
<P> <hr> <P>
<!-- =================================================================== -->
<center><IMG ALT=" " SRC="./gx/cover63.jpg"></center>
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
July 1999 <I>Linux Journal</I>
</font>
</H3>
<P>
The July issue of <A HREF="http://www.linuxjournal.com/"><I>Linux
Journal</I></A> will be hitting the newsstands June 11.
This issue focuses on Science and Engineering. Feature articles include
"Archaeology and GIS", "SCEPTRE: Simulation of Nonliear Electric Circuits",
Stuttgart Neural Network Simulator" and "Real-Time Geophysics Using Linux".
Also included are an article by Dan York on "Building a Linux Certification
Program, one by Jon "maddog" Hall about his visit to Fermi Labs at Spring
COMDEX and an interview with Dev Mazumdar and Hannu Savolainen of 4Front
Technolgies.
<I>Linux Journal</I> now has articles that appear "Strictly On-Line".
Check out the Table of Contents at
<A HREF="http://www.linuxjournal.com/issue62/index.html">
http://www.linuxjournal.com/issue62/index.html</A> for articles in this
issue as well as links to the on-line articles.
To subscribe to <I>Linux Journal</I>, go to <A
HREF="http://www.linuxjournal.com/ljsubsorder.html">
http://www.linuxjournal.com/ljsubsorder.html</A>.
<P>
<font color="green">
For Subcribers Only</font>: <I>Linux Journal</I> archives are now available
on-line at <A
HREF="http://interactive.linuxjournal.com">http://interactive.linuxjournal.com/</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
1999 USENIX Annual Technical Conference
</font>
</H3>
<P>
June 6-11, 1999 -- Monterey Conference Center, Monterey, California
<P> The Keynote will be by John Ousterhout, creator of Tcl/TK, speaking on a
fundamental shift in software development to applications created by
extending existing applications, protocols, frameworks, and devices.
<P> The FREENIX track is devoted to high-level technical discussion of open
source software. Peer-refereed papers, expert talks, and evening sessions
will be led by leading OSS developers including Linus Torvalds, Kirk
McKusick, Theodore Ts'o, Theo de Raadt, and Robert J. Chassell for Free
Software Foundation/GNU. (Richard Stallman had planned to lead a BoF but
will be in Turkey on FSF business.)
<P> Web site: <A HREF=http://www.usenix.org/events/usenix99>
http://www.usenix.org/events/usenix99</A>
<P>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
2000 USENIX Annual Technical Conference: Call For Papers
</font>
</H3>
<P>
June 18-23, 2000 -- San Diego, California
<P>
The Program Chair, Christopher Small, Lucent Technologies-Bell Labs, and
the Program Committee seeks to bring together the broad advanced computing
community under a single roof to share the results of the latest and best
work, find points of common interest and perspective, and develop new ideas
that cross and break boundaries. They invite your submission of original
and innovative papers. Invited Talk proposals and suggestions and
proposals of tutorials are also very welcome.
<P>
Paper submissions are due November 29, 1999.
<P>
See <A HREF=http://www.usenix.org/events/sec99/cfp.html>
http://www.usenix.org/events/sec99/cfp.html</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
Linux support in Indonesia
</font>
</H3>
<P>
PT Cakram DataLingga Duaribu has announced it's first commercial Linux support
in Bogor, West Java, INDONESIA. The support includes Linux consultation
service, Home PC pre-installed with RedHat Linux, Linux Servers with special
configurations.
<P>
For more information, contact <A HREF=http://cdl2000.or.id/linux.html>
http://cdl2000.or.id/linux.html</A> or
<A HREF=mailto:linux-support@cdl2000.or.id>linux-support@cdl2000.or.id</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
Linux 3D Gaming Initiative looking for volunteers
</font>
</H3>
<P>
The Linux 3D Gaming Initiative (<A HREF=http://www.linux3d.net>
http://www.linux3d.net</A>) is a pro-bono community resource project initiated
by Full On 3D (<A HREF=http://www.fullon3d.com>http://www.fullon3d.com</A>).
It is open to and depending on contributors from all sorts of hardware and
gaming websites..
<P>
Voluteers needed:
<UL>
<LI> Linux gurus of many shades, especially XServer and OpenGL=20
<LI> networking under Linux ( LAN setup, internet, etc... )
<LI> 3D theory and application
<LI> Graphic artist(s)
<LI> News hunters/updaters - this is a daily work, little HTML
knowledge is needed
<LI> Forum moderators
</UL>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
Linux Administrators Security Guide 0.1.0
</font>
</H3>
<P>
<A HREF=https://www.seifried.org/lasg/>https://www.seifried.org/lasg/</A><BR>
150+ pages, Adobe Acrobat format. An https:-capable browser is required for
download (This means a browser that can view secure webpages, such as recent
versions of Netscape or Internet Explorer.)
<P>
There is an LASG FAQ in HTML format, but https: is still required.<BR>
<A HREF=https://www.seifried.org/lasg/lasg-faq.html>
https://www.seifried.org/lasg/lasg-faq.html</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
sourceXchange: Software-Development Model of the Future
</font>
</H3>
<P>
More than just a job-posting or recruiting Web site, sourceXchange is
the industry's first vehicle to manage the open-source development
process that protects the interests of both corporate sponsors and
open-source developers.
<P>
The sourceXchange is a Web site that maintains a database of all
published project RFPs posted by corporate sponsors, registers
open-source developers and their teams, manages RFP responses from the
developer community, and manages payment. It also will incorporate
peer review and project milestones to ensure quality and reliability of
each development project.
<P>
SourceXchange, an affiliate of O'Reilly & Associates, was founded in
conjunction with HP, the founding sponsor. The two companies plan to
launch the service in early summer with an array of open-source
development projects from HP that expand its commitment to open-source
technologies. Pending a successful beta launch in July, sourceXchange
will accept projects from other enterprise sponsors.
<P>
See <A HREF=http://www.sourcexchange.com>www.sourcexchange.com</A> for
details.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
Cosource.com: another service to fund Open Source development
</font>
</H3>
<P>
Redmond, WA -- Veriteam, Inc., today announced the launch of their
web-based service, Cosource.com (
<A HREF=http://www.cosource.com>www.cosource.com</A>), which will
enable users of Open Source Software to directly influence the
development of Open Source Projects.
<P>
Cosource.com will launch the beta-testing phase of their service on
June 1, 1999. During the beta-testing phase, registered sponsors will
nominate seed projects for development by Open Source developers, while
programmers will register as potential developers of sponsored
projects. After the beta phase, Cosource.com will begin accepting
sponsorships for specific projects from consumers of Open Source
Software.
<P>
Cosource.com allows individuals to offer financial rewards to
developers of Open Source Projects in exchange for creating software
that meets the individuals' needs. On the web site, a database records
the specifications and initial sponsorship amount offered for a
project. After the initial sponsorship, other sponsors can easily add
their sponsorship amounts to the project, thus increasing the bounty
offered for the project.
<P>
Once a significant bounty has accrued, developers bid for the right to
produce the software according to the specifications detailed by the
project's sponsors. The Staff at Cosource.com coordinate the interface
between the sponsors and developers, making sure the needs of the
sponsors are met and the developers are paid for their efforts.
Sponsors make their payments via a secure credit card payment system,
and the developer is paid with one check issued by Cosource.com.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
O'Reilly "Open-Sources" <EM?OpenSources: Voices From the Revolution</EM>
</font>
</H3>
<P>
Sebastopol, CA-O'Reilly & Associates announced today that they a
are making the entire new book, <EM>?OpenSources: Voices From the
Open Source Revolution</EM> freely available (or "open-sourced")
on their
<A HREF=http://www.oreilly.com/catalog/opensources/book/toc.html>
web site</A>.
<EM>Open Sources</EM> is a collection of essays that offer insight into
how the Open Source movement works, why it succeeds, and
where it is going.
<P>
<EM>OpenSources</EM>, published in January 1999, has earned considerable
critical acclaim. In "OpenSources", Open Source pioneers such as Brian
Belendorf (Apache), Scott Bradner (Internet Engineering Task Force),
Jim Hamerly (Netscape), Kirk McKusick (Berkeley Unix), Tim O'Reilly
(O'Reilly & Associates), Tom Paquin (mozilla.org.), Bruce Peren (Open
Source Initiative), Eric Raymond (Open Source Initiative), Richard
Stallman (Free Software Foundation), Michael Tiemann (Cygnus
Solutions), Linus Torvalds (Linux), Paul Vixie (Bind), Larry Wall
(Perl), and Bob Young (Red Hat) share their vision of the Open Source
movement.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
Pacific HiTech and Computer Associates announce Linux partnership
</font>
</H3>
<P>
ISLANDIA, N.Y., and TOKYO, JAPAN, May 18, 1999--Computer Associates
International, Inc. (CA) and Pacific HiTech today announced a partnership
to broaden the acceptance of Linux and Linux-based applications by
corporate users across the Pacific Rim and worldwide.
<P>
Under terms of the agreement, CA and Pacific HiTech will create a unique,
high-value operating system solution that incorporates both Pacific
HiTech's TurboLinux and CA's industry-leading Unicenter TNG management
technology. CA will develop versions of Unicenter TNG and Unicenter TNG
Framework to support TurboLinux, while Pacific HiTech will promote the use
of Unicenter TNG as the premier management solution for its Linux customer
base. The companies have also agreed to collaborate closely on engineering
multiprocessor clustering and failover support for their respective
solutions.
<P>
Here's the
<A HREF=http://www.cai.com/press/1999/05/ca_pacific_hitech.htm>
full press release</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
Pacific HiTech and IBM
</font>
</H3>
<P>
Pacific HiTech and IBM announced an industry first partnership whereby Pacific
HiTech will ship IBM's DB2 Universal Database with its Linux Operating
Suite, TurboLinux.
<P>
Pacific HiTech will sell its TurboLinux products integrated with IBM
middleware - beginning with DB2 Universal Database - through its channels in
Asia and North America.
<P>
Also announced today was the largest deployment to date of IBM NetFinity
servers running Linux. The deployment, which took place at Kyoto Sangyo
University, a leading university based in Kyoto, Japan, involves more than
600 IBM NetFinity 3000 servers running on Pacific HiTech's TurboLinux
workstation. The installation of this technology will enable the
university's students, faculty and researchers to run both the TurboLinux
workstation and Microsoft Windows NT operating systems on a single network.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
Intel and H-P: Linux on Merced
</font>
</H3>
<P>
Intel and HP have announced that the
Merced program has included Linux as one of the Operating Systems the
chip will be certified on at its release date.
<P>
The announcement is on
<A HREF=http://developer.intel.com/design/processor/future/overview/sld020.htm>
Intel's website</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
USALogin web site revamp (pre-configured Linux systems)
</font>
</H3>
<P>
USALogin specializes in pre-configured Linux solutions designed to snap into your existing corporate network.
<P>
USALogin's solution will
<UL>
<LI> Protect your network through firewalling
<LI> Manage your REAL-TIME email - both within your office and to the outside world. (yourname@yourcompany.com)
<LI> Host the corporate website (www.yourcompany.com)
<LI> Allow multple users to access the Internet through one telephone line
<LI> Manage the corporate email lists
<LI> Interface seamlessly with Microsoft Outlook, Office and Netscape
</UL>
<P>
The system is complete and installed into your office with a single low monthly cost.
<P>
USALogin's web site is <A HREF=http://www.usalogin.net>www.usalogin.net</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
CTiTEK replaced Windows NT with Linux on a client's webserver
</font>
</H3>
<P>
Chesterfield, MO - May 18, 1999 - CTiTEK Inc.
<P>
"This is the fourth Linux installation in two months. Others consisted of
firewalls and Email servers.
<P>
An estimated $2,000 - $10,000 annual savings can be realized when switching to
a Linux server. (Includes labor, hardware, and software savings).
<P>
A Microsoft FrontPage error on an Email form was the last straw that caused
this conversion to Linux.
<P>
Instead of consistent errors and copious amounts of time spent on Microsoft's
software undocumented 'issues', it was decided to rebuild the system into a
Linux machine.
<P>
It all started by using Windows NT with Option Pack 4 to run multiple web sites
one year ago. The customer wanted to run several websites on one machine, so
Windows NT with Option Pack 4 was used.
<P>
Today it became necessary to run an Email Form (an area on the website that one
can fill-in and the info is sent by email to someone in the company) on the
website, and FrontPage was used to keep everything in the MS 'family'.
Unfortunately the FrontPage Email Form did not work properly with the
webserver. After spending countless hours trying to solve the problem,
including several calls to Microsoft, we realized that the Windows NT Operating
system will have to be rebuilt with the latest version of the Management
Console (An uninstall and installation of the latest option pack did not work).
<P>
We selected Linux because it is a robust, free Operating System (benchmark
tests with reputable magazines indicate a minimum 75% higher performance).
<P>
TRADEMARKS. Microsoft, Windows, Windows NT, and/or other Microsoft products
referenced herein are either trademarks or registered trademarks of Microsoft."
<P>
CiTEK's website is <A HREF=http://www.citek.com>www.citek.com</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
Alpha Processor, Inc. joins Linux International
</font>
</H3>
<P>
LINUX EXPO, Raleigh, NC, May 19, 1999 - Alpha Processor, Inc. (API), the
leading provider of the world's fastest 64-bit microprocessor and related
technologies, today announced it has joined the non-profit Linux
International organization, formally pledging its continued commitment to
support application development for the Linux operating system.
<P>
"In becoming a member of Linux International, API joins industry
forerunners dedicated to the mass acceptance of Linux," said Jon "Maddog"
Hall, executive director of Linux International. "Offering today's leading
high-performance platform for Linux, API is an ideal candidate for
membership. This symbol of API's commitment to growing this market
undoubtedly will inspire innovations throughout the Linux community."
<P>
API is committed to developing enabling technologies to speed adoption and
growth of applications built on the Alpha Linux platform. Alpha's superior
speed, performance and reliability make it a natural environment for Linux.
API's marketing and engineering partnerships and industry standard platform
price points are expected to expand Alpha's share in this growing market.
<P>
The company's website is
<A HREF=http://www.alpha-processor.com>www.alpha-processor.com</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
Magic Software announces the "Magic for Linux Really Cool Contest"
</font>
</H3>
<P>
IRVINE, CA (May 20, 1999) -- Magic Software Enterprises (NASDAQ: MGIC)
announced today that it will award a free 10-day cruise for two to
Antarctica to the developer who builds the best e-commerce solution for
the Linux platform using Magic, the company's highly productive
development technology. The contest, titled "The Magic for Linux Really
Cool Conte st", runs from May 20, 1999 through October 15, 1999, with all
entry forms d ue no later than September 30, 1999. Complete details on
the contest can be obtained through the company's web site,
<A HREF=http://www.magic-sw.com>www.magic-sw.com</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
Ardent Software delivers key data management software for Red Hat Linux
</font>
</H3>
<P>
WESTBORO, Mass., May 20, 1999 - Ardent Software, Inc. (Nasdaq: ARDT), a
leading global data management software company, today announced a
partnership with Red Hat Software, the market leading Linux distributor and
service provider. In partnership with Red Hat, Ardent will port key data
management software tools to Red Hat Linux (RHL), allowing Ardent's
extensive channel of resellers and distributors to make their business
applications available to Red Hat Linux users. Among the Ardent products to
be available on the Red Hat Linux platform are its UniVerse and UniData
relational databases and related development tools, including the System
Builder multi-tier 4GL and RedBack Web OLTP environment.
<P>
Ardent's web site is <A HREF=http://www.ardentsoftware.com>
www.ardentsoftware.com</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
IACT's Freedom of Choice Petition
</font>
</H3>
<P>
Join us in IACT's Freedom of Choice Petition, to stop the exclusive
pre-installation [bundling or tying] of a single company's software on the
computers sold, bought and used across the world. To bring real choice and
innovation to the PC market, we should be able to buy and sell new
computer systems compatible with Linux and a wide range of software
programs, in any combination.
<P>
Help us send that direct message to the PC companies, by signing and
supporting IACT's Freedom of Choice Petition! We're already getting great
support from the Internet community and from users, programmers and
resellers of Linux, OS/2, Unix, DOS, BeOS, BSD and yes, Windows, too. To
add your name to all of theirs, just use either our on-line form or
regular e-mail. Details are at
<A HREF=http://pages.cthome.net/iact/iaction-freechoice.html>
http://pages.cthome.net/iact/iaction-freechoice.html</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
Linux Links
</font>
</H3>
<P>
Rasterman explains his departure from Red Hat:
<A HREF="http://slashdot.org/article.pl?sid=99/05/31/1917240&mode=thread">
http://slashdot.org/article.pl?sid=99/05/31/1917240&mode=thread</A>
<P>
LuCAS: Spanish-language Linux documentation:
<A HREF=http://lucas.hispalinux.es>http://lucas.hispalinux.es</A>
<P>
IBM announces support of four Linux distributions:
<A HREF=http://www.theregister.co.uk/990525-000006.html>
http://www.theregister.co.uk/990525-000006.html</A>.
<P>
<A HREF=news.sco.txt>
SCO's views of Linux and comments on recent press articles
<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">
Proven dk bookkeeping program
</font>
</H3>
<P>
May 3, 1999 -- Proven Software,Inc. today released Proven dk, Small Business
Edition. Proven dk is a single-user quick entry bookkeeping
package written specifically for the Linux desktop. The Small
Business Edition is priced at $99 (US). An evaluation copy is available
on the company's website.
<P>
Despite its low price, Proven dk, Small Business Edition is a
comprehensive accounting system which includes Sales Invoicing,
Accounts Receivable, CheckWriter, Accounts Payable, General
Ledger, and Financial Report Generator. This new product provides
the general bookkeeping and accounting essentials for most small
businesses and organizations.
<P>
The company's web site is
<A HREF=http://www.provenacct.com>www.provenacct.com</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
EasyCopy: printing and scanning prorgrams for CAD-related industries
</font>
</H3>
<P>
SAN JOSE, Calif., April, 1999 - AutoGraph International
(AGI) debuted EasyCopy 6.0 at the COE TechniFair with a
scheduled late May release to the marketplace. EasyCopy 6.0
is a major rewrite of AGI's flagship, EasyCopy/X, which has
an installed base of more than 150,000 users worldwide. With
this new generation EasyCopy has taken a major step from a
printing solution to a flexible set of image communication
tools.
<P>
The company says EasyCopy, EasyConvert, EasyCopy/Page, EasyCopy/Scan and
EasyCopy/Graphics run on Linux. Pricing of EasyCopy begins at $395.
<P>
The company's URL is <A HREF=http://www.augrin.dk>http://www.augrin.dk</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
Other Products
</font>
</H3>
<P>
Harlequin Lispworks Beta for Red Hat on Intel (Common Lisp implementation):
<A HREF=http://www.harlequin.com/devtools/lisp>http://www.harlequin.com/devtools/lisp</A>.
<P>
/BriefCase 3.0 Released as OpenSource (Software Configuration Management
solution):
<A HREF=http://www.applied-cs-inc.com/>
http://www.applied-cs-inc.com/</A>.
<P>
Sylvan Prometric to Deliver New Linux Certification Tests:<BR>
Information about the Sair Linux training and certification
program: <a href="http://www.linuxcertification.org/">www.linuxcertification.org</a><BR>
Locations of Sylvan APTCs:
<a href="http://www.sylvanprometric.com/">www.sylvanprometric.com</a>
<P>
Integrated Computer Solutions, Inc. (ICS) has released its flagship product, Builder Xcessory (BX PRO(tm)), is now
available for SuSE Linux. The press release is at
<A HREF=http://www.ics.com/about/whatshot/press_releases/bxlinux-suse.html>
http://www.ics.com/about/whatshot/press_releases/bxlinux-suse.html</A>.
This is a WSYWIG integrated development environment.
<P>
Metroworks Code Warrior software development tool has been
ported to Red Hat.
<A HREF=http://www.metroworks.com>http://www.metroworks.com</A>.
<P>
Web-4M(tm) 2.5 provides a comprehensive collaboration/groupware environment for
Linux. The Web-4M server supports email, news, phone, the Browseable Document
Library(tm), the Interactive Slide Show(tm), audio conferencing, chat, a white
board, a calendar, scheduler and more. The Web-4M server runs under Linux and
other platforms in conjunction with the Apache web server. Clients can be Linux
or any platform that supports a Java-compliant web browser.
<A HREF=http://www.jdhtech.com>http://www.jdhtech.com</A>.
<P>
SuperAnt releases Linux Security CD-ROM:
<A HREF=http://www.superant.com>http://www.superant.com</A>.
<P>
VariCAD professional CAD system:
<A HREF=http://www.varicad.com>www.varicad.com</A>.
<P> <hr> <P>
<!--================================================================-->
<center>Published in <i>Linux Gazette</i> Issue 42, June 1999</center>
<P> <HR> <P>
<!-- =================================================================== -->
<A HREF="./lg_toc42.html"><IMG SRC="../gx/indexnew.gif" ALT="[ TABLE OF
CONTENTS ]"></A>
<A HREF="../index.html"><IMG SRC="../gx/homenew.gif" ALT="[ FRONT
PAGE ]"></A>
<A HREF="./lg_mail42.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
<A HREF="./lg_answer42.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P><HR><P>
<h5>This page written and maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto: gazette@ssc.com">gazette@ssc.com</A><BR>
Copyright © 1999 Specialized Systems Consultants, Inc. </H5>
<P>
<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>Setting up a Loopback Mount --or--
<dd><A HREF="#tag/1"
><strong>
Loopback (localhost) NFS Mounting for FTP
</strong></a>
<dt><A HREF="#tag/2"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>sites for general disk info? --or--
<dd><A HREF="#tag/2"
><strong>
General HD Info and Boot Code
</strong></a>
<dt><A HREF="#tag/3"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>TCP Sockets --or--
<dd><A HREF="#tag/3"
><strong>
SYN, SYN/ACK, ACK, ACK, ACK: TCP Handshaking
</strong></a>
"Pleased to meet you!"
<dt><A HREF="#tag/4"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>cvs tree for pam --or--
<dd><A HREF="#tag/4"
><strong>
PAM chroot
</strong></a>
Wherein Jim rants about PAM
<dt><A HREF="#tag/5"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Resizing partitions --or--
<dd><A HREF="#tag/5"
><strong>
Filesystem Management: What must be "resident" at all times?
</strong></a>
<dt><A HREF="#tag/6"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Hubs --or--
<dd><A HREF="#tag/6"
><strong>
Ethernet Switches vs. Hubs
</strong></a>
<dt><A HREF="#tag/7"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>procmail and saved variables. --or--
<dd><A HREF="#tag/7"
><strong>
MATCH and Replaceable Parameters in procmail
</strong></a>
<dt><A HREF="#tag/8"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
><strong>RMA for Video Card</strong></a>
<dt><A HREF="#tag/9"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Unix Internal --or--
<dd><A HREF="#tag/9"
><strong>
Inodes Numbering: An Academic Question
</strong></a>
<dt><A HREF="#tag/10"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>One Bad Sector thats gettin on my nerves! --or--
<dd><A HREF="#tag/10"
><strong>
One Bad Sector
</strong></a>
It Doesn't Ruin the Whole Disk
<dt><A HREF="#tag/11"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Server shutdown/restart: 2-key keyboard --or--
<dd><A HREF="#tag/11"
><strong>
Server Shutdown Button
</strong></a>
<dt><A HREF="#tag/12"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>hal91 --or--
<dd><A HREF="#tag/12"
><strong>
HAL91 (Floppy Based Linux Distribution)
</strong></a>
<dt><A HREF="#tag/13"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>ping at a differnt port --or--
<dd><A HREF="#tag/13"
><strong>
Ping a Port: NOT
</strong></a>
<dt><A HREF="#tag/14"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Hey answer guy!!! --or--
<dd><A HREF="#tag/14"
><strong>
Linux as a Job!
</strong></a>
Hobbies become fun and profit
<dt><A HREF="#tag/15"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
><strong>New Kernel Loses Ether Driver;
Dial on Demand and Masquerading</strong></a>
<br>A grabbag of user questions.
<dt><A HREF="#tag/16"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
><strong>pcmcia install on debian</strong></a>
<dt><A HREF="#tag/17"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>work-around for gdi printer? --or--
<dd><A HREF="#tag/17"
><strong>
WinPrinter Work-around
</strong></a>
<dt><A HREF="#tag/18"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Question about 2 GB max? --or--
<dd><A HREF="#tag/18"
><strong>
Maximum Filesize vs. Maximum Filesystem Size
</strong></a>
<dt><A HREF="#tag/19"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Advanced ipfwadm question. icmp forwarding. --or--
<dd><A HREF="#tag/19"
><strong>
ICMP Masquerading
</strong></a>
<dt><A HREF="#tag/20"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>RedHat 5.2 Kernel 2.0.36 --or--
<dd><A HREF="#tag/20"
><strong>
Upgrade Breaks Several Programs, <TT>/proc</TT> Problems, BogoMIPS Discrepancies
</strong></a>
<br>A visit to "Library Hell"
<dt><A HREF="#tag/21"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Pls spare a minute: --or--
<dd><A HREF="#tag/21"
><strong>
Spare a Minute to Provide "Some Info"
</strong></a>
<dt><A HREF="#tag/22"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>HELP!!!!!!!!!! --or--
<dd><A HREF="#tag/22"
><strong>
Data "Losted" (sic)
</strong></a>
<dt><A HREF="#tag/23"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>"Network Neighborhood" --or--
<dd><A HREF="#tag/23"
><strong>
Network Neighborhood: Heterogenous File Sharing
</strong></a>
<dt><A HREF="#tag/24"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
><strong>AOL</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 -->
<h4 align="center">Lies, Damn Lies and Benchmarks</h4>
<p>Those of you who read slashdot (<a href="http://www.slashdot.org"
>http://www.slashdot.org</a>), the Linux Weekly News
(<a href="http://www.lwn.net">http://www.lwn.net</a>), or other common
Linux webazines and forums have undoubtedly tired of reading about
the Mindcraft fiasco. If so, maybe you'll skip this and go unto the
usual collection of "Answer Guy" questions.</p>
<p>The Mindcraft story has been interesting. As some of my colleagues
have pointed out their "attack" on Linux serves more to legitimize
Linux as a choice for business servers than to undermine it. In
addition it appears that the methodology they used has uncovered
some legitimate opportunities for improvement in the Linux process
scheduling facilities.</p>
<p>I'm referring to the "thundering herd" issue that results from a
large number of processes all doing a <tt>select()</tt> call on a given
socket for file resource -- such as having a 150 Apache servers
listening on port 80. However that is not a new issue; Richard
Gooch (a significant contributor to the Linux kernel mailing list
and code base) discussed similar issues and possible patches almost
a year ago:</p>
<dl><dt>I/O Event Handling Under Linux
<dd><tt><a
href="http://wwwatnf.atnf.csiro.au/people/rgooch/linux/docs/io-events.html"
>http://wwwatnf.atnf.csiro.au/people/rgooch/linux/docs/io-events.html</a></tt>
</dl>
<p>It looks like some work will go into the Linux kernel and into
Apache to resolve some of those issues. In addition I know that
Andrew Tridgell and Jeremy Allison (a couple of the principal
members of the Samba development team) have been been continuing
thier work on Samba.</p>
<p>So the Linux/Apache/Samba combination will show improvement for the
general case. Samba 2.0.4 just shipped and already has some of
these enhancements. Some of the interesting changes to the Linux
kernel might already be present in the 2.3.3 developmental kernel
(and might be easily pack ported as a set of 2.2.9 patches). So we
could see some of the improvements within a couple of weeks.</p>
<p>Some of these improvements may give Linux a better showing in any
"Mindcraft III" or similar benchmark. Maybe they won't. The
<em>improvements</em> will be for the general case --- and I don't see
much chance that open source developers will sneak in special case
code that will only improve "benchmark" performance without being
of real benefit.</p>
<p>That's one of the problems with closed source vendors. There's
great temptation to put in code that isn't of real value to real
customers but will be great for benchmarks and magazine reviewers.
This has been detected on several occassions by several vendors;
but it would be completely blatant in any open source project.</p>
<p>Frankly, I don't care if we improve our Mindcraft results. I
prefer to question the very premises on which the whole discussion
is based.</p>
<p>There are three I'd like to mention:</p>
<ul>
<li>Big Server for Little Jobs
<li>Apache for simple HTTP of static HTML
<li>SMB as a File Service
</ul>
<p>The fallacy of the whole Mindcraft mindset is that we should have
"big servers" to provide file and web services. Let's ask about that.</p>
<p>Why?</p>
<p>The reason Microsoft wants to push big servers should be relatively
obvious. Microsoft's customers are the hardware vendors and VARs.
Most end customers, even the IT departments at large corporations,
don't install their own OS. They order a system with the OS and
major services pre-installed (or order systems and pay contractors
and/or consultants to perform the installation and initial
configurations).</p>
<p>So, it is in Microsoft's vested interest to encourage the sale of
high end and expensive systems. The cost of NT itself is then a
tinier fraction of the overall outlay. One or two grand for the OS
seems less outrageous when expressed as a percentage of 10 to 20
thousand dollars.</p>
<p>So, how many customers really need 4-way SMP systems? Are 4-way
SMP systems <em>EVER</em> really a better choice for web and file services
than a set of four or more similar quality separate systems?</p>
<p>Big 4 or 8 CPU SMP servers are probably the best choice for some
applications. It's even possible that such systems are optimal for
SOME web and file servers. What's really important, however, is
whether such systems are appropriate to YOUR situation.</p>
<p>Back when NT was first starting to emerge as a real threat to
Netware it was interesting that the press harped on the lack of
"scaleable SMP" support in Netware 3.x and 4.x. I'm sure there are
analysts today who would continue to argue that this was the
primary reason for Netware's loss of marketshare during the early
to mid '90s.</p>
<p>Personally I suspect that the bigger factors in Netware's woes were
from three other causes:</p>
<dl><dt>Client support: <dd>MS shipped Win '95 and WfW with
support for SMB. Novell never adapted their
servers to work with the support that was shipped
with the clients. By all accounts SMB is a
vastly inferior suite of protocols to Netware's
NCP. However, IT managers are often eager to
save a penny on every client by not having their
sysadmins and help desk people visit every new
system to install network client drivers.
<dt>TCP/IP: <dd>Novell provided TCP/IP early on --- in the
form of expensive addons to their main servers,
and a relatively expensive suite of client tools
for MS-DOS. They didn't adapt to the emergence
of the Internet in corporate circles by including
TCP/IP as standard features in their base
packages. Meanwhile IPX's SAP (service
advertising protocols) were sucking up a
noticable portion of the available bandwidth as
more companies put MANY more devices on their
LANs and WANs. Novell had the technology, but
they failed to rethink their pricing model,
probably in a doomed effort to protect some of
their revenue streams.
<dt>Pricing: <dd>Microsoft had a huge advantage over Novell.
They could afford to practically give away NT
server for a few years (and perhaps turn a blind
eye to some amount of piracy, temporarily) so
long as that would cost Novell some server licenses.
</dl>
<p>Of course, I could be wrong. I'm not an industry analyst.
However, I do know that the considered opinion of the Netware
specialists I knew back around '93 was that Netware didn't need SMP
support. It was plenty fast enough without additional processors.
NT, on the other hand, has so much overhead that it needs about 4
CPUs to get going.</p>
<p>So, if we're not going to use "big servers" how do we "scale?"</p>
<p>Replication and Distribution.</p>
<p>Look at how the whole Internet scales. We have the DNS system
which distributes (and delegates) the management of a huge database
over millions of domains. We don't even bat an eye that an average
DNS lookup takes less than a second. The SMTP mail system also has
proven scalability. It handles untold millions of messages a day
(some of which isn't even spam).</p>
<p>Of course some people are already chomping at the bit to write to
me and explain what an idiot I am. There are problems with
replicating files and HTML across multiple servers. Some
applications are very sensitive to concurrency issues and race
conditions. There are cases where the accessor of a file must have
the absolute latest version and must be able to retain a lock on
it. There are cases where we want to lock just portions of files, etc.</p>
<p>However, these are not the most common cases. Going for the "big
server" approach is often a sign of laziness. Rather than identify
the specific sets of applications that require centralized control
and access, they try to toss everything on the "one size stomps
all" server.</p>
<p>In the degenerate case of the Mindcraft benchmarks it would be
amusing to pit four low cost PCs running Linux against one "big
server" running NT. I say "degenerate case" since the benchmarks
used there don't seem to have any concurrency or locking issues (at
least not for the HTTP portions of the test).</p>
<p>Needless to say we'd also seem some advantages beyond the
scalability of our "hoard of cheap servers" approach. For example
we could use dynamic DNS and failover scripts to ensure that
transparent availability was maintained even through the loss of
three of the four servers. There's certainly some robustness to
this approach. In addition we can perform tests and upgrades to
one or more systems in these loose clusters without any service
down time.</p>
<p>Because these use commodity components it's also possible to keep
shelf spares in an on site depot. Thus reducing the downtime for
individual nodes and providing the flexibility to rapidly increase
the clusters capacity in the face of exceptional demands.</p>
<p>All that --- and it's usually CHEAPER, too.</p>
<p>Naturally there are some challenges to this approach. As I
mentioned, we have to configure these systems with some sort of
replication software (<tt>rdist</tt>, <tt>rsync</tt>) and test
regularly to ensure that the replication process isn't introducing
errors and/or corruption. There are also the problems with writable
access and the needs for the nodes in a cluster to communicate about
file locking and application (i.e. CGI) state.</p>
<p>The point is not so much to promote the "hoard of thin servers"
approach as to question the premise. Do we really need a "big
server" for OUR task?</p>
<p>I've talked about the fundamental disconnect between mass marketing
and customer requirements before. "Mass marketing" sells features
in the hopes that masses will will buy them. Customers must
consider the "benefits" of each "feature" before accepting any
arguments about the superiority of one product's implementation of
a given "feature" over another.</p>
<p>As an example let's consider Linux' much vaunted "multi-user"
feature. To many people this is not a benefit. Many people will
never have anyone else "logged into" their system. To people like
my mom "multi-user" is just an inconvenience that requires her to
"login" and means that she sometimes needs to 'su' to get at
something she wants. (Granted there are ways around those). In
some way Linux' "multi-user" features (and those of NT, for that
matter) are actually a detriment to some people. The represent a
cost (albeit a small and easily surmounted one) to some users.</p>
<p>This leads us to the other two issues that I would question.</p>
<p>Apache is not necessarily the best package for providing
high speed, low-latency, HTTP of simple, static HTML files.</p>
<p>There are lightweight micro web servers that can do this
better. I've also heard of people who use a small cluster
of Squid proxy servers interposed between their Apache servers
and their routers. Thus the end users are transparently
access an organizations Squid caches rather than directly accessing
it's web servers. This is a strange twist on the usual case
where the squid caches are located at the client's network.</p>
<p>By all accounts SMB is a horrid filesharing protocol. The authors
of Samba take a certain amount of wretched glee in describing all
of the misfeatures of this protocol. Its sole "advantage" is that
it's included, preconfigured with 98% of the the client systems
that are shipped by hardware vendors today.</p>
<p>Note: I'm NOT saying that NFS is any better. Its main advantage
is that almost all UNIX systems support it.</p>
<p>Personally I have high hopes for CODA. Its about time we deployed
better filesystems for the more common requirements of a new millennia.</p>
<p>I'm not the first to say it:</p>
<blockquote>
"There are lies, damned lies, and benchmarks"
</blockquote>
<p>However, the important thing about any statistic or benchmark is
to understand the presenter. Look behind the numbers and
even the methodology and ask: "Who says?" "What do they want
from this?"</p>
<p>Alternatively you can just reject statistics and benchmarks
from others, and make your decisions based on your own criteria and
as a result of your own tests.</p>
<p>The scientific method should not be used solely by scientists. It
has application for each of us.</p>
<p>-- Jim Dennis</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"
>Loopback (localhost) NFS Mounting for FTP</H3>
<p><strong>From Mark S. Turczan on Sun, 02 May 1999
</strong></p>
<!-- ::
Loopback (localhost) NFS Mounting for FTP
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
James,
</STRONG></P>
<P><STRONG>
Would you know of a way to setup a loopback mount within a <TT>/home/ftp</TT>
hierarchy?
</STRONG></P>
<P><STRONG>
Or could you provide a better method to achieve the following?
</STRONG></P>
<P><STRONG>
I've got a set of disks setup under software raid, and I've mounted them
under <TT>/mnt/raid</TT>. What I'd like to do is include a link from a
directory under <TT>/home/pub/Archive</TT> to the actual files under
<TT>/mnt/raid/Archive</TT>.
I've tried doing this with a symbolic link, but it doesn't seem to
resolve it when I connect through ftp.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
When you connect as "anonymous" or "ftp" through the
conventionally configure FTP service, or as any member of
a "guestgroup" to a WU-FTP daemon, you are in a chroot
jail. This is intended to prevent you (an FTP client)
from wandering around the filesystem peeking into things
where you don't belong (as an anonymous or guest user).
</BLOCKQUOTE>
<BLOCKQUOTE>
Naturally symbolic links don't pierce through a chroot wall.
</BLOCKQUOTE>
<BLOCKQUOTE>
It's possible to configure your system to act as an
NFS server and client (concurrrently) and to export a
directory tree (presumably in read-only mode) to yourself.
</BLOCKQUOTE>
<BLOCKQUOTE>
This is one of several tricks that is referred to as a
"loopback mount" (not to be confused with the
<tt>mount -o loop=</tt>... option which is a way of mounting a
file image as a filesystem). In this case you're doing
a perfectly normal NFS export, and a perfectly normal
NFS mount. The only oddity is that the export and mount
are on the same machine and are going through the loopback
network interface.
</BLOCKQUOTE>
<BLOCKQUOTE>
So you put a line in your <TT>/etc/exports</TT> file like:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><Code>
<TT>/mnt/raid/ftparea</TT> 127.0.0.1(ro,insecure)
</Code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
... and possibly some lines like:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><Code>
<TT>/mnt/raid/ftparea/no/</TT> (noaccess)
</Code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
(to define a set of subdirectories under the
exported directory tree to which you want to deny
access).
</BLOCKQUOTE>
<BLOCKQUOTE>
... and then you use a command like:
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQUOTE><CODE><BlockQuote>
mount -t nfs 127.0.0.1:/mnt/raid/ftparea <TT>/home/ftp/home</TT>
</BlockQuote></CODE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
... or whatever.
</BLOCKQUOTE>
<BLOCKQUOTE>
Personally I think it's a horrible kludge. But I've
done things sort of like this and it does work.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Thanks for any help you can offer.
<br>--
<br>Mark Turczan
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Hope that makes sense.
</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"
>General HD Info and Boot Code</H3>
<p><strong>From Erik Bryer on Sun, 02 May 1999
</strong></p>
<!-- ::
General HD Info and Boot Code
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Hi,
</STRONG></P>
<P><STRONG><DL><DT>
Got your email address from:
<DD><A HREF="http://www.linuxvalley.com/mirror/lg/issue36/tag/79.html"
>http://www.linuxvalley.com/mirror/lg/issue36/tag/79.html</A>
</DL></STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Wow! Someone who actually tells me where their
they found me! I've always thought that any e-mail
to someone you've never met should include some passing
reference of this sort.
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course, there are cases where it might be superfluous. If
you were to e-mail Linux Torvalds he'd have a pretty good
idea where you got his address; it's in the <TT>/usr/src/linux</TT>
tree on millions of computers.
</BLOCKQUOTE>
<BLOCKQUOTE>
Anyway, linuxvalley.com looks like an interesting site ---
if you read Italian. I've seen quotes of myself translated
into Italian, Portugese and a couple of other languages
--- it's amusing. (I just feel sorry for the interpreters
--- any of you out there? I owe you each a beer!).
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Do you know of any websites with general hard drive info. More
specifically, and I'm quite happy just with a web page reference if you
like, I wonder if, like dos, unix requires executable code in the boot
sector, if it even has a boot sector. I've tried alta vista, but found
mostly junk. Thanks.
</STRONG></P>
<P><STRONG>
Erik Bryer
Calgary
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Well I don't know about general hard drive info. Many
of the hard drive manufacturers put technical information
about their drives up on the web. Of course you usually
have to hunt through quite alot of marketing fluff that
clogs many corporate sites to get to the good stuff.
</BLOCKQUOTE>
<BLOCKQUOTE>
However, I can answer the question regarding boot code.
</BLOCKQUOTE>
<BLOCKQUOTE>
The PC BIOS requires that your OS, any OS be loaded from
somewhere. Your mainstream choices are: hard drive, floppy,
network and (most recently) CD-ROM. There are some devices
which emulate drives (sold under names like "ROMDisk" et
al.).
</BLOCKQUOTE>
<BLOCKQUOTE>
When loading from a hard drive the BIOS loads the first
sector (512 bytes) on track zero. This is called the
MBR. It contains two parts: some boot loader code and
a partition table. The partition table is in the last
66 bytes of the MBR. Actually there are 4 primary
partition entries of 16 bytes each, and there's a
pair of "signature" bytes which indicate whether or not
the drive has ever been initialized. The other 446 bytes
of the MBR contains the primary bootloader code.
</BLOCKQUOTE>
<BLOCKQUOTE>
As you mentioned, MS-DOS provides its own bootloader. That
just looks for the active partition and loads a secondary
bootloader from the first sector of that partition.
</BLOCKQUOTE>
<BLOCKQUOTE>
OS/2, NT, and the various PC implementations of UNIX each
provide their own bootloaders. These load code from a
"boot manager" (usually a one track partition somewhere
on the primary drive).
</BLOCKQUOTE>
<BLOCKQUOTE>
Linux offers a number of alternatives for loading the
kernel. The most common is to use the LILO package. This
consists of a program, <TT>/sbin/lilo</TT>, that reads a
configuration file (<TT>/etc/lilo.conf</TT>, by default), and builds
a set of primary and secondary boot blocks, and a set of
"maps" and writes the primary boot code and the pointers
to the secondary blocks and maps into the MBR. LILO is a
very flexible utility. You can store information on
up to 16 different boot images, you can pass parameters to
the Linux kernel (which can set various boot time
options in the kernel, or be passed along to init, and
thence to the master environment and to the rc startup
scripts). You can password restrict some or all of your
LILO boot stanzas, define messages to be displayed at
boot time, issue a command that sets an automatic "one time"
set of boot parameters (<TT>/sbin/lilo</TT> -R), etc.
</BLOCKQUOTE>
<BLOCKQUOTE>
Another option is GRUB, the GNU "grand unified bootloader."
This is slated to be the bootloader for the GNU HURD (a free
microkernel based operating system which has been under
development since before Linus started on the Linux kernel).
I've heard that GRUB can be be used now with the HURD betas
and with Linux.
</BLOCKQUOTE>
<BLOCKQUOTE>
One thing that's interesting about Linux, in contrast to
other operating systems, is that you can load it in
alternative ways. So you can load the PC Linux kernel using
LOADLIN.EXE (an MS-DOS program) or directly from Win '9x
using the updated LinLoad '95 (??? derived from LOADLIN?).
So you can have copies of your kernel in any MS-DOS
directory and "run them" from MS-DOS. You can put a Linux
kernel straight on a floppy (starting at the first block
thereon) and it will be directly loaded.
</BLOCKQUOTE>
<BLOCKQUOTE>
You can also use SYSLINUX to put a Linux kernel on an MS-DOS
formatted floppy and load it from there. (If you mount up a
<A HREF="http://www.redhat.com/">Red Hat</A> installation floppy
you'll see a copy of the
SYSLINUX.CFG file that the SYSLINUX boot loader reads).
</BLOCKQUOTE>
<BLOCKQUOTE>
It's also possible to load Linux over a network (given a
suitable bootp PROM, installed in a NIC, for example).
There is nothing to prevent a computer manufacturer from
installing a Linux kernel in their own ROMs --- loading it
with initrd (initialization RAM disk) support. There are
some people doing this for "embedded" systems already (seems
to be primarily in specialized systems, not in commodity
PCs).
</BLOCKQUOTE>
<BLOCKQUOTE>
Igel has been making Linux based Xterminal/etherterminal
systems using "Disk on a Chip" drivers for
years. (<A HREF="http://www.igelusa.com"
>http://www.igelusa.com</A>)
</BLOCKQUOTE>
<BLOCKQUOTE>
As for finding "mostly junk" .... Yeah! I get that,
too. However, a big part of "The Answer Guy's" success
is that I sift through enough of that junk to (usually)
come up with what I'm looking for. (Sometimes it's even
what my correspondents were asking about!)
</BLOCKQUOTE>
<BLOCKQUOTE>
I hope that helps.
</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"
>SYN, SYN/ACK, ACK, ACK, ACK: TCP Handshaking</H3>
<H4 ALIGN="center">
"Pleased to meet you!"</H4>
<p><strong>From Kent S on Sun, 02 May 1999
</strong></p>
<!-- ::
SYN, SYN/ACK, ACK, ACK, ACK: TCP Handshaking
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"Pleased to meet you!"
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I need help in finding information regarding how sockets are
established (not how to code them). In other words, I know that
there is a standard procedure followed (SYN,SYN/ACK,ACK) in
getting a device talking with a server.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
This is referred to as a "three way handshake."
The "SYN" flags are requests by the TCP stack at one
end of a socket to synchronize themselves to the sequence
numbering for this new sessions. The ACK flags
acknowlege earlier packets in this session. Obviously
only the initial packet has no ACK flag, since there are
no previous packets to acknowlege. Only the second
packet (the first response from a server to a client)
has both the SYN and the ACK bits set.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I am more curious in determining how, where, and who actually
handles this on the Linux server.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
The kernel.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
As an example - I have inetd looking at port 226 for me that will
start a program that will read from the socket. If this program
terminates (kill,alarm,etc...) then the device attempts to
re-establish (sends a SYN). Then one of two things happens
depending on how the program was stopped. Either the server never
responds until the device sends a reset or the server sends a
SYN/ACK and then sends a packets saying that it is finished
sending data. My questions are on the level of does RESET reset a
port or a socket, and why would a server send a finish sending
data flag if the device is requesting a connection. I have been
unable to find info about the protocols of communications that
should be taking place. Any help would be appreciated!
</STRONG></P>
<P><STRONG>
Kenneth Scott
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I don't really understand what you're asking or what
situation you are trying to describe. Giving examples
of what you see and the specific diagnostic commands
you're using to gather your data on the problem (ps,
netstat, lsof, etc) would probably help.
</BLOCKQUOTE>
<BLOCKQUOTE>
However, I can take a guess at what you might be seeing.
</BLOCKQUOTE>
<BLOCKQUOTE>
There is also a three way handshake at the termination
of a TCP session. Either side sends a packet with the
FIN (final) flag set, and waits for the other side to
acknowlege that with another FIN packet.
</BLOCKQUOTE>
<BLOCKQUOTE>
After the local process as attempted to close the
socket (and the TCP stack has sent the FIN packet to the
remote system) the process will be listed as being in the
FIN_WAIT stat when you do a '<tt>netstat</tt>' command. Buggy
TCP clients may just close their end of the connection
without completing the three way session termination. This
seems to be mostly from certain MS Windows FTP clients.
</BLOCKQUOTE>
<BLOCKQUOTE>
There seems to be no "timeout" for how long a processes
will sit in FIN_WAIT. When I managed a busy FTP server
farm for McAfee Associates (a shareware company with lots
of MS-DOS and Windows products) I used to see alot of zombies
which were children of FTP daemon processes that were in
FIN_WAIT. I had a skulker script that would find the
parents of the zombies, check their age and argument list
and summarily kill them.
</BLOCKQUOTE>
<BLOCKQUOTE>
I don't know the details about the TCP RST (reset) process.
I've at the extreme edge of my knowlege of TCP in this
message --- so I can't go into any greater detail on this.
</BLOCKQUOTE>
<BLOCKQUOTE>
However, I've heard that the best sources of information
about TCP protocols are a couple of books. One would be the
O'Reilly volume by Craig Hunt (the crab book), <em>Understanding
TCP/IP</em> <em>[ Actually, the "crab book" is
<a href="http://www.oreilly.com/catalog/tcp2/index.html"
>TCP/IP Network Administration</a>, now in its 2nd edition.
-- Heather ]</em>,
the other would be a three volume set by Comer and
Stevens <em><a href="http://www.prenhall.com/allbooks/esm_0132169878.html"
>Internetworking With Tcp/Ip: Principles, Protocols, and Architecture</a></em>.
</BLOCKQUOTE>
<BLOCKQUOTE>
As you've suggested these are written more with the
programmer in mind. However the O'Reilly book seems to be
more suitable for sysadmins and users (besides being a
paperback, and therefore much less expensive than the three
volume hardcover text books from Prentice Hall).
</BLOCKQUOTE>
<BLOCKQUOTE>
One of these days I'll get around to reading that one.
I'd been holding out for one that covered IPv6 in the
hope that IPv6 would be deployed more widely by the time
I got around to learning all the gory details. However,
it looks like we'll still be dealing with IPv4 (the
current suite of protocols) for the foreseeable future.
</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"
>PAM chroot</H3>
<H4 ALIGN="center">
Wherein Jim rants about PAM</H4>
<p><strong>From Terrell larson on Sun, 02 May 1999
</strong></p>
<!-- ::
PAM chroot
~~~~~~~~~~
Wherein Jim rants about PAM
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I'm interested in a CHROOT option probably in pam-pwdb and I've
been unable to find it. If it does not exist I may be willing to
implement it IF I can find the current source tree and IF I can
find out where to forward it for general use.
</STRONG></P>
<P><STRONG>
Info will be appreciated...
</STRONG></P>
<P><STRONG>
Thanx
<br>Terrell Larson
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Terrell,
</BLOCKQUOTE>
<BLOCKQUOTE>
It's an interesting question. I presume you're talking
about implementing/re-implementing PAM support for an old
convention among SVR4 UNIX implementations where
specific accounts can be marked for special chroot
handling by giving them a '<tt>*</tt>' as the "login shell"
</BLOCKQUOTE>
<BLOCKQUOTE>
This is described in O'Reilly & Associates'
<em><a href="http://www.oreilly.com/catalog/puis/noframes.html"
>Practical Internet and Unix Security</a></em>, p232, Garfinkel and Spafford
and most other books on UNIX security.
</BLOCKQUOTE>
<BLOCKQUOTE>
(For our readers that are unfamiliar with the trick: the
login program; upon seeing that the login shell for a given
account is set to '<tt>*</tt>' does a <tt>chroot()</tt> system call to the
directory that's listed as that account's "home" directory.
Therein '<tt>login</tt>' <tt>exec()</tt>'s the appropriate copy of
'<tt>login</tt>' thereunder. This normally would then <tt>exec()</tt>
a normal shell, as listed in the /...(chroot top)...<tt>/etc/passwd</tt> file.)
</BLOCKQUOTE>
<BLOCKQUOTE>
I was doing some research on a paper (that I still plan on
submitting to USENIX, one of these days) when I first
read about this convention. My paper was on a completely
different use of <tt>chroot()</tt>, but I was doing a literature
search.
</BLOCKQUOTE>
<BLOCKQUOTE>
Naturally I tried this particular trick on one of my Linux
systems. It worked fine. In fact I just tested it, as I
write this, on a new <A HREF="http://www.debian.org/">Debian</A>
2.1 installation that I've been playing with and it works there.
</BLOCKQUOTE>
<BLOCKQUOTE>
However on PAM based systems (using pluggable authentication
modules) --- notably on <A HREF="http://www.redhat.com/">Red Hat</A>
4.x, 5.x and presumably the new 6.0 system as well as any where the
admins have added Linux PAM after-the-fact --- it doesn't work.
</BLOCKQUOTE>
<BLOCKQUOTE>
I mentioned this in e-mail to Andrew Morgan, the maintainer
and co-ordinator of the PAM development project. There is,
of course a listing for a pam_chroot module in the PAM
administrator's guide. However, that doesn't do the same
sort of thing --- and there's no example of how you'd
use it to accomplish the same job. It's also listed as
"unwritten." I did run across a file at the following URL
that you might want to look at:
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQUOTE><CODE>
<A HREF="http://www.us.kernel.org/pub/linux/libs/pam/pre/forgotten/changeroot.tar.gz"
>http://www.us.kernel.org/pub/linux/libs/pam/pre/forgotten/changeroot.tar.gz</A>
</CODE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
It's from late 1997 and is only about 3K. All it contains
is source to a simple command, a man page and a sample
configuration file. It seems to be an alternative
implementation of the chrootuid program that Weitse Venema
wrote years ago (part of his '<tt>logdaemon</tt>' package).
</BLOCKQUOTE>
<BLOCKQUOTE>
This particular program (changeroot) seems to have nothing
to do with PAM. I'd also guess (from the parent directory
name) that the code is not under active development.
</BLOCKQUOTE>
<BLOCKQUOTE>
Obviously, you could use something like chrootuid, or this
changeroot program or you could write a simple C program (or
even a PERL script) that would implement this procedure and
use a reference to that in lieu of the '<tt>*</tt>' that I've been
talking about. In other words instead of an entry like:
</BLOCKQUOTE>
<blockquote><pre>guest:x:65533:65534:Jailed Guest:/usr/local/jail:*
</pre></blockquote>
<BLOCKQUOTE>
... where '<tt>login</tt>' spots the the '<tt>*</tt>', performs the
<tt>chroot()</tt> to <TT>/usr/local/jail</TT>, and <tt>exec()</tt>'s
the copy of <TT>/bin/login</TT> thereunder; we'd see something like:
</BLOCKQUOTE>
<blockquote><pre>guest:x:65533:65534:Jailed Guest:/usr/local/jail:/usr/local/sbin/jailsh
</pre></blockquote>
<BLOCKQUOTE>
... where <tt>jailsh</tt> is a hypothetical SUID root program that
performs these same steps.
</BLOCKQUOTE>
<BLOCKQUOTE>
This approach will work with any version of UNIX (so its
more portable). Another advantage for Linux under a 2.2
kernel is that this hypothetical jailsh program could be
written to use the new "privileges" model (which are listed
in the sources under the "capabilities" misnomer --- but
let's not get into that peeve).
</BLOCKQUOTE>
<BLOCKQUOTE>
The disadvantage of this approach is that we have to write a
custom program (which I'm calling <tt>jailsh</tt>). It has to run as
'root' (or with several rootly privileges, <tt>setuid()</tt>, and
<tt>chroot()</tt> at least). I might toss together something for use
on one of my systems (I have in the past) --- but I'd be
very reluctant to publish those as solutions that anyone
else would trust. I simply don't consider myself a
sufficiently experienced and skilled programmer to be
writing SUID root code for public consumption.
</BLOCKQUOTE>
<BLOCKQUOTE>
So, this brings us back to your message. <tt>chroot()</tt> jails are
not used much. You'd expect them to see more widespread
use, but they they are a bit of a hassle to initially
configure (creating a suitable skeleton tree under the
target chroot point, getting the requisite shared libraries
and device nodes in place for your applications, etc.). In
addition there are ongoing concerns that chroot jails are
too easy to break out of. In cases where you want to
isolate a root/privileged program --- it's too easy for them
to chroot back out of the jail. This concern may be
addressed by clever use of the new "privileges" features in
the 2.2 kernels. However, since you're asking, I presume
you already have your application well considered.
</BLOCKQUOTE>
<BLOCKQUOTE>
It sounds like you are willing to contribute some code to
this. So you might start with a small standalone program
(based on <tt>chrootuid</tt> or the <tt>changelog</tt> program listed above,
if their licenses are amenable to your needs).
</BLOCKQUOTE>
<BLOCKQUOTE><dl>
<dt>You can find chrootuid at:
<dd><code><A HREF="ftp://ftp.porcupine.org/pub/security/index.html"
>ftp://ftp.porcupine.org/pub/security/index.html</A></code>
<dt>... and there's some some of GNU package called <tt>g2s</tt>
<dd><code><A HREF="http://freshmeat.net/appindex/1998/05/11/894932721.html"
>http://freshmeat.net/appindex/1998/05/11/894932721.html</A></code>
<br>... that's listed as "an interesting alternative to
inetd/tcpwrapper/chrootuid/relay/tcp-env/antispam/etc."
</dl>
</BLOCKQUOTE>
<BLOCKQUOTE>
PAM pwdb is maintained by Christian Gafton. The canonical
forum for discussions relating to PAM development is the
pam-list (<A HREF="mailto:pam-list@redhat.com"
>pam-list@redhat.com</A>). The canonical web site is
at:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><code>
<A HREF="http://www.kernel.org/pub/libs/pam"
>http://www.kernel.org/pub/libs/pam</A>
</code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
... which is generally inaccessible (as kernel.org is the
master site for the Linux kernel --- which gets too much
traffic for a reasonable Internet connection). So it
should be accessed through one of the mirrors. The Linux
kernel crowd use a relatively simple and innovative
DNS trick to maintain a list of mirrors that we can use
without having to strain our memories. Basically you can
use URLs of the form:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><code>
<A HREF="http://www.us.kernel.org"
>http://www.us.kernel.org</A>
</code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
... to access a DNS round-robin collection of U.S. mirrors.
There are mirrors in many other countries and regions, from
Afghanistan (<tt><A HREF="http://www.af.kernel.org"
>http://www.af.kernel.org</A></tt>) to Zimbabwe
(<tt><A HREF="http://www.zw.kernel.org"
>http://www.zw.kernel.org</A></tt>). (Yes, they just use the
ISO two letter country codes as a subdomain prefix). Most
of these sites mirror the whole kernel.org FTP and web
trees. If you have trouble connecting to one of the
sites, try again. A check with '<tt>dig</tt>' lists about a dozen
U.S. mirror sites for www.us.kernel.org. Any decent
resolver libraries will cycle through the available
addresses until one works (upon successive access attempts).
That's part of what allows the whole DNS round robin scheme to work).
</BLOCKQUOTE>
<BLOCKQUOTE>
These carry sources and links to the many ongoing PAM module projects.
</BLOCKQUOTE>
<BLOCKQUOTE>
But I digress. Getting back to PAM. Personally I'm somewhat
disappointed in the Linux PAM project. I've expressed this
to the list and I've discussed it with Christian Gafton in
person. He and Andrew will probably be irritated to see
this published in Linux Gazette --- and they are invited to
compose and submit a rebuttal, or anything they like, to
the editors here. (I've courtesy copied them on this e-mail).
</BLOCKQUOTE>
<BLOCKQUOTE>
My principal complaint is that the PAM project seems to be
permanently stuck near version 0.6x. It was at 0.57 about
two years ago. The response on the mailing list (and
direction from Christian) when I raised this concern was:
"So what, it's just an arbitrary version number."
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course I'm not a programmer or a distribution integrator;
I'm just a dumb user, admin and support guy <EM>and writer</EM> ---
so my opinion doesn't count for much. However, it does get
published, so others can beat up on me when they disagree.
It seems to be that a version number of 0.x still connotes
"beta" --- not ready for production use to most people. Red
Hat and <A HREF="http://www.caldera.com/">Caldera</A> are the
only distributions that include integrated PAM support. Many
authentication dependent packages, like <tt>ssh</tt>, don't include
PAM support "out-of-the-box" and it is non-trivial (read: "scary and
difficult") for an "average" Linux user or junior sysadmin
to install the PAM suite into an existing system.
</BLOCKQUOTE>
<BLOCKQUOTE>
As one example if you'd been using Debian,
<A HREF="http://www.suse.com/">S.u.S.E.</A> or
<A HREF="http://www.slackware.org/">Slackware</A> for your application
(with the chroot'd users) and you installed PAM, you'd probably be pretty
distressed to find it suddenly broken. <em>[ hint: don't log out until
you've attempted to access all your desirable services via the localhost
interface and gotten them visible again, minimally telnet or ssh. Yes, I've
been there. -- Heather ]</em> Granted, this whole '<tt>*</tt>' shell
chroot business is pretty obscure to the "average" user
or the "junior" sysadmin. However, it is documented in
most books on Unix security (I reviewed about twenty books
at a couple of books stores with the words UNIX and security
in their titles --- over half of them described this
mechanism and several gave examples).
</BLOCKQUOTE>
<BLOCKQUOTE>
Another complaint that I have is that the existing PAM
deployment doesn't include S/Key or OPIE support, and
doesn't even include clear examples of how to add-in and
configure any form of pluggable OTP. Given that network
password sniffing is one of the most common problems that
one might want to solve with PAM this seems like a pretty
significant omission.
</BLOCKQUOTE>
<BLOCKQUOTE>
The response to this on the list and in personal discussion
amounted to:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
"that's crypto --- and the U.S. government black helicopters
are hovering over our heads ready to bomb Red Hat's offices
if they include anything like it."
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
(Yes, I'm paraphrasing). Personally I think this is absurd.
Yes, the U.S. federal government's restrictions regarding
the "export" of cryptography software are an embarassment to
free people everywhere. I'm personally ashamed of our
entire political process as a result of the ways in which
"my" government was repeatedly thwarted the popular will of
the people vis a vis cryptography. However, S/Key and OPIE
are not cryptography. They use hashes, fancy checksums, as
the basis for their authentication. Specifically OPIE uses
MD5 by default. (I guess that the spec for S/Key -- OPIE
allows for one to use alternative hash algorithms, MD2,
maybe SHA-1, etc. I don't know the details on that).
Ironically the code for the standard UNIX password hashing
method, use your password and some "salt" as a 56-bit DES
key to "encrypt" a string of NULs, is far more easily
subverted into true cryptographic use than MD5. Of course
both the conventional DES hashing and the MD5 code are
already in every major Linux distribution, and always have
been!
</BLOCKQUOTE>
<BLOCKQUOTE>
One compromise would be to include DOCUMENTATION. Give
us a URL that points to a script. Have the script walk one
through the processing of fetching, installing, and
configuring pam_opie. Granted it's not THAT difficult. I
was able to perform the task by hand in about an hour.
However, it would probably take an "average" sysadmin about
twice that and it would probably take an "average" Linux
user about four times that. Consequently it probably won't
happen in any significant number of sites. So it just
doesn't get done at all.
</BLOCKQUOTE>
<BLOCKQUOTE>
(The argument that OPIE and other OTP, one-time-password
schemes, is an incomplete solution is also well considered.
It doesn't secure the connection so sniffing will still
reveal other confidential data, etc. ssh IS a much better
solution. The new <A HREF="http://www.xs4all.nl/~freeswan/">FreeS/WAN</A>
ipsec implementation is also a much better approach. However,
there are enough people out there that can't or won't install
strong cryptographic support that some stop gap is indicated.
Providing smooth easy installation and configuration of OTP is
one thing that PAM could do to address this problem).
</BLOCKQUOTE>
<BLOCKQUOTE>
By far my biggest complaint about PAM is that it hasn't
delivered on its most important promise. It doesn't put
Linux on par with <A HREF="http://www.freebsd.org/">FreeBSD</A>,
<A HREF="http://www.netbsd.org/">NetBSD</A>, and
<A HREF="http://www.openbsd.org/">OpenBSD</A> for authentication.
</BLOCKQUOTE>
<BLOCKQUOTE>
FreeBSD has supported S/Key compatible OTP "out-of-the-box"
for YEARS. (Note: Walnut Creek, the largest distributor of
FreeBSD CDs and books and the major sponsor for FreeBSD
development hasn't been hit by the "black helicopters").
</BLOCKQUOTE>
<BLOCKQUOTE>
Beyond just this discussion of OTP, FreeBSD's libraries have
provided seams shadow and MD5 password hashing for years.
Regardless of PAM I still bump into Linux applications that
fail to authenticate because they don't properly handle some
aspect of shadowing and MD5 checksums. Just last week
one of my fellow techs at Linuxcare was fighting for a
couple of hours with that on a Yellow Dog (Linux for
PowerPC) installation at the office.
</BLOCKQUOTE>
<BLOCKQUOTE>
That was the whole idea of the PAM project. However, PAM
can't deliver on that promise until it attracts widespread
support from the application/utility writers that perform
authentication. FreeBSD hides most of the details behind
their implemention of the standard library functions that
most programmers were already using to perform their
authentication (<tt>getpwent()</tt>, etc.). We can't do that with
PAM and glibc --- but we need to straighten out this
mess eventually.
</BLOCKQUOTE>
<BLOCKQUOTE>
So, I would welcome any new blood that got involved in the
PAM project. I realize that Andrew will probably say:
"Quit your whining and turn in some code!" That's fair
enough. (However, as I've said before, you don't want to
see any C code from me, yet).
</BLOCKQUOTE>
<BLOCKQUOTE>
PAM is an ambitious project. It goes beyond Linux (in
an effort to implement standards that have been proposed
to the IETF by Sun and other vendors). I realize that there
is some delay because these proposed standards are in draft
form and are still in flux (the XSSO, single-sign-on stuff
also seems to be languishing). However, I'd still like to
see it deliver more in the near term.
</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"
>Filesystem Management: What must be "resident" at all times?</H3>
<p><strong>From peter on Sun, 02 May 1999
</strong></p>
<!-- ::
Filesystem Management: What must be "resident" at all times?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I'm familiar with moving a portion of a UNIX file system that doesn't
need to be resident at all times to a larger partition. What's the
safest way to do this for a portion of the file system (<TT>/usr</TT> ?) that
needs to be resident at all times?
</STRONG></P>
<P><STRONG>
Thanks for your help,
<br>Peter
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
The "resident" is not a "term of art" for Unix systems
administration. Also <TT>/usr</TT> doesn't have to be <EM>mounted</EM>
at <EM>all</EM> times. In particular you should be able to
bring the system up in single user mode and peform most
maintenance operations without <TT>/usr</TT> being mounted.
</BLOCKQUOTE>
<BLOCKQUOTE>
That's why we have a <TT>/sbin</TT> directory. Originally we had
<TT>/bin</TT>, which was intended to contain just those files that
were necessary to bring the rest of the system online.
However, as UNIX systems developed shared libraries a number
of the items which were traditionally located in <TT>/bin</TT> (such
as sh --- the shell) came to depend on <TT>/usr/lib</TT> which was the
traditional location of the .so (shared object) files.
</BLOCKQUOTE>
<BLOCKQUOTE>
So some vendors started creating a <TT>/sbin</TT> ('<tt>s</tt>' for
"statically linked" --- which theoretically allows one
to replace <TT>/bin</TT> with a symlink or use it as a mount point
for its own filesystem. Of course most Linux distributions
don't put <EM>statically linked</EM> binaries in <TT>/sbin</TT> --- we've
moved many of the shared libraries into <TT>/lib</TT>.
</BLOCKQUOTE>
<BLOCKQUOTE>
Personally I think the whole arrangement is a bit ugly.
The idea of having duplicate but statically linked versions
of many commands in <TT>/sbin</TT> is feasible. Having <TT>/bin</TT>
contain a set of symlinks to the <TT>/sbin</TT> command is fine
(since they will work while nothing is mounted over <TT>/bin</TT>
and the mount of any other filesystem over <TT>/bin</TT> will then
make those symlinks "disappear"). I don't like this
insistence on dynamically linked <EM>everything</EM> since that
means that you can't even run ldconfig to fix the
<TT>/etc/ld.so.cache</TT> file if it gets corrupted. You have to
boot from a floppy to get anything done.
</BLOCKQUOTE>
<BLOCKQUOTE>
In any event: let's look at a typical Linux root directory
</BLOCKQUOTE>
<BLOCKQUOTE><pre>
drwxr-xr-x 2 root root 1024 Apr 16 12:52 bin
drwxr-xr-x 2 root root 1024 Apr 16 05:20 boot
drwxr-xr-x 1 root root 3072 Apr 25 11:11 cdrom
drwxr-xr-x 2 root root 17408 Apr 25 07:00 dev
drwxr-xr-x 41 root root 3072 Apr 25 11:11 etc
drwxrwsr-x 5 root staff 1024 Apr 19 01:58 home
drwxrwsr-x 2 root floppy 1024 Feb 1 04:42 floppy
drwxr-xr-x 2 root root 1024 Feb 1 04:42 initrd
drwxr-xr-x 3 root root 2048 Apr 16 12:38 lib
drwxr-xr-x 2 root root 12288 Apr 16 04:46 lost+found
drwxr-xr-x 4 root root 1024 Apr 19 03:41 mnt
dr-xr-xr-x 6 root root 0 Apr 18 08:10 proc
drwx------ 4 root root 1024 Apr 22 15:42 root
drwxr-xr-x 2 root root 2048 Apr 16 12:53 sbin
drwxrwxrwt 2 root root 1024 Apr 25 12:41 tmp
drwxr-xr-x 15 root root 1024 Apr 16 05:17 usr
drwxr-xr-x 17 root root 1024 Apr 17 11:01 var
</pre></BLOCKQUOTE>
<BLOCKQUOTE>
This is from a fairly new <A HREF="http://www.debian.org/">Debian</A>
2.1 installation. Here's the same list with some commentary:
</BLOCKQUOTE>
<BLOCKQUOTE><dl>
<dt>bin
<dd>contains many common commands. Should be able
to put this on a mounted fs. Ironically the mount
command is in this directory and is dynamically linked!
That's just WRONG. (And I don't care what the FHS
says about it).
<dt>boot
<dd>contains kernels and associates System.map files
and backups of the boot sector, as created by
<TT>/sbin/lilo</TT>. Oddly enough this can be a mounted
filesystem. As I've described many times, Linux
doesn't require that its kernel be located on its
root filesystem. The System.map file isn't
needed during the boot cycle (and isn't "needed"
by much of anything --- '<tt>lsof</tt>' seems to complain
if I don't have one or if it's mismatched to my
kernel version but that's about it).
<dt>dev
<dd>contains device nodes. MUST be on root fs.
(Richard Gooch has written a special devfs ---
sort of like <TT>/proc</TT> for device nodes. That would
allow this to be a mounted filesystem)
<dt>etc
<dd>contains passwd, group files, startup scripts and the
mtab (which tracks all of the mounted filesystems).
<dt>floppy
<dd>this is stupid. It's just a mount point. I prefer
to put most of my mount points under <TT>/mnt</TT> --- so I have
a <TT>/mnt/cdrom</TT>, a <TT>/mnt/floppy</TT>, <TT>/mnt/a</TT>
(DOS floppy), and others.
<dt>home
<dd>This should be either a mount point or a symlink to
some directory on a mounted fs. I sometimes use ->
<TT>/usr/local/home</TT> if I have a small number of filesystems
to work with.
<dt>initrd
<dd>I'd have put this under <TT>/boot</TT>. Anyway, mine is empty.
This is intended to remount any "initial RAM disk" that
was used. (I might do a kernel patch to move this)
When a kernel has initrd support enabled (compiled in)
then a compressed image of the initrd filesystem is
appended to the kernel. The kernel then automatically
creates the RAM disk, decompresses and copies the image
into it, and runs the <TT>/linuxrc</TT> program that it should
find there. (See <TT>/usr/src/linux/Documentation/initrd.txt</TT>
for details). This doesn't have to be here if you don't
want/need access to the initrd after boot.
<dt>lib
<dd>This <EM>MUST</EM> be on <TT>/</TT>; it contains your
<tt>libc.so</tt> and other shared libraries on which almost ALL
programs on your system depend.
<dt>lost+found
<dd>This must be at the top of every filesystem.
fsck will link any "lost clusters" into nodes under
this directory; giving you an opportunity to fix them.
Indeed, you should probably have a script that
periodically checks this and warns the sysadmin any time
any of these directories are non-empty.
<dt>mnt
<dd>This is conventionally used as a mount point or as a
directory containing a list of mount points. It's where
you mount "temporary" and "removable" filesystems.
<dt>opt
<dd>This is a place to store large "optional" packages
like WordPerfect, StarOffice, etc. I usually make
this a symlink to <TT>/usr/local/opt</TT>
<dt>proc
<dd>This is a "virtual filesystem" a representation of the
system's process state as a set of file nodes. The BSD
systems that implement the proc filesystem typically do
so much different than Linux. Under Linux you can read
much more info from <TT>/proc</TT> entries, and more of it is
represented a plain text. The idea of <TT>/proc</TT> is that we
can have the kernel provide a filesystem/directory
abstraction of its state and we can write programs like
'<tt>ps</tt>' and '<tt>top</tt>' to use normal UNIX file semantics to
read that information. Linux is unique in that you can
also modify many proc entries to changed the system
state. The most common case of this is to enable kernel
routing using '<tt>echo 1 > /proc/sys/net/ipv4/ip_forward</TT>'
<dt>root
<dd>this is the root user's home directory. Handy if you
have any scripts or data/configuration files that you want
to access during boot or single-user mode when <TT>/home</TT> will
not be mounted.
<dt>sbin
<dd>as I've noted, this should contain statically linked
versions of the files that you absolutely need to fix a
broken system. Linux, like Solaris and other modern
versions of UNIX has gone to the dark side of practically
requiring shared libraries for EVERYTHING. While shared
libraries are very useful for conversing disk space and
memory and offer huge performance benefits --- they are
just one extra thing to break (for robustness and security).
So a decent compromise is to have a subset of statically
linked programs for use when everything is broken.
(Having a kernel module or patch that could automatically
detect and repair a corrupt <TT>/etc/ld.so.cache</TT> file would
be a pretty good idea, too).
<dt>tmp
<dd>this can be a mounted filesystem or a symlink to a
directory on one.
<dt>usr
<dd>this normally <EM>should</EM> be a mounted filesystem
<dt>var <dd>this can be mounted or a symlink.
</dl></BLOCKQUOTE>
<BLOCKQUOTE>
Of course the preceding is all must my opinion. The
most authoritative commentary on what Linux filesystems
should look like is the FHS --- the Linux Filesystem
Hierarchy Standard (co-ordinated by Dan Quinlan), homepage
<a href="http://www.pathname.com/fhs/">http://www.pathname.com/fhs/</a>.
</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"
>Ethernet Switches vs. Hubs</H3>
<p><strong>From Louan Handke on Sat, 01 May 1999
</strong></p>
<!-- ::
Ethernet Switches vs. Hubs
~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
What is the difference between switch hub and unswitched hubs
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
The traditional ethernet hub (concentrator, repeater,
etc) is a relatively simple device which just amplifies
the signals on any of its ports out to all of the other
ports. A "switch" or "intelligent" hub is more of a
multiport bridge. It "learns" which MAC addresses
(ethernet hardware assignments) are on each of its ports
and only "repeats" (rebroadcasts) data frames to the
appropriate port.
</BLOCKQUOTE>
<BLOCKQUOTE>
In a traditional hub only one system on a given network
segment can be "talking" at any given time. The whole
network segment is virtually a single wire. Any time
two or more systems attempt to send packets at close to
the same time there is a "collision." This is called
CSMA/CD --- carrier sense (listen for quiet), multiple
access (any card and "speak up"), with collision detection.
</BLOCKQUOTE>
<BLOCKQUOTE>
Whenever a collision occurs the cards involved send a
short jamming signal, and then they perform a psuedo
random "backoff" delay before attempting to re-broadcast.
Since it is incredibly unlikely that two cards will choose
the same amount of backoff delay one of them will usually
"win" and get to send first. That's fine with only a
couple of cards in contention. However, as utilization
approaches 20% or more, the number of collisions skyrockets
and the overall average throughput drags to a crawl.
</BLOCKQUOTE>
<BLOCKQUOTE>
The traditional answer was to segment the systems ---
putting servers in close proximity to their clients
(work groups), put routers between segments, and
put lots of interfaces in your workgroup servers
(four to eight ethernet interfaces was not unusual
for big netware servers).
</BLOCKQUOTE>
<BLOCKQUOTE>
Etherswitches are used to alleviate some of these
problems. On a 24 port etherswitch its theoretically
possible for 12 pairs of systems to be concurrently
exchanging data frames. This allows for much
larger segments (called VLANs --- virtual local
area networks).
</BLOCKQUOTE>
<BLOCKQUOTE>
On the downside, etherswitches are typically much more
expensive than their more passive cousins. They have to
contain processors, memory, and firmware. In addition
their processors have to be pretty quick (usually
quick RISC chips with a mess of ASICs I guess). Also
there are degenerate cases. If all of your servers are
located on one or two legs of an etherswitch then it
won't help much. All of the clients will be waiting for
that one (or those couple of) port(s) to be clear ---
a classic bottleneck.
</BLOCKQUOTE>
<BLOCKQUOTE>
Again the solution is to have lots of smaller servers
--- segment the network, and replicate the data and
services so that they clients tend to use local
copies of everythings. Hierarchies scale!
</BLOCKQUOTE>
<BLOCKQUOTE>
(Not to say that etherswitches don't have their
place --- its just to say that their deployment should
be based on an understanding of the situation and the
benefits vs. the costs of the technology. Most vendors
have little interest in your needs --- they want to
sell you the shiny expensive toy).
</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"
>MATCH and Replaceable Parameters in procmail</H3>
<p><strong>From Nick Moffitt on Sat, 01 May 1999
</strong></p>
<!-- ::
MATCH and Replaceable Parameters in procmail
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
So, here's one for the answer guy.
</STRONG></P>
<P><STRONG>
I have a mhonarc user that creates drop points for a mhonarc script to
walk by every night and process. Thing is, I don't want to have to
edit the mhonarc user's <tt>.procmailrc</tt> every single time. That is, let's
say that I have the following:
</STRONG></P>
<Pre><STRONG>
:0:
* ^Sender: owner-potato-peelers
spool/potato-peelers
:0:
* ^Sender: owner-onion-skinners
spool/onion-skinners
</STRONG></Pre>
<P><STRONG>
Is there some way that I can automate this format? e.g.:
</STRONG></P>
<Pre><STRONG>
:0:
* ^Sender: owner-\([^@]+\)
spool/$1
</STRONG></Pre>
<P><STRONG>
This likely breaks procmail's own regex syntax, but you get the point.
"Anything that has an owner-foo Sender header should go to spool/foo."
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Nick,
</BLOCKQUOTE>
<BLOCKQUOTE>
You have the right idea but, as you've guessed, the
wrong syntax. The answer is to use the <tt>MATCH</tt> variable
and the <tt>\/</tt> (fencepost) operator as described in this
excerpt from the <tt>procmailrc</tt>(5) man page:
</BLOCKQUOTE>
<blockquote><pre> MATCH This variable is assigned to by procmail when-
ever it is told to extract text from a match-
ing regular expression. It will contain all
text matching the regular expression past the
`\/' token.
</pre></blockquote>
<BLOCKQUOTE>
So, your recipe would look something like:
</BLOCKQUOTE>
<blockquote><pre>:0:
* ^Sender: owner-\/.*
spool/$MATCH
</pre></blockquote>
<BLOCKQUOTE>
(though I haven't tested this specifically).
</BLOCKQUOTE>
<!-- sig -->
<!-- end 7 -->
<HR WIDTH="40%" ALIGN="center">
<!-- begin 11 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>procmail and saved variables.</H3>
<p><strong>From Nick Moffitt on Sun, 2 May 1999
</strong></p>
<font color="#000066"><em>
<P><STRONG>
[Jim Dennis said]
So, your recipe would look something like:
</STRONG></P>
<P><STRONG><BlockQuote><Code>
<Br>:0:
<Br>* ^Sender: owner-\/.*
<Br>spool/$MATCH
</Code></BlockQuote></STRONG></P>
<P><STRONG>
(though I haven't tested this specifically).
</STRONG></P>
</em></font>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I have! It works like a charm.
</BLOCKQUOTE>
<!-- end 11 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<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"
>RMA for Video Card</H3>
<p><strong>From Siddhartha Bezbaruah on Sat, 01 May 1999
</strong></p>
<!-- ::
RMA for Video Card
~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I am mailing this on behalf of Software Decsions Inc., Houton, TX
77036.
<em>[ normally, I etch out personalized information like this. But
this person seems to want their name up, so what the heck, I'll leave it
in. -- Heather ]</em>
</STRONG></P>
<P><STRONG>
I have been calling at 541-967-2450 to get an RMA number for one
of my company's VIPER V330 video card. The customer service
connected me to the technical support or RMA department and they
hunged up two times. I also faxed the required information at
254-750-9051 on April 21, 1999. But there is no reaponse.
</STRONG></P>
<P><STRONG>
Please, let me know how to get an RMA from Diamond Multimedia.
<br>Sincerely
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I don't know. I suppose I could try to dig up the
phone number for the one guy that I know that works
there (in their QA department). I had lunch with him
last Saturday.
</BLOCKQUOTE>
<BLOCKQUOTE>
However, Diamond is big company. I'd probably have to
do exactly the same sorts of things you're doing.
Call them up, go through some labyrinthine voice menu
system, explain my problem --- at least twice, and
feel like a supplicant at the high temple doing pennance
for my ill-informed purchasing decision.
</BLOCKQUOTE>
<BLOCKQUOTE>
What's odd is that I was under the impression that
Diamond was releasing programming specs for most of their
recent video cards so I'm curious why you're having a
problem. I'm not familiar with this particular model
(manufacturers churn through video chipsets and models
so fast that I've just given up on tracking any names or
model numbers).
</BLOCKQUOTE>
<BLOCKQUOTE>
In any event I'm not the customer service department
or the "consumer watchdog" so you can't sick ME on them.
You'll have to go fight that battle yourself.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 8 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/9"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 9 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Inodes Numbering: An Academic Question</H3>
<p><strong>From mcp on Sat, 01 May 1999
</strong></p>
<!-- ::
Inodes Numbering: An Academic Question
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Hello,
<br>Could u pls explain me
As the inodes of unix file system are store in disk in the form of linear
arrays,the index value doesn't start from zero.But generally in
'C' the array index starts from zero.What is the reason
<br>Thanx
<br>Prakash
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Hmm. This is one of those questions where it's hard to
start on an answer. The set of premises upon which you're
basing your question is so shaky that the question itself
is hard to grasp.
</BLOCKQUOTE>
<BLOCKQUOTE>
First, it seems to be a question about Unix internals.
</BLOCKQUOTE>
<BLOCKQUOTE>
"Why isn't there an inode 0?"
</BLOCKQUOTE>
<BLOCKQUOTE>
Because the programmers of the Unix implementation that
you're looking at may not have wanted to start numbering
at zero. Of course, I'm not sure that there is no inode
number zero. I'm not sure how you can be sure, either.
</BLOCKQUOTE>
<BLOCKQUOTE>
It may be that the badblocks list is stored in inode zero
(on some filesystems). At least in some filesystems the
list of bad blocks is managed by "allocating" them to a
special system inode. They effectively become part of the
"bad blocks" file. Since this is done during the creation
of the filesystem (before even a base directory is created)
it would logically follow that this would have the
lowest numbered inode on a given fs.
</BLOCKQUOTE>
<BLOCKQUOTE>
I wouldn't say that inodes are "store in disk in the form of
linear arrays." Inodes are stored in a filesystem in
whatever manner the designer of a fileystem chooses to
store them. They may be represented as arrays in most
see programs --- though they are probably more often
managed as linked lists of structs. They might be
doubly linked, hashed/btrees of structs. I'm not a C
programmer so I don't really know. Of course we could
go look at the code --- but I'm not even enough of a
programmer to infer the overall design from a worm's
eye perusal of the that.
</BLOCKQUOTE>
<BLOCKQUOTE>
I've heard that some filesystems (like those in LVM ---
logical volume management systems) put different ranges of
inodes on each PV (physical volume). Thus they don't
start numbering the inodes for a given fs at 0 or one
or anything even close. There is no particular reason
why they should. The inode is just an arbitrary <EM>unique</EM>
identifier for all information about a file, sans it's
"names" (links).
</BLOCKQUOTE>
<BLOCKQUOTE>
The greater questions is: "Why?"
</BLOCKQUOTE>
<BLOCKQUOTE>
Why do you ask?
</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"
>One Bad Sector</H3>
<H4 ALIGN="center">
It Doesn't Ruin the Whole Disk</H4>
<p><strong>From John Gilbert on Tue, 04 May 1999
</strong></p>
<!-- ::
One Bad Sector
~~~~~~~~~~~~~~
It Doesn't Ruin the Whole Disk
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I cant believe that its not possible to re-use or dispose of a bad
sector on a hard drive!!!
</STRONG></P>
<P><STRONG>
Please tell me its possible to do something!
</STRONG></P>
<P><STRONG>
I only have one bad sector - but its really pissing me off!
Isn't there something I can do?
</STRONG></P>
<P><STRONG>
Awaiting your response,
<br>JB.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Hmm. You can "dispose" of a bad sector by adding it to
the bad blocks list. The easiest way to do this is to
allow the <tt>mke2fs</tt> and <tt>e2fsck</tt> tools "check" the portions
of the disk that underlie a given filesystem by using the
<tt>-c</tt> options to each of them.
</BLOCKQUOTE>
<BLOCKQUOTE>
Thus, when you first create an ext2 filesystem you should
always add the <tt>-c</tt> option so that it will (transparently)
call the '<tt>badblocks</tt>' command and account for those that are
detected. (The installation front ends to most Linux and
GNU suite distributions, such as
<A HREF="http://www.redhat.com/">Red Hat</A>,
<A HREF="http://www.caldera.com/">Caldera</A>, etc.
have a checkbox on their menu/dialogs to enable this).
</BLOCKQUOTE>
<BLOCKQUOTE>
When you suspect that additional sectors have gone bad
you should run '<tt>e2fsck -c</tt>' to add any newly bad sectors
to the bad blocks list that is maintained as part of the
the filesystem's metadata.
</BLOCKQUOTE>
<BLOCKQUOTE>
There are similar features for other filesystem types ---
although in some cases you'll have to build the badblocks
table to a file and run the filesytem formatting utility
separately (I won't go into details about feeding a
badblocks list to each of the alternative Linux filesystem
types as I don't know them off hand and they'd only be of
interest to a tiny percentage of LG reader --- much less
than 1% by my guess).
</BLOCKQUOTE>
<BLOCKQUOTE>
If the sector that goes bad is sector number one on track
zero --- then you have a paperweight. That one sector is a
single point of failure (SPOF) in the whole PC drive
management architecture. This is a limitation of the
architecture that lies below the OS level as it is imposed
by the BIOS. Certainly someone could write a BIOS to
overcome the problem. It's also possible that your hard
drive has quite a bit of built in redundancy to prevent the
problem from ever being visible to the BIOS.
</BLOCKQUOTE>
<BLOCKQUOTE>
Modern hard drives are sophisticated pieces of electronics.
</BLOCKQUOTE>
<BLOCKQUOTE>
They have embedded microprocessors running programs that map
their own arrangements of data blocks into an abstraction
that's compatible with the BIOS representation of a hard
disk. A BIOS "thinks" of a hard disk as a flat three
dimensional array of head and tracks (cylinders) and
sectors. In reality modern drives are almost always more
complex and far less regular.
</BLOCKQUOTE>
<BLOCKQUOTE>
Most modern drives store more sectors on their outer tracks
than they do on the inner ones. This is referred to as ZBR
(zone-bit recording).
</BLOCKQUOTE>
<BLOCKQUOTE>
Most drives have "extra" sectors on each track --- and
they'll automatically map the "extras" in for any sector
that they detect as bad or "weak."
</BLOCKQUOTE>
<BLOCKQUOTE>
All hard drives have always implemented some error detection
into their electronics. All recent drives (the last decade
or so) have also implemented at least rudimentary ECC, error
correction coding. When a drive's electronics detect errors
they automatically try several re-reads to "get it right."
Many drives are programmed to move the successfully read
data into one of the "extras" on that track when this
occurs. Likewise if they detect "correctable" errors
through their ECC mechanisms. Some drives might even
migrate data to extra sectors on adjacent tracks or heads.
</BLOCKQUOTE>
<BLOCKQUOTE>
So, you generally won't see bad sectors on a modern drive
until there are enough of them that all of the available
extras on a given track, cylinder, or within a given zone,
are all in use.
</BLOCKQUOTE>
<BLOCKQUOTE>
Most drives have a "hidden" extra cylinder on which they
store some of the persistent data for these low level
mapping and remapping operations. This is the "diagnostics
cylinder." I think that they also have at least one sector
per track or cylinder devoted to maintaining the bad block
remappings for that track. (Some drives might implement
this as an additional surface --- so that one drive head
is devoted to all diagnostics).
</BLOCKQUOTE>
<BLOCKQUOTE>
Most modern hard drives also have quite a bit of RAM on
them. A half meg is minimal, and two to four meg is common
on larger, high performance SCSI drives. I don't keep up on
these things so they may have drives with 8 or 16 Mb
onboard.
</BLOCKQUOTE>
<BLOCKQUOTE>
I've often wondered if it wouldn't make more sense for drive
manufacturers to support a small (socketed?) bit of NVRAM to
store the MBR and the location of their diagnostics data
map. Of course it's possible that some of them ARE doing
this --- since I wouldn't know.
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course I'm just speculating here. I've never designed
hard drives and my discussions with hardware engineers from
Seagate, Quantum and other aquaintances in the field have
been far less detailed than my preceding speculations.
</BLOCKQUOTE>
<BLOCKQUOTE>
The key point here is that these drives are not just simple
arrays of heads, sectors and tracks. I think I read a
message from Linus recently (on the kernel-list, in
reference to discussions about implementing "elevator-seeking"
and similar tricks in the low level disk drivers) that
basically said: 'anyone who treats a modern hard drive as
anything other than a linear list of storage blocks is a
fool.'
</BLOCKQUOTE>
<BLOCKQUOTE>
As for "re-using" a bad sector: you shouldn't have to worry
about that. If you drive hasn't already done it automatically
and transparently then your best strategy is to mark it as
bad and let the OS work AROUND that spot. Occasional
surface defects and wear and tear are to be expected in any
mechanical equipment --- and hard drives are fundamentally
mechanical.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 10 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/11"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 12 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Server Shutdown Button</H3>
<hr align="center" width="40%">
<p>This follows up on "Secure Shutdown from the Console",
<a href="../issue39/tag/21.html"
>http://www.linuxgazette.com/issue39/tag/21.html</a>.</p>
<hr align="center" width="40%">
<p><strong>From Scot E. Wilcoxon on Sun, 02 May 1999
</strong></p>
<!-- ::
Server Shutdown Button
~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
About the "Answer Guy" comments in the April 1999 LG about
shutting down a server, perhaps with a special login:
</STRONG></P>
<P><STRONG>
I have also created Linux servers without monitors, but I used a
two-key keyboard: a cheap serial mouse. See `<tt>man gpm</tt>` for the
"SPECIAL COMMANDS" and "-S" instructions. With this option
enabled in <TT>/etc/rc.d/init.d/gpm</TT> you can triple-click the mouse to
initiate either a shutdown or a reboot. This gives operators a
safe way to shut down a server without having to have a monitor or
keyboard on the server. The BIOS does have to allow booting
without those plugged in, but many BIOSes can be configured to
continue despite those errors.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Cool! There's a man page I hadn't read recently and
thoroughly enough! The best part is you can configure
it with a set of three custom commmands instead of the
defaults (<tt>shutdown -r</tt>, <tt>shutdown -h</tt>, and an internal
<tt>init</tt> signalling routine). I don't know what I'll
do with that, but it sure sounds useful.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 12 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/12"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 13 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>HAL91 (Floppy Based Linux Distribution)</H3>
<p><strong>From twager on Wed, 05 May 1999
</strong></p>
<!-- ::
HAL91 (Floppy Based Linux Distribution)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Hi..
</STRONG></P>
<P><STRONG>
I am trying to get hal91 going...I have the bootdisk running
ok but cannot get the data disk to load. with the <tt>init.disk2</tt>
command..It tell me it cannot find and ext2 file system on
<TT>/dev/fd0</TT> ...I got the system off a cheapbytes cdrom I thought this
might be faulty so I downloaded the file using <tt>lynx</tt> from the
author's site but the same result occurred...I then mounted a floppy
and <tt>cp</tt>'d the data file across This time the floppy was seen but it
told me it could not find <tt>usr.tar.gz</tt> I <tt>mv</tt>'d the file to
<tt>usr.tar.gz</tt> and it mounted but all that was there was
<tt>Lost+Found</tt>...
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Did you really '<tt>cp</tt>' the second image unto a mounted
filesystem on the floppy?
</BLOCKQUOTE>
<BLOCKQUOTE>
I have no experience with HAL91, although I've heard that it
is one of several floppy based mini-distributions) like
Tom's Root/Boot, MuLinux, MiniLinux, LOAF (Linux On A
Floppy), etc.
</BLOCKQUOTE>
<BLOCKQUOTE>
It looks like the canonical home page for HAL91 is at:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><code>
<A HREF="http://home.sol.no/~okolaas/hal91.html"
>http://home.sol.no/~okolaas/hal91.html</A>
</code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
I found that by following one of the many related links at
the bottom of Tom Oehser's page (Tom's Root/Boot) at:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><code>
<A HREF="http://www.toms.net/rb"
>http://www.toms.net/rb</A>
</code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
Images for most of these would be written to the raw floppy
device using dd rather than copied onto some filesystem that
you've put thereon. In other words normally you wouldn't
use the 'cp' command to create boot floppies for any
mini-distribution. Usually you'd use a command like:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><Code>
dd bs=18k if=image.dat of=/dev/fd0
</Code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
(while there is no MOUNTED fs residing on that flopppy
drive!).
</BLOCKQUOTE>
<BLOCKQUOTE>
It's also possible to use a command like:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><Code>
dd < image.dat > /dev/fd0
</Code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
... though it is more efficient and reliable to set <tt>dd</tt>'s
block size (18K is size of one one track on a 1.44 Mb
diskette: 1440 blocks of 1K each is 1474560 bytes, as is
18K * 80 --- and most HD floppies support 80 tracks).
The use of <tt>dd</tt>'s <tt>if=</tt> and <tt>of=</tt> parameters
vs. the redirection operators is relatively inconsequential.
</BLOCKQUOTE>
<BLOCKQUOTE>
The HAL91 pages don't explicitly say how you should create
the "datadisk" (supplemental diskette --- which can
be unpacked to a second RAM disk under <TT>/usr</TT> to provide
some additional programs and utilities). I presume that it
is supposed to be be written to the raw floppy device in
the same way that the boot diskette is prepared.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I have done a strings on the file and looked through that
but there is not mention of either of the readouts I got.....I
have written to the author but no reply..I have written to all the
linux lists but no reply.... I would like to get this running as
I am giving a talk on Linux to the local ham radio club and would
like to take this prog as well as Mandrake and RedHat as I am
hoping it might get a few interested..If you have any tips or help
where else I could look a cc reply would be greatly
appreciated.....I struggled with Stampede from the cdrom but
this has me beat :>(
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Why have you selected HAL91 for this case? There are
several other choices (look at the bottom of Tom Oehser's
page, as listed above, for a few of them).
</BLOCKQUOTE>
<BLOCKQUOTE>
I'm not saying that HAL91 is "the wrong choice" ---
what I'm suggesting is that you try a couple of these
so that you can form a basis for comparison. So far
my personal favorite is Tom's Root/Boot --- though I like
Trinux for other work.
</BLOCKQUOTE>
<BLOCKQUOTE>
As for your ham radio group: consider looking at the
Linux Speaker's Bureau web site at:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><code>
<A HREF="http://www.linuxresources.com/lsb/index.html"
>http://www.linuxresources.com/lsb/index.html</A>
</code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
You might find someone in your area (or someone
who will be in your area on other business) who can
give a slick presentation about Linux and can help people
during an installfest.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Regards.
<br>Ted
<br><em>Beware of geeks bearing gifs</em>
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Be even more wary of geeks wearing GIFs!
</BLOCKQUOTE>
<!-- sig -->
<!-- end 13 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/13"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 14 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Ping a Port: NOT</H3>
<p><strong>From Derek Leung on Wed, 05 May 1999
</strong></p>
<!-- ::
Ping a Port: NOT
~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Hi,
</STRONG></P>
<P><STRONG>
I am just wondering if there is any way that I can
code to ping a destination if it is alive or not. However, the server
is known to be behind a firewall, and only one port is open to public.
So, is there anyone know how to code a "ping" program that could ping on
a certain port? I will greatly appreciate for any ideas.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
The '<tt>ping</tt>' command generates an ICMP echo request packet.
ICMP is a protocol over IP that implements "control
messages" (flow control, routing, etc.). At level the
very concept of TCP/UDP ports is completely irrelevant.
(TCP and UDP are other protocols that ride over IP, they
are orthogonal to ICMP).
</BLOCKQUOTE>
<BLOCKQUOTE>
There are a number of programs that you can use for
port scanning (and your application seems to call for
testing a single port on a single host --- which is a
very short list ports to scan). I'd recommend that you
look at <tt>netcat</tt> (sometimes installed as '<tt>nc</tt>'
on some Linux systems) and <tt>nmap</tt>.
</BLOCKQUOTE>
<BLOCKQUOTE>
A quick place to find these and many other interesting tools
would be the Trinux web site: <tt><A HREF="http://www.trinux.org"
>http://www.trinux.org</A></tt>
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Derek
<br>SDU TEAM
</STRONG></P>
<P><STRONG>
PS. I use PERL to code. If there are any available C module, please let
me know too. Thanks.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
There are some sophisticated PERL sockets and <tt>RAW::IP</tt> tools
--- you'd want to look at CPAN (<tt><A HREF="http://www.cpan.org"
>http://www.cpan.org</A></tt>) for
those. There are numerous modules to allow easy PERL coding
for specific network protocols and services --- and there
are many sample scripts there.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 14 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/14"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 15 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Linux as a Job!</H3>
<H4 ALIGN="center">
Hobbies become fun and profit</H4>
<p><strong>From Nate Brazell on Fri, 07 May 1999
</strong></p>
<!-- ::
Linux as a Job!
~~~~~~~~~~~~~~~
Hobbies become fun and profit
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I am new to Linux and have a definate need to learn it. It is now my
job! Here are a couple of questions???
</STRONG></P>
<P><STRONG>
1. I need to establish a dial up server? How?
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
<tt>mgetty</tt>. Install <tt>mgetty</tt> and follow the directions in
its info file (using the emacs/xemacs '<tt>info</tt>' package
or the standalone '<tt>info</tt>' command). You can also read
the manual in HTML at:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><code>
<A HREF="http://www.leo.org/~doering/mgetty/index.html"
>http://www.leo.org/~doering/mgetty/index.html</A>
</code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
<tt>mgetty</tt> is included with many Linux distributions.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
2. I need to install a new drive and mount an existing file system to
the new drive. This one I know how to do, however I haven't messed with
UNIX in a while and want to make sure my plan will work.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
The hard part is the hardware. Once that's done you
just run '<tt>fdisk</tt>' then '<tt>mke2fs</tt>' (<tt>mkfs.ext2</tt>)
and '<tt>mount</tt>' Finally you simply added the new filesystem and
mountpoint to your <TT>/etc/fstab</TT> (so that the system will mount
the new filesystem automatically after the next reboot).
</BLOCKQUOTE>
<BLOCKQUOTE>
Here's a couple of sample commands assuming that your adding
an IDE drive to a system's secondary controller. The
new drive will be <TT>/dev/hdc</TT>. I'm assuming that <TT>/dev/hda</TT>
is your existing OS installation and that <TT>/dev/hdb</TT> is a
CD-ROM slaved off of the same controller; that's best
since CDs are accessed relatively infrequently and most
often just to copy things to your local volume. Thus
putting the new drive on the other IDE chain in a typical
modern system gives a performance boost. Only one drive
per IDE chain can be accessed at any given modem by the
kernel. SCSI allows commands to the drives to be handled
in parallel (the request is issued, the drive is
"disconnected" from the bus and it issues an interrupt
when it is ready to provide or fetch more data).
</BLOCKQUOTE>
<BLOCKQUOTE>
So you use commands like:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><Code>
fdisk /dev/hdc
<br>
<BR># menu interface to configure new filesystems
<br>
<br>for i in 1 3 5 6 7 8; do
<br>mke2fs -c /dev/hdc$i
<br>done
<br>
<BR># -c enables automatic 'badblock' checking
<BR># This example assumes you created six filesystems
<BR># on the new drive, perhaps leaving partition two
<BR># as a swap partition and number 4 is used to house
<BR># the extension which contains 5 through 8
<BR># I use a bash/sh for loop to save typing and to
<BR># give me longer to sip my coffee while it works
<BR># unattended
<br>
<br>mount /dev/hdc1 /home
<br>mount /dev/hdc3 /usr/local
<br>mount /dev/hdc5 /u1
<br>mount /dev/hdc6 /var/log
<br>mount -o sync /dev/hdc7 /var/spool
<br>mount -o noatime /dev/hdc8 /var/spool/news
<br>
<br>vi /etc/fstab
<br>
<BR># add the new filesystem(s) as appropriate to
<BR># the fstab file format. See the appropriate
<BR># man page from manual section 5 (i.e. man 5 fstab)
</CODE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
In this (admittedly complicated) example I've put the
new filesystems on a few mount points that often need
to "grow" or are otherwise good candidates for having
their own filesystems.
</BLOCKQUOTE>
<BLOCKQUOTE>
I've glossed completely over the details of mount each of
these on a temporary mount point (I use <TT>/mnt/tmp</TT>) and
copying/moving/migrating all the data from the extent
directories to their new filesytems. The short form
of that is (for each filesystem):
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><pre>
mount $NEWFS /mnt/tmp
cp -pax $OLDDIR /mnt/tmp
umount /mnt/tmp
mv $OLDDIR $OLDDIR.old
mkdir $OLDDIR
chmod $OLD_DIR_PERMS $OLDDIR
mount $NEWFS $OLDDIR
</pre></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
.... and there are many variations. Once you've well
and truly confirmed that your copies are good you can then
rm -fr each of the $OLDDIR.old directories. One way to
compare two directory trees and ensure that the data and
the metadata (ownership and permissions) have been
faithfully replicated is to use a command like:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><Code>
(cd $OLDDIR.old && tar cf - . ) |
<br>( cd $NEWDIR && tar df - )
</Code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
(note the need for line continuation on this example.)
</BLOCKQUOTE>
<BLOCKQUOTE>
Note: In all of these preceding examples I've only
give the basic idea. You should NOT just cut and paste
these commands without understanding them and editing them
to suit your actual needs and situation.
</BLOCKQUOTE>
<BLOCKQUOTE>
One other note: I've shown a couple of mount examples
with options (<tt>sync</tt> for our spool fs, and <tt>noatime</tt> for
<TT>/var/spool/news</TT>). One of the key advantages to using
smaller, more focused filesystems is that you can then
apply mount options that are appropriate to them.
You can greatly increase the performce of a newspool
by preventng the kernel's fs drivers from updating the
"Access Time" (<tt>atime</tt>) stamps on each file each time it
is read. You can greatly reduce the risk of data damage
to your mail spools and queue using the <tt>sync</tt> option (so that
a catastrophic power supply failure or bump of the "off"
switch is less likely to mangle the filesystem.
</BLOCKQUOTE>
<BLOCKQUOTE>
Such options can trade off performance for features or
integrity assurance. Tune to taste and serve to your users.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Can you help me?
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Yes.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Will you help me?
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I hope I already have.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 15 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<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"
>New Kernel Loses Ether Driver; Dial on Demand and Masquerading</H3>
<H4 ALIGN="center">
A grabbag of user questions.</H4>
<p><strong>From Adams, James on Sun, 02 May 1999
</strong></p>
<!-- ::
New Kernel Loses Ether Driver; Dial on Demand and Masquerading
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A grabbag of user questions.
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Answer Guy,
</STRONG></P>
<P><STRONG>
I know you are extrmely busy and such, I hope you can point me in
</STRONG></P>
<P><STRONG>
the right direction. I am trying to find the tell all instructions
for recompiling a new kernel for RH5.2 (Mandrake 5.3). I have
tried repeatedly to do this but still no luck.
</STRONG></P>
<P><STRONG>
The main problem I run into is that my ethernet no longer works
</STRONG></P>
<P><STRONG>
after booting into the "new" setup. Something about SCIOFLAGS (I
think), and the network is not working.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
That means that you haven't successfully included the driver
for your ethernet adapter. You have to know what sort of
driver it takes. I realize that this is the problem. There
is no easy way to tell this from a running kernel --- none
the entries under <TT>/proc</TT> seem to say which ether driver is
active. You might find your ethernet card mentioned in
<TT>/proc/pci</TT> (a list of PCI devices recognized by your kernel).
Otherwise just open the case and look at the actual card
hardware.
</BLOCKQUOTE>
<BLOCKQUOTE>
One trick I've occasionally used during installfests is an
ugly hack. I cd to <TT>/lib/modules/preferred/net</TT> (or
thereabouts) and do something like:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><Code>
for i in <TT>./*;</TT> do insmod $i && echo $i; done
</Code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
... which tries to load EVERY available module in that
directory. This could hang the system, but usually it just
spits out the name(s) of any modules that successfully
detect a card that they can drive.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
If you could point me in the right direction I would forever be in
your debt (sort of). I also want to be able to have dial on
demand, I have a small home network and want to use it with
ipfwadm.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
There is a program called 'diald' which used to be the main
"dial on demand" daemon (driver). However, I've read that
the latest versions of PPP have some built in "on demand"
features.
</BLOCKQUOTE>
<BLOCKQUOTE>
I must admit that I haven't been using modem PPP for the
last several months. I'm spoiled rotten by my DSL line
(which as only been down once since I got it). I'd only
been using POTS PPP occasionally in the last couple of years
since I was using ISDN (with its own dial-on-demand in my
Trancell/WebRamp ISDN router) --- so I was only using
diald/pppd when that was being flaky.
</BLOCKQUOTE>
<BLOCKQUOTE>
However, I've been meaning to play with the new pppd options
at some point. So I'll look into it.
</BLOCKQUOTE>
<BLOCKQUOTE>
I presume that you mean that you want to use your PPP link
through IP masquerading (when you say "with ipfwadm").
There are numerous HOWTOs and numerous back issues of my
column where I've discussed masquerading. The short form is
to use the following commands on your router (the Linux box
with the ethernet the PPP links on it):
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
echo 1 > <TT>/proc/sys/net/ipv4/ip_forward</TT>
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
(to enable routing)
</BLOCKQUOTE>
<BLOCKQUOTE>
and:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
ipfwadm -F -a acc -m -D 0.0.0.0/0 -S 192.168.0.0/16
ipfwadm -F -a acc -m -D 0.0.0.0/0 -S 10.0.0.0/8
ipfwadm -F -a acc -m -D 0.0.0.0/0 -S 172.16.0.0/12
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
(you only need one of these, but all of them won't hurt).
</BLOCKQUOTE>
<BLOCKQUOTE>
This last set of commands adds a set of rules to the Linux
packet filtering tables to masquerade any source addresses
in the 192.168.*.*, the 10.*.*.* and the 172.16.*.* through
172.31.*.* ranges. Those are all of the addressed reserved
in RFC 1918 for "private" use.
</BLOCKQUOTE>
<BLOCKQUOTE>
As I've discussed before you should also put in some packet
filtering and anti-spoofing rules to protect your home
network from outside attack. Crackers and script-kiddies
are not a myth --- I see probes on my network all the time
and I've just recently let one of my system get cracked into
(I was being sloppy with that one --- it's part of why my
mail was down for a couple of weeks; though only a small
part).
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Thanks
in Advance
Jim Adams
</STRONG></P>
<!-- 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"
>pcmcia install on debian</H3>
<p>After every Bay Area Linux User Group
(<a href="http://www.balug.org/">BALUG</a>) meeting, we head
to a local deli named Max's to continue chatting until about
midnight. Some of the Debian folk are becoming regulars, so
Jim and I had a chance to ask a few questions.</p>
<hr width="40%" align="center">
<p><strong>From Joey Hess on Sun, 02 May 1999
</strong></p>
<P><STRONG>
Hi Jim, I don't know you're proper email address, so I'm using
this one. At Max's tonight, your S.O. asked me about installing
debian on a system that needs PCMCIA to use the cd drive and how
to enable that. Well I dug around and the info she needs is at
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
That was resourceful. Our addresses are:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
Jim Dennis< <A HREF="mailto:jimd@starshine.org"
>jimd@starshine.org</A>>,
Heather Stern <<A HREF="mailto:star@starshine.org"
>star@starshine.org</A>>
</BlockQuote></BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
<A HREF="http://debian.org/releases/stable/i386/ch-init-config.en.html#s7.11"
>http://debian.org/releases/stable/i386/ch-init-config.en.html#s7.11</A>
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I'm copying Heather on this reply.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
If the version of debian she's installing doesn't have a pcmcia
entry on the menu, she should install the most recent one, it's
documented to have it.
</STRONG></P>
<P><STRONG>
And in respone to your own query about installing debian without
rebooting, another possibility would be to grab
</STRONG></P>
<PRE><STRONG>
<A HREF="ftp://ftp.debian.org/debian/dists/stable/main"
>ftp://ftp.debian.org/debian/dists/stable/main</A>/disks-i386/2.1.9-1999-03-03/base2_1.tgz
</STRONG></PRE>
<P><STRONG>
This is a basic debian system, tarred. After you unpack that you
should be able to run dpkg --root=/wherever -i foo.deb and install
additional deb's if necessary. And you can chroot into it and play
around. If you "sh root/pkgsel" in there, you'll get to the
package group selection menu debian normally displays after the
install from booth floppies.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Sounds interesting. I'll try that soon.
</BLOCKQUOTE>
<BLOCKQUOTE>
Do you know of a project to complete a more complete system
integrity auditing tool than debsums? I like that the rpm -Va
command tells me about changes to <EM>permissions</EM>, <EM>ownership</EM>,
and other metadata. debsums seems to be a light wrapper around
md5sum.
</BLOCKQUOTE>
<BLOCKQUOTE>
On slackware systems I can just use 'tar df ...' to get this
sort of info. When I met Patrick Volkerding at LinuxWorld I
suggested he write a script to do that for a whole CD full of
of tar files --- sort of an "auditors workbench." (I also
suggested that he make this an option from the boot menu on
the CD and that he make a custom boot floppy for system
auditing; so that the <A HREF="http://www.slackware.org/">Slackware</A> sysadmin is encouraged to
do proper audits of their system, from a clean boot off of a
write protected floppy).
</BLOCKQUOTE>
<BLOCKQUOTE>
I'd like to encourage the <A HREF="http://www.debian.org/">Debian</A> team to also come up with
such a beast (and I'll try to devote some time and Linuxcare
resources to actually DOING it). However, it occurs to me that
the existing Debian hacks can probably do something like this
practically overnight. (I'll be fighting a much longer learning
curve before I'm ready to contribute a production quality
package to this effort).
</BLOCKQUOTE>
<BLOCKQUOTE>
I've heard that Debian packages encapsulate .tar files. Is that
true? Are they tar or tar.gz? (no problem, 'tar dzf ...' works).
I suppose I could use alien to extract tar files from .deb files
(one at a time) and then use tar df on each of those.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
--
see shy jo
</STRONG></P>
<!-- 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"
>WinPrinter Work-around</H3>
<p><strong>From harmbehrens on Sat, 01 May 1999
</strong></p>
<!-- ::
WinPrinter Work-around
~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Hello,
is there any work-around to get a gdi printer (Star Wintype 4000) to
work with Linux :-?
Harm
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Save the file to some supported format (something that
MS Windows can read), copy the file to a Windows system
(to which your GDI printer is attached) and/or reboot
your system into MS Windows, and use that to print.
</BLOCKQUOTE>
<BLOCKQUOTE>
--- Alternatively I suppose you could configure a
Windows system to share its printer and use Samba
(smbclient) to print to that.
</BLOCKQUOTE>
<BLOCKQUOTE>
Those are WORKAROUNDS.
</BLOCKQUOTE>
<BLOCKQUOTE>
I presume that these are NOT what you wanted to hear.
However, there is no way that I know of to support
a Winprinter without running drivers that are native
to MS Windows (and its GDI --- graphics device interface
--- APIs).
</BLOCKQUOTE>
<BLOCKQUOTE>
I think that the development of GDI printers was a
devious and clever trick by Microsoft. Tie the
customer AND the printer manufacturers inextricably to
Microsoft's SOFTWARE and leave them both vulnerable to
MS upgrades for the lives of their products. It's
diabolically clever.
</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"
>Maximum Filesize vs. Maximum Filesystem Size</H3>
<H4 ALIGN="center">
(From LinuxPPC Mailing List)</H4>
<p><strong>From Charlie Romero on Thu, 27 May 1999
</strong></p>
<!-- ::
Maximum Filesize vs. Maximum Filesystem Size
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(From LinuxPPC Mailing List)
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I'm a little confused on the 2 GB thing. Is it ok to have each partition
ie. <TT>/usr</TT> , <TT>/etc</TT>, <TT>/home</TT> at 2GB each or can the whole file system not exceed
2 GB.
</STRONG></P>
<P><STRONG>
If I have a 10 GB drive, is this ok.
</STRONG></P>
<P><STRONG>
<TT>/usr</TT> 2GB
<TT>/etc</TT> 2GB
<TT>/opt</TT> 2GB
<TT>/home</TT> 2GB
<TT>/swap</TT> 2GB
</STRONG></P>
<P><STRONG>
or do I have to keep the total under 2GB?
</STRONG></P>
<P><STRONG>
Thanks,
Charlie
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Actually 2Gb is the maximum FILESIZE under 32-bit versions
of Linux. (Alpha, and presumably UltraSPARC ports are not
hampered by this).
</BLOCKQUOTE>
<BLOCKQUOTE>
Linux ext2 filesystems can be much larger than 2Gb ---
and can be much larger than any available consumer hard
drives or common arrays (although the lack of
journaling/logging means that fsck may take a prohibitively
long time on larger filesystems).
</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"
>ICMP Masquerading</H3>
<p><strong>From Abraham S. Lin on Thu, 27 May 1999
</strong></p>
<!-- ::
ICMP Masquerading
~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Hi, jim,
This is your e-mail address on Linuxgazette, so I tried. Hope this
is not your personal mailbox.
</STRONG></P>
<P><STRONG>
After reading all the docs, howtow, and the docs from www.xos.nl
(supposedly original ipfwadm site), there are little mention of icmp
forwarding, and no examples of it.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
So far it all goes to the same mailbox eventually.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
My setup is:
1. Redhat 5.2(full install), machine name ken. one interface to internet,
</STRONG></P>
<P><STRONG>
the other to localnet.
2. localnet machines with 10.1.1.x private addresses. (kolya and brian)
</STRONG></P>
<P><STRONG>
I did deny on all in/out/forward rules of ipfwadm. And then enabling them
one by one. It's a tuff job but seems like all is well.
</STRONG></P>
<P><STRONG>
Until I figured that ping and traceroute doesn't work from localnet. Not
even from the linux gateway to internet.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
You don't mention which version of the kernel you're using.
That's important because most versions of the 2.0 kernel
series didn't support ICMP masquerading. It's still listed
as an experimental feature.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Thanks for this in advance. After this is fixed I think we'll have to make
ipfirewalling HOWTO better than it is now. It didn't do on icmp forwarding.
</STRONG></P>
<P><STRONG>
Thanks again,
abe
</STRONG></P>
<P><STRONG>
P.S.
Here's the digest of my <TT>/etc/rc.d/rc.local</TT> on the icmp part:
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
><BlockQuote>
Your problem has to do with MASQUERADING of ICMP.
It has nothing to do with forwarding them.
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
You probably have to compile a later 2.0.36 kernel
to add this support. You could also consider trying
the 2.2.9 or later kernels and switching to the newer
IP Chains model.
</BLOCKQUOTE>
<BLOCKQUOTE>
IP Masquerading through IPChains is not well explained
in their HOWTO. I just had to figure that one out
while teaching Linux classes at SGI (one of my Linuxcare
roles).
</BLOCKQUOTE>
<BLOCKQUOTE>
I don't have my example handy but the key is to
understand that the -j option to the ipchains command
is used both for "jumping" to a chain (that you've
created) and for declaring a disposition to a given
packet. Thus ACCEPT, DENY, REJECT, REDIR, RETURN and MASQ
are sorta treated like chains (you use tham as targets to
the -j option) but they will not be listed with the -L
and are not "flushed" with -F, etc.
</BLOCKQUOTE>
<BLOCKQUOTE>
When you want to masquerade for a network all you really
need is:
</BLOCKQUOTE>
<blockquote><pre>ipchains -A forward -s $INTERNALNET -d 0.0.0.0/0 -j MASQ
</pre></blockquote>
<BLOCKQUOTE>
... add a rule to the (pre-defined) forwarding chain
so that any package with a source address (<TT>-s</TT>) matching
our internal address and a destination (<TT>-d</TT>) of anywhere
(else) is "just" MASQueraded.
</BLOCKQUOTE>
<BLOCKQUOTE>
I've successfully configured masquerading with
just that rule (and the usual routes and ip_forwarding
enabled). It doesn't seem to need any special rule
to match addresses going from an internal address to
another internal address. So we don't need to
do something like:
</BLOCKQUOTE>
<blockquote><pre>ipchains -A forward -s $INTERNALNET -d ! $INTERNALNET -j MASQ
</pre></blockquote>
<BLOCKQUOTE>
... where the ! sign negates our address mask and
comes to refer to any destination that is NOT in our
internal network.
</BLOCKQUOTE>
<BLOCKQUOTE>
This second variation of the rule is more precise and
probably more correct. However it doesn't seem to be
necessary.
</BLOCKQUOTE>
<BLOCKQUOTE>
I have also been successful in setting up bidirectional
masqeurading with just two fowarding rules:
</BLOCKQUOTE>
<blockquote><pre>ipchains -A forward -s $MYNET -d 0.0.0.0/0 -j MASQ
ipchains -A forward -s $HISNET -d 0.0.0.0/0 -j MASQ
</pre></blockquote>
<BLOCKQUOTE>
... again this seems to work although:
</BLOCKQUOTE>
<blockquote><pre>ipchains -A forward -s $MYNET -d $HISNET -j MASQ
ipchains -A forward -s $HISNET -d $MYNET -j MASQ
</pre></blockquote>
<BLOCKQUOTE>
... would seem to be more precise and probably better.
</BLOCKQUOTE>
<BLOCKQUOTE>
The examples in the HOWTOs seem to insist on creating
a separate chain for our masquerading rules using something
like:
</BLOCKQUOTE>
<blockquote><pre>ipchains -N mymasq
</pre></blockquote>
<BLOCKQUOTE>
... and then using various rules to jump (<TT>-j</TT>) into that
chain (which then just does a MASQ anyway, also using the
-j option). This added level of indirection seems to be
completely unnecessary for the simple case and is far too
confusing from the examples. I suggest that people start
with my simpler examples and only add the additional
chains of rules as their needs demand it.
</BLOCKQUOTE>
<BLOCKQUOTE>
Your excerpts:
</BLOCKQUOTE>
<blockquote><pre>> extip=_EXTERNAL_INTERFACE_IP
> intip=_INTERNAL_INTERFACE_IP
> localnet=10.1.1.0/24
> any=0.0.0.0/0
> # A ping from kolya to 132.206.1.11 Not right still...........
> /sbin/ipfwadm -I -a accept -V $intip -P icmp -S $localnet 8 -D $any
> /sbin/ipfwadm -O -a accept -V $extip -P icmp -S $extip 8 -D $any
> /sbin/ipfwadm -I -a accept -V $extip -P icmp -S $any 0 -D $extip
> /sbin/ipfwadm -O -a accept -V $intip -P icmp -S $any 0 -D $localnet
>
> # A traceroute from kolya to 132.206.1.11 Not right still.......
> /sbin/ipfwadm -I -a accept -V $intip -P icmp -S $localnet 8 -D $any
> /sbin/ipfwadm -O -a accept -V $intip -P icmp -S $intip 11 -D $localnet
>
> /sbin/ipfwadm -I -a accept -V $intip -P icmp -S $localnet 8 -D $any
> /sbin/ipfwadm -O -a accept -V $extip -P icmp -S $extip 8 -D $any
> /sbin/ipfwadm -I -a accept -V $extip -P icmp -S $any 11 -D $extip
> /sbin/ipfwadm -O -a accept -V $intip -P icmp -S $any 11 -D $localnet
>
> # This line just produces error message. Don't know the syntax for icmp.
> /sbin/ipfwadm -F -a accept -P icmp -S $localnet 3:11 -D $any
</pre></blockquote>
<BLOCKQUOTE>
I think you probably actually want something more like
</BLOCKQUOTE>
<blockquote><pre>/sbin/ipfwadm -F -a accept -m -P icmp -S $localnet 3 11 -D $any
</pre></blockquote>
<BLOCKQUOTE>
... "port ranges" (the 3:11 syntax) aren't meaningful
for ICMP. I presume you are trying to limit the
packet filters to accepting/relaying "echo request" and
"echo reply" packets in this example. I don't have a
handy list of ICMP packet types but you definitely also
want to allow some other packet types to get through
(for MTU path discovery)!
</BLOCKQUOTE>
<BLOCKQUOTE>
Actually I'm not sure that you need it when masquerading
since the ICMP message that informs a TCP stack that a
"Don't Fragment" packet was dropped might only need
to reach our router/gateway (the system performing the
masquerading). I'm not sure if it needs to get all the
way back to our host.
</BLOCKQUOTE>
<BLOCKQUOTE>
In any event I'd suggest that you adopt the opposite
strategy with regards to ICMP packets. There are only a
few of them that need to be filtered out (redirects mainly).
So far it seems to be safe to let most other ICMP message
types through. (Well, about as safe as letting any sort
of IP traffic through, masqueraded or otherwise. Naturally
you should consider proxying with SOCKS, Dante or DeleGate
to tighten security even further).
</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"
>Upgrade Breaks Several Programs, <TT>/proc</TT> Problems, BogoMIPS Discrepancies</H3>
<H4 ALIGN="center">
A visit to "Library Hell"</H4>
<p><strong>From Pete Caffall on Thu, 27 May 1999
</strong></p>
<!-- ::
Upgrade Breaks Several Programs, <TT>/proc</TT> Problems, BogoMIPS Discrepancies
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A visit to "Library Hell"
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Jim:
</STRONG></P>
<P><STRONG><BlockQuote>
I'm kind of going nuts here trying to figure this one out. I
</BlockQuote></STRONG></P>
<P><STRONG>
have just recently upgraded my system at home with RedHat 5.2. It
previously had RedHat 5.0 on it. Since then I have been unable to
get Netscape (4.5.1 or 4.06) to work, as well as Word Perfect 7.0
, and not to be outdone - arena. All break on start up with a
segmentation fault (SYSSEGV) and a core dump. Prior to the
upgrade, all worked (well - don't know about arena - just tried
that to see if it might also break). I did not change my hardware
configuration and is the same as prior to the update. ASUS 5ab MB,
AMD K 6 II 3D 333mhz processor, 64 mb 100mhz sdimm, 5 gb WD IDE hd
drive where Linux is installed. XFree86, Afterstep that came with
the distribution, and ATI Xpert 98 video with 8mb.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
It sounds like the upgrade replaced your shared libraries
with versions that aren't quite compatible with these
applications. Netscape Navigator and Communicator have
both historically been pretty picky about their shared
libraries.
</BLOCKQUOTE>
<BLOCKQUOTE>
There are occasions in the past where a GNU bug fix to their
libc has broken versions of Navigator and Communicator that
relied upon these bugs. You can find out which libraries
these files are linked against with the 'ldd' command.
</BLOCKQUOTE>
<BLOCKQUOTE>
You can also rebuild your <TT>/etc/ld.so.cache</TT> file by running
the 'ldconfig' command (a good idea to try that any time
you suspect shared library problems).
</BLOCKQUOTE>
<BLOCKQUOTE>
You say (later) that you tried using libc.so.5.4.33.
However you don't say <EM>how</EM> you tried to use it. There
are a couple of magic environment variables LD_PRELOAD and
LD_LIBRARY_PATH which can be used to override the
order in which shared libraries are loaded (and thus
can control which library gets loaded to supply a given
set of functions).
</BLOCKQUOTE>
<BLOCKQUOTE>
You can read the ld.so(8) man page for some details about
how the linker/dynamic for shared objects works under Linux
and other GNU systems.
</BLOCKQUOTE>
<BLOCKQUOTE>
Typically you'd copy your old libraries (with which these
programs were working) into some directory
(<TT>/usr/local/lib-special</TT> for example) and then replace your
links to Navigator, Communicator, WordPerfect, and any other
affected programs with a short wrapper script that sets and
exports the appropriate environment variables and then
launches the original program. There are examples of such
scripts on the web (from people who've had to hack them up
to run earlier versions of Navigator after earlier upgrades
of glibc).
</BLOCKQUOTE>
<BLOCKQUOTE>
Most of this nonsense should be unnecessary under Linux.
First, programs should be written to rely on the
exposed/documented characteristics of the libraries against
which they are linked. Also it's supposed to be possible to
linked to more specific library versions in cases where
the more general version won't work with your application.
That's why we have so many symlinks like these:
</BLOCKQUOTE>
<blockquote><pre>-rwxr-xr-x libc-2.0.7.so
lrwxrwxrwx libc.so.4 -> libc.so.4.7.6
-rwxr-xr-x libc.so.4.7.6
lrwxrwxrwx libc.so.5 -> libc.so.5.4.46
-rwxr-xr-x libc.so.5.4.46
-rwxr-xr-x libc.so.5.4.7
lrwxrwxrwx libc.so.6 -> libc-2.0.7.so
</pre></blockquote>
<BLOCKQUOTE>
(from <TT>/lib</TT> on one of my <A HREF="http://www.suse.com/">S.u.S.E.</A> systems, actually).
</BLOCKQUOTE>
<BLOCKQUOTE>
The idea is that we should be able to have a libc.so.4.6.XX
with a symlink to libc.so.4.6. libc.so.4.7.6 (from my
example) would still be the "default" for libc.so.4, but
programs that were linked to libc.so.4.6 would use our
libc.so.4.6.XX. Thus they would be more specifically
bound to the 4.6 versions of the libraries than to the
4.7 or 4.5.
</BLOCKQUOTE>
<BLOCKQUOTE>
This is far more flexible than the implementation of DLLs
we see in MS Windows and NT. It can automatically tolerate
multiple concurrent versions of each library. The
LD_PRELOAD and LD_LIBRARY_PATH environment variables give us
even more flexibility since we can override the linkage at
run time for a specific process (or family or processes).
</BLOCKQUOTE>
<BLOCKQUOTE>
However, it can be a pain to manage for mere mortals
such as myself. Oddly enough it also seems to be more of
a problem for the commercial packages than for other Linux
software. I have to cope with far less "library hell"
resulting from typical binary packages than I do with
the big commercial ones.
</BLOCKQUOTE>
<BLOCKQUOTE>
I supposed one thing that WordPerfect, Netscape, Applix,
and Star Division could all do is to include all of the
libraries that they require (with which they are linked and
tested) on their CDs. They could then have an installation
and/or configuration option to install those in a
special directory (<TT>/opt/${PACKAGE}/lib</TT>) and to automatically
invoke their programs in a "compatability mode" where they
set their own LD_PRELOAD variables properly and launch thier
binaries.
</BLOCKQUOTE>
<BLOCKQUOTE>
Such a scheme could allow these companies to be more robust
in the face of distribution updates (such as your
transition from <A HREF="http://www.redhat.com/">Red Hat</A> 5.0 to 5.2 and the more disastrous
change from 5.x to 6.0 that has broken StarOffice and other
packages for so many Red Hat users in recent weeks).
</BLOCKQUOTE>
<BLOCKQUOTE>
(At the same time these packages would not need to take
up the additional disk space and memory footprint when
running on a system whose default libraries are suited
to the situation).
</BLOCKQUOTE>
<BLOCKQUOTE>
In any event you might consider upgrading to RH 6.0 and
WP 8.0. I personally suggest letting the distribution
maintainers do as much of the work of getting you
out of "library hell" as possible.
</BLOCKQUOTE>
<PRE><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
One thing I have noticed -it had problems trying to mount the
</STRONG></PRE>
<P><STRONG>
<TT>/proc</TT> file system - boot message indicated that it couldn't find
<TT>/proc</TT> in the fstab or mtab. I didn't notice it the last time I
booted, and looking in <TT>/proc</TT>, it shows as a file system, although
df -a doesn't show it. I tried using the libc.so.5.4.33 but this
did not resolve the problem.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I presume that your reference to libc.so.5.4.33 relates back
to your problems with certain applications since the <TT>/proc</TT>
issues are very unlikely to relate to your shared libraries.
</BLOCKQUOTE>
<BLOCKQUOTE>
Classically the 'mount' command should be statically linked.
I notice that S.u.S.E. 5.2 and <A HREF="http://www.debian.org/">Debian</A> 2.1 and Red Hat 5.2
all have it dynamically linked against libc. This is BAD
(since a corrupt ls.so.cache or a damaged libc.so will then
prevent you from even mounting up an alternative filesystem).
There is an alarming trend to configure whole systems to
practically require dynamic linking for everything. This
makes the whole system less robust with greater and more
critical interdependencies. (In this regard we are
following in Sun's footsteps; it's practically impossible to
create a statically linked program under Solaris).
</BLOCKQUOTE>
<BLOCKQUOTE>
However, I doubt that your problem with <TT>/proc</TT> has anything
to do with shared libraries.
</BLOCKQUOTE>
<BLOCKQUOTE>
Your mtab file should initially be empty when your reboot.
Your <TT>/etc/fstab</TT> file should have an entry from <TT>/proc</TT> that
looks something like:
</BLOCKQUOTE>
<blockquote><pre>none /proc proc defaults 0 0
</pre></blockquote>
<BLOCKQUOTE>
... If it doesn't, add one.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Any suggestions (nice ones) would be appreciated.
</STRONG></P>
<P><STRONG>
One curiosity question: The system at home with the AMD K6 II
</STRONG></P>
<P><STRONG>
3D reports 663 bogomips. The system I have at work is a Pentium
II (not Celeron) 400 Mhz, and it reports 397 bogomips. What gives.
Thanks in advance for any help you can give.
Pete Caffall
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I wouldn't worry about it. BogoMIPS are a measure of how
fast your processor executes a fast idle loop. That is to
say, how fast can your processor do NOTHING. In most cases
a stock Pentium CPU will have a BogoMIPS value that's
reasonably close to its clock speed. However Pentium MMX
and various clone CPUs with MMX like extensions (like
your AMD K6) will have higher BogoMIPS values.
</BLOCKQUOTE>
<BLOCKQUOTE>
My Pentium 150 shows:
</BLOCKQUOTE>
<blockquote><pre>cpu MHz : 167.050963
bogomips : 66.56
</pre></blockquote>
<BLOCKQUOTE>
(excerpts from <TT>/proc/cpuinfo</TT>) while my Omnibook 800
(Pentium 166) shows a BogoMIPS of 328.50. My old
386DX/33 shows a BogoMIPS of about 6.6
</BLOCKQUOTE>
<BLOCKQUOTE>
There's a reason why Linus named these "BOGO"-MIPS
</BLOCKQUOTE>
<BLOCKQUOTE>
(I guess they're actually used in the kernel for
certain types of short idle loops).
</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"
>Spare a Minute to Provide "Some Info"</H3>
<p><strong>From fujairah on Thu, 20 May 1999
</strong></p>
<!-- ::
Spare a Minute to Provide "Some Info"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
To william smith
</STRONG></P>
<P><STRONG>
I have read about your answers on different linux sites. We are
interested in LINUX and wish to see how it works, If it is fine we
will be interested to go for it.
</STRONG></P>
<P><STRONG>
If you could kindly give us some info about LINUX it will be
really useful to us.
</STRONG></P>
<P><STRONG>
- P.GOWRI SHANKAR
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Um. That's pretty open-ended. It took me over a
minute to format this replay and trim up the portions
of your message that I'm quoting for context.
</BLOCKQUOTE>
<BLOCKQUOTE>
Linux is an independent and free implementation of the
POSIX and UNIX programming APIs and conventions. Most
UNIX software can be ported to Linux with ease.
</BLOCKQUOTE>
<BLOCKQUOTE>
Because all of the core parts of a Linux/GNU system
are open source) it should be possible to port <EM>any</EM>
UNIX software to it.
</BLOCKQUOTE>
<BLOCKQUOTE>
What else is there to say on the subject. You found
back issues of the "Answer Guy" so you must have found
numerous other links to Linux web sites. It is one of the
most popular subjects on the Internet.
</BLOCKQUOTE>
<BLOCKQUOTE>
You are obviously already "interested" in it (enough
to look around on the web to find me and enough to
write to me). So you best strategy is to get a
copy of Linux to play with (it's free after all, though
you're best option is to pay for a copy of one of the
popular distributions, to save you the trouble, time and
expense of downloading a whole suite for yourself).
</BLOCKQUOTE>
<BLOCKQUOTE>
As for matching Linux features to your needs: Only you
can do that. Certainly you can, and probably should,
hire a consultant (or contract with a consulting firm)
to perform a requirements analysis process.
</BLOCKQUOTE>
<BLOCKQUOTE>
From what you've said here, all I can say is:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
Well, I like it.
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
As for how it works.
</BLOCKQUOTE>
<BLOCKQUOTE>
Well you install it, usually by booting from your CD or a
specially written floppy, then you follow a number of
installation dialogs, answering mysterious questions with
obscure parameters. A bit later after much disk activity,
often accompanied by "informative" progress indicator
dialogs, you reboot. Then you log in to either a text or
graphic session and you issues commands by typing them at a
command prompt, selecting them from text menus or using a
mouse.
</BLOCKQUOTE>
<BLOCKQUOTE>
In other words, Linux works just like any other
microcomputer operating system. I can't be more specific
(because your minute is up, but also because there are many
different distributions of Linux and most of them have
many different options --- so you can choose almost any
aspect of your user interface, for yourself).
</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"
>Data "Losted" (sic)</H3>
<p><strong>From Andres Martinez Pintor on Thu, 20 May 1999
</strong></p>
<!-- ::
Data "Losted" (sic)
~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I lost all information in my drive using diskedit.The parameter
block BPB was losted.I don't have anything in diskedit ...it's all
in 00.All I want is the disk drive operating...the information and
programs not needed .Is there a program for this? to get to c:\
</STRONG></P>
<P><STRONG>
Samsung VA 34324A 4.3G
Please help me.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
First this doesn't sound like a Linux question.
There isn't any Linux program named "diskedit" that
I've ever heard of, and we don't designate out filesystems
using names like "C:"
</BLOCKQUOTE>
<BLOCKQUOTE>
Next, what were you doing in DiskEdit if you don't know
how to use it, and you didn't have a current backup?
</BLOCKQUOTE>
<BLOCKQUOTE>
Last, if you don't care about the data (information and
programs not needed) then why not simply repartition the
drive and put new filesystems on it?
</BLOCKQUOTE>
<BLOCKQUOTE>
(If you do care about the data you could always try Norton
utilities "UNFORMAT.EXE" program. One trick we used to do
with that, when I was on the Norton tech support team, is to
FORMAT a drive, then immediately UNFORMAT it. This often
recovered most of the data, relatively quickly and
painlessly. However, I don't work for Norton, or Symantec,
anymore. so if you want their help, on the legacy DOS
derived platforms that I've abandoned, call them).
</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"
>Network Neighborhood: Heterogenous File Sharing</H3>
<p><strong>From azlan on Thu, 20 May 1999
</strong></p>
<!-- ::
Network Neighborhood: Heterogenous File Sharing
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
How do I configure the Network setting so that I can access other
PCs in a LAN regardless of what other PCs have as their
OSs(Linux/Windows/Macs) -- Network File Sharing.
</STRONG></P>
<P><STRONG>
Thank you,
</STRONG></P>
<P><STRONG>
AZLAN
Ipoh, Malaysia
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Using Samba on your Linux and other UNIX systems will allow
them to act as file and print servers to NT, Win '9x, WfW,
and OS/2 LANMan clients.
</BLOCKQUOTE>
<BLOCKQUOTE>
Netatalk will allow the same Linux and UNIX systems provide
file and print services to MacOS clients (although MacOS X
will probably be even better in this role --- if you want to
pay for it).
</BLOCKQUOTE>
<BLOCKQUOTE>
While we're on the subject it's possible to run Novell
Netware under Linux (available through <A HREF="http://www.caldera.com/">Caldera</A>). There's
also the free mars_nwe (Netware emulator).
</BLOCKQUOTE>
<BLOCKQUOTE>
So, the obvious answer to your question is to install the
appropriate software on your Linux and other UNIX systems.
This will allow them to communicate with your Windows and
MacOS systems using the protocols that are native to those
systems.
</BLOCKQUOTE>
<BLOCKQUOTE>
Naturally you could try installing NFS on the "other"
operating systems. However, NFS is a pretty lame protocol
(particularly in versions 1 and 2). Linux support for NFS
is still not sterling, though the new kernel driver is
getting better and we are seeing some preliminary v3 and NFS
over TCP support. More importantly we find that the various
NFS implementations for NT, Win '9x, MacOS, etc. are very
bad. These take lots of resources from these non-UNIX
operating systems, cause conflicts and make these systems
even less robust and stable (which is very bad considering
how often we have to reboot our NT, '9x and Macs already).
</BLOCKQUOTE>
<BLOCKQUOTE>
I should point out that Samba and Netatalk aren't a bed of
roses. Actually, to question that old idiom a bit perhaps I
should say that they ARE a bed of roses, complete with
thorns!
</BLOCKQUOTE>
<BLOCKQUOTE>
Presumably you'd like seamless filesharing with robust file
and record locking, security, and high reliability.
</BLOCKQUOTE>
<BLOCKQUOTE>
The problems that come with this are often subtle. If you
took a given directory tree (say the home directories for
your users) and shared/exported it out over NFS, AppleTalk,
and SMB protocols you'd probably find numerous problems with
file corruptions and horrible concurrency issues. The low
level locking semantics and, in many cases, the file
formatting characteristics, even the file naming syntax, are
all just different enough to cause irreconcilable
differences.
</BLOCKQUOTE>
<BLOCKQUOTE>
Frankly your best bet for heterogenous file sharing to this
day is probably Netware. Naturally this means getting
Netware clients for you MacOS, Win '9x, and even OS/2, and
MS-DOS systems. Native Linux drivers for accessing Netware
servers are available. There are the ncpfs (free) drivers
(aren't those in the stock 2.2 kernels these days?) and the
clients from Caldera (non-free, based on code licensed from
Novell).
</BLOCKQUOTE>
<BLOCKQUOTE>
Sometimes I wonder why FTP is still such a widespread and
popular protocol. Other times I look at the issues like
these, and I know.
</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"
>AOL</H3>
<p><strong>From Ydoc10 on Mon, 17 May 1999
</strong></p>
<P><STRONG>
Is there any way to access AOL E-mail without knowing the password
and being undetected?? As in showing mail read, etc.
</STRONG></P>
<P><STRONG>
Also...same question for AOL IM's....
</STRONG></P>
<P><STRONG>
Really need to know
Thanks
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Not that I know of. In any event it sounds like
such activities would be illegal and petty. In addition
this question has nothing to do with Linux.
</BLOCKQUOTE>
<BLOCKQUOTE>
So, where do you idiots get my address and why do you
ask me these silly, irrelevant and juvenile questions?
</BLOCKQUOTE>
<BLOCKQUOTE>
Actually you could "access" AOL E-mail by sniffing any
network connection over which it was travelling. Of
course you'd have get access to said network segment
while the victim was access his or her e-mail.
</BLOCKQUOTE>
<BLOCKQUOTE>
You could probably also get it from the victim's
computer if you surrepticiously gained access to
that (it probably appears in temporary files and
possibly in removed/deleted file fragments.
</BLOCKQUOTE>
<BLOCKQUOTE>
Naturally you could send the victim a hacked up
"upgrade" to their AOL software and hope that
he or she is stupid enough to install it.
</BLOCKQUOTE>
<BLOCKQUOTE>
Then again you could walk into one of the AOL
offices and try to gain direct access to their
servers. That should be entertaining.
</BLOCKQUOTE>
<BLOCKQUOTE>
If you actually try any of these moronic schemes
I hope you get promptly arrested and suffer a
humiliating time in the press.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 24 -->
<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>
<ul>
<li><a HREF="./lg_tips42.html#jones">
IP address in Linux Gazette
</a>
<li><a HREF="./lg_tips42.html#bestor">
root Password
</a>
<li><a HREF="./lg_tips42.html#primes">
Shutting up your modem
</a>
<li><a HREF="./lg_tips42.html#jones2">
PPP IP address
</a>
<li><a HREF="./lg_tips42.html#magnus">
IP adress from ifconfig
</a>
<li><a HREF="./lg_tips42.html#stanford">
Modems
</a>
</ul>
<H3><font color="#CC0000">Answers to Mail Bag Questions:</font></H3>
<ul>
<li><a HREF="./lg_tips42.html#leary">
Re: [SLL] Basic Question: Gnome Panel?
</a>
<li><a HREF="./lg_tips42.html#stern">
tar.gz on Windows, ZIP on Linux--1
</a>
<li><a HREF="./lg_tips42.html#murphy">
Linux Gazette Format--2
</a>
<li><a HREF="./lg_tips42.html#inskeep1">
Reading Linux Files from Win95--3
</a>
<li><a HREF="./lg_tips42.html#inskeep2">
a.out binaries not working--1
</a>
<li><a HREF="./lg_tips42.html#smith1">
Re: Linux partitions from Windows--1
</a>
<li><a HREF="./lg_tips42.html#smith2">
Re: a.out binaries not working--2
</a>
<li><a HREF="./lg_tips42.html#smith3">
Re: FTP access methods
</a>
<li><a HREF="./lg_tips42.html#bodony">
Windows NT and Linux hate each other?
</a>
<li><a HREF="./lg_tips42.html#frank">
Re: Linux partitions from Windows--2
</a>
<li><a HREF="./lg_tips42.html#murray">
Problems running your a.out executable--3
</a>
<li><a HREF="./lg_tips42.html#jensen">
Linux Partitions on Windows--3
</a>
<li><a HREF="./lg_tips42.html#killian">
Need help on Internet connection with Linux
</a>
<li><a HREF="./lg_tips42.html#michal">
Re: Linux Gazette Format--4
</a>
<li><a HREF="./lg_tips42.html#brown1">
Network boot disk for i386 without hd
</a>
<li><a HREF="./lg_tips42.html#brown2">
Subject: Linux partitions from Windows--4
</a>
<li><a HREF="./lg_tips42.html#hadess">
FTP access methods...
</a>
<li><a HREF="./lg_tips42.html#baker">
a.out--4
</a>
<li><a HREF="./lg_tips42.html#greene">
Re: Linux Gazette Format--6
</a>
<li><a HREF="./lg_tips42.html#ruang">
The PPP problem, followup.
</a>
<li><a HREF="./lg_tips42.html#berkley">
Re: ANSWER: Word to PostScript
</a>
<li><a HREF="./lg_tips42.html#walsh">
3COM cards
</a>
<li><a HREF="./lg_tips42.html#powell">
HD-less
</a>
<li><a HREF="./lg_tips42.html#wood">
3COM cards
</a>
<li><a HREF="./lg_tips42.html#crane">
Re: question for the board
</a>
<li><a HREF="./lg_tips42.html#radovan">
Re: Network boot disk for i386 without hd
</a>
<li><a HREF="./lg_tips42.html#radovan2">
Re: FTP access methods...
</a>
<li><a HREF="./lg_tips42.html#jay">
re: soundpro
</a>
<li><a HREF="./lg_tips42.html#saiorse">
Re: Question about 2 GB max?
</a>
<li><a HREF="./lg_tips42.html#rini">
Re: Question about 2 GB max?
</a>
</ul>
<P> <hr> <P>
<!--================================================================-->
<a name="jones"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<font color="navy">
IP address in Linux Gazette
</font> </H3>
Date: Wed, 5 May 1999 08:39:07 -0400<BR>
From: "F. D. Jones", <A HREF="mailto:mrj@magicnet.net">mrj@magicnet.net</A>
<P>
FYI, the current implementaion of pppd automatically runs the
script /etc/ppp/ip-up when the ppp connetion is established. One of
the variables created in the script is $IPLOCAL which is your assigned
ip address. No perl or awk required, and it's reliable because it's
reported by the daemon handling your ppp! There are a few other
conditional scripts invoked by pppd, also. Check them out.
<P>
From the man page for pppd:
<P>
SCRIPTS
Pppd invokes scripts at various stages in its processing which can be used to perform
site-specific ancillary processing. These scripts are usually shell scripts, but could
be executable code files instead. Pppd does not wait for the scripts to finish. The
scripts are executed as root (with the real and effective user-id set to 0), so that
they can do things such as update routing tables or run privileged daemons. Be careful
that the contents of these scripts do not compromise your system's security. Pppd runs
the scripts with standard input, output and error redirected to /dev/null, and with an
environment that is empty except for some environment variables that give information
about the link. The environment variables that pppd sets are:
<P>
DEVICE The name of the serial tty device being used.
<P>
IFNAME The name of the network interface being used.
<P>
IPLOCAL
The IP address for the local end of the link. This is only set when IPCP has
come up.
<P>
IPREMOTE
The IP address for the remote end of the link. This is only set when IPCP has
come up.
<P>
PEERNAME
The authenticated name of the peer. This is only set if the peer authenticates
itself.
<P>
SPEED The baud rate of the tty device.
<P>
UID The real user-id of the user who invoked pppd.
<P>
Pppd invokes the following scripts, if they exist. It is not an error if they don't
exist.
<P> <hr> <P>
<!--================================================================-->
<a name="bestor"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<font color="navy">
root Password
</font> </H3>
Date: Wed, 05 May 1999 23:40:19 -0400<BR>
From: David Bestor, <A HREF="mailto:dab@indenial.com">dab@indenial.com</A>
<P>
Forgot root password?<BR>
Sendmail hangs on boot?<BR>
That new startup script locks up your system..
<P>
Instead of breaking into your system just
boot up into single user mode.
<P>
At the lilo prompt just type: <tt>linux -s</tt>
<P>
Example:
<PRE>
LILO:linux -s
</PRE>
This will boot up into single user mode
and it doesnt even ask for a password...
<P>
Much easier than trying to break in..
<P>
Thanks<BR>
<P>
--<BR>
David
<P> <hr> <P>
<!--================================================================-->
<a name="primes"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<font color="navy">
Shutting Up Yer Modem
</font> </H3>
Date: Thu, 06 May 1999 06:54:30 PDT
<A HREF="mailto:primes@hotmail.com">primes@hotmail.com</A>
<P>
This shuts up or quietens noisy modems during dialup. recall the following
AT commands.
<P>
controls speaker volume:
<ul>
<li>L0 low volume.
<li>L1 low volume.
<li>L2 medium volume (default).
<li>L3 high volume.
</ul>
<P>
operates speaker:
<ul>
<li>M0 speaker always off.
<li>M1 speaker on until connect (default).
<li>M2 speaker always on.
<li>M3 speaker on after dial, until connect.
</ul>
<P>
<ul>
<li>Z resets modem
<li>DT tone dials specified phone number.
</ul>
<P>
you now have to modify the expect-send pairs in your chat script. note that
the above commands should be prefixed by AT. the following chat script turns
off the modem speaker.
<PRE>
/usr/sbin/chat \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' ATZ \
'OK' ATM0 \
'OK' ATDT1234567 \
CONNECT '' \
ogin:--ogin: mylogin \
assword? mypassword
</PRE>
after specifying the ABORT strings, the sequence will first expect nothing;
and then send the string ATZ to reset the modem. the expected response to
this is the string OK, after which the string of ATM0 is sent to turn off
the modem speaker. when it receives OK, the phone number 1234567 is dialed
out, after which the login procedure begins.
<P>
to vary the speaker's volume, just suitably modify the expect-send pairs
before the ATDT command, eg. replacing ATM0 by ATL0 uses low volume for the
speaker.
<P>
--<BR>
primes
<P> <hr> <P>
<!--================================================================-->
<a name="jones2"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<font color="navy">
PPP IP address
</font> </H3>
Date: Tue, 11 May 1999 10:53:27 -0400<BR>
From: Robert Jones, <A
HREF="mailto:rjones@chaotika.net">rjones@chaotika.net</A>
<P>
In response to the recent couple tips about finding the IP address of a PPP
interface, I offer the following script, which will tell you the IP address of
any properly configured network interface on your system.
<PRE>
#!/bin/sh
if [ -z $1 ]; then
echo "You must specify a network interface."
elif [ -z "`grep $1: /proc/net/dev`" ]; then
echo "Interface '$1' does not exist on this system."
else
IPADDR=`ifconfig $1 | grep inet | cut -d: -f2 | cut -d\ -f1`
echo "The IP address for $1 is $IPADDR."
fi
</pre>
--<BR>
Robert
<P> <hr> <P>
<!--================================================================-->
<a name="magnus"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<font color="navy">
IP adress from ifconfig
</font> </H3>
Date: Wed, 12 May 1999 00:43:31 +0100 (GMT+0100)<BR>
From: Magnus & Tina, <A HREF="mailto:magnus@gol.com">magnus@gol.com</A>
<P>
I couldn't resist. Why use perl or awk?
<P>
Here is another one of those "How to get an IP adress from pppd" tips.
In this specific case for the gateway.
It needs to be changed depending on the printout format of ifconfig though.
<PRE>
ifconfig | fgrep P-t-P | cut -c42-56 > /tmp/gw_ip
</PRE>
--<BR>
Magnus
<P> <hr> <P>
<!--================================================================-->
<a name="stanford"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<font color="navy">
Modems
</font> </H3>
Date: Sun, 16 May 1999 10:40:34 -0600
From: "Joey Stanford", <A HREF="mailto:rescue@telebot.net">
rescue@telebot.net</A>
<P>
Just wanted to let you know that, contrary to the lists circulationg
around, ASKEY V1433VQH-X modems are Linux Compatable! You have to
disable PNP and set it up as COM3 (their terms) and IRQ4. Took me
almost a week to figure that out. =3D) Thought it would be helpful to
others!
<P>
--<BR>
Joey
<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>
<P> <hr> <P>
<!--================================================================-->
<a name="leary"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: [SLL] Basic Question: Gnome Panel?
</font> </H3>
Date: Tue, 25 May 1999 21:53:30 -0700<BR>
From: Michael Leary, <A HREF="mailto:leary@nwlink.com">leary@nwlink.com</A>
<P>
My thanks to Bradley Willson. For anyone else, here's what was wrong:
<P>
my .xinitrc was:
<PRE>
exec /usr/bin/enlightenment
</pre>
as per the enlightenment docs (I think?), anyway, when it should have been:
<PRE>
exec gnome-session
</PRE>
as per the gnome FAQ on gnome.org. This works great now, and all is well.
<P>
--<BR>
Michael
<P> <hr> <P>
<!--================================================================-->
<a name="stern"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
tar.gz on Windows, ZIP on Linux--1
</font> </H3>
Date: Mon, 03 May 1999 00:52:17 +0000<BR>
From: Heather Stern, <A HREF="maito:star@starshine.org">star@starshine.org</A>
<P>
I'll try to keep this short enough to stay at the Two Cent Tips level :)
<P>
'zip and 'unzip' are the Linux tools to deal with .ZIP files. According
to the
man page, it's been around since 1990, so it predates Linux itself by
several
years, it exists on other UNIX and UNIX-like systems too. (And it's
been ported
to MSwin - see <A HREF="http://www.itribe.net/virtunix/">http://www.itribe.net/virtunix/</A> for an unzipper that
handles long
names and fixes line ends.)
<P>
At any rate, I can see your point -- MSwin users are used to finding
apps and
documentation wrapped in .ZIP files, but true newvies don't know what a
.TGZ is,
and assume it's useless to them.
<P>
It's not. tough! WinZIP (<A HREF="http://www.winzip.com/">http://www.winzip.com/</A>) handles tar-gzipped
files
with no hassle whatsoever. I have two laptops, one w95 and one Linux -
and with
these two utilities I really don't have to think about file formats when
I toss
archives back and forth.
<P>
--<BR>
Heather
<P> <hr> <P>
<!--================================================================-->
<a name="murphy"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Linux Gazette Format--2
</font> </H3>
Date: Mon, 3 May 1999 19:54:46 -0700<BR>
From: "Nichole Murphy", <A HREF="mailto:Nichole-Murphy@worldnet.att.net">Nichole-Murphy@worldnet.att.net</A>
<P>
You can Download the text or HTML files and untar them with WinZip. Winzip
will tell you that the tar.gz files contain a compressed file and ask if you
would like to uncompress the second file. Chose "yes" then read the files
with any program you want.
<P>
--<BR>
Nichole
<P> <hr> <P>
<!--================================================================-->
<a name="inskeep1"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Reading Linux Files from Win95--3
</font> </H3>
Date: Mon, 03 May 1999 22:10:53 -0400<BR>
From: Peter Inskeep, <A
HREF="mailto:pinskeep@iglou.com">pinskeep@iglou.com</A>
<P>
I know of at least one program that will read Linux files from your
Windows 95 operating system. It is called "explore2fs.exe." It is
about 486K long, and is self contained, if I recall correctly. I know
it is a long note, but I have copied the author's Readme.txt file
below. The author, John Newbigin, is from Australia. The program
opens an explorer like window showing your Linux file systems, ie.,
/dev/hda5, /dev/hdb6, or whatever. You can read most files, if I
recall correctly. I also use a program called Windows Commander, by
Deiter Prissing, I believe, in Germany. It may be that program that
enables me to read individual files, but it is John's program that
makes it possible to read and scan the Linux file systems.
<P>
--<BR>
Pete
<P> <hr> <P>
<!--================================================================-->
<a name="inskeep2"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
a.out binaries not working--1
</font> </H3>
Date: Mon, 03 May 1999 21:59:04 -0400<BR>
From: Peter Inskeep, <A HREF="mailto:pinskeep@iglou.com">
pinskeep@iglou.com</A>
<P>
Darren,<BR>
Try running the a.out binary with the command line:
./a.out
I recently installed RedHat 5.2 and found that its $PATH statement
does not include a path of " ./: "
./ is the path of the current directory that you are in.
Remarkably, RedHat does not set up paths so that your current path is
looked at to execute a file.
<P>
Pete
<P> <hr> <P>
<!--================================================================-->
<a name="smith1"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: Linux partitions from Windows--1
</font> </H3>
Date: Mon, 3 May 1999 23:44:59 +0200 (CEST)<BR>
From: <A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl</A>
<P>
You can read (but not write) ext2 filesystems ubder Windows with the
FSDEXT2 driver. See http://www.yipton.demon.co.uk/
<P>
--<BR>
Roland
<P> <hr> <P>
<!--================================================================-->
<a name="smith2"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: a.out binaries not working--2
</font> </H3>
Date: Mon, 3 May 1999 23:32:30 +0200 (CEST)<BR>
From: <A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl</A>
<P>
You should probably install a different C development package. Most
distributions have two available: one for a.out and one for ELF
binaries. Install the package that makes ELF binaries.
<P>
If you want to run the a.out binaries, you have to have support for
that in the kernel. Either compiled in or as a module (binfmt_aout).
<P>
Roland
<P> <hr> <P>
<!--================================================================-->
<a name="smith3"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: FTP access methods
</font> </H3>
Date: Mon, 3 May 1999 23:27:08 +0200 (CEST)<BR>
From: <A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl</A>
<P>
Regarding your question about mounting FTP sites...
<P>
I do not think you can mount an ftp site directly.
<P>
But you might want to check if the FTP site also supports NFS (Network
File System) access. That should do what you want.
<P>
If you just want to synchronize a remote with a local directory, rsync
might be a better choice.
<P>
Hope this helps,
<P>
--<BR>
Roland
<P> <hr> <P>
<!--================================================================-->
<a name="bodony"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Windows NT and Linux hate each other?
</font> </H3>
Date: Tue, 11 May 1999 06:49:10 -0500<BR>
From: "Daniel J. Bodony", <A HREF="mailto:bodony@purdue.edu">
bodony@purdue.edu</A>
<P>
Dear Pepijn,
<P>Just recently, my roomate and I installed RH5.2 and NT/4.0 on the same
machine and had a problem very similar to the one you describe. The
network card used was a 3C509b that had been in an 486 running RH5.0 and
was known to work. In the new machine, NT/4.0 could see and use the
network card fine but RH5.2 could not. More specifically, RH5.2 could
find the network card but could not initialize it and Tx/Rx packets.
The answer turned out be that NT/4.0 would <I>Reset and Change</I> the
card's IO port and interupt values to a different set of numbers each time
the computer was rebooted so that the card was on a different IO/IRQ each
time RH5.2 started. Perhaps Win95 is doing something similar.
<P>The fix was to force NT/4.0 to choose one and only one IO/IRQ combination.
Then all worked fine.
<P>
--<BR>
Dan
<P> <hr> <P>
<!--================================================================-->
<a name="frank"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: Linux partitions from Windows--2
</font> </H3>
Date: Tue, 4 May 1999 19:42:35 +0200 (CEST)<BR>
From: Der Guru, <A HREF="mailto:frank@di-net.de">frank@di-net.de</A>
<P>
Mark,<BR>
I use fsdext2. It gives you read access to your Linux partitions. You can
find the URL at freshmeat.
Regards
<P>
--<BR>
Frank Maloschytzki
<P> <hr> <P>
<!--================================================================-->
<a name="murray"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Problems running your a.out executable--3
</font> </H3>
Date: Thu, 6 May 1999 16:38:27 +0100<BR>
From: "D.McMurray", <A HREF="mailto:d.mcmurray@dccl.net">
d.mcmurray@dccl.net</A>
<P>
This sounds to me like a very common mistake with newcomers to this type =
of operating system, especially those with a DOS/Windows background. I =
am assuming you are merely typing:
<PRE>
a.out
</PRE>
at the command prompt, which in DOS would normally execute the program. =
You may find that the mishap is due to the path enviroment variable, =
Which usually has the current directory '.' added by default in DOS but =
not so in Linux, well RedHat in particular, I cannot speak for the other =
distributions.
<P>
When you type 'a.out' the directories in your path variable are =
searched, if the file a.out is not found you will receive an error =
message along the lines of 'command not found' or similar. Try =
specifying the location of the executable, assuming you are in the =
directory containing the file try typing:
<PRE>
./a.out
</PRE>
This specifies that the file can be found in the current directory. If =
this works you can save having to type the './' each time by adding the =
directory '.' to your user profiles path enviroment.
<P>
Hope this helps,
regards,
<P>
--<BR>
David McMurray
<P> <hr> <P>
<!--================================================================-->
<a name="jensen"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Linux Partitions on Windows--3
</font> </H3>
Date: Sat, 8 May 1999 17:39:32 +0200 (CEST)<BR>
From: Torben Dam Jensen, <A HREF="mailto:tdj@hco.kol.ou.dk">
tdj@hco.kol.ou.dk</A> <BR>
<blockquote> <font color="navy">
I got a question for ya... is there a driver or application I can use to
get at least read access to my Linux partitions from Windows? Thanks,
</font></blockquote>
<P>
Yep !
<P>
<A HREF="http://www.yipton.demon.co.uk/">http://www.yipton.demon.co.uk/</A>
<P>
<A HREF="ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ext2">
ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ext2</A>
<P>
<A HREF="http://www.diskwarez.com/other/ext2tool.zip">
http://www.diskwarez.com/other/ext2tool.zip</A>
<A HREF="http://www.diskwarez.com/other/ext2tool.txt">
http://www.diskwarez.com/other/ext2tool.txt</A> (for a description)
<P>
Above links should get you going...
<P>
--<BR>
Torben
<P> <hr> <P>
<!--================================================================-->
<a name="killian"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Need help on Internet connection with Linux
</font> </H3>
Date: Sat, 08 May 1999 12:17:37 -0400<BR>
From: Laurin Killian, <A HREF="mailto:lek@uconect.net">
lek@uconect.net</A>
<blockquote> <font color="navy">
First I used kppp (script based)
</font></blockquote>
You sure you want script based? I don't think you do. I went to the
homepage for what appears to be your internet provider
(<A HREF="http://www.asiaaccess.net.th/">http://www.asiaaccess.net.th/</A>), and I see no mention of the logins requiring a
script. Try "PAP" under kppp - it stands for Password Authentication
Protocol. Since you're using kppp this should be easy to set up.
<P>
Might as well go all the way since I'm trying to help:
When you create a new account under kppp, all you should need to fill in
is:
<PRE>
(Dial Tab):
Connection Name and Phone Number
Authentication: PAP!
(DNS Tab):
Primary and secondary DNS #'s from ISP.
</PRE>
It is advisable to backup/delete ppp.options (as you originally did),
since kppp generates its own options (but may get confused if you added
conflicting options in that file).
<P>
It looks like AsiaAccess does have an option for a script, but
using PAP is easier and supposedly faster
<P>
Let me know if this works.
<P>
--<BR>
Laurin
<P> <hr> <P>
<!--================================================================-->
<a name="michal"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: Linux Gazette Format--4
</font> </H3>
Date: Sun, 9 May 1999 13:57:00 -0600 (MDT)<BR>
From: Michal Jaegermann, <A HREF="mailto:michal@ellpspace.math.ualberta.ca">
michal@ellpspace.math.ualberta.ca</A>
<P>
this is a comment to a complaint in Mail Bag, LG#41, from
jcclemen@SHERWIN.RMC.com that LG is not available in a format accessible
to Windows user and your response to that.
<P>
Even under 'doze there are tools available which handle .tar.gz
files. WinZip, for example, has even pointy-clicky interface
and accepts many different formats beyond zip; tar.gz is one
of these.
<P>
--<BR>
Michal
<P> <hr> <P>
<!--================================================================-->
<a name="brown1"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Network boot disk for i386 without hd
</font> </H3>
Date: Wed, 12 May 1999 17:41:31 +0200<BR>
From: BROWN Nick, <A HREF="mailto:Nick.BROWN@coe.int">
Nick.BROWN@coe.int</A>
<P>
Several distributions exist for floppy-only machines. Check out mulinux or
tomsrtbt (<A HREF="http://www.toms.net/rb/">http://www.toms.net/rb/</A>).
<P>
--<BR>
Nick
<P> <hr> <P>
<!--================================================================-->
<a name="brown2"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Subject: Linux partitions from Windows--4
</font> </H3>
Date: Wed, 12 May 1999 17:43:12 +0200<BR>
From: BROWN Nick, <A HREF="mailto:Nick.BROWN@coe.int">
Nick.BROWN@coe.int</A>
<P>
Check out e2fs at <A HREF="http://uranus.it.swin.edu.au/~jn/linux/">
http://uranus.it.swin.edu.au/~jn/linux/</A>
<P>
--<BR>
Nick
<P> <hr> <P>
<!--================================================================-->
<a name="hadess"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Linux partitions from Windows--6
</font> </H3>
Date: Fri, 14 May 1999 14:27:36 +0200<BR>
From: Hadess, <A HREF="mailto:hadess@infonie.fr">
hadess@infonie.fr</A>
<P>
Try-out Fsdext2 that you can grab at http://www.yipton.demon.co.uk/
It's only a read-only driver, but would you want to break your linux drive, hum ?
Ciao
--<BR>
Hadess
<P> <hr> <P>
<!--================================================================-->
<a name="hadess"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
FTP access methods...
</font> </H3>
Date: Fri, 14 May 1999 14:34:36 +0200<BR>
From: Hadess, <A HREF="mailto:hadess@infonie.fr">
hadess@infonie.fr</A>
<P>
If you want to have Unix-like access on a remote machine, you'd better use NFS. It's
not possible to mount FTP shares (if it's, mail-me =).
<P>
Your Windows apps were only hiding you the whole FTP thingy. They did the same thing
KFM does: show folders _as if_ they were local, no more.
<P>
NFS is in stock distro now and 2.2.x NFS performances are rather good, but worse than
FTP of course. Compile a new kernel for your rescue disk w/ NFS included.
Ciao
<P>
--<BR>
Hadess
<P> <hr> <P>
<!--================================================================-->
<a name="baker"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
a.out--4
</font> </H3>
Date: Fri, 14 May 1999 14:50:33 -0400<BR>
From: Help Desk, <A HREF="mailto:help-desk@utc.edu">help-desk@utc.edu</A>
<P>
>Is your current directory in your PATH? If not try ./a.out to execute.
You can get a more meaningful name w/ <tt>gcc -o myprogram myprogram.c</tt>. This
gives the executable the name myprogram. To set the path edit your
bash_profile and add '.' w/o the quotes to the path statement. Similiarly, for
other shells.
<P>
--<BR>
Charles Baker
<P> <hr> <P>
<!--================================================================-->
<a name="greene"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: Linux Gazette Format--6
</font> </H3>
Date: Sun, 16 May 1999 04:30:55 +0200<BR>
From: "Anthony E. Greene", <A HREF="mailto:agreene@pobox.com">
agreene@pobox.com</A>
<P>
In Linux Gazette #41, you wrote:
<blockquote> <font color="navy">
Many of us have and use Linux, but are still bound by the need to
standardize in the corporate world to the Windows environment. As a Linux
newbie, I still do not have a high speed modem bought and installed on
my Linux box at home so have no way to get the tar, etc formats, and, of
course, many of us have a higher speed lines at work. Is there a way to
download the file in a format that can be unzipped, etc. on a Windows
workstation then print out? Also, a format easily read by Windows machines
would make publicizing the Linux system possible to others now
using Windows. For example, our local PCC users club(Coastal Areas PC
Users Group, www.caug-pc.org http://www.caug-pc.org) has a web
site. I guess what I'm saying, is if we only publish Linux documents in
formats that Linux users and/or Linux gurus can use, how do we grow the
user base?
</font></blockquote>
There are many native Win95/98 freeware and shareware compression utilities
listed at Winfiles:
<P>
<A HREF="http://www.winfiles.com/">http://www.winfiles.com/</A>
<P>
--<BR>
Anthony
<P> <hr> <P>
<!--================================================================-->
<a name="ruang"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
The PPP problem, followup.
</font> </H3>
Date: Sun, 16 May 1999 10:19:15 +0700<BR>
From: Ruangvith Tantibhaedhyangkul, <A HREF="mailto:ruangvith@linuxfan.com">
ruangvith@linuxfan.com</A>
<P>
To all generous "Linuxians",
<P>
I've solved my problem about Internet connection with Linux, as I called
for help in <I>Linux Gazette</I>. After that, tens of suggestions have come
from almost all parts of the world. I've tried almost all as well. One
of these sent me to the right solution. It was from document "How to
Hook up PPP in Linux" by W.G. Unruh, recommended to me by Jerry Boyd.
Thanks for all your kindness.
<P>
The best of this is not the solution itself, but the way it comes, such
generosity which has been bringing about this wonderful OS. It's a true
Linux way!
<P>
--<BR>
Ruangvith
<P> <hr> <P>
<!--================================================================-->
<a name="berkley"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: ANSWER: Word to PostScript
</font> </H3>
Date: Sun, 16 May 1999 10:27:23 -0700<BR>
From: Mike Berkley, <A HREF="mailto:Mike.Berkley@ec.gc.ca">Mike.Berkley@ec.gc.ca</A>
<P>
<blockquote> <font color="navy">
From: "Asle Aursand", asle@sentinel.no <BR>
It is possible to print to file. The resulting *.prn file is
really a Postscript file, at least if you are using a postscript
printer. Anyway, this *.prn file you can import into Ghostview.
</font></blockquote>
<P>
I read your tip, Asle, and there is one problem with it. Some
Microsoft printer drivers do not yield legal Postscript documents when
printing to a file.
<P>
I have experienced the following two misfeatures:
<P>
1. HP Postscript drivers add a single line of HP printer codes to
the top of the file, to force the printer to use Postscript
mode. Since the first line of the file no longer begins with
%!PS, Ghostscript and non-HP printers will give an error and
refuse to display the file. You have to hand edit the file to
get real Postscript.
<P>
2. Some NT print drivers mix up a few of the %Page comments, so
that Ghostview cannot digest the file. Ghostscript can indeed
display the Postscript, but Ghostview cannot be used.
<P>
--<BR>
Mike Berkley
<P> <hr> <P>
<!--================================================================-->
<a name="walsh"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Uninstalling Software
</font> </H3>
Date: Tue, 18 May 1999 17:54:01 +0000<BR>
From: Tom Walsh, <A HREF="mailto:tom@mytoys.com">tom@mytoys.com</A>
<P>
You can uninstall a binary distribution of software that was unpacked
from a tarball by using: "tar ztf some-name.tgz | xargs -ikillit echo '
rm -f killit' | /bin/sh". Try the command without using the final pipe
into the shell to see what the resulting list of commands will be to the
shell. BTW, I use this technique a lot to reduce the tedium of
repetitious operations on files/directories.
<P>
--<BR>
Tom
<P> <hr> <P>
<!--================================================================-->
<a name="powell"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
HD-less
</font> </H3>
Date: Wed, 19 May 1999 22:38:45 -0500<BR>
From: "Charles W. Powell MD", <A HREF="mailto:cwpowell@kuhub.cc.ukans.edu">
cwpowell@kuhub.cc.ukans.edu</A>
<P>
Slackware (and other distributions, I suppose) has a "rescue disk" that
becomes the "root disk" of the boot-root floppy disk pair. If one uses
the "boot" floppy called 'net.i' and the "root" disk called 'rescue.gz'
one finds a highly funtional system at hand. Using this pair I recently
initialized the network card (an Intel EtherExpress Pro) when the
standard kernel failed at the task. Using the 'ifconfig' and 'route'
commands I put the machine on my network in minutes.
<P>
Just about any site that handles various distributions will have this
disk set available. Create the floppies using:
<PRE>
dd if=/path/to/boot/or/root/image of=/dev/fd0
</PRE>
under Linux, or with 'rawrite.exe' under DOS.
<P>
Network initialization is accomplished with the following commands:
<PRE>
ifconfig eth0 192.168.x.y
route add -net 192.168.x.0
</PRE>
or with appropriate addresses for your network. I hope this helps.
<P>
--<BR>
Charles
<P> <hr> <P>
<!--================================================================-->
<a name="wood"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
3COM cards
</font> </H3>
Date: Mon, 24 May 1999 14:25:33 +0100<BR>
From: Wood Alan, <A
HREF="mailtp:WOOD_A@admiral.co.uk">WOOD_A@admiral.co.uk</A>
<blockquote> <font color="navy">
I've installed Linux Red Hat 5.2 on my friend's computer, and now for some
extremely odd reason the Red Hat machine and the NT Server 4.0 that's on
his
other machine can't see each other over the network. At all. They don't
even
respond to each other's ARP requests.
The link is alive (judging from the lights on his switching hub), and the
machines
can see each other fine when he runs Windows 95 on the machine where I've
installed Red Hat. TCP/IP is installed and configured correctly on both
machines.
The Red Hat machine has a 10 Mbps 3COM card, the NT machine a 100 Mbps
3COM, and the lights on the hub say that it's using those speeds on the
interfaces
that the machines are on, regardless of whether the one machine is running
Linux or Windows 95.
What on Earth could be going on here?
</font></blockquote>
<P>
I had a similar problem with the kernel as supplied with RH5.2, even when
recompiled. I tracked it down to not being able to properly determine the
IRQ
that was being used by my 3c509 in PnP mode. I just forced the card to use a
<P>
fixed IRQ, and passed the module the correct IRQ, and all came back to me. I
now can boot the machine into either Linux or W95, and networking works
fine.
I keep meaning to try it with the 2.2.7 kernel to see if it can determine
the correct
IRQ, but have not gotten around to it as it works now.
<P>
--<BR>
Alan Wood
<P> <hr> <P>
<!--================================================================-->
<a name="crane"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: question for the board
</font> </H3>
Date: Tue, 11 May 1999 11:05:13 +0100<BR>
From: Stephen Crane, <A HREF="mailto:scrane@flexicom.com">
scrane@flexicom.com</A>
<blockquote> <font color="navy">
I am confused about what I will need to install Red
Hat 5.2 on my new dell system last attempt met me
with a command line only --- xfree 3.3.3.1+ was
needed for my video card TNT chipset however I was
looking for the files - and I am hoping for RPMS
out there for me to do it the easy way.
</font></blockquote>
<P>
XFree86-3.3.3.1 rpms are in the usual place, i.e.,
updates.redhat.com or, my favourite mirror, Sunsite:
<P>
<A HREF="http://sunsite.doc.ic.ac.uk/packages/Linux/redhat-updates/5.2/i386/">
http://sunsite.doc.ic.ac.uk/packages/Linux/redhat-updates/5.2/i386/</A>
<P>
The best index for, well almost everything, is
rpmfind.net, e.g.:
<P>
<A HREF="http://rpmfind.net/linux/RPM/redhat/5.2/">
http://rpmfind.net/linux/RPM/redhat/5.2/</A>
<P>
Cheers,
<P>
--<BR>
Steve
<P> <hr> <P>
<!--================================================================-->
<a name="radovan"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: Network boot disk for i386 without hd
</font> </H3>
Date: Thu, 27 May 1999 15:38:42 +0200<BR>
From: Radovan Garabik, <A HREF="mailto:garabik@melkor.dnp.fmph.uniba.sk">
garabik@melkor.dnp.fmph.uniba.sk</A>
<blockquote> <font color="navy">
I have a Linux machine in my office network and several i386 that has no hd,
but has 1.44 floppy. They also have ne2000 network card, without no proms.
Is there a way to make a boot disk that allow my i386 to boot and login into
my Linux machine??? I searched the web but found only solutions that reffer
to using network cards with eproms/proms. Thanks.
</font></blockquote>
How much memory do the i386's have?<BR>
You can check out one of one-floppy mini distributions, or set up nfs-root
linux on them - it requires loadlin.exe and kernel with compiled nfsroot
support, and (depending on how much memory you have) swapping over nfs.
It is not that difficult to be done, but not for a beginner.
Alternatively you can boot into DOS and use good old NCSA telnet to connect
to your linux machine.
<P>
--<BR>
Radovan
<P> <hr> <P>
<!--================================================================-->
<a name="radovan2"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: FTP access methods...
</font> </H3>
Date: Thu, 27 May 1999 15:48:22 +0200<BR>
From: Radovan Garabik, <A HREF="mailto:garabik@melkor.dnp.fmph.uniba.sk">
garabik@melkor.dnp.fmph.uniba.sk</A>
<blockquote> <font color="navy">
Ok tough guys, I have written down more one-liners and cool tricks from the
Linux Gazette pages than from anywhere else.
And I finally have a good question: In both Window$ and O$/2 I had apps that
would treat ftp sites as folders (directories). It worked real well with
keeping data in sync off-site. Is there a tool that will allow an FTP site
to be mounted under Linux? It seems fairly useful to me, but freshmeat and
other resources turned up nada.
</font></blockquote>
Linux VFS is not very friendly to the idea of external filesystems...
However, check out http://atrey.karlin.mff.cuni.cz/~pavel/podfuk/podfuk.html
I have not tried it yet, but I am going in a short time.
<blockquote> <font color="navy">
I am working on a cool 1 disk Linux distro that has pilot backup features
and other remote file access ideas that could really benefit from this.
</font></blockquote>
<P>
probably NFS is the way to go....
<P>
--<BR>
Radovan
<P> <hr> <P>
<!--================================================================-->
<a name="jay"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
re: soundpro
</font> </H3>
Date: Fri, 28 May 1999 01:10:14 +0800 (SGT)<BR>
From: "Jayasuthan ......", <A HREF="mailto:suthan@eplx01.fairchildsemi.com">
suthan@eplx01.fairchildsemi.com</A>
<P>
Please check for linux supported soundcards.. second the might compatible
with other cards. Try compile soundcard driver as modules. And learn to
use isapnp and conf.modules which might help
<P>
--<BR>
Jayasuthan
<P> <hr> <P>
<!--================================================================-->
<a name="saoirse"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: Question about 2 GB max?
</font> </H3>
Date: Fri, 28 May 1999 15:39:40 -0400 (EDT)<BR>
From: Deirdre Saoirse, <A HREF="mailto:deirdre@deirdre.net">
deirdre@deirdre.net</A>
<P>
<blockquote> <font color="navy">
On Thu, 27 May 1999, Jim Dennis wrote:<BR>
Actually 2Gb is the maximum FILESIZE under 32-bit versions
of Linux. (Alpha, and presumably UltraSPARC ports are not
hampered by this).
Linux ext2 filesystems can be much larger than 2Gb ---
</font></blockquote>
That's fine as far as the general theory goes, however...:
See: <BR>
<A HREF="http://www.dartmouth.edu/cgi-bin/cgiwrap/jonh/lppc/faq.pl?_highlightWords=partition%20size&file=494">
"http://www.dartmouth.edu/cgi-bin/cgiwrap/jonh/lppc/faq.pl?_highlightWords=partition%20size&file=494</A>
<P>
Traditionally, there has been a 2GB partition size limit (not just a FILE
size limit) on PowerPC Linux partitions. I don't know if that will
continue to be true with newer versions but it is true of LinuxPPC up to
revision 4 and DR3 of MkLinux. I haven't checked if there's a
YellowDogLinux specific answer however.
<P>
pre-5 of LinuxPPC reportedly handles larger partitions but I haven't found
specifics for later versions (does anyone want to update the
FAQ-o-Matic?).
<P>
--<BR>
Deirdre
<P> <hr> <P>
<!--================================================================-->
<a name="rini"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: Question about 2 GB max?
</font> </H3>
Date: Fri, 28 May 1999 19:13:24 -0400 (EDT)<BR>
From: Tom Rini, <A HREF="mailto:tmrini@ntplx.net">tmrini@ntplx.net</A>
<P>
<blockquote> <font color="navy">
On Fri, 28 May 1999, Deirdre Saoirse wrote:<BR>
That's fine as far as the general theory goes, however...:
See: http://www.dartmouth.edu/cgi-bin/cgiwrap/jonh/lppc/faq.pl?_highlightWords=p artition%20size&file=494
</font></blockquote>
<P>
This is however, WRONG. wrong wrong wrong wrong. Well, almost. :) If
you use a newer e2fsprogs (ie compile 1.14 or whatever is current) you're
fine. I'm not even sure if R4/DR3 really does have that problem (been a
while, and I forget just when that problem was fixed). R5/YDL/anything
w/ current e2fsprogs is fine.
<P>
--<BR>
Tom
<P> <hr> <P>
<!--================================================================-->
<center>Published in <I>Linux Gazette</I> Issue 42, June 1999</center>
<P> <hr> <P>
<!--================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Mark's autofs tutorial revisited</font></H1>
<H4><a href="mailto:mark@tcu-inc.com">by Mark Nielsen</a></H4>
</center>
<P> <HR> <P>
<h1> Mark's autofs tutorial <u><i>revisited</i></u></h1>
<br><i> <a href="http://www.tcu-inc.com">at The Computer Underground</a></i>
</center>
<p>
If this document changes, it will be available here:
<a href="http://www.tcu-inc.com/mark/articles/Autofs2.html">
Mark's autofs tutorial revisited</a>.
Also, an earlier version of this tutorial is at
<a href="http://www.ssc.com/lg/issue24/nielsen.html">
January 1998 Issue #24.</a>
<P> <hr><P>
<ol>
<li><a href="#Intro"> Some notes.</a>
<li><a href="#Install"> Installing Autofs</a>
<li><a href="#Explain"> Explaining what we did.</a>
<li> <a href="#Install2"> Installing for new users.</a>
<li><a href="#zip"> Installing a zip drive</a> and other resources.
</ol>
<hr>
<a name="Intro"></a>
<h1> Some notes.</h1>
<p>
What is autofs? Autofs lets you use your floppy and cdrom drives a little
easier. In the MS Windoze world, when you need to access your floppy
drive, you just goto drive "a:" and it is there. To replicate this feature
in the Linux or UNIX world, you use an automounter that attaches a device
(like a floppy or cdrom drive) to a directory on the computer.
<p>
If you don't have an automounter, you must manually attach a device to
a directory using the commands "mount" and "umount". An example of attaching
your floppy drive to the directory "/mnt/floppy" would be
<pre>
mount /dev/fGd0 /mnt/floppy
</pre>
<p>
If you need to explicitly define how the floppy drive was formatted, you
can
use these commands
<pre>
mount -t msdos /dev/fd0 /mnt/floppy ## For msdos formatted disks
mount -t ext2 /dev/fd0 /mnt/floppy ## For "linux" formatted disks
</pre>
Also, you must make sure the directory "/mnt/floppy" exists. A command to
make the directory would be,
<pre>
mkdir -p /mnt/floppy
</pre>
And this command unmounts or frees up the floppy drive from being used.
<pre>
umount /dev/fd0
</pre>
Also, something one should be aware of, KDE and GNOME, which are desktop
environments for X, usually have their own way of using floppy drives.
The problem is, if you connect to your computer through telnet or ssh, these
features are not available to you. That isn't nice. Using Autofs, any
program or user entering a directory that is assigned to a device (like
a floppy drive) causes the device to be attached to that directory. This
happens at the system level rather than in the GUI level.
<p>
Also,
Autofs can be used to grab an nfs site (and other things) and attach it
to a directory. It can do more than just automouting your floppy and
cdrom drives.
<p>
If you need some more info, try these urls or commands on your computer,
<ol>
<li>man automount
<li>man autofs
<li>man /usr/man/man5/auto.master.5
<li>more /usr/doc/autofs-3.1.3/README
<li><a href="http://metalab.unc.edu/LDP/HOWTO/mini/Automount.html">
Automount howto</a>
</ol>
NOTE: You also should consider any security hazards about using autofs.
<hr>
<a name="Install"></a>
<h1> Installing Autofs.</h1>
How do you install Autofs? Well, although I hate to demonstrate things for
only one particular version of Linux (since I am heavily growing fond of
Debian), this demo will be made for RedHat 6.0.
<p>
I assume "/dev/cdrom" is your cdrom drive and "dev/fd0" is your
floppy drive. I am also assuming you will backup your "/etc/auto.master"
file.
Use this script to create the following files and restart autofs.
Login as "root", goto
your home directory, copy whatever is between
the next two lines to a file called "CreateAutofs.script" and
then execute
the script with the command
<pre>
source CreateAutofs.script
</pre>
----------------------------------------------------------------------
<pre>
mkdir -p /root/Drives
cd /root/Drives
### Let us make sure the two directories exist, ignore errors
mkdir -p /mnt/Drives/floppy
mkdir /mnt/Drives/cdrom
### Let us backup the auto files in case they haven't
mv -f /etc/auto.master /etc/auto.master_old
mv -f /etc/auto.floppy /etc/auto.floppy_old
mv -f /etc/auto.cdrom /etc/auto.cdrom_old
### Create the files for autofs
echo "/mnt/Drives/cdrom /etc/auto.cdrom --timeout 10" > /etc/auto.master
echo "/mnt/Drives/floppy /etc/auto.floppy --timeout 3" >> /etc/auto.master
echo "floppy -fstype=auto :/dev/fd0" > /etc/auto.floppy
echo "cdrom -fstype=iso9660,ro :/dev/cdrom" > /etc/auto.cdrom
### Create the links to the floppy drive and cdrom drive
ln -s /mnt/Drives/floppy/floppy a:
ln -s /mnt/Drives/floppy/floppy floppy
ln -s /mnt/Drives/cdrom/cdrom d:
ln -s /mnt/Drives/cdrom/cdrom cdrom
### Lets retstart autofs
/etc/rc.d/init.d/autofs stop
/etc/rc.d/init.d/autofs start
### If it didn't work, you might have to reboot
cd /root/Drives
</pre>
----------------------------------------------------------------------
<hr>
<a name="Explain"></a>
<h1> Explaining what we did.</h1>
<p>
Now put a floppy disk formatted for MSDOS and a cdrom in and execute the
commands
<pre>
ls /root/Drives/a:
ls /root/Drives/d:
</pre>
to see if there is anything on them. Hopefully you don't get any error
messages.
<p>
Personally, my /etc/auto.floppy file looks like
<pre>
floppy -fstype=auto,defaults,user,suid :/dev/fd0
</pre>
and my /etc/auto.cdrom file look like this
<pre>
cdrom -fstype=iso9660,user,suid :/dev/cdrom
</pre>
The reason why I gave conservative values in the script was the fact the
my values might be security hazards. But since I am the only person
using my computer, I wanted to make sure my personal account had full
access to the floppy and cdrom drives. Previously "-fstype=auto" wasn't
working quite right with msdos disks, but when I increased the timeout to
3 seconds, it seemed to be working fine.
I made the timeout value for the cdrom
10 seconds because it wasn't working really well at 1 second, and I
figured it was because the drive didn't have enough time to "warm up"
before it was being shut down. You might want to test what the timeout
value for your cdrom drive should be.
<p>
Your "/etc/rc.d/init.d/autofs" script first looks at "/etc/auto.master".
That file usually has three things on each line. It has
the directory which all mounts will be located at. Then next to that value
is the filename which contains the configuration(s) for what devices you
want mounted. We will call these filenames the "supplemental" files. Next
to that value is the timeout which you want to
occur after so many seconds of inactivity. The timeout will free or umount
all devices specified in the supplemental files after so many seconds of
inactivity.
<p>
Now, the supplemental files can have more than on entry, but for my
purposes I don't do that. Read below for the explanation. The supplemental
files can be named anything you want them to be named. They also have
three values for each entry. The first value is the "pseudo" directory.
I
will explain this later. The second value contains the
mount options. The third value is the device (like "/dev/fd0" which
is the floppy drive) which the "pseudo" directory
is connected to.
<p>
The "pseudo" directory is contained in the directory which is defined
in "/etc/auto.master". When people try to access this "pseudo"
directory,
they will be rerouted to the device you specified. For example, the above
script will generate a link called "a:" which if you list with the
command "ls a:" will give you a list of files in the floppy drive. Or, a
similar command would be "ls /mnt/Drives/floppy/floppy". But if you do the
command "ls /mnt/Drives/floppy", you don't see anything even
though the directory
"/mnt/Drives/floppy/floppy" should exist. That is because
"/mnt/Drives/floppy/floppy"
doesn't exist as a file or directory, but somehow the system knows that
if you specifically ask for "/mnt/Drives/floppy/floppy", it will reroute you
to the floppy drive.
<p>
Now as to the reason why I didn't combine the floppy drive and cdrom drive
into the same supplementary file. Each definition in the
"/etc/auto.master" file will have its own "automount" program running for
it. If you have several devices running on the same automount program and
one of them fails, it could force the others not to work. That is why
I want every device running on its own automount program which means
there is one device per supplementary file per entry in the
"/etc/auto.master" file.
<p>
Also, another thing to note is, I use links to the "pseudo" directories.
Non computer geeks will get confused if they try to manually use the
"pseudo" directories. Basically, the "pseudo" directories are
directories
that don't exist until you try to use them. I like to use links to the
"pseudo" directories so that the user sees and uses the link,
and thus is happy
because they are just always "there", which is unlike the
"pseudo" directories which come and go as you need them.
<hr>
<a name="Install2"></a>
<h1> Installing for new users.</h1>
<p>
How do you install this for new users?
First, you must understand, the mount options you put into the autofs
configuration files heavily determine how much a user can use the floppy
or cdrom drives or other types of devices. There are also security hazards
using autofs one should be aware of.
Do the following,
<hr>
<pre>
mkdir -p /etc/skel/Drives
ln -s /mnt/Drives/floppy/floppy /etc/skel/Drives/floppy ## link to floppy
ln -s /mnt/Drives/floppy/floppy /etc/skel/Drives/a:
ln -s /mnt/Drives/cdrom/cdrom /etc/skel/Drives/cdrom ## link to cdrom
ln -s /mnt/Drives/cdrom/cdrom /etc/skel/Drives/d:
</pre>
<hr>
<p>
How do you install it for a user called "frank"?
<p> Well assuming that Frank's home directory is /home/frank,
<hr>
<pre>
mkdir -p /home/frank/Drives ## make a path for frank
chown frank /home/frank/Drives ## Let frank own the directory
ln -s /mnt/Drives/floppy/floppy /home/frank/Drives/a: ## link to floppy
ln -s /mnt/Drives/floppy/floppy /home/frank/Drives/floppy
ln -s /mnt/Drives/cdrom/cdrom /home/frank/Drives/d: ## link to cdrom
ln -s /mnt/Drives/cdrom/cdrom /home/frank/Drives/cdrom
chown frank /home/frank/Drives/* ### Let frank own the contents of directory
</pre>
<hr>
A truly risky command to install for a user after installing it for new
users would be
<hr>
<pre>
### DO NOT DO THIS UNLESS YOU LIKE RISK
mkdir -p /home/frank/Drives
if [ -d /etc/skel/Drives ]; then
tar -C /etc/skel -c Drives | tar -C /home/frank -xv Drives
chown -R frank /home/frank/Drives
else
echo "Dude, like try to make a /etc/skel/Drives directory first."
fi
</pre>
<hr>
<a name="zip"></a>
<h1> Installing a zip drive or other resources.</h1>
Okay, now for some more funky stuff. I am going to use one more
configuration file to both do the zip drive and an nfs site.
First, I am assuming the zip drive is the slave on the primary
IDE controller of your computer. Actually, I tried to connect to this
site through nfs, and it didn't work. I tried it to one of my local
computers and it worked fine.
<p>
<hr>
<pre>
echo "/mnt/Drives/zip /etc/auto.zip --timeout 10 --timeout 5" >> /etc/auto.master
echo "kernel -ro,soft,intr ftp.kernel.org:/pub/linux" > /etc/auto.zip
echo "zip1 -fstype=auto,rw :/dev/hdb1 " >> /etc/auto.zip
echo "zip2 -fstype=auto,rw :/dev/hdb2 " >> /etc/auto.zip
echo "zip3 -fstype=auto,rw :/dev/hdb3 " >> /etc/auto.zip
echo "zip4 -fstype=auto,rw :/dev/hdb4 " >> /etc/auto.zip
ln -s /mnt/Drives/zip/kernel /etc/skel/Drives/kernel
ln -s /mnt/Drives/zip/zip4 /etc/skel/Drives/zip ## link to cdrom
</pre>
<hr>
<i>
Mark works for <a href="http://www.tcu-inc.com">The Computer Underground</a>
as JALG. In his spare time, he tries to do volunteer stuff. Mark takes an
active role in
<a href="http://bopper.wcbe.org/~COLUG/">COLUG
</a>
located in Columbus, Ohio.
</i>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Mark Nielsen <BR>
Published in Issue 42 of <i>Linux Gazette</i>, June 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Caldera 2.2 Quick Review</font></H1>
<H4>By <a href="mailto:slambo42@my-dejanews.com">Sean Lamb</a></H4>
</center>
<P> <HR> <P>
Yesterday I installed the Caldera 2.2 CD that I got at Comdex over my existing RH 5.2 install. The short review is "cool!" The longer review follows:
<P>
This distro is really aimed at the newbie. From the boot floppy, immediately after running LILO, the disk loads a graphical, although text-based, interface while it loads the modules and does some basic hardware probing. The interface is smart enough to load basic keyboard and mouse drivers for those, like me, who are migrating from MSWindows (it does go through a mouse test page so you can refine your
rodential setup if you need to). It also autoprobes for the setup files and loads the appropriate modules to access them. The first thing it does that
requires user-supplied answers is partitioning. Setup launches a custom version of Partition Magic to create/resize partitions for Linux. I didn't
make any changes to my partition table, so I just acknowledged through it after determining that it could see all my partitions.
<P>
The next step is the only step of the setup that I didn't like so much; it forced me to reformat the Linux partition. For a newbie without a lot of data on the drive, this isn't that big of a problem. But experienced users are likely to have data that they still want/need to keep on those partitions. There is an Expert mode for setup that you can choose before
partitioning that likely addresses this issue, but I didn't try that. If I really needed to, I could have canceled setup and backed up my important data at this time and then restarted setup. For my installation, I allowed it to reformat the drive and setup continued.
<P>
After the partition was formatted and ready to continue, setup asked me what packages I wanted to install. For my install, there wasn't an expert
option, but there were a few choices here: minimum packages, all recommended packages, or all packages. I chose all recommended packages for this step. It installs all the core packages and almost everything that a basic user will need to get the machine going. However, there are a couple of interesting choices that the developers have made for us (this option
installs Apache but not any of the Office suites). What impressed me here is that as soon as you told it which package option you wanted, it started copying those packages to the disk immediately, while it still prompted for user information. This setup really shows off the multitasking capabilities of the OS nicely.
<P>
I've probably got the next few options out of order, but while it's copying packages to the hard drive, setup asks for your basic ethernet configuration, assigns a root password and creates user accounts, sets up XFree86 to your hardware and resolution choices (prompts with an extensive list of monitors but allows you to customize the monitor choice; similar
options with the video card, but autoprobe worked for me) and tests the X configuration that you selected. There are probably some other options in there that I forgot, but you get the idea.
<P>
Once setup has gathered all the information it needs, setup does something that we will probably never see from an MS install: it lets you play tetris while setup finishes copying files. When it finishes copying files, it turns on the Finish button at the bottom of the screen next to the progress indicator to indicate that it is done. It doesn't stop your game, but waits patiently until you are done (it also doesn't force you to stop playing when the game ends, if you really want to play another game right now).
<P>
After setup is done, it launches the kernel and packages that are installed on the hard drive and boots into KDE, where it prompts for the username and
password. At this point it looks much like a WinNT install, except that the widgets are different shapes/sizes, it presents a list of users' accounts on
the machine (login names only). The login window does give you the option of how you want to login (either directly into KDE or into "failsafe" mode that is just the command shell) as well as a shutdown/reboot button. I've already found that the reboot button is very handy here, because now I don't have to give out the root password to the rest of the family in case they don't catch LILO in time and really want to boot MSWin.
<P>
On each user's first login to the system, assuming they choose to login to KDE directly (which is the default option), they are presented with the KDE
Desktop Setup Wizard. This wizard asks the user to setup a theme and asks what handy icons to put on the desktop. One neat thing that the wizard does is that it gives you the option of placing icons on the desktop for floppy and CD drives that automount the media. One problem that I found was that as myself, as soon as I setup the color scheme that I wanted, I got logged out. It took a while to find the Wizard again, but he is setup in the Utilities menu if you want to run it again (this didn't happen when I was root).
<P>
The only problem that I had with setup is that it didn't setup LILO for me. When I rebooted, it hung with LI. From all the reading that I did, I knew
that this was a fairly common issue, so finding possible solutions wasn't that difficult (it helped that I had a second machine here that was untouched that had a modem connection). What I found to help here was to boot from the setup boot disk and type "boot root=/dev/hda4" at the LILO boot prompt (change the root param as appropriate for your system). This
booted the kernel that I had installed on the hard drive so that I could make the necessary config changes. I found that I was able to setup LILO
properly by using Lisa and following the prompts (while logged in as root, of course). The cool thing here is that the setup boot disk can be used as
a sort of rescue disk in case there are problems.
<P>
For me, the next step will be to setup my PNP devices to get my sound, ethernet and modem connections working (yeah, booted in Win95 right now). I'll probably end up disabling PNP on those cards and setting their configs manually to what Win95 set them up to be, but that's for next weekend.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Sean Lamb <BR>
Published in Issue 42 of <i>Linux Gazette</i>, June 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">From Word Processors to Super Computers<br>
Donald Becker Speaks about Beowulf at NYLUG</font></H1>
<H4>By <a href="mailto:adler@bnl.gov">Stephen Adler</a></H4>
</center>
<P> <HR> <P>
<br>
<img src="gx/adler.becker/DB20VSmall.jpg" align="left" vspace=10 hspace=10>
<center><font size=+2>
<img src=gx/adler.becker/DB18VSmall.jpg>
<spacer type=vertical size=10>
<img src=gx/adler.becker/IBMLogoSmall.jpg>
<spacer type=vertical size=10>
</center></font>
<br>
<font size=-1>
</font>
<br clear="left">
<P> Editor's note: In the
<A HREF=http://ssadler.phy.bnl.gov/adler/DB/DonaldBecker.html>
original article</A> on Adler's website, many of the
inline images display a larger copy of themselves when clicked on. These
larger images are not included in the <EM>Linux Gazette</EM> version, to
keep the total size of the <EM>Gazette</EM> small.
<hr>
<br>
I got an e-mail over the weekend announcing that Donald Becker would
be addressing the NYLUG on May 19th. That's the New York Linux users
group for those of you out west. From out here on Long Island, NYC is
a long way away. But I figured I would rough out the commute into NYC
to catch what Donald had to say about his Beowulf project. Actually,
if you can keep a secret, I'll admit to having fun writing up my
encounters with Internet luminaries like Donald and publishing them on
the Internet. This would give me a chance to do so once again, so the
long commute into NYC didn't seem so bad.
<p>
<table align=left>
<caption align=bottom><font size=-1>
A rainy day in New York City, and I'm hustling around looking for a
parking lot.
</font></caption>
<tr><td>
<img src="gx/adler.becker/DB02Small.jpg" vspace=10 hspace=20>
</table>
Wednesday came flying along, I spent most of the afternoon beating up
on an alpha personal workstation 433au, trying to get Linux installed
on it. Hey, Red Hat 6.0 was out and since they have a generic kernel
which seems to run on all Alpha variants, I figured this should be a
snap. <b>Wrong!</b> For some reason, MILO refuses to boot up on the
machine. I've been trying off and on to get alpha/Linux installed on
this machine since January. It belongs to a professor at Stony Brook
who is a real Linux enthusiast, and started down the path of the Linux
install, and ran into this MILO problem. I gave it a try, a graduate
student from Columbia gave it a try, and we have all failed. The <a
href="http://www.rhic.bnl.gov/html2/tour2.html">Relativistic Heavy Ion
Collider</a> is coming on line soon so we don't have much time to
spend on this box. It has become somewhat like King Author's
sword. Who ever can pull that sword out of the rock, or install Linux
on that machine, will lead a blessed life... Roy, (The professor who
owns the Alpha) has now put up a reward for who ever can get Linux
installed on the damn thing. The reward right now stands at 2 tickets
to see the NY Yanks. (Or Knicks if you are of that persuasion...)
<br clear="left">
<p>
<table align=right>
<caption align=bottom><font size=-1>
Gucci bags and Rolex watches for sale abound. Where are the damn
umbrella sellers!
</font></caption>
<tr><td>
<img src=gx/adler.becker/DB04Small.jpg vspace=10 hspace=20>
</table>
Time flies when you are having trouble getting Linux installed on
something, as it did that Wednesday afternoon. I ended up missing the
4:05pm train into Penn Station and decided to drive in. To my dismay,
it would have taken just as long to wait for the next train, as it
would have to drive in. Rain poured out of the sky as I topped 20MPH
speeds on the Long Island Expressway heading west into Manhattan. I
wanted to get to the meeting in time to be able to meet Donald and the
rest of the NYLUG members. That was just not going to happen. At this
rate, I would be lucky to get to hear him speak at all.
<p>
It's 6:20pm and I'm heading up 3rd Ave in search of a parking lot. The
meeting starts at 6:30pm. Damn, I'm always running just on time. With
little effort, I was able to find a very reasonable parking lot which
charged $10 'till closing. It's usually about $25 for a mid town
parking lot. I dropped the car off, and dash out in search of the IBM
building where the NYLUG was meeting. Rain is coming down, I'm getting
soaked, and I'm looking all over the place for those street vendors
who always have what you don't need at the time. Fake Rolex watches
were up for sale, as were Gucci bags, but no umbrellas. I could feel
the rain starting to seep onto my scalp as I ran across Madison,
heading north towards 57 St.
<p>
IBM, a while back, started to get a clue about the benefits of Open
Source/Free software and has now donated one of their meeting rooms
for the NYLUG, who meet about once a month. (Rasterman is talking at
the next one.) The IBM building stands very tall on the corner of 57th
and Madison. It boasts some modern work of some sort at its entrance.
One needs to sign in, in order to be let into the building. The
meeting was being held on the 9th floor.
<br clear=right>
<p>
I arrive to the meeting room where NYLUG is gathered. A projector is
setup with Donald's laptop plugged into it. There are about 30 or 40
people present. Jim Gleason, the organizer of the meeting, who works
for VA Research, is there talking with Donald, looking rather
busy. He sees me and introduces me to Donald. I have just drove in
through about 2.5 hours of LIE traffic, dashed across several streets
and avenues under the rain, and my bladder had been screaming at me
since exit 40 on the LIE that it needed to be relieved. I couldn't
concentrate much on what I was saying at the time. I shook hands with
Donald, and muttered something like, "We use lots of computers at
BNL". I don't remember how he responded, I think he didn't say
anything. I then managed to get myself away, find a seat, store my
laptop and look for a good place to take a photo of the room.
<br clear=left>
<p>
<center>
<table>
<caption align=bottom><font size=-1>
A shot of the NYLUG meeting room, courtesy of IBM. By the time Donald's
talk was well underway, there was basically standing room only.
</font></caption>
<tr><td>
<img src=gx/adler.becker/DB12Small.jpg>
</table>
</center>
<p>
Jim Gleason took the mike, and called on people to sit down. He wanted
to get the meeting going on time, (it was getting close to 7pm by
now). I settled down into my seat, booted my laptop, and proceeded to
ignore my aching bladder. I had more important business to take care
at the time.<p>
<p>
<table align=left>
<caption align=bottom><font size=-1>
A solemn moment for Jim Gleason, the VA Research guy who is one of the
NYLUG contacts and organizers. Actually, the shot was taken as he
happened to look down at his notes. The only time he did so during his
introduction. Murphy's law is at work here. Jim is a very energetic
guy who is excited about his work.
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB14Small.jpg vspace=10 hspace=10>
</table>
At this point, I started to take notes, as Donald start talking. Since
my notes are always rather jumbled, it will be easer to me to cover in
broad stokes the topics he talked about instead of trying to give a
word by word reproduction of what he said.
<p>
His introductory slide showed two things. His affiliation with the NASA
Goddard Space Center and a company called Scyld Computing
Corporation. My guess is that he has been given the liberty at NASA to
work with this Scyld startup to help bring the Beowulf into the
private sector. Good for him. At this point, something rather annoying
started to happen. The projector which was hooked up to Donald's
laptop, started to lose sync with it. Donald, who has a bit of
shyness to himself, was having a hard time giving his talk while at
the same time, pressing various auto sync buttons on the projector to
try and get his transparencies back up on the screen. This went on
through his talk. It really didn't matter since he didn't bother to
walk through his slides, rather he just talked from the top of his
head about what he as been doing for that past 7 years.
<p>
Donald's talk went on until 8:20pm. During that time I got the
following out of his talk.
<p>
<table align=right>
<caption align=bottom><font size=-1>
A bad picture of Donald at the beginning of his talk. It looks like my
camera is getting out of sync with the fabric of space-time. (One of these
day's I'm going to upgrade my analog camera to a digital one. But with
the increase in property taxes out on Long Island and the small salary
a "junior" scientist makes at BNL, it will be some time be for I do so.)
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB15Small.jpg vspace=10 hspace=20>
</table>
He introduced the concept of a Beowulf system. Basically, it is a
cluster of many, off-the-shelf PC's, running Linux, and tied together
through a high speed, low latency networking infrastructure. The
network topology of this system tends to be a flat one which makes it
easier on the application side. Fast Ethernet, tied through a fast
Ethernet switch is the current network hardware of choice for a
Beowulf cluster. ATM is too expensive at this point and I believe he
mentioned that the latency tends to be greater than with fast
Ethernet. (But don't hold me to that statement.) He did mention that
the ATM "overhead" was way too large. After the talk was
over, one of the questions from someone in the audience revealed that
Beowulf is basically a library of software which one uses to help
implement a distributed application. This includes facilities such as
providing a global PID, methods of remote execution of processes, much
like rsh, etc. There was some mention of mpi/vpm (and mpiII) which are
parallel processing abstractions sitting above the Beowulf
distributed processing layer. One of the tasks on my list is to
clearly learn about this software, but unfortunately, Donald's talk was
not a HOWTO on using Beowulf to parallelize your application. It was
more like, "I've worked on Beowulf, and here are some interesting
things about it...". So, the specifics of Beowulf still elude me.
<p>
Donald talked a bit about the open source nature of the project. In
short, being an open source project was crucial in making it as
reliable as it is. This also holds for the Linux kernel itself. While
working on building Beowulf clusters, Donald ran across some problems
with the Linux kernel which he had to fix. Things like only being able
to mount 64 file systems got in his way. Having hundreds of PC's
talking to each other on the network stressed the networking data
structures in the Kernel which he also had to deal with. Being that he
had the source code to the kernel he was able to make the Beowulf
project work. He also took in contributions from outsiders. If the
contributed software was of relevance and worked well, he would
include it.
<p>
<table align=left>
<caption align=bottom><font size=-1>
The side of the IBM building, as I face Madison Ave. Thank you IBM for
letting the NYLUG use your meeting rooms so that we can hear Donald
speak. Although it would be nice if you guys got a Linux friendly
projector. Its OK if the projector is not Y2K certified. We'll take it
any way.
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB09small.jpg vspace=10 hspace=20>
</table>
Donald spoke a bit about the history of his project. His first cluster
was made up of 100MHz DX4Somethings (DX486?). (Due to the projector not
being able to sync properly to Donald's PC, I could only read part of
the slides. You have to give credit to the IBM folk though. The
projector was certified as being Y2K compliant. It had a rather
official looking sticker on its side saying so...) In 1996, a 2.2
GF/sec cluster was built, followed by a 10GF/sec system in 1997. This
was a threshold crossing system. NASA considered 10GF/sec to be the
minimum computing power for a system to be called a "super
computer". In 1998, a 40+GF/sec system was put together, (at Los
Alamos National Laboratory I believe.) What made all this possible was
the fact that price per performance was gaining rather rapidly for PC
based machines. The threshold was crossed between 1996/1997 making the
Beowulf type system competitive with the big Cray type systems. The
Beowulf project crossed another watershed when a Beowulf system won
the Gordon Bell prize for $/performance. (I believe this was around
1997.) The NASA Goddard Space Center at the time had a "Super
Computer" in its basement, called the T3D I believe. It was a 10GF/sec
machine. Donald was able, through open source software, a good network
and cheap PC's, in essence beat it.
<p>
Donald spent some time showing pictures of current Beowulf clusters in
operation. Some were rack mounted systems, some were bunches of PC's
on a shelfs. The PC's on shelfs Beowulf system is called LOBOS which
stands for Lots of Boxes on Shelves. One of the systems built in the 19
inch racks was called the hive due to the noise the large cabinet
fans made.
<p>
<table align=right>
<caption align=bottom><font size=-1>
The art work standing at the entrance to the IBM
building. Unfortunately, I can't tell the difference between this and a
bunch of steel beams welded together.
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB08Small.jpg vspace=10 hspace=20>
</table>
Some applications which are currently using Beowulf systems are
climate modeling, ray tracing and galaxy evolution modeling. He was
particularly intrigued with the galaxy evolution modeling
application. In order to model a galaxy, you need to have every star
in the galaxy, interact with every other star in the galaxy. Gravity's
force is felt at infinite distances. One would think that this kind of
find grained application would not work well on a network distributed
system. But the guys at Los Alamos, came up with a tree structured
algorithm which mapped very well onto a network topology, thus making
a Beowulf architecture work for this type of computing problem. NASA
uses the Beowulfs for image processing of satellite and Hubble
images. The Hubble images had to be refocused because of the "over
site" of one of the mirror polishers. One application of satellite
image processing is to splice together all the satellite photos taken
from various angles and positions of one area on earth, to form one
large coherent image.
<p>
Some of the specifics about Beowulf clusters he mentioned were the
following. Usually one of the nodes is set aside and dedicated to
managing the rest of the nodes in the cluster. It's the job
distributor. Some very simple techniques are used to keep track of
which systems have not crashed. A multicast coming from each machine
is received by the controlling node or it pings the rest of the
nodes in the cluster. If one of the nodes goes down, the controller
quits submitting jobs to it. There are some mechanisms within the
Beowulf software for process migration from one node to another. He
also talked about how he uses RPM extensively to maintain the software
on the nodes. He referred to RPM as a "key technology" enabling the
easy maintainability, software wise, of large clusters of PC's. A
question came up asking about how he maintains his Beowulf code. He
didn't answer the question very well. He didn't really want to answer
the question since he did not want to endorse any kind of source code
management software like rcs or cvs. But he did stress that RPM was
key in order to be able to distribute software to may PC's.
<p>
<table align=left>
<caption align=bottom><font size=-1>
Who's that imposter! (I've gotta' upgrade that damn camera...)
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB10Small.jpg vspace=10 hspace=20>
</table>
He also talked about the stability of the machines he works with. Most
of his systems had been up for over a 100 days. I believe some of the
Beowulf clusters had been up for over 200 days. What is important is
not that a single machine has been up that long, but that large
numbers of machines have been up and running for that amount of
time. Because of the long running nature of a Beowulf cluster, one
tends not to use the latest and greatest software release of
anything. He was using a 2.0.3x version of Linux on his machines. He
also pointed out a critical feature of having the source code
available for the kernel and all the software which makes up a Beowulf
system. If there is a bug found, then one can fix it by modifying a
few lines of code. That one module or program gets recompiled and you're
off and running again, with a minimum amount of administrative
work. If one works with closed source systems, it is often the case
that when a similar small bug is found and fixed, a whole cascade of
software upgrades result. This is due to the fact that the bug fix
will come in the form of a new software release. This release then
upgrades your shared libraries. The shared library upgrades then force
you to upgrade all your applications and on and on. After which you
are then forced into revalidating your whole cluster for production
use. Something which can take a <b>long</b> time. Donald mentioned
that he validates his systems by running Linux kernel compilations for
two days to "burn in" his systems.
<p>
Donald also spent some time talking about how one runs a
Beowulf cluster and keeps it reliable. This is done by monitoring the
hardware for possible future failures. The most common one is due to
failing fans. There seems to be a host of applications which monitor
system performance, from the temperature of the boxes, to network
packet error checking. Keeping an eye on these problems helps keep a
Beowulf cluster healthy.
<p>
<table align=right>
<caption align=bottom><font size=-1>
Donald answering questions after his talk. I nice shot of his left
back side.
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB13Small.jpg vspace=10 hspace=20>
</table>
One last thing worth mentioning. With all this talk of running Linux
systems for 100's of days on end, a Windows "story" came up. It turns
out that there is a bug in the timer software for Windows. It will
cause your PC to crash in 49 days. This bug was just recently found
and has been around for a long time. Since a Windows system rarely
stays up for that long, its has only been until recently that this bug
has been found.
<p>
One person in the audience asked why Donald used Linux as the kernel
for building up his Beowulf project instead of one of the BSD
kernels. Donald had an interesting answer to that question. First off,
the BSD kernels were not as stable as Linux, back when he started
working on his project. He then proceeded to complain that working
with the BSD developers was very difficult. They tend to hide the
development process thus making it harder to contribute the needed
upgrades. (Remember that Donald had to work with the internal data
structures of the kernel in order to make his project scale.) He then
said that these BSD developers had very large egos. "Their ego's would
fill this room" he said, thus implying the difficulty of working with
them. He then went on to say that he was quite able to work with
Linus. Linus was a laid back guy.
<p>
<center>
<table>
<caption align=bottom><font size=-1>
Another shot of Donald left backside. Although I'm starting to work
around towards his front. If I'm lucky I may get him looking into the camera.
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB17Small.jpg>
</table>
</center>
<p>
There were many other interesting questions which were discussed
during Donald's talk. You can read my <a
href="http://ssadler.phy.bnl.gov/adler/DB/nylug.5.19.1999.txt">jumbled notes</a> if you care to try and
decipher them for more information.
<p>
<table align=left>
<caption align=bottom><font size=-1>
Well, that's as far forward as I could get. Although I did get a nice
shot of him and his book which I proudly display at the top of
this write up.
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB16Small.jpg vspace=10 hspace=20>
</table>
The session came to an end about 8:20pm. During his session he plugged
his
<a href="http://mitpress.mit.edu/book-home.tcl?isbn=026269218X">
new book about Beowulf clusters</a> titled <u>How to Build a
Beowulf</u>. The book was written in collaboration with several of the
Beowulf developers and is a compilation of a lot of the tutorials and
documentation on the software. It's published by MIT Press and fits in
with the other "definitive" references to mpi, mpiII and pvm also
published by MIT Press. He said that he makes about 30 cents per book
sold and was counting up the number of people in the audience to see
if he could buy dinner with the proceeds if every one bought one. One
guy in the audience offered him 60 cents for the book he had in his
hand, doubling his take home profit. Donald declined the offer.
<br clear=left>
<p>
People got up and started to leave the room after the talk was over. I
stuck around to take some pictures of Donald as he talked to some
NYLUGers. I eventually was able to get a chance to re-introduce myself
to him. I have him my card and invited him out to BNL if he were ever
in the area again. (I'm really bad at this sort of thing.) I then
asked him if he had trouble getting funding for his first Beowulf
system. He told me that he got the Beowulf idea back when he was
working for the NSA. He presented the idea to his superiors. He needed
$50K to put a cluster of nodes to together. For the NSA, $50K just too
little to bother with and his request was declined. So he took his
idea over to NASA. NASA thought it was worth funding, so he got a job
there specifically to work on his Beowulf idea. The rest, as they say,
is history.
<p>
<center>
<table>
<caption align=bottom><font size=-1>
My last shot of Donald as we start receiving our dinner orders. I was
fortuitous enough to take this shot just as the waiter held Donald's
plate right over his mouth. It is truly amazing how often Murphy's law
kicks in. The guy looking right into the camera is named Judd. He
works for Netscape and announced at the NYLUG meeting an install fest
he was organizing.
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB01Small.jpg>
</table>
</center>
<p>
I left the room and spent some time with Jim Gleason in the hallway
just outside. VA Research is about to deliver a 36 node system to BNL
this coming week and we talked about that a bit. Suddenly, my
bladder screamed at me and I broke off in mid sentence, "Where's the
men's room!". To my fortune, it was about 10 feet behind me. I don't
know how I was able to ignore my bodily functions from exit 40 of the
LIE until now...
<p>
<table align=right>
<caption align=bottom><font size=-1>
A picture of the other table where the 2nd half of the NYLUGers hung
out while waiting for their food to show up.
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB23Small.jpg vspace=10 hspace=20>
</table>
A small fraction of the group then headed over to Kapland's deli for a
real NYC deli meal. I ordered an extra lean pastrami sandwich. In
typical NY deli fashion, I was delivered just that, a mountain of
extra lean pastrami sandwiched between two thin slices of rye bread;
nothing else. The pickles and cole slaw were delivered on dishes as we
sat down. I had to manually apply the Russian dressing myself.
<p>
I sat across one guy who seemed to do business with wall street. One
tidbit which I found rather interesting was that he had this friend
who put systems together for wall street trading firms. One would
assume that these systems are bullet proof; 100% reliable. It turns
out that they crash all the time. There is enough redundancy in these
systems so that these crashes can be afforded. After hearing Donald
talk about large numbers of systems being up for 100's of days at a
time, and then hearing that wall street trading systems crash
continuously was a real shock. Maybe wall street will begin to
understand the power of Open Source. Until then, my retirement
fund will not be as safe as it could be.
<p>
<table align=left>
<caption align=bottom><font size=-1>
Another shot of Jim Gleason along with Matthew Hunt and Ari. Ari is
the guy in the back who also works for VA Research. He's coming out to
BNL to setup the 36 node machine I'm aching to submit my jobs to. The
guy in the middle is Matthew Hunt, President of the Linux Users of NY
group (LUNY).
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB22Small.jpg vspace=10 hspace=20>
</table>
At about 9:30pm, Jim Gleason was getting worried about getting Donald
to JFK to catch his 11:30pm flight to NC. Donald was headed down to
attend the LinuxExpo. It was getting late for me as well. I said good bye
to the crowd of NYLUGers and headed out in search of that lot
where I parked my car. The drive back to where I live on Long Island
proceeded in standard form. After giving the MTA guy the $3.50 toll
for using the Midtown Tunnel, I start counting the exists along the
LI as I drive by them. 1, 2, ... 10, 11, ... 20, ..., 30...
<p>
Driving along on the LIE always leads my mind to wandering in
thought. This time, my mind wandered around open source land. I still
cannot get a grip on the power of the Internet. What really made
Donald's project possible was the fact that he had access to
Linux. You could never build a Beowulf cluster out of windows 3.1
machines. Think about it, this is what was running on those powerful
100MHz DX486 machines back when he started this project. I can imagine
going to one of the NSA administrators and trying to convince him that
you could take all those PC's the secretaries were using to write up
memos using MS Word, gang them together and turn them into a super
computer. And do so for only $50K. Back in 1992, that was a radical
idea! And look at what we have now, super computers popping up and the
beginning of a new industry. Also, has anyone ever heard of an NT
Beowulf cluster? I'm sure Micro Soft would boast of one if there was
one. (And take credit for the idea as well.) That would be a good way
to test the stability of NT. Run 100 NT machines in a cluster and see
how long you would keep them <b>all</b> up and running. It would be
nice to see Mindcraft perform such a feat. Having 100 Linux machines
running for over a hundred days translates to 10,000 cpu days of
continuous running. Benchmark that Mindcraft...
<p>
Exit number 67, exit number 68. Ahhh, exit 68, home at last.
<br><br>
<hr>
<br>
Please <a href="mailto:adler@bnl.gov">e-mail</a> me your comments, if
you have any. I'm always interested in what you may have to say
related to this write up or anything else on your mind.
<p>
<a href="http://ssadler.phy.bnl.gov/adler/adler/SAArticles.html">Click
here</a> if you want to read other articles I've published on the
Internet, or <a href="http://ssadler.phy.bnl.gov/adler/adler">click
here</a> to view my home page.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Stephen Adler <BR>
Published in Issue 42 of <i>Linux Gazette</i>, June 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<!-- =============================================================
These pages are designed by Michael J. Hammel. Permission to
use all graphics and other content is granted provided you give
me (or the original authors/artists) credit for the work and this
copyright notice is not removed.
(c)1997, 1998 Michael J. Hammel (mjhammel@graphics-muse.org)
============================================================= !--><!-- The Button box as a client side imagemap --><map NAME="nav-main"><area SHAPE="rect" HREF="#mews" coords="10,10 170,40"><area SHAPE="rect" HREF="#webwonderings" coords="0,55 175,85"><area SHAPE="rect" HREF="#musings" coords="75,115 170,145"><area SHAPE="rect" HREF="#resources" coords="5,170 110,195"></map>
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 COLS=2 NOSAVE >
<tr NOSAVE>
<td ALIGN=LEFT VALIGN=TOP NOSAVE><img SRC="gm/images/gm-logo-3.jpg" height=169 width=400></td>
<td ALIGN=LEFT VALIGN=CENTER NOSAVE>
<br><b><font size=+1>muse:</font></b>
<ol>
<li>
<i><font face="Arial,Helvetica"><font size=-1>v; to become absorbed in
thought </font></font></i></li>
<li>
<i><font face="Arial,Helvetica"><font size=-1>n; [ fr. Any of the nine
sister goddesses of learning and the arts in Greek Mythology ]: a source
of inspiration</font></font></i></li>
</ol>
<center><font size=-2>© 1999 by <a href="mailto:mjhammel@graphics-muse.org">mjh</a></font></center>
</td>
</tr>
</table>
<hr SIZE=1 NOSHADE WIDTH="100%">
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 COLS=2 WIDTH="100%" NOSAVE >
<tr NOSAVE>
<td WIDTH="187" NOSAVE><img SRC="gm/images/muse-image-map.jpg" ALT="Button Bar" USEMAP="#nav-main" height=200 width=185 align=LEFT></td>
<td VALIGN=TOP WIDTH="65%" NOSAVE>
<br><img SRC="gm/images/w.gif" ALT="W" height=28 width=36 align=BOTTOM><font face="Arial,Helvetica"><font size=-1>elcome
to the Graphics Muse! Why a "muse"? Well, except for the sisters aspect,
the above definitions are pretty much the way I'd describe my own interest
in computer graphics: it keeps me deep in thought and it is a daily source
of inspiration. </font></font>
<center>
<p><font face="Arial,Helvetica"><font size=-1>[<a href="#mews">Graphics
Mews</a>][<a href="#webwonderings">WebWonderings</a>][<a href="#musings">Musings</a>][<a href="#rsrc">Resources</a>]</font></font></center>
<p><img SRC="gm/images/t.gif" ALT="T" height=28 width=26><font face="Arial,Helvetica"><font size=-1>his
column is dedicated to the use, creation, distribution, and discussion
of computer graphics tools for Linux systems.</font></font></td>
</tr>
</table>
<table BORDER=0 COLS=2 WIDTH="100%" NOSAVE >
<tr NOSAVE>
<td ALIGN=LEFT VALIGN=TOP NOSAVE>
<br><font face="Arial,Helvetica"><font size=-1>I've been working on some
extensions and updates to my XNotesPlus program this month, which I've
had to work on in between the Muse, TheGimp.com, and a number of articles
and cover art work for the Linux Journal. Suprising how busy I'm
keeping considering that, officially, I'm unemployed.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Part of the work I was doing
this month for both the Muse and TheGimp.com wasn't for this months issues.
I was preparing for some future articles, ones which require more than
the usual week and a half I spend on them for normal issues. That
led to an even more compressed time frame for this months Muse. Running
on a bit of brain strain, I opted for a little brain stimulus, or rather
eye stimulus. That, and a little followup to last months issue, which
brought in quite a bit of email. That, too, was a bit suprising.
But very welcome. </font></font>
<p><font face="Arial,Helvetica"><font size=-1>In this months column you'll
find:</font></font>
<ul>
<li>
<font face="Arial,Helvetica"><font size=-1>A little eye candy, please -
XScreensaver</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>A followup to last months Vector
Drawing Tools for Linux</font></font></li>
</ul>
<font face="Arial,Helvetica"><font size=-1>And, of course, the requisite
set of product announcements, interesting bits of news and Web sites, and
reader email. Keep those letters coming!</font></font>
<center><table BORDER=0 CELLSPACING=0 CELLPADDING=5 COLS=1 WIDTH="100%" NOSAVE >
<tr NOSAVE>
<td ALIGN=CENTER NOSAVE><a href="http://www.clbooks.com/home.html?from=CJK692"><img SRC="gm/images/cla_small.gif" HSPACE=10 BORDER=0 height=60 width=234 align=CENTER></a></td>
</tr>
</table></center>
</td>
<td ALIGN=CENTER VALIGN=CENTER WIDTH="220" NOSAVE>
<table BORDER=0 CELLSPACING=0 CELLPADDING=4 COLS=1 NOSAVE >
<tr NOSAVE>
<td ALIGN=CENTER VALIGN=CENTER WIDTH="219" NOSAVE><img SRC="gm/images/artistsguide.jpg" height=140 width=110></td>
</tr>
<tr NOSAVE>
<td NOSAVE><b><i><font face="Arial,Helvetica">The Artists' Guide to the
Gimp</font></i></b>
<br><font face="Arial,Helvetica"><font size=-1>Available online from <a href="http://www.fatbrain.com">FatBrain</a>,
<a href="http://www.softpro.com/softpro/1-57831-011-3.html">SoftPro
Books</a> and <a href="http://search.borders.com/fcgi-bin/db2www/search/search.d2w/Details?&mediaType=Book&prodID=51315727">Borders
Books</a>.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>In Denver, try the <a href="http://www.tatteredcover.com/cgi-bin/bookfind.pl?lit_ttl=Gimp&Id=733947.13300&refer=list&page=book&isbn=1-57831-011-3&str=1">Tattered
Cover Book Store.</a></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Also, check out the associated
web site, <a href="http://www.thegimp.com">TheGimp.com</a>, sponsored by
SSC, Inc. and edited by The Graphics Muse - <b><font color="#993300">Michael
J. Hammel</font></b>.</font></font></td>
</tr>
</table>
</td>
</tr>
</table>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="mews"></a><img SRC="gm/images/mews.jpg" height=50 width=245>
<table BORDER=0 COLS=3 WIDTH="100%" NOSAVE >
<tr NOSAVE>
<td ALIGN=LEFT VALIGN=TOP WIDTH="140" NOSAVE>
<table BORDER CELLSPACING=0 CELLPADDING=2 COLS=1 WIDTH="100%" HEIGHT="100%" BGCOLOR="#FE992B" NOSAVE >
<tr>
<td><b><font face="Arial,Helvetica"><font size=-1>Other Announcements:</font></font></b></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#Superficie 0.5">Superficie
0.5</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#Graphic Counter Language 2.20.3.D">Graphic
Counter Language 2.20.3.D</a></font></font></td>
</tr>
<tr NOSAVE>
<td NOSAVE><font face="Arial,Helvetica"><font size=-1><a href="mews.html#MathMap">MathMap</a></font></font></td>
</tr>
<tr NOSAVE>
<td ALIGN=LEFT VALIGN=TOP NOSAVE><font face="Arial,Helvetica"><font size=-1><a href="mews.html#Panorama Tools v1.7.2">Panorama
Tools v1.7.2</a></font></font></td>
</tr>
<tr NOSAVE>
<td NOSAVE><font face="Arial,Helvetica"><font size=-1><a href="mews.html#GIMP 1.1.5">GIMP
1.1.5</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#Gimp ImageMap Plug-In Release 0.9">Gimp
ImageMap Plug-In Release 0.9</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#DiaCanvas 0.10.">DiaCanvas
0.10</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#tgif 4.1.9">tgif
4.1.9</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#Swift Generator 0.7.1">Swift
Generator 0.7.1</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#Giram 0.0.17">Giram
0.0.17</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#Install-Webserver 0.1">Install-Webserver
0.1</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#povfront 0.9-2">povfront
0.9-2</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#Wacom Driver for XFree86 alpha 3">Wacom
Driver for XFree86 alpha 3</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#xfsft 1.1.5">xfsft
1.1.5</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#XawTV 2.44">XawTV
2.44</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#RenderDotC 3.1">RenderDotC
3.1</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#Terraform 0.3.1">Terraform
0.3.1</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#AleVT 1.4.5">AleVT
1.4.5</a></font></font></td>
</tr>
<tr NOSAVE>
<td ALIGN=CENTER NOSAVE><font face="Arial,Helvetica"><font size=-1><
<a href="mews.html">More
Mews</a> ></font></font></td>
</tr>
</table>
</td>
<td WIDTH="1" NOSAVE></td>
<td ALIGN=LEFT VALIGN=TOP NOSAVE>
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 COLS=1 WIDTH="100%" NOSAVE >
<tr NOSAVE>
<td NOSAVE><font face="Arial,Helvetica"><font size=-1><b>Disclaimer</b>:
Before I get too far into this I should note that any of the news items
I post in this section are just that - news. Either I happened to run across
them via some mailing list I was on, via some Usenet newsgroup, or via
email from someone. I'm not necessarily endorsing these products (some
of which may be commercial), I'm just letting you know I'd heard about
them in the past month.</font></font></td>
</tr>
<tr>
<td>
<hr NOSHADE WIDTH="100%"></td>
</tr>
</table>
<b><font face="Arial,Helvetica"><font size=+1>RealPlayer G2 alpha</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> J-Dog - May 19th
1999, 10:16 EST </font></font>
<p><font face="Arial,Helvetica"><font size=-1>RealPlayer for Unix allows
you to play streaming audio and video over the Internet in real-time. </font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.real.com/">http://www.real.com/</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.real.com/products/player/linux.html">http://www.real.com/products/player/linux.html</a></font></font>
<br><b><font face="Arial,Helvetica"><font size=-1>Editor's Note:
Whoohoo! Works great!</font></font></b>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>The Linux Image Montage
Project pre-1120</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> Jordan Husney - May
17th 1999, 07:15 EST </font></font>
<p><font face="Arial,Helvetica"><font size=-1>The Linux Image Montage Project
("LIMP"), is an attempt to distill the Linux community's spirit down into
one cool looking poster using user-contributed images and the GIMP. </font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Now 70% complete,
only 480 image to go until project completion.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://linux.remotepoint.com/">http://linux.remotepoint.com/</a></font></font></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>IBM ANNOUNCES OPEN-SOURCE
AVAILABILITY OF 3D VISUALIZATION SOFTWARE</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>IBM Visualization Data Explorer
Source Code Made Available to Developer Community.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.research.ibm.com/dci/software.html">http://www.research.ibm.com/dci/software.html</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.research.ibm.com/dci/dx_release.html">http://www.research.ibm.com/dci/dx_release.html</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>ImageMagick 4.2.6</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> Necronom IV - May
19th 1999, 16:03 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>ImageMagick (TM) is a package
for display and interactive manipulation of images for the X Window System.
It is written in C and interfaces to the X library, and therefore does
not require any proprietary toolkit in order to compile. Although the software
is copyrighted, it is available for free and can be redistributed without
fee. ImageMagick is known to compile and run on virtually any Unix system
and Linux. It also runs under Windows NT, Windows 95, Macintosh, and VMS.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Many new features
and bugfixes, see the Changelog for more information.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.wizards.dupont.com/cristy/ImageMagick.html">http://www.wizards.dupont.com/cristy/ImageMagick.html</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>IPAD 0.9.00</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> sergio - May 19th
1999, 10:04 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>IPAD is an intelligent vector
drawing package built using the multiplatform IPAD-Pro core and so provides
a very powerfull consistant interface across all supported platforms without
the need to have X11 or MS Windows available. It allows easy editing across
files using multiple overlapping windows. The graphics objects drawn and
edited by IPAD have built in intelligence. They react to the mouse and
each other so as to maximise user productivity and reduce tedious repetitive
setup sequences.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Faster character
drawing under X11, new grid support, new guide line support, new window
manager dialog and much more info in file selector.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.demon.co.uk/titan/">http://www.demon.co.uk/titan/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>Image::Grab 0.9.3</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> Mark Hershberger
- May 19th 1999, 09:59 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>The Image::Grab Perl module
allows you to easily grab an image with an oft-changing URL from the internet.
This makes it possible to write simple scripts to download weather maps
or comic strips on a daily or hourly basis without user intervention. It
is also useful for bypassing advertising banners.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Updated the realm
code so that HTTP authentication actually works, changed the interface,
but if you tried to use the realm call before, you should have gotten an
error.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://everybody.org/mah/hacks/Image-Grab-0.9.3.html">http://everybody.org/mah/hacks/Image-Grab-0.9.3.html</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>Panorama 0.11.2</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> Angel Jimenez - May
18th 1999, 13:31 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Panorama is a framework for
3D graphics production. It will include modelling, rendering, animating,
post-processing, etc. There's currently no support for animation, but this
feature will be added soon.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Added a new text
image filter, a new configuration file, and documentation. Lots of bug
fixes.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.gnu.org/software/panorama/panorama.html">http://www.gnu.org/software/panorama/panorama.html</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>Sketch 0.6.0</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> Bernhard Herzog -
May 18th 1999, 12:58 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Sketch is a drawing program
similar to CorelDraw or Adobe Illustrator. It is written almost completely
in python with some modules written in C, thus combining the flexibility
and power of Python with the speed of C. Advanced features include gradient
fills, clip masks, text along a path, blend groups, convert text to curves,
and more.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: First stable release.
Includes some national language support, improved Illustrator filters and
bug fixes.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.online.de/home/sketch/">http://www.online.de/home/sketch/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>FFTW 2.1.2</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> Steven G. Johnson
- May 18th 1999, 12:57 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>FFTW is a fast C FFT library.
It includes complex, real, and parallel transforms, and can handle arbitrary
array sizes efficiently. FFTW is typically faster than other publically-available
FFT implementations, and is even competitive with vendor-tuned libraries
(benchmarks are available at the homepage). To achieve this performance,
FFTW uses novel code-generation and runtime self-optimization techniques
(along with many other tricks).</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Fixed a problem
with our parallel MPI transform test programs under MPICH.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://theory.lcs.mit.edu/~fftw/">http://theory.lcs.mit.edu/~fftw/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>LAGII 0.1.4</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> XoXus - May 18th
1999, 12:02 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>LAGII lets you run AGI games
natively under Linux. AGI games include the Sierra classics such as Kings
Quest, Space Quest, etc. Most games don't work fully, but they work quite
well most of the time.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Functional X11 driver
is nearly done.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.zip.com.au/~gsymonds/LAGII/">http://www.zip.com.au/~gsymonds/LAGII/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>Glide 2.60</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> Lee Reynolds - May
18th 1999, 11:44 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>This is the first alpha release
of Glide 2 for the Banshee and Voodoo 3 cards. According to the author
the Quake 3 test will run under it, your mileage may vary. As of now it
will only do 3D full screen, windowed support will be included later. The
author will be at Linux Expo till the 23rd and has said he will ignore
all email during this period. Those in need of support are advised to use
the 3dfx newsgroups.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: This is the first
version of Glide for linux with support for the Voodoo Banshee and Voodoo
3 chipsets. This is still glide 2.x, glide 3 has not been ported to linux
as of yet</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://glide.xxedgexx.com/3DfxRPMS_vb_glibc.html">http://glide.xxedgexx.com/3DfxRPMS_vb_glibc.html</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>LibGGI 2.0 Beta 2.1</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> Andreas Beck - May
17th 1999, 07:19 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>LibGGI is an attempt to unify
all those graphical output systems that exist on Unix. It is a very fast,
simple (ever tried to make a small graphics app directly in Xlib?) and
lightweight interface layer, that allows you to run the very same binary
on many different graphics subsystems like X, SVGAlib, Glide, etc.
LibGGI will detect (or you can select, of course) the environment you are
running in, and redirect its output as required.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Better autoconf
checking for some targets and other bugfixes, fbdev target uses acceleration
on kernel-native matroxfb, better mode-switching for non-kgicon fbdev drivers,
svgalib target enhanced, X target fixed for remote displays with different
endianness as well as small enhancements for LibGII (especially for the
Linux-Console input).</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.ggi-project.org/">http://www.ggi-project.org/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<p><!--
-- Did You Know Section
-->
<h2>
Did You Know?</h2>
<blockquote><font face="Arial,Helvetica"><font size=-1>...there is a story
in EETimesOnline about ILM's camera work, including a mention of Linux.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.eet.com/story/career/timespeople/OEG19990517S0023">http://www.eet.com/story/career/timespeople/OEG19990517S0023</a></font></font>
<p><font face="Arial,Helvetica"><font size=-1>...and another on how working
on special effects expose engineers to the hot technologies of the day.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.eet.com/story/career/timespeople/OEG19990513S0020">http://www.eet.com/story/career/timespeople/OEG19990513S0020</a></font></font>
<p><font face="Arial,Helvetica"><font size=-1>...there is a project online
that aims to produce a short (10 minute) 3D animated movie using POV-Ray.
The Internet Movie Project can be found at <a href="http://www.imp.org/">http://www.imp.org/</a></font></font>
<p>.<font face="Arial,Helvetica"><font size=-1>..RealPlayer is an <a href="http://w3c.org/AudioVideo/">SMIL
(Synchronized Multimedia Integration Language)</a> enabled player?
SMIL is based on XML and was designed by the good people at W3C.
Since SMIL is another text-based markup language, you can, as always, use
any text editor to author SMIL files. If you're interested in other
SMIL players and some links to some GUI based authoring tools, take a look
at <a href="http://www.justsmil.com">http://www.justsmil.com</a>.
So far, no authoring tools for Linux are listed, although I've sent email
to the people working on GRiNS to ask if they plan on a Linux port (they
are working on both IRIX and Solaris ports, so I'd think it wouldn't be
a difficult port to Linux).</font></font></blockquote>
<!--
-- Q and A Section
-->
<h2>
Q and A</h2>
<i><font face="Arial,Helvetica"><font size=-1>Q: Marjorie Richardson
asks: Could you tell me if there is a Linux graphics program that
will convert RGB to CMYK easily? (easily as in push a button)</font></font></i>
<p><font face="Arial,Helvetica"><font size=-1>A: <b><font color="#CC6600">ImageMagick</font></b>
has the command line tool <b>convert</b> that will convert between many
different file formats. One output format is raw CMYK. Keep
in mind that raw CMYK may not be quite right for print output - it doesn't
take into consideration display characteristics of either the monitor on
which you viewed the original or the device on which you'll be printing.
But it will probably be fairly close for many images.</font></font>
<br><font face="Arial,Helvetica"><font size=-1>See: <a href="http://www.wizards.dupont.com/cristy/www/convert.html">http://www.wizards.dupont.com/cristy/www/convert.html</a></font></font>
<p><font face="Arial,Helvetica"><font size=-1>A: blah</font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<h2>
Reader Mail</h2>
<font face="Arial,Helvetica"><font size=-1>Hadess <<a href="mailto:hadess@writeme.com">hadess@writeme.com</a>>
writes:</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>First I'd like you
to know that the only thing worth reading in the Linux Gazette (at least
for me) is the Graphics Muse ^_^</font></font></blockquote>
<font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse</font></b>:
I'm flattered, but I often read most of the rest of the Gazette myself.
Larry Ayers and the other regular and guest writers tend to know a lot
more about systems administration than I do, and I often find bits of very
useful into there. I'm just the graphics guy.</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>Well, I use the
GIMP everyday and I frequently use a file-manager to launch it associated
with an image. I'd like GIMP to start only once. I'd like to launch it
once and then, afterwards, launch another image and make it load by the
first GIMP instance I launched. Any ideas ?</font></font></blockquote>
<font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse</font></b>:
If you want to work on the new image interactively, then I can only think
of one way to do it - Perl::Fu. But getting the Perl extension to
work with the Gimp can take a bit of work. I'm going to do an article
on it for the June issue of <a href="http://www.thegimp.com">TheGimp.com</a>
(this month will be on Gimp 1.2 status). You can also take a look
at the new O'Reilly text "<i>Programming Web Graphics with Perl and GNU
Software</i>". There is a chapter on the Gimp which goes into a
fair amount of detail on the Perl scripting interface for the Gimp.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>The Perl extension has a
server portion, so you could write a perl script to connect to the server
and pass it the name of a plug-in and file that could be used to pop open
a new image window for the currently running Gimp. It will even,
I believe, launch the Gimp if its not already running.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>I'm no Perl::Fu expert, however.
This is just my impression of how things work.</font></font>
<p>A<font face="Arial,Helvetica"><font size=-1>ntti Huotari <<a href="mailto:ahuotari@cc.hut.fi">ahuotari@cc.hut.fi</a>>
writes:</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>You said in your
latest Graphics Muse column that Macromedia Flash 3 runs only on non-Linux
systems. Well, infact it does run almost flawlessly on Linux with the latest
WINE release (OK, it still has a few bugs, but you can create Flash
movies, etc. with it).</font></font>
<p><font face="Arial,Helvetica"><font size=-1>The following setup is used:</font></font>
<ul>
<li>
<font face="Arial,Helvetica"><font size=-1>RedHat-5.2</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Kernel-2.2.9</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Wine-990508</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Flash 3 is installed in Windows95
(dual boot)</font></font></li>
</ul>
</blockquote>
<font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse</font></b>:
Ok, I stand corrected. I just don't run WINE - I want these tools
to run natively on Unix. I've been waiting 10 years (since working
on the Dell Unix product) for applications to run natively on desktop Unix.
So I guess that's why I didn't consider WINE.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>I never have figured out
how to do this, though. I mean, where do I get Windows95/98?
You go into computer stores and all they stock is "Upgrades". No
one sells a complete installation apparently. Not that I've looked
too hard.</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>Just to let you
know,</font></font></blockquote>
<font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse</font></b>:
I appreciate the feedback. I'm sure there are qutie a few readers
who would love to know this works.</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>PS. Thanks for the
nice book about Gimp.</font></font></blockquote>
<font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse</font></b>:
Your quite welcome. I'm glad you find it useful!</font></font>
<p>A<font face="Arial,Helvetica"><font size=-1>ntti Huotari <<a href="mailto:ahuotari@cc.hut.fi">ahuotari@cc.hut.fi</a>>
followed up with:</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>Just to clarify
things, Wine+Flash3 isn't ready for production yet. For example the text
tool doesn't work and there are lots of little problems. But like I said
you <i>can</i> play, create movies with it, etc. Sound effects seem to
work fine too. And it gets better with every new release of Wine.</font></font></blockquote>
<font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse</font></b>:
I'll post this too. Its good info. I'm sure it will help keep
expectations in line for anyone who tries it.</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>From <a href="http://www.winehq.com">www.winehq.com</a>:</font></font>
<br><font face="Arial,Helvetica"><font size=-1>Wine is an implementation
of the Windows 3.x and Win32 APIs on top of X and Unix. (So it isn't an
emulator and you don't need Microsoft Windows.) Wine consists of a program
loader, which loads and executes a Windows binary, and a library that implements
Windows API calls using their UNIX or X11 equivalents.</font></font></blockquote>
<font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse</font></b>:
Hmmm. I didn't realize that. I guess I could try it eventually.
I just <i>hate</i> using any MS-based tools. But I should open my
mind to different options. It is, after all, part of my own preachings
to people: Choice. Thats the key.</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>But, I do agree
with you that it would be much better to have applications that are especially
made for *NIX.</font></font></blockquote>
<font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse</font></b>:
It's happening. Slowly, but I think it's an inevitable process at
this point. I'm looking forward to the ports of graphics applications
that I'm sure we'll be hearing about over the next 6-12 months.</font></font>
<br>
<hr NOSHADE WIDTH="100%">
<br><a NAME="webwonderings"></a><img SRC="gm/images/webwonderings.jpg" height=57 width=246>
<h2>
blah</h2>
<font face="Arial,Helvetica"><font size=-1>I wondered around the Net a
bit this month, but couldn't find anything interesting to write about relating
to Web development. Oh, sure there are lots of topics. I just
couldn't find one that peaked my curiousity - and I could fit into my writing
schedule. I thought about looking at Zope, but it had some system
requirements I didn't have. I spent a bit of time trying to install
some other packages, some for the Vector Tools followup article and some
for some future articles, and didn't really want to deal with it again
for yet another package. But Zope does look interesting. I'll
try to take a look at it sometime in the near future.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Other than that, I only came
up with one Web-related item: After a couple of years of wondering
how to make this work, I finally figured out how to force text to flow
around a table. I like to use tables to place an image with a caption
below it, image in the top cell and the caption in a cell below it, but
I've always been stuck with shoving text into a cell in the table - I couldn't
just have text flow around the table like I do with non-tabled images.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Well, it seems that my use
of Netscape Composer had led me to ignore checking the completeness of
the HTML it created. I was perusing some other sites on the net -
I think it was the BBC news site - and saw one with a configuration just
like I wanted to make: image in a table, caption below it, text flowing
around it to the right. I looked at the HTML and didn't see anything
special. So I copied everything from that site's table to one of
my own, then started removing items one at a time to find the key element.
The key, it seems, is the ALIGN= argument.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>It is possible to make text
flow around a table, but not directly with Composer. Composer, although
it provides a toggle for the Align argument, doesn't actually place this
argument in the TABLE tag if you use the default option of "Left".
Arrgghh! You have to edit the TABLE tag and add the ALIGN=LEFT by
hand. So, configure your text editor in Netscape. I use vi
(if you use Emacs there is a good chance you're not using Composer anyway).
You'll want to create the table first, just as always. Make the table
just a bit wider than the image and leave the image left aligned in it's
cell (which leaves space between the image and the text that will flow
around it). Then add your text. Later, go back and edit the
HTML by hand (Edit->HTML Source) and add the ALIGN=LEFT argument to your
table. Viola! Right-side flowing text around your tables.
This modification will stay as long as you don't edit that table again.
If you do make changes to the table, you'll have to go back and add the
ALIGN=LEFT argument by hand again.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>I guess it helps to check
these automated contraptions every now and then - just to keep them honest.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Oh, and as to why this was
titled "blah": that's the text placeholder in the template file I
use for the main page of the Graphics Muse. It seemed appropriate.
The alternative was "Yada Yada Yada", but I wasn't sure how many Seinfeld
fans there were reading the Muse.</font></font>
<br>
<hr NOSHADE WIDTH="100%">
<p><a NAME="musings"></a>
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 COLS=2 NOSAVE >
<tr NOSAVE>
<td ALIGN=LEFT VALIGN=TOP WIDTH="245" NOSAVE><img SRC="gm/images/musings.jpg" height=50 width=245></td>
<td NOSAVE>
<center><table BORDER CELLSPACING=0 CELLPADDING=3 COLS=1 WIDTH="100%" BGCOLOR="#FE992B" NOSAVE >
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="musings.html">Also:
A Followup to last months Vector Drawing Tool on Linux</a></font></font></td>
</tr>
</table></center>
</td>
</tr>
</table>
<h2>
<font face="Arial,Helvetica">A Little Eye Candy, Please - XScreensaver</font></h2>
<font face="Arial,Helvetica"><font size=-1>In most issues of the Graphics
Muse, I talk about useful tools, things with which you can perform some
real world task. That's fine, most of the time. But one needs
to have a little fun every now and then. Sometimes, you just need
to do something that, well, has no real purpose. Except to make you
smile.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>In the world of graphics
tools for Linux there are probably several programs (we can't <i>really</i>
call them tools, per se) that could be considered just fun. No, I
don't mean games. That's entertainment. Despite what you read
in the press or hear from politicians, games are not completely mindless
jaunts for the juvenile crowd. No, we need something that has nothing
to offer but stunning visual preoccupation.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Thank goodness for screensavers.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Watching the ever streaming
line of announcements over at <a href="http://www.freshmeat.net">freshmeat</a>,
I noticed an announcement for something called cmatrix. It was said
to be a screensaver in the style of <a href="#movie">The Matrix</a>, that
wonderfully confusing cinema fantasy starring Keanu Reeves. Unfortunately,
it's not an X-based program. It runs under Curses, a terminal based
graphical interface. Then I saw that Jamie Zawinsky, late of Netscape,
had added a Matrix hack to his xscreensaver program. So I scrounged
around a bit and found xscreensaver, downloaded it and put it to work.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Cool.</font></font>
<br>
<br>
<table ALIGN=LEFT BORDER=0 CELLSPACING=0 CELLPADDING=4 WIDTH="376" NOSAVE >
<tr NOSAVE>
<td NOSAVE><img SRC="gm/images/xmatrix.gif" height=304 width=366></td>
</tr>
<tr>
<td>
<center><b><font face="Arial,Helvetica"><font size=+1>The Matrix (xmatrix)
Screensaver</font></font></b></center>
</td>
</tr>
</table>
<font face="Arial,Helvetica"><font size=-1>Xscreensaver is a program that
manages other programs that draw on the root window. The root window
is a special window - it's the window inside which all other windows get
drawn. It doesn't look like a window like you might expect because
it doesn't have a window frame around it. But any program, properly
written, can draw on the root window. Jamie's design is to make xscreensaver
a daemon - a program that runs all the time in the background - that would
wait to see when there was a period of inactivity from the user.
When that period expires, xscreensaver runs another program. This
other program is the one that actually draws on the root window.
These other programs are called, in xscreensaver vernacular,
<a href="#hacks vs. demos">hacks</a>.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>I don't usually run screensavers,
a screen blanking or energy-saving monitor suffices most of the time.
But the shear number of hacks available for xscreensaver was somewhat astounding.
I counted over 80 of these in the hacks directory. Jamie has screenshots
for most of these on his xscreensaver Web site (<a href="http://www.jwz.org/xscreensaver/">http://www.jwz.org/xscreensaver/</a>).
Be warned: it can take quite a while to download the page with the
screenshots if you're on a slow link. You don't really have to download
the latest version from this web site since most Linux distributions will
contain a version of xscreensaver already. But you might want to
check to see if any new hacks have been added or if a new version is availalble.
On my Red Hat 5.2 I had a considerably older version than the latest (3.12)
posted on Jamie's site.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Since xscreensaver runs as
a daemon and a client (the hack), you need to look at these seperately.
The daemon, <i>xscreensaver</i>, has no user interface. It's configuration
is controlled by a standalone client program called <i>xscreensaver-demo</i>.</font></font>
<center>
<p><img SRC="gm/images/xs-demo.gif" height=281 width=553>
<br><b><font face="Arial,Helvetica"><font size=+1>xscreensaver-demo</font></font></b></center>
<p><font face="Arial,Helvetica"><font size=-1>If you don't have an <i>$HOME/.xscreensaver</i>
file, then xscreensaver uses its default configuration. In this example
case this means the demo window has all 80+ hacks available. This
if fine for the demo, but when you put together a menu option for your
favorite Window Manager to launch the screensavers, you may want to limit
this list using your own configuration file. We'll talk about the
configuration file a little later in this article.</font></font>
<p><font size=-1><font face="Arial,Helvetica">The demo dialog allows you
to double click on an entry in the list of hacks to start it. To
stop the hack just move the mouse or click a mouse button once. This
is handy for looking through the list of hacks to see what they all do.
You can also type a hack command (the command uses ordinary command line,
aka shell, syntax) in the text field just below the list. The buttons
perform obvious functions - run the next hack in the list, run the previous
hack in the list, quit the demo program and open the preferences dialog.
Quitting will exit the demo window but does not kill off the xscreensaver
demo. You do that manually with the <i>xscreensaver-command</i> program's
</font><tt>-exi</tt><font face="Arial,Helvetica">t
option.</font></font>
<br>
<br>
<table ALIGN=LEFT BORDER=0 CELLSPACING=0 CELLPADDING=4 WIDTH="412" NOSAVE >
<tr NOSAVE>
<td NOSAVE><img SRC="gm/images/xs-prefs.gif" height=346 width=402></td>
</tr>
<tr>
<td>
<center><b><font face="Arial,Helvetica"><font size=+1>Preferences Dialog
Window</font></font></b></center>
</td>
</tr>
</table>
<font face="Arial,Helvetica"><font size=-1>The demo window also has a preferences
dialog. Here you can configure the daemon's behaviour with respect
to when it notices inactivity and whether or not it requires using a password
to log back in. You'll notice there isn't any field for specifying
a password. Xscreensaver will use your password from the /etc/password
(or /etc/shadow, if you have that) file. Saver Timeout is the inactivity
period to wait on, while Cycle Timeout is the period of time the current
hack gets run. Xscreensaver will cycle through the list of hacks
in your .xscreensaver file's <u>programs</u> entry if more than one entry
exists and if the cycle timeout is set to something other than 0 (0 means
never cycle).</font></font>
<p><font face="Arial,Helvetica"><font size=-1>The Fade Duration is used
only with writable colormaps. This causes the screen to fade to black
when the screensaver starts or between hacks when cycling is enabled.
Fade ticks controls how fast this fade should occur. Higher numbers
make for smoother fades, but take longer to complete. Fading to black
may not work with your hardware and X server configuration, so changes
to this field may have no effect.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>The Lock Timeout is the grace
period after the screensaver has kicked in where no password is required,
even if Require Password has been set. If this value were 5 minutes,
for example, and the screensaver had only been running for 3 minutes before
you typed something or moved the mouse, then you wouldn't have to type
a password. Useful for those short periods you run to the bathroom
and hate having to retype your password just to get going again.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Password Timeout is the time
for which the password dialog will remain on the screen waiting for a valid
response before it gives up and returns to the screensaver.
In the example here, the dialog would be present for 30 seconds - ample
time for a decent typist with the right password.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>While the demo window and
it's preference dialog allow you to configure how the daemon will run,
it isn't really how you want to run xscreensaver in the background, say
from a Window Manager menu. As mentioned earlier, another program
is used to kill off the xscreensaver daemon - <i>xscreensaver-command</i>.
This is a command line program designed to issue commands to the daemon
without using windowing interface (although it can launch the Demo window
too). A hack in the programs list of your configuration file can
be called directly using the xscreensaver-command program. This is
how I set up a menu under FVWM2 to specifically run the Matrix screensaver.</font></font>
<p><b><u><font face="Arial,Helvetica">The .xscreensaver configuration file</font></u></b>
<p><font face="Arial,Helvetica"><font size=-1>All of the options you can
set interactively with the Preferences dialog can also be set using the
xscreensaver-command program. Alternatively, you can specify often
used options in your .xscreensaver configuration file. We've already
mentioned the programs entry, which is a list of programs to run in shell-syntax
format. You list one program per line and use shell continuation
marks, but cannot use semicolons. So, an entry like this</font></font>
<blockquote><tt>programs: \</tt>
<br><tt> xmatrix; qix -root;
xv -root -rmode 5 image.gif -quit</tt></blockquote>
<font face="Arial,Helvetica"><font size=-1>is invalid. Instead, you
would enter it like this:</font></font>
<blockquote><tt>programs:
\</tt>
<br><tt> xmatrix
\n\</tt>
<br><tt> qix -root \n\</tt>
<br><tt> xv -root -rmode 5 image.gif
-quit \n\</tt></blockquote>
<font face="Arial,Helvetica"><font size=-1>Each of these programs are found
via your PATH environment variable, so if they aren't available from an
ordinary command line, then you may want to fully qualify the path name.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>When you use xscreensaver-command
to launch one of these programs specifically, you reference the program
by the order in which it appears in the list. So xmatrix is program
number 1, qix is number 2 and so forth. You can then invoke this
screensaver directly using a command line like this:</font></font>
<blockquote><tt>% xscreensaver-command -select 1</tt></blockquote>
<font face="Arial,Helvetica"><font size=-1>The -select option tells xscreensaver
to blank the screen immediately and run the hack specified. There
are variations on how you can do this using the xscreensaver-command program.
Check the man page that comes with the source for complete details.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>All of the options in the
.xscreensaver configuration file use a name:token format. That is,
you specify the name of the option, followed by a colon and the setting
for that option. Since the configuration option uses the same option
names as the X Resources file, you can also place these settings in your
.Xdefaults file if you like. I prefer using program specific files
like .xscreensaver because if I screw up that one file I don't take the
chance of breaking some other program like I might if I used my .Xdefaults
file instead.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>[ <a href="musings.html#A Little Eye-Candy, Please (continued)">More
Eye Candy</a> ]</font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><font face="Arial,Helvetica"><font size=-1>Footnotes:</font></font>
<ol>
<li>
<a NAME="movie"></a><font face="Arial,Helvetica"><font size=-1>If you haven't
seen this movie yet, go now! The story line far outpaces the special
effects, which themselves are some of the best I've ever seen. This
movie is the 2001 of the current generation.</font></font></li>
<li>
<a NAME="hacks vs. demos"></a><font face="Arial,Helvetica"><font size=-1>In
the documentation, hacks are also often called demos. Don't let the
terminology confuse you.</font></font></li>
</ol>
<table BORDER=0 COLS=1 WIDTH="100%" BGCOLOR="#000000" NOSAVE >
<tr NOSAVE>
<td NOSAVE><img SRC="apr98/gm/images/cleardot.gif" height=2 width=2></td>
</tr>
</table>
<a NAME="rsrc"></a><img SRC="gm/images/resources.jpg" height=50 width=245>
<br><font face="Arial,Helvetica"><font size=-1>The following links are
just starting points for finding more information about computer graphics
and multimedia in general for Linux systems. If you have some application
specific information for me, I'll add them to my other pages or you can
contact the maintainer of some other web site. I'll consider adding other
general references here, but application or site specific information needs
to go into one of the following general references and not listed here.</font></font>
<br>
<table BORDER=0 COLS=2 WIDTH="100%" NOSAVE >
<tr NOSAVE>
<td NOSAVE><font face="Arial,Helvetica"><font size=-1>Online Magazines
and News sources </font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.news.com/">C|Net
Tech News</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.eklektix.com/lwn/">Linux
Weekly News</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://slashdot.org/">Slashdot.org</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://TheGimp.com">TheGimp.com</a></font></font>
<p><font face="Arial,Helvetica"><font size=-1>General Web Sites </font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.graphics-muse.org/linux.html">Linux
Graphics</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.bright.net/~dlphilp/linux_soundapps.html">Linux
Sound/Midi Page</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://LinuxArtist.org">Linux
Artist.org</a></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Some of the Mailing Lists
and Newsgroups I keep an eye on and where I get much of the information
in this column </font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.gimp.org">The
Gimp User and Gimp Developer Mailing Lists</a>. </font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.irtc.org">The
IRTC-L discussion list</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="news:comp.graphics.rendering.raytracing">comp.graphics.rendering.raytracing</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="news:comp.graphics.rendering.renderman">comp.graphics.rendering.renderman</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="news:comp.graphics.api.opengl">comp.graphics.api.opengl</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="news:comp.os.linux.announce">comp.os.linux.announce</a></font></font></td>
<td><img SRC="gm/images/gmuse-2.jpg" HSPACE=10 BORDER=2 height=248 width=200></td>
</tr>
</table>
<a NAME="future"></a>
<h2>
Future Directions</h2>
<font face="Arial,Helvetica"><font size=-1>Next month: I'd like to
look at TV and motion capture cards, but I don't have any so the best I
can do is write about the drivers for them. Barring that, I'm not
sure what I'll look at. Maybe a little about dealing with drawing
using Gtk and Motif widgets, something I've been working on lately.
We'll see.</font></font>
<p><font face="Arial,Helvetica"><font size=-1><a href="mailto:mjhammel@graphics-muse.org">Let
me know what you'd like to hear about!</a></font></font>
<br>
<hr NOSHADE WIDTH="100%">
<div align=right><font face="Arial,Helvetica"><font size=-1>© 1999
<a href="mailto:mjhammel@graphics-muse.org">Michael
J. Hammel</a></font></font></div>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Michael J. Hammel <BR>
Published in Issue 42 of <i>Linux Gazette</i>, June 1999</H5></center>
<!--===================================================================-->
<br><img SRC="gm/images/mews.jpg" height=50 width=245>
<table WIDTH="100%" >
<tr>
<td ALIGN=RIGHT WIDTH="100%"><font size=-2>© 1999 <a href="mailto:mjhammel@graphics-muse.org">Michael
J. Hammel</a></font></td>
</tr>
<tr>
<td VALIGN=TOP BGCOLOR="#000000" cellpadding="0" cellspacing="0"><img SRC="gm/images/cleardot.gif" ALT="indent" align=LEFT></td>
</tr>
</table>
<table BORDER=0 COLS=3 WIDTH="100%" NOSAVE >
<tr NOSAVE>
<td ALIGN=LEFT VALIGN=TOP WIDTH="140" NOSAVE>
<table BORDER CELLSPACING=0 CELLPADDING=2 COLS=1 WIDTH="100%" HEIGHT="100%" BGCOLOR="#FE992B" NOSAVE >
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#Superficie 0.5">Superficie
0.5</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#Graphic Counter Language 2.20.3.D">Graphic
Counter Language 2.20.3.D</a></font></font></td>
</tr>
<tr NOSAVE>
<td NOSAVE><font face="Arial,Helvetica"><font size=-1><a href="#MathMap">MathMap</a></font></font></td>
</tr>
<tr NOSAVE>
<td ALIGN=LEFT VALIGN=TOP NOSAVE><font face="Arial,Helvetica"><font size=-1><a href="#Panorama Tools v1.7.2">Panorama
Tools v1.7.2</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#GIMP 1.1.5">GIMP
1.1.5</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#Gimp ImageMap Plug-In Release 0.9">Gimp
ImageMap Plug-In Release 0.9</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#DiaCanvas 0.10.">DiaCanvas
0.10</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#tgif 4.1.9">tgif
4.1.9</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#Swift Generator 0.7.1">Swift
Generator 0.7.</a> </font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#Giram 0.0.17">Giram
0.0.17</a> </font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#Install-Webserver 0.1">Install-Webserver
0.1</a> </font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#povfront 0.9-2">povfront
0.9-2</a> </font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#Wacom Driver for XFree86 alpha 3">Wacom
Driver for XFree86 alpha 3</a> </font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#xfsft 1.1.5">xfsft
1.1.5</a> </font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#XawTV 2.44">XawTV
2.44</a> </font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#RenderDotC 3.1">RenderDotC
3.1</a> </font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#Terraform 0.3.1">Terraform
0.3.1</a> </font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#AleVT 1.4.5">AleVT
1.4.5</a> </font></font></td>
</tr>
</table>
</td>
<td WIDTH="1" NOSAVE></td>
<td ALIGN=LEFT VALIGN=TOP NOSAVE>
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 COLS=1 WIDTH="100%" NOSAVE >
<tr NOSAVE>
<td NOSAVE><font face="Arial,Helvetica"><font size=-1><b>Disclaimer</b>:
Before I get too far into this I should note that any of the news items
I post in this section are just that - news. Either I happened to run across
them via some mailing list I was on, via some Usenet newsgroup, or via
email from someone. I'm not necessarily endorsing these products (some
of which may be commercial), I'm just letting you know I'd heard about
them in the past month.</font></font></td>
</tr>
<tr>
<td>
<hr NOSHADE WIDTH="100%"></td>
</tr>
</table>
<a NAME="Superficie 0.5"></a><b><font face="Arial,Helvetica"><font size=+1>Superficie
0.5</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> Juan Pablo - May
17th 1999, 07:19 EST </font></font>
<p><font face="Arial,Helvetica"><font size=-1>Superficie (surface) is a
little program for viewing and doing basic manipulation of 3D surfaces.
It reads a file with the data, and displays the object in a window, so
you can interact with it. </font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Improved autoconf
scripts, bug fixes, mathematica package, etc.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.linuxsupportline.com/~superficie/">http://www.linuxsupportline.com/~superficie/</a></font></font>
<br> </td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="Graphic Counter Language 2.20.3.D"></a><b><font face="Arial,Helvetica"><font size=+1>Graphic
Counter Language 2.20.3.D</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> G. Adam Stanislav
- May 17th 1999, 07:37 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>GCL is a new CGI programming
language that allows webmasters to create fully customized web counters
in as few as 15-20 lines of code. The webmaster provides images for the
digits in gif, xbm, or gd format, plus optional comma, head, tail, and
background images. The webmaster can choose how the various elements that
will comprise the final graphic counter are aligned. As of version 2.10,
the webmaster may compile images directly to the binary executable.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: 64-bit counter size
allowing the count to go up to trillions and a faster lexical analyzer.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.whizkidtech.net/gcl/">http://www.whizkidtech.net/gcl/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="MathMap"></a><b><font face="Arial,Helvetica"><font size=+1>MathMap</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>MathMap is a GIMP plug-in
which allows distortion of images specified by mathematical formulae. For
each pixel in the generated image, an expression is evaluated which should
return a pixel value. The expression can either refer to a pixel in the
source image or can generate pixels completely independent of the source.
MathMap not only allows the generation of still images but also of animations.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>The MathMap homepage can
be found at</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1><a href="http://www.unix.cslab.tuwien.ac.at/~schani/mathmap/">http://www.unix.cslab.tuwien.ac.at/~schani/mathmap/</a></font></font></blockquote>
<font face="Arial,Helvetica"><font size=-1>It includes a user's manual
as well as screenshots and examples.</font></font>
<br><font face="Arial,Helvetica"><font size=-1>Mark Probst</font></font>
<br><font face="Arial,Helvetica"><font size=-1>Student, Programmer</font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="Panorama Tools v1.7.2"></a><b><font face="Arial,Helvetica"><font size=+1>Panorama
Tools v1.7.2</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>Panorama Tools is a free
program which can be used to generate, edit and transform many kinds of
panoramic images. Its five main functionalities are:</font></font>
<ul>
<li>
<font face="Arial,Helvetica"><font size=-1>Correction of images.</font></font></li>
<ul>
<li>
<font face="Arial,Helvetica"><font size=-1>Automatic cropping of images
to brightest rectangle.</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Remove all sorts of barrel and/or
pincussion distortion.</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Correct light fall-off at edges
of your wide angle shots.</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Correct chromatic errors (colour
separation) of your lens.</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Correct chromatic errors (colour
separation) of your scanner.</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Skew/Unskew your images horizontally
or vertically.</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Correction of scanning slit
cameras.</font></font></li>
</ul>
<li>
<font face="Arial,Helvetica"><font size=-1>Perspective Control</font></font></li>
<ul>
<li>
<font face="Arial,Helvetica"><font size=-1>Simulates a shift lens in software</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>For normal and fisheye lenses</font></font></li>
</ul>
<li>
<font face="Arial,Helvetica"><font size=-1>Remap from any projection to
any projection</font></font></li>
<ul>
<li>
<font face="Arial,Helvetica"><font size=-1>Warp and unwarp normal, panoramic
and fisheye images.</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Convert equirectangular LivePicture
panoramas to QTVR-panoramas and vice-versa.</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Convert mirror images (BeHere-setup
or similar) to any panorama and vice-versa. Convert fisheye images to any
panorama and vice-versa</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Unwarp panorama sections (QTVR,
LivePicture, or VRML-cubes) to edit in GIMP, then rewarp and seamlessly
insert back.</font></font></li>
</ul>
<li>
<font face="Arial,Helvetica"><font size=-1>Adjust images into a panoramic
view</font></font></li>
<ul>
<li>
<font face="Arial,Helvetica"><font size=-1>Generate full panoramic view
using any mixture of normal, fisheye and panoramic images.</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Built-in optimizer to find optimum
pitch/roll/yaw for a given image to fit a panorama</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Built-in optimizer to find optimum
correction settings for a given image.</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Built-in stitching tool to automatically
merge images into a panoramic view.</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Automatic colour adjustment
of to be merged images</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Extract any view (normal/fisheye/panoramic)
from any panorama (RealVR/QTVR/rectilinear/VRML-cubes)</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Insert any image (normal/fisheye/panoramic)
into any panorama (RealVR/QTVR/rectilinearVRML-cubes)</font></font></li>
</ul>
<li>
<font face="Arial,Helvetica"><font size=-1>Realtime Panorama Editor</font></font></li>
<ul>
<li>
<font face="Arial,Helvetica"><font size=-1>The realtime Panorama Editor
is a separate Plug-in which makes the GIMP window an editable VR-viewer.
You can pan left and right, tilt up and down, and zoom in and out. At any
time you can use all GIMP tools to edit the image and instantly apply the
changes to the warped panoramic image while keeping the interactive window
open. This can be done with any view ("camera") and any panorama (see 'adjust'
above).</font></font></li>
</ul>
</ul>
<font face="Arial,Helvetica"><font size=-1>H. Dersch</font></font>
<br><font face="Arial,Helvetica"><font size=-1>-------------------------------------</font></font>
<br><font face="Arial,Helvetica"><font size=-1>Spherical Panoramas, Macro
Panoramas,</font></font>
<br><font face="Arial,Helvetica"><font size=-1>Free Panorama Software:</font></font>
<br><font face="Arial,Helvetica"><font size=-1><<a href="http://www.fh-furtwangen.de/~dersch">http://www.fh-furtwangen.de/~dersch</a>></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%"><a NAME="GIMP 1.1.5"></a><b><font face="Arial,Helvetica"><font size=+1>GIMP
1.1.5</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1><a href="ftp://ftp.gimp.org/pub/gimp/unstable/v1.1.5/">ftp://ftp.gimp.org/pub/gimp/unstable/v1.1.5/</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1>GTK+ 1.2.x is required.
Grab it at: <a href="ftp://ftp.gimp.org/pub/gtk/v1.2/">ftp://ftp.gimp.org/pub/gtk/v1.2/</a></font></font>
<p><font face="Arial,Helvetica"><font size=-1>What's new? Lots.</font></font>
<ul>
<li>
<font face="Arial,Helvetica"><font size=-1>Many UI changes, including revamped
tool options and togglable tools</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>All the PDB wrappers in the
app are autogenned by the pdbgen tool. There may be some brokenness as
a result of this, please report problems to <a href="mailto:bugs@gimp.org">bugs@gimp.org</a></font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Crop tool rework</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Persistant global parasites</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Some new plugins: rcm, gdyntext.
Plug-in bugfixes</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>OS/2 port merges</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Lots more stuff that I forgot,
see ChangeLog</font></font></li>
</ul>
<font face="Arial,Helvetica"><font size=-1>-Yosh</font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="Gimp ImageMap Plug-In Release 0.9"></a><b><font face="Arial,Helvetica"><font size=+1>Gimp
ImageMap Plug-In Release 0.9</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>Release 0.9 of my plug-in
for the creation of clickable imagemaps is now available on my homepage:
<a href="http://home-2.consunet.nl/~cb007736">http://home-2.consunet.nl/~cb007736</a>
. This release contains new functionality (List of standard prefixes
in settings dialog, better handling of invalid input, 'view source' dialog
for easy copy/paste to other programs, etc.) and some cosmetic bugfixes.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>This is the last release
before 1.0. Version 1.0 will basically be the same as 0.9 but with all
(?) bugs removed. Any volunteers for seriously beta testing this release?</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Maurits Rijk</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="mailto:lpeek.mrijk@consunet.nl">lpeek.mrijk@consunet.nl</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="DiaCanvas 0.10."></a><b><font face="Arial,Helvetica"><font size=+1>DiaCanvas
0.10.</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>It's a generalization of
the very nice canvas used by the drawing tool DIA. It is about to offer
the same features, only at a more generic way. It's much more GTK
oriented than the original DIA.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>You can find it at:</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://web.inter.nl.net/hcc/klem">http://web.inter.nl.net/hcc/klem</a></font></font>
<p><font face="Arial,Helvetica"><font size=-1>I know it's not perfect at
all, but it will give a nice impression of what it's suposed to be.</font></font>
<br><font face="Arial,Helvetica"><font size=-1>Arjan Molenaar</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="mailto:arjan@inter.nl.net">arjan@inter.nl.net</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="tgif 4.1.9"></a><b><font face="Arial,Helvetica"><font size=+1>tgif
4.1.9</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> Bill Cheng - May
20th 1999, 10:50 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>tgif is a vector-based draw
tool, with the additional benefit of being sort of a web-browser. That
is, you can fetch drawings from a web server with it, and you can make
objects in your picture into hotlinks to other parts of the drawing, or
to other drawings accessible via http.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Fixed a few bugs
and added a new X default, Tgif.PSFontAliases to allow fake font names
in Tgif.AdditionalFonts. Using this X default, different encodings of the
same PS font can be used. Also added 3 new internal commands: set_allow_interrupt(),
size_named_obj_absolute(), and get_named_obj_bbox().</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://bourbon.cs.umd.edu:8001/tgif/">http://bourbon.cs.umd.edu:8001/tgif/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="Swift Generator 0.7.1"></a><b><font face="Arial,Helvetica"><font size=+1>Swift
Generator 0.7.1</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> Olivier Debon - May
23rd 1999, 17:45 EST</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Swift-Generator is a utility
'ala' Macromedia Generator. It aims at dynamically replacing texts, fonts,
sounds and movie clips in either Template Generator files or standard Flash
files. This allows Webmasters to create dynamic content such as stock tickers,
news tickers, weather forecasts and the like.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Serious bug fixed.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.swift-tools.com/">http://www.swift-tools.com/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="Giram 0.0.17"></a><b><font face="Arial,Helvetica"><font size=+1>Giram
0.0.17</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> David Odin - May
26th 1999, 22:38 EST</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Giram Is Really A Modeller.
It is a multi-purpose 3D modeller written with the GTK+ User interface
v1.2. It can load and save POV-Ray and AutoCAD DXF sources files. Some
basic modelling tools are already there and it is growing very fast.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Better and easier
to use Plugins interface, better support for DXF, Giram can now export
in S3D format, rotation can now be restrained to fixed angles, as well
as various bugfixes.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.minet.net/giram/">http://www.minet.net/giram/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="Install-Webserver 0.1"></a><b><font face="Arial,Helvetica"><font size=+1>Install-Webserver
0.1</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> Donncha O Caoimh
- May 26th 1999, 22:34 EST</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Install-Webserver will install
Apache, PHP and MySQL for you. All you have to do is run one script.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: First release.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://members.xoom.com/xeer/">http://members.xoom.com/xeer/</a></font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Editors Note: It's
not graphics, but it is web based and for people like me, could be very
useful for testing things on my local box before uploading to my remote
web server.</font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="povfront 0.9-2"></a><b><font face="Arial,Helvetica"><font size=+1>povfront
0.9-2</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> Philippe P.E. DAVID
- May 26th 1999, 22:32 EST</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>PovFront is a front-end for
POVray ray tracing engine. It manages all the available options as well
as the script only ones. It provides multiple rendering possibility and
trace of them. It will provide network rendering in the future.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: This is intended
to be the last version before 1.0. The next major version will introduce
network rendering.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://perso.club-internet.fr/clovis1/">http://perso.club-internet.fr/clovis1/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="Wacom Driver for XFree86 alpha 3"></a><b><font face="Arial,Helvetica"><font size=+1>Wacom
Driver for XFree86 alpha 3</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> Fred - May 26th 1999,
09:34 EST</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>This is an XFree86 XInput
driver for Wacom tablets. It handles wacom IV and V protocols.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Corrected lens cursor
support for Intuos models.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.lepied.com/xfree86/">http://www.lepied.com/xfree86/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="xfsft 1.1.5"></a><b><font face="Arial,Helvetica"><font size=+1>xfsft
1.1.5</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> Ross_Campbell - May
25th 1999, 17:05 EST</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>The Xfsft patches to X11R6
enable X11 servers (including XFree86) and the font server xfs to use TrueType
fonts and improves on the way X11 handles international scalable fonts.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: This version fixes
a bug in the previous version and includes a version of mkfontdir that
causes it to automatically build `encodings.dir' files.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/">http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="XawTV 2.44"></a><b><font face="Arial,Helvetica"><font size=+1>XawTV
2.44</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> funnyguy - May 25th
1999, 12:59 EST</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>XawTV is a simple Xaw-based
TV program which uses the bttv driver or video4linux. It contains various
command-line utilities for grabbing images and avi movies, for tuning in
TV stations, etc. A grabber driver for vic and a radio application (needs
KDE) for the boards with radio support are included as well.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: fbtv: added -q switch,
started lirc support , changed float to double for X resources, fixed the
radio programs, webcam bugfix.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.in-berlin.de/User/kraxel/xawtv.html">http://www.in-berlin.de/User/kraxel/xawtv.html</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%"><a NAME="RenderDotC 3.1"></a><b><font face="Arial,Helvetica"><font size=+1>RenderDotC
3.1</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> Emil Mikulic - May
25th 1999, 12:01 EST</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>RenderDotC (RDC) is a photorealistic
rendering toolkit which adheres to the RenderMan(R) standard. Using the
Reyes architecture, RDC supports advanced capabilities such as motion blur,
depth of field, trim curves, texture/environment/displacement mapping,
and programmable shading in the RenderMan Shading Language. The shader
compiler included in the toolkit compiles shaders all the way to machine
language for the highest possible performance.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Now available for
Linux</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.dotcsw.com">http://www.dotcsw.com</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="Terraform 0.3.1"></a><b><font face="Arial,Helvetica"><font size=+1>Terraform
0.3.1</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> RNG - May 25th 1999,
11:43 EST</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Terraform allows you to create
fractal terrain (also called a height field) and transform it using a number
of algorithms. It is meant to be a tool for those who want to generate
digital terrain models for use in raytracing or other simulations. Terraform
features different views and colormaps and has a preview mode which features
interactive real-time rotation of the terrain object. Terraform is written
using Gtk-- (the C++ wrapper for Gtk+).</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Better dialogs,
faster 2D redraw, lots of bug fixes, and some internal code changes</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.peoplesoft.com/peoplepages/g/robert_gasch/terraform/">http://www.peoplesoft.com/peoplepages/g/robert_gasch/terraform/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="AleVT 1.4.5"></a><b><font face="Arial,Helvetica"><font size=+1>AleVT
1.4.5</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> froese - May 25th
1999, 11:03 EST</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>AleVT is an X11 teletext/videotext
decoder and browser for the bttv driver. It features multiple windows,
a page cache, regexp searching, built-in manual, and more. Also included
is a program to get the time from teletext.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://user.exit.de/froese/">http://user.exit.de/froese/</a></font></font>
<table WIDTH="100%" >
<tr>
<td VALIGN=TOP COLSPAN="4" BGCOLOR="#000000" cellpadding="0" cellspacing="0"><img SRC="gm/images/cleardot.gif" ALT="indent" align=LEFT></td>
</tr>
</table>
<table WIDTH="100%" >
<tr>
<td ALIGN=RIGHT><font size=-2>© 1999 by <a href="mailto:mjhammel@graphics-muse.org">Michael
J. Hammel</a></font></td>
</tr>
</table>
============================================================= !-->
<br><img SRC="gm/images/musings.jpg" height=50 width=245>
<table WIDTH="100%" >
<tr>
<td ALIGN=RIGHT WIDTH="100%"><font size=-2>© 1999 <a href="mailto:mjhammel@graphics-muse.org">Michael
J. Hammel</a></font></td>
</tr>
<tr>
<td VALIGN=TOP BGCOLOR="#000000" cellpadding="0" cellspacing="0"><img SRC="gm/images/cleardot.gif" ALT="indent" align=LEFT></td>
</tr>
</table>
<table BORDER=0 COLS=3 WIDTH="100%" NOSAVE >
<tr NOSAVE>
<td ALIGN=LEFT VALIGN=TOP WIDTH="140" NOSAVE>
<table BORDER CELLSPACING=0 CELLPADDING=2 COLS=1 WIDTH="100%" HEIGHT="100%" BGCOLOR="#FE992B" NOSAVE >
<tr NOSAVE>
<td NOSAVE><font face="Arial,Helvetica"><font size=-1><a href="#A Follow Up to Vector Drawing Tools on Linux">A
Follow Up to Vector Drawing Tools on Linux</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#A Little Eye-Candy, Please (continued)">A
Little Eye Candy, Please (continued)</a></font></font></td>
</tr>
</table>
</td>
<td WIDTH="1" NOSAVE></td>
<td ALIGN=LEFT VALIGN=TOP NOSAVE>
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 COLS=1 WIDTH="100%" NOSAVE >
<tr>
<td><b><font face="Arial,Helvetica"><font size=+1>more musings...</font></font></b></td>
</tr>
</table>
</td>
</tr>
</table>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="A Follow Up to Vector Drawing Tools on Linux"></a><b><font face="Arial,Helvetica"><font size=+1>A
Follow Up to Vector Drawing Tools on Linux</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>I received a lot of email
in response to my article on Vector Drawing tools for Linux. That's
good - it's really the only way I know anyone really reads this stuff.
Fortunately, it was all positive feedback, some praise and a lot of helpful
hints relating to the tools I discussed. Here is some of the email
I received, and my responses to them.</font></font>
<p>
<hr SIZE=1 NOSHADE WIDTH="85%">
<br><u><font face="Arial,Helvetica">One package I missed: ImPress</font></u>
<p><font face="Arial,Helvetica"><font color="#990000"><font size=-1>I'll
admit that ImPress has some bugs. Please give it a try sometime.</font></font></font>
<br><font face="Arial,Helvetica"><font color="#990000"><font size=-1><a href="http://www.ntlug.org/~ccox/impress/index.html">http://www.ntlug.org/~ccox/impress/index.html</a></font></font></font>
<p><font face="Arial,Helvetica"><font color="#990000"><font size=-1>Regards,</font></font></font>
<br><font face="Arial,Helvetica"><font color="#990000"><font size=-1>Chris</font></font></font>
<br><font face="Arial,Helvetica"><font color="#990000"><font size=-1><a href="mailto:ccox@acm.org">ccox@acm.org</a></font></font></font>
<p><font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse:</font></b>
Whoa. I didn't even know that ImPress was a vector tool. So
much for my research capabilities. I downloaded it and took a quick
look. I have to say, this may be the simplest tool of the bunch.
For someone who wants to create simple diagrams and then print them out,
this may just be the tool. It has a simple interface that includes
all the basic shapes you might want, plus support for embedded text and
Postscript output. It's not nearly as full featured as the TGIF or
XFig, but it is simple to use and requires no special configuration.
It doesn't even require compiling - it's a Tcl/Tk script! Very impressive.
Here are a few screen shots.</font></font>
<br>
<center><table BORDER=0 CELLSPACING=0 CELLPADDING=4 NOSAVE >
<tr NOSAVE>
<td NOSAVE>
<center><img SRC="gm/images/impress-1.gif" height=276 width=559></center>
</td>
<td>
<center><img SRC="gm/images/impress-2.gif" height=308 width=94></center>
</td>
</tr>
<tr>
<td>
<center><b><font face="Arial,Helvetica"><font size=+1>Impress main window</font></font></b></center>
</td>
<td>
<center><b><font face="Arial,Helvetica"><font size=+1>Toolbox</font></font></b></center>
</td>
</tr>
</table></center>
<p><font face="Arial,Helvetica"><font size=-1>The downloadable package
doesn't include much in the way of documentation, unfortunately.
The Web site only contains HTML-ized versions of the documentation that
comes with the package. But this small amount of documentation should
still be enough to get you moving pretty quickly in this package.
I did note that at least one part of the documentation was wrong:
double clicking on the color palette entry in the main dialog doesn't bring
up the color editing dialog. You need to double click on the Fill
button instead. Minor detail. The program still works pretty
good.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>My only question: how
did Chris get those pictures of Tux and the dinosaur into his example?
The dinosaur looks like it might be clip art (vector graphics), but the
Tux image looks like an imported raster graphic. There doesn't appear
to be a raster import feature in the version I have. Maybe its something
under development.</font></font>
<p>
<hr SIZE=1 NOSHADE WIDTH="80%">
<br><u><font face="Arial,Helvetica">KIllustrator</font></u>
<ol>
<li>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Killustrator
requires egcs 1.x OR gcc 2.8 since gcc 2.7.2 is so very broken for C++
code (ie no ANSI compliance). Not a problen on Redhat 5.x, since
the default C++ compiler on Redhat is egcs, and gcc is only for C code,
especially the old stable kernel series. 2.0.x</font></font></font></li>
<li>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>With KDE
installed already on my system, it was a standard source code install with
./configure ; make ; make install working flawlessly. (for 0.6.3 , there
are later versions)</font></font></font></li>
<li>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>It imports
Xfig drawings, apparantly, and exports GIF, eps, ppm, and xpm (it may support
more, but I don't have for instance tiff or png development libraries installed,
so configure may simple have selected to use those installed.) It also
saves to its own (XML?) based format.</font></font></font></li>
<li>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>For running
KDE applications you need the Qt libraries and the KDE libraries, nothing
more. To compile them Qt-devel, and kdesupport packages are needed.</font></font></font></li>
<li>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>For a
full KDE install, install packages in the order Qt, kdesupport, kdelibs,
all others in any order {kdebase, kdegames, kdegraphics, kdenetwork, korgransier,
klyx, kdeutils, kdetoys, kdemultimedia}</font></font></font></li>
<li>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Killustrator
was designed from the start as a KDE application so its unlikely to be
uncoupled. (unlike Gimp, which precedes GNOME). It only needs the kdelibraries
and Qt - it will happily run on any X11 system with them installed. Its
also the vector graphics package for the KDE office suite, and I think
0.6.x is the last release which will have a compile time option of running
without koffice support. (The website might need checked for that one)</font></font></font></li>
<li>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>As its
a koffice application, it can be emabedded in other applications using
the KOM/OP corba orb, which is usable independent of Qt and KDE, so it
may be possible to embed killustrator in another application understanding
KOM/OP. ie as is done throughout koffice (SuSE 6.1 has an alpha release
included)</font></font></font></li>
</ol>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>George
Russell</font></font></font>
<br><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1><a href="mailto:george.russell@clara.net">george.russell@clara.net</a></font></font></font>
<p><font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse:</font></b>
This was very helpful information, especially the bit about what libraries
are needed to run and what libraries are needed to compile KDE applications.
Unfortunately, since it appears that KIllustrator is being tied to another
suite of tools (KDE Office Suite), I doubt I'll try it myself. I
don't need all those other pieces. Maybe they'll be part of the next
full distribution I purchase, in which case I'll take a look at them then.
I just don't feel like downloading huge amounts of stuff I won't really
use anyway.</font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Your
comments about KIllustrator in the Linux Gazette are missleading.
Killustrator isn't "tied to KDE" as you indicate, it runs perfectly fine
on any desktop. KIllustrator, however, uses KDE as application development
framework, which is something completely different.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>This
has nothing to do with "being KDE-aware", it's all about writing applications.
KDE is not just a desktop, it's a set of libraries and tools that makes
it possible to write applications. By asking programmers not to use
modern tools to develop their applications, you force them to re-invent
the wheel over and over again.In the best case this will provide us with
applications similar to xfig and tgif (which both cannot compete with modern
standards). In the worst case this leads to no applications at all.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Come'on,
installing software on linux today means a few clicks in kpackage, that
can't be that hard ;-)</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Matthias
Ettrich <<a href="mailto:ettrich@kde.org">ettrich@kde.org</a>></font></font></font>
<p><font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse:</font></b>
End users don't distiguish between "application development framework"
and dependencies. It's just symantics. KIllustrator is tied
to KDE because you need the appropriate KDE libraries to run the program
and/or compile it. The same is true of the Gimp - it's tied to Gtk.
The difference is that Gtk has been available in most Linux distributions,
and for a number of other Unix platforms, for some time now (at least the
past year). KDE is just now becoming part of most Linux distributions,
which will make grabbing the occassional extra KDE package from the net
a less complex issue in the future.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>This isn't to say KDE is
a problem to deal with, it's just not currently convenient to the end user.
Gnome applications have the same problem. But for users on non-Linux
platforms, for which neither Gnome or KDE are available, these applications
are of no use. It's your choice as a developer, of course.
I prefer to write for any Unix platform, or at least as many as I can reasonably
support.</font></font>
<p>
<hr SIZE=1 NOSHADE WIDTH="80%">
<br><u><font face="Arial,Helvetica">XFig</font></u>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>I read
in your LG article that you could not get xfig to export or print. Is your
problem perhaps that you have not got fig2dev installed? This program
is part of the transfig package (see the xfig docs).</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Yours,</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Jeroen
Nijhof</font></font></font>
<br><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1><a href="mailto:J.H.B.Nijhof@aston.ac.uk">J.H.B.Nijhof@aston.ac.uk</a></font></font></font>
<p><font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse:</font></b>
Looks like that could be the reason. I, indeed, do not have fig2dev
installed.</font></font>
<p>
<hr SIZE=1 NOSHADE WIDTH="80%">
<p><u><font face="Arial,Helvetica">Sketch</font></u>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>I've
just read the new issue of the Linux Gazette and your Graphics Muse column
and I was delighted to see that you investigated the vector drawing programs
available for Linux.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>As
the developer of Sketch, I was somewhat disappointed, as you can imagine,
when I read that you weren't able to install it. The points you raise are
perfectly valid, although most of the problems are caused by misleading
statements in PILs README, I think. I guess that everybody who is not very
experienced with building Python C-Extensions will have similar problems,
and I don't know how many people have given up installing Sketch because
of this.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>In
your column, you write:</font></font></font>
<blockquote><i><font face="Arial,Helvetica"><font size=-1>Sketch requires
Python v1.5.1 or later, the Python Imaging Library, v1.0b1 and Tcl/TK,
version 8.0 or later. To build the Python Imaging Library (aka PIL)
you can't use the RPM version of Python - you have to build the python
distribution from source and install it. This is because you have
to build PIL under the "Extensions" directory of the Python 1.5 directories.</font></font></i></blockquote>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>This is
not true, actually. The PIL README says that you should unpack the archive
in Python's Extensions directory, but you can in fact unpack it anywhere
you like (in your home directory for instance) and build it there.</font></font></font>
<blockquote><i><font face="Arial,Helvetica"><font size=-1>Although I have
Python 1.5 installed on my stock RH 5.2 box, there is no Extensions directory.
Plus, if I just made the directory where 1.5 is installed (/usr/lib/python1.5),
I'd have to build the PIL as the root user. Not a good thing.
So I downloaded the Python 1.5 source, built it, then tried the PIL buid.
It didn't work - something about missing a config directory.</font></font></i></blockquote>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>You don't
need the Python sources to build the PIL as long as you have a complete
installation of the Python interpreter and the C-header-files, libraries
and configuration files. RedHat has split Python into several packages.
The header files and configuration files are in the python-devel rpm, as
far as I can tell (I don't use RedHat, but I had a look at their ftp server),
so if you install that rpm you should be able to build PIL with these commands:</font></font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>% tar xvzf Imaging-1.0b1.tar.gz</font></font>
<br><font face="Arial,Helvetica"><font size=-1>% cd Imaging-1.0b1/libImaging/</font></font>
<br><font face="Arial,Helvetica"><font size=-1>% ./configure</font></font>
<br><font face="Arial,Helvetica"><font size=-1>% make</font></font>
<br><font face="Arial,Helvetica"><font size=-1>% cd ..</font></font>
<br><font face="Arial,Helvetica"><font size=-1>% make -f Makefile.pre.in
boot</font></font>
<br><font face="Arial,Helvetica"><font size=-1>% make</font></font></blockquote>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>and install
it under /usr/lib/python1.5/site-packages as described in the PIL README.
After that, installing Sketch itself should be simple, I hope :)</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>All
in all, I have to thank you for the article. As a developer, it's difficult
to guess where user's may have problems and the information you provide
is exactly what I need to make Sketch easier to install.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>I really
hope that you give Sketch another try and perhaps write about it and the
other programs again in a future graphics muse column.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Bernhard
Herzog <<a href="mailto:sketch@online.de">sketch@online.de</a>></font></font></font>
<p><font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse:</font></b>
Attention developers - this is <u>exactly</u> the way you should respond
to end user and press criticisms! I applaud Bernard for taking my
issues to heart and offering such useful feedback. I hope, for my
own projects, that I reply to criticisms' in the same professional and
meaningful manner.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Oh, and Bernard's feeback
was perfect. I managed to get things running pretty quick with his
help. Note that he is correct about the Red Hat RPMs - if you are
using the Red Hat 5.2 distribution you may not have automatically installed
the Python development package, which you need to build PIL. You'll
know this is the case if you try to run the Makefile.pre.in step (above)
and get a message about</font></font>
<blockquote><tt><font size=-1>No rule to make target `/usr/lib/python1.5/config/Makefile</font></tt></blockquote>
<font face="Arial,Helvetica"><font size=-1>That would be because the "config"
directory for Python only gets installed (using RPMs) with the <a href="http://rufus.w3.org/linux/RPM/redhat/5.2/i386/python-devel-1.5.1-5.i386.html">python-devel-1.5.1-5
RPM for i386 </a>package. Don't forget to also install the three
header files from PIL into the python include directories. The INSTALL
file for Sketch describes this simply enough. After getting the Python
development package and Python Imaging Library installed, the build for
sketch was very simple. Just folllow the steps in the README.
Sketch itself is easy to build. It's all the bits and pieces it requires
from Python that were a bit of a pain to get going.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>One other thing: make
sure you build with the 0.6.0 version. I tried with an earlier 0.5.5
version and had some build incompatibilities with my Python 1.5.1 installation.
You can get around these easily enough, but its even easier if you just
grab the 0.6.0 (or later) source code.</font></font>
<center>
<p><img SRC="gm/images/sketch.gif" VSPACE=10 height=424 width=583></center>
<p><font face="Arial,Helvetica"><font size=-1>Sketch's interface is fairly
simple to learn. Unlike TGIF or XFig, Sketch is more of an artists
tool, something like Adobe Illustrator (it even reads and writes Illustrator
files!). I wouldn't really put sketch in the same category as the
other two - they seem meant for different uses. Being more of an
artist (or at least a wanna-be artist), I really liked Sketch. Once
I managed to get it running.</font></font>
<p>
<hr SIZE=1 NOSHADE WIDTH="80%">
<p><u><font face="Arial,Helvetica">And just a little praise...</font></u>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>This
is a letter from a real Graphics Muse fan! You are doing a great
job with your column in the Linux Gazette, and all that monthly.
Congratulations!</font></font></font>
<p><font face="Arial,Helvetica"><font size=-1><font color="#993300">'Muse:</font>
Thanks!</font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Sometimes,
I think of contributing more to the Linux community myself, but my daytime
job eats up most of my time/energy. How can you make such a neat
article every month? Where do you get your energy from? Kryptonite?
:-)</font></font></font>
<p><font face="Arial,Helvetica"><font size=-1><font color="#993300">'Muse:</font><font color="#000000">
No, but a lack of anything that remotely resembles a social life helps.
As for your contribution to the cause - you're making it now, by providing
feedback to me. Don't underestimate the importance such feedback
plays.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Why
I'm really writing this letter...</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>In
[last] month's Gazette you compare tgif and xfig. In brief:
Well done. Great job! I liked especially the sentence that
your preference towards tgif is _not_ mirrored in the numerical "test"-result.
If every software comparison/test were done so carefully, we would have
far fewer flame wars in the news groups.</font></font></font>
<p><font face="Arial,Helvetica"><font size=-1><font color="#CC0000">'Muse:
</font><font color="#000000">Maybe,
but human instinct is toward clarification from the point of view of the
reader. Which means argument is almost guaranteed at some point (at
least between relatively intellectually motivated individuals). But
I digress.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>As
I am a long-time (old-time?) user of both programs, I just want to add
some fine points to your careful judgment. Why the heck would you
want to use both? Well, once you are in the boat, you must row.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Almost
all of the documents I produce are typeset with LaTeX. From time
to time I have to include simple drawings. Now, because TeX produces
such wonderful looking documents, the graphics have to match that.
This means all the text (e.g. labels, legend) in a graph must be typeset
with TeX. Using fonts from a different family does not look good.
The problem is that TeX's graphing capabilities (i.e. the picture-environment)
are very limited. What the user wants is the full power of Postscript.
That said, xfig and it's companion programs transfig, and fig2dev are a
blessing. They allow for exactly what I have been describing.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>The
typical data-flow looks like this:</font></font></font>
<p><tt> editor
TeX
dvips</tt>
<br><tt>|-------> doc.tex ---------------+----> doc.dvi ---+----> doc.ps</tt>
<br><tt>
^
^</tt>
<br><tt> xfig
fig2dev |
|</tt>
<br><tt>|-------> graph.fig ----+---> graph.tex
|</tt>
<br><tt>
|
|</tt>
<br><tt>
+---> graph.ps ----------->+</tt>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>The
dependencies between the files are automatically updated with a Makefile.
OK, now you know why I am stuck with xfig: it is the only program that
can separate the text-output (read: TeX) from the graphic-output (read:
Postscript).</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Enter:
Postscript files.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Imagine
a colleague walking in and saying: "We should include one of these fancy
XYZ [insert program name yourself] outputs, you know that thing can produce
Postscript-files." Oh, oh -- this is bad news.</font></font></font>
<ol>
<li>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Sad but
true Postscript is not always Postscript. Some software has a very
particular idea of what makes up the Postscript-standard.</font></font></font></li>
<li>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Sure,
the program's output looks fancy, but it cannot be published without some
editing. How to edit a Postscript file? Lucky if you have Wolfgang
Glunz's pstoedit [currently version 3.03]. <i>pstoedit</i> translates
a ps-file with the help of ghostscript into a tgif-compatible file.
For a long time pstoedit's tgif-driver was the only one leading from un-editable
Postscript back to an editable format. Later it was the best driver
to do that. Today the xfig-driver does as well as the fig-driver.
But I started editing my ps-files a long time ago, and that is why I am
using tgif. Once upon a time I was the only tool to do what I needed.</font></font></font></li>
</ol>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>You see,
the stories behind the usage of this tool or that tool can be quite convoluted.
The numbers of an "arbitrary" test may not tell you what you need.
Therefore, your xfig versus tgif comparison is a shining example of how
to write about performance, usability and all that.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Christoph
L. Spiel</font></font></font>
<br><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>cspiel@ccmr.cornell.edu</font></font></font>
<p><font face="Arial,Helvetica"><font size=-1><font color="#993300">'Muse:</font>
All very good points! So often we measure tools objectively, using
what we think are absolute comparisons of speed or performance. But
we often fail to measure the seemingly intangible value of comfort that
lies within a tool for the individual user. Perhaps we should look
at software less as abstract pieces of pseudo-machinery and more as extensions
of our daily lives. We give life to our automobiles by referring
to them as "she". And if that automobile provides no comfort, then
it has limited value to the owner. Comfort, it seems, should be an
intrinsic part of our measurements of a software tool's usefulness to the
individual.</font></font>
<br>
<hr SIZE=3 NOSHADE WIDTH="100%">
<br><a NAME="A Little Eye-Candy, Please (continued)"></a><b><font face="Arial,Helvetica"><font size=+1>A
Little Eye Candy, Please (continued)</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>In my fvwm-menu file I've
added the following entries to run xscreensaver:</font></font>
<p><tt><font size=-1>AddToMenu XScreensaver "Screen Saver"
Title</font></tt>
<br><tt><font size=-1>+ "Matrix"
Function ScreenSaverMatrix</font></tt>
<br><tt><font size=-1>+ "XSaver On"
Function ScreenSaverOn</font></tt>
<br><tt><font size=-1>+ "XSaver Off"
Function ScreenSaverOff</font></tt><tt><font size=-1></font></tt>
<p><tt><font size=-1>AddToFunc ScreenSaverMatrix</font></tt>
<br><tt><font size=-1>+ "I" Exec
exec xscreensaver -no-splash &</font></tt>
<br><tt><font size=-1>+ "I" Exec
exec xscreensaver-command -select 1&</font></tt>
<p><tt><font size=-1>AddToFunc ScreenSaverOn</font></tt>
<br><tt><font size=-1>+ "I" Exec
exec xscreensaver -no-splash &</font></tt><tt><font size=-1></font></tt>
<p><tt><font size=-1>AddToFunc ScreenSaverOff</font></tt>
<br><tt><font size=-1>+ "I" Exec
exec xscreensaver-command -exit&</font></tt>
<br><tt><font size=-1>+ "I" Exec
exec xset s on</font></tt><tt><font size=-1></font></tt>
<p><font face="Arial,Helvetica"><font size=-1>The first entry, Matrix,
will run only the xmatrix screensaver immediately and leave it running.
The second entry just starts the screensaver using the first entry in my
programs list in $HOME/.xscreensaver and allows it to cycle through the
list. This also starts only when the configured inactivity period
has expired. The last entry shuts xscreensaver off and returns my
X servers screen blanker back on.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>The three programs that come
with xscreensaver - the xscreensaver daemon, xscreensaver-demo and xscreensaver-command
- also include extensive man pages in HTML format. It seems
a bit odd that there are som many options for something as simple as a
screensaver, but they are all useful options. Be sure to read through
the documentation before trying to set up running the screensaver from
your window manager as I have done in the examples above.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Some of the other intersting
hacks I have configured are:</font></font>
<center><img SRC="gm/images/decayscreen.jpg" VSPACE=10 height=432 width=576>
<br><b><font face="Arial,Helvetica">Decay Screen</font></b>
<p><img SRC="gm/images/spotlight.jpg" VSPACE=10 height=176 width=252>
<br><b><font face="Arial,Helvetica">Spotlight</font></b><br CLEAR=BOTH>
<BR>
<br><img SRC="gm/images/radar.jpg" VSPACE=10 height=432 width=576>
<br><b><font face="Arial,Helvetica">Radar</font></b></center>
<p><font face="Arial,Helvetica"><font size=-1>It's just a fun thing to
play with, not much else really. If you dig into the code for some
of these hacks (and xscreensaver itself), however, you might just learn
quite a bit about how low level graphics work under X.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Enjoy!</font></font>
<br>
<table WIDTH="100%" >
<tr>
<td VALIGN=TOP COLSPAN="4" BGCOLOR="#000000" cellpadding="0" cellspacing="0"><img SRC="gm/images/cleardot.gif" ALT="indent" align=LEFT></td>
</tr>
</table>
<table WIDTH="100%" >
<tr>
<td ALIGN=RIGHT><font size=-2>© 1998 by <a href="mailto:mjhammel@graphics-muse.org">Michael
J. Hammel</a></font></td>
</tr>
</table>
<br><img SRC="gm/images/webwonderings.jpg" height=50 width=245>
<table WIDTH="100%" >
<tr>
<td ALIGN=RIGHT WIDTH="100%"><font size=-2>© 1999 <a href="mailto:mjhammel@graphics-muse.org">Michael
J. Hammel</a></font></td>
</tr>
<tr>
<td VALIGN=TOP BGCOLOR="#000000" cellpadding="0" cellspacing="0"><img SRC="gm/images/cleardot.gif" ALT="indent" align=LEFT></td>
</tr>
</table>
<table WIDTH="100%" >
<tr>
<td VALIGN=TOP COLSPAN="4" BGCOLOR="#000000" cellpadding="0" cellspacing="0"><img SRC="gm/images/cleardot.gif" ALT="indent" align=LEFT></td>
</tr>
</table>
<table WIDTH="100%" >
<tr>
<td ALIGN=RIGHT><font size=-2>© 1999 by <a href="mailto:mjhammel@graphics-muse.org">Michael
J. Hammel</a></font></td>
</tr>
</table>
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Linus at Fermi Lab</font></H1>
<H4>By <a href="mailto:adler@bnl.gov">Stephen Adler</a></H4>
</center>
<P> <HR> <P>
<br>
<table align="left">
<tr><td>
<img src="gx/adler.fnal/comdex9977Small.jpg" align="center" hspace=20 vspace=10>
<caption align="bottom">
<font size=-1>
FNAL main building. It's 5:28pm and I'm rushing to get to Ramsey
Auditorium, which is through and on the other side of the main
building.
</font>
</caption>
</table>
<table><tr><td>
<center>
<img src="gx/adler.fnal/comdex9992Small.jpg" hspace=20 vspace=10>
</center>
<tr><td>
<br>
<font size=+1>
<center>
<b>Linus at Fermi Lab</b>
</center>
</font>
<tr><td>
<br>
<br>
<font size=-1>
Authors note: Slashdot posted this page on their site but the article
really starts at <a
href="http://ssadler.phy.bnl.gov/adler/Torvalds/comdex99.html">http://ssadler.phy.bnl.gov/adler/Torvalds/comdex99.html
</a>. It's an introductory page which puts my FNAL and Comdex write-up into
perspective. If you are only interested in what Linus had to say at FNAL,
then just read on.
<P>
Editor's note: In the original article on Adler's website, many of the
inline images display a larger copy of themselves when clicked on. These
larger images are not included in the <EM>Linux Gazette</EM> version, to
keep the total size of the <EM>Gazette</EM> small.
</font>
</table>
<br clear="left">
<hr>
<center>
<table>
<tr><td>
<img src="gx/adler.fnal/comdex9997Small.jpg" hspace=20 vspace=10>
<caption align="bottom">
<font size=-1>
A clear day for flying. Long Island Islip Airport lies ahead.
</font>
</caption>
</table>
</center>
<p>
April 19th, the day of Linus's talk at FNAL, dawned to be a gorgeous
day on Long Island. I'm going to fly Southwest, the 1:20pm flight,
through Baltimore, and transfer to the Chicago Midway flight. I'm to
arrive in Chicago at 4:30pm. Linus's talk is scheduled for
5:30pm. Trying to get my reservation setup to fly out to Chicago was a
mess. Originally, Linus was scheduled to talk at 7:30pm. And I planned
my flight scheduled around that. (4:30pm arrival, 7:30pm talk, no
problem.) But, that changed when I got a message about Linus's talk
being rescheduled. By then I had no choice except brave the tight
time table. So, I had a relaxing morning, enjoying some quality time
with my wife. Flight time came and off to the airport I go. With such nice
weather, all flights were on time. (The Free Software Gods were
looking after me...)
<p>
<img src="gx/adler.fnal/comdex9996Small.jpg" hspace=20 vspace=10 align="right">
4:25pm arrives, the plane wheels up to the midway terminal gate, and
bam, I'm off running. Those 1970's or 80's commercials of OJ Simpson
running through airports was the title theme of my thoughts at the
time. (Where is the running lane!!!) I hit the National Car Rental
booth. Two rather relaxed attendants are shooting the breeze. I
quietly but firmly tell one of them that I have a rental
reservation. ("Get me my car <b>now</b>!!!") The attendant gets a little
nervous, shuts up and starts processing my car rental. The rental cars
are located in an adjacent parking lot just out side the main terminal
building. No need wait for a bus to take me to the car rental lot,
(again, the Free Software Gods are looking over my shoulder...) Within
10 minutes after landing, I'm in my car looking for a way out of the
airport. For those of you familiar with the Chicago area, I got on I-55
south (south west really...) to I-355. I-355 north to I-88 west. Turn off
on 59 heading north. From there you hit Batavia rd west and bang, your
at the FNAL main building. 4:45pm, on I-55. 5:00pm 355 north, 5:08 I-88
west. 5:18pm 59 north. 5:20 pm Batavia rd. 5:25pm FNAL main
building. 2 minute walk to Ramsey Hall, site of Linus's talk. (Mind
you I did not break any traffic laws. The Free Software Gods will
attest to that. You can take the issue up with them.)
<p>
<br clear="right">
<table align="left">
<tr><td>
<img src="gx/adler.fnal/comdex9991Small.jpg" hspace=20 vspace=10>
<caption align="bottom">
<font size=-1>
My first shot of Mad Dog. Dan Yocum is on the left and G P Yeh on the
right.
</font>
</caption>
</table>
Ramsey hall is an elegant auditorium. It has a red motif to it. Red
carpeting and seating is the cause of that. Many a physicist have given
talks in this auditorium, including <a
href="http://www.amazon.com/exec/obidos/ASIN/0553380168/o/qid=924795188/sr=2-1/002-2436774-1420814">
Stephen Hawking</a>. Now it's Linus's turn. The guy who organized this
event is named Dan Yocum. He wrote to me in an e-mail that it was easy
to get Linus to come out to FNAL. He e-mailed Mad Dog an
invitation. ("It's easy, I just asked!") I
later learned that Linus and Mad Dog had a rather thorough tour of the
Lab. This included some accelerator facilities, one of the large
collider detector facilities (CDF) and the computing center. Now it
was Linus's turn to entertain some question from the audience. In
some e-mail exchanges with Dan, I told him that I may not make it to
Linus's talk and that his Comdex keynote address would probably be
very similar. Dan replied telling me that Linus hates speeches. His
plan was to make this a question and answer session. He wanted to hear
from the physicists and not to hear himself talk.
<br clear="left">
<p>
<table align="right">
<tr><td>
<img src="gx/adler.fnal/comdex9990Small.jpg" hspace=20 vspace=10>
<caption align="bottom">
<font size=-1>
Linus sitting amongst curious Ph.D. graduate students answering
questions before his talk. This shot was taken seconds after I saw
Linus for the first time.
</font>
</caption>
</table>
You have to walk through FNAL's main building to get to Ramsey. I got
there, went down to the front seats so that I could get a good
position from where to take some snaps of Linus giving his talk. I
put my notebook down and looked around to see if Linus was around. I
was sitting on the right side of the auditorium. I looked over to the
left and noticed a cluster of people. The first one who stood out was
this guy with rather long beard, and frizzy white hair. It took a
minute, but soon realized he was "Mad Dog". Out comes the camera and I
walk (rush?) over to the left side of the auditorium, go right up to
Mad Dog and take his picture. He looked at me like, who the hell are
you! I waved at him or something to try and let him know that I'm a
friendly guy, not this weirdo maniac running around taking pictures
of strangers. I then turn to my left and sitting amongst a bunch of
young guys, I see Linus. I remember the phrase going through my head,
"There his is, Linus". He didn't notice me, he was too busy talking to
the guys who were sitting next to him. Again, I take my camera, try and
get as close as I can, zoom in and snap, I take another picture. I'm
in this rather "fanatic" state right now. I'm not really thinking
clearly, and all I can seem to do is take pictures of the guys who in
reality are total strangers. I stand around and try and take some more
pictures. I then go over to Mad Dog, introduce myself, give him my
card and ask a bunch of dumb questions he really does not want to
answer. Finally, my mental state settles down a bit, and I manage to
get myself back over to my side of the auditorium from where I sit
down, take out my note book, clear my head, and try to take some
sensible notes of the talk.
<br clear="right">
<p>
<img src="gx/adler.fnal/comdex9989Small.jpg" hspace=20 vspace=10 align="left">
With that, Dan Yocum gets up, and starts the standard Fermi Lab/Ramsey
Hall tradition in introducing speakers. He introduces John Hall, and
in turn John introduces Linus. (I've seen it worst at BNL where there
were 4 introductory speakers ...) John gets up and starts in with this
story about how he met Linus 5 years ago at a DECUS meeting in New
Orleans. He gave some specifics about getting Linus's trip financed,
(I thought I had it tough) and then some detail of Linus at the New
Orleans convention. The one bit of John's introduction which stuck in
my mind was his piano analogy. If one sits down to play a piano, the
pianist can get a feeling for the quality of the piano as he plays
it. A rough piano has a rough feeling, a great piano has a great
feeling. It's in the touch. At the New Orleans conference, a Linux
installation was underway, I believe headed by Mad Dog himself. He
heard a voice over his should saying "Can I help you?". It was Linus,
offering assistance in getting his Linux kernel up and running. Mad
Dog tells the audience that within about 10 minutes, with Linus's help,
Linux was up and running. (I can't remember if Mad Dog mentioned the
hardware specs of this machine.) In any case, Mad Dog, keyboarding on
this machine, was getting that first feel of Linux. 10 minutes later
he made a mental note. Linux was going to be inevitable. It has that
feel of a great piano. He continues on to talk a bit about his
relationship with Linus which is clearly a deep one. With that, he
ends and Linus comes up on stage to start his talk. Or rather his
question and answer session.
<p>
Linus starts by saying he does not like podium and thus will not stand
behind one for this Q&A session. He has this wireless mike which Dan has
hooked him up with. I also notice that the FNAL media guys are
recording this session for posterity, so if you don't like my write-up,
you can contact them to get a full playback of Linus's talk. In
any case, Linus starts off with a very brief history of Linux. It was
1992(?), he had a PC, but there was no Unix available for it. Since,
and I quote "he was the best programmer since Jesus," he would fix
that. He would write his own Unix like OS. So off he went and wrote
it. The concept that need fosters development was key in getting the
Linux kernel going and has been key through out all of its
development. And then he did something which was, as he says, the
most important decision of his life. He posted the code on the
Internet, via some news group and asked for feedback. That he got. He
expected people to download his code, run it and tell him whether it
works or not. "Linus, this really sucks!" He got some of those
responses; but more importantly, he got code back in the form of patch
fixes and enhancements. And from then on it was history. With that he
ends his introductory talk and starts in on the questions.
<p>
Dan Yocum starts it off by asking about the 2.3 kernel and/or plans
for large files systems (i.e. file system journaling.) A good question,
since in High Energy and Nuclear Physics there is a big need now for
this type of file system. Petabytes of data will soon be recored and
file systems which can handle this type of data load will be
necessary. (Maybe not a petabyte file system, but terabyte file systems
will be a must.) Linus's answer to that question was that up to this
point, large files systems were not an issue. He reminded us that back
in the days when he was starting the kernel, there was a 64 Meg
partition limit which he had to solve. He then said something about
how new users bring new problems and how this was the "development
model" for the kernel.
<br clear="left">
<p>
At this point my notes get rather fuzzy so I'm just going to
paraphrase from what I can decipher from them.
<p>
Someone asked about security issues with Linux. Linus said that people
are keeping after the bug fixes. From my personal experience with Linux
and the Red Hat distribution, this is the case.
<p>
Someone asked about addressing more than 2 Gigs on a 32 bit
system. His answer was to use a 64 bit machine. Linux is fully 64 bit
compliant.
<p>
There was a complicated SMP question to which the answer was that 2.0
and to some extent 2.2 are really a single spinlock SMP
implementation. Linus will work on making it more fine grain.
<p>
<img src="gx/adler.fnal/comdex9987Small.jpg" hspace=20 vspace=10 align="right">
He then talked about how one should not design for the theoretical
perfect implementation since this will screw up another
implementation. The kernel lives in a world of diverse needs and one
needs to try and fit them all in. Therefore no one need gets all the
attention but all needs are tended to some extent. This type of
clear-headedness of Linus is an indication to me as to why the kernel
has gotten as far as it has.
<p>
There was a question about capabilities. I believe this is like
splitting up the super user function into separate users through
access control lists. Theoretically it's a good idea, but in practice
it's too complex. Most of the time, one sets up the system in the wrong
way, making it less secure. He claimed it's a feature which needs to be
added to Linux just so that one can check it off on the "Linux can
do this" matrix, but then have a README on how to disable it.
<p>
Someone asked the copyright question. Linus talked about the license
he released his original kernel code under. Basically, its intent was
that anyone could use it, distribute it and modify it. But the
modifications had to be freely distributable as well. The people were
starting to sell the Linux kernel at computer shows by charging a
couple of bucks for the floppies. They asked Linus if this was
OK. Clearly, Linus said that it was obviously OK, since he wanted the
code to be distributed and could not expect people to lose money on
the distribution cost. So he modified his license. I'm not sure
whether he modified his license further, but the fact is that he
eventually switched over to the GPL license. He said that it was an
awful piece of legalese but it fulfilled all his requirements. Also,
the one bit of software which it really depended on was the GNU C
compiler. That played a role in the adoption of GPL for the Linux
code. Again, the main emphasis was that the source code had to be
available to the "community" as well as the modifications, which were
brought back into the Linux source repository.
<p>
A question on the Merced was asked. Linus said he would not sign any
Non-Disclosure Agreements. The reason for this is that he does not want
to be put in the situation where he cannot release his source code due
to conflicts with an NDA. A very wise choice on his part. He lets
others sign the agreements, which has been done by others. Notably,
there are some people at CERN who are working on the Merced
port. Linus defended Intel's move on asking for NDA's to be signed. It's
done so that Intel can keep control over the flow of the technical
information into the public domain. Once the CPU has been fully
released by Intel into the "market," then they certainly want every one
to know how to use it. But before that, it's clear that they need to
keep their specs under wraps to keep the competition at bay. The big
problem with the Merced is in the compiler technology sector. All the
kernel needs is a version of gcc that will generate
a Merced executable. It's up to the gcc guys to get it to generate
Merced instructions. Linus is confident that once gcc is
ready, which should be by the time the Merced is released, then the
Linux port will follow within a couple of days or weeks.
<p>
Someone asked what is better, one really fast CPU or many not so fast
CPUs. Linus's answer was that the best SMP system for the Linux kernel
is a dual CPU one. If one were to build a Beowulf type cluster, one
should do so using a set of dual CPU systems.
<p>
There was a question about SVGAlib -- what its viability was for the
future. Linus's response to that was that 2 or 3 days after working
with X11, he decided never to go back to console mode. All he needs,
graphics wise, is to have 15 xterms open with the kernel compiling in
one of them. He kept reminding the audience that all he really likes
to do is compile the kernel. The fvwm2 window manager coupled to 15
concurrently opened xterms was all the graphics functionality he
needed. This question was one directed towards games. He said that
there was a good OS for running games called Windows. He claimed that
MS admitted to the fact that they could not write an OS very well and
basically kept out of the way of the software games developers by
letting them take over the system when the game app was active.
<p>
A question was asked about how he decides whose code is to be included
in the kernel. He said that drivers were no-brainers. Since the code sits
outside the kernel, he tends to include them without much
thought. When it comes to adding something that exists in kernel
space, then his main requirement is that there be at least one person
who will take charge in maintaining it. My take on this is that items
like the TCP stack or the kernel version of NFS etc. are coordinated
and maintained by someone besides Linus.
<p>
<br clear="right">
<img src="gx/adler.fnal/comdex9981aSmall.jpg" hspace=20 vspace=10 align="left">
A question was asked about the recent benchmark comparison between NT
and Linux. The
<a href="http://www.mindcraft.com/whitepapers/nts4rhlinux.html">
benchmark</a> was done by Mindcraft, and the results showed that Linux
was 2 or 3 times slower at file and web serving than NT. There was an
interesting story behind this. Linus was paneling on a session down
in Atlanta. There was a Microsoft representative on the panel. Linus
was presented with this benchmark report from Mindcraft, who seem to
have a lot of credibility in the IT world regarding doing
benchmarks. The report was presented to him just as he was sitting
down at the panelist table. This left Linus in a rather awkward
position of having to defend Linux against NT with this Microsoft Rep on
the same panel and not having any time to digest these benchmarks. It
turns out later that this company specializes in Microsoft OSes and
has done a series of benchmarks comparing NT with Solaris etc. All the
benchmarks come out in favor of NT and the large Unix companies (Sun
etc.) have to mount a PR campaign to refute the results. Linux in this
case has no corporate machine backing it up with resources to fight
back. What surprised Linus was that the journalists came out
defending Linux. It was the journalists who came out questioning the
validity of this Mindcraft benchmark. As of this time, it seems that
the benchmarks are going to be performed again, this time with an
equally well-tuned Linux system.
<p>
Someone asked him if he ever has talked with Bill Gates. His reply was
that, no he has not, but if he did, he would "be talking money." (His
palms rubbed together as he was finishing his answer.)
<p>
More questions on benchmarks. The conclusion to his answer on
benchmarks is that the best benchmark is your own application. It's not
easy since this requires the vendors to give you access to their
hardware and you have to do some porting. The bottom line is that your
own application is truly the best benchmark.
<p>
Someone asked about frame buffers or rather how one could get a DVD
app ported to Linux. Linus said that most of the work is in setting up
the hardware. Once done, the hardware takes care of getting the DVD
imagery onto the screen. The trick is to get this to interface to
X11. He didn't seem to have any immediate plans on taking on this
project. Also he mentioned that DVD encryption is a trade secret. I
assumed this means that an open source application would be difficult
to implement.
<p>
Someone who works at Lucent asked a question related to drivers for
modems made by Lucent. The question lead to a discussion about how one
can get companies to release the specs of their hardware. Linus made a
point about how sometimes it's not a question about keeping the
engineering design behind some gizmo a secret and thus keeping a market
advantage. But rather one wants to keep secret the bad engineering
that went into making the gizmo. He hypothesized an example of a gizmo
that in order to get it to run, you need to write to xyz registers in
some specific order, then toggle some interrupt lines, followed by
holding the reset bit in the CSR high for 30 clock cycles
etc. etc. This kind of kludgey design is the real reason behind not
releasing specification. It's all hidden in the binary version of the
driver.
<p>
Someone asked about UDI, Unified Driver Interface. Linus replied that
it's in the Nice Theory stage but he is keeping an open mind about
the idea.
<p>
<img src="gx/adler.fnal/comdex9982Small.jpg" hspace=20 vspace=10 align="left">
Some question was asked which led to some interesting statements by
Linus. This regards software development through Internet
collaboration. Talk is very cheap, and he never takes anyone at face
value. The best way to collaborate with Linus is to show him code
that works. That is what he want to see. Otherwise, my guess is that
unless your ideas are of obvious importance, they will go ignored.
<p>
A question came up about GUIs. He as no interest in GUI design or
interfaces, and has no influence in current GUI theological
discussions ongoing right now. (My guess is that this refers to
GNOME vs. KDE type of theoretical friction.) He is happy using fvwm2
and his 15 xterms to apply patches to the kernel and rebuild it again
and again.
<p>
I asked a question about how he maintains the Linux source
repository. I wanted to know if he used CVS. His reply was that he has
his own method. I should think of it as lovingly hand-crafted
maintenance of the kernel source. He does not use CVS because he does
not need it. He is the only one who applies patches or updates the source
code, and he does not care to use the history logging mechanism CVS
provides. He does use CVS at work, so he knows what it's capable of
doing, but chooses not to use it.
<p>
By this time we started to run out of time, and a few more questions
were asked. From these questions, the following general statements
were given by Linus. MS is a good OS for running games. The bottleneck
in the development cycle of the kernel was the users. A project
should never grow beyond the scope of what can be kept in one person's
head. My take on this is that the kernel is broken up into many
"projects," each one with a leader in charge of it. And whatever that
one person is in charge of, he must keep the whole concept and source
code layout/structure/functionality in his head. Keeping "things"
modular is the Unix way.
<p>
Developers grow linearly, while the users
exponentially. The users of Linux have grown by 7 orders of magnitude,
and his goal of global domination is only 2 orders of magnitude
away. "What's 2 orders of magnitude after growing 7..." (Global
domination is in reach.) Avoid black and white when trying to solve a
problem. There is never a silver bullet which can be applied to a
project or problem to "fix it".
<p>
<table align="right">
<tr><td>
<img src="gx/adler.fnal/comdex9980Small.jpg" hspace=20 vspace=10 align="right">
<caption align="bottom">
<font size=-1>
Linus, Dan Yocum, and G P Yeh. Dan works in the FNAL IT department
providing Linux support to anyone who needs it at FNAL and
G P on CDF working on "event builders" for CDF. A bunch of Linux boxen
tied together with an ATM switch.
<font>
</caption>
</table>
The next great challenge for Linux is
to conquer the desktop. When it comes to servers there is no
loyalty. Servers are black boxes that sit in windowless rooms and
are used to serve files and printers etc. As soon as a newer, better
server comes out, the old one is replaced. No questions asked. This is
one of the reasons why Linux has been able to penetrate the server
market. It's the easiest one to crack. The desktop is totally
different. There are very strong loyalties attached to desktops. If a
new, better desktop comes out, people tend to get their shotguns out to
defend their old, not-so-good technology, often resorting to falsehoods
in order to defend them. Linus wants people to get used to using
Linux for their desktop. Linus also wants to see the day when he can
walk into CompUSA or equivalent store and find that one has a choice in
the OS one wants to run on their new PC. He does not want to see one
default OS, and does not want people to default to Linux either.
<p>
Linus concluded with the statement that there has always been a
physical invariant regarding building his kernel. This being 12
minutes. It always took 12 minutes to compile the kernel. When he
started out with his 386, it was 12 minutes, when he moved up to a
66MHz 486, the code has grown such that it still took 12 minutes. The
growth of the code and the speed up of the Intel technology kept pace
with each other such that the kernel compile time always took 12
minutes. This has changed recently. With his quad CPU development
system, it now takes him 73 seconds to build the kernel. He admitted
that the hardware development has now been recently out-paced his
software (kernel) development.
<p>
With that, a physicist from FNAL named G P Yeh, who is one of FNAL's
strongest Linux advocates, closed the session by thanking Linus for
all his work. FNAL is now using Linux in a <em>big</em> way to process all
the data coming out of the large collider detectors that will start
taking data within a year or so. The data rate from these detectors is
expected to increase 200 fold from the last time they took data. This
is due to an upgrade to the Tevetron called the Main Injector. It's
designed to increase the proton flux by <em>a lot</em>, and thus 200 times
more data will flow out of the detectors. Linux will play a big part
in analyzing all this data. (I can attest that Linux is playing a big
role at BNL as well. It will be used on about 500 processors to
analyze the data coming out of the 4 detectors being built for the
Relativistic Heavy Ion Collider. The RHIC is scheduled to turn on
this summer, and by this coming winter the Intel Linux farm will
start its first production data processing.)
<p>
<center>
<table>
<tr><td>
<img src="gx/adler.fnal/comdex9983Small.jpg" hspace=20 vspace=10>
<caption align="bottom" width=80%>
<font size=-1>
The audience crowds Linus after his talk.
</font>
</caption>
</table>
</center>
<p>
<img src="gx/adler.fnal/comdex9984Small.jpg" hspace=20 vspace=10 align="left">
With that final congratulatory announcement, the talk came to an
end. People got up and scattered about. I headed over to the left side
of the auditorium where Linus and Mad Dog were located. Linus was
surrounded by people asking questions. I was out of earshot, so I
could not listen to the back and forth between the guys and Linus. I
did get a chance to get over to Mad Dog and reintroduce myself. My
intent was to invite him out to BNL if and when he and/or Linus got
out to NY. I'm not sure if Mad Dog is interested in seeing yet another
collider facility, but he did encourage me to try and contact the
Bizzar Show people and set up a talk or panel. Something with a topic
along the lines of Linux in Physics. I told him I could do that, and
I'll try to follow up with the organizers of the Bizzar. I then hung
out with the Linus crowd for a bit, taking a couple of pictures. There
was this one guy who had on a tee shirt with an Intel logo announcing
the i80666 CPU. The phrase "Runs hotter than
hell" was written underneath. Linus told the guy he like his tee
shirt. This guy then took off his shirt so that Linus could see the
back of his tee shirt. It sported a picture of Bill Gates with horns,
looking like the devil. After another snap or two, I had my chance to
introduce myself to Linus. I gave him my business card (not that I
do any business, it's more like an identity card), and thanked him for
his work on Linux because it's made our lives some much easier. He
replied saying that he did not do it for me, he was just doing it for
himself and the users are just a big pain. "Yeah", I replied, "Users
are loosers..." I was a bit flush as I was talking to him, I really
don't know what I was saying. The fact of the matter is, Linux has made
my life a lot more complicated. Ever since I installed Linux on my
first PC 3 years ago, (built from parts bought at a computer show),
I've been so tied up in this Linux Open Source thing, and it's become
such a central theme in my work, that I can hardly say it's made my
life any easier. It's made it more fun, and it has save BNL and FNAL a
lot of money. It has saved millions of dollars at FNAL alone. But as I
said, I really wasn't thinking straight since I was talking to Linus for
the first time in my life.
<p>
<br clear="left">
<img src="gx/adler.fnal/comdex9986Small.jpg" hspace=20 vspace=10 align="right">
So I've had my chance of meeting Linus and Mad Dog. I must say that
Mad Dog comes across as a very serious, level headed guy. It's hard to
imagine someone with such a fantastic beard being so calm and
decisive. My guess is that he has to be in his line of work at DEC
(now Compaq?). I would also venture to guess that once you get to know
him, and he gets to know you, if you manage to get a beer in his hand,
then you're in for a ruckus of a good time. Linus impressed me as being
very down to earth. He is not aloof and was willing to take time to
talk to those interested in talking to him. He was very generous with
his signatures at the end of his talk. He also impressed me as someone
who has a practical approach to solving problems. In many of his
answers, he alludes to the fact that one should follow the middle
road. Don't make a project too grandiose. "A project has to sit inside
one person's head", "There is no silver bullet", "Never design to the
100% theoretical limit", and on and on. I'm sure that this is one of
the reasons why Linux is as successful as it has been. He also
mentioned during his talk that he is willing to listen to new
ideas. He said that it always starts off being a really dumb
idea. But the idea is not dismissed. (Maybe there are a lot of ideas
that are really dumb which he <em>has</em> dismissed.) But the point is that the
idea would be knocked around the kernel development news group or
e-mail list group and evolve into a not-so-dumb idea and finally into
something important that could be included in the kernel.
<p>
I left Linus and Mad Dog behind in Ramsey. My plan was to stay at FNAL
for the night and drive in early to catch the opening keynote at
Comdex. Bill Gates was giving this keynote. From Linus to Bill, this
was going to be a real contrast.
<p>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Stephen Adler <BR>
Published in Issue 42 of <i>Linux Gazette</i>, June 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Linux Expo 1999</font></H1>
<H4>By <a href="mailto:ljeditor@ssc.com">Marjorie Richardson</a></H4>
</center>
<P> <HR> <P>
<A HREF="./photos.html">Photo Album</A>
<P> <HR> <P>
Red Hat proved once again that they can put on a good show for the
Linux community. Bigger and better than ever, Linux Expo again doubled in
size and attracted top speakers such as Dr. Peter Braam and Dr. Theodore
Ts'o. Big business was there too, represented by such companies
as IBM, Hewlett Packard and SGI (formerly Silicon Graphics), as well
as the usual Linux vendors, such as SuSE, Caldera, VA Linux Systems,
Enhanced Software Technologies, Cygnus and many others.
<p>
I talked to Dave McAllister of SGI about their involvement in Linux
and Open Source and found SGI to be much more committed to this community
than I would have suspected. They released their most robust and scalable
file system, XFS, to the community in an effort to aid Linux in reaching
what he called ``Enterprise level''. Whatever their reasons
for doing so, this is certainly something that was applauded by everyone
I talked to at the show.
<p>
One of the most exciting announcements before the show was
O'Reilly's and HP's sourceXchange.com web site. I
attended a discussion about this site, which is designed to aid in
getting needed open source developed by obtaining sponsors who will
pay developers to write the code they need and then release it to
the public. This is an idea whose time has come, as another group
has also started a web site for the same purpose--this one
is CoSource.com from a couple of independents, Bernie Thompson and
Norman Jacobowitz, who write for LJ. It's obvious that Bernie,
Norman and O'Reilly are committed to the community and wish to
drive open source development, but I was a bit suspicious of HP. When
I asked about HP's motives for involvement in this project, Wayne
Caccamo told me HP felt this project was inevitable and wanted to take a
leadership role in it <i>and</i> they wanted to ``ingratiate''
themselves to the Open Source community--talk about honesty! After
that remark, I was ready to believe anything. I'm looking forward
to seeing how both these sites work out. (For more on this subject,
see Doc Searls' article on the <i>Linux Journal</i> web site
at http://www.linuxresources.com/articles/conversations/001.html and
Bernie Thompson's article in this issue, ``Market Making in
the Bazaar''.)
<p>
There were the usual fun things to do, such as a chili pepper
sauce contest and a paintball contest pitting vi against Emacs
once more--and once again vi won, proving it is the best editor
available--or that its advocates are the best shots. More than one
group bought blocks of tickets to a local showing of <i>Star Wars-The
Phantom Menace</i>. The ALS (Atlanta Linux Showcase) group invited me
to go along with them. Fun movie, but not as compelling as the first
one--then again, who expected it to be?
<p>
I especially enjoyed my booth time talking to current and future readers
and authors. In particular, it was a pleasure to finally meet Alan Cox
and Telsa Gwynne.
<p>
Alpha Processor, Inc., a Samsung company, announced they were
joining Linux International, and Guy Ludden presented a check to Jon
``maddog'' Hall. I got the picture and then took several
others of Jon, including one with a people-size Tux, who was roaming
the show floor.
<p>
Compared to LinuxWorld, Linux Expo came across as more polished, more
``we've done this before successfully''. LinuxWorld had
a lot of glitz--electricity and energy filling the air--that
just wasn't there at Linux Expo. I think this had mostly to do with
the fact that it wasn't the first time for these guys--the
experience showed. The speakers all like Linux Expo better, as the Expo
paid their travel expenses while LinuxWorld left them to get there on
their own. LinuxWorld had more people and more vendors, but they also
have the advantage of being in Silicon Valley.
<p>
Evan Leibowitz described the Expo as ``the show where Linux lost
its innocence'' due to two unpleasant situations that arose. One was
Pacific HiTech's being kicked out for passing out t-shirts without
buying booth space. The other was the use of the Red Hat trademark
without permission, by LinuxCare on their poster parodying a Palm Pilot
ad. No matter which side you took on this incident--the calling of
lawyers certainly signals the ``end of innocence''.
<p>
The show was a definitely a success. I talked to Bob Young on the last
day, and he certainly seemed pleased with how it had turned out. See
my interview with Bob in this issue. For more vendor announcements,
see ``Linux Kernels''.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Marjorie Richardson <BR>
Published in Issue 42 of <i>Linux Gazette</i>, June 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Book Review: Programming Web Graphics with Perl &
GNU Software</font></H1>
<H4>By <a href="mailto:jcoats@colltech.com">Jack Coats</a></H4>
</center>
<P> <HR> <P>
<ul>
<li>Author: Shawn P. Wallace
<li>E-mail: info@ora.com
<li>URL: http://www.ora.com/
<li>Publisher: O'Reilly & Associates
<li>ISBN: 1-56592-478-9
</ul>
<P> <HR> <P>
While I am not a big time web developer or graphics enthusiast, I
found <i>Programming Web Graphics</i> to be very interesting reading. The
book begins with a down-to-earth explanation of graphics and file
formats. From there, it goes into how web servers serve the files and
reviews the free libraries available to develop graphics. The details of
the libraries may not be everyone's cup of tea, but understanding
what they can do helps with understanding how browsers and other utilities
can benefit you.
<p>
The graphic programming tools are not for the rookie Perl hacker,
but are explained in reasonable detail that anyone with some experience
in Perl can learn to use the available free tools.
<p>
The exciting part of writing programs to do graphics on the Web is
dynamic techniques. <i>PWG</i> covers image maps and animated GIFs, and
includes techniques on how to roll your own tools, such as web counters,
web cams and thumbnailing groups of images.
<p>
It is refreshing to see a book that does not ignore the non-graphical web
user, and reviews the good and bad of writing browser-specific web pages.
<p>
Overall this is a great book for understanding some of the more advanced
techniques and as a tool book for generating ideas and methods of your
own. If you are looking for a ``how-to'', hands-on tutorial,
for the un-initiated non-Perl coder, keep looking.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Jack Coats <BR>
Published in Issue 42 of <i>Linux Gazette</i>, June 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Setting up mail for a home network using exim</font></H1>
<H4>By <a href="mailto:">Jan W. Stumpel, Oegstgeest, The Netherlands</a></H4>
</center>
<P> <HR> <P>
<h4><a NAME="exim1"></a>1 Introduction</h4>
Setting up a home network with Linux and Win95, using Samba, IP
Masquerading, and diald has been described many times, also in the Linux
Gazette, but so far I have not found a recipe for setting up <i>mail</i> on
a small network with only one dial-up e-mail account. In this article I want
to explain how I did it. With this system:
<p><ul><li> users on the network can send local mail to each other, and
reply to it, also locally.</li>
<li> outgoing mail has a proper From: address, so the outside world can
reply to it.</li>
<li> the e-mail account is shared by the users, but each only receives
his/her personal mail.</li></ul>
<p>This is realized on my system (running Debian Linux 2.1) using the
following programs:
<p><ul><li> exim as the mail transfer agent (it is
<i>much</i> easier to configure than sendmail).</li>
<li> fetchmail for collecting the mail from the ISP.</li>
<li> pine as the mail client on the Linux side (but other clients can be
used as well, including <tt>mail</tt>).</li>
<li> Microsoft Internet Mail on the Windows side (but other clients can be
used as well).</li>
<li> qpopper as the POP3 server, for moving mail from the Linux system to
the Win95 machine.</li></ul>
<p>I have this set up for two machines (1 Linux + 1 Win95) but it will
probably also work for a somewhat larger network, and may be sufficient for
a small office. Note: this article is Debian-oriented. If you use another
distribution, change where appropriate!
<h4> <a NAME="exim2"></a>2 The network and the names</h4>
For this article I assume the following <i>names</i> (change these to
correspond with your own situation):
<p><ul><li> the owner / system administrator is called Joe Bloggs.</li>
<li> the Linux machine is called <b>heaven</b>.</li>
<li> the Win95 machine is called <b>earth</b>. It is mostly used by Emily
Bloggs.</li>
<li> Joe's user name on heaven is <tt>joe</tt>.</li>
<li> Emily's user name on heaven is <tt>emi</tt>.</li>
<li> Emily's user name on earth is also <tt>emi</tt>; her Linux password on
heaven and her 'password for Microsoft networking' on earth are the
same.</li>
<li> Joe has a dialup account (dynamic IP address) with an ISP called
<tt>isp.com</tt>. Mail from the ISP can be collected using POP3.</li>
<li> Joe's account name at the ISP is <tt>jbloggs</tt>.</li>
<li> Joe's e-mail address (also used by Emily) is
<tt>joe.bloggs@isp.com</tt>.</li>
<li> Joe's password for collecting POP3 mail is <tt>zaphod</tt>.</li>
<li> The ISP's mail server (for sending mail) is <tt>smtp.isp.com</tt>.</li>
<li> The ISP's POP3 server (for collecting mail) is <tt>pop3.isp.com</tt>.
</li>
<li> heaven and earth belong to a domain called <tt>home</tt>. This domain
name is meant for use only inside the home network; Joe has not registered
his domain name and it cannot be recognized by the outside world.</li> </ul>
I also assume that the local networking works, and that there is on-demand
dialup access using diald. There is no name server on heaven.
/etc/resolv.conf contains the addresses of two name servers supplied by the
ISP. These same addresses are entered into the TCP/IP configuration on
earth.
<p><tt>/etc/hostname</tt> on heaven is
<p><tt>heaven</tt>
<p><tt>/etc/hosts</tt> on heaven is
<p><tt>127.0.0.1 localhost</tt>
<br><tt>192.168.1.1 heaven.home heaven</tt>
<br><tt>192.168.1.2 earth.home earth</tt>
<p>On earth there is a file <tt>c:\windows\hosts</tt> with the same contents
as <tt>/etc/hosts</tt>.
<h4><a NAME="exim3"></a>3 Mail addresses</h4>
Mail messages can have more than just the address in the 'To:' and 'From:'
lines, for instance :
<p><tt>To: Emily Bloggs <joe.bloggs@isp.com></tt>
<p>'Emily Bloggs' in the above example is the 'real-name part'. It is set in
the e-mail program which composes the message. This 'real-name part' can be
used for delivering Emily's mail to her. Note: if the 'real-name part' has
dots in it, it must be quoted using " characters ("Joe C. Bloggs"). See also
<tt>man mailaddr</tt>.
<h4> <a NAME="exim4"></a>4 Configuring exim</h4>
On a Debian system this is done by running <tt>eximconfig. </tt>It asks a
number of questions which you can answer as follows:
<p><ul><li>your system is an Internet site using smarthost.</li>
<li>the 'visible mail domain' is <tt>home</tt></li>
<li>other names apart from <tt>home</tt> and <tt>heaven.home</tt>: answer
<tt>heaven:localhost</tt></li>
<li>you don't want to relay for any non-local domains.</li>
<li>you want to relay for the local network <tt>192.168.1.0/16</tt></li>
<li>RBL (spam filter database): whatever you like. I said <tt>n</tt></li>
<li>The smarthost, handling outgoing mail, is <tt>smtp.isp.com</tt></li>
<li>System administrator mail should go to <tt>joe</tt> (not to
<tt>root</tt>!)</li> </ul>
In MS Internet Mail (or whatever mail client you use on Win95) <tt>heaven</tt>
must be entered both as the STMP server and as the POP3 server. Under 'pop3
account' and 'pop3 password', enter the username <tt>emi</tt> and her Linux
password. Enter the the name, Emily Bloggs, and the e-mail address, <tt>emi@home</tt>,
in the appropriate place. Note that the e-mail address must be in the <i>local
domain</i>!
<p>On the Linux side, nothing special has to be set. /etc/pine/conf and
the users' ~/.pinerc can be used 'out of the box'. The mail client (pine)
constructs local addresses using the hostname together with user information
from /etc/passwd.
<p>With the above setup, local users can happily send mail to each other
and reply to it. For instance, in pine at heaven, user <tt>joe</tt> sends
mail to user <tt>emi</tt>. Automatically, pine changes this to:
<p><tt>To: Emily Bloggs <emi@heaven.home></tt>
<p>The message is delivered immediately (as you can see if you run eximon,
the exim monitoring utility). <tt>emi</tt> (should she log in to heaven)
would see the message as coming from
<p><tt>From: Joe Bloggs <joe@home></tt>
<p>So <tt>home</tt> really functions like a local domain within which messages
can be exchanged. The problem is sending messages to the outside world.
A From: address like <tt><joe@home></tt> is no good because nobody on
the outside could reply to an address in the non-existent domain <tt>home</tt>.
<h4><a NAME="exim5"></a>5 Fixing the From: address</h4>
We must change the local From: address into a valid e-mail address (the
e-mail account at the ISP), but <i>only</i> in the case of outgoing messages.
With exim, we can do this by means of a 'transport filter'. The outgoing
mail passes through this filter, and the From: address is changed. Local
mail will not be affected.
<p>The following filter will do the trick, provided we are <i>sure</i> that
the address that we want to change is always between < and > signs. This
is not guaranteed, but <i>very</i> common: <tt>pine</tt>, <tt>mutt</tt>, and
<tt>mail</tt>, as well as MS Internet Mail all generate such addresses.
<p><pre>#!/usr/bin/perl
while (<STDIN>) {
if (/^From: /) {
s/<.*>/<'joe.bloggs@isp.com'>/;
print "$_"; last;
}
print "$_";
}
while (<STDIN>) { print "$_"; }
</pre>
Don't forget to change the e-mail address to yours! Call this program
<tt>outfilt</tt>, do <tt>chmod +x outfilt</tt> and put it in
<tt>/usr/bin</tt>. Now we must add a line to <tt>/etc/exim.conf</tt>, so the
last lines of the <tt>TRANSPORTS CONFIGURATION</tt> section read:
<p><pre>remote_smtp:
driver = smtp
headers_remove = "sender"
transport_filter = "/usr/bin/outfilt"
end</pre>
Actually, we added <i>two</i> lines. The <tt>headers_remove</tt> line is
also new. This prevents exim from adding a Sender: header to the message (as
it would do with this setup, if you use pine). The Sender: line can cause
trouble with some (badly configured) mail destinations.
<p>With these changes to /etc/exim.conf, whenever anyone sends an e-mail
message to the outside world it is now delivered properly by exim. Exim
(through diald) opens the outside line at once. In a home situation this is
probably what you want. In a small office, with a lot of e-mail traffic, you
may want to defer messages and send them as a bunch at certain times, to
save phone costs. This is possible, but I don't need it myself and have not
looked into it. You could look at the 'Linux Mail-Queue mini-HOWTO'.
<h4><a NAME="exim6"></a>6 Fetchmail configuration</h4>
At the command <tt>fetchmail</tt> diald opens the line and the mail from the
ISP is collected (and passed to exim for local delivery). Only users who
have a <tt>.fetchmailrc</tt>, owned by themselves, in their home directory
can run fetchmail. This file can be created using the configuration tool
fetchmailconfig. You get something like:
<p><pre># Configuration created Sun Mar 28 03:15:20 1999 by fetchmailconf
set postmaster "postmaster"
poll pop3.isp.com with proto POP3
user "jbloggs" there with password "zaphod" is joe here options fetchall warnings 3600
</pre>
The <tt>.fetchmailrc</tt> files belonging to the various users could all be
copies of each other, but with the ownership set to the user concerned. It
is not so nice that every user has the password in plain view. Maybe there
is a better way, but in a home situation it does not matter.
<p>The main point is that whoever runs fetchmail, the mail must always
be delivered to the <i>same</i> user mailbox (<tt>joe</tt>'s mailbox in
this case).
<h4><a NAME="exim7"></a>7 Removing exim's delivery limit</h4>
Exim by default does not deliver more than 10 messages at a time. I am sure
there are circumstances where this makes perfect sense, but having a dialup
account is not one of them. To get rid of this restriction, you must put
into the <tt>MAIN CONFIGURATION</tt> section of <tt>/etc/exim.conf</tt>,
before the <tt>end</tt> statement, a line
<p><tt>smtp_accept_queue_per_connection = 0</tt>
<h4><a NAME="exim8"></a>8 Delivering personal mail</h4>
Through <tt>fetchmail</tt> and <tt>exim</tt>, all mail from the outside
is by default delivered to Joe's mailbox (<tt>var/spool/mail/joe</tt>)
at heaven. In Joe's home directory he puts a file called <tt>.forward</tt>,
containing the following text:
<p><tt># Exim filter</tt>
<br><tt>if $header_to: contains Emily then deliver emi endif</tt>
<p>If mail contains 'Emily' in (the 'real name part' of) the To: address
(and this will almost always be the case when her friends send her mail) it
will go into her mail account on heaven, not into Joe's. She can move the
mail to her own machine using POP3 (see below).
<h4><a NAME="exim9"></a>9 Transferring mail with qpopper</h4>
To let heaven act as POP3 server for earth, qpopper can be installed. I
installed the Debian package <tt>qpopper_2.3-4.deb</tt>. Installation is
automatic; no configuration is necessary. If Emily presses 'get/send
messages' in MS Internet Mail, the contents of her mailbox on heaven get
transferred to earth (and all mail, local or outside, which she has written
gets delivered).
<h4><a NAME="exim10"></a>10 Manually checking the mail</h4>
Thanks to a 'shortcut' on earth's Win95 'desktop', which does a telnet to
heaven, Emily can log into heaven and start <tt>fetchmail</tt> by hand. That
is, if she does not want to wait for the scheduled <tt>cron</tt> times when
fetchmail runs. After the mail has been transferred from the ISP, she can
press 'get/send messages' to move any mail from her heaven mailbox into the
earth one.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Jan W. Stumpel<BR>
Published in Issue 42 of <i>Linux Gazette</i>, June 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">An xdm Session</font></H1>
<H4>By <a href="mailto:cwcarlson@home.com">Chris Carlson</a></H4>
</center>
<P> <HR> <P>
<p>
So, you've got X Windows working on your system, you've
set your system to automatically start <i>xdm</i> by setting the default
run state to 5 and now you want to customize your personal windows session
by having certain applications start automatically after you log in.
<p>
At work, I like to log out of my system every evening before I go home
so that others may log in when I'm not there. It doesn't
happen often, but I don't want someone coming into my office and
using a window logged in as me. [You never know when someone gets curious
and starts wandering through my saved mail messages.] The problem is,
I have certain applications that I want brought up automatically, like
my list of things to do and my calendar program.
<p>
In this article, I'm going to explain an X Windows session,
how it is started and what you can do to customize it. It will show
you how to automatically start the window manager of your choice,
have applications start automatically and customize colors and fonts to
your liking. Since X Windows is pretty much identical on all platforms,
much of what I am going to explain can be used on other platforms that
use X Windows other than just XFree86 on Linux. As a matter of fact,
I will make some comparisons between the version of XFree86 that comes
with Red Hat 5.x and what comes with Silicon Graphics IRIX®. You may
note that the files I discuss on both systems have the same name but
are usually just in different directories.
<p>
I realize that other articles have been written about X Windows
configuration, for example Jay Ts' fine article in the December
issue entitled ``X Window System Administration.'' X Windows
is an extremely versatile windowing environment and, because of this,
can be very complex. For this reason, I believe it will require many
articles that might overlap but each will provide information from a
different perspective. This article is intended to be from a user's
perspective, rather than from an administrator's.
<p>
To start off with and to keep my article from becoming a book in itself,
this article is written with the following assumptions:
<p>
<ol>
<li> That you are working with the default configuration of xdm as
it is installed by Red Hat (see <a href="#foot">Footnote</a>). This means that you haven't
changed any of the files found in /etc/X11/xdm. (Since I don't
have an installation of any of the other Linux vendor releases, I'm
presuming their default configuration is identical or similar enough
that it won't cause any problems.)
With this in mind, I will refer to filenames that are used and
referenced by xdm (and their contents) as specified in the installed
configuration file. It should be noted, however, that almost all of
these filenames can be changed by modifying /etc/X11/xdm/xdm-config
or by specifying a different configuration file on the command
line when starting xdm. (On the SGI, the configuration file is
/var/X11/xdm/xdm-config and I have seen some installations use
/usr/lib/X11/xdm/xdm-config.)
<li> That you have a basic understanding of the server/client concept
used by X Windows. i.e. The X server handles the display and keyboard
and runs as an application. User's applications are clients that
request services from the X server to display things and provide input.
<li> That you have some familiarity with X resources and how they
are used in the X environment.
</ol>
<p>
<h3>User Session Initialization and Termination</h3>
<p>
When the X server is started automatically via <i>xdm</i>, the user is
presented with a login screen. When a user successfully logs in via this
screen, <i>xdm</i> starts the ``user session''. This session is
a shell script which, when it terminates, ends the user's session
and <i>xdm</i> resets the X server and returns to the login screen.
<p>
Prior to starting a session, <i>xdm</i> runs a small startup script with
root privileges to perform any user initialization that may be required.
Currently, this file, /etc/X11/xdm/GiveConsole, changes the ownership of
/dev/console to that of the user so messages sent there can be displayed
on a window in the user's environment.
<p>
In like manner, when the session ends, xdm runs another small exit script
with root privileges to clean up anything that might have been set up by
the startup script. Currently, this script, /etc/X11/xdm/TakeConsole,
changes the ownership of /dev/console back to root.
<p>
Note that these two files are /var/X11/xdm/GiveConsole and
/var/X11/xdm/TakeConsole on the SGI.
<p>
The step of interest to this article is the actual starting of the user
session itself. Here, <i>xdm</i> starts a subprocess running the script
/etc/X11/xdm/Xsession (/var/X11/xdm/Xsession on SGI) and waits for it
to exit. When it does, <i>xdm</i> processes the exit script and returns
to the login screen. This session script is run with the user's
privileges.
<p>
A resource has been set for <i>xdm</i> which causes the parameter
``failsafe'' to be passed to the user session if the user uses
the F1 key rather than the Enter key to complete his/her login. This can
be very useful if the user makes a mistake in his or her customized
session script which makes it impossible to log in. How this feature
is taken advantage of is discussed below. It should be noted that I
found this resource defined for both Linux and SGI and is used in an
identical manner on both.
<p>
<h3>The Xsession File</h3>
<p>
The /etc/X11/xdm/Xsession file provided by Red Hat is quite simple,
especially when compared to the /var/X11/xdm/Xsession file provided with
the SGI. This file is a standard Bourne shell script which performs
all the user startup and initialization that the system administrator
wants done for all users.
<p>
As described above, if the user logs in and pressed F1 rather than
the Enter key, the parameter ``failsafe'' is passed to the
session file. The first thing the /etc/X11/xdm/Xsession file does is
check if this parameter exists and, if it does, exec's an xterm.
This bypasses all other initialization and provides the user with a
terminal window to work with. Notice that this is a good method of
logging in if the user has done something to his/her personal session
file that otherwise prevents logging in.
<p>
For those that don't understand the function of exec, this is a
builtin command provided by all the standard shell programs. It causes
the current running shell to be replaced by the exec'd program.
Thus, the current running shell never returns from an exec (unless the
program referenced fails to start for some reason) and the parent process
is not aware of any change in the child process. The exec'd
program retains the process ID of the shell and, when it terminates,
it is as if the shell terminated and the user session ends.
<p>
Presuming ``failsafe'' is not a parameter passed to Xsession,
the script continues by redirecting stderr to an error file. If it can
write to it, this file will be .xsession-errors in the user's home
directory. If the session can't write to the user's home
directory or this file is write protected for some reason, the script
will attempt to use /tmp/xses-$USER, where $USER is the user's
login name.
<p>
This error file is useful for determining problems during the user's
session. Any errors generated by applications that are started (including
the window manager or applications started by the window manager)
will be sent to this file. If the user has problems starting a user
session after logging in, he/she can perform a ``failsafe''
login (as described above) and look at this file. The error messages
may be of some help in determining the problem.
<p>
Finally, the standard Xsession file transfers control to one of a set of
shell scripts, depending on their existence and if they are executable.
It does this with the exec command which means that, whichever program is
run, it replaces the Xsession process and becomes the new user session.
The shell scripts are:
<p>
<pre>
1. $HOME/.xsession
2. $HOME/.Xclients
3. /etc/X11/xinit/Xclients
</pre>
Some interesting notes about this compared to the script used on an
SGI computer. SGI does not require the scripts to be executable but
will run /bin/sh against them if they aren``t. Also, SGI only looks
for $HOME/.xsession. If this file doesn't exist, the system Xsession
file sets up the default user environment provided by SGI. Red Hat
chose to break the default user session into two steps, since the
standard installation will provide /etc/X11/xinit/Xclients.
<p>
If none of the three files above exist or are executable, then the
user``s .Xresources file is loaded (if it exists) and the program
<i>xsm</i> is exec'd. <i>xsm</i> is one of the many window managers
provided with Red Hat Linux.
<p>
<h3>User Customized Xsession File</h3>
<p>
As you may have guessed from the above explanation of the
system's Xsession file, the user can create his/her own shell script
which will be processed as the user session. This is a very powerful
capability and provides each user the ability to do whatever processing
they want each time they log in via the X login. In this script,
the user can start various applications, set root window resources,
set one-time environment variables, change default keyboard definitions
and select a window manager.
<p>
The easiest way to set up your own personal Xsession file is to copy
the system /etc/X11/xinit/Xclients file into your home directory as
.xsession or .Xclients (what, in the future, I will refer to as the
user's Xsession file) and then edit it as desired. I'm not
going to step through the contents of the /etc/X11/xinit/Xclients file,
you can do this on your own. I'm going to just explain some of
the things one might want to do.
<p>
One important thing is to load desired resources into the root window.
This is usually done with the following commands:
<p>
<pre>
resources=$HOME/.Xresources
if [ -f "$resources" ]; then
/usr/bin/X11/xrdb -load "$resources"
fi
</pre>
Another thing that the user may wish to do is set the root
window background to something different. This is done with the
<i>/usr/bin/X11/xsetroot</i> command. For example, I have my background
defined as follows:
<p>
<pre>
</pre>
Note that this command can also be used to set the default cursor
and cursor color for the root window, a two-tone plaid pattern for the
background or an X bitmap to be used as a pattern.
<p>
Also, the command <i>/usr/bin/X11/xset</i> can be used to set the
desired bell volume, key click, DPMS (energy saving) features and
mouse parameters. This command can also set autorepeat and screensaver
parameters.
<p>
If you want to define special keys, you can run <i>/usr/bin/X11/xmodmap</i>
from this script. For example, I like to be able to access the full
ISO 8859-1 character set and insert internationalized characters in
my documents. Also, Linux likes to define <Shft>F1 to be F11
and <Shft>F2 to be F12. Since my keyboard has an F11 and F12,
I prefer these keys to be set to F13 and F14 respectively. To handle
this, I have defined $HOME/.xmodmaprc to contain the following:
<p>
<pre>
keycode 113 = Multi_key
keysym F1 = F1 F13
keysym F2 = F2 F14
keysym F3 = F3 F15
...
keysym F10 = F10 F22
keycode 95 = F11 F23
keycode 96 = F12 F24
</pre>
Then, in my $HOME/.xsession file I have the following:
<p>
<pre>
if [ -r $HOME/.xmodmaprc ]; then
/usr/bin/X11/xmodmap $HOME/.xmodmaprc
fi
</pre>
Finally, the most important step is running a window manager.
Red Hat likes to run <i>fvwm</i> because it can be set up to look a lot
like Windows 95®. Since I use SGI computers a lot, I prefer Motif (which
costs money and doesn't come with Linux normally). There is also
<i>xsm</i> and <i>twm</i> available. You might want to read the man pages
for each to determine which window manager you prefer.
<p>
If it is desired, the user can exec the window manager as the last
thing in the Xsession file. This will mean that the user has to end
the window manager to end their session and return to the login screen.
I prefer to run the window manager as a background process and exec an
xterm as the last thing. This way, when I exit the xterm session, the
user session will end and the login screen will be brought up. Note that
the window manager and any window applications will be terminated because
the X display will be closed. Any non-window applications started as
a background process will not be terminated automatically and could
continue after the user's session ends.
<p>
I start the Motif window manager as follows:
<p>
<pre>
/usr/bin/X11/mwm
</pre>
I start the final xterm with:
<p>
<pre>
exec nxterm -geometry 80x50+10+10 -ls
</pre>
This creates a version of the xterm that supports color. It will be
80 characters wide and display 50 lines. The window will be positioned
in the upper left corner of the screen (at pixel position 10x10).
The last option forces nxterm to run the shell as a login shell.
<p>
From within the user's Xsession file, you can run a number of
xterms, xclock or whatever, all of which will start automatically when
you login. Be sure to specify a geometry (with the -geometry option)
to get each application positioned on the screen where you want it.
<p>
Also, remember to run the applications in the background (by terminating
the line with ``&'') otherwise, the user Xsession file will
wait until that application terminates before continuing.
<p>
<h3>Important Tricks</h3>
<p>
Here I want to discuss some more interesting and important tricks
that can be done from the user's Xsession file.
<p>
All window managers can execute programs from a pulldown menu. Sometimes
these programs need special environment variables defined prior to
their execution (for example, Netscape may need SOCKS_NS to be defined).
Since the user's environment variables are not usually set until
a shell is started, the window manager and any programs started from
the window manager will not have the user's environment defined.
Trying to set them in $HOME/.cshrc, $HOME/.profile or $HOME/.login
won't do any good.
<p>
One trick is to define these environment variables in the user's
Xsession file. It is necessary to set these environment variables before
you start the window manager.
<p>
Another trick that I like to do is define XUSERFILESEARCHPATH in my user
Xsession file. Most applications look for and use a application resource
file, usually found in /usr/lib/X11/app-defaults. For example, Netscape
uses the file /usr/lib/X11/app-defaults/Netscape for its application
resource settings. If you want to change any of these settings for your
personal environment, you can copy this file into your home directory
and modify it. Next time you run Netscape, it will find the one in your
home directory first and use it.
<p>
I have found my home directory cluttered with application resource files
and wanted to put them into my own private app-defaults directory. I did
this by creating the directory and copying all the resource files into it.
Then, I set XUSERFILESEARCHPATH to the following in my user Xsession file:
<p>
<pre>
/home/carlson/app-defaults/%N:/usr/lib/X11/%L/app-defaults/%N:/usr/lib/X11/app-defaults/%N
</pre>
This makes the application search in /home/carlson/app-defaults
for application resource files before going to the default locations
under /usr/lib/X11.
<p>
One last trick is for those of you that have multiple computers all
running X servers. Here at home, I have an SGI O2 and my Linux machine.
When I log in remotely to my O2, I want to be able to run X applications
and have them use the display on my Linux box. In order to do this,
I need to run <i>xhost</i> each time I log in to my Linux box to allow
remote logins to access the X server.
<p>
As part of my user Xsession file, I have the following line:
<p>
<pre>
</pre>
This sets the X server on my Linux box to allow access from
moonlight, the name of my O2.
<p>
<h3>Conclusion</h3>
<p>
I hope you have found this information useful and interesting.
I've tried to show you how to create your own user Xsession
file to start applications, set a special environment and run your own
window manager. I'm sure you can come up with many more ideas.
<p>
One useful tool that I wrote, based on a similar application provided
with SGI, is <i>userenv</i>. This application creates a login shell as
a child and has it print its environment. This environment is collected
and then printed to stdout in a form that can be executed to create the
same environment by a shell.
<p>
In my user Xsession file, I have the following line:
<p>
<pre>
eval `userenv`
</pre>
This computes my user environment and echos it in a form that
the shell can execute the output to create the same environment.
The <i>eval</i> command causes the output to be processed by the shell.
<p>
You are welcome to a copy of the source for this program from my web
site, http://members.home.net/cwcarlson/files/utilities.tar.gz.
<p>
<a name="foot"></a>
<h3>Footnote</h3>
<p>
I am running Red Hat 5.1 but it appears that it
hasn't changed significantly for a few years. Also, I find the
configuration almost identical with other Unix platforms such as Silicon
Graphics IRIX®. The only differences appear to be in what directory
files are maintained.)
<p>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Chris Carlson <BR>
Published in Issue 42 of <i>Linux Gazette</i>, June 1999</H5></center>
<!--===================================================================-->
<center><H2>
<A HREF="http://www.linuxgazette.com/">
<IMG SRC="../gx/newlogo.jpg" width=600 height=256 border=0
ALT="Linux Gazette... making Linux just a little more fun!"></a>
</H2>
<H4>Published by <A HREF="http://www.linuxjournal.com/"><I>Linux Journal</I></A></H4>
</center>
<P> <hr> <P>
<H1><font color="maroon">The Back Page</font></H1>
<ul>
<li><a HREF="./lg_backpage42.html#authors">About This Month's Authors</a>
<li><a HREF="./lg_backpage42.html#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">Stephen 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">Larry Ayers</H4>
Larry lives on a small farm
in northern Missouri, where he is currently engaged in building a
timber-frame house for his family. He operates a portable band-saw mill,
does general woodworking, plays the fiddle and searches for rare
prairie plants, as well as growing shiitake mushrooms. He is also
struggling with configuring a Usenet news server for his local ISP.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Chris Carlson</H4>
Chris has been developing software for various systems
and hardware since 1973. He worked for 8 years as a Developer's
Support Engineer for Silicon Graphics, Inc. based in Southern California.
He is now working for DataDirect Networks assisting in the development
and test of SGI and Linux device drivers. He lives in Orange County,
California.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Jack Coats</H4>
Jack (is a consulting UNIX administrator
for Collective Technologies. Personal activities include his family,
church, leading a local UNIX users group in Houston (HOUNIX), and
hacking computers.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Jim Dennis</H4>
Jim is the proprietor of <A href="http://www.starshine.org">
Starshine Technical Services</A> and is now working for <A
HREF="http://www.linuxcare.com/">LinuxCare</A>.
His professional experience includes work in the technical
support, quality assurance, and information services (MIS)
departments of software companies like
Quarterdeck, Symantec/Peter Norton Group and
McAfee Associates -- as well as
positions (field service rep) with smaller VAR's.
He's been using Linux since version 0.99p10 and is an active
participant on an ever-changing list of mailing lists and
newsgroups. He's just started collaborating on the 2nd Edition
for a book on Unix systems administration.
Jim is an avid science fiction fan -- and was
married at the World Science Fiction Convention in Anaheim.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Michael J. Hammel</H4>
A Computer Science graduate of Texas Tech University, Michael J. Hammel,
mjhammel@graphics-muse.org, is an software developer specializing in X/Motif
living in Dallas, Texas (but calls Boulder, CO home for some reason).
His background includes everything from data
communications to GUI development to Interactive Cable systems, all based in
Unix. He has worked for companies such as Nortel, Dell Computer, and
Xi Graphics.
Michael writes the monthly Graphics Muse column in the Linux Gazette,
maintains the Graphics Muse Web site and theLinux Graphics mini-Howto, helps
administer the Internet Ray Tracing Competition (http://irtc.org) and
recently completed work on his new book "The Artist's Guide to the Gimp",
published by SSC, Inc. His outside interests include running, basketball,
Thai food, gardening, and dogs.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Mark Nielsen</H4>
Mark founded The Computer Underground, Inc. in June of 1998. Since then,
he has been working on Linux solutions for his customers ranging from custom
computer hardware sales to programming and networking. Mark specializes in Perl,
SQL, and HTML programming along with Beowulf clusters. Mark believes in the
concept of contributing back to the Linux community which helped to start his
company. Mark and his employees are always looking for exciting projects to do.
<a name="notlinux"></a>
<P> <hr> <P>
<!--====================================================================-->
<center><H3><font color="maroon">Not Linux</font></H3></center>
<P> <HR> <P>
<!--======================================================================-->
<P>
Thanks to all our authors, not just the ones above, but also those who wrote
giving us their tips and tricks and making suggestions. Thanks also to our
new mirror sites.
<P>
With this issue, <EM>Linux Gazette</EM> has a new editor. My name is Mike
Orr, and I have been SSC's Webmaster since April. Margie is still here to
advise me on the <EM>Gazette</EM>, and without her and Darcy's help, this
first issue would not have come out. Special thanks also goes to
Jim Dennis and Heather Stern, who also helped me out immensely this month.
<P>
I have been a Linux enthusiast since November 1991 and got my own computer
to install Linux on in 1993. I started with SLS and Slackware, but have been
running Debian since 1995. At times I can be seen lurking on the debian-devel
mailing list, but currently I hang out mostly in the comp.lang.python
newsgroup.
<P>
I have a personal web page at
<A HREF=http://mso.oz.net/>http://mso.oz.net/</A>,
<P>
Have fun!
<P> <hr> <P>
Michael Orr<br>
Editor, <A HREF="http://www.linuxgazette.com/"><i>Linux Gazette</i></A>, <A
HREF="mailto:gazette@ssc.com">gazette@ssc.com</a>
<P> <HR> <P>
<!--====================================================================-->
<A HREF="./lg_toc42.html"><IMG SRC="../gx/indexnew.gif" ALT="[ TABLE OF
CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG SRC="../gx/homenew.gif" ALT="[ FRONT
PAGE ]"></A>
<A HREF="./carlson.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
<p><hr><p>
<center>
<I>Linux Gazette</I> Issue 42, May 1999,
<A HREF="http://www.linuxgazette.com/">http://www.linuxgazette.com</A><BR>
This page written and maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto:gazette@ssc.com"> gazette@ssc.com</A>
<H5>Copyright © 1999 Specialized Systems Consultants, Inc.<br>
</center>
<P>
</BODY>
</HTML>
|