#これはなに?
Goで覗くシステムプログラミングの世界で学んだことをアウトプットする記事
#システムプログラミングとは?
以下のような様々定義があるが、今回は一番下の「OSの提供する機能を使ったプログラミング」をシステムプログラミングの定義として進める。
- C言語によるプログラミング
- アセンブリ言語を意識したC言語によるプログラミング
- 言語処理系(インタプリタを含む)、特にネイティブコードを生成するコンパイラの開発
- OS自身のプログラミング
- OSの提供する機能を使ったプログラミング
#OSの機能について
一般的なコンピュータに搭載されているOSについて、その機能の最大公約数をとれば、次の機能に集約されるでしょう。
- メモリの管理
- プロセスの管理
- プロセス間通信
- ファイルシステム
- ネットワーク管理
- ユーザ管理(権限など)
- タイマー
#Go言語
Go言語は、C言語の性能とPythonの書きやすさ/読みやすさを両立させ、モダンな言語特徴をうまく取り入れた言語となることを目標にGoogleが開発したプログラミング言語。
import "fmt"
func main(){
fmt.println("hello world¥n")
}
デバックをしていく事により、上記プログラムがシステムコールの呼び出しをしていることがわかる。