- Go Systems Programming : Master Linux and Unix system level programming with Go
- Go systems programming master linux and unix system level programming with go
- About
- Go Systems Programming
- Book description
- Go Systems Programming: Master Linux and Unix system level programming with Go
- What you will learn
- About the Author
- Table of Contents
Go Systems Programming : Master Linux and Unix system level programming with Go
About This BookLearn how to write system’s level code in Golang, similar to Unix/Linux systems codeRamp up in Go quicklyDeep dive into Goroutines and Go concurrency to be able to take advantage of Go server-level constructsWho This Book Is For
Intermediate Linux and general Unix programmers. Network programmers from beginners to advanced practitioners. C and C++ programmers interested in different approaches to concurrency and Linux systems programming.
What You Will LearnExplore the Go language from the standpoint of a developer conversant with Unix, Linux, and so onUnderstand Goroutines, the lightweight threads used for systems and concurrent applicationsLearn how to translate Unix and Linux systems code in C to Golang codeHow to write fast and lightweight server codeDive into concurrency with GoWrite low-level networking codeIn Detail
Go is the new systems programming language for Linux and Unix systems. It is also the language in which some of the most prominent cloud-level systems have been written, such as Docker. Where C programmers used to rule, Go programmers are in demand to write highly optimized systems programming code.
Created by some of the original designers of C and Unix, Go expands the systems programmers toolkit and adds a mature, clear programming language. Traditional system applications become easier to write since pointers are not relevant and garbage collection has taken away the most problematic area for low-level systems code: memory management.
This book opens up the world of high-performance Unix system applications to the beginning Go programmer. It does not get stuck on single systems or even system types, but tries to expand the original teachings from Unix system level programming to all types of servers, the cloud, and the web.
This is the first book to introduce Linux and Unix systems programming in Go, a field for which Go has actually been developed in the first place.
Go systems programming master linux and unix system level programming with go
This is the code repository for Go Systems Programming, published by Packt. It contains all the supporting project files necessary to work through the book from start to finish.
Go is the new systems programming language for Linux and UNIX systems. It is also the language in which some of the most prominent Cloud-level systems have been written, for instance Docker et al. Where C programmers used to rule, Go programmers are gaining considerable traction to write highly optimized systems programming code.
Created by the original designers of C and UNIX, it expands the systems programmers toolkit to add a mature, clear programming language. Threads and networking code, as well as traditional systems application become easier to write since pointers are not relevant and garbage collection has been taken away the most problematic area for low-level systems code: memory management.
This book opens up the world of high-performant systems to the beginning Go programmer. It does not get stuck on single systems or even system types, but tries to expand the original teachings from Unix system’s level programming to all types of servers, the cloud and the web.
Instructions and Navigation
All of the code is organized into folders. Each folder starts with a number followed by the application name. For example, Chapter02.
The code will look like the following:
package main import "fmt" import "os" func main() < arguments := os.Args for i := 0; i < len(arguments); i++ < fmt.Println(arguments[i]) >>
This book requires a computer running a Unix variant with a relatively recent Go version, which includes any machine running Mac OS X, macOS, or Linux.
Apple used to call its operating system as Mac OS X followed by the version number; however, after Mac OS X 10.11 (El Capitan), Apple changed that, and Mac OS X 10.12 is now called macOS 10.12 (Sierra) – in this book, the terms Mac OS X and macOS are used interchangeably. Additionally, there is a big chance that by the time you read this book, the latest version of macOS will be macOS 10.13 (High Sierra). You can learn more about the various versions of macOS by visiting https://en.wikipedia.org/wiki/MacOS.
All of the Go code in this book has been tested with Go 1.8.x running on a iMac using macOS 10.12 Sierra and with Go version 1.3.3 running on a Debian Linux machine. Most of the code can run on both Go versions without any code changes. However, when newer Go features are used, the code will fail to compile with Go 1.3.3—the book states the Go programs that will not compile with Go version 1.3.3 or require Go version 1.8 or newer.
Please note that at the time of writing this text, the latest Go version is 1.9. Given the way Go works, you will be able to compile all the Go code of this book in newer Go versions without any changes.
If you have already purchased a print or Kindle version of this book, you can get a DRM-free PDF version at no cost.
Simply click on the link to claim your free PDF.
About
Go Systems Programming, published by Packt
Go Systems Programming
Read it now on the O’Reilly learning platform with a 10-day free trial.
O’Reilly members get unlimited access to books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.
Book description
Learning the new system’s programming language for all Unix-type systems
- Learn how to write system’s level code in Golang, similar to Unix/Linux systems code
- Ramp up in Go quickly
- Deep dive into Goroutines and Go concurrency to be able to take advantage of Go server-level constructs
Intermediate Linux and general Unix programmers. Network programmers from beginners to advanced practitioners. C and C++ programmers interested in different approaches to concurrency and Linux systems programming.
- Explore the Go language from the standpoint of a developer conversant with Unix, Linux, and so on
- Understand Goroutines, the lightweight threads used for systems and concurrent applications
- Learn how to translate Unix and Linux systems code in C to Golang code
- How to write fast and lightweight server code
- Dive into concurrency with Go
- Write low-level networking code
Go is the new systems programming language for Linux and Unix systems. It is also the language in which some of the most prominent cloud-level systems have been written, such as Docker. Where C programmers used to rule, Go programmers are in demand to write highly optimized systems programming code.
Created by some of the original designers of C and Unix, Go expands the systems programmers toolkit and adds a mature, clear programming language. Traditional system applications become easier to write since pointers are not relevant and garbage collection has taken away the most problematic area for low-level systems code: memory management.
This book opens up the world of high-performance Unix system applications to the beginning Go programmer. It does not get stuck on single systems or even system types, but tries to expand the original teachings from Unix system level programming to all types of servers, the cloud, and the web.
This is the first book to introduce Linux and Unix systems programming in Go, a field for which Go has actually been developed in the first place.
Go Systems Programming: Master Linux and Unix system level programming with Go
Go is the new systems programming language for Linux and Unix systems. It is also the language in which some of the most prominent cloud-level systems have been written, such as Docker. Where C programmers used to rule, Go programmers are in demand to write highly optimized systems programming code.
Created by some of the original designers of C and Unix, Go expands the systems programmers toolkit and adds a mature, clear programming language. Traditional system applications become easier to write since pointers are not relevant and garbage collection has taken away the most problematic area for low-level systems code: memory management.
This book opens up the world of high-performance Unix system applications to the beginning Go programmer. It does not get stuck on single systems or even system types, but tries to expand the original teachings from Unix system level programming to all types of servers, the cloud, and the web.
What you will learn
- Explore the Go language from the standpoint of a developer conversant with Unix, Linux, and so on
- Understand Goroutines, the lightweight threads used for systems and concurrent applications
- Learn how to translate Unix and Linux systems code in C to Golang code
- How to write fast and lightweight server code
- Dive into concurrency with Go
- Write low-level networking code
About the Author
Mihalis Tsoukalos is a Unix administrator, programmer, DBA, and mathematician, who enjoys writing technical books and articles and learning new things. He has written more than 250 technical articles for many magazines including Sys Admin, MacTech, Linux User and Developer, USENIX ;login:, Linux Format, and Linux Journal. His research interests include databases, operating systems, Statistics, and machine learning.
He is also the technical editor for MongoDB in Action, Second Edition, published by Manning.
Table of Contents
- Getting Started with Go and Unix Systems Programming
- Writing programs in Go
- Advanced Go Features
- Go Packages, Algorithms, and Data Structures
- Files and Directories
- File Input and Output
- Working with System Files
- Processes and Signals
- Goroutines — Basic Features
- Goroutines — Advance Features
- Writing Web Applications in Go
- Network Programming