1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7616 7617 7618 7619 7620 7621 7622 7623 7624 7625 7626 7627 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 7868 7869 7870 7871 7872 7873 7874 7875 7876 7877 7878 7879 7880 7881 7882 7883 7884 7885 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7903 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7933 7934 7935 7936 7937 7938 7939 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7999 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8053 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 8101 8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117 8118 8119 8120 8121 8122 8123 8124 8125 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8143 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8173 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8239 8240 8241 8242 8243 8244 8245 8246 8247 8248 8249 8250 8251 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 8262 8263 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8293 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8359 8360 8361 8362 8363 8364 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8479 8480 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8840 8841 8842 8843 8844 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9080 9081 9082 9083 9084 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9224 9225 9226 9227 9228 9229 9230 9231 9232 9233 9234 9235 9236 9237 9238 9239 9240 9241 9242 9243 9244 9245 9246 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9284 9285 9286 9287 9288 9289 9290 9291 9292 9293 9294 9295 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359 9360 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 9397 9398 9399 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9511 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9571 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582 9583 9584 9585 9586 9587 9588 9589 9590 9591 9592 9593 9594 9595 9596 9597 9598 9599 9600 9601 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 9619 9620 9621 9622 9623 9624 9625 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9637 9638 9639 9640 9641 9642 9643 9644 9645 9646 9647 9648 9649 9650 9651 9652 9653 9654 9655 9656 9657 9658 9659 9660 9661 9662 9663 9664 9665 9666 9667 9668 9669 9670 9671 9672 9673 9674 9675 9676 9677 9678 9679 9680 9681 9682 9683 9684 9685 9686 9687 9688 9689 9690 9691 9692 9693 9694 9695 9696 9697 9698 9699 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 9715 9716 9717 9718 9719 9720 9721 9722 9723 9724 9725 9726 9727 9728 9729 9730 9731 9732 9733 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 9745 9746 9747 9748 9749 9750 9751 9752 9753 9754 9755 9756 9757 9758 9759 9760 9761 9762 9763 9764 9765 9766 9767 9768 9769 9770 9771 9772 9773 9774 9775 9776 9777 9778 9779 9780 9781 9782 9783 9784 9785 9786 9787 9788 9789 9790 9791 9792 9793 9794 9795 9796 9797 9798 9799 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 9810 9811 9812 9813 9814 9815 9816 9817 9818 9819 9820 9821 9822 9823 9824 9825 9826 9827 9828 9829 9830 9831 9832 9833 9834 9835 9836 9837 9838 9839 9840 9841 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 9852 9853 9854 9855 9856 9857 9858 9859 9860 9861 9862 9863 9864 9865 9866 9867 9868 9869 9870 9871 9872 9873 9874 9875 9876 9877 9878 9879 9880 9881 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 9901 9902 9903 9904 9905 9906 9907 9908 9909 9910 9911 9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9961 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 10011 10012 10013 10014 10015 10016 10017 10018 10019 10020 10021 10022 10023 10024 10025 10026 10027 10028 10029 10030 10031 10032 10033 10034 10035 10036 10037 10038 10039 10040 10041 10042 10043 10044 10045 10046 10047 10048 10049 10050 10051 10052 10053 10054 10055 10056 10057 10058 10059 10060 10061 10062 10063 10064 10065 10066 10067 10068 10069 10070 10071 10072 10073 10074 10075 10076 10077 10078 10079 10080 10081 10082 10083 10084 10085 10086 10087 10088 10089 10090 10091 10092 10093 10094 10095 10096 10097 10098 10099 10100 10101 10102 10103 10104 10105 10106 10107 10108 10109 10110 10111 10112 10113 10114 10115 10116 10117 10118 10119 10120 10121 10122 10123 10124 10125 10126 10127 10128 10129 10130 10131 10132 10133 10134 10135 10136 10137 10138 10139 10140 10141 10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 10153 10154 10155 10156 10157 10158 10159 10160 10161 10162 10163 10164 10165 10166 10167 10168 10169 10170 10171 10172 10173 10174 10175 10176 10177 10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 10191 10192 10193 10194 10195 10196 10197 10198 10199 10200 10201 10202 10203 10204 10205 10206 10207 10208 10209 10210 10211 10212 10213 10214 10215 10216 10217 10218 10219 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10231 10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 10243 10244 10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 10255 10256 10257 10258 10259 10260 10261 10262 10263 10264 10265 10266 10267 10268 10269 10270 10271 10272 10273 10274 10275 10276 10277 10278 10279 10280 10281 10282 10283 10284 10285 10286 10287 10288 10289 10290 10291 10292 10293 10294 10295 10296 10297 10298 10299 10300 10301 10302 10303 10304 10305 10306 10307 10308 10309 10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10321 10322 10323 10324 10325 10326 10327 10328 10329 10330 10331 10332 10333 10334 10335 10336 10337 10338 10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10351 10352 10353 10354 10355 10356 10357 10358 10359 10360 10361 10362 10363 10364 10365 10366 10367 10368 10369 10370 10371 10372 10373 10374 10375 10376 10377 10378 10379 10380 10381 10382 10383 10384 10385 10386 10387 10388 10389 10390 10391 10392 10393 10394 10395 10396 10397 10398 10399 10400 10401 10402 10403 10404 10405 10406 10407 10408 10409 10410 10411 10412 10413 10414 10415 10416 10417 10418 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10477 10478 10479 10480 10481 10482 10483 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529 10530 10531 10532 10533 10534 10535 10536 10537 10538 10539 10540 10541 10542 10543 10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 10570 10571 10572 10573 10574 10575 10576 10577 10578 10579 10580 10581 10582 10583 10584 10585 10586 10587 10588 10589 10590 10591 10592 10593 10594 10595 10596 10597 10598 10599 10600 10601 10602 10603 10604 10605 10606 10607 10608 10609 10610 10611 10612 10613 10614 10615 10616 10617 10618 10619 10620 10621 10622 10623 10624 10625 10626 10627 10628 10629 10630 10631 10632 10633 10634 10635 10636 10637 10638 10639 10640 10641 10642 10643 10644 10645 10646 10647 10648 10649 10650 10651 10652 10653 10654 10655 10656 10657 10658 10659 10660 10661 10662 10663 10664 10665 10666 10667 10668 10669 10670 10671 10672 10673 10674 10675 10676 10677 10678 10679 10680 10681 10682 10683 10684 10685 10686 10687 10688 10689 10690 10691 10692 10693 10694 10695 10696 10697 10698 10699 10700 10701 10702 10703 10704 10705 10706 10707 10708 10709 10710 10711 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 10723 10724 10725 10726 10727 10728 10729 10730 10731 10732 10733 10734 10735 10736 10737 10738 10739 10740 10741 10742 10743 10744 10745 10746 10747 10748 10749 10750 10751 10752 10753 10754 10755 10756 10757 10758 10759 10760 10761 10762 10763 10764 10765 10766 10767 10768 10769 10770 10771 10772 10773 10774 10775 10776 10777 10778 10779 10780 10781 10782 10783 10784 10785 10786 10787 10788 10789 10790 10791 10792 10793 10794 10795 10796 10797 10798 10799 10800 10801 10802 10803 10804 10805 10806 10807 10808 10809 10810 10811 10812 10813 10814 10815 10816 10817 10818 10819 10820 10821 10822 10823 10824 10825 10826 10827 10828 10829 10830 10831 10832 10833 10834 10835 10836 10837 10838 10839 10840 10841 10842 10843 10844 10845 10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 10860 10861 10862 10863 10864 10865 10866 10867 10868 10869 10870 10871 10872 10873 10874 10875 10876 10877 10878 10879 10880 10881 10882 10883 10884 10885 10886 10887 10888 10889 10890 10891 10892 10893 10894 10895 10896 10897 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 10908 10909 10910 10911 10912 10913 10914 10915 10916 10917 10918 10919 10920 10921 10922 10923 10924 10925 10926 10927 10928 10929 10930 10931 10932 10933 10934 10935 10936 10937 10938 10939 10940 10941 10942 10943 10944 10945 10946 10947 10948 10949 10950 10951 10952 10953 10954 10955 10956 10957 10958 10959 10960 10961 10962 10963 10964 10965 10966 10967 10968 10969 10970 10971 10972 10973 10974 10975 10976 10977 10978 10979 10980 10981 10982 10983 10984 10985 10986 10987 10988 10989 10990 10991 10992 10993 10994 10995 10996 10997 10998 10999 11000 11001 11002 11003 11004 11005 11006 11007 11008 11009 11010 11011 11012 11013 11014 11015 11016 11017 11018 11019 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 11035 11036 11037 11038 11039 11040 11041 11042 11043 11044 11045 11046 11047 11048 11049 11050 11051 11052 11053 11054 11055 11056 11057 11058 11059 11060 11061 11062 11063 11064 11065 11066 11067 11068 11069 11070 11071 11072 11073 11074 11075 11076 11077 11078 11079 11080 11081 11082 11083 11084 11085 11086 11087 11088 11089 11090 11091 11092 11093 11094 11095 11096 11097 11098 11099 11100 11101 11102 11103 11104 11105 11106 11107 11108 11109 11110 11111 11112 11113 11114 11115 11116 11117 11118 11119 11120 11121 11122 11123 11124 11125 11126 11127 11128 11129 11130 11131 11132 11133 11134 11135 11136 11137 11138 11139 11140 11141 11142 11143 11144 11145 11146 11147 11148 11149 11150 11151 11152 11153 11154 11155 11156 11157 11158 11159 11160 11161 11162 11163 11164 11165 11166 11167 11168 11169 11170 11171 11172 11173 11174 11175 11176 11177 11178 11179 11180 11181 11182 11183 11184 11185 11186 11187 11188 11189 11190 11191 11192 11193 11194 11195 11196 11197 11198 11199 11200 11201 11202 11203 11204 11205 11206 11207 11208 11209 11210 11211 11212 11213 11214 11215 11216 11217 11218 11219 11220 11221 11222 11223 11224 11225 11226 11227 11228 11229 11230 11231 11232 11233 11234 11235 11236 11237 11238 11239 11240 11241 11242 11243 11244 11245 11246 11247 11248 11249 11250 11251 11252 11253 11254 11255 11256 11257 11258 11259 11260 11261 11262 11263 11264 11265 11266 11267 11268 11269 11270 11271 11272 11273 11274 11275 11276 11277 11278 11279 11280 11281 11282 11283 11284 11285 11286 11287 11288 11289 11290 11291 11292 11293 11294 11295 11296 11297 11298 11299 11300 11301 11302 11303 11304 11305 11306 11307 11308 11309 11310 11311 11312 11313 11314 11315 11316 11317 11318 11319 11320 11321 11322 11323 11324 11325 11326 11327 11328 11329 11330 11331 11332 11333 11334 11335 11336 11337 11338 11339 11340 11341 11342 11343 11344 11345 11346 11347 11348 11349 11350 11351 11352 11353 11354 11355 11356 11357 11358 11359 11360 11361 11362 11363 11364 11365 11366 11367 11368 11369 11370 11371 11372 11373 11374 11375 11376 11377 11378 11379 11380 11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391 11392 11393 11394 11395 11396 11397 11398 11399 11400 11401 11402 11403 11404 11405 11406 11407 11408 11409 11410 11411 11412 11413 11414 11415 11416 11417 11418 11419 11420 11421 11422 11423 11424 11425 11426 11427 11428 11429 11430 11431 11432 11433 11434 11435 11436 11437 11438 11439 11440 11441 11442 11443 11444 11445 11446 11447 11448 11449 11450 11451 11452 11453 11454 11455 11456 11457 11458 11459 11460 11461 11462 11463 11464 11465 11466 11467 11468 11469 11470 11471 11472 11473 11474 11475 11476 11477 11478 11479 11480 11481 11482 11483 11484 11485 11486 11487 11488 11489 11490 11491 11492 11493 11494 11495 11496 11497 11498 11499 11500 11501 11502 11503 11504 11505 11506 11507 11508 11509 11510 11511 11512 11513 11514 11515 11516 11517 11518 11519 11520 11521 11522 11523 11524 11525 11526 11527 11528 11529 11530 11531 11532 11533 11534 11535 11536 11537 11538 11539 11540 11541 11542 11543 11544 11545 11546 11547 11548 11549 11550 11551 11552 11553 11554 11555 11556 11557 11558 11559 11560 11561 11562 11563 11564 11565 11566 11567 11568 11569 11570 11571 11572 11573 11574 11575 11576 11577 11578 11579 11580 11581 11582 11583 11584 11585 11586 11587 11588 11589 11590 11591 11592 11593 11594 11595 11596 11597 11598 11599 11600 11601 11602 11603 11604 11605 11606 11607 11608 11609 11610 11611 11612 11613 11614 11615 11616 11617 11618 11619 11620 11621 11622 11623 11624 11625 11626 11627 11628 11629 11630 11631 11632 11633 11634 11635 11636 11637 11638 11639 11640 11641 11642 11643 11644 11645 11646 11647 11648 11649 11650 11651 11652 11653 11654 11655 11656 11657 11658 11659 11660 11661 11662 11663 11664 11665 11666 11667 11668 11669 11670 11671 11672 11673 11674 11675 11676 11677 11678 11679 11680 11681 11682 11683 11684 11685 11686 11687 11688 11689 11690 11691 11692 11693 11694 11695 11696 11697 11698 11699 11700 11701 11702 11703 11704 11705 11706 11707 11708 11709 11710 11711 11712 11713 11714 11715 11716 11717 11718 11719 11720 11721 11722 11723 11724 11725 11726 11727 11728 11729 11730 11731 11732 11733 11734 11735 11736 11737 11738 11739 11740 11741 11742 11743 11744 11745 11746 11747 11748 11749 11750 11751 11752 11753 11754 11755 11756 11757 11758 11759 11760 11761 11762 11763 11764 11765 11766 11767 11768 11769 11770 11771 11772 11773 11774 11775 11776 11777 11778 11779 11780 11781 11782 11783 11784 11785 11786 11787 11788 11789 11790 11791 11792 11793 11794 11795 11796 11797 11798 11799 11800 11801 11802 11803 11804 11805 11806 11807 11808 11809 11810 11811 11812 11813 11814 11815 11816 11817 11818 11819 11820 11821 11822 11823 11824 11825 11826 11827 11828 11829 11830 11831 11832 11833 11834 11835 11836 11837 11838 11839 11840 11841 11842 11843 11844 11845 11846 11847 11848 11849 11850 11851 11852 11853 11854 11855 11856 11857 11858 11859 11860 11861 11862 11863 11864 11865 11866 11867 11868 11869 11870 11871 11872 11873 11874 11875 11876 11877 11878 11879 11880 11881 11882 11883 11884 11885 11886 11887 11888 11889 11890 11891 11892 11893 11894 11895 11896 11897 11898 11899 11900 11901 11902 11903 11904 11905 11906 11907 11908 11909 11910 11911 11912 11913 11914 11915 11916 11917 11918 11919 11920 11921 11922 11923 11924 11925 11926 11927 11928 11929 11930 11931 11932 11933 11934 11935 11936 11937 11938 11939 11940 11941 11942 11943 11944 11945 11946 11947 11948 11949 11950 11951 11952 11953 11954 11955 11956 11957 11958 11959 11960 11961 11962 11963 11964 11965 11966 11967 11968 11969 11970 11971 11972 11973 11974 11975 11976 11977 11978 11979 11980 11981 11982 11983 11984 11985 11986 11987 11988 11989 11990 11991 11992 11993 11994 11995 11996 11997 11998 11999 12000 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011 12012 12013 12014 12015 12016 12017 12018 12019 12020 12021 12022 12023 12024 12025 12026 12027 12028 12029 12030 12031 12032 12033 12034 12035 12036 12037 12038 12039 12040 12041 12042 12043 12044 12045 12046 12047 12048 12049 12050 12051 12052 12053 12054 12055 12056 12057 12058 12059 12060 12061 12062 12063 12064 12065 12066 12067 12068 12069 12070 12071 12072 12073 12074 12075 12076 12077 12078 12079 12080 12081 12082 12083 12084 12085 12086 12087 12088 12089 12090 12091 12092 12093 12094 12095 12096 12097 12098 12099 12100 12101 12102 12103 12104 12105 12106 12107 12108 12109 12110 12111 12112 12113 12114 12115 12116 12117 12118 12119 12120 12121 12122 12123 12124 12125 12126 12127 12128 12129 12130 12131 12132 12133 12134 12135 12136 12137 12138 12139 12140 12141 12142 12143 12144 12145 12146 12147 12148 12149 12150 12151 12152 12153 12154 12155 12156 12157 12158 12159 12160 12161 12162 12163 12164 12165 12166 12167 12168 12169 12170 12171 12172 12173 12174 12175 12176 12177 12178 12179 12180 12181 12182 12183 12184 12185 12186 12187 12188 12189 12190 12191 12192 12193 12194 12195 12196 12197 12198 12199 12200 12201 12202 12203 12204 12205 12206 12207 12208 12209 12210 12211 12212 12213 12214 12215 12216 12217 12218 12219 12220 12221 12222 12223 12224 12225 12226 12227 12228 12229 12230 12231 12232 12233 12234 12235 12236 12237 12238 12239 12240 12241 12242 12243 12244 12245 12246 12247 12248 12249 12250 12251 12252 12253 12254 12255 12256 12257 12258 12259 12260 12261 12262 12263 12264 12265 12266 12267 12268 12269 12270 12271 12272 12273 12274 12275 12276 12277 12278 12279 12280 12281 12282 12283 12284 12285 12286 12287 12288 12289 12290 12291 12292 12293 12294 12295 12296 12297 12298 12299 12300 12301 12302 12303 12304 12305 12306 12307 12308 12309 12310 12311 12312 12313 12314 12315 12316 12317 12318 12319 12320 12321 12322 12323 12324 12325 12326 12327 12328 12329 12330 12331 12332 12333 12334 12335 12336 12337 12338 12339 12340 12341 12342 12343 12344 12345 12346 12347 12348 12349 12350 12351 12352 12353 12354 12355 12356 12357 12358 12359 12360 12361 12362 12363 12364 12365 12366 12367 12368 12369 12370 12371 12372 12373 12374 12375 12376 12377 12378 12379 12380 12381 12382 12383 12384 12385 12386 12387 12388 12389 12390 12391 12392 12393 12394 12395 12396 12397 12398 12399 12400 12401 12402 12403 12404 12405 12406 12407 12408 12409 12410 12411 12412 12413 12414 12415 12416 12417 12418 12419 12420 12421 12422 12423 12424 12425 12426 12427 12428 12429 12430 12431 12432 12433 12434 12435 12436 12437 12438 12439 12440 12441 12442 12443 12444 12445 12446 12447 12448 12449 12450 12451 12452 12453 12454 12455 12456 12457 12458 12459 12460 12461 12462 12463 12464 12465 12466 12467 12468 12469 12470 12471 12472 12473 12474 12475 12476 12477 12478 12479 12480 12481 12482 12483 12484 12485 12486 12487 12488 12489 12490 12491 12492 12493 12494 12495 12496 12497 12498 12499 12500 12501 12502 12503 12504 12505 12506 12507 12508 12509 12510 12511 12512 12513 12514 12515 12516 12517 12518 12519 12520 12521 12522 12523 12524 12525 12526 12527 12528 12529 12530 12531 12532 12533 12534 12535 12536 12537 12538 12539 12540 12541 12542 12543 12544 12545 12546 12547 12548 12549 12550 12551 12552 12553 12554 12555 12556 12557 12558 12559 12560 12561 12562 12563 12564 12565 12566 12567 12568 12569 12570 12571 12572 12573 12574 12575 12576 12577 12578 12579 12580 12581 12582 12583 12584 12585 12586 12587 12588 12589 12590 12591 12592 12593 12594 12595 12596 12597 12598 12599 12600 12601 12602 12603 12604 12605 12606 12607 12608 12609 12610 12611 12612 12613 12614 12615 12616 12617 12618 12619 12620 12621 12622 12623 12624 12625 12626 12627 12628 12629 12630 12631 12632 12633 12634 12635 12636 12637 12638 12639 12640 12641 12642 12643 12644 12645 12646 12647 12648 12649 12650 12651 12652 12653 12654 12655 12656 12657 12658 12659 12660 12661 12662 12663 12664 12665 12666 12667 12668 12669 12670 12671 12672 12673 12674 12675 12676 12677 12678 12679 12680 12681 12682 12683 12684 12685 12686 12687 12688 12689 12690 12691 12692 12693 12694 12695 12696 12697 12698 12699 12700 12701 12702 12703 12704 12705 12706 12707 12708 12709 12710 12711 12712 12713 12714 12715 12716 12717 12718 12719 12720 12721 12722 12723 12724 12725 12726 12727 12728 12729 12730 12731 12732 12733 12734 12735 12736 12737 12738 12739 12740 12741 12742 12743 12744 12745 12746 12747 12748 12749 12750 12751 12752 12753 12754 12755 12756 12757 12758 12759 12760 12761 12762 12763 12764 12765 12766 12767 12768 12769 12770 12771 12772 12773 12774 12775 12776 12777 12778 12779 12780 12781 12782 12783 12784 12785 12786 12787 12788 12789 12790 12791 12792 12793 12794 12795 12796 12797 12798 12799 12800 12801 12802 12803 12804 12805 12806 12807 12808 12809 12810 12811 12812 12813 12814 12815 12816 12817 12818 12819 12820 12821 12822 12823 12824 12825 12826 12827 12828 12829 12830 12831 12832 12833 12834 12835 12836 12837 12838 12839 12840 12841 12842 12843 12844 12845 12846 12847 12848 12849 12850 12851 12852 12853 12854 12855 12856 12857 12858 12859 12860 12861 12862 12863 12864 12865 12866 12867 12868 12869 12870 12871 12872 12873 12874 12875 12876 12877 12878 12879 12880 12881 12882 12883 12884 12885 12886 12887 12888 12889 12890 12891 12892 12893 12894 12895 12896 12897 12898 12899 12900 12901 12902 12903 12904 12905 12906 12907 12908 12909 12910 12911 12912 12913 12914 12915 12916 12917 12918 12919 12920 12921 12922 12923 12924 12925 12926 12927 12928 12929 12930 12931 12932 12933 12934 12935 12936 12937 12938 12939 12940 12941 12942 12943 12944 12945 12946 12947 12948 12949 12950 12951 12952 12953 12954 12955 12956 12957 12958 12959 12960 12961 12962 12963 12964 12965 12966 12967 12968 12969 12970 12971 12972 12973 12974 12975 12976 12977 12978 12979 12980 12981 12982 12983 12984 12985 12986 12987 12988 12989 12990 12991 12992 12993 12994 12995 12996 12997 12998 12999 13000 13001 13002 13003 13004 13005 13006 13007 13008 13009 13010 13011 13012 13013 13014 13015 13016 13017 13018 13019 13020 13021 13022 13023 13024 13025 13026 13027 13028 13029 13030 13031 13032 13033 13034 13035 13036 13037 13038 13039 13040 13041 13042 13043 13044 13045 13046 13047 13048 13049 13050 13051 13052 13053 13054 13055 13056 13057 13058 13059 13060 13061 13062 13063 13064 13065 13066 13067 13068 13069 13070 13071 13072 13073 13074 13075 13076 13077 13078 13079 13080 13081 13082 13083 13084 13085 13086 13087 13088 13089 13090 13091 13092 13093 13094 13095 13096 13097 13098 13099 13100 13101 13102 13103 13104 13105 13106 13107 13108 13109 13110 13111 13112 13113 13114 13115 13116 13117 13118 13119 13120 13121 13122 13123 13124 13125 13126 13127 13128 13129 13130 13131 13132 13133 13134 13135 13136 13137 13138 13139 13140 13141 13142 13143 13144 13145 13146 13147 13148 13149 13150 13151 13152 13153 13154 13155 13156 13157 13158 13159 13160 13161 13162 13163 13164 13165 13166 13167 13168 13169 13170 13171 13172 13173 13174 13175 13176 13177 13178 13179 13180 13181 13182 13183 13184 13185 13186 13187 13188 13189 13190 13191 13192 13193 13194 13195 13196 13197 13198 13199 13200 13201 13202 13203 13204 13205 13206 13207 13208 13209 13210 13211 13212 13213 13214 13215 13216 13217 13218 13219 13220 13221 13222 13223 13224 13225 13226 13227 13228 13229 13230 13231 13232 13233 13234 13235 13236 13237 13238 13239 13240 13241 13242 13243 13244 13245 13246 13247 13248 13249 13250 13251 13252 13253 13254 13255 13256 13257 13258 13259 13260 13261 13262 13263 13264 13265 13266 13267 13268 13269 13270 13271 13272 13273 13274 13275 13276 13277 13278 13279 13280 13281 13282 13283 13284 13285 13286 13287 13288 13289 13290 13291 13292 13293 13294 13295 13296 13297 13298 13299 13300 13301 13302 13303 13304 13305 13306 13307 13308 13309 13310 13311 13312 13313 13314 13315 13316 13317 13318 13319 13320 13321 13322 13323 13324 13325 13326 13327 13328 13329 13330 13331 13332 13333 13334 13335 13336 13337 13338 13339 13340 13341 13342 13343 13344 13345 13346 13347 13348 13349 13350 13351 13352 13353 13354 13355 13356 13357 13358 13359 13360 13361 13362 13363 13364 13365 13366 13367 13368 13369 13370 13371 13372 13373 13374 13375 13376 13377 13378 13379 13380 13381 13382 13383 13384 13385 13386 13387 13388 13389 13390 13391 13392 13393 13394 13395 13396 13397 13398 13399 13400 13401 13402 13403 13404 13405 13406 13407 13408 13409 13410 13411 13412 13413 13414 13415 13416 13417 13418 13419 13420 13421 13422 13423 13424 13425 13426 13427 13428 13429 13430 13431 13432 13433 13434 13435 13436 13437 13438 13439 13440 13441 13442 13443 13444 13445 13446 13447 13448 13449 13450 13451 13452 13453 13454 13455 13456 13457 13458 13459 13460 13461 13462 13463 13464 13465 13466 13467 13468 13469 13470 13471 13472 13473 13474 13475 13476 13477 13478 13479 13480 13481 13482 13483 13484 13485 13486 13487 13488 13489 13490 13491 13492 13493 13494 13495 13496 13497 13498 13499 13500 13501 13502 13503 13504 13505 13506 13507 13508 13509 13510 13511 13512 13513 13514 13515 13516 13517 13518 13519 13520 13521 13522 13523 13524 13525 13526 13527 13528 13529 13530 13531 13532 13533 13534 13535 13536 13537 13538 13539 13540 13541 13542 13543 13544 13545 13546 13547 13548 13549 13550 13551 13552 13553 13554 13555 13556 13557 13558 13559 13560 13561 13562 13563 13564 13565 13566 13567 13568 13569 13570 13571 13572 13573 13574 13575 13576 13577 13578 13579 13580 13581 13582 13583 13584 13585 13586 13587 13588 13589 13590 13591 13592 13593 13594 13595 13596 13597 13598 13599 13600 13601 13602 13603 13604 13605 13606 13607 13608 13609 13610 13611 13612 13613 13614 13615 13616 13617 13618 13619 13620 13621 13622 13623 13624 13625 13626 13627 13628 13629 13630 13631 13632 13633 13634 13635 13636 13637 13638 13639 13640 13641 13642 13643 13644 13645 13646 13647 13648 13649 13650 13651 13652 13653 13654 13655 13656 13657 13658 13659 13660 13661 13662 13663 13664 13665 13666 13667 13668 13669 13670 13671 13672 13673 13674 13675 13676 13677 13678 13679 13680 13681 13682 13683 13684 13685 13686 13687 13688 13689 13690 13691 13692 13693 13694 13695 13696 13697 13698 13699 13700 13701 13702 13703 13704 13705 13706 13707 13708 13709 13710 13711 13712 13713 13714 13715 13716 13717 13718 13719 13720 13721 13722 13723 13724 13725 13726 13727 13728 13729 13730 13731 13732 13733 13734 13735 13736 13737 13738 13739 13740 13741 13742 13743 13744 13745 13746 13747 13748 13749 13750 13751 13752 13753 13754 13755 13756 13757 13758 13759 13760 13761 13762 13763 13764 13765 13766 13767 13768 13769 13770 13771 13772 13773 13774 13775 13776 13777 13778 13779 13780 13781 13782 13783 13784 13785 13786 13787 13788 13789 13790 13791 13792 13793 13794 13795 13796 13797 13798 13799 13800 13801 13802 13803 13804 13805 13806 13807 13808 13809 13810 13811 13812 13813 13814 13815 13816 13817 13818 13819 13820 13821 13822 13823 13824 13825 13826 13827 13828 13829 13830 13831 13832 13833 13834 13835 13836 13837 13838 13839 13840 13841 13842 13843 13844 13845 13846 13847 13848 13849 13850 13851 13852 13853 13854 13855 13856 13857 13858 13859 13860 13861 13862 13863 13864 13865 13866 13867 13868 13869 13870 13871 13872 13873 13874 13875 13876 13877 13878 13879 13880 13881 13882 13883 13884 13885 13886 13887 13888 13889 13890 13891 13892 13893 13894 13895 13896 13897 13898 13899 13900 13901 13902 13903 13904 13905 13906 13907 13908 13909 13910 13911 13912 13913 13914 13915 13916 13917 13918 13919 13920 13921 13922 13923 13924 13925 13926 13927 13928 13929 13930 13931 13932 13933 13934 13935 13936 13937 13938 13939 13940 13941 13942 13943 13944 13945 13946 13947 13948 13949 13950 13951 13952 13953 13954 13955 13956 13957 13958 13959 13960 13961 13962 13963 13964 13965 13966 13967 13968 13969 13970 13971 13972 13973 13974 13975 13976 13977 13978 13979 13980 13981 13982 13983 13984 13985 13986 13987 13988 13989 13990 13991 13992 13993 13994 13995 13996 13997 13998 13999 14000 14001 14002 14003 14004 14005 14006 14007 14008 14009 14010 14011 14012 14013 14014 14015 14016 14017 14018 14019 14020 14021 14022 14023 14024 14025 14026 14027 14028 14029 14030 14031 14032 14033 14034 14035 14036 14037 14038 14039 14040 14041 14042 14043 14044 14045 14046 14047 14048 14049 14050 14051 14052 14053 14054 14055 14056 14057 14058 14059 14060 14061 14062 14063 14064 14065 14066 14067 14068 14069 14070 14071 14072 14073 14074 14075 14076 14077 14078 14079 14080 14081 14082 14083 14084 14085 14086 14087 14088 14089 14090 14091 14092 14093 14094 14095 14096 14097 14098 14099 14100 14101 14102 14103 14104 14105 14106 14107 14108 14109 14110 14111 14112 14113 14114 14115 14116 14117 14118 14119 14120 14121 14122 14123 14124 14125 14126 14127 14128 14129 14130 14131 14132 14133 14134 14135 14136 14137 14138 14139 14140 14141 14142 14143 14144 14145 14146 14147 14148 14149 14150 14151 14152 14153 14154 14155 14156 14157 14158 14159 14160 14161 14162 14163 14164 14165 14166 14167 14168 14169 14170 14171 14172 14173 14174 14175 14176 14177 14178 14179 14180 14181 14182 14183 14184 14185 14186 14187 14188 14189 14190 14191 14192 14193 14194 14195 14196 14197 14198 14199 14200 14201 14202 14203 14204 14205 14206 14207 14208 14209 14210 14211 14212 14213 14214 14215 14216 14217 14218 14219 14220 14221 14222 14223 14224 14225 14226 14227 14228 14229 14230 14231 14232 14233 14234 14235 14236 14237 14238 14239 14240 14241 14242 14243 14244 14245 14246 14247 14248 14249 14250 14251 14252 14253 14254 14255 14256 14257 14258 14259 14260 14261 14262 14263 14264 14265 14266 14267 14268 14269 14270 14271 14272 14273 14274 14275 14276 14277 14278 14279 14280 14281 14282 14283 14284 14285 14286 14287 14288 14289 14290 14291 14292 14293 14294 14295 14296 14297 14298 14299 14300 14301 14302 14303 14304 14305 14306 14307 14308 14309 14310 14311 14312 14313 14314 14315 14316 14317 14318 14319 14320 14321 14322 14323 14324 14325 14326 14327 14328 14329 14330 14331 14332 14333 14334 14335 14336 14337 14338 14339 14340 14341 14342 14343 14344 14345 14346 14347 14348 14349 14350 14351 14352 14353 14354 14355 14356 14357 14358 14359 14360 14361 14362 14363 14364 14365 14366 14367 14368 14369 14370 14371 14372 14373 14374 14375 14376 14377 14378 14379 14380 14381 14382 14383 14384 14385 14386 14387 14388 14389 14390 14391 14392 14393 14394 14395 14396 14397 14398 14399 14400 14401 14402 14403 14404 14405 14406 14407 14408 14409 14410 14411 14412 14413 14414 14415 14416 14417 14418 14419 14420 14421 14422 14423 14424 14425 14426 14427 14428 14429 14430 14431 14432 14433 14434 14435 14436 14437 14438 14439 14440 14441 14442 14443 14444 14445 14446 14447 14448 14449 14450 14451 14452 14453 14454 14455 14456 14457 14458 14459 14460 14461 14462 14463 14464 14465 14466 14467 14468 14469 14470 14471 14472 14473 14474 14475 14476 14477 14478 14479 14480 14481 14482 14483 14484 14485 14486 14487 14488 14489 14490 14491 14492 14493 14494 14495 14496 14497 14498 14499 14500 14501 14502 14503 14504 14505 14506 14507 14508 14509 14510 14511 14512 14513 14514 14515 14516 14517 14518 14519 14520 14521 14522 14523 14524 14525 14526 14527 14528 14529 14530 14531 14532 14533 14534 14535 14536 14537 14538 14539 14540 14541 14542 14543 14544 14545 14546 14547 14548 14549 14550 14551 14552 14553 14554 14555 14556 14557 14558 14559 14560 14561 14562 14563 14564 14565 14566 14567 14568 14569 14570 14571 14572 14573 14574 14575 14576 14577 14578 14579 14580 14581 14582 14583 14584 14585 14586 14587 14588 14589 14590 14591 14592 14593 14594 14595 14596 14597 14598 14599 14600 14601 14602 14603 14604 14605 14606 14607 14608 14609 14610 14611 14612 14613 14614 14615 14616 14617 14618 14619 14620 14621 14622 14623 14624 14625 14626 14627 14628 14629 14630 14631 14632 14633 14634 14635 14636 14637 14638 14639 14640 14641 14642 14643 14644 14645 14646 14647 14648 14649 14650 14651 14652 14653 14654 14655 14656 14657 14658 14659 14660 14661 14662 14663 14664 14665 14666 14667 14668 14669 14670 14671 14672 14673 14674 14675 14676 14677 14678 14679 14680 14681 14682 14683 14684 14685 14686 14687 14688 14689 14690 14691 14692 14693 14694 14695 14696 14697 14698 14699 14700 14701 14702 14703 14704 14705 14706 14707 14708 14709 14710 14711 14712 14713 14714 14715 14716 14717 14718 14719 14720 14721 14722 14723 14724 14725 14726 14727 14728 14729 14730 14731 14732 14733 14734 14735 14736 14737 14738 14739 14740 14741 14742 14743 14744 14745 14746 14747 14748 14749 14750 14751 14752 14753 14754 14755 14756 14757 14758 14759 14760 14761 14762 14763 14764 14765 14766 14767 14768 14769 14770 14771 14772 14773 14774 14775 14776 14777 14778 14779 14780 14781 14782 14783 14784 14785 14786 14787 14788 14789 14790 14791 14792 14793 14794 14795 14796 14797 14798 14799 14800 14801 14802 14803 14804 14805 14806 14807 14808 14809 14810 14811 14812 14813 14814 14815 14816 14817 14818 14819 14820 14821 14822 14823 14824 14825 14826 14827 14828 14829 14830 14831 14832 14833 14834 14835 14836 14837 14838 14839 14840 14841 14842 14843 14844 14845 14846 14847 14848 14849 14850 14851 14852 14853 14854 14855 14856 14857 14858 14859 14860 14861 14862 14863 14864 14865 14866 14867 14868 14869 14870 14871 14872 14873 14874 14875 14876 14877 14878 14879 14880 14881 14882 14883 14884 14885 14886 14887 14888 14889 14890 14891 14892 14893 14894 14895 14896 14897 14898 14899 14900 14901 14902 14903 14904 14905 14906 14907 14908 14909 14910 14911 14912 14913 14914 14915 14916 14917 14918 14919 14920 14921 14922 14923 14924 14925 14926 14927 14928 14929 14930 14931 14932 14933 14934 14935 14936 14937 14938 14939 14940 14941 14942 14943 14944 14945 14946 14947 14948 14949 14950 14951 14952 14953 14954 14955 14956 14957 14958 14959 14960 14961 14962 14963 14964 14965 14966 14967 14968 14969 14970 14971 14972 14973 14974 14975 14976 14977 14978 14979 14980 14981 14982 14983 14984 14985 14986 14987 14988 14989 14990 14991 14992 14993 14994 14995 14996 14997 14998 14999 15000 15001 15002 15003 15004 15005 15006 15007 15008 15009 15010 15011 15012 15013 15014 15015 15016 15017 15018 15019 15020 15021 15022 15023 15024 15025 15026 15027 15028 15029 15030 15031 15032 15033 15034 15035 15036 15037 15038 15039 15040 15041 15042 15043 15044 15045 15046 15047 15048 15049 15050 15051 15052 15053 15054 15055 15056 15057 15058 15059 15060 15061 15062 15063 15064 15065 15066 15067 15068 15069 15070 15071 15072 15073 15074 15075 15076 15077 15078 15079 15080 15081 15082 15083 15084 15085 15086 15087 15088 15089 15090 15091 15092 15093 15094 15095 15096 15097 15098 15099 15100 15101 15102 15103 15104 15105 15106 15107 15108 15109 15110 15111 15112 15113 15114 15115 15116 15117 15118 15119 15120 15121 15122 15123 15124 15125 15126 15127 15128 15129 15130 15131 15132 15133 15134 15135 15136 15137 15138 15139 15140 15141 15142 15143 15144 15145 15146 15147 15148 15149 15150 15151 15152 15153 15154 15155 15156 15157 15158 15159 15160 15161 15162 15163 15164 15165 15166 15167 15168 15169 15170 15171 15172 15173 15174 15175 15176 15177 15178 15179 15180 15181 15182 15183 15184 15185 15186 15187 15188 15189 15190 15191 15192 15193 15194 15195 15196 15197 15198 15199 15200 15201 15202 15203 15204 15205 15206 15207 15208 15209 15210 15211 15212 15213 15214 15215 15216 15217 15218 15219 15220 15221 15222 15223 15224 15225 15226 15227 15228 15229 15230 15231 15232 15233 15234 15235 15236 15237 15238 15239 15240 15241 15242 15243 15244 15245 15246 15247 15248 15249 15250 15251 15252 15253 15254 15255 15256 15257 15258 15259 15260 15261 15262 15263 15264 15265 15266 15267 15268 15269 15270 15271 15272 15273 15274 15275 15276 15277 15278 15279 15280 15281 15282 15283 15284 15285 15286 15287 15288 15289 15290 15291 15292 15293 15294 15295 15296 15297 15298 15299 15300 15301 15302 15303 15304 15305 15306 15307 15308 15309 15310 15311 15312 15313 15314 15315 15316 15317 15318 15319 15320 15321 15322 15323 15324 15325 15326 15327 15328 15329 15330 15331 15332 15333 15334 15335 15336 15337 15338 15339 15340 15341 15342 15343 15344 15345 15346 15347 15348 15349 15350 15351 15352 15353 15354 15355 15356 15357 15358 15359 15360 15361 15362 15363 15364 15365 15366 15367 15368 15369 15370 15371 15372 15373 15374 15375 15376 15377 15378 15379 15380 15381 15382 15383 15384 15385 15386 15387 15388 15389 15390 15391 15392 15393 15394 15395 15396 15397 15398 15399 15400 15401 15402 15403 15404 15405 15406 15407 15408 15409 15410 15411 15412 15413 15414 15415 15416 15417 15418 15419 15420 15421 15422 15423 15424 15425 15426 15427 15428 15429 15430 15431 15432 15433 15434 15435 15436 15437 15438 15439 15440 15441 15442 15443 15444 15445 15446 15447 15448 15449 15450 15451 15452 15453 15454 15455 15456 15457 15458 15459 15460 15461 15462 15463 15464 15465 15466 15467 15468 15469 15470 15471 15472 15473 15474 15475 15476 15477 15478 15479 15480 15481 15482 15483 15484 15485 15486 15487 15488 15489 15490 15491 15492 15493 15494 15495 15496 15497 15498 15499 15500 15501 15502 15503 15504 15505 15506 15507 15508 15509 15510 15511 15512 15513 15514 15515 15516 15517 15518 15519 15520 15521 15522 15523 15524 15525 15526 15527 15528 15529 15530 15531 15532 15533 15534 15535 15536 15537 15538 15539 15540 15541 15542 15543 15544 15545 15546 15547 15548 15549 15550 15551 15552 15553 15554 15555 15556 15557 15558 15559 15560 15561 15562 15563 15564 15565 15566 15567 15568 15569 15570 15571 15572 15573 15574 15575 15576 15577 15578 15579 15580 15581 15582 15583 15584 15585 15586 15587 15588 15589 15590 15591 15592 15593 15594 15595 15596 15597 15598 15599 15600 15601 15602 15603 15604 15605 15606 15607 15608 15609 15610 15611 15612 15613 15614 15615 15616 15617 15618 15619 15620 15621 15622 15623 15624 15625 15626 15627 15628 15629 15630 15631 15632 15633 15634 15635 15636 15637 15638 15639 15640 15641 15642 15643 15644 15645 15646 15647 15648 15649 15650 15651 15652 15653 15654 15655 15656 15657 15658 15659 15660 15661 15662 15663 15664 15665 15666 15667 15668 15669 15670 15671 15672 15673 15674 15675 15676 15677 15678 15679 15680 15681 15682 15683 15684 15685 15686 15687 15688 15689 15690 15691 15692 15693 15694 15695 15696 15697 15698 15699 15700 15701 15702 15703 15704 15705 15706 15707 15708 15709 15710 15711 15712 15713 15714 15715 15716 15717 15718 15719 15720 15721 15722 15723 15724 15725 15726 15727 15728 15729 15730 15731 15732 15733 15734 15735 15736 15737 15738 15739 15740 15741 15742 15743 15744 15745 15746 15747 15748 15749 15750 15751 15752 15753 15754 15755 15756 15757 15758 15759 15760 15761 15762 15763 15764 15765 15766 15767 15768 15769 15770 15771 15772 15773 15774 15775 15776 15777 15778 15779 15780 15781 15782 15783 15784 15785 15786 15787 15788 15789 15790 15791 15792 15793 15794 15795 15796 15797 15798 15799 15800 15801 15802 15803 15804 15805 15806 15807 15808 15809 15810 15811 15812 15813 15814 15815 15816 15817 15818 15819 15820 15821 15822 15823 15824 15825 15826 15827 15828 15829 15830 15831 15832 15833 15834 15835 15836 15837 15838 15839 15840 15841 15842 15843 15844 15845 15846 15847 15848 15849 15850 15851 15852 15853 15854 15855 15856 15857 15858 15859 15860 15861 15862 15863 15864 15865 15866 15867 15868 15869 15870 15871 15872 15873 15874 15875 15876 15877 15878 15879 15880 15881 15882 15883 15884 15885 15886 15887 15888 15889 15890 15891 15892 15893 15894 15895 15896 15897 15898 15899 15900 15901 15902 15903 15904 15905 15906 15907 15908 15909 15910 15911 15912 15913 15914 15915 15916 15917 15918 15919 15920 15921 15922 15923 15924 15925 15926 15927 15928 15929 15930 15931 15932 15933 15934 15935 15936 15937 15938 15939 15940 15941 15942 15943 15944 15945 15946 15947 15948 15949 15950 15951 15952 15953 15954 15955 15956 15957 15958 15959 15960 15961 15962 15963 15964 15965 15966 15967 15968 15969 15970 15971 15972 15973 15974 15975 15976 15977 15978 15979 15980 15981 15982 15983 15984 15985 15986 15987 15988 15989 15990 15991 15992 15993 15994 15995 15996 15997 15998 15999 16000 16001 16002 16003 16004 16005 16006 16007 16008 16009 16010 16011 16012 16013 16014 16015 16016 16017 16018 16019 16020 16021 16022 16023 16024 16025 16026 16027 16028 16029 16030 16031 16032 16033 16034 16035 16036 16037 16038 16039 16040 16041 16042 16043 16044 16045 16046 16047 16048 16049 16050 16051 16052 16053 16054 16055 16056 16057 16058 16059 16060 16061 16062 16063 16064 16065 16066 16067 16068 16069 16070 16071 16072 16073 16074 16075 16076 16077 16078 16079 16080 16081 16082 16083 16084 16085 16086 16087 16088 16089 16090 16091 16092 16093 16094 16095 16096 16097 16098 16099 16100 16101 16102 16103 16104 16105 16106 16107 16108 16109 16110 16111 16112 16113 16114 16115 16116 16117 16118 16119 16120 16121 16122 16123 16124 16125 16126 16127 16128 16129 16130 16131 16132 16133 16134 16135 16136 16137 16138 16139 16140 16141 16142 16143 16144 16145 16146 16147 16148 16149 16150 16151 16152 16153 16154 16155 16156 16157 16158 16159 16160 16161 16162 16163 16164 16165 16166 16167 16168 16169 16170 16171 16172 16173 16174 16175 16176 16177 16178 16179 16180 16181 16182 16183 16184 16185 16186 16187 16188 16189 16190 16191 16192 16193 16194 16195 16196 16197 16198 16199 16200 16201 16202 16203 16204 16205 16206 16207 16208 16209 16210 16211 16212 16213 16214 16215 16216 16217 16218 16219 16220 16221 16222 16223 16224 16225 16226 16227 16228 16229 16230 16231 16232 16233 16234 16235 16236 16237 16238 16239 16240 16241 16242 16243 16244 16245 16246 16247 16248 16249 16250 16251 16252 16253 16254 16255 16256 16257 16258 16259 16260 16261 16262 16263 16264 16265 16266 16267 16268 16269 16270 16271 16272 16273 16274 16275 16276 16277 16278 16279 16280 16281 16282 16283 16284 16285 16286 16287 16288 16289 16290 16291 16292 16293 16294 16295 16296 16297 16298 16299 16300 16301 16302 16303 16304 16305 16306 16307 16308 16309 16310 16311 16312 16313 16314 16315 16316 16317 16318 16319 16320 16321 16322 16323 16324 16325 16326 16327 16328 16329 16330 16331 16332 16333 16334 16335 16336 16337 16338 16339 16340 16341 16342 16343 16344 16345 16346 16347 16348 16349 16350 16351 16352 16353 16354 16355 16356 16357 16358 16359 16360 16361 16362 16363 16364 16365 16366 16367 16368 16369 16370 16371 16372 16373 16374 16375 16376 16377 16378 16379 16380 16381 16382 16383 16384 16385 16386 16387 16388 16389 16390 16391 16392 16393 16394 16395 16396 16397 16398 16399 16400 16401 16402 16403 16404 16405 16406 16407 16408 16409 16410 16411 16412 16413 16414 16415 16416 16417 16418 16419 16420 16421 16422 16423 16424 16425 16426 16427 16428 16429 16430 16431 16432 16433 16434 16435 16436 16437 16438 16439 16440 16441 16442 16443 16444 16445 16446 16447 16448 16449 16450 16451 16452 16453 16454 16455 16456 16457 16458 16459 16460 16461 16462 16463 16464 16465 16466 16467 16468 16469 16470 16471 16472 16473 16474 16475 16476 16477 16478 16479 16480 16481 16482 16483 16484 16485 16486 16487 16488 16489 16490 16491 16492 16493 16494 16495 16496 16497 16498 16499 16500 16501 16502 16503 16504 16505 16506 16507 16508 16509 16510 16511 16512 16513 16514 16515 16516 16517 16518 16519 16520 16521 16522 16523 16524 16525 16526 16527 16528 16529 16530 16531 16532 16533 16534 16535 16536 16537 16538 16539 16540 16541 16542 16543 16544 16545 16546 16547 16548 16549 16550 16551 16552 16553 16554 16555 16556 16557 16558 16559 16560 16561 16562 16563 16564 16565 16566 16567 16568 16569 16570 16571 16572 16573 16574 16575 16576 16577 16578 16579 16580 16581 16582 16583 16584 16585 16586 16587 16588 16589 16590 16591 16592 16593 16594 16595 16596 16597 16598 16599 16600 16601 16602 16603 16604 16605 16606 16607 16608 16609 16610 16611 16612 16613 16614 16615 16616 16617 16618 16619 16620 16621 16622 16623 16624 16625 16626 16627 16628 16629 16630 16631 16632 16633 16634 16635 16636 16637 16638 16639 16640 16641 16642 16643 16644 16645 16646 16647 16648 16649 16650 16651 16652 16653 16654 16655 16656 16657 16658 16659 16660 16661 16662 16663 16664 16665 16666 16667 16668 16669 16670 16671 16672 16673 16674 16675 16676 16677 16678 16679 16680 16681 16682 16683 16684 16685 16686 16687 16688 16689 16690 16691 16692 16693 16694 16695 16696 16697 16698 16699 16700 16701 16702 16703 16704 16705 16706 16707 16708 16709 16710 16711 16712 16713 16714 16715 16716 16717 16718 16719 16720 16721 16722 16723 16724 16725 16726 16727 16728 16729 16730 16731 16732 16733 16734 16735 16736 16737 16738 16739 16740 16741 16742 16743 16744 16745 16746 16747 16748 16749 16750 16751 16752 16753 16754 16755 16756 16757 16758 16759 16760 16761 16762 16763 16764 16765 16766 16767 16768 16769 16770 16771 16772 16773 16774 16775 16776 16777 16778 16779 16780 16781 16782 16783 16784 16785 16786 16787 16788 16789 16790 16791 16792 16793 16794 16795 16796 16797 16798 16799 16800 16801 16802 16803 16804 16805 16806 16807 16808 16809 16810 16811 16812 16813 16814 16815 16816 16817 16818 16819 16820 16821 16822 16823 16824 16825 16826 16827 16828 16829 16830 16831 16832 16833 16834 16835 16836 16837 16838 16839 16840 16841 16842 16843 16844 16845 16846 16847 16848 16849 16850 16851 16852 16853 16854 16855 16856 16857 16858 16859 16860 16861 16862 16863 16864 16865 16866 16867 16868 16869 16870 16871 16872 16873 16874 16875 16876 16877 16878 16879 16880 16881 16882 16883 16884 16885 16886 16887 16888 16889 16890 16891 16892 16893 16894 16895 16896 16897 16898 16899 16900 16901 16902 16903 16904 16905 16906 16907 16908 16909 16910 16911 16912 16913 16914 16915 16916 16917 16918 16919 16920 16921 16922 16923 16924 16925 16926 16927 16928 16929 16930 16931 16932 16933 16934 16935 16936 16937 16938 16939 16940 16941 16942 16943 16944 16945 16946 16947 16948 16949 16950 16951 16952 16953 16954 16955 16956 16957 16958 16959 16960 16961 16962 16963 16964 16965 16966 16967 16968 16969 16970 16971 16972 16973 16974 16975 16976 16977 16978 16979 16980 16981 16982 16983 16984 16985 16986 16987 16988 16989 16990 16991 16992 16993 16994 16995 16996 16997 16998 16999 17000 17001 17002 17003 17004 17005 17006 17007 17008 17009 17010 17011 17012 17013 17014 17015 17016 17017 17018 17019 17020 17021 17022 17023 17024 17025 17026 17027 17028 17029 17030 17031 17032 17033 17034 17035 17036 17037 17038 17039 17040 17041 17042 17043 17044 17045 17046 17047 17048 17049 17050 17051 17052 17053 17054 17055 17056 17057 17058 17059 17060 17061 17062 17063 17064 17065 17066 17067 17068 17069 17070 17071 17072 17073 17074 17075 17076 17077 17078 17079 17080 17081 17082 17083 17084 17085 17086 17087 17088 17089 17090 17091 17092 17093 17094 17095 17096 17097 17098 17099 17100 17101 17102 17103 17104 17105 17106 17107 17108 17109 17110 17111 17112 17113 17114 17115 17116 17117 17118 17119 17120 17121 17122 17123 17124 17125 17126 17127 17128 17129 17130 17131 17132 17133 17134 17135 17136 17137 17138 17139 17140 17141 17142 17143 17144 17145 17146 17147 17148 17149 17150 17151 17152 17153 17154 17155 17156 17157 17158 17159 17160 17161 17162 17163 17164 17165 17166 17167 17168 17169 17170 17171 17172 17173 17174 17175 17176 17177 17178 17179 17180 17181 17182 17183 17184 17185 17186 17187 17188 17189 17190 17191 17192 17193 17194 17195 17196 17197 17198 17199 17200 17201 17202 17203 17204 17205 17206 17207 17208 17209 17210 17211 17212 17213 17214 17215 17216 17217 17218 17219 17220 17221 17222 17223 17224 17225 17226 17227 17228 17229 17230 17231 17232 17233 17234 17235 17236 17237 17238 17239 17240 17241 17242 17243 17244 17245 17246 17247 17248 17249 17250 17251 17252 17253 17254 17255 17256 17257 17258 17259 17260 17261 17262 17263 17264 17265 17266 17267 17268 17269 17270 17271 17272 17273 17274 17275 17276 17277 17278 17279 17280 17281 17282 17283 17284 17285 17286 17287 17288 17289 17290 17291 17292 17293 17294 17295 17296 17297 17298 17299 17300 17301 17302 17303 17304 17305 17306 17307 17308 17309 17310 17311 17312 17313 17314 17315 17316 17317 17318 17319 17320 17321 17322 17323 17324 17325 17326 17327 17328 17329 17330 17331 17332 17333 17334 17335 17336 17337 17338 17339 17340 17341 17342 17343 17344 17345 17346 17347 17348 17349 17350 17351 17352 17353 17354 17355 17356 17357 17358 17359 17360 17361 17362 17363 17364 17365 17366 17367 17368 17369 17370 17371 17372 17373 17374 17375 17376 17377 17378 17379 17380 17381 17382 17383 17384 17385 17386 17387 17388 17389 17390 17391 17392 17393 17394 17395 17396 17397 17398 17399 17400 17401 17402 17403 17404 17405 17406 17407 17408 17409 17410 17411 17412 17413 17414 17415 17416 17417 17418 17419 17420 17421 17422 17423 17424 17425 17426 17427 17428 17429 17430 17431 17432 17433 17434 17435 17436 17437 17438 17439 17440 17441 17442 17443 17444 17445 17446 17447 17448 17449 17450 17451 17452 17453 17454 17455 17456 17457 17458 17459 17460 17461 17462 17463 17464 17465 17466 17467 17468 17469 17470 17471 17472 17473 17474 17475 17476 17477 17478 17479 17480 17481 17482 17483 17484 17485 17486 17487 17488 17489 17490 17491 17492 17493 17494 17495 17496 17497 17498 17499 17500 17501 17502 17503 17504 17505 17506 17507 17508 17509 17510 17511 17512 17513 17514 17515 17516 17517 17518 17519 17520 17521 17522 17523 17524 17525 17526 17527 17528 17529 17530 17531 17532 17533 17534 17535 17536 17537 17538 17539 17540 17541 17542 17543 17544 17545 17546 17547 17548 17549 17550 17551 17552 17553 17554 17555 17556 17557 17558 17559 17560 17561 17562 17563 17564 17565 17566 17567 17568 17569 17570 17571 17572 17573 17574 17575 17576 17577 17578 17579 17580 17581 17582 17583 17584 17585 17586 17587 17588 17589 17590 17591 17592 17593 17594 17595 17596 17597 17598 17599 17600 17601 17602 17603 17604 17605 17606 17607 17608 17609 17610 17611 17612 17613 17614 17615 17616 17617 17618 17619 17620 17621 17622 17623 17624 17625 17626 17627 17628 17629 17630 17631 17632 17633 17634 17635 17636 17637 17638 17639 17640 17641 17642 17643 17644 17645 17646 17647 17648 17649 17650 17651 17652 17653 17654 17655 17656 17657 17658 17659 17660 17661 17662 17663 17664 17665 17666 17667 17668 17669 17670 17671 17672 17673 17674 17675 17676 17677 17678 17679 17680 17681 17682 17683 17684 17685 17686 17687 17688 17689 17690 17691 17692 17693 17694 17695 17696 17697 17698 17699 17700 17701 17702 17703 17704 17705 17706 17707 17708 17709 17710 17711 17712 17713 17714 17715 17716 17717 17718 17719 17720 17721 17722 17723 17724 17725 17726 17727 17728 17729 17730 17731 17732 17733 17734 17735 17736 17737 17738 17739 17740 17741 17742 17743 17744 17745 17746 17747 17748 17749 17750 17751 17752 17753 17754 17755 17756 17757 17758 17759 17760 17761 17762 17763 17764 17765 17766 17767 17768 17769 17770 17771 17772 17773 17774 17775 17776 17777 17778 17779 17780 17781 17782 17783 17784 17785 17786 17787 17788 17789 17790 17791 17792 17793 17794 17795 17796 17797 17798 17799 17800 17801 17802 17803 17804 17805 17806 17807 17808 17809 17810 17811 17812 17813 17814 17815 17816 17817 17818 17819 17820 17821 17822 17823 17824 17825 17826 17827 17828 17829 17830 17831 17832 17833 17834 17835 17836 17837 17838 17839 17840 17841 17842 17843 17844 17845 17846 17847 17848 17849 17850 17851 17852 17853 17854 17855 17856 17857 17858 17859 17860 17861 17862 17863 17864 17865 17866 17867 17868 17869 17870 17871 17872 17873 17874
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE> Linux Gazette Index Page </TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#A000A0"
ALINK="#FF0000" >
<center><H2><IMG SRC="../gx/newlogo.jpg"
ALT="Linux Gazette... making Linux just a little more fun!">
</H2>
<H5>Copyright © 1996-98 Specialized Systems Consultants, Inc.</H5>
</center>
<P> <HR> <P>
<!--==================================================================-->
<center>
<H1>Welcome to Linux Gazette!<img src="../gx/tm.gif" alt="(tm)"></H1>
</center>
<P> <HR> <P>
<!--==================================================================-->
<H1>Published by:</H1>
<center>
<H1><A HREF="http://www.ssc.com/lj/">
<img src="../gx/ljlogo.gif" alt="Linux Journal" border=0></A></H1>
</center>
<P><HR> <P>
<H1>Sponsored by:</H1>
<table>
<tr>
<td><H1><A HREF="http://www.infomagic.com/"><img ALIGN="bottom" HSPACE="70" src=../gx/infologo.gif alt="InfoMagic" border=0></A></H1></td>
<td>
<H1><A HREF="http://www.suse.com/"><img ALIGN="bottom" src=../gx/suse.gif alt="S.u.S.E." border=0></A></H1></td>
<td>
<H1><A HREF="http://www.redhat.com/"><img HSPACE="70" src=../gx/redhat.gif alt="Red Hat" border=0></A></H1></td>
</tr>
<tr>
<td><H1><A HREF="http://www.LinuxMall.com/"><img ALIGN="bottom" HSPACE="70"
src=../gx/linuxmall.gif alt="LinuxMall" border=0></A></H1></td>
<td><H1><A HREF="http://www.linuxresources.com/"><img ALIGN="bottom"
src=../gx/linux6.gif alt="Linux Resources" border=0></A></H1></td>
<td><H1><A HREF="/cgi-bin/redirect.pl"><img HSPACE="70"
src=../gx/mozilla.gif alt="Mozilla" border=0></A></H1></td>
</tr>
</table>
<P>
Our sponsors make financial contributions toward the costs of
publishing <I>Linux Gazette</I>. If you would like to become a sponsor
of <I>LG</I>, e-mail us at <A
HREF="mailto:sponsor@ssc.com">sponsor@ssc.com</A>.
<P>
<I>Linux Gazette</I> is a non-commercial, freely available publication and will
remain that way. Show your support by using the products of our sponsors
and publisher.
<P> <HR> <P>
<!--=================================================================-->
<H1 align="center">Table of Contents <BR>August 1998 Issue #31</H1>
<P> <HR> <P>
<table><tr>
<td rowspan=4>
<UL>
<LI><A HREF="../lg_frontpage.html">The Front Page</A>
<LI><A HREF="./lg_mail31.html">The MailBag</A>
<ul>
<li><a HREF="./lg_mail31.html#ideas">Article Ideas</a>
<li><a HREF="./lg_mail31.html#help">Help Wanted</a>
<li><a HREF="./lg_mail31.html#gen">General Mail</a>
</ul>
<LI><A HREF="./lg_tips31.html">More 2 Cent Tips</A>
<ul>
<li><a HREF="./lg_tips31.html#brindle">
RE: Photogrammetry tools for Linux? in Issue 30</A>
<li><a HREF="./lg_tips31.html#esser">
Re: Suggestion for Article, simultaneous versions of Kernels</A>
<li><a HREF="./lg_tips31.html#reith">
Secondary IDE interface CDROM detection/automounting tip</A>
<li><a HREF="./lg_tips31.html#hornby">
Re ext2 partitions</A>
<li><a HREF="./lg_tips31.html#hegbloom">
pdf resumes: pdflatex</A>
<li><a HREF="./lg_tips31.html#mitchell">
Re: CHAOS</A>
<li><a HREF="./lg_tips31.html#leon">
Re: 3com network cards</A>
<li><a HREF="./lg_tips31.html#rudder">
ext2 Partitions</A>
<li><a HREF="./lg_tips31.html#lussier1">
RE: Searching (somewhat in vain) for sources on shell scripting</A>
<li><a HREF="./lg_tips31.html#lussier2">
Re: $.02 tips on ext2 Partitions </A>
<li><a HREF="./lg_tips31.html#huggie">
LG30 ext2 Partition tip</A>
<li><a HREF="./lg_tips31.html#np">
Modem Connecting Speed</A>
<li><a HREF="./lg_tips31.html#carlson">
Short Article on upgrading to SMP</A>
<li><a HREF="./lg_tips31.html#gushee">
Cross-platform Text Conversions</A>
</ul>
<LI><A HREF="./lg_bytes31.html">News Bytes</A>
<ul>
<li><a HREF="./lg_bytes31.html#general">News in General</a>
<li><a HREF="./lg_bytes31.html#software">Software Announcements</a>
</ul>
<LI><A HREF="./lg_answer31.html">The Answer Guy</A>, by James T. Dennis
<LI><A HREF="./searls.html">Betting on Darwin, Part 2</a>, by Doc Searls
<LI><A HREF="./canal.html">Copying Red Hat Legalities</a>, by Eric Canal
<LI><A HREF="./marsden.html">EMACSulation</A>, by Eric Marsden
<LI><A HREF="./roelofs.html">The Future of Linux</A>, by Greg Roelofs
<LI><A HREF="./gm.html">Graphics Muse</A>, by Michael J. Hammel
<LI><A HREF="./dibona.html">The Great Linux Revolt of 1998</a>,
by Chris Dibona
<li><A HREF="./rogers2.html">How I got my Adaptec AVA 1502 SCSI card to
work with Linux and Sane</A>, by James M. Rogers
<LI>New Release Reviews, by Larry Ayers
<ul>
<li><A HREF="./ayers1.html">Debian 2.0</a>
<li><A HREF="./ayers2.html">Software and Plants</a>
</ul>
<LI><A HREF="./raymond.html">Open Source's First Six Months</A>
by Eric Raymond
<LI><A HREF="./pavlicek.html">Personal Linux/Alpha System: 64 bits for
Under $500</A> by Russell C. Pavlicek
<li><A HREF="./pelletier.html">Product Review: The Roxen Challenger Web
Server</A>, by Michael Pelletier
<li><A HREF="./hughes.html">Selecting a Linux Distribution</A>,
by Phil Hughes
<li><A HREF="./richardson.html">Some History and Other Things</A>,
by Marjorie Richardson
<li><A HREF="./rogers1.html">The Standard C Library for Linux, Part Two</A>,
by James M. Rogers
<LI><A HREF="./lg_backpage31.html">The Back Page</A>
<ul>
<li><a HREF="./lg_backpage31.html#authors">About This Month's Authors</a>
<li><a HREF="./lg_backpage31.html#notlinux">Not Linux</a>
</UL>
</UL>
</td>
</tr><tr>
<td align=center>
<A HREF="lg_answer31.html">
<img src="../gx/dennis/answerwiz-255.gif" border=0 alt="">
</a>
<A HREF="lg_answer31.html"><i>The Answer Guy</i></a>
</td>
</tr><tr>
<td align=center>
<A HREF="gm.html">
<IMG SRC="../gx/hammel/banner-3.gif" border=0 alt="">
</a>
</td>
</tr>
</table>
<P> <HR><P>
<!--=============================================================-->
<A HREF="./issue31.txt">TWDT 1 (text)</A><BR>
<A HREF="./issue31.html">TWDT 2 (HTML)</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.
<!--=============================================================-->
<P> <HR><P>
Got any <I>great</I> ideas for improvements? Send your
<A HREF="mailto:gazette@ssc.com">comments, criticisms, suggestions
and ideas.</A>
<P><hr><p>
This page written and maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto: gazette@ssc.com">gazette@ssc.com</A>
<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_mail31.html#help">Help Wanted -- Article Ideas</a>
<li><a HREF="./lg_mail31.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> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Tue, 30 Jun 1998 17:59:52 -0600<BR>
From: Ernesto Vargas, <A HREF="mailto:evargas@aisinternational.com">
evargas@aisinternational.com</A> <BR>
Subject: <B>email to pager gateway</B>
<P>
I'm trying to find an e-mail to pager gateway. So for example if I send a
e-mail to 123456@mydomain.com it will send it to the pager system but if
I send and e-mail to evargas@mydomain.com leave the message in my pop
account. Additional to this is not to specify each pager our company has
more then 25,000 and is growing 1,000 per month.
<P>
Thanks,<BR>
Ernesto Vargas
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Thu, 2 Jul 1998 14:44:52 -0600<BR>
From: "MARK C ZOLTON", <A HREF="mailto:mcz@wheat.ksu.edu">
mcz@wheat.ksu.edu</A> <BR>
Subject: <B>SyQuest EZ 135 and Linux...</B>
<P>
For quite some time now I've been wondering how to set up my SyQuest
EZ 135 removable disk drive under Linux. If you haven't seen one,
it's kind of like a ZIP drive, but less of an industry standard. I
got it for free, otherwise I don't think it would have been worth it.
Anyway, I have about six 135MB disks for it and I'd like to give some
of that to Linux. Any ideas? I've seen a driver around before, but I
don't remember where to get it.
<P>
Mark
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 06 Jul 1998 17:01:00 +0300<BR>
From: admin, <A HREF="mailto:admin@jrol.com">
admin@jrol.com</A> <BR>
Subject: <B>chroot how to?</B>
<P>
I have been trying to lookup information on chroot command. i am trying
to see if I can restrict my users to there home directories. Same
concept like anonymous ftp.
So each user will have his or hers own work space. Is there any
documentation ?
Thank you for your time.
I have Red Hat5.0 and 5.1.
<P>
Khriss,
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sun, 05 Jul 1998 05:32:21 -0700<BR>
From: "Wizard Saturn", <A HREF="mailto:alexey@mailcity.com">
alexey@mailcity.com</A> <BR>
Subject: <B>problem mouse</B>
<P>
I have Genius Net Mouse (with a Magic-Button for making browsing easy, hardware scrolling).
I use Read Heat 5.0, but I cannot use Magic-Button for scrolling in Xwindows.What shall I do for using it.
<P>
Thank you in advance.<BR>
alexey
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Fri, 3 Jul 1998 17:47:35 +0100 (BST)<BR>
From: Sean Kelly, <A HREF="mailto:S.Kelly@newcastle.ac.uk">
S.Kelly@newcastle.ac.uk</A> <BR>
Subject: <B>Recognising the AMD K5-PR166</B>
<P>
I'm wondering whether any other readers have used the AMD K5-PR166
with Linux. It's just that my system seems to think it's a K5-PR133 and
states that it's running at 100MHz. Also, the BogoMips value indicates
that the processor is running at 100MHz.
Anyone any advice?
<P>
Thanks in advance,<BR>
Sean.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: 08 Jul 98 16:10:03 +0000<BR>
From: James Spenceley, <A HREF="mailto:creative@create.com.au">
creative@create.com.au</A> <BR>
Subject: <B>PPP help</B>
<P>
I'd like to set my Linux box up as a PPP remote access server. Can you
give me an idea of where i can find some info on how to do this ?
Or maybe someone who has done it with a positive outlook and an email
address.
Any help would be great
<P>
Thanks<BR>
James
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sat, 18 Jul 1998 02:20:45 +0200<BR>
From: silvia ballmann, <A HREF="mailto:sballmann@usa.net">
sballmann@usa.net</A> <BR>
Subject: <B>Linux AND Lanprinter</B>
<P>
Can I manage 800 lanprinter with one Linux system?
Thanks.
<P>
bye, Thomas
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Thu, 16 Jul 1998 16:50:41 -0700<BR>
From: al00584, <A HREF="mailto:al00584@snetsy.cpg.com.au">
al00584@snetsy.cpg.com.au</A> <BR>
Subject: <B>DStealth Linux FVWM driver</B>
<P>
I have a Diamond Stealth 3D 2000 Virge card. In initial drivers even 16
bit display modes were patchy. Now I'm wondering if there would be new
drivers developed which are stable since.
Furthermore I seem to have trouble installing and uninstalling files.
No Uninstallshield equivalent of windows??
<P>
Keep up the great service.<BR>
Andrew
<blockquote> <I>
(No need for an uninstall with Linux, <tt>rm -rf</tt> will remove all the
way down a directory tree. Be careful when you use it though. Also, if you
feel the need to write C code to this, there is an article in the August
issue of <I>Linux Journal</I> about how to write a "deltree" command.
--Editor)
</I> </blockquote>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Tue, 21 Jul 1998 10:07:36 -0700 (PDT)<BR>
From: <A HREF="mailto:dhelm@linknet.kitsap.lib.wa.us">
dhelm@linknet.kitsap.lib.wa.us</A> <BR>
Subject: <B>CHAOS</B>
<P>
I would like more information on the CHAOS article in the July (#30) issue
of LG. Are there any HOW-TO's on how to set a thing like that up? Since I
cant afford (OK, to cheap to buy..) one of the new systems, a little
network of cheap PC's sounds fun.
<P>
GreatDane
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 22 Jul 1998 00:08:57 EDT<BR>
From: <A HREF="mailto:Kilgorecom@aol.com">Kilgorecom@aol.com</A> <BR>
Subject: <B>notebook</B>
<P>
I have an OLD laptop that is probably only good for a doorstop or
running DOS. (I did download DR. DOS, and may give it a try, but am more
interested in putting a Linux system on it if possible. It is a DTK model
DLT-3311 which has a whopping Cx486dlc 33 Mhz processor and 4 MB of ram. It
has a monochrome monitor, and runs windows 3.x slow. I can't find any more
ram for it and am interested in finding out if there is a distribution of
Linux, BSD, or something of the like that would turn this into a suitable
companion for sales calls, including a database, pim, and anything else slick
I could get this to do until I can afford something less paeliolithic.
<P>
Any info you could send would be greatly appreciated, as well as being a big
feather in your Karmic hat.
<P>
Thanks in advance,
Kent
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 29 Jul 1998 08:18:28 +0000<BR>
From: Abduraghmaan Phillips, <A HREF="mailto:phillips@srvnac3.nac.ac.za">
phillips@srvnac3.nac.ac.za</A> <BR>
Subject: <B>Intel Celeron Processor</B>
<P>
I would like to know whether Linux will have any problems with
the Intel Celeron Processor.
<P>
Thanks, A. Phillips
<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: Mon, 27 Jul 1998 12:19:00 -0700<BR>
From: Antony Chesser, <A HREF="mailto:antonyc3@integritas.com">
antonyc3@integritas.com</A> <BR>
Subject: <B>The Other Side of the Story</B>
<P>
In the article, Installing Microsoft & Linux, by Manish P. Pagey, we
were treated to a (possibly justified) diatribe about the difficulties
in integrating Linux and Win95. However, to have a more balanced view,
one might also note the following:
<P>
I like Linux thus far. But I never mistake what I like with that is
simpler for the average person out there to use. Linux is as user
friendly as a hurled brick. Installing Linux puts you at a $ or #
prompt with no clue of where to go afterwards. I'm a Novell CNE with
many years experience working with PCs and networks, so I'm not daunted
by a non-intuitive prompt. And I already had a WIN95 machine set up so
I could access the net, download the truly excellent Linux Journal
online, and get support on how to install RPMs, etc. Had that not been
the case, however, I'd have been hard pressed to iron our the wrinkles
in my install, or to know which files to edit, or programs to run, to do
basic configuration. By comparison, win95 starts off in the gui mode,
allowing for rather intuitive productivity immediately. And yes, I
agree...it IS less stable. But crashing once a week (and I don't, by
the way... I applied the service pack to it, and I am very stable) is
still far better than not being able to even find out how to connect to
the net.
<P>
When Linux finishes installing, you're left with a # prompt. When WIN95
finishes installing, you've a fairly intuitive GUI that allows you to
quickly and easily install and run programs, connect to the net, and
**apply updates without re-compiling the kernel**.
<P>
So is win95 better than Linux? Nope. But neither is it inferior. Each
tool for the right job. If someone wants to set up their own PC and get
working quickly, the average person without experience in EITHER of the
OS's will have an easier time with win95. The trade off for that is
that yes, it IS less stable in the long run, and yes, you DO have to pay
for it. But considering that for the novice, the alternative is a PC
that he/she cannot use, the answer seems clear that one should get the
more easily installed and usable system. And that is not yet Linux.
<P>
I believe firmly that it one day WILL be. Many of the Linux Accolytes
have decried the attempt to enhance the functionality and ease of use
for Linux as the equivalent of "Starting down the Dark path of the
Force." (shrug) A bit melodramatic, if you ask me. Consider this...
that if we don't make it more user friendly, it will STAY a tiny share
of the home and small business market, which in turn means less software
written for it, and less call for us to support it for a living. Which,
given all it's virtues, seems a shame, doesn't it?
<P>
Let's keep the tight, elegant kernel that is Linux, and add ease of use
to it. If we do this, then like IBM's iron fisted dominance of the PC
market that faded, so too will Microsoft be "The Giant That Was."
However, if we insist on keeping Linux the OS that commands a religious
like fervor with a select few, and keeping it un-usable for the vast
majority of home and small business users, we'll continue to watch Mr.
Gates... the richest man in the world... sell upgrades to a kludgy OS
for more money than ANY current version of Linux gets. And we'll hear
his laughter.
<P>
Antony Chessor
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Tue, 07 Jul 1998 20:01:16 -0400<BR>
From: Kevin Fortin, <A
HREF="mailto:kfortin@ufl.edu">kfortin@ufl.edu</A><BR>
Subject: <B>RedHat Service Pack 1</B>
<P>
A badly organized yet sketchy editorial, upon these themes:
<P>
Just when Linux was starting to get a little more of the limelight,
Red Hat releases a new version of its popular distribution, the
regrettably buggy RH5.1 (a few weeks ahead of whatever product from
Redmond).
<P>
Many Linux beginners will probably start with Red Hat, because of the
ease of installation and the collection of software.
bo
Many or most beginners who want to give Linux a try will be installing
on their home machines, and will want to connect to the Internet by
modem afterwards (sorry -- PPP module not supported by kernel). Note:
this feature makes it difficult for home users to download patches from
FTP sites.
<P>
Furthermore, all users might want to install additional RPMs from CDROMS
(sorry -- unable to mount iso9660 filesystem).
<P>
[Strangely, when I upgraded an RH4.2 system to RH5.1, I did not have
trouble with PPP or CD-ROM support, but when I did an RH5.1 installation
from scratch, I did have problems. On that troublesome system, I
reformatted and reinstalled RH4.2.]
<P>
Many (or at least I) passed over RH5.0 (because I had read it needed a
lot of patching) and waited for RH5.1 to come out.
<P>
The Linux press doesn't appear to have commented on this situation.
Maybe I'm not looking hard enough, but I haven't come across any product
reviews or editorials in the on-line Linux press chastising RedHat for
rushing a defective product to market (ala Microsoft).
<P>
In spite of the above, "Me, I'm a Red Hat Man".
<P>
I'm no expert user, but I am a fan of the Linux phenomenon and certainly
of Red Hat, and I guess I'm just disappointed by the possibility that
potential newcomers might be frustrated and turned away from Linux by
the current Red Hat distribution.
<P>
I wish the people at Red Hat well, and will probably even send some money
their way, in appreciation of their 4.2 distrib as well as their ongoing
efforts. However, I might wait for RH5.2 or at least give the most
crucial of the RH5.1 patches enough time to make it onto the official CD
pressings.
<P>
[To be fair, I should note that I obtained RH5.1 on a $1.99 CD from
CheapBytes, but from reading the newsgroups, I don't believe that this
undermines the points made above. Also, I don't imagine that RedHat's
own commercial CD releases and their FTP site would be much out-of-sync,
and CheapBytes probably relies on the RH FTP site for its pressings.]
<P>
Kevin Fortin
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 06 Jul 1998 11:59:33 +0900<BR>
From: Tom Holroyd, <A HREF="mailto:tomh@taz.ccs.fau.edu">
tomh@taz.ccs.fau.edu</A> <BR>
Subject: <B>Compaq Unix Support</B>
<P>
Since the recent acquisition of Digital by Compaq, I think it's important
to let everybody know how they can show their support of Linux on
Compaq's
AXP platform. Jon Hall, Unix Software Group Senior Leader inside
Compaq, and
also Executive director of Linux International, has posted the following
announcement to axp-list@redhat.com
<P>
url: http://archive.redhat.com//axp-list/1998-June/0567.html
<P>
Remember that if a major player such as Compaq started shipping machines
(and not
only axps) with Linux pre-loaded, it would do much for Linux popularity.
<P>
<blockquote> <font color="blue">
Since sending them all one at a time to Mr. Pfeiffer will only make him
pissed off in the long run, you are welcome to send them to me, and I will
roll them up for him, and present them all at once.
I would suggest including in the letter (along with whatever else you want):
Your name, Your occupation, Whether you are buying the machine for personal
or business use, How many machines per year you buy (ONE is an o.k.
number!! Even one, every two or three years...he will understand, and they
mount up over many people), What type of machine you would buy (Alpha,
Intel), What size (how many megs memory, disk, etc.), and
Whether you would be interested in buying support.
Put as the subject line: YET ANOTHER UNIX USER
</font></blockquote>
<blockquote> <font color="blue">
I will guarantee you that my immediate management will look at them, at a
minimum, and I am fairly sure that they will get all the way up to Mr.
Pfeiffer, at least as a report. -- Jon "maddog" Hall,
<A HREF="mailto:maddog@zk3.dec.com">maddog@zk3.dec.com</A>
</font></blockquote>
<P>
Dr. Tom Holroyd
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 1 Jul 1998 12:04:27 +0100 (BST)<BR>
From: Karsten Ballueder, <A HREF="mailto:karsten@phy.hw.ac.uk">
karsten@phy.hw.ac.uk</A> <BR>
Subject: <B>Portable GUI C++ Libraries</B>
<P>
I have just read your article about "Portable GUI C++ Libraries" and
found it to be not very well researched. The information given about
wxWindows is outdated and a bit inaccurate.
<P>
You mentioned that Version 2.0 "is rumoured to be available in the
near future". Fact is, it has already been available in different
alpha releases for quite some time. While the code is still under
development, it is worth mentioning that it is already very usable and=20=
<P>
the turnaround time for bug fixes is quite low. At present there are
two implementations of wxWindows 2.0, the Windows version, available
from the main wxWindows web page mentioned in your article, and the
GTK based Unix version wxGTK, available from
http://www.freiburg.linux.de/~wxxt/ . Both versions are ready for
development right now ( We are using it to implement quite a large
e-mail application, http://Ballueder.home.ml.org/M ). A third version,=20=
<P>
based on Motif is under development.
<P>
You also mentioned the "side project" of a port of wxWindows which
doesn't require the Motif libraries. This "port", called wxXt has been=20=
<P>
around for many years and is probably the most-used wxWindows version
on Linux. It provides a complete Motif-lookalike interface, without
requiring Motif.
<P>
I find that if you look at the newer wxWindows releases, especially
wxGTK, they provide a much more complete environment and a much
improved user interface than other toolkits. Unfortunately, your
screenshots based on the older Motif version don't show this.
<P>
Regards, Karsten
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sun, 05 Jul 1998 00:09:07 +0000<BR>
From: general, <A HREF="mailto:general@gis.net">general@gis.net</A> <BR>
Subject: <B>LG30 article by Manish Pagey</B>
<P>
The most intelligent statement in this persons article was " Because
I'm stupid thats why". This article was not anything of general interest
but only a tirade about Bill Gates and Microsoft.
<P>
If your Linux is so great why must you degenerate the efforts and
products of others. Evidently, you people all live in the ivory towers
of academia and not the real world. Manish cites that the Feds and the
state ag's are after MS.
<P>
His vehemence smacks so much of hate that they may come for him next for
committing "hate crimes or if not hate crimes the incidence of a hate
crime", to quote one great liberal mayor here in Marxachusettes.
<P>
Why must all of Linux literature be permeated with the stink of
egotistical minds rotting putridly in the sun. Linux may be the
operating system of the future, that is if we can get by humid
putrification of your egotism.
<P>
Quite frankly, LG should hide in shame for printing such childish
gibberish. When I downloaded your recent issue to my Linux box, it was
with the hope that it might enlighten my experience with another
operating system and broaden my limited computer knowledge.
<P>
However, this trash will not deter my efforts to learn about Linux as it
has presented quite a challenge to run both it and W95. Here's hoping
that you and others can present a journal that will teach not disgust.
<P>
Thanks for letting me vent.
<P>
Robert E. Lee
<blockquote> <I>
I frankly don't have time to read every word of every article. I try to
avoid articles that are just hate mail. Obviously, I missed on this one if
it is as bad as you say. People are always asking for articles about
installing both Linux and Microsoft and the problems incurred while doing
so and this one looked to fit the bill.
I am sorry you were offended and that I did not do a better filtering job.
Thanks for writing -- Editor
</I> </blockquote>
<P>
Thank you for responding to my e-mail. However, my feelings were not of offense
but of total irritation that the Linux literature at all levels is saturated
with the debasing of others and their operating system.
<P>
There are forums where people can vent their dislikes but they do a disservice to
the Linux community by littering Linux literature all of types their personal
dislikes of others and their efforts.
<P>
Linux is being touted as the operating system of the future and it could very
well be that some day it will mature to this status. However, the Linux community
will have to mature with it if they expect this to happen. The type of article
will only repel people rather than attract them. Sell the features and benefits
of the Linux operating system and people will use it, denigrate others and their
efforts and Linux will languish.
<P>
Perhaps, it would be timely to include the 'Advocacy Mini How-to' by Paul L.
Rogers in a future edition in an effort help Linux users understand that tirades
and even snide remarks are counter to their goal of promoting Linux and are
destructive instead.
<P>
Thank you for lending an ear.<BR>
Robert E. Lee
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Tue, 07 Jul 1998 20:00:20 -0400<BR>
From: "Donald N. McKay", <A HREF="mailto:fstop@a-znet.com">
fstop@a-znet.com</A> <BR>
Subject: <B>Promoting Linux</B>
<P>
I listened intently to the Internet audio broadcast when Steve Jobs
supplied the voice over to the great race between a 333 MHz Pentium II
and Apple's G3. Of course, for those who did listen, we were to learn
that G3 ate Pentium's lunch when the two processors 'drag raced' through
a run-time application of Photoshop followed by animation, courtesy of
Macromedia Director. After listening to the Inter-cast, the world
suddenly became aware of the power of G3.
<P>
So.... Why not host a drag race on the Internet between Win 95, Win NT 4
and Win 98 and Linux? Hell, throw OS/2 Warp and Novell in there also.
(of course, using identical computers - processors, networking cards,
etc.). Ballyhoo the event with home page and search engine banner ads
(paid for by Red Hat, Caldera, and anyone else who'll make a buck out of
the event). Invite C|NET, Andover Net and ZDNet to cover the event. Run
Linux on Apache or however the Linux-meisters see fit, but let's see
once and for all just what this OS can do not only for speed but for
reliability. Then, and only then, will people not only take notice of
the product, but will, in fact, try it (buy it in some cases) and use
it.
<P>
What do you think?
<P>
Don McKay
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Tue, 14 Jul 1998 13:18:39 -0300<BR>
From: Michael Rasmusson, <A HREF="mailto:miker@bdamicro.com">
miker@bdamicro.com</A> <BR>
Subject: <B>the cruel reality</B>
<P>
Note: This essay assumes that the DoJ (Department of Justice) is nonexistent.
<P>
While I am a vocal Linux (and Unix) advocate and am deeply alarmed at
the thought of a Redmond controlled world, once in a while it helps to
sit down and examine reality.
<P>
Linux, at this point in its development, is still too much of a learning
curve for the majority of PC users. Most of the Linux users I know,
including myself, are software engineers, systems programmers, system
administrators, or some other variant of systems professional. All but
one use a commercial Unix variant at work. Some PC aficionados showed
genuine interest in my Linux box with its various GUIs during its
lifetime. The interest seemed to fade when they saw the command line
tricks still lurking under most of the more interesting things you can
do with Linux, even if these tricks are eventually launched from the
window manager. Until the time comes that Linux can be installed,
configured and maintained from a fright free interface, it will stay in
the realm of techies.
<P>
All is not hopeless though. Looking back 20 years to the beginning of
personal computing we see that the innovators and early adopters were
overwhelmingly techies and electronic hobbyists. We also see that
traditional IT types dismissed the early PC as inappropriate for
business use. Big Iron would rule the glass tower forever. PC advocates
retorted that they would eventually take over and the centralised
systems of MIS would be phased out as dinosaurs. Even respectable
periodicals like The Economist spouted drivel about PCs replacing
mainframes. The reality that has developed since the early 80's has been
neither a continuation of Big Iron nor a clean sweep by Wintel.
Centralised computing in the form of servers, including the new
generation of mainframe class systems, is doing just fine. Wintel PCs
have occupied most of the lower niches and are rising into new ones, but
will this rise continue until Wintel everywhere is a reality?
<P>
Most of the decision makers in IT right now are either managers who were
flexible enough to allow PCs into the systems framework back in the 80's
or they rose through the ranks during the last 15 years of PC centric
computing. Many of them honestly believe in Wintel's manifest destiny.
They have either known no other reality except Wintel dominance, or if
they have, it was one of IBM dominance. In either case the mind set is
very similar. Just like in the early 80's, a closed IS mind set seems
dead against branching from the safe and tried road and into new and
fresh territory. Fortunately, similar to what happened in the 80's, a
few courageous thinkers can see the widening cracks in the Windows.
<P>
To these "aware" techies the dream of an inexorable upward rise of the
Wintel PC into the world of workhorse systems is turning into a
nightmare. More people are starting to see this. The interest in Java,
the NC concept, managed PCs, Citrix ICA, all are early signs of a
growing dissatisfaction with the legacy of DOS. Windows boxes are
notoriously troublesome, but where are the alternatives? Linux is
showing itself to be promising, but it is _not_ yet ready to be adopted
by the herd. PC makers are aware of this and continue to bundle MS OSes,
you're better off with the devil you know.
<P>
The great hope of the Windows world is NT. With Windows98 showing itself
to be a yet another troublesome incarnation of DOS/Windows, NT is the
last refuge.
<P>
Strangely, instead of making NT the solid crash proof system people
crave, Redmond hacks and bloats up NT in hopes of getting it into higher
margin roles that are still too much for it to handle. Redmond pushes,
and reacts to criticism of its baby with patches, hacks and bloat.
Redmond keeps pushing, and NT continues to show itself as being unready
for the big leagues. Redmond say, "Wait! NT version 5.0 will have all
sorts of new features and capabilities that will make it perfect for
enterprise computing." More likely is NT 5.0, with it's 30+ million
lines of code, 24+ million of them new and untested, may just turn out
to be the most bug ridden bloated carcass of ugly hacks we've ever seen.
Redmond will once again have egg on its face, but this time will it be a
permanent stain?
<P>
If NT 5.0 turns out to be a huge disappointment, then the alternatives
will have to be ready to entice a growing pool of would-be defectors.
Linux will have to be more usable and manageable by the WinHerd. It will
have to be viable enough to convince OEMs that they can afford to break
their devil's bargains with Microsoft. If Redmond trips and once again
the lack of viable alternatives allows it to get on its feet and
continue building its empire, we have only ourselves to blame. We have
two years, can we do it?
<P>
Regards,<BR>
Mike
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 22 Jul 1998 10:37:33 -0500<BR>
From: "Pronovici, Kenneth", <A HREF="mailto:Kenneth.Pronovici@mchugh.com">
Kenneth.Pronovici@mchugh.com</A> <BR>
Subject: <B>CHAOS</B>
<P>
Please pass on my congratulations on a wonderful
article to Alex - his CHAOS system apparently caused
my coworkers to think of me, and my WHOPPeRS (Wacky
Hastily Organized Parallel Processesing Research Scheme)
system, which looks a lot like CHAOS. Only difference
is that mine is sitting on my bedroom floor... ;-)
<P>
Ken Pronovici
<P> <hr> <P>
<!--================================================================-->
<center>Published in <i>Linux Gazette</i> Issue 31, August 1998</center>
<!--====================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc31.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_tips31.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<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 © 1998 Specialized Systems Consultants, Inc. </H5>
<P>
<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>Contents:</H3>
<ul>
<li><a HREF="./lg_tips31.html#brindle">
RE: Photogrammetry tools for Linux? in Issue 30</A>
<li><a HREF="./lg_tips31.html#esser">
Re: Suggestion for Article, simultaneous versions of Kernels</A>
<li><a HREF="./lg_tips31.html#reith">
Secondary IDE interface CDROM detection/automounting tip</A>
<li><a HREF="./lg_tips31.html#hornby">
Re ext2 partitions</A>
<li><a HREF="./lg_tips31.html#hegbloom">
pdf resumes: pdflatex</A>
<li><a HREF="./lg_tips31.html#mitchell">
Re: CHAOS</A>
<li><a HREF="./lg_tips31.html#leon">
Re: 3com network cards</A>
<li><a HREF="./lg_tips31.html#rudder">
ext2 Partitions</A>
<li><a HREF="./lg_tips31.html#lussier1">
RE: Searching (somewhat in vain) for sources on shell scripting</A>
<li><a HREF="./lg_tips31.html#lussier2">
Re: $.02 tips on ext2 Partitions </A>
<li><a HREF="./lg_tips31.html#huggie">
LG30 ext2 Partition tip</A>
<li><a HREF="./lg_tips31.html#np">
Modem Connecting Speed</A>
<li><a HREF="./lg_tips31.html#carlson">
Short Article on upgrading to SMP</A>
<li><a HREF="./lg_tips31.html#gushee">
Cross-platform Text Conversions</A>
</ul>
<P> <hr> <P>
<!--================================================================-->
<a name="brindle"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
RE: Photogrammetry tools for Linux? in Issue 30
</H3>
Date: Wed, 29 Jul 1998 10:01:14 -0500<BR>
From: John Prindle, <A HREF="mailto:jprindle@mail.eden.com">
jprindle@mail.eden.com</A> <BR>
<P>
In the July 1998 issue of LG, this message was listed in the "Help Wanted"
section.
<blockquote> <font color="navy">
From: Maurizio Ferrari, Maurizio.Ferrari@tin.it <BR>
I am looking for a Linux program to do some close-range photogrammetry.
Close range photogrammetry is a technique that enables to reconstruct 3D
images from a series
of 2D pictures. There are a few powerful (and relatively inexpensive)
tools for Windows but none so far for Linux, that I know of. There was
something once upon a time
called Photo4D. Despite my massive Internet search, any occurrence of
Photo4D seems to have been wipe erased from the face of earth. It is
listed in SAL but all the links
fail.
I don't want to resort to buy and use Windows software for this. Help,
anyone?
</font></blockquote>
I have tried to e-mail the user back at his given address with some info
found on the company and product, but the address given is not valid.
So, here it is:
<P>
CompInt <BR>
712 Seyton Drive <BR>
Nepean, Ontario K2H 9R9 <BR>
Canada <BR>
General e-mail : <A HREF="mailto:compint@igs.net">compint@igs.net</A> <BR>
<A HREF="http:/www.igs.net/~compint/">http:/www.igs.net/~compint/ </A><BR>
This page updated 8/15/97 at 5:45:19 AM ET. <BR>
<P>
I found this article about the product on Computer Graphics World's site.
<P>
<A HREF="http://www.cgw.com/cgw/Archives/1996/09/09prod1_05.html">
http://www.cgw.com/cgw/Archives/1996/09/09prod1_05.html</A>
<P>
Product Spotlight<BR>
New Motion-Capture Tool <BR>
CGW Magazine - September 1996 <BR>
<P>
With CompInt's Photo4D-Pro, animators can now capture 2D and 3D
motion based on video recordings. The Windows 95/NT-based program,
available for $490, features auto-detection and auto-marking tools which
use pattern recognition technology to automatically detect and mark similar
feature points in images, making it possible to effectively digitize a large
number of points. The software enables users to capture accurate 3D
motion from multiple video recordings of a subject by tracking the feature
points in videos and computing their x, y, and z coordinates in each frame.
Furthermore, its advanced algorithms can synchronize recorded videos to
sub-frame accuracy, allowing the use of low-cost home video cameras.
<P>
Coinciding with this product launch, the company is also releasing
Photo4D-Lite V2.0, a $99 product designed for users who require only
3D digitizing and modeling capabilities. Both products will be available on
Windows 95/NT, SGI, Sun, HP, and Linux platforms. (Nepean, Ontario;
613-721-1643)
<P>
The web page that is listed is not valid, but hopefully this may help
people trying to locate this product.
<P>
John
<P> <hr> <P>
<!--================================================================-->
<a name="esser"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Re: Suggestion for Article, simultaneous versions of Kernels
</H3>
Date: Wed, 01 Jul 1998 10:39:21 +0100<BR>
From: Hans-Georg Esser, <A
HREF="mailto:esser@i2.informatik.rwth-aachen.de">
esser@i2.informatik.rwth-aachen.de</A>
<P>
<blockquote> <font color="navy">
From: Renato Weiner, reweiner@yahoo.com <BR>
Recently I was looking at the Gazette and I think I have a good suggestion of an
article that will be very useful for the Linux community.
I have had some technical difficulties of having two simultaneous versions of Kernels in my system. I mean a stable one and a developing one.
I searched the net looking for information of how to co-exist both but it's completely fragmented.
If somebody more experienced could put all this information together, it will certainly help a lot of people from kernels developers to
end-users.
</font></blockquote>
Let me state the following:
<P>
HOW TO HAVE COEXISTING KERNELS
<P>
First let me assume that, with "coexisting kernels", you meant to have several different
kernels (with different kernel numbers such as 2.0.34 and 2.1.101) each of which can
be chosen at boot time to be started. (The point is: I suppose, you don't want to
simultaneously __run__ different kernels, which of course is impossible.)
<P>
So, all you have to do is this:
<P>
For each kernel you want to use, get the kernel sources, e.g. as .tgz file, cd to
/usr/src, do a
<PRE>
tar xzf ../where/ever/it/is/package.tgz
</PRE>
then cd to /usr/src/linux-2.0.34 (e.g.)
and do the ordinary kernel configuration / compilation, i.e.
<PRE>
make config (or menuconfig or xconfig, whatever you like)
make zImage modules modules_install
cp arch/i386/boot/zImage /linux-2.0.34 (e.g.)
</PRE>
The last bit of the make will generate a directory /lib/modules/2.0.34 (e.g.) where
the modules are put.
<P>
Then edit the /etc/lilo.conf. Copy the parts that configure your "normal" system
start and change the name of the configuration. Also change the name of the
kernel binary to /linux-2.0.34 (e.g.).
<P>
Then proceed with the next kernel in identic behaviour. Nothing can be overwritten
during this process, because all of the kernel compilation is done in its separate
directory /usr/src/linux-2.x.y, and all the generated modules will be put in a
separate directory /lib/modules/2.x.y, and your zImage copy (residing in /) will
have a new name, as you have used an other kernel version.
<P>
When you're through with all your kernel versions and have added the last portion
to the /etc/lilo.conf file do a
<PRE>
lilo
</PRE>
at the prompt which will make lilo reinstall the boot manager with the changed
values. Now reboot, press [TAB] at the LiLo prompt and choose a kernel to use.
If you followed these steps, you will not have deleted your original entry in
/etc/lilo.conf, so if none of your newly compiled kernels can boot properly, you
can still boot the old kernel.
<P>
Hope it helps,
<P>
H.-G. Esser
<P> <hr> <P>
<!--================================================================-->
<a name="reith"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Secondary IDE interface CDROM detection/automounting tip
</H3>
Date: Wed, 1 Jul 1998 14:09:24 -0400<BR>
From: Jim Reith, <A HREF="mailto:reith@racores.com">reith@racores.com</A>
<blockquote> <font color="navy">
In the Linux Gazette #28 the question was asked:<BR>
Hello.I have the Linux Slackware 2.0.30 Walnut Creek.I installed it on
a Pentium 200 MMX with a 24x CD-ROM. During the installation I had to
write "ramdisk hdd=cdrom" for reading the CD-ROM, but after the
installation Linux doesn't see the CD-ROM. I have an atapi CD-ROM,
and when I tried to compile my kernel another time, I saw that atapi is
the default !!! So I don't understand where is the problem . What can I do?
</font></blockquote>
I ran into this same problem on my home machine. I found that the rc.cdrom
script wasn't checking for my drive properly. It couldn't find /dev/hdc and
I had to change/add in /dev/hd1a in order to get the master on the
secondary IDE interface. Once I put that in the list it worked fine. I
would suspect you should use /dev/hd1b for the slave?
<P>
Jim Reith
reith@racores.com
<P> <hr> <P>
<!--================================================================-->
<a name="hornby"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Re ext2 partitions
</H3>
Date: Thu, 2 Jul 1998 21:25:27 +0100<BR>
From: Alex Hornby, <A HREF="mailto:ahornby@plasma.ddns.org">
ahornby@plasma.ddns.org</A>
<P>
A much simpler solution to Albert T. Croft's file finding troubles of
only wanting to look at ext2 drives so as to exclude the vfat
partitions is:
<PRE>
find . -fstype ext2 -name foo
</PRE>
Replacing foo with whatever you are looking for.
<P>
Cheers,
Alex.
<P> <hr> <P>
<!--================================================================-->
<a name="hegbloom"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
pdf resumes: pdflatex
</H3>
Date: 04 Jul 1998 11:42:17 -0700<BR>
From: Karl M. Hegbloom, <A HREF="mailto:karlheg@inetarena.com">
karlheg@inetarena.com</A>
<P>
Dave Cook, the man who wrote the 2cent tip about createing a .pdf
file of a resume, must not have the latest TeTeX installed. Either
that, or he's not explored it much. ;-)
<P>
There is a `pdflatex' now, that creates .pdf files directly. It
works really well. There is also `pdftex', and `pdftexinfo'. You
can typeset texinfo documents with `info2pdf' now.
<P>
Last time I tried it, there was an off by one bug, apparently...
When you click a section heading in the table of contents panel, it
would jump to one section lower than the one you click. The bug has
been reported to the Debian bug tracking system.
<P>
Karl
<P> <hr> <P>
<!--================================================================-->
<a name="mitchell"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Re: CHAOS
</H3>
Date: Fri, 03 Jul 1998 16:07:14 +0100<BR>
From: Dom Mitchell, <A HREF="mailto:dom@phmit.demon.co.uk">
dom@phmit.demon.co.uk</A>
<P>
A point to note: the IP addresses used for the network should probably
be modified to be in one of the ranges set aside in RFC 1918. In
summary, they are:
<PRE>
10.0.0.0 - 10.255.255.255 (10/8 prefix)
172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
</PRE>
These addresses are guaranteed to not be in use on the Internet, should
you get connected later. See the RFC for the full rational.
<P>
Dom Mitchell
<P> <hr> <P>
<!--================================================================-->
<a name="leon"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Re: 3com network cards
</H3>
Date: Fri, 03 Jul 1998 20:33:13 +1000<BR>
From: leon, <A HREF="mailto:leon@desiin.com">leon@desiin.com</A>
<P>
Re: complaint about 3com network card being slow
in 2c tips.
<P>
3com 3c590 3c900 and 3c905 cards have a
setting stored into them.
Unlike traditional settings like
IO port , Interrupt, or media type, these cards
just take one setting ...
<P>
They actually have a setting that slows down
the card so that the CPU time isnt chewed up
with a flood of network traffic.
<P>
There is also a maximum throughput setting
and a medium setting.
<P>
leon
<P> <hr> <P>
<!--================================================================-->
<a name="rudder"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ext2 Partitions
</H3>
Date: Thu, 2 Jul 1998 17:58:32 -0700 (PDT)<BR>
From: David Rudder, <A
HREF="mailto:drig@noses.org">drig@noses.org</A>
<P>
In your 30th issue, Albert Croft wrote in with a script to search only
ext2 partitions. I believe you can do the same thing by using
<PRE>
find / -fstype ext2
</PRE>
David Rudder
<P> <hr> <P>
<!--================================================================-->
<a name="lussier1"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
RE: Searching (somewhat in vain) for sources on shell scripting
</H3>
Date: Mon, 06 Jul 1998 12:37:05 -0400<BR>
From: "Paul L. Lussier", <A HREF="mailto:plussier@BayNetworks.COM">
plussier@BayNetworks.COM</A>
<P>
Well, my 2 sec search turned this up. In addition, www.oreilly.com is the
only site you need for the definitive source on anything related to Unix.
<P>
Unix Shell Programming Revised Ed.<BR>
Kochan, Stephen G.; Wood, Patrick H.<BR>
0-672-48448-X<BR>
Hayden Books<BR>
<P>
Korn Shell Programming Tutorial<BR>
Rosenberg, Barry<BR>
0-201-56324-X<BR>
Addison Wesley<BR>
<P>
AWK Language Programming; A User's Guide for GNU AWK<BR>
Robbins, Arnold D.<BR>
1-882114-26-4<BR>
Free Software Foundation<BR>
<P>
Learning Perl, 2nd Edition<BR>
2nd Edition July 1997<BR>
Randal L. Schwartz & Tom Christiansen Foreword by Larry Wall<BR>
1-56592-284-0<BR>
302 pages, $29.95<BR>
<P>
Programming Perl, 2nd Edition<BR>
Larry Wall, Tom Christiansen & Randal L. Schwartz<BR>
2nd Edition September 1996<BR>
1-56592-149-6<BR>
670 pages, $39.95<BR>
<P>
Advanced Perl Programming<BR>
By Sriram Srinivasan<BR>
1st Edition August 1997<BR>
1-56592-220-4<BR>
434 pages, $34.95<BR>
<P>
Paul
<P> <hr> <P>
<!--================================================================-->
<a name="lussier2"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Re: $.02 tips on ext2 Partitions
</H3>
Date: Mon, 06 Jul 1998 13:23:42 -0400<BR>
From: "Paul L. Lussier", <A HREF="mailto:plussier@BayNetworks.COM">
plussier@BayNetworks.COM</A>
<blockquote> <font color="navy">
In the July 1998 issue of Linux Gazette, Albert T. Croft said:<BR>
We knew the files we were looking for would only be on the ext2 partitions.
We tried writing a batch file, using grep and gawk to get the mount points
for the ext2 partitions and handing them to find. This proved unworkable if
we were looking for patterns, such as h2*. We then tried to write just a find
command, using gawk and grep to get the mount points. This was somewhat
better, but using a print statement in gawk to get the names of the mount
points wouldn't work. Some help came with remembering that gawk has a printf
statement,allow.
Our final product, which we found quite useful and now have in our .bashrc >
files as linuxfind, is the following:<BR>
<tt>
find `mount|grep ext2|gawk '{printf "%s ", $3}'` -name
</tt>
</font></blockquote>
A quick perusal of the mount man page would have revealed the -t flag
obviating the necessity of the grep and gawk in the above command.
Therefore the command could have been shortened to:
<PRE>
find `mount -t ext2` -name
</PRE>
Also, the "locate" command is also available on linux (and has been documented
within the pages of LG and LJ a number of times). From the man page:
<blockquote>
locate searches one or more databases of file names
and displays the file names that contain the pattern.
</blockquote>
In addition, one could use 'which', 'whence' and 'whereis' to assist in the
location of files.
<P>
Paul
<P> <hr> <P>
<!--================================================================-->
<a name="huggie"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
LG30 ext2 Partition tip
</H3>
Date: Fri, 10 Jul 1998 21:31:03 +0100 (BST)<BR>
From: Simon Huggins, <A HREF="mailto:huggie@dial.pipex.com">
huggie@dial.pipex.com</A>
<P>
Thanks for your tip which I saw in the Linux Gazette.
<P>
I think you may want to add the -mount switch to your command line though.
<P>
That way find won't go onto other filesystems except those listed.
<P>
Since on my system, / is ext2 and /hdd/c is vfat, without the mount switch,
find *WOULD* search the vfat partitions too. The mount switch limits it to
those partitions which you list with your grep/gawk combination
<P>
Hope that helps.
<P> <hr> <P>
<!--================================================================-->
<a name="np"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Modem Connecting Speed
</H3>
Date: Wed, 22 Jul 1998 23:06:27 +0000<BR>
From: NP, <A HREF="mailto:np@cableinet.co.uk">np@cableinet.co.uk</A>
<P>
What speed is my modem connecting at ?
<P>
Got a new 56K modem and wondering how it's doing ?
Fed up with seeing "115200" ?
<P>
(This assumes Red Hat 5.0)...
<P>
Edit /etc/sysconfig/network-scripts/chat-ppp1
(or whatever chat file you use)
Insert a line:
<PRE>
'REPORT' 'CONNECT'
</PRE>
Edit /etc/sysconfig/network-scripts/ifup-ppp
<P>
Change this line:
<PRE>
connect "/usr/sbin/chat $chatdbg -f $CHATSCRIPT"
</PRE>
to:
<PRE>
connect "/usr/sbin/chat $chatdbg -f $CHATSCRIPT" 2>/dev/console
</PRE>
- to log to the console,
or:
<PRE>
connect "/usr/sbin/chat $chatdbg -r /var/log/modem-speed -f $CHATSCRIPT"
</PRE>
- to log to a file /var/log/modem-speed
<P>
You'll see entries like:
<PRE>
chat: Jul 22 22:31:06 CONNECT 52000/ARQ/V90/LAPM/V42BIS
</PRE>
(If you're lucky!)
<P>
NP
<P> <hr> <P>
<!--================================================================-->
<a name="carlson"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Short Article on upgrading to SMP
</H3>
Date: Mon, 27 Jul 1998 16:06:08 -0500 (CDT)<BR>
From: Andy Carlson, <A HREF="mailto:andyc@andyc.carenet.org">
andyc@andyc.carenet.org</A>
<P>
My son and I upgraded to an SMP machine this last weekend. We
encountered some problems, and thought it might make an interesting
short article. Use it if you can :).
<P>
About a month ago, I acquired two 4.3GB UW SCSI drives from IBM. At the time, I was running an old Adaptec 1542 SCSI card (with no problems I might add), but it does not support Ultra Wide, and it was an ISA card. In the process of looking at PCI Ultra Wide SCSI Cards (I was going to purchase an Adaptec 2940UW since I had some experience with them), I came across a Micronics W6-LI motherboard, dual Pentium Pro, with builtin Adaptec AIC7880 SCSI UW chip. This is the story of that project.
<P>
My son and I started at 8:00 Saturday morning. We took my existing ATX machine, which housed an Intel VS440 motherboard, 2GB IDE drive, 2GB SCSI drive, and SCSI cdrom apart. We removed everything - Motherboard, Drives, Powersupply, etc. This is because the Micronics board is big, and we wanted as few obstructions as possible while we put the motherboard in. We put the motherboard, two 4.3GB UW drives, CDROM, and powersupply back in. I only needed the data from the IDE drive, so we hooked that up also, but did not install it in the case. We booted into the bios, and set a few things, including setting it to use the MP1.4 spec. We inserted the Slackware 3.4 boot and root disks, and it booted just fine. The hardware portion was a snap.
<P>
We set up the partitions on the two UW drives, and copied the data from the IDE drive to a partition on the frist UW drive. We then started the installation of Linux. We installed the Slackware 3.4, with kernel 2.0.30. This went well. We booted, and this came up. We were anxious to try SMP, so we compiled a kernel with SMP, and this was where the problems started. The machine would hang after running about a minute in SMP mode. We decided to download a newer kernel, so we tried 2.0.34. There is apparently a nasty bug in 2.0.34 on SMP machines. The SCSI chip could not be reset, and was looping trying to do this. We also tried 2.0.35, with no luck. This behaviour happened whether we compiled for single or multiple processor. The next step was to try a development kernel (this was the first time for me). We downloaded 2.1.107, and installed it. We also found that to use this kernel, we need updated binutils, modutils, libc, ld.so, procps, procinfo, and mount. The upshot of this was, that 17 hours after we started, we had a running multiprocessor machine.
<P>
Some things to keep in mind:
<ul>
<li>SMP is turned on by uncommenting the SMP=1 line in the kernel Makefile (this was unnecessary in the developement kernel - it was on by default)
<li>Have as many things downloaded as you can think of. It never occurred to me that it would be handy to have some newer kernels already on the hard drive.
<li>Read the doc for the development kernels carefully - we missed some of the software that needed to be upgraded.
<li>Starting with 2.1.102 development kernel, IP Masquerading was changed. The doc for the new IPCHAINS program is at http://www.adelaide.net.au/~rustcorp/ipfwchains
</ul>
<P> <hr> <P>
<!--================================================================-->
<a name="gushee"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Cross-platform Text Conversions
</H3>
Date: Thu, 30 Jul 1998 14:28:37 +0900<BR>
From: Matt Gushee, <A HREF="mailto:matt@it.osha.sut.ac.jp">
matt@it.osha.sut.ac.jp</A>
<P>
Well, I had some text files that I needed to convert from UNIX to DOS
format. Downloaded the 'unix2dos' program ... and discovered to my
horror that it was an A.OUT BINARY! Thought they'd purged all of those
from the archives ;-) But seriously, I couldn't run the program, so I
came up with a Tcl script to do the job. It can convert text files in
any direction between UNIX, DOS and Mac formats. It has only been
tested w/ Tcl 8.0, but since it's very simple, I imagine it'll work
with earlier versions too. It has a small bug: when converting from
DOS format, it adds one extra newline at the end of the file.
<P>
Why Tcl? Well ...
<ul>
<li>I'm sure it's possible to do these conversions with sed or even
bash; it might even be simple once you know the trick. But after
several hours of reading man pages and experimenting, I couldn't
figure out how.
<li>Didn't feel like dusting off my old Perl book.
<li>Tcl is cool.
<li>It turned out to be really easy to do this in Tcl.
</ul>
To use the script, you should:
<ol>
<li>If necessary, edit the pathname for tclsh.
<li>Save it wherever you want to, with any name (I call it
textconv.tcl), and make it executable.
<li>symlink it to any or all of the following names, depending on which
conversions you want to do, in a directory in $PATH:
<pre>
d2m d2u m2d m2u u2d u2m
</pre>
These names must be exactly as shown in order for the script to work.
<li>To use, type the appropriate command with a source file and
destination file as arguments. For example, to convert a Mac text file
to UNIX format:
<pre>
$ m2u macintosh.txt unix.txt
</PRE>
</ol>
That's it! Hope you find it useful.
<pre>
------ cut below this line ------------------------------
#!/usr/bin/tclsh
# capture the command name that invoked us and the
# source and destination filenames
set convtype $argv0
set infile [lindex $argv 0]
set outfile [lindex $argv 1]
set inchannel [open $infile "r"]
set outchannel [open $outfile "w"]
# according to the command name, set the end-of-line
# and end-of-file characters to the appropriate values
switch -glob -- $convtype {
*2d {
fconfigure $outchannel -translation "crlf" -eofchar "\x1a"
}
*2m {
fconfigure $outchannel -translation cr
}
*2u {
fconfigure $outchannel -translation lf -eofchar ""
}
default {
error "Invalid command name. This script must be \n\
invoked through a symbolic link with\n one of the following \
names:\n d2m, d2u, m2d, m2u, u2d, or u2m."
}
}
while {[gets $inchannel line] >= 0} {
# if converting from DOS, lose the end-of-file character
if {[string match "*d2*" $convtype]} {
set line [string trimright $line "\x1a"]
}
puts $outchannel $line
}
close $inchannel
close $outchannel
#------------ end Tcl script--------------------------------
</pre>
Matt Gushee
Oshamanbe, Hokkaido, Japan
<P> <hr> <P>
<!--================================================================-->
<center>Published in <I>Linux Gazette</I> Issue 31, August 1998</center>
<P> <hr> <P>
<!--================================================================-->
<A HREF="./lg_toc31.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_mail31.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
<A HREF="./lg_bytes31.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<H5>This page maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto: gazette@ssc.com">gazette@ssc.com</A><BR>
Copyright © 1998 Specialized Systems Consultants, Inc. </H5>
<P>
<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_bytes31.html#general">News in General</a>
<li><a HREF="./lg_bytes31.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/cover53.gif"></center>
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
September <I>Linux Journal</I>
</H3>
<P>
The September issue of <A HREF="http://www.linuxjournal.com/"><I>Linux
Journal</I></A> will be hitting the newsstands August 7.
The focus of this issue is Graphics and Multimedia and we have feature articles
on LibGGI, Open Inventor, XIE, VTK, SGI audio applications and more.
Check out the Table of Contents at
<A HREF="http://www.linuxjournal.com/issue53/index.html">
http://www.linuxjournal.com/issue53/index.html</A>.
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> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
StarOffice Promotional Price
</H3>
<P>
Date: Fri, 17 Jul 1998 09:49:44 GMT<BR>
Caldera is pleased to announce that for a limited time, the Office
Suite StarOffice 4.0 for Linux is on sale for $49 (regularly $99).
<P>
This price is for a commercial license to the most popular and full-
featured application suite on Linux. StarOffice 4.0 includes:
<ul>
<li>Word processor
<li>Spreadsheet
<li>Graphic and presentation package
<li>Web browser with HTML editor
<li>Graphical desktop interface
</ul>
In a recent product review, SCO World declared StarOffice "better than MS
Office", and with "No crashing and no waiting, the only reason people are
still using other office packages is they haven't tried StarOffice yet!"
(June/July 1998, page 34)
<P>
For more information:
<A HREF="http://www.caldera.com/">http://www.caldera.com/</A> <BR>
Bryan Standley, <A HREF="mailto:bryanst@caldera.com">
bryanst@caldera.com</A> <BR>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
Atlanta Linux Showcase Registration is Open
</H3>
<P>
Date: Fri, 17 Jul 1998 10:30:48 GMT<BR>
Online registration for the 2nd Annual Atlanta Linux Showcase is now
open!
<P>
The registration process has been automated this year, and
pre-registration for the conference sessions will require payment with
a credit-card from our secure web server. Prices for the showcase are
as follows:
<P>
Exhibition Hall Admission: FREE! (A registration is required)<BR>
Conference pre-registration: $60/day ($35/day for students/seniors)<BR>
Conference after October 1: $75/day ($50/day for students/seniors)<BR>
<P>
The 2nd Annual Atlanta Linux Showcase will be held October 23rd and
24th at the Atlanta Apparel Mart and is presented by the Atlanta Linux
Enthusiasts and Linux International. The showcase will feature an
exhibition hall for vendors of Linux related hardware, software, and
services, live demonstrations of Linux related products, and
conference sessions featuring some of the most respected members of
the Linux community.
<P>
For more information:<BR>
<A HREF="http://www.ale.org/showcase/">http://www.ale.org/showcase/</A>
<BR>
<A HREF="mailto:registration@ale.org">registration@ale.org</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
The Antarctic Project - OpenSource WWW/FTP/mailing list hosting
</H3>
<P>
Date: Mon, 20 Jul 1998 10:40:15 GMT<BR>
Have a killer OpenSource application, but no where to host the web pages?
Want to let the world read your Perl tutorial? Need a home for your
Linux Users Group?
<P>
Penguin Computing is proud to announce the Antarctic Project, an internet
server specifically for OpenSource/Linux web pages, mailing lists and ftp
sites. If you have a site that needs a home, we may be able to host it on
the Antarctic Server. This service is completely free.
<P>
The Antarctic Project is limited to sites having to do with Linux or other
OpenSource projects. All sites must be non-commercial. Internet
connectivity is provided by Penguin Computing ISP services. The
Antarctica Server is located in Silicon Valley, and has a 100 Megabit
connection to Mae-West and CIX-PAIX.
<P>
For more information:
<A HREF="mailto:isp@penguincomputing.com">isp@penguincomputing.com</A> <BR>
<A HREF="http://www.penguincomputing.com/antarctic.html">
http://www.penguincomputing.com/antarctic.html</A> <BR>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
Microsoft ordered to show Windows95 source with Caldera (fwd)
</H3>
<P>
Date: Wed, 29 Jul 1998 10:42:11 -0700 (PDT)
<P>
<A HREF="http://www.sltrib.com/07291998/utah/45304.htm">
http://www.sltrib.com/07291998/utah/45304.htm</A>
<P>
"Microsoft Corp. must hand over the computer source code for
Windows 95 to Caldera Inc., a small Orem software company suing it for
alleged antitrust violations, a Utah federal judge ruled Tuesday. "
<P>
[...]
<P>
"The judge did agree to warn the Caldera experts and lawyers the code
cannot be used for any purpose other than the litigation. Jardine said
Microsoft will provide the code within five days. "
<P>
Three Point's Linux News --- <A HREF="http://www.threepoint.com/">
http://www.threepoint.com/</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
Linux Links
</H3>
<P>
"Choice is Not a Four Letter Word" by Joshua Galun,
<A HREF="http://www.shawmag.com/archive/0105/01.html">
http://www.shawmag.com/archive/0105/01.html</A>
<P>
Oracle and inofrmix now on Linux:
<A
HREF="http://www.infoworld.com/cgi-bin/displayStory.pl?980717.whorlinux.htm">
http://www.infoworld.com/cgi-bin/displayStory.pl?980717.whorlinux.htm</A>
<P>
"Engineers and Linux": <A HREF="./matsumoto.txt">matsumoto.txt</A>
<P>
Linux in the Enterprise? (Wired News Daily):
<A
HREF="http://www.wired.com/news/news/email/explode-infobeat/technology/story/13621.html">
http://www.wired.com/news/news/email/explode-infobeat/technology/story/13621.html</A>
<P>
Pre-installation checklistnini-HOWTO:
<A HREF="http://members.tripod.com/~algolog/lnxchk.htm">
http://members.tripod.com/~algolog/lnxchk.htm</A>
<P>
SmallEiffel is a GPL implementation of Eiffel, a simple yet
full-featured object-oriented programming language:
<A HREF="http://sunsite.unc.edu/pub/Linux/devel/lang/eiffel/">
http://sunsite.unc.edu/pub/Linux/devel/lang/eiffel/</A> <BR>
<A
HREF="http://www.loria.fr/SmallEiffel/">http://www.loria.fr/SmallEiffel
</A>
<P>
Linux questionnaire: <A HREF="http://aachen.heimat.de/alug/fragebogen/">
http://aachen.heimat.de/alug/fragebogen/</A>
<P>
Beowulf questionnaire: <A HREF="http://aachen.heimat.de/alug/beowulf/">
http://aachen.heimat.de/alug/beowulf/</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
Digital Library Project
</H3>
<P>
Date: Fri, 17 Jul 1998 10:30:19 GMT<BR>
Announcing a new Linux project: The Digital Image Library Project (DILP).
DLIP is an online image database that would be used to archive images for
searching and viewing. Currently slide libraries used by art historians
consist of tens of thousands of individual 35 mm slides. These slides are
organized, and sometimes there information is index in a computer. But
never all of images and there information. The goal of this project is to
create a database with a web interface that can be used from multiple
locations to allow researchers access a digital index.
<P>
For more information:<BR>
<a
href="http://www.hp.uab.edu/digital-library">http://www.hp.uab.edu/digital-library</a><BR>
Ed Kujawski, <A HREF="mailto:kujawski@cter.eng.uab.edu">
kujawski@cter.eng.uab.edu</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
Subject: Linux Hardware Certification Laboratory Announced
</H3>
<P>
July 1, 1998, Dallas, Texas<BR>
<P>
Aegis Data Systems and Best4u Internet Services today announced a joint
collaboration to establish a testing center for Linux hardware
compatibility. The focal point of the center will be a web site at <A
HREF="http://Linux.Best4u.com/">http://Linux.Best4u.com/</A>, which will be online
by August 1, 1998. The web site will be used to publish results of tests and provide a central registration for hardware manufacturers and Linux device driver programmers.
<P>
For more information:<BR>
Mark Stingley, <A HREF="mailto:sarge@AegisData.com">sarge@AegisData.com</A>
<a name="software"></a>
<P> <hr> <P>
<!-- =================================================================== -->
<center><H3><font color="green">Software Announcements</font></H3></center>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
Informix SE on Linux
</H3>
<P>
Informix Corporation has announced the release of Informix SE on Linux.
Informix SE is a SQL-based database engine for small to medium-range
applications. It is a solution for businesses that want the power of SQL
without the complex database administration requirements. Linux application
developers are now able to download a free developer<\#146>s kit that includes
Informix SE, ESQL/C for Linux, Informix<\#146>s SQL toolkit, I-Connect (the
runtime version of ESQL/C). Informix SE and ESQL/C in Linux is available
from Caldera and S.u.S.E on the Intel platform.
<P>
For more information:<BR>
Informix Software, Inc.,
<A HREF="http://www.informix.com/">http://www.informix.com/</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
CALDERA ANNOUNCES SUPPORT OF KDE TECHNOLOGY
</H3>
<P>
OREM, UT July 16, 1998 Caldera, Inc. today announced the adoption
and support of KDE technology. Caldera will include the K Desktop
Environment in the OpenLinux 1.2.2 maintenance release due out the end
of September. KDE will be the default desktop in the Caldera OpenLinux
2.0 product, scheduled for release the fourth quarter of this year.
<P>
Caldera is supporting KDE technology by hosting the official KDE U.S.
FTP site at ftp.us.kde.org. Provided by Caldera, KDE 1.0 binary and
source rpms for OpenLinux 1.2 are available for download from the site.
<P>
The K Desktop Environment is an international Internet based volunteer
project which develops the freely available graphical desktop
environment for the UNIX platform.
<P>
For more information:<BR>
Caldera, Inc., <A HREF="http://www.caldera.com/">http://www.caldera.com/</A>
<BR>
KDE, <A HREF="http://www.kde.org/">http://www.kde.org</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
Ingres port to Linux
</H3>
<P>
Date: Thu, 9 Jul 1998 12:32:13 -0700<BR>
The NAIUA (North American Ingres Users Association) would like to
announce that Computer Associates has committed to porting the Ingres
II RDBMS to Linux by the end of Q3 1998. It will be included on the
UNIX Software Development Kit which will be available for free on the
CA Web site at <A HREF="http://www.cai.com/">http://www.cai.com/</A>.
(Note: the SDK currently available on CA's web site is for Windows
NT only and does not yet include Ingres for Linux)
<P>
Ingres II for Linux was demoed with Red Hat at CA-World 98 and will be
available for Linux platforms running Red Hat 2.0 pl27 as well as other
compatible versions. It will be free with the Ingres II SDK for UNIX.
Support structures have not been determined by CA at this time.
<P>
For more information:
Bob Griffith, <A HREF="mailto:tech_tools@naiua.org">tech_tools@naiua.org</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
Java Released Under Open Source
</H3>
<P>
Date: Tue, 14 Jul 1998 14:34:03 -0700<BR>
Berkeley, CA - Transvirtual Technologies, Inc. announces the release of
Kaffe OpenVM(TM), the first complete independent implementation of Java(TM)
available under the ``Open Source'' initiative. Unlike other third-party
VMs, Kaffe comes with a "just-in-time" compiler and a complete set of
class libraries, including Beans and AWT.
<P>
Kaffe was designed from day one to be highly portable and to provide a
complete Java environment in the smallest possible memory footprint. It has
already been ported to a number of processors, including the x86, StrongARM,
MIPs, 68K and Alpha, and can provide a full graphical environment in as
little as 500K (including VM and class libraries).
<P>
For more information:<BR>
<A HREF="http://www.transvirtual.com/">http://www.transvirtual.com/</A>
<BR>
Tim Wilkinson, <A HREF="mailto:tim@transvirtual.com">
tim@transvirtual.com</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
Game Textures CD1
</H3>
<P>
Date: Tue, 21 Jul 1998 19:52:04 -0500<BR>
AUSTIN, TX- Crack dot Com, developer of the cult-hit Abuse and the
anticipated 3D real-time strategy title Golgotha, has made available
a CD specifically tailored for game artists titled "Game Textures CD1".
<P>
Crack dot Com released "Game Textures CD1" today for sale. CD1 is a
compilation of textures gathered from outdoor environments, buidling
faces, and military and civilian vehicles. These high-resolution textures
were specifically designed by Crack artist Kevin Tyler for use by game
artists who demand high-detail tileable textures for use in 3D games,
and many of the textures appear in Crack's upcoming title Golgotha.
<P>
CD1 is currently available only directly through Crack dot Com.
An order form and index of the textures is available at
<A HREF="http://crack.com/">http://crack.com/</A>.
<P>
For more information:<BR>
<A HREF="mailto:textures@crack.com">textures@crack.com</A> <BR>
Dave Taylor, <A HREF="mailto:ddt@crack.crack.com">ddt@crack.crack.com</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
JPython-1.0 Provides a Powerful Companion to Java
</H3>
<P>
Date: Thu, 23 Jul 1998 08:59:43 -0700 (PDT)<BR>
Reston, VA -- The Corporation for National Research Initiatives has
announced the release of JPython-1.0. JPython is a freely available
implementation of the high-level, dynamic, object-oriented language
Python -- integrated seamlessly with the Java(TM) platform and
certified as 100% Pure Java(TM).
<P>
JPython's integration with Java draws on the strengths of the Java
platform. JPython code can easily access any existing Java libraries
and JavaBeans. The Java virtual machine allows JPython to statically
compile Python source code to Java bytecodes that will run anywhere
that Java does. Through Java's support for dynamic class loading,
JPython can dynamically compile Python code to allow interactive use
while still achieving the performance of a true compiler.
<P>
Guido van Rossum created the Python language in the early 1990s, and it
has been used successfully in many interesting software projects since
then.
<P>
JPython completely implements the Python language in 100% Pure Java,
and is freely available in both source and binary form. In order to
implement Python's Perl5-compatible regular expressions, JPython
includes the outstanding OROMatcher(TM) regular expression engine
developed by Original Reusable Objects(TM) at <A
HREF="http://www.oroinc.com/">http://www.oroinc.com/</A>
By
agreement, this regular expression engine is only distributed in binary
form. JPython can be found at <A HREF="http://www.python.org/jpython/">
http://www.python.org/jpython/</A>.
<P>
For more information:<BR>
Jim Hugunin, <A HREF="mailto:hugunin@python.org">hugunin@python.org</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
NetStreamer 0.16 available: Streame audio over 28k8, ISDN or LAN
</H3>
<P>
Date: Thu, 9 Jul 1998 10:48:02 GMT<BR>
NetStreamer offers the possibility to stream audio over your 28k8 modem
or ISDN at a sample rate of 8 or 16 kHz. It offers a fancy radio-alike
frontend that allows you to tune in on "radio-programs" that are offered
by the NetStreamer Server, which is a kind of reflector that passes on
audio that may be offered by several transmitters.
<P>
Currently NetStreamer-0.16 is available.
You can download the NetStreamer software (The Server, Receiver and
Transmitter) from:
<P>
<A HREF="http://flits102-126.flits.rug.nl/~rolf/NetStreamer.html">
http://flits102-126.flits.rug.nl/~rolf/NetStreamer.html</A>
<P>
The software is distributed in source and binary form under GPL.
<P>
For more information:<BR>
Rolf Fokkens, <A HREF="mailto:rolf@flits102-126.flits.rug.nl">
rolf@flits102-126.flits.rug.nl</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
CurVeS 0.8.3 -- console UI for CVS
</H3>
<P>
Date: Thu, 9 Jul 1998 10:41:51 GMT<BR>
CurVeS performs two functions. It provides a menu and
command completion interface to CVS so that
inexperienced users can learn the features of CVS
without documentation. This also involves adding some
meta-features that are built from CVS commands which
are used together in some common-use circumstances.
The second function of Curves is to provide visual
presentation of a project directory so that the status
of each file is comprehensible at a glance. CurVeS
uses color, when available, to accent the file
classification marks.
<P>
<A HREF="ftp://ftp.netcom.com/pub/el/elf/curves/">
ftp://ftp.netcom.com/pub/el/elf/curves/</A> in the file
curves-0.8.3.tar.gz and curves-0.8.3.lsm
<P>
Runs on any UN*X. Tested on GNU/Linux and Solaris.
C++ necessary to build from source.
CVS and possibly RCS to use.
<P>
For more information:<BR>
Marc Singer, <A HREF="mailto:elf@netcom.com">elf@netcom.com</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
urlmon 3.0 -- URL monitoring software
</H3>
<P>
Date: Thu, 9 Jul 1998 10:50:08 GMT<BR>
urlmon version 3.0 is released, now with ability to filter out portions
of HTML data so that things like rotating advertisements don't give false
positives. The filtering capability is quite flexible, and it
user-extensible. The code has been cleaned up, making it much more
elegant and simple. The format of the urlmonrc database file has
changed, and this causes problems addressed in the various
documentation files. Some enhancements have been made to make urlmon
more conducive to scripting.
<P>
urlmon is the URL Monitor. It reports changes to web sites (and ftp
sites, too).
<P>
<A
HREF="http://sunsite.unc.edu/pub/Linux/apps/www/mirroring/urlmon-3.0.tgz">
http://sunsite.unc.edu/pub/Linux/apps/www/mirroring/urlmon-3.0.tgz</A> (soon)
<BR>
<A HREF="http://source.syr.edu/~jdimpson/proj/urlmon-3.0.tgz">
http://source.syr.edu/~jdimpson/proj/urlmon-3.0.tgz</A>
<P>
For more information:<BR>
<A HREF="http://source.syr.edu/~jdimpson/urlmon/">
http://source.syr.edu/~jdimpson/urlmon/</A> <BR>
Jeremy D. Impson, <A HREF="mailto:jdimpson@acm.org">jdimpson@acm.org</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
GramoFile 1.1 - Gramophone records to CDs
</H3>
<P>
Date: Wed, 15 Jul 1998 11:28:30 GMT<BR>
GramoFile is a computer program, running under the Linux operating
system, with the main goal of putting the sound of gramophone
records on CDs. The program is not finished yet (and maybe never),
but it is able to do a lot of useful things already. Like removing
ticks and splitting a long sound file into separate tracks.
This program was originally written by Anne Bezemer and Ton Le as
a study project at the department of Information Technology and
Systems (sub-department of Electrical Engineering) of the
Delft University of Technology, The Netherlands. However,
development has continued after the end of the project, resulting
in the program as it is now (read: much more functional :).
<P>
The new version 1.1 is available at the GramoFile Home Page:<BR>
<A HREF="http://cardit.et.tudelft.nl/~card06/">
http://cardit.et.tudelft.nl/~card06/</A>
<P>
For more information:<BR>
J.A. Bezemer, <A
HREF="mailto:J.A.Bezemer@ITS.TUDelft.NL">J.A.Bezemer@ITS.TUDelft.NL</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
WavPlay/GnuWave Update
</H3>
<P>
Date: Wed, 15 Jul 1998 09:39:55 GMT<BR>
WavPlay-1.0 was the last LINUX sound play/record program that
was released to the net, with 2 levels of patches.
<P>
This a short note to announce that the "home web page" for the
WavPlay software is moving (since I am also moving, and will
change ISP + email addresses etc.)
<P>
To find out what is currently happening with the new WavPlay
software, visit the new "home page" at:
<P>
<A HREF="http://members.tripod.com/~ve3wwg/">
http://members.tripod.com/~ve3wwg/</A>
<P>
For more information: <BR>
Warren Gay VE3WWG, <A HREF="mailto:ve3wwg@yahoo.com">ve3wwg@yahoo.com</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
aumix 1.9: adjust an audio mixer
</H3>
<P>
Date: Wed, 15 Jul 1998 10:33:10 GMT<BR>
I've uploaded aumix 1.9, a program for adjusting an audio mixer from the
console, a terminal, the command line or scripts. Here's what's new:
<P>
* interactive screen won't show channels that don't exist
* should build without automake or autoconf
* might compile under FreeBSD
* muting function should work for everyone now
* left and right levels shown with "L" and "R" in interactive screen
* fixed small bug with adjustment by mouse
* usage text printed when mixer file can't be opened
<P>
WWW access: <A HREF="http://jpj.net/~trevor/aumix.html">
http://jpj.net/~trevor/aumix.html</A> <BR>
Primary-site: <A
HREF="http://sunsite.unc.edu/pub/Linux/apps/sound/mixers/">
http://sunsite.unc.edu/pub/Linux/apps/sound/mixers/</A>
Files: 40898 aumix-1.9.tar.gz and 638 aumix-1.9.lsm
<P>
For more information:<BR>
Trevor Johnson, <A HREF="mailto:trevor@jpj.net">trevor@jpj.net</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
locus 0.85 - a fulltext database
</H3>
<P>
Date: Mon, 20 Jul 1998 10:22:43 GMT<BR>
locus lets you find words in your texts: newsgroup messages,
Web page mirrors, electronic books - whatever you have. It uses word
patterns (order, locality etc.) to match queries to texts, makes
reasonable choices by default yet does exactly what you want when
you specify it.
<P>
locus homepage: <A
HREF="http://www.cermak.cz/~vbarta/">http://www.cermak.cz/~vbarta/</A>
<P>
For more information:<BR>
Vaclav Barta, <A HREF="mailto:vbar@comp.cz">vbar@comp.cz</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
S-PLUS 5.0 for UNIX & LINUX
</H3>
<P>
Date: Mon, 27 Jul 1998 11:53:59 -0700<BR>
On August 10, MathSoft will be announcing/shipping a new version of
S-PLUS called S-PLUS 5.0 for UNIX and LINUX, a key new addition to MathSoft's statistical data mining family. This addition to the broadest line of statistical data mining software for business and academia comes with several significant upgrades, including:
<ol>
<li>next generation S language, designed specifically for data visualization and exploration from Lucent Technologies,
<li>improved memory resourcing for large, rapid data set analysis,
<li>import & export data from virtually any source (SAS, SPSS, Excel, Lotus, and more),
<li>more statistical modeling and analysis functions,
<li>complete system for calender time series analysis and
<li>support for additional UNIX operating systems, such as HP, IBM and SGI.
</ol>
For more information:<BR>
Lisa Hiland, <A
HREF="mailto:lisah@schwartz-pr.com">lisah@schwartz-pr.com</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
NetBeans Developer 2.0, Beta 2
</H3>
<P>
Date: Tue, 28 Jul 1998 12:02:08 +0200<BR>
Prague, Czech Republic, July 28, 1998 - NetBeans, Inc. today released the second Beta version of its well-received Integrated Development Environment (IDE) written entirely in the Java(TM) language and based on Sun's Java Foundation Classes framework. NetBeans Developer 2.0 - Beta 2 is available for free download from the company's web site, http://www.netbeans.com. NetBeans IDE is a full-featured visual programming environment that allows flexible development on any platform which supports JDK 1.1.x, including NT, Win95, Linux, OS/2, Solaris, HP-UX, and others.
<P>
NetBeans IDE will ship in two versions - Developer and Enterprise. NetBeans Developer was created for the single developer working on a desktop PC. NetBeans Enterprise was designed as a multi-user, multi-platform product. Users can fully exploit the object-oriented nature of the IDE, design distributed applications based on RMI/CORBA, share virtual filesystems, debug remotely, and access source control systems.
<P>
The second beta version of NetBeans Developer 2.0 is now available and can be downloaded from the NetBeans Website at http://www.netbeans.com. NetBeans Developer 2.0 is scheduled for release in the third quarter of 1998, and will retail for approximately $149. Pricing and availability of NetBeans Enterprise will be announced in September, 1998.
<P>
For more information:<BR>
NetBeans, Inc.
Helena Stolka, <A HREF="mailto:helena.stolka@netbeans.com">
helena.stolka@netbeans.com</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
Caldera Releases NetWare for Linux 1.0
</H3>
<P>
OREM, Utah, July 30 /PRNewswire/ -- Caldera(R), Inc. today announced the
release of NetWare(R) for Linux 1.0. Caldera NetWare
for Linux provides NetWare file, print and directory services ready to run
(native) on a Linux distribution. With NetWare for Linux,
Caldera brings the most-widely used networking operating system to Linux
with full client support and integrated administration utilities.
NetWare for Linux is a component of the Caldera Small Business Server
scheduled for release later this year.
<P>
A NetWare for Linux three-user version is now available for download at no
cost from the Caldera Web site
(http://www.caldera.com/products/netware). Bump packs can be purchased in
user license increments of 1 ($95), 5 ($450), 25 ($1,875),
or 50 ($2,750). A $59 two-CD jewel case version offering a complete
NetWare solution including NetWare for Linux, NetWare utilities
and OpenLinux Lite 1.2 will be available mid-August.
<P>
For more information:<BR>
Caldera, Inc., <A HREF="http://www.caldera.com/">http://www.caldera.com/</A>
<P> <hr> <P>
<!--================================================================-->
<center>Published in <i>Linux Gazette</i> Issue 31, August 1998</center>
<P> <HR> <P>
<!-- =================================================================== -->
<A HREF="./lg_toc31.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_tips31.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
<A HREF="./lg_answer31.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 © 1998 Specialized Systems Consultants, Inc. </H5>
<P>
<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <hr> <P>
<!-- =============================================================== -->
<center>
<H1><A NAME="answer">
<img src="../gx/dennis/qbubble.gif" alt="(?)" border="0" align="middle">
<font color="#B03060">The Answer Guy</font>
<img src="../gx/dennis/bbubble.gif" alt="(!)" border="0" align="middle">
</A></H1> <BR>
<H4>By James T. Dennis,
<a href="mailto:answerguy@ssc.com">answerguy@ssc.com</a><BR>
Starshine Technical Services,
<A HREF="http://www.starshine.org/">http://www.starshine.org/</A> </H4>
</center>
<p><hr><p>
<H3>Contents:</H3>
<p><A HREF="#tag_greeting"><img src="../gx/dennis/bbub.gif" height="28" width="50" alt="(?)" border="0">Greetings From Jim Dennis</a></p>
<DL>
<!-- index_text begins -->
<dt><A HREF="#tag_backup"><img src="../gx/dennis/qbub.gif" height="28" width="50" alt="(?)" border="0"
></A>Remote Backups (Yet Again)
--or--
<dd><A HREF="#tag_backup"><STRONG>Remote Backups: GNU 'tar' through 'rsh'</STRONG></A>
<dt><A HREF="#tag_uidgid"><img src="../gx/dennis/qbub.gif" height="28" width="50" alt="(?)" border="0"
></A>Assigning UID/GID
--or--
<dd><A HREF="#tag_uidgid"><STRONG>UID/GID Synchronization and Management</STRONG></A>
<dt><A HREF="#tag_connect"><img src="../gx/dennis/qbub.gif" height="28" width="50" alt="(?)" border="0"
><STRONG>How to check your modems connect speed?</STRONG></A>
<dt><A HREF="#tag_95slow"><img src="../gx/dennis/qbub.gif" height="28" width="50" alt="(?)" border="0"
></A>win95 slowdown
--or--
<dd><A HREF="#tag_95slow"><STRONG>Win '95 Hesitates After Box Has Run Linux?
</STRONG></A>
<dt><A HREF="#tag_badblock"><img src="../gx/dennis/qbub.gif" height="28" width="50" alt="(?)" border="0"
><STRONG>Bad Cluster</STRONG></A>
<dt><A HREF="#tag_trident"><img src="../gx/dennis/qbub.gif" height="28" width="50" alt="(?)" border="0"
><STRONG>XFree86 on Trident Providia 9685</STRONG></A>
<dt><A HREF="#tag_sound"><img src="../gx/dennis/qbub.gif" height="28" width="50" alt="(?)" border="0"
></A>redhat linux 5.0 and reveal sc400 rev a sound card
--or--
<dd><A HREF="#tag_sound"><STRONG>Reveal SC400 Sound Card: OSS/Linux and OSS/Free Supported?</STRONG></A>
<dt><A HREF="#tag_kernel"><img src="../gx/dennis/qbub.gif" height="28" width="50" alt="(?)" border="0"
><STRONG>Kernel Overview needed....</STRONG></A>
<dt><A HREF="#tag_solprint"><img src="../gx/dennis/qbub.gif" height="28" width="50" alt="(?)" border="0"
></A>Printing Solaris -> Linux --or--
<dd><A HREF="#tag_solprint"><STRONG>Remote lpd Solaris to Linux</STRONG></A>
<dt><A HREF="#tag_idescsi"><img src="../gx/dennis/qbub.gif" height="28" width="50" alt="(?)" border="0"
><STRONG>Lilo not working on SCSI when IDE drives installed</STRONG></A>
<dt><A HREF="#tag_distrib"><img src="../gx/dennis/qbub.gif" height="28" width="50" alt="(?)" border="0"
><STRONG>Yggdrasil: A Breath of Life for the Root of the Linux Distributions?</STRONG></A>
...and what about OpenLinux Base?
<dt><A HREF="#tag_modem"><img src="../gx/dennis/qbub.gif" height="28" width="50" alt="(?)" border="0"
><STRONG>115K Baud from a Modem: In your dreams!</STRONG></A>
<dt><A HREF="#tag_NDS"><img src="../gx/dennis/qbub.gif" height="28" width="50" alt="(?)" border="0"
></a>Linux NDS --or--
<dd><A HREF="#tag_NDS"><STRONG>Linux as a Netware Directory Srvices Printer Client?</STRONG></A>
<dt><A HREF="#tag_rpm"><img src="../gx/dennis/qbub.gif" height="28" width="50" alt="(?)" border="0"
><STRONG>What is an RPM?</STRONG></A>
<dt><A HREF="#tag_guy"><img src="../gx/dennis/qbub.gif" height="28" width="50" alt="(?)" border="0"
></A>Stupid question --or--
<dd><A HREF="#tag_guy"><STRONG>AnswerGUY? Who is Heather?</STRONG></A>
<dt><A HREF="#tag_maildns"><img src="../gx/dennis/qbub.gif" height="28" width="50" alt="(?)" border="0"
><STRONG>'<tt>sendmail</tt>' requires DNS ... won't use <tt>/etc/hosts</tt></STRONG></A>
<dt><A HREF="#tag_memleak"><img src="../gx/dennis/qbub.gif" height="28" width="50" alt="(?)" border="0" ></a>Question on Memory Leak --or--
<dd><A HREF="#tag_memleak"><STRONG>Memory Leaks and the OS that Allows Them</STRONG></A>
<dt><A HREF="#tag_multihead"><img src="../gx/dennis/qbub.gif" height="28" width="50" alt="(?)" border="0"
><STRONG>X Window with two monitors...</STRONG></A>
<dt><A HREF="#tag_cdr"><img src="../gx/dennis/qbub.gif" height="28" width="50" alt="(?)" border="0"
><STRONG>DAO software for linux? </STRONG></A>
<!-- index_text ends -->
</DL>
<p><hr width="70%" align="center"></p>
<h3><A NAME="tag_greeting"><img src="../gx/dennis/bbub.gif" height="28" width="50" alt="(?)" border="0">Greetings From Jim Dennis, August 1998</a></H3>
<p>By now you've probably heard it a dozen times:</p>
<p align="center"><a href="http://www.oracle.com/">Oracle</a>
Announces Intent to Support Linux
<br><a href="http://www.informix.com/">Informix</a>
Releases Linux version of their SQL Engine</p>
<p>... so, what does that mean.</p>
<p>Well, the good part is that Linux will get more respect from many IT
departments. It will be easier for sysadmins to recommend Linux,
FreeBSD, and similar solutions. There also will be a flurry of other
software companies that will also jump in and port their software to
this new, upstart Unix implementation. The Informix announcement
was re-iterated at just about the same time and Inprise (formerly
Borland) had already made Interbase available awhile back). I expect
that Lotus Notes and Domino aren't too far behind, and I wouldn't be
surprised to hear that SAP (publishers of the R/3 ERP system) were
quietly talking to <a href="http://www.suse.com/">S.u.S.E.</a>
(I seem to have heard that Adabas is one
of the supported db engines for SAP R/3, and that has been available
for Linux for some time).</p>
<p>There's also an interesting teaser at the Caldera website
(<a href="http://www.caldera.com/openlinux/index.html"
>http://www.caldera.com/openlinux/index.html</a>)
regarding an impending
"Netware for Linux" --- which should be an interesting server
platform (Netware's implementation of ACL's, access control lists --
always seemed better then the others I've seen. So, if you really
need them on a fileserver, this might be the way to go).</p>
<p>We've also heard that the server software isn't the only niche that's
discovering Linux. Regulars of Slashdot
(<a href="http://www.slashdot.org/"
<http://www.slashdot.org</a>)
and the Linux Weekly News (<a href="http://www.lwn.net/"
>http://www.lwn.net</a>), and any of the major
Linux newsgroups and mailing lists are also probably aware that
<a href="http://www.corel.com/">Corel</a>
has announced projects to port their whole office suite to Linux
(they've had versions of WordPerfect available for awhile, and one of
their affiliates,
Corel Computing
--- a hardware concern --- is using
a StrongARM port of Linux which they helped develop as the core of
their NC --- network computer). Presumably they will also consider
porting their flagship CorelDraw package, which has been been
available for some other Unix platforms for some time).</p>
<blockquote><code>
<a href=">http://www.corel.com/news/1998/may/linux.htm"
>http://www.corel.com/news/1998/may/linux.htm</a></code></blockquote>
<p>Of course it's already joining the fray with Applixware, StarOffice,
Cliq Suite, Wingz, XessLite, and NeXS, among others.</p>
<p>So, the commercial software is coming. Linux will take yet another
step from hobbyist "do-it-yourself" project towards a widespread
platform for the masses. </p>
<p>Is there a downside to all of this? Naturally there are some
risks. While I welcome the availability of Oracle, Informix and
other major players to the Linux world --- I'd like to remind
everyone that there are alternatives. See Christopher B. Browne's
excellent list of these under his website at:</p>
<blockquote><code><a href="http://www.hex.net/~cbbrowne/"
>http://www.hex.net/~cbbrowne/</a></code></blockquote>
<p>... Some of the commercial SQL engines for Linux that I've heard good
reports about are Solid, JustLogic, and Infoflex. That's not to
mention the free and shareware packages like PostgreSQL, mSQL, MySQL,
and Beagle. </p>
<p>(There are differences in capacity and scalability --- many of these
are currently limited to table locking rather than being able to
lock individual records).</p>
<p>The big risk we now face is that we'll adopt and promote (or
perpetuate) some application suite or tool with a proprietary set
of file formats or interfaces. If Microsoft were to ship MS
Office for Linux tomorrow --- we'd have the same essential problem
that we have today. When someone sends you a Word .DOC, an Excel
.XLS or a PowerPoint .PPT you're expected (by an alarming percentage
of your correspondents) to be able to handle those files. </p>
<p>Everyone, (freeware and commercial third party vendors alike) is
has been playing "catch-up" to this tune for far too long. </p>
<p>This issue of "open document formats" is far more important than
choice of operating systems. What you run on your machine is
none of my business. What you send to me in our business transactions
is. Applix and StarOffice (and the free 'catdoc' and LAOLA filters)
make a truly valiant effort to deal with some of these proprietary
formats. They do so with some success (Word 2.0 seems fine, Word
6.x might be a bit dicey --- Word '97 documents die a horrible death).</p>
<p>If Microsoft moved quickly they might be able to "take over the
Linux desktop" by providing "MS Office '98 for Linux." Personally
I think that would be a shame. I think it would squelch some of the
interesting work being done on LyX and Cicero, and various other
"word processor" and desktop publishing interfaces for Linux.</p>
<p>So, before you rush out to embrace Oracle, and buy one of their
servers --- take a look at some of the other DBMS packages that
are out there. Give them a real try (feasibility and capacity
test) before you commit.</p>
<p>On another note: I'd like to grant the first "Answer Guy
Support Award" of the month to Sam Trenholme. He practically
owns the <a href="news:comp.linux.misc">comp.linux.misc</a>
newsgroups and answers alot more questions
there than I get to in a month here. Thanks, Sam. We all owe, ya!</p>
<p>(I'll try to give these out about once a month --- to someone,
somewhere, who answers lots of questions in some Linux tech support
venue).</p>
<p>One final tidbit: I guess the press isn't getting all mushy on us.
Either someone at Miller-Freeman's _sysadmin_Magazine_ doesn't
like Linux or they were typing too fast when they wrote:</p>
<p>.... Linux is a 2-bit multi-user, multitasking variant
of the UNIX operating system.
(p 68, August, 1998; vol. 7 no. 8)</p>
<p>Can anyone find an extra 30-bits to send them?</p>
<p><A NAME="tag_backup"><hr width="70%" align="center"</A></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)"
width="50" height="28" align="left" border="0"
>Remote Backups: GNU '<tt>tar</TT>' through '<TT>rsh</tt>'</h3>
<p><strong>From Ken Plumbly on 18 Jul 1998
in the</strong>
<a href="news:comp.unix.questions">comp.unix.questions</a>
<strong>newsgroup</strong></p>
<!-- begin body -->
<p><strong>
Hi :
</strong></p>
<p><strong>
I'm sure this one will probably drive you crazy, I read your
<a href="http://www.linuxgazette.com/issue29/tag_betterbak.html">answer
in LG issue 29 for remote backups</a>, and did what the article said,
but I get the response back from the server with the tape drive:
</strong></p>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)" width="50" height="28" border="0" lign="bottom"
>Getting things like this working for the first
time have driven me crazy in the past. So, it's
certainly possible for them to do so again.
</blockquote>
<blockquote>
(Some friends might say that "crazy" is a state they've come to expect of me).
</blockquote>
<STRONG><P><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)" width="50" height="28" border="0" lign="bottom"
><code>permission denied.
<br>tar: Cannot open user@host.our.domain:/dev/st0: I/O error
</code></p></strong>
<STRONG><P>
and in the messages file on the tape host is:
</p></strong>
<STRONG><P><code>
pam_rhosts_auth[7300]: denied to root@hostname.our.domain as user:
<br>access not allowed
</code></p></strong>
<STRONG><P>
We are running redHat 4.2 with a connor 4gb tape drive.
</p></strong>
<STRONG><P>
I created a user on the tape server, and put a <tt>.rhosts</tt> file in
the <tt>~user</tt> directory but still no joy.
</p></strong>
<STRONG><P>
Any Ideas?
<br>Ken
</p></strong>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)" width="50" height="28" border="0" lign="bottom"
>Can you just run a command like:
</blockquote>
<blockquote><blockquote><code>
rsh -l operator tapehost "id; pwd; ls -l /dev/st0"
</code></blockquote></blockquote>
<blockquote>... and get the desired results?
</blockquote>
<blockquote>In my example I make some assumptions:
</blockquote>
<blockquote>I'd run this command from root on the client
and use the "<tt>-l operator</tt>" switch and argument
to specify that I want <tt>rsh</tt> to access the "<tt>operator</tt>"
account on the tapehost.
</blockquote>
<blockquote>I'd create an account named "<tt>operator</tt>" on the
tapehost machine. It would have no special
privileges except that it would be a member of
the "<tt>tape</tt>" group.
</blockquote>
<blockquote>My copy of <TT>/dev/st0</TT> on the tapehost would be
owned by <tt>root.tape</tt> (the "tape" group) and
would be mode <tt>770</tt> (writable by group).
</blockquote>
<blockquote>This should allow what you want. Until you can
use stock '<tt>rsh</tt>' commands through this context --- your
'<tt>tar</tt>' commands are doomed. (Since
<a href="http://www.gnu.org/">GNU</a> tar actually
calls '<tt>rsh</tt>' for that part of this work).
</blockquote>
<blockquote>For more security you can use '<tt>ssh</TT>' instead of
'<TT>rsh</tt>'
</blockquote>
<blockquote>Next I would not use the command as you described it.
</blockquote>
<blockquote>Tape drives are very sensitive to inconsistent latency (caused
by transport of the data over a network and by any compression
you attempt to do). If the data is not fed to the interface
fast enough <tt>and at an even rate</tt> then the drive will have to
stop, rewind a bit, and restart to get back to the right speed
and tape position to continue writing.
</blockquote>
<blockquote>This is called "shoeshining."
</blockquote>
<blockquote>To prevent shoeshining we run a program called 'buffer' (Lee
McLoughlin) on the "tapehost" (the machine that recieves the
data over the network and writes it to the tape drive).
</blockquote>
<blockquote>So that command would look like:
</blockquote>
<blockquote><blockquote><code>
# tar czSf - .... | rsh -l operator tapehost
"buffer -o <TT>/dev/st0</TT>"
</code></blockquote></blockquote>
<blockquote>Note the <tt>-S</tt> switch that we use to preserve "sparsity"
in files --- that is to detect cases where the data
blocks have not be continously allocated to the file
--- where there are "holes" in the allocation map for
the "empty" parts of the file's data. These sorts of
files are commonly created with dbm libraries and
other "hashing" algorithms that use file seek offsets
as "indexes" into a file --- your <TT>/etc/aliases.pag</TT>
file might be one of them. If you don't understand
"holes" and "sparse" files (which are features of the
Unix filesystem that aren't supported in some others
--- though I know that Netware had them) --- don't
worry about it. Just add the <tt>-S</tt> and it won't hurt
anything even if there are no such files in the
data set that you're working with.
</blockquote>
<blockquote>Note that I use the <tt>c</tt> (create), <tt>z</tt> (compress)
and <tt>f</tt> (file target) flags, and that the file target I specify
is "<tt>-</tt>" (a dash). In Unix this usually indicates that
the "standard output" device should be used. In other
words, "<tt>-</tt>" (dash) is an idiom in a number of Unix/Linux
commands. So, this command will write all of the
tar file into the pipe.
</blockquote>
<blockquote>On the recieving side of the pipe we have a local copy
of '<tt>rsh</tt>' that will try to connect to the "tapehost" as the
user named "operator" and thereon try to run a command
named "buffer" with the <tt>-o</tt> (output) of that pointed
to the tape device.
</blockquote>
<blockquote>How much difference does 'buffer' make? About an order of
magnitude. Yes. You read that right --- on my network
(which was completely idle at the time) I ran experiements
with and without buffer (and with and without compression)
and it would take <em>10 times longer</em> to write the tape
without '<tt>buffer</tt>'. On top of all of that the tapes created
without '<tt>buffer</tt>' are <em>much</em> less reliable. So, failing to
use that can be harmful to your data, and add immense amounts
of wear and tear to the drive (shortening its useful life).
</blockquote>
<blockquote>The '<tt>buffer</tt>' command came with my copies of
<A HREF="http://www.suse.com/">S.u.S.E.</A> and
might come with your copy of RH 5.x (although I don't think
4.2 had it). You can find that at:
</blockquote>
<blockquote><blockquote><code>
<A HREF="http://src.doc.ic.ac.uk/public/public/packages/buffer"
>http://src.doc.ic.ac.uk/public/public/packages/buffer</A>
</code></blockquote></blockquote>
<blockquote>Imperial College, U.K./Great Britain where Lee McLoughlin is a
a system manager, and programmer.
</blockquote>
<blockquote>Lee McLoughlin is also known for an FTP mirror package he
wrote and maintained in PERL a few years ago. He maintains a web page
(<A HREF="http://www.doc.ic.ac.uk/~lmjm/">http://www.doc.ic.ac.uk/~lmjm/</A>)
which doesn't mention this or the '<tt>buffer</tt>' program but highlights
some of his other work.
</blockquote>
<blockquote>With RH 4.2 you might also be suffering from some
confusion with your PAM configuration. You might have to
change that around a bit or upgrade it to a new version.
</blockquote>
<blockquote>If you were trying to access the root or any "root equivalent"
account -- that is anyone with a UID of 0 (zero) you might
have been bumping into the "<tt>/etc/securettys</tt>" problem. This
is one of the other reasons why I configure my systems with
an "<tt>operator</tt>" account and give that account access to the
'<tt>buffer</tt>' program and to the <TT>/dev/st0</TT> node.
</blockquote>
<blockquote>If you did tests with '<tt>rlogin</tt>' that seemed successful
(you were able to '<tt>rlogin</tt>' to the account but not to
run '<tt>rsh</tt>' commands, keep in mind that these are separately
configurable services in PAM.
</blockquote>
<blockquote>Another constraint that is a bit more subtle: you
cannot access '<tt>rsh</TT>' and '<TT>rlogin</tt>' commands through IP
Masquerading. This is because the source IP port for an
<tt>rsh</tt> or <tt>rlogin</tt> connection must be set to specific values
</blockquote>
<blockquote>It's a <em>very</em> weak form of "authentication" on the part of
the protocol, it was intended to ensure that the
process on the client side of the machine was running
with 'root's authority --- that it wasn't a random
user's process just claiming to be anybody. That was
almost reasonably 20 years ago before people had
TCP/IP capable workstation on their desktops --- back when
all of the "computers" were locking in server rooms and
you wanted to create loosely coupled computing clusters
within your domain. It is <em>wholly</em> inadequate and
inappropriate on today's networks. That's why we have
'i<tt>ssh</tt>' and why I spend all night <em>last</em> night playing
with the "Linux Free S/WAN" project (just search Yahoo!
on that phrase).
</blockquote>
<blockquote>(Free S/WAN is a project to implement secure, network level IP
--- so that we can use transparent cryptography to protect
applications layer protocols like <tt>rsh</tt>, and so many others.
It's being developed internationally --- so that it will
have to be <em>imported</em> into the U.S. --- this is because
we're a "free nation" except when it comes to the practical
application of advanced mathematics as a medium of expression).
</blockquote>
<blockquote>In any event --- I really doubt that you're trying to
access your tapehost through a masquerading router --- but
if you are, you can expect that to fail.
</blockquote>
<blockquote>From the error messages you show it looks like you do have the
appropriate <TT>/etc/services</TT> entry and the appropriate entries in
the <TT>/etc/inetd.conf</TT>. It also looks like you are not having
a TCP wrappers problem in this case (since that would have
given a different error message in the tapehost's syslog).
</blockquote>
<!-- end body -->
<p><A NAME="tag_uidgid"><hr width="70%" align="center"</A></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)"
width="50" height="28" align="left" border="0"
>UID/GID Synchronization and Management</H3><p><strong>From Gordon Haverland on 16 Jul 1998
in the</strong>
<a href="news:comp.unix.questions">comp.unix.questions</a>
<strong>newsgroup</strong></p>
<!-- begin body -->
<strong><p>Hi:
</p></strong>
<strong><p>I inherited sys admin stuff as part of a job. At first, this
wasn't a problem: GIS work on a single Linux machine. I did
development and analysis, others did just analysis. Soon we got
another Linux machine, so development moved to there. To share
printing, Ethernet was installed and LPRng. Then a Solaris 2.5.1
machine was added. So, the 2 linux machines have a handful of
users, the Sun has those plus a few other groups of users, and I
plan to add a Beowulf cluster "real soon now". Is there any
rationale out there for assigning UID and GID in a hetrogeous
cluster/network like this? It sure looks like users common among
machines have to have the same UID and GIDs. The Solaris has NIS
on it, so I guess whatever I do should get administered from
there. Thanks for any light you might shed on this.
</p></strong>
<P><STRONG>
Gordon Haverland
</strong></p>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)" width="50" height="28" border="0" lign="bottom"
>I'm not sure what you mean by "rationale" on this context.
</blockquote>
<blockquote>Do you mean:
</blockquote>
<blockquote>"Why should I co-ordinate and synchronize the account
management on the systems throughout my network?"
</blockquote>
<blockquote>... or do you mean:
</blockquote>
<blockquote>"How should I ....."
</blockquote>
<blockquote>... or do you mean something else entirely?
</blockquote>
<blockquote>I'll answer the first two questions (probably in
far more detail than you wanted):
</blockquote>
<blockquote>There are two principle reasons why you <em>want</em>
to co-ordinate the user/UID and group/GID management across your network.
The first is relatively obvious --- it has to do with user
and administrative convenience.
</blockquote>
<blockquote>If each of your users are expected to have relatively uniform
access to the systems throughout the network, then they'll
expect the same username and password to work on each system
that they are supposed to use. If they change their password
they will expect that change to be global.
</blockquote>
<blockquote>When you --- as the admin --- add, remove, disable, or change
an account, you want to do it once, in one place. You don't
want to have to manually copy those changes to every system.
</blockquote>
<blockquote>Of course these reasons don't require that the UID/GID's
match. As you probably know names and group names in Unix and
Linux are mapped into numeric forms (UID's and GID's respectively).
All file ownership (inodes) and processes use these numerics for
all access and identity determination throughout the kernel and
drivers. These numeric values are reverse mapped back to their
corresponding principle symbolic representations (the names) by
the utilities that display or process that information. Thus
the 'ls -l' command is doing a lookup on each directory entry to
find the name that corresponds to the the owner and group ID's.
</blockquote>
<blockquote>Most of the commands you use actually do this through library
calls. In deed most of these commands are "dynamically linked"
(use shared libraries) which perform the calls through common
external files (the <tt>libc</tt>). As we'll see this is very important
as we look at the implications of consolidating the account
mapping information into a networked model (such as NIS).
</blockquote>
<blockquote>As I said, you could maintain a network of systems which
co-ordinated username/password data, and group membership
lists without synchronizing the UID's and GID's across the
systems. Most network protocols and utilities (the r* gang:
rsh, rlogin, rcp, and things like telnet, ftp, etc) exchange
this data in "text" (symbolic) form.
</blockquote>
<blockquote>However, we then come to NFS!
</blockquote>
<blockquote>The NFS protocols use numeric forms to represent ownership.
Therefore an NFS server provides access based on an implicit
trust that the NFS client is providing a compatible and
legimate mapping of the cient's UID/GID to the server's.
</blockquote>
<blockquote>It is possible in Linux' NFS implementation to run a ugidd
(a UID/GID mapping daemon). Thus you could create maps for
every NFS server to map each client<TT>s UID</TT>s to this server's
UID's, etc. Yes, that idea is as ugly as it sounds!
</blockquote>
<blockquote>I won't go into the security implications of NFS' mechanism
here. I'll just point out that my pet expansion of NFS is
"no flippin' security." I'm told that it is possible to enable
a "secure RPC" portmapper which implements host-to-host
authentication. I'd like to know more about that.
</blockquote>
<blockquote>However, it is still the case that any users who can get root
access to any trusted NFS client can impersonate any non-root
user so far as the NFS servers in that domain are concerned.
Since "sufficient" physical access virtually guarantees that
workstation users <em>can</em> get root access (possibly by resorting
to a screwdriver and CMOS battery jumper) I come to the
conclusion that NFS hopelessly insecure in today's common
network configurations (which workstations and PC's at
everyone's desks).
</blockquote>
<blockquote>(In defense of NFS I should point out that its security
model, and the one's we see in the r* gang were not
unreasonable when most Unix installations had a small
cluster of multi-user systems locked in a server room ---
and all user access was via terminals and X-terminals.
This suggests that there are some situations where they
are still justified).
</blockquote>
<blockquote>Despite these limitations and implications, NFS is the
most commonly deployed networked filesystem between Unix
and Linux systems. I have high hopes for CODA, but
even the most optimistic dreams reveal that it will take
a long time to be widely adopted.
</blockquote>
<blockquote>So, it is in your best interests to synchronize your UID/GID
to user/group name mappings throughout your enterprise. It is
also recommended that you adopt a policy that UID's are not
re-used. When a user leaves your organization you "retire"
their UID (disabling their access by *'ing out their passwd,
removing them from the groups maps, setting their "shell" to
some <TT>/bin/denied</TT> binary and their "home" directory to a
secured "graveyard" --- I use <TT>/home/.graveyard</TT> on my systems).
The reason for this may not be obvious. However, if you are
maintaining archival backups for several years (or indefinitely)
you'll want to avoid any ambiguities and confusion that might
result from restoring one (long gone) user's files and finding
them owned by one of your new users.
</blockquote>
<blockquote>(This "UID retirement" policy is obviously not feasible for
larger ISP's and usually difficult for Universities and other
high turnover environments. You can still make it a policy to
cycle all the way around the UID/GID space before re-use).
</blockquote>
<blockquote>That should answer the questions about "why" we want to
co-ordinate account information (user/password, and
group/membership data) and why many (most) of us want to
synchronize the UID's and GID's that the accounts map to.
</blockquote>
<blockquote>Now, we think about "how" to do so.
</blockquote>
<blockquote>One common method is to use '<tt>rdist</tt>' to distribute a set of
files (usually <TT>/etc/passwd</TT>, <TT>/etc/group</TT>, and
<TT>/etc/hosts</TT>) to every machine in a "domain" (this being the
"administrative" sense of the term, which might or might not match a DNS
domain or subdomain). For this to work we have to declare one system
to be the "master" and we have to ensure that all account
changes occur on that system.
</blockquote>
<blockquote>This can be done by manually training everyone to always issue
their '<tt>passwd</TT>' '<TT>chfn</tt>' '<tt>chsh</tt>' and similar
commands from a shell on that system, or you can create wrappers for each
of the affected commands (replacing the client copies of these
commands with a script that doesn't something like: '<tt>ssh
$master "$0"</tt>' for example).
</blockquote>
<blockquote>The nice things about this approach are:
</blockquote>
<blockquote>It works for just about any Unix and any Linux
(regardless of the libraries and programs running
on the client).
</blockquote>
<blockquote>The new risks and protocols are explicitly put
in place by the sysadmin --- we don't introduce
new protocols that might affect our security.
</blockquote>
<blockquote>There is no additional network latency and
overhead for most programs running most of
the time. You are never waiting for '<tt>ls</tt>' to
resolve user and group names over the network!
</blockquote>
<blockquote>The concerns about this method are:
</blockquote>
<blockquote>You have to ensure the integrity and security of
the master --- I'd suggest requiring '<TT>ssh</tt>' access
to it and using PAM and possibly a chroot jail to
limit the access of most users to just the
appropriate commands.
</blockquote>
<blockquote>All clients must "trust" the master -- they
must allow that system to "push" new <em>root owned</em>
system configuration files to them. I'd use
'<tt>rdist</TT>' or '<TT>rsync</tt>' over '<tt>ssh</tt>' for this as well.
</blockquote>
<blockquote>You may have unacceptable propagation delays
(a user's new password may take hours to get
propagated to all systems).
</blockquote>
<blockquote>It doesn't "scale" well and it doesn't conform
to any standards. You (as the sysadmin) will
have to do your own scripting to deploy it. Any
bugs in your scripts are quite likely to take
down the entire administrative domain.
</blockquote>
<blockquote>Then there's NIS.
</blockquote>
<blockquote>NIS is a protocol and a set of utilities and libraries which
basically implement exactly the features we've just described.
I've deliberately used several NIS terms in my preceding discussion.
</blockquote>
<blockquote>NIS distributes various sorts of "maps" (different "maps" for
passwords, groups, hosts, etc). The primary NIS server for a
domain is called the "master" --- and secondary <em>servers</em> are
called "slaves." Nodes (hosts, workstations, etc) that request
data from these "maps" are called "clients."
</blockquote>
<blockquote>One of the big features of glibc (the
<a href="http://www.gnu.org/">GNU</a> libc version 2.x
which is being integrated into Linux distributions as <tt>libc.6.x</tt>)
is support for NIS. It used to be the case that supporting
NIS on a Linux <em>client</em> required a special version of the
shared libraries (a variant compilation of libc.5).
</blockquote>
<blockquote>In <A HREF="http://www.redhat.com/">Red Hat</A> 5.x and
<A HREF="http://www.debian.org/">Debian</A> 2.x this will not be
necessary. We expect that most other Linux distributions will follow suit
in their next major releases. (This transition is similar to
the a.out to ELF transition we faced a couple of years ago,
and much less of a hassle than the infamous "<tt>procps</tt>" fiasco
that we went through between the 1.x and 2.x kernels. Notably
it is possible to have <tt>libc.5</tt> and <tt>glibc</tt> concurrently
installed on a system --- the major issue is which way your base system
binaries and utilities are linked).
</blockquote>
<blockquote>The advantages of NIS:
</blockquote>
<blockquote>It's a standard. Most modern forms of Unix support it.
</blockquote>
<blockquote>It's scaleable and robust. It automatically
deals with capacity and availability issues
by having two tiers of servers (master and slave).
</blockquote>
<blockquote>It's already been written. You won't be
re-inventing this wheel. (At the same time
it is more generalized --- so this wheel may
have more spokes, lug nuts, and axle trimmings
than you needed or wanted).
</blockquote>
<blockquote>The disadvantages of NIS:
</blockquote>
<blockquote>NIS is designed to do more than you might
want. It will default to providing host
mapping services (which might conflict with
your DNS scheme and might give you a bit of
extra grief while configuring '<tt>sendmail</tt>'
--- at least the Solaris default version of
'<tt>sendmail</tt>'). These are relatively easy
issues to resolve --- once you understand
the underlying model. However they are
cause for sysadmin confusion and frustration
in the early stages.
</blockquote>
<blockquote>It's not terribly secure. There is a NIS+ which
uses cryptographic means to tighten up some of
that. However, NIS+ doesn't seem to be available
for Linux yet. That is probably largely the result
of the U.S. federal government's unpopular and idiotic
attitudes towards cryptography --- which has a generally
chilling effect on the development and deployment of
robust security. The fact that U.S. policy also recognizes
patents on software and algorithms (particularly the
very broad RSA held patents on public key cryptography)
also severely constrains our programmers (they are liable
if they <em>re-invent</em> any protected algorithm --- no matter how
"obvious" it seemed to them nor how "independently" their
derivation). Regardless of these political issues, I still
have technical concerns about NIS security.
</blockquote>
<blockquote>Hybrid:
</blockquote>
<blockquote>You can use NIS within your domain, and you can distribute
your NIS maps out to systems that are on the periphery (for
example out to your web servers and bastion/proxy systems
out on the "firewall" or "perimeter network segment." This
can be combined with some custom filtering (to disable
shell access by most users to these machines --- helping to
ensure that the UID/GID mappings are used solely for marking
file ownership --- for example).
</blockquote>
<blockquote>NIS maps are is the same format as the files to which they
correspond. Thus the NIS passwd map is a regular looking
passwd file, and the NIS group map is in the conventional
format you'd expect in your <TT>/etc/group</TT> file.
</blockquote>
<blockquote>You might have to fuss with these files a bit to
"shadow" them (or "star out" the passwords on accounts
that shouldn't be give remote access to a given host).
</blockquote>
<blockquote>Ideally I'd like to see a hybrid of NIS and Kerberos.
We'd see NIS used to provide the names/UID's --- and Kerberos
used for the authentication. However, I haven't yet heard
of any movement to do this. I have heard rumblings of
LDAP used in a way that might overlap with NIS quite a bit
(and I'd hope that there'd be an LDAP to NIS gateway so we
wouldn't have to transition all those libraries <em>again</em>).
</blockquote>
<blockquote>Back to your case.
</blockquote>
<blockquote>NIS sounds like a natural choice. However, you don't have to
pick the Solaris system for the administration. You can use
any of the Linux systems or any Solaris system (among others)
as the NIS master. Since your Solaris system is probably
installed on more expensive SPARC hardware, and it probably
was purchased to run some services or applications that aren't
readily available on your Linux systems --- it would probably
be wiser to put up an extra Linux box as a dedicated NIS
master and administrative console.
</blockquote>
<blockquote>It doesn't sound like internal security is even on your
roadmap. That's fine and fairly common. All the members
of your team probably have <em>sufficient physical access</em> to
all of the systems in your group that significant efforts at
intranet (internal) security in software would probably be pointless.
</blockquote>
<blockquote>I'd still recommend that you use "private net" addressing
(RFC1918 --- <tt>10.*.*.*</tt>, <tt>192.168.*.*</tt> and the range of
class B's from <tt>172.16.*.*</tt> through <tt>172.31.*.*</tt>) --- and
make your systems go through a masquerading router (Linux or any of several
others) or a set of proxies or some combination of these.
</blockquote>
<blockquote>In fact I highly recommend that you fire up a DNS caching
server on at least one system --- and point all of your
clients at that, and that you install a caching web proxy
(<A HREF="http://www.apache.org/">Apache</A> can be configured for this,
or you can use Squid --- which is my personal favorite). These caches
can save a significant amount of bandwidth for even a small workgroup and
they only cost a little bit of installation and configuration
time and a bit of disk space and memory.
</blockquote>
<blockquote>(The default <A HREF="http://www.redhat.com/">Red Hat</A>
configuration for their '<tt>named</tt>' rc file
is to just run in caching mode. So that's truly a no brainer
--- just distribute a new <tt>resolv.conf</tt> file to all the clients
so that it refers *first* to the host that runs the cache. My
squid configuration on a <A HREF="http://www.suse.com/">S.u.S.E.</A>
machine and has run, unmodified, for months. I vaguely remember having
to edit a configuration file. It must not have been <em>too</em> bad.
Naturally you have to get users to point their web browsers at
the proxy --- that might be a hassle. With '<tt>lynx</tt>' I just edit
the global <tt>lynx.cfg</tt> file and send it to each host. Similar
features are available in Netscape Navigator --- but you have
to touch everyone's configuration at least once).
</blockquote>
<blockquote>Once you have your workgroup/LAN isolated on its own group of
addresses and working through proxies --- it is relatively
easy to configure your router to filter most sorts of traffic
that should not be trusted across domains and, especially, to
prevent "address spoofing" (<em>incoming</em> packets that claim to
be <em>from</em> some point inside of your domain).
</blockquote>
<blockquote>You can certainly spend <em>all</em> of your time learning about
and implementing security. However, the cost of that effort
may exceed your management's valuation of the resources that
are accessible on your LAN. Obviously they'll have to do their
own risk and cost/benefit analyses on those issues.
</blockquote>
<blockquote>I pay an undue amount of attention to systems security because
it is my hobby. As a consultant it turns out to be useful since
I can explain these concerns and concepts to my customers, and
refer to them to specialists when they want "real" security.
</blockquote>
<blockquote>To learn more details about how to setup and use NIS under
Linux read the "The Linux NIS(YP)/NYS/NIS+ HOWTO" at:
(<A HREF="http://www.ssc.com/linux/LDP/HOWTO/NIS-HOWTO.html"
>http://www.ssc.com/linux/LDP/HOWTO/NIS-HOWTO.html</A>). This
was just updated a couple of weeks ago.
</blockquote>
<blockquote>I guess there is support for NIS+ <em>clients</em> in glibc
--- so that's new to me. I've copied Thorsten Kukuk
(the author of this HOWTO) so he can correct any errors
I've made or otherwise comment.
</blockquote>
<blockquote>By the way: What is GIS? I've heard references to it
--- and I gather that it has to do with geography and
informations systems. Would you consider writing an
overview of how Linux is being used in GIS related
work for <a href="http://www.ssc.com/lj/">LJ</a> or
<a HREF="http://www.linuxgazette.com/">LG</a>?
</blockquote>
<!-- end body -->
<p><A NAME="tag_connect"><hr width="70%" align="center"</A></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)"
width="50" height="28" align="left" border="0"
>Modem Connect Speed</H3><p><strong>From James R. Ebright on 15 Jul 1998
in the</strong>
<a href="news:comp.unix.questions">comp.unix.questions</a>
<strong>newsgroup</strong></p>
<!-- begin body -->
<p><strong>
Dear Answer Guy,
</strong></p>
<p><strong>
I have a question that I can't seem to find any refernce to in any
of the regular documentation, (though I must admit, I only searched
for about an hour this time, and sporadically over the last month or so).
</strong></p>
<p><strong>
How can you tell the connection speed that a modem auto-negotiates
when dialing an ISP? My system log (<tt>/var/log/messages</tt> in RH5.1) does
tell me the line speed I have set in the chat script, but I would
like to know the connect speed as well (56K, 33.6, etc). I know this
info must be available somewhere/somehow.
</strong></p>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)" width="50" height="28" border="0" lign="bottom"
>I've gotten questions like this before and I never
did find an answer. Indeed I actually beg the question
itself.
</blockquote>
<blockquote>My problem with the question amounts to a couple of
rhetorical questions in return:
</blockquote>
<blockquote>Who cares?
</blockquote>
<blockquote>What are you going to do based on this metric?
</blockquote>
<blockquote>At first these questions may seem hostile. But
they aren't intended in that sense. There are both
practical and philosophical aspects to this.
</blockquote>
<blockquote>Are you going to return the modem to your vendor
or retailer if it doesn't "live up to" some speed?
</blockquote>
<blockquote>Are you going to switch to a different ISP if
their connect speed is better than your current average?
</blockquote>
<blockquote>Are you going to force the phone company to
pull new wire to your home, resplice their cables, or replace equipment
in their CO based on these results?
</blockquote>
<blockquote>You used the term "info" --- the "info must be
available somewhere" --- but what is the real informational
content of this number. Let's say you connect at 49000 bps
--- your effective throughput is likely to vary throughout
the duration of each call. The factors involved may be
quite different but they all have one thing in common ---
they are probably not anything you can effectively do anything about.
</blockquote>
<blockquote>Certainly you can do metrics on latency and throughput
by running scripts between two hosts (after synchronizing
their clocks). That could give you highly accurate <em>data</em>.
</blockquote>
<blockquote>I personally still question the <em>informational</em> content of
that data.
</blockquote>
<blockquote>So, I'm going to sound like a curmudgeon and say:
</blockquote>
<blockquote>I don't know how to get that data, and
I don't care to spend more time trying to find out.
</blockquote>
<blockquote>... However, I'll forward this for publication in
this months LG --- and I'll forward any responses
back to you. (To respect your privacy we normally
don't publish your e-mail addresses in LG. That does
result in a bit of extra work on my part --- but I don't mind).
</blockquote>
<blockquote>On an academic level I'm curious what answers and
suggestions we'll see. I'll be curious where this
number comes from and what it "means."
</blockquote>
<blockquote>On a practical level I try to configure my systems
and my work habits so I just don't have to care if
my modem is working at 28.8, 33.6, 14.4 or whatever.
</blockquote>
<blockquote>If you search the Answer Guy archives on the terms
"modem" or "benchmark and you'll probably also find
some other choice comments I've made about the marketing
claims of modem vendors (and CPU vendors for that matter).
</blockquote>
<blockquote>I have similar opinions about most claims of "speed"
as a feature.
</blockquote>
<STRONG><P><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)" width="50" height="28" border="0" lign="bottom"
>PS, I am using the standard RH5.1 "if-up" scripts, but have used my
own "ppp-on" style script in the past. I currently wrap my "if-up"
script with a ppp-on script that looks like:
</p></strong>
<pre>
>-------------------------------------------------
#!/bin/bash
cd /etc/sysconfig/network-scripts
./ifup-ppp ifcfg-ppp0 &
-------------------------------------------------
</pre>
<STRONG><P>
and "ppp-off" looks like:
</p></strong>
<pre>
>-------------------------------------------------
#!/bin/bash
cd /etc/sysconfig/network-scripts
./ifdown-ppp ifcfg-ppp0 &
-------------------------------------------------
</pre>
<STRONG><P>
I can offer more information if needed. Thank you for any light you
can shed on this issue.
</p></strong>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)" width="50" height="28" border="0" lign="bottom"
>I don't think these have anything to do with how
fast or slow your modems are. If you want to
reduce the amount of traffic that flows over these
lines while running PPP --- run a caching <tt>named</tt< (and
point the first entry in your <TT>/etc/resolv.conf</TT> to
the localhost address: <tt>127.0.0.1</tt>) and a copy of Squid
or <A HREF="http://www.apache.org/">Apache</A>'s cache proxy
and configure your browsers to use this WWW cache.
</blockquote>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)" width="50" height="28" border="0" lign="bottom"
>James R. Ebright
<br>IT Professional, <a href="http://www.coastalnet.com/">CoastalNet</a>
</strong></p>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)" width="50" height="28" border="0" lign="bottom"
>Sorry if I sound grumpy on this issue.
</blockquote>
<BLOCKQUOTE>
Your frustration with slow modems seems palpable
--- and the great backward regulatory morass that
is our telecommunications infrastructure doesn't
leave you (or me) many alternatives.
</blockquote>
<blockquote>(Cable modems are currently a pipe dream in my area).
</blockquote>
<!-- end body -->
<p><A NAME="tag_95slow"><hr width="70%" align="center"</A></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)"
width="50" height="28" align="left" border="0"
>Win '95 Hesitates After Box Has Run Linux?</H3>
<H4 align="center"></H4>
<p><strong>From Frank & Mary Veldkamp on 15 Jul 1998
in the</strong>
<a href="news:comp.unix.questions">comp.unix.questions</a>
<strong>newsgroup</strong></p>
<!-- begin body -->
<p><strong>
Hi Jim;
</strong></p>
<p><strong>
To let you in on what I have done:-
</strong></p>
<p><strong>
I have an AMD 586/133 processor, 24M RAM, 2 x HDD (2.5G and 635M)
run Linux off the 635M and boot in with floppy using LILO.
</strong></p>
<p><strong>
Win95 is resident on the main 2.5G which is formatted as C: and D:,
</strong></p>
<p><strong>
The problem occurrs any time that Win is run from a restart, be it a
warm boot (Ctrl-Alt-Del), full power off, or reset button.
</strong></p>
<p><strong>
Its as if its trying to ascertain what is on the second drive and
can't. It finally allocates it as a 2nd CDRom drive. You can't
access it or get any more info from it.
</strong></p>
<p><strong>
I've tried re-installing the OP/SYS and have tried it with Win95 on
its own but the same thing happens.
</strong></p>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)" width="50" height="28" border="0" lign="bottom"
>It sounds like this problem occurs with Win '95 regardless
of whether Linux has been installed or not.
</blockquote>
<BLOCKQUOTE>
What sort of controller are you using? Is it IDE? SCSI?
If it is IDE you'll want to double-check the settings
with regards to "master/slave/standalone." If you have
two IDE channels (pretty common these days) you might
try putting the second drive on its own cable, on the
other controller channel.
</blockquote>
<BLOCKQUOTE>
If this is a SCSI controller, double and triple check the
ID's, any pin settings and options on the drives and
the termination settings/resistor packs on the drives and
on the controller, and any settings on the controller or
accessible via its "setup program" (firmware or software).
</blockquote>
<BLOCKQUOTE>
In either case, try replacing the cables.
</blockquote>
<BLOCKQUOTE>
The 635Mb drive is pretty small these days. You might
consider setting it aside and springing for an extra
2 or 4 Gb drive.
</blockquote>
<STRONG><P><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)" width="50" height="28" border="0" lign="bottom"
>If you can't help maybe you know of some one who can. I'm in no
hurry and can manage other things without the solution, but any help
you can give would be greatfully accepted.
</p></strong>
<strong><p>Kind regards
Frank.
</p></strong>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)" width="50" height="28" border="0" lign="bottom"
>At 01:43 11/07/98 -0700, you wrote:
</blockquote>
<STRONG><P><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)" width="50" height="28" border="0" lign="bottom"
><font color="navy"><em>
Hi,
</em></font></p></strong>
<strong><p><font color="navy"><em>
I'm sorry if you've had this one before and I don't want to waste
your time but I've put Linux on for the first time and have no
previous experience. I really put it on because I would like to
learn something new. Anyway the problem is that when I boot to Win95
in which I have most of my programs, the first time that I try to do
anything that requires reading of the hard-drives the computer stops
responding for a considerable period. Some times up to 10 mins. Is
this normal or can I bypass this problem with some sort of
configuration. It's not too big a problem because it only happens
once during any session but it is a pain in the @$#%^$. Your help
would be greatly appreciated.
</em></font></p></strong>
<strong><p><font color="navy"><em>
Many thanks
<br>Frank.
</em></font></p></strong>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)" width="50" height="28" border="0" lign="bottom"
>
If I understand you correctly you're saying that,
since you installed Linux when you reboot into Win '95
your first subsequent access of the hard drive causes
a hestitation of several minutes.
</blockquote>
<BLOCKQUOTE>
Is that a proper understanding?
</blockquote>
<BLOCKQUOTE>
If so I'd just simply be baffled.
</blockquote>
<BLOCKQUOTE>
Does that only happen after a "vulcan PC pinch"
warm boot (Ctrl-Alt-Del), or after a hard boot (reset
button on the case), or does it happen after a
full power cycle (wait about 15 to 30 seconds between
power off and powering back up)?
</blockquote>
<BLOCKQUOTE>
Does this happen only once? Or does it happen periodically?
</blockquote>
<BLOCKQUOTE>
I've seen some devices (ether cards mostly) that could
"stay confused" through a hard boot. However, I can't
imagine anything that Linux would do to your hardware
that would cause this behaviour.
</blockquote>
<BLOCKQUOTE>
In cases like this (where something inexplicable is
going on and the secondary OS <EM>seems</EM> to be involved)
I suggest removing the new software (Linux) and testing
again. If that doesn't work try backing up all of your
data and doing an IPL (initial program load --- i.e. a
complete re-installation of your system software).
</blockquote>
<BLOCKQUOTE>
Please note that Linux can run off of removable drives
and can be loaded from a DOS prompt (Win '95 "Safe mode").
So, once you have your system behaving properly again you
can explore alternative ways to access Linux that are even
less likely to affect the rest of your system.
</blockquote>
<BLOCKQUOTE>
If you're really motivated, and you can isolate it to a
particular module, driver, or application <EM>under</EM> Linux that
is causing the problem, it will be very helpful. If you're
<EM>really</EM> motivated, and more of a programmer than I, you
might even track down and fix the bug --- since that's what
the sources are for. At least you might try building a
couple of different kernels (try stripping out everything
except the disk/controller driver that applies to the
controller on which you've installed your root filesystem --
leave out the the sound, and ether drivers, and boot up
into single-user mode --- don't start X or xdm and just
reboot back If the problem never occurs in this configuration
then you can keep adding things back until the problem recurs
--- or you've got Linux running the way you want).
</blockquote>
<!-- end body -->
<p><A NAME="tag_badblock"><hr width="70%" align="center"</A></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)"width="50" height="28"
align="left" border="0">Bad Cluster </H3>
<p><strong>From Ron Bautista on 13 Jul 1998
<br>in the</strong>
<a href="news:comp.unix.questions">comp.unix.questions</a>
<strong>newsgroup</strong></p>
<!-- begin body -->
<p><strong>Hi..
</strong></p>
<p><strong>I have a
<a href="http://www.toshiba.com/">toshiba</a> laptop...1.2gig. has like 10
bad cluster. Do I have to say goodbye to this one, and buy a new one If
not--- what software or downloadable app can I get to get it fix.... I would
very much appreciate your help.
</strong></p>
<p><strong>
Thank you,
Ron Bautista
</strong></p>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)" width="50" height="28" border="0" lign="bottom"
>I thought I answered this awhile ago. But I don't find it
in my archives and I do find it in my inbox. So,
</blockquote>
<BLOCKQUOTE>
You usually can't "fix" bad clusters --- though you can
instruct your OS to "map them out" (refuse to use them).
There used to be a software package for MS-DOS called
Spinrite (Gibson Software?) which would do surface analysis
of many types of drives and might be able to restore
bad clusters to use (although it was never recommended).
</blockquote>
<BLOCKQUOTE>
There used to also be procedures for many ST-506 (MFM and RLL)
hard drives and some SCSI drives which would allow the
user to do a "low level format" of the drive. However with
modern IDE and SCSI drives this option is generally unavailable
--- some drives will let you sent the low-level format command
to them, and their electronics will blithely ignore your command
and send a "success" signal back (I've even heard that some will
use a suitable delay factor).
</blockquote>
<BLOCKQUOTE>
The point is that modern drives are much more sophisticated than
the old ST-506 drives. Their electronics usually already
manage a number of extra blocks per track (cylinder) and
automatically map the extra blocks into use. Thus you usually
don't see any bad blocks on a modern drive until you have enough
errors on some of the tracks that the are no extras for them.
</blockquote>
<BLOCKQUOTE>
Thus, when you see "10" back blocks on a drive, it might be that
there are many more that have been automatically mapped out by
the drives electronics (and are thus not visible to the OS, even
at the device driver layer).
</blockquote>
<BLOCKQUOTE>
For using such a drive with Linux you simply use the
-c option to '<tt>mke2fs</tt>' when you make (format) new filesystems.
This will call the '<tt>badblocks</tt>' program and make the
appropriate adjustments to the filesystems tables. I think
these adjustments amount to permanently marking those blocks
as unavailable by adding them to a special 'inode' that's
maintained by the fs --- they'll never appear in the free list.
</blockquote>
<BLOCKQUOTE>
To add more/new bad blocks you can use the <tt>-c</tt> option to
<tt>e2fsck</tt>. You can also run '<tt>badblocks</tt>' by hand, save it's
output/report to a file, and use that as input to e2fsk's
<tt>-l</tt> switch.
</blockquote>
<BLOCKQUOTE>
That's about all there is to say about bad blocks under Linux.
</blockquote>
<blockquote>Obviously you want to maintain good backup procedures
--- and knowing that you have bad blocks on this drive
may encourage you to be extra careful about your data
on that system.
</blockquote>
<!-- end body -->
<p><A NAME="tag_trident"><hr width="70%" align="center"</A></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)"
width="50" height="28" align="left" border="0"
>XFree86 on Trident Providia 9685</H3><p><strong>From Simon Zlachevsky on 13 Jul 1998
in the</strong>
<a href="news:comp.unix.questions">comp.unix.questions</a>
<strong>newsgroup</strong></p>
<!-- begin body -->
<p><strong>Hi, kind of linux guru,
I was tring to configure my X window manager for
about two weeks using XFree86, but i didn't get results....
I have a trident providia 9685 vga card, and a view sonic E51 monitor,
any advice?
</strong></p>
<p><strong>I also download the latest version of xfree86 and ipgrade my own but
still without results, so any advice?, hint?, tip? or such
</strong></p>
<p><strong>
Simon Zlachevsky
</strong></p>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)" width="50" height="28" border="0" lign="bottom"
>Technically you don't configure your window manager for the
video card, you configure the X server for the combination
of video card and monitor that you have, then you configure
the window manager to suit your prefences within any constraints
imposed by you X server (and the underlying hardware).
</blockquote>
<blockquote>This card is listed as "supported" by recent versions of
XFree86 (though the support is listed as "limited" or
"not maintained). It's also been listed on the
"<A HREF="http://www.redhat.com/">Red Hat</A> Linux Hardware Compatibility List for Intel"
(<A HREF="http://www.redhat.com/support/docs/rhl/intel/rh42-hardware-intel-10.html"
>http://www.redhat.com/support/docs/rhl/intel/rh42-hardware-intel-10.html</A>)
since at least version 4.2.
</blockquote>
<blockquote>You don't give any clue as to what the problem is or
what steps you've taken. Also, as I've pointed out many
times I'm not much of an eXpert. I'm sorry that the
XFree86 crew doesn't have an "answer" crew of their own
--- but you should at least read throught their FAQ
at: <A HREF="http://www.xfree86.org">http://www.xfree86.org</A>
</blockquote>
<blockquote>Unfortunately there don't even appear to be any vendors
providing commercial technical support for XFree86. That
might be subsumed in some of the vendors that will sell
you support for Linux (I would think it would).
</blockquote>
<blockquote>You can also read through the LDP "XFree86 Video Timings HOWTO"
by Eric S. Raymond
(<A HREF="http://sunsite.unc.edu/LDP/HOWTO/XFree86-Video-Timings-HOWTO.html"
>http://sunsite.unc.edu/LDP/HOWTO/XFree86-Video-Timings-HOWTO.html</A>)
and the more general: XFree86 HOWTO
(<A HREF="http://sunsite.unc.edu/LDP/HOWTO/XFree86-HOWTO.html"
>http://sunsite.unc.edu/LDP/HOWTO/XFree86-HOWTO.html</A>).
</blockquote>
<!-- end body -->
<p><A NAME="tag_sound"><hr width="70%" align="center"</A></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)"
width="50" height="28" align="left" border="0"
>Reveal SC400 Sound Card: OSS/Linux and OSS/Free Supported?</H3>
<p><strong>From kifox on 13 Jul 1998
in the</strong>
<a href="news:comp.unix.questions">comp.unix.questions</a>
<strong>newsgroup</strong></p>
<!-- begin body -->
<strong><p>
Do you know if the Reveal SC400 rev 4a soundcard is directly
supported by Redhat 5.0 and how would I go about setting it up under
Linux if it isn't?
</p></strong>
<strong><p>
I'm not really sure but I think this card was manufactured by Aztech
for Reveal if it helps any
</p></strong>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)" width="50" height="28" border="0" lign="bottom"
>Sound drivers is one area that I know less about than
X. I've never used them much (under Linux, DOS, or Windows)
and I know nothing special about them.
</blockquote>
<blockquote>You might try a 2.1.xxx kernel (since there was a quite a
bit of work done on those drivers back in the 2.1.70's
or 2.1.80's). You could also look at the OSS/Linux
(open sound system), which is at:
</blockquote>
<blockquote><blockquote><code>
<A HREF="http://www.4front-tech.com/linux.html"
>http://www.4front-tech.com/linux.html</A>
</code></blockquote></blockquote>
<blockquote>... this is unusual in the Linux community in that the
authors of this commercial (shareware?) package are also
the principle authors of the sound drivers that are built
into the Linux kernel (called OSS/Free). This oddity has
been debated a bit --- but the widely held opinion is
that the overall benefits outweigh the concerns.
</blockquote>
<blockquote>Anyone who really doesn't like this arrangement is
free to derive their own version and enhancements
off of the code that has been contributed to the the
Linux kernel --- which is why it is still in compliance
with the GPL.
</blockquote>
<blockquote>The commercial OSS only costs $20 and the authors seem to
contribute as much back to the freeware/GPL code as they
reasonably can (they have to sign NDA's --- non-disclosure
agreements to get the specs for some cards).
</blockquote>
<blockquote>Looking at their web site I note that the Reveal SC300
is listed --- which suggests that the SC400 is not
currently supported (unless it is also known as the
Wave Extreme Pro).
</blockquote>
<blockquote>In any event, check out their web site yourself for details.
</blockquote>
<blockquote>And, once again, remember, if you want it supported under
Linux, you have your choices --- and if you buy it despite
the lack of support then you are <em>failing</em> to communicate
your prefences back to the hardware vendors in any meaningful way.
</blockquote>
<blockquote>I've taken the liberty of copying the
<A HREF="mailto:support@opensound.com">support@opensound.com</A>
(the OSS support people) on this request so that they can
comment on, or clarify anything that I've said.
</blockquote>
<!-- end body -->
<p><A NAME="tag_kernel"><hr width="70%" align="center"</A></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)"width="50" height="28"
align="left" border="0">Kernel Overview needed.... </H3><p><strong>From The Saint (mlkong) on 13 Jul 1998
the</strong>
<a href="news:comp.unix.questions">comp.unix.questions</a>
<strong>newsgroup</strong></p>
<!-- begin body -->
<strong><p>Hello Answer Guy,
</p></strong>
<strong><p>I need infos on:-
<ul>
<li>the specialized startup routines of Linux.
</ul>
</p></strong>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)" width="50" height="28" border="0" lign="bottom"
>There are several ways to start up a Linux kernel.
</blockquote>
<BLOCKQUOTE>The most common is to use a package called LILO
which involves using a Linux program called <TT>/sbin/lilo</TT>
to read a configuration program (usually <TT>/etc/lilo.conf</TT>)
and use the directives and declarations therein to build
a "boot record." A LILO boot record can be written to
the "master boot record" (MBR) of a hard drive, to a
floppy or to a "logical boot record" (a Linux filesystem's
"superblock").
</blockquote>
<BLOCKQUOTE>Using LILO you can prompt the user for options (multi-boot
and others), and even password protect specific boot
modes. LILO is pretty flexible and allows one to define
upto sixteen different boot configurations.
</blockquote>
<BLOCKQUOTE>It is also possible to write a Linux kernel directly to
a floppy diskette. If this is done (using a Unix/Linux
command like: <tt>dd if=./kenelimage of=/dev/fd0</tt>, or using
the appropriate "rawrite" commands for your OS) than
the floppy will boot the kernel. However, the major
limitation of this technique is that no parameters can
be passed to the kernel, making it very inflexible.
</blockquote>
<BLOCKQUOTE>Another method involves the use of the DOS program
<tt>LOADLIN.EXE</tt>. I'm told there is also an NT native version
of this program. <tt>LOADLIN</tt> allows you to load a Linux
kernel which is stored in a normal DOS file. Once it
is loaded it effectively kicks the previously loaded
OS out of memory underneath it. This is very similar
to the way that one loads Netware 3.x (<tt>SERVER.EXE</tt>).
</blockquote>
<BLOCKQUOTE><tt>LOADLIN</tt> can be called via a DOS batch file, or it can
be configured as at <tt>SHELL=</tt> or <tt>INSTALL=</tt> directive in
the MS-DOS <tt>CONFIG.SYS</tt>. This allows one to use the
multi-boot features of MS-DOS 6.x and later to boot
Linux.
</blockquote>
<BLOCKQUOTE><tt>LOADLIN</tt> also allows you to pass parameters to your
kernels. You can have as many kernels and configurations
as you can fit on your MS-DOS filesystems.
</blockquote>
<BLOCKQUOTE>Note that the Linux kernel is not required to "be on"
its root filesystem. You can use a boot record on
one device to load a Linux kernel from another device
which in turns mounts its root filesystem from some
other device (or even from "no device" --- the kernel
can have a RAM disk and use the <tt>initrd</tt> feature which
we'll cover in a few more paragraphs).
</blockquote>
<BLOCKQUOTE>It is also possible to create "El Torito" CD's for
Linux. The "El Torito" format for CD's allows many
of the newer systems and CD-ROM controllers to boot
an OS directly off of the drive.
<A HREF="http://www.redhat.com/">Red Hat</A> Inc.'s
CD's have been for the last few versions (at least
since 4.2 if I recall correctly). Note that this
only works if your BIOS or CD-ROM controller includes
the right features.
</blockquote>
<BLOCKQUOTE>There is also a program called <tt>SYSLINUX</tt> which allows
a Linux kernel to be written to an MS-DOS formatted
floppy and booted therefrom. I've never used that.
</blockquote>
<BLOCKQUOTE>On the PowerPC (Macintosh compatible systems, and
others) there are different mechanisms. These systems
use an "OpenBoot Firmware" which allows one to specify
things like boot devices, usually through an interactive
process, possibly involving a serial terminal connected
to the "modem" (RS-422?) port on these systems). There are
different versions of the OpenBoot firmware in different
Macs and Mac clones. This can be used to boot
<A HREF="http://www.linuxppc.org/">LinuxPPC</A>
(the "monolithic" kernel). It is also possible to use
a MacOS "Finder" application to boot
<A HREF="http://www.mklinux.apple.com/">MkLinux</A> (the
microkernel implementation of Linux for that platform).
</blockquote>
<BLOCKQUOTE>SPARC Linux uses SILO (and all SPARC machines that I've
ever heard of use OpenBoot --- or its predecessor "FCODE"
--- Sun introduced and published the whole OpenBoot
specification, which is essentially a small Forth kernel
in ROM for doing diagnostics, booting, and device
initialization and configuration). OpenBoot is used
on a number of workstation platforms --- I think recent
HP workstations all use it, too.
</blockquote>
<BLOCKQUOTE>On Alphas there are a couple of different (hardware
level) monitors that lead to the OS boot. I haven't
played with any of them, yet, but I'm told that MILO
is used on some (most?).
</blockquote>
<blockquote>As we move away from the question of "how does it get
into memory" we can ask what other features are unique
to the Linux start-up. On unusual feature is "<tt>initrd</tt>"
the option to create an "initial RAM disk image" ---
this is a compressed archive that is extracted into
a RAM disk, and it allows one to have a modular kernel
and a script that loads the desired modules from the
RAM disk. It is also possible to create multi-volume
"boot/root" and "boot/init/root" sets of Linux.
</blockquote>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)" width="50" height="28" border="0" lign="bottom">
<ul>
<li>a move toward totally modulat kernel? What does it means?
</ul>
</strong></p>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)" width="50" height="28" border="0" lign="bottom"
>I don't know what a "totally modular kernel" means.
You still have the option to compile a Linux kernel
with various options "built-in" and others built as
separate modules. You can do this in many combinations.
</blockquote>
<BLOCKQUOTE>With <tt>initrd</tt> you can create a kernel that doesn't even have
the driver for its primary drive controllers built-in
(it would be a module in the initrd image and would be
auto loaded by either the "<tt>kerneld</tt>" (or "<tt>kmod</tt>") feature
or by using an "<tt>insmod</tt>" or "<tt>modprobe</tt>" command from the
<tt>/initrc</tt> script that's extracted unto the RAM disk).
</blockquote>
<blockquote>I personally don't do this. I build my primary
disk controller driver and my primary ethernet card
drivers directly into my kernels.
</blockquote>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)" width="50" height="28" border="0" lign="bottom">
<ul>
<li>overview of the basic kernel organization.
</ul>
</strong></p>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)" width="50" height="28" border="0" lign="bottom"
>see below.
</blockquote>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)" width="50" height="28" border="0" lign="bottom"
><ul>
<li>important differences found in tak oriented splinter splinter trees.
</ul>
</strong></p>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)" width="50" height="28" border="0" lign="bottom"
>I have no idea what a "task oriented 'splinter, splinter' tree"
would be.
</blockquote>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)" width="50" height="28" border="0" lign="bottom"
>For your information i'm an undergraduate doing a research on this
topics. Please help cause i'm in a dark over Linux operating
system!!
</strong></p>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)" width="50" height="28" border="0" lign="bottom"
>These last two questions are far deeper into the Linux
kernel code that I have gone.
</blockquote>
<blockquote>You'll probably want to start by reading:
</blockquote>
<dl>
<dt>Linux Kernel Internals, 2nd Ed. (ISBN: 0-201-33143-8)
<dd>by:
<br>Beck, M. <br>B\"ohme, H
<br>Dziadzka, M <br>Kunitz, U.
<br>Magnus, R. and <br>Verworner, D.
<br>Published by Addison-Wesley in 1997
</dl>
<blockquote>... you'll want to look at the LDP KHG (the Linux
Documentation Project's <em>Kernel Hacker's Guide</em>)
(<A HREF="http://sunsite.unc.edu/LDP/">http://sunsite.unc.edu/LDP/</A>
and many mirrors).
</blockquote>
<blockquote>You'll undoubtedly want to also extract a copy of
the sources, possible for several versions of the
Linux kernel, and look at the directory structures
and read some of the code. That will reveal <em>everything
that's important</em> about the organization of the kernel.
</blockquote>
<blockquote>One of these days I'd like to see a "Linux Kernel
Sources Annoted Study Guide" --- telling me where to
start (<tt>/usr/src/linux/arch/i386/boot</tt> --- <tt>bootsect.S</tt> or
<tt>setup.S</tt>?) and walks through all of the code until a
simple, hypothetical system completes a shutdown.
Of course it would be nice to see the video, too!
</blockquote>
<blockquote>Another thing you could do is look through the archives
of the kernel mailing list, even join it and read through
some of the traffic that flows through there. That is the
principle medium of communications for the developers who
collaborate on the Linux kernel.
</blockquote>
<blockquote>For comparison you might also look for overviews of the
<a href="http://www.freebsd.org/'>FreeBSD<a>,
<a href="http://www.netbsd.org/">NetBSD</a>, and
<a href="http://www,openbed.org/">OpenBSD</a> development projects.
</blockquote>
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)" width="50" height="28" border="0" lign="bottom"
>Thanks.
Email me back ASAP please...
</strong><p>
<!-- end body -->
<p><A NAME="tag_solprint"><hr width="70%" align="center"</A></p>
<p>The original thread appeared in Issue 30,
<a href="../issue30/tag_solprint.html">Solaris -> Linux</a>.
The entire thread below was also posted in the</strong>
<a href="news:comp.unix.questions">comp.unix.questions</a>
newsgroup.</p>
<p><hr width="40%"><p>
<H3><img src="../gx/dennis/bbub.gif" alt="(!)"
width="50" height="28" align="left" border="0"
>Remote lpd from Solaris to Linux</H3>
<p><strong>From <em>The Answer Guy</em> on 08 Jul 1998 </strong></p>
<!-- begin body -->
<blockquote>Kuksi,
</blockquote>
<blockquote>
Here's another suggestion forwarded from one of
my readers:
</blockquote>
<strong><p><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)" width="50" height="28" border="0" lign="bottom">
I like to print from Solaris to Linux.
(...repeat of <a href="../issue30/tag_solprint.html">thread</a>...)
</p></strong>
<blockquote><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)" width="50" height="28" border="0" lign="bottom">
To which "Joe Ellis" adds:
</blockquote>
<blockquote><font color="navy"><em>
Wasn't sure how to reply to this (no email address that I saw) but
whoever had this question:
</em></font></blockquote>
<blockquote><font color="navy"><em>
You have to (under redhat 5.0 anyway) add an account for each
username on the remote system whom you wish to be able to print.
I.E. if user '<tt>foo</tt>' on the Solaris machine wants to remote print to
the Linux box, you have to add a user account '<tt>foo</tt>' to the Linux
box. This is in addition to the host/ip in the <tt>/etc/hosts.lpd</tt>
file. I haven't figured out WHY but I know in a stock redhat 5 box
thats how it works. I cannot validate this for other Linux systems
other than redhat as thats the only dist. I have access to at the
moment.
</em></font></blockquote>
<blockquote><font color="navy"><em>
-joe
</em></font></blockquote>
<blockquote>
That makes sense. You could probably edit the
appropriate PAM (pluggable authentication module)
configuration to allow anonymous access --- but I
don't know, just off hand, which file that would be
or what the magic configuration would look like.
</blockquote>
<blockquote>
I suppose we could ask on the PAM mailing list...
</blockquote>
<blockquote>
I've been meaning to install LPRng (the "next
generation" print spooling suite) but haven't taken
the time to do it. For now I actually rcp and
print my files manually. I've had lpd working on
some of my systems, sometimes. But I hardly ever
print anything, so there's little inconvenience and
not nearly enought to track it down.
</blockquote>
<blockquote>For the first few years I used Linux I printed everything
by preparing a file and using:
</blockquote>
<blockquote><code>'cat ... > /dev/lp0'
</code></blockquote>
<blockquote>... on that.
</blockquote>
<blockquote>Let's just say, I don't like printers very much.
</blockquote>
<!-- end body -->
<p><hr width="40%"></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)"width="50" height="28"
align="left" border="0">printing Solaris->Linux</H3>
<p><strong>From kuksi on 13 Jul 1998 </strong></p>
<!-- begin body -->
<strong><p><font color="navy"><em>
You have to (under redhat 5.0 anyway) add an account for each
username on the remote system whom you wish to be able to print.
</em></font></p></strong>
<strong><p><font color="navy"><em>
--: joe
</em></font></p></strong>
<p><strong>There is no need to add an account, but thanks to Joe for the answer
</strong></p>
<p><strong>Now it is working !!!! Yeahuj!! *** The problem was idiocity... :
I installed the remote printer under Solaris:
</strong></p>
<pre>1. #lpsystem -t bsd linux_machine_name
/Identifies the print server system and its type(bsd for BSD)/
2. #lpadmin -p printer_name -s linux_machine_name -T unknown -I any
/Identifies the printer on the printer server./
3. #accept printer_name
#enable printer_name
^^^^^^^^^^^^^^^^^^^
/Specifies that the print client can send print request to the printer./
4. #lpadmin -d printer_name
/Set's the printer as the system's default printer destination./
</pre>
<strong><p>BUT! In the point 3. "enable printer_name" it isn't enough, because:
</p></strong>
<pre>5. #lpstat -t
scheduler is running
system default destination: printer_name
system for printer_name: linux_machine_name
printer_name accepting request since Mon Jul 13 10:25:43 MET DST 1988
printer printer_name is ready. disabled since Mon Jul 13 10:25:55 MET
^^^^^^^^
DST 1988
new printer
/Verifies that the printer is ready./
</pre>
<strong><p>It needs a second "#enable printer_name" command, and after this
it is working...
</p></strong>
<strong><p>Shhhhh.. ! ***
</p></strong>
<strong><p>Otherwise..
</p></strong>
<strong><p>= (think i am <IMG SRC="../gx/dennis/smily.gif" ALT="" height="24" width="20" align="middle">
</p></strong>
<strong><p>Thank for your answers
</p></strong>
<strong><p>kuksi
</p></strong>
<!-- end body -->
<p><hr width="40%"></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)"width="50" height="28"
align="left" border="0">printing Solaris->Linux </H3>
<p><strong>From kuksi on 14 Jul 1998 </strong></p>
<!-- begin body -->
<STRONG><P><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)" width="50" height="28" border="0" lign="bottom"
><font color="navy"><em>
You have to (under redhat 5.0 anyway) add an account for each
username on the remote system whom you wish to be able to print.
</em></font></p></strong>
<strong><p><font color="navy"><em>
--: joe
</em></font></p></strong>
<strong><p>However joe has right....the linux account to be a must.
</p></strong>
<p><strong>(gondolom en
<IMG SRC="../gx/dennis/smily.gif" ALT="" height="24" width="20"
align="middle">
</strong></p>
<p><strong>kuksi
</strong></p>
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" alt="(!)"width="50" height="28"
align="left" border="0"
>Well, if that's a problem you could always try
<a href="http://ftp.gts.cz/FTP/pub/MIRRORS/ftp.astart.com/pub/LPRng/HOWTO/LPRng.html">LPRng</a>.
Otherwise you might want to set up Linux as a NIS
client on this LAN (if you're using NIS) --- or
configure it so that it's passwd files are kept in
sync with the others (assuming you're maintaining
synchronized passwd files, which you really want if
you're running any NFS throughout that site).
</blockquote>
<!-- end body -->
<p><A NAME="tag_idescsi"><hr width="70%" align="center"</A></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">Lilo not working on SCSI when IDE drives installed </H3>
<p><strong>From Timm Gleason on Wed, 08 Jul 1998
in Newsgroups:
<a href="news:comp.unix.questions">comp.unix.questions</a>
<br><br>
We have several <a href="http://www.debian.org/">Debian</a>/Linux
workstations around the office that
contain both SCSI and IDE devices. Now we almost exclusively use
SCSI hard drives but occasionally we will stick an extra IDE drive
into a box when more disk space is needed. My problem is this, when
we recompile a new kernel after a security patch of fix, and then
run lilo it gives the error `Warning:/dev/sda2 is not the first
disk`. So then I have to halt the machine, physically remove the IDE
device, boot with a rescue disk, rerun lilo, halt the machine,
reinstall the IDE device and reboot. Now while I admit that this
does work, it can be a real pain to have to do that to every
workstation we have that has mixed devices installed.
<br><br>
Thanks
<br>Timm Gleason
</strong></p>
<blockquote><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">
Normally there is no problem with integrating SCSI and
IDE drives in a system (under Linux).
<br><br>
However I think I have a hint as to your problem.
A normal PC BIOS will boot off of the first IDE drive
on a system. It will <em>only</em> look at the MBR (master
boot record) on the first hard drive (usually after
looking for a boot record on <em>only</em> the first floppy).
<br><br>
The normal consequence of this is that you usually have
to install your OS on the first hard drive. IDE drives
conform to an interface which is built into the BIOS.
With SCSI there is a BIOS extension on the controller's
ROM that allows the system to boot.
<br><br>
BIOS extensions are code that's contained on the ROM's of any
expansion card -- so long as it contains a specified header
and calling convention. Part of a normal PC boot process is
to scan the reserved address space between A0000 and E0000 (or
so -- it might be from B0000 through D0000, I don't have a
BIOS reference handy) for this "BIOS extension signature" ---
and then to call setup routines an give offsets from any of
these signature blocks that it finds. That is how SCSI
controllers and ethernet boot PROMS (and other "bootable"
devices) work.
<br><br>
The problem is that most SCSI controllers and PC BIOS' will
give the IDE drives precedence over any SCSI drives.
<br><br>
One approach would be to let the system have "its" way
and let lilo write the MBR to the IDE drive. So long
as your BIOS (with extensions) can <em>see</em> the SCSI drives
it doesn't matter that the lilo boot block refers to another
drive.
<br><br>
An odd and confusing thing about Linux is that the boot
block, the kernel, and the root filesystem can all be
on different devices. In fact you don't need a "boot block"
at all --- you can use LOADLIN.EXE to start a Linux kernel
(I've heard it can be used to load a FreeBSD kernel, too ---
but they have their own program for that anyway).
<br><br>
So, if you have a <tt>/etc/lilo.conf</tt> that looks like:
<pre>
boot=/dev/hda
read-only
prompt
timeout=200
image = /vmlinuz
root = /dev/sda1
label = example
</pre>
... and you run <tt>/sbin/lilo</tt> to "compile" this set of
configuration directives into a boot block here's what
it will do:
<blockquote>
Write the boot block to <tt>/dev/hda</tt>
<br><br>
note: we use the raw device, so it goes to the MBR,
if we use <tt>/dev/hda1</tt>, it goes to the "logical boot
record" or "superblock" of the specified (first)
partition.
<br><br>
The 'read-only' directive is passed to any Linux
kernels that you load --- it specifies that the
root filesystem will be initially mounted read-only
to allow the fsck to work properly on it.
<br><br>
The 'prompt' directive is used to control the behavior
of the LILO boot program at it's runtime (it forces it
to print an interactive prompt to the console during boot)
and the 'timeout' directive specifies how long the
prompt will wait before continuing to the default
boot "stanza" (the first, and in this case, only one).
<br><br>
The image directive points <tt>/sbin/lilo</tt> to the location
of a kernel image (file). Note the distinction between
/sbin/lilo's "compile time" and the lilo boot code's
"run time" (that's why I push this analogy of treating
the lilo package as a "boot block compiler" --- it
helps put these distinctions in familiar terms).
<br><br>
This directive causes <tt>/sbin/liloi</tt> to "map" the device
number and address of the image file. That address can
be in different formats depending on whether the
"linear" directive is used to inform <tt>/sbin/lilo</tt> that the
device is being accessed through "sector translation."
<br><br>
The 'root' directive specifies where the root filesystem
for this "stanza" is located. That is passed to the
kernel unless over-ridden by parameters that are entered
interactively at the prompt.
<br><br>
Obviously the 'label' directive allows the user to
select different boot stanzas by name at the lilo
prompt. (Not that the "lilo prompt" refers to <em>run-time</em>
rather than "compile-time" --- it is the "boot block code"
that is doing the prompting and <tt>/sbin/lilo</tt> is utterly
uninvolved at that point).
</blockquote>
I've played with a number of configurations of lilo.conf over
the years. I've written boot blocks to floppies, specified
image files that were on mounted (non-root) filesystems,
and done other silly things. Lilo's flexibility can be
very confusing and I've tried many things that didn't work
(usually for good reason --- Lilo is constrained by the
limitations and conventions employed by your BIOS).
<br><br>
If you try this and it doesn't work you might need to
put a tiny partition on that drive. You can put a
very small minix filesystem on that (conceptually you
could put a kernel and no fs in a single track ---
but <tt>/sbin/lilo</tt> doesn't have a way to "find" that).
<br><br>
For that matter you can put a Linux kernel file on
<em>any</em> fs that you put on that IDE drive. If you
put a kernel image on an MS-DOS filesystem and
run <tt>/sbin/lilo</tt> <em>while that fs is mounted</em> (it will
complain if it cant find the kernel images at
"compile time") you should be fine (until you run a
DOS defrag utility!).
<br><br>
A wholly different approach is to to lie to your CMOS
setup and tell <em>it</em> that you have no IDE drives
installed.
<br><br>
Linux doesn't rely on your CMOS settings or BIOS to
detect or use IDE drives. So, once Linux is loaded
you should be able to see your IDE drives even if they
are not listed in your CMOS configuration.
<br><br>
(I'm pretty sure I did that once and I don't remember
having to do any tweaking to get it to work. It might
be dependent on your kernel version and compilation
options, though).
<br><br>
Obviously, you're doing something a little different
--- most people who mix IDE and SCSI drives start with
the IDE's and always let them be the boot devices. That's
the path of least resistance. However, you can try
the tricks I've described --- let me know if removing
the CMOS parameters for the drives works (or if I'm
suffering from delusional memories).
</blockquote>
<p><hr width="40%"><p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">Lilo not working on SCSI when IDE drives installed </H3>
<p><strong>From Timm Gleason on Fri, 10 Jul 1998
in the</STRONG>
<a href="news:comp.unix.questions">comp.unix.questions</a>
<STRONG>newsgroup</Strong>
<br><br>
Thanks for your prompt reply. Many of the things you mentioned we have tried
at one time or another with limited results. We are suing Asus P2L97
motherboards which have the ability to set in the BIOS which drive type you
want it to look at first. We have even removed the IDE drive from the BIOS
settings. The problem is that since Linux does not rely on BIOS settings for
IDE drives it always detects them first. And typically we are adding old
extra IDE drives for expanding storage or the CD-ROM drive in the machine is
an IDE.
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
It's true that Linux doesn't rely on BIOS settings.
However, the lilo boot loader <em>does</em>. It is the boot loader
that is looking in the wrong place. This is probably a
bug in your BIOS (or still in your configuration of that
BIOS, as it sits in the CMOS registers).
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">
I have yet to try setting boot=/dev/hda and root=/dev/sda in the lilo.conf.
I was under the impression (mistakenly I guess) that the MBR and root disks
had to be on the same partition.
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
The fact that this is a very common misconception explains
why I take such pains to explain it in so much detail.
I must have gone over this about twenty times in LG and
about a hundred in the newsgroups.
<br><br>
Also, a nitpick, don't think of them as "root disks" ---
think of them as root filesystems.
<br><br>
An MBR consists of a boot record and a partition table. The
boot loader points to a kernel (or several) --- or it might
point to a secondary boot loader. The Linux kernel contains a
pointer to the default root fs. The LILO boot loader (from
the MBR or from a floppy or any logical boot record) may pass
parameters (such as video mode and root fs parameters) to the
kernel to over-ride the one that's built-in. The '<tt>rdev</tt>'
command can write a new rootfs string into a kernel (and it
can tweak other values like "video mode" --- look at the
'<tt>rdev</tt>' man page for details).
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">Thanks Again</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
You're welcome.
</blockquote>
<p><A NAME="tag_distrib"><hr width="70%" align="center"</A></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">Yggdrasil:
A Breath of Life for the Root of CD Linux Distributions?</H3>
<p><strong>From Mike on Sun, 05 Jul 1998
in the </strong>
<a href="news:comp.unix.questions">comp.unix.questions</a>
<strong>newsgroup</strong></p>
<p><strong>
What do you know about
<a http://www.yggdrasil.com/">Yggdrasil</a> linux distribution?
They purport
significant advances in OS/SOFTWARE/DOCUMENTATION not achieved by
others. Is it real or make believe or worthy of mention? I was
impressed by what I read, however I am not all knowing but just
researching linux to find the best distribution/version to begin
learning yet have an os that is versatile enough to keep using once
abilities exceed beginner/amateur. Mike
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
Yggdrasil's ``Plug and Play'' Linux was the first CD-ROM
distribution ever produced. They also developed and released
the first CDR recording software that was available under
Linux. Yggdrasil was also one of the earliest companies to
compile, print and bind "dead tree" versions of the LDP (Linux
Documentation Project). Back near the beginning of 1997 they
released an 8-CD set of Linux archives (not including their
own distribution). They are the only company that I know of
which has produced a video documentary on using Linux.
<br><br>
Adam Richter, founder of Yggdrasil, is still active in the
community. He frequently shows up and local user group
meetings (<A HREF="http://www.svlug.org">http://www.svlug.org</A>)
and he occasionally
participates in discussions on the 'Linux-kernel' mailing
list. In fact I saw him at the "midnight rally" that the
SVLUG and some other bay area Linux enthusiasts hosted in
front of Fry's and CompUSA on the night that Microsoft
officially shipped Win '98(*).
<br><br>
<ul><li>Specifically he and I discussed the fact that the
rally had just run out of the 500 S.u.S.E. CD's that
had been donated to us for promotional purposes.
He joked that he could drive over to his offices
--- a couple of miles from there --- and get a case or
two of old sets of the "archives" --- but also expressed
the concern that they were probably a little too old to
be of interest to new Linux users.
</ul>
Recently (just last February --- a few months ago), he
announced his experimental "Ground Zero" repository --- which
is an effort to provide a comprehensive and dynamic repository
of all of the available Linux packages in tarball (Slackware
compatible .tar.gz), RPM (Red Hat), and .deb formats.
<br><br>
Apparently Adam also has some interesting processes running
at his site --- based on some custom programming he's done.
It monitors certain FTP sites (and some other sites?) and
automatically fetches, builds and tests new kernels (and
some other packages?). I don't know the details --- but it
sounds very cool.
<br><br>
One of the things I really liked about Yggdrasil's distribution
was that it had an integrated source tree. You could easily
find the sources for anything in the distribution (I think it
included a '<tt>whence</tt>' command which was similar to the '<tt>which</tt>'
command except in that it pointed you to the source code for
a command, rather than just to the binary).
<br><br>
I mention that in the past tense since I haven't used
"Plug and Play" Linux in a number of years --- it hasn't
been updated recently. In response to your note I raced
over to the Yggdrasil web site
(<A HREF="http://www.yggdrasil.com/">http://www.yggdrasil.com/</A>)
in the hopes that they actually have a new release.
<br><br>
(I keep asking Adam and he just quietly assures me not to
worry about it!).
<br><br>
So, I'd like to know what you've read (and if there was a
date on it).
<br><br>
As for the relative merits of Yggdrasil's "Plug and Play"
vs. <a href="http://redhat.com/">Red Hat</a>,
<a href="http://www.suse.com/">S.u.S.E</a>.,
<a href="http://www.debian.org/">Debian</a>,
<a href="http://www.caldera.com/">Caldera</a>, and the most recent
<a href="http://www.slackware.org/">Slackware</a>
--- it's not a fair comparison. All of these other
major, general purpose distributions have been updated several
times since the last "Plug and Play" release.
<br><br>
So, I cannot recommend the old Yggdrasil version except for
historical (almost archealogical) purposes. That's why I want
them to release a new version.
<br><br>
(Meanwhile the "Ground Zero" effort is very up-to-date and
completely independent of your distribution --- so you should
definitely bookmark their site and check on it regularly).
</blockquote>
<p><hr width="40%"></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">More on Distribution Preferences</H3>
<p><strong>
Answerguy,
What do you think of this distribution?
OpenLinux Base
</strong></p>
<font color="navy"><em>
<p><strong>
OpenLinux: A complete Linux operating
system with all the system tools youll need.
Plus valuable add-ons, like Netscape
Communicator and backup utilities.
</strong></p>
<p><strong>
US and Canadian orders can take advantage of a $20.00
rebate from Caldera, bringing the price of OpenLinux
Base to $31.95
</strong></p>
</em></font>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
I haven't used any of the <a href="http://www.caldera.com/">Caldera</a> distributions
recently. This is a much more recent version the those
that I've used. So, I don't have an informed opinion on
them.
<br><br>
Since you just asked about Yggdrasil yesterday I'm wondering
if this is a pattern. I hope you aren't going to send me
of these every day.
<br><br>
My opinion about Caldera <em>Standard</em> is that it is the best
choice for a site that has existing Netware servers or
clients. It was also the first distribution that was
supported by WordPerfect for Linux. There are a number of
other commercial software companies that work with Caldera
for releasing Linux versions of their product.
<br><br>
If the Caldera Base includes a copy of
<a href="http://www.stardivision.com/">Star</a>Office (as your
press release says it does) than that is a very good reason
to try it. (The installation of StarOffice that I have from
an early 4.0 CD is very unstable --- it dies quickly and
horribly under my
<a href="http://www.suse.com/">S.u.S.E.</a> 5.1 system.
I've heard that that
there are new libraries and releases that fix that --- but I
haven't been particularly motivated to go get them since I
still mostly live in text consoles).
<br><br>
StarOffice is a very promising product --- and the competition
between it Corel Office, and Applixware should be
interesting. The most important feature of either is to
provide me with stable, reliable access to MS Office .DOC and
.XLS files. The first one to successfully do that with MS
Office '97 wins my vote. (Since that is one of the few
reasons for me to get out of a text console and into X --- the
others being Netscape Navigator (when I need something that
just doesn't look right in Lynx), 'xfig' (to draw diagrams for
the book that I'm working on), and 'xdvi', and 'gv' (to
preview the LaTeX and dvips output for same).
<br><br>
At the same time I recognize the potential of these office
suites (and some others). As these get better we see Linux as
a more serious contender on the desktops of home and corporate
users. According to some surveys we're already winning against NT
in a number of server categories (including web, mail, DNS, and
SMB/<a href="http://samba.anu.edu.au/">Samba</a>). We've gained a
lot of ground in the technical and scientific workstation market
(although the push to get EDA and CAD/CAM suites ported is just barely
started). But all the "mom's" and "pop's" out there that have
their college kids buying systems for them need something a
bit less intimidating than 'emacs' and 'vi' --- and TeX and
friends.
<br><br>
<a href="http://www.kde.org/">KDE</a> and
<a href="http://www.gnome.org/">GNOME</a>
will provide the main interface and many of the
toys and widgets. StarOffice,
<a href="http://www.applix.com/">Applix</a>ware,
<a href="http://www.corel.com/">Corel</a> Office, SIAG,
LyX, Wingz, Xess, and others are all vying to provide the
main user applications.
<br><br>
(I personally think we'll also need multi-media GUI "Welcome to
Linux/XFree86/KDE" and "Welcome to Linux/XFree86/GNOME"
interactive tutorials --- with sound, music, via, and a
dancing, talking Tux. I want a system I can install on a
box and send to my Mom!).
<br><br>
<dl><dt>
Getting back to your implicit question:
<dd> Which Linux distribution should you try?
<dt> ... the answer is:
<dd> I have no idea!
</dl>
Unlike the marketeering weenies that you encounter in
every magazine, and newspaper, on every TV and radio
show and on billboard and busses every time you drive
anywhere ... unlike them, I don't want to push a bunch
of <em>features</em> on you and I have nothing to sell you
(except my time --- which is pretty expensive).
<br><br>
Helping someone select a Linux distribution (or anything
else) is a matter of requirements analysis. What do
you need? What do you want? How much are you willing to
spend? (Time and money). It is quite possible that I
would recommend FreeBSD, NetBSD, OpenBSD, BSDI/OS, or
even Win '95, NT, or MS-DOS --- <em>if</em> I understood your
requirements sufficiently.
<br><br>
Before you send me a list or essay on your requirements
consider that the Answer Guy is time I volunteer to show
my appreciation for all the work that people like Richard
Stallman, Linus Torvalds, Alan Cox, Arnold Robbins, and
so many others have put into the GNU project, Linux and
other freeware. I try to answer questions that I think
are of broad interest to many Linux users and potential
Linux users. (And possibly of interest to *BSD'ers
and eventually GNU HURD'ers).
<br><br>
The easy answer to selecting a distribution is: pick one!
Since many of them are freely distributable you might want
to start with one of those. Debian and Red Hat are definitely
freely accessible. I think Slackware is still available online
--- and I suspect that it's perfectly O.K. to borrow a friend's
copy of the CD. Walnut Creek might have exclusive rights on
CD distribution of Slackware --- I don't know. I think S.u.S.E.
is free for "personal" use (although it is a bit unclear my
S.u.S.E. 5.2 manual says:
<blockquote><code>
Copyright
This work is copyrighted [sic] by S.u.S.E. GmbH and
is placed under conditions of the GNU General Public
License.
You may copy it in whole or in part as long as the
copies retain this copyright statement.
</code></blockquote>
... (overleaf of the title page). It's not clear whether
"this work" is intended to refer to the book or to the
distribution that included it. The box and CD case (4CD's)
don't list any other copyright or licensing notices that I
can find. The only index entry under the term "license"
points that the Appendix of their manual that contains the
full text of the FSF GPL. That would suggest that you can
borrow my set of S.u.S.E. CD's and install it, and would
even suggest that someone could start creating derivative
works (other CD sets) to sell in competition with S.u.S.E.
<br><br>
However, I've always been under the impression that S.u.S.E.
is a commercial distribution. I purchased both of my copies
for it -- 5.1 and 5.2 --- and I've purchased many copies of
various Red Hat versions (the boxed set and the lower-priced
archives sets). So, you might want to ask a S.u.S.E. rep
before you go into production against them. However, I doubt
that they'd even want you to waste their time asking if it's
O.K. to install from a friend's set on an evaluation basis.
<br><br>
You're clearly willing to buy some distribution once you
find one you like. Personally I usually select Red Hat
for my customers (after I've considered their needs) simply
because Red Hat has a pretty good balance of the various
factors they care about.
<br><br>
Debian has more packages (slightly) -- but the last copy of
dpkg that I used was very convoluted (I'm hoping to get a 2.0
CD as soon as it goes out of beta). Slackware was nice when
I needed it --- but most of my customers aren't interested
in fussing with tarballs --- they want something with a
decent package manager (one that can be operated easily
from command lines as well as throught a GUI).
<br><br>
Under RH it's pretty simple to write a script to poll an
internal FTP site for package updates and automatically apply
any of them that appear. (I think there's a package called
'rpmwatch' floating around some 'contrib' directories somewhere
that does precisely that). I haven't looked at RH 5.1 yet.
<br><br>
S.u.S.E. and Caldera both use the RPM format.
<br><br>
S.u.S.E. includes more packages that the last couple RH CD's
I used (4.2 and 5.0). It seems to have a pretty good
installation interface though I have mixed feelings about
their interpretation of the SysV init scripts. They have a
large shell script named /etc/rc.config (mine is about 770
lines long --- of which about 500 are comments). This file
contains a long list of shell variables and values. You
can edit this file by hand or you can use YaST (Yet another
Setup Tool) which is their curses based system's administration
interface. The idea is that the other scripts all "source"
this one file and use the variables that apply to their
operation.
<br><br>
On the one hand this is very nice. Concievably I could
create a particular installation profile (which they support
via their installation interface), install the system,
configure it via YaST and put it into production.
<br><br>
Let's assume I use the 'chattr +i +d' (immutable and no-dump)
flags on all the files that came with the distribution and
unset them as a pair whenever I change any of them; this would
allow me to use the 'dump' program and <em>never</em> backup files
that were from the initial installation off of the CD). This
is for a "data+config" backup strategy.
<br><br>
If I've stored the rescue floppy they created, and the
rc.config file --- I should be able to restore the whole
system to its configuration with just my installation
CD's, my rescue diskette, and the rc.config file. (Naturally,
I'll have to restore all my data as well).
<br><br>
Another nice thing is that I might be able to create
a little script to generate new rc.config files from a
master form and a couple of other data files. If I have
<em>lots</em> of new machine trickling in I might have a few
files that contain lists of IP addresses, hostnames,
NIS domain names, shared printers, and other local (LAN)
data. I might conceivably be able to generate a new custom
rc.config file for each new box and automate even more
of the deployment.
<br><br>
Under other distributions I have to mess with over a dozen
separate files. Unfortunately it's not that easy even under
S.u.S.E. If you use NFS you really want to use NIS or synchronize
the 'passwd' and 'group' files across your systems (since
maintaining ugidd maps is not scaleable and NFS relies on
the uid/gid values to determine access and permissions.
<br><br>
None of the distributions I've seen prompt me for a
passwd/group file set prior to installation. So, if I use
Red Hat on one system and S.u.S.E. on another (I do)
--- there will be some base files that differ between them
(most of the uid's created by most of the distributions
<em>do</em> match -- there were only a couple that I had to
run through a "masschown" script). (Distribution Dudes!:
This is my enhancement plea for the month! Please let me
hand you a passwd/group file set --- from floppy or over
ftp/nfs/http --- and use that to map the ownership as you
install).
<br><br>
These days, for large sites, I recommend creating one
"template" installation one a typical box, cutting that whole
installation to tape or CDR after configuration but <em>before</em>
any <em>use</em> (data). Now you can do all new system installations
as "restores" from your backups. You can also take that
opportunity to make sure that your recovery plans, rescue
diskettes and backup media are all in working order. One
reason I recommend that is that it takes me about
four hours to fix various permissions and configurations
(hosts.allow, hosts.deny, etc) after I've completed a new
installation.
<br><br>
One final note about choosing a distribution: don't just
ask me. I'm only one person. I've only used about a half
dozen Linux distributions (some of which no longer exist!).
Don't just go to the newsgroups and mailings lists and ask
"Which is best?"
<br><br>
Ask questions that relate to your situation: Will you be
integrating this into a Novell network? Do you have friends
or family that will be working on your Linux box? Do any of
them have experience with a Linux distribution? Do any of them
use some other form of Unix (free or otherwise)? Do you have
any particular applications preferences? Is system security
a concern? What are the risk profiles that are acceptable to
you? What is your native language (German speakers will probably
be much happier with the German S.u.S.E. or the DLD (?)
distributions, Japanese users seem to prefer FreeBSD, the French
have their own distribution, etc.)?
</blockquote>
<p><A NAME="tag_modem"><hr width="70%" align="center"</A></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">115K Baud from a Modem: In your dreams!</H3>
<p><strong>From WEMehl on Fri, 03 Jul 1998
<br><br>
I purchased an <a href="http://www.ibm.com/">IBM</a> Aptiva last fall.
It came with a LTwin modem installed. It tells me that its max speed is
115K, but I never seem to be able to run at more than 34K. Is it the
modem (if so can I upgrade) or is it something to do with
<a href="http://www.aol.com/">AOL</a>? Thanks.
</strong></p>
<blockquote><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">
I think that this is a shameful bit of marketeering on the part of
whatever docs tell you this. They probably mean "115K if you get
better than average compression under ideal phone line conditions."
<br><br>
Currently the highest speeds attainable by modems over traditional
telephone lines is about 56Kbps --- and that is asymetric. In other
words you can download stuff at close to 56K under ideal line
conditions --- but your upload speed will not approach that (a
non-issue for most Internet "web surfers" --- but it would have been
a major issue for the old BBS users who used to run their Fido boards
and use QWK messaging.
<br><br>
I have no idea what AOL is currently doing. It is likely that they
haven't upgraded all of their modems (Points of Presence) to 56K
at this point --- and it's even more unlikely that they would have
upgraded their entire infrastructure to ensure that their hosts and
LAN's would have the capacity and bandwidth to feed those thousands
of high speed modems <em>at full speed</em>.
<br><br>
As for upgrading --- you can almost certainly upgrade your modem.
I've been working with PC clones for over a decade and I've never seen
one that had a *modem* hardwired into the motherboard. I've seen some
with inferior serial ports --- serial ports with buggy and slow 16450
UART chips that couldn't be replaced or disabled. However, this is
probably a typical internal modem --- just rip it out and throw it
away. I personally recommend external modems.
<br><br>
For real speed upgrades you can get ISDN and FRAD (frame relay access
devices) for PC's that are supported by Linux and can take you past
modem speeds all the way up do T1. You can also pop in an ethernet
card (10Mbps) and get an ADSL or a cablemodem (router). Naturally
you can't use this over your existing telco lines --- and you'd probably
really hate to see how much a leased line (frame relay) or ISDN (metered
service in most areas --- a penny a minute adds up pretty quick!)
would cost. As for ADSL and cablemodem services --- the coverage
and availability are pretty spotty and the pricing isn't what an
AOL user is likely to be interested in spending.
<br><br>
What really makes me curious about your message are two things:
<blockquote>
Are you running Linux? Is that a "Winmodem"? (The model
designation certainly sounds like one).
<br><br>
If you're running Linux to access AOL --- what are you using
to do it? The AOL reps I've talked to have shown <em>no</em> interest
in making Linux, Unix, Java, or other portable versions of their
interfaces avaialable --- and hostility at the notion of
documenting their protocols and API's to the point where anyone
else could do a free implementation.
<br><br>
<em>[ Actually, their Instant Messenger is available in Java, and
a recent note I sent their web staff asking after a Linux version of
the main client got a friendly "we've forwarded that suggestion"
note back, from two different people. So, times change? Meanwhile
<a href="http://www.winehq.com/">WINE</a> is
rumored to have some success with AOL. But if you're using something
Linux native, I'd really like to know what it is. -- Heather ]</em>
<br><br>
If you're not running Linux, and you're not asking about
anything that's even vaguely Linux or Unix related... why are
you posting a message to the
<em><a href="http://www.linuxgazette.com/">Linux Gazette</a></em> "Answer Guy"?
(No, I didn't pick the title --- my editors did that).
</blockquote>
As a final comment, I usually don't care much about questions like
this one. People read a bit of marketing fluff on the box or in the
ads for a product --- they draw an unrealistic conclusion based on an
interpretation that's best described with the phrase "wishful thinking"
then they perform highly unscientific metrics and benchmarks on which
the fail to perform the most elementary critical analysis (of their
experimental design, their results or their conclusions) --- and then,
unsatisfied with their results they write to some unrelated support
guy hoping for a magical incantation that will make the product work
as they <em>thought it would</em> from what they <em>thought</em> the marketers
meant in the <em>advertising</em> that they read.
<br><br>
If you're getting unsatisfactory results from this product --- talk
to your vendor. You paid them for it. If you're just trying to see
if your "missing out" (that some other people might actually be getting
consistent 115K throughput on these) --- don't worry, it's not happening.
</blockquote>
<p><A NAME="tag_NDS"><hr width="70%" align="center"</a></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0"
>Linux as an NDS (Netware Directory Services) Printer Client</H3>
<p><strong>From Phill Kenoyer on Fri, 03 Jul 1998
<br><br>
I use linux at work, but I can not print to the Netware 4.0 servers.
They are using NDS and I have found out that Linux does not have any
NDS clients. Is there a way I can print to the netware printers?
<br><br>
I know that MIS is not going to help me because the MIS manager
hates unix or something. Linux is like very bad in MIS land.
<br><br>
Phill Kenoyer
<br><a href="http://www.microprose.com/">MicroProse</a>, Inc.
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
Linux maybe "very bad" in your MIS jungle -- but
out here we are find the IS guys sneaking it in behind
them M's backs at just about every turn.
<br><br>
In any event the simple solution for you is to go
get a copy of <a href="http://www.caldera.com/">Caldera</a>.
Caldera's "OpenLinux" (I forget
which release --- Standard and <em>not</em> Base, if I recall
correctly, I've copied their sales department) includes
a set of Netware bindery and NDS clients that allow you
to connect your Linux client for file and print services.
<br><br>
This particular component is not free --- it is covered
under some licenses (I think the licenses are imposed on
Caldera by their vendors). So plan on spending a couple
hundred bucks.
<br><br>
However, it is possible. I've used this --- and I recommend
Caldera for any Linux installation that's got to interoperate
with any Netware systems!
</blockquote>
<p><A NAME="tag_rpm"><hr width="70%" align="center"</A></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">What is an RPM?</H3>
<p><strong>From Andre Solheim on Fri, 03 Jul 1998
<br><br>
I am in the process og getting hold of Linux. Could you please tell
me what RPM is, and what it does?
<br><br>
I hope you can mail the answer to me directly
<br>Andr L Solheim
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
RPM is the <a href="http://www.redhat.com/">Red Hat</a> Package Management system.
This is an freely published set of specifications and
tools to allow Linux and Unix vendors to package their
software in a way that is amenable to automated installation
upgrade, removable and administration.
<br><br>
Although it has Red Hat's name in it --- it has been
adopted by most of the major Linux distribution maintainers.
The only to major holdouts are <a href="http://www.debian.org/">Debian</a>
and <a href="http://www.slackware.org/">Slackware</a>.
(There are a number of small, special purpose Linux
distributions that don't use any package management ---
many fit on a single diskette or designed to be installed
into a DOS subdirectory and run via <tt>LOADLIN</tt>).
<br><br>
Debian has developed their own package management format
(usually seen with the .deb extension) and Slackware
continues to use the tried and true "tarball" format with
pkgadd (?) and some other tools to help a little bit.
<br><br>
However, you can easily install the RPM subsystem into
any Linux that you want. You can also use RPM on some
packages and continue to manually build others from
tarballs (.tar.gz files). You can also convert between
package formats using tools like '<tt>alien</tt>' and
'<tt>rpm2cpio</tt>'
(or you can just use
<a href="http://www.gnome.org/mc/">Midnight Commander</a>
to open and work with .rpm files, just as you would any directory,
.zip or .tar file etc --- what how I usually delve into
RPM files if I'm not going to install them).
<br><br>
The RPM system as been ported to several flavors of Unix
and is no longer a purely "Linux" thing. Some sites are
using it to help maintain their Solaris, and HP-UX systems.
<br><br>
In the simplest form you can use commands like:
<blockquote><code>
rpm -i foo-1.2.rpm
</code></blockquote>
... to install a package (foo version 1.2 in this example).
<br><br>
There are also GUI and menu drive frontends to using RPM
.... but I usually use the command line.
<br><br>
You can also let rpm do the FTP for you with a
command like:
<blockquote><code>
rpm -U ftp://myserver.myorg.net/upgrades/bar-2.2.rpm
</code></blockquote>
... and this will upgrade the bar version 2.2 package off
of an internal ftp server (where I presumably have
placed it after testing it on one of my sacrificial admin
systems).
<br><br>
Another trick I've used is to get the description of an
rpm file without bothering to get the whole file
(to decide which files I wanted to fetch). I do this
with a command like:
<blockquote><code>
rpm -qpi ftp://ftp.redhat.com/..../contrib/.....rpm
</code></blockquote>
(I don't have a specific path and filename handy ---
but this should show the idea). You can also get a
list of the contents of a package with:
<blockquote><code>
rpm -qpl $SOME_RPM_FILE
</code></blockquote>
... or a list of files from an installed package with
<blockquote><code>
rpm -ql $SOME_INSTALLED_PACKAGE
</code></blockquote>
You can also do things like list all of the packages that
you have installed on the whole system (at least those that
you've installed using RPM) with a command like:
<blockquote><code>
rpm -qa
</code></blockquote>
... and you can verify a package with a command like:
<blockquote><code>
rpm -V foobar
</code></blockquote>
... which will give you a summary of every change to
the checksums, ownership, permission, timestamp, etc ---
of every file that was part of the "foobar" package.
<br><br>
Combining these in a relatively obvious way you can
check every package on your system with the following:
<blockquote><code>
rpm -qa | xargs rpm -V
</code></blockquote>
You can also find out which package a given file "belongs to"
with a command like:
<blockquote><code>
rpm -qf /some/file/that/was/installed/by/something
</code></blockquote>
You can learn more about the RPM system by looking at their
very own web site: <A HREF="http://www.rpm.org">http://www.rpm.org</A>.
<br><br>
So, good luck on your new adventure. Have fun with Linux.
</blockquote>
<p><A NAME="tag_guy"><hr width="70%" align="center"</A></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">AnswerGUY? Who is Heather?</H3>
<p><strong>From Thomas L. Gossard on Fri, 03 Jul 1998
</strong></p>
<p><strong>
Answerguy,
<br><br>
Forgive me if I'm about to insult you. All the replies I've read
seem to be answered by Heather. Is Heather not a girls name? If
so, why is this column called the answerGUY, not person or girl?
<br><br>
Tom Gossard
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
Heather is my wife. She usually doesn't answer any
of the questions (though sometimes she helps --- she's
been using Unix longer than I have --- and she's a professional
sysadmin).
<br><br>
However, Heather does convert my mail into HTML and she
does all the links and graphics (I just answer the e-mail,
do the web research and find URL's to point my correspondents
at for more information).
<br><br>
As for why this is called the "Answer Guy" --- I just volunteered
to help out with the occasional stray technical question that
I knew would find it's way to SSC when they took over the
editorial duties of the Linux Gazette from John Fisk (its
creator). Marjorie Richardson and her crew decided to post
my answers and picked the name. I'd wanted to start doing the
HTML (at least to wrap the URL's in anchor tags) since I noticed
that these were going up --- but I never had the time.
<br><br>
Finally Heather stepped in, pulled down a couple of mail to
HTML filters (like MHOnArc, hypermail, and babymail) and
played with them --- tweaking one of them until it suited
her tastes in HTML and my style of e-mail (text). She
still hand massages the messages for a bit, too.
<br><br>
The other advantage to this way of doing it is that I don't
see the whole column going up as one big page --- it's broken
into lots of separate pages, like HTML is meant to be. This
is hopefully going to help quite a bit in my future since I
was starting to hit my own column every time I did a Yahoo
search --- usually those were false hits because I'm usually
trying to find "something for Linux" (and I'd find sets of
keywords in one LG article -- that were in no way related
to one another in the article).
<br><br>
So, hopefully the new format will be more "search engine
friendly" (for everyone).
</blockquote>
<P> <hr width="40%"> <P>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">Heather replied too.</H3>
<p><strong>From Tom Grossard on Mon, 6 Jul 1998
in the </strong>
<a href="news:comp.unix.questions">comp.unix.questions</a>
<strong>newsgroup</strong></p>
<br><br>
Heather,
<br><br>
Thank you for the reply. I hope I wasn't rude in my question, just nosey.
<br><br>
Thank you
<br>Tom
<br><br>
Thomas L. Gossard
</strong></p>
<blockquote><img src="../gx/dennis/smily.gif" alt=":D" width="50" height="28"
align="left" border="0">
No problem, really. Glad we could clarify.
<br><br>
Oh yeah, I'd like to add for our lynx-using readers, or those reading
the text of TWDT, I plan to improve the textmode result. But
not this time, I just started a new job (still sysadmin'ing) and
didn't have time.
<br><br>
For web visitors, the interesting parts:
<br><em>I ate the fortune cookie first, then read what Jim Dennis copied me on:</em>
<br><font color="navy"><em>
However, Heather does convert my mail into HTML and she
does all the links and graphics (I just answer the e-mail,
do the web research and find URL's to point my correspondents
at for more information).
</em></font><br><br>
The confusion probably arises from the one message (Love the New Look!!!,
<A HREF="http://www.linuxgazette.com/issue30/tag_newlook.html"
>http://www.linuxgazette.com/issue30/tag_newlook.html</A>)
where I answered someone who loves the new format... since I am responsible
for formatting... and linked my name there so respondents on that question
could reply to me instead.
<br><br>
Jim answers all the Linux questions; in the original mail to the querent,
he has his Answer Guy .sig, but the dressed up column doesn't need that also,
so it is trimmed for clarity. Most querent's .sigs are trimmed to enhance
their privacy. So seeing most messages .sig-less might be affecting you.
<br><br>
"just answer and research" is plenty, but he loves to do it, and every new
discovery could add to his book, so he plays it down. I don't think the
column would be nearly as good if our roles were reversed :)
<br><br>
<font color="navy"><em>
Finally Heather stepped in, pulled down a couple of mail to
HTML filters (like MHOnArc, hypermail, and babymail) and
played with them --- tweaking one of them until it suited
her tastes in HTML and my style of e-mail (text). She
still hand massages the messages for a bit, too.
</em></font><br><br>
I merged some perl fragments, and added some of my own, to a script I use
to preprocess the month's load of Answers. However, I also
<strong>read</strong> his messages, and try to maintain the original
"look and feel" of Jim's reply.
<br><br>
Sometimes this means a list type or a blockquote where my script doesn't
know any better. Each month I improve it but I will probably never trust
it to do the whole job ... cleaning .sigs for privacy, clearing up levels
of indirection when Jim draws in a message from mailing lists, and posting a
thread as one file are specific examples.
<br><br>
There is also a little bit extra that I add. Most of the URL's I add
after-the-fact are things that aren't really special overall (such as
hotlinking vendor names) so someone reading the plaintext TWDT
version isn't really missing anything; they are simply seeing the reply
pretty much as Jim sent it. (It's not exactly as Jim sent it -- it's the
posted column run through lynx.) If I actually say anything that Jim didn't,
it is <em>emphasized</em> and in brackets [] , as I have been taught editors'
comments should be. I haven't seen Jim use brackets, except in example code.
</blockquote>
<p><A NAME="tag_maildns"><hr width="70%" align="center"</A></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">'<tt>sendmail</tt>' requires DNS ...
won't use /etc/hosts</H3>
<p><strong>From Carlos Javier Castro Pe\qa on Fri, 03 Jul 1998
Hi,
<br><br>
I have been looking for an answer for my question for a long time,
but I could find no useful solution. I am building a Linux LAN and I
cannot send mail with <tt>sendmail</tt> ! I do not have a DNS server. I have
found a lot of people with the same problem and no answer.
<br><br>
I am using Red Hat 5 with the version of sendmail distributed by
them. My kernel 2.0.33 and networking enabled. The mails don't get
delivered because a 'hostname lookup failure'. The manual of Red Hat
5 says how to configure <tt>sendmail</tt>, but that does not work if you
don't have a DNS server. I was also suggested to change the
<tt>/etc/nsswitch.conf</tt> file, but it didn't work. Can you help me,
please?
<br><br>
Regards, javier
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
I understand your problem and feel your pain.
<br><br>
The problem is that '<tt>sendmail</tt>' is conforming to the
SMTP standards --- which require that it look up the
MX record for any host prior to sending mail to it.
<br><br>
This sort of record (MX) can only be served over DNS (there
isn't any way that I know of to mark an <tt>/etc/hosts</tt> entry as an
"MX" record) (There might be some weird NIS or NIS+ way to do it
-- but I don't know much about those protocols).
<br><br>
I've worked around that here at my house (I don't run DNS
internally --- I just point to a caching DNS server on my
gateway router (a Linux box doing masquerading for
<strong>external</strong> references).
<br><br>
Internally I just use a mailertable that relays all mail from my
systems to the mail router (which then spools them out over
uucp). That mailertable refers to the gateway system using its
IP address (which forces <tt>sendmail</tt> to skip the DNS MX query). On
another system I just use uucp over TCP (for outgoing mail) and
POP (for incoming).
<br><br>
It would be much easier for me to set up DNS and leave it at
that -- but I can be incredibly stubborn sometimes and my main
mail feed is over uucp in any event --- so it's just as easy to
use that internally.
<br><br>
The reason modifying your <tt>/etc/nsswitch.conf</tt> (or
<tt>/etc/host.conf</tt>
--- as it's usually done under the Linux resolvers) doesn't work
for <tt>sendmail</tt> --- but does work for normal programs using other
protocols is that other protocols are normally only interested
in address and reverse address records (using the
<tt>gethostbyname()</tt> and
<tt>gethostbyadd()</tt> library calls). '<tt>sendmail</tt>'
is looking for MX records since it is common to require special
routing for mail.
<br><br>
As I said --- the easiest solution is to create a local DNS
domain or subdomain for yourself. For example I'd create the
<tt>lan.starshine.org</tt> domain and name my local systems things like
<tt>antares.lan.starshine.org</tt> etc. This would allow me to set up an
"authoritive" set of records on my internal LAN and still defer
to my ISP for the virtually hosted <tt>www.starshine.org</tt>
<tt>ftp.starshine.org</tt>, and <tt>mail.starshine.org</tt> (I'd
list myself as an
"unregistered secondary" to my ISP's nameservers for the
<tt>starshine.org</tt> zone).
<br><br>
(I could also just copy his records into my own db and
essentially <strong>lie</strong> to my system about being
authoritative for the
whole zone. This would break any time my ISP changed any of my
publicly accessible address records --- but that would probably
only be a minor issue. It would only affect my systems while
they were resolving my virtual hosts. My ISP would never refer
to my name servers as authorities or secondaries --- and I could
use IPFW (now IPChains) to prevent any such requests from
getting through to my internal nameserver in any event).
<br><br>
The point is that SMTP (the mail transport protocol to which
sendmail defaults) relies on DNS --- and it is not trivial to
get SMTP working with DNS disabled. You can use a different
transport protocol (such as I do with uucp) or you can configure
your systems to use direct IP addresses rather than names
in their configuration files. This last option isn't so
bad if your plan is to set up masquerading and null clients
(a sort of sendmail client that forward <strong>all</strong> of its mail
to a hub, even the local addressed items -- and lets the
hub deal with it).
<br><br>
Naturally I'm glossing over the details here. I have the
<a href="http://www.ora.com/">O'Reilly</a>
'sendmail' and 'DNS & BIND' books here at my side
--- and I have the notes from a week long seminar I took
on these topics (Robert Harker ---
<A HREF="http://www.harker.com">http://www.harker.com</A>)
--- which are also about 1000 pages. It is basically
impossible to comprehensively explain DNS and <tt>sendmail</tt> in
this column, or on the newsgroups and mailing lists.
<br><br>
I hope though that this helps. If you like I'll post
(sanitized) copies of my <tt>sendmail.mc</tt> files and my
uucp configuration files to show a couple of examples of
how I do it --- with the warning that my configuration is
uniquely atypical!
</blockquote>
<p><hr width="40%"></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">More on:
'sendmail' requires DNS ... won't use /etc/hosts</H3>
<p><strong>From Carlos Javier Castro Pe\qa on Thu, 09 Jul 1998
in the</strong>
<a href="news:comp.unix.questions">comp.unix.questions</a>
<strong>newsgroup
</strong></p>
<p><strong>
Dennis,
</strong></p>
<p><strong>
Thank you for your answer. Maybe the most important thing is that
you let me know that I cannot use sendmail for my purpouses wihthout
a DNS server. If I knew that from the beginning, I would have spared
a lot of time trying different configurations. If you don't mind,
I'll post your answer in some Linux mailing lists, because a lot of
people has the same question, and there is no usefull answer.
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
Like the rest of the Linux Gazette all of my articles
are covered by the LDP GPL (the variation of the GNU
General Public License that is applied to the Linux
Documentation Project). Please feel free to post, copy,
modify, publish, sell, spindle, mutilate, cite it to
your heart's content.
</blockquote>
<blockquote>
I hope it helps. I don't get into the newsgroups as much
as I'd like (and I spend a bit more of my time in the
<a href="news:comp.text.tex">comp.text.tex</a> and
<a href="news:comp.unix.security">comp.unix.security</a> and
<a href="news:comp.unix.admin">comp.unix.admin</a>
groups when I do make it out there).
</blockquote>
<blockquote>
Over the years I've always drifted from one newsgroup
and mailing list to another (except for the security stuff
--- I always stay up on that, though mostly as a "lurker").
For awhile I was the most frequent poster on the
<a href="news:comp.lang.awk">comp.lang.awk</a>
(formerly the alt.lang.awk) newsgroup. About 5 years ago
I was in the top 5 or 10 posted on
<a href="http://www.compuserve.com/">Compuserve</a>'s "UNIXFORUM"
</blockquote>
<blockquote>
I start by reading and lurking. When I've read for a few
weeks (and usually done some experimentation and other research)
I start to recognize the common questions, and start to piece
things together. After about a month I start answering questions.
For a few months I'll answer questions in the NG or ML. Eventually,
I move on.
</blockquote>
<blockquote>
That turns out to have been good experience for answering
questions in LG --- since the run the gamut of Unix, Linux,
and PC related questions.
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">
<font color="navy"><em> You can use a different
transport protocol (such as I do with uucp) or you can configure
your systems to use direct IP addresses rather than names
in their configuration files. This last option isn't so
bad if your plan is to set up masquerading and null clients
(a sort of sendmail client that forward <em>all</em> of its mail
to a hub, even the local addressed items -- and lets the
hub deal with it).
</em></font></strong></p>
<p><strong>
Is it possible to make that sendmail uses IP addresses. I need to
forward the mail of the Linux host, to the Linux gateway. The users
of the Linux host can download the mail from the gateway with POP
and IMAP.
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
I think the one time I did this was with a slight variant
of the "<tt>clientproto.mc</tt>" file that ships with
'<tt>sendmail</tt>'
</blockquote>
<blockquote>
It looks like this:
</blockquote>
<pre>
divert(-1)
divert(0)dnl
VERSIONID(`@(#)clientproto.mc 8.7 (Berkeley) 3/23/96')
OSTYPE(linux)
FEATURE(nullclient, `[192.168.1.1]')
</pre>
<blockquote>
... replacing the IP address with the one for your
smart hub or gateway. You use the m4 package (also
include with all recent versions of sendmail) to generate
a cf file from this using a command like:
</blockquote>
<blockquote><blockquote><code>
m4 ../m4/cf.m4 betel.mc > /etc/sendmail.cf
</code></blockquote></blockquote>
<blockquote>
(after making backups of your existing cf file, of course).
</blockquote>
<blockquote>
The important thing is that is will define a line like:
</blockquote>
<pre>
DM[192.168.64.1.1]
</pre>
<blockquote>
... which should prevent '<tt>sendmail</tt>' from using DNS to
do any resolution.
</blockquote>
<blockquote>
Try that and see if it works. I really can't set up a test
environment for that at the moment. If that doesn't work, try
changing the address to an arbitrary name, adding the
"mailertable" <tt>FEATURE</tt> and creating a small mailertable that
points the name at the IP address using the syntax:
</blockquote>
<blockquote><blockquote><code>
myhub: smtp:[192.168.1.1]
</code></blockquote></blockquote>
<blockquote>
Please let me know how it goes.
</blockquote>
<p><A NAME="tag_memleak"><hr width="70%" align="center"</a></p>
<p>The original message in this thrread appeared in Issue 30,
<a href="http://www.linuxgazette.com/issue30/tag_memleak.html"
>Linux Memory Usage vs. Leakage</a></p>
<p><hr width="40%"><p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">Memory Leaks and the OS that Allows Them</H3>
<p><strong>From Thomas L. Gossard on Fri, 03 Jul 1998
<br><br>
Answerguy,
<br><br>
Regarding the recent question you received on memory leakage under
2.0.29. I don't believe it is a memory leakage under the normal
sense where a program quits and won't give the memory back to the OS.
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
Once a program has <strong>quit</strong> (exited) it is the OS'
responsibility to reclaim all RAM and normalize all
other resources (process table entries, filed descriptors
and handles, etc) that were allocated to that process.
<br><br>
If it fails to do so, that is a bug in the OS (the kernel
and/or its drivers or core user space processes, like
'<tt>init</tt>'). Under Linux (and Unix in general) it is very
rare to see this sort of bug. (I've never heard of any
kernel memory leaks in Linux).
<br><br>
Under NT there is apparently a problem because the system is
very complex and so much of the programming doesn't respect
the intended modularity between "kernel" and "user space" ---
so DLLs and drivers, (particularly video drivers) will end up
locked into memory with no references. Since I'm not an NT
programmer (and not a systems programmer of any sort I'll have
to accept the considered opinions of others who've said that
this is why NT has a notorious poor stability record compared
to any form of Unix. The fact that they've added some process
memory protection and imposed some modularity and process
isolation means that NT's stability is orders of magnitude
better than MS-DOS, Windows 3.x, and Windows '95 ever were.
However, it's reported to be very poor compared to any of the
multi-user OS' like Unix or VMS.
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">
I also use .29 and saw the same problem. I sent out several e-mails
and found out that what is really happening is the OS has the memory
but is not reporting it as free but has saved it for cache purposes.
Notice the guy with the question said "<tt>ls</tt>" the first time took
memory but not the second time. A memory leak will take the memory
each time. The OS is keeping the memory for itself. The real
problem is in the way the OS or <tt>top</tt> or whatever is reporting the
memory usage and the way we expect to see it.
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
The way that memory is used by the Linux cache is
fairly complex. Consequently the output from '<tt>top</tt>' and
'<tt>free</tt>' and '<tt>vmstat</tt>' are not easy to interpret (and I
don't consider myself to be an expert in them by any
means).
<br><br>
The intended design is supposed to use all "available"
free memory for disk caching (and I guess the 2.2 kernels
will implement disk and directory entry caching ---
which should yield much better performance for several
reasons). It is certainly possible that there were bugs
in the caching and memory management code in some of the
2.0.x kernels. You could certainly go to the Linux
kernel mailing list archives and read through the various
change summaries to see. Or you could ugrade to a
newer kernel and look for symptoms.
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">
The only true way to check on the problem seems to be to execute
some memory hog routines, like graphics and watch the swap useage.
In particular my mail program seemed to suck up 8 or 9 megs at a
time yet even going in and out of that and xv my swap was barely
touched. With a sufficient memory leak after a period of time the
swap should see a great deal of activity due to the lack of memory.
<br><br>
Tom G
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
Most memory leaks are in user space --- in long running
daemons like '<tt>named</tt>', a web server, '<tt>sendmail</tt>', X, etc.
Your test doesn't isolate the cuase of the memory leak.
I think my message covered some suggestions to do that
(like run with init=/bin/sh and run some tests from there)
<br><br>
If exiting doesn't return your memory to availability for
cache/free space --- you have a problem in your kernel.
However, it can be deceiving. For example --- I remember
a situation where BIND ('<tt>named</tt>') was leaking --- and it
looked like '<tt>sendmail</tt>' was the culprit. In actuality
'<tt>sendmail</tt>' was making DNS queries on the named, causing
<strong>it</strong> to lose it's cookies. (At the same time that
'<tt>sendmail</tt>' was segfaulting (dying a horrible death) because
the old resolver libraries (against which it was linked)
were return <strong>lots</strong> of MX records for sites
like <a href="http://www.compuserve.com/">Compuserve</a>
and <a href="http://aol/com/">AOL</a> (which back then had
just started deploying
dozens of mail servers each --- so that one DNS request
would return more records than the resolver could handle).
<br><br>
At first I thought someone had discovered a new remote
<tt>sendmail</tt> exploit and was hacking into my site (this was
actually on an old SunOS box). Then I realized that it
was related to DNS --- and finally I upgraded to a newer
DNS and set of resolver libraries. The newer version of
<tt>named</tt> still had a memory leak back then --- but my other
sysadmin friends said "Oh yeah! It's been doing that ---
just set up a '<tt>cron</tt>' job to kill it once a day or so"
(I'd been sure that it was my fault and that I'd built
and installed it incorrectly).
<br><br>
As for the "true way" to look for memory leaks ---
I think most programmers would disagree with your
analysis on this one. They might suggest Electric Fence
(a debugging form of the malloc() and new() calls that's
designed to catch the sorts of allocation and reference
problems that '<tt>lint</tt>' won't --- and that might not be
immediately fatal). Another option might be for someone
to link this with Insure++
(<A HREF="http://www.linuxjournal.com/issue51/2951.html"
>http://www.linuxjournal.com/issue51/2951.html</A>) and do
their testing with that.
<br><br>
Certainly, we, as sysadmins are usually constrained
to more hueristic and less "invasive" approaches ---
but we definitely want to isolate the problem to a
specific component (program, module, kernel configuration
whatever) or combination. That's what "tech support"
is all about.
</blockquote>
<p><A NAME="tag_multihead"><hr width="70%" align="center"</A></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">X Window with two monitors...</H3>
<p><strong>From Mark Thomas Mercado on Tue, 30 Jun 1998 in the
<a href="news:comp.unix.questions">comp.unix.questions</a>
newsgroup
<br><br>
I've looked around on the web, and couldn't find any documentation
on setting up X with two monitors (myhost:0 and myhost:1)... I would
love to RTFM if anyone could point me in the right direction...
<br><br>
Thanks,
<br>Mark.
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
This would usually be called "multi-headed" mode and
the different screens would be addressed as "<tt>myhost:0.0</tt>"
and "<tt>myhost:0.1</tt>" -- "<tt>myhost:1.0</tt>" and
"<tt>myhost:1.1</tt>" (etc) would refer to a different server or
instance running on the same machine.
<br><br>
I don't know what this means on other forms of Unix
--- but I think you'd usually see it on a system that
was hosting multiple X Terminals via XDMCP. On my Linux
boxes I usually see it as an extra instance of the X server
running on a different virtual console (so my wife and
I can each have a running copy on any of the systems
around the house without having to disturb the other's).
<br><br>
In our case we run <tt>startx -- :1</tt> to start the 2nd instance
of our X server. We can then switch between them with
the [Ctrl]+[Alt]+[Fx] sequence (or the [Alt]+[Fx] sequence
to get to either of them from any of our text mode virtual
consoles. (If you don't use a PC Unix that supports
VC's this probably won't make any sense -- don't worry
about it).
<br><br>
Getting back to multi-headed support:
<br><br>
This depends on your X server. Last I heard XFree86 servers
(the suite of X servers that's most commonly used with Linux
<a href="http://www.freebsd.org/">FreeBSD</a>,
<a href="http://www.netbsd.org/">NetBSD</a> (PC) etc) don't
currently support multi-headed operation.
<br><br>
I know that some of the commercial X servers for Linux
(and presumably FreeBSD, etc) support it. Unfortunately
I've never used a PC or Mac Unix that was configured
this way. So, I don't know how it works. I've used an
old Sun system set up this was --- but I didn't configure
it or even look at it very closely --- it was just used
for some compatability at a place where I was working,
so I barely touched it.
<br><br>
I've used Macs that were multi-headed. That was a piece
of cake to configure. I also noticed that Win '98 has
this feature available --- so it might become much more
common in the next year or so.
<br><br>
Anyway, check out the XFree86 FAQ at
<A HREF="http://www.xfree86.org/">http://www.xfree86.org/</A>
for more pointers.
</blockquote>
<p><A NAME="tag_cdr"><hr width="70%" align="center"</A></p>
<p>The beginning of this thread was published in Issue 30,
<a href="http://www.linuxgazette.com/issue30/tag_cdr.html">DAO
(Disk At Once) CDR? Stump Me!</a></p>
<p><hr width="40%"></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">DAO software for linux? </H3>
<p><strong>From Mark Heath on Sat, 27 Jun 1998
<br><br>
On Thu, 25 Jun 1998, Jim Dennis wrote:
<br><br>
<font color="navy"><em>
Well, you have me stumped.
<br><br>
I don't know anything about the difference between DAO and
other forms of CDR recording. Normally, I'd spend an</em></font>
<br><br>
There are 3 different types of cd recording:
Track at once, Disk at once and session at once.
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
I figured it was probably something like that.
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">
cdrecord, cdwrite and many others do Track at once.
<br><br>
Its where the software writes a track turns off the laser, turns it
back on then writes the next track, after all the tracks are done it
writes the leadin and lead out tracks.
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
I've always been curious about multi-session CD's and
how they maintain the directory/indices on them. But never
curious enough to look for the rainbow of books that define
the spec. --- more of a "layperson's armchair" curiousity
that would be satisfied with a five minute description and
a couple of diagrams.
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">
With disk at once, the laser is turned on, the leadin is written,
then the first track, second track etc, then te lead out and then
the laser is turned off.
<br><br>
The has the advantage of being able to master music disks which have
no pauses in between the tracks, which is manditory for TAO.
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
I think you mean "which is an avoidable result when using
TAO." It's just a semantic nitpick --- but I had to read
this statement several times to guess what you (probably)
meant.
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">
Session at once is basically multi session DAO.
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
Huh? I am also a bit foggy on multi-session CD's ---
but I'd thought that the sessions on multi-session CD's
were supposed to be on track boundaries. Are you saying
there's a multi-session per track option?
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">
<font color="navy"><em>
hour or two hunting around on Alta Vista, Yahoo!, Savvy
Search, DejaNews, etc and pulling out more of my hair to
find out. However, I have a book to write and a wife to
feed, and it is just too close to my deadline for me to
wait until tomorrow.
<br><br>
So, what is DAO and why would you need it? What is the
difference between cdrecord and cdwrite (the one I use
with my Ricoh CDR)? Have you tried them both? What is
MMC? Who is Jeff Arnold? Who are HyCD and should we
</em></font>
<br><br>
cdrecord is the replacement for cdwrite, Jorg Schilly supports every
unix platform that can have a cdr plugged into.
<br><br>
MMC is the latest multi media specification for CDRs so that all
drives have the same command set for recording.
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
I did guess that MMC stood for "multi-media CD" or
"multi-media CDR." I take it that MMC doesn't define
a standard for DAO mode recording? (Or were you simply
saying that your HP SureStore CDR doesn't support the
MMC CDR spec?).
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">
Jeff Arnold is synonimous (sp?) with DAO software he wrote the First
and most widely used DAO software for DOS. Its a pity that he won't
support Unix because his tools are very unix like.
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
Maybe he could be bribed. Does he distribute his package
as shareware? Would he be willing to license the code
and let someone else do the port?
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">
HyCD are who alta vista turned up when I did A search for +unix +cdr
+software. They support mixed mode disk duplication, which why I
thought it did DAO. Unfortunately it does not.
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
I'm afraid to ask.... what is the difference between
"mixed mode" and DAO? Is it that HyCD can duplicate CD's
that have mixed data and audio (etc?), and/or that it can
read tracks that were laid down in TAO and DAO (and other?)
modes but it must write them in TAO?
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">
I was trying to eliminate a need for my Windows box but things keep
popping onto it.
<br><br>
I use it for 3 things:
<ol>
<li>Audio manipulation. I'm waiting for a good tool (Atech is being
developed) to do this under Linux ala Cooledit (not to be confused
with the Linux text editor)
<li>DAO writing.
<li>Epson Stylus colour printing. Ghostscript just doesn't match the
quality.
</ol>
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
Well, hopefully this will inspire someone out there to
"raise the bar" and help you purge Windows from your system
at long last.
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">
I did use it for Playstation development but now I have the tools for Linux.
<br><br>
Thank you very much for your help.
<br>Mark.
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
Well, I obviously wasn't much help --- but we'll see if
our readership will give us a scoop...
</blockquote>
<p><hr width="40%"></p>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">Mark Heath fills us in...</H3>
<p><strong>From <em>The Answer Guy</em> on Mon, 29 Jun 1998
<br><br>
On Sat, 27 Jun 1998, Jim Dennis wrote:
<br><br>
<font color="navy"><em>
Its where the software writes a track turns off the laser, turns it
back on then writes the next track, after all the tracks are done it
writes the leadin and lead out tracks.</em></font>
<br><br>
I've always been curious about multi-session CD's and
how they maintain the directory/indices on them. But never
curious enough to look for the rainbow of books that define
the spec. --- more of a "layperson's armchair" curiousity
that would be satisfied with a five minute description and
a couple of diagrams.
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
I've never successfully written a multisession CD either. I've made a
few open disks but never managed to import the previous session properly
so I didn't bother trying to continue writing to them. Just in case I
lost the first session.
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">
<font color="navy"><em>Session at once is basically multi session DAO.</em></font>
<br><br>
Huh? I am also a bit foggy on multi-session CD's ---
but I'd thought that the sessions on multi-session CD's
were supposed to be on track boundaries. Are you saying
there's a multi-session per track option?
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
This is correct. For example you can write 3 tracks multisession using
DAO. Then come back later and write a few more tracks using DAO.
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">
<font color="navy"><em>
MMC is the latest multi media specification for CDRs so that all
drives have the same command set for recording.</em></font>
<br><br>
I did guess that MMC stood for "multi-media CD" or
"multi-media CDR." I take it that MMC doesn't define
a standard for DAO mode recording? (Or were you simply
saying that your HP SureStore CDR doesn't support the
MMC CDR spec?).
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
The 4020i doesn't support MMC. Only new drives do (most of the IDE
CD-Rs do, and the CD-RW do)
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">
<font color="navy"><em>
Jeff Arnold is synonimous (sp?) with DAO software he wrote the First
and most widely used DAO software for DOS. Its a pitty that he wont
support Unix because his tools are very unix like.</em></font>
<br><br>
Maybe he could be bribed. Does he distribute his package
as shareware? Would he be willing to license the code
</strong></p>
<dl><dt><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
He does. The downloadable version is available at:
<dd><code><A HREF="http://www.goldenhawk.com/"
>http://www.goldenhawk.com/</A></code>
</dl>
<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">
and let someone else do the port?
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
I'd really like that but I dont know how Jeff feels about Linux.
<br><br>
He seemed rather hostile when I asked about doing a linux port.
All his reply was: no.
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">
<font color="navy"><em>
HyCD are who alta vista turned up when I did A search for
<tt>+unix +cdr +software</tt>. They support mixed mode disk
duplication, which why I thought it did DAO. Unfortunately it
does not.</em></font>
<br><br>
I'm afraid to ask.... what is the difference between
"mixed mode" and DAO? Is it that HyCD can duplicate CD's
that have mixed data and audio (etc?), and/or that it can
read tracks that were laid down in TAO and DAO (and other?)
modes but it must write them in TAO?
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
Mixed mode is simply multiple tracks with different data formats.
The most common is Computer games with 1 data track followed by several
Audio tracks, these can be written with TAO.
<br><br>
The main difference between DAO and TAO is that for DAO the laser is
never turned off during the recording. You can even do a single track in
DAO mode. The difference here is that DAO disks can be taken to CD
publishing company while TAO disks can not (due to gaps in the track
data, where the laser has been turned off)
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">
Well, hopefully this will inspire someone out there to
"raise the bar" and help you purge Windows from your system
at long last.
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
Well I did this some time ago, purge windows. Then a piece of hardware
came out which was built into the motherboard so I built a new machine and
put both Linux and 95 on it.
<br><br>
My primary box is Linux only.
</blockquote>
<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
align="left" border="0">
Well, I obviously wasn't much help --- but we'll see if
our readership will give us a scoop...
</strong></p>
<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
align="left" border="0">
Well Its always good to hear that someone understands and says Lets see
what we can do.
</blockquote>
<!--================================================================-->
<P> <hr> <P>
<H5 align="center"><a href="http://www.linuxgazette.com/ssc.copying.html"
>Copyright ©</a> 1998, James T. Dennis <BR>
Published in <I>Linux Gazette</I> Issue 31 August 1998</H5>
<P> <hr> <P>
<!--================================================================-->
<A HREF="./lg_toc31.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_bytes31.html"><IMG SRC="../gx/back2.gif"
ALT="[ Previous Section ]"></A>
<A HREF="./searls.html"><IMG SRC="../gx/fwd.gif"
ALT="[ Next Section ]"></A>
<P> <hr> <P>
<!--================================================================-->
<P> <hr> <P>
<H5 align="center"><a href="http://www.linuxgazette.com/ssc.copying.html"
>Copyright ©</a> 1998, James T. Dennis <BR>
Published in <I>Linux Gazette</I> Issue 31 August 1998</H5>
<P> <hr> <P>
<!--================================================================-->
<A HREF="./lg_toc31.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_bytes31.html"><IMG SRC="../gx/back2.gif"
ALT="[ Previous Section ]"></A>
<A HREF="./searls.html"><IMG SRC="../gx/fwd.gif"
ALT="[ Next Section ]"></A>
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P>
<!--===================================================================-->
<CENTER>
<img height=3 width=100% src="./gx/searls/srlzline.gif">
<H2><FONT SIZE=+3>B</FONT>ETTING ON <FONT SIZE=+3>D</FONT>ARWIN, <FONT SIZE=+3>P</font>ART <FONT SIZE=+3>2</FONT>: <FONT SIZE=+3>W</FONT>ATCHING THE <FONT SIZE=+3>M</FONT>UCK<BR>
<FONT SIZE=4>MARC ANDREESSEN AND TOM PAQUIN ON NETSCAPE'S OPEN SOURCE STRATEGY, ONE MONTH LATER</FONT></H2>
<BIG><A HREF="http://www.linuxjournal.com/issue52/2984.html">PART 1</A></BIG>
</CENTER>
<img height=3 width=100% src="./gx/searls/srlzline.gif">
By Doc Searls<BR>
May 16, 1998<BR>
<P>
<CENTER><I><IMG SRC="./gx/searls/srlzline.gif" WIDTH="432" HEIGHT="2">
<BR>
</I></CENTER>
<P>
On May 13, I followed up on the April 8 interview, just before the photo shoot for the June issue of Linux Journal, where the first interview would run. While little more than a month isn't much time to measure distance on an evolutionary path, I thought Internet Time might accelerate things a bit, so I began by asking Tom how things now stood.
<p>
<hr>
<H4 ALIGN=CENTER>Waiting for tyranosaurs</H4>
<p>
DOC: I'm interested in seeing how the conversation looks different than it did a month ago when we still had muzzle blast. Back then we were talking in evolutionary terms: "betting on Darwin" was how you put it. Have you seen any new life forms start to emerge?
<p>
TOM: Some life forms have begun to emerge, but there haven't been too many tyrannosaurs stomping out of the muck. There have been <I>some</I> interesting life forms, though. I'm really happy with the XML parser that was donated. I'm pretty happy with a couple of low-hanging fruit for external ownership. I think that's moving along. On the whole it's been very pleasing; but I don't think it's fair to say the initiation phase is complete. We haven't really gotten the entire Communicator out there yet. For example, the Messenger source — mail, news and all that — is just flowing out now, starting yesterday.
<p>
MARC: There hasn't been a snapshot of the code that's ... done, or anything like that. A fully stable release. So we're still early here.
<p>
TOM: We're way, way away from a fully stable release.
<p>
See, most public sources work by a process of piling on to something that works but isn't complete. Somebody goes out and says "Here's something that works, everybody. Let's all pile on." As opposed to "Here's a pile of code that's early in its development, that we're going to turn into something."
<p>
So some people are piling on, diving in, and what we're seeing at this early stage are chunks of code that are not tightly interwoven with the existing code. The XML parser is a perfect example. A guy writes an XML parser on the side, and says "Here it is. It parses XML. It produces a data structure. You can take the data structure and do stuff with it." Okay, that's really valuable and straightforward. It contributes, and it's a good thing.
<p>
What we haven't had is, say, ten guys from IBM popping up and saying "Okay, we thoroughly understand this product now. We're ready to do everything we can to make it do what we want it to do." It's too early for that. And it's a little hard to say when and how that will happen. What I've been beating on in my shop is: "Let's get this thing to a point where people feel like it's a product that needs polishing, as opposed to a pile of code that needs to be turned into a product." When we're at that stage, we'll get more people contributing.
<p>
Meanwhile, we're not starving for contribution; but we're working on a chicken/egg problem that has to be solved one way or another. Our goal is to to toss a chicken in the ring and give it away. And that's pretty much what we've been doing all along, though not all at once. We've got parts of the source out, and we're finishing other parts. The Communicator 5.0 team is working away.
<H4 ALIGN=CENTER>The world of all possibilities</H4>
<p>
DOC: Let's take an example of something that might come from the outside that we touched on in our last talk. At that point you didn't have an ORB (Object Request Broker). Has anybody come up and created one?
<p>
TOM: I don't think anybody has done an ORB yet.
<p>
MARC: We had the Visigenic ORB, but I think it's gone now. We've been trying to keep the client pretty small.
<p>
TOM: The problem wouldn't be the ORB, it would be getting it to behave in a useful manner.
<p>
DOC: In a world of all possibilities, and this may not be possible, what would happen if somebody came along and created a DCOM (Microsoft) ORB? Would you care?
<p>
MARC: Contribute it.
<p>
DOC: So you're agnostic about object models at this point.
<p>
MARC: On the application server side, it's both DCOM and CORBA.
<p>
TOM: I'm not agnostic if you produce an object model that binds me to a platform. So, when any proposal is made to Mozilla that is not going to migrate to a cross-platform universe, including platforms I don't know about today, I won't take it on. For example, if somebody says, "I want to contribute this thing to Mozilla; but I don't want to contribute the source. I only want to give you a binary. It'll run on all the platforms you're currently supporting." That's not really what Mozilla is all about. I may have to make trade-offs I can't see today; but that's not really what we're for. What we're for is platform independence. Any suggestion, object model or otherwise, we're open to. If you've got a platform issue, I want to solve it. But guess what: we can pile a million people on solving it.
<p>
Now the Raptor thing that was contributed halfway through April, they have a thing they call XP/COM, which is a small, lightweight component model thing... I really don't know what kind of mapping that has; but I think it tries to solve the same kind of problems: load a module, unload a module, interrogate a module for supported interfaces, blah blah blah.
<p>
MARC: But it's not OLE, it's just COM. That is, it's built on the COM primitives. It uses the COM ideas, but it's not OLE.
<p>
TOM: He knows more about it than I do.
<p>
MARC: Barely.
<p>
DOC: This interests me because this is one of those areas where we've got a large delta between the real and the ideal. A year ago we were all talking about how the world was going to be objects, and that one object model would take care of that, and it looked like a big argument was brewing between two different object models. Now we're you're saying it's still too early in the evolution toward this thing even to talk very much about it.
<p>
MARC: I would argue that it's happening, but from the bottom up. Much as to say that C++ and Java intrinsically programs to consist of objects; but it's a programming tool more than a concern right now. But a distributed object world is quite a ways off. It presumes the existence of everything from management systems to application servers, a whole new generation of APIs and many other things that still don't, for the most part, exist. So it has to be built incrementally.
<p>
DOC: And you expect the Open Source world to deliver that.
<p>
MARC: It could, but it's a little bit tricky. There are sort of three worlds that are relevant here. One is the Open Source world. Another is the professional commercial software development world. The third is the theoretical world where you find most of the people who are passionate about creating a world full of distributed objects. Most of these guys are coming from a relatively intellectual orientation. And so there needs to be an intersection between those three worlds. The intellectuals have traditionally tried to appeal to the commercial software developers, with limited success. They could attempt to appeal to the Open Source developers, perhaps with more success. We'll see.
<p>
Meanwhile the main problem is that your average commercial software developer is far too busy trying to put products out the door to try to create a world full of distributed objects.
<p>
TOM: On the other hand, there are some objects that they find themselves constantly revisiting. So if they could agree on a nomenclature and interface and get it well-known that, okay, a color-picker is a color-picker, and we can spell it "c-o-l-o-r" or "c-o-l-o-u-r" so let's make a decision move on with it. That's how it could grow up. Incremental agreement based on the need for everybody to move on. But when you sit down and say "let's come up with an object model to solve the planet's problems," it ain't gonna happen in an afternoon.
<p>
DOC: Since the dawn of time there have been ideals, and this is the one of the latest of these, I suppose. Looking back, I can remember when "machine independent software" was one of those. It's still with us.
<p>
MARC: Machine independent software happened with FORTRAN.
<p>
DOC: I remember it from, like, 1980.
<p>
MARC: At one of these Java events somebody played a video of an IBM promotional film from 1954, about one of the structured programming languages of the time, and the pitch was that you could write it once and run it anywhere. (laughter)
<p>
DOC: Let's look at the Open Source thing for a moment. There's a population out there of Open Source guys that you say is moving toward, or already has, critical mass. The statistics work such that somewhere in this larger population there will emerge some original solutions to problems. But solving problems and pursuing ideals are very different things. One tends to be incremental and trial-and-error while the other tends to be theoretical. Now I'm curious about what brings the Open Source world — this practically-oriented problem-solving population — into the market conversation.
<p>
I just saw <A HREF="http://www.zdnet.com/intweek/printhigh/51198/nt511.html">an interesting story in Interactive Week</A> (http://www.zdnet.com/intweek/printhigh/51198/nt511.html) about how Linux is in the intranet OS conversation, but not at the top executive level. It tells how this IDC guy went to the chief financial officer at a bank in New York, and the guy said they weren't using Linux, because "they didn't want to run the bank on unsupported software." But when the guy talked to the IS staff, they said they had a hundred servers running on Linux. So when this guy told the staffers what the CFO said, they said he's the guy who gave them a mandate with no budget, so they went out and got Linux." That kind of thing got no coverage before, and now it's getting some.
<p>
So where has the browser conversation moved? Has it changed from "hey, they've released the family jewels" to "Hey, isn't it interesting what's happening with those jewells?"
<p>
MARC: People are still trying to figure it out. There's quite a bit more knowledge of the product that needs to gather before the understanding breaks through.
<p>
TOM: There are some cutting edge people who we'd rather not name who get it, and who are saying "Netscape did that? Yup. Let's go." But they're still in the minority.
<p>
MARC: And there are some people at the Department of Defense who are responsible for some of their investment directions. Internally they find a lot of this highly attractive. Because historically they've built all their own systems, and they can fix them if something goes wrong. But since that's prohibitively expensive, they've moved to commercial off-the-shelf hardware and software. The problem with that, however, is that when it needs fixing they have to call a Microsoft 800 hotline just like everyone else. And they're not happy about the idea of building the entire U.S. military infrastructure just on Microsoft products, for obvious reasons. So the prospect of an Open Source world for them is a very exciting one. The prospect of Linux specifically is exciting because it gives them something that gets them the benefit of commercial off-the-shelf software without the risks they see with single commercial sourcing.
<p>
The whole point of commercial off-the-shelf for the military is a much broader base of investment happening by a broader community that they can take advantage of, rather than having do it all themselves. Open Source gives them many of those benefits, plus some new ones, like: they can fix it when it breaks, and they're not dependent on an outside vendor. And they certainly have the technical ability to do what they need to do to an existing piece of code. <p>
All of which is why they are getting <i>extremely</i> interested in this development, and in Linux especially. Which is why I think we are going to see the intelligence community be an early adopter of this stuff.
<p>
DOC: How much do the Linux and Open Source conversations overlap?
<p>
MARC: The Open Source conversation is mostly around specific examples. Linux, Mozilla, Apache. Because the world doesn't yet know is how to extrapolate Mozilla, Linux and Apache to more things. So your commercial IT world looks at it and says "this is never gonna fly with an Oracle database, or with SAP manufacturing applications. So we say fine, let's concentrate on the areas where it's easy to apply the kinds of things we can do today.
<H4 ALIGN=CENTER>Burning cash</H4>
<p>
DOC: This conversation is so far away from what's going on at Microsoft that it might be worth visiting the difference. Marc, tell me more about how you understand Microsoft's vertical integration strategy — especially since what you said about it last time got munged by my tape recorder.
<p>
MARC: Well, what I said before was spontaneous. I'm not sure I can repeat it exactly.
<p>
TOM: Maybe we can reconstruct from what led into it.
<p>
DOC: Okay, I remember a scenario. What would happen if the whole client world is running on Explorer?
<p>
MARC: Yeah, if the world goes 100% Microsoft clients, then Microsoft locks down the protocols and the APIs and the access methods to the servers, and then takes over the servers.
<p>
TOM: As well as the content creation tools.
<p>
MARC: —As well as the tools, and then the next step is the content services themselves. Basically I think what we were talking about was, you see over and over again in unrelated industries, a pattern. Historically, computer industries were totally vertically integrated. IBM, DEC, Apple and other companies all built verticalized businesses and then found they were under attack by vendors like Intel and Microsoft and Dell and others that came in with a more open approach at some horizontal level. So if you've got someone who's a vertical provider, with the cost structure implied by that, in a rapidly exploding market, and it's not able to fulfill the market demand fast enough, then that vendor is subject to attack by horizontal providers who are coming in with fundamentally better economics, such as Microsoft with commodity software and Intel with commodity chips, and Dell with commodity PCs.
<p>
But then what happens is you get into these situations — specifically the one Microsoft is in today — where, due to increasing returns and a series of other developments, you have a monopoly, for example with the operating system. So, at that point, for to grow faster than the market's growing, the logical thing is to leverage your monopoly vertically up into adjacent spaces in the stack.
<p>
TOM: It's required.
<p>
MARC: It's required. They have to, or at least they have to try, to grow faster than the market is growing. That is Microsoft's big problem right now. And they thought they were well on their way to doing exactly that. They thought they were going to leverage the client straignt onto the server. If the world was using a Windows desktop and not all these browsers, they would have been done with this by now. But this browser thing came along between Windows and the user, so they have to establish control of what turned out to be a new level: the browser level, the network user interface level. If they can successfully go to 100% on that, then they can by inference lock down the protocols on 100% of the servers.
<p>
In a networked environment, the desktop/browser is the moral equivalent of the TV tuner for content and services. They're going to leverage up into those spaces exactly the same way. So what they're basically doing is going from a horizontal strategy to a vertical one: from a position of monopoly in one horizontal slice — where they have monopoly profits — and using those monopoly profits to subsidize verticalizing.
<p>
And they have a fundamental economic advantage in that they have all this monopoly cash coming in. So they can arbitrarily subsidize losses in other markets.
<p>
DOC: Which is why they could nail the KMPG/Peat Marwick deal. (Essentially giving away something at a loss — in this case service — that Netscape needed to charge for, and winning the business that way.)
<p>
MARC: Right. They can write a check to get whatever business they want in a new market, because they have all these monopoly profits coming in from existing markets where their control is absolute. Which is why in the Senate hearings, Senator Cole's questions to Gates about his profit margins were actually very relevant. One of the ways you can tell when a company really has a monopoly is by their profit margins. Because normally competitive technology markets tend to have ten, twenty, twenty-five percent profit margins, net profits. Not forty to sixty percent. So that's one of the ways to see if a monopoly exists.
<p>
They actually have so much cash coming in the door now that they actually have a problem nobody has ever had before in this market, which is to find ways to burn as much cash as fast as possible, and in as many creative ways as possible: ways that are going to lose money in the short term. So it is in their interest to burn cash. This is an interesting position to be in.
<p>
DOC: And they can do it.
<p>
MARC: Yes, but it isn't just that they can, it's that they <U>need</U> to. Because if they don't they'll report even bigger profit margins and the regulators will get real interested. They don't want to prove they have a monopoly. Burning cash is one way to reduce the appearance of monopoly.
<p>
Now, this strategy only works as long as you have your core monopoly. The minute you lose that monopoly, you have to compete in that core horizontal slice, and your margins go down. And every other part of your stack becomes vulnerable to attack because you can't sustain your tactics. You don't have all this cash coming in, subsidizing everything.
<p>
DOC: I see you compete with that monopoly by changing the game. You did that with the browser in the first place. You made the browser the network interface; and since most of the real business of computing happened on the network, you changed everything. Suddenly what you saw at every trade show, regardless of platform, was a sea of monitors all with browsers that masked the OS in each case.
<p>
MARC: Right.
<p>
DOC: And in '96 you did the same thing with LDAP. Changed the game.
<p>
MARC: Um hmm.
<p>
DOC: The way things were headed before that, Microsoft was going to squeeze the world into the Cairo directory.
<p>
MARC: Right. ODSI. Open Directory Services Interface (a Microsoft protocol), was going to be the way everybody was going to do it. Same with mail: MAPI on one side versus POP and SMTP on the other.
<p>
DOC: So I'm wondering if you imagine something will arise out of the Mozilla conversation that's a game-changer like the browser itself was, or LDAP was.
<p>
TOM: It certainly will. It's a question of when.
<p>
MARC: My guess is that there will be a grad student somewhere, say the Netherlands, who's doing a Ph.D. dissertation on a new advanced user interface. And instead of just building something that nobody will ever see, they'll build it on the Mozilla source code base and release it to the Net. Why not? It's not going to sell anyway — it's a Ph.D. dissertation, after all. They're going to want as many people as possible to see it, and to get as many job offers as possible. And it's going to change the world. So my guess is we're going to see stuff like that popping up over the next couple of years. No reason not to. We've got something like critical mass here. We have virtually the entire world of computer professionals, especially in the highly creative areas of research and computer science.
<p>
TOM: And imagine the alternatives. Here we're going to have this public source and all these people will have the freedom to work in this space, in a space that a hundred million people use in their daily lives all the time. Can you say there won't be any such innovations in the next five years? That's almost ludicrous.
<H4 ALIGN=CENTER>The free world</H4>
<p>
MARC: It's interesting that one of the changes that has happened in the market over the last five years is that client software is now free. Not just browser software and email software, but personal organizers and word processors, spreadsheets. It is now impossible in the software market to make money doing client software of any kind for anything. Microsoft Outlook, for example, is wiping out the independent personal information management (PIM) market.
<p>
So you can't expect new innovations to emerge out of the commercial software world that will be highly relevant to end users that come in the form of client software. You can expect them to come as on-line services, perhaps. Or as server software, perhaps, because you can still make money on those without being Microsoft. But innovation in end user software is only going to come out of the Open Source community. It's not going to come out of Microsoft. They don't do innovation here, and they don't have to. And you know the venture capitalists are not going to fund the next company to do the next computer interface, because there's no way to make money on that. And that could end up being the biggest threat to Microsoft two, four, five, ten years from now. Because that's when its core monopoly comes under attack by something that is technologically far superior, with a business model that's far superior. That's when they're really in trouble. Because free is a pretty good business model.
<p>
DOC: And you're counting on that grad student out there, writing in Mozilla code, to come up with the killer paradigm shift on the client side.
<p>
MARC: First, it would be better for that to happen than for it not to happen, regardless of whether or not we benefit directly. De-stabilization and the heterogeneity of the market is good for us. Stabilization and homogeneity is bad for us. So that's the first part of the decision tree. The next part of the tree is that as these things happen presumably there will be ways for us to make money, either through online service offerings or server software offerings or programming tools or something that wraps around that and provides commercial support.
<p>
DOC: So it's wrong to believe it was ever in Netscape's interest to have stabilization occurring around itself.
<p>
MARC: That could be true.
<p>
DOC: People default to thinking that every company wants a stable situation where they've locked something down and don't need to do anything new in that space for a long time — until something comes along that changes the business so totally that they have to start all over again.
<p>
MARC: Yeah. Let me put it this way. Every company would like to be in Microsoft's situation, a completely stable situation, with abundant money flowing in. But if that's not reasonable, then the next best thing is to have a constantly de-stabilized situation. It means you have to keep running and doing new things. But that's what makes it fun.
<p>
DOC: And you want Microsoft's tractor trailer to chase your four-wheel drive all over new landscape.
<p>
MARC: Sure. Definitely.
<H4 ALIGN=CENTER>Links</H4>
<p>
The <a href="http://home.netscape.com/comprod/products/communicator/white_papers/source.html">Netscape Open Source White Paper</a> provides an excellent background on Netscape's approach to the open source movement.
<p>"<A HREF="http://www.wired.com/wired/5.09/newrules.html">New Rules for a New Economy</A>" is an outstanding piece that ran recently in <A HREF="http://www.wired.com/">WIRED</A>.Most of Netscape's moves have been in complete alignment with Kelly's rules — which makes sense because in many ways Netscape wrote them. Or at least discovered them.
<p><A HREF="http://www.scripting.com/davenet/94/10/platformischinesehousehold.html">A Platform is a Chinese Household</A> gives<A HREF="http://www.scripting.com/dwiner/">Dave Winer</A>'s alternative software community metaphor.
<p>
<hr align=center width=70%>
<img height=3 width=100% src="./gx/searls/srlzline.gif">
<!--===================================================================-->
<P>
<center><H5>Copyright © 1998, Doc Searls <BR>
Published in Issue 31 of <i>Linux Gazette</i>, August 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc31.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./lg_answer31.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./canal.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Copying Red Hat Legalities</font></H1>
<H4>By <a href="mailto:eric.canal@supelec.fr">Eric Canal</a></H4>
</center>
<P> <HR> <P>
I posted a question last month and I received help from some people and
some others asked me to send them my results. I think that this article can
interest some of your readers that's why I send it to you. You can make all
the arrangements you want and I don't care for the mention of my name. Do
what you want... I just want to collaborate at my level to the fantastic
Linux Community.
<P>
I insist on only one thing : thanking all the people that helped me about
this topic : the burning of a RedHat CD ROM.
<P>
<P>
Here is a sum up of all the information I received and some additional one
that I discovered in my experiments.
<P>
As I am Francophone, i hope that you won't find to many English mistakes. :(
<P>
1. It is legal to make his own RedHat CD ROM if you mention all the
copyrighted stuff and the different owners of trademarks, etc.
2. It is cheaper to buy a CD from different organizations such as RedHat,
InfoMagic or CheapBytes if you are connected to the Internet with a modem
and if you pay your communications. The only interesting way to burn a
RedHat CD ROM is when you have a fast Internet connection and above all if
you don't pay for it (for example in an university or at work (your boss
will be happy for the bill ;p))).
3. You need all the RPMS files, all the "instimage" directory and the file
"i386". With this email you will find an attached text file that describes
all the directories involved in a RedHat CD ROM, but most of them are
facultative. You have to respect the hierarchy between the directories you
want to put on your own CD ROM.
4. When you burn your CD ROM you must have an ISO 9660 file system with
Rock Ridge Extensions (to let Linux recognize the long filenames). That
implies that you must burn it from Linux with "mkisofs", "mkhybrid" (using
option -r for RR extensions) with a former Linux system or a minimal Linux
system (see the corresponding HowTo for that) because most of Windows
burners don't do Rock Ridge extensions.
5. With RedHat 5.1 and only with this version you can burn your CD ROM with
a ISO9660 / Joliet file system which is more comfortable if you don't
already have a Linux system. It doesn't work at all with RedHat 5.0 and
former versions (this is due to the kernel 2.0.34 which is the first stable
version to directly recognize Joliet extensions).
6. I didn't try a bootable CD, but I know it is feasible. In this case you
need the autoboot directory. The file system you have to use is "El Torito".
7. You can take all the updates and put them in the RPMS directory in order
to replace the deficient ones. I did it for all the RPMS except the ones
involved with the kernel and the libs (libc5 and glibc), all the funny
things that are at the heart of the system. When I first tried all the
updates without any care, it didn't work at all (system halted). In my
second try, I didn't copy the files I mentioned above and it worked... But
the problem can be elsewhere (deficient burned image, etc.).
<P>
Two more advices :
a. Linux is case sensitive, so be careful with that. In particular you must
have the RPMS directory name in capital letters. The hierarchy of
directories joined with this message indicates the where the capital
letters must be.
b. Some CD burners might not work with Linux. In order to know that you
must have the firmware version of your burner and see if it is compatible
with mkisofs or mkhybrid or cdrecord. You can check it at
http://www.guug.de:8080/cgi-bin/winni/lsc.pl. If it is not the case, you
can upgrade it from the CD burner manufacturer (see their website).
<P>
In any case you can have a look on the CD Writing HowTo at your favorite
mirror (I personaly use www.freenix.fr which is in french, but I guess that
not everybody might want to go there ;p)).
<P>
Good luck and thank you very much for the support i received
<P>
May be the (Linux) Force be with you (and do go to the dark (NT) side of
the Force) ;p)
<P>
and long life to the Linux Gazette.
<P>
<P>
Eric CANAL
<P>
.<BR>
|-- COPYING<BR>
|-- DOCS.FR<BR>
| |-- 41REDHAT<BR>
| | |-- TRANS.TBL<BR>
| | |-- a4<BR>
| | | |-- 300-dpi<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- complet.zip<BR>
| | | | |-- impaires.zip<BR>
| | | | `-- paires.zip<BR>
| | | |-- 600-dpi<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- complet.zip<BR>
| | | | |-- impaires.zip<BR>
| | | | `-- paires.zip<BR>
| | | `-- TRANS.TBL<BR>
| | |-- index.htm<BR>
| | |-- lf-pdf.htm<BR>
| | |-- manuel.tgz<BR>
| | |-- rh4-.htm<BR>
| | |-- rh4-01.gif<BR>
| | |-- rh4-01.htm<BR>
| | |-- rh4-02.gif<BR>
| | |-- rh4-02.htm<BR>
| | |-- rh4-03.gif<BR>
| | |-- rh4-03.htm<BR>
| | |-- rh4-04.gif<BR>
| | |-- rh4-04.htm<BR>
| | |-- rh4-05.gif<BR>
| | |-- rh4-05.htm<BR>
| | |-- rh4-06.gif<BR>
| | |-- rh4-06.htm<BR>
| | |-- rh4-07.gif<BR>
| | |-- rh4-07.htm<BR>
| | |-- rh4-08.gif<BR>
| | |-- rh4-08.htm<BR>
| | |-- rh4-09.gif<BR>
| | |-- rh4-09.htm<BR>
| | |-- rh4-10.gif<BR>
| | |-- rh4-10.htm<BR>
| | |-- rh4-11.gif<BR>
| | |-- rh4-11.htm<BR>
| | |-- rh4-12.gif<BR>
| | |-- rh4-12.htm<BR>
| | |-- rh4-13.gif<BR>
| | |-- rh4-13.htm<BR>
| | |-- rh4-14.gif<BR>
| | |-- rh4-14.htm<BR>
| | |-- rh4-15.gif<BR>
| | |-- rh4-15.htm<BR>
| | |-- rh4-16.gif<BR>
| | |-- rh4-16.htm<BR>
| | |-- rh4-17.gif<BR>
| | |-- rh4-17.htm<BR>
| | |-- rh4-18.gif<BR>
| | |-- rh4-18.htm<BR>
| | |-- rh4-19.gif<BR>
| | |-- rh4-19.htm<BR>
| | |-- rh4-20.gif<BR>
| | |-- rh4-20.htm<BR>
| | |-- rh4-21.gif<BR>
| | |-- rh4-21.htm<BR>
| | |-- rh4-22.gif<BR>
| | |-- rh4-22.htm<BR>
| | |-- rh4-23.gif<BR>
| | |-- rh4-23.htm<BR>
| | |-- rh4-24.gif<BR>
| | |-- rh4-24.htm<BR>
| | |-- rh4-25.gif<BR>
| | |-- rh4-25.htm<BR>
| | |-- rh4-26.gif<BR>
| | |-- rh4-26.htm<BR>
| | |-- rh4-27.gif<BR>
| | |-- rh4-27.htm<BR>
| | |-- rh4-28.gif<BR>
| | |-- rh4-28.htm<BR>
| | |-- rh4-29.gif<BR>
| | |-- rh4-29.htm<BR>
| | |-- rh4-30.gif<BR>
| | |-- rh4-30.htm<BR>
| | |-- rh4-31.gif<BR>
| | |-- rh4-31.htm<BR>
| | |-- rh4-32.gif<BR>
| | |-- rh4-32.htm<BR>
| | |-- rh4-33.gif<BR>
| | |-- rh4-33.htm<BR>
| | |-- rh4-34.gif<BR>
| | |-- rh4-34.htm<BR>
| | |-- rh4-35.gif<BR>
| | |-- rh4-35.htm<BR>
| | |-- rh4-36.gif<BR>
| | |-- rh4-36.htm<BR>
| | |-- rh4-37.gif<BR>
| | |-- rh4-37.htm<BR>
| | |-- rh4-38.gif<BR>
| | |-- rh4-38.htm<BR>
| | |-- rh4-39.gif<BR>
| | |-- rh4-39.htm<BR>
| | |-- rh4-40.gif<BR>
| | |-- rh4-40.htm<BR>
| | |-- rh4-41.gif<BR>
| | |-- rh4-41.htm<BR>
| | |-- rh4-42.gif<BR>
| | |-- rh4-42.htm<BR>
| | |-- rh4-43.gif<BR>
| | |-- rh4-43.htm<BR>
| | |-- rh4-44.gif<BR>
| | |-- rh4-44.htm<BR>
| | |-- rh4-45.gif<BR>
| | |-- rh4-45.htm<BR>
| | |-- rh4-46.gif<BR>
| | |-- rh4-46.htm<BR>
| | |-- rh4-47.htm<BR>
| | |-- rh4-48.htm<BR>
| | |-- rh4-49.htm<BR>
| | |-- rh4-50.htm<BR>
| | |-- rh4-51.htm<BR>
| | |-- rh4-52.htm<BR>
| | |-- rh4-53.htm<BR>
| | |-- rh4-54.htm<BR>
| | |-- rh4-55.htm<BR>
| | |-- rh4-56.htm<BR>
| | |-- rh4-57.htm<BR>
| | |-- rh4-58.htm<BR>
| | |-- rh4-59.htm<BR>
| | |-- rh4-60.htm<BR>
| | |-- rh4-61.htm<BR>
| | |-- rh4-62.htm<BR>
| | |-- rh4-63.htm<BR>
| | |-- rh4-64.htm<BR>
| | |-- rh4-65.htm<BR>
| | |-- rh4-66.htm<BR>
| | |-- rh4-67.htm<BR>
| | |-- rh4-68.htm<BR>
| | |-- rh4-69.htm<BR>
| | |-- rh4-70.htm<BR>
| | |-- rh4-71.htm<BR>
| | |-- rh4-72.htm<BR>
| | |-- rh4-73.htm<BR>
| | |-- rh4-74.htm<BR>
| | |-- rh4-75.htm<BR>
| | |-- rh4-76.htm<BR>
| | |-- rh4-77.htm<BR>
| | |-- rh4-78.htm<BR>
| | |-- rh4-79.htm<BR>
| | |-- rh4-80.htm<BR>
| | `-- rh4-_c.htm<BR>
| |-- FAQ<BR>
| | |-- HTML<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- meta-faq.fr-1.html<BR>
| | | |-- meta-faq.fr-2.html<BR>
| | | |-- meta-faq.fr-3.html<BR>
| | | |-- meta-faq.fr-4.html<BR>
| | | |-- meta-faq.fr-5.html<BR>
| | | |-- meta-faq.fr-6.html<BR>
| | | |-- meta-faq.fr-7.html<BR>
| | | |-- meta-faq.fr-8.html<BR>
| | | |-- meta-faq.fr-9.html<BR>
| | | `-- meta-faq.fr.html<BR>
| | |-- TRANS.TBL<BR>
| | `-- meta-faq.fr<BR>
| |-- FDISK-Linux<BR>
| | |-- MANUEL.TXT<BR>
| | `-- TRANS.TBL<BR>
| |-- FIPS-15<BR>
| | |-- MANUEL.TXT<BR>
| | `-- TRANS.TBL<BR>
| |-- HOWTO<BR>
| | |-- Boot-disk-HOWTO<BR>
| | |-- BootPrompt-HOWTO<BR>
| | |-- Busmouse-HOWTO<BR>
| | |-- CDROM-HOWTO<BR>
| | |-- Commercial-HOWTO<BR>
| | |-- DOSEMU-HOWTO<BR>
| | |-- Distribution-HOWTO<BR>
| | |-- ELF-HOWTO<BR>
| | |-- Firewall-HOWTO<BR>
| | |-- Ftape-HOWTO<BR>
| | |-- GCC-HOWTO<BR>
| | |-- HAM-HOWTO<BR>
| | |-- HOWTO-Index<BR>
| | |-- HTML<BR>
| | | |-- Boot-disk-HOWTO-html.tar.gz<BR>
| | | |-- BootPrompt-HOWTO-html.tar.gz<BR>
| | | |-- Busmouse-HOWTO-html.tar.gz<BR>
| | | |-- CDROM-HOWTO-html.tar.gz<BR>
| | | |-- Commercial-HOWTO-html.tar.gz<BR>
| | | |-- DOSEMU-HOWTO-html.tar.gz<BR>
| | | |-- Distribution-HOWTO-html.tar.gz<BR>
| | | |-- ELF-HOWTO-html.tar.gz<BR>
| | | |-- Firewall-HOWTO-html.tar.gz<BR>
| | | |-- Ftape-HOWTO-html.tar.gz<BR>
| | | |-- GCC-HOWTO-html.tar.gz<BR>
| | | |-- HAM-HOWTO-html.tar.gz<BR>
| | | |-- HOWTO-Index-html.tar.gz<BR>
| | | |-- Hardware-HOWTO-html.tar.gz<BR>
| | | |-- IPX-HOWTO-html.tar.gz<BR>
| | | |-- Installation-HOWTO-html.tar.gz<BR>
| | | |-- Java-HOWTO-html.tar.gz<BR>
| | | |-- Kernel-HOWTO-html.tar.gz<BR>
| | | |-- Keyboard-HOWTO-html.tar.gz<BR>
| | | |-- MGR-HOWTO-html.tar.gz<BR>
| | | |-- Mail-HOWTO-html.tar.gz<BR>
| | | |-- Modems-HOWTO-html.tar.gz<BR>
| | | |-- NIS-HOWTO-html.tar.gz<BR>
| | | |-- Net2-HOWTO-html.tar.gz<BR>
| | | |-- PCI-HOWTO-html.tar.gz<BR>
| | | |-- PPP-FAQ-html.tar.gz<BR>
| | | |-- PPP-HOWTO-html.tar.gz<BR>
| | | |-- Printing-HOWTO-html.tar.gz<BR>
| | | |-- SCSI-HOWTO-html.tar.gz<BR>
| | | |-- SCSI-Programming-HOWTO-html.tar.gz<BR>
| | | |-- Serial-HOWTO-html.tar.gz<BR>
| | | |-- Slip-ProxyARP-html.tar.gz<BR>
| | | |-- Sound-HOWTO-html.tar.gz<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- Term-HOWTO-html.tar.gz<BR>
| | | |-- Tips-HOWTO-html.tar.gz<BR>
| | | |-- UPS-HOWTO-html.tar.gz<BR>
| | | |-- UUCP-HOWTO-html.tar.gz<BR>
| | | |-- Video-HOWTO-html.tar.gz<BR>
| | | |-- Win95-Win3x-Linux-html.tar.gz<BR>
| | | `-- XFree86-HOWTO-html.tar.gz<BR>
| | |-- Hardware-HOWTO<BR>
| | |-- IPX-HOWTO<BR>
| | |-- Installation-HOWTO<BR>
| | |-- Java-HOWTO<BR>
| | |-- Kernel-HOWTO<BR>
| | |-- Keyboard-HOWTO<BR>
| | |-- MGR-HOWTO<BR>
| | |-- Mail-HOWTO<BR>
| | |-- Modems-HOWTO<BR>
| | |-- NIS-HOWTO<BR>
| | |-- Net2-HOWTO<BR>
| | |-- PCI-HOWTO<BR>
| | |-- PPP-FAQ<BR>
| | |-- PPP-HOWTO<BR>
| | |-- Printing-HOWTO<BR>
| | |-- SCSI-HOWTO<BR>
| | |-- SCSI-Programming-HOWTO<BR>
| | |-- Serial-HOWTO<BR>
| | |-- Slip-ProxyARP<BR>
| | |-- Sound-HOWTO<BR>
| | |-- TRANS.TBL<BR>
| | |-- Term-HOWTO<BR>
| | |-- Tips-HOWTO<BR>
| | |-- UPS-HOWTO<BR>
| | |-- UUCP-HOWTO<BR>
| | |-- Video-HOWTO<BR>
| | |-- Win95-Win3x-Linux<BR>
| | `-- XFree86-HOWTO<BR>
| |-- HOWTO-mini<BR>
| | |-- Anon-ftp<BR>
| | |-- Assembleur<BR>
| | |-- Colour-ls<BR>
| | |-- HTML<BR>
| | | |-- Anon-ftp-html.tar.gz<BR>
| | | |-- Assembleur-html.tar.gz<BR>
| | | |-- Colour-ls-html.tar.gz<BR>
| | | |-- IO-Port-html.tar.gz<BR>
| | | |-- JAZ-drive-html.tar.gz<BR>
| | | |-- LILO-html.tar.gz<BR>
| | | |-- Large-IDE-html.tar.gz<BR>
| | | |-- Man-Page-html.tar.gz<BR>
| | | |-- NFS-Root-html.tar.gz<BR>
| | | |-- Postgres-html.tar.gz<BR>
| | | |-- Proxy-ARP-html.tar.gz<BR>
| | | |-- Slip+ProxyARP-html.tar.gz<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- Term-Firewall-html.tar.gz<BR>
| | | |-- Token-Ring-html.tar.gz<BR>
| | | |-- X-Terminal-html.tar.gz<BR>
| | | `-- ZipIomega-html.tar.gz<BR>
| | |-- IO-Port<BR>
| | |-- JAZ-drive<BR>
| | |-- LILO<BR>
| | |-- Large-IDE<BR>
| | |-- Man-Page<BR>
| | |-- NFS-Root<BR>
| | |-- Postgres<BR>
| | |-- Proxy-ARP<BR>
| | |-- Slip+ProxyARP<BR>
| | |-- TRANS.TBL<BR>
| | |-- Term-Firewall<BR>
| | |-- Token-Ring<BR>
| | |-- X-Terminal<BR>
| | `-- ZipIomega<BR>
| |-- INFO-sht<BR>
| | |-- HTML<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- info-sheet.fr-1.html<BR>
| | | |-- info-sheet.fr-10.html<BR>
| | | |-- info-sheet.fr-11.html<BR>
| | | |-- info-sheet.fr-12.html<BR>
| | | |-- info-sheet.fr-2.html<BR>
| | | |-- info-sheet.fr-3.html<BR>
| | | |-- info-sheet.fr-4.html<BR>
| | | |-- info-sheet.fr-5.html<BR>
| | | |-- info-sheet.fr-6.html<BR>
| | | |-- info-sheet.fr-7.html<BR>
| | | |-- info-sheet.fr-8.html<BR>
| | | |-- info-sheet.fr-9.html<BR>
| | | `-- info-sheet.fr.html<BR>
| | |-- TRANS.TBL<BR>
| | `-- info-sht.fr<BR>
| |-- INTRO-Linux<BR>
| | |-- HTML<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- intro-1.html<BR>
| | | |-- intro-2.html<BR>
| | | |-- intro-3.html<BR>
| | | |-- intro-4.html<BR>
| | | |-- intro-5.html<BR>
| | | |-- intro-6.html<BR>
| | | |-- intro-7.html<BR>
| | | `-- intro.html<BR>
| | |-- TRANS.TBL<BR>
| | `-- intro<BR>
| |-- KERNEL-2.0<BR>
| | |-- 00-INDEX<BR>
| | |-- CHASSE-AUX-BOGUES<BR>
| | |-- Changements<BR>
| | |-- Configure.help<BR>
| | |-- SMP.txt<BR>
| | |-- StyleDuCodage<BR>
| | |-- TRANS.TBL<BR>
| | |-- chiendegarde.txt<BR>
| | |-- digiboard.txt<BR>
| | |-- disqueram.txt<BR>
| | |-- ide.txt<BR>
| | |-- initrd.txt<BR>
| | |-- java.txt<BR>
| | |-- logo.gif<BR>
| | |-- logo.txt<BR>
| | |-- modules.txt<BR>
| | |-- numero-ioctl.txt<BR>
| | |-- numero-magique.txt<BR>
| | |-- obligatoire.txt<BR>
| | |-- oups-trace.txt<BR>
| | |-- racinenfs.txt<BR>
| | |-- riscom8.txt<BR>
| | |-- rtc.txt<BR>
| | |-- scsi.txt<BR>
| | |-- smp.tex<BR>
| | |-- svga.txt<BR>
| | |-- unicode.txt<BR>
| | `-- verrous.txt<BR>
| |-- LINUX-FACILE<BR>
| | |-- TRANS.TBL<BR>
| | |-- a4<BR>
| | | |-- 300-dpi<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- complet.pdf<BR>
| | | | |-- impaires.pdf<BR>
| | | | `-- paires.pdf<BR>
| | | |-- 600-dpi<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- complet.pdf<BR>
| | | | |-- impaires.pdf<BR>
| | | | `-- paires.pdf<BR>
| | | `-- TRANS.TBL<BR>
| | `-- html<BR>
| | |-- TRANS.TBL<BR>
| | |-- images<BR>
| | | |-- 002.gif<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- blankg.gif<BR>
| | | |-- contg.gif<BR>
| | | |-- dbledag.gif<BR>
| | | |-- indexg.gif<BR>
| | | |-- leftg.gif<BR>
| | | |-- linuxf.gif<BR>
| | | |-- noleftg.gif<BR>
| | | |-- norightg.gif<BR>
| | | |-- notopg.gif<BR>
| | | |-- noupg.gif<BR>
| | | |-- points.gif<BR>
| | | |-- r2harc1.gif<BR>
| | | |-- r2harc2.gif<BR>
| | | |-- r2harc3.gif<BR>
| | | |-- r2harc4.gif<BR>
| | | |-- r2harch.gif -> 002.gif<BR>
| | | |-- rightg.gif<BR>
| | | |-- sectmark.gif<BR>
| | | |-- sigma_.gif<BR>
| | | |-- square.gif<BR>
| | | |-- topg.gif<BR>
| | | |-- trait.gif<BR>
| | | `-- upg.gif<BR>
| | `-- linux-f<BR>
| | |-- TRANS.TBL<BR>
| | |-- index.htm -> lf2.htm<BR>
| | |-- lf2.htm<BR>
| | |-- lf201.gif<BR>
| | |-- lf201.htm<BR>
| | |-- lf202.gif<BR>
| | |-- lf202.htm<BR>
| | |-- lf203.gif<BR>
| | |-- lf203.htm<BR>
| | |-- lf204.gif<BR>
| | |-- lf204.htm<BR>
| | |-- lf205.gif<BR>
| | |-- lf205.htm<BR>
| | |-- lf206.gif<BR>
| | |-- lf206.htm<BR>
| | |-- lf207.gif<BR>
| | |-- lf207.htm<BR>
| | |-- lf208.gif<BR>
| | |-- lf208.htm<BR>
| | |-- lf209.gif<BR>
| | |-- lf209.htm<BR>
| | |-- lf210.gif<BR>
| | |-- lf210.htm<BR>
| | |-- lf2100.htm<BR>
| | |-- lf2101.htm<BR>
| | |-- lf2102.htm<BR>
| | |-- lf2103.htm<BR>
| | |-- lf2104.htm<BR>
| | |-- lf2105.htm<BR>
| | |-- lf2106.htm<BR>
| | |-- lf2107.htm<BR>
| | |-- lf2108.htm<BR>
| | |-- lf2109.htm<BR>
| | |-- lf211.gif<BR>
| | |-- lf211.htm<BR>
| | |-- lf2110.htm<BR>
| | |-- lf2111.htm<BR>
| | |-- lf2112.htm<BR>
| | |-- lf2113.htm<BR>
| | |-- lf2114.htm<BR>
| | |-- lf2115.htm<BR>
| | |-- lf2116.htm<BR>
| | |-- lf2117.htm<BR>
| | |-- lf2118.htm<BR>
| | |-- lf2119.htm<BR>
| | |-- lf212.gif<BR>
| | |-- lf212.htm<BR>
| | |-- lf2120.htm<BR>
| | |-- lf2121.htm<BR>
| | |-- lf2122.htm<BR>
| | |-- lf2123.htm<BR>
| | |-- lf2124.htm<BR>
| | |-- lf2125.htm<BR>
| | |-- lf2126.htm<BR>
| | |-- lf2127.htm<BR>
| | |-- lf2128.htm<BR>
| | |-- lf2129.htm<BR>
| | |-- lf213.gif<BR>
| | |-- lf213.htm<BR>
| | |-- lf2130.htm<BR>
| | |-- lf2131.htm<BR>
| | |-- lf2132.htm<BR>
| | |-- lf2133.htm<BR>
| | |-- lf2134.htm<BR>
| | |-- lf2135.htm<BR>
| | |-- lf2136.htm<BR>
| | |-- lf2137.htm<BR>
| | |-- lf2138.htm<BR>
| | |-- lf2139.htm<BR>
| | |-- lf214.gif<BR>
| | |-- lf214.htm<BR>
| | |-- lf2140.htm<BR>
| | |-- lf2141.htm<BR>
| | |-- lf2142.htm<BR>
| | |-- lf2143.htm<BR>
| | |-- lf2144.htm<BR>
| | |-- lf2145.htm<BR>
| | |-- lf2146.htm<BR>
| | |-- lf2147.htm<BR>
| | |-- lf2148.htm<BR>
| | |-- lf2149.htm<BR>
| | |-- lf215.gif<BR>
| | |-- lf215.htm<BR>
| | |-- lf2150.htm<BR>
| | |-- lf2151.htm<BR>
| | |-- lf2152.htm<BR>
| | |-- lf2153.htm<BR>
| | |-- lf216.gif<BR>
| | |-- lf216.htm<BR>
| | |-- lf217.gif<BR>
| | |-- lf217.htm<BR>
| | |-- lf218.gif<BR>
| | |-- lf218.htm<BR>
| | |-- lf219.gif<BR>
| | |-- lf219.htm<BR>
| | |-- lf220.gif<BR>
| | |-- lf220.htm<BR>
| | |-- lf221.gif<BR>
| | |-- lf221.htm<BR>
| | |-- lf222.gif<BR>
| | |-- lf222.htm<BR>
| | |-- lf223.gif<BR>
| | |-- lf223.htm<BR>
| | |-- lf224.gif<BR>
| | |-- lf224.htm<BR>
| | |-- lf225.gif<BR>
| | |-- lf225.htm<BR>
| | |-- lf226.gif<BR>
| | |-- lf226.htm<BR>
| | |-- lf227.gif<BR>
| | |-- lf227.htm<BR>
| | |-- lf228.gif<BR>
| | |-- lf228.htm<BR>
| | |-- lf229.gif<BR>
| | |-- lf229.htm<BR>
| | |-- lf230.gif<BR>
| | |-- lf230.htm<BR>
| | |-- lf231.gif<BR>
| | |-- lf231.htm<BR>
| | |-- lf232.gif<BR>
| | |-- lf232.htm<BR>
| | |-- lf233.gif<BR>
| | |-- lf233.htm<BR>
| | |-- lf234.gif<BR>
| | |-- lf234.htm<BR>
| | |-- lf235.gif<BR>
| | |-- lf235.htm<BR>
| | |-- lf236.gif<BR>
| | |-- lf236.htm<BR>
| | |-- lf237.gif<BR>
| | |-- lf237.htm<BR>
| | |-- lf238.gif<BR>
| | |-- lf238.htm<BR>
| | |-- lf239.gif<BR>
| | |-- lf239.htm<BR>
| | |-- lf240.gif<BR>
| | |-- lf240.htm<BR>
| | |-- lf241.gif<BR>
| | |-- lf241.htm<BR>
| | |-- lf242.gif<BR>
| | |-- lf242.htm<BR>
| | |-- lf243.gif<BR>
| | |-- lf243.htm<BR>
| | |-- lf244.gif<BR>
| | |-- lf244.htm<BR>
| | |-- lf245.gif<BR>
| | |-- lf245.htm<BR>
| | |-- lf246.htm<BR>
| | |-- lf247.htm<BR>
| | |-- lf248.htm<BR>
| | |-- lf249.htm<BR>
| | |-- lf250.htm<BR>
| | |-- lf251.htm<BR>
| | |-- lf252.htm<BR>
| | |-- lf253.htm<BR>
| | |-- lf254.htm<BR>
| | |-- lf255.htm<BR>
| | |-- lf256.htm<BR>
| | |-- lf257.htm<BR>
| | |-- lf258.htm<BR>
| | |-- lf259.htm<BR>
| | |-- lf260.htm<BR>
| | |-- lf261.htm<BR>
| | |-- lf262.htm<BR>
| | |-- lf263.htm<BR>
| | |-- lf264.htm<BR>
| | |-- lf265.htm<BR>
| | |-- lf266.htm<BR>
| | |-- lf267.htm<BR>
| | |-- lf268.htm<BR>
| | |-- lf269.htm<BR>
| | |-- lf270.htm<BR>
| | |-- lf271.htm<BR>
| | |-- lf272.htm<BR>
| | |-- lf273.htm<BR>
| | |-- lf274.htm<BR>
| | |-- lf275.htm<BR>
| | |-- lf276.htm<BR>
| | |-- lf277.htm<BR>
| | |-- lf278.htm<BR>
| | |-- lf279.htm<BR>
| | |-- lf280.htm<BR>
| | |-- lf281.htm<BR>
| | |-- lf282.htm<BR>
| | |-- lf283.htm<BR>
| | |-- lf284.htm<BR>
| | |-- lf285.htm<BR>
| | |-- lf286.htm<BR>
| | |-- lf287.htm<BR>
| | |-- lf288.htm<BR>
| | |-- lf289.htm<BR>
| | |-- lf290.htm<BR>
| | |-- lf291.htm<BR>
| | |-- lf292.htm<BR>
| | |-- lf293.htm<BR>
| | |-- lf294.htm<BR>
| | |-- lf295.htm<BR>
| | |-- lf296.htm<BR>
| | |-- lf297.htm<BR>
| | |-- lf298.htm<BR>
| | |-- lf299.htm<BR>
| | `-- lf2_c.htm<BR>
| |-- LOADLIN16<BR>
| | |-- TRANS.TBL<BR>
| | |-- initrd.txt<BR>
| | |-- manuel.txt<BR>
| | `-- params.doc<BR>
| |-- LOCALE<BR>
| | |-- TRANS.TBL<BR>
| | `-- locale.fr<BR>
| |-- MAN-FR-0.3<BR>
| | |-- LISEZ_MOI<BR>
| | |-- TRANS.TBL<BR>
| | |-- changements<BR>
| | |-- html<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- icones<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- blanc.gif<BR>
| | | | |-- contg.gif<BR>
| | | | |-- fond-bl.gif<BR>
| | | | |-- logokh.gif<BR>
| | | | |-- point-bl.gif<BR>
| | | | |-- topg.gif<BR>
| | | | `-- upg.gif<BR>
| | | |-- index.htm<BR>
| | | |-- man1<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- basename.1.html<BR>
| | | | |-- cat.1.html<BR>
| | | | |-- chgrp.1.html<BR>
| | | | |-- chmod.1.html<BR>
| | | | |-- chown.1.html<BR>
| | | | |-- cksum.1.html<BR>
| | | | |-- comm.1.html<BR>
| | | | |-- cp.1.html<BR>
| | | | |-- csplit.1.html<BR>
| | | | |-- cut.1.html<BR>
| | | | |-- date.1.html<BR>
| | | | |-- dd.1.html<BR>
| | | | |-- dirname.1.html<BR>
| | | | |-- du.1.html<BR>
| | | | |-- echo.1.html<BR>
| | | | |-- env.1.html<BR>
| | | | |-- expand.1.html<BR>
| | | | |-- expr.1.html<BR>
| | | | |-- false.1.html<BR>
| | | | |-- find.1.html<BR>
| | | | |-- fmt.1.html<BR>
| | | | |-- fold.1.html<BR>
| | | | |-- free.1.html<BR>
| | | | |-- grep.1.html<BR>
| | | | |-- groups.1.html<BR>
| | | | |-- head.1.html<BR>
| | | | |-- id.1.html<BR>
| | | | |-- index.html<BR>
| | | | |-- join.1.html<BR>
| | | | |-- logname.1.html<BR>
| | | | |-- ls.1.html<BR>
| | | | |-- md5sum.1.html<BR>
| | | | |-- mkdir.1.html<BR>
| | | | |-- mkfifo.1.html<BR>
| | | | |-- mknod.1.html<BR>
| | | | |-- mv.1.html<BR>
| | | | |-- nice.1.html<BR>
| | | | |-- nl.1.html<BR>
| | | | |-- nohup.1.html<BR>
| | | | |-- od.1.html<BR>
| | | | |-- paste.1.html<BR>
| | | | |-- pathchk.1.html<BR>
| | | | |-- pr.1.html<BR>
| | | | |-- printenv.1.html<BR>
| | | | |-- printf.1.html<BR>
| | | | |-- pwd.1.html<BR>
| | | | |-- rm.1.html<BR>
| | | | |-- rmdir.1.html<BR>
| | | | |-- sleep.1.html<BR>
| | | | |-- sort.1.html<BR>
| | | | |-- split.1.html<BR>
| | | | |-- stty.1.html<BR>
| | | | |-- su.1.html<BR>
| | | | |-- sum.1.html<BR>
| | | | |-- tac.1.html<BR>
| | | | |-- tail.1.html<BR>
| | | | |-- tee.1.html<BR>
| | | | |-- test.1.html<BR>
| | | | |-- touch.1.html<BR>
| | | | |-- tr.1.html<BR>
| | | | |-- true.1.html<BR>
| | | | |-- tty.1.html<BR>
| | | | |-- uname.1.html<BR>
| | | | |-- unexpand.1.html<BR>
| | | | |-- uniq.1.html<BR>
| | | | |-- users.1.html<BR>
| | | | |-- wc.1.html<BR>
| | | | |-- who.1.html<BR>
| | | | |-- whoami.1.html<BR>
| | | | `-- yes.1.html<BR>
| | | |-- man2<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- _exit.2.html<BR>
| | | | |-- accept.2.html<BR>
| | | | |-- access.2.html<BR>
| | | | |-- acct.2.html<BR>
| | | | |-- adjtimex.2.html<BR>
| | | | |-- afs_syscall.2.html<BR>
| | | | |-- alarm.2.html<BR>
| | | | |-- bdflush.2.html<BR>
| | | | |-- bind.2.html<BR>
| | | | |-- break.2.html<BR>
| | | | |-- brk.2.html<BR>
| | | | |-- cacheflush.2.html<BR>
| | | | |-- chdir.2.html<BR>
| | | | |-- chmod.2.html<BR>
| | | | |-- chown.2.html<BR>
| | | | |-- chroot.2.html<BR>
| | | | |-- clone.2.html<BR>
| | | | |-- close.2.html<BR>
| | | | |-- connect.2.html<BR>
| | | | |-- creat.2.html<BR>
| | | | |-- create_module.2.html<BR>
| | | | |-- delete_module.2.html<BR>
| | | | |-- dup.2.html<BR>
| | | | |-- dup2.2.html<BR>
| | | | |-- execve.2.html<BR>
| | | | |-- fchdir.2.html<BR>
| | | | |-- fchmod.2.html<BR>
| | | | |-- fchown.2.html<BR>
| | | | |-- fcntl.2.html<BR>
| | | | |-- fdatasync.2.html<BR>
| | | | |-- flock.2.html<BR>
| | | | |-- fork.2.html<BR>
| | | | |-- fstat.2.html<BR>
| | | | |-- fstatfs.2.html<BR>
| | | | |-- fsync.2.html<BR>
| | | | |-- ftruncate.2.html<BR>
| | | | |-- get_kernel_syms.2.html<BR>
| | | | |-- getdents.2.html<BR>
| | | | |-- getdomainname.2.html<BR>
| | | | |-- getdtablesize.2.html<BR>
| | | | |-- getegid.2.html<BR>
| | | | |-- geteuid.2.html<BR>
| | | | |-- getgid.2.html<BR>
| | | | |-- getgroups.2.html<BR>
| | | | |-- gethostid.2.html<BR>
| | | | |-- gethostname.2.html<BR>
| | | | |-- getitimer.2.html<BR>
| | | | |-- getpagesize.2.html<BR>
| | | | |-- getpeername.2.html<BR>
| | | | |-- getpgid.2.html<BR>
| | | | |-- getpgrp.2.html<BR>
| | | | |-- getpid.2.html<BR>
| | | | |-- getppid.2.html<BR>
| | | | |-- getpriority.2.html<BR>
| | | | |-- getrlimit.2.html<BR>
| | | | |-- getrusage.2.html<BR>
| | | | |-- getsid.2.html<BR>
| | | | |-- getsockname.2.html<BR>
| | | | |-- getsockopt.2.html<BR>
| | | | |-- gettimeofday.2.html<BR>
| | | | |-- getuid.2.html<BR>
| | | | |-- gtty.2.html<BR>
| | | | |-- idle.2.html<BR>
| | | | |-- index.html<BR>
| | | | |-- init_module.2.html<BR>
| | | | |-- intro.2.html<BR>
| | | | |-- ioctl.2.html<BR>
| | | | |-- ioctl_list.2.html<BR>
| | | | |-- ioperm.2.html<BR>
| | | | |-- iopl.2.html<BR>
| | | | |-- ipc.2.html<BR>
| | | | |-- kill.2.html<BR>
| | | | |-- killpg.2.html<BR>
| | | | |-- link.2.html<BR>
| | | | |-- listen.2.html<BR>
| | | | |-- llseek.2.html<BR>
| | | | |-- lock.2.html<BR>
| | | | |-- lseek.2.html<BR>
| | | | |-- lstat.2.html<BR>
| | | | |-- mkdir.2.html<BR>
| | | | |-- mknod.2.html<BR>
| | | | |-- mlock.2.html<BR>
| | | | |-- mlockall.2.html<BR>
| | | | |-- mmap.2.html<BR>
| | | | |-- modify_ldt.2.html<BR>
| | | | |-- modules.2.html<BR>
| | | | |-- mount.2.html<BR>
| | | | |-- mprotect.2.html<BR>
| | | | |-- mpx.2.html<BR>
| | | | |-- mremap.2.html<BR>
| | | | |-- msgctl.2.html<BR>
| | | | |-- msgget.2.html<BR>
| | | | |-- msgop.2.html<BR>
| | | | |-- msgrcv.2.html<BR>
| | | | |-- msgsnd.2.html<BR>
| | | | |-- msync.2.html<BR>
| | | | |-- munlock.2.html<BR>
| | | | |-- munlockall.2.html<BR>
| | | | |-- munmap.2.html<BR>
| | | | |-- nanosleep.2.html<BR>
| | | | |-- nice.2.html<BR>
| | | | |-- obsolete.2.html<BR>
| | | | |-- oldfstat.2.html<BR>
| | | | |-- oldlstat.2.html<BR>
| | | | |-- oldolduname.2.html<BR>
| | | | |-- oldstat.2.html<BR>
| | | | |-- olduname.2.html<BR>
| | | | |-- open.2.html<BR>
| | | | |-- outb.2.html<BR>
| | | | |-- pause.2.html<BR>
| | | | |-- personality.2.html<BR>
| | | | |-- phys.2.html<BR>
| | | | |-- pipe.2.html<BR>
| | | | |-- prof.2.html<BR>
| | | | |-- profil.2.html<BR>
| | | | |-- ptrace.2.html<BR>
| | | | |-- quotactl.2.html<BR>
| | | | |-- read.2.html<BR>
| | | | |-- readdir.2.html<BR>
| | | | |-- readlink.2.html<BR>
| | | | |-- readv.2.html<BR>
| | | | |-- reboot.2.html<BR>
| | | | |-- recv.2.html<BR>
| | | | |-- recvfrom.2.html<BR>
| | | | |-- recvmsg.2.html<BR>
| | | | |-- rename.2.html<BR>
| | | | |-- rmdir.2.html<BR>
| | | | |-- sbrk.2.html<BR>
| | | | |-- sched_get_priority_max.2.html<BR>
| | | | |-- sched_get_priority_min.2.html<BR>
| | | | |-- sched_getparam.2.html<BR>
| | | | |-- sched_getscheduler.2.html<BR>
| | | | |-- sched_rr_get_interval.2.html<BR>
| | | | |-- sched_setparam.2.html<BR>
| | | | |-- sched_setscheduler.2.html<BR>
| | | | |-- sched_yield.2.html<BR>
| | | | |-- select.2.html<BR>
| | | | |-- semctl.2.html<BR>
| | | | |-- semget.2.html<BR>
| | | | |-- semop.2.html<BR>
| | | | |-- send.2.html<BR>
| | | | |-- sendmsg.2.html<BR>
| | | | |-- sendto.2.html<BR>
| | | | |-- setdomainname.2.html<BR>
| | | | |-- setegid.2.html<BR>
| | | | |-- seteuid.2.html<BR>
| | | | |-- setfsgid.2.html<BR>
| | | | |-- setfsuid.2.html<BR>
| | | | |-- setgid.2.html<BR>
| | | | |-- setgroups.2.html<BR>
| | | | |-- sethostid.2.html<BR>
| | | | |-- sethostname.2.html<BR>
| | | | |-- setitimer.2.html<BR>
| | | | |-- setpgid.2.html<BR>
| | | | |-- setpgrp.2.html<BR>
| | | | |-- setpriority.2.html<BR>
| | | | |-- setregid.2.html<BR>
| | | | |-- setreuid.2.html<BR>
| | | | |-- setrlimit.2.html<BR>
| | | | |-- setsid.2.html<BR>
| | | | |-- setsockopt.2.html<BR>
| | | | |-- settimeofday.2.html<BR>
| | | | |-- setuid.2.html<BR>
| | | | |-- setup.2.html<BR>
| | | | |-- shmat.2.html<BR>
| | | | |-- shmctl.2.html<BR>
| | | | |-- shmdt.2.html<BR>
| | | | |-- shmget.2.html<BR>
| | | | |-- shmop.2.html<BR>
| | | | |-- shutdown.2.html<BR>
| | | | |-- sigaction.2.html<BR>
| | | | |-- sigblock.2.html<BR>
| | | | |-- sigmask.2.html<BR>
| | | | |-- signal.2.html<BR>
| | | | |-- sigpause.2.html<BR>
| | | | |-- sigpending.2.html<BR>
| | | | |-- sigprocmask.2.html<BR>
| | | | |-- sigreturn.2.html<BR>
| | | | |-- sigsuspend.2.html<BR>
| | | | |-- sigvec.2.html<BR>
| | | | |-- socket.2.html<BR>
| | | | |-- socketcall.2.html<BR>
| | | | |-- socketpair.2.html<BR>
| | | | |-- stat.2.html<BR>
| | | | |-- statfs.2.html<BR>
| | | | |-- stime.2.html<BR>
| | | | |-- stty.2.html<BR>
| | | | |-- swapoff.2.html<BR>
| | | | |-- swapon.2.html<BR>
| | | | |-- symlink.2.html<BR>
| | | | |-- sync.2.html<BR>
| | | | |-- sysctl.2.html<BR>
| | | | |-- sysfs.2.html<BR>
| | | | |-- sysinfo.2.html<BR>
| | | | |-- syslog.2.html<BR>
| | | | |-- time.2.html<BR>
| | | | |-- times.2.html<BR>
| | | | |-- truncate.2.html<BR>
| | | | |-- umask.2.html<BR>
| | | | |-- umount.2.html<BR>
| | | | |-- uname.2.html<BR>
| | | | |-- undocumented.2.html<BR>
| | | | |-- unimplemented.2.html<BR>
| | | | |-- unlink.2.html<BR>
| | | | |-- uselib.2.html<BR>
| | | | |-- ustat.2.html<BR>
| | | | |-- utime.2.html<BR>
| | | | |-- vfork.2.html<BR>
| | | | |-- vhangup.2.html<BR>
| | | | |-- vm86.2.html<BR>
| | | | |-- wait.2.html<BR>
| | | | |-- wait3.2.html<BR>
| | | | |-- wait4.2.html<BR>
| | | | |-- waitpid.2.html<BR>
| | | | |-- write.2.html<BR>
| | | | `-- writev.2.html<BR>
| | | |-- man3<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- abort.3.html<BR>
| | | | |-- abs.3.html<BR>
| | | | |-- acos.3.html<BR>
| | | | |-- acosh.3.html<BR>
| | | | |-- addmntent.3.html<BR>
| | | | |-- alloca.3.html<BR>
| | | | |-- alphasort.3.html<BR>
| | | | |-- asctime.3.html<BR>
| | | | |-- asin.3.html<BR>
| | | | |-- asinh.3.html<BR>
| | | | |-- assert.3.html<BR>
| | | | |-- atan.3.html<BR>
| | | | |-- atan2.3.html<BR>
| | | | |-- atanh.3.html<BR>
| | | | |-- atexit.3.html<BR>
| | | | |-- atof.3.html<BR>
| | | | |-- atoi.3.html<BR>
| | | | |-- atol.3.html<BR>
| | | | |-- bcmp.3.html<BR>
| | | | |-- bcopy.3.html<BR>
| | | | |-- bsearch.3.html<BR>
| | | | |-- bstring.3.html<BR>
| | | | |-- byteorder.3.html<BR>
| | | | |-- bzero.3.html<BR>
| | | | |-- calloc.3.html<BR>
| | | | |-- catclose.3.html<BR>
| | | | |-- catgets.3.html<BR>
| | | | |-- catopen.3.html<BR>
| | | | |-- cbrt.3.html<BR>
| | | | |-- ceil.3.html<BR>
| | | | |-- cfgetispeed.3.html<BR>
| | | | |-- cfgetospeed.3.html<BR>
| | | | |-- cfmakeraw.3.html<BR>
| | | | |-- cfsetispeed.3.html<BR>
| | | | |-- cfsetospeed.3.html<BR>
| | | | |-- clearerr.3.html<BR>
| | | | |-- clock.3.html<BR>
| | | | |-- closedir.3.html<BR>
| | | | |-- closelog.3.html<BR>
| | | | |-- confstr.3.html<BR>
| | | | |-- copysign.3.html<BR>
| | | | |-- cos.3.html<BR>
| | | | |-- cosh.3.html<BR>
| | | | |-- crypt.3.html<BR>
| | | | |-- ctermid.3.html<BR>
| | | | |-- ctime.3.html<BR>
| | | | |-- cuserid.3.html<BR>
| | | | |-- difftime.3.html<BR>
| | | | |-- div.3.html<BR>
| | | | |-- dn_comp.3.html<BR>
| | | | |-- dn_expand.3.html<BR>
| | | | |-- drand48.3.html<BR>
| | | | |-- drem.3.html<BR>
| | | | |-- ecvt.3.html<BR>
| | | | |-- endgrent.3.html<BR>
| | | | |-- endhostent.3.html<BR>
| | | | |-- endmntent.3.html<BR>
| | | | |-- endnetent.3.html<BR>
| | | | |-- endprotoent.3.html<BR>
| | | | |-- endpwent.3.html<BR>
| | | | |-- endservent.3.html<BR>
| | | | |-- endusershell.3.html<BR>
| | | | |-- endutent.3.html<BR>
| | | | |-- erand48.3.html<BR>
| | | | |-- erf.3.html<BR>
| | | | |-- erfc.3.html<BR>
| | | | |-- errno.3.html<BR>
| | | | |-- exec.3.html<BR>
| | | | |-- execl.3.html<BR>
| | | | |-- execle.3.html<BR>
| | | | |-- execlp.3.html<BR>
| | | | |-- exect.3.html<BR>
| | | | |-- execv.3.html<BR>
| | | | |-- execvp.3.html<BR>
| | | | |-- exit.3.html<BR>
| | | | |-- exp.3.html<BR>
| | | | |-- expm1.3.html<BR>
| | =20| | |-- fabs.3.html<BR>
| | | | |-- fclose.3.html<BR>
| | | | |-- fcvt.3.html<BR>
| | | | |-- fdopen.3.html<BR>
| | | | |-- feof.3.html<BR>
| | | | |-- ferror.3.html<BR>
| | | | |-- fflush.3.html<BR>
| | | | |-- ffs.3.html<BR>
| | | | |-- fgetc.3.html<BR>
| | | | |-- fgetgrent.3.html<BR>
| | | | |-- fgetpos.3.html<BR>
| | | | |-- fgetpwent.3.html<BR>
| | | | |-- fgets.3.html<BR>
| | | | |-- fileno.3.html<BR>
| | | | |-- finite.3.html<BR>
| | | | |-- floor.3.html<BR>
| | | | |-- fmod.3.html<BR>
| | | | |-- fnmatch.3.html<BR>
| | | | |-- fopen.3.html<BR>
| | | | |-- fpathconf.3.html<BR>
| | | | |-- fprintf.3.html<BR>
| | | | |-- fpurge.3.html<BR>
| | | | |-- fputc.3.html<BR>
| | | | |-- fputs.3.html<BR>
| | | | |-- fread.3.html<BR>
| | | | |-- free.3.html<BR>
| | | | |-- freopen.3.html<BR>
| | | | |-- frexp.3.html<BR>
| | | | |-- fscanf.3.html<BR>
| | | | |-- fseek.3.html<BR>
| | | | |-- fsetpos.3.html<BR>
| | | | |-- ftell.3.html<BR>
| | | | |-- ftime.3.html<BR>
| | | | |-- ftok.3.html<BR>
| | | | |-- ftw.3.html<BR>
| | | | |-- fwrite.3.html<BR>
| | | | |-- gcvt.3.html<BR>
| | | | |-- get_current_dir_name.3.html<BR>
| | | | |-- getc.3.html<BR>
| | | | |-- getchar.3.html<BR>
| | | | |-- getcwd.3.html<BR>
| | | | |-- getdirentries.3.html<BR>
| | | | |-- getenv.3.html<BR>
| | | | |-- getgrent.3.html<BR>
| | | | |-- getgrgid.3.html<BR>
| | | | |-- getgrnam.3.html<BR>
| | | | |-- gethostbyaddr.3.html<BR>
| | | | |-- gethostbyname.3.html<BR>
| | | | |-- getlogin.3.html<BR>
| | | | |-- getmntent.3.html<BR>
| | | | |-- getnetbyaddr.3.html<BR>
| | | | |-- getnetbyname.3.html<BR>
| | | | |-- getnetent.3.html<BR>
| | | | |-- getopt.3.html<BR>
| | | | |-- getopt_long.3.html<BR>
| | | | |-- getopt_long_only.3.html<BR>
| | | | |-- getpass.3.html<BR>
| | | | |-- getprotobyname.3.html<BR>
| | | | |-- getprotobynumber.3.html<BR>
| | | | |-- getprotoent.3.html<BR>
| | | | |-- getpw.3.html<BR>
| | | | |-- getpwent.3.html<BR>
| | | | |-- getpwnam.3.html<BR>
| | | | |-- getpwuid.3.html<BR>
| | | | |-- gets.3.html<BR>
| | | | |-- getservbyname.3.html<BR>
| | | | |-- getservbyport.3.html<BR>
| | | | |-- getservent.3.html<BR>
| | | | |-- getusershell.3.html<BR>
| | | | |-- getutent.3.html<BR>
| | | | |-- getutid.3.html<BR>
| | | | |-- getutline.3.html<BR>
| | | | |-- getw.3.html<BR>
| | | | |-- getwd.3.html<BR>
| | | | |-- glob.3.html<BR>
| | | | |-- globfree.3.html<BR>
| | | | |-- gmtime.3.html<BR>
| | | | |-- hasmntopt.3.html<BR>
| | | | |-- hcreate.3.html<BR>
| | | | |-- hdestroy.3.html<BR>
| | | | |-- herror.3.html<BR>
| | | | |-- hsearch.3.html<BR>
| | | | |-- htonl.3.html<BR>
| | | | |-- htons.3.html<BR>
| | | | |-- hypot.3.html<BR>
| | | | |-- index.3.html<BR>
| | | | |-- index.html<BR>
| | | | |-- inet.3.html<BR>
| | | | |-- inet_addr.3.html<BR>
| | | | |-- inet_aton.3.html<BR>
| | | | |-- inet_lnaof.3.html<BR>
| | | | |-- inet_makeaddr.3.html<BR>
| | | | |-- inet_netof.3.html<BR>
| | | | |-- inet_network.3.html<BR>
| | | | |-- inet_ntoa.3.html<BR>
| | | | |-- infnan.3.html<BR>
| | | | |-- initgroups.3.html<BR>
| | | | |-- initstate.3.html<BR>
| | | | |-- insque.3.html<BR>
| | | | |-- intro.3.html<BR>
| | | | |-- isalnum.3.html<BR>
| | | | |-- isalpha.3.html<BR>
| | | | |-- isascii.3.html<BR>
| | | | |-- isatty.3.html<BR>
| | | | |-- isblank.3.html<BR>
| | | | |-- iscntrl.3.html<BR>
| | | | |-- isdigit.3.html<BR>
| | | | |-- isgraph.3.html<BR>
| | | | |-- isinf.3.html<BR>
| | | | |-- islower.3.html<BR>
| | | | |-- isnan.3.html<BR>
| | | | |-- isprint.3.html<BR>
| | | | |-- ispunct.3.html<BR>
| | | | |-- isspace.3.html<BR>
| | | | |-- isupper.3.html<BR>
| | | | |-- isxdigit.3.html<BR>
| | | | |-- j0.3.html<BR>
| | | | |-- j1.3.html<BR>
| | | | |-- jn.3.html<BR>
| | | | |-- jrand48.3.html<BR>
| | | | |-- killpg.3.html<BR>
| | | | |-- labs.3.html<BR>
| | | | |-- lcong48.3.html<BR>
| | | | |-- ldexp.3.html<BR>
| | | | |-- ldiv.3.html<BR>
| | | | |-- lfind.3.html<BR>
| | | | |-- lgamma.3.html<BR>
| | | | |-- localeconv.3.html<BR>
| | | | |-- localtime.3.html<BR>
| | | | |-- log.3.html<BR>
| | | | |-- log10.3.html<BR>
| | | | |-- log1p.3.html<BR>
| | | | |-- longjmp.3.html<BR>
| | | | |-- lrand48.3.html<BR>
| | | | |-- lsearch.3.html<BR>
| | | | |-- malloc.3.html<BR>
| | | | |-- mblen.3.html<BR>
| | | | |-- mbstowcs.3.html<BR>
| | | | |-- mbtowc.3.html<BR>
| | | | |-- memccpy.3.html<BR>
| | | | |-- memchr.3.html<BR>
| | | | |-- memcmp.3.html<BR>
| | | | |-- memcpy.3.html<BR>
| | | | |-- memfrob.3.html<BR>
| | | | |-- memmem.3.html<BR>
| | | | |-- memmove.3.html<BR>
| | | | |-- memset.3.html<BR>
| | | | |-- mkfifo.3.html<BR>
| | | | |-- mkstemp.3.html<BR>
| | | | |-- mktemp.3.html<BR>
| | | | |-- mktime.3.html<BR>
| | | | |-- modf.3.html<BR>
| | | | |-- mrand48.3.html<BR>
| | | | |-- nrand48.3.html<BR>
| | | | |-- ntohl.3.html<BR>
| | | | |-- ntohs.3.html<BR>
| | | | |-- on_exit.3.html<BR>
| | | | |-- opendir.3.html<BR>
| | | | |-- openlog.3.html<BR>
| | | | |-- pathconf.3.html<BR>
| | | | |-- pclose.3.html<BR>
| | | | |-- perror.3.html<BR>
| | | | |-- popen.3.html<BR>
| | | | |-- pow.3.html<BR>
| | | | |-- printf.3.html<BR>
| | | | |-- psignal.3.html<BR>
| | | | |-- putc.3.html<BR>
| | | | |-- putchar.3.html<BR>
| | | | |-- putenv.3.html<BR>
| | | | |-- putpwent.3.html<BR>
| | | | |-- puts.3.html<BR>
| | | | |-- pututline.3.html<BR>
| | | | |-- putw.3.html<BR>
| | | | |-- qsort.3.html<BR>
| | | | |-- raise.3.html<BR>
| | | | |-- rand.3.html<BR>
| | | | |-- random.3.html<BR>
| | | | |-- re_comp.3.html<BR>
| | | | |-- re_exec.3.html<BR>
| | | | |-- readdir.3.html<BR>
| | | | |-- readv.3.html<BR>
| | | | |-- realloc.3.html<BR>
| | | | |-- realpath.3.html<BR>
| | | | |-- regcomp.3.html<BR>
| | | | |-- regerror.3.html<BR>
| | | | |-- regexec.3.html<BR>
| | | | |-- regfree.3.html<BR>
| | | | |-- remove.3.html<BR>
| | | | |-- remque.3.html<BR>
| | | | |-- res_init.3.html<BR>
| | | | |-- res_mkquery.3.html<BR>
| | | | |-- res_query.3.html<BR>
| | | | |-- res_querydomain.3.html<BR>
| | | | |-- res_search.3.html<BR>
| | | | |-- res_send.3.html<BR>
| | | | |-- resolver.3.html<BR>
| | | | |-- rewind.3.html<BR>
| | | | |-- rewinddir.3.html<BR>
| | | | |-- rindex.3.html<BR>
| | | | |-- rint.3.html<BR>
| | | | |-- scandir.3.html<BR>
| | | | |-- scanf.3.html<BR>
| | | | |-- seed48.3.html<BR>
| | | | |-- seekdir.3.html<BR>
| | | | |-- setbuf.3.html<BR>
| | | | |-- setbuffer.3.html<BR>
| | | | |-- setenv.3.html<BR>
| | | | |-- setgrent.3.html<BR>
| | | | |-- sethostent.3.html<BR>
| | | | |-- setjmp.3.html<BR>
| | | | |-- setlinebuf.3.html<BR>
| | | | |-- setlocale.3.html<BR>
| | | | |-- setmntent.3.html<BR>
| | | | |-- setnetent.3.html<BR>
| | | | |-- setprotoent.3.html<BR>
| | | | |-- setpwent.3.html<BR>
| | | | |-- setservent.3.html<BR>
| | | | |-- setstate.3.html<BR>
| | | | |-- setusershell.3.html<BR>
| | | | |-- setutent.3.html<BR>
| | | | |-- setvbuf.3.html<BR>
| | | | |-- sigaddset.3.html<BR>
| | | | |-- sigdelset.3.html<BR>
| | | | |-- sigemptyset.3.html<BR>
| | | | |-- sigfillset.3.html<BR>
| | | | |-- siginterrupt.3.html<BR>
| | | | |-- sigismember.3.html<BR>
| | | | |-- sigsetops.3.html<BR>
| | | | |-- sin.3.html<BR>
| | | | |-- sinh.3.html<BR>
| | | | |-- sleep.3.html<BR>
| | | | |-- snprintf.3.html<BR>
| | | | |-- sprintf.3.html<BR>
| | | | |-- sqrt.3.html<BR>
| | | | |-- srand.3.html<BR>
| | | | |-- srand48.3.html<BR>
| | | | |-- srandom.3.html<BR>
| | | | |-- sscanf.3.html<BR>
| | | | |-- stdarg.3.html<BR>
| | | | |-- stdio.3.html<BR>
| | | | |-- stpcpy.3.html<BR>
| | | | |-- strcasecmp.3.html<BR>
| | | | |-- strcat.3.html<BR>
| | | | |-- strchr.3.html<BR>
| | | | |-- strcmp.3.html<BR>
| | | | |-- strcoll.3.html<BR>
| | | | |-- strcpy.3.html<BR>
| | | | |-- strcspn.3.html<BR>
| | | | |-- strdup.3.html<BR>
| | | | |-- strerror.3.html<BR>
| | | | |-- strfry.3.html<BR>
| | | | |-- strftime.3.html<BR>
| | | | |-- string.3.html<BR>
| | | | |-- strlen.3.html<BR>
| | | | |-- strncasecmp.3.html<BR>
| | | | |-- strncat.3.html<BR>
| | | | |-- strncmp.3.html<BR>
| | | | |-- strncpy.3.html<BR>
| | | | |-- strpbrk.3.html<BR>
| | | | |-- strptime.3.html<BR>
| | | | |-- strrchr.3.html<BR>
| | | | |-- strsep.3.html<BR>
| | | | |-- strsignal.3.html<BR>
| | | | |-- strspn.3.html<BR>
| | | | |-- strstr.3.html<BR>
| | | | |-- strtod.3.html<BR>
| | | | |-- strtok.3.html<BR>
| | | | |-- strtol.3.html<BR>
| | | | |-- strtoul.3.html<BR>
| | | | |-- strxfrm.3.html<BR>
| | | | |-- swab.3.html<BR>
| | | | |-- sysconf.3.html<BR>
| | | | |-- syslog.3.html<BR>
| | | | |-- system.3.html<BR>
| | | | |-- tan.3.html<BR>
| | | | |-- tanh.3.html<BR>
| | | | |-- tcdrain.3.html<BR>
| | | | |-- tcflow.3.html<BR>
| | | | |-- tcflush.3.html<BR>
| | | | |-- tcgetattr.3.html<BR>
| | | | |-- tcgetpgrp.3.html<BR>
| | | | |-- tcsendbreak.3.html<BR>
| | | | |-- tcsetattr.3.html<BR>
| | | | |-- tcsetpgrp.3.html<BR>
| | | | |-- tdelete.3.html<BR>
| | | | |-- telldir.3.html<BR>
| | | | |-- tempnam.3.html<BR>
| | | | |-- termios.3.html<BR>
| | | | |-- tfind.3.html<BR>
| | | | |-- tmpfile.3.html<BR>
| | | | |-- tmpnam.3.html<BR>
| | | | |-- toascii.3.html<BR>
| | | | |-- tolower.3.html<BR>
| | | | |-- toupper.3.html<BR>
| | | | |-- tsearch.3.html<BR>
| | | | |-- ttyname.3.html<BR>
| | | | |-- twalk.3.html<BR>
| | | | |-- tzset.3.html<BR>
| | | | |-- undocumented.3.html<BR>
| | | | |-- ungetc.3.html<BR>
| | | | |-- unsetenv.3.html<BR>
| | | | |-- usleep.3.html<BR>
| | | | |-- utmpname.3.html<BR>
| | | | |-- va_arg.3.html<BR>
| | | | |-- va_end.3.html<BR>
| | | | |-- va_start.3.html<BR>
| | | | |-- vfprintf.3.html<BR>
| | | | |-- vfscanf.3.html<BR>
| | | | |-- vprintf.3.html<BR>
| | | | |-- vscanf.3.html<BR>
| | | | |-- vsnprintf.3.html<BR>
| | | | |-- vsprintf.3.html<BR>
| | | | |-- vsscanf.3.html<BR>
| | | | |-- wcstombs.3.html<BR>
| | | | |-- wctomb.3.html<BR>
| | | | |-- writev.3.html<BR>
| | | | |-- y0.3.html<BR>
| | | | |-- y1.3.html<BR>
| | | | `-- yn.3.html<BR>
| | | |-- man4<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- charsets.4.html<BR>
| | | | |-- console.4.html<BR>
| | | | |-- console_codes.4.html<BR>
| | | | |-- fd.4.html<BR>
| | | | |-- hd.4.html<BR>
| | | | |-- index.html<BR>
| | | | |-- intro.4.html<BR>
| | | | |-- kmem.4.html<BR>
| | | | |-- lp.4.html<BR>
| | | | |-- mem.4.html<BR>
| | | | |-- mouse.4.html<BR>
| | | | |-- null.4.html<BR>
| | | | |-- port.4.html<BR>
| | | | |-- ram.4.html<BR>
| | | | |-- sd.4.html<BR>
| | | | |-- st.4.html<BR>
| | | | |-- tty.4.html<BR>
| | | | |-- ttys.4.html<BR>
| | | | |-- vcs.4.html<BR>
| | | | |-- vcsa.4.html<BR>
| | | | |-- wavelan.4.html<BR>
| | | | `-- zero.4.html<BR>
| | | |-- man5<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- environ.5.html<BR>
| | | | |-- exports.5.html<BR>
| | | | |-- fs.5.html<BR>
| | | | |-- fstab.5.html<BR>
| | | | |-- group.5.html<BR>
| | | | |-- index.html<BR>
| | | | |-- intro.5.html<BR>
| | | | |-- ipc.5.html<BR>
| | | | |-- issue.5.html<BR>
| | | | |-- lilo.conf.5.html<BR>
| | | | |-- motd.5.html<BR>
| | | | |-- nfs.5.html<BR>
| | | | |-- nologin.5.html<BR>
| | | | |-- passwd.5.html<BR>
| | | | |-- protocols.5.html<BR>
| | | | |-- securetty.5.html<BR>
| | | | |-- services.5.html<BR>
| | | | |-- shells.5.html<BR>
| | | | |-- ttytype.5.html<BR>
| | | | |-- utmp.5.html<BR>
| | | | `-- wtmp.5.html<BR>
| | | |-- man6<BR>
| | | | |-- *.html<BR>
| | | | |-- TRANS.TBL<BR>
| | | | `-- index.html<BR>
| | | |-- man7<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- ascii.7.html<BR>
| | | | |-- bootparam.7.html<BR>
| | | | |-- hier.7.html<BR>
| | | | |-- index.html<BR>
| | | | |-- intro.7.html<BR>
| | | | |-- iso_8859_1.7.html<BR>
| | | | |-- latin1.7.html<BR>
| | | | |-- locale.7.html<BR>
| | | | |-- mailaddr.7.html<BR>
| | | | |-- man.7.html<BR>
| | | | |-- signal.7.html<BR>
| | | | |-- suffixes.7.html<BR>
| | | | |-- unicode.7.html<BR>
| | | | `-- utf-8.7.html<BR>
| | | `-- man8<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- index.html<BR>
| | | |-- intro.8.html<BR>
| | | `-- lilo.8.html<BR>
| | |-- liste_section_1<BR>
| | |-- liste_section_2<BR>
| | |-- liste_section_3<BR>
| | |-- liste_section_4<BR>
| | |-- liste_section_5<BR>
| | |-- liste_section_7<BR>
| | |-- liste_section_8<BR>
| | |-- man-fr-0.3-Annonce<BR>
| | |-- man-fr03.tgz<BR>
| | |-- man1<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- basename.1<BR>
| | | |-- cat.1<BR>
| | | |-- chgrp.1<BR>
| | | |-- chmod.1<BR>
| | | |-- chown.1<BR>
| | | |-- cksum.1<BR>
| | | |-- comm.1<BR>
| | | |-- cp.1<BR>
| | | |-- csplit.1<BR>
| | | |-- cut.1<BR>
| | | |-- date.1<BR>
| | | |-- dd.1<BR>
| | | |-- dirname.1<BR>
| | | |-- du.1<BR>
| | | |-- echo.1<BR>
| | | |-- env.1<BR>
| | | |-- expand.1<BR>
| | | |-- expr.1<BR>
| | | |-- false.1<BR>
| | | |-- find.1<BR>
| | | |-- fmt.1<BR>
| | | |-- fold.1<BR>
| | | |-- free.1<BR>
| | | |-- grep.1<BR>
| | | |-- groups.1<BR>
| | | |-- head.1<BR>
| | | |-- id.1<BR>
| | | |-- join.1<BR>
| | | |-- logname.1<BR>
| | | |-- ls.1<BR>
| | | |-- md5sum.1<BR>
| | | |-- mkdir.1<BR>
| | | |-- mkfifo.1<BR>
| | | |-- mknod.1<BR>
| | | |-- mv.1<BR>
| | | |-- nice.1<BR>
| | | |-- nl.1<BR>
| | | |-- nohup.1<BR>
| | | |-- od.1<BR>
| | | |-- paste.1<BR>
| | | |-- pathchk.1<BR>
| | | |-- pr.1<BR>
| | | |-- printenv.1<BR>
| | | |-- printf.1<BR>
| | | |-- pwd.1<BR>
| | | |-- rm.1<BR>
| | | |-- rmdir.1<BR>
| | | |-- sleep.1<BR>
| | | |-- sort.1<BR>
| | | |-- split.1<BR>
| | | |-- stty.1<BR>
| | | |-- su.1<BR>
| | | |-- sum.1<BR>
| | | |-- tac.1<BR>
| | | |-- tail.1<BR>
| | | |-- tee.1<BR>
| | | |-- test.1<BR>
| | | |-- touch.1<BR>
| | | |-- tr.1<BR>
| | | |-- true.1<BR>
| | | |-- tty.1<BR>
| | | |-- uname.1<BR>
| | | |-- unexpand.1<BR>
| | | |-- uniq.1<BR>
| | | |-- users.1<BR>
| | | |-- wc.1<BR>
| | | |-- who.1<BR>
| | | |-- whoami.1<BR>
| | | `-- yes.1<BR>
| | |-- man2<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- _exit.2<BR>
| | | |-- accept.2<BR>
| | | |-- access.2<BR>
| | | |-- acct.2<BR>
| | | |-- adjtimex.2<BR>
| | | |-- afs_syscall.2<BR>
| | | |-- alarm.2<BR>
| | | |-- bdflush.2<BR>
| | | |-- bind.2<BR>
| | | |-- break.2<BR>
| | | |-- brk.2<BR>
| | | |-- cacheflush.2<BR>
| | | |-- chdir.2<BR>
| | | |-- chmod.2<BR>
| | | |-- chown.2<BR>
| | | |-- chroot.2<BR>
| | | |-- clone.2<BR>
| | | |-- close.2<BR>
| | | |-- connect.2<BR>
| | | |-- creat.2<BR>
| | | |-- create_module.2<BR>
| | | |-- delete_module.2<BR>
| | | |-- dup.2<BR>
| | | |-- dup2.2<BR>
| | | |-- execve.2<BR>
| | | |-- fchdir.2<BR>
| | | |-- fchmod.2<BR>
| | | |-- fchown.2<BR>
| | | |-- fcntl.2<BR>
| | | |-- fdatasync.2<BR>
| | | |-- flock.2<BR>
| | | |-- fork.2<BR>
| | | |-- fstat.2<BR>
| | | |-- fstatfs.2<BR>
| | | |-- fsync.2<BR>
| | | |-- ftruncate.2<BR>
| | | |-- get_kernel_syms.2<BR>
| | | |-- getdents.2<BR>
| | | |-- getdomainname.2<BR>
| | | |-- getdtablesize.2<BR>
| | | |-- getegid.2<BR>
| | | |-- geteuid.2<BR>
| | | |-- getgid.2<BR>
| | | |-- getgroups.2<BR>
| | | |-- gethostid.2<BR>
| | | |-- gethostname.2<BR>
| | | |-- getitimer.2<BR>
| | | |-- getpagesize.2<BR>
| | | |-- getpeername.2<BR>
| | | |-- getpgid.2<BR>
| | | |-- getpgrp.2<BR>
| | | |-- getpid.2<BR>
| | | |-- getppid.2<BR>
| | | |-- getpriority.2<BR>
| | | |-- getrlimit.2<BR>
| | | |-- getrusage.2<BR>
| | | |-- getsid.2<BR>
| | | |-- getsockname.2<BR>
| | | |-- getsockopt.2<BR>
| | | |-- gettimeofday.2<BR>
| | | |-- getuid.2<BR>
| | | |-- gtty.2<BR>
| | | |-- idle.2<BR>
| | | |-- init_module.2<BR>
| | | |-- intro.2<BR>
| | | |-- ioctl.2<BR>
| | | |-- ioctl_list.2<BR>
| | | |-- ioperm.2<BR>
| | | |-- iopl.2<BR>
| | | |-- ipc.2<BR>
| | | |-- kill.2<BR>
| | | |-- killpg.2<BR>
| | | |-- link.2<BR>
| | | |-- listen.2<BR>
| | | |-- llseek.2<BR>
| | | |-- lock.2<BR>
| | | |-- lseek.2<BR>
| | | |-- lstat.2<BR>
| | | |-- mkdir.2<BR>
| | | |-- mknod.2<BR>
| | | |-- mlock.2<BR>
| | | |-- mlockall.2<BR>
| | | |-- mmap.2<BR>
| | | |-- modify_ldt.2<BR>
| | | |-- modules.2<BR>
| | | |-- mount.2<BR>
| | | |-- mprotect.2<BR>
| | | |-- mpx.2<BR>
| | | |-- mremap.2<BR>
| | | |-- msgctl.2<BR>
| | | |-- msgget.2<BR>
| | | |-- msgop.2<BR>
| | | |-- msgrcv.2<BR>
| | | |-- msgsnd.2<BR>
| | | |-- msync.2<BR>
| | | |-- munlock.2<BR>
| | | |-- munlockall.2<BR>
| | | |-- munmap.2<BR>
| | | |-- nanosleep.2<BR>
| | | |-- nice.2<BR>
| | | |-- obsolete.2<BR>
| | | |-- oldfstat.2<BR>
| | | |-- oldlstat.2<BR>
| | | |-- oldolduname.2<BR>
| | | |-- oldstat.2<BR>
| | | |-- olduname.2<BR>
| | | |-- open.2<BR>
| | | |-- outb.2<BR>
| | | |-- pause.2<BR>
| | | |-- personality.2<BR>
| | | |-- phys.2<BR>
| | | |-- pipe.2<BR>
| | | |-- prof.2<BR>
| | | |-- profil.2<BR>
| | | |-- ptrace.2<BR>
| | | |-- quotactl.2<BR>
| | | |-- read.2<BR>
| | | |-- readdir.2<BR>
| | | |-- readlink.2<BR>
| | | |-- readv.2<BR>
| | | |-- reboot.2<BR>
| | | |-- recv.2<BR>
| | | |-- recvfrom.2<BR>
| | | |-- recvmsg.2<BR>
| | | |-- rename.2<BR>
| | | |-- rmdir.2<BR>
| | | |-- sbrk.2<BR>
| | | |-- sched_get_priority_max.2<BR>
| | | |-- sched_get_priority_min.2<BR>
| | | |-- sched_getparam.2<BR>
| | | |-- sched_getscheduler.2<BR>
| | | |-- sched_rr_get_interval.2<BR>
| | | |-- sched_setparam.2<BR>
| | | |-- sched_setscheduler.2<BR>
| | | |-- sched_yield.2<BR>
| | | |-- select.2<BR>
| | | |-- semctl.2<BR>
| | | |-- semget.2<BR>
| | | |-- semop.2<BR>
| | | |-- send.2<BR>
| | | |-- sendmsg.2<BR>
| | | |-- sendto.2<BR>
| | | |-- setdomainname.2<BR>
| | | |-- setegid.2<BR>
| | | |-- seteuid.2<BR>
| | | |-- setfsgid.2<BR>
| | | |-- setfsuid.2<BR>
| | | |-- setgid.2<BR>
| | | |-- setgroups.2<BR>
| | | |-- sethostid.2<BR>
| | | |-- sethostname.2<BR>
| | | |-- setitimer.2<BR>
| | | |-- setpgid.2<BR>
| | | |-- setpgrp.2<BR>
| | | |-- setpriority.2<BR>
| | | |-- setregid.2<BR>
| | | |-- setreuid.2<BR>
| | | |-- setrlimit.2<BR>
| | | |-- setsid.2<BR>
| | | |-- setsockopt.2<BR>
| | | |-- settimeofday.2<BR>
| | | |-- setuid.2<BR>
| | | |-- setup.2<BR>
| | | |-- shmat.2<BR>
| | | |-- shmctl.2<BR>
| | | |-- shmdt.2<BR>
| | | |-- shmget.2<BR>
| | | |-- shmop.2<BR>
| | | |-- shutdown.2<BR>
| | | |-- sigaction.2<BR>
| | | |-- sigblock.2<BR>
| | | |-- sigmask.2<BR>
| | | |-- signal.2<BR>
| | | |-- sigpause.2<BR>
| | | |-- sigpending.2<BR>
| | | |-- sigprocmask.2<BR>
| | | |-- sigreturn.2<BR>
| | | |-- sigsuspend.2<BR>
| | | |-- sigvec.2<BR>
| | | |-- socket.2<BR>
| | | |-- socketcall.2<BR>
| | | |-- socketpair.2<BR>
| | | |-- stat.2<BR>
| | | |-- statfs.2<BR>
| | | |-- stime.2<BR>
| | | |-- stty.2<BR>
| | | |-- swapoff.2<BR>
| | | |-- swapon.2<BR>
| | | |-- symlink.2<BR>
| | | |-- sync.2<BR>
| | | |-- sysctl.2<BR>
| | | |-- sysfs.2<BR>
| | | |-- sysinfo.2<BR>
| | | |-- syslog.2<BR>
| | | |-- time.2<BR>
| | | |-- times.2<BR>
| | | |-- truncate.2<BR>
| | | |-- umask.2<BR>
| | | |-- umount.2<BR>
| | | |-- uname.2<BR>
| | | |-- undocumented.2<BR>
| | | |-- unimplemented.2<BR>
| | | |-- unlink.2<BR>
| | | |-- uselib.2<BR>
| | | |-- ustat.2<BR>
| | | |-- utime.2<BR>
| | | |-- vfork.2<BR>
| | | |-- vhangup.2<BR>
| | | |-- vm86.2<BR>
| | | |-- wait.2<BR>
| | | |-- wait3.2<BR>
| | | |-- wait4.2<BR>
| | | |-- waitpid.2<BR>
| | | |-- write.2<BR>
| | | `-- writev.2<BR>
| | |-- man3<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- abort.3<BR>
| | | |-- abs.3<BR>
| | | |-- acos.3<BR>
| | | |-- acosh.3<BR>
| | | |-- addmntent.3<BR>
| | | |-- alloca.3<BR>
| | | |-- alphasort.3<BR>
| | | |-- asctime.3<BR>
| | | |-- asin.3<BR>
| | | |-- asinh.3<BR>
| | | |-- assert.3<BR>
| | | |-- atan.3<BR>
| | | |-- atan2.3<BR>
| | | |-- atanh.3<BR>
| | | |-- atexit.3<BR>
| | | |-- atof.3<BR>
| | | |-- atoi.3<BR>
| | | |-- atol.3<BR>
| | | |-- bcmp.3<BR>
| | | |-- bcopy.3<BR>
| | | |-- bsearch.3<BR>
| | | |-- bstring.3<BR>
| | | |-- byteorder.3<BR>
| | | |-- bzero.3<BR>
| | | |-- calloc.3<BR>
| | | |-- catclose.3<BR>
| | | |-- catgets.3<BR>
| | | |-- catopen.3<BR>
| | | |-- cbrt.3<BR>
| | | |-- ceil.3<BR>
| | | |-- cfgetispeed.3<BR>
| | | |-- cfgetospeed.3<BR>
| | | |-- cfmakeraw.3<BR>
| | | |-- cfsetispeed.3<BR>
| | | |-- cfsetospeed.3<BR>
| | | |-- clearerr.3<BR>
| | | |-- clock.3<BR>
| | | |-- closedir.3<BR>
| | | |-- closelog.3<BR>
| | | |-- confstr.3<BR>
| | | |-- copysign.3<BR>
| | | |-- cos.3<BR>
| | | |-- cosh.3<BR>
| | | |-- crypt.3<BR>
| | | |-- ctermid.3<BR>
| | | |-- ctime.3<BR>
| | | |-- cuserid.3<BR>
| | | |-- difftime.3<BR>
| | | |-- div.3<BR>
| | | |-- dn_comp.3<BR>
| | | |-- dn_expand.3<BR>
| | | |-- drand48.3<BR>
| | | |-- drem.3<BR>
| | | |-- ecvt.3<BR>
| | | |-- endgrent.3<BR>
| | | |-- endhostent.3<BR>
| | | |-- endmntent.3<BR>
| | | |-- endnetent.3<BR>
| | | |-- endprotoent.3<BR>
| | | |-- endpwent.3<BR>
| | | |-- endservent.3<BR>
| | | |-- endusershell.3<BR>
| | | |-- endutent.3<BR>
| | | |-- erand48.3<BR>
| | | |-- erf.3<BR>
| | | |-- erfc.3<BR>
| | | |-- errno.3<BR>
| | | |-- exec.3<BR>
| | | |-- execl.3<BR>
| | | |-- execle.3<BR>
| | | |-- execlp.3<BR>
| | | |-- exect.3<BR>
| | | |-- execv.3<BR>
| | | |-- execvp.3<BR>
| | | |-- exit.3<BR>
| | | |-- exp.3<BR>
| | | |-- expm1.3<BR>
| | | |-- fabs.3<BR>
| | | |-- fclose.3<BR>
| | | |-- fcvt.3<BR>
| | | |-- fdopen.3<BR>
| | | |-- feof.3<BR>
| | | |-- ferror.3<BR>
| | | |-- fflush.3<BR>
| | | |-- ffs.3<BR>
| | | |-- fgetc.3<BR>
| | | |-- fgetgrent.3<BR>
| | | |-- fgetpos.3<BR>
| | | |-- fgetpwent.3<BR>
| | | |-- fgets.3<BR>
| | | |-- fileno.3<BR>
| | | |-- finite.3<BR>
| | | |-- floor.3<BR>
| | | |-- fmod.3<BR>
| | | |-- fnmatch.3<BR>
| | | |-- fopen.3<BR>
| | | |-- fpathconf.3<BR>
| | | |-- fprintf.3<BR>
| | | |-- fpurge.3<BR>
| | | |-- fputc.3<BR>
| | | |-- fputs.3<BR>
| | | |-- fread.3<BR>
| | | |-- free.3<BR>
| | | |-- freopen.3<BR>
| | | |-- frexp.3<BR>
| | | |-- fscanf.3<BR>
| | | |-- fseek.3<BR>
| | | |-- fsetpos.3<BR>
| | | |-- ftell.3<BR>
| | | |-- ftime.3<BR>
| | | |-- ftok.3<BR>
| | | |-- ftw.3<BR>
| | | |-- fwrite.3<BR>
| | | |-- gcvt.3<BR>
| | | |-- get_current_dir_name.3<BR>
| | | |-- getc.3<BR>
| | | |-- getchar.3<BR>
| | | |-- getcwd.3<BR>
| | | |-- getdirentries.3<BR>
| | | |-- getenv.3<BR>
| | | |-- getgrent.3<BR>
| | | |-- getgrgid.3<BR>
| | | |-- getgrnam.3<BR>
| | | |-- gethostbyaddr.3<BR>
| | | |-- gethostbyname.3<BR>
| | | |-- getlogin.3<BR>
| | | |-- getmntent.3<BR>
| | | |-- getnetbyaddr.3<BR>
| | | |-- getnetbyname.3<BR>
| | | |-- getnetent.3<BR>
| | | |-- getopt.3<BR>
| | | |-- getopt_long.3<BR>
| | | |-- getopt_long_only.3<BR>
| | | |-- getpass.3<BR>
| | | |-- getprotobyname.3<BR>
| | | |-- getprotobynumber.3<BR>
| | | |-- getprotoent.3<BR>
| | | |-- getpw.3<BR>
| | | |-- getpwent.3<BR>
| | | |-- getpwnam.3<BR>
| | | |-- getpwuid.3<BR>
| | | |-- gets.3<BR>
| | | |-- getservbyname.3<BR>
| | | |-- getservbyport.3<BR>
| | | |-- getservent.3<BR>
| | | |-- getusershell.3<BR>
| | | |-- getutent.3<BR>
| | | |-- getutid.3<BR>
| | | |-- getutline.3<BR>
| | | |-- getw.3<BR>
| | | |-- getwd.3<BR>
| | | |-- glob.3<BR>
| | | |-- globfree.3<BR>
| | | |-- gmtime.3<BR>
| | | |-- hasmntopt.3<BR>
| | | |-- hcreate.3<BR>
| | | |-- hdestroy.3<BR>
| | | |-- herror.3<BR>
| | | |-- hsearch.3<BR>
| | | |-- htonl.3<BR>
| | | |-- htons.3<BR>
| | | |-- hypot.3<BR>
| | | |-- index.3<BR>
| | | |-- inet.3<BR>
| | | |-- inet_addr.3<BR>
| | | |-- inet_aton.3<BR>
| | | |-- inet_lnaof.3<BR>
| | | |-- inet_makeaddr.3<BR>
| | | |-- inet_netof.3<BR>
| | | |-- inet_network.3<BR>
| | | |-- inet_ntoa.3<BR>
| | | |-- infnan.3<BR>
| | | |-- initgroups.3<BR>
| | | |-- initstate.3<BR>
| | | |-- insque.3<BR>
| | | |-- intro.3<BR>
| | | |-- isalnum.3<BR>
| | | |-- isalpha.3<BR>
| | | |-- isascii.3<BR>
| | | |-- isatty.3<BR>
| | | |-- isblank.3<BR>
| | | |-- iscntrl.3<BR>
| | | |-- isdigit.3<BR>
| | | |-- isgraph.3<BR>
| | | |-- isinf.3<BR>
| | | |-- islower.3<BR>
| | | |-- isnan.3<BR>
| | | |-- isprint.3<BR>
| | | |-- ispunct.3<BR>
| | | |-- isspace.3<BR>
| | | |-- isupper.3<BR>
| | | |-- isxdigit.3<BR>
| | | |-- j0.3<BR>
| | | |-- j1.3<BR>
| | | |-- jn.3<BR>
| | | |-- jrand48.3<BR>
| | | |-- killpg.3<BR>
| | | |-- labs.3<BR>
| | | |-- lcong48.3<BR>
| | | |-- ldexp.3<BR>
| | | |-- ldiv.3<BR>
| | | |-- lfind.3<BR>
| | | |-- lgamma.3<BR>
| | | |-- localeconv.3<BR>
| | | |-- localtime.3<BR>
| | | |-- log.3<BR>
| | | |-- log10.3<BR>
| | | |-- log1p.3<BR>
| | | |-- longjmp.3<BR>
| | | |-- lrand48.3<BR>
| | | |-- lsearch.3<BR>
| | | |-- malloc.3<BR>
| | | |-- mblen.3<BR>
| | | |-- mbstowcs.3<BR>
| | | |-- mbtowc.3<BR>
| | | |-- memccpy.3<BR>
| | | |-- memchr.3<BR>
| | | |-- memcmp.3<BR>
| | | |-- memcpy.3<BR>
| | | |-- memfrob.3<BR>
| | | |-- memmem.3<BR>
| | | |-- memmove.3<BR>
| | | |-- memset.3<BR>
| | | |-- mkfifo.3<BR>
| | | |-- mkstemp.3<BR>
| | | |-- mktemp.3<BR>
| | | |-- mktime.3<BR>
| | | |-- modf.3<BR>
| | | |-- mrand48.3<BR>
| | | |-- nrand48.3<BR>
| | | |-- ntohl.3<BR>
| | | |-- ntohs.3<BR>
| | | |-- on_exit.3<BR>
| | | |-- opendir.3<BR>
| | | |-- openlog.3<BR>
| | | |-- pathconf.3<BR>
| | | |-- pclose.3<BR>
| | | |-- perror.3<BR>
| | | |-- popen.3<BR>
| | | |-- pow.3<BR>
| | | |-- printf.3<BR>
| | | |-- psignal.3<BR>
| | | |-- putc.3<BR>
| | | |-- putchar.3<BR>
| | | |-- putenv.3<BR>
| | | |-- putpwent.3<BR>
| | | |-- puts.3<BR>
| | | |-- pututline.3<BR>
| | | |-- putw.3<BR>
| | | |-- qsort.3<BR>
| | | |-- raise.3<BR>
| | | |-- rand.3<BR>
| | | |-- random.3<BR>
| | | |-- re_comp.3<BR>
| | | |-- re_exec.3<BR>
| | | |-- readdir.3<BR>
| | | |-- readv.3<BR>
| | | |-- realloc.3<BR>
| | | |-- realpath.3<BR>
| | | |-- regcomp.3<BR>
| | | |-- regerror.3<BR>
| | | |-- regexec.3<BR>
| | | |-- regfree.3<BR>
| | | |-- remove.3<BR>
| | | |-- remque.3<BR>
| | | |-- res_init.3<BR>
| | | |-- res_mkquery.3<BR>
| | | |-- res_query.3<BR>
| | | |-- res_querydomain.3<BR>
| | | |-- res_search.3<BR>
| | | |-- res_send.3<BR>
| | | |-- resolver.3<BR>
| | | |-- rewind.3<BR>
| | | |-- rewinddir.3<BR>
| | | |-- rindex.3<BR>
| | | |-- rint.3<BR>
| | | |-- scandir.3<BR>
| | | |-- scanf.3<BR>
| | | |-- seed48.3<BR>
| | | |-- seekdir.3<BR>
| | | |-- setbuf.3<BR>
| | | |-- setbuffer.3<BR>
| | | |-- setenv.3<BR>
| | | |-- setgrent.3<BR>
| | | |-- sethostent.3<BR>
| | | |-- setjmp.3<BR>
| | | |-- setlinebuf.3<BR>
| | | |-- setlocale.3<BR>
| | | |-- setmntent.3<BR>
| | | |-- setnetent.3<BR>
| | | |-- setprotoent.3<BR>
| | | |-- setpwent.3<BR>
| | | |-- setservent.3<BR>
| | | |-- setstate.3<BR>
| | | |-- setusershell.3<BR>
| | | |-- setutent.3<BR>
| | | |-- setvbuf.3<BR>
| | | |-- sigaddset.3<BR>
| | | |-- sigdelset.3<BR>
| | | |-- sigemptyset.3<BR>
| | | |-- sigfillset.3<BR>
| | | |-- siginterrupt.3<BR>
| | | |-- sigismember.3<BR>
| | | |-- sigsetops.3<BR>
| | | |-- sin.3<BR>
| | | |-- sinh.3<BR>
| | | |-- sleep.3<BR>
| | | |-- snprintf.3<BR>
| | | |-- sprintf.3<BR>
| | | |-- sqrt.3<BR>
| | | |-- srand.3<BR>
| | | |-- srand48.3<BR>
| | | |-- srandom.3<BR>
| | | |-- sscanf.3<BR>
| | | |-- stdarg.3<BR>
| | | |-- stdio.3<BR>
| | | |-- stpcpy.3<BR>
| | | |-- strcasecmp.3<BR>
| | | |-- strcat.3<BR>
| | | |-- strchr.3<BR>
| | | |-- strcmp.3<BR>
| | | |-- strcoll.3<BR>
| | | |-- strcpy.3<BR>
| | | |-- strcspn.3<BR>
| | | |-- strdup.3<BR>
| | | |-- strerror.3<BR>
| | | |-- strfry.3<BR>
| | | |-- strftime.3<BR>
| | | |-- string.3<BR>
| | | |-- strlen.3<BR>
| | | |-- strncasecmp.3<BR>
| | | |-- strncat.3<BR>
| | | |-- strncmp.3<BR>
| | | |-- strncpy.3<BR>
| | | |-- strpbrk.3<BR>
| | | |-- strptime.3<BR>
| | | |-- strrchr.3<BR>
| | | |-- strsep.3<BR>
| | | |-- strsignal.3<BR>
| | | |-- strspn.3<BR>
| | | |-- strstr.3<BR>
| | | |-- strtod.3<BR>
| | | |-- strtok.3<BR>
| | | |-- strtol.3<BR>
| | | |-- strtoul.3<BR>
| | | |-- strxfrm.3<BR>
| | | |-- swab.3<BR>
| | | |-- sysconf.3<BR>
| | | |-- syslog.3<BR>
| | | |-- system.3<BR>
| | | |-- tan.3<BR>
| | | |-- tanh.3<BR>
| | | |-- tcdrain.3<BR>
| | | |-- tcflow.3<BR>
| | | |-- tcflush.3<BR>
| | | |-- tcgetattr.3<BR>
| | | |-- tcgetpgrp.3<BR>
| | | |-- tcsendbreak.3<BR>
| | | |-- tcsetattr.3<BR>
| | | |-- tcsetpgrp.3<BR>
| | | |-- tdelete.3<BR>
| | | |-- telldir.3<BR>
| | | |-- tempnam.3<BR>
| | | |-- termios.3<BR>
| | | |-- tfind.3<BR>
| | | |-- tmpfile.3<BR>
| | | |-- tmpnam.3<BR>
| | | |-- toascii.3<BR>
| | | |-- tolower.3<BR>
| | | |-- toupper.3<BR>
| | | |-- tsearch.3<BR>
| | | |-- ttyname.3<BR>
| | | |-- twalk.3<BR>
| | | |-- tzset.3<BR>
| | | |-- undocumented.3<BR>
| | | |-- ungetc.3<BR>
| | | |-- unsetenv.3<BR>
| | | |-- usleep.3<BR>
| | | |-- utmpname.3<BR>
| | | |-- va_arg.3<BR>
| | | |-- va_end.3<BR>
| | | |-- va_start.3<BR>
| | | |-- vfprintf.3<BR>
| | | |-- vfscanf.3<BR>
| | | |-- vprintf.3<BR>
| | | |-- vscanf.3<BR>
| | | |-- vsnprintf.3<BR>
| | | |-- vsprintf.3<BR>
| | | |-- vsscanf.3<BR>
| | | |-- wcstombs.3<BR>
| | | |-- wctomb.3<BR>
| | | |-- writev.3<BR>
| | | |-- y0.3<BR>
| | | |-- y1.3<BR>
| | | `-- yn.3<BR>
| | |-- man4<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- charsets.4<BR>
| | | |-- console.4<BR>
| | | |-- console_codes.4<BR>
| | | |-- fd.4<BR>
| | | |-- hd.4<BR>
| | | |-- intro.4<BR>
| | | |-- kmem.4<BR>
| | | |-- lp.4<BR>
| | | |-- mem.4<BR>
| | | |-- mouse.4<BR>
| | | |-- null.4<BR>
| | | |-- port.4<BR>
| | | |-- ram.4<BR>
| | | |-- sd.4<BR>
| | | |-- st.4<BR>
| | | |-- tty.4<BR>
| | | |-- ttys.4<BR>
| | | |-- vcs.4<BR>
| | | |-- vcsa.4<BR>
| | | |-- wavelan.4<BR>
| | | `-- zero.4<BR>
| | |-- man5<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- environ.5<BR>
| | | |-- exports.5<BR>
| | | |-- fs.5<BR>
| | | |-- fstab.5<BR>
| | | |-- group.5<BR>
| | | |-- intro.5<BR>
| | | |-- ipc.5<BR>
| | | |-- issue.5<BR>
| | | |-- lilo.conf.5<BR>
| | | |-- motd.5<BR>
| | | |-- nfs.5<BR>
| | | |-- nologin.5<BR>
| | | |-- passwd.5<BR>
| | | |-- protocols.5<BR>
| | | |-- securetty.5<BR>
| | | |-- services.5<BR>
| | | |-- shells.5<BR>
| | | |-- ttytype.5<BR>
| | | |-- utmp.5<BR>
| | | `-- wtmp.5<BR>
| | |-- man7<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- ascii.7<BR>
| | | |-- bootparam.7<BR>
| | | |-- hier.7<BR>
| | | |-- intro.7<BR>
| | | |-- iso_8859_1.7<BR>
| | | |-- latin1.7<BR>
| | | |-- locale.7<BR>
| | | |-- mailaddr.7<BR>
| | | |-- man.7<BR>
| | | |-- signal.7<BR>
| | | |-- suffixes.7<BR>
| | | |-- unicode.7<BR>
| | | `-- utf-8.7<BR>
| | `-- man8<BR>
| | |-- TRANS.TBL<BR>
| | |-- intro.8<BR>
| | `-- lilo.8<BR>
| |-- PDF-UTILS<BR>
| | |-- TRANS.TBL<BR>
| | |-- acroread.311<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- acroread.exe<BR>
| | | |-- acroread.txt<BR>
| | | `-- install.txt<BR>
| | |-- xpdf-0.6-linux2.0-elf<BR>
| | | |-- CHANGES<BR>
| | | |-- README<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- pdftops<BR>
| | | |-- pdftops.1<BR>
| | | |-- xpdf<BR>
| | | `-- xpdf.1<BR>
| | `-- xpdf-0.6-sources<BR>
| | |-- ANNOUNCE<BR>
| | |-- CHANGES<BR>
| | |-- Makefile<BR>
| | |-- Makefile.config<BR>
| | |-- README<BR>
| | |-- TRANS.TBL<BR>
| | |-- goo<BR>
| | | |-- GString.cc<BR>
| | | |-- GString.h<BR>
| | | |-- Makefile<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- cover.c<BR>
| | | |-- cover.h<BR>
| | | |-- fileNames.cc<BR>
| | | |-- fileNames.h<BR>
| | | |-- gmem.c<BR>
| | | |-- gmem.h<BR>
| | | |-- gmempp.cc<BR>
| | | |-- gtypes.h<BR>
| | | |-- parseargs.c<BR>
| | | |-- parseargs.h<BR>
| | | |-- vmscomp.com<BR>
| | | `-- vmsdecccomp.com<BR>
| | |-- ltk<BR>
| | | |-- LTKAll.h<BR>
| | | |-- LTKApp.cc<BR>
| | | |-- LTKApp.h<BR>
| | | |-- LTKBorder.cc<BR>
| | | |-- LTKBorder.h<BR>
| | | |-- LTKBox.cc<BR>
| | | |-- LTKBox.h<BR>
| | | |-- LTKButton.cc<BR>
| | | |-- LTKButton.h<BR>
| | | |-- LTKCanvas.cc<BR>
| | | |-- LTKCanvas.h<BR>
| | | |-- LTKConfig.h<BR>
| | | |-- LTKDblBufCanvas.cc<BR>
| | | |-- LTKDblBufCanvas.h<BR>
| | | |-- LTKEmpty.cc<BR>
| | | |-- LTKEmpty.h<BR>
| | | |-- LTKLabel.cc<BR>
| | | |-- LTKLabel.h<BR>
| | | |-- LTKMisc.cc<BR>
| | | |-- LTKMisc.h<BR>
| | | |-- LTKResources.cc<BR>
| | | |-- LTKResources.h<BR>
| | | |-- LTKScrollbar.cc<BR>
| | | |-- LTKScrollbar.h<BR>
| | | |-- LTKScrollingCanvas.cc<BR>
| | | |-- LTKScrollingCanvas.h<BR>
| | | |-- LTKTextIn.cc<BR>
| | | |-- LTKTextIn.h<BR>
| | | |-- LTKWidget.cc<BR>
| | | |-- LTKWidget.h<BR>
| | | |-- LTKWindow.cc<BR>
| | | |-- LTKWindow.h<BR>
| | | |-- Makefile<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- ltkbuild-widgets.h<BR>
| | | |-- ltkbuild.cc<BR>
| | | |-- vmscomp.com<BR>
| | | `-- vmsdecccomp.com<BR>
| | |-- pdftops.1<BR>
| | |-- pdftops.hlp<BR>
| | |-- vmscomp.com<BR>
| | |-- vmsdecccomp.com<BR>
| | |-- xpdf<BR>
| | | |-- Array.cc<BR>
| | | |-- Array.h<BR>
| | | |-- Catalog.cc<BR>
| | | |-- Catalog.h<BR>
| | | |-- Dict.cc<BR>
| | | |-- Dict.h<BR>
| | | |-- Error.cc<BR>
| | | |-- Error.h<BR>
| | | |-- FontInfo.h<BR>
| | | |-- Gfx.cc<BR>
| | | |-- Gfx.h<BR>
| | | |-- GfxFont.cc<BR>
| | | |-- GfxFont.h<BR>
| | | |-- GfxState.cc<BR>
| | | |-- GfxState.h<BR>
| | | |-- Lexer.cc<BR>
| | | |-- Lexer.h<BR>
| | | |-- Link.cc<BR>
| | | |-- Link.h<BR>
| | | |-- Makefile<BR>
| | | |-- Object.cc<BR>
| | | |-- Object.h<BR>
| | | |-- OutputDev.cc<BR>
| | | |-- OutputDev.h<BR>
| | | |-- PDFDoc.cc<BR>
| | | |-- PDFDoc.h<BR>
| | | |-- PSOutputDev.cc<BR>
| | | |-- PSOutputDev.h<BR>
| | | |-- Page.cc<BR>
| | | |-- Page.h<BR>
| | | |-- Params.cc<BR>
| | | |-- Params.h<BR>
| | | |-- Parser.cc<BR>
| | | |-- Parser.h<BR>
| | | |-- Stream-CCITT.h<BR>
| | | |-- Stream.cc<BR>
| | | |-- Stream.h<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- XOutputDev.cc<BR>
| | | |-- XOutputDev.h<BR>
| | | |-- XOutputFontInfo.h<BR>
| | | |-- XRef.cc<BR>
| | | |-- XRef.h<BR>
| | | |-- about.xbm<BR>
| | | |-- config.h<BR>
| | | |-- dblLeftArrow.xbm<BR>
| | | |-- dblRightArrow.xbm<BR>
| | | |-- leftArrow.xbm<BR>
| | | |-- pdftops.cc<BR>
| | | |-- postscript.xbm<BR>
| | | |-- rightArrow.xbm<BR>
| | | |-- rotateCCW.xbm<BR>
| | | |-- rotateCW.xbm<BR>
| | | |-- vms_unlink.c<BR>
| | | |-- vmscomp.com<BR>
| | | |-- vmsdecccomp.com<BR>
| | | |-- xpdf-ltk.h<BR>
| | | |-- xpdf.cc<BR>
| | | |-- xpdf.ltk<BR>
| | | |-- zoomIn.xbm<BR>
| | | `-- zoomOut.xbm<BR>
| | |-- xpdf.1<BR>
| | `-- xpdf.hlp<BR>
| |-- PPP<BR>
| | |-- TRANS.TBL<BR>
| | |-- intmodem.txt<BR>
| | |-- ppp.htm<BR>
| | |-- rouge.gif<BR>
| | `-- tkppp.gif<BR>
| |-- TEX<BR>
| | |-- TRANS.TBL<BR>
| | `-- tex-book.pdf<BR>
| |-- TRANS.TBL<BR>
| |-- VI<BR>
| | |-- TRANS.TBL<BR>
| | `-- memovif.pdf<BR>
| `-- bds222<BR>
| |-- TRANS.TBL<BR>
| |-- bds222.tgz<BR>
| |-- bds_dvi.gz<BR>
| |-- bdsps.gz<BR>
| |-- html<BR>
| | |-- TRANS.TBL<BR>
| | |-- footnode.html<BR>
| | |-- gs.html<BR>
| | |-- img1.gif<BR>
| | |-- img10.gif<BR>
| | |-- img100.gif<BR>
| | |-- img101.gif<BR>
| | |-- img102.gif<BR>
| | |-- img103.gif<BR>
| | |-- img104.gif<BR>
| | |-- img105.gif<BR>
| | |-- img106.gif<BR>
| | |-- img107.gif<BR>
| | |-- img108.gif<BR>
| | |-- img109.gif<BR>
| | |-- img11.gif<BR>
| | |-- img110.gif<BR>
| | |-- img111.gif<BR>
| | |-- img112.gif<BR>
| | |-- img113.gif<BR>
| | |-- img114.gif<BR>
| | |-- img115.gif<BR>
| | |-- img116.gif<BR>
| | |-- img117.gif<BR>
| | |-- img118.gif<BR>
| | |-- img119.gif<BR>
| | |-- img12.gif<BR>
| | |-- img120.gif<BR>
| | |-- img121.gif<BR>
| | |-- img122.gif<BR>
| | |-- img123.gif<BR>
| | |-- img124.gif<BR>
| | |-- img125.gif<BR>
| | |-- img126.gif<BR>
| | |-- img127.gif<BR>
| | |-- img128.gif<BR>
| | |-- img129.gif<BR>
| | |-- img13.gif<BR>
| | |-- img130.gif<BR>
| | |-- img131.gif<BR>
| | |-- img132.gif<BR>
| | |-- img133.gif<BR>
| | |-- img134.gif<BR>
| | |-- img135.gif<BR>
| | |-- img136.gif<BR>
| | |-- img137.gif<BR>
| | |-- img138.gif<BR>
| | |-- img139.gif<BR>
| | |-- img14.gif<BR>
| | |-- img140.gif<BR>
| | |-- img141.gif<BR>
| | |-- img142.gif<BR>
| | |-- img143.gif<BR>
| | |-- img144.gif<BR>
| | |-- img145.gif<BR>
| | |-- img146.gif<BR>
| | |-- img147.gif<BR>
| | |-- img148.gif<BR>
| | |-- img149.gif<BR>
| | |-- img15.gif<BR>
| | |-- img150.gif<BR>
| | |-- img151.gif<BR>
| | |-- img152.gif<BR>
| | |-- img153.gif<BR>
| | |-- img154.gif<BR>
| | |-- img155.gif<BR>
| | |-- img156.gif<BR>
| | |-- img157.gif<BR>
| | |-- img158.gif<BR>
| | |-- img159.gif<BR>
| | |-- img16.gif<BR>
| | |-- img160.gif<BR>
| | |-- img161.gif<BR>
| | |-- img162.gif<BR>
| | |-- img163.gif<BR>
| | |-- img164.gif<BR>
| | |-- img165.gif<BR>
| | |-- img166.gif<BR>
| | |-- img167.gif<BR>
| | |-- img168.gif<BR>
| | |-- img169.gif<BR>
| | |-- img17.gif<BR>
| | |-- img170.gif<BR>
| | |-- img171.gif<BR>
| | |-- img172.gif<BR>
| | |-- img173.gif<BR>
| | |-- img174.gif<BR>
| | |-- img175.gif<BR>
| | |-- img176.gif<BR>
|=20 | |-- img177.gif<BR>
| | |-- img178.gif<BR>
| | |-- img179.gif<BR>
| | |-- img18.gif<BR>
| | |-- img180.gif<BR>
| | |-- img181.gif<BR>
| | |-- img182.gif<BR>
| | |-- img183.gif<BR>
| | |-- img184.gif<BR>
| | |-- img185.gif<BR>
| | |-- img186.gif<BR>
| | |-- img187.gif<BR>
| | |-- img188.gif<BR>
| | |-- img189.gif<BR>
| | |-- img19.gif<BR>
| | |-- img190.gif<BR>
| | |-- img191.gif<BR>
| | |-- img192.gif<BR>
| | |-- img193.gif<BR>
| | |-- img194.gif<BR>
| | |-- img195.gif<BR>
| | |-- img196.gif<BR>
| | |-- img197.gif<BR>
| | |-- img198.gif<BR>
| | |-- img199.gif<BR>
| | |-- img2.gif<BR>
| | |-- img20.gif<BR>
| | |-- img200.gif<BR>
| | |-- img201.gif<BR>
| | |-- img202.gif<BR>
| | |-- img203.gif<BR>
| | |-- img204.gif<BR>
| | |-- img205.gif<BR>
| | |-- img206.gif<BR>
| | |-- img207.gif<BR>
| | |-- img208.gif<BR>
| | |-- img209.gif<BR>
| | |-- img21.gif<BR>
| | |-- img210.gif<BR>
| | |-- img211.gif<BR>
| | |-- img212.gif<BR>
| | |-- img213.gif<BR>
| | |-- img214.gif<BR>
| | |-- img215.gif<BR>
| | |-- img216.gif<BR>
| | |-- img217.gif<BR>
| | |-- img218.gif<BR>
| | |-- img219.gif<BR>
| | |-- img22.gif<BR>
| | |-- img220.gif<BR>
| | |-- img221.gif<BR>
| | |-- img222.gif<BR>
| | |-- img223.gif<BR>
| | |-- img224.gif<BR>
| | |-- img225.gif<BR>
| | |-- img226.gif<BR>
| | |-- img227.gif<BR>
| | |-- img228.gif<BR>
| | |-- img229.gif<BR>
| | |-- img23.gif<BR>
| | |-- img230.gif<BR>
| | |-- img231.gif<BR>
| | |-- img232.gif<BR>
| | |-- img233.gif<BR>
| | |-- img234.gif<BR>
| | |-- img235.gif<BR>
| | |-- img236.gif<BR>
| | |-- img237.gif<BR>
| | |-- img238.gif<BR>
| | |-- img239.gif<BR>
| | |-- img24.gif<BR>
| | |-- img240.gif<BR>
| | |-- img241.gif<BR>
| | |-- img242.gif<BR>
| | |-- img243.gif<BR>
| | |-- img244.gif<BR>
| | |-- img245.gif<BR>
| | |-- img246.gif<BR>
| | |-- img247.gif<BR>
| | |-- img248.gif<BR>
| | |-- img249.gif<BR>
| | |-- img25.gif<BR>
| | |-- img250.gif<BR>
| | |-- img251.gif<BR>
| | |-- img252.gif<BR>
| | |-- img253.gif<BR>
| | |-- img254.gif<BR>
| | |-- img255.gif<BR>
| | |-- img256.gif<BR>
| | |-- img257.gif<BR>
| | |-- img258.gif<BR>
| | |-- img259.gif<BR>
| | |-- img26.gif<BR>
| | |-- img260.gif<BR>
| | |-- img261.gif<BR>
| | |-- img262.gif<BR>
| | |-- img263.gif<BR>
| | |-- img264.gif<BR>
| | |-- img265.gif<BR>
| | |-- img266.gif<BR>
| | |-- img267.gif<BR>
| | |-- img268.gif<BR>
| | |-- img269.gif<BR>
| | |-- img27.gif<BR>
| | |-- img270.gif<BR>
| | |-- img271.gif<BR>
| | |-- img272.gif<BR>
| | |-- img273.gif<BR>
| | |-- img274.gif<BR>
| | |-- img275.gif<BR>
| | |-- img276.gif<BR>
| | |-- img277.gif<BR>
| | |-- img278.gif<BR>
| | |-- img279.gif<BR>
| | |-- img28.gif<BR>
| | |-- img280.gif<BR>
| | |-- img281.gif<BR>
| | |-- img282.gif<BR>
| | |-- img283.gif<BR>
| | |-- img284.gif<BR>
| | |-- img285.gif<BR>
| | |-- img286.gif<BR>
| | |-- img287.gif<BR>
| | |-- img288.gif<BR>
| | |-- img289.gif<BR>
| | |-- img29.gif<BR>
| | |-- img290.gif<BR>
| | |-- img291.gif<BR>
| | |-- img292.gif<BR>
| | |-- img293.gif<BR>
| | |-- img294.gif<BR>
| | |-- img295.gif<BR>
| | |-- img296.gif<BR>
| | |-- img297.gif<BR>
| | |-- img298.gif<BR>
| | |-- img299.gif<BR>
| | |-- img3.gif<BR>
| | |-- img30.gif<BR>
| | |-- img300.gif<BR>
| | |-- img301.gif<BR>
| | |-- img302.gif<BR>
| | |-- img303.gif<BR>
| | |-- img304.gif<BR>
| | |-- img305.gif<BR>
| | |-- img306.gif<BR>
| | |-- img307.gif<BR>
| | |-- img308.gif<BR>
| | |-- img309.gif<BR>
| | |-- img31.gif<BR>
| | |-- img310.gif<BR>
| | |-- img311.gif<BR>
| | |-- img312.gif<BR>
| | |-- img313.gif<BR>
| | |-- img314.gif<BR>
| | |-- img315.gif<BR>
| | |-- img316.gif<BR>
| | |-- img317.gif<BR>
| | |-- img318.gif<BR>
| | |-- img319.gif<BR>
| | |-- img32.gif<BR>
| | |-- img320.gif<BR>
| | |-- img321.gif<BR>
| | |-- img322.gif<BR>
| | |-- img323.gif<BR>
| | |-- img324.gif<BR>
| | |-- img325.gif<BR>
| | |-- img33.gif<BR>
| | |-- img34.gif<BR>
| | |-- img35.gif<BR>
| | |-- img36.gif<BR>
| | |-- img37.gif<BR>
| | |-- img38.gif<BR>
| | |-- img39.gif<BR>
| | |-- img4.gif<BR>
| | |-- img40.gif<BR>
| | |-- img41.gif<BR>
| | |-- img42.gif<BR>
| | |-- img43.gif<BR>
| | |-- img44.gif<BR>
| | |-- img45.gif<BR>
| | |-- img46.gif<BR>
| | |-- img47.gif<BR>
| | |-- img48.gif<BR>
| | |-- img49.gif<BR>
| | |-- img5.gif<BR>
| | |-- img50.gif<BR>
| | |-- img51.gif<BR>
| | |-- img52.gif<BR>
| | |-- img53.gif<BR>
| | |-- img54.gif<BR>
| | |-- img55.gif<BR>
| | |-- img56.gif<BR>
| | |-- img57.gif<BR>
| | |-- img58.gif<BR>
| | |-- img59.gif<BR>
| | |-- img6.gif<BR>
| | |-- img60.gif<BR>
| | |-- img61.gif<BR>
| | |-- img62.gif<BR>
| | |-- img63.gif<BR>
| | |-- img64.gif<BR>
| | |-- img65.gif<BR>
| | |-- img66.gif<BR>
| | |-- img67.gif<BR>
| | |-- img68.gif<BR>
| | |-- img69.gif<BR>
| | |-- img7.gif<BR>
| | |-- img70.gif<BR>
| | |-- img71.gif<BR>
| | |-- img72.gif<BR>
| | |-- img73.gif<BR>
| | |-- img74.gif<BR>
| | |-- img75.gif<BR>
| | |-- img76.gif<BR>
| | |-- img77.gif<BR>
| | |-- img78.gif<BR>
| | |-- img79.gif<BR>
| | |-- img8.gif<BR>
| | |-- img80.gif<BR>
| | |-- img81.gif<BR>
| | |-- img82.gif<BR>
| | |-- img83.gif<BR>
| | |-- img84.gif<BR>
| | |-- img85.gif<BR>
| | |-- img86.gif<BR>
| | |-- img87.gif<BR>
| | |-- img88.gif<BR>
| | |-- img89.gif<BR>
| | |-- img9.gif<BR>
| | |-- img90.gif<BR>
| | |-- img91.gif<BR>
| | |-- img92.gif<BR>
| | |-- img93.gif<BR>
| | |-- img94.gif<BR>
| | |-- img95.gif<BR>
| | |-- img96.gif<BR>
| | |-- img97.gif<BR>
| | |-- img98.gif<BR>
| | |-- img99.gif<BR>
| | |-- node1.html<BR>
| | |-- node10.html<BR>
| | |-- node100.html<BR>
| | |-- node101.html<BR>
| | |-- node102.html<BR>
| | |-- node103.html<BR>
| | |-- node104.html<BR>
| | |-- node105.html<BR>
| | |-- node106.html<BR>
| | |-- node107.html<BR>
| | |-- node108.html<BR>
| | |-- node109.html<BR>
| | |-- node11.html<BR>
| | |-- node110.html<BR>
| | |-- node111.html<BR>
| | |-- node112.html<BR>
| | |-- node113.html<BR>
| | |-- node114.html<BR>
| | |-- node115.html<BR>
| | |-- node116.html<BR>
| | |-- node117.html<BR>
| | |-- node118.html<BR>
| | |-- node119.html<BR>
| | |-- node12.html<BR>
| | |-- node120.html<BR>
| | |-- node121.html<BR>
| | |-- node122.html<BR>
| | |-- node123.html<BR>
| | |-- node124.html<BR>
| | |-- node125.html<BR>
| | |-- node126.html<BR>
| | |-- node127.html<BR>
| | |-- node128.html<BR>
| | |-- node129.html<BR>
| | |-- node13.html<BR>
| | |-- node130.html<BR>
| | |-- node131.html<BR>
| | |-- node132.html<BR>
| | |-- node133.html<BR>
| | |-- node134.html<BR>
| | |-- node135.html<BR>
| | |-- node136.html<BR>
| | |-- node137.html<BR>
| | |-- node138.html<BR>
| | |-- node139.html<BR>
| | |-- node14.html<BR>
| | |-- node140.html<BR>
| | |-- node141.html<BR>
| | |-- node142.html<BR>
| | |-- node143.html<BR>
| | |-- node144.html<BR>
| | |-- node145.html<BR>
| | |-- node146.html<BR>
| | |-- node147.html<BR>
| | |-- node148.html<BR>
| | |-- node149.html<BR>
| | |-- node15.html<BR>
| | |-- node150.html<BR>
| | |-- node151.html<BR>
| | |-- node152.html<BR>
| | |-- node153.html<BR>
| | |-- node154.html<BR>
| | |-- node155.html<BR>
| | |-- node156.html<BR>
| | |-- node157.html<BR>
| | |-- node158.html<BR>
| | |-- node159.html<BR>
| | |-- node16.html<BR>
| | |-- node160.html<BR>
| | |-- node161.html<BR>
| | |-- node162.html<BR>
| | |-- node163.html<BR>
| | |-- node164.html<BR>
| | |-- node165.html<BR>
| | |-- node166.html<BR>
| | |-- node167.html<BR>
| | |-- node168.html<BR>
| | |-- node169.html<BR>
| | |-- node17.html<BR>
| | |-- node170.html<BR>
| | |-- node171.html<BR>
| | |-- node172.html<BR>
| | |-- node173.html<BR>
| | |-- node174.html<BR>
| | |-- node175.html<BR>
| | |-- node176.html<BR>
| | |-- node177.html<BR>
| | |-- node178.html<BR>
| | |-- node179.html<BR>
| | |-- node18.html<BR>
| | |-- node180.html<BR>
| | |-- node181.html<BR>
| | |-- node182.html<BR>
| | |-- node183.html<BR>
| | |-- node184.html<BR>
| | |-- node185.html<BR>
| | |-- node186.html<BR>
| | |-- node187.html<BR>
| | |-- node188.html<BR>
| | |-- node189.html<BR>
| | |-- node19.html<BR>
| | |-- node190.html<BR>
| | |-- node191.html<BR>
| | |-- node192.html<BR>
| | |-- node193.html<BR>
| | |-- node194.html<BR>
| | |-- node195.html<BR>
| | |-- node196.html<BR>
| | |-- node197.html<BR>
| | |-- node198.html<BR>
| | |-- node199.html<BR>
| | |-- node2.html<BR>
| | |-- node20.html<BR>
| | |-- node200.html<BR>
| | |-- node201.html<BR>
| | |-- node202.html<BR>
| | |-- node203.html<BR>
| | |-- node204.html<BR>
| | |-- node205.html<BR>
| | |-- node206.html<BR>
| | |-- node207.html<BR>
| | |-- node208.html<BR>
| | |-- node209.html<BR>
| | |-- node21.html<BR>
| | |-- node210.html<BR>
| | |-- node211.html<BR>
| =20| |-- node212.html<BR>
| | |-- node213.html<BR>
| | |-- node214.html<BR>
| | |-- node215.html<BR>
| | |-- node216.html<BR>
| | |-- node217.html<BR>
| | |-- node218.html<BR>
| | |-- node219.html<BR>
| | |-- node22.html<BR>
| | |-- node220.html<BR>
| | |-- node221.html<BR>
| | |-- node222.html<BR>
| | |-- node223.html<BR>
| | |-- node224.html<BR>
| | |-- node225.html<BR>
| | |-- node226.html<BR>
| | |-- node227.html<BR>
| | |-- node228.html<BR>
| | |-- node229.html<BR>
| | |-- node23.html<BR>
| | |-- node230.html<BR>
| | |-- node231.html<BR>
| | |-- node232.html<BR>
| | |-- node233.html<BR>
| | |-- node234.html<BR>
| | |-- node235.html<BR>
| | |-- node236.html<BR>
| | |-- node237.html<BR>
| | |-- node238.html<BR>
| | |-- node239.html<BR>
| | |-- node24.html<BR>
| | |-- node240.html<BR>
| | |-- node241.html<BR>
| | |-- node242.html<BR>
| | |-- node243.html<BR>
| | |-- node244.html<BR>
| | |-- node245.html<BR>
| | |-- node246.html<BR>
| | |-- node247.html<BR>
| | |-- node248.html<BR>
| | |-- node249.html<BR>
| | |-- node25.html<BR>
| | |-- node250.html<BR>
| | |-- node251.html<BR>
| | |-- node252.html<BR>
| | |-- node253.html<BR>
| | |-- node254.html<BR>
| | |-- node255.html<BR>
| | |-- node256.html<BR>
| | |-- node257.html<BR>
| | |-- node258.html<BR>
| | |-- node259.html<BR>
| | |-- node26.html<BR>
| | |-- node260.html<BR>
| | |-- node261.html<BR>
| | |-- node262.html<BR>
| | |-- node263.html<BR>
| | |-- node264.html<BR>
| | |-- node265.html<BR>
| | |-- node266.html<BR>
| | |-- node267.html<BR>
| | |-- node268.html<BR>
| | |-- node269.html<BR>
| | |-- node27.html<BR>
| | |-- node270.html<BR>
| | |-- node271.html<BR>
| | |-- node28.html<BR>
| | |-- node29.html<BR>
| | |-- node3.html<BR>
| | |-- node30.html<BR>
| | |-- node31.html<BR>
| | |-- node32.html<BR>
| | |-- node33.html<BR>
| | |-- node34.html<BR>
| | |-- node35.html<BR>
| | |-- node36.html<BR>
| | |-- node37.html<BR>
| | |-- node38.html<BR>
| | |-- node39.html<BR>
| | |-- node4.html<BR>
| | |-- node40.html<BR>
| | |-- node41.html<BR>
| | |-- node42.html<BR>
| | |-- node43.html<BR>
| | |-- node44.html<BR>
| | |-- node45.html<BR>
| | |-- node46.html<BR>
| | |-- node47.html<BR>
| | |-- node48.html<BR>
| | |-- node49.html<BR>
| | |-- node5.html<BR>
| | |-- node50.html<BR>
| | |-- node51.html<BR>
| | |-- node52.html<BR>
| | |-- node53.html<BR>
| | |-- node54.html<BR>
| | |-- node55.html<BR>
| | |-- node56.html<BR>
| | |-- node57.html<BR>
| | |-- node58.html<BR>
| | |-- node59.html<BR>
| | |-- node6.html<BR>
| | |-- node60.html<BR>
| | |-- node61.html<BR>
| | |-- node62.html<BR>
| | |-- node63.html<BR>
| | |-- node64.html<BR>
| | |-- node65.html<BR>
| | |-- node66.html<BR>
| | |-- node67.html<BR>
| | |-- node68.html<BR>
| | |-- node69.html<BR>
| | |-- node7.html<BR>
| | |-- node70.html<BR>
| | |-- node71.html<BR>
| | |-- node72.html<BR>
| | |-- node73.html<BR>
| | |-- node74.html<BR>
| | |-- node75.html<BR>
| | |-- node76.html<BR>
| | |-- node77.html<BR>
| | |-- node78.html<BR>
| | |-- node79.html<BR>
| | |-- node8.html<BR>
| | |-- node80.html<BR>
| | |-- node81.html<BR>
| | |-- node82.html<BR>
| | |-- node83.html<BR>
| | |-- node84.html<BR>
| | |-- node85.html<BR>
| | |-- node86.html<BR>
| | |-- node87.html<BR>
| | |-- node88.html<BR>
| | |-- node89.html<BR>
| | |-- node9.html<BR>
| | |-- node90.html<BR>
| | |-- node91.html<BR>
| | |-- node92.html<BR>
| | |-- node93.html<BR>
| | |-- node94.html<BR>
| | |-- node95.html<BR>
| | |-- node96.html<BR>
| | |-- node97.html<BR>
| | |-- node98.html<BR>
| | `-- node99.html<BR>
| `-- icones<BR>
| |-- TRANS.TBL<BR>
| |-- bdlinux.gif<BR>
| |-- contg.gif<BR>
| |-- cross_ref_motif.gif<BR>
| |-- foot_motif.gif<BR>
| |-- indexg.gif<BR>
| |-- leftg.gif<BR>
| |-- point-rg.gif<BR>
| |-- previgr.gif<BR>
| |-- rightg.gif<BR>
| |-- rouge.gif<BR>
| |-- square.gif<BR>
| |-- topg.gif<BR>
| |-- up_motgr.gif<BR>
| `-- upg.gif<BR>
|-- FAQ -> docs/misc/RedHat-FAQ.txt<BR>
|-- INSTALL<BR>
| |-- TRANS.TBL<BR>
| |-- autoboot<BR>
| | |-- TRANS.TBL<BR>
| | |-- autoboot.bat<BR>
| | |-- initrd.img<BR>
| | |-- loadlin.exe<BR>
| | `-- vmlinuz<BR>
| |-- autoboot.bat<BR>
| |-- choix.exe<BR>
| |-- flop1440.bat<BR>
| |-- images<BR>
| | |-- TRANS.TBL<BR>
| | |-- generic<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- boot.img<BR>
| | | `-- supp.img<BR>
| | |-- lisezmoi.txt<BR>
| | `-- scsi<BR>
| | |-- TRANS.TBL<BR>
| | |-- aha1540<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- aha1540.img<BR>
| | | `-- config<BR>
| | |-- aha1740<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- aha1740.img<BR>
| | | `-- config<BR>
| | |-- aic7xxx<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- aic7xxx.img<BR>
| | | `-- config<BR>
| | |-- buslogic<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- buslogic.img<BR>
| | | `-- config<BR>
| | |-- eata_dma<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- config<BR>
| | | `-- eata_dma.img<BR>
| | |-- lisezmoi.txt<BR>
| | |-- supp.img<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- readme<BR>
| | | `-- supp.img<BR>
| | `-- ultrstor<BR>
| | |-- TRANS.TBL<BR>
| | |-- config<BR>
| | `-- ultrstor.img<BR>
| |-- install.bat<BR>
| |-- man-rh41.txt<BR>
| |-- rawrite.exe<BR>
| `-- voir.com<BR>
|-- README<BR>
|-- RPM-PGP-KEY<BR>
|-- RedHat<BR>
| |-- RPMS<BR>
| | |-- ElectricFence-2.0.5-4.i386.rpm<BR>
| | |-- ImageMagick-3.7-5.i386.rpm<BR>
| | |-- ImageMagick-devel-3.7-5.i386.rpm<BR>
| | |-- MAKEDEV-2.2-9.i386.rpm<BR>
| | |-- NetKit-B-0.08-13.i386.rpm<BR>
| | |-- SysVinit-2.64-7.i386.rpm<BR>
| | |-- TRANS.TBL<BR>
| | |-- TheNextLevel-1.0-2.i386.rpm<BR>
| | |-- X11R6-contrib-3.2-1.i386.rpm<BR>
| | |-- XFree86-100dpi-fonts-3.2-4.i386.rpm<BR>
| | |-- XFree86-3.2-4.i386.rpm<BR>
| | |-- XFree86-75dpi-fonts-3.2-4.i386.rpm<BR>
| | |-- XFree86-8514-3.2-4.i386.rpm<BR>
| | |-- XFree86-AGX-3.2-4.i386.rpm<BR>
| | |-- XFree86-I128-3.2-4.i386.rpm<BR>
| | |-- XFree86-Mach32-3.2-4.i386.rpm<BR>
| | |-- XFree86-Mach64-3.2-4.i386.rpm<BR>
| | |-- XFree86-Mach8-3.2-4.i386.rpm<BR>
| | |-- XFree86-Mono-3.2-4.i386.rpm<BR>
| | |-- XFree86-P9000-3.2-4.i386.rpm<BR>
| | |-- XFree86-S3-3.2-4.i386.rpm<BR>
| | |-- XFree86-S3V-3.2-4.i386.rpm<BR>
| | |-- XFree86-SVGA-3.2-4.i386.rpm<BR>
| | |-- XFree86-VGA16-3.2-4.i386.rpm<BR>
| | |-- XFree86-W32-3.2-4.i386.rpm<BR>
| | |-- XFree86-XF86Setup-3.2-4.i386.rpm<BR>
| | |-- XFree86-devel-3.2-4.i386.rpm<BR>
| | |-- XFree86-libs-3.2-4.i386.rpm<BR>
| | |-- Xaw3d-1.3-6.i386.rpm<BR>
| | |-- Xaw3d-devel-1.3-6.i386.rpm<BR>
| | |-- Xconfigurator-2.6-5.i386.rpm<BR>
| | |-- acm-4.7-5.i386.rpm<BR>
| | |-- adduser-1.2-1.i386.rpm<BR>
| | |-- adjtimex-1.2-4.i386.rpm<BR>
| | |-- amd-920824upl102-6.i386.rpm<BR>
| | |-- anonftp-2.3-2.i386.rpm<BR>
| | |-- aout-libs-1.4-6.i386.rpm<BR>
| | |-- apache-1.1.1-8.i386.rpm<BR>
| | |-- arena-0.98.beta3-3.i386.rpm<BR>
| | |-- ash-0.2-7.i386.rpm<BR>
| | |-- at-2.9b-2.i386.rpm<BR>
| | |-- aumix-0.2-4.i386.rpm<BR>
| | |-- autoconf-2.12-1.i386.rpm<BR>
| | |-- bash-1.14.7-1.i386.rpm<BR>
| | |-- basic-1.20-7.i386.rpm<BR>
| | |-- bc-1.03-6.i386.rpm<BR>
| | |-- bdflush-1.5-5.i386.rpm<BR>
| | |-- bin86-0.3-3.i386.rpm<BR>
| | |-- bind-4.9.5-2.i386.rpm<BR>
| | |-- bind-utils-4.9.5-2.i386.rpm<BR>
| | |-- binutils-2.7.0.2-4.i386.rpm<BR>
| | |-- bison-1.25-1.i386.rpm<BR>
| | |-- blt-1.9-5.i386.rpm<BR>
| | |-- blt-devel-1.9-5.i386.rpm<BR>
| | |-- bm2font-3.0-6.i386.rpm<BR>
| | |-- bootp-2.4.3-2.i386.rpm<BR>
| | |-- bootpc-050-2.i386.rpm<BR>
| | |-- bsd-games-1.3-6.i386.rpm<BR>
| | |-- byacc-1.9-4.i386.rpm<BR>
| | |-- caching-nameserver-1.0-1.i386.rpm<BR>
| | |-- cdecl-2.5-3.i386.rpm<BR>
| | |-- cdp-0.33-6.i386.rpm<BR>
| | |-- christminster-3-2.i386.rpm<BR>
| | |-- cmu-snmp-3.2-3.i386.rpm<BR>
| | |-- cmu-snmp-devel-3.2-3.i386.rpm<BR>
| | |-- cmu-snmp-utils-3.2-3.i386.rpm<BR>
| | |-- colour-yahtzee-1.0-3.i386.rpm<BR>
| | |-- control-panel-2.6-1.i386.rpm<BR>
| | |-- cpio-2.4.2-3.i386.rpm<BR>
| | |-- cproto-4.4-4.i386.rpm<BR>
| | |-- cracklib-2.5-1.i386.rpm<BR>
| | |-- cracklib-dicts-2.5-1.i386.rpm<BR>
| | |-- crontabs-1.5-1.i386.rpm<BR>
| | |-- csh-5.2.6-5.i386.rpm<BR>
| | |-- cvs-1.8.1-1.i386.rpm<BR>
| | |-- cxhextris-1.0-5.i386.rpm<BR>
| | |-- db-1.85-10.i386.rpm<BR>
| | |-- db-devel-1.85-10.i386.rpm<BR>
| | |-- dev-2.4-1.i386.rpm<BR>
| | |-- dialog-0.6-7.i386.rpm<BR>
| | |-- diffstat-1.25-1.i386.rpm<BR>
| | |-- diffutils-2.7-5.i386.rpm<BR>
| | |-- dip-3.3.7o-8.i386.rpm<BR>
| | |-- doom-1.8-7.i386.rpm<BR>
| | |-- dosemu-0.64.1-1.i386.rpm<BR>
| | |-- dump-0.3-5.i386.rpm<BR>
| | |-- e2fsprogs-1.04-8.i386.rpm<BR>
| | |-- e2fsprogs-devel-1.04-8.i386.rpm<BR>
| | |-- ed-0.2-5.i386.rpm<BR>
| | |-- efax-0.8a-1.i386.rpm<BR>
| | |-- eject-1.4-3.i386.rpm<BR>
| | |-- elm-2.4.25-7.i386.rpm<BR>
| | |-- emacs-19.34-3.i386.rpm<BR>
| | |-- emacs-X11-19.34-3.i386.rpm<BR>
| | |-- emacs-el-19.34-3.i386.rpm<BR>
| | |-- emacs-nox-19.34-3.i386.rpm<BR>
| | |-- etcskel-1.1-1.i386.rpm<BR>
| | |-- exmh-1.6.9-2.i386.rpm<BR>
| | |-- expect-5.21-2.i386.rpm<BR>
| | |-- ext2ed-0.1-8.i386.rpm<BR>
| | |-- f2c-19960205-6.i386.rpm<BR>
| | |-- f2c-libs-19960205-6.i386.rpm<BR>
| | |-- faces-1.6.1-6.i386.rpm<BR>
| | |-- faces-devel-1.6.1-6.i386.rpm<BR>
| | |-- faces-xface-1.6.1-6.i386.rpm<BR>
| | |-- faq-4.0-1.i386.rpm<BR>
| | |-- fetchmail-2.2-2.i386.rpm<BR>
| | |-- file-3.20-3.i386.rpm<BR>
| | |-- filesystem-1.2-1.i386.rpm<BR>
| | |-- fileutils-3.13-3.i386.rpm<BR>
| | |-- findutils-4.1-9.i386.rpm<BR>
| | |-- flex-2.5.3-3.i386.rpm<BR>
| | |-- flying-6.20-3.i386.rpm<BR>
| | |-- fort77-1.11-1.i386.rpm<BR>
| | |-- fortune-mod-1.0-3.i386.rpm<BR>
| | |-- fstool-2.5-1.i386.rpm<BR>
| | |-- fvwm-1.24r-10.i386.rpm<BR>
| | |-- fvwm95-2.0.42a-6.i386.rpm<BR>
| | |-- fvwm95-icons-2.0.42a-6.i386.rpm<BR>
| | |-- fwhois-1.00-5.i386.rpm<BR>
| | |-- gawk-3.0.0-5.i386.rpm<BR>
| | |-- gcal-1.00-1.i386.rpm<BR>
| | |-- gcc-2.7.2.1-2.i386.rpm<BR>
| | |-- gcc-c++-2.7.2.1-2.i386.rpm<BR>
| | |-- gcc-objc-2.7.2.1-2.i386.rpm<BR>
| | |-- gdb-4.16-5.i386.rpm<BR>
| | |-- gdbm-1.7.3-8.i386.rpm<BR>
| | |-- gdbm-devel-1.7.3-8.i386.rpm<BR>
| | |-- gencat-022591-4.i386.rpm<BR>
| | |-- gettext-0.10-5.i386.rpm<BR>
| | |-- getty_ps-2.0.7h-3.i386.rpm<BR>
| | |-- ghostscript-3.33-4.i386.rpm<BR>
| | |-- ghostscript-fonts-4.0-2.i386.rpm<BR>
| | |-- ghostview-1.5-6.i386.rpm<BR>
| | |-- giftrans-1.11.1-4.i386.rpm<BR>
| | |-- git-4.3.11-4.i386.rpm<BR>
| | |-- glint-2.1.5-1.i386.rpm<BR>
| | |-- gn-2.24-2.i386.rpm<BR>
| | |-- gnuchess-4.0.pl77-1.i386.rpm<BR>
| | |-- gnuplot-3.5-6.i386.rpm<BR>
| | |-- gpm-1.10-8.i386.rpm<BR>
| | |-- gpm-devel-1.10-8.i386.rpm<BR>
| | |-- grep-2.0-5.i386.rpm<BR>
| | |-- groff-1.10-7.i386.rpm<BR>
| | |-- groff-gxditview-1.10-7.i386.rpm<BR>
| | |-- gzip-1.2.4-6.i386.rpm<BR>
| | |-- hdparm-3.1-2.i386.rpm<BR>
| | |-- helptool-2.2-1.i386.rpm<BR>
| | |-- howto-4.1-1.i386.rpm<BR>
| | |-- howto-dvi-4.1-1.i386.rpm<BR>
| | |-- howto-html-4.1-1.i386.rpm<BR>
| | |-- howto-ps-4.1-1.i386.rpm<BR>
| | |-- howto-sgml-4.1-1.i386.rpm<BR>
| | |-- howto-translations-4.1-1.i386.rpm<BR>
| | |-- iBCS-2.0-4.i386.rpm<BR>
| | |-- ical-2.0p2-9.i386.rpm<BR>
| | |-- imap-4.1.BETA-2.i386.rpm<BR>
| | |-- indent-1.9.1-5.i386.rpm<BR>
| | |-- indexhtml-4.0-1.i386.rpm<BR>
| | |-- inews-1.4unoff4-4.i386.rpm<BR>
| | |-- info-3.7-5.i386.rpm<BR>
| | |-- initscripts-2.81-1.i386.rpm<BR>
| | |-- inn-1.4unoff4-4.i386.rpm<BR>
| | |-- intimed-1.10-3.i386.rpm<BR>
| | |-- ipfwadm-2.3.0-2.i386.rpm<BR>
| | |-- ipxutils-1.0-1.i386.rpm<BR>
| | |-- ircii-2.8.2-7.i386.rpm<BR>
| | |-- ircii-help-2.8.2-7.i386.rpm<BR>
| | |-- ispell-3.1.20-3.i386.rpm<BR>
| | |-- jdk-1.0.2.2-2.i386.rpm<BR>
| | |-- jed-0.97.14-3.i386.rpm<BR>
| | |-- jed-xjed-0.97.14-3.i386.rpm<BR>
| | |-- joe-2.8-7.i386.rpm<BR>
| | |-- kbd-0.91-9.i386.rpm<BR>
| | |-- kbdconfig-1.3-1.i386.rpm<BR>
| | |-- kernel-2.0.27-5.i386.rpm<BR>
| | |-- kernel-headers-2.0.27-5.i386.rpm<BR>
| | |-- kernel-modules-2.0.27-5.i386.rpm<BR>
| | |-- kernel-source-2.0.27-5.i386.rpm<BR>
| | |-- kernelcfg-0.3-3.i386.rpm<BR>
| | |-- koules-1.2-2.i386.rpm<BR>
| | |-- koules-sound-1.2-2.i386.rpm<BR>
| | |-- kterm-6.1.0-6.i386.rpm<BR>
| | |-- ld.so-1.7.14-4.i386.rpm<BR>
| | |-- ldp-4.0-2.i386.rpm<BR>
| | |-- less-321-3.i386.rpm<BR>
| | |-- lha-1.00-4.i386.rpm<BR>
| | |-- libc-5.3.12-17.i386.rpm<BR>
| | |-- libc-debug-5.3.12-17.i386.rpm<BR>
| | |-- libc-devel-5.3.12-17.i386.rpm<BR>
| | |-- libc-profile-5.3.12-17.i386.rpm<BR>
| | |-- libc-static-5.3.12-17.i386.rpm<BR>
| | |-- libelf-0.5.2-5.i386.rpm<BR>
| | |-- libg++-2.7.1.4-4.i386.rpm<BR>
| | |-- libg++-devel-2.7.1.4-4.i386.rpm<BR>
| | |-- libgr-2.0.9-6.i386.rpm<BR>
| | |-- libgr-devel-2.0.9-6.i386.rpm<BR>
| | |-- libgr-progs-2.0.9-6.i386.rpm<BR>
| | |-- libpng-0.89c-1.i386.rpm<BR>
| | |-- libpng-devel-0.89c-1.i386.rpm<BR>
| | |-- libtermcap-2.0.8-4.i386.rpm<BR>
| | |-- libtermcap-devel-2.0.8-4.i386.rpm<BR>
| | |-- lilo-0.19-1.i386.rpm<BR>
| | |-- linuxdoc-sgml-1.5-6.i386.rpm<BR>
| | |-- linuxthreads-0.5-1.i386.rpm<BR>
| | |-- linuxthreads-devel-0.5-1.i386.rpm<BR>
| | |-- locale-5.3.12-17.i386.rpm<BR>
| | |-- logrotate-2.0.2-2.i386.rpm<BR>
| | |-- losetup-2.5l-1.i386.rpm<BR>
| | |-- lout-3.08-1.i386.rpm<BR>
| | |-- lout-doc-3.08-1.i386.rpm<BR>
| | |-- lpr-0.13-1.i386.rpm<BR>
| | |-- lrzsz-0.12a-7.i386.rpm<BR>
| | |-- lynx-2.6-2.i386.rpm<BR>
| | |-- m4-1.4-6.i386.rpm<BR>
| | |-- macutils-2.0b3-4.i386.rpm<BR>
| | |-- mailcap-1.0-3.i386.rpm<BR>
| | |-- mailx-5.5.kw-6.i386.rpm<BR>
| | |-- make-3.74-8.i386.rpm<BR>
| | |-- man-1.4h-4.i386.rpm<BR>
| | |-- man-pages-1.12-2.i386.rpm<BR>
| | |-- maplay-1.2-4.i386.rpm<BR>
| | |-- mars-nwe-0.98-5.i386.rpm<BR>
| | |-- mawk-1.2.2-5.i386.rpm<BR>
| | |-- mb-5.0-6.i386.rpm<BR>
| | |-- mc-3.2.11-2.i386.rpm<BR>
| | |-- metamail-2.7-6.i386.rpm<BR>
| | |-- mh-6.8.3-13.i386.rpm<BR>
| | |-- mingetty-0.9.4-3.i386.rpm<BR>
| | |-- minicom-1.75-2.i386.rpm<BR>
| | |-- mkdosfs-ygg-0.3b-4.i386.rpm<BR>
| | |-- mkinitrd-1.4-1.i386.rpm<BR>
| | |-- mkisofs-1.10b2-4.i386.rpm<BR>
| | |-- mkxauth-1.7-4.i386.rpm<BR>
| | |-- modemtool-1.1-2.i386.rpm<BR>
| | |-- modules-2.0.0-5.i386.rpm<BR>
| | |-- moonclock-1.0-6.i386.rpm<BR>
| | |-- mount-2.5l-1.i386.rpm<BR>
| | |-- mouseconfig-1.4-1.i386.rpm<BR>
| | |-- mpage-2.3-1.i386.rpm<BR>
| | |-- mt-st-0.4-2.i386.rpm<BR>
| | |-- mtools-3.0-4.i386.rpm<BR>
| | |-- multimedia-2.1-5.i386.rpm<BR>
| | |-- mxp-1.0-5.i386.rpm<BR>
| | |-- mysterious-1.0-2.i386.rpm<BR>
| | |-- ncftp-2.3.0-4.i386.rpm<BR>
| | |-- ncompress-4.2.4-7.i386.rpm<BR>
| | |-- ncpfs-2.0.5-3.i386.rpm<BR>
| | |-- ncurses-1.9.9e-4.i386.rpm<BR>
| | |-- ncurses-devel-1.9.9e-4.i386.rpm<BR>
| | |-- nenscript-1.13++-7.i386.rpm<BR>
| | |-- net-tools-1.32.alpha-2.i386.rpm<BR>
| | |-- netcfg-2.13-1.i386.rpm<BR>
| | |-- netpbm-1mar1994-10.i386.rpm<BR>
| | |-- newt-0.7-2.i386.rpm<BR>
| | |-- newt-devel-0.7-2.i386.rpm<BR>
| | |-- nfs-server-2.2beta16-5.i386.rpm<BR>
| | |-- nfs-server-clients-2.2beta16-5.i386.rpm<BR>
| | |-- nls-1.0-2.i386.rpm<BR>
| | |-- open-1.3-5.i386.rpm<BR>
| | |-- p2c-1.20-7.i386.rpm<BR>
| | |-- p2c-devel-1.20-7.i386.rpm<BR>
| | |-- pam-0.54-4.i386.rpm<BR>
| | |-- pamconfig-0.50-5.i386.rpm<BR>
| | |-- paradise-2.3p19-5.i386.rpm<BR>
| | |-- passwd-0.50-2.i386.rpm<BR>
| | |-- patch-2.1-4.i386.rpm<BR>
| | |-- pcmcia-cs-2.8.23-5.i386.rpm<BR>
| | |-- pdksh-5.2.8-1.i386.rpm<BR>
| | |-- perl-5.003-6.i386.rpm<BR>
| | |-- pidentd-2.5.1-5.i386.rpm<BR>
| | |-- pine-3.95-2.i386.rpm<BR>
| | |-- pinfocom-3.0-3.i386.rpm<BR>
| | |-- playmidi-2.3-7.i386.rpm<BR>
| | |-- playmidi-X11-2.3-7.i386.rpm<BR>
| | |-- pmake-1.0-5.i386.rpm<BR>
| | |-- portmap-4.0-3.i386.rpm<BR>
| | |-- ppp-2.2.0f-2.i386.rpm<BR>
| | |-- printtool-3.0-12.i386.rpm<BR>
| | |-- procinfo-0.9-1.i386.rpm<BR>
| | |-- procmail-3.10-9.i386.rpm<BR>
| | |-- procps-1.01-11.i386.rpm<BR>
| | |-- procps-X11-1.01-11.i386.rpm<BR>
| | |-- psacct-6.2-1.i386.rpm<BR>
| | |-- psmisc-11-4.i386.rpm<BR>
| | |-- pwdb-0.53-2.i386.rpm<BR>
| | |-- python-1.4-3.i386.rpm<BR>
| | |-- python-devel-1.4-3.i386.rpm<BR>
| | |-- python-docs-1.4-3.i386.rpm<BR>
| | |-- pythonlib-1.12-1.i386.rpm<BR>
| | |-- quota-1.55-2.i386.rpm<BR>
| | |-- rcs-5.7-4.i386.rpm<BR>
| | |-- rdate-0.960923-1.i386.rpm<BR>
| | |-- rdist-1.0-5.i386.rpm<BR>
| | |-- readline-2.0-10.i386.rpm<BR>
| | |-- readline-devel-2.0-10.i386.rpm<BR>
| | |-- redhat-release-4.1-1.i386.rpm<BR>
| | |-- rootfiles-1.3-1.i386.rpm<BR>
| | |-- rpm-2.3-1.i386.rpm<BR>
| | |-- rpm-devel-2.3-1.i386.rpm<BR>
| | |-- rxvt-2.19-1.i386.rpm<BR>
| | |-- samba-1.9.16p9-6.i386.rpm<BR>
| | |-- scottfree-1.14-2.i386.rpm<BR>
| | |-- screen-3.7.1-3.i386.rpm<BR>
| | |-- sed-2.05-6.i386.rpm<BR>
| | |-- sendmail-8.8.4-3.i386.rpm<BR>
| | |-- sendmail-cf-8.8.4-3.i386.rpm<BR>
| | |-- sendmail-doc-8.8.4-3.i386.rpm<BR>
| | |-- setup-1.7-1.i386.rpm<BR>
| | |-- seyon-2.14c-7.i386.rpm<BR>
| | |-- sh-utils-1.12-13.i386.rpm<BR>
| | |-- shadow-utils-960530-6.i386.rpm<BR>
| | |-- sharutils-4.2-5.i386.rpm<BR>
| | |-- slang-0.99.37-2.i386.rpm<BR>
| | |-- slang-devel-0.99.37-2.i386.rpm<BR>
| | |-- sliplogin-2.1.0-3.i386.rpm<BR>
| | |-- slrn-0.9.2.0-1.i386.rpm<BR>
| | |-- smbfs-0.8-1.i386.rpm<BR>
| | |-- sox-11g-5.i386.rpm<BR>
| | |-- spice-2g6-4.i386.rpm<BR>
| | |-- spider-1.0-4.i386.rpm<BR>
| | |-- stat-1.5-5.i386.rpm<BR>
| | |-- statnet-2.00-4.i386.rpm<BR>
| | |-- statserial-1.1-7.i386.rpm<BR>
| | |-- strace-3.1-3.i386.rpm<BR>
| | |-- svgalib-1.2.10-2.i386.rpm<BR>
| | |-- svgalib-devel-1.2.10-2.i386.rpm<BR>
| | |-- swatch-2.1-4.i386.rpm<BR>
| | |-- symlinks-1.0-5.i386.rpm<BR>
| | |-- sysklogd-1.3-15.i386.rpm<BR>
| | |-- taper-6.7.4-2.i386.rpm<BR>
| | |-- tar-1.11.8-9.i386.rpm<BR>
| | |-- tcl-7.6-2.i386.rpm<BR>
| | |-- tclx-7.6.0b1-2.i386.rpm<BR>
| | |-- tcp_wrappers-7.4-3.i386.rpm<BR>
| | |-- tcpdump-3.0.2-5.i386.rpm<BR>
| | |-- tcsh-6.06-9.i386.rpm<BR>
| | |-- termcap-9.12.6-5.i386.rpm<BR>
| | |-- tetex-0.4-7.i386.rpm<BR>
| | |-- tetex-afm-0.4-7.i386.rpm<BR>
| | |-- tetex-dvilj-0.4-7.i386.rpm<BR>
| | |-- tetex-dvips-0.4-7.i386.rpm<BR>
| | |-- tetex-latex-0.4-7.i386.rpm<BR>
| | |-- tetex-xdvi-0.4-7.i386.rpm<BR>
| | |-- texinfo-3.7-5.i386.rpm<BR>
| | |-- textutils-1.19-4.i386.rpm<BR>
| | |-- time-1.7-1.i386.rpm<BR>
| | |-- timeconfig-1.6-1.i386.rpm<BR>
| | |-- timetool-2.2-1.i386.rpm<BR>
| | |-- tin-1.22-5.i386.rpm<BR>
| | |-- tix-4.1.0b1-2.i386.rpm<BR>
| | |-- tk-4.2-2.i386.rpm<BR>
| | |-- tksysv-0.91-1.i386.rpm<BR>
| | |-- tmpwatch-1.1-1.i386.rpm<BR>
| | |-- traceroute-1.0.4.4bsd-2.i386.rpm<BR>
| | |-- tracker-4.3-4.i386.rpm<BR>
| | |-- transfig-3.1.2-c.i386.rpm<BR>
| | |-- tree-1.0-3.i386.rpm<BR>
| | |-- trn-3.6-8.i386.rpm<BR>
| | |-- trojka-1.1-7.i386.rpm<BR>
| | |-- tunelp-1.3-5.i386.rpm<BR>
| | |-- typhoon-1.10.3-4.i386.rpm<BR>
| | |-- umb-scheme-3.2-2.i386.rpm<BR>
| | |-- umsdos_progs-0.9-2.i386.rpm<BR>
| | |-- unarj-2.41a-3.i386.rpm<BR>
| | |-- units-1.0-5.i386.rpm<BR>
| | |-- unzip-5.12-5.i386.rpm<BR>
| | |-- usercfg-3.2-1.i386.rpm<BR>
| | |-- util-linux-2.5-33.i386.rpm<BR>
| | |-- uucp-1.06.1-6.i386.rpm<BR>
| | |-- vga_cardgames-1.3.1-6.i386.rpm<BR>
| | |-- vga_gamespack-1.3-5.i386.rpm<BR>
| | |-- vga_tetris-0.4-3.i386.rpm<BR>
| | |-- vim-4.2-8.i386.rpm<BR>
| | |-- vim-X11-4.2-8.i386.rpm<BR>
| | |-- vixie-cron-3.0.1-12.i386.rpm<BR>
| | |-- vlock-1.0-4.i386.rpm<BR>
| | |-- which-1.0-5.i386.rpm<BR>
| | |-- words-2-3.i386.rpm<BR>
| | |-- wu-ftpd-2.4.2b11-11.i386.rpm<BR>
| | |-- x3270-3.1.0.7-4.i386.rpm<BR>
| | |-- xanim-27063-2.i386.rpm<BR>
| | |-- xbill-1.1-4.i386.rpm<BR>
|=20 | |-- xbl-1.0f-5.i386.rpm<BR>
| | |-- xboard-3.2.pl0-6.i386.rpm<BR>
| | |-- xboing-2.3-4.i386.rpm<BR>
| | |-- xchomp-1.0-6.i386.rpm<BR>
| | |-- xdaliclock-2.07-2.i386.rpm<BR>
| | |-- xdemineur-1.1-5.i386.rpm<BR>
| | |-- xdosemu-0.64.1-1.i386.rpm<BR>
| | |-- xearth-1.0-5.i386.rpm<BR>
| | |-- xevil-1.5-3.i386.rpm<BR>
| | |-- xfig-3.1.4-8.i386.rpm<BR>
| | |-- xfishtank-2.0-6.i386.rpm<BR>
| | |-- xfm-1.3.2-5.i386.rpm<BR>
| | |-- xgalaga-1.6c-3.i386.rpm<BR>
| | |-- xgammon-0.98-7.i386.rpm<BR>
| | |-- xgopher-1.3.3-2.i386.rpm<BR>
| | |-- xinitrc-1.1-1.i386.rpm<BR>
| | |-- xjewel-1.6-5.i386.rpm<BR>
| | |-- xkoules-1.2-2.i386.rpm<BR>
| | |-- xlander-1.2-5.i386.rpm<BR>
| | |-- xlispstat-3.44-6.i386.rpm<BR>
| | |-- xloadimage-4.1-6.i386.rpm<BR>
| | |-- xlockmore-3.12-1.i386.rpm<BR>
| | |-- xmailbox-2.4-4.i386.rpm<BR>
| | |-- xmorph-1996.07.12-2.i386.rpm<BR>
| | |-- xmplay-1.0-7.i386.rpm<BR>
| | |-- xosview-1.4.1-3.i386.rpm<BR>
| | |-- xpaint-2.4.4-3.i386.rpm<BR>
| | |-- xpat2-1.04-3.i386.rpm<BR>
| | |-- xpilot-3.5.1-3.i386.rpm<BR>
| | |-- xpm-3.4i-1.i386.rpm<BR>
| | |-- xpm-devel-3.4i-1.i386.rpm<BR>
| | |-- xpuzzles-5.3.1-2.i386.rpm<BR>
| | |-- xrn-8.02-3.i386.rpm<BR>
| | |-- xscreensaver-1.26-4.i386.rpm<BR>
| | |-- xsnow-1.40-2.i386.rpm<BR>
| | |-- xsysinfo-1.5-2.i386.rpm<BR>
| | |-- xterm-color-1.1-3.i386.rpm<BR>
| | |-- xtetris-2.6-5.i386.rpm<BR>
| | |-- xtoolwait-0.3-3.i386.rpm<BR>
| | |-- xtrojka-1.2.2-2.i386.rpm<BR>
| | |-- xv-3.10a-6.i386.rpm<BR>
| | |-- xview-3.2p1.pl2-4.i386.rpm<BR>
| | |-- xview-clients-3.2p1.pl2-4.i386.rpm<BR>
| | |-- xview-devel-3.2p1.pl2-4.i386.rpm<BR>
| | |-- xview-devel-examples-3.2p1.pl2-4.i386.rpm<BR>
| | |-- xwpe-1.4.2-10.i386.rpm<BR>
| | |-- xwpe-X11-1.4.2-10.i386.rpm<BR>
| | |-- xwpick-2.20-5.i386.rpm<BR>
| | |-- xxgdb-1.12-1.i386.rpm<BR>
| | |-- xzip-140-4.i386.rpm<BR>
| | |-- yp-clients-2.2-7.i386.rpm<BR>
| | |-- yppasswd-0.8-6.i386.rpm<BR>
| | |-- ypserv-1.0.4-3.i386.rpm<BR>
| | |-- ytalk-3.0.2-5.i386.rpm<BR>
| | |-- zgv-2.7-5.i386.rpm<BR>
| | |-- zip-2.1-1.i386.rpm<BR>
| | |-- zlib-1.0.4-1.i386.rpm<BR>
| | |-- zlib-devel-1.0.4-1.i386.rpm<BR>
| | |-- zoneinfo-96i-4.i386.rpm<BR>
| | `-- zsh-3.0.1-2.i386.rpm<BR>
| |-- SRPMS -> ../SRPMS<BR>
| |-- TRANS.TBL<BR>
| |-- base<BR>
| | |-- TRANS.TBL<BR>
| | |-- comps<BR>
| | |-- comps.new<BR>
| | |-- comps.orig<BR>
| | |-- fsstnd.cgz<BR>
| | |-- hdlist<BR>
| | |-- rpmconvert<BR>
| | |-- skeleton.cgz<BR>
| | `-- uglist<BR>
| |-- i386<BR>
| |-- instimage<BR>
| | |-- TRANS.TBL<BR>
| | |-- etc<BR>
| | | |-- TRANS.TBL<BR>
| | | `-- X11<BR>
| | | |-- TRANS.TBL<BR>
| | | `-- fvwm<BR>
| | | |-- TRANS.TBL<BR>
| | | `-- system.fvwmrc<BR>
| | |-- lib<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- ld-linux.so.1 -> ld-linux.so.1.7.14<BR>
| | | |-- ld-linux.so.1.7.14<BR>
| | | |-- libc.so.5 -> libc.so.5.2.18<BR>
| | | |-- libc.so.5.2.18<BR>
| | | |-- libcom_err.so.2 -> libcom_err.so.2.0<BR>
| | | |-- libcom_err.so.2.0<BR>
| | | |-- libe2p.so.2 -> libe2p.so.2.1<BR>
| | | |-- libe2p.so.2.1<BR>
| | | |-- libext2fs.so.2 -> libext2fs.so.2.0<BR>
| | | |-- libext2fs.so.2.0<BR>
| | | |-- libm.so.5 -> libm.so.5.0.5<BR>
| | | |-- libm.so.5.0.5<BR>
| | | |-- libtermcap.so.2 -> libtermcap.so.2.0.5<BR>
| | | `-- libtermcap.so.2.0.5<BR>
| | `-- usr<BR>
| | |-- TRANS.TBL<BR>
| | |-- bin<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- ash<BR>
| | | |-- badblocks<BR>
| | | |-- bash<BR>
| | | |-- cat -> install2<BR>
| | | |-- chmod -> install2<BR>
| | | |-- cp<BR>
| | | |-- cpio<BR>
| | | |-- df<BR>
| | | |-- fdisk<BR>
| | | |-- gdb<BR>
| | | |-- grep<BR>
| | | |-- gunzip -> gzip<BR>
| | | |-- gzip<BR>
| | | |-- install2<BR>
| | | |-- ldd<BR>
| | | |-- ln<BR>
| | | |-- ls<BR>
| | | |-- lsmod -> install2<BR>
| | | |-- mkdir -> install2<BR>
| | | |-- mke2fs<BR>
| | | |-- mknod -> install2<BR>
| | | |-- mount -> install2<BR>
| | | |-- open<BR>
| | | |-- ping<BR>
| | | |-- ps<BR>
| | | |-- rm -> install2<BR>
| | | |-- route<BR>
| | | |-- rpm<BR>
| | | |-- runinstall2 -> install2<BR>
| | | |-- sh -> bash<BR>
| | | |-- strace<BR>
| | | |-- umount -> install2<BR>
| | | |-- vi<BR>
| | | `-- wc<BR>
| | `-- lib<BR>
| | `-- TRANS.TBL<BR>
| `-- rpmcontents.gz<BR>
|-- SRPMS<BR>
| |-- ElectricFence-2.0.5-4.src.rpm<BR>
| |-- ImageMagick-3.7-5.src.rpm<BR>
| |-- MAKEDEV-2.2-9.src.rpm<BR>
| |-- NetKit-B-0.08-13.src.rpm<BR>
| |-- SysVinit-2.64-7.src.rpm<BR>
| |-- TRANS.TBL<BR>
| |-- TheNextLevel-1.0-2.src.rpm<BR>
| |-- X11R6-contrib-3.2-1.src.rpm<BR>
| |-- X11R6.1-pl1-18.src.rpm<BR>
| |-- XFree86-3.2-4.src.rpm<BR>
| |-- Xaw3d-1.3-6.src.rpm<BR>
| |-- Xconfigurator-2.6-5.src.rpm<BR>
| |-- aboot-0.5-1.src.rpm<BR>
| |-- acm-4.7-5.src.rpm<BR>
| |-- adduser-1.2-1.src.rpm<BR>
| |-- adjtimex-1.2-4.src.rpm<BR>
| |-- amd-920824upl102-6.src.rpm<BR>
| |-- anonftp-2.3-2.src.rpm<BR>
| |-- aout-libs-1.4-6.src.rpm<BR>
| |-- apache-1.1.1-8.src.rpm<BR>
| |-- arena-0.98.beta3-3.src.rpm<BR>
| |-- ash-0.2-7.src.rpm<BR>
| |-- at-2.9b-2.src.rpm<BR>
| |-- aumix-0.2-4.src.rpm<BR>
| |-- autoconf-2.12-1.src.rpm<BR>
| |-- bash-1.14.7-1.src.rpm<BR>
| |-- bc-1.03-6.src.rpm<BR>
| |-- bdflush-1.5-5.src.rpm<BR>
| |-- bin86-0.3-3.src.rpm<BR>
| |-- bind-4.9.5-2.src.rpm<BR>
| |-- binutils-2.7.0.2-4.src.rpm<BR>
| |-- bison-1.25-1.src.rpm<BR>
| |-- blt-1.9-5.src.rpm<BR>
| |-- bm2font-3.0-6.src.rpm<BR>
| |-- bootp-2.4.3-2.src.rpm<BR>
| |-- bootpc-050-2.src.rpm<BR>
| |-- bsd-games-1.3-6.src.rpm<BR>
| |-- byacc-1.9-4.src.rpm<BR>
| |-- caching-nameserver-1.0-1.src.rpm<BR>
| |-- cdecl-2.5-3.src.rpm<BR>
| |-- cdp-0.33-6.src.rpm<BR>
| |-- christminster-3-2.src.rpm<BR>
| |-- clock-1.0-1.src.rpm<BR>
| |-- cmu-snmp-3.2-3.src.rpm<BR>
| |-- colour-yahtzee-1.0-3.src.rpm<BR>
| |-- control-panel-2.6-1.src.rpm<BR>
| |-- cpio-2.4.2-3.src.rpm<BR>
| |-- cproto-4.4-4.src.rpm<BR>
| |-- cracklib-2.5-1.src.rpm<BR>
| |-- crontabs-1.5-1.src.rpm<BR>
| |-- csh-5.2.6-5.src.rpm<BR>
| |-- cvs-1.8.1-1.src.rpm<BR>
| |-- cxhextris-1.0-5.src.rpm<BR>
| |-- db-1.85-10.src.rpm<BR>
| |-- dev-2.4-1.src.rpm<BR>
| |-- dialog-0.6-7.src.rpm<BR>
| |-- diffstat-1.25-1.src.rpm<BR>
| |-- diffutils-2.7-5.src.rpm<BR>
| |-- dip-3.3.7o-8.src.rpm<BR>
| |-- doom-1.8-7.src.rpm<BR>
| |-- dosemu-0.64.1-1.src.rpm<BR>
| |-- dump-0.3-5.src.rpm<BR>
| |-- e2fsprogs-1.04-8.src.rpm<BR>
| |-- ed-0.2-5.src.rpm<BR>
| |-- efax-0.8a-1.src.rpm<BR>
| |-- eject-1.4-3.src.rpm<BR>
| |-- elftoaout-1.0-1.src.rpm<BR>
| |-- elm-2.4.25-7.src.rpm<BR>
| |-- emacs-19.34-3.src.rpm<BR>
| |-- etcskel-1.1-1.src.rpm<BR>
| |-- exmh-1.6.9-2.src.rpm<BR>
| |-- ext2ed-0.1-8.src.rpm<BR>
| |-- f2c-19960205-6.src.rpm<BR>
| |-- faces-1.6.1-6.src.rpm<BR>
| |-- faq-4.0-1.src.rpm<BR>
| |-- fetchmail-2.2-2.src.rpm<BR>
| |-- file-3.20-3.src.rpm<BR>
| |-- filesystem-1.2-1.src.rpm<BR>
| |-- fileutils-3.13-3.src.rpm<BR>
| |-- findutils-4.1-9.src.rpm<BR>
| |-- flex-2.5.3-3.src.rpm<BR>
| |-- flying-6.20-3.src.rpm<BR>
| |-- fort77-1.11-1.src.rpm<BR>
| |-- fortune-mod-1.0-3.src.rpm<BR>
| |-- fstool-2.5-1.src.rpm<BR>
| |-- fvwm-1.24r-10.src.rpm<BR>
| |-- fvwm95-2.0.42a-6.src.rpm<BR>
| |-- fwhois-1.00-5.src.rpm<BR>
| |-- gawk-3.0.0-5.src.rpm<BR>
| |-- gcal-1.00-1.src.rpm<BR>
| |-- gcc-2.7.2.1-2.src.rpm<BR>
| |-- gccmakedep-1.0-1.src.rpm<BR>
| |-- gdb-4.16-5.src.rpm<BR>
| |-- gdbm-1.7.3-8.src.rpm<BR>
| |-- gencat-022591-4.src.rpm<BR>
| |-- gettext-0.10-5.src.rpm<BR>
| |-- getty_ps-2.0.7h-3.src.rpm<BR>
| |-- ghostscript-3.33-4.src.rpm<BR>
| |-- ghostscript-fonts-4.0-2.src.rpm<BR>
| |-- ghostview-1.5-6.src.rpm<BR>
| |-- giftrans-1.11.1-4.src.rpm<BR>
| |-- git-4.3.11-4.src.rpm<BR>
| |-- glibc-0.961212-3.src.rpm<BR>
| |-- glint-2.1.5-1.src.rpm<BR>
| |-- gn-2.24-2.src.rpm<BR>
| |-- gnuchess-4.0.pl77-1.src.rpm<BR>
| |-- gnuplot-3.5-6.src.rpm<BR>
| |-- gpm-1.10-8.src.rpm<BR>
| |-- grep-2.0-5.src.rpm<BR>
| |-- groff-1.10-7.src.rpm<BR>
| |-- gzip-1.2.4-6.src.rpm<BR>
| |-- hdparm-3.1-2.src.rpm<BR>
| |-- helptool-2.2-1.src.rpm<BR>
| |-- howto-4.1-1.src.rpm<BR>
| |-- iBCS-2.0-4.src.rpm<BR>
| |-- ical-2.0p2-9.src.rpm<BR>
| |-- imap-4.1.BETA-2.src.rpm<BR>
| |-- indent-1.9.1-5.src.rpm<BR>
| |-- indexhtml-4.0-1.src.rpm<BR>
| |-- initscripts-2.81-1.src.rpm<BR>
| |-- inn-1.4unoff4-4.src.rpm<BR>
| |-- insmod-bfd-0.2-1.src.rpm<BR>
| |-- intimed-1.10-3.src.rpm<BR>
| |-- ipfwadm-2.3.0-2.src.rpm<BR>
| |-- ircii-2.8.2-7.src.rpm<BR>
| |-- ispell-3.1.20-3.src.rpm<BR>
| |-- jdk-1.0.2.2-2.src.rpm<BR>
| |-- jed-0.97.14-3.src.rpm<BR>
| |-- joe-2.8-7.src.rpm<BR>
| |-- kbd-0.91-9.src.rpm<BR>
| |-- kbdconfig-1.3-1.src.rpm<BR>
| |-- kernel-2.0.27-5.src.rpm<BR>
| |-- kernel-sparc-2.0.27-6.src.rpm<BR>
| |-- kernelcfg-0.3-3.src.rpm<BR>
| |-- koules-1.2-2.src.rpm<BR>
| |-- kterm-6.1.0-6.src.rpm<BR>
| |-- ld.so-1.7.14-4.src.rpm<BR>
| |-- ld.so-sparc-1.8.3-2.src.rpm<BR>
| |-- ldconfig-1.8.1-3.src.rpm<BR>
| |-- ldp-4.0-2.src.rpm<BR>
| |-- less-321-3.src.rpm<BR>
| |-- lha-1.00-4.src.rpm<BR>
| |-- libc-5.3.12-17.src.rpm<BR>
| |-- libelf-0.5.2-5.src.rpm<BR>
| |-- libg++-2.7.1.4-4.src.rpm<BR>
| |-- libgr-2.0.9-6.src.rpm<BR>
| |-- libpng-0.89c-1.src.rpm<BR>
| |-- libtermcap-2.0.8-4.src.rpm<BR>
| |-- lilo-0.19-1.src.rpm<BR>
| |-- linuxdoc-sgml-1.5-6.src.rpm<BR>
| |-- linuxthreads-0.5-1.src.rpm<BR>
| |-- logrotate-2.0.2-2.src.rpm<BR>
| |-- lout-3.08-1.src.rpm<BR>
| |-- lpr-0.13-1.src.rpm<BR>
| |-- lrzsz-0.12a-7.src.rpm<BR>
| |-- lynx-2.6-2.src.rpm<BR>
| |-- m4-1.4-6.src.rpm<BR>
| |-- macutils-2.0b3-4.src.rpm<BR>
| |-- mailcap-1.0-3.src.rpm<BR>
| |-- mailx-5.5.kw-6.src.rpm<BR>
| |-- make-3.74-8.src.rpm<BR>
| |-- man-1.4h-4.src.rpm<BR>
| |-- man-pages-1.12-2.src.rpm<BR>
| |-- maplay-1.2-4.src.rpm<BR>
| |-- mars-nwe-0.98-5.src.rpm<BR>
| |-- mawk-1.2.2-5.src.rpm<BR>
| |-- mb-5.0-6.src.rpm<BR>
| |-- mc-3.2.11-2.src.rpm<BR>
| |-- metamail-2.7-6.src.rpm<BR>
| |-- mh-6.8.3-13.src.rpm<BR>
| |-- mingetty-0.9.4-3.src.rpm<BR>
| |-- minicom-1.75-2.src.rpm<BR>
| |-- minlabel-1.2-1.src.rpm<BR>
| |-- mkbb-1.0-4.src.rpm<BR>
| |-- mkdosfs-ygg-0.3b-4.src.rpm<BR>
| |-- mkinitrd-1.4-1.src.rpm<BR>
| |-- mkisofs-1.10b2-4.src.rpm<BR>
| |-- mkxauth-1.7-4.src.rpm<BR>
| |-- modemtool-1.1-2.src.rpm<BR>
| |-- modules-2.0.0-5.src.rpm<BR>
| |-- moonclock-1.0-6.src.rpm<BR>
| |-- mount-2.5l-1.src.rpm<BR>
| |-- mouseconfig-1.4-1.src.rpm<BR>
| |-- mpage-2.3-1.src.rpm<BR>
| |-- mt-st-0.4-2.src.rpm<BR>
| |-- mtools-3.0-4.src.rpm<BR>
| |-- multimedia-2.1-5.src.rpm<BR>
| |-- mxp-1.0-5.src.rpm<BR>
| |-- mysterious-1.0-2.src.rpm<BR>
| |-- ncftp-2.3.0-4.src.rpm<BR>
| |-- ncompress-4.2.4-7.src.rpm<BR>
| |-- ncpfs-2.0.5-3.src.rpm<BR>
| |-- ncurses-1.9.9e-4.src.rpm<BR>
| |-- nenscript-1.13++-7.src.rpm<BR>
| |-- net-tools-1.32.alpha-2.src.rpm<BR>
| |-- netcfg-2.13-1.src.rpm<BR>
| |-- netpbm-1mar1994-10.src.rpm<BR>
| |-- newt-0.7-2.src.rpm<BR>
| |-- nfs-server-2.2beta16-5.src.rpm<BR>
| |-- nls-1.0-2.src.rpm<BR>
| |-- open-1.3-5.src.rpm<BR>
| |-- p2c-1.20-7.src.rpm<BR>
| |-- pam-0.54-4.src.rpm<BR>
| |-- pamconfig-0.50-5.src.rpm<BR>
| |-- paradise-2.3p19-5.src.rpm<BR>
| |-- passwd-0.50-2.src.rpm<BR>
| |-- patch-2.1-4.src.rpm<BR>
| |-- pdksh-5.2.8-1.src.rpm<BR>
| |-- perl-5.003-6.src.rpm<BR>
| |-- pidentd-2.5.1-5.src.rpm<BR>
| |-- pine-3.95-2.src.rpm<BR>
| |-- pinfocom-3.0-3.src.rpm<BR>
| |-- playmidi-2.3-7.src.rpm<BR>
| |-- pmake-1.0-5.src.rpm<BR>
| |-- portmap-4.0-3.src.rpm<BR>
| |-- ppp-2.2.0f-2.src.rpm<BR>
| |-- printtool-3.0-12.src.rpm<BR>
| |-- procinfo-0.9-1.src.rpm<BR>
| |-- procmail-3.10-9.src.rpm<BR>
| |-- procps-1.01-11.src.rpm<BR>
| |-- psacct-6.2-1.src.rpm<BR>
| |-- psmisc-11-4.src.rpm<BR>
| |-- pwdb-0.53-2.src.rpm<BR>
| |-- python-1.4-3.src.rpm<BR>
| |-- pythonlib-1.12-1.src.rpm<BR>
| |-- quickstrip-1.1-2.src.rpm<BR>
| |-- quota-1.55-2.src.rpm<BR>
| |-- rcs-5.7-4.src.rpm<BR>
| |-- rdate-0.960923-1.src.rpm<BR>
| |-- rdist-1.0-5.src.rpm<BR>
| |-- readline-2.0-10.src.rpm<BR>
| |-- redhat-release-4.1-1.src.rpm<BR>
| |-- rootfiles-1.3-1.src.rpm<BR>
| |-- rpm-2.3-1.src.rpm<BR>
| |-- rxvt-2.19-1.src.rpm<BR>
| |-- samba-1.9.16p9-6.src.rpm<BR>
| |-- scottfree-1.14-2.src.rpm<BR>
| |-- screen-3.7.1-3.src.rpm<BR>
| |-- sed-2.05-6.src.rpm<BR>
| |-- sendmail-8.8.4-3.src.rpm<BR>
| |-- setup-1.7-1.src.rpm<BR>
| |-- seyon-2.14c-7.src.rpm<BR>
| |-- sh-utils-1.12-13.src.rpm<BR>
| |-- shadow-utils-960530-6.src.rpm<BR>
| |-- sharutils-4.2-5.src.rpm<BR>
| |-- silo-0.6.7-1.src.rpm<BR>
| |-- slang-0.99.37-2.src.rpm<BR>
| |-- sliplogin-2.1.0-3.src.rpm<BR>
| |-- slrn-0.9.2.0-1.src.rpm<BR>
| |-- smbfs-0.8-1.src.rpm<BR>
| |-- sox-11g-5.src.rpm<BR>
| |-- spice-2g6-4.src.rpm<BR>
| |-- spider-1.0-4.src.rpm<BR>
| |-- stat-1.5-5.src.rpm<BR>
| |-- statnet-2.00-4.src.rpm<BR>
| |-- statserial-1.1-7.src.rpm<BR>
| |-- strace-3.1-3.src.rpm<BR>
| |-- svgalib-1.2.10-2.src.rpm<BR>
| |-- swatch-2.1-4.src.rpm<BR>
| |-- symlinks-1.0-5.src.rpm<BR>
| |-- sysklogd-1.3-15.src.rpm<BR>
| |-- taper-6.7.4-2.src.rpm<BR>
| |-- tar-1.11.8-9.src.rpm<BR>
| |-- tcltk-7.6_4.2-2.src.rpm<BR>
| |-- tcp_wrappers-7.4-3.src.rpm<BR>
| |-- tcpdump-3.0.2-5.src.rpm<BR>
| |-- tcsh-6.06-9.src.rpm<BR>
| |-- termcap-9.12.6-5.src.rpm<BR>
| |-- termfiles_sparc-1.0-4.src.rpm<BR>
| |-- tetex-0.4-7.src.rpm<BR>
| |-- texinfo-3.7-5.src.rpm<BR>
| |-- textutils-1.19-4.src.rpm<BR>
| |-- time-1.7-1.src.rpm<BR>
| |-- timeconfig-1.6-1.src.rpm<BR>
| |-- timetool-2.2-1.src.rpm<BR>
| |-- tin-1.22-5.src.rpm<BR>
| |-- tksysv-0.91-1.src.rpm<BR>
| |-- tmpwatch-1.1-1.src.rpm<BR>
| |-- traceroute-1.0.4.4bsd-2.src.rpm<BR>
| |-- tracker-4.3-4.src.rpm<BR>
| |-- transfig-3.1.2-c.src.rpm<BR>
| |-- tree-1.0-3.src.rpm<BR>
| |-- trn-3.6-8.src.rpm<BR>
| |-- trojka-1.1-7.src.rpm<BR>
| |-- tunelp-1.3-5.src.rpm<BR>
| |-- typhoon-1.10.3-4.src.rpm<BR>
| |-- umb-scheme-3.2-2.src.rpm<BR>
| |-- umsdos_progs-0.9-2.src.rpm<BR>
| |-- unarj-2.41a-3.src.rpm<BR>
| |-- units-1.0-5.src.rpm<BR>
| |-- unzip-5.12-5.src.rpm<BR>
| |-- usercfg-3.2-1.src.rpm<BR>
| |-- util-linux-2.5-33.src.rpm<BR>
| |-- uucp-1.06.1-6.src.rpm<BR>
| |-- vga_cardgames-1.3.1-6.src.rpm<BR>
| |-- vga_gamespack-1.3-5.src.rpm<BR>
| |-- vga_tetris-0.4-3.src.rpm<BR>
| |-- vim-4.2-8.src.rpm<BR>
| |-- vixie-cron-3.0.1-12.src.rpm<BR>
| |-- vlock-1.0-4.src.rpm<BR>
| |-- which-1.0-5.src.rpm<BR>
| |-- words-2-3.src.rpm<BR>
| |-- wu-ftpd-2.4.2b11-11.src.rpm<BR>
| |-- x3270-3.1.0.7-4.src.rpm<BR>
| |-- xanim-27063-2.src.rpm<BR>
| |-- xbill-1.1-4.src.rpm<BR>
| |-- xbl-1.0f-5.src.rpm<BR>
| |-- xboard-3.2.pl0-6.src.rpm<BR>
| |-- xboing-2.3-4.src.rpm<BR>
| |-- xchomp-1.0-6.src.rpm<BR>
| |-- xdaliclock-2.07-2.src.rpm<BR>
| |-- xdemineur-1.1-5.src.rpm<BR>
| |-- xearth-1.0-5.src.rpm<BR>
| |-- xevil-1.5-3.src.rpm<BR>
| |-- xfig-3.1.4-8.src.rpm<BR>
| |-- xfishtank-2.0-6.src.rpm<BR>
| |-- xfm-1.3.2-5.src.rpm<BR>
| |-- xgalaga-1.6c-3.src.rpm<BR>
| |-- xgammon-0.98-7.src.rpm<BR>
| |-- xgopher-1.3.3-2.src.rpm<BR>
| |-- xinitrc-1.1-1.src.rpm<BR>
| |-- xjewel-1.6-5.src.rpm<BR>
| |-- xlander-1.2-5.src.rpm<BR>
| |-- xlispstat-3.44-6.src.rpm<BR>
| |-- xloadimage-4.1-6.src.rpm<BR>
| |-- xlockmore-3.12-1.src.rpm<BR>
| |-- xmailbox-2.4-4.src.rpm<BR>
| |-- xmorph-1996.07.12-2.src.rpm<BR>
| |-- xmplay-1.0-7.src.rpm<BR>
| |-- xosview-1.4.1-3.src.rpm<BR>
| |-- xpaint-2.4.4-3.src.rpm<BR>
| |-- xpat2-1.04-3.src.rpm<BR>
| |-- xpilot-3.5.1-3.src.rpm<BR>
| |-- xpm-3.4i-1.src.rpm<BR>
| |-- xpuzzles-5.3.1-2.src.rpm<BR>
| |-- xrn-8.02-3.src.rpm<BR>
| |-- xscreensaver-1.26-4.src.rpm<BR>
| |-- xsnow-1.40-2.src.rpm<BR>
| |-- xsysinfo-1.5-2.src.rpm<BR>
| |-- xterm-color-1.1-3.src.rpm<BR>
| |-- xtetris-2.6-5.src.rpm<BR>
| |-- xtoolwait-0.3-3.src.rpm<BR>
| |-- xtrojka-1.2.2-2.src.rpm<BR>
| |-- xv-3.10a-6.src.rpm<BR>
| |-- xview-3.2p1.pl2-4.src.rpm<BR>
| |-- xwpe-1.4.2-10.src.rpm<BR>
| |-- xwpick-2.20-5.src.rpm<BR>
| |-- xxgdb-1.12-1.src.rpm<BR>
| |-- xzip-140-4.src.rpm<BR>
| |-- yp-clients-2.2-7.src.rpm<BR>
| |-- yppasswd-0.8-6.src.rpm<BR>
| |-- ypserv-1.0.4-3.src.rpm<BR>
| |-- ytalk-3.0.2-5.src.rpm<BR>
| |-- zgv-2.7-5.src.rpm<BR>
| |-- zip-2.1-1.src.rpm<BR>
| |-- zlib-1.0.4-1.src.rpm<BR>
| |-- zoneinfo-96i-4.src.rpm<BR>
| `-- zsh-3.0.1-2.src.rpm<BR>
|-- SUPPORT<BR>
|-- TRANS.TBL<BR>
|-- UPLOADING<BR>
|-- VENDORS<BR>
|-- docs<BR>
| |-- FAQ<BR>
| | |-- ATAPI-FAQ<BR>
| | |-- Cryptographic-File-System<BR>
| | |-- FAQ<BR>
| | |-- GCC-FAQ<BR>
| | |-- GCC-FAQ.html<BR>
| | |-- GCC-SIG11-FAQ<BR>
| | |-- INDEX<BR>
| | |-- INDEX.html<BR>
| | |-- NFS-FAQ<BR>
| | |-- PPP-FAQ.txt<BR>
| | |-- README<BR>
| | |-- TRANS.TBL<BR>
| | |-- Wine.FAQ<BR>
| | |-- ext2fs-FAQ<BR>
| | |-- linux-faq.README<BR>
| | |-- linux-faq.ascii<BR>
| | `-- linux-faq.ps<BR>
| |-- HOWTO<BR>
| | |-- AX25-HOWTO<BR>
| | |-- Access-HOWTO<BR>
| | |-- BootPrompt-HOWTO<BR>
| | |-- Bootdisk-HOWTO<BR>
| | |-- Busmouse-HOWTO<BR>
| | |-- CDROM-HOWTO<BR>
| | |-- COPYRIGHT<BR>
| | |-- Commercial-HOWTO<BR>
| | |-- Cyrillic-HOWTO<BR>
| | |-- DNS-HOWTO<BR>
| | |-- DOSEMU-HOWTO<BR>
| | |-- Danish-HOWTO<BR>
| | |-- Distribution-HOWTO<BR>
| | |-- ELF-HOWTO<BR>
| | |-- Emacspeak-HOWTO<BR>
| | |-- Ethernet-HOWTO<BR>
| | |-- Finnish-HOWTO<BR>
| | |-- Firewall-HOWTO<BR>
| | |-- Ftape-HOWTO<BR>
| | |-- GCC-HOWTO<BR>
| | |-- German-HOWTO<BR>
| | |-- HAM-HOWTO<BR>
| | |-- HOWTO-INDEX<BR>
| | |-- Hardware-HOWTO<BR>
| | |-- Hebrew-HOWTO<BR>
| | |-- INDEX<BR>
| | |-- INDEX.html<BR>
| | |-- INFO-SHEET<BR>
| | |-- IPX-HOWTO<BR>
| | |-- ISP-Hookup-HOWTO<BR>
| | |-- Installation-HOWTO<BR>
| | |-- Italian-HOWTO<BR>
| | |-- JE-HOWTO<BR>
| | |-- Java-HOWTO<BR>
| | |-- Kernel-HOWTO<BR>
| | |-- Keyboard-HOWTO<BR>
| | |-- Keystroke-HOWTO<BR>
| | |-- Linux-HOWTOs.tar.gz<BR>
| | |-- META-FAQ<BR>
| | |-- MGR-HOWTO<BR>
| | |-- Mail-HOWTO<BR>
| | |-- Module-HOWTO<BR>
| | |-- NET-2-HOWTO<BR>
| | |-- NIS-HOWTO<BR>
| | |-- News-HOWTO<BR>
| | |-- PCI-HOWTO<BR>
| | |-- PCMCIA-HOWTO<BR>
| | |-- PPP-HOWTO<BR>
| | |-- Polish-HOWTO<BR>
| | |-- Portuguese-HOWTO<BR>
| | |-- Printing-HOWTO<BR>
| | |-- Printing-Usage-HOWTO<BR>
| | |-- README<BR>
| | |-- SCSI-HOWTO<BR>
| | |-- SCSI-Programming-HOWTO<BR>
| | |-- SMB-HOWTO<BR>
| | |-- Serial-HOWTO<BR>
| | |-- Shadow-Password-HOWTO<BR>
| | |-- Sound-HOWTO<BR>
| | |-- Sound-Playing-HOWTO<BR>
| | |-- Spanish-HOWTO<BR>
| | |-- TRANS.TBL<BR>
| | |-- Term-HOWTO<BR>
| | |-- Tips-HOWTO<BR>
| | |-- UMSDOS-HOWTO<BR>
| | |-- UPS-HOWTO<BR>
| | |-- UUCP-HOWTO<BR>
| | |-- XFree86-HOWTO<BR>
| | |-- mini<BR>
| | | |-- 3-Button-Mouse<BR>
| | | |-- ADSM-Backup<BR>
| | | |-- Assembly<BR>
| | | |-- Backup-With-MSDOS<BR>
| | | |-- Boca<BR>
| | | |-- BogoMips<BR>
| | | |-- Bridge<BR>
| | | |-- CD-Writer<BR>
| | | |-- Colour-ls<BR>
| | | |-- Consoles<BR>
| | | |-- Consoles-Many<BR>
| | | |-- DOS2Linux<BR>
| | | |-- Diald<BR>
| | | |-- Dip+SLiRP+CSLIP<BR>
| | | |-- Diskless<BR>
| | | |-- Dynamic-IP-Hacks<BR>
| | | |-- GUI-Development<BR>
| | | |-- Getty-ps<BR>
| | | |-- Graphics-Tools<BR>
| | | |-- Gravis-UltraSound<BR>
| | | |-- HTML-Validation<BR>
| | | |-- HTTP+Netware<BR>
| | | |-- INDEX<BR>
| | | |-- INDEX.html<BR>
| | | |-- IO-Port-Programming<BR>
| | | |-- IP-Alias<BR>
| | | |-- IP-Masquerade<BR>
| | | |-- Java-WorkShop<BR>
| | | |-- Jaz-Drive<BR>
| | | |-- Kerneld<BR>
| | | |-- Key-Setup<BR>
| | | |-- Keystroke<BR>
| | | |-- LBX<BR>
| | | |-- LF1000<BR>
| | | |-- LILO<BR>
| | | |-- Large-Disk<BR>
| | | |-- Linux+DOS+Win95+OS2<BR>
| | | |-- Linux+OS2+DOS<BR>
| | | |-- Linux+Win95<BR>
| | | |-- Linux-mini-HOWTOs.tar.gz<BR>
| | | |-- Locales<BR>
| | | |-- Mail-Queue<BR>
| | | |-- Man-Page<BR>
| | | |-- Modeline<BR>
| | | |-- Multiple-Disks-Layout<BR>
| | | |-- Multiple-Ethernet<BR>
| | | |-- NFS-Root<BR>
| | | |-- Online-Support<BR>
| | | |-- PLIP<BR>
| | | |-- PPP-over-ISDN<BR>
| | | |-- Print2Win<BR>
| | | |-- Process-Accounting<BR>
| | | |-- Proxy-ARP<BR>
| | | |-- Quota<BR>
| | | |-- README<BR>
| | | |-- Reading-List<BR>
| | | |-- SLIP+proxyARP<BR>
| | | |-- Stacker<BR>
| | | |-- Swap-Space<BR>
| | | |-- TIA<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- Term-Firewall<BR>
| | | |-- Tiny-News<BR>
| | | |-- Token-Ring<BR>
| | | |-- Upgrade<BR>
| | | |-- Virtual-Web<BR>
| | | |-- Visual-Bell<BR>
| | | |-- Win95+Win+Linux<BR>
| | | |-- WordPerfect<BR>
| | | |-- X-Notebook<BR>
| | | |-- XFree86-XInside<BR>
| | | |-- Xterminal<BR>
| | | `-- ZIP-Drive<BR>
| | `-- other-formats<BR>
| | |-- INDEX<BR>
| | |-- INDEX.html<BR>
| | |-- README<BR>
| | |-- TRANS.TBL<BR>
| | |-- dvi<BR>
| | | |-- AX25-HOWTO.dvi.gz<BR>
| | | |-- Access-HOWTO.dvi.gz<BR>
| | | |-- BootPrompt-HOWTO.dvi.gz<BR>
| | | |-- Bootdisk-HOWTO.dvi.gz<BR>
| | | |-- Busmouse-HOWTO.dvi.gz<BR>
| | | |-- CDROM-HOWTO.dvi.gz<BR>
| | | |-- Commercial-HOWTO.dvi.gz<BR>
| | | |-- Cyrillic-HOWTO.dvi.gz<BR>
| | | |-- DNS-HOWTO.dvi.gz<BR>
| | | |-- DOSEMU-HOWTO.dvi.gz<BR>
| | | |-- Danish-HOWTO.dvi.gz<BR>
| | | |-- Distribution-HOWTO.dvi.gz<BR>
| | | |-- ELF-HOWTO.dvi.gz<BR>
| | | |-- Emacspeak-HOWTO.dvi.gz<BR>
| | | |-- Ethernet-HOWTO.dvi.gz<BR>
| | | |-- Finnish-HOWTO.dvi.gz<BR>
| | | |-- Firewall-HOWTO.dvi.gz<BR>
| | | |-- Ftape-HOWTO.dvi.gz<BR>
| | | |-- GCC-HOWTO.dvi.gz<BR>
| | | |-- German-HOWTO.dvi.gz<BR>
| | | |-- HAM-HOWTO.dvi.gz<BR>
| | | |-- HOWTO-INDEX.dvi.gz<BR>
| | | |-- Hardware-HOWTO.dvi.gz<BR>
| | | |-- Hebrew-HOWTO.dvi.gz<BR>
| | | |-- INFO-SHEET.dvi.gz<BR>
| | | |-- IPX-HOWTO.dvi.gz<BR>
| | | |-- ISP-Hookup-HOWTO.dvi.gz<BR>
| | | |-- Installation-HOWTO.dvi.gz<BR>
| | | |-- Italian-HOWTO.dvi.gz<BR>
| | | |-- Java-HOWTO.dvi.gz<BR>
| | | |-- Kernel-HOWTO.dvi.gz<BR>
| | | |-- Keyboard-HOWTO.dvi.gz<BR>
| | | |-- META-FAQ.dvi.gz<BR>
| | | |-- MGR-HOWTO.dvi.gz<BR>
| | | |-- Mail-HOWTO.dvi.gz<BR>
| | | |-- Module-HOWTO.dvi.gz<BR>
| | | |-- NET-2-HOWTO.dvi.gz<BR>
| | | |-- NIS-HOWTO.dvi.gz<BR>
| | | |-- News-HOWTO.dvi.gz<BR>
| | | |-- PCI-HOWTO.dvi.gz<BR>
| | | |-- PCMCIA-HOWTO.dvi.gz<BR>
| | | |-- PPP-HOWTO.dvi.gz<BR>
| | | |-- Polish-HOWTO.dvi.gz<BR>
| | | |-- Portuguese-HOWTO.dvi.gz<BR>
| | | |-- Printing-HOWTO.dvi.gz<BR>
| | | |-- Printing-Usage-HOWTO.dvi.gz<BR>
| | | |-- README<BR>
| | | |-- SCSI-Programming-HOWTO.dvi.gz<BR>
| | | |-- SMB-HOWTO.dvi.gz<BR>
| | | |-- Serial-HOWTO.dvi.gz<BR>
| | | |-- Shadow-Password-HOWTO.dvi.gz<BR>
| | | |-- Sound-HOWTO.dvi.gz<BR>
| | | |-- Sound-Playing-HOWTO.dvi.gz<BR>
| | | |-- Spanish-HOWTO.dvi.gz<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- Term-HOWTO.dvi.gz<BR>
| | | |-- Tips-HOWTO.dvi.gz<BR>
| | | |-- UMSDOS-HOWTO.dvi.gz<BR>
| | | |-- UPS-HOWTO.dvi.gz<BR>
| | | |-- UUCP-HOWTO.dvi.gz<BR>
| | | `-- XFree86-HOWTO.dvi.gz<BR>
| | |-- html<BR>
| | | |-- AX25-HOWTO-html.tar.gz<BR>
| | | |-- Access-HOWTO-html.tar.gz<BR>
| | | |-- BootPrompt-HOWTO-html.tar.gz<BR>
| | | |-- Bootdisk-HOWTO-html.tar.gz<BR>
| | | |-- Busmouse-HOWTO-html.tar.gz<BR>
| | | |-- CDROM-HOWTO-html.tar.gz<BR>
| | | |-- Commercial-HOWTO-html.tar.gz<BR>
| | | |-- Cyrillic-HOWTO-html.tar.gz<BR>
| | | |-- DNS-HOWTO-html.tar.gz<BR>
| | | |-- DOSEMU-HOWTO-html.tar.gz<BR>
| | | |-- Danish-HOWTO-html.tar.gz<BR>
| | | |-- Distribution-HOWTO-html.tar.gz<BR>
| | | |-- ELF-HOWTO-html.tar.gz<BR>
| | | |-- Emacspeak-HOWTO-html.tar.gz<BR>
| | | |-- Ethernet-HOWTO-html.tar.gz<BR>
| | | |-- Finnish-HOWTO-html.tar.gz<BR>
| | | |-- Firewall-HOWTO-html.tar.gz<BR>
| | | |-- Ftape-HOWTO-html.tar.gz<BR>
| | | |-- GCC-HOWTO-html.tar.gz<BR>
| | | |-- German-HOWTO-html.tar.gz<BR>
| | | |-- HAM-HOWTO-html.tar.gz<BR>
| | | |-- HOWTO-INDEX-html.tar.gz<BR>
| | | |-- Hardware-HOWTO-html.tar.gz<BR>
| | | |-- Hebrew-HOWTO-html.tar.gz<BR>
| | | |-- INFO-SHEET-html.tar.gz<BR>
| | | |-- IPX-HOWTO-html.tar.gz<BR>
| | | |-- ISP-Hookup-HOWTO-html.tar.gz<BR>
| | | |-- Installation-HOWTO-html.tar.gz<BR>
| | | |-- Italian-HOWTO-html.tar.gz<BR>
| | | |-- Java-HOWTO-html.tar.gz<BR>
| | | |-- Jave-HOWTO-html.tar.gz<BR>
| | | |-- Kernel-HOWTO-html.tar.gz<BR>
| | | |-- Keyboard-HOWTO-html.tar.gz<BR>
| | | |-- META-FAQ-html.tar.gz<BR>
| | | |-- MGR-HOWTO-html.tar.gz<BR>
| | | |-- Mail-HOWTO-html.tar.gz<BR>
| | | |-- Module-HOWTO-html.tar.gz<BR>
| | | |-- NET-2-HOWTO-html.tar.gz<BR>
| | | |-- NIS-HOWTO-html.tar.gz<BR>
| | | |-- News-HOWTO-html.tar.gz<BR>
| | | |-- PCI-HOWTO-html.tar.gz<BR>
| | | |-- PCMCIA-HOWTO-html.tar.gz<BR>
| | | |-- PPP-HOWTO-html.tar.gz<BR>
| | | |-- Polish-HOWTO-html.tar.gz<BR>
| | | |-- Portuguese-HOWTO-html.tar.gz<BR>
| | | |-- Printing-HOWTO-html.tar.gz<BR>
| | | |-- Printing-Usage-HOWTO-html.tar.gz<BR>
| | | |-- SCSI-Programming-HOWTO-html.tar.gz<BR>
| | | |-- SMB-HOWTO-html.tar.gz<BR>
| | | |-- Serial-HOWTO-html.tar.gz<BR>
| | | |-- Shadow-Password-HOWTO-html.tar.gz<BR>
| | | |-- Sound-HOWTO-html.tar.gz<BR>
| | | |-- Sound-Playing-HOWTO-html.tar.gz<BR>
| | | |-- Spanish-HOWTO-html.tar.gz<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- Term-HOWTO-html.tar.gz<BR>
| | | |-- Tips-HOWTO-html.tar.gz<BR>
| | | |-- UMSDOS-HOWTO-html.tar.gz<BR>
| | | |-- UPS-HOWTO-html.tar.gz<BR>
| | | |-- UUCP-HOWTO-html.tar.gz<BR>
| | | `-- XFree86-HOWTO-html.tar.gz<BR>
| | |-- ps<BR>
| | | |-- AX25-HOWTO.ps.gz<BR>
| | | |-- Access-HOWTO.ps.gz<BR>
| | | |-- BootPrompt-HOWTO.ps.gz<BR>
| | | |-- Bootdisk-HOWTO.ps.gz<BR>
| | | |-- Busmouse-HOWTO.ps.gz<BR>
| | | |-- CDROM-HOWTO.ps.gz<BR>
| | | |-- Commercial-HOWTO.ps.gz<BR>
| | | |-- Cyrillic-HOWTO.ps.gz<BR>
| | | |-- DNS-HOWTO.ps.gz<BR>
| | | |-- DOSEMU-HOWTO.ps.gz<BR>
| | | |-- Danish-HOWTO.ps.gz<BR>
| | | |-- Distribution-HOWTO.ps.gz<BR>
| | | |-- ELF-HOWTO.ps.gz<BR>
| | | |-- Emacspeak-HOWTO.ps.gz<BR>
| | | |-- Ethernet-HOWTO.ps.gz<BR>
| | | |-- Finnish-HOWTO.ps.gz<BR>
| | | |-- Firewall-HOWTO.ps.gz<BR>
| | | |-- Ftape-HOWTO.ps.gz<BR>
| | | |-- GCC-HOWTO.ps.gz<BR>
| | | |-- German-HOWTO.ps.gz<BR>
| | | |-- HAM-HOWTO.ps.gz<BR>
| | | |-- HOWTO-INDEX.ps.gz<BR>
| | | |-- Hardware-HOWTO.ps.gz<BR>
| | | |-- Hebrew-HOWTO.ps.gz<BR>
| | | |-- INFO-SHEET.ps.gz<BR>
| | | |-- IPX-HOWTO.ps.gz<BR>
| | | |-- ISP-Hookup-HOWTO.ps.gz<BR>
| | | |-- Installation-HOWTO.ps.gz<BR>
| | | |-- Italian-HOWTO.ps.gz<BR>
| | | |-- Java-HOWTO.ps.gz<BR>
| | | |-- Kernel-HOWTO.ps.gz<BR>
| | | |-- Keyboard-HOWTO.ps.gz<BR>
| | | |-- META-FAQ.ps.gz<BR>
| | | |-- MGR-HOWTO.ps.gz<BR>
| | | |-- Mail-HOWTO.ps.gz<BR>
| | | |-- Module-HOWTO.ps.gz<BR>
| | | |-- NET-2-HOWTO.ps.gz<BR>
| | | |-- NIS-HOWTO.ps.gz<BR>
| | | |-- News-HOWTO.ps.gz<BR>
| | | |-- PCI-HOWTO.ps.gz<BR>
| | | |-- PCMCIA-HOWTO.ps.gz<BR>
| | | |-- PPP-HOWTO.ps.gz<BR>
| | | |-- Polish-HOWTO.ps.gz<BR>
| | | |-- Portuguese-HOWTO.ps.gz<BR>
| | | |-- Printing-HOWTO.ps.gz<BR>
| | | |-- Printing-Usage-HOWTO.ps.gz<BR>
| | | |-- README<BR>
| | | |-- SCSI-Programming-HOWTO.ps.gz<BR>
| | | |-- SMB-HOWTO.ps.gz<BR>
| | | |-- Serial-HOWTO.ps.gz<BR>
| | | |-- Shadow-Password-HOWTO.ps.gz<BR>
| | | |-- Sound-HOWTO.ps.gz<BR>
| | | |-- Sound-Playing-HOWTO.ps.gz<BR>
| | | |-- Spanish-HOWTO.ps.gz<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- Term-HOWTO.ps.gz<BR>
| | | |-- Tips-HOWTO.ps.gz<BR>
| | | |-- UMSDOS-HOWTO.ps.gz<BR>
| | | |-- UPS-HOWTO.ps.gz<BR>
| | | |-- UUCP-HOWTO.ps.gz<BR>
| | | `-- XFree86-HOWTO.ps.gz<BR>
| | `-- sgml<BR>
| | |-- AX25-HOWTO.sgml.gz<BR>
| | |-- Access-HOWTO.sgml.gz<BR>
| | |-- BootPrompt-HOWTO.sgml.gz<BR>
| | |-- Bootdisk-HOWTO.sgml.gz<BR>
| | |-- Busmouse-HOWTO.sgml.gz<BR>
| | |-- CDROM-HOWTO.sgml.gz<BR>
| | |-- Commercial-HOWTO.sgml.gz<BR>
| | |-- Cyrillic-HOWTO.sgml.gz<BR>
| | |-- DNS-HOWTO.sgml.gz<BR>
| | |-- DOSEMU-HOWTO.sgml.gz<BR>
| | |-- Danish-HOWTO.sgml.gz<BR>
| | |-- Distribution-HOWTO.sgml.gz<BR>
| | |-- ELF-HOWTO.sgml.gz<BR>
| | |-- Emacspeak-HOWTO.sgml.gz<BR>
| | |-- Ethernet-HOWTO.sgml.gz<BR>
| | |-- Finnish-HOWTO.sgml.gz<BR>
| | |-- Firewall-HOWTO.sgml.gz<BR>
| | |-- Ftape-HOWTO.sgml.gz<BR>
| | |-- GCC-HOWTO.sgml.gz<BR>
| | |-- German-HOWTO.sgml.gz<BR>
| | |-- HAM-HOWTO.sgml.gz<BR>
| | |-- HOWTO-INDEX.sgml.gz<BR>
| | |-- Hardware-HOWTO.sgml.gz<BR>
| | |-- Hebrew-HOWTO.sgml.gz<BR>
| | |-- INFO-SHEET.sgml.gz<BR>
| | |-- IPX-HOWTO.sgml.gz<BR>
| | |-- ISP-Hookup-HOWTO.sgml.gz<BR>
| | |-- Installation-HOWTO.sgml.gz<BR>
| | |-- Italian-HOWTO.sgml.gz<BR>
| | |-- Java-HOWTO.sgml.gz<BR>
| | |-- Kernel-HOWTO.sgml.gz<BR>
| | |-- Keyboard-HOWTO.sgml.gz<BR>
| | |-- META-FAQ.sgml.gz<BR>
| | |-- MGR-HOWTO.sgml.gz<BR>
| | |-- Mail-HOWTO.sgml.gz<BR>
| | |-- Module-HOWTO.sgml.gz<BR>
| | |-- NET-2-HOWTO.sgml.gz<BR>
| | |-- NIS-HOWTO.sgml.gz<BR>
| | |-- News-HOWTO.sgml.gz<BR>
| | |-- PCI-HOWTO.sgml.gz<BR>
| | |-- PCMCIA-HOWTO.sgml.gz<BR>
| | |-- PPP-HOWTO.sgml.gz<BR>
| | |-- Polish-HOWTO.sgml.gz<BR>
| | |-- Portuguese-HOWTO.sgml.gz<BR>
| | |-- Printing-HOWTO.sgml.gz<BR>
| | |-- Printing-Usage-HOWTO.sgml.gz<BR>
| | |-- README<BR>
| | |-- SCSI-Programming-HOWTO.sgml.gz<BR>
| | |-- SMB-HOWTO.sgml.gz<BR>
| | |-- Serial-HOWTO.sgml.gz<BR>
| | |-- Shadow-Password-HOWTO.sgml.gz<BR>
| | |-- Sound-HOWTO.sgml.gz<BR>
| | |-- Sound-Playing-HOWTO.sgml.gz<BR>
| | |-- Spanish-HOWTO.sgml.gz<BR>
| | |-- TRANS.TBL<BR>
| | |-- Term-HOWTO.sgml.gz<BR>
| | |-- Tips-HOWTO.sgml.gz<BR>
| | |-- UMSDOS-HOWTO.sgml.gz<BR>
| | |-- UPS-HOWTO.sgml.gz<BR>
| | |-- UUCP-HOWTO.sgml.gz<BR>
| | |-- XFree86-HOWTO.sgml.gz<BR>
| | `-- mini<BR>
| | |-- ADSM-Backup.sgml.gz<BR>
| | =20 |-- Colour-ls.sgml.gz<BR>
| | |-- Diskless.sgml.gz<BR>
| | |-- HTML-Validation.sgml.gz<BR>
| | |-- HTTP+Netware.sgml.gz<BR>
| | |-- IP-Masquerade.sgml.gz<BR>
| | |-- Java-WorkShop.sgml.gz<BR>
| | |-- Large-Disk.sgml.gz<BR>
| | |-- Locales.sgml.gz<BR>
| | |-- NFS-Root.sgml.gz<BR>
| | |-- README<BR>
| | |-- TRANS.TBL<BR>
| | |-- Upgrade.sgml.gz<BR>
| | |-- Visual-Bell.sgml.gz<BR>
| | |-- XFree86-XInside.sgml.gz<BR>
| | `-- ZIP-Drive.sgml.gz<BR>
| |-- HTML<BR>
| | |-- TRANS.TBL<BR>
| | |-- index.html<BR>
| | |-- ldp<BR>
| | | |-- BootPrompt-HOWTO-1.html<BR>
| | | |-- BootPrompt-HOWTO-2.html<BR>
| | | |-- BootPrompt-HOWTO-3.html<BR>
| | | |-- BootPrompt-HOWTO-4.html<BR>
| | | |-- BootPrompt-HOWTO-5.html<BR>
| | | |-- BootPrompt-HOWTO-6.html<BR>
| | | |-- BootPrompt-HOWTO-7.html<BR>
| | | |-- BootPrompt-HOWTO-8.html<BR>
| | | |-- BootPrompt-HOWTO.html<BR>
| | | |-- Bootdisk-HOWTO-1.html<BR>
| | | |-- Bootdisk-HOWTO-2.html<BR>
| | | |-- Bootdisk-HOWTO-3.html<BR>
| | | |-- Bootdisk-HOWTO-4.html<BR>
| | | |-- Bootdisk-HOWTO-5.html<BR>
| | | |-- Bootdisk-HOWTO-6.html<BR>
| | | |-- Bootdisk-HOWTO.html<BR>
| | | |-- Busmouse-HOWTO-1.html<BR>
| | | |-- Busmouse-HOWTO-2.html<BR>
| | | |-- Busmouse-HOWTO-3.html<BR>
| | | |-- Busmouse-HOWTO-4.html<BR>
| | | |-- Busmouse-HOWTO-5.html<BR>
| | | |-- Busmouse-HOWTO.html<BR>
| | | |-- CDROM-HOWTO-1.html<BR>
| | | |-- CDROM-HOWTO-2.html<BR>
| | | |-- CDROM-HOWTO-3.html<BR>
| | | |-- CDROM-HOWTO-4.html<BR>
| | | |-- CDROM-HOWTO-5.html<BR>
| | | |-- CDROM-HOWTO-6.html<BR>
| | | |-- CDROM-HOWTO-7.html<BR>
| | | |-- CDROM-HOWTO.html<BR>
| | | |-- Commercial-HOWTO-1.html<BR>
| | | |-- Commercial-HOWTO-10.html<BR>
| | | |-- Commercial-HOWTO-2.html<BR>
| | | |-- Commercial-HOWTO-3.html<BR>
| | | |-- Commercial-HOWTO-4.html<BR>
| | | |-- Commercial-HOWTO-5.html<BR>
| | | |-- Commercial-HOWTO-6.html<BR>
| | | |-- Commercial-HOWTO-7.html<BR>
| | | |-- Commercial-HOWTO-8.html<BR>
| | | |-- Commercial-HOWTO-9.html<BR>
| | | |-- Commercial-HOWTO.html<BR>
| | | |-- Cyrillic-HOWTO-1.html<BR>
| | | |-- Cyrillic-HOWTO-2.html<BR>
| | | |-- Cyrillic-HOWTO-3.html<BR>
| | | |-- Cyrillic-HOWTO-4.html<BR>
| | | |-- Cyrillic-HOWTO-5.html<BR>
| | | |-- Cyrillic-HOWTO-6.html<BR>
| | | |-- Cyrillic-HOWTO-7.html<BR>
| | | |-- Cyrillic-HOWTO-8.html<BR>
| | | |-- Cyrillic-HOWTO-9.html<BR>
| | | |-- Cyrillic-HOWTO.html<BR>
| | | |-- DOSEMU-HOWTO-1.html<BR>
| | | |-- DOSEMU-HOWTO-10.html<BR>
| | | |-- DOSEMU-HOWTO-11.html<BR>
| | | |-- DOSEMU-HOWTO-12.html<BR>
| | | |-- DOSEMU-HOWTO-2.html<BR>
| | | |-- DOSEMU-HOWTO-3.html<BR>
| | | |-- DOSEMU-HOWTO-4.html<BR>
| | | |-- DOSEMU-HOWTO-5.html<BR>
| | | |-- DOSEMU-HOWTO-6.html<BR>
| | | |-- DOSEMU-HOWTO-7.html<BR>
| | | |-- DOSEMU-HOWTO-8.html<BR>
| | | |-- DOSEMU-HOWTO-9.html<BR>
| | | |-- DOSEMU-HOWTO.html<BR>
| | | |-- Danish-HOWTO-1.html<BR>
| | | |-- Danish-HOWTO-2.html<BR>
| | | |-- Danish-HOWTO-3.html<BR>
| | | |-- Danish-HOWTO-4.html<BR>
| | | |-- Danish-HOWTO.html<BR>
| | | |-- Distribution-HOWTO-1.html<BR>
| | | |-- Distribution-HOWTO-2.html<BR>
| | | |-- Distribution-HOWTO-3.html<BR>
| | | |-- Distribution-HOWTO-4.html<BR>
| | | |-- Distribution-HOWTO-5.html<BR>
| | | |-- Distribution-HOWTO-6.html<BR>
| | | |-- Distribution-HOWTO-7.html<BR>
| | | |-- Distribution-HOWTO-8.html<BR>
| | | |-- Distribution-HOWTO-9.html<BR>
| | | |-- Distribution-HOWTO.html<BR>
| | | |-- ELF-HOWTO-1.html<BR>
| | | |-- ELF-HOWTO-2.html<BR>
| | | |-- ELF-HOWTO-3.html<BR>
| | | |-- ELF-HOWTO-4.html<BR>
| | | |-- ELF-HOWTO-5.html<BR>
| | | |-- ELF-HOWTO-6.html<BR>
| | | |-- ELF-HOWTO.html<BR>
| | | |-- Ethernet-HOWTO-1.html<BR>
| | | |-- Ethernet-HOWTO-10.html<BR>
| | | |-- Ethernet-HOWTO-2.html<BR>
| | | |-- Ethernet-HOWTO-3.html<BR>
| | | |-- Ethernet-HOWTO-4.html<BR>
| | | |-- Ethernet-HOWTO-5.html<BR>
| | | |-- Ethernet-HOWTO-6.html<BR>
| | | |-- Ethernet-HOWTO-7.html<BR>
| | | |-- Ethernet-HOWTO-8.html<BR>
| | | |-- Ethernet-HOWTO-9.html<BR>
| | | |-- Ethernet-HOWTO.html<BR>
| | | |-- Firewall-HOWTO-1.html<BR>
| | | |-- Firewall-HOWTO-2.html<BR>
| | | |-- Firewall-HOWTO-3.html<BR>
| | | |-- Firewall-HOWTO-4.html<BR>
| | | |-- Firewall-HOWTO-5.html<BR>
| | | |-- Firewall-HOWTO-6.html<BR>
| | | |-- Firewall-HOWTO.html<BR>
| | | |-- Ftape-HOWTO-1.html<BR>
| | | |-- Ftape-HOWTO-2.html<BR>
| | | |-- Ftape-HOWTO-3.html<BR>
| | | |-- Ftape-HOWTO-4.html<BR>
| | | |-- Ftape-HOWTO-5.html<BR>
| | | |-- Ftape-HOWTO-6.html<BR>
| | | |-- Ftape-HOWTO-7.html<BR>
| | | |-- Ftape-HOWTO-8.html<BR>
| | | |-- Ftape-HOWTO-9.html<BR>
| | | |-- Ftape-HOWTO.html<BR>
| | | |-- German-HOWTO-1.html<BR>
| | | |-- German-HOWTO-10.html<BR>
| | | |-- German-HOWTO-11.html<BR>
| | | |-- German-HOWTO-12.html<BR>
| | | |-- German-HOWTO-13.html<BR>
| | | |-- German-HOWTO-14.html<BR>
| | | |-- German-HOWTO-15.html<BR>
| | | |-- German-HOWTO-2.html<BR>
| | | |-- German-HOWTO-3.html<BR>
| | | |-- German-HOWTO-4.html<BR>
| | | |-- German-HOWTO-5.html<BR>
| | | |-- German-HOWTO-6.html<BR>
| | | |-- German-HOWTO-7.html<BR>
| | | |-- German-HOWTO-8.html<BR>
| | | |-- German-HOWTO-9.html<BR>
| | | |-- German-HOWTO.html<BR>
| | | |-- HAM-HOWTO-1.html<BR>
| | | |-- HAM-HOWTO-10.html<BR>
| | | |-- HAM-HOWTO-11.html<BR>
| | | |-- HAM-HOWTO-12.html<BR>
| | | |-- HAM-HOWTO-13.html<BR>
| | | |-- HAM-HOWTO-14.html<BR>
| | | |-- HAM-HOWTO-15.html<BR>
| | | |-- HAM-HOWTO-16.html<BR>
| | | |-- HAM-HOWTO-17.html<BR>
| | | |-- HAM-HOWTO-2.html<BR>
| | | |-- HAM-HOWTO-3.html<BR>
| | | |-- HAM-HOWTO-4.html<BR>
| | | |-- HAM-HOWTO-5.html<BR>
| | | |-- HAM-HOWTO-6.html<BR>
| | | |-- HAM-HOWTO-7.html<BR>
| | | |-- HAM-HOWTO-8.html<BR>
| | | |-- HAM-HOWTO-9.html<BR>
| | | |-- HAM-HOWTO.html<BR>
| | | |-- HOWTO-INDEX-1.html<BR>
| | | |-- HOWTO-INDEX-2.html<BR>
| | | |-- HOWTO-INDEX-3.html<BR>
| | | |-- HOWTO-INDEX-4.html<BR>
| | | |-- HOWTO-INDEX-5.html<BR>
| | | |-- HOWTO-INDEX.html<BR>
| | | |-- Hardware-HOWTO-1.html<BR>
| | | |-- Hardware-HOWTO-10.html<BR>
| | | |-- Hardware-HOWTO-11.html<BR>
| | | |-- Hardware-HOWTO-12.html<BR>
| | | |-- Hardware-HOWTO-13.html<BR>
| | | |-- Hardware-HOWTO-14.html<BR>
| | | |-- Hardware-HOWTO-15.html<BR>
| | | |-- Hardware-HOWTO-16.html<BR>
| | | |-- Hardware-HOWTO-17.html<BR>
| | | |-- Hardware-HOWTO-18.html<BR>
| | | |-- Hardware-HOWTO-19.html<BR>
| | | |-- Hardware-HOWTO-2.html<BR>
| | | |-- Hardware-HOWTO-20.html<BR>
| | | |-- Hardware-HOWTO-21.html<BR>
| | | |-- Hardware-HOWTO-22.html<BR>
| | | |-- Hardware-HOWTO-23.html<BR>
| | | |-- Hardware-HOWTO-24.html<BR>
| | | |-- Hardware-HOWTO-3.html<BR>
| | | |-- Hardware-HOWTO-4.html<BR>
| | | |-- Hardware-HOWTO-5.html<BR>
| | | |-- Hardware-HOWTO-6.html<BR>
| | | |-- Hardware-HOWTO-7.html<BR>
| | | |-- Hardware-HOWTO-8.html<BR>
| | | |-- Hardware-HOWTO-9.html<BR>
| | | |-- Hardware-HOWTO.html<BR>
| | | |-- Hebrew-HOWTO-1.html<BR>
| | | |-- Hebrew-HOWTO-2.html<BR>
| | | |-- Hebrew-HOWTO-3.html<BR>
| | | |-- Hebrew-HOWTO-4.html<BR>
| | | |-- Hebrew-HOWTO-5.html<BR>
| | | |-- Hebrew-HOWTO-6.html<BR>
| | | |-- Hebrew-HOWTO-7.html<BR>
| | | |-- Hebrew-HOWTO-8.html<BR>
| | | |-- Hebrew-HOWTO-9.html<BR>
| | | |-- Hebrew-HOWTO.html<BR>
| | | |-- INFO-SHEET-1.html<BR>
| | | |-- INFO-SHEET-10.html<BR>
| | | |-- INFO-SHEET-11.html<BR>
| | | |-- INFO-SHEET-12.html<BR>
| | | |-- INFO-SHEET-2.html<BR>
| | | |-- INFO-SHEET-3.html<BR>
| | | |-- INFO-SHEET-4.html<BR>
| | | |-- INFO-SHEET-5.html<BR>
| | | |-- INFO-SHEET-6.html<BR>
| | | |-- INFO-SHEET-7.html<BR>
| | | |-- INFO-SHEET-8.html<BR>
| | | |-- INFO-SHEET-9.html<BR>
| | | |-- INFO-SHEET.html<BR>
| | | |-- IPX-HOWTO-1.html<BR>
| | | |-- IPX-HOWTO-10.html<BR>
| | | |-- IPX-HOWTO-11.html<BR>
| | | |-- IPX-HOWTO-12.html<BR>
| | | |-- IPX-HOWTO-13.html<BR>
| | | |-- IPX-HOWTO-2.html<BR>
| | | |-- IPX-HOWTO-3.html<BR>
| | | |-- IPX-HOWTO-4.html<BR>
| | | |-- IPX-HOWTO-5.html<BR>
| | | |-- IPX-HOWTO-6.html<BR>
| | | |-- IPX-HOWTO-7.html<BR>
| | | |-- IPX-HOWTO-8.html<BR>
| | | |-- IPX-HOWTO-9.html<BR>
| | | |-- IPX-HOWTO.html<BR>
| | | |-- Installation-HOWTO-1.html<BR>
| | | |-- Installation-HOWTO-2.html<BR>
| | | |-- Installation-HOWTO-3.html<BR>
| | | |-- Installation-HOWTO-4.html<BR>
| | | |-- Installation-HOWTO-5.html<BR>
| | | |-- Installation-HOWTO-6.html<BR>
| | | |-- Installation-HOWTO.html<BR>
| | | |-- Italian-HOWTO-1.html<BR>
| | | |-- Italian-HOWTO-2.html<BR>
| | | |-- Italian-HOWTO-3.html<BR>
| | | |-- Italian-HOWTO-4.html<BR>
| | | |-- Italian-HOWTO-5.html<BR>
| | | |-- Italian-HOWTO-6.html<BR>
| | | |-- Italian-HOWTO-7.html<BR>
| | | |-- Italian-HOWTO-8.html<BR>
| | | |-- Italian-HOWTO.html<BR>
| | | |-- Java-HOWTO-1.html<BR>
| | | |-- Java-HOWTO-10.html<BR>
| | | |-- Java-HOWTO-2.html<BR>
| | | |-- Java-HOWTO-3.html<BR>
| | | |-- Java-HOWTO-4.html<BR>
| | | |-- Java-HOWTO-5.html<BR>
| | | |-- Java-HOWTO-6.html<BR>
| | | |-- Java-HOWTO-7.html<BR>
| | | |-- Java-HOWTO-8.html<BR>
| | | |-- Java-HOWTO-9.html<BR>
| | | |-- Java-HOWTO.html<BR>
| | | |-- Jave-HOWTO-1.html<BR>
| | | |-- Jave-HOWTO-2.html<BR>
| | | |-- Jave-HOWTO-3.html<BR>
| | | |-- Jave-HOWTO-4.html<BR>
| | | |-- Jave-HOWTO-5.html<BR>
| | | |-- Jave-HOWTO-6.html<BR>
| | | |-- Jave-HOWTO-7.html<BR>
| | | |-- Jave-HOWTO-8.html<BR>
| | | |-- Jave-HOWTO-9.html<BR>
| | | |-- Jave-HOWTO.html<BR>
| | | |-- Kernel-HOWTO-1.html<BR>
| | | |-- Kernel-HOWTO-10.html<BR>
| | | |-- Kernel-HOWTO-11.html<BR>
| | | |-- Kernel-HOWTO-2.html<BR>
| | | |-- Kernel-HOWTO-3.html<BR>
| | | |-- Kernel-HOWTO-4.html<BR>
| | | |-- Kernel-HOWTO-5.html<BR>
| | | |-- Kernel-HOWTO-6.html<BR>
| | | |-- Kernel-HOWTO-7.html<BR>
| | | |-- Kernel-HOWTO-8.html<BR>
| | | |-- Kernel-HOWTO-9.html<BR>
| | | |-- Kernel-HOWTO.html<BR>
| | | |-- Keyboard-HOWTO-1.html<BR>
| | | |-- Keyboard-HOWTO-10.html<BR>
| | | |-- Keyboard-HOWTO-11.html<BR>
| | | |-- Keyboard-HOWTO-12.html<BR>
| | | |-- Keyboard-HOWTO-13.html<BR>
| | | |-- Keyboard-HOWTO-14.html<BR>
| | | |-- Keyboard-HOWTO-15.html<BR>
| | | |-- Keyboard-HOWTO-16.html<BR>
| | | |-- Keyboard-HOWTO-17.html<BR>
| | | |-- Keyboard-HOWTO-18.html<BR>
| | | |-- Keyboard-HOWTO-19.html<BR>
| | | |-- Keyboard-HOWTO-2.html<BR>
| | | |-- Keyboard-HOWTO-20.html<BR>
| | | |-- Keyboard-HOWTO-3.html<BR>
| | | |-- Keyboard-HOWTO-4.html<BR>
| | | |-- Keyboard-HOWTO-5.html<BR>
| | | |-- Keyboard-HOWTO-6.html<BR>
| | | |-- Keyboard-HOWTO-7.html<BR>
| | | |-- Keyboard-HOWTO-8.html<BR>
| | | |-- Keyboard-HOWTO-9.html<BR>
| | | |-- Keyboard-HOWTO.html<BR>
| | | |-- META-FAQ-1.html<BR>
| | | |-- META-FAQ-10.html<BR>
| | | |-- META-FAQ-2.html<BR>
| | | |-- META-FAQ-3.html<BR>
| | | |-- META-FAQ-4.html<BR>
| | | |-- META-FAQ-5.html<BR>
| | | |-- META-FAQ-6.html<BR>
| | | |-- META-FAQ-7.html<BR>
| | | |-- META-FAQ-8.html<BR>
| | | |-- META-FAQ-9.html<BR>
| | | |-- META-FAQ.html<BR>
| | | |-- MGR-HOWTO-1.html<BR>
| | | |-- MGR-HOWTO-2.html<BR>
| | | |-- MGR-HOWTO-3.html<BR>
| | | |-- MGR-HOWTO-4.html<BR>
| | | |-- MGR-HOWTO-5.html<BR>
| | | |-- MGR-HOWTO-6.html<BR>
| | | |-- MGR-HOWTO-7.html<BR>
| | | |-- MGR-HOWTO.html<BR>
| | | |-- Mail-HOWTO-1.html<BR>
| | | |-- Mail-HOWTO-2.html<BR>
| | | |-- Mail-HOWTO-3.html<BR>
| | | |-- Mail-HOWTO-4.html<BR>
| | | |-- Mail-HOWTO-5.html<BR>
| | | |-- Mail-HOWTO-6.html<BR>
| | | |-- Mail-HOWTO.html<BR>
| | | |-- NET-2-HOWTO-1.html<BR>
| | | |-- NET-2-HOWTO-10.html<BR>
| | | |-- NET-2-HOWTO-11.html<BR>
| | | |-- NET-2-HOWTO-12.html<BR>
| | | |-- NET-2-HOWTO-13.html<BR>
| | | |-- NET-2-HOWTO-14.html<BR>
| | | |-- NET-2-HOWTO-15.html<BR>
| | | |-- NET-2-HOWTO-16.html<BR>
| | | |-- NET-2-HOWTO-17.html<BR>
| | | |-- NET-2-HOWTO-18.html<BR>
| | | |-- NET-2-HOWTO-19.html<BR>
| | | |-- NET-2-HOWTO-2.html<BR>
| | | |-- NET-2-HOWTO-3.html<BR>
| | | |-- NET-2-HOWTO-4.html<BR>
| | | |-- NET-2-HOWTO-5.html<BR>
| | | |-- NET-2-HOWTO-6.html<BR>
| | | |-- NET-2-HOWTO-7.html<BR>
| | | |-- NET-2-HOWTO-8.html<BR>
| | | |-- NET-2-HOWTO-9.html<BR>
| | | |-- NET-2-HOWTO.html<BR>
| | | |-- NIS-HOWTO-1.html<BR>
| | | |-- NIS-HOWTO-10.html<BR>
| | | |-- NIS-HOWTO-2.html<BR>
| | | |-- NIS-HOWTO-3.html<BR>
| | | |-- NIS-HOWTO-4.html<BR>
| | | |-- NIS-HOWTO-5.html<BR>
| | | |-- NIS-HOWTO-6.html<BR>
| | | |-- NIS-HOWTO-7.html<BR>
| | | |-- NIS-HOWTO-8.html<BR>
| | | |-- NIS-HOWTO-9.html<BR>
| | | |-- NIS-HOWTO.html<BR>
| | | |-- News-HOWTO-1.html<BR>
| | | |-- News-HOWTO-2.html<BR>
| | | |-- News-HOWTO-3.html<BR>
| | | |-- News-HOWTO-4.html<BR>
| | | |-- News-HOWTO-5.html<BR>
| | | |-- News-HOWTO-6.html<BR>
| | | |-- News-HOWTO-7.html<BR>
| | | |-- News-HOWTO.html<BR>
| | | |-- PCI-HOWTO-1.html<BR>
| | | |-- PCI-HOWTO-10.html<BR>
| | | |-- PCI-HOWTO-11.html<BR>
| | | |-- PCI-HOWTO-12.html<BR>
| | | |-- PCI-HOWTO-13.html<BR>
| | | |-- PCI-HOWTO-2.html<BR>
| | | |-- PCI-HOWTO-3.html<BR>
| | | |-- PCI-HOWTO-4.html<BR>
| | | |-- PCI-HOWTO-5.html<BR>
| | | |-- PCI-HOWTO-6.html<BR>
| | | |-- PCI-HOWTO-7.html<BR>
| | | |-- PCI-HOWTO-8.html<BR>
| | | |-- PCI-HOWTO-9.html<BR>
| | | |-- PCI-HOWTO.html<BR>
| | | |-- PCMCIA-HOWTO-1.html<BR>
| | | |-- PCMCIA-HOWTO-2.html<BR>
| | | |-- PCMCIA-HOWTO-3.html<BR>
| | | |-- PCMCIA-HOWTO-4.html<BR>
| | | |-- PCMCIA-HOWTO-5.html<BR>
| | | |-- PCMCIA-HOWTO.html<BR>
| | | |-- PPP-HOWTO-1.html<BR>
| | | |-- PPP-HOWTO-10.html<BR>
| | | |-- PPP-HOWTO-11.html<BR>
| | | |-- PPP-HOWTO-12.html<BR>
| | | |-- PPP-HOWTO-13.html<BR>
| | | |-- PPP-HOWTO-14.html<BR>
| | | |-- PPP-HOWTO-15.html<BR>
| | | |-- PPP-HOWTO-16.html<BR>
| | | |-- PPP-HOWTO-17.html<BR>
| | | |-- PPP-HOWTO-2.html<BR>
| | | |-- PPP-HOWTO-3.html<BR>
| | | |-- PPP-HOWTO-4.html<BR>
| | | |-- PPP-HOWTO-5.html<BR>
| | | |-- PPP-HOWTO-6.html<BR>
| | | |-- PPP-HOWTO-7.html<BR>
| | | |-- PPP-HOWTO-8.html<BR>
| | | |-- PPP-HOWTO-9.html<BR>
| | | |-- PPP-HOWTO.html<BR>
| | | |-- Portuguese-HOWTO-1.html<BR>
| | | |-- Portuguese-HOWTO-2.html<BR>
| | | |-- Portuguese-HOWTO-3.html<BR>
| | | |-- Portuguese-HOWTO-4.html<BR>
| | | |-- Portuguese-HOWTO-5.html<BR>
| | | |-- Portuguese-HOWTO-6.html<BR>
| | | |-- Portuguese-HOWTO-7.html<BR>
| | | |-- Portuguese-HOWTO.html<BR>
| | | |-- Printing-HOWTO-1.html<BR>
| | | |-- Printing-HOWTO-10.html<BR>
| | | |-- Printing-HOWTO-11.html<BR>
| | | |-- Printing-HOWTO-12.html<BR>
| | | |-- Printing-HOWTO-2.html<BR>
| | | |-- Printing-HOWTO-3.html<BR>
| | | |-- Printing-HOWTO-4.html<BR>
| | | |-- Printing-HOWTO-5.html<BR>
| | | |-- Printing-HOWTO-6.html<BR>
| | | |-- Printing-HOWTO-7.html<BR>
| | | |-- Printing-HOWTO-8.html<BR>
| | | |-- Printing-HOWTO-9.html<BR>
| | | |-- Printing-HOWTO.html<BR>
| | | |-- Printing-Usage-HOWTO-1.html<BR>
| | | |-- Printing-Usage-HOWTO-2.html<BR>
| | | |-- Printing-Usage-HOWTO-3.html<BR>
| | | |-- Printing-Usage-HOWTO-4.html<BR>
| | | |-- Printing-Usage-HOWTO-5.html<BR>
| | | |-- Printing-Usage-HOWTO-6.html<BR>
| | | |-- Printing-Usage-HOWTO-7.html<BR>
| | | |-- Printing-Usage-HOWTO.html<BR>
| | | |-- SCSI-Programming-HOWTO-1.html<BR>
| | | |-- SCSI-Programming-HOWTO-10.html<BR>
| | | |-- SCSI-Programming-HOWTO-11.html<BR>
| | | |-- SCSI-Programming-HOWTO-12.html<BR>
| | | |-- SCSI-Programming-HOWTO-13.html<BR>
| | | |-- SCSI-Programming-HOWTO-14.html<BR>
| | | |-- SCSI-Programming-HOWTO-15.html<BR>
| | | |-- SCSI-Programming-HOWTO-16.html<BR>
| | | |-- SCSI-Programming-HOWTO-17.html<BR>
| | | |-- SCSI-Programming-HOWTO-18.html<BR>
| | | |-- SCSI-Programming-HOWTO-19.html<BR>
| | | |-- SCSI-Programming-HOWTO-2.html<BR>
| | | |-- SCSI-Programming-HOWTO-20.html<BR>
| | | |-- SCSI-Programming-HOWTO-21.html<BR>
| | | |-- SCSI-Programming-HOWTO-22.html<BR>
| | | |-- SCSI-Programming-HOWTO-23.html<BR>
| | | |-- SCSI-Programming-HOWTO-3.html<BR>
| | | |-- SCSI-Programming-HOWTO-4.html<BR>
| | | |-- SCSI-Programming-HOWTO-5.html<BR>
| | | |-- SCSI-Programming-HOWTO-6.html<BR>
| | | |-- SCSI-Programming-HOWTO-7.html<BR>
| | | |-- SCSI-Programming-HOWTO-8.html<BR>
| | | |-- SCSI-Programming-HOWTO-9.html<BR>
| | | |-- SCSI-Programming-HOWTO.html<BR>
| | | |-- Serial-HOWTO-1.html<BR>
| | | |-- Serial-HOWTO-10.html<BR>
| | | |-- Serial-HOWTO-11.html<BR>
| | | |-- Serial-HOWTO-12.html<BR>
| | | |-- Serial-HOWTO-13.html<BR>
| | | |-- Serial-HOWTO-14.html<BR>
| | | |-- Serial-HOWTO-15.html<BR>
| | | |-- Serial-HOWTO-16.html<BR>
| | | |-- Serial-HOWTO-2.html<BR>
| | | |-- Serial-HOWTO-3.html<BR>
| | | |-- Serial-HOWTO-4.html<BR>
| | | |-- Serial-HOWTO-5.html<BR>
| | | |-- Serial-HOWTO-6.html<BR>
| | | |-- Serial-HOWTO-7.html<BR>
| | | |-- Serial-HOWTO-8.html<BR>
| | | |-- Serial-HOWTO-9.html<BR>
| | | |-- Serial-HOWTO.html<BR>
| | | |-- Shadow-Password-HOWTO-1.html<BR>
| | | |-- Shadow-Password-HOWTO-2.html<BR>
| | | |-- Shadow-Password-HOWTO-3.html<BR>
| | | |-- Shadow-Password-HOWTO-4.html<BR>
| | | |-- Shadow-Password-HOWTO-5.html<BR>
| | | |-- Shadow-Password-HOWTO-6.html<BR>
| | | |-- Shadow-Password-HOWTO-7.html<BR>
| | | |-- Shadow-Password-HOWTO-8.html<BR>
| | | |-- Shadow-Password-HOWTO-9.html<BR>
| | | |-- Shadow-Password-HOWTO.html<BR>
| | | |-- Sound-HOWTO-1.html<BR>
| | | |-- Sound-HOWTO-2.html<BR>
| | | |-- Sound-HOWTO-3.html<BR>
| | | |-- Sound-HOWTO-4.html<BR>
| | | |-- Sound-HOWTO-5.html<BR>
| | | |-- Sound-HOWTO-6.html<BR>
| | | |-- Sound-HOWTO-7.html<BR>
| | | |-- Sound-HOWTO.html<BR>
| | | |-- Sound-Playing-HOWTO-1.html<BR>
| | | |-- Sound-Playing-HOWTO-2.html<BR>
| | | |-- Sound-Playing-HOWTO-3.html<BR>
| | | |-- Sound-Playing-HOWTO-4.html<BR>
| | | |-- Sound-Playing-HOWTO.html<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- Term-HOWTO-1.html<BR>
| | | |-- Term-HOWTO-10.html<BR>
| | | |-- Term-HOWTO-11.html<BR>
| | | |-- Term-HOWTO-12.html<BR>
| | | |-- Term-HOWTO-13.html<BR>
| | | |-- Term-HOWTO-14.html<BR>
| | | |-- Term-HOWTO-15.html<BR>
| | | |-- Term-HOWTO-16.html<BR>
| | | |-- Term-HOWTO-17.html<BR>
| | | |-- Term-HOWTO-18.html<BR>
| | | |-- Term-HOWTO-2.html<BR>
| | | |-- Term-HOWTO-3.html<BR>
| | | |-- Term-HOWTO-4.html<BR>
| | | |-- Term-HOWTO-5.html<BR>
| | | |-- Term-HOWTO-6.html<BR>
| | | |-- Term-HOWTO-7.html<BR>
| | | |-- Term-HOWTO-8.html<BR>
| | | |-- Term-HOWTO-9.html<BR>
| | | |-- Term-HOWTO.html<BR>
| | | |-- Tips-HOWTO-1.html<BR>
| | | |-- Tips-HOWTO-2.html<BR>
| | | |-- Tips-HOWTO-3.html<BR>
| | | |-- Tips-HOWTO.html<BR>
| | | |-- UMSDOS-HOWTO-1.html<BR>
| | | |-- UMSDOS-HOWTO-2.html<BR>
| | | |-- UMSDOS-HOWTO-3.html<BR>
| | | |-- UMSDOS-HOWTO-4.html<BR>
| | | |-- UMSDOS-HOWTO-5.html<BR>
| | | |-- UMSDOS-HOWTO-6.html<BR>
| | | |-- UMSDOS-HOWTO-7.html<BR>
| | | |-- UMSDOS-HOWTO-8.html<BR>
| | | |-- UMSDOS-HOWTO.html<BR>
| | | |-- UPS-HOWTO-1.html<BR>
| | | |-- UPS-HOWTO-10.html<BR>
| | | |-- UPS-HOWTO-11.html<BR>
| | | |-- UPS-HOWTO-12.html<BR>
| | | |-- UPS-HOWTO-2.html<BR>
| | | |-- UPS-HOWTO-3.html<BR>
| | | |-- UPS-HOWTO-4.html<BR>
| | | |-- UPS-HOWTO-5.html<BR>
| | | |-- UPS-HOWTO-6.html<BR>
| | | |-- UPS-HOWTO-7.html<BR>
| | | |-- UPS-HOWTO-8.html<BR>
| | | |-- UPS-HOWTO-9.html<BR>
| | | |-- UPS-HOWTO.html<BR>
| | | |-- UUCP-HOWTO-1.html<BR>
| | | |-- UUCP-HOWTO-2.html<BR>
| | | |-- UUCP-HOWTO-3.html<BR>
| | | |-- UUCP-HOWTO-4.html<BR>
| | | |-- UUCP-HOWTO-5.html<BR>
| | | |-- UUCP-HOWTO-6.html<BR>
| | | |-- UUCP-HOWTO.html<BR>
| | | |-- XFree86-HOWTO-1.html<BR>
| | | |-- XFree86-HOWTO-2.html<BR>
| | | |-- XFree86-HOWTO-3.html<BR>
| | | |-- XFree86-HOWTO-4.html<BR>
| | | |-- XFree86-HOWTO-5.html<BR>
| | | |-- XFree86-HOWTO-6.html<BR>
| | | |-- XFree86-HOWTO-7.html<BR>
| | | |-- XFree86-HOWTO-8.html<BR>
| | | |-- XFree86-HOWTO.html<BR>
| | | `-- install-guide-2.2.2.html<BR>
| | | |-- .ID_MAP.dir<BR>
| | | |-- .ID_MAP.pag<BR>
| | | |-- .IMG_PARAMS.dir<BR>
| | | |-- .IMG_PARAMS.pag<BR>
| | | |-- .ORIG_MAP.dir<BR>
| | | |-- .ORIG_MAP.pag<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- bdt.gif<BR>
| | | |-- change_begin.gif<BR>
| | | |-- change_delete.gif<BR>
| | | |-- change_end.gif<BR>
| | | |-- contents.xbm<BR>
| | | |-- contents_motif.gif<BR>
| | | |-- cross_ref_motif.gif<BR>
| | | |-- foot_motif.gif<BR>
| | | |-- footnode.html<BR>
| | | |-- gs.html<BR>
| | | |-- icons.html<BR>
| | | |-- image.gif<BR>
| | | |-- images.aux<BR>
| | | |-- images.idx<BR>
| | | |-- images.log<BR>
| | | |-- images.pl<BR>
| | | |-- images.tex<BR>
| | | |-- img1.gif<BR>
| | | |-- img10.gif<BR>
| | | |-- img100.gif<BR>
| | | |-- img101.gif<BR>
| | | |-- img102.gif<BR>
| | | |-- img103.gif<BR>
| | | |-- img104.gif<BR>
| | | |-- img105.gif<BR>
| | | |-- img106.gif<BR>
| | | |-- img107.gif<BR>
| | | |-- img108.gif<BR>
| | | |-- img109.gif<BR>
| | | |-- img11.gif<BR>
| | | |-- img110.gif<BR>
| | | |-- img111.gif<BR>
| | | |-- img112.gif<BR>
| | | |-- img113.gif<BR>
| | | |-- img114.gif<BR>
| | | |-- img115.gif<BR>
| | | |-- img116.gif<BR>
| | | |-- img117.gif<BR>
| | | |-- img118.gif<BR>
| | | |-- img119.gif<BR>
| | | |-- img12.gif<BR>
| | | |-- img120.gif<BR>
| | | |-- img121.gif<BR>
| | | |-- img122.gif<BR>
| | | |-- img123.gif<BR>
| | | |-- img124.gif<BR>
| | | |-- img125.gif<BR>
| | | |-- img126.gif<BR>
| | | |-- img127.gif<BR>
| | | |-- img128.gif<BR>
| | | |-- img129.gif<BR>
| | | |-- img13.gif<BR>
| | | |-- img130.gif<BR>
| | | |-- img131.gif<BR>
| | | |-- img132.gif<BR>
| | | |-- img133.gif<BR>
| | | |-- img134.gif<BR>
| | | |-- img135.gif<BR>
| | | |-- img136.gif<BR>
| | | |-- img137.gif<BR>
| | | |-- img138.gif<BR>
| | | |-- img139.gif<BR>
| | | |-- img14.gif<BR>
| | | |-- img140.gif<BR>
| | | |-- img141.gif<BR>
| | | |-- img142.gif<BR>
| | | |-- img143.gif<BR>
| | | |-- img144.gif<BR>
| | | |-- img145.gif<BR>
| | | |-- img146.gif<BR>
| | | |-- img147.gif<BR>
| | | |-- img148.gif<BR>
| | | |-- img149.gif<BR>
| | | |-- img15.gif<BR>
| | | |-- img150.gif<BR>
| | | |-- img151.gif<BR>
| | | |-- img152.gif<BR>
| | | |-- img153.gif<BR>
| | | |-- img154.gif<BR>
| | | |-- img155.gif<BR>
| | | |-- img156.gif<BR>
| | | |-- img157.gif<BR>
| | | |-- img158.gif<BR>
| | | |-- img159.gif<BR>
| | | |-- img16.gif<BR>
| | | |-- img160.gif<BR>
| | | |-- img161.gif<BR>
| | | |-- img162.gif<BR>
| | | |-- img163.gif<BR>
| | | |-- img164.gif<BR>
| | | |-- img165.gif<BR>
| | | |-- img166.gif<BR>
| | | |-- img167.gif<BR>
| | | |-- img168.gif<BR>
| | | |-- img169.gif<BR>
| | | |-- img17.gif<BR>
| | | |-- img170.gif<BR>
| | | |-- img171.gif<BR>
| | | |-- img172.gif<BR>
| | | |-- img173.gif<BR>
| | | |-- img174.gif<BR>
| | | |-- img175.gif<BR>
| | | |-- img176.gif<BR>
| | | |-- img177.gif<BR>
| | | |-- img178.gif<BR>
| | | |-- img179.gif<BR>
| | | |-- img18.gif<BR>
| | | |-- img180.gif<BR>
| | | |-- img181.gif<BR>
| | | |-- img182.gif<BR>
| | | |-- img183.gif<BR>
| | | |-- img184.gif<BR>
| | | |-- img185.gif<BR>
| | | |-- img186.gif<BR>
| | | |-- img187.gif<BR>
| | | |-- img188.gif<BR>
| | | |-- img189.gif<BR>
| | | |-- img19.gif<BR>
| | | |-- img190.gif<BR>
| | | |-- img191.gif<BR>
| | | |-- img192.gif<BR>
| | | |-- img193.gif<BR>
| | | |-- img194.gif<BR>
| | | |-- img195.gif<BR>
| | | |-- img196.gif<BR>
| | | |-- img197.gif<BR>
| | | |-- img198.gif<BR>
| | | |-- img199.gif<BR>
| | | |-- img2.gif<BR>
| | | |-- img20.gif<BR>
| | | |-- img200.gif<BR>
| | | |-- img201.gif<BR>
| | | |-- img202.gif<BR>
| | | |-- img203.gif<BR>
| | | |-- img204.gif<BR>
| | | |-- img205.gif<BR>
| | | |-- img206.gif<BR>
| | | |-- img207.gif<BR>
| | | |-- img208.gif<BR>
| | | |-- img209.gif<BR>
| | | |-- img21.gif<BR>
| | | |-- img210.gif<BR>
| | | |-- img211.gif<BR>
| | | |-- img212.gif<BR>
| | | |-- img213.gif<BR>
| | | |-- img214.gif<BR>
| | | |-- img215.gif<BR>
| | | |-- img216.gif<BR>
| | | |-- img217.gif<BR>
| | | |-- img218.gif<BR>
| | | |-- img219.gif<BR>
| | | |-- img22.gif<BR>
| | | |-- img220.gif<BR>
| | | |-- img221.gif<BR>
| | | |-- img222.gif<BR>
| | | |-- img223.gif<BR>
| | | |-- img224.gif<BR>
| | | |-- img225.gif<BR>
| | | |-- img226.gif<BR>
| | | |-- img227.gif<BR>
| | | |-- img228.gif<BR>
| | | |-- img229.gif<BR>
| | | |-- img23.gif<BR>
| | | |-- img230.gif<BR>
| | | |-- img231.gif<BR>
| | | |-- img232.gif<BR>
| | | |-- img233.gif<BR>
| | | |-- img234.gif<BR>
| | | |-- img235.gif<BR>
| | | |-- img236.gif<BR>
| | | |-- img237.gif<BR>
| | | |-- img238.gif<BR>
| | | |-- img239.gif<BR>
| | | |-- img24.gif<BR>
| | | |-- img240.gif<BR>
| | | |-- img241.gif<BR>
| | | |-- img242.gif<BR>
| | | |-- img243.gif<BR>
| | | |-- img244.gif<BR>
| | | |-- img245.gif<BR>
| | | |-- img246.gif<BR>
| | | |-- img247.gif<BR>
| | | |-- img248.gif<BR>
| | | |-- img249.gif<BR>
| | | |-- img25.gif<BR>
| | | |-- img250.gif<BR>
| | | |-- img251.gif<BR>
| | | |-- img252.gif<BR>
| | | |-- img253.gif<BR>
| | | |-- img254.gif<BR>
| | | |-- img255.gif<BR>
| | | |-- img256.gif<BR>
| | | |-- img257.gif<BR>
| | | |-- img258.gif<BR>
| | | |-- img259.gif<BR>
| | | |-- img26.gif<BR>
| | | |-- img260.gif<BR>
| | | |-- img261.gif<BR>
| | | |-- img262.gif<BR>
| | | |-- img263.gif<BR>
| | | |-- img264.gif<BR>
| | | |-- img265.gif<BR>
| | | |-- img266.gif<BR>
| | | |-- img267.gif<BR>
| | | |-- img268.gif<BR>
| | | |-- img269.gif<BR>
| | | |-- img27.gif<BR>
| | | |-- img270.gif<BR>
| | | |-- img271.gif<BR>
| | | |-- img272.gif<BR>
| | | |-- img273.gif<BR>
| | | |-- img274.gif<BR>
| | | |-- img275.gif<BR>
| | | |-- img276.gif<BR>
| | | |-- img277.gif<BR>
| | | |-- img278.gif<BR>
| | | |-- img279.gif<BR>
| | | |-- img28.gif<BR>
| | | |-- img280.gif<BR>
| | | |-- img281.gif<BR>
| | | |-- img282.gif<BR>
| | | |-- img283.gif<BR>
| | | |-- img284.gif<BR>
| | | |-- img285.gif<BR>
| | | |-- img286.gif<BR>
| | | |-- img287.gif<BR>
| | | |-- img288.gif<BR>
| | | |-- img289.gif<BR>
| | | |-- img29.gif<BR>
| | | |-- img290.gif<BR>
| | | |-- img291.gif<BR>
| | | |-- img292.gif<BR>
| | | |-- img293.gif<BR>
| | | |-- img294.gif<BR>
| | | |-- img295.gif<BR>
| | | |-- img296.gif<BR>
| | | |-- img297.gif<BR>
| | | |-- img298.gif<BR>
| | | |-- img299.gif<BR>
| | | |-- img3.gif<BR>
| | | |-- img30.gif<BR>
| | | |-- img300.gif<BR>
| | | |-- img301.gif<BR>
| | | |-- img302.gif<BR>
| | | |-- img303.gif<BR>
| | | |-- img304.gif<BR>
| | | |-- img305.gif<BR>
| | | |-- img306.gif<BR>
| | | |-- img307.gif<BR>
| | | |-- img308.gif<BR>
| | | |-- img309.gif<BR>
| | | |-- img31.gif<BR>
| | | |-- img310.gif<BR>
| | | |-- img311.gif<BR>
| | | |-- img312.gif<BR>
| | | |-- img313.gif<BR>
| | | |-- img314.gif<BR>
| | | |-- img315.gif<BR>
| | | |-- img316.gif<BR>
| | | |-- img317.gif<BR>
| | | |-- img318.gif<BR>
| | | |-- img319.gif<BR>
| | | |-- img32.gif<BR>
| | | |-- img320.gif<BR>
| | | |-- img33.gif<BR>
| | | |-- img34.gif<BR>
| | | |-- img35.gif<BR>
| | | |-- img36.gif<BR>
| | | |-- img37.gif<BR>
| | | |-- img38.gif<BR>
| | | |-- img39.gif<BR>
| | | |-- img4.gif<BR>
| | | |-- img40.gif<BR>
| | | |-- img41.gif<BR>
| | | |-- img42.gif<BR>
| | | |-- img43.gif<BR>
| | | |-- img44.gif<BR>
| | | |-- img45.gif<BR>
| | | |-- img46.gif<BR>
| | | |-- img47.gif<BR>
| | | |-- img48.gif<BR>
| | | |-- img49.gif<BR>
| | | |-- img5.gif<BR>
| | | |-- img50.gif<BR>
| | | |-- img51.gif<BR>
| | | |-- img52.gif<BR>
| | | |-- img53.gif<BR>
| | | |-- img54.gif<BR>
| | | |-- img55.gif<BR>
| | | |-- img56.gif<BR>
| | | |-- img57.gif<BR>
| | | |-- img58.gif<BR>
| | | |-- img59.gif<BR>
| | | |-- img6.gif<BR>
| | | |-- img60.gif<BR>
| | | |-- img61.gif<BR>
| | | |-- img62.gif<BR>
| | | |-- img63.gif<BR>
| | | |-- img64.gif<BR>
| | | |-- img65.gif<BR>
| | | |-- img66.gif<BR>
| | | |-- img67.gif<BR>
| | | |-- img68.gif<BR>
| | | |-- img69.gif<BR>
| | | |-- img7.gif<BR>
| | | |-- img70.gif<BR>
| | | |-- img71.gif<BR>
| | | |-- img72.gif<BR>
| | | |-- img73.gif<BR>
| | | |-- img74.gif<BR>
| | | |-- img75.gif<BR>
| | | |-- img76.gif<BR>
| | | |-- img77.gif<BR>
| | | |-- img78.gif<BR>
| | | |-- img79.gif<BR>
| | | |-- img8.gif<BR>
| | | |-- img80.gif<BR>
| | | |-- img81.gif<BR>
| | | |-- img82.gif<BR>
| | | |-- img83.gif<BR>
| | | |-- img84.gif<BR>
| | | |-- img85.gif<BR>
| | | |-- img86.gif<BR>
| | | |-- img87.gif<BR>
| | | |-- img88.gif<BR>
| | | |-- img89.gif<BR>
| | | |-- img9.gif<BR>
| | | |-- img90.gif<BR>
| | | |-- img91.gif<BR>
| | | |-- img92.gif<BR>
| | | |-- img93.gif<BR>
| | | |-- img94.gif<BR>
| | | |-- img95.gif<BR>
| | | |-- img96.gif<BR>
| | | |-- img97.gif<BR>
| | | |-- img98.gif<BR>
| | | |-- img99.gif<BR>
| | | |-- index_motif.gif<BR>
| | | |-- invis_anchor.xbm<BR>
| | | |-- labels.pl<BR>
| | | |-- linux.gif<BR>
| | | |-- next_group_motif.gif<BR>
| | | |-- next_group_motif_gr.gif<BR>
| | | |-- next_motif.gif<BR>
| | | |-- next_motif_gr.gif<BR>
| | | |-- node1.html<BR>
| | | |-- node10.html<BR>
| | | |-- node100.html<BR>
| | | |-- node101.html<BR>
| | | |-- node102.html<BR>
| | | |-- node103.html<BR>
| | | |-- node104.html<BR>
| | | |-- node105.html<BR>
| | | |-- node106.html<BR>
| | | |-- node107.html<BR>
| | | |-- node108.html<BR>
| | | |-- node109.html<BR>
| | | |-- node11.html<BR>
| | | |-- node110.html<BR>
| | | |-- node111.html<BR>
| | | |-- node112.html<BR>
| | | |-- node113.html<BR>
| | | |-- node114.html<BR>
| | | |-- node115.html<BR>
| | | |-- node116.html<BR>
| | | |-- node117.html<BR>
| | | |-- node118.html<BR>
| | | |-- node119.html<BR>
| | | |-- node12.html<BR>
| | | |-- node120.html<BR>
| | | |-- node121.html<BR>
| | | |-- node122.html<BR>
| | | |-- node123.html<BR>
| | | |-- node124.html<BR>
| | | |-- node125.html<BR>
| | | |-- node126.html<BR>
| | | |-- node127.html<BR>
| | | |-- node128.html<BR>
| | | |-- node129.html<BR>
| | | |-- node13.html<BR>
| | | |-- node130.html<BR>
| | | |-- node131.html<BR>
| | | |-- node132.html<BR>
| | | |-- node133.html<BR>
| | | |-- node134.html<BR>
| | | |-- node135.html<BR>
| | | |-- node136.html<BR>
| | | |-- node137.html<BR>
| | | |-- node138.html<BR>
| | | |-- node139.html<BR>
| | | |-- node14.html<BR>
| | | |-- node140.html<BR>
| | | |-- node141.html<BR>
| | | |-- node142.html<BR>
| | | |-- node143.html<BR>
| | | |-- node144.html<BR>
| | | |-- node145.html<BR>
| | | |-- node146.html<BR>
| | | |-- node147.html<BR>
| | | |-- node148.html<BR>
| | | |-- node149.html<BR>
| | | |-- node15.html<BR>
| | | |-- node150.html<BR>
| | | |-- node151.html<BR>
| | | |-- node152.html<BR>
| | | |-- node153.html<BR>
| | | |-- node154.html<BR>
| | | |-- node155.html<BR>
| | | |-- node156.html<BR>
| | | |-- node157.html<BR>
| | | |-- node158.html<BR>
| | | |-- node159.html<BR>
| | | |-- node16.html<BR>
| | | |-- node160.html<BR>
| | | |-- node161.html<BR>
| | | |-- node162.html<BR>
| | | |-- node163.html<BR>
| | | |-- node164.html<BR>
| | | |-- node165.html<BR>
| | | |-- node166.html<BR>
| | | |-- node167.html<BR>
| | | |-- node168.html<BR>
| | | |-- node169.html<BR>
| | | |-- node17.html<BR>
| | | |-- node170.html<BR>
| | | |-- node171.html<BR>
| | | |-- node172.html<BR>
| | | |-- node173.html<BR>
| | | |-- node174.html<BR>
| | | |-- node175.html<BR>
| | | |-- node176.html<BR>
| | | |-- node177.html<BR>
| | | |-- node178.html<BR>
| | | |-- node179.html<BR>
| | | |-- node18.html<BR>
| | | |-- node180.html<BR>
| | | |-- node181.html<BR>
| | | |-- node182.html<BR>
| | | |-- node183.html<BR>
| | | |-- node184.html<BR>
| | | |-- node185.html<BR>
| | | |-- node186.html<BR>
| | | |-- node187.html<BR>
| | | |-- node188.html<BR>
| | | |-- node189.html<BR>
| | | |-- node19.html<BR>
| | | |-- node190.html<BR>
| | | |-- node191.html<BR>
| | | |-- node192.html<BR>
| | | |-- node193.html<BR>
| | | |-- node194.html<BR>
| | | |-- node195.html<BR>
| | | |-- node196.html<BR>
| | | |-- node197.html<BR>
| | | |-- node198.html<BR>
| | | |-- node199.html<BR>
| | | |-- node2.html<BR>
| | | |-- node20.html<BR>
| | | |-- node200.html<BR>
| | | |-- node201.html<BR>
| | | |-- node202.html<BR>
| | | |-- node203.html<BR>
| | | |-- node204.html<BR>
| | | |-- node205.html<BR>
| | | |-- node206.html<BR>
| | | |-- node207.html<BR>
| | | |-- node208.html<BR>
| | | |-- node209.html<BR>
| | | |-- node21.html<BR>
| | | |-- node210.html<BR>
| | | |-- node211.html<BR>
| | | |-- node212.html<BR>
| | | |-- node213.html<BR>
| | | |-- node214.html<BR>
| | | |-- node215.html<BR>
| | | |-- node216.html<BR>
| | | |-- node217.html<BR>
| | | |-- node218.html<BR>
| | | |-- node219.html<BR>
| | | |-- node22.html<BR>
| | | |-- node220.html<BR>
| | | |-- node221.html<BR>
| | | |-- node222.html<BR>
| | | |-- node223.html<BR>
| | | |-- node224.html<BR>
| | | |-- node225.html<BR>
| | | |-- node226.html<BR>
| | | |-- node227.html<BR>
| | | |-- node228.html<BR>
| | | |-- node229.html<BR>
| | | |-- node23.html<BR>
| | | |-- node230.html<BR>
| | | |-- node231.html<BR>
| | | |-- node232.html<BR>
| | | |-- node233.html<BR>
| | | |-- node234.html<BR>
| | | |-- node235.html<BR>
| | | |-- node236.html<BR>
| | | |-- node237.html<BR>
| | | |-- node238.html<BR>
| | | |-- node239.html<BR>
| | | |-- node24.html<BR>
| | | |-- node240.html<BR>
| | | |-- node241.html<BR>
| | | |-- node242.html<BR>
| | | |-- node243.html<BR>
| | | |-- node244.html<BR>
| | | |-- node245.html<BR>
| | | |-- node246.html<BR>
| | | |-- node247.html<BR>
| | | |-- node248.html<BR>
| | | |-- node249.html<BR>
| | | |-- node25.html<BR>
| | | |-- node250.html<BR>
| | | |-- node251.html<BR>
| | | |-- node26.html<BR>
| | | |-- node27.html<BR>
| | | |-- node28.html<BR>
| | | |-- node29.html<BR>
| | | |-- node3.html<BR>
| | | |-- node30.html<BR>
| | | |-- node31.html<BR>
| | | |-- node32.html<BR>
| | | |-- node33.html<BR>
| | | |-- node34.html<BR>
| | | |-- node35.html<BR>
| | | |-- node36.html<BR>
| | | |-- node37.html<BR>
| | | |-- node38.html<BR>
| | | |-- node39.html<BR>
| | | |-- node4.html<BR>
| | | |-- node40.html<BR>
| | | |-- node41.html<BR>
| | | |-- node42.html<BR>
| | | |-- node43.html<BR>
| | | |-- node44.html<BR>
| | | |-- node45.html<BR>
| | | |-- node46.html<BR>
| | | |-- node47.html<BR>
| | | |-- node48.html<BR>
| | | |-- node49.html<BR>
| | | |-- node5.html<BR>
| | | |-- node50.html<BR>
| | | |-- node51.html<BR>
| | | |-- node52.html<BR>
| | | |-- node53.html<BR>
| | | |-- node54.html<BR>
| | | |-- node55.html<BR>
| | | |-- node56.html<BR>
| | | |-- node57.html<BR>
| | | |-- node58.html<BR>
| | | |-- node59.html<BR>
| | | |-- node6.html<BR>
| | | |-- node60.html<BR>
| | | |-- node61.html<BR>
| | | |-- node62.html<BR>
| | | |-- node63.html<BR>
| | | |-- node64.html<BR>
| | | |-- node65.html<BR>
| | | |-- node66.html<BR>
| | | |-- node67.html<BR>
| | | |-- node68.html<BR>
| | | |-- node69.html<BR>
| | | |-- node7.html<BR>
| | | |-- node70.html<BR>
| | | |-- node71.html<BR>
| | | |-- node72.html<BR>
| | | |-- node73.html<BR>
| | | |-- node74.html<BR>
| | | |-- node75.html<BR>
| | | |-- node76.html<BR>
| | | |-- node77.html<BR>
| | | |-- node78.html<BR>
| | | |-- node79.html<BR>
| | | |-- node8.html<BR>
| | | |-- node80.html<BR>
| | | |-- node81.html<BR>
| | | |-- node82.html<BR>
| | | |-- node83.html<BR>
| | | |-- node84.html<BR>
| | | |-- node85.html<BR>
| | | |-- node86.html<BR>
| | | |-- node87.html<BR>
| | | |-- node88.html<BR>
| | | |-- node89.html<BR>
| | | |-- node9.html<BR>
| | | |-- node90.html<BR>
| | | |-- node91.html<BR>
| | | |-- node92.html<BR>
| | | |-- node93.html<BR>
| | | |-- node94.html<BR>
| | | |-- node95.html<BR>
| | | |-- node96.html<BR>
| | | |-- node97.html<BR>
| | | |-- node98.html<BR>
| | | |-- node99.html<BR>
| | | |-- notes.html<BR>
| | | |-- previous_group_motif.gif<BR>
| | | |-- previous_group_motif_gr.gif<BR>
| | | |-- previous_motif.gif<BR>
| | | |-- previous_motif_gr.gif<BR>
| | | |-- up_motif.gif<BR>
| | | `-- up_motif_gr.gif<BR>
| | `-- rhcl_small.gif<BR>
| |-- TRANS.TBL<BR>
| |-- Users-Guide<BR>
| | |-- RHL-4.1-Users-Guide-HTML.tar.gz<BR>
| | |-- RHL-4.1-Users-Guide.a4.ps.gz<BR>
| | |-- RHL-4.1-Users-Guide.ps.gz<BR>
| | `-- TRANS.TBL<BR>
| |-- misc<BR>
| | |-- Boot-Process-Tips.txt<BR>
| | |-- CD-Type-HOWTO.txt<BR>
| | |-- Color-ls-Tips.txt<BR>
| | |-- Compile-Tips.txt<BR>
| | |-- Custom-X-Tips.txt<BR>
| | |-- FAQ -> RedHat-FAQ.txt<BR>
| | |-- FTP-Setup-Tips.txt<BR>
| | |-- Help-Tips.txt<BR>
| | |-- INN-Tips.txt<BR>
| | |-- NFS-Tips.txt<BR>
| | |-- NYS-Tips.txt<BR>
| | |-- PPP-Client-HOWTO.txt<BR>
| | |-- PPP-Tips.txt<BR>
| | |-- RPM-HOWTO.txt<BR>
| | |-- RPM-Tips.txt<BR>
| | |-- RedHat-FAQ.txt<BR>
| | |-- TRANS.TBL<BR>
| | |-- UUCP-Tips.txt<BR>
| | |-- WWW-Server-Tips.txt<BR>
| | `-- other-formats<BR>
| | |-- TRANS.TBL<BR>
| | |-- dvi<BR>
| | | |-- Boot-Process-Tips.dvi<BR>
| | | |-- CD-Type-HOWTO.dvi<BR>
| | | |-- Color-ls-Tips.dvi<BR>
| | | |-- Compile-Tips.dvi<BR>
| | | |-- Custom-X-Tips.dvi<BR>
| | | |-- FTP-Setup-Tips.dvi<BR>
| | | |-- Help-Tips.dvi<BR>
| | | |-- INN-Tips.dvi<BR>
| | | |-- NFS-Tips.dvi<BR>
| | | |-- NYS-Tips.dvi<BR>
| | | |-- PPP-Client-HOWTO.dvi<BR>
| | | |-- PPP-Tips.dvi<BR>
| | | |-- RPM-HOWTO.dvi<BR>
| | | |-- RPM-Tips.dvi<BR>
| | | |-- RedHat-FAQ.dvi<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- UUCP-Tips.dvi<BR>
| | | `-- WWW-Server-Tips.dvi<BR>
| | |-- html.untarred<BR>
| | | |-- Boot-Process-Tips-1.html<BR>
| | | |-- Boot-Process-Tips-2.html<BR>
| | | |-- Boot-Process-Tips-3.html<BR>
| | | |-- Boot-Process-Tips.html<BR>
| | | |-- CD-Type-HOWTO-1.html<BR>
| | | |-- CD-Type-HOWTO-2.html<BR>
| | | |-- CD-Type-HOWTO-3.html<BR>
| | | |-- CD-Type-HOWTO-4.html<BR>
| | | |-- CD-Type-HOWTO-5.html<BR>
| | | |-- CD-Type-HOWTO-6.html<BR>
| | | |-- CD-Type-HOWTO-7.html<BR>
| | | |-- CD-Type-HOWTO-8.html<BR>
| | | |-- CD-Type-HOWTO-9.html<BR>
| | | |-- CD-Type-HOWTO.html<BR>
| | | |-- CD-Type-HOWTO.sgml.html<BR>
| | | |-- Color-ls-Tips.html<BR>
| | | |-- Compile-Tips.html<BR>
| | | |-- Custom-X-Tips.html<BR>
| | | |-- FTP-Setup-Tips.html<BR>
| | | |-- Help-Tips-1.html<BR>
| | | |-- Help-Tips-2.html<BR>
| | | |-- Help-Tips-3.html<BR>
| | | |-- Help-Tips-4.html<BR>
| | | |-- Help-Tips-5.html<BR>
| | | |-- Help-Tips-6.html<BR>
| | | |-- Help-Tips-7.html<BR>
| | | |-- Help-Tips.html<BR>
| | | |-- INN-Tips.html<BR>
| | | |-- NFS-Tips.html<BR>
| | | |-- NYS-Tips-1.html<BR>
| | | |-- NYS-Tips-2.html<BR>
| | | |-- NYS-Tips-3.html<BR>
| | | |-- NYS-Tips.html<BR>
| | | |-- PPP-Client-HOWTO-1.html<BR>
| | | |-- PPP-Client-HOWTO-10.html<BR>
| | | |-- PPP-Client-HOWTO-11.html<BR>
| | | |-- PPP-Client-HOWTO-12.html<BR>
| | | |-- PPP-Client-HOWTO-13.html<BR>
| | | |-- PPP-Client-HOWTO-14.html<BR>
| | | |-- PPP-Client-HOWTO-15.html<BR>
| | | |-- PPP-Client-HOWTO-16.html<BR>
| | | |-- PPP-Client-HOWTO-17.html<BR>
| | | |-- PPP-Client-HOWTO-18.html<BR>
| | | |-- PPP-Client-HOWTO-19.html<BR>
| | | |-- PPP-Client-HOWTO-2.html<BR>
| | | |-- PPP-Client-HOWTO-20.html<BR>
| | | |-- PPP-Client-HOWTO-21.html<BR>
| | | |-- PPP-Client-HOWTO-22.html<BR>
| | | |-- PPP-Client-HOWTO-23.html<BR>
| | | |-- PPP-Client-HOWTO-24.html<BR>
| | | |-- PPP-Client-HOWTO-3.html<BR>
| | | |-- PPP-Client-HOWTO-4.html<BR>
| | | |-- PPP-Client-HOWTO-5.html<BR>
| | | |-- PPP-Client-HOWTO-6.html<BR>
| | | |-- PPP-Client-HOWTO-7.html<BR>
| | | |-- PPP-Client-HOWTO-8.html<BR>
| | | |-- PPP-Client-HOWTO-9.html<BR>
| | | |-- PPP-Client-HOWTO.html<BR>
| | | |-- PPP-Tips.html<BR>
| | | |-- RH-2.0-Manual.sgml-1.html<BR>
| | | |-- RH-2.0-Manual.sgml-2.html<BR>
| | | |-- RH-2.0-Manual.sgml-3.html<BR>
| | | |-- RH-2.0-Manual.sgml-4.html<BR>
| | | |-- RH-2.0-Manual.sgml-5.html<BR>
| | | |-- RH-2.0-Manual.sgml-6.html<BR>
| | | |-- RH-2.0-Manual.sgml.html<BR>
| | | |-- RHCL-Installation-HOWTO.sgml-1.html<BR>
| | | |-- RHCL-Installation-HOWTO.sgml-2.html<BR>
| | | |-- RHCL-Installation-HOWTO.sgml-3.html<BR>
| | | |-- RHCL-Installation-HOWTO.sgml-4.html<BR>
| | | |-- RHCL-Installation-HOWTO.sgml-5.html<BR>
| | | |-- RHCL-Installation-HOWTO.sgml-6.html<BR>
| | | |-- RHCL-Installation-HOWTO.sgml-7.html<BR>
| | | |-- RHCL-Installation-HOWTO.sgml-8.html<BR>
| | | |-- RHCL-Installation-HOWTO.sgml-9.html<BR>
| | | |-- RHCL-Installation-HOWTO.sgml.html<BR>
| | | |-- RPM-HOWTO-1.html<BR>
| | | |-- RPM-HOWTO-2.html<BR>
| | | |-- RPM-HOWTO-3.html<BR>
| | | |-- RPM-HOWTO-4.html<BR>
| | | |-- RPM-HOWTO-5.html<BR>
| | | |-- RPM-HOWTO-6.html<BR>
| | | |-- RPM-HOWTO-7.html<BR>
| | | |-- RPM-HOWTO-8.html<BR>
| | | |-- RPM-HOWTO-9.html<BR>
| | | |-- RPM-HOWTO.html<BR>
| | | |-- RPM-HOWTO.sgml-1.html<BR>
| | | |-- RPM-HOWTO.sgml-2.html<BR>
| | | |-- RPM-HOWTO.sgml-3.html<BR>
| | | |-- RPM-HOWTO.sgml-4.html<BR>
| | | |-- RPM-HOWTO.sgml-5.html<BR>
| | | |-- RPM-HOWTO.sgml-6.html<BR>
| | | |-- RPM-HOWTO.sgml-7.html<BR>
| | | |-- RPM-HOWTO.sgml-8.html<BR>
| | | |-- RPM-HOWTO.sgml.html<BR>
| | | |-- RPM-Tips.html<BR>
| | | |-- RedHat-FAQ-1.html<BR>
| | | |-- RedHat-FAQ-2.html<BR>
| | | |-- RedHat-FAQ-3.html<BR>
| | | |-- RedHat-FAQ-4.html<BR>
| | | |-- RedHat-FAQ-5.html<BR>
| | | |-- RedHat-FAQ-6.html<BR>
| | | |-- RedHat-FAQ.html<BR>
| | | |-- RedHat-FAQ.sgml-1.html<BR>
| | | |-- RedHat-FAQ.sgml-2.html<BR>
| | | |-- RedHat-FAQ.sgml-3.html<BR>
| | | |-- RedHat-FAQ.sgml-4.html<BR>
| | | |-- RedHat-FAQ.sgml-5.html<BR>
| | | |-- RedHat-FAQ.sgml-6.html<BR>
| | | |-- RedHat-FAQ.sgml-7.html<BR>
| | | |-- RedHat-FAQ.sgml.html<BR>
| | | |-- RedHat-HOWTO-1.html<BR>
| | | |-- RedHat-HOWTO-2.html<BR>
| | | |-- RedHat-HOWTO-3.html<BR>
| | | |-- RedHat-HOWTO-4.html<BR>
| | | |-- RedHat-HOWTO-5.html<BR>
| | | |-- RedHat-HOWTO-6.html<BR>
| | | |-- RedHat-HOWTO-7.html<BR>
| | | |-- RedHat-HOWTO-8.html<BR>
| | | |-- RedHat-HOWTO.html<BR>
| | | |-- RedHat-HOWTO.sgml-1.html<BR>
| | | |-- RedHat-HOWTO.sgml-2.html<BR>
| | | |-- RedHat-HOWTO.sgml-3.html<BR>
| | | |-- RedHat-HOWTO.sgml-4.html<BR>
| | | |-- RedHat-HOWTO.sgml-5.html<BR>
| | | |-- RedHat-HOWTO.sgml-6.html<BR>
| | | |-- RedHat-HOWTO.sgml-7.html<BR>
| | | |-- RedHat-HOWTO.sgml-8.html<BR>
| | | |-- RedHat-HOWTO.sgml.html<BR>
| | | |-- SparcLinux-HOWTO-1.html<BR>
| | | |-- SparcLinux-HOWTO-2.html<BR>
| | | |-- SparcLinux-HOWTO-3.html<BR>
| | | |-- SparcLinux-HOWTO-4.html<BR>
| | | |-- SparcLinux-HOWTO-5.html<BR>
| | | |-- SparcLinux-HOWTO-6.html<BR>
| | | |-- SparcLinux-HOWTO.html<BR>
| | | |-- SparcLinux-HOWTO.sgml.html<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- Test-HOWTO-1.html<BR>
| | | |-- Test-HOWTO.html<BR>
| | | |-- UUCP-Tips-1.html<BR>
| | | |-- UUCP-Tips-2.html<BR>
| | | |-- UUCP-Tips-3.html<BR>
| | | |-- UUCP-Tips-4.html<BR>
| | | |-- UUCP-Tips-5.html<BR>
| | | |-- UUCP-Tips-6.html<BR>
| | | |-- UUCP-Tips.html<BR>
| | | |-- WWW-Server-Tips.html<BR>
| | | `-- tar.gz<BR>
| | | |-- Boot-Process-Tips.html.tar.gz<BR>
| | | |-- CD-Type-HOWTO.html.tar.gz<BR>
| | | |-- Color-ls-Tips.html.tar.gz<BR>
| | | |-- Compile-Tips.html.tar.gz<BR>
| | | |-- Custom-X-Tips.html.tar.gz<BR>
| | | |-- FTP-Setup-Tips.html.tar.gz<BR>
| | | |-- Help-Tips.html.tar.gz<BR>
| | | |-- INN-Tips.html.tar.gz<BR>
| | | |-- NFS-Tips.html.tar.gz<BR>
| | | |-- NYS-Tips.html.tar.gz<BR>
| | | |-- PPP-Client-HOWTO.html.tar.gz<BR>
| | | |-- PPP-Tips.html.tar.gz<BR>
| | | |-- RPM-HOWTO.html.tar.gz<BR>
| | | |-- RPM-Tips.html.tar.gz<BR>
| | | |-- RedHat-FAQ.html.tar.gz<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- UUCP-Tips.html.tar.gz<BR>
| | | `-- WWW-Server-Tips.html.tar.gz<BR>
| | `-- ps<BR>
| | |-- Boot-Process-Tips.ps<BR>
| | |-- CD-Type-HOWTO.ps<BR>
| | |-- Color-ls-Tips.ps<BR>
| | |-- Compile-Tips.ps<BR>
| | |-- Custom-X-Tips.ps<BR>
| | |-- FTP-Setup-Tips.ps<BR>
| | |-- Help-Tips.ps<BR>
| | |-- INN-Tips.ps<BR>
| | |-- NFS-Tips.ps<BR>
| | |-- NYS-Tips.ps<BR>
| | |-- PPP-Client-HOWTO.ps<BR>
| | |-- PPP-Tips.ps<BR>
| | |-- RPM-HOWTO.ps<BR>
| | |-- RPM-Tips.ps<BR>
| | |-- RedHat-FAQ.ps<BR>
| | |-- TRANS.TBL<BR>
| | |-- UUCP-Tips.ps<BR>
| | `-- WWW-Server-Tips.ps<BR>
| `-- redhat-digest<BR>
| |-- TRANS.TBL<BR>
| |-- volume95<BR>
| | |-- TRANS.TBL<BR>
| | |-- issue-1.gz<BR>
| | |-- issue-10.gz<BR>
| | |-- issue-100.gz<BR>
| | |-- issue-101.gz<BR>
| | |-- issue-102.gz<BR>
| | |-- issue-103.gz<BR>
| | |-- issue-104.gz<BR>
| | |-- issue-105.gz<BR>
| | |-- issue-106.gz<BR>
| | |-- issue-107.gz<BR>
| | |-- issue-108.gz<BR>
| | |-- issue-109.gz<BR>
| | |-- issue-11.gz<BR>
| | |-- issue-110.gz<BR>
| | |-- issue-111.gz<BR>
| | |-- issue-112.gz<BR>
| | |-- issue-113.gz<BR>
| | |-- issue-114.gz<BR>
| | |-- issue-115.gz<BR>
| | |-- issue-116.gz<BR>
| | |-- issue-117.gz<BR>
| | |-- issue-118.gz<BR>
| | |-- issue-119.gz<BR>
| | |-- issue-12.gz<BR>
| | |-- issue-120.gz<BR>
| | |-- issue-121.gz<BR>
| | |-- issue-122.gz<BR>
| | |-- issue-123.gz<BR>
| | |-- issue-124.gz<BR>
| | |-- issue-125.gz<BR>
| | |-- issue-126.gz<BR>
| | |-- issue-127.gz<BR>
| | |-- issue-128.gz<BR>
| | |-- issue-129.gz<BR>
| | |-- issue-13.gz<BR>
| | |-- issue-130.gz<BR>
| | |-- issue-131.gz<BR>
| | |-- issue-132.gz<BR>
| | |-- issue-133.gz<BR>
| | |-- issue-134.gz<BR>
| | |-- issue-135.gz<BR>
| | |-- issue-136.gz<BR>
| | |-- issue-137.gz<BR>
| | |-- issue-138.gz<BR>
| | |-- issue-139.gz<BR>
| | |-- issue-14.gz<BR>
| | |-- issue-140.gz<BR>
| | |-- issue-141.gz<BR>
| | |-- issue-142.gz<BR>
| | |-- issue-143.gz<BR>
| | |-- issue-144.gz<BR>
| | |-- issue-145.gz<BR>
| | |-- issue-146.gz<BR>
| | |-- issue-147.gz<BR>
| | |-- issue-148.gz<BR>
| | |-- issue-149.gz<BR>
| | |-- issue-15.gz<BR>
| | |-- issue-150.gz<BR>
| | |-- issue-151.gz<BR>
| | |-- issue-152.gz<BR>
| | |-- issue-153.gz<BR>
| | |-- issue-154.gz<BR>
| | |-- issue-155.gz<BR>
| | |-- issue-156.gz<BR>
| | |-- issue-157.gz<BR>
| | |-- issue-158.gz<BR>
| | |-- issue-159.gz<BR>
| | |-- issue-16.gz<BR>
| | |-- issue-160.gz<BR>
| | |-- issue-161.gz<BR>
| | |-- issue-162.gz<BR>
| | |-- issue-163.gz<BR>
| | |-- issue-164.gz<BR>
| | |-- issue-165.gz<BR>
| | |-- issue-166.gz<BR>
| | |-- issue-167.gz<BR>
| | |-- issue-168.gz<BR>
| | |-- issue-169.gz<BR>
| | |-- issue-17.gz<BR>
| | |-- issue-170.gz<BR>
| | |-- issue-171.gz<BR>
| | |-- issue-18.gz<BR>
| | |-- issue-19.gz<BR>
| | |-- issue-2.gz<BR>
| | |-- issue-20.gz<BR>
| | |-- issue-21.gz<BR>
| | |-- issue-22.gz<BR>
| | |-- issue-23.gz<BR>
| | |-- issue-24.gz<BR>
| | |-- issue-25.gz<BR>
| | |-- issue-26.gz<BR>
| | |-- issue-27.gz<BR>
| | |-- issue-28.gz<BR>
| | |-- issue-29.gz<BR>
| | |-- issue-3.gz<BR>
| | |-- issue-30.gz<BR>
| | |-- issue-31.gz<BR>
| | |-- issue-32.gz<BR>
| | |-- issue-33.gz<BR>
| | |-- issue-34.gz<BR>
| | |-- issue-35.gz<BR>
| | |-- issue-36.gz<BR>
| | |-- issue-37.gz<BR>
| | |-- issue-38.gz<BR>
| | |-- issue-39.gz<BR>
| | |-- issue-4.gz<BR>
| | |-- issue-40.gz<BR>
| | |-- issue-41.gz<BR>
| | |-- issue-42.gz<BR>
| | |-- issue-43.gz<BR>
| | |-- issue-44.gz<BR>
| | |-- issue-45.gz<BR>
| | |-- issue-46.gz<BR>
| | |-- issue-47.gz<BR>
| | |-- issue-48.gz<BR>
| | |-- issue-49.gz<BR>
| | |-- issue-5.gz<BR>
| | |-- issue-50.gz<BR>
| | |-- issue-51.gz<BR>
| | |-- issue-52.gz<BR>
| | |-- issue-53.gz<BR>
| | |-- issue-54.gz<BR>
| | |-- issue-55.gz<BR>
| | |-- issue-56.gz<BR>
| | |-- issue-57.gz<BR>
| | |-- issue-58.gz<BR>
| | |-- issue-59.gz<BR>
| | |-- issue-6.gz<BR>
| | |-- issue-60.gz<BR>
| | |-- issue-61.gz<BR>
| | |-- issue-62.gz<BR>
| | |-- issue-63.gz<BR>
| | |-- issue-64.gz<BR>
| | |-- issue-65.gz<BR>
| | |-- issue-66.gz<BR>
| | |-- issue-67.gz<BR>
| | |-- issue-68.gz<BR>
| | |-- issue-69.gz<BR>
| | |-- issue-7.gz<BR>
| | |-- issue-70.gz<BR>
| | |-- issue-71.gz<BR>
| | |-- issue-72.gz<BR>
| | |-- issue-73.gz<BR>
| | |-- issue-74.gz<BR>
| | |-- issue-75.gz<BR>
| | |-- issue-76.gz<BR>
| | |-- issue-77.gz<BR>
| | |-- issue-78.gz<BR>
| | |-- issue-79.gz<BR>
| | |-- issue-8.gz<BR>
| | |-- issue-80.gz<BR>
| | |-- issue-81.gz<BR>
| | |-- issue-82.gz<BR>
| | |-- issue-83.gz<BR>
| | |-- issue-84.gz<BR>
| | |-- issue-85.gz<BR>
| | |-- issue-86.gz<BR>
| | |-- issue-87.gz<BR>
| | |-- issue-88.gz<BR>
| | |-- issue-89.gz<BR>
| | |-- issue-9.gz<BR>
| | |-- issue-90.gz<BR>
| | |-- issue-91.gz<BR>
| | |-- issue-92.gz<BR>
| | |-- issue-93.gz<BR>
| | |-- issue-94.gz<BR>
| | |-- issue-95.gz<BR>
| | |-- issue-96.gz<BR>
| | |-- issue-97.gz<BR>
| | |-- issue-98.gz<BR>
| | `-- issue-99.gz<BR>
| `-- volume96<BR>
| |-- TRANS.TBL<BR>
| |-- issue-1.gz<BR>
| |-- issue-10.gz<BR>
| |-- issue-100.gz<BR>
| |-- issue-101.gz<BR>
| |-- issue-102.gz<BR>
| |-- issue-103.gz<BR>
| |-- issue-104.gz<BR>
| |-- issue-105.gz<BR>
| |-- issue-106.gz<BR>
| |-- issue-107.gz<BR>
| |-- issue-108.gz<BR>
| |-- issue-109.gz<BR>
| |-- issue-11.gz<BR>
| |-- issue-110.gz<BR>
| |-- issue-111.gz<BR>
| |-- issue-112.gz<BR>
| |-- issue-113.gz<BR>
| |-- issue-114.gz<BR>
| |-- issue-115.gz<BR>
| |-- issue-116.gz<BR>
| |-- issue-117.gz<BR>
| |-- issue-118.gz<BR>
| |-- issue-119.gz<BR>
| |-- issue-12.gz<BR>
| |-- issue-120.gz<BR>
| |-- issue-121.gz<BR>
| |-- issue-122.gz<BR>
| |-- issue-123.gz<BR>
| |-- issue-124.gz<BR>
| |-- issue-125.gz<BR>
| |-- issue-126.gz<BR>
| |-- issue-127.gz<BR>
| |-- issue-128.gz<BR>
| |-- issue-129.gz<BR>
| |-- issue-13.gz<BR>
| |-- issue-130.gz<BR>
| |-- issue-131.gz<BR>
| |-- issue-132.gz<BR>
| |-- issue-133.gz<BR>
| |-- issue-134.gz<BR>
| |-- issue-135.gz<BR>
| |-- issue-136.gz<BR>
| |-- issue-137.gz<BR>
| |-- issue-138.gz<BR>
| |-- issue-139.gz<BR>
| |-- issue-14.gz<BR>
| |-- issue-140.gz<BR>
| |-- issue-141.gz<BR>
| |-- issue-142.gz<BR>
| |-- issue-143.gz<BR>
| |-- issue-144.gz<BR>
| |-- issue-145.gz<BR>
| |-- issue-146.gz<BR>
| |-- issue-147.gz<BR>
| |-- issue-148.gz<BR>
| |-- issue-149.gz<BR>
| |-- issue-15.gz<BR>
| |-- issue-150.gz<BR>
| |-- issue-151.gz<BR>
| |-- issue-152.gz<BR>
| |-- issue-153.gz<BR>
| |-- issue-154.gz<BR>
| |-- issue-155.gz<BR>
| |-- issue-156.gz<BR>
| |-- issue-157.gz<BR>
| |-- issue-158.gz<BR>
| |-- issue-159.gz<BR>
| |-- issue-16.gz<BR>
| |-- issue-160.gz<BR>
| |-- issue-161.gz<BR>
| |-- issue-162.gz<BR>
| |-- issue-163.gz<BR>
| |-- issue-164.gz<BR>
| |-- issue-165.gz<BR>
| |-- issue-166.gz<BR>
| |-- issue-167.gz<BR>
| |-- issue-168.gz<BR>
| |-- issue-169.gz<BR>
| |-- issue-17.gz<BR>
| |-- issue-170.gz<BR>
| |-- issue-171.gz<BR>
| |-- issue-172.gz<BR>
| |-- issue-173.gz<BR>
| |-- issue-174.gz<BR>
| |-- issue-175.gz<BR>
| |-- issue-176.gz<BR>
| |-- issue-177.gz<BR>
| |-- issue-178.gz<BR>
| |-- issue-179.gz<BR>
| |-- issue-18.gz<BR>
| |-- issue-180.gz<BR>
| |-- issue-181.gz<BR>
| |-- issue-182.gz<BR>
| |-- issue-183.gz<BR>
| |-- issue-184.gz<BR>
| |-- issue-185.gz<BR>
| |-- issue-186.gz<BR>
| |-- issue-187.gz<BR>
| |-- issue-188.gz<BR>
| |-- issue-189.gz<BR>
| |-- issue-19.gz<BR>
| |-- issue-190.gz<BR>
| |-- issue-191.gz<BR>
| |-- issue-192.gz<BR>
| |-- issue-2.gz<BR>
| |-- issue-20.gz<BR>
| |-- issue-21.gz<BR>
| |-- issue-22.gz<BR>
| |-- issue-23.gz<BR>
| |-- issue-24.gz<BR>
| |-- issue-25.gz<BR>
| |-- issue-26.gz<BR>
| |-- issue-27.gz<BR>
| |-- issue-28.gz<BR>
| |-- issue-29.gz<BR>
| |-- issue-3.gz<BR>
| |-- issue-30.gz<BR>
| |-- issue-31.gz<BR>
| |-- issue-32.gz<BR>
| |-- issue-33.gz<BR>
| |-- issue-34.gz<BR>
| |-- issue-35.gz<BR>
| |-- issue-36.gz<BR>
| |-- issue-37.gz<BR>
| |-- issue-38.gz<BR>
| |-- issue-39.gz<BR>
| |-- issue-4.gz<BR>
| |-- issue-40.gz<BR>
| |-- issue-41.gz<BR>
| |-- issue-42.gz<BR>
| |-- issue-43.gz<BR>
| |-- issue-44.gz<BR>
| |-- issue-45.gz<BR>
| |-- issue-46.gz<BR>
| |-- issue-47.gz<BR>
| |-- issue-48.gz<BR>
| |-- issue-49.gz<BR>
| |-- issue-5.gz<BR>
| |-- issue-50.gz<BR>
| |-- issue-51.gz<BR>
| |-- issue-52.gz<BR>
| |-- issue-53.gz<BR>
| |-- issue-54.gz<BR>
| |-- issue-55.gz<BR>
| |-- issue-56.gz<BR>
| |-- issue-57.gz<BR>
| |-- issue-58.gz<BR>
| |-- issue-59.gz<BR>
| |-- issue-6.gz<BR>
| |-- issue-60.gz<BR>
| |-- issue-61.gz<BR>
| |-- issue-62.gz<BR>
| |-- issue-63.gz<BR>
| |-- issue-64.gz<BR>
| |-- issue-65.gz<BR>
| |-- issue-66.gz<BR>
| |-- issue-67.gz<BR>
| |-- issue-68.gz<BR>
| |-- issue-69.gz<BR>
| |-- issue-7.gz<BR>
| |-- issue-70.gz<BR>
| |-- issue-71.gz<BR>
| |-- issue-72.gz<BR>
| |-- issue-73.gz<BR>
| |-- issue-74.gz<BR>
| |-- issue-75.gz<BR>
| |-- issue-76.gz<BR>
| |-- issue-77.gz<BR>
| |-- issue-78.gz<BR>
| |-- issue-79.gz<BR>
| |-- issue-8.gz<BR>
| |-- issue-80.gz<BR>
| |-- issue-81.gz<BR>
| |-- issue-82.gz<BR>
| |-- issue-83.gz<BR>
| |-- issue-84.gz<BR>
| |-- issue-85.gz<BR>
| |-- issue-86.gz<BR>
| |-- issue-87.gz<BR>
| |-- issue-88.gz<BR>
| |-- issue-89.gz<BR>
| |-- issue-9.gz<BR>
| |-- issue-90.gz<BR>
| |-- issue-91.gz<BR>
| |-- issue-92.gz<BR>
| |-- issue-93.gz<BR>
| |-- issue-94.gz<BR>
| |-- issue-95.gz<BR>
| |-- issue-96.gz<BR>
| |-- issue-97.gz<BR>
| |-- issue-98.gz<BR>
| `-- issue-99.gz<BR>
|-- dosutils<BR>
| |-- TRANS.TBL<BR>
| |-- autoboot<BR>
| | |-- TRANS.TBL<BR>
| | |-- initrd.img<BR>
| | |-- kernel-2.013<BR>
| | `-- vmlinuz<BR>
| |-- autoboot.bat<BR>
| |-- copying<BR>
| |-- dos2unix<BR>
| | |-- TRANS.TBL<BR>
| | |-- dos2unix.c<BR>
| | |-- dos2unix.com<BR>
| | |-- dos2unix.msg<BR>
| | |-- file_id.diz<BR>
| | |-- makefile.msc<BR>
| | |-- makefile.unx<BR>
| | |-- makefile.ztc<BR>
| | |-- unix2dos.c<BR>
| | `-- unix2dos.com<BR>
| |-- fips.15<BR>
| | |-- TRANS.TBL<BR>
| | |-- copying<BR>
| | |-- errors.txt<BR>
| | |-- fips.doc<BR>
| | |-- fips.exe<BR>
| | |-- fips.faq<BR>
| | |-- fips15.zip<BR>
| | |-- history.txt<BR>
| | |-- manuelfr.txt<BR>
| | |-- readme.1st<BR>
| | |-- restorrb<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- restorrb.c<BR>
| | | |-- rtypes.h<BR>
| | | `-- rversion.h<BR>
| | |-- restorrb.exe<BR>
| | |-- source<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- calculat.cpp<BR>
| | | |-- check.cpp<BR>
| | | |-- cmdl_arg.cpp<BR>
| | | |-- disk_io.cpp<BR>
| | | |-- disk_io.h<BR>
| | | |-- fat.cpp<BR>
| | | |-- fat.h<BR>
| | | |-- fipsspec.cpp<BR>
| | | |-- fipsspec.h<BR>
| | | |-- getopt.c<BR>
| | | |-- getopt.h<BR>
| | | |-- global.cpp<BR>
| | | |-- global.h<BR>
| | | |-- hdstruct.cpp<BR>
| | | |-- hdstruct.h<BR>
| | | |-- host_os.cpp<BR>
| | | |-- host_os.h<BR>
| | | |-- input.cpp<BR>
| | | |-- input.h<BR>
| | | |-- logdr_st.cpp<BR>
| | | |-- logdr_st.h<BR>
| | | |-- main.cpp<BR>
| | | |-- primpart.h<BR>
| | | |-- save.cpp<BR>
| | | |-- types.h<BR>
| | | `-- version.h<BR>
| | |-- special.doc<BR>
| | `-- techinfo.txt<BR>
| |-- gzip124<BR>
| | |-- TRANS.TBL<BR>
| | |-- copying<BR>
| | |-- file_id.diz<BR>
| | |-- gzip.doc<BR>
| | |-- gzip.exe<BR>
| | |-- gzip386.exe<BR>
| | |-- readme<BR>
| | `-- readme.dos<BR>
| |-- loadlin.exe<BR>
| |-- lodlin16<BR>
| | |-- TRANS.TBL<BR>
| | |-- copying<BR>
| | |-- doc<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- announce.txt<BR>
| | | |-- changes<BR>
| | | |-- initrd.txt<BR>
| | | |-- lodlin16.lsm<BR>
| | | |-- manual.txt<BR>
| | | |-- params.doc<BR>
| | | `-- quicksta.rt<BR>
| | |-- doc.fr<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- initrd.txt<BR>
| | | |-- manuel.txt<BR>
| | | `-- params.doc<BR>
| | |-- files<BR>
| | |-- initrd<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- freeramd.c<BR>
| | | |-- linuxrc.c<BR>
| | | |-- makefile<BR>
| | | `-- mkdisk<BR>
| | |-- initrd.tgz<BR>
| | |-- initrd.txt<BR>
| | |-- linux.bat<BR>
| | |-- loadlin.exe<BR>
| | |-- manuel.txt<BR>
| | |-- params.doc<BR>
| | |-- readme.1st<BR>
| | |-- src<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- loadlin.asm<BR>
| | | |-- loadlina.asm<BR>
| | | |-- loadlini.asm<BR>
| | | |-- loadlinj.asm<BR>
| | | |-- loadlinm.asm<BR>
| | | |-- makefile<BR>
| | | |-- pgadjust.asm<BR>
| | | |-- srclinux<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- loadlinh.s<BR>
| | | | |-- makefile<BR>
| | | | `-- pgadjust.c<BR>
| | | `-- srclinux.tgz<BR>
| | `-- test.par<BR>
| |-- rawrite3<BR>
| | |-- TRANS.TBL<BR>
| | |-- rawrite.exe<BR>
| | `-- rawrite3.doc<BR>
| |-- rdev<BR>
| | |-- TRANS.TBL<BR>
| | `-- rdev.exe<BR>
| |-- readme<BR>
| |-- restorrb<BR>
| | |-- TRANS.TBL<BR>
| | `-- restorrb.exe<BR>
| |-- tar320c<BR>
| | |-- TRANS.TBL<BR>
| | |-- file_id.diz<BR>
| | |-- license.txt<BR>
| | |-- read.me<BR>
| | |-- sources<BR>
| | | |-- !compile.bat<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- aspi.c<BR>
| | | |-- aspient.asm<BR>
| | | |-- bits.c<BR>
| | | |-- compress.c<BR>
| | | |-- compress.h<BR>
| | | |-- crc32.c<BR>
| | | |-- crc32.h<BR>
| | | |-- cthandle.asm<BR>
| | | |-- ctquirks.asm<BR>
| | | |-- define.h<BR>
| | | |-- deflate.c<BR>
| | | |-- disk.c<BR>
| | | |-- diszip.c<BR>
| | | |-- extract.c<BR>
| | | |-- farnear.inc<BR>
| | | |-- fmatch.c<BR>
| | | |-- lzpack.c<BR>
| | | |-- lzpack.h<BR>
| | | |-- lzwbits.h<BR>
| | | |-- lzwhead.h<BR>
| | | |-- makefile<BR>
| | | |-- makefile.ix<BR>
| | | |-- match.asm<BR>
| | | |-- match.s<BR>
| | | |-- modern.h<BR>
| | | |-- nodedef.h<BR>
| | | |-- pclevel.asm<BR>
| | | |-- pctimer.asm<BR>
| | | |-- pctimer.h<BR>
| | | |-- percent.c<BR>
| | | |-- qic02.h<BR>
| | | |-- qicface.c<BR>
| | | |-- readopt.c<BR>
| | | |-- restore.c<BR>
| | | |-- roll.c<BR>
| | | |-- roll.h<BR>
| | | |-- savefile.c<BR>
| | | |-- stdinc.h<BR>
| | | |-- store.c<BR>
| | | |-- streamer.c<BR>
| | | |-- sysup.h<BR>
| | | |-- tape.c<BR>
| | | |-- tar.c<BR>
| | | |-- tar.prj<BR>
| | | |-- trees.c<BR>
| | | |-- unlzw.c<BR>
| | | |-- zalloc.h<BR>
| | | |-- zipdefs.h<BR>
| | | |-- ziperror.c<BR>
| | | |-- zipguts.h<BR>
| | | |-- ziposcod.h<BR>
| | | |-- zippipe.c<BR>
| | | `-- zippipe.h<BR>
| | |-- tar.exe<BR>
| | |-- tar.txt<BR>
| | `-- to.do<BR>
| `-- unz512x3<BR>
| |-- TRANS.TBL<BR>
| |-- copying<BR>
| |-- file_id.diz<BR>
| |-- funzip.doc<BR>
| |-- funzip.exe<BR>
| |-- readme<BR>
| |-- readme.dos<BR>
| |-- unzip.doc<BR>
| |-- unzip.exe<BR>
| |-- unzip386.exe<BR>
| |-- unzipsfx.doc<BR>
| |-- unzipsfx.exe<BR>
| |-- where<BR>
| `-- zipinfo.doc<BR>
|-- images<BR>
| |-- TRANS.TBL<BR>
| |-- boot.img<BR>
| |-- other<BR>
| | |-- README.FlashPoint<BR>
| | |-- TRANS.TBL<BR>
| | `-- bootFlashPoint.img<BR>
| `-- supp.img<BR>
|-- install.bat<BR>
|-- ls-lR<BR>
|-- man-rh41.txt<BR>
|-- misc<BR>
| |-- TRANS.TBL<BR>
| |-- boot<BR>
| | |-- TRANS.TBL<BR>
| | |-- autoboot.img<BR>
| | `-- boot.cat<BR>
| `-- src<BR>
| |-- TRANS.TBL<BR>
| |-- init<BR>
| | |-- Makefile<BR>
| | |-- TRANS.TBL<BR>
| | |-- init<BR>
| | |-- init.c<BR>
| | `-- init.o<BR>
| |-- install<BR>
| | |-- .depend<BR>
| | |-- Makefile<BR>
| | |-- TRANS.TBL<BR>
| | |-- bootp.h<BR>
| | |-- bootpc.c<BR>
| | |-- bootpc.h<BR>
| | |-- bootpc.o<BR>
| | |-- bptypes.h<BR>
| | |-- cdrom.c<BR>
| | |-- cdrom.o<BR>
| | |-- commands.c<BR>
| | |-- commands.h<BR>
| | |-- commands.o<BR>
| | |-- config.c<BR>
| | |-- config.h<BR>
| | |-- config.o<BR>
| | |-- debug.log<BR>
| | |-- devices.c<BR>
| | |-- devices.c.ewt<BR>
| | |-- devices.h<BR>
| | |-- devices.o<BR>
| | |-- dmphdlist<BR>
| | |-- dmphdlist.c<BR>
| | |-- doit.c<BR>
| | |-- doit.h<BR>
| | |-- doit.o<BR>
| | |-- earlymethods.c<BR>
| | |-- earlymethods.o<BR>
| | |-- entry.c<BR>
| | |-- entry.o<BR>
| | |-- fs.c<BR>
| | |-- fs.h<BR>
| | |-- fs.o<BR>
| | |-- ftp.c<BR>
| | |-- ftp.h<BR>
| | |-- ftp.o<BR>
| | |-- genhdlist<BR>
| | |-- genhdlist.c<BR>
| | |-- hash.c<BR>
| | |-- hash.h<BR>
| | |-- hash.o<BR>
| | |-- hd.c<BR>
| | |-- hd.h<BR>
| | |-- hd.o<BR>
| | |-- inet_aton.h<BR>
| | |-- install<BR>
| | |-- install.c<BR>
| | |-- install.h<BR>
| | |-- install.o<BR>
| | |-- install2<BR>
| | |-- install2.c<BR>
| | |-- install2.o<BR>
| | |-- kernel.c<BR>
| | |-- kernel.h<BR>
| | |-- latemethods.c<BR>
| | |-- latemethods.o<BR>
| | |-- lilo.c<BR>
| | |-- lilo.h<BR>
| | |-- lilo.o<BR>
| | |-- log.c<BR>
| | |-- log.h<BR>
| | |-- log.o<BR>
| | |-- methods.h<BR>
| | |-- mkswap.c<BR>
| | |-- mkswap.h<BR>
| | |-- mkswap.o<BR>
| | |-- modules.c<BR>
| | |-- mono.c<BR>
| | |-- mono.h<BR>
| | |-- mono.o<BR>
| | |-- mount.h<BR>
| | |-- mount.x<BR>
| | |-- mount_clnt.c<BR>
| | |-- mount_svc.c<BR>
| | |-- mount_xdr.c<BR>
| | |-- mount_xdr.o<BR>
| | |-- mtab.c<BR>
| | |-- mtab.o<BR>
| | |-- net.c<BR>
| | |-- net.h<BR>
| | |-- net.o<BR>
| | |-- nfsmount.c<BR>
| | |-- nfsmount.o<BR>
| | |-- perror.c<BR>
| | |-- perror.h<BR>
| | |-- perror.o<BR>
| | |-- pkgs.c<BR>
| | |-- pkgs.h<BR>
| | |-- pkgs.o<BR>
| | |-- run.c<BR>
| | |-- run.h<BR>
| | |-- run.o<BR>
| | |-- scsi.c<BR>
| | |-- scsi.h<BR>
| | |-- scsi.o<BR>
| | |-- upgrade.c<BR>
| | |-- upgrade.h<BR>
| | |-- upgrade.o<BR>
| | |-- windows.c<BR>
| | |-- windows.h<BR>
| | `-- windows.o<BR>
| |-- trees<BR>
| | |-- TRANS.TBL<BR>
| | |-- boot1<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- boot<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- boot.0200<BR>
| | | | |-- boot.b<BR>
| | | | `-- map<BR>
| | | |-- dev<BR>
| | | | |-- TRANS.TBL<BR>
| | | | `-- fd0<BR>
| | | |-- etc<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- boot.msg<BR>
| | | | |-- lilo.conf<BR>
| | | | `-- mtab -> /proc/mounts<BR>
| | | `-- vmlinuz<BR>
| | |-- boot1.img<BR>
| | |-- boot2<BR>
| | | |-- .profile<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- bin -> sbin<BR>
| | | |-- dev<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- console<BR>
| | | | |-- null<BR>
| | | | |-- ram<BR>
| | | | |-- systty<BR>
| | | | |-- tty1<BR>
| | | | |-- tty2<BR>
| | | | |-- tty3<BR>
| | | | |-- tty4<BR>
| | | | `-- tty5<BR>
| | | |-- etc<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- ld.so.cache<BR>
| | | | |-- nsswitch.conf<BR>
| | | | `-- pcmcia<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- config<BR>
| | | | |-- network<BR>
| | | | |-- pcmem<BR>
| | | | |-- scsi<BR>
| | | | `-- serial<BR>
| | | |-- linuxrc -> /sbin/init<BR>
| | | |-- modules<BR>
| | | | |-- 3c501.o<BR>
| | | | |-- 3c503.o<BR>
| | | | |-- 3c509.o<BR>
| | | | |-- 3c59x.o<BR>
| | | | |-- 53c7,8xx.o<BR>
| | | | |-- 8390.o<BR>
| | | | |-- BusLogic.o<BR>
| | | | |-- NCR53c406a.o<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- advansys.o<BR>
| | | | |-- aha152x.o<BR>
| | | | |-- aha1542.o<BR>
| | | | |-- aha1740.o<BR>
| | | | |-- aic7xxx.o<BR>
| | | | |-- apricot.o<BR>
| | | | |-- arcnet.o<BR>
| | | | |-- aztcd.o<BR>
| | | | |-- bpcd.o<BR>
| | | | |-- cdrom.o<BR>
| | | | |-- cdu31a.o<BR>
| | | | |-- cm206.o<BR>
| | | | |-- de4x5.o<BR>
| | | | |--=20de600.o<BR>
| | | | |-- de620.o<BR>
| | | | |-- depca.o<BR>
| | | | |-- dtc.o<BR>
| | | | |-- e2100.o<BR>
| | | | |-- eata_dma.o<BR>
| | | | |-- eata_pio.o<BR>
| | | | |-- eexpress.o<BR>
| | | | |-- ewrk3.o<BR>
| | | | |-- fdomain.o<BR>
| | | | |-- g_NCR5380.o<BR>
| | | | |-- gscd.o<BR>
| | | | |-- hp-plus.o<BR>
| | | | |-- hp.o<BR>
| | | | |-- hp100.o<BR>
| | | | |-- ibmtr.o<BR>
| | | | |-- in2000.o<BR>
| | | | |-- isp16.o<BR>
| | | | |-- loop.o<BR>
| | | | |-- mcd.o<BR>
| | | | |-- mcdx.o<BR>
| | | | |-- ncr53c8xx.o<BR>
| | | | |-- ne.o<BR>
| | | | |-- optcd.o<BR>
| | | | |-- pas16.o<BR>
| | | | |-- plip.o<BR>
| | | | |-- ppa.o<BR>
| | | | |-- qlogicfas.o<BR>
| | | | |-- qlogicisp.o<BR>
| | | | |-- sbpcd.o<BR>
| | | | |-- seagate.o<BR>
| | | | |-- sjcd.o<BR>
| | | | |-- smc-ultra.o<BR>
| | | | |-- smc9194.o<BR>
| | | | |-- sonycd535.o<BR>
| | | | |-- t128.o<BR>
| | | | |-- tulip.o<BR>
| | | | |-- u14-34f.o<BR>
| | | | |-- ultrastor.o<BR>
| | | | |-- wd.o<BR>
| | | | `-- wd7000.o<BR>
| | | |-- proc<BR>
| | | | `-- TRANS.TBL<BR>
| | | |-- sbin<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- e2fsck<BR>
| | | | |-- init<BR>
| | | | |-- insmod<BR>
| | | | |-- install<BR>
| | | | `-- rmmod -> insmod<BR>
| | | |-- tmp<BR>
| | | | `-- TRANS.TBL<BR>
| | | `-- usr<BR>
| | | |-- TRANS.TBL<BR>
| | | `-- lib<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- rpmrc<BR>
| | | `-- terminfo<BR>
| | | |-- TRANS.TBL<BR>
| | | `-- l<BR>
| | | |-- TRANS.TBL<BR>
| | | `-- linux<BR>
| | |-- boot2.img<BR>
| | |-- boot2.img.back<BR>
| | |-- boot2.img.gz<BR>
| | |-- boot2.img.nogz<BR>
| | |-- debug.log<BR>
| | |-- mkboot1<BR>
| | |-- mkboot2<BR>
| | |-- mkskel<BR>
| | |-- mksupp<BR>
| | |-- pcmcia<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- etc<BR>
| | | | |-- TRANS.TBL<BR>
| | | | `-- pcmcia<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- config<BR>
| | | | |-- config.opts<BR>
| | | | |-- fixed<BR>
| | | | |-- fixed.opts<BR>
| | | | |-- network<BR>
| | | | |-- scsi<BR>
| | | | `-- scsi.opts<BR>
| | | |-- lib<BR>
| | | | |-- TRANS.TBL<BR>
| | | | `-- modules<BR>
| | | | |-- 2.0.27<BR>
| | | | | |-- TRANS.TBL<BR>
| | | | | `-- pcmcia<BR>
| | | | | |-- 3c589_cs.o<BR>
| | | | | |-- TRANS.TBL<BR>
| | | | | |-- aha152x_cs.o<BR>
| | | | | |-- ds.o<BR>
| | | | | |-- fdomain_cs.o<BR>
| | | | | |-- fixed_cs.o<BR>
| | | | | |-- fmvj18x_cs.o<BR>
| | | | | |-- ftl_cs.o<BR>
| | | | | |-- i82365.o<BR>
| | | | | |-- ibmtr_cs.o<BR>
| | | | | |-- iflash2+_mtd.o<BR>
| | | | | |-- iflash2_mtd.o<BR>
| | | | | |-- memory_cs.o<BR>
| | | | | |-- nmclan_cs.o<BR>
| | | | | |-- pcmcia_core.o<BR>
| | | | | |-- pcmem_cs.o<BR>
| | | | | |-- pcnet_cs.o<BR>
| | | | | |-- qlogic_cs.o<BR>
| | | | | |-- serial_cs.o<BR>
| | | | | |-- smc91c92_cs.o<BR>
| | | | | |-- sram_mtd.o<BR>
| | | | | |-- tcic.o<BR>
| | | | | |-- wavelan_cs.o<BR>
| | | | | `-- xircnw_cs.o<BR>
| | | | `-- TRANS.TBL<BR>
| | | `-- sbin<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- cardmgr<BR>
| | | `-- probe<BR>
| | |-- skeleton<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- bin<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- awk -> gawk<BR>
| | | | |-- bash<BR>
| | | | |-- cp<BR>
| | | | |-- cpio<BR>
| | | | |-- gawk<BR>
| | | | |-- gunzip -> gzip<BR>
| | | | |-- gzip<BR>
| | | | |-- hostname<BR>
| | | | |-- ln<BR>
| | | | |-- mv<BR>
| | | | |-- rm<BR>
| | | | |-- sed<BR>
| | | | |-- sh -> bash<BR>
| | | | `-- uname<BR>
| | | |-- dev<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- null<BR>
| | | | `-- zero<BR>
| | | |-- etc<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- ld.so.cache<BR>
| | | | |-- ld.so.conf<BR>
| | | | `-- mtab<BR>
| | | |-- lib<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- ld-linux.so.1 -> ld-linux.so.1.7.14<BR>
| | | | |-- ld-linux.so.1.7.14<BR>
| | | | |-- ld.so -> ld.so.1.7.14<BR>
| | | | |-- ld.so.1.7.14<BR>
| | | | |-- libc.so.5 -> libc.so.5.3.12<BR>
| | | | |-- libc.so.5.3.12<BR>
| | | | |-- libm.so.5 -> libm.so.5.0.6<BR>
| | | | |-- libm.so.5.0.6<BR>
| | | | |-- libtermcap.so.2 -> libtermcap.so.2.0.5<BR>
| | | | `-- libtermcap.so.2.0.5<BR>
| | | |-- sbin<BR>
| | | | |-- TRANS.TBL<BR>
| | | | `-- ldconfig<BR>
| | | `-- usr<BR>
| | | |-- TRANS.TBL<BR>
| | | `-- bin<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- egrep<BR>
| | | |-- grep<BR>
| | | `-- md5sum<BR>
| | |-- supp<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- lib<BR>
| | | | |-- TRANS.TBL<BR>
| | | | |-- ld-linux.so.1<BR>
| | | | |-- ld-linux.so.1.7.14<BR>
| | | | |-- ld-linux.so.1.8.5<BR>
| | | | |-- libc.so.5 -> libc.so.5.3.12<BR>
| | | | |-- libc.so.5.3.12<BR>
| | | | |-- libcom_err.so -> /lib/libcom_err.so.2.0<BR>
| | | | |-- libcom_err.so.2 -> libcom_err.so.2.0<BR>
| | | | |-- libcom_err.so.2.0<BR>
| | | | |-- libe2p.so.2 -> libe2p.so.2.1<BR>
| | | | |-- libe2p.so.2.1<BR>
| | | | |-- libext2fs.so.2 -> libext2fs.so.2.0<BR>
| | | | |-- libext2fs.so.2.0<BR>
| | | | `-- modules -> /tmp<BR>
| | | |-- pcmcia.cgz<BR>
| | | `-- usr<BR>
| | | |-- TRANS.TBL<BR>
| | | `-- bin<BR>
| | | |-- TRANS.TBL<BR>
| | | |-- ash<BR>
| | | |-- badblocks<BR>
| | | |-- cpio<BR>
| | | |-- fdisk<BR>
| | | |-- gunzip -> gzip<BR>
| | | |-- gzip<BR>
| | | |-- insmod<BR>
| | | |-- install2<BR>
| | | |-- ls<BR>
| | | |-- mke2fs<BR>
| | | |-- open<BR>
| | | |-- runinstall2<BR>
| | | `-- sh -> ash<BR>
| | |-- updboots<BR>
| | `-- updsupp<BR>
| `-- upgrade<BR>
| |-- Makefile<BR>
| |-- TRANS.TBL<BR>
| |-- hash.c<BR>
| |-- hash.h<BR>
| |-- mkugdb.c<BR>
| `-- upgrade.c<BR>
`-- updates<BR>
|-- 00README.errata<BR>
|-- SRPMS<BR>
| |-- NetKit-B-0.09-1.src.rpm<BR>
| |-- TRANS.TBL<BR>
| |-- XFree86-3.2-5.src.rpm<BR>
| |-- adduser-1.3-1.src.rpm<BR>
| |-- amd-920824upl102-8.src.rpm<BR>
| |-- apache-1.1.3-3.src.rpm<BR>
| |-- bind-4.9.5p1-1.src.rpm<BR>
| |-- cmu-snmp-3.3-1.src.rpm<BR>
| |-- dosemu-0.64.1-3.src.rpm<BR>
| |-- efax-0.8a-2.src.rpm<BR>
| |-- gdb-4.16-6.src.rpm<BR>
| |-- glibc-0.961212-4.src.rpm<BR>
| |-- imap-4.1.BETA-3.src.rpm<BR>
| |-- initscripts-2.91-1.src.rpm<BR>
| |-- inn-1.5.1-6.src.rpm<BR>
| |-- jed-0.97.14-4.src.rpm<BR>
| |-- ld.so-sparc-1.8.3-3.src.rpm<BR>
| |-- logrotate-2.1-1.src.rpm<BR>
| |-- lpr-0.14-2.src.rpm<BR>
| |-- netcfg-2.15-1.src.rpm<BR>
| |-- printtool-3.0-14.src.rpm<BR>
| |-- python-1.4-4.src.rpm<BR>
| |-- pythonlib-1.16-1.src.rpm<BR>
| |-- rpm-2.3.2-1.src.rpm<BR>
| |-- rxvt-2.19-2.src.rpm<BR>
| |-- samba-1.9.16p9-8.src.rpm<BR>
| |-- screen-3.7.1-4.src.rpm<BR>
| |-- sendmail-8.8.5-2.src.rpm<BR>
| |-- sliplogin-2.1.0-6.src.rpm<BR>
| |-- tetex-0.4pl6-1.src.rpm<BR>
| |-- timeconfig-1.7-1.src.rpm<BR>
| |-- tmpwatch-1.1-2.src.rpm<BR>
| |-- usercfg-3.3-1.src.rpm<BR>
| |-- util-linux-2.5-34.src.rpm<BR>
| |-- wu-ftpd-2.4.2b12-4.src.rpm<BR>
| `-- ypbind-3.0-1.src.rpm<BR>
|-- TRANS.TBL<BR>
|-- i386<BR>
| |-- 00README.errata<BR>
| |-- NetKit-B-0.09-1.i386.rpm<BR>
| |-- TRANS.TBL<BR>
| |-- XFree86-3.2-5.i386.rpm<BR>
| |-- adduser-1.3-1.i386.rpm<BR>
| |-- amd-920824upl102-8.i386.rpm<BR>
| |-- apache-1.1.3-3.i386.rpm<BR>
| |-- bind-4.9.5p1-1.i386.rpm<BR>
| |-- cmu-snmp-3.3-1.i386.rpm<BR>
| |-- cmu-snmp-devel-3.3-1.i386.rpm<BR>
| |-- cmu-snmp-utils-3.3-1.i386.rpm<BR>
| |-- dosemu-0.64.1-3.i386.rpm<BR>
| |-- efax-0.8a-2.i386.rpm<BR>
| |-- imap-4.1.BETA-3.i386.rpm<BR>
| |-- initscripts-2.91-1.i386.rpm<BR>
| |-- inn-1.5.1-6.i386.rpm<BR>
| |-- inn-devel-1.5.1-6.i386.rpm<BR>
| |-- jed-0.97.14-4.i386.rpm<BR>
| |-- jed-xjed-0.97.14-4.i386.rpm<BR>
| |-- logrotate-2.1-1.i386.rpm<BR>
| |-- lpr-0.14-2.i386.rpm<BR>
| |-- netcfg-2.15-1.i386.rpm<BR>
| |-- printtool-3.0-14.i386.rpm<BR>
| |-- pythonlib-1.16-1.i386.rpm<BR>
| |-- rpm-2.3.2-1.i386.rpm<BR>
| |-- rxvt-2.19-2.i386.rpm<BR>
| |-- samba-1.9.16p9-8.i386.rpm<BR>
| |-- sendmail-8.8.5-2.i386.rpm<BR>
| |-- sendmail-cf-8.8.5-2.i386.rpm<BR>
| |-- sendmail-doc-8.8.5-2.i386.rpm<BR>
| |-- sliplogin-2.1.0-6.i386.rpm<BR>
| |-- tetex-0.4pl6-1.i386.rpm<BR>
| |-- tetex-afm-0.4pl6-1.i386.rpm<BR>
| |-- tetex-dvilj-0.4pl6-1.i386.rpm<BR>
| |-- tetex-dvips-0.4pl6-1.i386.rpm<BR>
| |-- tetex-latex-0.4pl6-1.i386.rpm<BR>
| |-- tetex-xdvi-0.4pl6-1.i386.rpm<BR>
| |-- timeconfig-1.7-1.i386.rpm<BR>
| |-- usercfg-3.3-1.i386.rpm<BR>
| |-- util-linux-2.5-34.i386.rpm<BR>
| |-- wu-ftpd-2.4.2b12-4.i386.rpm<BR>
| `-- xdosemu-0.64.1-3.i386.rpm<BR>
|-- images<BR>
| |-- TRANS.TBL<BR>
| `-- i386<BR>
| |-- README<BR>
| |-- TRANS.TBL<BR>
| |-- scsi<BR>
| | |-- README<BR>
| | |-- TRANS.TBL<BR>
| | |-- bootBusLogic.img<BR>
| | |-- bootaha1540.img<BR>
| | |-- bootaha1740.img<BR>
| | |-- bootaic7xxx.img<BR>
| | |-- booteata_dma.img<BR>
| | |-- bootultrastor.img<BR>
| | |-- config.BusLogic<BR>
| | |-- config.aha1540<BR>
| | |-- config.aha1740<BR>
| | |-- config.aic7xxx<BR>
| | |-- config.eata_dma<BR>
| | `-- config.ultrastor<BR>
| `-- supp.img<BR>
`-- scripts<BR>
|-- TRANS.TBL<BR>
|-- fix-shadow.sh<BR>
|-- i386<BR>
| |-- TRANS.TBL<BR>
| `-- lilo-dos.sh<BR>
`-- jed-xterm.Xdefaults<BR>
<P>
180 directories, 6606 files
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1998, Eric Canal <BR>
Published in Issue 31 of <i>Linux Gazette</i>, August 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc31.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./searls.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./marsden.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<h1>EMACSulation</h1>
<h4>by Eric Marsden,
<a href="mailto:emarsden@mail.dotcom.fr">emarsden@mail.dotcom.fr</a>
</h4>
</center>
<p>
<blockquote><small>
This column is devoted to making the best use of Emacs, text editor
extraordinaire. Each issue I plan to present an Emacs extension
which can improve your productivity, make the sun shine more brightly
and the grass greener.
</small></blockquote>
<P> <HR> <P>
<h1>Customizing Emacs</h1>
<p> Typical applications have a configuration file which allows you to set
the value of a few variables. Emacs goes a lot further, since the user
can customize pretty much any feature of the system. This flexibility
is due to a majority of the system being written in its extension
language. The first implementations of Emacs used a cryptic string
processing language named <a
href="http://www.netmeg.net/jargon/terms/t.html#teco">TECO</a> (you
thought <a href="http://www.perl.com/">Perl</a> was cryptic? <a
href="ftp://ftp.mindlink.net/pub/teco/">Look at</a> TECO), with support
code in <a
href="http://www.netmeg.net/jargon/terms/p/pdp-10.html">PDP-10</a>
assembly; later versions use Emacs Lisp as an extension language, with
some components (the Lisp interpreter and the display code) written in
C.
<p> This extensibility is fundamental to Emacs. Users can experiment with
modifications and improvements to the system and pass them on to
friends if they work well; ideas which catch on can be integrated in
the core distribution. The now defunct <a
href="http://www.eval-apply.com/LispOS/memo444.htm">Lisp Machines</a>
at <a href="http://web.mit.edu/">MIT</a> extended this openness to the
level of the operating system, which was written in Lisp (and ran on <a
href="http://www.lavielle.com/~joswig/symbolic-computing.html">custom
hardware</a>, specially designed to run Lisp efficiently). Lisp Machine
users had a far greater degree of control over their machine than Linux
users today. The <a href="http://squeak.cs.uiuc.edu/">Smalltalk</a>
systems at <a href="http://www.parc.xerox.com/history.html">Xerox
Parc</a> provided a similarly deep level of customization.
<p> Indeed, there is a profound difference between the development
philosophy which led to Emacs (the MIT approach), and that which led to
Unix and C (the New Jersey approach). These are compared in an
excellent paper by Richard Gabriel called <a
href="http://www.naggum.no/worse-is-better.html">Worse is Better</a>,
from which I have extracted the following:
<!-- hope nobody is concerned about copyright on this ... -->
<blockquote><font face="Helvetica">
<p> Two famous people, one from MIT and another from Berkeley (but working on
Unix) once met to discuss operating system issues. The person from MIT was
knowledgeable about ITS (the MIT AI Lab operating system) and had been
reading the Unix sources. He was interested in how Unix solved the PC
loser-ing problem. The PC loser-ing problem occurs when a user program
invokes a system routine to perform a lengthy operation that might have
significant state, such as IO buffers. If an interrupt occurs during the
operation, the state of the user program must be saved. Because the
invocation of the system routine is usually a single instruction, the PC of
the user program does not adequately capture the state of the process. The
system routine must either back out or press forward. The right thing is to
back out and restore the user program PC to the instruction that invoked
the system routine so that resumption of the user program after the
interrupt, for example, re-enters the system routine. It is called PC
loser-ing because the PC is being coerced into loser mode, where loser is
the affectionate name for user at MIT.
<p> The MIT guy did not see any code that handled this case and asked the New
Jersey guy how the problem was handled. The New Jersey guy said that the
Unix folks were aware of the problem, but the solution was for the system
routine to always finish, but sometimes an error code would be returned
that signaled that the system routine had failed to complete its action. A
correct user program, then, had to check the error code to determine
whether to simply try the system routine again. The MIT guy did not like
this solution because it was not the right thing.
<p> The New Jersey guy said that the Unix solution was right because the design
philosophy of Unix was simplicity and that the right thing was too complex.
Besides, programmers could easily insert this extra test and loop. The MIT
guy pointed out that the implementation was simple but the interface to the
functionality was complex. The New Jersey guy said that the right tradeoff
has been selected in Unix: namely, implementation simplicity was more
important than interface simplicity.
</font></blockquote>
<p> Let me come back to more concrete issues. The traditional way of
customizing [X]Emacs is to write simple Emacs Lisp expressions in a
file called <tt>.emacs</tt> in your home directory. These expressions
can either set the value of a variable, or call a function, or load a
library : </p>
<table border="0" bgColor="#E0E0E0" width="100%">
<tr><td>
<pre class="programlisting">
<font color="red">
;; set the values of a few variables. `t' stands for true and `nil' for
;; false </font>
(setq dired-listing-switches "-alF")
(setq tab-width 4)
(setq line-number-mode t)
(setq global-font-lock-mode t)
(setq next-line-add-newlines nil)
<font color="red">
;; call a function which will organize to have the time displayed in
;; the modeline</font>
(display-time)
<font color="red">
;; load an Emacs Lisp library and call its initialization function</font>
(require 'jka-compr)
(auto-compression-mode 1)</pre></td></tr></table>
<p> The syntax tends to irritate people (who deride the presence of
``<b>L</b>ots of <b>i</b>rritating <b>s</b>purious
<b>p</b>arentheses''), but using a fully-featured programming language
in a configuration file has genuine and significant advantages. It
allows you to test for features of the local setup, for example :
</p>
<table border="0" bgColor="#E0E0E0" width="100%">
<tr><td>
<pre class="programlisting">
(if (file-exists-p "/bin/bash")
(setq explicit-shell-file-name "/bin/bash"))</pre>
</td></tr></table>
<p> which makes Emacs use the bash in <tt>*shell*</tt> buffers if it
exists on the machine. Another reason for using a real language for
setup files is that it avoids the endless proliferation of
configuration files, each with its own ideosyntractic syntax (think
~/.Xdefaults, window manager setup files, ~/.inputrc,
~/.procmailrc, etc). Hopefully the spreading use of <a
href="http://www.red-bean.com/guile/">Guile</a> as an embedded
scripting language will resolve this problem. A last advantage is that
a genuine programming language empowers the user. Indeed, in one of the
<a
href="ftp://ftp.dl.ac.uk/pub/fx/emacs/emacs-AI-memo/AI-519a.html">first
technical reports</a> about Emacs, <a
href="http://www.gnu.org/people/rms.html">Richard Stallman</a> presents
this as an important goal:
<blockquote><font face="Helvetica">
When large numbers of nontechnical workers are using a programmable
editor, they will be tempted constantly to begin programming in the
course of their day-to-day lives. This should contribute greatly to
computer literacy, especially because many of the people thus exposed
will be secretaries taught by society that they are incapable of doing
mathematics, and unable to imagine for a moment that they can learn to
program. But that won't stop them from learning it if they don't know
that it is programming that they are learning!
</font></blockquote>
<h2>Customize</h2>
<p> Recent versions of [X]Emacs include a package called
<em>Customize</em>, which helps you adapt Emacs to your liking without
writing any Lisp. Customize is written by <a
href="http://www.dina.kvl.dk/~abraham/">Per Abrahamsen</a>, also the
author of the popular <a
href="http://sunsite.auc.dk/auctex/">Auc-TeX</a> package for TeXnical
typists. It allows users to visualize the list of all the
user-configurable variables in Emacs, and to modify them to their
liking. You can reach Customize (it only exists on recent Emacsen) from
the Help <tt>-></tt> Customize menubar. In XEmacs it looks like this:
<p align="center"> <img src="./gx/marsden/customize.gif" alt="Customize screenshot"
width="535" height="668">
<p> Customize requires each Emacs Lisp library to declare the
user-modifiable variables it exports. The type of the variable is
specified, whether boolean or integer or string or selection from
several options, and several variables can be put in the same group,
which allows a hierarchical presentation of information. The
modification screens are then generated automatically on demand. It's
an elegant design, since programming the thousands of dialog boxes
manually would be a huge job, and require large amounts of storage. The
modifications made by the user are stored in a file which is read by
[X]Emacs at initialization time.
<p> An unfortunate aspect of Customize is that it introduces two methods of
doing the same thing. Users wanting to go beyond the simple
customizations possible with the graphical interface will be confronted
with an entirely new way of doing things, and may be put off. There is
a difficult path to tread between making <a
href="http://lieber.www.media.mit.edu/people/lieber/Teaching/Simple-Simple/Simple-Simple-Intro.html">
simple things simple and complex things possible</a> and the old adage
<i>Build a system that a fool can use, and only a fool will use it</i>.
<h2>Keybindings</h2>
<p> Keybindings are a particularly treacherous field for customization, the
principal problems comings from differences between X11 and console
operation (particularly with the <a
href="http://www.via.ecp.fr/LDP/HOWTO/Keyboard-and-Console-HOWTO-5.html">backspace
key</a>), and between the syntax used by Emacs and XEmacs. One of the
first things you might want to do is set the Delete, Home and EndOfLine
keys to their standard meanings in the PC world : </p>
<table border="0" bgColor="#E0E0E0" width="100%">
<tr><td>
<pre class="programlisting">
(pc-selection-mode) ; pc-select.el</pre>
</td></tr>
</table>
<p> This will also allow you to select regions of text with shift and the
cursor keys, and Cut/Copy/Paste with Shift-Delete, Control-Insert and
Shift-Insert respectively. You can bind function keys as follows (this
syntax should work equally well with Emacs and XEmacs) : </p>
<table border="0" bgColor="#E0E0E0" width="100%">
<tr><td><pre>
(define-key global-map [(f2)] 'save-buffer)
(define-key global-map [(f4)] (lambda () (interactive) (kill-buffer nil)))</pre>
</td></tr>
</table>
<p> The first line makes the <tt>F2</tt> key save the current buffer (by
binding to the built-in function <tt>save-buffer</tt>), and the second
shows how to bind to your own function: the <tt>lambda</tt> introduces
an anonymous function in Lisp; the <tt>(interactive)</tt> means that
you will be able to access the function interactively, the rest kills
the current buffer without asking confirmation. The <tt>global-map</tt>
means that these bindings apply everywhere in Emacs, whether you're
reading email or composing some HTML. You can also define local key
bindings, which apply only to buffers which are in specific
modes : </p>
<table border="0" bgColor="#E0E0E0" width="100%">
<tr><td><pre>
(define-key emacs-lisp-mode-map [(control c) (control e)] 'eval-buffer)
(define-key c-mode-map [(f5)] 'compile)</pre>
</td></tr>
</table>
<p> The Emacs FAQ (available online by saying <tt>C-h F</tt>) presents
another method of binding keys, which may not work across Emacs
versions. Jari Aalto has written a <a
href="ftp://cs.uta.fi/pub/ssjaaa/ema-keys.html">long guide to
keybindings</a> which describes many different ways of rebinding keys.
<p> If you are lucky enough to have a Windows 95 keyboard you can put those
lovely keys to use in X11 with a little <a
href="http://hoth.stsci.edu/man/man1/xmodmap.html">xmodmap</a>ping. The
X Window System has five possible key modifiers, the first three being
Shift, Control and Alt on PC keyboards. You can set the windows keys to
Super and Hyper modifiers as follows (this is for a French keyboard;
use <a href="http://www.rob.cs.tu-bs.de/man/xev(6)">xev</a> to work out
the keycodes for your keyboard) :</p>
<table border="0" bgColor="#E0E0E0" width="100%">
<tr><td>
<pre>
(shell-command (concat "xmodmap "
"-e 'keycode 115 = Hyper_L' "
"-e 'keycode 116 = Hyper_R' "
"-e 'keycode 117 = Super_L' "
"-e 'add mod4 = Hyper_L' "
"-e 'add mod4 = Hyper_R' "
"-e 'add mod3 = Super_L' "))
(message "Setting up Hyper and Super keys")
(define-key global-map [(hyper tab)] 'complete-tag)
(define-key global-map [(super !)] 'speedbar-get-focus)
</pre></td></tr>
</table>
<h2>Backups</h2>
<p> In its default configuration, Emacs makes backups with a tilde appended
to the filename, in the same directory as the original file. If you
would prefer having all backups in one spot, try the following code.
Emacs can also keep a series of numbered backups <i>à la</i> VMS; look
at the variable <tt>version-control</tt>.</p>
<table border="0" bgColor="#E0E0E0" width="100%">
<tr><td>
<pre class="programlisting">
<font color="red">
;; make backup files in ~/.backups/ rather than scattered around all
;; over the filesystem. </font>
(defun make-backup-file-name (file-name) <font color="brown">
"Create the non-numeric backup file name for `file-name'." </font>
(require 'dired)
(if (file-exists-p "~/.backups")
(concat (expand-file-name "~/.backups/")
(dired-replace-in-string "/" "|" file-name))
(concat file-name "~")))
<font color="red">
;; disable backups for files in /tmp or in my Mail or News directories. </font>
(defun ecm-backup-enable-predicate (filename)
(and (not (string= "/tmp/" (substring filename 0 5)))
(not (string-match "/Mail/" filename))
(not (string-match "/News/" filename))))
(setq backup-enable-predicate 'ecm-backup-enable-predicate)
</pre></td></tr>
</table>
<h2>Further information</h2>
<p> These are only a few examples of things which can be customized in
[X]Emacs. Here are a few pointers to further sources of
inspiration :
<ul>
<li> The online manuals contain extensive, well-written explanations which
can be browsed from within [X]Emacs (type <tt>C-h i</tt>), and include
a page of examples to put in your <tt>~/.emacs</tt>.
<li> The <a
href="http://hill.ucs.ualberta.ca/Documentation/Info/by-node/elisp-19-2.4.2/elisp_toc.html">Emacs
Lisp manual</a> describes the details and ideosyncraties of Emacs'
extension language.
<li> The <a href="http://www.cis.ohio-state.edu/hypertext/faq/usenet/GNU-Emacs-FAQ/top.html">Emacs FAQ</a>.
<li> The <a href="http://www.xemacs.org/faq/xemacs-faq.html">XEmacs FAQ</a>.
<li> The newsgroup <a
href="news:gnu.emacs.help">gnu.emacs.help</a> for GNU Emacs-specific
questions, <a href="news:comp.emacs.xemacs">comp.emacs.xemacs</a> for
<a href="http://www.XEmacs.org/">XEmacs</a> users, <a
href="news:comp.emacs">comp.emacs</a> for general questions, and <a
href="news:alt.religion.emacs">alt.religion.emacs</a> for questions
regarding the <a
href="http://www.dina.kvl.dk/~abraham/religion/">Church of Emacs</a>.
<li> Typically a new package you can pick up will include comments near the
beginning of the source code explaining which variables may usefully
be modified.
<li> XEmacs is distributed with a <a
href="http://petaxp.rug.ac.be/~erik/xemacs/sample.emacs">sample
<tt>~/.emacs</tt></a> file.
<li> Erik Sundermann's <a href="http://petaxp.rug.ac.be/~erik/xemacs/">
XEmacs Customization Page</a> is mentioned in the XEmacs FAQ.
</ul>
<h2>Feedback</h2>
<p> <a href="mailto:zweije@xs4all.nl">Vincent Zweije</a> wrote to me
regarding my gnuserv column, where I suggested using <tt>cat
/etc/passwd | md5sum</tt> as a means of generating a cookie for xauth.
<hr width="0">
<table bgColor="#FAF0E6">
<tr><td>
<font color="darkslateblue">
<p> In <URL:http://www.linuxgazette.com/issue29/marsden.html>, you wrote:
</font>
<blockquote>
<p> [...]
<p> While allowing access to your X display is bad enough (someone could
capture all your keystrokes, for example), giving remote access to
your Emacs process is much more worrying, since Emacs can execute
arbitrary commands under your id, delete files, send insulting email
to the President of the United States, etc.
</blockquote>
<font color="darkslateblue">
<p> Or maybe more dangerous, send insulting email to the president of an
arbitrary banana republic. :-)
</font>
<blockquote>
<p> Since release 2.1, gnuserv is able to use MIT-MAGIC-COOKIE-1
authentication for remote requests. This protocol uses the contents of
your ~/.Xauthority file, as described in the xauth(1) man page.
Gnuserv requires a cookie for display number 999, which you can create
as follows (blade is the name of the machine) :
<pre>
~$ xauth add blade:999 . `cat /etc/passwd | md5sum`
~$ xauth list
blade/unix:0 MIT-MAGIC-COOKIE-1 bc1d627babdbabe9d1f288d2b57c348f
blade:999 MIT-MAGIC-COOKIE-1 d89570b20925d401c05a79be67159cae
</pre>
</blockquote>
<font color="darkslateblue">
<p> You have picked an unlucky example. There is a real danger that
/etc/passwd is stable over a long period. This means that it will
generate the same magic cookie for many times.
<p> This is a problem when you have given a cookie away (either voluntarily
or involuntarily), and intend to revoke permissions by generating a
new cookie.
<p> Best is to select a source of data that is volatile such as the output
of ps -al or /proc/interrupts, or use mcookie, as you indicated later.
</font>
</td></tr>
</table>
<hr width="0">
<p> These remarks are particularly important if the site is using shadow
passwords. Vincent noted that security issues are too important to be
left to ordinary users :
<hr width="0">
<table bgColor="#FAF0E6">
<tr><td><font color="darkslateblue">
<p> Come to think of it, it's probably just a bad idea to let ordinary users
arrange their own security, as with magic cookies. They're just not
enough concerned with security - they want to get their job done.
<p> You'd be amazed at how many times on usenet I've seen suggested to do
"xhost +" to allow X connections from anywhere. Such people
often don't even realise that they're dealing with security. They see
disallowing X (gnuserv) connections as a hindrance, and just want a
magic incantation to remove it. It's a perception thing.
<p> Someone who deals with security simply has to know what he's doing.
However, first you have to realise that it is security that you're
playing with.
</font>
</td></tr></table>
<hr width="0">
<h2>Next time ...</h2>
<p> Next month I'll look at the different abbreviation facilities in
Emacs. Don't hesitate to contact me at
<tt><emarsden@mail.dotcom.fr></tt> with comments, corrections or
suggestions (what's <em>your</em> favorite couldn't-do-without Emacs
extension package?). <code>C-u 1000 M-x hail-emacs</code> !
<p> <strong>PS</strong> : Emacs isn't in any way limited to Linux, since
implementations exist for many other operating systems (and some
systems which only halfway operate). However, as one of the leading
bits of free software, one of the most powerful, complex and
customizable, I feel it has its place in the <i>Linux Gazette</i>.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1998, Eric Marsden <BR>
Published in Issue 31 of <i>Linux Gazette</i>, August 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc31.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./canal.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./roelofs.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<font color="navy">A <I>Linux Journal</I> Preview</font>:
This article will appear in the October issue of <I>Linux Journal</I>.
<P> <HR> <P>
<IMG WIDTH=165 HEIGHT=76 BORDER=0
ALIGN="right" SRC="./gx/roelofs/linux-dont-fear.jpg" ALT="[Don't Fear the Penguins.]"></A>
<center>
<H1><font color="maroon">The Future of Linux, 14 July 1998</font></H1>
<H4>By <a href="mailto:newt@pobox.com">Greg Roelofs</a></H4>
</center>
<P> <HR> <P>
<A HREF="./photos2.html">Photo Album</A>
<P> <HR> <P>
<BR CLEAR="all">
<A HREF="http://www.teamtaos.com/events/linux/"><I>The Future of Linux</I></A>
was set up as a panel discussion and was held at the Santa Clara Convention
Center (in the heart of Silicon Valley) on the evening of 14 July 1998. It
was hosted by <A HREF="http://www.taos.com/">Taos Mountain</A> and the
<A HREF="http://www.svlug.org/">Silicon Valley Linux Users Group</A> (SVLUG),
and it was sponsored by them, <A HREF="http://www.intel.com/">Intel</A>,
<A HREF="http://www.redhat.com/">Red Hat</A>, <A
HREF="http://www.linuxjournal.com/"
>Linux Journal</A>, and <A HREF="http://www.varesearch.com/">VA
Research</A>. Apparently it was considerably more popular than Taos
expected; people stood in line between 40 and 60 minutes to register, and
the free food and free VA Research/Linux t-shirts ran out. I didn't get a
firm count, but Taos said 850 people had RSVP'd, and it appeared that at
<I>least</I> 700 chairs were occupied, possibly upwards of 900 or more.
(Other reports have claimed ``more than 850'' and ``more than 1000'';
apparently quite a few people chose to stand near the front rather than
sit in back.)
<P>
The panel was a distinguished group: <B>Jeremy Allison</B>, one of the
lead <A HREF="http://samba.anu.edu.au/samba/samba.html">Samba</A> developers;
<B>Larry Augustin</B>, founder of VA Research and member of the
<A HREF="http://www.li.org/">Linux International</A> (LI) Board of Directors;
<B>Robert Hart</B>, from Red Hat Software; <B>Sunil Saxena</B>, from Intel's
Unix Performance Lab; and, of course, The Man himself, <B>Linus Torvalds</B>.
<!--
<FONT COLOR="#006600">[And for all those unwashed heathens out there:
Linus may not care how anyone <I>else</I> pronounces ``Linux,'' but
<I>he</I> unquestionably does so with a short `i' as in ``linen.''
So there.]<SUP>*</SUP></FONT>
-->
<FONT COLOR="#006600">[And while I know there are a lot of Linux fans
who like to pronounce ``Linux'' with a long `i' sound (LYE-nucks), and
despite the fact that Linus himself doesn't care how anyone else pronounces
it, <I>he</I> unquestionably did so with a short `i' as in ``linen''
(LINN-ucks). In Swedish he presumably still pronounces it the third
way, roughly ``<A HREF=
"ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/SillySounds/swedish.au"
>LEE-nooks</A>.'']<SUP>*</SUP></FONT>
It was moderated by <B>Michael Masterson</B> of Taos, who traded off
questioning duties with <B>Phil Hughes</B>, all-around hairy guy and the
publisher of <I>Linux Journal</I>.
<P>
The panelists were given a pair of questions ahead of time and five minutes
(per panelist) to respond to each. The evening progressed more or less as
follows:
<P>
<CENTER>
<TABLE BORDER=1 CELLPADDING=0> <!-- nice border -->
<TR BGCOLOR="#ffffd0">
<TD VALIGN="center" ALIGN="center">
<TABLE CELLPADDING=3 CELLSPACING=0 BORDER=0>
<TR BGCOLOR="#ffd0d0">
<TD VALIGN="center" ALIGN="center">
wait in line...keep waiting...trade RSVP form for name sticker
</TD>
</TR>
<TR BGCOLOR="#ffd0d0">
<TD VALIGN="center" ALIGN="center">
get free t-shirt / whimper about missing food and lack of dinner
</TD>
</TR>
<TR BGCOLOR="#c0dcc0">
<TD VALIGN="center" ALIGN="center">
<A HREF="linux-19980714-dnd.html">demos</A> / sit down
</TD>
</TR>
<TR BGCOLOR="#c0dcc0">
<TD VALIGN="center" ALIGN="center">
<A HREF="linux-19980714-pq1.html">panel's semi-prepared
responses to first question</A>
</TD>
</TR>
<TR BGCOLOR="#c0dcc0">
<TD VALIGN="center" ALIGN="center">
<A HREF="linux-19980714-qa1.html">audience Q & A</A>
</TD>
</TR>
<TR BGCOLOR="#c0dcc0">
<TD VALIGN="center" ALIGN="center">
<A HREF="linux-19980714-phq.html">moderator Q & A</A>
</TD>
</TR>
<TR BGCOLOR="#c0dcc0">
<TD VALIGN="center" ALIGN="center">
<A HREF="linux-19980714-pq2.html">panel's semi-prepared
responses to second question</A>
</TD>
</TR>
<TR BGCOLOR="#c0dcc0">
<TD VALIGN="center" ALIGN="center">
<A HREF="linux-19980714-qa2.html">more audience Q & A</A>
</TD>
</TR>
<TR BGCOLOR="#c0dcc0">
<TD VALIGN="center" ALIGN="center">
<A HREF="linux-19980714-dnd.html">door prizes</A>
</TD>
</TR>
<TR BGCOLOR="#c0dcc0">
<TD VALIGN="center" ALIGN="center">
<A HREF="linux-19980714-dnd.html">demos</A> / schmoozing /
fall-on-knees-and-worship-Linus / etc.
</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
</CENTER>
<P>
Note that in each section I've included various editorial comments in
<FONT COLOR="#006600">[green brackets]</FONT>, usually
<FONT COLOR="#006600">[<I>italicized</I>]</FONT>.
<P>
Thanks to the following people for their corrections and additional info;
any remaining errors or omissions are solely my fault:
<P>
<BLOCKQUOTE>
<TABLE CELLPADDING=0 CELLSPACING=0 BORDER=0>
<TR>
<TD VALIGN="top" ALIGN="left">
<UL>
<LI>Jeffrey Chapman <!-- jchapman@armory.com -->
<LI>Michael Cope <!-- mcope@orion.ac.hmc.edu -->
<LI>Michael Hicks <!-- hick0088@tc.umn.edu -->
<LI>Dan Kaminsky <!-- effugas@best.com -->
</UL>
</TD>
<TD VALIGN="top" ALIGN="left">
<UL>
<LI>Joe Klemmer <!-- klemmerj@hoffman.army.mil -->
<LI>Ian Kluft <!-- ikluft@cisco.com -->
<LI>Anas Nashif <!-- nashif@rz.uni-mannheim.de -->
<LI>Brent J. Nordquist <!-- bjn@visi.com -->
</UL>
</TD>
<TD VALIGN="top" ALIGN="left">
<UL>
<LI>Alexandre Petit-Bianco <!-- apbianco@cygnus.com -->
<LI>Jason Riedy <!-- ejr@cise.ufl.edu -->
<LI>David Sundqvist <!-- azzie@netpolicy.com -->
</UL>
</TD>
</TR>
</TABLE>
</BLOCKQUOTE>
<P>
See also <A HREF="http://www.teamtaos.com/events/linux/">Taos Mountain's
announcement</A> (including a streaming video of highlights), <A HREF=
"http://www.svlug.org/events/future-199807-reviews.shtml">SVLUG's
summary/reviews page</A>, <A HREF=
"http://eetimes.com/news/98/1017news/linux.html">EE Times' article</A> and
<A HREF="http://slashdot.org/articles/980717/2021236.shtml">Slashdot's
discussion of it</A>, <A HREF=
"http://www.infoworld.com/cgi-bin/displayStory.pl?980715.ehlinux.htm"
>InfoWorld's article</A>, <A HREF="http://www.tbtf.com/resource/skodlar.txt"
>Rafael Skodlar's report</A> at the <A HREF="http://www.tbtf.com/">Tasty
Bits</A> archive, <A HREF="http://www.forbes.com/forbes/98/0810/6209094a.htm"
>Forbes' cover story</A>, <A HREF=
"http://www.infoworld.com/cgi-bin/displayNew.pl?/tebbe/980727mt.htm">Mark
Tebbe's InfoWorld column</A>, and, of course, <A HREF=
"http://www.slashdot.org/articles/980719/1413242.shtml">Slashdot's discussion
of this very report</A>.
<P>
Finally, here are some interesting developments from the week following the
event:
<P>
<UL>
<LI>Informix's <A HREF=
"http://www.informix.com/informix/corpinfo/ifxnews/press/1998/freelxpr.html"
>Linux press release</A> (<B>Informix-SE</B> and <B>free developer's
kit</B>)
<LI>Oracle's <A HREF="http://www.oracle.com/cgi-bin/press/printpr.cgi?file=980721.26767.html&mode=corp&td=1&tm=8&fd=1&fm=07&status=Search&ty=98&limit=50&fy=98"
>Linux press release</A> (<B>Oracle8</B>) and <A HREF=
"http://www.oracle.com/html/linux.html">feature article</A>
<!-- also "http://biz.yahoo.com/prnews/980721/ca_oracle__1.html" -->
<LI>Netscape's <A HREF=
"http://home.netscape.com/newsref/pr/newsrelease650.html">Linux press
release</A> (<B>Netscape Messaging Server</B> and <B>Netscape Directory
Server</B>)
<LI>IBM's <A HREF="http://www.alphaworks.ibm.com/formula/Jikes">fast Java
compiler</A> and <A HREF=
"http://www.alphaworks.ibm.com/formula/JikesDebugger">debugger</A>
(<B>Jikes</B>, just ported to Linux, and <B>JikesDebugger</B>)
<LI>Dean Olson's Slashdot article on <A HREF=
"http://www.slashdot.org/features/980722/0955225.shtml"><I>Linux and
Corporations</I></A>
</UL>
<P>
Note that a number of other relational databases, including Computer Associates'
<A HREF="http://www.ingres.com/"><B>Ingres II</B></A>, have already been ported
to Linux. And, of course, the most popular web server in the world (<A HREF=
"http://www.apache.org/"><B>Apache</B></A>) has run on Linux for years and
happens to be freely available as well.
<P>
<HR>
<FONT COLOR="#006600" SIZE="-1">
<SUP>*</SUP> Oh yeah, and <B>vi rules</B>, too. Here, take two of these
<IMG ALIGN=top WIDTH=16 HEIGHT=16 SRC="./gx/roelofs/smile.happy.gif" ALT=" :-) ">
<IMG ALIGN=top WIDTH=16 HEIGHT=16 SRC="./gx/roelofs/smile.happy.gif" ALT=" :-) ">
and don't flame me in the morning... We all love Linux regardless of how
it's pronounced, right??
</FONT>
<HR>
<I>Last modified 28 July 1998 by
<A HREF="mailto:newt@pobox.com">newt@pobox.com</A> , you betcha.</I>
<P>
<FONT SIZE="-1">
Copyright © 1998 <A HREF="http://pobox.com/~newt/">Greg Roelofs</A>.
</FONT>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1998, Greg Roelofs <BR>
Published in Issue 31 of <i>Linux Gazette</i>, August 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc31.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./marsden.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./gm.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<!-- =============================================================
This Page Designed by Michael J. Hammel.
Permission to use all graphics and other content for private,
non-commerical use is granted provided you give me (or the
original authors/artists) credit for the work.
CD-ROM distributors and commercial ventures interested in
providing the Graphics Muse for a fee must contact me,
Michael J. Hammel (mjhammel@graphics-muse.org), for permission.
============================================================= !--><!-- The Button box as a client side imagemap --> <MAP NAME="nav-main"><AREA SHAPE="rect" HREF="#mews" coords="20,18 185,40"><AREA SHAPE="rect" HREF="#webwonderings" coords="10,60 185,83"><AREA SHAPE="rect" HREF="#musings" coords="90,102 185,130"><AREA SHAPE="rect" HREF="#resources" coords="70,152 185,180"></MAP>
<TABLE BORDER=0 COLS=2 WIDTH="100%" >
<TR>
<TD><IMG SRC="../gx/hammel/gm3.gif" ALT="Welcome to the Graphics Muse" NOSAVE HEIGHT=216 WIDTH=441 ALIGN=LEFT></TD>
<TD VALIGN=BOTTOM>
<CENTER><FONT SIZE=-1>Set your browser as wide as you'd like now.
I've fixed the Muse to expand to fill the aviailable space!</FONT></CENTER>
<CENTER><FONT SIZE=-2>© 1998 by <A HREF="mailto:mjhammel@graphics-muse.org">mjh</A> </FONT></CENTER>
</TD>
</TR>
</TABLE>
<HR WIDTH="100%">
<TABLE BORDER=0 COLS=2 WIDTH="100%" >
<TR>
<TD WIDTH="185"><IMG SRC="../gx/hammel/muse-image-map.gif" ALT="Button Bar" BORDER=0 USEMAP="#nav-main" HEIGHT=200 WIDTH=185 ALIGN=LEFT></TD>
<TD VALIGN=TOP><B><FONT SIZE=+1>muse:</FONT></B>
<OL>
<LI>
<I>v;</I> to become absorbed in thought </LI>
<LI>
<I>n;</I> [ fr. Any of the nine sister goddesses of learning and the arts
in Greek Mythology ]: a source of inspiration </LI>
</OL>
<IMG SRC="../gx/hammel/w.gif" ALT="W" HEIGHT=28 WIDTH=36 ALIGN=BOTTOM>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.
<CENTER><FONT SIZE=-1>[<A HREF="#mews">Graphics Mews</A>][<A HREF="#webwonderings">WebWonderings</A>][<A HREF="#musings">Musings</A>]
[<A HREF="#resources">Resources</A>]</FONT></CENTER>
</TD>
</TR>
</TABLE>
<BR><IMG SRC="../gx/hammel/t.gif" ALT="T" HEIGHT=28 WIDTH=26 ALIGN=LEFT>his column
is dedicated to the use, creation, distribution, and discussion of computer
graphics tools for Linux systems.
<BR>
<BR><IMG SRC="./gx/hammel/bookcover.jpg" HSPACE=10 VSPACE=10 HEIGHT=250 WIDTH=154 ALIGN=RIGHT>Well,
its been a couple of months since we last spoke. I've been working
on a major project for the past year and the last 3 months have been exceptionally
busy. But the project is done, or very nearly so (a few minor details
left to handle) - and that project is a book on the Gimp. Its called
<I><U>The Artists Guide to the Gimp</U></I> and should hit the shelves
sometime in September. All I can say is, I hope you like it.
Writing a technical book is harder than I thought. My next one is
going to be fictional novel. You don't have to do a CD, tons of images,
or 2nd editions for those.
<P>There were plenty of graphics related news announcements since the last
Muse. Unfortunately, I just didn't keep up with them and they've
expired from my news feed. So what I've got this month is pretty
recent info. I did hang onto a few tidbits from mailing lists I've
been scanning, plus email from a few readers. Its funny - I get email
about really old versions of the Muse every now and then. I think
people are still just finding out about it.
<BR>
<BR>In this months column I'll be covering ...
<UL>
<LI>
creating dynamic web pages with msql and CGI.pm</LI>
<LI>
Gimp 1.0 - well, just a little.</LI>
</UL>
I'll have more for next month, but I just finished the book with only 3
days to get the Muse done.
<P><A NAME="mews"></A>
<BR>
<TABLE BORDER=0 COLS=1 WIDTH="100%" >
<TR>
<TD><IMG SRC="../gx/hammel/mews.gif" ALT="Graphics Mews" HEIGHT=53 WIDTH=242 ALIGN=LEFT></TD>
</TR>
</TABLE>
Disclaimer: 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.
<BR>
<TABLE BORDER=0 COLS=3 WIDTH="100%" >
<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 WIDTH="50%">
<H2>
Xi Graphics releases fully integrated Linux distribution</H2>
This isn't really graphics related, but Xi is an X server vendor.
And X server vendors are pretty important to the Linux graphics world.
So, here it is.
<P>Xi Graphics is now providing a commercial Linux distribution which includes
their <B><FONT COLOR="#993300">Accelerated X</FONT></B> server and their
maximum/CDE desktop product. Unit price is $214.95 for the Executive
Edition and $364.95 for the Developers Edition.
<P>For more details:
<BR>Kyle Fink
<BR>Xi Graphics
<BR>(303) 298-7478
<BR>kyle@xig.com</TD>
<TD ROWSPAN="3" WIDTH="2" BGCOLOR="#000000"><IMG SRC="cleardot.gif" ALT="indent" HSPACE=1 HEIGHT=1 WIDTH=1></TD>
<TD WIDTH="49%">
<H2>
Panasonic PalmCam utility</H2>
Fredrik Roubert has released a very early version (v0.3) of a driver for
the <B><FONT COLOR="#993300">Panasonic PalmCam</FONT></B>, an NV-DC1000
digital camera. According to Robert a couple of the features include
the ability to specify ranges to download and to preview or delete several
images in one session.
<P>For more information, check out his web page at
<BR><A HREF="http://www.df.lth.se/~roubert/NV-DC1000.html">http://www.df.lth.se/~roubert
/NV-DC1000.html</A>
<P>The package is available from the following sites:
<BR><A HREF="ftp://ftp.df.lth.se/pub/users/roubert/Linux">ftp://ftp.df.lth.se/
pub/users/roubert/Linux</A>
<BR><A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/graphics/capture">ftp://sunsite.unc.edu/
pub/Linux/apps/graphics/capture</A>
<BR> </TD>
</TR>
<TR>
<TD BGCOLOR="#000000"><IMG SRC="cleardot.gif" HSPACE=1 HEIGHT=1 WIDTH=1></TD>
<TD BGCOLOR="#000000"><IMG SRC="cleardot.gif" HSPACE=1 HEIGHT=1 WIDTH=1></TD>
</TR>
<TR>
<TD>
<H2>
Linux / 3-D SIGGRAPH Report</H2>
At SIGGRAPH '98 in Orlando, Florida Daryll Strauss and Brian Paul organized
a special interest group (SIG) session to talk
<BR>about Linux, 3-D hardware acceleration, and related topics.
<P>Attendence was greater than expected with 100-150 people attending.
<P>A summary of presentations taken by Brian Paul, author of the Mesa package,
can be found at
<BR><A HREF="http://glide.xxedgexx.com/SIGNotes.html">http://glide.xxedgexx.com/
SIGNotes.html</A>
<P>
<HR WIDTH="100%">
<H2>
Blender News</H2>
There were a number of updates to Blender, the 3D modelling page from NeoGeo.
Here is a snapshot of annoucements from their News page:
<P>Blender manual (1998-07-10)
<UL>All information you need, packed in cool design at paper: the Blender
1.5 manual is scheduled to ship in October. Information about pricing and
pre-ordering will be available in August. </UL>
The Unofficial Blender Mailing list (1998-06-16)
<UL>To subscribe: send mail to <A HREF="mailto:majordomo@iqm.unicamp.br">majordomo@iqm.unicamp.br</A>
with the text
<CENTER><FONT SIZE=-1>subscribe blender3d your@email.address</FONT> </CENTER>
To post, send your message to <A HREF="mailto:blender3d@iqm.unicamp.br">blender3d@iqm.unicamp.br</A></UL>
Version 1.34 for Linux/FreeBSD available today. (1998-06-04)
<UL>Many bugs fixed and included some features: Play (flipbook). Use it
for playback test animations (Hamx) Frame counter during anim playback.
Read the BlenderBeta page for more.</UL>
</TD>
<TD>
<H2>
Linux IEEE-1394 (FireWire) Subsystem - Status report</H2>
Emanuel Pirker is working on the Linux IEEE-1394 (<B><FONT COLOR="#993300">FireWire</FONT></B>)
Subsystem for a while now and thought it would be a good idea to give a
small status report.
<P>IEEE-1394 is the name of a high-speed but low-cost serial bus. Apple
has trademarked it as "FireWire". Current implementations reach 200 Mbit/s,
soon we will have 400 and then 800 and so on. FireWire is designed for
consumer multimedia (e. g. connecting a digital video camera to your PC)
and high-speed peripherals (hard disks, CD ROMs, but also scanners, printers).
Since it provides quality of service (guaranteed bandwith and bounded latency)
it can also be used in industrial real-time applications.
<P>Support for Windows (NT) and Rhapsody is coming (some items are already
operational) but Linux users also want to benefit from this technology
- so Emanual started the development as a university project last winter.
<P>He now has a clearly designed subsystem, an Adaptec AIC-5800 driver
and some code to test it. Not all FireWire functions can be used now but
he has reached a point where the API is stable and other people can also
contribute work (e.g. a video camera driver).
<P>So if you are interested in this, just email Emanual - more (wo)manpower
is desperately needed.
<P>Contact addresses:
<BR>WWW: <A HREF="http://www.edu.uni-klu.ac.at/~epirker/ieee1394/">http://www.edu.uni-klu.ac.at/
~epirker/ieee1394/</A>
<BR>E-Mail: <A HREF="mailto:epirker@edu.uni-klu.ac.at">epirker@edu.uni-klu.ac.at </A>
<BR>
<BR>
<HR WIDTH="100%">
<P>Some late entries:
<P><A HREF="http://www.wizards.dupont.com/cristy/ImageMagick.html">ImageMagick
4.0.8</A>
<BR><A HREF="http://www.inforoute.capway.com/brunet3/">Panard Vision -
Portable Real-time 3D Engine for Linux</A>
<BR><A HREF="http://www.ssec.wisc.edu/~brianp/Mesa.html">Mesa 3.0 beta
7</A>
<BR><A HREF="ftp://ftp.mostang.com/pub/sane/">SANE 0.74</A>
<BR><A HREF="http://www.fas.harvard.edu/~lukka/freewrl">FreeWRL 0.14</A>
<P>For more details on these, check out <A HREF="http://www.freshmeat.net">Freshmeat.net.</A></TD>
</TR>
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG SRC="cleardot.gif" HSPACE=1 HEIGHT=1 WIDTH=1></TD>
</TR>
</TABLE>
<H2>
XVScan 1.80 Scanning software</H2>
tummy.com, ltd. is pleased to announce <B><FONT COLOR="#993300">XVScan
Version 1.80</FONT></B>, which now includes support for Microtek ScanMaker
E3 and E6 scanners as well as HP SCSI ScanJet scanners. Currently
the Microtek support is available on Linux and Solaris, but our other platforms
will include that support shortly.
<P>XVScan is based on the popular <B><FONT COLOR="#993300">xv</FONT></B>
image manipulation software for X Windows and includes a fully licensed
copy of xv. It is source available commercial software.
<P>If you've never used John Bradley's XV image manipulation software,
it's difficult to describe how powerful it is. XV reads and writes files
in a dozen different formats, provides powerful color-map editing, window
capture, color-space conversion, cropping, image manipulation algorithms,
and the list goes on.
<P>XV gives you powerful image and color-map manipulation, support for
over a dozen image formats, as well as the Visual Schnauzer, and an easy
to use graphical interface to view and catalog your scanned images.
Supported images formats include: PNG, GIF, JPEG, progressive JPEG, TIFF
(compressed and uncompressed), PostScript (requires ghostscript), PBM/PGM/PPM
(raw and ascii), X11 Bitmap, XPM (X PixMap), Sun Rasterfile,
<P>With XVScan, you now have the ability to scan directly into XV in a
very cost efficient (and more importantly time efficient) manner.
<P>See our website <A HREF="http://www.tummy.com/xvscan/">http://www.tummy.com/xvscan/</A>
for a full list of supported scanners.
<P><U>What's New in Version 1.80</U>
<OL>
<LI>
Microtek ScanMaker E3 and E6 support</LI>
<LI>
HP ScanJet 5P push button scanning</LI>
<LI>
Updated JPEG and TIFF conversions</LI>
</OL>
The Linux version requires working generic SCSI driver. It has been tested
with versions 1.2.7 and higher of the kernel.
<P>The current version of XVScan is 1.80 dated 1998-06-11 based upon XV
version 3.10a dated 12/29/94.
<P>XVScan is $US50 for Linux, HP-UX, FreeBSD and BSD/OS for free ftp delivery.
XVScan is $US80 for Solaris bundled with SGLite SCSI driver. CD-ROM
Media $US20. Contact xvscan@tummy.com to order or order on the web at <A HREF="https://www.tummy.com/ordering/onlineorder.phtml">https://www.tummy.com/ordering/onlineorder.phtml.</A>
Payment accepted via check, Visa/Mastercard/Discover/AMEX cards.
<P>Contact tummy.com, ltd, phone: (970) 223-8215, fax: (408) 490-2728,
<BR>URL: <<A HREF="http://www.tummy.com/xvscan/">http://www.tummy.com/xvscan/</A>>
<BR>email: <<A HREF="mailto:xvscan@tummy.com">xvscan@tummy.com</A>>
<P>
<HR WIDTH="100%">
<H2>
S.u.S.E. releases new X servers for Rendition, Cyrix, SiS and 3DLabs</H2>
S.u.S.E. is proud to announce the release of a new set of X servers for
several popular graphic chipsets.
<P>To avoid confusion and to clearly state that these servers are part
of XFree86, S.u.S.E. has changed the naming scheme of its servers. Instead
of the XSuSE prefix, they now use XFCom, which is short for XFree86 Compliant.
XFree86 compliance is intended to mean that the sources for these servers
are ALREADY part of the XFree86 development sources and will be released
as part of one of the next XFree86 releases. This is the major difference
to servers with the XBF prefix, which stands for X Binary Free and means
that sources for these servers are only available under NDA and therefore
cannot be included in XFree86.
<P>Following this naming scheme, we have renamed the XSuSE_Elsa_GLoria
server to XFCom_3DLabs and XSuSE_SiS to XFCom_SiS. Additionally, we have
added to new servers that support the very popular Rendition Verite chipsets
and the all-in-one Cyrix MediaGX CPU that includes graphics functionality.
<P><B><FONT COLOR="#993300">XFCom_Rendition</FONT></B> supports the Rendition
Verite V1000, V2100 and V2200 chips. Among the boards supported are
<UL>
<LI>
miroCRYSTAL VRX</LI>
<LI>
Diamond Stealth II S220</LI>
<LI>
Hercules Thriller3D</LI>
<LI>
Creative Labs 3D Blaster PCI</LI>
<LI>
Canopus Total-3D</LI>
<LI>
Sierra Screaming 3D</LI>
</UL>
<B><FONT COLOR="#993300">XFCom_Cyrix</FONT></B> supports the Cyrix MediaGX
CPU
<P>XFCom_SiS supports
<UL>
<LI>
SiS 6201</LI>
<LI>
SiS 6202</LI>
<LI>
SiS 6205</LI>
<LI>
SiS 5597</LI>
<LI>
SiS 5598</LI>
</UL>
<B><FONT COLOR="#993300">XFCom_3DLabs</FONT></B> supports
<UL>
<LI>
GLINT 500TX + GLINT Delta + IBM RGB 526DB</LI>
<UL>
<LI>
Elsa GLoria L</LI>
<LI>
Diamond Fire GL 3000</LI>
</UL>
<LI>
GLINT MX + GLINT Delta + IBM RGB 526DB</LI>
<UL>
<LI>
Elsa GLoria L/MX</LI>
</UL>
<LI>
Permedia + GLINT Delta + IBM RGB 526DB</LI>
<UL>
<LI>
Elsa GLoria S</LI>
<LI>
Diamond Fire GL 1000</LI>
</UL>
<LI>
Permedia 2</LI>
<UL>
<LI>
Elsa GLoria Synergy</LI>
<LI>
Elsa Winner 2000/Office</LI>
<LI>
Diamond Fire GL 1000 PRO</LI>
<LI>
Creative Blaster Exxtreme</LI>
<LI>
Leadtek WinFast 2300</LI>
<LI>
Accelstar Permedia II</LI>
</UL>
</UL>
All these servers are available as Linux x86 libc5 binaries at
<BR><A HREF="http://www.suse.de/XSuSE/XSuSE_E.html">http://www.suse.de/
XSuSE/XSuSE_E.html.</A>
<P>Binaries for other operating systems as well as glibc binaries will
be released, soon. For all questions and support concerning these
servers please do NOT contact XFree86 but send email to <A HREF="mailto:x@suse.de">x@suse.de</A>
instead.
<P>
<HR WIDTH="100%">
<P> <!--
-- Did You Know Section
-->
<H4>
Did You Know?</H4>
A comment on IRTC-L stated:
<UL>As I understand, in a cinema, the width is twice as long as the height.</UL>
Bernd Sieker, regular contributer to the IRTC list, offered the following
responses:
<UL>No, that's not really true. The most commonly used formats are:</UL>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=5 COLS=3 WIDTH="260" NOSAVE >
<TR NOSAVE>
<TD NOSAVE></TD>
<TD NOSAVE>Name</TD>
<TD>Aspect Ratio</TD>
</TR>
<TR NOSAVE>
<TD></TD>
<TD NOSAVE>Super 35</TD>
<TD>1:1.33</TD>
</TR>
<TR>
<TD></TD>
<TD>Academy</TD>
<TD>1:1.37</TD>
</TR>
<TR NOSAVE>
<TD NOSAVE></TD>
<TD>Wide Screen</TD>
<TD>1:1.66</TD>
</TR>
<TR>
<TD></TD>
<TD>Wide Screen</TD>
<TD>1:1.85</TD>
</TR>
<TR>
<TD></TD>
<TD>16:9</TD>
<TD>1:1.77</TD>
</TR>
<TR>
<TD></TD>
<TD>Cinemascope</TD>
<TD>1:2.35</TD>
</TR>
</TABLE>
<UL>So most common cinama formats are not twice as wide as high, only Cinemascope
is more than twice as wide as it is high. But this format is not as common
as some people think. It requires a special aspherical distortion lens
on both the projector and the camera.
<P>As far as I remember the scenes for Jurassic Park were rendered in 8000x6000
(1:1.33), but often much less is sufficient, like 4000x3000.</UL>
Another question from the same list: What are NTSC and PAL?
<P>Again, Bernd Sieker supplies an answer:
<UL>These are the two most common colour encoding stamdards for television.
NTSC is used in the United States and, I think, Japan, PAL is used in most
parts of Western Europe (except France. There is a third standard, called
SECAM, which is used in France and parts of Eastern Europe.</UL>
<UL>PAL and SECAM use 50 fields/s (a field is half a frame), NTSC uses
60 fields/s and fewer lines, so the bandwidth of the signals is almost
equal in all formats (Something on the order of 5 MHz).
<P>For TV the horizontal resolution is not fixed, whereas the number of
lines is; use the following for sqaure pixel aspect ratio:
<P>PAL: 768x576
<BR>NTSC: 640x480
<P>Note that the number of lines are fixed and should not be altered, all
systems work with these values.
<BR> </UL>
<!--
-- Q and A Section
-->
<H4>
<B><FONT SIZE=+0>Q and A</FONT></B></H4>
<I>Q:</I> Anyone know how to set up an Wacom Artpad for use with
Gimp, or if this is possible. I think I have to use XInput or something.
<BR>
<P>A: <A HREF="mailto:juergen@callisto.fulda.net">Juergen Schlag</A>
responded:
<UL>A few months ago I tried to set up my Wacom PenPartner with X11.
You need to configure your system like the following:</UL>
<UL>
<LI>
run Linux with a X11 server which supports the Xinput Extension (my old
S3-Board running under the XFree-Server works well, but the XSuSE-Server
for PERMEDIA2-Boards doesn't work).</LI>
</UL>
<UL>
<LI>
install the Xinput driver for the Artpad (see the docs). I used a patched
driver for the PenPartner.</LI>
</UL>
<B><I><FONT COLOR="#993300">Muse</FONT></I></B>: What driver and
what docs? Anyone know what he meant by this?
<UL>
<LI>
edit the Xinput-Section of your /etc/XF86Config to load the driver when
X11 starts (see the man-pages for XF86Config and your X-server)</LI>
</UL>
<UL>
<LI>
recompile the GTK toolkit with the Xinput-support enabled. see the README
and INSTALL file for the command switch to do this.</LI>
</UL>
<UL>
<LI>
restart your computer, start X11 and Gimp. if no error message occured
your artpad should work well</LI>
</UL>
<TABLE BORDER=0 COLS=1 WIDTH="100%" BGCOLOR="#000000" NOSAVE >
<TR>
<TD><IMG SRC="../gx/hammel/cleardot.gif" HEIGHT=3 WIDTH=1></TD>
</TR>
</TABLE>
<H2>
Reader Mail</H2>
<A HREF="mailto:dmschmit@rasc-sparc.tamu.edu">Dan Schmitt </A>wrote:
<UL>The polyray site seems to have moved. It now seems to live at:
<BR><A HREF="http://www.inf.fu-berlin.de/tec/software/public/public_html/grafik/polyray.html">http://www.inf.fu-berlin.de/tec/software/
public/public_html/grafik/polyray.html</A></UL>
<A HREF="mailto:mbeast@tls.com">Michael B. East</A> wrote:
<UL>Check out the new home page for sceda, now called sceda II! Let me
know what you think!
<BR>It's at <A HREF="http://www.tls.com/mbeast">www.tls.com/mbeast.</A></UL>
<A HREF="mailto:spm@arpc65.arm.ac.uk">Scott Manley </A>wrote:
<UL>You might be interested to add this little programm to your list of
Unix 3D graphics utilities - it generates fractal asteroids using a few
parameters given to it on the command line.
<BR><A HREF="http://star.arm.ac.uk/~spm/asteroid_impact/gen_asteroid.c">http://star.arm.ac.uk/~spm/
asteroid_impact/gen_asteroid.c</A></UL>
<B><I><FONT COLOR="#993300">'Muse</FONT></I></B>: Thanks for the
pointers guys!
<BR>
<BR><A HREF="mailto:smartin@usit.net">Steve Martin </A>wrote me about some
information in the Linux Graphics mini-Howto:
<UL>Regarding the page <A HREF="http://www.graphics-muse.org/linux/lgh.html">http://www.graphics-muse.org/linux/lgh.html</A>,
in the section <B>Creation Tools,</B> you mention that:</UL>
<UL>
<UL>"If you wish to write shaders in BMRT, you really need The Renderman
Companion book by Steve Upstill which is available from Addison Wesley.
This text also describes the RIB format. Shaders in BMRT are just
text files written in the Renderman Shading Language (described in the
book - it's a subset of C); the shader is run through the BMRT shader compiler
"slc" and then it can be used in your renderings."</UL>
I would point out a couple of inaccuracies if I may. First, Mr. Upstill's
book completely ignores the RIB format; he concentrates exclusively on
the procedural binding (i.e. the C-language API). Secondly, regarding
the Renderman Shading Language, Mr. Upstill writes:
<BR>
<UL>"The most obvious characteristic of this shader is a superficial resemblance
to a function in the C programming language."...
<BR>"This makes the shading language easier to learn, but one must beware
of assuming the shading language is C."</UL>
</UL>
<UL>The text makes it clear that, while there are some syntactic similarities
between the two languages, the RSL is *not* a "subset of C".</UL>
<B><I><FONT COLOR="#993300">'Muse</FONT></I></B>: You are completely
correct. I stand corrected.
<UL>Finally, I would recommend that anyone wanting to learn to write shaders
for Renderman read, in addition to the Renderman Companion, <I><U>Texturing
and Modelling: A Procedural Approach</U></I> by David S. Ebert et
al. It is a much more thorough and intensive work on procedural texturing
than is RC, and uses examples written almost exclusively in the Renderman
Shading Language.</UL>
<B><I><FONT COLOR="#993300">'Muse</FONT></I></B>: It is indeed.
I've got that text. Its not an easy read, but its certainly a thorough
coverage of the subject.
<UL>Hope this helps. Keep up the good work.</UL>
<B><I><FONT COLOR="#993300">'Muse</FONT></I></B>: It does help.
Thanks for clearing this up. I intend on doing a complete rewrite
of the LGH soon, but I don't know when it will be complete.
<P><A HREF="mailto:raanders@altoplanos.net">Roderick A. Anderson</A> asked
about converting GIF's to interlaced GIF's.
<UL>Are there any programs that run on a Linux platform to convert GIFs
to an interlaced format? Free first (of course),then commercial,
then</UL>
<B><I><FONT COLOR="#993300">'Muse</FONT></I></B>: NetPBM, I think.
ImageMagick may also do so. A commercial package is Image Alchemy,
but its priced for corporate use and not so much for individual use (I
think - its been awhile since I checked).
<UL>hostageware or some variation. I've been too busy to upgrade
my system to RedHat Linux 5.0 (semester is almost over soon) so I haven't
been able to try a recent version of gimp. (The version I have is less
powerful then xpaint.)</UL>
<B><I><FONT COLOR="#993300">'Muse</FONT></I></B>: Boy, thats an old
version. If you have time try the 1.0 version from <A HREF="http://www.gimp.org">www.gimp.org</A>.
You'll need to grab the GTK 1.0 libs first - <A HREF="http://www.gtk.org">www.gtk.org</A>.
The Gimp can read in non-interlaced GIF's and convert them to interlaced.
Its pretty easy to do.
<P>
<HR WIDTH="100%">
<BR><A NAME="webwonderings"></A>
<BR><IMG SRC="../gx/hammel/webwonderings.jpg" HEIGHT=57 WIDTH=246>
<H1>
Building dynamic web pages</H1>
Recently I started a complete rewrite of my web site, <A HREF="http://www.graphics-muse.org">graphics-muse.org</A>.
This is the 5th time I've done this over the past 5 years although I haven't
had my own domain that long. This rewrite comes from the obvious
need to make the my graphics resources searchable and easier to update.
So, I've had to add a database and learn to create dynamic pages.
The database part is easy - I'm going to use <A HREF="http://www.Hughes.com.au/">msql</A>.
I've used it for a few simple databases at home and its quite sufficient
for my relatively simple needs. Dynamic pages are something new,
however. And for this, I need to step into the world of <A HREF="http://www.perl.com">Perl</A>.
<P>I used to pride myself on the number of languages I had taught myself
over the years. In recent times, however, I've found myself falling
behind the curve, having grown comfortable and satisfied with C.
Although I still think C suffices for most projects I realize that I need
to move on to newer, object oriented, languages. I hate C++.
I've done a little work with it and its just a perversion of C in my eyes.
Java is my long term goal, primarily because I make a living doing graphical
interfaces and Java is the future for people like me. Perl, on the
other hand, is simply the tool of choice for the Web. I didn't want
to learn yet another scripting language, but its hard to avoid if I'm going
to try to do Web developement. So, Perl it is.
<P>Fortunately, creating dynamic Web pages with Perl turns out to be pretty
simple. A perl module called, conveniently, Msql allows me easy access
to my databases and the CGI.pm module makes generation of HTML a breeze.
Both the msql database and CGI.pm have printed texts available so learning
both is a bit easier than the traditional man-page browsing with which
I've grown up. We'll take a look at how we can use both the Msql
and CGI.pm modules to create a very simple dynamic page.
<P>This discussion does not expect you to understand how to program in
perl, but it would help. We're going to step through the process
without going into huge detail here. Also, when I talk about the
database I'll use lowercase - msql - but when I talk about the perl module
I'll use uppercase - Msql. You should, however, be a little familiar
with how SQL statements look, or at least not be afraid of looking at them.
What we'll use in this example is pretty basic and you should be able to
interpret whats going on from the code and the explanations.
<P>First, what tools do you need for this experiment?
<UL>Perl 5.003 patchlevel 7 or higher
<BR>msql 1.0.x
<BR>CGI.pm 2.38
<BR>The Msql module</UL>
These just happen to be the versions I installed on the server that hosts
my domain. I don't know what the version of the Msql module is, but
you can find it on a <A HREF="http://www.perl.com/CPAN/">CPAN</A> mirror.
Apparently if you have perl 5.004 you already have CGI.pm (its part of
the standard distribution since 5.004). If not you'll need to grab
the module from one of the CPAN mirrors. CPAN is the Comprehensive
Perl Archive Network and is where you can find all sorts of modules for
use with Perl. Modules are extensions to perl. The CGI.pm module
allows you to use methods and functions to generate HTML output in a CGI
script. Similarly, the Msql module allows you methods for accessing
an msql database. The current version of the msql database is 2.0.x,
but this seemed to have some problems when I tested simple inserts on a
Solaris box, so I'm working with the more stable 1.0.x version, which happens
to be whats on my server anyway.
<P>Ok, now lets create a simple database. Make sure the msql database
is installed properly (follow the directions with the package - its pretty
straightforward to build and install). Start the database daemon:
<UL><B><FONT FACE="Times New Roman,Times">% msqld&</FONT></B></UL>
Next you need to create an empty database, which we'll call "muse".
Use the msqladmin command for this:
<UL><B><FONT FACE="Times New Roman,Times">% msqladmin create muse</FONT></B></UL>
We can now use the msql monitor to interactively add a table and populate
the table, but lets do this the easy way. We'll create a text file
with the commands and then feed it to the monitor in batch mode.
The text file looks like this (including comments):
<UL><TT><FONT SIZE=-1># drop existing table. If it doesn't exist,
msql will basically ignore this.</FONT></TT>
<BR><TT><FONT SIZE=-1>drop table tools</FONT></TT>
<BR><TT><FONT SIZE=-1>\g</FONT></TT>
<P><TT><FONT SIZE=-1># Create a new table in the database</FONT></TT>
<BR><TT><FONT SIZE=-1>create table tools (</FONT></TT>
<BR><TT><FONT SIZE=-1> tooltype int
not null,
# 0: hand tool; 1: power tool</FONT></TT>
<BR><TT><FONT SIZE=-1> toolname char(255)
not null
# name of the tool</FONT></TT>
<BR><TT><FONT SIZE=-1>)</FONT></TT>
<BR><TT><FONT SIZE=-1>\p\g</FONT></TT>
<P><TT><FONT SIZE=-1># Insert a few entries into the table</FONT></TT>
<BR><TT><FONT SIZE=-1>insert into tools values (0, 'hammer') \g</FONT></TT>
<BR><TT><FONT SIZE=-1>insert into tools values (0, 'screwdriver') \g</FONT></TT>
<BR><TT><FONT SIZE=-1>insert into tools values (1, 'table saw') \g</FONT></TT></UL>
Save this to a file called "t<A HREF="tools.msql">ools.msql</A>".
The filename is arbitrary. The "\p" and "\g" tell the monitor to
print the command as its run and to actually run the command, respectively.
Note that the text names are enclosed in single, not double, quotes!
You can feed this to the monitor using the following command:
<UL><B><FONT FACE="Times New Roman,Times">% msql muse < tools.msql</FONT></B></UL>
Its a simple database, but this is a simple example. Now lets build
a CGI script using perl that will display a couple of tables, one of which
will contain the entries from the database. The first thing is to
tell the script to use perl5 and to load the Msql and CGI.pm modules:
<UL><TT><FONT SIZE=-1>#!/usr/bin/perl5</FONT></TT>
<P><TT><FONT SIZE=-1># Import modules of interst.</FONT></TT>
<BR><TT><FONT SIZE=-1>use CGI qw/:standard :html3 :netscape/;</FONT></TT>
<BR><TT><FONT SIZE=-1>use Msql;</FONT></TT></UL>
The location of your perl5 binary may be different, so check that first.
The stuff after "use CGI" tells perl which functions from CGI to load.
In this case we're loading the standard functions, plus the HTML3 and netscape
extensions. There are multiple methods for specifying these extensions.
You'll need to check the Perl or CGI.pm documentation (see end of this
article) for details on how to use a different syntax.
<UL><TT><FONT SIZE=-1># print out the HTML HEAD section</FONT></TT>
<BR><TT><FONT SIZE=-1>print header,</FONT></TT>
<BR><TT><FONT SIZE=-1> start_html(</FONT></TT>
<BR><TT><FONT SIZE=-1> -author=>'webmaster@graphics-muse.org',</FONT></TT>
<BR><TT><FONT SIZE=-1> -title=>'My Little
Tools',</FONT></TT>
<BR><TT><FONT SIZE=-1> -bgcolor=>'#FFFFFF',
-text=>'#000000'</FONT></TT>
<BR><TT><FONT SIZE=-1> );</FONT></TT></UL>
This prints out the <HEAD> section for you. Just modify the author
and title lines to suite your needs. Next comes our connection to
the msql database:
<UL><TT><FONT SIZE=-1># Open the Msql connections and select the databases
of interest.</FONT></TT>
<BR><TT><FONT SIZE=-1>my $dbh1 = Msql->connect();</FONT></TT>
<BR><TT><FONT SIZE=-1>$dbh1->selectdb('muse');</FONT></TT></UL>
The first line after the comment assigns a database handle to the variable
dbh. The next line use the selectdb() method to access the database
named "muse". Pretty simple, eh? You can specify a remote host
in the connect() method in the first line. You can also specify the
name of the database there. But I think explicitly calling them out
like this makes the code a little easier to maintain for someone who might
come along later and not quite understand what was going on.
<P>Ok, you've opened the connection to the database. Lets grab the
tools table entries.
<UL><TT><FONT SIZE=-1>my $sth = $dbh1->query("SELECT * from tools");</FONT></TT>
<BR><TT><FONT SIZE=-1>my @rows;</FONT></TT>
<BR><TT><FONT SIZE=-1>my @result;</FONT></TT>
<BR><TT><FONT SIZE=-1>while (@result = $sth->fetchrow)</FONT></TT>
<BR><TT><FONT SIZE=-1>{</FONT></TT>
<BR><TT><FONT SIZE=-1> push( @rows, td({-align=>'CENTER', -valign=>'CENTER'},
$result[1]) );</FONT></TT>
<BR><TT><FONT SIZE=-1>}</FONT></TT>
<BR><TT><FONT SIZE=-1>my $tools_list =</FONT></TT>
<BR><TT><FONT SIZE=-1> table( {-border=>1, -cellpadding=>'1',
-cellspacing=>'5'},</FONT></TT>
<BR><TT><FONT SIZE=-1> Tr(@rows)</FONT></TT>
<BR><TT><FONT SIZE=-1> );</FONT></TT></UL>
Looks a little confusing, but its not really. The first line assigns
a handle from the SELECT statement to the variable sth. The handle
is used to access each row of the table that matched the SELECT query.
In this case, the query() method selected all rows from the table "tools".
If we had opened another database (besides the "muse" database) we would
have used a different database handle, such as dbh2, instead. Of
course we would have had to selected that database with the selectdb()
method like we did with dbh1 earlier.
<P>The next two lines just define the variables rows and result to be local.
However, these variables will both be list variables. Lists are special
in perl - you can access all the entries in the list using the @ symbol
as a prefix, or you can access individual elements of the list by prefixing
the variable name with a $ symbol and using an array element number.
We'll see examples of both in a moment.
<P>The next 4 lines are a while() loop that process each row returned from
our SELECT query. The fetchrow() method is used to assign the current
row to the @result list. A row, of course, consists of two entries:
the tooltype and the toolname. The push() line says to append
the following to the @rows list:
<UL><TT><FONT SIZE=-1>td({-align=>'CENTER', -valign=>'CENTER'}, $result[1])</FONT></TT></UL>
The @rows list is empty to start, so each time through we're adding a new
entry to the list. Each entry is the CGI.pm modules code for specifying
a table element. The stuff between the curly braces are the table
element arguments. After that comes a list of what goes into the
element. In this case, you get the tools name - $result[1].
Remember we assigned the current table row to the @result list, and we're
accessing an element of that list by using the $ prefix and an array index.
The index always starts at 0, so an index of 1 means the second element
of the list. What happens after this while() loop is run is that
you have a list of table elements with all the tools names in them.
We'll be using these when we create a table in just a moment.
<P>Below the while() loop is another local variable, tools_list.
This variable will be used to output a table in our page. The table()
function comes from CGI.pm and is used to generate a table. Note
that neither this nor the td() functions in the while() loop have actually
been output yet. We're just storing these in variables for later
output. Again, the curly braces enclose arguments for the table HTML
tag. After that is another embedded CGI.pm function - Tr().
This function has an uppercase first letter only because perl has its own
"tr" function and there needs to be a distinction between the two.
In most cases, the CGI.pm functions will use lowercase only. The
Tr() function creates a table row. Embedded within this is are all
the table elements we stuffed into the @rows list. Still with me?
Great! All thats left is to output this back to the browser.
<UL><TT><FONT SIZE=-1># Now print the complete table</FONT></TT>
<BR><TT><FONT SIZE=-1>print</FONT></TT>
<BR><TT><FONT SIZE=-1> center(</FONT></TT>
<BR><TT><FONT SIZE=-1> table(</FONT></TT>
<BR><TT><FONT SIZE=-1> {-border=>1, -width=>'100%',
-cellpadding=>1, -cellspacing=>5},</FONT></TT>
<P><TT><FONT SIZE=-1> Tr(</FONT></TT>
<BR><TT><FONT SIZE=-1>
td({-align=>'CENTER', -valign=>'CENTER'}, $tools_list),</FONT></TT>
<BR><TT><FONT SIZE=-1> )</FONT></TT>
<BR><TT><FONT SIZE=-1> )</FONT></TT>
<BR><TT><FONT SIZE=-1>);</FONT></TT>
<P><TT><FONT SIZE=-1># End of HTML output.</FONT></TT>
<BR><TT><FONT SIZE=-1>print end_html;</FONT></TT></UL>
The print() command is from perl. It just prints to standard output,
which is what you want for CGI scripts. The center() function comes
from CGI.pm and will center the following table. The table() function
comes from CGI.pm also. We've already created a table earlier, in
our $tools_list variable. Now we're going to embed that earlier table
inside another table. We define the new tables arguments, followed
by a single table row (Tr()) and a single element in which we add the $tools_list
table.
<P>Save all this to a file called <A HREF="web.pl">web.pl</A> in your cgi-bin
directory on your web server. Make sure the script has execute permissions.
You can see this little scripts output by accessing <A HREF="http://www.graphics-muse.org/cgi-bin/web.pl">www.graphics-muse.org/cgi-bin/web.pl.</A>
Its not much, but it shows how easy it is to integrate a little bit of
database info into a web page. For what its worth, it only took me
about 2 days to get all this down, mostly by experimenting with examples
in the printed texts. It would have been quicker, but I did
it at work and ducking from coworkers took most of my time.
<P>Speaking of documentation, the texts you want are
<UL>
<LI>
<I><U>Offical Guide to Programming with CGI.pm</U></I> by Lincoln Stein,
published by Wiley Press.</LI>
<LI>
<I><U>Official Guide to MiniSQL 2.0</U></I> by Briand Jepson and David
J. Hughes, by Wiley Press.</LI>
</UL>
The msql guide is applicable to the 2.0 release, but I found it useful
for a refresher on using msql. If you need 1.0.x documentation, you
can check out the <A HREF="http://www.Hughes.com.au/">msql web site.</A>
<BR>
<P>
<HR WIDTH="100%">
<P><A NAME="musings"></A>
<BR>
<TABLE BORDER=0 COLS=1 WIDTH="100%" >
<TR>
<TD><IMG SRC="../gx/hammel/musings.gif" ALT="Musings" HEIGHT=52 WIDTH=247 ALIGN=LEFT></TD>
</TR>
</TABLE>
<TABLE BORDER=0 COLS=1 WIDTH="100%" BGCOLOR="#000000" NOSAVE >
<TR NOSAVE>
<TD NOSAVE><IMG SRC="apr98/images/cleardot.gif" HEIGHT=2 WIDTH=2></TD>
</TR>
</TABLE>
<H2>
<A NAME="xserver"></A></H2>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=2 COLS=3 WIDTH="100%" NOSAVE >
<TR NOSAVE>
<TD VALIGN=TOP ROWSPAN="3" WIDTH="50%" NOSAVE>
<H2>
Gimp 1.0</H2>
For those of you who have been
<OL>
<LI>
living under a rock</LI>
<LI>
tied up and held captive by aliens</LI>
<LI>
or changing your oil for the past 3 months</LI>
</OL>
I have news for you: <B><FONT COLOR="#CC6600">Gimp 1.0</FONT></B>
has been released. The announcement came back on June 5th.
Since I haven't done a 'Muse column since April perhaps you missed it.
For some reason the trumpets didn't seem to blare as loud as I expected
they might when the announcement hit the mailing lists and comp.os.linux.announce.
I guess I expected more fanfare. Maybe there was and I missed it.
I was changing my oil for a while back then, too. Or maybe that was
the month I was with the aliens. Its been a long summer.
<P>As I mentioned at the top of this column (you know, the part you probably
don't read each month), I've spent the last year working on a book on the
Gimp. <A HREF="http://www.ssc.com">SSC</A>, the publishers of the
<A HREF="http://www.linuxjournal.com">Linux Journal</A> and the host of
the <A HREF="http://www.linuxgazette.com">Linux Gazette</A>, had contacted
me in June of 1997 about the possibility of doing the book. I thought
it was a great idea, so I jumped into it. The hard part has been
trying to keep the work up to date. Much of the writing had to wait
till there was some light at the end of the 1.0 development tunnel.
Not suprisingly, the past 3 months I've been buried in updates and last
minute details. This has been the longest last minue of my life.
<P>But I'm fairly happy about the book. It will be printed in 4-color
on glossy paper and there are lots of images and examples. There
is also a CD which will include all the images from the book, plus lots
of other good stuff. There are some things I didn't get in because
there just wasn't any time left. They'll have to wait for the next
edition or for articles in the Linux Journal. Or maybe in the 'Muse.
Anyway, one year is plenty for the first edition.
<P><A HREF="http://www.gimp.org">Gimp 1.0</A> source actually comes in
three packages: the core distribution, the extras package, and the
unstable package. The core and extras package build and install fairly
easy. The unstable package includes a number of very handy plug-ins
but you have to understand how to build them a little more than the core
and extras packages.
<P>Some of the more interesting features of the 1.0 release include a rather
good Print plug-in that can work with a number of HP and Epson printers
directly and also supports Postscript output. So you can print directly
to a postscript capable printer or run the output through Ghostscript.
<CENTER><A HREF="#next-column">-Top of next column-</A></CENTER>
</TD>
<TD ROWSPAN="3" WIDTH="2" BGCOLOR="#000000" NOSAVE><IMG SRC="apr98/images/cleardot.gif" HEIGHT=2 WIDTH=2></TD>
<TD WIDTH="49%" NOSAVE><LH><A NAME="next-column"></A><B>More Musings...</B> </LH>
<P>No more musing this month.</TD>
</TR>
<TR NOSAVE>
<TD BGCOLOR="#000000" NOSAVE><IMG SRC="apr98/images/cleardot.gif" HEIGHT=2 WIDTH=2><IMG SRC="../gx/hammel/cleardot.gif" HEIGHT=3 WIDTH=3></TD>
</TR>
<TR NOSAVE>
<TD VALIGN=TOP NOSAVE>Another great Plug-in is the GFig plug-in, which
allows you some limited drawing capabilities. You can draw circles,
curves, boxes and other shapes, repositions them, render them on separate
layers using any brush shape and color. The interface is a bit clunky,
but its still an improvement on the default drawing tools.
<P>Other recent improvements over older development releases include:
<UL>
<LI>
runtime configuration via the Preferences dialog</LI>
<LI>
a Netscape interface to access online resources</LI>
<LI>
a better menu organization</LI>
<LI>
frequently used layer functions accessible via buttons now</LI>
<LI>
lots of Script-Fu scripts</LI>
</UL>
The Gimp has gotten quite a bit of press recently, including some blurbs
in the online version of Publish magazine and on NPR (National Public Radio).
Check Zach's <A HREF="http://xach.dorknet.com/gimp/news/">Gimp News</A>
site for more information on these.
<P>There are still a few things that need work, not the least of which
is support for more color models. But this has been discussed at
length on the developers list and a few people appear to be working on
it, at least to some extent, for the 1.2 release. The Gimp will have
a numbering scheme like the Linux kernel, where even numbers are public
releases and odd numbers are developers releases. Currently, the
1.0.4 version is the latest public release. There is a 1.1
<P>I intend to focus more of my energies towards the Gimp from now on.
The 'Muse columns future depends on some discussions I'm having with SSC
about another project, but for now its just discussion. In any case,
after all this time, I finally plan on working on some plug-ins and scripts.
Since 1.0 is out, I can't whine about not having a stable version anymore.
I'll be hanging out on the Gimp-User mailing list trying to help out there.
With 1.0 out, its time for the user community to show what can be done
with the tools.
<BR>
<BR>Besides, maybe we have another Gimp-based <A HREF="http://www.sirius.com/~fenster/">Diane
Fenster</A> out there.
<BR>
<BR> </TD>
</TR>
</TABLE>
<TABLE BORDER=0 COLS=1 WIDTH="100%" BGCOLOR="#000000" NOSAVE >
<TR NOSAVE>
<TD NOSAVE><IMG SRC="apr98/images/cleardot.gif" HEIGHT=2 WIDTH=2></TD>
</TR>
</TABLE>
<TABLE BORDER=0 COLS=1 WIDTH="100%" >
<TR>
<TD><IMG SRC="../gx/hammel/resources.gif" ALT="Resources" HEIGHT=57 WIDTH=246 ALIGN=LEFT></TD>
</TR>
</TABLE>
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.
<BR>
<TABLE BORDER=0 COLS=2 WIDTH="100%" NOSAVE >
<TR NOSAVE>
<TD NOSAVE>Online Magazines and News sources
<BR><A HREF="http://www.news.com/">C|Net Tech News</A>
<BR><A HREF="http://www.eklektix.com/lwn/">Linux Weekly News</A>
<BR><A HREF="http://slashdot.org/">Slashdot.org</A>
<P>General Web Sites
<BR><A HREF="http://www.graphics-muse.org/linux/lgh.html">Linux Graphics
mini-Howto</A>
<BR><A HREF="http://www.graphics-muse.org/ugu/ugu.html">Unix Graphics Utilities</A>
<BR><A HREF="http://www.digiserve.com/ar/linux-snd/">Linux Multimedia Page</A>
<P>Some of the Mailing Lists and Newsgroups I keep an eye on and where
I get much of the information in this column
<BR><A HREF="http://www.gimp.org">The Gimp User and Gimp Developer Mailing
Lists</A>.
<BR><A HREF="http://www.irtc.org">The IRTC-L discussion list</A>
<BR><A HREF="news:comp.graphics.rendering.raytracing">comp.graphics.rendering.raytracing</A>
<BR><A HREF="news:comp.graphics.rendering.renderman">comp.graphics.rendering.renderman</A>
<BR><A HREF="news:comp.graphics.api.opengl">comp.graphics.api.opengl</A>
<BR><A HREF="news:comp.os.linux.announce">comp.os.linux.announce</A> </TD>
<TD><IMG SRC="../gx/hammel/gmuse.jpg" HSPACE=10 HEIGHT=270 WIDTH=190></TD>
</TR>
</TABLE>
<A NAME="future"></A>
<H2>
Future Directions</H2>
Next month:
<BR>As usual, I'm not sure exactly what will be covered next month.
My next major project is a rewrite of my graphics-muse.org web site so
you can expect I'll probably have something for Web Wonderings. POV-Ray
3.0 is out in beta, I hear. Anyway, we'll see which way the winds
blow by the end of August.
<P><A HREF="mailto:mjhammel@graphics-muse.org">Let me know what you'd like
to hear about!</A>
<P>
<HR WIDTH="100%">
<DIV ALIGN=right><FONT SIZE=-1>© 1998 <A HREF="mailto:mjhammel@graphics-muse.org">Michael
J. Hammel</A></FONT></DIV>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1998, Michael J. Hammel <BR>
Published in Issue 31 of <i>Linux Gazette</i>, August 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc31.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./roelofs.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./dibona.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<font color="navy">A <I>Linux Journal</I> Preview</font>:
This article will appear in the October issue of <I>Linux Journal</I>.
<P> <HR> <P>
<center>
<H1><font color="maroon">The Great Linux Revolt of 1998</font></H1>
<H4>By <a href="mailto:chris@dibona.com">Chris Dibona</a></H4>
</center>
<P> <HR> <P>
<A HREF="./photos1.html">Photo Album</A>
<P> <HR> <P>
Sam Ockman's notice hit Slashdot (http://www.slashdot.org/) at 6:21PM,
it read:
<p>
<blockquote>
The 500 members of SVLUG are going to have a big rally
tonight at the largest/most prestigious computer store in Silicon Valley,
Fry's, when they stay open until 1AM to distribute Windows 98.
We're going to hand out Linux CDs and stuff like that as well.
We'd like to have more people at the rally then go to buy Windows 98.
<p>
</blockquote>
While it was obvious that the entire membership of the LUG was not
planning on showing up for a midnight rally, it was clear that this was an
idea with great potential. A little after 10PM, Sam and I arrived at the Chili's
restaurant near the rally site to meet with people beforehand. We were
hopeful that we were not going to be alone at the table.
<p>
We were not disappointed. There were about 15 people waiting for Sam to
arrive. Some we recognized from the SVLUG, and some that had seen the
notice on Slashdot. Remember only four hours had gone by since the original
posting. By the time we left, the crowd had grown to 25 people.
<p>
After consuming some munchies and a stout or two, we headed out for Fry's
electronics in Sunnyvale. For those of you who aren't familiar with Fry's,
they are a warehouse-sized electronics, software, hardware, test
equipment, junk food, books and magazine retailer out here on the west
coast. Picture Price-Costco except with resistors. Most people have a love
hate relationship with Fry's, mainly for customer service issues. It's
important to note that this rally was not a protest against Fry's, but a rally
for Linux on MS Windows 98's birthday.
<p>
We arrived at the Fry's around 11:30PM. The 500 compact discs hadn't arrived
from the generous folks from S.u.S.E. yet, and we were a little nervous
they would be late. At Fry's our numbers had doubled to a little over 50
people. By now, our signs had been pulled out and we were actively
agitating for Linux. This was a peaceful gathering, we made a point of not
being too annoying and staying out of the way of cars.
<p>
The CDs arrived around midnight, coinciding with the beginning of the
sale of the Windows 98 CDs. We started handing them out along with pamphlets
designed by Adam Richter (of Yggdrasil) to people who were coming into and
out of Fry's. At this point we had two reporters show up to document the
event (see links below).
<p>
Also, at this point we started noticing worried looking guys with
walkie-talkies watching us from the parking lot, and some Fry's managerial
types talking into their cell phones. One of the protestors overheard one
of their managers call the police, and then frustratedly say to another
Fry's guy, ``Why can't we just go over there and rip those
signs out of their geek hands?'' When we heard that, we were taken
aback, but it did consolidate our desire to continue.
<p>
A few minutes later the Sunnyvale police began to arrive in numbers. Four
police cars pulled forward into the lot. I offered myself up as their
contact, while Sam controlled the Linux people.
<p>
The police officer asked us what we were doing there, I described Linux
and how we were trying to get the word out about it. The police officer
was cool about it, telling me that we'd have to wait for his Lieutenant to
arrive to find out what to do. We were on Fry's private property,
their parking lot. It turns out there are certain situations
where it's okay to protest on someone's private property. It's pretty
much always okay to protest on the sidewalk. We had been expecting to be
asked to move to the sidewalk eventually.
<p>
Before his Lieutenant arrived, one of the other police officers asked more
about Linux, the word is one of the Linux people got a CD into his hands
on his way out of the lot. He did say, ``Hey, good luck with your
system'' to me.
<p>
Additionally, the manager of Fry's came up to me (the same one that wanted
to rip the signs out of our ``geek hands'') and asked me why I was
doing this, as Fry's sold Linux in their book section. I pointed out that we
knew this and indeed had a sign showing people which aisle to go to for the
book. He
then asked why I had not had the Linux marketing people or my (as if I'm
in charge of Linux!) vendor relations people, contact Fry's management to
arrange a similar event to the Windows 98 launch. Needless to say I was
like a deer in the headlights, I told him that, in fact, Linux was a free
operating system, and that this was one way we saw to market it (not to
mention the fact that no company could match a MS launch when it comes
down to the checkbook).
<p>
He was visibly upset, so I thought it was best to stop talking with him at
this point. I told him any further communication between us would
come to no good end, and we should only talk through the police. (His
brains were melting out his ears at this point.)
<p>
The Lieutenant arrived and said we should move to the sidewalk, so we did,
and it was just as cool, cars were actually pulling over and picking up a
copy of the Linux CD.
<p>
After about 15 minutes of this, we decided to hit the CompUSA, a few
miles away. When we arrived, there were still a lot of people in line
there. It turns out CompUSA was not only promoting Windows 98, but they
were also doing all kinds of things to bring people into the store. They
were selling the first 10 people in line computers for $98, and paying
people $4 to take away 32MB of RAM. (Actually, the RAM was $32, but there
was a $38 rebate--or something like that, it was weird.) This also
meant that there were a lot of people to promote Linux to. CompUSA's
management were cool, they just took the rally in stride, telling Sam
the rally was okay, as that was what the first amendment was all about.
Fry's had sent one of their security drones to CompUSA to warn them of our
existence, but CompUSA just let us do our thing.
<p>
After CompUSA petered out, we converged on a local Denny's to nosh.
Denny's flipped when they saw all the people, so we moved to a braver
restaurant down the street. I got home around 3AM to find
people were already uploading pictures to the web.
<p>
By the end of the night we had given out 500 CDs, and
hundreds of pamphlets. A total of six press people showed up and there
were over a half-dozen mentions in major newspapers. This is not counting
the coverage we received from other on-line sources such as CNN and the
BBC. Everyone involved had a rocking good time promoting Linux.
<p>
Whether or not you agree with this direct action model of Linux marketing, we
feel confident that we passed the Linux Message to many thousands of
people who otherwise had no real knowledge about the Linux revolution.
Viva El Revolution!
<h3>Resources</h3>
<p>
SVLUG: <A HREF="http://www.svlug.org/">http://www.svlug.org/</A> <BR>
SVLUG Rally: <A HREF="http://www.penguincomputing.com/svlug-rally.html">
http://www.penguincomputing.com/svlug-rally.html</A> <BR>
Slashdot: <A HREF="http://www.slashdot.org/">http://www.slashdot.org/</A>
<BR>
SuSE: <A HREF="http://www.suse.com/">http://www.suse.com/</A> <BR>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1998, Chris DiBona <BR>
Published in Issue 31 of <i>Linux Gazette</i>, August 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc31.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./gm.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./rogers2.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">How I got my Adaptec AVA 1502 SCSI card to work with Linux and SANE</font></H1>
<H4>By <a href="mailto:jrogers@u.washington.edu">James M. Rogers</a></H4>
</center>
<P> <HR> <P>
<P>I have a Microtek ScanMaker E3 that I have ran under windows for a few
years to allow me to convert from hard copy to digital. I have never
been satisfied with the performance of this scanner under windows because
I was so limited in the size of the images that I could process.
I won't bore you with the details, suffice it to say that it was slow,
tedious and the results were only adequate.
<P>I have heard about Scanner Access Now Easy (SANE) for a few years.
It is a project to implement a consistent scanner interface across all
scanners, digital cameras, and other items. It only works with SCSI
scanners at this time.
<P>It took me three tries to get the program to work for me.
<P>Try one:
<P>The SCSI driver card that came with my scanner claimed to be an AVA-1502E.
I couldn't find a driver to work with this under Linux.
<P>Try two:
<P>I thought that this card is an Adaptec card so I tried to load the Adaptec
modules, concentrating on the aha152x.o The most I got was the insmod
program seeming to lock up. At no point in this process did it recognize
my card.
<P>Try three:
<P>I peeled the sticker off of the main chip and saw that it was an 6360
chip (Doing this probably voids the warranty.) So I dug into the
Linux source code. In <TT>/usr/src/linux-2.0.32/drivers/scsi/</TT>
there is a file called <TT>aha152x.c</TT>. I read this file several
times and got a general picture of how this file worked. I then modified
the file <TT>/usr/src/linux-2.0.32/drivers/scsi/Makefile</TT> and commented
out the line following line:
<P><TT> AHA152X = -DDEBUG_AHA152X -DAUTOCONF</TT>
<P>turns to:
<P><TT> #AHA152X = -DDEBUG_AHA152X -DAUTOCONF</TT>
<P>I then added this line right below the commented line:
<P><TT> AHA152X = -DDEBUG_AHA152X -DSKIP_BIOSTEST -DSETUP0="{
0x140, 11, 7, 0, 0, 0, 100, 0 }"</TT>
<P>Basically we are telling the module to stop trying to autoconfigure
the card, don't try to see which card it is and to use the given settings.
<I>I will contact the maintainers of this code and work with them on getting
this driver to autorecognize this card, if possible.</I>
<P>The first two numbers are the ones that you care about. These
numbers correspond to the the jumpers on the card. The first number
is 0x140 if the jumper is on the card , or 0x340 if the jumper is removed.
The 11 corresponded to the irq setting on my card. This number can
be 9, 10, 11 or 12 depending on how the jumper was set.
<P>If you want to know more about these other settings look in the source
code and
<P>I then changed to <TT>/usr/src/linux-2.0.32/</TT> put a floppy
disk in the drive and did a
<P><TT> make dep ; make clean ; make zdisk</TT>
<P>Once the disk had been made I put the disk in my Linux box with the
scanner attached and rebooted. It came up and saw my card and told
me that the card was device /dev/sga. When I looked in /dev/ for
a device called sga I couldn't find one. So I made a link from <TT>/dev/scanner</TT>
to <TT>/dev/sg0</TT> instead with the following command:
<P><TT> cd /dev</TT>
<BR><TT> ln -s sg0 scanner</TT>
<P>I then configured my <TT>/etc/sane.d/dll.conf</TT> to look like this:
<P><TT># enable the next line if you want to allow access through the network:</TT>
<BR><TT>#net</TT>
<BR><TT>microtek</TT>
<BR><TT>pnm</TT>
<P>I configured my <TT>/etc/sane.d/microtek.conf</TT> to look like this:
<P><TT>#Uncomment the following if you are tired of seeing the dump of
the</TT>
<BR><TT># scanner INQUIRY every time the backend starts up...</TT>
<BR><TT>nodump</TT>
<BR><TT>/dev/scanner</TT>
<P>Then I ran the following command and it worked!!!:
<P><TT> scanimage --help -d microtek</TT>
<P>This tells you the other commands that will work with the scanner.
<P>I then scanned in stuff with the command line command and with <TT>xscanner</TT><TT></TT>
<P><TT> scanimage -dmicrotek -x214 -y296 --resolution
97 > test.pnm</TT>
<P>The above command is a full scan of the entire page at 200dpi. The output
of these programs is pnm format which allows you access to hundreds of
filters to process and convert your output to the exact format that you
desire. See the <TT>man pnm</TT> page for more details.
<P>I have already done some 11MB graphics files and used some pnm utilities
to filter them, edited them with gimp, cut out the area that I wanted and
saved them as jpg's. The neat thing is that I am testing out SANE
by running it on a machine with only 16MB of memory and no swap.
(I am processing the files on a different, faster machine) So far SANE
has only failed on full screen images above 200dpi which is not bad.
Once I have a baseline I will put this machine to 32MB RAM and 32MB swap
space.
<P>I love the ability of Linux to get in there and let me really control
my hardware configuration. With Microsoft the only option that I
would have had would have been to buy a "compatible" product and install
one of the manufactures full featured (bloated), buggy driver programs.
The support tech would have probably sneered at me as he said this.
This is the first time that I have "dug into" the kernel driver code, researched
a problem and found a solution. Just the satisfaction of being able
to fix the kernel to recognize the hardware that I have already paid for
is very rewarding.
<P>Next month I will talk about getting the networking portion of SANE
up and running.
<BR>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1998, James M. Rogers <BR>
Published in Issue 31 of <i>Linux Gazette</i>, August 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc31.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./dibona.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./ayers1.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center><img alt="Debian GNU-Linux image" src="./gx/ayers/debian_title.gif"></center>
<center><h2><font color="steelblue3">A New Stable Release of Debian</font></h2></center>
<hr>
<center>
<h4>by <a href="mailto: layers@marktwain.net">Larry Ayers</a></h4>
</center>
<hr>
<center><h3>Introduction</h3></center>
<p>In 1993 Ian Murdock created the Debian Linux distribution, initially under
the auspices of the Free Software Foundation's GNU project. Although the
direct connection with FSF/GNU is a thing of the past, Debian is still the
only major distribution which is not connected with a commercial entity and
which is maintained solely by a loosely-knit band of volunteers. The
parallels with Linux itself make this distribution appealing to Linux users
who value the ideals of the free-software world, including those who may
disagree with the purist views of the FSF.
<p>Debian hasn't exactly swept the Linux world by storm. The installation
procedure in the past has relied on the creation of several floppy disk
images, and due to the idiosyncrasies of the floppy medium at least one disk
in the set would be bad (in my experience), forcing the irritated user to
recreate the faulty disk and start over from the beginning. Debian 2.0
thankfully doesn't require starting over if (say) disk 5 is bad; it just
starts the installation again from where it left off. Luckily machines with
BIOS support for booting from a CDROM are becoming common and cheap, and
Debian CDs are set up so they can be booted directly. Once the base system
was installed the <i>dselect</i> package installer, a functional but unintuitive and
visually unappealing application, would further discourage new users.
<p>Once these hurdles were overcome, the user would find that the Debian
system was very well thought out. As an example, the configuration of
sendmail has been a stumbling block for many new Linux users. In my Slackware
days I had a painfully developed sendmail configuration which sort of worked,
but even getting it to that point involved a lot of FAQ-reading and searching
of usenet messages. The first time I installed the Debian sendmail package, I
was asked a few pertinent questions about my system and its relationship to my
mail-server. The result was a sendmail configuration which works flawlessly,
due to the invocation of some obscure options which I'd never heard of. The
printer configuration, as a final step of installing the magicfilter package,
also has worked very well for me. These installations may not have the fancy
graphical interfaces found in some other distributions, but they work well and
don't require a working X Windows set-up along with various X toolkit
libraries.
<p>The core of Debian's strength is in the exceptionally versatile
<i>*.deb</i> package format. This format, comparable in many ways to
Redhat's RPM, does everything possible to prevent a new package from
conflicting with others or rendering a system unstable. The dependencies
(i.e, what other packages are required for a new one to function) are enforced
in a flexible manner and can be over-ridden by the user. Pre-install and
post-install scripts are automatically run when a package is installed. These
scripts will update default configuration files, delete obsolete files from
earlier package versions, and prompt the user if choices need to be made.
<p>The <i>dpkg</i> command-line program can be used to install, update, or
remove packages. <i>Dselect</i>, a full-screen front-end for <i>dpkg</i>, can
automatically fetch and install entire dependency hierarchies; in other words
if you select a package with <i>dselect</i> it can determine what other
packages are needed and install them as well. I have to confess that I rarely
use <i>dselect</i> if I can help it. I usually obtain packages as I need them
and install them by hand with <i>dpkg</i>. The problem with <i>dselect</i> is
that it is usually used in an installation from scratch; by the time a system
needs a major upgrade most users have forgotten the keystrokes. It's not a
tool which is used often enough to justify really learning how to use
efficiently, and toggling back and forth between the main screen and the help
pages is cumbersome. My seventeen-year-old son first installed Linux because
of the Gimp graphics program. I installed Debian 1.3 for him, but he's a
hardware junky and is continually changing hard disks and video-cards. The
second time he had to reinstall Linux I tried to get him to run <i>dselect</i>
himself but he hated it. By this time he had convinced some friends to try
Linux, and after several lengthy sessions on the phone attempting to walk
these kids through package installation with <i>dselect</i>, I gave up and
ordered a Redhat 5.0 CD, which they are all running now. Debian has a ways to
go before a non-technical novice can easily install it without assistance.
<center><h3>Debian 2.0</h3></center>
<p>Debian 2.0 has been delayed for several months, due to the existence of
unresolved bugs in several packages. This is probably inevitable given the
volunteer nature of the work, as well as the difficulties involved in the
transition to the glibc libraries upon which all programs depend. Redhat 5.0 was
the first glibc-based distribution, released last year. The release had
several major problems, many but not all of which have been fixed with the
release of version 5.1 this year. I surmise that the Debian developers
resolved to forgo haste in order to avoid similar problems with Debian 2.0.
<p>The Debian community was somewhat demoralized earlier this year when Bruce
Perens, Debian's leader and spokesman, resigned. It seems that Perens thought
Debian wasn't moving quickly enough towards user-friendliness. There is some
truth to this opinion, as Debian seems to appeal to many seasoned Linux users
who aren't put off by the lack of graphical administration tools. This
illustrates on a smaller scale a problem Linux itself has: to gain a larger
user-base easier configuration and installation is helpful, but the very
people qualified to develop the necessary tools tend not to need or even want
them. Linuxconf and COAS, two projects which attempt to address this need,
may eventually fill this void.
<center><h3>Libc5 and Libc6</h3></center>
<p>This release is noteworthy for its skillful and painless handling of the
lib5/libc6 issue. Both versions of the essential libraries and support files
can be installed and used simultaneously in a manner which is transparent to
the user. This is important because most commercial, binary-only Linux
applications are compiled to use libc5. This also allows incremental
upgrading of an existing Debian 1.3 system; the minimal base files to upgrade
from 1.3 to 2.0 can be downloaded in a couple of hours while further packages
can be obtained and installed as time permits (or when the CD comes in the
mail!). The old libc5 packages will continue to function normally until they
are upgraded.
<p>Libc5 itself isn't sufficient to run any but the most basic applications.
Other shared libraries are needed; under Debian they are installed in
<kbd>/usr/lib/libc5-compat </kbd>. <b>Ldd</b>, the shared library loader, is
smart enough to use these libraries for libc5 executables. You will probably
need the libc5 XFree86 libraries as well as libXpm in order to run the older
binaries. It's easy to determine which libraries are needed by a libc5
executable. Just look at the output of <b>ldd</b> (i.e., run <kbd>ldd
netscape</kbd>, substituting the name of the program for "netscape"). If both
libc.so.5 and libc.so.6 are shown don't even try starting the program, as it
will die immediately. If only libc.so.5 is shown, and the remainder of the
shared libs are located in <kbd>/usr/lib/libc5-compat</kbd> then the program
should run. Here is the output of <b>ldd</b> when run on libc5 version of
Netscape:<br><pre><code>
libXt.so.6 => /usr/lib/libc5-compat/libXt.so.6 (0x4000c000)
libSM.so.6 => /usr/lib/libc5-compat/libSM.so.6 (0x4004e000)
libICE.so.6 => /usr/lib/libc5-compat/libICE.so.6 (0x40057000)
libXmu.so.6 => /usr/lib/libc5-compat/libXmu.so.6 (0x4006c000)
libXpm.so.4 => /usr/lib/libc5-compat/libXpm.so.4 (0x4007e000)
libXext.so.6 => /usr/lib/libc5-compat/libXext.so.6 (0x4008c000)
libX11.so.6 => /usr/lib/libc5-compat/libX11.so.6 (0x40097000)
libdl.so.1 => /lib/libdl.so.1 (0x40135000)
libc.so.5 => /lib/libc.so.5 (0x40138000)
</code></pre>
<p>And here is the <b>ldd</b> output when run on a libc6 version of Netscape:
<br><pre><code>
libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x40010000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40052000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x4005b000)
libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x40070000)
libXpm.so.4 => /usr/X11R6/lib/libXpm.so.4 (0x40084000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40092000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x4009d000)
libdl.so.2 => /lib/libdl.so.2 (0x4013b000)
libc.so.6 => /lib/libc.so.6 (0x4013e000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
libg++.so.2.7.2 => /usr/lib/libg++.so.2.7.2 (0x401e3000)
libstdc++.so.2.7.2 => /usr/lib/libstdc++.so.2.7.2 (0x4021b000)
libm.so.6 => /lib/libm.so.6 (0x40258000)
</code></pre>
<p>Of course if you install from scratch (and don't have any old programs you
need to run) everything will be libc6-based and the above won't be necessary.
<center><h3>Installation</h3></center>
<p>Debian 2.0 CDs should be available by the time this issue of LG is on the
net, and for everyone but the fortunate few with fast and unlimited net
connections a CD is the easiest installation method. Since my installation
was an upgrade (done over the course of a couple of weeks) from a Debian 1.3
set-up, I didn't get to see if the installation process had improved until the
other day, when I happened to notice that my wife's laptop had several hundred
megabytes of free disk space. Unfortunately the machine (a 486 Thinkpad)
lacks a CDROM drive and its modem is slow. After splitting off half of the
single disk partition with Partition Magic I had two hundred megabytes to work
with. Back at my machine, I proceeded to download seven disk image files from
a mirror of <kbd>ftp.debian.org</kbd>, a total of nine and one-half megabytes.
This may seem like a lot, but those seven disks provide a minimal but
functional Linux system complete with internet access.
<p>Once the tedious job of transferring the disk images to floppy was
completed, I booted the Thinkpad from the first disk and began the
installation. Like Redhat's, Debian's installation interface is full-screen
and menu-driven, though it's not as fancy. One major difference is that while
Redhat's installation segues right into package installation and X
configuration, Debian is more of a two-stage process. After the base
installation is complete, the user reboots the machine; once the new Debian
system has booted up (either from a custom boot-disk created during
installation or directly from the hard disk) the user is prompted to set the
root password and create a user account. The dselect package
installer/manager then starts up, but selecting and installing packages can be
postponed, which is what I decided to do.
<p>Debian's two-stage installation method makes sense to me. Why mess with
packages before ascertaining that the installation is truly bootable
and error-free? Another reason for waiting to run dselect involves network
connections. Although both Redhat and Debian have PPP configuration tools,
neither has ever worked flawlessly for me. I always have to do some fine-tuning
of the <kbd>/etc/ppp</kbd> files, though Debian's <i>pppconfig</i> utility
came the closest to getting my configuration right. My ISP is a particularly
difficult one to connect to using Linux; I'm certain that for many other
providers these net configuration tools work without the necessity of
file-tweaking afterwards.
<p>Once a PPP connection can be established, dselect can be used to retrieve
via FTP any of the distribution's numerous packages. Dselect can also install
packages from an NFS-mounted filesystem, a local disk, or a mounted CDROM.
<p>Eventually there will be some sort of graphical interface to dselect and
dpkg, but this task has proven to be a difficult one. As a first step, an
application called <i>apt</i> is under development; in its current state it
enable a user to install packages from a combination of remote and local
sources in one operation. If a package from the remote server is more recent
than the local one the remote package will be installed instead. In effect <i>apt</i>
allows installation primarily from a CDROM, with any superseded packages
downloaded from a remote server.
<p>The Debian developers are very careful to keep the main distribution
packages completely free in the GNU sense of the word. The least bit of
restrictive licensing, even if source is available, causes the package to be
placed in a separate directory, <kbd>/nonfree</kbd>. These packages are still
freely available, but licensing restrictions prevent some from being included
on CDROMs.
<hr>
<center><h3>Conclusion</h3></center>
<p>I predict that even with the installation improvements in Debian 2.0, it
will continue to be a technical user's distribution. This may change when the
proposed replacement for <i>dselect</i> is finished. The Debian community
nonetheless continues to grow, with over four hundred developers maintaining
packages. The selection of available packages is immense, with at least as
many pieces of software available in <i>*.deb</i> format as there are in
<i>*.rpm</i> format. I would recommend Debian for users who have cut their
teeth on another distribution, but for beginners I still will recommend
Redhat. Just remember, if you can get past the unintuitiveness of
<i>dselect</i> package installation, the rest is a breeze!
<HR>
<!-- hhmts start -->
Last modified: Mon 27 Jul 1998
<!-- hhmts end -->
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1998, Larry Ayers <BR>
Published in Issue 31 of <i>Linux Gazette</i>, August 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc31.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./rogers2.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./ayers2.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center><h1><font color="maroon">A Somewhat Far-Fetched Analogy</font></h1></center>
<center>
<h4>by <a href="mailto: layers@marktwain.net">Larry Ayers</a></h4>
</center>
<hr>
<p>Lately I've been musing about the effects Linux and free software in
general have had upon my world-view. It occurred to me that analogies can
be drawn between the realm of free software and another unrelated pursuit
which intermittently occupies my attention. Growing plants may seem about as
far from the realm of software and computers as it is possible to get, but
I've noticed some parallels.
<p>First, I'll ask why running Linux (and using free software in general) is
satisfying for so many computer users. These factors come to mind:
<ul>
<li>It frees the user from reliance upon unpredictable corporate entities.
<li>It's efficient, modifiable, and develops rapidly.
<li>There is a strong community spirit.
<li>Linux adheres to truly open standards.
<li>Networks well "out of the box", no additional components necessary.
<li>Bugs are usually fixed quickly, partly because
<li>the developers are accessible, responsive, and interested.
</ul>
<p>Open pollinated seeds are seeds which can be planted and yield a plant very
similar to its parents. Hybrid seeds are crosses between species or strains
of plants. Planting a seed from a hybrid plant will give unpredictable and
generally undesirable results. Large seed companies prefer marketing hybrids,
as the customer will have to buy new seed year after year, rather than saving
seeds from productive plants to plant in subsequent years. Beginning to see
where this is headed?
<p>In contrast, a grower who saves seed from open-pollinated plants can exert
an influence on the variety by selecting seed from especially healthy and
productive plants. This evolving strain will eventually become better adapted
to the local soil and climate. Coincidentally enough, someone who keeps a
plant variety alive through the years is referred to as the maintainer of the
variety, and like a maintainer of a free software package, attempts to pass
the responsibility on when he or she is unable to continue the effort.
<p>All too often a favorite vegetable or flower variety is discontinued by a
large seed company; if the plant was a hybrid it's probably gone forever, but
even if the variety comes true from seed it won't survive unless someone
happened to save seed. Ever seen a favorite piece of commercial software
become abandoned by the company which supported it?
<p>If the multinational seed houses have points in common with the large
commercial software firms, there is also a parallel between vendors of Linux
distributions and the growing number of small seed companies which sell
open-pollinated and heirloom seeds. Both of these types of companies service
a niche market, and their customers can duplicate and redistribute the
products sold. The potential for great profit is less than when selling
proprietary and unreproducible goods, but the customer-base in both instances
is growing.
<p>Both the free-software and non-hybrid seed communities exist rather quietly
in society. There is little advertising, especially in the mass media,
because large commercial interests who can afford such publicity aren't
involved. The free software and Linux communities have benefited greatly from
the ubiquity of internet access, while the heirloom plant growers network
through such organizations as the Seed Savers Exchange.
<p>What's really at stake here is the ability to control and mold one segment
of a person's environment, whether that segment is composed of bits or genes.
I think that as society becomes more complex, heavily-populated, and
bureaucratic, the areas of individual autonomy dwindle. These two fringe
realms discussed above, as well as others with similar characteristics, will
surely increase in prominence as time passes.
<p>
<hr>
<!-- hhmts start -->
Last modified: Mon 27 Jul 1998
<!-- hhmts end -->
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1998, Larry Ayers <BR>
Published in Issue 31 of <i>Linux Gazette</i>, August 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc31.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./ayers1.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./raymond.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<font color="navy">A <I>Linux Journal</I> Preview</font>:
This article will appear in the November issue of <I>Linux Journal</I>.
<P> <HR> <P>
<H1 ALIGN=CENTER><FONT COLOR="#ff0000">Open Source's First Six Months</FONT></H1>
<center>
<H4>By <a href="mailto:esr@thyrsus.com">Eric Raymond</a></H4>
</center>
<P> <HR> <P>
Six months ago yesterday as I write, Netscape announced their
intention to release the source code of Navigator. In that time,
we've seen once again that there are very few things as powerful as an
idea whose time has come.<P>
I'm reminded of this every time I surf the Web these days. The <A
HREF="http://www.opensource.org">Open Source</A> meme is everywhere.
It seems you can't open a technical or business magazine these days
without tripping over an admiring article about Linux. Or an
interview with Linus Torvalds. Or an interview with...er...me.<P>
I've ended up near the center of the crazy and wonderful things
happening now half by accident. When I composed <A
HREF="http://www.tuxedo.org/~esr/writings/cathedral-bazaar/">The
Cathedral and the Bazaar</A> a bit more than a year ago, I was aiming
to explain the Linux culture to itself, and explore some interesting
and somewhat heterodox ideas about software development. If anybody
had suggested to me then that the paper was going to motivate something
like the Netscape source release, I would have wondered what drugs
they'd been smoking.<P>
But that's what happened, and I found myself thrust into the role of
leading advocate and semi-official speaker-to-journalists for a hacker
community suddenly feeling its oats. I decided to take that job
seriously, because somebody needed to do it and I knew how and nobody
else was really trying very hard. (I had the advantage of experience;
I'd been in this role before, for lesser stakes, after the New
Hacker's Dictionary came out in 1991.)<P>
The point of all this personal stuff is that I've had an almost
uniquely privileged view of the early days of the open-source
revolution -- as an observer, as a theorist, as a communicator, and as
an active player in helping shape some of the major events.<P>
<H1><FONT COLOR="#ff0000">We've come a long way, baby...</FONT></H1>
In this essay, I intend to do three things. One: celebrate the
incredible victories of the last six months. Two: share my thinking
about the battles being fought right now. And three: consider where
we need to go in the future and what we need to do, to ensure that
open source is no mere fad but a genuine transformative revolution
that changes the rules of the software industry forever.<P>
When you're living on Internet time, I know it can be hard to remember
last week, let alone last year. But take a moment to think back to
New Year's Day 1998. Before the <a
href="http://www.netscape.com/newsref/pr/newsrelease558.html">Netscape
announcement</a>. Before <a
href="http://www.corelcomputer.com/products/announcement.htm">Corel</a>.
Before IBM <a href="http://www.ibm.com/News/1998/06/223.phtml">got
behind Apache</a>. Before Oracle and Informix and Interbase announced
they'd be porting their flagship database projects to Linux. We've
come a long way, baby!<P>
In fact, we've come an astonishingly long way in a short time. Six
months ago `free software' was barely a blip on the radar screens of
the computer trade press and the corporate world -- and what they
thought they knew, they didn't like. Today, `open source' is a hot
topic not just in the trade press but in the most influential of the
business-news magazines that shape corporate thinking.<P>
The <a href="http://www.economist.com">Economist</a>'s July 10 article
was a milestone; another is coming up August 10th, when I'm told <a
href="http://www.forbes.com">Forbes</a> will run an explanation of the
concept as their cover story.<P>
The campaign also went after corporate endorsement of open-source
software. We've got it, in spades. IBM -- <strong>IBM!</strong> --
is in our corner now. The symbolism and the substance of that fact
alone is astounding.<P>
<H1><FONT COLOR="#ff0000">We haven't shot ourselves in the foot...</FONT></H1>
The last six months are also notable for some things I feared early on
that did <strong>not</strong> happen. Despite initially sharp debate
and continuing objections in some quarters, the hacker community did
<strong>not</strong> get bogged down in a loud and divisive factional
fight over the new tactics and terminology. Bruce Perens and I and
the other front-line participants in the Open Source campaign did not
get publically savaged for trying to gently lead the community in a
new direction. And nobody burnt us in effigy for actually
succeeding!<P>
The maturity and pragmatism with which the community backed our play
made a critical difference. It has meant that <strong>the story
stayed positive</strong>, that we have been able to present open
source as the product of a coherent and effective engineering
tradition, one able to sustain the momentum and meet the challenge of
what the corporate word considers "real support". It has denied the
would-be bashers and Gates-worshippers among the press the easy option
to dismiss us all as a bunch of fractious flakes.<P>
<strong>We've all done well</strong>. We've gotten our message out
and we've kept our own house in order -- and all this while continuing
to crank out key advances that undermine the case for closed software
and increase our leverage, like <a
href="http://www.transvirtual.com/">Kaffe 1.0</a>. What comes next?<P>
<H1><FONT COLOR="#ff0000">Towards world domination...</FONT></H1>
I see several challenges before us:<P>
<strong>First:</strong> the press campaign isn't over by any means.
When I first conceived it back in February, I already knew where I
wanted to see positive stories about open source. The <em>Wall Street
Journal</em>, the <em>Economist</em>, <em>Forbes</em>,
<em>Barron</em>, and the <em>New York Times</em>.<P>
Why those? Because if we <strong>truly desire</strong> world
domination, we've got to get our LSD into the corporate elite's
conceptual water supply and alter the beast's consciousness. That
means we need to co-opt the media that shape decision-making at the
highest corporate levels of the Fortune 500. Personally, all the
press interviews and stuff I've done have been aimed towards the one
goal of becoming visible enough to those guys that <strong>they would
come to us</strong> wanting to know the open source community's
story.<P>
This has begun to happen (besides the Forbes interview, I was a
background source for the <em>Economist</em> coverage) -- but it's
nowhere near finished. It won't be finished until they have
<strong>all</strong> gotten and spread the message, and the superior
reliability/quality/cost advantages of open source have become
diffused common knowledge among the CEOs, CTOs, and CIOs who read
them.<P>
<strong>Second</strong>: When I first wrote my analysis of <a
href="http://www.opensource.org/for-suits.html">business models</a>, one of my conclusions was
that we'd have our best short-term chances of converting established
`name' vendors by pushing the clear advantages of <a
href="http://www.opensource.org/for-suits.html#frosting">widget frosting</a>. Therefore my
master plan included concerted attempts to persuade hardware makers to
open up their software.<P>
Though my personal approaches to a couple of vendors were
unsuccessful, then-president of Corel Computer's speech at UniForum
made it clear that CatB and the Netscape example had tipped them over
the edge. Subsequently Leonard Zuboff scored big working from the
inside with Adaptec (one of the companies I had originally targeted
but never got to). So we know this path can be fruitful.<P>
A lot more evangelizing remains to be done here. Any of you who work
on with vendors of network cards, graphics cards, disk controllers and
other peripherals should be helping us push from the inside. Write
Bruce Perens or me about this if you think you might be positioned to
help; combination Mister-Inside/Mister-Outside approaches are known to
work well here.<P>
<strong>Third</strong>: The Oracle/Informix/Interbase announcements
and SGI's official backing for Samba open up another front. (Actually
we're ahead of my projections here; I wasn't expecting the big
database vendors to roll over for another three months or so.) That
third front is the ability to get open-source software into large
corporate networks and data centers in roles outside of its
traditional territory in Internet sevices and development.<P>
One of the biggest roadblocks in our way was the people who said ``OK,
so maybe Linux is technically better, but we can't get real enterprise
applications for it.'' Well, somehow I don't think we'll be hearing
<strong>that</strong> song anymore! The big-database announcements
should put the `no real apps' shibboleth permanently to rest.<P>
So our next challenge is to actually get some Fortune 500 companies to
cut over from NT to Linux or *BSD-based enterprise servers for their
critical corporate databases, <strong>and go public about doing
that</strong>.<P>
Getting them to switch shouldn't be very hard, given the dog's-vomit
reliability level of NT (waving a copy of <a
href="http://www.kirch.net/unix-nt.html">John Kirch's white paper</a>
at a techie should often be sufficient). In fact, I expect this will
swiftly begin to happen even without any nudging from us.<P>
But that will only be half the battle. Because the ugly political
reality is this: The techies with day-to-day operational
responsibility that are doing the actual switching are quite likely to
feel pressure to <strong>hide</strong> the switch from their
NT-brainwashed bosses. Samba is a huge win for these beleaguered
techies; it enables open-source fans to stealth their Linux boxes so
they look like Microsoft servers that somehow miraculously fail to
suck.<P>
There's a problem with this, however, that's almost serious enough to
make me wish Samba didn't exist. While stealthing open-source boxes
will solve a lot of individual problems, it won't give us what we need
to counteract the attack marketing and FUD-mongering that we are going
to start seeing big-time (count on it) as soon as Microsoft wakes up
to the magnitude of the threat we actually pose. It won't be enough
to have a presence; we'll need a <strong>visible</strong> presence,
visibly succeeding.<P>
So I have a challenge for anybody reading this with a job in a Fortune
500 data-center; start laying the groundwork <strong>now</strong>.
Pass around the <a href="http://www.kirch.net/unix-nt.html">Kirch
paper</a> to your colleagues and bosses. Start whatever
process you need to get an Oracle- or Informix- or
Interbase-over-Linux pilot approved -- or get prepared to just go ahead
and <strong>do it</strong> on the
forgiveness-is-easier-than-permission principle. Some of these
vendors say they're planning to offer cheap evaluation copies;
grab them and <strong>go</strong>!<P>
I and the other front-line participants in the Open Source campaign
will be doing our damnedest to smooth your path, working the media
to convince your bosses that everybody's doing it and it's a safe,
soft option that will look good on their performance reports. This,
of course, will be a self-fulfilling prophecy...<P>
<strong>Fourth:</strong> Finally, of course, there's the battle for
the desktop -- Linus's original focus in the master plan for world
domination.<P>
Yes, we still need to take the desktop. And the most fundamental
thing we still need for that is a zero-administration desktop
environment. Either GNOME or KDE will give us most of that; the other
must-have, for the typical non-techie user, is absolutely painless
setup of Ethernet, SLIP, and PPP connections.<P>
Beyond that, we need a rock-solid office suite, integrated with the
winning environment, that includes the Big Three applications --
spreadsheet, light-duty database and a word processor. I guess
Applix and StarOffice come close, but neither are GNOME- or KDE-aware yet.
Corel's port of WordPerfect will certainly help.<P>
Beyond repeating these obvious things there's not much else I'll say
about this, because there's little the Open Source campaign can do to
remedy the problem directly. Everybody knows that native office
applications, well documented and usable by non-techies, are among the
few things we're still missing. Looking around Sunsite, I'd say there
might be a couple of promising candidates out there, like Maxwell and
Xxl. What they mainly need, I'd guess, is documentation and testing.
Would somebody with tech-writing please volunteer?<P>
But this is probably getting into too much detail. The important
thought I'd like to leave you with is this:
<H1><FONT COLOR="#ff0000">We're winning!</FONT></H1>
<strong>Yes, we're winning</strong>. We're on a roll. The Linux user
base is doubling every year. The big software vendors are being
forced to take notice by their customers. <a
href="http://www.redhat.com/redhat/datapro.html">Datapro</a> even says
Linux gets the best overall satisfaction ratings from managers and
directors of information systems in large organizations. I guess that
means not all of them are pointy-haired bosses...<P>
The explosive growth of the Internet and the staggering complexity of
modern software development have clearly revealed the
<strong>fatal weaknesses of the closed-source model</strong>. The people
who get paid big bucks to worry about these things for Fortune 500
have understood for a while that something is deeply wrong with the
conventional development process. They've seen the problem become
acute as the complexity of software requirements has escalated. But
they've been unable to imagine any alternative.<P>
<strong>We are offering that alternative.</strong> I believe this is
why the Open Source campaign has been able to make such remarkable
progress in changing the terms of debate over the last six months.
It's because we're moving into a conceptual vacuum with a simple but
powerful demonstration -- that hierarchy and closure and secrecy are
weak, losing strategies in a complex and rapidly-changing environment.
The rising complexity of software requirements has reached a level
such that only open source and peer review have any prayer of being
effective tactics in the future.<P>
The <em>Economist</em> article was titled ``Revenge of the Hackers'',
and that's appropriate -- because we are now re-making the software
industry in the image of the hacker culture. We are proving every day
that <strong>we</strong> are the people with the drive and the vision
that will lead the software industry into the next century.<P>
<P>
<ADDRESS>Eric S. Raymond <A HREF="mailto:esr@thyrsus.com"><esr@thyrsus.com></A></ADDRESS>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1998, Eric Raymond <BR>
Published in Issue 31 of <i>Linux Gazette</i>, August 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc31.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./ayers2.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./pavlicek.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">A PERSONAL LINUX/ALPHA SYSTEM: 64 BITS FOR UNDER $500</font></H1>
<H4>by <A HREF="mailto:pavlicek@altavista.net">Russell C. Pavlicek</A></H4>
</center>
<P> <HR> <P>
<!--
<center>
<img src="udb.gif">
</center>
-->
<H3>BACKGROUND</H3>
<P>
This article is the result of my efforts to build a personal Digital
Alpha workstation to run Linux/Alpha. For under $500 (US), I assembled a
166 MHz Universal Desktop Box (often called a UDB or Multia) with a half
gigabyte of disk space, 32 megabytes of memory, 2x CD ROM drive, ethernet port,
2 serial ports, and a parallel port. For a few dollars more, this could
easily be expanded with more disk and RAM.
<P>
Rather than engage in a lengthy discourse on how I went about building my
particular Linux/Alpha workstation, I'd like to share my observations
regarding the Alpha-specific peculiarities I encountered.
I had used Linux/x86 for years, but I found that there were some
Alpha installation issues which were brand new to me. Once I understood
these few issues, it was simple to construct a useful Linux/Alpha system.
<P>
<H3>WHY MAKE AN INEXPENSIVE ALPHA SYSTEM?</H3>
<P>
Why indeed? When the usual x86 offerings are inexpensive and
omnipresent, why bother constructing a low-end Linux/Alpha box?
<OL>
<P>
<LI><I>It makes a decent, inexpensive 64-bit development and testing platform.
</I></LI>
<P>
There's lots of talk today about running 64-bit applications. But much
of the discussion is nothing more than that -- talk. If you want to find
out if your application will survive and thrive in 64 bits, here is a very
low cost
opportunity to try it out. A low cost Linux/Alpha platform represents an
excellent opportunity for porting and testing software in a true 64-bit
environment.
<P>
<LI><I>It is an excellent proof-of-concept system for faster Alpha systems.
</I></LI>
<P>
Just as many organizations are beginning to see that Linux can be used to their
competitive advantage, others are beginning to see that the Linux/Alpha
combination can be used in environments where extreme horsepower is
required for certain tasks. However, those who hold the purse strings
are wary of pouring money into a different hardware architecture until they
have concrete proof that the new system will do the job (and rightfully so).
An inexpensive Linux/Alpha system becomes
an ideal prototype that can demonstrate the possible effectiveness of the
proposed solution without incurring high costs. Once the concept is validated,
it may be possible to secure management backing for a full-blown Linux/Alpha
solution.
<P>
<LI><I>It is a development tool for Linux/IA64.
</I></LI>
<P>
The Intel IA64 architecture is coming with the expected release of Intel's
"Merced" processor
around the year 2000. Many UNIX vendors are lining up to make sure that
their particular UNIX implementation becomes the standard UNIX for the new
architecture. Many Linux folks, of course, would like to see Linux/IA64
enter the fray early so that early adopters of the IA64 architecture might
find themselves looking at Linux/IA64 as a viable first 64-bit operating system.
<!--
And we know that the more people use Linux, the more likely they are to
love Linux. Linux can sell itself when people begin to use it.
-->
<P>
So what does Linux/Alpha have to do with this? Well, some programs in the
mountain of Open Source code that we find in the Linux world are
not currently functional in the 64 bit world of Linux/Alpha.
And many new programs have to be tested on a
64-bit environment to make sure they will make the jump to Linux/IA64.
We need to make sure that all those programs that add value to Linux are
64-bit friendly when IA64 hits the streets. An excellent way of doing that
is through porting the code to the 64-bit Linux/Alpha platform. Not only will
the Linux world be ready to invade the IA64 space when it is birthed, but
this will also serve to further solidify the Linux/Alpha offering.
<P>
<LI><I>Linux/Alpha solutions are becoming more cost effective
</I></LI>
<P>
I've met many people over the past few years who desired to use Linux/Alpha,
but could not afford the price tag. Now, however, it is clear that falling
hardware prices and the availability of used Alpha machines is clearing the
way for people to use Linux/Alpha. Just recently, retailers like
<A HREF="http://www.lsl.com/">Linux Systems Labs</A> began selling low-priced
Red Hat Linux/Alpha CDs (GPL distribution). And the long-awaited Debian V2
will support the Alpha platform as well.
<P>
There has never been a better time to take a look at Linux/Alpha.
<P>
<LI><I>Experience, experience, experience!
</I></LI>
<P>
It never hurts to add more current technical expertise to your resume. And
experience in a 64-bit UNIX implementation could look awfully nice on the
resume when many companies begin employing 64-bit architectures like Alpha
and IA64.
<P>
<LI><I>My reason...
</I></LI>
<P>
I work for Compaq Computer Corporation (in the part of Compaq which used
to be Digital Equipment
Corporation) as a Technical Consultant in the Networks and Systems
Integration Services (NSIS) organization in the US Federal
Government Region. It is my desire to be ready to serve Linux/Alpha
customers in the Federal Government, so I decided to prepare myself by
personally purchasing, installing, and using a Linux/Alpha system.
<P>
I have already used Linux/x86 successfully as a part of two customer engagements
within the past year. A few of my coworkers locally have also used
Linux/x86 in customer engagements during that timeframe. I haven't seen
any Linux/Alpha work yet, but I intend to be ready when it comes!
<P>
<LI><I>My <B>other</B> reason...
</I></LI>
<P>
And let's not forget the <B>big</B> reason: <I>Linux/Alpha is a blast!</I>
If you thought Linux was fun to work with on the x86 architecture, wait until
you have 64 bits to play with!
</OL>
<P>
<H3>THE COSTS:</H3>
<P>
As the sole breadwinner for a family of four in the greater Washington DC
area, I do not have great sums of money to pour into development of a
computer system of any sort. I've built several PCs over the years and I've
always followed the same basic rules: stay well behind the technology curve
and keep it CHEAP! Quality is a concern (building junk is a total waste of
money; you lose more by building garbage than by building something that is
more expensive but functional), but financial limitations are quite real.
So, by buying good used products and/or non-current unused products, I can
shave the price down to acceptable levels without sacrificing usability.
Sure, I'd like to run dual 600 MHz Alpha processors with 50 gigabytes of disk
and a gigabyte of RAM -- but I'd prefer to stay married, thank you!
<P>
With these guidelines in mind, I purchased all of the following pieces through
on-line auctions (I used
<A HREF="http://www.ebay.com/">eBay</A>,
<A HREF="http://www.haggle.com/">Haggle</A>,
and <A HREF="http://www.onsale.com/">Onsale</A>) and local computer shows in
the first few months of 1998.
<P>
Here is what I assembled:
<P>
<!--- >
<OL>
<LI>DEC Universal Desktop Box (UDB; aka Multia) $189</LI>
<LI>TI 16 MB 72 Pin Parity Memory $29</LI>
<LI>16 MB 72 Pin Parity Memory $38</LI>
<LI>IBM 540 MB SCSI Disk $44</LI>
<LI>Toshiba SCSI 2x CD $25</LI>
<LI>Generic SCSI Cable $16</LI>
<LI>Generic Internal SCSI Cable $13</LI>
<LI>Mitsumi Keyboard $13</LI>
<LI>NEC SVGA Monitor $94</LI>
<LI>DEC Mouse (free; included with UDB)</LI>
<LI>Generic SCSI Case (free; had this already)</LI>
<LI>Red Hat Powertools 5.0 $19</LI>
<P>
<P>*** TOTAL *** $480
</OL>
< --->
<TABLE border=2>
<TR><TD width=30>1.</TD><TD width=300>DEC Universal Desktop Box (UDB; aka Multia)</TD><TD width=160>$189</TD></TR>
<TR><TD>2.</TD><TD>TI 16 MB 72 Pin Parity Memory</TD><TD>$29</TD></TR>
<TR><TD>3.</TD><TD>16 MB 72 Pin Parity Memory</TD><TD>$38</TD></TR>
<TR><TD>4.</TD><TD>IBM 540 MB SCSI Disk</TD><TD>$44</TD></TR>
<TR><TD>5.</TD><TD>Toshiba SCSI 2x CD</TD><TD>$25</TD></TR>
<TR><TD>6.</TD><TD>Generic SCSI Cable</TD><TD>$16</TD></TR>
<TR><TD>7.</TD><TD>Generic Internal SCSI Cable</TD><TD>$13</TD></TR>
<TR><TD>8.</TD><TD>Mitsumi Keyboard (PS/2 style)</TD><TD>$13</TD></TR>
<TR><TD>9.</TD><TD>NEC SVGA Monitor</TD><TD>$94</TD></TR>
<TR><TD>10.</TD><TD>DEC Mouse (PS/2 style)</TD><TD>(free; included with UDB)</TD></TR>
<TR><TD>11.</TD><TD>Generic SCSI Case</TD><TD>(free; had this already)</TD></TR>
<TR><TD>12.</TD><TD>Red Hat Powertools 5.0</TD><TD>$19</TD></TR>
<P>
<TR><TD> </TD><TD>*** TOTAL ***</TD><TD>$480</TD></TR>
</TABLE>
<H3>THE GOTCHAS:</H3>
<P>
As a user of Linux/x86 since 1995, I've grown accustomed to the capabilities
and methodologies of the Linux/x86 world. I found a handful of differences
in the Linux/Alpha world which are worth noting to someone who wants to make
the jump to 64 bits:
<OL>
<LI><I>A Linux/Alpha system with a single hard drive uses at least three partitions
</I></LI>
<P>
The Alpha system needs to load the initial boot code from a partition that
the Alpha console (in ROM) understands. So, a single disk Linux/Alpha system
is likely to have at least three partitions:
<P>
<OL>
<LI>/dev/sda1 tiny DOS FAT partition containing the loader</LI>
<LI>/dev/sda2 root partition</LI>
<LI>/dev/sda3 swap partition</LI>
</OL>
<P>
Linux/x86 folks will obviously be used to the need for root and swap partitions,
but the floppy-sized FAT partition containing LINLOAD.EXE and MILO is a
different concept.
<P>
<LI><I>MILO instead of LILO
</I></LI>
<P>
Linux/x86 has the simple, yet highly useful, LILO (LInux LOader) to boot Linux
from the hard drive. Linux/Alpha has MILO (MIni LOader) to accomplish the
same task, but using a slightly different methodology. Rather than residing
in a boot block, MILO resides in the tiny DOS-formatted partition on the SCSI
drive (normally /dev/sda1). The Alpha console boots MILO from the DOS FAT
partition, then MILO boots Linux/Alpha from the Ext2 partition (/dev/sda2).
<P>
<LI><I>Multiple kernels
</I></LI>
<P>
Since there are often differences between the hardware standardly found on
different Alpha machines, you are given a choice of pre-built kernels to
use when installing the operating system. It is generally quite easy to
select the appropriate kernel for your machine, since the documentation
very clearly maps the available kernels to most common Alpha models.
But it is still different than most Linux/x86 installation procedures.
<P>
<LI><I>Different processor architecture
</I></LI>
<P>
The Alpha processor family and the x86 processor family are two different
animals. As one might expect, a 64-bit RISC processor and a 32-bit CISC
processor go about their respective tasks in very different ways. What does
this mean to someone who wants to build a Linux/Alpha workstation? Don't
be stingy with memory or processor speed if you can help it. In particular,
I've found that my Linux/Alpha system performs much better with additional
memory. There is quite a noticeable improvement in speed when running at
32 megabytes as opposed to 16 megabytes. In fact, the first real upgrade
I hope to perform is to add more memory to the system. Thankfully,
memory is much more affordable than it was at the beginning of the decade,
so adding a few more megabytes isn't a particularly expensive proposition.
<P>
<P>
<LI><I>Check out the limitations of the Alpha you intend to purchase
</I></LI>
<P>
It is important to remember that some Alpha machines (notably the older
Turbochannel bus machines) do not currently run Linux. Make certain that
the Alpha system you intend to purchase is listed on the
<A HREF="http://www.azstarnet.com/~axplinux/">
Linux/Alpha Home Page</A>. Also, if you select the UDB, be
aware that it is a bounded box -- there is essentially no room for an internal
disk drive (yes, you can use a 2.5 inch SCSI drive, but that is expensive
compared to a 3.5 inch SCSI drive), there is absolutely no room for a CDROM
drive in the box, and the processor speed is relatively slow. If you intend
to upgrade
the system to a faster Alpha processor in the future, you'd probably be better
off with an Alpha with a more standard case and motherboard. I chose the UDB
because it was available very cheaply and I already owned an external drive
cabinet that I could use to mount the hard drive and CDROM drive.
I found some excellent technical information online provided by
<A HREF="http://www.annex.co.uk/systems/udbtroub.html">Annex Technology</A>.
<P>
<LI><I>Use an installation "cookbook", if available
</I></LI>
<P>
While the Red Hat 5.0 Linux/Alpha installation is quite good, it is not
quite as simple as the Linux/x86 installation. As I've already mentioned,
you'll need to select a kernel for your machine, create a small FAT boot
partition, as well as a few other simple steps which you didn't need to
perform on a Linux/x86 install. It is helpful, then, to
locate and use a "cookbook" or "cheat sheet" to help you during
the installation.
<P>
The UDB I purchased was originally sold by Starship Computer via one of the
Internet auctions. I purchased the UDB used from the original buyer who
no longer needed the unit. This person included the original installation
instructions supplied by Starship in the box. The instructions were quite
good and very detailed. I have already seen similar documents circulating
in the newsgroups pertaining to the installation of Red Hat 5.1 for Alpha.
If you can obtain such an installation guide,
it can save you time and keep you from forgetting small Alpha-specific
details.
<P>
<LI><I>Beware unmatched memory
</I></LI>
<P>
For the UDB, at least, matched memory SIMMs are critical. The first set
I obtained from an auction which advertised new SIMMs shipped together.
They did not specifically say that they were matched. They were not.
That's one mistake I will not make again. The SIMMs did work together
for a while, but once the machine ran for a while, it began to generate
memory errors. I replaced them with a set of matched SIMMs and all memory
problems ceased.
<P>
<LI><I>Thinwire Ethernet problem for UDB kernel ("noname") for Red Hat 5.0
</I></LI>
<P>
I found out that the kernel supplied in Red Hat 5.0 for the UDB (noname.img)
had a bug that prevented it from using the thinwire ethernet adapter. I
simply downloaded the kernel supplied with Red Hat 4.2 and I was back in
business.
<P>
This was a problem that took much longer to identify than to fix.
The <A HREF="http://www.redhat.com/support/docs/errata.html">
Red Hat errata page (http://www.redhat.com/support/docs/errata.html)</A>,
one of the first places to turn with possible
distribution errors, was silent on this subject at the time.
As there are less Linux/Alpha users in the world than Linux/x86, the newsgroups
were not spilling over with information on this problem as one would expect
if there was a kernel problem in a Linux/x86 distribution. Yet the newsgroups
held the answer nonetheless; it just took a little longer to locate the
message which gave me the key to the problem.
<P>
<LI><I>PPP was broken in Red Hat 5.0
</I></LI>
<P>
The pppd package supplied in Red Hat 5.0 didn't work properly on Alpha.
I consulted the <A HREF="http://www.redhat.com/support/docs/errata.html">
Red Hat errata</A> on the Red Hat homepage and downloaded the
corrected PPP kit. One rpm command later, I had a working PPP protocol.
Again, it took longer to identify the problem than it did to correct it.
<P>
<LI><I>X Windows
</I></LI>
<P>
While X Windows is usable with only 16 MB of memory, it will need to swap
out jobs just to start up. 32 MB will yield a much faster X Windows system,
as it will be able to load without swapping. If you can afford more memory,
it is to your benefit.
<P>
<LI><I>Where's the browser?
</I></LI>
<P>
Perhaps my greatest frustration was the lack of a fully-functional, native,
graphical, 64-bit web browser. Lynx, a character-cell browser, is useful
for downloading software upgrades, if needed, such as the kernel and PPP
kits mentioned above. Unfortunately, it is not as helpful for general
browsing, due to its non-graphical nature. There is Grail, which is written
in Python, but the current version (0.4) seems too flaky for normal use.
One common solution seems to be to use Netscape for x86 under the EM86
emulator (below), but it's not a "native" Alpha solution.
<P>
As of this writing, the best native solution I've found is
<A HREF="http://www.troll.no/qtmozilla/">QtMozilla</A>, Mozilla
compiled using the Qt libraries. It was created as a demonstration of Troll
Tech's Qt libraries, but it is quite usable. I have also seen reports of
other Linux/Alpha Mozilla implementations, so I hope that we will see a
stable, full-featured Mozilla for Alpha before very long.
<P>
<LI><I>EM86
</I></LI>
<P>
Don't forget about <A HREF="ftp://ftp.digital.com/pub/DEC/Linux-Alpha/em86/">
EM86</A>, Digital's software for running Linux/x86 binaries
on Linux/Alpha. You can find the latest kits at
<A HREF="ftp://ftp.digital.com/pub/DEC/Linux-Alpha/em86/">Digital's FTP location</A>.
Red Hat kernels included in the 5.0 and 5.1 distributions now support EM86 right out
of the box (no longer any need to rebuild the kernel). Also, kernels starting
with 2.0.34 (as well as the latest 2.1.x development kernel) have integrated
EM86 support without requiring the use
of patches before building. Be aware, though, that you may not find
the emulation speed acceptable on older, slower Alpha boxes.
<P>
<LI><I>Always read the documentation
</I></LI>
<P>
Make sure you read the FAQ
<A HREF="http://www.azstarnet.com/~axplinux/FAQ.html">
(http://www.azstarnet.com/~axplinux/FAQ.html)</A> and the chapter on the Alpha
installation in the
<A HREF="http://www.redhat.com/support/docs/rhl/RHL-5.0-Installation-Guide-HTML/manual/">
Red Hat Installation Guide</A>. And don't forget to check the
<A HREF="http://www.redhat.com/support/docs/errata.html">
Red Hat errata page (http://www.redhat.com/support/docs/errata.html)</A> for
any known problems in the distribution.
</OL>
<P>
<H3>CONCLUSION:</H3>
<P>
I found that building the UDB was an enlightening experience, as was
installing Red Hat Linux for Alpha 5.0. I have already used the system to
port 32-bit applications to a 64-bit platform. Even if it is not exactly a
whirlwind by current system standards, my inexpensive Linux/Alpha UDB system
has been a very worthwhile (and <I>fun</I>) acquisition.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1998, Russell C. Pavlicek <BR>
Published in Issue 31 of <i>Linux Gazette</i>, August 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc31.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./raymond.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./pelletier.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<font color="navy">A <I>Linux Journal</I> Preview</font>:
This article will appear in the November issue of <I>Linux Journal</I>.
<P> <HR> <P>
<center>
<H1><font color="maroon">Product Review: The Roxen Challenger Web Server</font></H1>
<H4>By <a href="mailto:michel@colint.com">Michael Pelletier</a></H4>
</center>
<P> <HR> <P>
<ul>
<li>Manufacturer: Idonex
<li>E-mail: info@idonex.com
<li>URL: http://www.roxen.com/
<li>Price: $795 US for Idonex License
Free download of 1.2 beta (GPL)
<li>Reviewer:
</ul>
<P> <HR> <P>
The Roxen Challenger HTTP Web Server is a marvel ahead of it's time.
That's a bold, hard-to-prove statement for a web server when compared to the
amazing success of the Apache HTTP Server. Before you stop reading this,
you should consider that there is nothing wrong with having two subtly
different, but very good tools.
<p>
Apache is designed from the ground up to be a simple, open, secure,
high-performance HTTP server, and it pays up in spades. Apache is the
natural choice for almost all web administrators weaned on NCSA CERN or a
commercial HTTP server like Netscape. However, Apache is not exactly
intuitive to configure, the configuration in question being three flat text
files. Apache also suffers from a monolithic structure (albeit plug-in
modularity is a new option if you compile it in) which requires recompiling
the source code when making changes or adding modules (such as proxy, database
access, etc.).
<p>
Roxen takes a different approach to HTTP server design. Roxen is easily
installed and configured. The user need only do the normal
<tt>./configure</tt> and <tt>make</tt> sequences after
unpacking the tar file and reading the README file.
This has worked flawlessly for me a dozen times on Intel Red Hat 4.2 and 5.0
machines. After compiling the Pike interpreter (we'll get to that), the
installation script tells you to point your browser to
http://localhost:<i>x</i>/, <i>x</i> being some random unassigned port. Where
the configuration interface server listens for your browser.
<p>
Pointing a browser to that URL brings up the on-line, web-centric configuration
interface. The first screen sets the configuration user and password
information for subsequent configuration sessions. Immediately, virtual
servers can be added, and adding a virtual server is a snap. My usual sequence
is to find a free IP and bind the hostname.domain to it. Create the aliased
Ethernet interface with <b>netcfg</b> specifying the chosen IP, switch to the Roxen
configuration interface and add a new server binding it (using simple, point and
click menus) to the interface just created, which Roxen automatically detects
and reverse looks up for me. Voil<\#225>, I have an instant virtual server;
the whole process taking less time than making a cup of coffee.
<p>
When creating the server, Roxen asks questions about what kind of server
is desired. The choices of Bare Bones, Standard, IPP (Internet Presence
Provider), Proxy or a copy of the configurations for any current servers in the
system. This gives lots of flexibility when working with more than just a
few virtual servers.
<p>
Each of the four choices is a certain set of loaded modules for each server.
Modules can be mixed and matched to make custom servers. Modules, also
written in Pike, can be loaded and
unloaded on the fly, and all Modules have a standard configuration interface
that plugs into the server configuration interface. Modules include the
file system, authentication, database access, CGI and FCGI execution,
on-the-fly graphics manipulation and more.
<p>
So how is this marvelous server put together? Roxen is written in the Pike
language. Pike is an interpreted, threaded C-like language based on an
older programming language for MUD systems. Pike is full blown and has a
graceful, clean style so much like C that any C programmer can pick
it up in minutes. This makes writing custom Roxen modules a snap. Pike's
home page has excellent, intelligently written documentation that is
completely cross-referenced, and includes a handy function index where many
old familiar buddies from the ANSI C libraries can be found.
<p>
The downside is that Pike, being a byte code interpreted language, is slower
than compiled and optimized C by a noticeable margin. Roxen 1.1 is also a bit
buggy, and Roxen 1.2 is still in beta. Having dabbled in 1.2 (which
installed <i>just</i> as cleanly as 1.1), I found it very cool with many new
modules, some of which are not available for Apache, such as on-the-fly
wizard generators and automatic table-formatting of SQL retrieved data.
A new update module contacts the Roxen central server in
Sweden and upgrades the server and all the modules to the newest
debugged versions, as well as offering to download any <i>new</i>
modules Idonex has created. 1.2 also uses the new threading built into the
latest version of Pike, increasing its performance for high or
eccentric load systems and allowing it to take advantage of multi-processor
systems.
<p>
The most powerful module in the Roxen set is the Roxen Mark-up Language
(RXML). RXML looks like HTML and is written directly into the HTML code.
When a client retrieves a document from the server, the server first parses
the document for RXML tags, changing the HTML output based on the tags used.
This is basically server side scripting ala server side Includes, in the
Apache parlance, but cleaner. For example:
<p>
<pre>
<html>
<head>
<body>
<if user=jane>
<gtext scale=0.5 nfont="arial" fg="blue"
bg="white">Hi there Jane.</gtext><br>
<else>
<h1>Hey get outta here!</h1>
</if>
</body></head></html>
</pre>
The <tt><if><else></if></tt> construct outputs different
HTML depending on whether the client fetching the page has authenticated
itself as the user <tt>jane</tt>. The <tt><gtext></tt> tag takes the text
and renders a gif image of it, on the fly, replacing the
<tt><gtext></tt> tag with an <tt><img></tt> tag whose
<b>src</b> is the generated image. Many options to gtext are
available including
transparency, sizes, bevels, automatic Javascript mouse responses and more.
Check out Roxen's home page for an example, or the
American Association for the Surgery of Trauma web page, where I used gtext
and RXML extensively.
<p>
Roxen's extreme ease of use and modularity make it a powerful tool for web
managers of all needs. The GNU GPL license for Roxen and Pike make the
price just right. Like all good GPL software, Pike and Roxen are backed by
an active, sharp Internet crowd of Pike programmers and Roxen-heads eager to
help you with your questions. Idonex also offers various levels of support
for very reasonable prices. The Roxen Server comes pre-packaged with a
manual and other non-GPL goodies (like 128bit SSL) from Idonex.
<P>
<h3>Resources</h3>
<p>
Pike Home Page: <A HREF="http://pike.idonex.se/">http://pike.idonex.se/</A>
<BR>
Idonex Home Page: <A HREF="http://www.idonex.se/">http://www.idonex.se/</A>
<BR>
Roxen Module Source: <A HREF="http://www.riverweb.com/source/">
http://www.riverweb.com/source/</A> <BR>
American Association for the Surgery of Trauma: <A
HREF="http://www.aast.org/">http://www.aast.org/</A> <BR>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1998, Michael Pelletier <BR>
Published in Issue 31 of <i>Linux Gazette</i>, August 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc31.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./pavlicek.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./hughes.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<font color="navy">A <I>Linux Journal</I> Review</font>:
This article appeared in the August issue of <I>Linux Journal</I>.
<P> <HR> <P>
<center>
<h1><font color="maroon">Selecting a Linux Distribution</font></h1>
<H4>By <a href="mailto:phil@ssc.com">Phil Hughes</a></H4>
</center>
<P> <HR> <P>
Any current Linux distribution most likely contains the software
needed to do your job, including kernel and
drivers, libraries, utilities and applications programs.
Still, one of the most common questions I hear is ``which
distribution should I get?'' This question is
answered by an assortment of people, each proclaiming their
favorite distribution is better than all the rest.
<p>
My new theory is that most people favor the first distribution they
successfully installed. Or, if they had problems with the first, they favor
the next distribution they install which addresses the problems of the
first.
<p>
Let's use me as an example. SLS was my first Linux installation.
Unfortunately, SLS
had a few bugs--in both the installation and the running system.
This, of course, isn't a surprise since this installation took place five
years ago.
<p>
Now, about this time, Patrick Volkerding came along and created Slackware. Pat
took the SLS distribution and fixed some problems. The result looked the same
as SLS and worked the same, but without bugs. To this day, I find Slackware
the easiest distribution to install.
<p>
I have, however, progressed beyond installation problems and found some
serious shortcomings in Slackware which have been addressed by other
distributions. Before I get into specifics, here is a rough estimate of
the number of times I have installed various distributions, in order of
first installation. I give you this information to help you understand the
basis of my opinions.
<p>
<ul>
<li> 100+ SLS/Slackware
<li> 5 MCC (a small distribution done for university students)
<li> 5 Yggdrasil
<li> 20 Red Hat
<li> 10 Caldera
<li> 20 Debian
<li> 5 S.u.S.E.
</ul>
<p>
That said, here is my blow-by-blow analysis of what is right and wrong
with each distribution. Note that this is my personal opinion--your
mileage will vary.
<p>
<h3>SLS/Slackware/MCC</h3>
<p>
All these distributions are easy to install and understand.
They were all designed to install from floppy disk, and
packages were in floppy-sized chunks. At one time, I could successfully
install Slackware without even having a monitor on the computer.
<p>
There are, however, costs associated with this simplicity. Software is
saved in compressed tar files. There is no information within the
distribution that shows how files interrelate, no dependencies and no
good path for upgrades. Not a problem if you just want to try
something, but for a multi-computer shop with long-term plans, this
initial simplicity can have unforeseen costs in the long run.
<p>
<h3>Yggdrasil</h3>
<p>
Yggdrasil offered the most promise with a GUI-based configuration.
Unfortunately, development stopped (or at least vanished from the
public eye), and it no longer offers anything vaguely current.
<p>
<h3>Red Hat</h3>
<p>
When I first looked at Marc Ewing's creation, I was impressed.
It had some GUI-based configuration tools and showed a lot of promise.
Over the years, Red Hat has continued to evolve and is easy to install and
configure. Red Hat introduced the RPM packaging system that offers
dependencies to help ensure loaded applications work with each other
and updating is easy. RPMs also offer pre- and post-install
and remove scripts which appear to be underutilized.
<p>
Version 4.2 has proven to be quite stable. The current release is 5.0, and
a 5.1 release with bug fixes is expected to again produce a
stable product.
<p>
The install sequence is streamlined to make it easy to do a standard
install. I see two things missing that, while making the install
appear easier, detract from what is actually needed:
<p>
<ol>
<li> The ability to save the desired configuration to floppy disk during the
installation process (something that both Caldera and S.u.S.E. offer) would simplify
subsequent installations on the same or other machines.
<li> The ability to create a boot floppy disk during installation.
</ol>
<p>
Red Hat has evolved into the most ``retailed'' distribution. First it
was in books by O'Reilly, then MacMillan and now IDG Books Worldwide. It also appears
to have a large retail shrink-wrap distribution in the U.S.
<p>
Versions of Red Hat are available for Digital Alpha and SunSPARC, as well
as Intel.
<p>
<h3>Caldera</h3>
<p>
The Caldera distribution was assembled by the Linux Support Team
(LST) in Germany--now a part of Caldera. Caldera, like Red Hat,
uses the RPM package format. Installation is similar to
Red Hat with the addition of the configuration save/restore option.
<p>
Caldera is different from other distributions at this time
in that it offers a series of systems including various commercial
packages such as a secure web server and an office suite. Caldera is
also the most ``commercial feeling'' as far as packaging and
presentation.
<p>
One complaint I received from a reviewer of my original version of this
article is that you cannot perform an upgrade. That is, you must save your
configuration files and then re-install.
<p>
<h3>Debian</h3>
<p>
Debian is one of the oldest distributions, but because development is
strictly by a team of volunteers, it has tended to evolve more slowly.
Since development is performed by a geographically diverse group,
the ability to manage and integrate upgrades is of primary importance.
To that end, you can always upgrade a system by pointing it at
an FTP site and instructing it to get the latest versions
of all the packages currently installed. In some cases, a service needs
to be stopped. (For example, to upgrade <b>sendmail</b>, you would need to
stop it, replace the program and then restart it.) This is all done
automatically.
<p>
Debian deviates from the common RPM packaging format (although it can
install RPMs) by using its own .deb format. The .deb format is the
most versatile and includes dependency checking as well as pre- and
post-install and remove scripts. This is why the sendmail
example in the previous paragraph can be handled automatically.
<p>
The most difficult thing about Debian is the initial installation.
Or, put another way, fear of <b>dselect</b>, the installer program.
The design of dselect is old, and while it made sense when there were only
50-100 packages in a Linux install, it is out of control now that
there are around 1000. A replacement for dselect is being developed
and will be available in Debian 2.1.
<p>
Versions of Debian (with limited applications/utilities) are
available for Digital Alpha and M68k.
<p>
<h3>S.u.S.E.</h3>
<p>
S.u.S.E. is a German distribution with an installation ``look and feel'' similar to Caldera. It also uses the RPM package
format and offers a save/restore configuration option during
installation.
<p>
Two things make S.u.S.E. stand out from the others. First, XFree86
support tends to be better than other distributions because
S.u.S.E. works closely with the XFree86 team. Second, there are more
applications and utility programs in this distribution.
A full installation takes over 2GB of disk space.
<p>
YAST, the install/administration tool, can handle .deb and .tgz packages as
well as RPMs. Also, upgrades are quite easy and can be performed by putting
in a new CD or pointing YAST at the files and telling it to perform the
upgrade.
<p>
<h3>Which Do I Choose?</h3>
<p>
It depends. I have one system running Caldera, three running Red Hat
(a PC, a Digital Alpha and a SunSPARC), two running Slackware,
one running S.u.S.E. (a laptop) and quite a few running Debian.
(Yes, I personally own too many computers.)
<p>
Further, there are problems with all the distributions--not
the same problems, but problems nevertheless. As a result,
I don't see a perfect answer--yet.
This is not to say they don't work--just that each has its
inconsistencies and limitations. They all suffer from the lack of
a common administration tool.
<p>
At USENIX in 1997, Caldera announced a project called COAS (Caldera
Open Administration System). The discussion at the
conference showed there were more concepts to consider and a lot of
implementation work before COAS could offer a uniform installation
system that would meet the needs of the majority of Linux users.
<p>
Today, for a general-purpose system I tend to install Debian.
I do, however, install other systems for other purposes.
For example, I have S.u.S.E. on a new laptop because the volume of
software included makes a more impressive demo system.
<p>
A better question is, ``which one should you choose?'' The answer is
still, ``it depends.'' Here are some hints to help you along the way:
<p>
<ul>
<li> If everyone you know is running a particular distribution and
you are a newcomer, use the same one they do.
<li> If you like to roll your own--that is, you expect to
compile and install everything yourself--Slackware is probably for you.
<li> If you want to ``go with the crowd'' today, install
Red Hat.
<li> If you want ``everything'', install S.u.S.E.
<li> If you need the most ``commercial'' looking product
or you are a VAR (value-added reseller), pick Caldera.
<li> If the politics of free software is important to you and/or you
want to get involved in development of a distribution, pick
Debian.
<li> If you have a bunch of systems you need to interconnect
and upgrade, pick Debian or hope Caldera gets COAS completed.
</ul>
<p>
<h3>Conclusion</h3>
<p>
There is my input. Ask any other Linux user, and you will probably get
a different opinion from mine. If you are not sure you have the right answer,
there are some things you can do to make it possible to change
distributions in the future with minimal impact.
<p>
<ul>
<li> Make /home a separate file system. Then, if you change
distributions, you don't have to save and restore your files.
This also means you could have multiple distributions on one
computer and share /home between them.
<li> Select hardware supported by most distributions.
<li> If you need to add applications that don't come with the Linux
distribution, try to get ones that come with source code so
you can upgrade them and port them to different distributions.
<li> Start with a Linux archive CD set (such as InfoMagic's
Developer's Resource). That will give you at least three distributions
(Slackware, Debian and Red Hat) with which to play.
</ul>
<p>
Good luck and happy Linuxing.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1998, Phil Hughes <BR>
Published in Issue 31 of <i>Linux Gazette</i>, August 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc31.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./pelletier.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./richardson.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Some History and Other Things</font></H1>
<H4>By <a href="mailto:gazette@ssc.com">Marjorie Richardson</a></H4>
</center>
<P> <HR> <P>
I am often asked about the history of <I>Linux Journal</I> and <I>Linux
Gazette</I> and
how I think Linux has changed over the year. Here's the scoop.
<P>
Back in 1993, Phil Hughes saw the enormous potential for the Linux operating
system and its creator Linus Torvalds. Being a firm believer in open
software, he decided to start a magazine dedicated to Linux to encourage
the growth of this fledgling operating system. That magazine is <I>Linux
Journal</I>. Phil founded the magazine and acted as Editor for the first two
issues.
<P>
The first issue was published in March 1994 and had 48 pages. It contained
an interview with Linus and articles by many now familiar names:
Michael Johnson, Mark Komarinski, Ian Murdock, Arnold Robbins, Matt Welsh
and Robert Young. The first issue was primarily given away at trade shows
and sent to mailing lists; the second had over 900 subscribers. The subscriber
base and newsstand presence of the magazine has steadily increased to over
60,000 since that time, and we are currently at 100 pages.
<P>
The first two issues of <I>Linux Journal</I> were published by Robert Young.
After the second issue, Robert decided to start up Red Hat Software, and
Specialized Systems Consultants took over as publisher. Also with the third
issue, Michael Johnson took on the role of Editor and continued in that role
through the September 1996 issue. I became Editor on February 1, 1997 and
began work on the May issue.
<P>
I had begun work for SSC in April 1996 and the project I had the most fun
with was <I>Linux Gazette</I>. John Fisk had decided he just didn't have the time
to devote to the Gazette--what he had started as a learning experience had
blossomed into a very popular webzine. He posted issues whenever he had
time and in between got mail from people requesting he put it out on a more
regular basis. At any rate, he approached Phil requesting that Linux
Journal take over the Gazette. Phil said yes and gave the project to me in
August. This turned out to be a shrewd move on his part as taking care of
the Gazette gave me the necessary confidence to say yes when he asked me to
be Editor of <I>Linux Journal</I> the following February. Although I tried for a
while to outsource LG, it didn't work out and it is still in my hands. Good
thing I love it, since I do most of the work on it on my own time--outside
working hours.
<P>
<H3><I>Linux Gazette</I></H3>
<P>
<I>Linux Gazette</I> is the most popular page on our web site, helping to generate over
150,000 hits a day. All the authors are volunteer, and I am constantly
amazed at how much great content people are willing to spend their time
generating and then give it away. We have mirror sites worldwide and three
translation sites in Italy, France and Russia.
<P>
When I first began work at <I>Linux Journal</I> and people asked me where I
worked, the usual response was "What's Linux?" Today, not only do people
know what Linux is, they approach me to tell me how much they love it and
the magazine--this mainly happens when I am wearing a Linux T-shirt.
<P>
<H3>A Bit About Linux</H3>
<P>
This year has been a banner year for Linux in terms of market expansion
with two block-buster announcements. The first was Netscape's decision
to make Mozilla open source. <I>Linux Journal</I> had a
great interview with Marc Andreessen and Tom Paquin of Netscape in our
August issue and the second part of the interview is exclusively in this
issue of <I>LG</I>. With Netscape Navigator going Open Source, can
Sun's Java be far behind? Second, Corel and Corel
Computer announced they would be porting all their software to Linux and
that the new NetWinder would be sold with Linux installed. This
announcement came in May after our April issue which contained an interview
with Corel Computer's Eid Eid. I'm sure there was a direct correlation
between our interview and their decision. (smile)
<P>
Actually, it seems like we get a press release each week from someone
announcing their product will be supporting Linux. About two months ago,
one of these
was from Interbase telling us about the recent port of its popular database
to Linux. Now, on July 22, Informix has announced that they now support
Linux, and that it is available with both S.u.S.E. and Caldera. An
announcement from Oracle that they will be porting to Linux was made July
21.
In my opinion, sooner or later, Sybase will be following suit. Cobalt's Qube
microserver is yet another coup for Linux.
<P>
With companies like these supporting Linux, Linux will continue to expand
across the globe and, perhaps, even reach Linus' stated goal of world
domination.
<P>
While I was not able to attend the recent Linux Expo put on by Red Hat in
North Carolina, I have heard glowing reports. The vi editor won again over
Emacs in the "editor war". This year the war was a held as a paintball
tournament with vi winning three out of four games.
<P>
Linus' talk was well attended as usual. In it, he announced a
code freeze will be coming for the 2.2 kernel in the next month, with
the release due in late July or early August. This is good news indeed.
The addition of symmetrical multi-processing (SMP) has been a feature
eagerly awaited by many.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1998, Marjorie Richardson <BR>
Published in Issue 31 of <i>Linux Gazette</i>, August 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc31.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./hughes.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./rogers1.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
Hello, I wrote the first of these
articles in January. I am planning on many more articles in the future
but have just finished moving my family to the Olympic Peninsula from Ohio
after having been hired to work as a systems programmer for the University
of Washington.
<P> <HR> <P>
<CENTER>
<H1><font color="maroon">
The Standard C Library for Linux</font></H1>
<H3><font color="navy">
Part Two: <stdio.h> character input/output</font></H3>
<H4>
By <A HREF="mailto:jrogers@u.washington.edu">James M. Rogers</A></H4></CENTER>
<P> <HR>
<P>The last article was on file operations in the standard input/output
library <stdio.h>. This article is on reading and writing characters,
strings and arrays to and from a stream. I am assuming a knowledge
of c programming on the part of the reader. There is no guarantee
of accuracy in any of this information nor suitability for any purpose.
<P>As an example of character based processing we will use a program that
reads the number of characters, words and lines of a file from standard
input and prints the results out to standard out. Any errors encountered
will be printed to standard error. This will be a weak version of
wc. (type `man wc` for more information on this UNIX utility program.
<P>The code examples given for each function will typically not run unless
the the <angle bracked> items are replaced with real code.
Normally these are things that have to be treated differently depending
on what you are trying to do. As always, if you see an error in my
documentation please tell me and I will correct myself in a later document.
<P><TT>-----------------------------------------------------------------</TT>
<BR><TT><FONT SIZE=-2> </FONT></TT>
<BR><TT><FONT SIZE=-2>#include <stdio.h> /*
include the proper headers */</FONT></TT>
<P><TT><FONT SIZE=-2>#define IN 1
/* looking inside a word */</FONT></TT>
<BR><TT><FONT SIZE=-2>#define OUT 0
/* looking at white space */</FONT></TT>
<P><TT><FONT SIZE=-2>/* count the number of lines, words and characters
in standard input */</FONT></TT>
<P><TT><FONT SIZE=-2>main() {</FONT></TT>
<P><TT><FONT SIZE=-2> int c,
/* holds the character returned by getchar */</FONT></TT>
<BR><TT><FONT SIZE=-2> characters,
/* the number of characters */</FONT></TT>
<BR><TT><FONT SIZE=-2> lines,
/* the number of lines */</FONT></TT>
<BR><TT><FONT SIZE=-2> words,
/* the number of words */</FONT></TT>
<BR><TT><FONT SIZE=-2> state;
/* are we currently in or out of a word */</FONT></TT>
<P><TT><FONT SIZE=-2> /* initialize the count and set
the state to outside a word */</FONT></TT>
<BR><TT><FONT SIZE=-2> state=OUT;</FONT></TT>
<BR><TT><FONT SIZE=-2> characters = words = lines = 0;</FONT></TT>
<P><TT><FONT SIZE=-2> /* get one character at a time
from standard in, until EOF */</FONT></TT>
<BR><TT><FONT SIZE=-2> while ((c = getchar()) != EOF)
{</FONT></TT>
<BR><TT><FONT SIZE=-2> characters++;
/* increment the count of characters */</FONT></TT>
<BR><TT><FONT SIZE=-2> switch(c)
{</FONT></TT>
<BR><TT><FONT SIZE=-2> case '\n'
:</FONT></TT>
<BR><TT><FONT SIZE=-2>
lines++; /* increment the
count of lines */</FONT></TT>
<BR><TT><FONT SIZE=-2>
state = OUT; /* new-line is white space, outside
word */</FONT></TT>
<BR><TT><FONT SIZE=-2>
break;</FONT></TT>
<BR><TT><FONT SIZE=-2> case '
' :</FONT></TT>
<BR><TT><FONT SIZE=-2>
state = OUT; /* space is white space, outside word
*/</FONT></TT>
<BR><TT><FONT SIZE=-2>
break;</FONT></TT>
<BR><TT><FONT SIZE=-2> case '\t':</FONT></TT>
<BR><TT><FONT SIZE=-2>
state = OUT; /* tab is white space, outsides word
*/</FONT></TT>
<BR><TT><FONT SIZE=-2>
break;</FONT></TT>
<BR><TT><FONT SIZE=-2> default
: /*
otherwise we are in a word */</FONT></TT>
<BR><TT><FONT SIZE=-2>
if (state == OUT) {</FONT></TT>
<BR><TT><FONT SIZE=-2>
/* if state is still out and we are in a word */</FONT></TT>
<BR><TT><FONT SIZE=-2>
/* then we are at the first letter of the word */</FONT></TT>
<BR><TT><FONT SIZE=-2>
state = IN; /* set the state to in */</FONT></TT>
<BR><TT><FONT SIZE=-2>
words++; /* increment the
count of words */</FONT></TT>
<BR><TT><FONT SIZE=-2>
}</FONT></TT>
<BR><TT><FONT SIZE=-2>
break;</FONT></TT>
<BR><TT><FONT SIZE=-2> }</FONT></TT>
<BR><TT><FONT SIZE=-2> }</FONT></TT>
<BR><TT><FONT SIZE=-2> /* print the results with
a formatted print statement */</FONT></TT>
<BR><TT><FONT SIZE=-2> printf("%d %d %d\n", characters,
words, lines);</FONT></TT>
<BR><TT><FONT SIZE=-2>}</FONT></TT>
<P><TT>-----------------------------------------------------------------</TT>
<BR>
<P><B>To read a character from a stream,</B>
<P><TT> int getchar (void);</TT>
<BR><TT> int getc(FILE *stream);</TT>
<BR><TT> int fgetc(FILE *stream);</TT>
<BR><TT> int ungetc(int c, FILE *stream);</TT>
<P><TT>void </TT>this is left blank.
<BR><TT>FILE *stream </TT>is an already existing stream.
<BR><TT>int c </TT>is a character to be pushed back into the stream.
<P>These functions return an int with the value of the next character from
the stream. If there are no more characters then the end-of-file
indicator is set for the stream and the function returns EOF. If
there was a read error then the error indicator is set for the stream and
the function returns EOF.
<P><B>getchar</B> is used to read a single character from standard input.
<P><TT> int c;</TT>
<BR><TT> while((c = <B>getchar()</B>) != EOF) {</TT>
<BR><TT> <while not
the end of file read and process each character></TT>
<BR><TT> }</TT>
<P><B>getc</B> is used to read a single character from a stream.
<P><TT> int c;</TT>
<BR><TT> FILE *stream;</TT>
<BR><TT> if((stream = fopen ("filename", "r")) != (FILE
*)0) {</TT>
<BR><TT> while((c = <B>getc(</B>stream<B>)</B>)
!= EOF) {</TT>
<BR><TT> <process each
character></TT>
<BR><TT> }</TT>
<BR><TT> } else {</TT>
<BR><TT> <do error handling></TT>
<BR><TT> }</TT>
<P><B>fgetc</B> is used to read a single character from a stream.
getchar and getc are written in terms of fgetc: <TT>getchar()</TT> is the
same as <TT>fgetc(STDIN)</TT> and <TT>getc(x)</TT> is the same as <TT>fgetc(x)</TT>.
<P><TT> int c;</TT>
<BR><TT> FILE *stream;</TT>
<BR><TT> if((stream = fopen ("filename", "r")) != (FILE
*)0) {</TT>
<BR><TT> while((c = <B>fgetc(</B>stream<B>)</B>)
!= EOF) {</TT>
<BR><TT> <process each
character></TT>
<BR><TT> }</TT>
<BR><TT> } else {</TT>
<BR><TT> <do error handling</TT>>
<BR><TT> }</TT>
<P><B>ungetc</B> is used to push a character back into the stream when
you have read one character too many. This is a common problem for
compilers and pattern scanners. It is possible to push back more
than one character but this is not recommended as it is not portable.
An ungetc should follow a read and only push back a single character.
<P><TT> int c;</TT>
<BR><TT> FILE *stream;</TT>
<BR><TT> if((stream = fopen ("filename", "r")) != (FILE
*)0) {</TT>
<BR><TT> while((c = fgetc(stream))
!= EOF) {</TT>
<BR><TT> <process each
character></TT>
<BR><TT> if (some_condition)
{</TT>
<BR><TT>
<B>ungetc(</B>c,stream<B>);</B></TT>
<BR><TT>
break;</TT>
<BR><TT> }</TT>
<BR><TT> }</TT>
<BR><TT> } else {</TT>
<BR><TT> do error handling</TT>
<BR><TT> }</TT>
<P><B>To write a character to a stream,</B>
<P><TT> int putchar(int c);</TT>
<BR><TT> int putc(int c, FILE *stream);</TT>
<BR><TT> int fputc(int c, FILE *stream);</TT>
<P><TT>FILE *stream </TT>is an already existing stream.
<BR><TT>int c </TT>is the character to be written to the stream.
<P>These functions return the character written upon success. If
a write error occurs the error indicator is set for the stream and the
function returns an EOF.
<P><B>putchar</B> writes a character to standard out. <TT>putchar(x)</TT>
is the same as <TT>fputc(x, STDIN)</TT>
<BR>
<BR><TT> <B>putchar(</B>'x'<B>)</B>;</TT>
<P><B>putc</B> writes a character to the stream. <TT>putc(x,y)</TT>
is the same as <TT>fputc(x,y)</TT>
<P><TT> int c;</TT>
<BR><TT> FILE *stream;</TT>
<BR><TT> c='x';</TT>
<BR><TT> if((stream = fopen ("filename", "w")) != (FILE
*)0) {</TT>
<BR><TT> <B>putc(</B>c, stream<B>)</B>;</TT>
<BR><TT> } else {</TT>
<BR><TT> <error handling></TT>
<BR><TT> }</TT>
<P><B>fputc</B> writes a character to the stream.
<P><TT> int c;</TT>
<BR><TT> FILE *stream;</TT>
<BR><TT> c='y';</TT>
<BR><TT> if((stream = fopen ("filename", "w")) != (FILE
*)0) {</TT>
<BR><TT> <B>fputc(</B>c, stream<B>)</B>;</TT>
<BR><TT> } else {</TT>
<BR><TT> <error handling></TT>
<BR><TT> }</TT>
<P><B>To read a string from a stream,</B>
<P><TT> char *gets(char *s);</TT>
<BR><TT> char *fgets(char *s, int n, FILE *stream);</TT>
<P><TT>char *s </TT>the string that will hold the result.
<BR><TT>int n </TT>the maximum number of characters to read.
<BR><TT>FILE *stream </TT>is an already existing stream.
<P>If the read is successful then the pointer to s is returned. If
EOF is encountered and no characters have been read into the string then
the string remains unchanged and a null pointer is returned. If a
read error occurs then the string contents are possibly changed in an undefined
manner and a null pointer is returned.
<P><B>gets</B> reads from the stream into the string until the new line
character or end-of-file marker is reached. <B>Never use this function.
Use fgets instead.</B> There is no bounds checking to see if the
returned string fits into the space allowcated for it. Many applications
have been used as security holes in the past based on overwriting the end
of a string.
<P><B>fgets</B> reads at most <B>n</B> characters from the stream into
the string.
<P><TT> char s[1024];</TT>
<BR><TT> FILE *stream;</TT>
<BR><TT> if((stream = fopen ("filename", "r")) != (FILE
*)0) {</TT>
<BR><TT> while((<B>fgets(</B>s, 1023,
stream<B>)</B>) != (char *)0 ) {</TT>
<BR><TT> <process each
line></TT>
<BR><TT> }</TT>
<BR><TT> } else {</TT>
<BR><TT> <do fopen error handling></TT>
<BR><TT> }</TT>
<P><B>To write a string to a stream,</B>
<P><TT> int puts(const char *s);</TT>
<BR><TT> int fputs(const char *s, FILE *stream);</TT>
<P><TT>const char *s</TT>
<BR><TT>FILE *stream </TT>is an already existing stream.
<P>Returns a non-negative value upon success. Returns an EOF on a
write error.
<P><B>puts</B> writes the string pointed to by s to the stream STDIO and
appends a new-line to the end. The terminating null character is
not written to the stream.
<P><TT> char s[1024];</TT>
<BR><TT> FILE *stream;</TT>
<BR><TT> strcpy(s,"a typical string");</TT>
<BR><TT> if((stream = fopen ("filename", "w")) != (FILE
*)0) {</TT>
<BR><TT> if(<B>puts(</B>s, stream<B>)</B>
== EOF ) {</TT>
<BR><TT> <handle error
on write></TT>
<BR><TT> }</TT>
<BR><TT> } else {</TT>
<BR><TT> <handle error on
open></TT>
<BR><TT> }</TT>
<P><B>fputs</B> writes the string pointed to by s to the named stream.
The terminating null character is not written to the stream.
<P><TT> char s[1024];</TT>
<BR><TT> FILE *stream;</TT>
<BR><TT> strcpy(s,"a typical string");</TT>
<BR><TT> if((stream = fopen ("filename", "w")) != (FILE
*)0) {</TT>
<BR><TT> if(<B>fputs(</B>s, stream<B>)</B>
== EOF ) {</TT>
<BR><TT> <handle error
on write></TT>
<BR><TT> }</TT>
<BR><TT> } else {</TT>
<BR><TT> <handle error on
open></TT>
<BR><TT> }</TT>
<P><B>To read/write between arrays and streams,</B>
<P><TT> size_t fread(const void *ptr, size_t size, size_t
nmemb, FILE *stream);</TT>
<BR><TT> size_t fwrite(const void *ptr, size_t size,
size_t nmemb, FILE *stream);</TT>
<P><TT>const void *ptr </TT>is a pointer to the array.
<BR><TT>size_t size </TT>is the size of each element of the array
<BR><TT>size_t nmemb </TT>is the number of elements to be processed.
<BR><TT>FILE *stream </TT>is an already existing stream.
<P><B>fread</B> reads into the array pointed to by ptr, no more than nmemb
elements of the size size, from the stream. The function returns
the number of elements that were successfully read, this value can be less
than what was requested, if the function encounters a read failure or an
EOF. A read failure leaves the element that failed in an undefine
state. If size or nmemb are zero then the function returns a zero.
<P><TT> int a[10];</TT>
<BR><TT> FILE *stream;</TT>
<BR><TT> if((stream = fopen ("filename", "r")) != (FILE
*)0) {</TT>
<BR><TT> if (<B>fread(</B>a,
sizeof(a), 10, stream<B>)</B> < 10){</TT>
<BR><TT>
<handle a read error></TT>
<BR><TT> }</TT>
<BR><TT> } else {</TT>
<BR><TT> <handle a file open
error></TT>
<BR><TT> }</TT>
<P><B>fwrite</B> writes from the array pointed to by ptr, no more than
nmeb elements of the size size, to the stream. The function returns
the number of elements successfully written, which should match nmemb only
if no write errors were encountered.
<P><TT> int a[10];</TT>
<BR><TT> FILE *stream;</TT>
<BR><TT> if((stream = fopen ("filename", "w")) != (FILE
*)0) {</TT>
<BR><TT> if (<B>fwrite(</B>a,
sizeof(a), 10, stream<B>)</B> < 10){</TT>
<BR><TT>
<handle a write error></TT>
<BR><TT> }</TT>
<BR><TT> } else {</TT>
<BR><TT> <handle a file open
error></TT>
<BR><TT> }</TT>
<P>
<HR>
<H4>
Bibilography:</H4>
<I>The ANSI C Programming Language, Second Edition</I>, Brian W. Kernighan,
Dennis M. Ritchie, Printice Hall Software Series, 1988
<P><I>The Standard C Library</I>, P. J. Plauger, Printice Hall P T R, 1992
<P><I>The Standard C Library, Parts 1, 2, and 3</I>, Chuck Allison, <I>C/C++
Users Journal</I>, January, February, March 1995
<P>STDIO(3), BSD MANPAGE, <I>Linux Programmer's Manual</I>, 29 November
1993
<P><I><A HREF="http://www.linuxgazette.com/issue24/rogers.html">The Standard
C Library for Linux, Part One</A></I><A HREF="http://www.linuxgazette.com/issue24/rogers.html">,
James M. Rogers, January 1998</A>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1998, James M. Rogers <BR>
Published in Issue 31 of <i>Linux Gazette</i>, August 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc31.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./richardson.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./lg_backpage31.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<center>
<H1><IMG SRC="../gx/backpage.gif" alt="Linux Gazette Back Page"></H1>
<H5>Copyright © 1998 Specialized Systems Consultants, Inc.<br>
For information regarding copying and distribution of this material see the
<A HREF="../ssc.copying.html">Copying License</A>.</H5>
</center>
<P> <hr> <P>
<H3>Contents:</H3>
<ul>
<li><a HREF="./lg_backpage31.html#authors">About This Month's Authors</a>
<li><a HREF="./lg_backpage31.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">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">Jim Dennis</H4>
Jim is the proprietor of <A href="http://www.starshine.org">
Starshine Technical Services</A>.
His professional experience includes work in the technical
support, quality assurance, and information services (MIS)
departments of software companies like
<A href="http://www.quarterdeck.com"> Quarterdeck</A>,
<A href="http://www.symantec.com"> Symantec/
Peter Norton Group</A>, and
<A href="http://www.mcafee.com"> McAfee Associates</A> -- 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">Chris DiBona</H4>
Chris (chris@dibona.com) is a computer security consultant and is
the Vice President of the Silicon Valley Linux User's Group.
(http://www.svlug.org/). He enjoys Linux, studying terrorism and population
statistics. He also grooves on a good Pale Ale. His personal web page can
be found at http://www.dibona.com/.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Michael J. Hammel</H4>
Michael
is a transient software engineer with a background in
everything from data communications to GUI development to Interactive Cable
systems--all based in Unix. His interests outside of computers
include 5K/10K races, skiing, Thai food and gardening. He suggests if you
have any serious interest in finding out more about him, you visit his home
pages at http://www.csn.net/~mjhammel. You'll find out more
there than you really wanted to know.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Phil Hughes</H4>
Phil Hughes is the publisher of <I>Linux Journal</I>, and thereby <I>Linux
Gazette</I>. He dreams of permanently tele-commuting from his home on the
Pacific coast of the Olympic Peninsula.
As an employer, he is "Vicious, Evil,
Mean, & Nasty, but kind of mellow" as a boss should be.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Mike List </H4>
Mike is a father of four teenagers, musician,
and recently reformed technophobe, who has been into computers
since April,1996, and Linux since July, 1997.
<p>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Eric Marsden</H4>
<a href="http://www.chez.com/emarsden/">Eric</a> is studying computer
science in Toulouse, France, and is a member of the local Linux Users
Group. He enjoys programming, cycling and Led Zeppelin. He admits to
once having owned a Macintosh, but denies any connection with the the
<a href="http://locke.ccil.org/~esr/ecsl/">Eric Conspiracy Secret
Labs</a>.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Russell C. Pavlicek</H4>
Russell is employed by
<A HREF="http://www.compaq.com/">Compaq Computer Corporation</A> (formerly
with <A HREF="http://www.digital.com/">Digital Equipment Corporation</A>)
as a software consultant serving US Federal Government customers in the
Washington D.C. area. He runs the
<A HREF="http://www.geocities.com/SiliconValley/Haven/6087/index.html">
Corporate Linux Advocate Homepage</A> and can be reached at
<A HREF="mailto:pavlicek@altavista.net">pavlicek@altavista.net</A>.
He lives with his lovely wife and wonderful children in rural Maryland
where they serve Yeshua and surround themselves with a variety of furry
creatures. His opinions are entirely his own (but he will allow you to adopt
one or two if you ask nicely).
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Michel Pelletier</H4>
Michel has been breaking Linux machines in the ISP business for
years. His idols are K&R, Godel and Duke Ellington. When not in the
mountains Michel can be found at michel@colint.com.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Eric S. Raymond</H4>
Eric is a semi-regular contributor to <i>Linux Journal</i>. You
can find more of his writings, including his paper ``The Cathedral and
the Bazaar'', at http://www.ccil.org/~esr/.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Greg Roelofs</H4>
Greg Roelofs escaped from the University of Chicago with a degree in
astrophysics and fled screaming to Silicon Valley, where he now does
outrageously cool graphics, 3D and compression stuff for Philips Research.
He is a member of Info-ZIP and the PNG group, and he not only maintains
web pages for both of those but also for himself and for the Cutest Baby
in the Known Universe. He can be reached by e-mail at
<A HREF="mailto:newt@pobox.com">newt@pobox.com</A>,
or on the web at <A HREF="http://pobox.com/~newt/">http://pobox.com/~newt/</A>.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">James M. Rogers</H4>
James, his wife, and their pets have moved to a new home on the Olympic
Peninsula In Washington State. I am now a Systems Programmer for
the University of Washington Medical Center and Harbor View Medical Center.
I work on the interfaces between medical computer systems.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Doc Searls</H4>
Doc is President of The Searls Group, a Silicon Valley
consultancy, and a co-founder of Hodskins Simone and Searls.
He has been writing on technology and other issues for most of his life.
The <i>Flack Jacket</i> series of essays is collected in <i>Reality
2.0</i>,
http://www.batnet.com/searls/docworks.html).
Other series are <i>Positions</i> and <i>Milleniana</i>. He can be reached
via e-mail at searls@batnet.com.
<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>
My grandaughter, Rebecca is visiting me this week. We've been having a good
time going to all the fun places around Seattle and have a lot more to
visit. Her sister Sarah will be arriving on Friday to visit a week with me
too. I feel very fortunate to have 2 such wonderful granddaughters. Rebecca
loves to dance is taking ballet, jazz and tap. Sarah is a Tae Kwon Do
student. Pictures of both can be found on my home page.
<P>
Have fun!
<P> <hr> <P>
<A HREF="http://www.ssc.com/ssc/Employees/Margie/margie.html">
Marjorie L. Richardson</A> <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_toc31.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="./rogers1.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
<p><hr><p>
<I>Linux Gazette</I> Issue 31, August 1998,
<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>
<P>
</BODY>
</HTML>
|