본문 바로가기

리디 접속이 원활하지 않습니다.
강제 새로 고침(Ctrl + F5)이나 브라우저 캐시 삭제를 진행해주세요.
계속해서 문제가 발생한다면 리디 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기

[체험판] Go Systems Programming 상세페이지

[체험판] Go Systems Programming

Master Linux and Unix system level programming with Go

  • 관심 0
소장
판매가
무료
출간 정보
  • 2017.09.26 전자책 출간
듣기 기능
TTS(듣기) 지원
파일 정보
  • PDF
  • 38 쪽
  • 4.6MB
지원 환경
  • PC뷰어
  • PAPER
ISBN
9781787123151
ECN
-

이 작품의 시리즈더보기

  • [체험판] Go Systems Programming (Mihalis Tsoukalo)
  • Go Systems Programming (Mihalis Tsoukalo)
[체험판] Go Systems Programming

작품 정보

▶Book Description
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

▶Key Features
⦁ 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

▶Who This Book Is For
This book is for Unix users, power Unix users, Unix system administrators, and Unix system developers that use Go on one or more Unix variants and want to start developing systems software using the Go programming language.
Although this book might not be the best choice for people that do not feel comfortable with the Unix operating system or for people who have no previous programming experience, amateur programmers will find lots of practical information about Unix that might inspire them to start developing their own system utilities.

▶What this book covers
⦁ Chapter 1, Getting started with Go and Unix Systems Programming, starts by defining what systems programming is before talking about the advantages and the disadvantages of Go, the features of Go version 1.8, two handy Go tools named gofmt and godoc, as well as the various states of Unix processes.
⦁ Chapter 2, Writing Programs in Go, helps you learn how to compile Go code and how to use the environment variables that Go supports, and understand how Go reads the command line arguments of a program. Then, we will talk about getting user input and output, which are fundamental tasks, show you how to define functions in Go, where the defer keyword is mentioned for the first time in this book and continue by discussing the data structures that Go offers using handy code examples. In the remaining sections of the chapter, we will discuss Go interfaces and random number generation. I am sure that you are going to enjoy this chapter!
⦁ Chapter 3, Advanced Go Features, goes deeper and starts talking about some advanced Go features, including error handling, which is critical when developing systems software and error logging. Then it introduces you to pattern matching and regular expressions, Go
Reflection, and talks about unsafe code. After that, it compares Go to other programming languages and presents two utilities, named dtrace(1) and strace(1), that allow you to see what happens behind the scenes when you execute a program. Lastly, it talks about how
you can use the go tool to detect unreachable code and how to avoid some common Go mistakes.
⦁ Chapter 4, Go Packages, Algorithms, and Data Structures, talks about algorithms and sorting in Go and about the sort.Slice() function, which requires Go version 1.8 or newer. Then it shows Go implementations of a linked list, a binary tree and a hash table. After that, it discusses Go packages and teaches you how to create and use your own Go packages. The last part of the chapter discusses Garbage collection in Go.
⦁ Chapter 5, Files and Directories, is the first chapter of this book that deals with a systems programming topic, which is the handling of files, symbolic links, and directories. In this chapter, you will find Go implementations of the core functionality of Unix tools such as which(1), pwd(1), and find(1), but first you will learn how to use the flag package in order to parse the command-line arguments and options of a Go program. Additionally, you will learn how to delete, rename, and move files as well as how to traverse directory
structures the Go way. The last part of this chapter implements a utility that creates a copy of all the directories of a directory structure!
⦁ Chapter 6, File Input and Output, shows you how to read the contents of a file, how to change them, and how to write your own data to files! In this chapter, you will learn about the io package, the io.Writer and io.Reader interfaces, and the bufio package that is used for buffered input and output. You will also create Go versions of the cp(1), wc(1), and dd(1) utilities. Lastly, you will learn about sparse files, how to create sparse files in Go, how to read and write records from files, and how to lock files in Go.
⦁ Chapter 7, Working with System Files, teaches you how to deal with Unix system files, which includes writing data to Unix log files, appending data to existing files, and altering the data of text files. In this chapter, you will also learn about the log and log/syslog standard Go packages, about Unix file permissions, and take your pattern matching and regular expressions knowledge even further using practical examples. You will also learn about finding the user ID of a user as well as the Unix groups a user belongs to. Lastly, you will discover how to work with dates and times in Go using the time package and how to create and rotate log files on your own.
⦁ Chapter 8, Processes and Signals, begins by discussing the handling of Unix signals in Go with the help of the os/signal package by presenting three Go programs. Then it shows a Go program that can rotate its log files using signals and signal handling and another Go program that uses signals to present the progress of a file copy operation. This chapter will also teach you how to plot data in Go and how to implement Unix pipes in Go. Then it will implement the cat(1) utility in Go before briefly presenting the Go code of a Unix socket client. The last section of the chapter quickly discusses how you can program a Unix shell in Go.
⦁ Chapter 9, Goroutines –. Basic Features, discusses a very important Go topic, which is goroutines, by talking about how you can create goroutines and how you can synchronize them and wait for them to finish before ending a program. Then it talks about channels and pipelines, which help goroutines communicate and exchange data in a safe way. The last part of the chapter presents a version of the wc(1) utility that is implemented using goroutines. However, as goroutines is a big subject, the next chapter will continue talking about them.
⦁ Chapter 10, Goroutines –. Advanced Features, talks about more advanced topics related to goroutines and channels, including buffered channels, signal channels, nil channels, channels of channels, timeouts, and the select keyword. Then it discusses issues related to shared memory and mutexes before presenting two more Go versions of the wc(1) utility that use channels and shared memory. Lastly, this chapter will talk about race conditions and the GOMAXPROCS environment variable.
⦁ Chapter 11, Writing Web Applications in Go, talks about developing web applications and web servers and clients in Go. Additionally, it talks about communicating with MongoDB and MySQL databases using Go code. Then, it illustrates how to use the html/template package, which is part of the Go standard library and allows you to generate HTML output using Go HTML template files. Lastly, it talks about reading and writing JSON data before presenting a utility that reads a number of web pages and returns the number of times a given keyword was found in those web pages.
⦁ Chapter 12, Network Programming, discusses topics related to TCP/IP and its protocols using the net Go standard package. It shows you how to create TCP and UDP clients and servers, how to perform various types of DNS lookups, and how to use Wireshark to inspect network traffic. Additionally, it talks about developing RPC clients and servers in Go as well as developing a Unix socket server and a Unix socket client.

