File: issue21.html

package info (click to toggle)
lg-issue21 6-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 900 kB
  • ctags: 108
  • sloc: makefile: 34; sh: 34
file content (6088 lines) | stat: -rw-r--r-- 231,844 bytes parent folder | download
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 &copy; 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>&quot;Linux Gazette...<I>making Linux just a little more fun!</I>&quot;</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 &copy; 1997 Specialized Systems Consultants, Inc. </H5> 
<P> 

<H4>&quot;Linux Gazette...<I>making Linux just a little more fun!</I>
&quot;</H4>
<P> <hr> <P> 

<!-- QUICK TIPS SECTION ==================================================  -->
<center>
<H1><A NAME="tips"><IMG ALIGN=MIDDLE ALT="" SRC="../gx/twocent.gif">
More 2&#162; 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 &lt;string_to_calculate&gt; [&lt;output_format&gt;]
#

# 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 &gt; 2)
{
   die("Usage: $0 &lt;\"formula_to_calculate\"&gt; [&lt;output_format&gt;]\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 &lt;filename&gt; &lt;type&gt;
#
#	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&lt;---
#	public class
#	--->8---
#	(Do not put a newline at the end!)
#
#	templates/java.2
#
#	---8&lt;---
#	{
#		public static void main(String args[]){
#		}
#	}
#	---&gt;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 &gt; $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 &lt;$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 &gt;/dev/null 2>&1
	cp *.h $NEXT_DIR &gt;/dev/null 2>&1
	cp *.java $NEXT_DIR &gt;/dev/null 2>&1
fi

#
#	update last
#

echo $VERSION &gt;$LAST_FILE

#
#	edit trackfile
#

TRACK=$BACKUPDIR/track

echo &gt;&gt; $TRACK
echo &gt;&gt; $TRACK
echo "=====================================================================">> $TRACK
date &gt;&gt; $TRACK
echo "Version: "$VERSION &gt;&gt;$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 &gt; 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 &copy; 1997 Specialized Systems Consultants, Inc. </H5> 
<P> 
<H4>&quot;Linux Gazette...<I>making Linux just a little more fun!</I>&quot;</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&reg; Trademark Resolution
</H3>
<P> 

<b>Ownership of Linux&reg; Trademark Resolved</b>

<p>Monterey, California, August 20, 1997 - A long standing dispute over
ownership of the Linux&reg; 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 &copy; 1997 Specialized Systems Consultants, Inc. </H5> 
<P> 


<H4>&quot;Linux Gazette...<I>making Linux just a little more fun!</I>&quot;
</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 &lt;myfile &gt;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 &copy; 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>
&quot;Linux Gazette...<I>making Linux just a little more fun!</I>&quot;
</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 &copy; 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>
&quot;Linux Gazette...<I>making Linux just a little more fun!</I>&quot;
</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&nbsp;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&nbsp;- 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 &quot;.&quot; and &quot;..&quot;
are implemented by storing the names &quot;.&quot; and &quot;..&quot; 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:&nbsp;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>)&nbsp;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 &quot;/&quot; are resolved relative to this current
working directory and DIR&nbsp;starts at the current working directory.
File names that start with &quot;/&quot; are resolved relative to the root
directory (see <TT>chroot</TT> for the one exception), and DIR&nbsp;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&nbsp;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&nbsp;= INODE
End-While
Take the last component off PATH yielding FILENAME.
Find FILENAME&nbsp;in DIR&nbsp;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&nbsp;available.
Most of that RAM is used for other things like running applications, leaving
perhaps 10% to 30%&nbsp;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:&nbsp;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&nbsp; <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 &copy; 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>
&quot;Linux Gazette...<I>making Linux just a little more fun!</I>&quot;
</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&quot;-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>&lt;Alt&gt;&lt;F1&gt;</code> to <code>&lt;F8&gt;</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&quot; 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 &copy; 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>
&quot;Linux Gazette...<I>making Linux just a little more fun!</I>&quot;
</H4>

<P> <HR> <P> 
<!--===================================================================-->

<center>
<H2>	Impressions reading Peter H. Salus `A Quarter Century of UNIX'				</H2>

<H4>	By Leif Erlingsson &nbsp;&lt;<a href="mailto:leif@lege.com">leif@lege.com</a>&gt;	</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 &copy; 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>
&quot;Linux Gazette...<I>making Linux just a little more fun!</I>&quot;
</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 &copy; 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>
&quot;Linux Gazette...<I>making Linux just a little more fun!</I>&quot;
</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:&nbsp;&nbsp;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&nbsp;/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>*.*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/dev/tty8</kbd><br>

<p>in your <tty>/etc/syslog.conf</tty> file.



<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 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>
&quot;Linux Gazette...<I>making Linux just a little more fun!</I>&quot;
</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 &copy; 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>
&quot;Linux Gazette...<I>making Linux just a little more fun!</I>&quot;
</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 &copy; 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>
&quot;Linux Gazette...<I>making Linux just a little more fun!</I>&quot;
</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): &lt;CR&gt;
Enter passphrase: &lt;CR&gt;
Enter the same passphrase again: &lt;CR&gt;
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: &lt;entered my remote password&gt;
</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) $&lt; $(REMOTE)
	touch $@

%.ct : %.c
	$(TRANSFER) $(SSHFLAGS) $&lt; $(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 &copy; 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 &quot;<I>chicken-and-egg</I>&quot; 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
&quot;<I>bad-guys</I>&quot; 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
&quot;<I>idle-cycles</I>&quot;
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 &quot;<I>teams</I>&quot;.
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&nbsp;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&nbsp;Linux)
don't restrict you to using Linux.  Our feeling on the matter is that the
other machines on our team are &quot;<I>Linux Sympathasizers</I>&quot;
or &quot;<I>Linux Wannabee</I>&quot; machines!&nbsp;&nbsp;<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 &quot;<I>idle cycles</I>&quot;.
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&nbsp;Linux</I> group is leaving it to members to vote on,
and may well end up doing the same.  <I>Team&nbsp;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&nbsp;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 &quot;<B>1</B>&quot;.  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 &quot;<B>1</B>&quot; key, followed by the &quot;<B>Enter</B>&quot; key
and you will be presented with the following prompt:

<BLOCKQUOTE><PRE><TT>

Email to report as (64 characters max) [rc5@distributed.net] --&gt;

</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&nbsp;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&nbsp;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
   &nbsp;&nbsp;<TT>/var/tmp/bovine.log</TT>&nbsp;&nbsp;
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 &quot;<B>0</B>&quot; 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&nbsp;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 &quot;<I>Client v3.04 for Linux [X86]</I>&quot; 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 &quot;<B>-\?</B>&quot;.
(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&nbsp;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>
&quot;<B>tail -f  /var/tmp/rc5client.log</B>&quot; or<BR>
&quot;<B>tail -f  /var/tmp/sa_simple.log</B>&quot;.<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&nbsp;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 &gt; 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 &quot;RESERVED&quot;
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&nbsp;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&nbsp;Linux.

<P>
The reason is that we feel that &quot;<I>friendly</I>&quot; 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&nbsp;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&nbsp;Linux is also involved in the Cyberian
effort, the prize money may very well be $5000US for Team&nbsp;Linux,
or $1000US if the key is found through the Bovine effort.

<P>
Team&nbsp;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 &copy; 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 &copy; 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>
&quot;Linux Gazette...<I>making Linux just a little more fun!</I>&quot;
</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 &quot:hang up the stethoscope&quot:, 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 ============================================================-->