- Hands-On System Programming with Go
- Alex Guerrieri
- 249字
- 2021-06-24 13:42:18
Summary
This chapter provided a general overview of the main Unix components and how they interact with each other. We started with memory management and how it works in Unix, understanding concepts such as pagination and swap.
Then we analyzed the filesystem, taking a look at the support from modern operating systems, and explained the difference between the existing file types: files, directories, and hard and soft links.
After learning about the concept of inode, we took a look at the structure of a directory in a Unix operating system and explained how to navigate and interact with the filesystem, as well as how to mount and unmount other partitions.
We moved on to processes, running applications in Unix, and their structure and attributes. We analyzed process life cycle, from its creation through fork or exec, to its end or termination with the kill command.
Another important topic was users, groups, and permissions. We saw what a user is, what groups are, how to join them, and how these concepts are used to divide permissions into three groups: user, group, and others. This helped to better understand the Unix permission model, as well as how to change permissions for files and directories.
Finally, we saw how communication between processes works with one-way channels such as signals and exit codes, or bidirectional communication such as sockets.
In the next chapter, we will have a quick overview of the Go language.