작가 소개

⦁Mihalis Tsoukalos
Mihalis Tsoukalos is a Unix administrator, programmer, DBA and mathematician who enjoys writing technical articles and learning new technologies. His research interests include programming languages, databases and operating systems. He holds a B.Sc in mathematics from the University of Patras and an M.Sc in IT from University College London (UK). He has written various technical articles for Sys Admin, MacTech, C/C++ Users Journal, Linux Journal, Linux User and Developer, Linux Format and Linux Voice.

리뷰

0.0

구매자 별점
0명 평가

이 작품을 평가해 주세요!

건전한 리뷰 정착 및 양질의 리뷰를 위해 아래 해당하는 리뷰는 비공개 조치될 수 있음을 안내드립니다.
  1. 타인에게 불쾌감을 주는 욕설
  2. 비속어나 타인을 비방하는 내용
  3. 특정 종교, 민족, 계층을 비방하는 내용
  4. 해당 작품의 줄거리나 리디 서비스 이용과 관련이 없는 내용
  5. 의미를 알 수 없는 내용
  6. 광고 및 반복적인 글을 게시하여 서비스 품질을 떨어트리는 내용
  7. 저작권상 문제의 소지가 있는 내용
  8. 다른 리뷰에 대한 반박이나 논쟁을 유발하는 내용
* 결말을 예상할 수 있는 리뷰는 자제하여 주시기 바랍니다.
이 외에도 건전한 리뷰 문화 형성을 위한 운영 목적과 취지에 맞지 않는 내용은 담당자에 의해 리뷰가 비공개 처리가 될 수 있습니다.
아직 등록된 리뷰가 없습니다.
첫 번째 리뷰를 남겨주세요!
'구매자' 표시는 유료 작품 결제 후 다운로드하거나 리디셀렉트 작품을 다운로드 한 경우에만 표시됩니다.
무료 작품 (프로모션 등으로 무료로 전환된 작품 포함)
'구매자'로 표시되지 않습니다.
시리즈 내 무료 작품
'구매자'로 표시되지 않습니다. 하지만 같은 시리즈의 유료 작품을 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
작품을 영구 삭제해도 '구매자' 표시는 남아있습니다.
결제 취소
'구매자' 표시가 자동으로 사라집니다.

개발/프로그래밍 베스트더보기

  • 나만의 MCP 서버 만들기 with 커서 AI (서지영)
  • 핸즈온 LLM (제이 알아마르, 마르턴 흐루턴도르스트)
  • 개정2판 | 인프라 엔지니어의 교과서 (사노 유타카, 김성훈)
  • 조코딩의 랭체인으로 AI 에이전트 서비스 만들기 (우성우, 조동근)
  • 아키텍트 첫걸음 (요네쿠보 다케시, 조다롱)
  • 지속적 배포 (발렌티나 세르빌, 이일웅)
  • 개발자를 위한 IT 영어 온보딩 가이드 (장진호)
  • 개정2판 | 파인만의 컴퓨터 강의 (리처드 파인만, 서환수)
  • Do it! LLM을 활용한 AI 에이전트 개발 입문 (이성용)
  • 테디노트의 랭체인을 활용한 RAG 비법노트_기본편 (이경록(테디노트))
  • 랭체인과 랭그래프로 구현하는 RAG・AI 에이전트 실전 입문 (니시미 마사히로, 요시다 신고)
  • 생성형 AI를 위한 프롬프트 엔지니어링 (제임스 피닉스, 마이크 테일러)
  • 주니어 백엔드 개발자가 반드시 알아야 할 실무 지식 (최범균)
  • 조코딩의 AI 비트코인 자동 매매 시스템 만들기 (조동근)
  • 개정판 | 혼자 공부하는 머신러닝+딥러닝 (박해선)
  • Node js로 배우는 서버 사이드 개발 (강민정)
  • 최고의 프롬프트 엔지니어링 강의 (김진중)
  • 타입스크립트, 리액트, Next.js로 배우는 실전 웹 애플리케이션 개발 (테지마 타쿠야, 요시다 타케토)
  • 혼자 공부하는 데이터 분석 with 파이썬 (박해선)
  • 사용자를 사로잡는 UXUI 실전 가이드 (김성연(우디))

본문 끝 최상단으로 돌아가기

spinner
앱으로 연결해서 다운로드하시겠습니까?
닫기 버튼
대여한 작품은 다운로드 시점부터 대여가 시작됩니다.
앱으로 연결해서 보시겠습니까?
닫기 버튼
앱이 설치되어 있지 않으면 앱 다운로드로 자동 연결됩니다.
모바일 버전