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
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE> Linux Gazette Index Page </TITLE>
<META NAME="robots" CONTENT="noindex, nofollow">
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#0020F0"
ALINK="#FF0000" >
<H2>
<center><IMG SRC="../gx/newlogo.jpg"
ALT="Linux Gazette... making Linux just a little more fun!">
</H2>
<H5>Copyright © 1996-97 Specialized Systems Consultants, Inc.
<A HREF="mailto:linux@ssc.com"><I>linux@ssc.com</I></A></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:
<center>
<A HREF="http://www.ssc.com/lj/">
<img src="../gx/ljlogo.gif" alt="Linux Journal"></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"></A></H1></td>
<td>
<H1><A HREF="http://www.suse.com/"><img ALIGN="bottom" src=../gx/suse3.jpg alt="S.u.S.E."></A></H1></td>
<td>
<H1><A HREF="http://www.redhat.com/"><img HSPACE="70" src=../gx/redhat.gif alt="Red Hat"></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> <HR> <P>
<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>"</H4>
<HR>
<center>
<table width="100%" cellpadding=7><tr><td>
<H2><a NAME="mail"><IMG SRC="../gx/mailbox.gif" ALIGN=MIDDLE ALT=" ">
The Mailbag!</a> </H2>
Write the Gazette at <A HREF="mailto:gazette@ssc.com"> gazette@ssc.com</A>
</td><td>
<H3>Contents:</H3>
<ul>
<li><a HREF="./lg_mail21.html#help">Help Wanted -- Article Ideas</a>
<li><a HREF="./lg_mail21.html#gen">General Mail</a>
</ul>
</td></tr></table>
</center>
<a name="help"></a>
<p><hr><p>
<!-- =================================================================== -->
<center><H3> Help Wanted -- Article Ideas </H3></center>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 18 Aug 1997 00:25:47 -0400<br>
From: Anthony Wilson <a href="mailto:anthony@pisces.globalserve.net">anthony@pisces.globalserve.net</a><br>
Subject: Difficulty running programmes
<p>I am using Linux Slackware 3.0 with kernel version 2.0. I am running
a LAN and whenever I try to run a script or a program that I created on
the server, I get a command not found error, even though I have read
write permissions on the file in my own directory. If I transfer that
same file to another Linux box on this LAN, I can run it without any
problems.
<p>Is there an easy fix to this problem?
<p>Thank you.
<p>Anthony Wilson
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 20 Aug 1997 06:00:38 +0200<br>
From: Denny <a href="mailto:denny@ele.kth.se">denny@ele.kth.se</a><br>
Subject: Connecting to dynamic IP via ethernet
<p>Hello.
I want to connect my Linux box to our ethernet ring here at my company.
The problem is that
they(we) use dynamic IP adresses, and I don't know how to get an adress.
I use win95 on
one partition on my pc, from where it works fine to connect. I know the
IP adress to the
DCHP-server (that the one who distributes the IP-adresses, right?) but
how do I do to get
assigned an IP-adress from Linux? I got so tired of trying, that I
finally just assigned an adress
myself and hey, somethings work. I can use telnet and ftp but X takes 15
minutes to start, and
emacs likewise. I can't wait that amount and also I'm sure there are
several thing that don't work.
Please, if you know how to do, explain carefully, I'm not all that good
at linux and tcp/ip hacking.
<p>Denny
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Fri, 15 Aug 1997 09:47:03 -0500<br>
From: Cory Sticha <a href="mailto:csticha@apci.net">csticha@apci.net</a><br>
Subject: Printing PostScript to a DeskJet 682C
<p>I've got a question that I'd to have answered. I've got an HP DeskJet
682C printer that I'd like to use to print pages out from Netscape.
Unfortunately, the printer only recognizes text and PCL 3, while
Netscape only uses PostScript. Is there a filter that is capable of
converting PostScript to PCL 3. Also, to print text to this printer, I
have to pipe the file that I want to print to todos and then pipe that
to the printer. How can I automate this? Thank you very much in advance
for any help that you can give me.
<p>Cory Sticha, SrA, USAF
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 04 Aug 1997 14:12:42 +1000<br>
From: Marcus B <a href="mailto:marcus@cwi.net.au">marcus@cwi.net.au</a><br>
Subject: Problem with adaptec 2940U
<p>Answer: RedHat versions <4.0 use older kernels which don't have aic7xxx
support, I found this out the hard way, back when the aic7xxx driver was
only being developed, if you are talking about a version of RedHat that
uses 2.0.x kernels, then they get loaded in as a module (when it asks
what type of SCSI host adapter you have), if this is not loading then it
might be an idea to check if it is sharing an IRQ with another device in
windows 95 (if you are unlucky enough to have it!), and manually change
it. The aic7xxx driver is very new (>2.x kernels only) but there are
problems on some hardware configurations.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 6 Aug 97 20:55:49 BST<br>
From: George russell <a href="mailto:george.russell@clara.net">george.russell@clara.net</a><br>
Subject: Linux Help needed to connect to Internet
<p>I am a new Linux user, and inexperienced in Unix environments. My aim in using
Linux is to connect to the internet without needing to use Windows, in order to
learn about Linux and update my linux setup (Slackware Linux Toolkit March 1997,
which I will install again soon). I have had X Windows and Netscape Navigator
3.01 installed,and will do so again after a hard disc upgrade. I am unable to
connect to the internet. Could anyone help me to do this?
My modem is on COM2, and works under windows as a generic modem. I know the
number of my ISP, that my IP address is server assigned. I have the IP
addresses of the primary and secondary DNS, and have my own username and
password. Is there anyhing else I need to know, and can anyone help me with
this? I would be very grateful for all assistance given.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 06 Aug 1997 15:35:20 -0700<br>
From: Luke <a href="mailto:luke@holdens.org">luke@holdens.org</a><br>
Subject:LILO Problems
<p>I have this 2 gig scsi drive. I have Linux and Windows 95 on my system.
95 is on the first gig and Linux is on the 2nd. Lilo gives me problems
with booting Linux from the second gig. And windows just will not see it.
Its a old scsi disk. So I cant use sector compadibility mode. Right now.
I use Lodlin (and some 95 proggy) to drop out of 95 and kick linux in.
Eather this or I have to use a installation floppy (I cant load lilo on
a floppy because it gives me disks problems there too) You know of any
boot managers that I can gain access to that can read the entire disk? I
know the NT boot loader can do this. But there is no point in loading NT
for this task.
Another problem I have is this. I have a Windows NT box as a proxy
server for my internet connection. (I can't convert it to Linux, it's not
my box) I can get Windows 95 to send all ip requests threw the proxy
using the ms proxy client. (ex: quake over the net) But with Linux I
can't seem to do that. I have used Netscape a bit for this purpose. But I
still can't do anything else. Is there a way to get Linux to work over a
proxy itself? I could just dail into my ISP va PPP. But I already have
a 10 megabit connection to them. What's the point of using a modem. Is
there a way I can get around this problem?
Another question I have is can I make a swap from an image or some other
media. I don't want to kill my Linux partition to gain this. But, I have
a 16 meg swap partition and 16 megs of ram. Trying to run progams like
Wabi is of no use. They don't seem to have enough memory. Is there a way
to add more swap space with out disturbing the exsisting partitions?
Well thank you for your time.
Long live LINUX!!!<br>
Luke Holden
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sat, 09 Aug 1997 23:14:04 -0400<br>
From: David Nghiem<BR>
Subject: Pointers
<p>Hey all,
<p>Do you guys know of any information regarding programming a game in
Linux on the X11 platform? I want to use it as a cross developer for
some DOS games. The main issue here is this: How do I display my output?
<p>
Laterz,<br>
Dave.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Fri, 08 Aug 1997 20:03:21 -0400<br>
From: Raymond E. Rogers <a href="mailto:rrogers@voyager.net">rrogers@voyager.net</a><br>
Subject: Apllixware -- Fax
<p>I bought applixware some time ago and found that I was supposed to roll
my own Fax interface. Somebody at work suggested just setting up a
"printer" for fax. Logical to me. As I don't do Linux for a living or
a hobby; it would be nice if somebody could write and article on how to
do it. Or point me to instructions. I looked around and was unable to
find any.
<p>There is supposed to be instructions in how to make netscape do
standard PGP/RSA digital signatures that can be verified on any PGP
system, not just inside of netscape. Simple instructions on this would
be nice.
<p>If I get around to doing these things first, I will write an article on
how I did it.
<p>
Enjoy<br>
Ray
<blockquote> <I>
(An article entitled "Faxing from the Web" will be included in the upcoming
November issue of Linux Journal. While the magazine won't be out until next
month, the listings that go with it (including his front end) are available
at <A HREF="ftp://ftp.ssc.com/pub/lj/listings/issue43/2044.tgz">
ftp://ftp.ssc.com/pub/lj/listings/issue43/2044.tgz</A>.
Since the author was not using Applixware, I'm not sure how much his code
will help, but check it out, it may be just what you need. --Editor)
</I> </blockquote>
<a name="gen"></a>
<P> <hr> <P>
<!-- =================================================================== -->
<center><H3> General Mail </H3></center>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 30 Jul 1997 12:22:41 -0700<br>
From: Tom Schenck <a href="mailto:tschenck@concentric.net">tschenck@concentric.net</a><br>
Subject: Organize and overtake!
<p>Well, I'm pretty sure there are people doing this, but not very fast or
efficiently. We need a stable, friendly, easy-to-install system that
comes equiped with applications that allow the user to begin working
right away, and configure without programming knowledge!
<p>Yes, it's *nix.
Yes, it's a programmers environment.
Yes, it doesn't HAVE to be terse, hard to configure, etc.
<p>Hell, maybe I'll have to do it!
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Fri, 22 Aug 97 21:09:09 BST<br>
From: Duncan Simpson <a
href="mailto:feynman.ecs.soton.ac.uk">feynmen.ecs.soton.ac.uk</a><br>
Subject: M$ word
<p>Those who need to read a word document might like to get the latest
version of wqord2x by anonymous ftp from amil.telstar.net
in the pub/duncan directory. Note the machine's main job is a
mail redirection service, which sends me the logs, amoung
other things!!
<p>Duncan
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sun, 10 Aug 1997 13:56:23 -0600 (MDT)<br>
From: Michael J. Hammel <a href="mailto:mjhammel@csn.net">mjhammel@csn.net</a><br>
Subject: MS quote
<p>This comes via a Mac friend of mine. We should look closely at aligning
with the Mac users of the world. They hate MS almost as much as we do. :-)
From: EvangeList <a href="mailto:evangelist@apple.com">evangelist@apple.com</a>
This tidbit is from:
Dave Reiser, <a href="mailto:dbr@ptd.net">dbr@ptd.net</a>
In a page 1 article in the July 28, 1997 Computerworld there's an article
ENTITLED "Microsoft Declares War" about how MS has announced that it will
not ship the Java class libraries.
I absolutely howled when I read this quote:
"'We have no intention of shipping another bloated operating system and
forcing that down the throats of our Windows customers'" [attributed to
Paul Maritz, Microsoft Group Vice President]
Are they feeling guilty about the fact that they've already rammed one
bloated operating system down their customers' throats?
--
Michael J. Hammel
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
From mjhammel@csn.net Fri Aug 8 21:48:52 1997<br>
Date: Fri, 08 Aug 1997 23:00:22 -0600<br>
Subject: Descent 3D for Linux?
<p>Linux has always been the perfect platform for games, it's just very
few developers (id and Crack.com
are the only two worth mentioning that I know of) know that.
<P>Actually I think many of the developers know the value of Linux, but
there is no marketing proof that a Linux port will make money. As many
others have said in the past, we need certifiable numbers to prove the
market exists and that its willing to spend money on commercial
products. I don't have any info on it, but I'd love to know if either
Id or Crack.com made any money on their Linux ports. And I'd like to
know if it was enough, in their eyes, to warrant future ports. I've a
gut feeling the Id guys may have done their port simply because they
liked the idea and did it for fun, but thats just an unsubstantiated
hunch.
<P>I just got back from SIGGRAPH today and after having talked to many
engineers from lots of different companies I can say that nearly all are
*very* aware of Linux and most (that I talked to) are using it. One
engineer from Cosmos Software, the new division at SGI, said they'd
probably be happy to let someone do the port of the new Cosmo Player
1.0 to Linux (although he wasn't sure how to go about getting that
done). Most of the companies at the conference who are Unix aware are
also Linux aware. They just need a little proof that the market will
return their investment within a reasonable time frame.
<P>One of the things I decided to do while I was at SIGGRAPH was to write
an article outlining how to begin to get reasonable market figures for
Linux with respect to graphics tools and games (other vertical markets
are a bit out of my league). I'm sketching this out now and will
probably submit it to the Linux Journal in September or October. Much
of it resolves around the use of simple Multimedia applications.
Anyway, once we have the numbers to back us up, it will be a little
easier to convince game developers to include Linux ports of their
software.
<P>--
Michael J. Hammel
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Fri, 08 Aug 1997 22:36:23 -0600<BR>
From: Michael J. Hammel <a href="mailto:mjhammel@csn.net">mjhammel@csn.net</a><br>
Subject: Firewire and DV
<P>I just got back from SIGGRAPH. To my knowledge there are no plans for
Firewire support for Linux, but I have to admit I didn't specifically go
looking for it. I'm not even completely sure what it is (although
thought it was just another 3D chipset). I've been on a personal
crusade to get Linux noticed as a terrific platform for image processing
and graphic arts tools, and that includes (eventually) Digital Video
(DV) tools. However, although there are quite a large number of tools
for doing computer graphics (including plenty of support for OpenGL,
both commercially and in the freeware MesaGL package), I've not seen any
DV style tools. I'd say its a little early for such tools on a
commercial basis since more basic tools are not commercially supported
yet. But its certainly something I'll continue to keep an eye on and do
my best to encourage.
<P>DV tools would work as well on Linux as any other high-end Unix system,
but tools like graphics tablets and scanners need better support before
we'll get into DV tools. We also need a decent GUI toolkit. Motif is
ok, but a bit bloated. Most of the other toolkits don't have enough
printed documentation available yet. While at SIGGRAPH, Mark Kilgard
told me that there is a new toolkit that sits on top of GLUT that might
be a good basis for a more advanced toolkit. I haven't had time to look
at it yet (I just got back today).
Anyway, I hope this helps a little. If you find any DV tools or have
contacts that could use a little polite prodding, feel free to drop me a
line.
<P>--
Michael J. Hammel
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 27 Aug 1997 09:04:22 -0700 (PDT)<BR>
From: Riley Eller <a href="mailto:RILEYE@datalight.com">RILEYE@datalight.com</a>
<p>It took Linus to make it happen<BR>
It took everyone to make it right<BR>
It takes HOWTOs to make it work<BR>
It takes the Gazette to make it FUN<BR>
Thank You Linux Gazette :-)
<p>Riley Eller<BR>
Newbie Jihad Warrior
<P> <hr> <P>
<!--================================================================-->
<center>Published in Linux Gazette Issue 21, September 1997</center>
<!--====================================================================-->
<P> <hr> <P>
<A HREF="./index.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_tips21.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 © 1997 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_tips21.html#video">Changing Video Modes</a>
<li><a href="./lg_tips21.html#colormap">Colormap Questions</a>
<li><a HREF="./lg_tips21.html#netcat">Netcat!</a>
<li><a HREF="./lg_tips21.html#starting">Starting and Stopping Services</a>
<li><a HREF="./lg_tips21.html#tool">A New Tool for Linux</a>
<li><a HREF="./lg_tips21.html#logs">Of Logs and Other Things</a>
<li><a HREF="./lg_tips21.html#calc">Calculator Tip</a>
<li><a HREF="./lg_tips21.html#tarred">Another Way to View Tarred Files</a>
<li><a HREF="./lg_tips21.html#script">Script Ease</a>
<li><a HREF="./lg_tips21.html#syslog">Syslog Thing</a>
<li><a HREF="./lg_tips21.html#fax">Sorta E-mail-to-FAx...Well, to-Printer</a>
<li><a HREF="./lg_tips21.html#xterm">Setting Xterm Title to Current Process</a>
<li><a HREF="./lg_tips21.html#cvs">CVS</a>
</ul>
<P> <hr> <P>
<!--================================================================-->
<a name="video"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Changing Video Modes
</H3>
<P>
Date: Fri, 08 Aug 1997 22:41:05 -0600<br>
From: Michael J. Hammel <a href="mailto:mjhammel@csn.net">mjhammel@csn.net</a><br>
<P>I don't know how AccelX and XiGraphics and MetroX handle these things.
<P>AccelX is ( I think) a PC graphics company. You might mean Xaccel,
which is the actual program name for Xi Graphics X server. Its product
name is "AcceleratedX". Xi Graphics is the company name.
<P>As for how Xaccel changes its video modes - try CTRL-ALT-+ (thats a plus
sign). I believe that cycles through the various modes. Check the man
pages or manual to be certain. I believe MetroX does similar, but the
keystroke is probably different.
<P>--
<P> <hr> <P>
<!--================================================================-->
<a name="colormap"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Colormap Question
</H3>
<P>
Date: Fri, 08 Aug 1997 23:47:31 -0600<br>
From: Michael J. Hammel <a href="mailto:mjhammel@csn.net">mjhammel@csn.net</a><br>
<p>The question was "can you force an X application to use its own colormap
in some way other than using a command line option". The answer is: it
depends (aint it always the case?).
<p>An applications ability to use its own colormap is not a "builtin" part
of X. Colormaps are part of X, but the application still has to add
code to make use of colormaps. So if the application doesn't have any
code specifically for handling colormaps (for example, my XPostitPlus
doesn't have any such code) then neither the command line or any other
method will force it to use a private colormap. The default for
applications (like XPostitPlus) is to use the default colormap, and
thats why you often see applications with weird colors that you can't
get rid of till you exit some other application.
<p>Now, if the application *does* have code to deal with colormaps, it can
also make the use of the private colormap a user configurable option. X
provides a mechanism for making an option either a command line option
(eg. -usePrivateColormap) or an X resource. X resources can be
specified in X resource files (like .Xdefaults) or on the command line
using the -xrm option. X is so configurable that the number of ways for
a user to supply configuration information can often be quite confusing,
both for the user and the developer. In any case, its up to the
programmer to make any of these methods available. None is available by
default simply becaue its "an X windows program".
<p>The correct thing for an application to do is to allow the user to
configure the use of the private colormap in at least one way and to
provide a best-guess default for determining if a private colormap would
be the best thing to do or not if the user doesn't provide a
preference. Few applications do this, however. The GIMP does. So do
XV and Netscape. Even my own programs aren't very good at this,
although I intend to get much better in the very near future.
<p>As for an X column, well, I'd love to see one. We just need to convince
some X hack to spend a little time writing articles instead of code.
Thats kinda hard to do. I'll probably be adding some X coding tidbits
to my Muse column, but only with respect to using Motif or OpenGL in
graphical and multimedia applications.
<p>Hope this helps a little.
<p>
--
Michael
<P> <hr> <P>
<!--================================================================-->
<a name="netcat"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Netcat!
</H3>
<P>
Date: 01 Aug 1997 15:46 EDT<br>
From: Jean-Philippe Sugarbroad <a href="mailto:da1wizard@geocities.com">da1wizard@geocities.com</a>
<p>I was going through back issues of the Linux Gazette and I remembered a program
I use quite frequently... netcat. This program enables you to open sockets and
connect or listen with them - all from a shell script! It's a great way to
quickly fetch web pages or see if a server is running... It even has UDP
'connection' mode and zero-io mode (which closes the connection as soon as it
succeeds...). The UDP mode even uses a TCP connection to check round-trip time
:) I love it!
<p>Jean-Philippe Sugarbroad
<P> <hr> <P>
<!--================================================================-->
<a name="starting"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Starting and Stopping Services
</H3>
<P>
Date: Tue, 5 Aug 1997 18:55:19 -0600 (CST)<br>
From: Terrence Martin <a href="mailto:twm139@its.to">twm139@its.to</a><br>
<p>I was just reading the August version of Linux Journal and I noticed
refrence to rebooting the system after making changes to the
/etc/syslog.conf file in order for those changes to take affect. This is
contrary to a feature that is the main reason I use Linux at home and at
work.
<p>It is only generally necessary to reboot Linux to add/remove hardware or
when installing a new kernel. In the specific case of syslogd(8) you can
inform the server to reread it's initialization file by sending it a
SIGHUP signal.
<pre>
eg.
kill -HUP `cat /var/run/syslogd.pid`
</pre>
<p>This will work with many of the servers available for Linux including
(most) httpd(8), named(8), and inetd(8).
<p>Sometimes however it is preferable to actually restart these services. In
Slackware I believe most of your services are placed in a single script
and this makes it a little more difficult to pick and choose which
services to stop and start.
<p>In RedHat it is a little more modular. In the directory /etc/rc.d/init.d
are the scripts that are run on bootup to start various services.
<p>These scripts allow you to start and stop various services just as if you
had shutdown and rebooted your machine. eg.
<pre>
# /etc/rc.d/init.d/named.init stop
# /etc/rc.d/init.d/named.init start
</pre>
<p>This will start and stop the name service.
<p>The scripts supplied with RedHat are not too complex compared to similar
scripts I have seen on other systems. They can usually be adapted to new
services that you may wish to have start on bootup, without complicating
the rc.local file and giving you much finer control.
<p>If you examine the soft links in /etc/rc.d/rc0.d through /etc/rc.d/rc6.d
you will notice that they link to the files in /etc/rc.d/init.d. Each of
these numbers on these directories refer to a "runlevel".
<p>As the system boots the /etc/inittab tells the init process which
directories to examine to determine which services to start up, most
systems not running xdm will end at runlevel 3, otherwise it is runlevel
5.
<p>All of the files(softlinks) in runlevel 3 beginning with 'S' are executed
in order of occurance in the directory, this is controlled by giving each
a number ie
<pre>
S30syslog -> ../init.d/syslog comes before
S40cron -> ../init.d/cron.init.</pre>
Note: Links with the same number are executed in lexical order.
<p>The sequence may be important depending what services depend on other
services.
<p>I put most of the services I add in runlevel 3, as I usually boot into
multiuser mode. You then should add the approriate script link to
/etc/rc6.d as those are the files that are executed on shutdown. Note the
convention here is to begin all soft link names with 'K'. ie
<pre>K10named.init -> ../init.d/named.init</pre>
<p>Again these scripts are executed on order with the highest number being
last to run.
<p>The net effect of all these links is that with an 'S' preceding the soft
link the script is run with the argument "start" and with a 'K' it is run
with the argument "stop".
<p>Over the last two weeks I have set up and configured a news server, web
server, name server, sshd server, updated the syslog.conf file plus a
hundred other little tweaks on our RedHat 4.x box and I have not had to
reboot once. In fact the system has not been rebooted since we added a new
CPU and SCSI card 31 days ago...I love Linux :)...
<p>Regards<br>
Terrence Martin
<P><HR><P>
<!--================================================================-->
<a name="tool"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
A New Tool for Linux
</H3>
<P>
Date: Fri, 22 Aug 1997 08:29:59 -0500<br>
From: Ian <a href="mailto:Beth13@mail.utexas.edu">Beth13@mail.utexas.edu</a>
<p>The version posted in issue 20 assumes you have exec access to ALL dirs
under the one you 'TREE'
<p>Here's a modified version which works even in cases of unreadable
folders:
<pre>
-------------------------------- cut here --------------
#!/bin/sh
# @(#) tree 1.1 30/11/95 by Jordi Sanfeliu
# email: mikaku@arrakis.es
#
# Initial version: 1.0 30/11/95
# Next version : 1.1 24/02/97 Now, with symbolic links
# Patch by : Ian Kjos, to support unsearchable dirs
# email: beth13@mail.utexas.edu
#
# Tree is a tool for view the directory tree (obvious :-) )
#
search () {
for dir in `echo *`
do
if [ -d $dir ] ; then
zz=0
while [ $zz != $deep ]
do
echo -n "| "
zz=`expr $zz + 1`
done
if [ -L $dir ] ; then
echo "+---$dir" `ls -l $dir | sed 's/^.*'$dir' //'`
else
echo "+---$dir"
if cd $dir ; then
deep=`expr $deep + 1`
search # with recursivity ;-)
numdirs=`expr $numdirs + 1`
fi
fi
fi
done
cd ..
if [ $deep ] ; then
swfi=1
fi
deep=`expr $deep - 1`
}
# - Main -
if [ $# = 0 ] ; then
cd `pwd`
else
cd $1
fi
echo "Initial directory = `pwd`"
swfi=0
deep=0
numdirs=0
zz=0
while [ $swfi != 1 ]
do
search
done
echo "Total directories = $numdirs"
-------------------------------- cut here --------------
</pre>
<p>The changes are to put the "cd $dir" as the predicate of an IF
statement, NOT IN A SUBSHELL, and the recursive part is the switched
clause. This prevents infinite recursion in the case of an unreadable or
unexecable dir.
<P> <hr> <P>
<!--================================================================-->
<a name="logs"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Of Logs and Other Things
</H3>
<P>
Date: Sun, 10 Aug 1997 21:47:39 +0200<br>
From: D. Emilio Grimaldo T. <a href="mailto:grimaldo@panama.iaehv.nl">grimaldo@panama.iaehv.nl</a><br>
<p>Hi,<br>
I recently saw on the August issue of Linux Gazzete and some
previous issues about the handling of system logs. Well, it
doesn't have to be complicated, in fact I have written a very
useful script/package that has been around for a couple of
years, it is called Chklogs and is used by major network providers,
companies and small-time users of Linux systems. In fact it is
going to be featured in the Linux Journal some time this year.
IT fulfills all the log handling needs. For more information
see
<a href="http://www.iaehv.nl/users/grimaldo/info/">http://www.iaehv.nl/users/grimaldo/info/</a>
<p>Catch the link to Chklogs
<p> Best Regards,<br>
Emilio
<P> <hr> <P>
<!--================================================================-->
<a name="calc"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Calculator Tip</H3>
<P>
Date: Sun, 27 Jul 1997 23:43:37 +0200 (MET DST)
From: Hans Zoebelein <a href="mailto:zocki@goldfish.cube.net">zocki@goldfish.cube.net</a><br>
<p>Hello Linux Gazetters,<br>
Here comes a real cheap command line calculator.
Since shell scripts do only integer calculation,
you are stuck if you want floating point precision.
<p>You also want to do sometimes stuff like 'how much is
1200*3/7' at the commandline without firing up a full
blown GUI calculator.
<p>Just for that work you can use the <tt>calcme</tt> command line
calculator, which is hacked in perl. Dont forget that a shell
thinks differently about 10*3 than a calculator. So do it as
10\*3 or "10*3".
<p>The icing of the cake is the optional formatting. If you supply
something like <tt>%.3f</tt> as second parameter, the output is nicely
formatted as floating point number and up/down rounded correctly
after 3 decimals.
<p>You also can do a <tt>calc 10/3 %20.6f</tt> which returns a string
with 6 digits and 20-6=14 spaces like <tt>______________3.3333</tt>.
So formatting of lists in shell scripts is real fun now.
<p>Enjoy!<br>
Hans
<pre>#!/usr/bin/perl
#
# The ultimate command line calculator :-^
# Usage calcme <string_to_calculate> [<output_format>]
#
# Input is a string like (10+3)/7 or "(10 + 3) / 7"
# Output is the calculated result of the string (sic!).
# Optional formatting can supplied as 2nd parameter.
if (@ARGV == 0 || @ARGV > 2)
{
die("Usage: $0 <\"formula_to_calculate\"> [<output_format>]\n");
}
$format = "";
$calcme = $ARGV[0];
(@ARGV == 2) && ($format = $ARGV[1]);
$output = eval($calcme);
if(@ARGV == 1)
{
print(STDOUT "$output\n");
}
else
{
printf(STDOUT "$format\n", $output);
}
exit(0);
</pre>
<p>
--
Hans
<P> <hr> <P>
<!--================================================================-->
<a name="tarred"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Another Way to View Tarred Files</H3>
<P>
Date: Sat, 02 Aug 1997 02:18:07 +1000 (GST)
From: Gerald J Arce <a href="mailto:garce@starcommand.mang.net">garce@starcommand.mang.net</a>
<p>In issue 19, I read a 2 cents tip regarding viewing a tarred file.
I use less instead..
<pre>
ex:
tar tzf foo.tar.gz
less foo.tar.gz
</pre>
Less typing (grin).
<P> <hr> <P>
<!--================================================================-->
<a name="script"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Script Ease </H3>
<P>
Date: Wed, 6 Aug 1997 01:54:19 +0200 (GMT+0200)
From: Trucza Csaba <a href="mailto:ctrucza@cemc.soroscj.ro">ctrucza@cemc.soroscj.ro</a>
<p>Hi all,
<p>As a programmer-wannabe, I do a lot of typing. To ease at least the
beginning of each source file (which is mainly the same: include-s,
define-s, imports and stuff), I wrote a script to automatize this. For
the quality of the script please read the notice at the end of my mail.
<pre>(file: se)
---------cut here---------------
#!/bin/sh
#
# source editor (se)
#
# usage: se <filename> <type>
#
# WARNINGS:
# 1. do not supply extension:
# se MyProg.java will make a MyProg.java.java!!!
#
# 2. manually create the
# SE_HOME_DIR,
# SE_HOME_DIR/temp,
# SE_HOME_DIR/templates
#
# man se:
#
# create two files for each type of the source you want to se.
# the script will copy the first file+filename+second file into a new
# file (you got it?:-)
#
# so: if you want java, create two files:
#
# templates/java.1:
#
# ---8<---
# public class
# --->8---
# (Do not put a newline at the end!)
#
# templates/java.2
#
# ---8<---
# {
# public static void main(String args[]){
# }
# }
# --->8---
#
# the script for se MyProg java (or jus se MyProg if the last time you
# used java as type) will create a new file called MyProg.java:
#
# public class MyProg
# {
# public static void main(String args[]){
# }
# }
#
# examine and modify at will
#
# author: Trucza Csaba ctrucza@cemc.soroscj.ro
#
# this script may be full of errors
#
SE_HOME_DIR=~/.source-editor
LAST_USED=$SE_HOME_DIR/last_used
if [ -f $LAST_USED ] ; then
SE_DEFAULT_TYPE=`cat $LAST_USED`
fi
case $# in
0)
echo "no parameter"
if [ -z $SE_DEFAULT_TYPE ] ; then
SE_DEFAULT_TYPE=java
fi
FILE_TYPE=$SE_DEFAULT_TYPE
FILENAME=~/.source-editor/temp/temp.$FILE_TYPE
;;
1)
echo "filename"
if [ -z $SE_DEFAULT_TYPE ] ; then
SE_DEFAULT_TYPE=java
fi
FILE_TYPE=$SE_DEFAULT_TYPE
FILENAME=$1.$FILE_TYPE
;;
2)
echo "name and type"
FILE_TYPE=$2
FILENAME=$1.$FILE_TYPE
;;
esac
echo "FILE_TYPE="$FILE_TYPE
echo "FILENAME="$FILENAME
if [ -f $FILENAME ]; then
echo file exists
else
build-template $FILE_TYPE $1
mv ~/.source-editor/templates/$FILE_TYPE.template $FILENAME
fi
echo $FILENAME
echo $FILE_TYPE > $LAST_USED
jstar -tab 4 $FILENAME
---------cut here---------------
</pre>
<p>The second script is a simple backup script, to back all the sources up
and edit the tracking file.
<pre>(file: backup)
---------cut here---------------
#!/bin/sh
#
# kind of backup with kind of version control
# usage: backup
#
# backs up the current directory (well not all of it, just your
# programs)
#
# 1. creates a dir named backup (or whatever)
# 2. in this directory will be a tracking file, a plain text file
# in which you can write some comments every backup
# 3. optionally in the file named filelist you can write the names of
# the files you want to back up
# 4. examine and modify at will
#
# author: Trucza Csaba ctrucza@cemc.soroscj.ro
#
# this script may be full of errors
#
#
# where to back up
#
if [ -z $BACKUPDIR ] ; then
BACKUPDIR=backup
fi
if [ ! -d $BACKUPDIR ] ; then
mkdir $BACKUPDIR
fi
#
# last version backed up
#
LAST_FILE=$BACKUPDIR/last
if [ -f $LAST_FILE ] ; then
VERSION=`cat <$LAST_FILE`
else
VERSION=0
fi
let VERSION=$VERSION+1
#
# prepare next backup directory
#
NEXT_DIR=$BACKUPDIR/ver.$VERSION
mkdir $NEXT_DIR
#
# get files to back up
#
LIST_FILE=$BACKUPDIR/filelist
if [ -f $LIST_FILE ] ; then
cp `cat $LIST_FILE` $NEXT_DIR
else
#
# if no filelist found, backup C and Java files
# modify as you wish
#
cp *.c $NEXT_DIR >/dev/null 2>&1
cp *.h $NEXT_DIR >/dev/null 2>&1
cp *.java $NEXT_DIR >/dev/null 2>&1
fi
#
# update last
#
echo $VERSION >$LAST_FILE
#
# edit trackfile
#
TRACK=$BACKUPDIR/track
echo >> $TRACK
echo >> $TRACK
echo "=====================================================================">> $TRACK
date >> $TRACK
echo "Version: "$VERSION >>$TRACK
#
# here use your favorite editor :)
#
jstar $TRACK
---------cut here---------------
</pre>
<p>They should be self-explanatory.
but,
These scripts should not be used for design or development of nuclear,
chemical, biological, weapons or missile technology, or any other places
where humans can be hurt
<P> <hr> <P>
<!--================================================================-->
<a name="syslog"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Syslog Thing</H3>
<P>
Date: Thu, 07 Aug 1997 15:00:29 -0700<br>
From: Kent Friis <a href="mailto:dk5f@ehs.dk">dk5f@ehs.dk</a>
<p>In issue 20, I saw a 2c tip regarding syslog, Including changing the config
file, and REBOOTING. Now wait a minute, I thought this was Linux. How can
one get uptime's of 300+ days, if you need to reboot every time you change
a config file.
<p>The solution is simply to edit the config file, and kill -HUP (pid of
syslogd).
<p>You should NEVER need to reboot, except to install a new kernel.
<p>Kent Friis.
<P> <hr> <P>
<!--================================================================-->
<a name="fax"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Sorta E-mail-to-Fax...Well to-Printer</H3>
<P>
Date: Fri, 8 Aug 1997 20:04:30 +0500 (PKT)<br>
From: Tee Emm <a href="mailto:tm@super.net.pk">tm@super.net.pk</a>
<p>Hello,
<p>I can bet that many of you readers will try out this tip atleast for once.
Here we go:
<p>I work at an ISP here in Pakistan with 4 more shift engineers. We have
offices in three different locations and, although email and talk are
used very frequently, we sometime require ABSOLUTELY IMMEDIATE responce
from the other office. Emails remain unchecked and talk request are
sometimes ignored because the other party might be busy doing something
else on a talk-disabled terminal. Well, you cannot ignore a Panasonic
Dotmatrix printer printing out messages in your control center!
<p>One of my so-to-say boss talked of having a utility which will poll a POP3
mailbox every few seconds and printing out any mail that might be in the
box. He, being a visual basic guru, started writing a windows based
application that would do the required. I, being a die hard Linux
creature, started thinking how I can do the same on my dear Linux box.
Well, it took me a day to ponder on this issue and when I clicked, it was
just a breeze! Sixteen key strokes and I was ready with my system. I
yelled 'Windoz Suxs, Linux Rules'!
<p>I edited the /etc/aliases file and keyed in the following line:
<pre>
urgent: "| lpr"
</pre>
saved, the file and did a 'newaliases' and bingo! Any mail sent to
urgent@super.net.pk was immediately printed on the screaming dot matrix
printer. My boss was duly stunned!
<p>(Note: You must have your 'lpr' command working before you can go ahead
with this tip.)
<p>Tariq Mustafa,
<P> <hr> <P>
<!--================================================================-->
<a name="xterm"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Setting Xterm Title to Current Process</H3>
<P>
Date: Tue, 12 Aug 1997 01:09:02 -0500 (CDT)<br>
From: Rob Mayoff <a href="mailto:mayoff@dqd.com">mayoff@dqd.com</a><br>
<p>I saw this tip the Gazette:
<B>Hi, after searching (to no avail) for a way to display the currently
executing process in the xterm on the xterm's title bar, I resorted to
changing the source of bash2.0 to do what I wanted. from line 117 of
eval.c in the source, add the lines marked with # (but don't include
the #)</B>
<p>If you use ksh instead of bash, you can get the same effect
without changing the source:
<pre>typeset -A Keytable
trap -- 'eval "${Keytable[${.sh.edchar}]}"' KEYBD
[[ "$TERM" == xterm ]] && \
Keytable[$'\r']=$'[[ -n ${.sh.edtext} ]] && print -n "\E]2;${.sh.edtext}\a"'
</pre>
<p>You can download ksh (the POSIX-compliant Korn shell) for free from
<a href="http://www.research.att.com/orgs/ssr/book/reuse">http://www.research.att.com/orgs/ssr/book/reuse</a>
<P> <hr> <P>
<!--================================================================-->
<a name="cvs"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
CVS</H3>
<P>
Date: Thu, 14 Aug 1997 11:08:27 -0400<br>
From: Paul Rensing <a href="mailto:paulr@dragonsys.com">paulr@dragonsys.com</a>
<P><B>Mario Storti wrote:</B>
<P><B>Using shar + RCS to Backup Set of Source Files</B>
<p><B>Hi, RCS (see rcs(1)) is a very useful tool that allows to store versions of
a file by storing only the differences between successive versions. In this
way I can make a large amounts of backups of my source files but with a
negligible amount of storage. I use it all the time, even for TeX files!!
However, when you are working with a set of source files (*.c, shell or
Perl scripts, I work mainly with Fortran .f and Octave *.m files) what I
want is to make backups of the whole set of files in such a way that you
can recover the state of the whole package at a given time. I know that
there is a script called rcsfreeze around, but I know that it has problems,
for instance if you rename, delete or create new files, it is not
guaranteed to recover the same state of the whole set.</B>
<p>I think a good way to handle this is by "upgrading" to CVS. CVS is a version
control system built on top of RCS and was designed specifically to handle
version control of large trees of files (the company who wrote it was a Sun
VAR and handled the > 1000 files which they regularly received from Sun).
<p>Once you have the project set up, you could simply do "cvs commit" from the
top directory of a project, and CVS will check in all the changes to all the
controlled files in the tree. If you are using this for "backup", you would
only need to keep a copy of the CVS "repository".
<p>Paul Rensing
<P> <hr> <P>
<!--================================================================-->
<center>Published in Linux Gazette Issue 21, September 1997</center>
<P> <hr> <P>
<!--================================================================-->
<A HREF="./index.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_mail21.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
<A HREF="./lg_bytes21.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 © 1997 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_bytes21.html#general">News in General</a>
<li><a HREF="./lg_bytes21.html#software">Software Announcements</a>
</ul>
</td></tr></table>
</center>
<a name="general"></a>
<p><hr><p>
<!-- =================================================================== -->
<center><H3> News in General </H3></center>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
Linux® Trademark Resolution
</H3>
<P>
<b>Ownership of Linux® Trademark Resolved</b>
<p>Monterey, California, August 20, 1997 - A long standing dispute over
ownership of the Linux® operating system trademark has been resolved.
As a result of litigation brought by a group of five Linux companies and
individuals against William R. Della Croce, Jr. of Boston, Massachusetts,
Della Croce has assigned ownership for the registered mark to Linux Torvalds,
the original author of Linux, as part of the a settlement agreement.
<p>The plaintiffs in the suit were Linus Torvalds; specialized Systems Systems
Consultants, Inc. (the <I>Linux Journal</I> of Seattle; Yggdrasil computing,
Inc. in San Jose; Linux International, Amherst, NH; and Work Group
Solutions of Aurora, CO. Non-plaintiffs Red Hat Software, Inc., Metrolink
Inc., and Digital Equipment Corporation supported the litigation and
contributed to the cost of the litigation.
<p>The five plaintiffs brought suit against Della Croce in the U.S. Trademark
Trial and Appeals Board, in November 1996. Della Croce had obtained
registration of the Linux mark in September 1995, which created a storm of
protests by the Linux community, who felt the mark belonged to Torvalds or
the Linux community and not to any individual. In an attempt to correct the
situation, the plaintiffs retained the internationally known intellectual
property law firm of Davis & Schroeder of Monterey, California, who handled
the case on a greatly reduced fee bases, as a service to the Linux
community.
<p>The five plaintiffs, through their attorneys, announced that (1) the
matter has been settled by the assignment of the mark to Linus Torvalds, on
behalf of all Petitioners and Linux users, and the dismissal with prejudice
of the pending PTO Cancellation Proceeding; and (2) that Respondent was
reimbursed for his trademark filing fees and costs by Petitioners. The other
terms of the Settlement Agreement are confidential.
<p>All inquiries should be referred to Petitioners' law firm, Davis &
Schroeder at 408-649-1122 or by email at <a href="mailto:ggd@iplawyers.com">ggd@iplawyers.com</a>. A copy of the
original Cancellation Petition filed in the TTAB, can be found at
<a href="http://www.iplawyers/text/linux.htm">http://www.iplawyers/text/linux.htm</a>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<I>Linux Journal</I> 1996 Back Issue CD-ROM
</H3>
<P>
<I>Linux Journal</I> announced the release and ship date of their 1996
back-issue CD-ROM. It will be available September 17, 1997. <I>LJ</I>'s
first back-issue CD-ROM will consist of twelve issuews of <I>Linux
Journal</I> published during 1996. Features covered in 1996 include;
systems administration, World Wide Web, back-ups, Linux distribution
comparisons, software development, shell programming, getting new users
started, graphics and several other topics.
<p>An HTML interface will allow you to access the CD-ROM infromation using
any World Wide Web browser. For those that don't have a World Wide Web
browser, <I>gzilla</I>, has been included on the CD-ROM.
<p><i>Linux Journal</I>'s 1996 back issues CD-ROM is $19.95 plus shipping
and handling and can be ordered directly from <I>Linux Journal</I>.
<P>For more information take a look at <a
href="http://www.linuxjournal.com/">http://www.linuxjournal.com/</a>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
Vi Mugs
</H3>
<P>
You might be interested in the vi reference mugs found at <a
href="http://www2.cic.net/~gpoulos/vimug_main.html"> http://www2.cic.net/~gpoulos/vimug_main.html</A>.
Check them out!
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
New Mailing List
</H3>
<P>
<p>Check out a new mailing list for Linux users to help each other
with problems.. To subscribe send email to majordomo@ourweb.net with the
following in the body: subscribe linuxlst
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
Linux Aptitude Test
</H3>
<p>There is a project which is trying to establish a quantitative measure
to assist in determining a person's knowledge and general usefulness in Linux
setup, configuration, and maintenance. The project is aiming to create a
test that can be used to assess an employee's strenths and general
understanding of Linux.
<p>Take a look at <a href="http://www.icv.net/LAT">http://www.icv.net/LAT</a>
<a name="software"></a>
<P> <hr> <P>
<!-- =================================================================== -->
<center><H3> Software Announcements </H3></center>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
The Hawkeye Project
</H3>
<P>
<p>"Hawkeye" is the name of a new Linux Web server program, which has recently
been released to the public.
IT is an Internet/Intranet server suite, implementing
Internet protocols for information interchange.
A short list of the most important functions of Hawkeye:
<ul>
<li>HTTP 1.0 Server, HTTP 1.1 coming soon
<li>POP3 / SMTP Server (E-Mail)
<li>NNTP Server (Newsgroups)
<li>FTP Server (File area)
</ul>
<p>Hawkeye is running under the LINUX operating system and requires the
Linux SQL database MySQL <a href="http://www.tcx.se">http://www.tcs.se</a>.
Hardware requirements are much like what you would need to build a
normal Linux system. For optimal performance, we recommend a Pentium
machine withat least 16 Megabytes of RAM. Hawkeye itself uses very
little Harddisk space, so the size depends mainly on your site.
Check it out on the <a href="http://:wq
hawkeye.net">Hawkeye Web Home Site</a>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
LinkScan 3.1 Released
</H3>
<P>
<p>Electronic Software Publishing Corporation introduced a number of new
features in LinkScan version 3.1. There is added ability to check
hyperlinks that are embedded within Adobe Acrobat PDF files and enhanced
TapMap features such as...
<p>Free evaluation copies of LinkScan 3.0 may be downloaded
from the company's website at:
<a href="http://www.elsop.com/linkscan/">http://www.elsop.com/linkscan</a>
<P> <hr> <P>
<!--================================================================-->
<center>Published in Linux Gazette Issue 21, September 1997</center>
<P> <HR> <P>
<!-- =================================================================== -->
<A HREF="./index.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_tips21.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
<A HREF="./lg_answer21.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 © 1997 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/ans.gif" alt="" border=0 align=middle>
The Answer Guy
<img src="../gx/ans.gif" alt="" border=0 align=middle>
</A></H1> <BR>
<H4>By James T. Dennis,
<a href="mailto:jimd@starshine.org">jimd@starshine.org</a><BR>
Starshine Technical Services, <A HREF="http://www.starshine.org/">
http://www.starshine.org/</A> </H4>
</center>
<p><hr><p>
<H3>Contents:</H3>
<ul>
<li><a HREF="./lg_answer21.html#control">Linux Control Panel</a>
<li><a HREF="./lg_answer21.html#command">Linux Command Line Arguments</a>
<li><a HREF="./lg_answer21.html#crash">More Random Crashes</a>
<li><a HREF="./lg_answer21.html#disk">More on Disk Defrag</a>
<li><a HREF="./lg_answer21.html#xwind">X-Windows is Crashing</a>
<li><a HREF="./lg_answer21.html#lynx">Lunx and Frames</a>
<li><a HREF="./lg_answer21.html#ftpd">More on ftpd</a>
<li><a HREF="./lg_answer21.html#dns">DNS Problem</a>
<li><a HREF="./lg_answer21.html#sendmail">Sendmail</a>
<li><a HREF="./lg_answer21.html#server">Linux PPP Server</a>
<li><a HREF="./lg_answer21.html#emulator">Linux/Unix Emulator</a>
<li><a HREF="./lg_answer21.html#lilo">LILO Concerns</a>
<li><a HREF="./lg_answer21.html#crypt">Crypt</a>
<li><a HREF="./lg_answer21.html#apache">Apache 1.2.1</a>
<li><a HREF="./lg_answer21.html#internet">PPP and Internet MCI</a>
<li><a HREF="./lg_answer21.html#auto">Enabling Automounter on a Linux
Notebook</a>
<li><a HREF="./lg_answer21.html#locks">XLocks Monitor</a>
<li><a HREF="./lg_answer21.html#pop">Pop3d That Doesn't Use /etc/passwd</a>
<li><a HREF="./lg_answer21.html#notebook">Configuration of Two Ethernet
Cards</a>
<li><a HREF="./lg_answer21.html#console">Attaching a Colsole to a PC</a>
</ul>
<p><hr><p>
<!--================================================================-->
<a name="control"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Linux Control Panel
</h3>
<P> <B>
To: <a href="mailto:ggonzale@ix.netcom.com">ggonzale@ix.netcom.com</a>
</B><p><B>I have recently installed RedHat Linux ver 4.2 on my pc . My problem is
that I cannot get the control-panel to work when I run startx or XDM .
The panel comes up but I am unable to activiate any buttons in
control-panel . I don't know what I did wrong or what to check ! Please
help...
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
Are you running it as root?
Are there any interesting error messages in /var/log/messages?
Are there any interesteing error messages back on the text
console from which you ran "startx" (you can switch out
of XFree86 with {Ctrl}+{Alt}+{Fx} -- where {Fx} is the
function key that corresponds to any of you other virtual
consoles). Are you sure you installed the Python and
related libraries (last I heard all of the Red Hat GUI
control panel stuff is written in Python).
<p> As I've said several times -- I'm not a Red Hat specialist
(although that is what I'm running here at the moment) and
I barely use X (since I vastly prefer old fashion text mode).
<p> Have they ever gotten a support line running that can
answer questions that are specific to their code? (Hey!
I wouldn't even object to a paid support line -- if it
was good).
<P><B><img align=bottom alt=" " src="../gx/ques.gif">
Thank you for responding to my question I will look into the areas
you suggested . However I have one other question that is how would I
activate my modem from a Linux command line? I thought I needed the
xwindow to do that in the first place.
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
One of the virtues of Unix is that you don't need X Windows
to do anything except run X applications -- there are other
ways to access graphics (SVGALib, MGR) use your mouse (GPM)
do cut and paste (GPM/select, 'screen'), provide task/session
switching (virtual consoles, and 'screen'), do screen management
('splitvt', emacs) etc.
<p> In answer to your question regarding modems:
There are a number of programs that are included with the
typical Linux distribution that may use your modem:
<p>pppd is the PPP daemon -- it usually uses the 'chat'
command to talk to the modem.
<p>minicom is a vaguely Telix like ncurses terminal emulation
package (Telix is a popular shareware MS-DOS program).
It provides a fullscreen, color interface.
<p>'cu' is a "call utility" usually associated with UUCP.
It uses the UUCP configuration files for information
about your modem -- if you have those configured. It's
a very limited communications package -- that's only
virtue is that it is small.
<p>UUCP is a suite of programs -- of which the uucico
program actually talks to the modem. You almost certainly
are not planning on using this. However UUCP was (and
still is) used as a mail, file, and netnews transport
protocol for years before TCP/IP existed. I still use it
for my mail.
<p>C-Kermit is a communications package from Columbia
University. You can fetch it freely -- but it can't be
included with Linux (or other) CD-ROM collections of
software due to it's licensing model. If you decide you
like it you should buy a copy of the C-Kermit book by
Frank da Cruz (the program's principal architect and
head of the project since it's foundation).
<p> C-Kermit is also a scripting language and can be used
as a telnet or rlogin client, and Kermit is a file
transfer protocol which can be used by C-Kermit over
any communications channel that it can establish. I
wrote an article for SysAdmin Magazine on the subject
just a couple of months ago.
<p> There are other program that access your modem if
you want to use them, There's a SLIP package which
usually controls the modem via 'dip' -- there's
a variety of different "getty" implementations which
"Get a tty" (terminal) so that you can log in from a
terminal, or another system running a terminal package.
<p> I use mgetty which not only allows incoming dial-up
data connections but adds support for FAX and even
voice/DTMF with some modems. That package also includes
"sendfax" -- a program for outgoing faxes. efax is
another package for support FAXes under Linux.
<p> Judging from your earlier question regarding the Red Hat
Control Panel I suspect that you're just interested in
configuring your system for PPP access to your Internet
service provider (ISP). There is a script floating around (on
http://sunsite.unc.edu somewhere) called 'pppsetup'. I think
this will allow you to setup your PPP configuration from a
text console (I used plain old 'vi' and made my own
configuration files -- so I've never used this -- though I've
seen it recommended many times).
<p> There are several HOW-TO's on configuring PPP (and SLIP) which
can be found at <a href="http://sunsite.unc.edu/LDP/HOWTO/">http://sunsite.unc.edu/LDP/HOWTO</a> Look for the
ones that refer to "PPP" and "ISP."
<p> Hope all of that helps.
<p>--
Jim
<p><hr><p>
<!--================================================================-->
<a name="command"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Linux Command Line Arguments
</h3>
<P> <B>
From: Ronald B. Simon <a href="mailto:rbsimon@anet.bna.boeing.com">ronald.b.simon@boeing.com</a>
</B><p><B>Where can I find a list of the linux boot command line arguments?
e-mail addresses:
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
Look in the following HOW-TO document:
BootPrompt HOWTO
<a href="http://sunsite.unc.edu/LDP/HOWTO/BootPrompt-HOWTO.html">http://sunsite.unc.edu/LDP/HOWTO/BootPrompt-HOWTO.html</a>
<p>
--
Jim
<p><hr><p>
<!--================================================================-->
<a name="crash"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
More Random Crashes
</h3>
<P> <B>
Date: Fri, 01 Aug 1997 14:40:06 -0700<br>
From: sloth <a href="mailto:sloth7@hotmail.com">sloth7@hotmail.com</a>
</B><p><B>Hi, I wrote to you a while ago with a problem regarding random crashes
while installing Linux... I recently tried again, with exactly the same
hardware but a different hard disk and the whole thing worked fine.
unfortunately, the hdd i used was only and 80mb conner :). The hard disk
i want to use is a 2.1 gb Quantum Fireball. When I try on this hard disk
the computer locks up at a different place each time during the
installation ( but only when it is decompressing the files). I have an
IDE Hard disk controller.
</B><p><B>h/w list:
</B><ul><B>
</B><li><B>Intel Pentium 150 CPU
</B><li><B>Intel Triton VX m/b
</B><li><B>S3 Virge 3d graphics card
</B><li><B>16mb EDO RAM
</B><li><B>2.1gb Quantum Fireball
</B><li><B>onboard (ide) hdd controller
</B><li><B>24x IDE CDROM
</B></ul><B>
</B><p><B>any help would be much appreciated.
</B><p><B>cheers, sloth...
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
This new information about your situation suggests two
possibilities:
<p> 1) Your HD is bad -- possibly it has some bad
sectors that the drive electronics haven't
mapped out, or possibly it's something more
subtle.
<p> 2) Your controller (IDE) is incompatible with your
HD and/or the combination of your HD and CD drive.
<p> Some notes:
<p> Any IDE drive that's over 540Mb requires an EIDE (enhanced IDE)
controller/BIOS. There have been cases where specific IDE
devices weren't compatible with one another -- where a particular
combination of devices couldn't share the same IDE channel.
<p> So, try getting a new EIDE controller and disabling the
interface on the motherboard (or configuring the new on as
a "secondary" IDE channel. Try running the two devices on the
new EIDE controller if you can get it installed as the primary
(but don't blindly trust the motherboard documentation -- I've
heard that some of the "disable me" settings on some boards just
don't work). Then try running the CD-ROM drive and the hard disk
on separate channels (controllers).
<p> If you can get a copy of Spinrite or the Norton Utilities for
DOS then you might install a small DOS partition and run that on
your Fireball. It might be able to map out any bad sectors.
<p> If you get a new controller (which will be less expensive then
buying either of the software packages I just mentioned) I'd
try a a QuickPath Portfolio or a GSI brand multi-funtion card with
4 high speed (16550 UART) serial ports. The QuickPath is an ISA
card (rather than taking up one of your PCI slots for a set of
relatively slow interfaces) and is what I'm using in a couple of
my machines here. It combines floppy, four serial, two parallel,
two IDE channels and a game port (for 13 devices in all).
<p> Hope that helps. Unfortunately the diversity and cheapness
of PC hardware results in a diversity of inexplicable
incompatibilities and a common "cheapness" in quality that's
imposed by the competition. So, as much as I hate to recommend
"black magic" experiments in new hardware -- it's frequently the
most effective approach.
<p>
--
Jim
<p><hr><p>
<!--================================================================-->
<a name="disk"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
More on Disk Defrag
</h3>
<P> <B>
Date: Mon, 4 Aug 1997 20:27:11 +0200<br>
From: Markus Enzenberger <a href="mailto:Markus.Enzenberger@physik.uni-muenchen.de">Markus.Enzenberger@physik.uni-muenchen.de</a>
</B><P><B>...them in any Linux books that I have consulted. Is disk degragmentation
not needed in maintaining a Linux file system?
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
No, disk fragmentaion is a particular problem of the DOS FAT file system
and its descendants. You can see the fragmentation status of one your
partitions by running the e2fsck file system check program as root
on an unmounted partition. It is run every boot time too. It will report
the amount of non-contiguous files.
<p>
- Markus
<p><hr><p>
<!--================================================================-->
<a name="xwind"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
X-Windows is Crashing
</h3>
<P> <B>
Date: Sun, 13 Jul 1997 19:34:12 -0700<br>
From: Gerramie Dinsel<a href="mailto:gerr@weaveworld.unix.net">gerr@weaveworld.unix.net</a>
</B><p><B>Hello. I am searching all over for an answer or a pointer to this
problem:
</B><p><B>I upgraded my memory from 18 megs to 48. Now, X-Windows crashes on me
when I load FVWM2.. Odd, because XDM loads fine and will sit there,
waiting, without crashing for as long as you want. Also, console mode
works wonderfully...
</B><p><B>Can you offer any help?
Gerramie Dinsel
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
The first guess might be that the new memory is bad --
and that you normal (console) usage -- and the overhead of
xdm just doesn't "land" on the bad chips.
<p> One way to test this would be to do something from
console mode that will use *a lot* of memory. make's
-j switch (to parallelize as many gcc processes as
memory allows) is a good way to test for this sort
of thing. Just make a new kernel (no need to even to
an install of it -- just the make is fine).
<p> If that runs O.K. than we have linked the problem
X -- possibly to any graphical use of the card beyond
xdm's. So we try to run X with no window manager and
a minimal configuration file (no setting of special
root images like xli, xloadimage, or xsetroot, no
-16bpp or any of that).
<p> It could be that your video card uses a region of
address space (a video frame buffer). Look carefully
in the configuration settings, or call the manufacturer's
tech support. That's the most likely problem.
<p> If you have access to another, simpler video card -- try swapping
it in and seeing if that helps. If it does than you need to
reconfigure that video card or use one that's better behaved.
<p> If that doesn't help then it's just anyone's guess what's
happening. Try rearranging the adapters in your card cage -- it
may be that the video card is emanating some noise or crosstalk
that's affecting your RAM. Re-arranging adapters used to be
a time honored sport among PC technicians. I think it's more
rare in the PCI era -- but you don't even mention what sort of
bus your using -- and I have no information about your hardware.
Besides -- it can't hurt.
<p> If it still doesn't work try switching to 32Mb. This might
be some weird chipset bug on your amount of RAM. More systems
work with 16 or 32Mb of RAM than with 24 or 48Mb.
<p> There are a plethora of parameters you can pass to the
kernel for excluding specific memory address ranges from
its use. They might help -- but I'd hate to have to experiment
with them.
<p>
--
Jim
<p><hr><p>
<!--================================================================-->
<a name="lynx"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Lynx and Frames
</h3>
<P> <B>
Date: Tue, 05 Aug 1997 02:48:26 -0700<br>
From: Scott <a href="mailto:omegam@COMMUNIQUE.NET">omegam@COMMUNIQUE.NET</a>
</B><p><B>Hey Jim,
Caught this quote in your article:
</B><p><B><I> (Warning for Lynx users -- both of these sites use frames and
neither bothers to put real content in
the "noframes" section -- Yech!) </I>
</B><p><B>Current versions of lynx support frames and tables in a fairly nice and
elegant fashion. They even handle cookies.
</B><p><B>Check out <a href="http://lynx.browser.org">http://lynx.browser.org</a>
</B><p><B>Just thought you should know. Sure, I use Netscape for some of my
browsing and I hope to begin using Mnemonic soon. But for really fast,
heavy-content oriented browsing, lynx on the console or in a color-xterm
does the trick.
</B><p><B>Scott
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
Oh, I know that Lynx 2.7.1 can handle frames, by simply
showing you a list of the available frames as a set of hot
points at the top of the rendered page. I use Lynx for almost
all of my web browsing.
<p> The problem is that the HTML editors used by many sites don't
put meaningful names on the frames so you get a list of:
frame01.html, frame02.html, etc. instead of something like:
navigation.html, main.html, toolbar.html etc.
<p> It's as irritating as those sites that use large tableaus of
image icons with no Alt="" attributes or imagemaps that with
no sane information in the .map file. (The current Lynx can
also handle most types of image maps.
<p>
--
Jim
<p><hr><p>
<!--================================================================-->
<a name="ftpd"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
More on ftpd
</h3>
<P> <B>
Date: Tue, 05 Aug 1997 01:59:18 -0700<br>
From: Benjamin Peikes <a href="mailto:benp@npsa.com">benp@npsa.com</a>
</B><p>Jim,<B>
</B><p><B>I am currently trying to set up some user accounts on our webserver
so that other people working on their sites can ftp their files up
and down easily. I am using wu.ftpd and have set up the line
</B><pre><B>guestgroup ftponly</B></pre><B>
in /etc/ftpaccess. I have also added the group into /etc/group and
added the users name to the group. The problems is that everything
seems to work correctly except that ls and dir return nothing during
an ftp session.
</B><ol><B>
</B><li><B>ftpd chroot's to the correct directory.
</B><li><B>ftpd changes to the correct home directory.
</B><li><B>you can upload and download files without any problems if you know
the name of the files you want.
</B><li><B>I have made the directories world rwx just to make sure it wasn't
a permissions problem.
</B></ol><B>
</B><p><B>I'm so close that it's driving me nuts. The main problem arises
when people need to transfer entire directories. Most of them are
using GUI driven ftp clients and the lack of directory listings kill
those clients. I know there must be a simple solution. Any help would
be great.
</B><p><B> Ben
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
You're probably having problems with the shared libraries
or devices that are typically required by the ls command.
Some version of ls require that you have a /dev/null and/or
a /dev/tcp in order to work properly. Most versions of ls
require some shared libraries and all of them require the
existence of some of /etc/passwd and /etc/group files (even
with completely fictional data in them) in order to resolve
UID numbers into symbolic ownership information to display in
long listings.
<p> For real information about setting up wu-ftpd on any platform
look at the following resources:
<a href="http://www.landfield.com/wu-ftpd/">http://www.landfield.com/wu-ftpd/</a>
<a href="http://www.cetis.hvu.nl/~koos/wu-ftpd-faq.html">http://www.cetis.hvu.nl/~koos/we-ftpd-faq.html</a>
(Or, <a href="mailto:wu-ftpd-faq@pizza.hvu.nl">send
mail</a> with subject of
"send faq" no quotes, body ignored).
<p> ... and information about the guestgroups feature in particular
can be found at:
<a href="http://www.landfield.com/wu-ftpd/guest-howto.html">http://www.landfield.com/wu-rtpd/guest-howto.html</a>
<p> ... or
<a href="ftp://ftp.fni.com/pub/wu-ftpd/guest-howto">ftp://ftp/fni/com/pub/wu-ftpd/guest-howto</a>
<p> A document describing virtual ftp servers:
<a href="http://www.westnet.com/providers/multi-wu-ftpd.txt">http://www.westnet.com/providers/multi-wu-ftpd.txt</a>
<p> Ftpaccess on virtual ftp servers
<a href="ftp://ftp.meme.com/pub/software/wu-ftpd-2.4.2/README.ALT.FTPACCESS">ftp://ftp.meme.com/pub/software/wu-ftpd-2.4.2/README.ALT.FTPACCESS</a>
<p>Hope that covers it.
<p>
--
Jim
<p><hr><p>
<!--================================================================-->
<a name="dns"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
DNS Problem
</h3>
<P> <B>
Date: Mon, 04 Aug 1997 18:31:36 -0700<br>
From: Dr Ceezaer <a href="mailto:ceezaer@cyberspace.org">ceezaer@cyberspace.org</a>
</B><p><B>(Ping doesn't work -- but /etc/resolv.conf and /etc/hosts.conf
are correct and nslookup works).
</B><p><B>It used to work before I upgraded my library files (/lib and /usr/lib) so I
don't think there is an error in /et/resolv.cfg
</B><p><B>Well... I've solved the problem. First I re-installed Linux on a small 120
MB harddisk. By comparing all relevant directories I found that I had a file
called libc.so.5 (no symlink) in /usr/X11R6/lib plus the normal one in /lib.
By removing the file /usr/X11R6/lib/libc.so.5 it all works again :)
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
Ahh the mysteries of the shared libraries. I've always
wondered how the dynamic loading code searches for these .so
(shared object) files. However I've never wondered enough to
leave stray copies of them laying around.
<P><B><img align=bottom alt=" " src="../gx/ques.gif">
Well... I would need such a HOWTO, I didn't even got chroot to run...
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
The only real trick is to do a 'cd' before trying to execute
the command -- otherwise your process is very confused becuase
it can't access its current working directory (cwd).
<p> The other problem is that your target program must be
contained in the chroot tree with any shared libraries
and usually it will need a set of /etc/ files including the
termcap and maybe a set of /usr/lib/terminfo files.
<p>
--
Jim
<p><hr><p>
<!--================================================================-->
<a name="sendmail"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Sendmail
</h3>
<P> <B>
Date:Sun, 10 aug 1997 14:4457 -0700<br>
From: Stephen P. Smith <a href="mailto:ssmith1@wilma.bcasd.az.honeywell.com">ssmith1@vilma.bcasd.az.honeywell.com</a>
</B><p><B>When I send mail (using the mail program) to someone my reply to address
is wrong.
What sendmail is sending is account@computername.isp.com
What I want is popaccount@isp.com
What do I need to change to fix this
</B><p><B>Stephen Smith
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
You use the "masquerade" feature in your local sendmail
configuration. I recommend that you use the m4 macro
package to reate a new sendmail configuration.
<p> First copy the old configuration. I like to use RCS --
the revision control system to track changes to my
configuration files. Here's how you'd do that:
<p> (As root)
<pre> # cd /etc
# mkdir RCS
(unless you already have one)
# ci sendmail.cf
(checks the cf file into the RCS directory)
# co -l sendmail.cf
(checks it back out, locked for editing)
</pre>
<p> Now you want to create a sendmail "mc" file. This is a file
that uses sendmail specific macros -- which is then processed
by the m4 program to generate the full sendmail.cf. A typical
sendmail.cf is over a 1000 lines long -- a typical "mc" file
is less than 20.
<p> Under my Red Hat installation the sample "mc" files are located
in /usr/lib/sendmail-cf/cf/. You can put yours there, or
you might use /usr/local/lib/sendmail (and perhaps add a symlink
under the other path). This helps maintain the separation between
your local changes and the distribution's files "as shipped."
<p> I name my "mc" files after my hostnames -- so mine is "antares.mc."
It looks like this:
<pre>
divert(-1)
include(`../m4/cf.m4')
VERSIONID(`@(#)antares.uucp.mc .9 (JTD) 8/11/95')
OSTYPE(`linux')
FEATURE(nodns)
FEATURE(nocanonify)
FEATURE(mailertable)
FEATURE(local_procmail)
FEATURE(allmasquerade)
FEATURE(always_add_domain)
FEATURE(masquerade_envelope)
MAILER(local)
MAILER(smtp)
MAILER(uucp)
MASQUERADE_AS(starshine.org)
SITECONFIG(uucp.antares, starshine.org, U)
define(`UUCP_RELAY', a2i)
define(`UUCPNAME', starshine)
define(`UUCPNODES', a2i)
define(`RELAY_HOST', a2i)
define(`RELAY_MAILER',uucp)
define(`SMART_HOST', uucp-dom:mailer)
define(`PSEUDONYMS', starshine|antares|antares.starshine.org|starshine.org)
undefine(`BITNET_RELAY')
</pre>
<p> I've seen some of these that end each line with a 'dnl' --
which is a macro to "do newline" -- I don't bother with that.
<p> You'll want to ignore all the UUCP references and my
SITECONFIG line (mine is also a UUCP reference -- so yours
will be different -- preserve whatever is in the samples that
mathc your current configuration).
<p> What your interested in here is the various "masquerade" lines.
Now you'd just 'cd' to the directory where you've created this
"mc" file and issue a command like:
<pre> m4 < $MYFILE > /etc/sendmail.cf
</pre>
<p> (where you replace $MYFILE with whatever you named your "mc"
file, of course).
<p> It's also possible to to simply add a line like:
<pre>DMisp.com</pre>
<p> ... directly to your /etc/sendmail.cf.
DM "defines masquerading" to be for "isp.com" (from your
earlier example). This is easier, on the one hand --
but learning the m4 configuration method will serve you
well if you ever have to do upgrades to your sendmail --
and it's a valuable skill if you ever have to administer
Unix systems as (or as part of) your work.
<p> There are a variety of HOWTO's on configuring your mail
to work well with your ISP. I don't have my PPP connection
up at the moment -- but you should search the SSC web site
(http://www.ssc.com) for the the HOWTO archive and look for
the strings "ISP" and "mail."
<p>
--
Jim
<p><hr><p>
<!--================================================================-->
<a name="server"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Linux PPP Server
</h3>
<P> <B>
Date: Sun, 10 Aug 1997 05:34:45 -0700<br>
From: <a href="mailto:sengir@ozemail.com.au">sengir@ozemail.com.au</a>
</B><p><B>I have a Linux PPP server but I can not get my Windows95
client to do the "automatic" login. Sure, I can get it
all to work if I check "bring up terminal window after connecting".
</B><p><B>All I have is the login: prompt, followed by the Password: prompt
then right into PPP.
</B><p><B>What gives ?
</B><p><B>TIA<br>
-Rob
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
Here's a URL that talks about getting Linux
mgetty to work with Microsoft's infamous "AutoPPP":
<p><a href="http://www.buoy.com/isp/mgetty.html">ISP Resources - mgetty info(AutoPPP)</A>
<p> For more general information about mgetty look at:
<a href="http://www.leo.org/~doering/mgetty/">Mgetty + Sendfax
Documentation Centre</a>
<p>--
Jim
<p><hr><p>
<!--================================================================-->
<a name="emulator"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Linux/Unix Emulator
</h3>
<P> <B>
Date: Sun, 10 Aug 1997 05:30:18 -0700<BR>
From: Jun Liu <a href="mailto:stefan@public.sta.net.cn">stefan@public.sta.net.cn</a>
</B><p><B>Hi, Dear James,
</B><p><B>First I'd like express my gratitude for your great work on the Linux
Gazette.
But for the Linux/Unix Emulator, I think you're somehow wrong. Actually
there do exist at least one such product as far as I know. When I was
staying in Japan, I've learned there're quite some people there use a
software called BOW (namely BSD on Windows ), which is a BSD emulator for
Windows. Check out <a href="http://www.ascii.co.jp/pb/superascii/bow">http://www.ascii.co.jp/superascii/bow</a> if you do know
Japanese. In short, this is a BSD kernel emulator for 4.4BSD-Lite based
BSD Unix program. It's said most BSD binaries (x86 certainly,character
mode applications only, no X, no debuggers like gdb) can be run
unmodified.
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
Actually, there has been quite a bit of work on supporting
Unix under NT. Cygnus Support (http://www.cygnus.com) has
made quite a bit of progress with their
<a href="http://www.cygnus.com/misc/gnu-win32/">GNU-Win32
Project</a>
</B><p><B> A couple of other sources worth noting are:
<a href="http://www.softway.com/OpenNT/20server.htm">OpenNT 2.0 Server Data
Sheet</a>
<a href="http://nentug.org/unix-to-nt/">UNIX to NT Resource Center</a>
</B><p><B> There was also a paper presented at the Anaheim USENIX
conference this year:
<ul>
<li>Title: Porting UNIX to Windows NT
<li>Author: David G. Korn
<li>Pages: 43-57
<li>Publisher: USENIX
<li>Proceedings: 1997 Annual Technical Conference
<li>Date: January 6-10, 1997
<li>Location: Anaheim, CA
<li>Institution: AT&T Labs-Research
</ul>
</B><p><B>The advantages are, you have the rich development environment from Unix,
and the nice( ? ) UI from Windows as well as lots of Windows applications
around all at the same time. It's said BOW Version 1.5 which is Windows95
compatible, is already published last year in May as a book and available
in Japanese bookstores,
priced at 9,800 yen with one floppy disk and one CD-ROM.
</B><p><B>Hope this can be helpful.
</B><p><B>Best regards.<br>
Stefan
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
Again, in the article to which you refer I was asking
what the original person was asking for. Many Unix packages
have been ported to NT, Windows '95, and DOS (emacs, perl,
awk, most of the simple commands like grep, cp, find, and
a couple of shells: Korn, bash) -- and it would certainly be
possible to host some binaries under (ELF, iBCS).
<p> At what point to NT become Unix?
<p>
--
Jim
<p><hr><p>
<!--================================================================-->
<a name="lilo"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
LILO Concerns
</h3>
<P> <B>
Date: Sun, 10 Aug 1997 03:50:35 -0700<br>
From: Tibs <a href="mailto:tjf1@acpub.duke.edu">tjf1@acpub.duke.edu</a><br>
</B><p><B>I have been looking all over for an answer to my linux question...nobody
seems able to help so I thought I'd ask you (liked the LG web stuff very
much). I am about to take the plunge and install linux but I am
concerned about how LILO will work on my system. I have two IDE drives
on my system. The first is 1 gig and I have DOS, Win95, etc. on it and
that's what I boot to. The second is divided into two 1.5 gig
partitions, and 1 500 meg partition. I planned on putting linux on that
last 500 meg partition.
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
First: you'll want to learn how to use paragraphs.
Break your question down into short steps so we can
read it (particularly when we're doing the reading at
3:30 in the morning after hacking all day)
<P><B><img align=bottom alt=" " src="../gx/ques.gif">
.... The problem is that in order for my computer to
recognize the full 3.5 gig capacity of the second hard drive, the hard
drive installation floppy (it's a Maxtor) installed something called
EZ-BIOS. So booting to DOS or Win95 now works and my BIOS recognizes all
3.5 gigs of the space. When I boot to a floppy I have to use the EZ-BIOS
"boot to a:" option otherwise I can only access the first partition on
the second drive. So when I install linux and add LILO, will LILO start
doing stuff after the EZ-BIOS stuff loads? If so then it is not a
problem but if LILO starts before EZ-BIOS does it's thing, then I don't
think I'll be able to access my 500 meg partition. And since that's
wherelinux would be, that would be a bit of a problem.
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
You're using an alternative master boot program which
will be incompatible with any other boot software.
<p> You should use LOADLIN and forget all about LILO.
<p> I've written about LOADLIN several times in this column --
so please look back through some of the pack issues for details.
<P><B><img align=bottom alt=" " src="../gx/ques.gif">
So I guess my question would be:
1. do you know anything about this EZ-BIOS stuff and it's compatibility
with linux (the Maxtor people aren't helping with linux questions)
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
The EZ-BIOS and the old Ontrack Disk Manager and similar
drivers were originally created to allow DOS to see larger
partitions (which they did by hooking into the BIOS Int 13H
disk access routines before DOS was loaded -- by replacing the
MBR). They have always been a bad idea.
<p> Now that DOS supports partitions larger than 32Mb these
programs have a different purpose -- to allow older
systems to see IDE drives that are larger than 512Mb.
The BIOS interface only supports a maximum of 1024 cylinders
of up to 64 sectors each. A typical drive is less than 16 heads.
This "geometry" gives a maximum of about 528Mb. It's possible
to "lie" to some BIOS' and double the number of heads -- or
even go up do 255 "virtual heads" -- the drive electronics will
simply translate for you.
<p> Essentially this is how SCSI and EIDE drives give you access to
larger disks (up to about 9Gb).
<p> Your other alternative is to get an EIDE controller and get
rid of the non-standard software (sofware which isn't supported
under OS that I know of, Linux, any Unix, FreeBSD, NT,
OS/2 or anything other than DOS).
<B><P><img align=bottom alt=" " src="../gx/ques.gif">
2. is there some workaround that would still let me use linux if EZ-BIOS
would be a problem (like using a boot floppy everytime I wanted to use
linux, or something like that)
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
You can probably just use LOADLIN. However you might have to
cook up some weird boot time parameters (you can store them
in the bathc file that invokes LOADLIN) to tell the kernel what
the drive geometry really is -- so it doesn't step on anything.
<p> Here are the two HOWTO documents you want to read:
<p><a href="http://sunsite.unc.edu/LDP/HOWTO/mini/Large-Disk">Large Disk
mini-HOWTO</a>
<p><a href="http://sunsite.unc.edu/LDP/HOWTO/mini/Loadlin+Win95">Loadlin+Win95
mini-HOWTO</a>
<p>--
Jim
<p><hr><p>
<!--================================================================-->
<a name="crypt"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Crypt
</h3>
<P> <B>
Date: Fri, 08 Aug 1997 20:47:11 -0700<br>
From: David Saccon, <a href="mailto:dasac@speed.it">dasac@speed.it</a><br>
</B><p><B>Hi; I'm a Linux enthusiast bla bla bla, compliments for the
good work, etc etc.
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
Well, charmed I'm sure!
<P><B><img align=bottom alt=" " src="../gx/ques.gif">
I don't know if an e-mail to this address is the right way to
ask you a question.
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
It isn't really -- but most of the readers of Linux
Gazette's "The Answer Guy" column haven't see the "tag@"
address that I currently prefer.
<P><B><img align=bottom alt=" " src="../gx/ques.gif">
Please feel free to get rid of this mail if it bugs you.
Anyway, my question is: where can I find an implementation of
the fine tool "crypt" for Linux ?
You know, "crypt <myfile >myfile.x password", and back to the
clear text the same way.
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
I'm not sure that the traditional Unix 'crypt' command is
all that "fine." I'd suggest that you obtain a copy of
PGP from one of the international sites that carry it.
<p> (Please don't obtain it from any of my "free" fellow
U.S. citizens -- since it would be illegal for them to
exercise this particular form of free speech at this time.
I'd like to apologize for the ludicrous attitude my government
takes with regards to cryptographic software -- feel free to
refer to the "Electronic Freedom Frontier" (http://www.eff.org)
for more information about that).
<P><B><img align=bottom alt=" " src="../gx/ques.gif">
I haunted the internet for days but couldn't find it.
I also tried something like this:
</B><pre><B>
include "stdio.h"
include "unistd.h"
void main(int argc, char ** argv )
{
puts(crypt(argv[1], argv[2]))
}
</B></pre><B>
but it doesn't work the same way.
</B><p><B>Help!<br>
Thank you<br>
Davide Saccon
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
There is a library function named "crypt" which is technically
a "hash" rather than a cryptographic function -- it's used to
compute the hash of a password for comparison to that which is
stored in the second field each entry in the /etc/passwd file.
<p> I've heard that the program named 'crypt' varies from one Unix
implementation to another. I think its currently not included
in many Linux distributions to the export (U.S. ITAR and related)
restrictions to which I alluded earlier. Since many of the
companies that produce these distributions are U.S. they would
have to ensure that their products were for "domestic use" only
if they were to include this on their CD's and in their FTP sites.
<p> Here are a few sites I picked off of Yahoo!
<a href="http://www.ifi.uio.no/pgp/FAQ.shtml">International PGP FAQ</a>
<a href="http://www.serve.com/nimrod/pgp.html">Guida Pratica a PGP</a>
Guida Pratica a PGP
<a href="http://www.ifi.uio.no/pgp/doc/g_pgp952.htm">PGP User's Guide (in
Italian -- 250K)</a>
<a href="http://www.agora.stm.it/N.Ferri/crypto.htm">The Crypto Chamber --
Italian</a>
<a href="ftp://ftp.ox.ac.uk/pub/crypto/cryptanalysis/cbw.tar.gz">Cryptographer's
WorkBench</a>.
<p> There are other strong cryptographic products available
internationally for other purposes. I think the new Linux
"TCFS" (transparent cryptographic filesystem) is being done
in Italy. TCFS is apparently similar to Matt Blaze's research
on CFS -- it allows a Linux admin to create filesystems that
are encrypted in such a away that users can have confidence that
no other user access their files. Given its design is should be
difficult even for the root user to compromise the cryptographic
integrity of any local user -- and it should be impractical for
remote systems.
<p> Here's some more links for that:
<a href="http://www.globenet.it/~ermmau/tcfs/">Transparent Cryptographic
File System Project Page</a>
<a href="http://mikonos.dia.unisa.it/tcfs">TCFS</a>
<a href="http://www.globenet.it/~ermmau/tcfs/tcfs-faq.html">TCFA FAQ
v1.7.7</a>
<p> Come to think of it STEL (a secure telnet) was also done in
Italy. Seems that a lot of work on cryptography is coming out
of your country. Obviously your government hasn't been
interferring in this work. If you'd like to look at the sources
for STEL I'd FTP over to ftp://idea.sec.dsi.unimi.it/cert-it/
<p> Another set of useful cryptographic resources are in Eric A.
Young's free implementation of Netscape's SSL (secure sockets
layer) specification and a set of related applications
(like ssltelnet and sslftp):
SSLeay: SSLeay and SSLapps FAQ
<a href="http://psych.psy.uq.oz.au/~ftp/Crypto/">SSLeay: SSLeayand SSLapps
FAQ</a>
<p> (This set of pages is an excellent resource for anyone that
wants to learn anything about SSL).
<p> Eric's work was instrumental in the development of the
Stronghold web server by C2 Software Inc. (http://www.c2.net)
(I recently published an interview with C2's founder, Sameer
Parekh, in Linux Journal, if your interested).
<p> And, of course, no discussion of Internet cryptography tools
would be complete without a mention of Tatu Ylongen's SSH
<a href="http://www.cs.hut.fi/ssh">ssh (Secure Shell)</a>
<a href="http://www.uni-karlsruhe.de/~ig25/ssh-faq/">ssh FAQ</a>
<p>--
Jim
<p><hr><p>
<!--================================================================-->
<a name="apache"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Apache 1.2.1
</h3>
<P> <B>
Date: Mon, 11 Aug 1997 13:53:14 -0700<br>
From: Alf Stockton <a href="mailto:stockton@acenet.co.za">stockton@acenet.co.za</a><br>
I am playing with Apache 1.2.1 and have it running well except that it
won't run cgi scripts.
If I give the full path in the command line of the browser the CGIs run
fine but the server cannot/does not run these CGIs when I expect it to.
Where can I turn for help? The Apache team don't appear too interested.
I suspect that one of my config files is wrong but don't know enough to
tell which.
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
I wouldn't necessarily say that the Apache team isn't
"interested." However, they far more interested in
providing the software than in answering questions about
it.
<p> It sounds like you don't have your "ScriptAlias" set up
correctly -- or you're trying to access a CGI script that
isn't stored in one of the proper "ScriptAlias" directories.
<p> Here are links to the relevant documentation pages at the
Apache site (http://www.apache.org):
<p> Apache: Configuration: ScriptAlias
<a href="http://www.apache.org/docs/mod/mod_alias.html#scriptalias">http://www.apache.org/docs/mod/mod_alias.html#scriptalias</a>
<P> Apache: FAQ: How do I enable CGI execution in directories
other than the ScriptAlias?
<a href="http://www.apache.org/docs/misc/FAQ.html#CGIoutsideScriptAlias">http://www.apache.org/docs/misc/FAQ.html#CGIoutsideScriptAlias</a>
<p> Another possibility is that you have built it with no CGI
support. Apache has many compile-time configuration options
-- include a large list of "modules" that can ben enabled or
disabled. However I'm sure that it would take some work to
build Apache with no CGI support -- so I think this possibility
is remote.
<p>--
Jim
<p><hr><p>
<!--================================================================-->
<a name="redhat"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Red Hat Questions
</h3>
<P> <B>
From: Brent Johnson <a href="mailto:brent@saturn.msstate.edu">brent@saturn.msstate.edu</a>
</B><p><B>So are you the answer guy and can you answer a very important question for
me?
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
I appear to have been dubbed "The Answer Guy" (it wasn't
a self-appointment -- but I did volunteer for it).
<p> I can certainly answer any question. Answering it correctly
and usefully are not as sure a bet -- but I'll try.
<P><B><img align=bottom alt=" " src="../gx/ques.gif">
I first heard about RedHat's Linux distribution about a year ago and there
was no way Slackware could compete to the easy installation procedure,
RPMS, and other great features included in RedHat.
</B><p><B>But, ever since I moved to RedHat Ive had a terrible gcc compiler problem.
This has happened to me on two different machines... on the first Id
assumed it was some memory problem (as in hardware), but now Im on a
totally different machine that has (or shouldnt have) any memory problem.
</B><p><B>Everytime I try and compile anything (Apache 1.2.1 for example)... it gets
to about the 3rd or 4th .c file, and it bombs out with the following
error:
</B><pre><B>gcc -c -Iregex -O2 -DLINUX=2 util_date.c
gcc -c -Iregex -O2 -DLINUX=2 util_snprintf.c
gcc: Internal compiler error: program cc1 got fatal signal 11
make: *** [util_snprintf.o] Error 1</B></pre><B>
</B><p><B>It happens at different times on different .c files when compiling
different things. Any help would be greatly appreciated... a Unix system
with a defective compiler or defective hardware is almost useless!
</B><p><B>- Brent
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
I notice that you haven't told me *which version* of Red Hat
you're working with. However I've used 3.03, 4.0, 4.1, and
4.2 -- and I think I remember playing with an earlier one before
3.03 and I never saw this behavior from gcc.
<p> I did get it from my original copy of minicom anytime I was
running in an extended video mode and trying to use the
dialer (and not when issuing the same dialing function as
a direct ATDT command from the terminal window). In this
case I suspect there was a bug in the ncurses calls being
made by minicom. In any event I switched to CKermit and
forgot all about it.
<p> In your case the signal 11 (SEGV) is probably not caused
by curses/ncurses calls.
<p> Do you have a swap partition or file? If so, have you tried
disabling it (possibly creating a new one temporarily)? If
you have a defect on the disk you could get a SEGV from some
piece of data/code that gets swapped out, read back in
(with errors) and subsequently used by the running process.
<p> If you don't have a swap partition or file you might just be
running out of RAM completely. gcc does use up quite a bit
of memory -- so I'd suggest at least 32Mb virtual memory
(RAM + swap) available when running it (you could certainly
ask the FSF for more specific recommendations -- this is
just my unsubstantiated and untested suggestion).
<p> When you installed, did you let Red Hat's install routine
perform thorough block checking while it was making filesystems?
If not, try re-installing and enabling that (in case you hit
some bad spots on your disk and you have corrupted gcc
binaries).
<p> This is extremely unlikely to be related to your distribution,
but you could try installing Slackware to see if its gcc
works on this system -- or you could try booting up in
single user mode and just run a few test "make's" from
a simple shell line (no emacs M-x shell mode, no X Windows,
no "integrated dev. environment" nothing else running).
<p> If you still get SEGV's then, you want to find some other
sort of memory intensive program to run as a test -- to see
what else will die. It may be worth extracting the RAM and
taking it to a good hardware tester -- and/or removing any
ethernet cards or unecessary adapters for other tests.
<p> These sorts of things can be very frustrating to track down
regardless of OS. If you have a copy of DOS and an old copy
of Norton Utilities (version 8 or later) you could boot that
up and run NDIAGS.EXE. There are several other diagnostics
packages that were available before it -- but NU is still my
personal favorite untill the Linux crowd does up a suite of
them. Unfortunately the results of any software diagnostics
package aren't definitive -- they can detect trouble -- but
they can't "prove" that there isn't any hardware problem.
<p> I suppose, for some systems, particularly some 386's and
386SX's, you might also try twiddling the CMOS "wait states"
settings. Those used to make a difference -- particularly
with earlier generations of "3-chip" SIMM's. Apparently
in the early attempts to use SIMM's with three chips
(two four bit chips and a parity bit chip) there were some
slight timing differences between the "signal settling"
characteristics -- so the parity bit wouldn't "settle"
before the system was trying to read the memory. This resulted
in parity errors if the systems were set for "zero wait states"
-- and was generally solved by changing the CMOS settings.
<p> (I've never heard of a Pentium system or any system using
72-pin SIMM's having these problems -- but that doesn't
mean it's not worth looking in your "advanced" CMOS and
trying some experiments therein).
<p> I hope some of this helps.
<p>
--
Jim
<p><hr><p>
<!--================================================================-->
<a name="internet"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
PPP and Internet MCI
</h3>
<P> <B>
From: Demosthenes <a href="mailto:radams@capaccess.org">radams@capaccess.org</a><br>
Subject: Re: PPP and InternetMCI
</B><p><B>Hey there, I've been reading through your column from August in the
Linux Gazette, and ran across the gentleman's question regarding GTE's
internet services.
</B><p><B>I'm trying to switch over to MCI from a local ISP, and I'm having some
of the oddest connection problems. I use PAP currently with my local
ISP, and MCI is supposed to use PAP/CHAP (one, the other, or both
:P). I beleive i have everything setup properly, as I don't get any
rejections from PAP/CHAP, but after a few seconds of modem activity
with the server, MCI just hangs up. I did misspell something before,
and got a PAP rejection, and I've got full debugging logs regarding
the connection, but I can't make much sense of them. I know the server
isn't asking for MS-CHAP (chap 80, vs chap 05). It looks like it dies
during the configuration. I'm not sure.
</B><p><B>Do you have any information regarding connecting to InternetMCI via
Linux? MCI tech support is clueless, and I can't even get someone that
knows how their own software works on the phone.
</B><p><B>Any help would be highly appreciated, and I'd be more than glad to
share my debugging logs if you think they will help.
</B><p><B>Thanks again!
</B><p><B>Russell Adams
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
My first impulse is to say "vote with your feet."
Fire off a polite, assertive, note to their VP of Customer
Service and go find a Linux/Unix friendly ISP with quality
tech support (and maybe spend a little more in the process).
<p> My provider isn't the cheapest -- and isn't even the friendliest
-- but they understand Unix and they provide quality service
(refusing to structure their rates to "compete" with an
unreasonable "quality of service" -- i.e. I get few busy signals).
<p> That bit of non-technical advice aside I'd ask:
What are your MTU and related parameters?
<p> You could send the logging output -- but it would probably
be as incomprehensible to me as it is to you. I've never
set up a PAP/CHAP system (yet). However I'll look at them
and suggest some experiments.
<p>
--
Jim
<p><hr><p>
<!--================================================================-->
<a name="auto"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Enabling Automounter on a Linux Notebook
</h3>
<P> <B>
From: Dennis Dai <a href="mailto:gqdai@intergate.bc.ca">gqdai@intergate.bc.ca</a><br>
</B><p><B>Hi, Jim
</B><p><B>I think I need to ask you for help. My problem is:
</B><p><B>Originally I have a 1.6G HD. Last month I bought a new one (3.2G) in
order to accommodate linux and NT. I placed the swap partition in the
very last part of the new harddisk (it seems that this is a bad idea,
isn't it?) which is hdc8 and initialized it without problem. After a
while, I made a new NTFS partition for NT which resides in front of the
swap partition (I installed NT system on one of my original HD's
partition which is hda7), then I moved some of my data on the new NTFS
partition. But after I booted up to linux, I realized that the swap
partition didn't initialized properly, so I issue a command like this:
</B><pre><B>mkswap /dev/hdc8</pre>
</B><P><B>And this was how I screwed up things. Actually the new NTFS partition
became hdc8, and the original swap partition became hdc9. Now I can't
access the new NTFS partition from NT!
</B><p><B>Immediately after I issued that command, I realized that I made a big
mistake so I issued a "free" command and it showed that the swap
partition (which is my NTFS partition) was not used.
</B><p><B>So I think I still have hope to retrieve the data on my NTFS partition.
I know they are still there, just I can't get them out.
</B><p><B>I posted this to linux newsgroups, and received some kind response that
suggested me to use linux fdisk to change the partition type to NT one.
But I did check that, it is still NTFS (actually HPFS under linux
fdisk). Others suggested me to zero out the first 512 byte of that
partition as part of the recovery, but since I am not quite familiar
with that I didn't dare to do that.
</B><p><B>So I hope you can get me out of the hole.
Thanks in advance.
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
Well, I haven't done regular data recovery for a few
years (since I left Symantec' Peter Norton Tech Support
Department). It's not something that I can do via e-mail
(or for free) -- and I don't know diddly about the internals
of NTFS (or HPFS or ext2fs for that matter).
<p> You best bet, of course, is to have recent backups from
which you can recover. I don't know why they were suggesting
that you blast the boot record (the first 512 bytes of a
partition is the "logical boot record" or "superblock" while
the first 512 bytes of a drive is the "master boot record"
or MBR). Perhaps they believe that NT will be able to
recover from this. If I was to do anything with the LBR
I'd go to a different machine, create a new NTFS partition
that was indentical in size and configuration to the one you
think you've damaged, and use a disk editor (or a Linux
dd command) to cut and paste that from the other machine onto
the allegedly damaged partition.
<p> Before doing much of that I'd suggest do a dump to tape
of the entire raw device (using 'dd'). This may allow you
to return to the current state of brokenness after you've
made unsuccessful attempts at repair.
<p> I don't recommend these procedures (disk surgery) unless
the data on that drive is very important to you (and otherwise
unreproducable) or you really like playing with hex editors.
<p> If it's of considerable financial value to you -- I'd suggested
making a dump tape, extracting the drive from the system and
sending it to a data recovery specialist.
<p>
--
Jim
<p><hr><p>
<!--================================================================-->
<a name="locks"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
X Locks Monitor
</h3>
<P> <B>
From: Gord Urquhart <a href="mailto:urquhart@Newbridge.COM">urquhart@Newbridge.COM</a><br>
</B><p><B>I have found when playing with my Xconfig I could get my monitor (MAG15)
to go into power saving state (with a resulting black monitor) when I
changed the pre and post sections of the horizontal scan line timings (I
can't remember the proper names of these), to certain values.
</B><p><B>gord u.
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
... and? ...
<p> You can also cause a monitor to permanently damage itself
if you play with those long (wrong) enough. This is well
known and noted in the XFree86 configuration file.
<p> So, what's the point of this message? Or is it just a
stray observation?
<p>
--
Jim
<p><hr><p>
<!--================================================================-->
<a name="pop"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Pop3d That Doesn't Use /etc/passwd
</h3>
<P> <B>
From: Benjamin Peikes <a href="mailto:benp@npsa.com">benp@npsa.com</a>
</B>
<p><B>Do you know if there is a pop3d that does not use /etc/passwd?
I want to set up mail only accounts for some people but in.pop3d
that I have uses /etc/passwd. I want to set up accounts that
sendmail knows how to deliver for but I don't want to put these
people in /etc/passwd because then I have to worry about all the
other services on the machine. Have you heard of some daemon that
will do this, or a set of packages that will do this type of seperate
user management? Thanks.
</B><p><B>Ben
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
Ultimately this issue of restricting specific classes
of users to specific services on a system is goes
way beyond the particular services you pick. PAM
(the pluggable authentication modules) is supposed
to solve this problem eventually. That is already
included with recent versions of the RedHat distributions
(and with recent Solaris releases). However it is
still evolving -- so few of us have any idea how to
"do it right." (A fact which leads to an understandable
lack of confidence in recommending it).
<p> So, getting back to the original question:
<p> What POP daemon supports a user/password
database that's distinct from the one used
by other Unix services (/etc/passwd)?
<p> I've heard the rumor that this can be done in qpopper
but I'd like to confirm that. So I go to Yahoo! and
issue the "+qpopper +account" search and get:
<p> There is:
<a href="http://www.hdshq.com/fixes/mail_patch/">http://www.hdshg.com/fixes/mail_patch/</a>
<p> ... which is supposed to be a patch to qpopper to
allow this. However I couldn't connect to and I
couldn't find any mirror of it even after several
hours of trying.
<p> I traversed a number of links searching on strings
like "+pop3 +passwd +passwd +separate" and various
permuations. This was the only firm reference I found.
<p> Another approach would be to create a custom chroot
environment. This isn't as hard as it sounds. The
hard part is making your binary statically linked or
including the necessary libraries. The other thing
you'll have to consider is whether you want the POP-only
accounts to use their own "virtual mail host" (requires
an IP alias or an additional interface) or whether you
your smtpd to run in the same chroot "jail" -- then
requiring any local account holders to also use
POP (perhaps using the fetchmail client to the
"localhost" target).
<p> Here are some of the links that have more information
on mail and POP in general.
<p><a href="http://www.harker.com/sendmail/sendmail-ref-body.html">
Harker's sendmail References Page</a>
<p>Mr. Harker gives seminars and classes in sendmail
<p><a href="http://www.eudora.com/freeware/servers.html">
Free Servers from Eudora: Servers</a>
<p>Qualcomm, publishers of Eudora, also are the source
of qpopper.
<p><a href="ftp://rtfm.mit.edu/pub/usenet/comp.answers/mail/mailclient-faq">
POP/IMAP FAQ</a>
<p><a href="http://www.uwo.ca/its/ftp/pub/unix/security/passwd-suite/#Introduction">
Passwdd/Passwd -- An authentication Daemon/Client</a>
<p> This isn't mail related specfically -- but relates to
alternative authentication model -- a passwd daemon running
on a privileged TCP port via inetd. It shows examples for
supporting Eudora/APOP and using alternate passwd files.
<a href="ftp://ftp.obtuse.com/pub/smtpd">
/pub/smtpd directory -- Similar to TIS FWTK smapd</a>
<p> Running a simpler, perhaps unprivileged smtpd to toss
incoming mail into the queue is considered to be a good
idea -- for isolating sendmail (which is large, powerful,
complex, and has a long history of compromises).
<a href="http://www.qmail.org">http://www.qmail.org</a>
The qmail Page
<p> An alternative to running sendmail at all. I won't
get into this debate -- I'm just including it in this list
because I'll receive lots of unnecessary mail if I don't.
<a href="http://www.ics.uci.edu/~mh/">
MH Message Handler Home Page</a>
<p> The Rand MH is a particular mail user agent -- actually a
set of programs for working with mail from a shell command
line. There are several packages that provide full screen
interfaces to this -- including an emacs mode/package,
mh-e, which is what I use.
<a href="http://www.westnet.com/providers/">
Scripts and Patches for ISP's</a>
<a href="http://www.usenix.org/publications/library/proceedings/sec4/carson.html">4th UNIX SECURITY SYMPOSIUM</a> -- Sendmail w/o Superuser
<a href="http://www.oit.duke.edu/~mg/email/email.paper.html">
How to Get There From Here</a> -- Scaling e-mail to the enterprise
<a href="http://amelia.db.erau.edu/~andrew/server-linux/servers.html">
Linux: Server-Linux FAQ</a>
<p> I hope all of this helps.
<p>--
Jim
<p><hr><p>
<!--================================================================-->
<a name="notebook"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Configuration of Two Ethernet Cards
</h3>
<P> <B>
From: Carlos Gonzalez Andrade <a href="mailto:cglez@cfe.gob.mx">cglez@cfe.gob.mx</a><br>
Date: Mon, 11 Aug 1997 23:40:16 -0700
</B><p><B>Hi Jim.
</B><p><B>I have a question about some problems i have while I was seting up
2 ether cards.
</B><p><B>first . the device eth1 is not recognized when I add the line
append = <tt>ether=0,0,eth1</tt> into the lilo.conf.
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
You should consider putting the I/O base address, the
IRQ, and any DMA or memory address information into
this append clause in place of those zero's.
<p> You can test these by entering them at the LILO prompt
(interactively, during boot) before editing the /etc/lilo.conf
file.
<P><B><img align=bottom alt=" " src="../gx/ques.gif">
second . What files are necesary to set up to configure
two IP address for my machine and get runing my gateway?
</B><p><B>I will apreciate your answer
</B> <P>
<img align=bottom alt=" " src="../gx/ans2.gif">
This depends on which distribution you're using and
how closely you want to stick to their configuration
conventions. Minimally all you need is a script file
(typically located under /etc/rc.d/ and invoked by the
rc.local) with calls to the 'ifconfig,' and a 'route add'
command or two. Under Red Hat's SysV init system you'd
leave your rc.d files alone and edit some file under
your /etc/sysconfig/network-scripts/ directory (ifcfg-eth0,
and ifcfg-eth1 if I recall correctly -- it should be obvious
by browsing through those files).
<p>
--
Jim
<p><hr><p>
<!--================================================================-->
<a name="console"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Attaching a Console to a PC
</h3>
<P> <B>
To: Benjamin Peikes <a href="mailto:benp@npsa.com">benp@npsa.com</a><BR>
Date: Mon, 11 Aug 1997 23:14:37 -0700
</B><p><B>Jim,
</B><p><B>I'm not sure if you are the right person to ask but I figured you
would be a good place to start. I have a handful of PC's that I need
to be able to watch as they boot. What I would like to do is connect
a dumb terminal(old laptop) to a rs-232 switch box and then be able
to switch to any of the machines as I boot them. I was wondering if
you knew any way to do this. Thanks.
</B><p><B> Ben Peikes
</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">
It is possible to use a serial terminal as a console
for Linux -- given some patches. With some PC hardware
you'll have to leave the video card in their -- though
you don't need a monitor attached.
<p> Unfortunately I don't remember where I saw these patches.
I'd so a search on "+Linux +serial +console" (using the
Yahoo! convention of preceding "required" terms with
"plus" signs).
<p>--
Jim
<!--================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1997, James T. Dennis <BR>
Published in Issue 21 of the Linux Gazette September 1997</H5></center>
<P> <hr> <P>
<!--================================================================-->
<A HREF="./index.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_bytes21.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
<A HREF="./clue.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<html><ClueLess.html, a new user help document>
<center><h3>CLUELESS at the Prompt: A new column for new users</h3></p>
<P>by Mike List,
<a href="mailto:troll@net-link.net">troll@net-link.net</a></center>
<P><HR><P>
<body><center><IMG ALIGN=MIDDLE SRC = "../gx/list/gnub.jpg" ></center><p>
<h4>Welcome to installment 7 of Clueless at the Prompt:
a new column for new users.</h4>
<P><HR><P>
Well it's starting to happen.My learning curve is starting to settle down, and
if you have been following this column, yours is too, although depending on what
you want from Linux, you may have many more questions. At this point you
probably are feeling more comfortable using the online resources like the
comp.os.linux.??? newsgroups and some of the Linux pages that are hanging out
there for you to glean info from.</p>
Some of my regular stops are:
<ul>
<li> <a href="http://www.ch4549.org/lust">Linux Users Support Team</a>
<li> <a href="http://www.linuxnow.com/">Linuxnow.com</a>
<li> <a href="ftp://ftp.cdrom.com/pub/linux/">Walnut Creek ftp archive</a>
<li> <a href="ftp://sunsite.unc.edu/pub/Linux/">Sunsite ftp archive</a>
</ul><p>
If you use a browser the first time you visit the ftp sites you can get a good
feel for the directory breakdown, but if you want to download large files
ie. distributions, you should use the command line ftp, in my experience, it's
faster.<p>
Speaking of the command line ftp program, here are a few tips that can make
things go more quickly. You may already be familiar with some or all, but if
not, just type ...
<li><b>ftp [ftp.cdrom.com]</b> or whichever site you wish to visit. you will get a
prompt to give a username, most commonly<b> anonymous</b>, followed by one for
a password usually your e-mail address.
<li>If you have used a browser to check out these sites previously, you can <b>cd</b>
to the desired directory.If not,<b> cd pub</b> usually is a good start.
<li><b>ls</b> will show you whatis contained in that directory.If you are in a VC rather than an xterm, you can use the<b>SHIFT+PageUp</b> keys to scroll back, sinceyou will get a screenful or more of filenames that will just shoot by.This may or may not work in an xterm.
<li> If you want to download the files to a directory other than your current
directory,<b> lcd [directoryname] </b> will direct the downloads to that location.
<li><b>hash</b> will give you a display of<b>#</b> marks, one for each block rerieved,
usually 1024 bytes.You can use this to check the progress of your download.
<li> <b>bell</b> will send an audible signal when your file is finished downloading.
<li><b> get [filename]</b> will start your download,<b>mget</b> will retrieve everything
in the current directory if you have an empty directory of the same name in your
destination directory(the one you "cd'ed" to). You will be prompted for each
file as the previous one finishes loading.
<li>when you finish downloading, type <b>bye</b>. That will close the connection.
</ul><hr><p>
<b>Config, dot and .rc files</b>
<p>There are many ways that your linux programs can be altered to your liking, or just to make it work the way it should. Last time I gave an example of how to customize <b>FVWM</b>, but it hardly scratched the surface of all the things that can be done to make your linux environment truly yours.
<p> If you type: <b>ls -a</b>, you'll see several files that start with "<b>.</b>". These are typically configurable files that among other things, create aliases for shell commands, set environment variables, geometry of X applications, and other similar functions.
<p>Some of these "dotfiles"have eluded my attempts to alter them in the ways I'd like, but others have been extremely compliant. Some of the no-gos (for me)
include <b>.bashrc and .bash.profile</b>. I'm sure someone will e-mail me and tell me why my aliases don't work, even though I edited the file exactly as shown in the"Bible". Others like the aforementioned <b>.fvwmrc</b> have had extemely gratifying results.Maybe my colleagues at <b>"The Answer Guy"</b> and <b>"The Weekend Mechanic"</b> can shed alittle more light on the subject. In the meantime, backup your dot files before altering them, by <b>cp</b>'ing them to, say .foo.old to keep serious problems at bay, should your editing fail to yield the desired results.<p>
Some of the "dot files" you might want to take a look at for possible tailoring (depending on what you have installed)include your .bash.profile, your .bashrc, or .rc files for any shell you might use, .xinitrc, your window manager's .rc file, browser .rc and .bookmark files.<p>
If you have root privilege. there are many more you have access to but be careful - some files have their own ways of being altered for instance <b>crontabs -e</b> is the way to edit your crontab which has the capability of taking care of routine maintenance at off hours <b>upatedb</b> to create a database for the <b>find</b> and <b>locate</b> commands. Usually run in the wee hours of the morning, this could be configured to run at bootup or every 12 hours or at the end of a workday. This would assure that all of the current day's work would be easily located the next day. <p>
The <b>/etc/ppp/ip-up</b>and <b>ip-down</b> files can cause certain functions when a ppp connection is established. If you don't have one already, you can probably write one that will be noticed by the current software. The same goes for the <b>.bashrc</b> and <b>.bash_profile</b>, with the above caveat in mind.
<p>For the most part, the lines you need to enter or alter will be essentially the same as you would use at the command line, and sometimes it will be as easy as removing the <b>#</b> from the beginning of the line.
<hr>
<p> <b> Don't use a .bat! </b>
<p>One 'dot file that you can't edit to your liking, but could be useful just the same is <b>.bash_history</b>. If you <b>cat .bash_history | sort>[filename] </b>then <b>less filename</b>you will get an idea of what commands are used most often. You can then use this information to create shell scripts or aliases in your .bashrc or .bash.profile or other shell.rc files and save a few keystrokes.
<hr><p>
Keep those e-mails coming in, but just so you know, I don't run linux on a new pentium with all the bells and whistles and I don't know much about stuff I haven't used, so I might not be able to help you much with tape drives, CDroms, SCSI peripherals and the like. I'll do my best to point you in the right direction,but I use a 486/66 box with IDE drives and a floppy(3.5"), a vga monitor, a cirruslogic 5428 videocard, internal modem, and an 8bit soundblaster card.I mention this, not to beg for new hardware (although...), but to give you some kind of idea what kind of hardware questions I might be of help with.<p><hr>
I invite questions, suggestions, reasonable criticism and just plain e-mail: <center><a href="mailto:troll@net-link.net">troll@net-link.net</a><p> <b>See you next month!</b></center>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1997, Mike List<BR>
Published in Issue 21 of the Linux Gazette, September 1997</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./lg_answer21.html"><IMG SRC="../gx/back2.gif"
ALT=" Back"></A>
<A HREF="./ext2.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>
<H2>A Non-Technical Look Inside the EXT2 File System</H2>
<H4>By Randy Appleton,
<a href="mailto:randy@euclid.nmu.edu">randy@euclid.nmu.edu</a></H4>
</center>
<P><HR><P>
<H2>Introduction</H2>
<P>Everyone wants a fast computer. However, not everyone realizes that
one of the most important factors of computer performance is the speed
of the file system. Regardless of how fast your CPU is, if the file
system is slow then the whole computer will also seem slow. Many people
with very fast Pentium Pro's but slow disk drives and slower networked
file systems rediscover this fact daily.</P>
<P>Luckily, Linux has a very fast file system called the <B>Extended File
System Version 2 (EXT2)</B>. The EXT2 file system was created by Remy Card
(card@masi.ibp.fr). This article will show you how the EXT2 file system
is organized on disk and how it gets it's speed.</P>
<H2>Disk Layout</H2>
<H3>Goals</H3>
<P>There are several objectives when deciding how to lay data out upon
a disk. </P>
<P>First and foremost, the data structure should be <B>recoverable</B>.
This means that if there is some error while writing data to the disk (like
a silly user pulling the power cord) the entire file system is not lost.
Although loosing the data currently being written is often acceptable,
loosing all the data on the disk is not. </P>
<P>Secondly, the data structure must allow for an <B>efficent implementation</B>
of all needed operations. The hardest operation to implement is normally
the hard link. When using a hard link, there are more than one directory
entry (more than one file name) that points to the same file data. Accessing
the data by any of the valid file names should produce the same data. </P>
<P>Another hard operation involves deleting an open file. If some application
has a file open for access, and a user deletes the file, the application
should still be able to access the file's data. The data can be cleared
off the disk only when the last application closes the file. This behavior
is quite unlike DOS/Windows, where deleting a file means that applications
who have already begun to access the file loose all further access. Applications
that use this UNIX behavior concerning deleted files are more common than
one might think, and changing it would break many applications.</P>
<P>Thirdly, a disk layout should minimize seek times by <B>clustering</B>
data on disk. A drive needs more time to read two pieces of data that are
widely seperated on the disk than the same sized pieces near each other.
A good disk layout can minimize disk seek time (and maximize performance)
by clustering related data close together. For example, parts of the same
file should be close together on disk, and also near the directory containing
the file's name.</P>
<P>Finally, the disk layout should <B>conserve disk space</B>. Consurving
disk space was more important in the past, when hard drives were small
and expensive. These days, consurving disk space is not so important. However,
one should not waste disk space unnecessarily.</P>
<H3>Partitions</H3>
<P>Partitions are the first level of disk layout. Each disk
must have one or more partitions. The operating system pretends each partition
is a seperate logical disk, even though they may share the same phyical
disk. The most common use of partitioning is allow more than one file system
to exist on the same physical disk, each in its own partition. Each partition
has its own device file in the <TT>/dev</TT> directory (e.g. <TT>/dev/hda1,
/dev/hda2</TT>, etc.). Every EXT2 file system occupies one partition, and
fills the whole partition.</P>
<H3>Groups</H3>
<P>The EXT2 file system is divided into <B>groups</B>, which
are just sections of a partition. The division into groups is done when
the file system is formatted, and cannot change without reformatting. Each
group contains related data, and is the unit of clustering in the EXT2
file system. Each group contains a <B>superblock, </B>a<B> group descriptor</B>,
a<B> block bitmap</B>, an<B> inode bitmap</B>, an <B>inode table</B>, and
finally <B>data blocks</B>, all in that order.</P>
<H3>Superblock</H3>
<P>Some information about a file system belongs to the file
system as a whole, and not to any particular file or group. This information
includes the total number of blocks within the file system, the time it
was last checked for errors, and so on. Such information is stored in the
<B>superblock</B>.</P>
<P>The first superblock is the most important one, since
that is the one read when the file system is mounted. The information in
the superblock is so important that the file system cannot even be mounted
without it. If there were to be a disk error while updating the superblock,
the entire file system would be ruined. Therefore, a copy of the superblock
is kept in each group. If the first superblock becomes corrupted, the redundent
copies can be used to fix the error by using the command <TT>e2fsck</TT>.</P>
<H3>Group Descriptors and Bitmaps</H3>
<P>The next block of each group is the <B>group descriptor</B>.
The group descriptor stores information on each group. Within each group
descriptor is a pointer to the table of inodes (more on inodes in a moment)
and <B>allocation bitmaps</B> for inodes and data blocks. </P>
<P>An allocation bitmap is simply a list of bits describing
which blocks or inodes are in use. For example, data block number 123 is
in use if bit number 123 in the data bitmap is set. Using the data and
inode bitmaps, the file system can determine which blocks and inodes are
in current use and which are available for future use.</P>
<H3>Inodes and Such</H3>
<P>Each file on disk is associated with exactly one <B>inode</B>.
The inode stores important information about the file including the create
and modify times, the permissions on the file, and the owner of the file.
Also stored is the type of file (regular file, directory, device file like
/<TT>dev/ttyS1</TT>, etc) and where the file is stored on disk. </P>
<P>The data in the file is not stored in the inode itself.
Instead, the inode points to the location of the data on disk. There are
fifteen pointers to data blocks within each inode. However, this does not
mean that a file can only be fifteen blocks long. Instead, a file can be
millions of blocks long, thanks to the indirect way that data pointers
point to data.</P>
<P>The first thirteen pointers point directly to blocks containing
file data. If the file is thirteen or fewer blocks long, then the file's
data is pointed to directly by pointers within each inode, and can be accessed
quickly. The fourteenth pointer is called the indirect pointer, and points
to a block of pointers, each one of which points to data on the disk. The
fifteenth pointer is called the doubly indirect pointer, and points at
a block containing many pointers to blocks each of which points at data
on the disk. Perhaps the picture below will make things clear.</P>
<CENTER><P><IMG SRC="./gx/ext/layout.gif" HEIGHT=216 WIDTH=489><BR>
Figure showing the pointers between an inode and it's associated
data.</P></CENTER>
<P>This scheme allows direct access to all the data of small files (files
less than fourteen blocks long) and still allows for very large files with
only a few extra accesses. As the table below shows, almost all files are
actually quite small. Therefore, almost all files can be accessed quickly
with this scheme.</P>
<CENTER><TABLE BORDER=1 CELLSPACING=0 CELLPADDING=0 >
<TR>
<TD>File Size (bytes)</TD>
<TD>0-768</TD>
<TD>769-1.5K</TD>
<TD>1.5K - 3K</TD>
<TD>3K - 6K</TD>
<TD>6K-12K</TD>
<TD>12K and up</TD>
</TR>
<TR>
<TD>Occurence (%)</TD>
<TD>38.3</TD>
<TD>19.8</TD>
<TD>14.2</TD>
<TD>9.4</TD>
<TD>7.1</TD>
<TD>10.1</TD>
</TR>
<TR>
<TD>Cumulative (%)</TD>
<TD>38.3</TD>
<TD>58.1</TD>
<TD>72.3</TD>
<TD>81.7</TD>
<TD>89.8</TD>
<TD>99.9</TD>
</TR>
</TABLE></CENTER>
<CENTER><P>Table showing occurence of various file sizes.</P></CENTER>
<P>Inodes are stored in the inode table, which is at a location pointed
to by the group descriptor within each group. The location and size of
the inode table is set at format time, and cannot be changed without reformatting.
This means that the maximum number of files in the file system is also
fixed at format time. However, each time you format the file system you
can set the maximum number of inodes with the <TT>-i </TT>option to <TT>mke2fs</TT>.</P>
<H3>Directorie></H3>
<P>No one would like a file system where files were accessed
by inode number. Instead, people want to give textual names to files. Directories
associate these textual names with the inode numbers used internally by
the file system. Most people don't realize that directories are just files
where the data is in a special directory format. In fact, on some older
UNIXs you could run editors on the directories, just to see what they looked
like internally (imagine running <TT>vi /tmp</TT>). </P>
<P>Each directory is a list of directory entries. Each directory
entry associates one file name with one inode number, and consists of the
inode number, the length of the file name, and the actual text of the file
name. </P>
<P>The root directory is always stored in inode number two,
so that the file system code can find it at mount time. Subdirectories
are implemented by storing the name of the subdirectory in the name field,
and the inode number of the subdirectory in the inode field. Hard links
are implemented by storing the same inode number with more than one file
name. Accessing the file by either name results in the same inode number,
and therefore the same data.</P>
<P>The special directories "." and ".."
are implemented by storing the names "." and ".." in
the directory, and the inode number of the current and parent directories
in the inode field. The only special treatment these two entries recieve
is that they are automatically created when any new directory is made,
and they cannot be deleted.</P>
<H2>The File System in Action</H2>
<P>The easiest way to understand the EXT2 file system is to watch it in
action.</P>
<H3>Accessing a file</H3>
<P>To explain the EXT2 file system in action, we will need
two things: a variable that holds directories named DIR, and a path
name to look up. Some path names have many components (e.g. <TT>/usr/X11/bin/Xrefresh</TT>) and
others do not (e.g. /<TT>vmlinuz</TT>).</P>
<P>Assume that some process wants to open a file. Each process
will have associated with it a current working directory. All file names
that do not start with "/" are resolved relative to this current
working directory and DIR starts at the current working directory.
File names that start with "/" are resolved relative to the root
directory (see <TT>chroot</TT> for the one exception), and DIR starts
at the root directory.</P>
<P>Each directory name in the path to be resolved is looked
up in DIR as it's turn comes. This lookup yields the inode number of the
subdirectory we're interested in.</P>
<P>Next the inode of the subdirectory is accessed . The permissions
are checked, and if you have access permissions, then this new directory
becomes DIR. Each subdirectory in the path is treated the same way, until
only the last component of the path remains. </P>
<P>When the last component of the pathname is reached, the
variable DIR contains the directory that actually holds the file name
we've been looking for. Looking in DIR tells us the inode number of the
file. Accessing this final inode tells where the data for the file is stored.
After checking permissions, you can access the data.</P>
<P>How many disk accesses were needed to access the data
you wanted? A reasonable maximum is two per subdirectory (one to look up
the name, the other to find the inode) and then two more for the actual
file name itself. This effort is only done at file open time. After a file
has been opened, subsequent accesses can use the inode's data without looking
it up again. Further, <B>caching </B>eliminates many of the accesses needed
to look up a file (more later).</P>
<CENTER><TABLE BORDER=1 CELLSPACING=0 CELLPADDING=0 >
<TR>
<TD>
<PRE>Put the starting directory in DIR.
Put the pathname in PATH.
While (PATH has one than one component)
Take one component off PATH.
Find that component in DIR yielding the INODE.
If (permissions on INODE are not OK)
Return ERROR
Set DIR = INODE
End-While
Take the last component off PATH yielding FILENAME.
Find FILENAME in DIR yielding INODE.
If (permission on INODE are not OK)
Return ERROR
Store INODE with the process for quick later lookup.
Return SUCCESS.</PRE>
</TD>
</TR>
</TABLE></CENTER>
<CENTER><P>Pseudo-code for opening a file.</P></CENTER>
<H3>Allocating New Data</H3>
<P>When a new file or directory is created, the EXT2 file
system must decide where to store the data. If the disk is mostly empty,
then data can be stored almost anywhere. However, performance is maximized
if the data is clustered with other related data to minimize seek times.</P>
<P>The EXT2 file system attempts to allocate each new directory
in the group containing it's parent directory, on the theory that accesses
to parent and children directories are likely to be closely related. The
EXT2 file system also attempts to place files in the same group as their
directory entries, because directory accesses often lead to file accesses.
However, if the group is full, then the new file or new directory is placed
in some other non-full group></P>
<P>The data blocks needed to store directories and files
can found by looking in the data allocation bitmap. Any needed space in
the inode table can be found by looking in the inode allocation bitmap.</P>
<H2>Caching</H2>
<P>Like most file systems, the EXT2 system relies very heavily on caching.
A <B>cache</B> is a part of RAM dedicated to holding file system data.
The cache holds directory information, inode information, and actual file
contents. Whenever an application (like a text editor or a compiler) tries
to look up a file name or requests file data, the EXT2 system first checks
the cache. If the answer can be found in the cache, then the request can
be answered very quickly indeed without using the disk. </P>
<P>The cache is filled with data from old requests. Therefore, if you request
data that you have never requested before, the data will not be in the
cache, and must be retrieved from disk. Luckily, most of the time most
people ask for data they have used before. These repeat requests are answered
quickly from the cache, saving the disk drive much effort while providing
the user quick access.</P>
<P>Of course, each computer has a limited amount of RAM available.
Most of that RAM is used for other things like running applications, leaving
perhaps 10% to 30% of total RAM available for the cache. When the
cache becomes full, the oldest unused data (least recently used data) is
thrown out. Only recently used data remains in the cache. </P>
<P>Since larger caches can hold more data, they also can satisfy a larger
number of requests. The figure below shows a typical curve of the total
cache size versus the percent of all requests that can be satisfied from
the cache. As you can see, using more RAM for caching increase the number
of requests answered from the cache, and therefore increase the apparent
speed of the file system.</P>
<CENTER><P><IMG SRC="./gx/ext/HitRate_vs_CacheSize.gif" HEIGHT=240 WIDTH=320 ALIGN=BOTTOM><BR>
Figure #1: A typical curve of total cache <BR>
size vs. the number of requests satisfied from the cache.</P></CENTER>
<H2>Conclusion</H2>
<P>It has been said that one should make things as simple as possible,
but no simpler. The EXT2 file system is rather more complex than most people
realize, but this complexity results in both the full set of UNIX operations
working correctly, and good performance. The code is robust and well tested,
and serves the Linux community well. We all owe a debt of thanks to M.
Card.</P>
<H2>Sources for More Information</H2>
<P>The data for the figures in this paper can all be found in my dissertation
<I>Improving File System Performance with Predictive Caching</I>. See the
URL <A HREF="http://euclid.nmu.edu/~randy">http://euclid.nmu.edu/~randy</A>
.</P>
<P>An excellent paper with more technical detail can be found at <A HREF="http://step.polymtl.ca/~ldd/ext2fs/ext2fs_toc.html">http://step.polymtl.ca/~ldd/ext2fs/ext2fs_toc.html</A>
.</P>
<P>Some performance data can be found at <A HREF="http://www.silkroad.com/linux-bm.html">http://www.silkroad.com/linux-bm.html</A>
.</P>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1997, Randy Appleton<BR>
Published in Issue 21 of the Linux Gazette, September 1997</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./clue.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./fvwm.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>
<H2>Fvwm Configuration in Different Environments using cpp</H2>
<H4>By Gerd Bavendiek,
<a href="mailto:bav@rw.sni.de">bav@rw.sni.de</a></H4>
</center>
<P><HR><P>
<h1>Do you use Linux at home ? In the office ? On a laptop ?
Do you use fvwm 2.xx or fvwm95 as your windowmanager ?</h1>
If yes, you should read on.
<p>
Perhaps you have read my article about <a
href="../issue20/laptop.html">Using a
Laptop in Different Environments</a>. There I described an
easy way to setup a Linux laptop to boot into different
network configurations. I mentioned that setting up a shell
variable called <code>PROFILE</code> is useful not only for
configuring the network but also the windowmanager.
<h2>Why should you do that ?</h2>
Your windowmanager needs to be configured quite different when you are
using it on a laptop with 600x420 pixel or on a 17"-monitor with
1024x768 pixel. This is a rather basic difference - there may be
others. Think of using your system in a network environment. There it
will be handy to have a taskbar labeled appropiate to <code>rlogin</code>-sessions.
After fiddling some time with patching different
fvwm configuration files on different machines I found this to be a
pain. A typical <code>.fvwm95rc</code> is about 900 lines. Keeping several of them
in sync is not the thing I like.
<h2>Generating ~/.fvwm95rc using cpp</h2>
My solution is simple: Use <code>cpp</code>, the C-preprocessor ! fvwm 2.xx as well
as fvwm95 are configured by a central file. fvwm95 is derived from
fvwm, so the basic idea applies to both. Let me show you the details
using fvwm95. I keep my fvwm95 configuration in the file <code>~/.fvwm95rc-cpp</code>.
<p>
You can use the system default setup in
<code>/etc/X11/fvwm95/system.fvwm2rc95</code> as starting point.
Look at this code fragment from my <code>.xinitrc</code> (For me, <code>.xsession</code> is
linked to <code>.xinitrc</code>):
<pre>
...
# I need the value of PROFILE for generating .fvwm95rc
# netenv contains an assignment like e.g. PROFILE=32
if [ -r /tmp/netenv ]; then
. /tmp/netenv
fi
# Now the actual .fvwm95rc is generated depending on the value of PROFILE
cpp -lang-c++ -D PROFILE=$PROFILE ~/.fvwm95rc-cpp ~/.fvwm95rc
exec fvwm95 # exec saves the extra memory for a no longer useful shell ...
...
</pre>
The shell variable <code>PROFILE</code> contains the information about the current
environment. The file <code>/tmp/netenv</code> is set up by <code>init</code> when going to run
level 2. I described this in the article mentioned above.
Obviously you need <code>cpp</code>, which comes either as an extra package or as
part of <code>gcc</code>. Yes, I know that there is a module <code>FvwmCpp</code> (which calls
<code>cpp</code>) - but I never managed to get it work.
<p>
One advantage of the old-fashioned style of configuration files is
that you can put comments in. <i>You really should do this !</i> All that
hidden dot files in your home directory make up your personal
environment (these files will never be touched by a system
update). Having comments will make it easier to maintain this
environment.<p>
<code>system.fvwm95rc</code> comes in shell style comment syntax (so does
fvwm). You can't feed this into <code>cpp</code>. I didn't like
traditional c-style comments in a configuration file, so I switched
all these comment lines
<pre>
# this is a useful comment
</pre>
into c++-style comments
<pre>
// this is a useful comment
</pre>
(hail emacs !). Calling <code>cpp</code> with
<pre>
-lang-c++
</pre>
tells <code>cpp</code> to preprocess c++-code. A hint for those, who are not
familiar with <code>cpp</code>: <code>cpp</code> strips off the comment lines of the input
file. You probably will get output with a lot of blank lines.
<h2>Examples how to use cpp-syntax</h2>
Now let us have a look inside my <a href="../issue21/fvwm95rc-cpp.html"><code>.fvwm95rc-cpp</code></a>.
Of course, everything herein is strongly a matter of personal taste.
<p>
I don't like to stress my eyes. So I hate small letters, I barely can
read them in the evening of a long day ... So my desktop has 4x2 pages.
Each page is assigned to one application (or a few). I use
<code><Alt><F1></code> to <code><F8></code> to
switch quickly between pages. Using the fabulous fvwm95 mini icons my
screen holds the <code>FvwmTaskBar</code> and on the right hand side a column
holding some icons. This way I can maximize the application window.
<p>
The <a href="./gx/fvwm/page-1.gif">screenshot</a> should make it clear.
<h3>Defining geometry</h3>
One important application is xemacs for me. So I define a mini button
in the <code>FvwmButtons</code> section like this:
<pre>
*MiniButtons - mini-edit.xpm Exec "Xemacs" /usr/bin/xemacs \
-geometry EMACS_GEO &
</pre>
<code>EMACS_GEO</code> is to be substituted by
<code>cpp</code>. I put all the <code>#define</code> in the
beginning of my <code>.fvwm95rc-cpp</code>. Basically it reads like this
<pre>
#if PROFILE == 30 || PROFILE == 31 || PROFILE == 32
#define EMACS_GEO 80x25+0+480
#else
#define EMACS_GEO 96x31+0+767
#endif
</pre>
Whenever I'm on my laptop, <code>PROFILE</code> equals 30, 31
oder 32 (at home, in the office, on customers site). The
LCD-Display has 600x420 pixel. My other systems have 17" monitors and
there I use 1024x768. The +0+480 or +0+767 pops up the xemacs window
on the leftmost page on the bottom row of my 4x2 desktop. But this is
true only when being on the very first page while clicking the
icon. I'm shure, this could be improved.
<p>
With defining
<pre>
Key F5 A M GotoPage 0 1
</pre>
I can conveniently switch to my xemacs window using <code><ALT><F5></code> without
leaving the keyboard.
<h3>Launching applications</h3>
Being at home or in the office, I have usually some <code>rlogin</code> sessions to
some well known machines. Being on a customers site I frequently have
to work with high availability configurations mostly consisting of two
machines. I call them always abba and bebe. See how this can be set
up (shortened for clarity):
<pre>
DestroyFunc "InitFunction"
#if PROFILE == 30
AddToFunc "InitFunction" \
"I" Exec xsetroot -solid turquoise4 -cursor_name top_left_arrow &
+ "I" Exec xconsole -font 6x10 -geometry XCONSOLE_GEO -sb -file /dev/xconsole &
+ "I" Exec rxvt -geometry 94x28+0+0 -fn DEF_FONT -ls -sb -vb \
-title TERMWIN_ID1 -n TERMWIN_ID1 -cr Yellow3 &
+ "I" Exec rxvt -geometry TERMWIN_GEO2 -fn DEF_FONT -ls -sb -vb \
-title TERMWIN_ID2 -n TERMWIN_ID2 -cr Red3 &
+ "I" Exec rxvt -geometry TERMWIN_GEO3 -fn DEF_FONT -ls -sb -vb \
-title TERMWIN_ID3 -n TERMWIN_ID3 -cr Magenta3 &
+ "I" Module FvwmButtons MiniButtons
+ "I" Module FvwmTaskBar
+ "I" Module FvwmAuto 700
+ "I" Module FvwmPager 0 0
#elif PROFILE == 10
...
#else
AddToFunc "InitFunction" \
...
...
+ "I" Exec rxvt -geometry 94x28+0+0 -fn DEF_FONT -ls -sb -vb \
-title TERMWIN_ID1 -n home -cr Yellow3 &
+ "I" Exec rxvt -geometry TERMWIN_GEO2 -fn DEF_FONT -ls -sb -vb \
-title TERMWIN_ID2 -n TERMWIN_ID2 -cr Red3 &
+ "I" Exec rxvt -geometry TERMWIN_GEO3 -fn DEF_FONT -ls -sb -vb \
-title TERMWIN_ID3 -n TERMWIN_ID3 -cr Magenta3 &
+ "I" Exec rxvt -geometry TERMWIN_GEO4 -fn DEF_FONT -ls -sb -vb \
-title TERMWIN_ID4 -n TERMWIN_ID4 -cr Green3 &
+ "I" Exec rxvt -geometry TERMWIN_GEO5 -fn DEF_FONT -ls -sb -vb \
-title TERMWIN_ID5 -n TERMWIN_ID5 -cr Blue3 &
...
...
#endif
</pre>
<p>
The terminal geometry und identifiers are defined as follows:
<p>
<pre>
#if PROFILE == 10
#define TERMWIN_ID1 bav@nana
#define TERMWIN_ID2 nana
#define TERMWIN_ID3 lulu
#elif PROFILE == 20
...
#elif PROFILE == 30
...#define TERMWIN_ID1 bav@lulu
#elif PROFILE == 31
...
#elif PROFILE == 32
#define TERMWIN_ID1 bav@lulu
#define TERMWIN_ID2 lulu
#define TERMWIN_ID3 abba
#define TERMWIN_ID4 bebe
#define TERMWIN_ID5 abba
#endif
</pre>
<h2>Conclusion</h2>
Screen geometry and network environment differ from one machine to
another. Everyone, who wants to have <b>one</b>
configuration file for his fvwm 2.xx or fvwm95 to reflect these
differences, should consider to use <code>cpp</code> as shown.
<p>
Perhaps you know, that <code>xrdb(1)</code> also can
make use of <code>cpp</code>. So
you can preprocess your <code>~/.Xdefaults</code> achieving the discussed advantages.
<p>
I hope you will find these ideas somehow useful !
<p>
Kind regards
<p>
Gerd
<hr>
<address><a href="mailto:bav@rw.sni.de">Gerd Bavendiek</a></address>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1997, Gerd Bavendiek<BR>
Published in Issue 21 of the Linux Gazette, September 1997</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./ext2.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./impress.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>
<H2> Impressions reading Peter H. Salus `A Quarter Century of UNIX' </H2>
<H4> By Leif Erlingsson <<a href="mailto:leif@lege.com">leif@lege.com</a>> </H4>
</center>
<P> <HR> <P>
I have been involved with Unix and the Internet since '88, and
with Linux since '95, but it isn't until reading Peter H.
Salus' `A Quarter Century of UNIX' during this summer vacation
that I see where Linux fits in into the last 25 years of
operating systems development.
<p>
Unix came about as a revolt against cumbersome propriety
operating systems shipped by the various hardware-vendors.
In contrast, Unix was developed by a handful of people. An
example of a "huge" software project in the development of
Unix is `awk'--developed by three people.
<p>
UNICS (original name) was developed at Bell Telephone
Laboratories in the Summer 1969 - Fall 1970. Ken Thompson was
the initiator and Dennis Ritchie and Rudd Canaday were active
contributors.
<br> The intent was to create a pleasant computing environment for
themselves. The hope was that others would like it also.
The basic notion at the Labs (in Dennis Ritchie's words as
quoted from the book),
<UL><p><DL>
was and is to hire people who generate their own
good ideas and carry them out....
</DL><p></UL>
The Bell Telephone Laboratories staff (BTL) were supposed to
discover or invent new things. There was always management
encouragement.
<p>
It turned out Unix was easy to use and understand when
compared to the competition. It was extremely compact. It
wasn't until much later that anything and everything the user
wanted was supplied (like vi, emacs, X, ksh, csh,... :-)).
<p>
The single most important factor behind Unix' popularity was
that in the beginning the source code was practically free.
Thus it was used in education and as a base for derivate
systems. The universities loved it. Later, when AT&T realized
that they had in Unix something of great value and tried to
capitalize on that, universities were forbidden to use the
source code in education. This motivated Andy Tanenbaum to write
MINIX, from whence Linus Torvalds got his inspiration to write a
kernel for his Intel 386, the kernel that later became Linux.
<p>
Bell Telephone Laboratories (50/50 owned by AT&T and Western
Electric Company) was, by the so called "consent decree" of
Jan 24, 1956 (entered into because of the Sherman Antitrust
Act and a complaint filed by the Department of Justice in
Jan 14, 1949), required to reveal what patents it held and
supply information about them to competitors. Also, the terms
of the decree required BTL to license to anyone at nominal fees.
So we have this "consent decree" to thank for the phenomenal
spread of Unix!
<p>
BTL had the following support policy:
<UL><p><DL>
no advertising
<br> no support
<br> no bug fixes
<br> payment in advance
</DL><p></UL>
This forced the users to band together, which resulted in
better and more responsive support than any vendor could have
managed. Also, an "us" (users) against "them" (vendors)
mentality formed, reinforced by actions taken by AT&T to
stifle "the Unix problem".
<p>
This is very important: Unix begat Internet!
<p>
For a long time no one in business took Unix seriously.
For AT&T it was just a legal problem. It was run on VAX'es,
but it took the Digital Equipment Corporation about a decade
to learn how to support a Unix system as opposed to a Virtual
Machine system because of the NIH syndrome. (NIH = Not
Invented Here.)
<p>
Does it sound like Linux or does it [sound like Linux] ? :-)
<p>
On 20 Nov 1974, the U.S. government filed a new antitrust
action against AT&T, Western Electric, and Bell Telephone
Labs. The settlement reached in 1984 dissolved Western
Electric, formed the "Baby Bells" and reorganized AT&T Bell
Laboratories into Bell Telephone Labs.
<p>
AT&T was now permitted to enter the hardware and software
computer business. AT&T sharply raised Unix license fees ...
<p>
One reaction was Richard M. Stallman's Free Software Foundation
with it's GNU (Gnu is Not Unix) project, that has given the
world a wealth of free versions of Unix systems programs.
Another is Keith Bostic's CSRG project to create a license
free version of Unix. Today, all free Unix clones except
Linux use the CSRG code, and all free Unix clones use the GNU
code, Linux included.
<p>
This is very important: Internet begat GNU and CSRG, and
therefore the free Unixes, Linux included. And Unix begat
Internet, so therefore,
<!-- in the biblical sense, -->
Unix begat
Linux. Also, as we all know, Linux is continually developed
on the Internet by a looseknit band of programmers from around
the world, each doing their little piece -- truly users banded
together!
<p>
So where do Microsoft and others fit into this picture?
DOS/Windows is just one of many systems sprung out of the
fountain of Truth -- though there is much debate as to how
much truth has rubbed off on them. :-)
<p>
There is a huge cultural barrier between the Unix camp and
the other guys. It took DEC a decade before the DEC Unix
Engineering Group was formed, and when it was, it was located
in a separate location from the rest of the company.
<p>
Salus tells the story in the book:
<br> there was a lot of animosity towards Unix up and down the
company at DEC. Armando Stettner relates how Dave Cutler,
one of DEC's engineering elite, at one point got two Unix
engineers, Armando Stettner himself and Bill Shannon, to
drive down to his office 20 minutes away to help him with,
Armando thinks it was, some SRI package on top of VMS.
They got there and Cutler was in his office. Armando and
Bill sat down at a terminal, and it just didn't do what
they expected it to do. Cutler asked them how it was, and
Armando replied that it didn't work. To this Cutler said
"Well, thank you very much" and they were dismissed.
Cutler then called their Senior Group Manager and chewed
him out and said Armando and Bill were sorry excuses for
engineers and he never wanted to see them in Spitbrook
(his office) again. Armando believes that Cutler's
disdain has been reflected in his work ever since.
Armando says:
<UL><p><DL>
Cutler was doing yet another OS based on a new
architecture called Prism, not Unix, during
Digital's internal RISC wars. Initially,
Cutler's OS wasn't portable, but was culturally
compatible with VMS. There is a lot of stuff
in NT that I think can be traced to Prism.
[Cutler went to work for Microsoft around 1983.]
</DL><p></UL>
<br>
<p>
To round this off I'd like to itemize a few general factors
for the success of Unix:
<UL><p><DL>
Simplicity
<p>
Small projects
<p>
No restrictions put on creativity
<p>
Freedom
<p>
Free source
<p>
Fun
<p>
Collect a lot of great ideas that are around plus
some original ideas and put them together in a very
interesting, powerful way.
<p>
Users supporting themselves
<p>
Internet
<p>
Portability
<p>
Universality
<p>
Stability -- i.e., the antithesis of the continuous
change needed to keep the DOS/Windows personal computer
market alive. System programs don't need to change.
Well designed OS's don't need fundamental changes.
No need to do Windows 95 this year, Windows 97 the next
and then NT. Just stick with what works!
<p>
"Us against them" -- thanks AT&T, DEC and Microsoft!
</DL><p></UL>
<br>
<p>
There must be a fundamental difference of thinking between
the free software camp and the other guys:
<p>
The first mind-set is to share in order to gain. The other
mind-set is hoarding out of fear that something is going to be
taken away. Out of the latter mind-set springs the correct
business-types managing their various copy-protected products,
while from the sharing win-win culture, where each person's
efforts becomes a multiplier toward a common goal, springs an
open and nonconformistic, somewhat anarchistic type of person.
The two often do not like or understand each other.
<p>
<br>
<p>
(This article is copyright Leif Erlingsson. As long as
this copyright notice is preserved, and any cuts clearly
marked as such, the author hereby gives his consent to
any and everybody to use this text.)
<p>
(The book `A Quarter Century of UNIX' is Copyright 1994 by
Addison-Wesley Publishing Company, Inc.)
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1997, Leif Erlingsson <BR>
Published in Issue 21 of the Linux Gazette, September 1997</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./fvwm.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./notebook.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>
<H2>Installing Linux on an IBM ThinkPad 365XD Notebook</H2>
<H4>By Sam Trenholme, <a href="mailto:set@reality.samiam.org">set@reality.samiam.org</a></H4>
</center>
<P><HR><P>
<p>My latest roadstop in the quest for the perfect affordable portable
computer stops with the IBM ThinkPad 365XD notebook. Hawked from Egghead
for only $1000, and with successful reports of sticking X on this thing
form the 'net, I proceeded to install Linux on this beast. The install
was one of the more difficult Linux installs I have had, with a number of
problems:
<h2>First problem:</h2>
<p>*Booting directly in to the RedHat install from the CD-ROM, the install
could not see the CD-ROM.
<p>The CD-ROM in a ThinkPad 365xd is a standard IDE CD-ROM. For unknown
reasons this CD-ROM was invisible when I booted into the install directly
from the CD-ROM. Making a RedHat install boot disk and booting from that
resolved the concern. The CD-ROM was visible, and I was able to install
normally.
<h2>Second problem 2:</h2>
<p>* RedHat crashed in the middle of the install.
<p>RedHat seems to do that sometimes, for very mysterious reasons. On the
first install, RedHat crashed. I had to go back to square one and
completely reinstalled. The second install of RedHat 4.2 went without
incident, resulting in a functional RedHat system.
<h2>Third problem:</h2>
<p>* After installing LILO, the ThinkPad refuses to boot from the
hard disk.
<p>After mutch futzing, I discovered that the BIOS refused to boot from the
hard disk if it saw more than one primary partition. I configured fdisk
thusly:
<p>I made one primary partition the Linux partition, then made the swap
partition the extended partition. I did this as follows:
<ul>
<li>I deleted all pre-existing partitions
<li>I added the main partition, making sure enough space was set aside for
swap. I used 'n' to create the new partition, and 'p' to indicate that
it was a primary partition.
<li>I then added an extended partition, having the extended partition take
up the rest of the hard disk--my swap space.
<li>I then added a logical partition, which was the swap space.
<li>I marked the primary partition as a Linux Native partition, and the
extended partition as an extended partition.
<li>I made the primary Linux partition bootable with the 'a' option.
<li>Finally, I wrote the partition table to disk.
</ul>
<p>My fdisk session went like this:
<pre>Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-789): 1
Last cylinder or +size or +sizeM or +sizeK ([1]-789): 741
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 2
First cylinder (742-789): 742
Last cylinder or +size or +sizeM or +sizeK ([742]-789): 789
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (742-789): 742
Last cylinder or +size or +sizeM or +sizeK ([742]-789): 789
Command (m for help): t
Partition number (1-5): 1
Hex code (type L to list codes): 83
Command (m for help): t
Partition number (1-5): 5
Hex code (type L to list codes): 82
Changed system type of partition 5 to 82 (Linux swap)
Command (m for help): a
Partition number (1-5): 1
Command (m for help): p
Disk /dev/hda: 32 heads, 63 sectors, 789 cylinders
Units = cylinders of 2016 * 512 bytes
Device Boot Begin Start End Blocks Id System
/dev/hda1 * 1 1 741 746896+ 83 Linux native
/dev/hda2 742 742 789 48384 5 Extended
/dev/hda5 742 742 789 48352+ 82 Linux swap
Command (m for help): w</pre>
<p>[It wrote the information to the hard disk, then exited.]
<p>When I installed LILO, I placed LILO on the boot sector of the first
(bootable) partition (/dev/hda1) instead of the master boot record
(/dev/hda).
<h2>Fourth Problem:</h2>
<p>* After installing X, as per the XF86 configurations on the Linux
ThinkPad survey, I was unable to start X. X would just cause the screen
to become blank.
<p>X has to be "Kicked in", so to speak, by hand. After X starts, hit Fn+F7
(the Fn and the F7 keys at te same time) to get the X display to function.
<h2>Fifth Problem:</h2>
<p>* After starting X, one can not exit X and return to a normal text
display.
<p>One can not leave X after entering it on the ThinkPad. The best
workaround this problem is to edit /etc/inittab to make the default
runlevel 5. This enables a mode where you can log in and log out without
leaving X, using a program known as xdm.
<p>In order to make the default runlevel 5, look for a line like this in
/etc/inittab:
<pre>id:3:initdefault:</pre>
<p>Change the line to look like this:
<pre>id:5:initdefault:</pre>
<p>Note the number 5 instead of 3.
<p>You may also wish to disable most of the virtual terminals in runlevel 5,
since you won't be using them [1]. There are a series of lines that look
like this in /etc/inittab:
<pre>
1:12345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
</pre>
<p>Change the lines to look like this:
<pre>1:12345:respawn:/sbin/mingetty tty1
2:234:respawn:/sbin/mingetty tty2
3:234:respawn:/sbin/mingetty tty3
4:234:respawn:/sbin/mingetty tty4
5:234:respawn:/sbin/mingetty tty5
6:234:respawn:/sbin/mingetty tty6
</pre>
<p>Note that most of the above lines no longer have a '5' in them. For
various reasons, it's a good idea to have an emergency virtual terminal.
Linux does (or, at least, used to do) funny things without at least one
virtual terminal.
<h2>Sixth problem:</h2>
<p>* I was unable to have the kernel see a parallel port zip drive
<p>The I/O base of the parallel port is at 0x3bc instead of 0x378. To have
Linux see a parallel zip drive on the ThinkPad 365xd:
<pre>insmod ppa.o ppa_base=0x3bc</pre>
<p>instead of simply:
<pre>insmod ppa.o</pre>
<p>Note that the I/O base of the parallel port was determined with the MSD
program on a MS-DOS boot disk.
<h2>Seventh problem:</h2>
<p>* After entering 'suspend mode' on the ThinkPad (Fn+F4), the system would
crash when I tired to exit from suspend mode.
<p>The kernel needs to be recompiled with APM support on the ThinkPad 365xd.
To do this, make sure the kernel source is installed on your system.
<p>You can install the kernel source from the RedHat CD, as in the following
example Linux session:
<pre>
[root@localhost /]# mount /mnt/cdrom
[root@localhost /]# cd /mnt/cdrom/RedHat/RPMS/
[root@localhost RPMS]# rpm --install kernel-source-2.0.30-2.i386.rpm
</pre>
<p>If you do not have a RedHat CD, do the procedure most appropriate for your
RedHat system to install the above RPM package.
<p>I then went to the directory /usr/src/linux, ran 'make menuconfig' and
went to 'Character Devices --->', then enabled 'Advanced Power
Management BIOS support' without enabling any of the other features
('Ignore USER SUSPEND', etc.).
<p>I then made a kernel image with 'make zImage' (and waited a while, hitting
the space bar every 5-10 minutes so the machine would not crash), and
copied the kernel image (located in the directory
'/usr/src/linux-2.0.30/arch/i386/boot' as the file 'zImage') over to
/boot.
<p>I then edited my /etc/lilo.conf so that the boot line which looked like
this:
<tt>image=/boot/vmlinuz</tt>
looked like this:
<tt>image=/boot/zImage</tt>
and re-ran Lilo thusly:
<tt>/sbin/lilo</tt>
<p>** Be very careful with changing Lilo. Doing things incrrectly can make
it difficult to re-enter Linux**
<p>Once I did all this, I had a functional Linux system on my ThinkPad 365xd,
which I am currently using to type this in (on the streets of Santa Cruz,
no less)
<p>Speaking of being on the streets, I find the DTSN display almost
unreadable in direct sunlight, and only somewhat readable in the shade on
a sunny day (fortunatly, the Pacific coast fog is strong tonight). I hear
that TFT displays are a lot better in this regard.
[1] The virtual terminals is something you can use to multitask in
text mode with Linux. To change virtual terminals, simply hit alt
and a function key between F1 and F6.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1997, Sam Trenholme<BR>
Published in Issue 21 of the Linux Gazette, September 1997</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./impress.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./ppp.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>
<H2>Adventures with PPP</H2>
<H4>By Larry Ayers,
<a href="mailto:layers@marktwain.net">layers@marktwain.net</a></H4>
</center>
<P><HR><P>
<center><h3>Introduction</h3></center>
<p>When I first began using Linux a couple of years ago, one of my goals was
to be able to go on-line. At that time I was constantly rebooting into OS/2
so I could use the internet and this OS schizophrenia was becoming tiresome.
<p>Eventually, after many chatscript iterations and minicom sessions I had a
dependable PPP setup. I thought my PPP troubles were over; as time passed my
command of the various <i>pppd</i> and <i>chat</i> options began to fade.
<p>This past month my local internet service provider sold its machines and
signed up with a large provider in Atlanta. When the accounts were switched
over suddenly I could no longer log in and life became a bit too
interesting...
<center><h3> Log-In Fashions Change</h3></center>
<p>A couple of years ago an ISP was happy just to have a set of working log-in
scripts which could be distributed to its Windows and Mac customers. At that
time most computer users were either hobbyists or professionals, and could be
counted on to know what to do with the script. As the internet surged in
popularity more and more customers appeared without much knowledge of basic
computer usage, and the help-desks and support personnel began to be swamped
with requests for set-up help. Naturally, the tendency was to move towards
simpler log-in set-ups, if possible without any script at all. As customer interest in
text-mode shell accounts waned, a log-in could be accomplished with little
more than the username and password. This (I was informed in an e-mail from
my provider) was our new log-in sequence: just the username and password.
<p>This sounded simple enough; all I had to do was delete the expect-send
sequence <kbd>selection: PPP</kbd> from the chat-script and all
would be well. Or so I thought: using this script led to a scrolling list of
errors on the console I set up to display all daemon and error messages. It
looked like the router I was attempting to connect to was first trying PAP
authentication, failing, then trying CHAP authentification, failing that as well;
the sequence would repeat until the router would hang up in disgust.
<p>Other variations of the chat-script I tried would result in a "serial line
not 8-bit clean" message. I talked with the technician who had set up the
local router and he claimed that neither PAP nor CHAP were in use; Win95
log-ins were working fine, so I was on my own.
<p>The next step was to try logging in with Minicom, just to see what the
actual log-in screen looked like. I connected and found the expected <kbd>Username:</kbd>
and <kbd>Password:</kbd> prompts. I logged in and a command prompt appeared, with
no sign of the typical PPP garbage characters. What now? I typed
<b>help</b> and a list of available commands scrolled by. I was logged in
to the Cisco router, evidently, and before long I found that I could telnet
anywhere I liked. I could run a <kbd>systat</kbd> command and see which other
users were logged in. The command <kbd>show hosts</kbd> provided a list of
hosts which I could connect to, and soon I was logged in at the main
WWW server in Atlanta! I'd never been logged in at an UltraSparc server
running Unix SysVR4 before, and it was great fun exploring the directory
structure and running real VI for the first time. I could run pine (and I
ended up with yet another e-mail address) and read news with the nn
newsreader.
<p>This was all quite diverting, but didn't address the PPP problem. So soon
I was back at the router's prompt. I tried typing <kbd>ppp</kbd> and the
indicative garbage characters appeared. This looked encouraging, so I added
this exchange to my chatscript and tried again. The <i>pppd</i> daemon was
satisfied this time, and I had what looked like a real PPP session.
Unfortunately, it turned out to be limited to the router and I could do
nothing with the connection. Another dead-end!
<center><h3>Back to OS/2</h3></center>
<p>At first I couldn't even log in with OS/2 when I revived an old installation and
tried to dial in. Deleting the entire log-in sequence in the dialer got me
online again, but even with debugging turned on I still couldn't determine
just when the username and password strings were being sent to the server.
<p>On-line once again, I was off to the newsgroups hoping to find advice.
<p>Eventually I came across a posting in <i>comp.os.linux.networking</i> which
contained a couple of intriguing statements. The first intimated that Win95
by default makes use of PAP authentification, but the user isn't necessarily
informed of the fact. Possibly the Netscape dialer which my ISP distributes
was using PAP as well, I thought. The second statement recommended using the
<i>pppd</i> option <kbd>+ua /etc/ppp/pap-secrets</kbd>. I had seen this
option while reading the <i>pppd</i> <kbd>/etc/ppp/options</kbd> file, but the manual
listed this option as being obsolete, so I'd never tried it.
<p>The posting's author recommended an unusual format for the
<kbd>pap-secrets</kbd> file, unlike the format recommended in the
documentation I'd been reading and unlike the sample included in my PPP
installation: just a simple two-line file, the first line containing the
username and the second displaying the password. No server or client names,
just the two words.
<center><h3>Success</h3></center>
<p>I was surprised and elated when this configuration worked the first time.
I had the chat-script simply dial the number and wait for the
<kbd>CONNECT</kbd> string. The server asked for PAP authentification and I
was online without even dealing with the username and password prompts, which
I suppose are only for the maintainers of the router.
<p>I'm writing this piece because I suspect that many other servers will
probably be adopting similar streamlined login procedures, and the approach
I've outlined here may prove useful in at least some of these cases. One
thing to remember is that directing the <kbd>pppd</kbd> debugging messages to
an unused virtual console is very helpful, most easily accomplished by
inserting the line:<br>
<p>
<kbd>*.* /dev/tty8</kbd><br>
<p>in your <tty>/etc/syslog.conf</tty> file.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1997, Larry Ayers<BR>
Published in Issue 21 of the Linux Gazette, September 1997</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./notebook.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./svgatext.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>
<H2>SVGATextMode</H2>
<H4>By Larry Ayers,
<a href="mailto:layers@marktwain.net">layers@marktwain.net</a></H4>
</center>
<center><h1>Fit More Text On Your Console Screen</h1></center>
<center><h3>Introduction</h3></center>
<p>This summer a new version of <b>SVGATextMode</b> was released, and
thinking that many Linux users might be unfamiliar with the package, I put
together this review as an introduction to a versatile and useful console
utility.
<p>Typically, Linux distributions use LILO as the boot loader, which refers to
the file <i>/etc/lilo.conf</i> for instructions. One of the lines in the file
is <kbd>vga = </kbd>, with either the number of a console video mode following
the "=", or the word <i>ask</i>. If "ask" is specified, the Linux boot
process is interrupted and you are asked which (EGA) video mode you prefer. An
option (thankfully!) is also provided allowing the user to peruse a menu of
available console video modes, which varies depending on the video chipset.
With my generic S3 Virge card, these modes are offered:
<ul>
<li>80x25
<li>80x50
<li>80x43
<li>80x28
<li>80x30
<li>80x34
<li>80x60
<li>132x25
<li>132x43
</ul>
<p>It's nice to have a choice of video modes (which determine the screen font
size) but these boot-time options just scratch the surface of what the newer video cards
and monitors offer. SVGATextMode is a utility which borrows some of the
techniques which the X-Window system uses to exploit the resources of your
video system and applies them to the console screen.
<center><h3>How It Works</h3></center>
<p>SVGATextMode actually reprograms the registers of your video card, allowing
many more modes than the preprogrammed modes available at boot-up. It borrows
some of the techniques used by XFree86 in order to make available more console
video modes. The modes provided by your video-card BIOS are EGA modes, and
they run at a low refresh-rate and dot-clock compared to those used by
X-windows.
<p>The program can be either started at boot-time from one of the init-files,
or at any time from the console prompt. When it starts a configuration file
(<kbd>/etc/TextConfig</kbd>) is parsed. The defaults are very conservative.
The file needs to be read and edited before any real advantage can be obtained
from the program. This is due to the vast differences in capability between
various video cards and monitors. As in X configuration, the correct values
for your monitor's horizontal and vertical refresh rates need to be entered in
the <b>TextConfig</b> file. If you've successfully configured X you shouldn't
have any problems with SVGATextMode.
<center><h3>Configuration and Use</h3></center>
<p>SVGATextMode is what I consider to be a "mature" package, in that it has
been under development long enough to have received contributions and bugfixes
from a worldwide community of users. Many video cards are supported, though I
don't think quite as many as XFree86 supports.
<p>In the default <kbd>/etc/TextConfig</kbd> file many of the lines are
high-resolution modes contributed by users. Once you have entered your video
chipset and monitor timings into the file, the command <kbd>SVGATextMode -n
[mode]</kbd> will let you know if your hardware can support the mode without
actually starting the program. Once you've found some promising modes just
eliminate the "-n" from the command and with any luck you'll have the new
text mode visible on your console screen. Possibly the screen will be
corrupted. Running the SVGAlib utility <b>savetextmode</b> before trying a
new mode, then if corruption appears <b>restoretextmode</b> afterwards ought
to allow recovery of your previous default text mode. It will take some
experimentation, but the package is very well documented and is worth the
trouble.
<p>There are some included modes with 160-character wide screens, which can be
very useful while running an editor which allows two 80-character pages to be
displayed side-by-side. Emacs can do this, and there is a LISP package
available called follow-mode which allows both pages to scroll relative to
each other.
<p>SVGATextMode doesn't just allow more characters to be displayed on the
screen. Even relatively low-resolution modes will look crisper and be easier
to read due to the higher refresh rates typically used. The most dramatic
advantages, naturally, are evident with newer, more powerful video-cards and
large monitors, but even with my middle-of-the-road equipment the utility is
well worth using.
<center><h3>Caveats</h3></center>
<p>If you use Dosemu from the console there can be problems. I have to reset
the text-mode to my old default 80x43 mode before starting Dosemu or I get
unrecoverable corruption requiring a reboot. I haven't had any problems
switching from a console session to X and back, but, just as with X-windows,
performance varies depending upon the video-card and monitor involved.
Read the documentation; it's very complete and a great help while getting
started.
<center><h3>Availability</h3></center>
<p>The source package (version 1.6) can be retrieved from the Sunsite archive site or one of
its mirrors, in this <a href="ftp://sunsite.unc.edu/pub/Linux/utils/console">directory</a>.
A binary package for Redhat systems is available
<a
href="ftp://sunsite.unc.edu/pub/Linux/distributions/redhat/contrib/i386/">here</a>,
and a Debian binary can be downloaded from
<a href="ftp://sunsite.unc.edu/pub/Linux/distributions/hamm/hamm/binary-i386/admin">
here</a>.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1997, Larry Ayers<BR>
Published in Issue 21 of the Linux Gazette, September 1997</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./ppp.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./icewm.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>
<H2>Yet Another Window Manager</H2>
<H4>By Larry Ayers,
<a href="mailto:layers@marktwain.net">layers@marktwain.net</a></H4>
</center>
<P><HR><P>
<center><h3>Introduction</h3></center>
<p>Marco Macek, a Slovenian computer-science student, has been developing a
quite powerful and configurable editor called FTE for the past couple of
years. FTE is a multi-platform folding editor, available for Linux, OS/2, DOS, and
Windows; I wrote a short review of an earlier beta in issue 7 of LG. Lately
Marco has turned his hand to developing a new window-manager. Unlike some
Linux projects, which are released to the FTP sites in the early stages of
development, the Ice window-manager seems to have been under development as a
non-public project throughout the early beta versions. It just showed up one
day in the Sunsite incoming directory in a remarkably complete and usable
form.
<h3><center>Differences and Features</center></h3>
<p>Lately window-managers seem to be proliferating, with offshoots and variants
of fvwm predominating. Icewm is in large part inspired by the OS/2 Workplace
Shell interface. Though OS/2 has been never gained the market acceptance its
adherents have hoped for, the Workplace Shell is a remarkably advanced
object-oriented GUI, and Macek has attempted to adapt some of its
"look-and-feel" to the Linux environment. Another influence is the common
Windows 95 interface, which does have some useful features worth emulating.
<p>Win95's bottom-of-the-screen icon bar , with its cascading menus and dynamic
window indicators, has been nicely reproduced in Icewm. The equivalent of
the "Start" menu (which functions much like Win95's) has a "Linux" label with
a penguin icon.<br>
<p>
<img alt="icewm bottom-bar" src="./gx/ayers/icebar.gif">
<p>The general appearance of the windows (borders, titlebars, et al) is very
reminiscent of OS/2. Various types of "X" kill buttons are available, but the
general appearance of the window-borders seems to be hard-coded; that is, not
configurable. Here's a screenshot of a typical window:<br>
<p>
<img alt="Icewm window" src="./gx/ayers/icewindow.gif">
<hr>
<p>I liked the cascading mouse button menus, with a different menu shown for
each mouse button. The Enlightenment window-manager has a similar feature.
These menus are hierarchical and behave like their OS/2 equivalents.<br>
<p>
<img alt="ice menu" src="./gx/ayers/icemenu.gif">
<hr>
<p>This window-manager really doesn't have such compellingly new features that
many long-time Fvwm2 or AfterStep users would want to adopt it, but for new Linux
users more familiar with Win95 or OS/2, the similarities might serve to ease
the transition. It compiled easily on my 2.0.30 system, and it seemed to be
stable and dependable.
<p>The source archive is available from
<a href="http://ixtas.fri.uni-lj.si/~markom/icewm/">the icewm home-page</a>, as well
as the sunsite FTP site. Icewm's home page also has Redhat RPM's of the source.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1997, Larry Ayers<BR>
Published in Issue 21 of the Linux Gazette, September 1997</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./svgatext.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./sshmake.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>
<H2>Remote Compilation Using SSH and Make</H2>
<H4>By John R. Daily,
<a href="mailto:jdaily@bbn.com">jdaily@bbn.com</a></H4>
</center>
<P><HR><P>
<H3>
Problem
</H3>
<P>
Occasionally I use my Linux machine at home to write code that I
intend to compile on a remote machine.
<P>
While maintaining open <TT>ftp</TT> and <TT>telnet</TT> connections to
the remote machine to handle the transfer and compilation steps is a
manageable solution, I decided to explore <TT><A
HREF="#ssh">ssh</A></TT> and <TT><A HREF="#make">make</A></TT> to
develop a more automated method.
<P>
The benefits of my solution:
<UL>
<LI> No need to remember which files have been modified.
<LI> Ability to use Emacs' compilation capabilities to move to errors in
the source. <LI> As mentioned above, no need to use <TT>ftp</TT>
and <TT>telnet</TT>, and hence no
benefit to keep an open dialup connection when not compiling.
<LI> Automate, automate, automate. Laziness is a virtue.
</UL>
<H3>
Overview of Solution
</H3>
<P>
My first step was to set up <TT>ssh</TT> and related tools in order to
allow
secure copying of files to my remote system. While setting up a
<TT>.rhosts</TT>
file is a (barely) acceptable solution, my IP address and name is
different each time I dial in, and it would be rather awkward to
change the remote system's <TT>.rhosts</TT> file each time I dialed
in.
<P>
<TT>ssh</TT> allows me to use a much more secure form of
authentication to copy
files and execute remote commands.
<P>
Once I had <TT>ssh</TT> behaving properly, I used Emacs' <TT>info</TT> facility to
explore implicit rules in makefiles, and wrote a simple makefile to
handle the file transfers and remote compilation.
<P>
As an example of the intended effect, assume my remote machine is
called "remote" (and my local machine "local"), and I've just modified
a source file called <TT>daemon.c</TT>. I would like to execute the
following commands in an automated fashion (note that <TT>scp</TT> is
a secure copy command packaged with <TT>ssh</TT>, and that the
<TT>-C</TT> option specifies compression, useful for dialup connections):
<PRE>
scp -C daemon.c jdaily@remote:~/source-directory
ssh -C remote "cd source-directory && make"
</PRE>
<H3>
Implementation
</H3>
<P>
First, I needed <TT>sshd</TT> running on the remote system to handle my secure
connections. Fortunately, <TT>sshd</TT> was already running on the remote
system in question, but according to the man pages, it can be run as
any user, and is restricted to handling connections for that user
(which should be quite sufficient for our needs).
<P>
Then, I needed to install the <TT>ssh</TT> toolset on my local machine. Again,
ideally these would be installed in a public binary directory such as
<TT>/usr/local/bin</TT>, but any user can install them in his/her
home directory.
<P>
I also wanted a key which would allow me to authenticate myself
between systems, and which would eliminate the need to type my
password each time I tried to run one of the <TT>ssh</TT> commands. For this, I
just ran <TT>ssh-keygen</TT>, and made sure to not give a pass
phrase, so that
none would be needed to use my private key to establish the
connection.
<PRE>
[jdaily@local ~]$ ssh-keygen
Initializing random number generator...
Generating p: ............++ (distance 186)
Generating q: ......................................++ (distance 498)
Computing the keys...
Testing the keys...
Key generation complete.
Enter file in which to save the key (/home/jdaily/.ssh/identity): <CR>
Enter passphrase: <CR>
Enter the same passphrase again: <CR>
Your identification has been saved in /home/jdaily/.ssh/identity.
Your public key is:
1024 35 718535638573954[...] jdaily@local
Your public key has been saved in /home/jdaily/.ssh/identity.pub
</PRE>
<P>
Once I had a public key, I used <TT>scp</TT> to copy it to the remote machine.
<PRE>
[jdaily@local ~]$ scp -C ~/.ssh/identity.pub jdaily@remote:~/.ssh/key
jdaily's password: <entered my remote password>
</PRE>
<P>
Then I logged into the remote host and copied the key file into
<TT>~/.ssh/authorized_hosts</TT>. If that file already existed, I
would have
appended the key file.
<P>
Following all this, I could run <TT>ssh</TT> and <TT>scp</TT> without needing either a
password or a pass phrase to connect to <TT>remote</TT>.
<P>
Now I needed a makefile to automate my system. Ideally, the files on
the remote machine would be checked to see if they were older than the
files on my local machine, and if so, they would be copied over. To
simplify matters, I decided to keep a record of the "last transferred
date" for each file by touching a corresponding file each time I
copied a source file over.
<P>
As an example, when I transferred a newer copy of <TT>daemon.c</TT>
over, I touched <TT>daemon.ct</TT> in the same directory. Any
transfer of a <TT>.h</TT> file would be marked by the creation of a
file with a <TT>.ht</TT> suffix.
<P>
After poking around the <TT>info</TT> file for <TT>make</TT>, I came
up with the following makefile.
<PRE>
TRANSFER=scp
REXEC=ssh
SSHFLAGS=-C # Compress data
REMOTE=jdaily@remote:~/source-directory
FILES=debug.ht messages.ht client.ct daemon.ct queue.ct queue.ht
%.ht : %.h
$(TRANSFER) $(SSHFLAGS) $< $(REMOTE)
touch $@
%.ct : %.c
$(TRANSFER) $(SSHFLAGS) $< $(REMOTE)
touch $@
all-done: $(FILES)
$(REXEC) $(SSHFLAGS) remote "cd source-directory && make"
touch all-done
</PRE>
<P>
This had one limitation in particular; I was unable to specify
command-line arguments for <TT>make</TT> on the remote machine without writing
them directly into the makefile on my local system. While this was
fine for the current application, I decided to generalize it by
creating a <TT>run-make</TT> shell script, which would handle the remote
execution of make after calling make on the local system.
<P>
Here is my <TT>run-make</TT> shell script:
<PRE>
#!/bin/sh
make
echo ssh -C remote \"cd source-directory \&\& make $*\"
ssh -C remote "cd source-directory && make $*"
</PRE>
<P>
I then removed the line from my makefile which remotely ran <TT>make</TT>.
<P>
Here's the output from a successful compilation sequence.
<PRE>
cd ~/source-directory/
./run-make
scp -C debug.h jdaily@remote:~/source-directory
touch debug.ht
scp -C messages.h jdaily@remote:~/source-directory
touch messages.ht
scp -C client.c jdaily@remote:~/source-directory
touch client.ct
scp -C daemon.c jdaily@remote:~/source-directory
touch daemon.ct
scp -C queue.c jdaily@remote:~/source-directory
touch queue.ct
scp -C queue.h jdaily@remote:~/source-directory
touch queue.ht
touch all-done
ssh -C remote "cd source-directory && make "
gcc -Wall -Wstrict-prototypes -Wmissing-prototypes -g -c queue.c
gcc -Wall -Wstrict-prototypes -Wmissing-prototypes -g -DPORT=3000 -o daemon daemon.c queue.o -lsocket -lthread
gcc -Wall -Wstrict-prototypes -Wmissing-prototypes -g -DPORT=3000 -o client client.c -lsocket
Compilation finished at Sat Aug 9 01:22:19
</PRE>
<H3>
Tools
</H3>
<A NAME="ssh">
<TT>ssh</TT> is a secure replacement for such tools as <TT>rsh</TT>,
<TT>rlogin</TT>, and <TT>rcp</TT>. It can be found at
<A HREF="http://www.ssh.fi">http://www.ssh.fi</A>.
<P>
<A NAME="make">
<TT>make</TT> is a standard Unix utility. GNU's <TT>make</TT> comes with most, if not
all, Linux distributions.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1997, John R. Daily<BR>
Published in Issue 21 of the Linux Gazette, September 1997</H5></center>
<center>
<H2>Spare Cycles Needed for Promoting Linux</H2>
<H4>By Bill Duncan,
<a href="mailto:bduncan@teamlinux.org">bduncan@teamlinux.org</a></H4>
</center>
<P><HR><P>
Ever wish you could do more to promote Linux and yet you never seem to
have enough time? Now for a few pennies worth of electricity per day you
can put your Linux machine to work promoting Linux!
<P>
There are a number of distributed computing projects in progress or being
organized, and Linux Advocacy teams are one method available to us which
can help raise the visibility of Linux.
What I'd like to describe in this article is one such effort
<!-- which we are involved in, -->
called the
<A HREF="http://www.rsa.com/rsalabs/97challenge/">RSA Data Security
Secret-Key Challenge</A>.
<P>
This article will describe
<A HREF="#WHAT"> what the project is</A>;
<A HREF="#WHY"> why we are doing this and
how it might benefit Linux</A> and
<A HREF="#HOW"> how to get started</A>.
There is also a section on
<A HREF="#WHO"> who is involved</A>;
<A HREF="#LINKS"> other links for further information</A> and
<A HREF="#WHEN"> when to get involved</A>
at the end.
<!-- ------------------------------------- not enuf time to do this...
There is also an FAQ and Glossary
in a section at the end.
-------------------------------------
-->
<A NAME="WHAT">
<P><HR NOSHADE SIZE=2><P><!-- ---------------------------------------------- -->
<H2>What?</H2></A>
<P><HR NOSHADE SIZE=2><P>
The
<A HREF="http://www.rsa.com/rsalabs/97challenge/">Secret-Key Challenge</A>
is a contest sponsored by
<A HREF="http://www.rsa.com/">RSA Data Security</A>
which is being used primarily to further research into the strength of
encryption standards. The DES challenge was won back in June. RSA is
offering a $10,000US prize to the winning team which breaks the
<B>RC5-32/12/7</B> challenge which uses a 56 bit key. The challenge has
been running since January 28th, 1997.
<P>
The status of the various challenges can be seen
<A HREF="http://www.rsa.com/rsalabs/97challenge/html/status.html">here</A>.
The method being used for <I>cracking the code</I> by the various groups
is a <I>brute force</I> check of the entire <B>2^56</B> keyspace.
<P>
To give you an idea of the magnitude of the problem, consider that a
single fast Pentium Pro based system would take in excess of 4000 years
to run through the entire keyspace. A 200 Mhz Pentium would take about
9000 years.
<A NAME="WHY">
<P><HR NOSHADE SIZE=2><P><!-- ---------------------------------------------- -->
<H2>Why?</H2></A>
<P><HR NOSHADE SIZE=2><P>
<H3>Promoting Linux</H3>
<P>
<B><I>Promoting Linux</I></B> is the main reason we are participating in
this effort. We would like to raise public awareness of Linux, and this seems
like one of many good avenues for doing it. It is a relatively easy and fun
way to get a large number of Linux users involved in a publicity effort.
<P>
Linux is in one of those "<I>chicken-and-egg</I>" situations at the
moment. We need to make more software companies aware that Linux is a
market force to be recconned with. With more software, it will be easier to
convince more users, which will convince more companies etc. A snowball
effect is what we need to break off the plateau we're on.
<P>
There are many operating system advocacy groups participating in the effort.
One of the strongest ones at the moment is Apple. It seems like they've
been putting all their available systems into the effort and are currently
ranked number one in the Bovine effort. This is the one to beat!
The other Linux advocacy group
<A HREF="http://www.linuxnet.org/">linux@linuxnet.org</A> is in second
place on Bovine, but they do not seem to have a presence in the Cyberian
effort.
The group we are involved with,
<A HREF="http://www.teamlinux.org/">rc5@teamlinux.org</A>
is moving up from behind very quickly on Bovine,
and are consistantly in the Top 20 teams on Cyberian for the key rates.
<P>
Naturally we hope that you'll consider the team which we are involved with,
but both Linux teams have similar goals and reasons for being, and either
team would be a good choice.
<P>
<H3>Helping to Change Encryption Restrictions</H3><!-- ------------------- -->
<P>
To prove that 56-bit encryption is insufficient. It is high time for the U.S.
government to rethink the current encryption export policies and standards.
<P>
Stronger encryption is readily available and the belief that
"<I>bad-guys</I>" might restrict themselves to using
encryption that could be tapped by the government does not make sense.
<P>
<H3>Having Fun!</H3><!-- ------------------------------ -->
<P>
It is fun to watch your system work on the project, see the results and get into
mild competitions with other teams. Your system is probably idle most of the
time and it is satisfying to know that all of the
"<I>idle-cycles</I>"
can now be put to productive use!
<P>
Most groups and teams have some methods available for looking at the statistics.
Check into these sites on a regular basis, and see how well your team is doing!
The competitive aspect can spur growth as it motivates people to get other
people involved. This is good!
<A NAME="HOW">
<P><HR NOSHADE SIZE=2><P><!-- ---------------------------------------------- -->
<H2>How?</H2></A>
<P><HR NOSHADE SIZE=2><P>
There are three overall efforts working on the RSA RC5 Challenge that we
know of.
Each one has different client programs to run and different procedures
to follow.
They also each have their own pros and cons.
Each overall effort is also divided up into "<I>teams</I>".
We believe
that only the first two groups have active Linux Advocacy groups,
but we may be
mistaken. (The third group had a team called <B>Linux!</B>, but did not have
a web address or a way to contact them which we could see.)
<UL>
<LI><A HREF="http://rc5.distributed.net/">The Bovine RC5 Cracking
Effort Headquarters</A>
<LI><A HREF="http://www.cyberian.org/">The Cyberian
RC5-56 Project CommCentre</A>
<LI><A HREF="http://www.rc5.cs.wisc.edu/">Infinite Monkeys RC5
Coordinated Attack</A>
</UL>
You will need to pick a team. Either of the Linux teams will make a good
choice and both teams have instructions for setting up which you can read
on their respective Websites. See the
<A HREF="#WHO">section below</A>
for more of a description on both teams.
<P>
The team we are involved with,
<A HREF="http://www.teamlinux.org/"><I>Team Linux</I></A>,
has members involved with both
<A HREF="http://rc5.distributed.net/">Bovine</A> and
<A HREF="http://www.cyberian.org/">Cyberian</A>,
so we will describe both here.
<P>
We will also assume that you are using a Linux machine, although
we (Team Linux)
don't restrict you to using Linux. Our feeling on the matter is that the
other machines on our team are "<I>Linux Sympathasizers</I>"
or "<I>Linux Wannabee</I>" machines! <TT>;-)</TT>
<P>
All groups work on the basis of <I>keyservers</I> handing out work for the
distributed systems, or <I>client systems</I> (that's you and me) to work on.
There is very little network traffic to do this. Basically the keyservers
hand out a range of keys to work on. Your system then checks each key by
brute force and contacts the keyserver again when it needs more work to do.
The programs work at very low priority <I>(nice-level)</I> so that
you shouldn't notice any change in interactive sessions,
effectively only using "<I>idle cycles</I>".
The client system also tells the server which range it has checked so that
the numbers can show up in your team's statistics. <I>(This is the fun part.)</I>
<P>
The following will not be an exhaustive description of either system but will
give you a few pointers on setting up. For more information, see your team's
Web pages. Hopefully, this get you started and show you how easy it is.
<P><HR NOSHADE><P>
<H3>Bovine Clients</H3>
<P>
The
<A HREF="http://rc5.distributed.net/">Bovine</A>
effort has a lot going for it. They are well organized; have fast
client programs for a number of platforms; have checked a larger portion
of the key space and will be giving away a larger portion of the winnings
(should they win). They have stated that they will give $8000US of the
winnings to
<A HREF="http://promo.net/pg/">Project Gutenberg</A>
which is a very worthwhile cause. They are keeping $1000US and will
give $1000US to the winning team.
<P>
Both Linux teams will be giving all the prize money away.
The <I>linux@linuxnet.org</I> group will be donating the money to
<A HREF="http://www.li.org/">Linux International</A>,
while the <I>Team Linux</I> group is leaving it to members to vote on,
and may well end up doing the same. <I>Team Linux</I> is also in
discussions with several other companies about additional sponsorship
for a worthy Linux cause. We will have an announcement about this soon.
<P>
Both
<A HREF="http://www.linuxnet.org/">linux@linuxnet.org</A>
and the team we are involved with,
<A HREF="http://www.teamlinux.org/">Team Linux</A>
(with an email of <A HREF="mailto:crusader@mo.net">crusader@mo.net</A>)
are represented in this group. You may pick either team if you
choose to use the Bovine system.
<P>
The first thing to do is to get a copy of the
<A HREF="http://rc5.distributed.net/rc5v2-clients.html">client program</A>
and unpack the archive into an empty directory. At the time of this
writing, the latest version was <B>v2 build 4</B> and the Linux archive
contains:
<BLOCKQUOTE><PRE><TT>
-rwxrwxr-x bovine/rc5 292892 Aug 7 05:06 1997 rc5v2b4/rc5v2
-rw-rw-r-- bovine/rc5 2085 Aug 6 22:11 1997 rc5v2b4/README.TXT
</TT></PRE></BLOCKQUOTE>
<P>
You'll notice that the files are containted in a subdirectory relative to
where you unpack them. So if you unpack in your home directory you will
create a subdirectory called <B>rc5v2b4</B> containing the files.
(I also create a symlink [symbolic link]
here, to make typing easier. Pick a name which is easier
to type such as <I>bovine</I>. You can then use this as an alias.)
<BLOCKQUOTE><PRE><TT>
ln -s rc5v2b4 bovine
</TT></PRE></BLOCKQUOTE>
<P>
<A HREF="http://rc5.distributed.net/">The Bovine</A> system uses one program
which both does the key checking and also maintains a <I>cache</I> of keys,
contacting a keyserver when it needs more work, and checking in the finished blocks.
<P>
Configuring the Bovine client involves running the client program with the
<B>-config</B> option. You will then be presented with a menu, which should
be similar to the one reproduced here:
<BLOCKQUOTE><PRE><TT>
CLIENT CONFIG MENU
------------------
1) Email to report as [default:rc5@distributed.net] ==> rc5@distributed.net
2) Blocks to Buffer [default:5] ==> 5
3) Blocks to complete in run [default:0] ==> 0
4) Hours to complete in a run [default:0] ==> 0
5) Keys per timeslice - for Macs etc [default:65536] ==> 65536
6) Level of niceness to run at [default:0] ==> 0
7) File to log to [default:] ==>
8) Network communication mode [default:1] ==> 1
14) Optimize performance for CPU type [default:-1] ==> -1
0) Quit and Save
</TT></PRE></BLOCKQUOTE>
<P>
The important one to change is "<B>1</B>". This email address you
add here determines which team your blocks will be counted for. This is
case sensitive, and does not tolerate typos, so be careful when typing this
in and double check.
<P>
Press the "<B>1</B>" key, followed by the "<B>Enter</B>" key
and you will be presented with the following prompt:
<BLOCKQUOTE><PRE><TT>
Email to report as (64 characters max) [rc5@distributed.net] -->
</TT></PRE></BLOCKQUOTE>
<P>
If you decide to count your blocks for
<A HREF="http://www.linuxnet.org/"><B>linux@linuxnet.org</B></A> then enter it here.
<P>
If you decide to work with
<A HREF="http://www.teamlinux.org/">Team Linux</A> then you need to enter
<A HREF="mailto:crusader@mo.net"><B>crusader@mo.net</B></A>.
(The reason we don't use
<A HREF="mailto:rc5@teamlinux.org">rc5@teamlinux.org</A> on Bovine is that
we received our <I>teamlinux.org</I>
domain after actually starting the effort.
The Bovine group was unwilling to move our stats to the new email address
so we had to keep the old one to maintain our block counts.
The <A HREF="mailto:crusader@mo.net">crusader@mo.net</A> email
address actually belongs to Eric P. Anderson, who started Team Linux.)
<P>
<CENTER>
<H4>Fine Tuning</H4>
</CENTER>
<P>
If you are only connected to the net part time, you should
consider buffering a larger number of blocks. Assuming that you connect once
per day, you'll need to get at least a day's worth and maybe a bit more,
for good measure.
(The limit is 200 on the latest clients I think.) If you are connected
to the 'Net full time, then you can leave this at the default setting.
<P>
I also suggest that you define a log file, perhaps
<TT>/var/tmp/bovine.log</TT>
might be a good choice.
This is all you really need to define unless you have specific
needs, such as getting around a firewall.
(These subjects are beyond the scope of this
article, and you should consult the
<A HREF="http://rc5.distributed.net/FAQ/rc5v2-help.html">Bovine Client
Documentation</A>
for more help if you run into difficulties. They also maintain several
<A HREF="http://cwww.llamas.net/~chipper/mail.html">mailing lists</A>
where you might find additional help.)
<P>
At this point, save the setup by pressing the "<B>0</B>" key,
and you should be ready to test it out.
The configuration file which is saved is called <B>rc5v2.ini</B>,
and is placed in the current directory.
<P>
Test it out! Type the name of the program and watch it go!
(We usually leave it running with a spare xterm or on one of the text consoles.
One nice thing about the Bovine client is that it gives you feedback on how
far through each block it is.)
<P><HR NOSHADE><P>
<H3>Cyberian Clients</H3>
<P>
Personally, we find the
<A HREF="http://www.cyberian.org/">Cyberian Effort</A> more satisfying, although
it is not without its problems. They have been going through some difficulties
on their server in the last week while one of the key developers was away in China.
(This should be cleared up by the time you read this.) They also only have one
server whereas Bovine have many, so Cyberian are currently more prone to having
problems.
Lastly, they have not been working as long as Bovine, so have not checked
as much of the keyspace.
<P>
On the positive side, Cyberian have far better stats which make them much more
fun to be involved with. Currently, the Bovine stats are only updated once per
day and do not give you access to your individual numbers. The Cyberian stats
are updated every 10 minutes or so and gives you a list of all of the team
members as well as your overall team statistics.
<P>
This is a great boon for people getting involved as they can see themselves
up on the board within minutes! Cyberian also has many more categories of
numbers and graphs to delight the people involved.
<P>
Lastly, the Bovine effort is offering $1000US to the winning team, while
the Cyberian effort is offering <B>$5000US</B>. This would mean more money for
a worthwhile Linux effort, should one of the Linux teams win.
Note that the Bovine group is giving the bulk of the money to a worthwhile
cause, it's just not a Linux cause.)
<P>
At the time of this writing, we believe that the only Linux advocacy group
here is
<A HREF="http://www.teamlinux.org/">Team Linux</A>.
The email address they are using here is:
<A HREF="mailto:rc5@teamlinux.org"><B>rc5@teamlinux.org</B></A>.
<P>
First, you need to
<A HREF="http://www.cyberian.org/download.html">download
their client program</A>.
Pick the appropriate one for your architecture. We assume that most of us will
be using the "<I>Client v3.04 for Linux [X86]</I>" although others
are available.
<P>
This tar archive will unpack in your current directory so you should make a
directory for it: <I>$HOME/cyberian</I>, for example, then change to
that directory.
<P>
Unpacking with <TT>tar tvzf Linux-x86.bin304.tgz</TT>
will give you the following
files:
<BLOCKQUOTE><TT><PRE>
-rwxrwxr-x tic0/tic0 20315 Jul 25 15:08 1997 rc5client
-rwxrwxr-x tic0/tic0 18093 Jul 25 15:08 1997 sa_simple
</PRE></TT></BLOCKQUOTE>
<P>
The Cyberian system uses these two programs:
one <I>(rc5client)</I> which checks the keys and
the other <I>(sa_simple)</I> which maintains the
cache and contacts the server when necessary.
Both programs will list the available options
if you run the program with "<B>-\?</B>".
(The backslash may be necessary to escape
the question mark on some shells.)
<P>
You will need to contact the server to load the initial cache of blocks
at this point. For now, run
<BLOCKQUOTE><TT><PRE>
sa_simple -1
</PRE></TT></BLOCKQUOTE>
<P>
If everything works OK, you should see a message saying that the server has
been contacted and that your cache has been loaded.
If the program has difficulty contacting the server, you will see repeated
messages to that effect. If this condition lasts more than ten minutes or
so, then there may be a problem.
See the <A HREF="http://www.cyberian.org/">Cyberian</A> or
<A HREF="http://www.teamlinux.org/">Team Linux</A>
Websites for more details.
It may be a networking issue, or it may be that their server is still having
some problems.
<P>
The Cyberian system does not use configuration files, nor does it create
logfiles; so all options must be supplied on the command line.
(We like to use logfiles to maintain a record of what was done and
to see what it is doing occasionally.)
You can automate this by creating a shell script such as the following:
<!-- +++++ display +++++ -->
<BLOCKQUOTE><TT><PRE>
#!/bin/sh
#
# Run the Cyberian client programs:
# (This version is for part-time connections, full-time connections don't
# use the -1 option on sa_simple, or the -q option on rc5client)
#
MY_EMAIL=yourname@yourdomain # Change This!!!
TEAM="rc5@teamlinux.org"
LOW_WATER_MARK=500
HIGH_WATER_MARK=1000
export TEAM HIGH_WATER_MARK LOW_WATER_MARK MY_EMAIL
sa_simple -1 -l $LOW_WATER_MARK -h $HIGH_WATER_MARK > /var/tmp/sa_simple.log 2>&1 &
rc5client -t $TEAM -e $MY_EMAIL -N -q -n19 > /var/tmp/rc5client.log 2>&1 &
</PRE></TT></BLOCKQUOTE>
<!-- +++++ end of display +++++ -->
<P>
With a shell script such as this you can find out what is happening at any
time by doing a<BR>
"<B>tail -f /var/tmp/rc5client.log</B>" or<BR>
"<B>tail -f /var/tmp/sa_simple.log</B>".<BR>
(In fact, we just leave a few xterms running with a tiny font,
so we can keep an eye on them while doing other things.)
<P>
Assuming that everything is running OK, you can start seeing your own email
address in your team's statistics in a very short period of time. After a
few hours of processing, make a connection to the net again (if you are dialing
in part time), and run <TT>sa_simple -1</TT> by itself. After the server has
acknowledged your blocks, you should be able to do a search and see your email
address show up
<A HREF="http://www.cyberian.org/search.html">here</A> in about 15 minutes!
<P>
Another nice feature which we like about Cyberian is the ability to see what
is left in the cache. This is very useful for users with part-time connections.
The following is a script we use to summarize what is in the cache. You can use
this as is, or even modify it to give you estimates of the number of hours left.
If you have trouble cutting and pasting from here, you can find it on the
<A HREF="http://www.teamlinux.org/">Team Linux site</A>.
<!-- +++++ display +++++ -->
<BLOCKQUOTE><TT><PRE>
#!/bin/sh
#
# @(#) cache.sh - summarize rc5 cache information dump
# Author: Bill Duncan, bduncan@teamlinux.org
#
# Note: make sure rc5client is in your PATH. I assume current directory.
PATH=$PATH:
rc5client -d |
awk '
BEGIN {
F = "%-6s %4d %s\n"
}
FNR == 1 { next }
NF > 0 {
time = $2
$1 = $2 = ""
s = sprintf("%6s~%s", time, $0)
a[ s ]++
}
END {
for (i in a) {
split(i, b, "~")
printf F, b[1], a[i], b[2]
total += a[i]
if (i ~ /COMPLETED/)
done += a[i]
else
notdone += a[i]
}
# sort these lines to the end
printf "~\n"
printf F, "~", done, " DONE"
printf F, "~", notdone, " NOT DONE"
printf F, "~", total, " TOTAL IN CACHE"
}' |
sort | sed 's/^~/ /'
</PRE></TT></BLOCKQUOTE>
<!-- +++++ end of display +++++ -->
<P>
This script will give you a display such as the following:
<!-- +++++ display +++++ -->
<BLOCKQUOTE><TT><PRE>
122:59 27 COMPLETED REPORTING
125:47 101 COMPLETED REPORTING
137:15 93 COMPLETED
137:15 125 COMPLETED REPORTING
150:26 1 RESERVED
150:26 4
5 NOT DONE
346 DONE
351 TOTAL IN CACHE
</PRE></TT></BLOCKQUOTE>
<!-- +++++ end of display +++++ -->
<P>
This display tells us that we need to connect to the server soon
as we only have 5 blocks to go before running out! The numbers down
the left column are the number of hours and minutes left before that
block expires. The middle column is the number of blocks with that
specific expiry. The rest of the line is a status, with "RESERVED"
being the block currently being worked on and no status means that the
group has not been started yet.
<A NAME="STATS">
<P><HR NOSHADE SIZE=2><P><!-- ---------------------------------------------- -->
<H2>Stats, Numbers and Graphs</H2></A>
<P><HR NOSHADE SIZE=2><P>
As we have mentioned elsewhere, the Cyberian group pay more attention to the
statistics and graphs, which we tend to think are more fun for people.
<P>
Both groups tend to pay alot of attention to the blocks already completed.
This is like saying that someone has bought 10,000 losing lottery tickets
vs. someone else who has only bought 10.
The prize is not given to the group with the most losing tickets!
Both teams have an equal chance of buying the next winning lottery ticket!!
<P>
More important is <B><I>the current rate</I></B> at which the
<I>tickets</I> are being bought, or in our case, the rate at which
<I>key blocks</I> are being checked.
<P>
If you compare teams on that basis, it gives a more realistic relative
probability on which team will find the secret key and win the prize money.
<P>
Having said all that, watching the numbers and the graphs, and comparing
your team's numbers with other teams is all part of the fun.
<P>
The
<A HREF="http://rc5stats.distributed.net/emtop100.idc">Bovine stats</A>
recently had an overhaul but is still only updated once per day.
For example: only team statistics are shown,
without mentioning individual efforts.
<P>
The
<A HREF="http://www.cyberian.org/stats/statistix.html">Cyberian stats</A>
and their
<A HREF="http://www.cyberian.org/search.html">search facility</A>
are a joy to use. They provide almost instant feedback for anyone
getting involved as you can usually find your entries within minutes
of contacting the server. You can also see how your contribution has
helped the overall team effort.
<A NAME="WHO">
<P><HR NOSHADE SIZE=2><P><!-- ---------------------------------------------- -->
<H2>Who?</H2></A>
<P><HR NOSHADE SIZE=2><P>
<H3>So Where do I Sign Up?</H3>
<P>
Why two teams? Why don't we just join up with the other team, and combine our
numbers? We've been asked this probably the most since Eric Anderson started
Team Linux.
<P>
The reason is that we feel that "<I>friendly</I>" rivalry will benefit
both teams and help get people excited about getting involved. The benefit
to Linux will hopefully be greater participation and better visibility.
<P>
Both teams have the same main goals in mind with promoting Linux the highest
on the list. However, we both have different ways of going about this.
<P>
The <A HREF="http://www.linuxnet.org/">linux@linuxnet.org</A> team has plenty
going for it. It's been around a lot longer and has accumulated a much larger
total number of blocks checked. They have openly stated that they will donate
the entire $1000 to Linux International if they win. They seem to have two
sets of Web pages and you can access the second set
<A HREF="http://www.baycis.com/~nickkral/linux/rc5.html">here</A>.
<P>
The <A HREF="http://www.teamlinux.org/">Team Linux</A> group have stated
that they will donate all of any prize money or other revenue directly to a
Linux group of the members' choosing. Any administrative costs will be paid for
out of our own pocket. Since Team Linux is also involved in the Cyberian
effort, the prize money may very well be $5000US for Team Linux,
or $1000US if the key is found through the Bovine effort.
<P>
Team Linux is also in discussion with several companies about up-ing
the anti, possibly by having them match the prize money available,
or perhaps some other method which does not rely on chance nearly as much.
We should have an announcement on this soon.
<P>
We would like to encourage you to get involved in either team
and compete in the spirit of Linux, for the benefit of Linux.
As long as the competition remains friendly, it will be healthy and help out.
<A NAME="LINKS">
<P><HR NOSHADE SIZE=2><P><!-- ---------------------------------------------- -->
<H2>The Future of Distributed Computing</H2></A>
<P><HR NOSHADE SIZE=2><P>
Getting tens of thousands of computers working on a common problem is an
awesome technical accomplishment.
It is made all the more interesting by the fact that
the computers are spread out world-wide, some of them
available full-time, some not,
with different hardware and operating systems.
Having them all owned by different people and organizations, each with their
own agenda and motivations adds yet another dimension to the task.
<P>
Some papers and sites on the topic of distributed systems and related
subjects which we've found:
<BLOCKQUOTE>
<UL>
<LI><A HREF="http://www.cs.wisc.edu/condor/">Condor</A> is a project at
<A HREF="http://www.wisc.edu/">University of Wisconsin-Madison</A>
which has been going on for about 10 years. They have published a number of
<A HREF="http://www.cs.wisc.edu/condor/publications.html">interesting papers</A>
on what they call
<A HREF="http://www.cs.wisc.edu/condor/research.html">High Throughput
Computing (HTC)</A>.
They are the movers and shakers for the third group working on
the RSA Challenge called
<A HREF="http://www.rc5.cs.wisc.edu/">Infinite Monkeys</A>.<P>
<LI><A HREF="http://www.yahoo.com/">Yahoo</A>
have a whole section devoted to
<A HREF="http://www.yahoo.com/Science/Computer_Science/Distributed_Computing/">distributed computing</A>.
There is a good collection of material here, with many universities being
represented.<P>
<LI><A HREF="http://www.mersenne.org/prime.htm">The GREAT Internet
Mersenne Prime Search</A> is another way to use those spare cycles.<P>
<LI><A HREF="http://members.aol.com/golomb20/index.html">In Search Of The
Optimal 20 & 21 Mark Golomb Rulers</A><P>
<LI><A HREF="http://www.bigscience.com/setiathome.html">SETI@home</A> is
an effort to use spare cycles in the
Search for Extra-Terrestrial Intelligence (SETI). It looks like this might
ramp up to be a <I>very big thing</I> by next Spring. They are looking to
put hundreds of thousands of machines to work. <I>Let's make sure they do
a Linux client program!</I>
<P>
<LI>As we all know, lots of cool research has come from the folks at
<A HREF="http://www.parc.xerox.com/parc-go.html">Xerox PARC</A>
<I>(Palo Alto Research Center)</I>, including probably the first
windowing environment. It's not surprising to find that they have
<A HREF="ftp://parcftp.xerox.com/pub/dynamics/multiagent.html">a
number of papers</A> on the subject. There is one which looks particularly
interesting in a section called <B>allocating time on idle computers</B>:
<I>C. A. Waldspurger et al.,
Spawn: A Distributed Computational Economy, 1992</I>.
Unfortunately, it has been taken off-line. I seem to recall something like
this published some years ago,
possibly in <A HREF="http://www.byte.com/">Byte</A>,
although no reference could be found.<P>
While researching the Xerox PARC site, we came across a section called the
<A HREF="http://www.parc.xerox.com/spl/groups/dynamics/">Dynamics of
Computation Area</A>. <B>You have to see this</B>,
if for no other reason, to see
the graphic depicting many <I>small distributed efforts</I> overtaking one
<I>large effort</I>!!
</UL>
</BLOCKQUOTE>
<A NAME="WHEN">
<P><HR NOSHADE SIZE=2><P><!-- ---------------------------------------------- -->
<H2>When?</H2></A>
<P><HR NOSHADE SIZE=2><P>
<BLOCKQUOTE>
<B>Do it</B> <FONT SIZE=+1><I><B>now!!</B></I></FONT>
<P>
It's easy. You'll have plenty of help. And once you are set up,
you can let your system do the rest!
</BLOCKQUOTE>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1997, Bill Duncan<BR>
Published in Issue 21 of the Linux Gazette, September 1997</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./sshmake.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./lg_backpage21.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./icewm.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./lg_backpage21.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<center>
<H1><IMG SRC="../gx/backpage.gif" alt="Linux Gazette Back Page"></H1>
<H5>Copyright © 1997 Specialized Systems Consultants, Inc.<br>
For information regarding copying and distribution of this material see the
<A HREF="../copying.html">Copying License</A>.</H5>
</center>
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<P> <hr> <P>
<H3>Contents:</H3>
<ul>
<li><a HREF="./lg_backpage21.html#authors">About This Month's Authors</a>
<li><a HREF="./lg_backpage21.html#notlinux">Not Linux</a>
</ul>
<a name="authors"></a>
<P> <HR> <P>
<!--======================================================================-->
<center><H3> About This Month's Authors </H3></center>
<P> <HR> <P>
<!--======================================================================-->
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">
Randy Appleton</H4>
Randy Appleton is a new professor in the Math and Computer Science
department of Northern Michigan University. He typically teaches the higher
lever C.S. classes, especially the operating systems classes. He has two
dogs, two cats and speaks a small amount of German. He likes to SCUBA dive
and has his very own pilots license.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Larry Ayers</H4>
Larry Ayers 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">
Gerd Bavendiek</H4>
Gerd has worked as a software engineer with various flavors of Unix since 1988.
In
1994 he realized that using Linux could make his every-day work more
convenient.
Since that time he has used Linux and various GNU-software. He lives in Essen,
Germany.
In his spare time he builds model-steam engines using real hardware: lathe,
milling-machine and a lot of hand tools.
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">John Daily</H4>
John Daily works for BBN (or is that GTE?) as a systems
administrator/software
engineer. He spends far too much time in front of computers, but when
he's
not, he prefers to be outside riding his new bicycle, or otherwise
exploring
New England.
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Jim Dennis</H4>
Jim Dennis
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">Bill Duncan</a></H4>
Bill has worked with Unix systems since the early Version 7 days on PDP-11's.
He worked with Xenix hroughout most of the eighties and has also worked
with many other flavors of Unix over the years, but his operating system
of choice is now Linux. When not working or fiddling with his four Linux
systems at home (which is rare), he might have some time left over for his
other hobbies: his dog (Daisy), photography and Amateur Radio. He can be
reached at <a href="mailto:bduncan@BeachNet.org">bduncan@BeachNet.org</a>.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">John Fisk</a></H4>
John Fisk is most noteworthy as the former editor of the <I>Linux Gazette</I>.
After three years as a General Surgery resident and
Research Fellow at the Vanderbilt University Medical Center,
John decided to ":hang up the stethoscope":, and pursue a
career in Medical Information Management. He's currently a full
time student at the Middle Tennessee State University and hopes
to complete a graduate degree in Computer Science before
entering a Medical Informatics Fellowship. In his dwindling
free time he and his wife Faith enjoy hiking and camping in
Tennessee's beautiful Great Smoky Mountains. He has been an avid Linux fan,
since his first Slackware 2.0.0 installation a year and a half
ago.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Sam Trenholme</H4>
Sam Trenholme has been using Linux since June 19, 1995. He sees Linux as
a very powerful tool for communicating and maintaining connections with
people. His goal is to eventually obtain a Master's degree in Computer
Science.
<a name="notlinux"></a>
<P> <hr> <P>
<!--====================================================================-->
<center><H3> Not Linux </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>
<IMG ALIGN=CENTER ALT="" SRC="../gx/rose.gif">
My assistant, Amy Kukuk, did all the work again this month.
She's so good to me. Thank you, Amy.
<P>
Our beautiful new logo was designed by our very own Graphics Muse, Michael
J. Hammel. (He used The Gimp.) Thanks, Michael.
<P>
Well, this is the last issue that Amy and I will be working on. We are
turning over the editorship to Viki Navrotilova. Here's a bit about Viki:
<P>
<B>Viktorie Navratilova has been using Linux for the past 4 years, and has
been active in both the Israeli and Chicago Linux Users' Groups.
She started using Linux because of its network capabilities, and then
stayed for the compilers. </B>
<P>
I know Viki will have as much fun as we have and do a wonderful job. Show
your support and send her lots of articles.
<P>
<I>LG</I> will remain under the guardianship of <I>Linux Journal</I> and
neither the web address or e-mail address will change. Articles from
<I>LG</I> will continue to appear in <I>LJ</I>.
<P>
Have fun! Bye-Bye!
<P> <hr> <P>
<A HREF="http://www.ssc.com/ssc/Employees/Margie/margie.html">
Marjorie L. Richardson</a><br>
Editor, <i>Linux Gazette</i> <A HREF="mailto:gazette@ssc.com">gazette@ssc.com</a>
<P> <HR> <P>
<!--====================================================================-->
<A HREF="./index.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="sshmake.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
<p><hr><p>
<I>Linux Gazette</I> Issue 21, September 1997, http://www.ssc.com/lg/<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>
<!--startcut ==========================================================-->
</BODY>
</HTML>
<!--endcut ============================================================-->
|