Hands-On System Programming with Go : Build Modern and Concurrent Applications for Unix and Linux Systems Using Golang.

Go is the new systems programming language for Linux and Unix systems. After a brief introduction of Unix-based OS and of system programming, we'll dive into Go standard packages, focusing on how easily they allow to interact will all the functionality of the OS. By the end of this book, you wi...

Full description

Saved in:
Bibliographic Details
Online Access: Full text (MCPHS users only)
Main Author: Guerrieri, Alex
Format: Electronic eBook
Language:English
Published: Birmingham : Packt Publishing, Limited, 2019
Subjects:
Local Note:ProQuest Ebook Central
Table of Contents:
  • Cover; Title Page; Copyright and Credits; Dedication; About Packt; Contributors; Table of Contents; Preface; Section 1: An Introduction to System Programming and Go; Chapter 1: An Introduction to System Programming; Technical requirements; Beginning with system programming; Software for software; Languages and system evolution; System programming and software engineering; Application programming interfaces; Types of APIs; Operating systems; Libraries and frameworks; Remote APIs; Web APIs; Understanding the protection ring; Architectural differences; Kernel space and user space
  • Diving into system callsServices provided; Process control; File management; Device management; Information maintenance; Communication; The difference between operating systems; Understanding the POSIX standard; POSIX standards and features; POSIX. 1
  • core services; POSIX. 1b and POSIX. 1c
  • real-time and thread extensions; POSIX. 2
  • shell and utilities; OS adherence; Linux and macOS; Windows; Summary; Questions; Chapter 2: Unix OS Components; Technical requirements; Memory management; Techniques of management; Virtual memory; Understanding files and filesystems
  • Operating systems and filesystemsLinux; macOS; Windows; Files and hard and soft links; Unix filesystem; Root and inodes; Directory structure; Navigation and interaction; Mounting and unmounting; Processes; Process properties; Process life cycle; Foreground and background; Killing a job; Users, groups, and permissions; Users and groups; Owner, group, and others; Read, write, and execute; Changing permission; Process communications; Exit codes; Signals; Pipes; Sockets; Summary; Questions; Chapter 3: An Overview of Go; Technical requirements; Language features; History of Go
  • Strengths and weaknessesNamespace; Imports and exporting symbols; Type system; Basic types; Composite types; Custom-defined types; Variables and functions; Handling variables; Declaration; Operations; Casting; Scope; Constants; Functions and methods; Values and pointers; Understanding flow control; Condition; Looping; Exploring built-in functions; Defer, panic, and recover; Concurrency model; Understanding channels and goroutines; Understanding memory management; Stack and heap; The history of GC in Go; Building and compiling programs; Install; Build; Run; Summary; Questions
  • Section 2: Advanced File I/O OperationsChapter 4: Working with the Filesystem; Technical requirements; Handling paths; Working directory; Getting and setting the working directory; Path manipulation; Reading from files; Reader interface; The file structure; Using buffers; Peeking content; Closer and seeker; Writing to file; Writer interface; Buffers and format; Efficient writing; File modes; Other operations; Create; Truncate; Delete; Move; Copy; Stats; Changing properties; Third-party packages; Virtual filesystems; Filesystem events; Summary; Questions; Chapter 5: Handling Streams