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.