## Advanced Programming in the Unix Environment - introduction

134 阅读1分钟

这是我参与 8 月更文挑战的第 1 天,活动详情查看: 8月更文挑战

Introduction

What

  • gain an understanding of Unix operating systems from a programmer's perspective
  • gain programming experience; systems programming experience in particular
  • gain a deeper understanding of a number of fundamental OS concepts.
    • Multi user concepts
    • basic and advanced IO
    • Process relationships
    • Interprocess communications
    • basic network programming using a client/server model

Why

  • understanding the Unix family of operating systems gives you a better understanding of other computer operating systems.
  • The systems level experience we gain here will make us better, more advanced users of the system, and will let us better understand the limitations of all programs or applications we encounter.
  • understand a number of general programming and OS concepts, again reinforcing some previous lessons and hopefully helping you gain new insights as well.
  • From a systems perspective, C remains the de-facto standard and understanding how to write C in the Unix environment will make you a better programmer all around: a better python programmer, a better Go programmer, a better perl or rust or even javascript programmer.

How

  • we are going to use the NetBSD operating system as our reference platform.

  • The next thing we note about programming is that it's useful to be able to read code.

  • Another interesting thing to do is to compare how different systems have implemented the same tools.

    • Consider that all the Unix systems come with a bunch of tools that are more or less the same or at least very similar across them -- do they share code? Do they implement the same logic?
    • stevens.netmeister.org/631/compare…
  • writing a whole lot of code. Code is communication. Code needs to be easy to read not just for the author right now, but for others as well.