[comp.unix.misc] Request For Advice

carl@slhisc.uucp (Carl Rabinowitz) (04/03/91)

This is a request for advice on how I can shore up my knowledge
of systems programming, particularly in a Unix environment.

I have been doing systems (or quasi-systems) programming for 
several years.  After working on minicomputers and PCs, I am 
now using Sun workstations.  While I am a pretty good C
programmer, and I can find my way around (more or less) in
Unix, I am aware that there is a superficiality to my knowledge
which I would like to remedy.

I am not sure how best to describe what I am looking for, but
one way to put it is that I would like to understand much better
what happens during the total life cycle of a process.  For
example, one tidbit I picked up is that when a process makes a
system call, it gives up the remainder of its current time-slice.
I'm sure that there is much more along these lines that I don't
know.  Also, I would like to know what the correlation is between
C code and the resultant executing process -- for example, what
takes place just by virtue of coding the main() function?

Two of my colleagues recommended reading _Systems Programming_ 
by John Donovan.  It seems to be very comprehensive, but it was 
written in the pre-C/Unix/workstation era.  I'm not sure how 
relevant this book is to my needs.  The text which has matched
my needs most closely is _Advanced C: Tips and Techniques_ by
Paul and Gail Anderson, which describes, among other things,
how a stack frame is used when a function is called.

I have had very little experience with assembly language, and
my knowledge of hardware architecture is minimal.  One colleague
suggested buying a Heath kit which would enable me to build and
program a 6800 microprocessor.  Another possibility would be to
learn the SPARC assembly language, but tutorial texts in this
area seem to be nonexistent.

What should my main tack (or tacks) be?  Is learning assembler
and microprocessor architecture the best route?  If so, which
would be a good machine to learn on?  In general, are there any 
books which you would recommend?  I would be very grateful for
any suggestions.

Please send replies to me at uunet!slcpi!slhisc!carl

         Carl Rabinowitz
    Distributed Infrastructure
   Shearson Lehman Brothers, Inc.