Subject: Linux-Development Digest #566 From: Digestifier To: Linux-Development@senator-bedfellow.MIT.EDU Reply-To: Linux-Development@senator-bedfellow.MIT.EDU Date: Sun, 20 Mar 94 02:13:04 EST Linux-Development Digest #566, Volume #1 Sun, 20 Mar 94 02:13:04 EST Contents: 'format' program (Sun style) (W. Tait Cyrus) Re: rarpd done? berkeley packet filter? (Alan Cox) /usr/include/netinet/protocols.h (Matthew Donadio) Help on modifying /dev/rmt0 wanted (Geir Egil Hauge) Controlling terminal = console? (John Shifflett) Re: 127.x.x.x (was Re: UDP report card) (Vernon Schryver) Re: Starting a Linux Bibliography (Ronald Miller) needs /usr/lib/libl.a (K. J. Chang) Re: VM performance tuning via program restructuring (Greg McGary) Re: needs /usr/lib/libl.a (Wen-Chun Ni) OpenStep: What's going on with it? (Marko Schuetz) Linux for Sun4 (M. Samid) Re: A truely non-debugging Kernel? (Rogier Wolff) Re: gcc internal compiler error - SIGSE [2~ [2SEGV (Rogier Wolff) athena-inetd uploaded to tsx-11 and sunsite (James H. Haynes) ---------------------------------------------------------------------------- From: cyrus@jemez.eece.unm.edu (W. Tait Cyrus) Subject: 'format' program (Sun style) Date: 19 Mar 1994 18:50:35 GMT Last week I purchased a new SCSI disk and after only 6 days it quit working. Fortunately I had made a backup off all my stuff the day before it died so I didn't loose a lot of data. Anyway, before I convert (again) over to using my new (replacement) drive I would like to "pound" on the new disk for a wekk or two. I've used Sun's 'format' program in the past and it appears to be able to do just the "pounding" I would like to do to my new disk. Questions: 1) Is there a Linux program available which pounds on SCSI disks? 2) Is it generic enough to also be able to pound on IDE disks? I looked in the disk-maint. directory on sunsite but didn't see anything that looked like what I want. Thanks in advance for any suggestions, comments and/or pointers to S/W. -- W. Tait Cyrus e-mail: cyrus@su.com Solutions Unlimited Phone: 719-260-7227 4710 Nightingale Dr. #M202 Colorado Springs, CO 80918 ------------------------------ From: iiitac@uk.ac.swan.pyr (Alan Cox) Subject: Re: rarpd done? berkeley packet filter? Date: Thu, 17 Mar 1994 17:51:41 GMT In article <2m7ioo$re@cayman.Cayman.COM> pgf@cayman.com (Paul Fox) writes: >to do this, i need a RARP server, since Sun's don't do bootp. to port the >netbsd RARPD, i need the berkeley packet filter (bpf). >has anyone put a rarpd on linux? Someone is supposed to be doing one, but is otherwise busy. So go ahead > >has anyone put the Berkeley Packet Filter on linux? No but it could be useful as a usermode library emulation. >is there are raw network access point (i.e. /dev/nit) on linux? The Linux kernel has SOCK_PACKET which gives you raw driver level access either by protocol or to all packets. You could use this to a) build BPF b) build a RARPD direct. >should i just hack the single entry i need into the arp code in my kernel, >to get me running well enough to finish doing the job right, so i can >contribute the changes back to posterity? (don't answer that...) I'd put it firmly in the USER side of the system. Firstly because its much easier to debug, secondly because it doesn't need to be in the kernel, and thirdly because the kernel ARP will change/is changing totally for 1.1 You only need to do s=socket(AF_INET,SOCK_PACKET,htons(ETH_P_RARP)); to get a socket, then use sendto/recvfrom to work raw ethernet frames. [Grab dosemu0.50 and look at libpacket.c which is the library of handy SOCK_PACKET toys. Mail me for more info] >(as a secondary question, has bootparamd been ported to linux?) Pass.. Alan ------------------------------ From: donadio@mxd120.rh.psu.edu (Matthew Donadio) Subject: /usr/include/netinet/protocols.h Date: 17 Mar 1994 19:18:39 GMT I was mucking around last night and noticed that netinet/protocols.h was missing a few entries (as defined by RFC1340) and some of the names caused problems if you tried to use them (like IP_NVP-II). So I grabbed a copy of the RFC, piped it through awk, made a few minor changes, and created a new one. Most of the names are the same, but a few are different. I'm not sure if the changes will cause problems, so feel free to change anything. I also included the descriptions that the RFC had for each protocol. Here it is: begin 644 protocols.h.gz M'XL("$FKB"T``W!R;W1O8V]L""T]=^?+P2M!=E[/^B$9*UD97W?NN0;>XE#^D)\R_0F M^/FV,_?F^GSJ^N.K;UAA,;V\>'7S\XK\)#$5$!$W^X0+ON91>KW%M%R9V.0T M25X2OB/.2&^V[VZ+=;%EF&<1)>]!2IXS%@D29(+O@@U;!U%T(.],;$G*=Y1L M@S@D-&0X:R-U\^W$ELHME5CP_DJ>#V06"$R_$X/'0<@X^1ZJP3^[C[#9NKU. MMM?[-+NF8?9#F7%S=;HF+/8G^LS6FAJY@?VQH`FN1G0>BX1'9$;3--A0J?-% MY0$JK:\J#PG/]C`FAOR.QJ*L\_!@:UH[UWD(!'T/#@W!&\6P<@!D[]3^-F&Q M_/].XW609E$@&(]_E!5<3]/N)TQ](4^YPN6A)? MZ%--Z^;B&)9737F57KYJ?N#ZC"?'.Q&[P+_J,NCTYNJ8(I@B,QXSP1/0HZQD+7'>1&LJ4"TJWGGR2I:TX/J:"[BBECQ(/64OB,>2I^`X[MS""J MH+&#]2MWY2Q7.N/\%M6PJ?E>G,5\1R">8J1'<6UJ/?U%KM@NQ9_-IH M7I9J::V[,ZE666IJ#D9R*P79E`8OU9UR&6S4^92I[.-(H%H**(=&+'A&!I1@ MU4>+X^&VO:\9YJ2:1W"PEHF@HNC.?<^^TUH*07PJZ3U/Q.=I>A2`?7>5N#&] MX=33VD6<9=&KLC+?X04$JS-W-C)]R[6UMH(5GZ>H=>F2\#SS=7]N!1ZRCP,0'*$]EH#)&)$HX.(Q?#JPM(Z"_S$Y M[`6/@DK\.4L#!BF,9Z"Q0W<<96[)$I'!,H.EK_4NM4',3O=KT-M1EK#G+#WF M2ITGE79D8(Q2%DJ9!*@H:JVU)9^Y(_9%WM],^]49^YEQ-WH'45YG+\ MFXOH2ZU;:JG.[5\(%C%1*?:Z;:VT;H$VW^UQ@;.<<\PHY@==(]#>*F[0[?%0 MZ[9KU,<404Z&-*A4ER<7).HJ2CPA5B-,@:@V#NW9Y*S"?(-4Y8R@354XR0XVHJUQ>.68@I`JBI MQB7I)5XFKM9K%TS$1R6AR53;*U)\=0/+'Q)>PI*-=/`3"4MY\VN0LZ0 M7?..1<&?^UU/'T%-`8=QM1UV<':1L3$NK\]=>Y2;IP`I/BMNLU$J3=]!WN@K M-%PTUL@WF*FU;#K`T7V%Q92OD5H&89B@4"!9I3S*\K:BMEI+Q_9;GZTDWB3B M;]+_"EU4OVB?5]>M>S)">:.51G)B@UG]X].G(=]Y+&[@^6/B];,_/G_JS9O@ MG=-7D,[XL\Q]1V[*8);4/Y9&;'%=L=)TX=.V;VA]!3@FT%JLD8+%&=3MAE'I M_KTQVA:H*QNZ0,H%V^J+Y+(6Z%Z'5Q]HW'(7J3(I>>Y%/D? (PQ8=V-P/```W ` end -- Beaker aka Matt Donadio | Life is short, --- __ o __~o __ o donadio@mxd120.rh.psu.edu | ride like ---- _`\<, _`\<, _`\<, --- Penn State Cycling ---| the wind. --- ( )/( ) ( )/( ) ( )/( ) ------------------------------ From: Geir Egil Hauge Subject: Help on modifying /dev/rmt0 wanted Date: 17 Mar 1994 20:34:44 +0100 I want to use a Tandberg TDC 3660 QIC tape streamer in conjunction with a Future Domain TMC-845 SCSI adapter. Linux do not support the TMC-845 (ROMless) adapter as far as I know, and I want to modify the actual files to get this working. I have all necessary documentation on TMC-845, and I know that I ought to read the Linux Kernel Hackers' Guide (0.5). However I would be happy to get some advice on which source files to download, where to find them, and other useful information. (I am running the most recent Slackware distribution - 1.1.1.1?) Geir ------------------------------ From: jshiffle@netcom.com (John Shifflett) Subject: Controlling terminal = console? Date: Thu, 17 Mar 1994 19:26:11 GMT I have a program that would like to know if it's controlling terminal is one of the virtual consoles or not. I looked for, but could not find, an ioctl call that passed this info back. Did I miss something? At this point, I am doing a 'ttyname(0)' and checking the result to see if it's "/dev/tty0", "/dev/tty1", etc. This works, but seems clunky, and possibly not very portable. Can someone advise me? Thanks.... John S. jshiffle@netcom.com ------------------------------ Crossposted-To: comp.protocols.tcp-ip From: vjs@calcite.rhyolite.com (Vernon Schryver) Subject: Re: 127.x.x.x (was Re: UDP report card) Date: Thu, 17 Mar 1994 16:35:44 GMT In article writes: > ... > I just tested this on two net/2 based systems (namely, OSF 1.3 and > AmiTCP/IP). Both require you to say "ifconfig lo0 127.1". Both > send packets to 127.2 happily to default router. SunOS 4.1 and > HP-UX 9 route 127.2 to default router, too. I guess that they are > not conforming to RFC 1122. It looks to me that the SIOCSIFADDR ioctl() is not adding a network route when the lo0 interface is turned on, because the in_ifinit() function notices the IFF_LOOPBACK flag, and so adds a "host-route" as if the loop-back interface is a point-to-point interface. `route add 127.0 127.1 0` keeps packets to 127.2 from following a default route in two somewhat different BSD implementations, one of them BSD/386 1.1. Anyone who is bothered by packets to net-127 addresses other than 127.1 can simply add that command to their start-up scripts. I do not know why the BSD code treats the loopback device as if it is a point-to-point interface. There must be a good reason, given the extra two lines of code in if_ifinit(). Vernon Schryver vjs@rhyolite.com ------------------------------ From: mammal@cgl.bu.edu (Ronald Miller) Crossposted-To: comp.os.linux.admin,comp.os.linux.misc Subject: Re: Starting a Linux Bibliography Date: 20 Mar 1994 01:32:22 GMT James H. Haynes (haynes@cats.ucsc.edu) wrote: : VIII. System Administration : Linux System Administrator's Guide; Linux Documentation Project; : FTP sites; 1993. Essential System Administration, AEleen Frisch, O'Reilly and assoc. 1993. ISBN 0-937175-80-3. Good reference for any sysadmin (not just Linux) -- covers Sys V, 4.3 BSD, AIX, Xenix in detail. Accounting, backup & restore, intro to security, filesystems, modem/terminal info, intro to TCP/IP, printing ... Great appendix on Bourne shell programming. Practical Unix Security, Garfinkel & Spafford, O'Reilly and assoc. ISBN 0-937175-72-2. Some overlap with Essential System Admin., but all in all a solid book on security, especially for those aspiring to allow multiple-user, dial-up/net access to their Linux boxes. ============================================================================ Ronald P. Miller " Every good scientist is one part B.F. Skinner mammal@bu.edu and one part P.T. Barnum. " 74130.1172@compuserve.com Will hack Forth for food. .-. ------------------------------ Crossposted-To: comp.os.linux.help From: kjchang@hpl.hp.com (K. J. Chang) Subject: needs /usr/lib/libl.a Date: Sun, 20 Mar 1994 02:13:00 GMT I need to compile (gcc) a program with option "-ll" (two l's, like long). Therefore, I need a file called "libl.a". I found it in /usr/lib in my commercial UNIX workstations. Where can I find libl.a ? ------------------------------ From: gkm@tmn.com (Greg McGary) Subject: Re: VM performance tuning via program restructuring Date: 19 Mar 1994 22:29:33 -0500 Reply-To: gkm@tmn.com (Greg McGary) | From: jfh@rpp386 (John F. Haugh II) | | In article <2me7in$q02@senator-bedfellow.MIT.EDU> gkm@tmn.com (Greg McGary) writes: | | >1) A profiler that's capable of gathering usage statistics at a level | > of granularity no coarser than the function. ... | > The simplest approach, which also gives the most bang for the least | > buck, is to do simple call counts. | | Call counters aren't quite right for this. They assume that each function | call takes the same amount of time. What you want is the PC profiling | samples. Convert the counters to function names, sum all the counters, | and sort. The resultant order is the loader order. | | Call counters will tell you that an entry point is referenced a lot, but | not if the pages in that function are. Using the total time per function | tells if that the pages in that function are referenced frequently. The | "prof" command with standard UNIX will give this information directly. You're right, call counters are simplistic and crude. PC profiling offers a more accurate model of program behavior. There are even better models of program behavior in a paging environment: bounded locality intervals and critical working sets are two such models you'll find in the research literature. Interestingly enough, Breecher found that all of these approaches yield similar results on real systems. The real problem is that the more accurate the model, the greater the cost of gathering and analyzing profiling data. For *practical* purposes of program restructuring, I think that profiling strategy should be evaluated on the basis of *profiling cost*. Profiling overhead should be as low and the methodology as convenient and non-intrusive as possible, allowing the profiling to be done under real conditions. I'm not wedded to the idea of call-counters--if PC profiling can be done at lower cost than call-counting, then it wins. Michael Pall (pall@rz.uni-karlsruhe.de) sent me some documentation about HP's PA-RISC compiler/linker that has done program restructuring for the past few years. HP uses call counting at the basic block level and advertises that their restructuring improves instruction cache performance in addition to improving VM paging. When compiling/linking for what they call "profile-based optimization" (PBO), each compilation unit (source-file) is not compiled to object code, but to intermediate code; the object-code production is pushed into the link phase where it is possible to do global reordering of basic-blocks. My impression is that HP's build process is more complicated than I would like. What I envision (and I don't know yet if this is practical) is that some day *binary* distributions of large programs that could benefit from "custom fit" restructuring can be distributed with efficient profiling hooks and with symbol-tables having full relocation information so that users could do their own profiling under real work conditions, then reorganize/relink before installing permanently. | Neither of these techniques will tell you locality of data references. True. Automated data-space restructuring is a hard problem--to my knowledge there are no simple, universally applicable automatic solutions like there are for text-space restructuring. -- Greg McGary (703) 729-6217 gkm@tmn.com 525K East Market Street, #110, Leesburg, Virginia, 22075 ------------------------------ Crossposted-To: comp.os.linux.help From: wcn@cs.brown.edu (Wen-Chun Ni) Subject: Re: needs /usr/lib/libl.a Date: Sun, 20 Mar 1994 03:28:52 GMT In article kjchang@hpl.hp.com (K. J. Chang) writes: >I need to compile (gcc) a program with option "-ll" (two l's, >like long). Therefore, I need a file called "libl.a". I found >it in /usr/lib in my commercial UNIX workstations. > >Where can I find libl.a ? > > No, you can't. Under non-commercial *nix like Linux, you should use flex instead of lex. So check /usr/lib/libfl.a. If still nonexistent, ftp the flex source from GNU site. -- Wen-Chun Ni, wcn@cs.brown.edu =================================================================== "Great spirits have always encountered violent opposition from mediocre minds..." -- Albert Einstein ------------------------------ From: marko@hisplace.rhein-main.de (Marko Schuetz) Subject: OpenStep: What's going on with it? Date: Sat, 19 Mar 1994 11:33:46 GMT It must be a month now that I read a post about OpenStep and that it will be available for Linux. There was not any noise about it in the meantime. I had a look at NeXTSTEP for Intel at the CeBit two days ago. Tis amazing.... I sure would like to help make OpenStep for Linux happen. Who's working on it? What's to be done? Marko -- --- Marko Sch"utz / Koselstr. 7 / D 60318 Frankfurt / Germany marko@hisplace.rhein-main.de / Tel: +49 69 5971621 ------------------------------ From: smid@uni-paderborn.de (M. Samid) Subject: Linux for Sun4 Date: 18 Mar 1994 21:49:50 GMT Did someone know, if there exists a Linux version for Sun4 SPARC stations? I hope someone can say me a FTP-Adress. ------------------------------ From: wolff@tardis.et.tudelft.nl (Rogier Wolff) Subject: Re: A truely non-debugging Kernel? Date: 18 Mar 1994 16:14:27 GMT John F. Haugh II (jfh@rpp386) wrote: : In article : doug@midget.towson.edu (Doug McNaught) writes: : >In article <2loo9h$fo8@aurora.engr.latech.edu> : > ramos@engr.latech.edu (Alex Ramos) writes: : > : >>Geez! The kernel has _so much_ debugging code (sanity checks, etc) that : >>I wonder how much smaller it could be. It seems most kernel developers : >>have never heard of #ifdef... Just a thought :-) : > : > Well, I'd rather give up some memory and have something that panics : >and shuts itself down rather than blindly hosing my filesystems and/or : >hardware... I *like* sanity checks. A lot. : That's all or nothing thinking -- ship the kernel with #ifdef DEBUG and : after a few weeks when you are happy, recompile with -UDEBUG. Problem is that bugs show up when you least expect them. If checks are made all over the place you will also catch errors before they become critical. Oldfashioned OSes like BSD will only (try to) check info when it comes directly from the user. If the check there is wrong (off by one for example) you might seriously wack the system before any error is noticed. If as many as possible routines even inside the kernel try to verify sane-ness of parameters you will catch errors before they hose the system. That is why Linux can sometimes tell "cannot perform kernel paging request at address xxxxx" but then continues as if nothing happened. Most other OSes would have panic()ed. Another advantage is that you can make a kernel programming error and be notified as quickly as possible that something is going wrong. Ok. kernel hackers would -DDEBUG, but some errrors don't get noticed untill a while later. For example: > void * kmalloc (size_t size, int priority) ^^^^^^^^^^^^ > { > unsigned long flags; ^^^^^^^^^^ > .... > save_flags(flags); > ..... > __get_free_page (priority & GFP_LEVEL_MASK); Used to be: > void * kmalloc (size_t size, int flags) ^^^^^^^^^ > { > .... > save_flags(flags); > .... > __get_free_page (flags & GFP_LEVEL_MASK); This crashed systems that had network activity while swapping. At home where I didn't have any network I didn't notice the error. I considered the code stable. (This was an error where things simply crashed: error checking didn't make a difference). Linus spotted the error before releasing the code. Roger. -- * Not that I have tested it - I just wrote the code and hope it works. * * "Real programmers" don't test: they assume it works the first time, * * and anyway, what do you think beta-testers are for? -Linus Torvalds * EMail: wolff@dutecai.et.tudelft.nl ** Tel +31-15-783643 or +31-15-142371 ------------------------------ From: wolff@tardis.et.tudelft.nl (Rogier Wolff) Subject: Re: gcc internal compiler error - SIGSE [2~ [2SEGV Date: 18 Mar 1994 16:26:58 GMT Grant Edwards (grante@aquarius.rosemount.com) wrote: : Others have reported the infamous "sig 11" as being solved by: : + new disk controller : + slowing bus speed from 8MHz to something lower : + flakey SIMM Adding waitstates for the main memory. Adding waitstates for the cache. Roger. -- * Not that I have tested it - I just wrote the code and hope it works. * * "Real programmers" don't test: they assume it works the first time, * * and anyway, what do you think beta-testers are for? -Linus Torvalds * EMail: wolff@dutecai.et.tudelft.nl ** Tel +31-15-783643 or +31-15-142371 ------------------------------ From: haynes@cats.ucsc.edu (James H. Haynes) Subject: athena-inetd uploaded to tsx-11 and sunsite Date: 20 Mar 1994 06:44:21 GMT Athena public workstations require that the workstation user be able to turn rlogin, telnet, ftp, etc. on and off; they are normally off. Jonathan Kamens hacked changes into BSD inetd 5.25 to make it work like the MIT Project Athena inetd; and I've ported his changes to inetd 5.30, which is the inetd currently used with Linux. This adds a column to inetd.conf where each service may be designated as "on", "off", or "switched". A related program access_on/access_off allows the user to turn the switched services on or off. -- haynes@cats.ucsc.edu haynes@cats.bitnet "Ya can talk all ya wanna, but it's dif'rent than it was!" "No it aint! But ya gotta know the territory!" Meredith Willson: "The Music Man" ------------------------------ ** FOR YOUR REFERENCE ** The service address, to which questions about the list itself and requests to be added to or deleted from it should be directed, is: Internet: Linux-Development-Request@NEWS-DIGESTS.MIT.EDU You can send mail to the entire list (and comp.os.linux.development) via: Internet: Linux-Development@NEWS-DIGESTS.MIT.EDU Linux may be obtained via one of these FTP sites: nic.funet.fi pub/OS/Linux tsx-11.mit.edu pub/linux sunsite.unc.edu pub/Linux End of Linux-Development Digest ******************************