原创 ELF文件的加載和動態鏈接過程

近段時間在研究Erlang核心特性的實現,也許過段時間會有個系列的總結,期待...   今天看到有人寫一個深入Hello World的文章,想起來讀研的時候做的一個關於程序加載和鏈接的課程設計,也是以Hello World爲例說明的,隨發

原创 fuchsia hub文件系統

原文路徑:fuchsia/docs/the-book/hub.md hub是什麼意思? hub是zircon 自我檢查的門戶。它使工具能夠在運行時訪問有關realms(本文翻譯爲領域)和component(本文翻譯爲組件)實例的詳細結構信

原创 go語言學習1(go環境安裝)

上golang中國官網: https://golang.google.cn/dl/ 去下載對應系統的安裝包,如下圖: 我們這裏以Microsoft Windows爲例,下載go1.13.windows-amd64.msi鏡像包,根據指引

原创 blobfs中的默克爾樹應用

  1.Merkle Tree概念   Merkle Tree,通常也被稱作Hash Tree,顧名思義,就是存儲hash值的一棵樹。Merkle樹的葉子是數據塊(例如,文件或者文件的集合)的hash值。非葉節點是其對應子節點串聯字符串

原创 go語言學習6(流程控制和循環)

語句 舉例 if 語句 if a < 20 {        /* 如果條件爲 true 則執行以下語句 */        fmt.Printf("a 小於 20\n" )    } if...else 語句 /*

原创 go語言學習9(閉包)

閉包就是一個函數與其相關的引用環境組成的一個實體,看個例子: func addOne() func (int) int{ var n int = 0 return func (x int) int{            n = n +

原创 go語言學習5(運算符)

跟c語言一樣,下面簡單羅列,不做說明。 算術運算符:+、-、*、/、%、++、-- 關係運算符:==、!=、>、<、>=、<= 邏輯運算符:&&、||、! 位運算符:&、|、^、<<、>> 賦值運算符:=、+=、-=、*=、/=、%=、<

原创 go語言學習11(錯誤處理)

Golang中不支持try…catch…finally這種錯誤處理機制。而引入的處理方式是: defer,panic,recover,請看示例: func test(){ defer func(){     err := recover

原创 zircon的event實現及async loop機制

zircon中的event是一種異步併發的機制。用戶空間可以對8個信號bit位進行設置、清除和等待。 event的創建接口爲zx_event_create() zx_event_create     sys_event_create   

原创 go語言學習7(函數、init函數、匿名函數)

Go 語言最少有個 main() 函數。函數定義格式: func function_name( [parameter list] ) [return_types] {    函數體 } 說明下,函數的返回值return_types可以沒有

原创 go語言學習12(結構體)

格式: type 結構體名稱 struct{            field1 type            field2 type } 結構體如果需要導出到其他包用,則名字首字母需要大寫;結構體中成員如果需要在其他包中引用,也需要首

原创 go語言學習2(註釋及代碼風格)

行註釋:// 塊註釋:/**/ 一般行註釋比較通用,官方推薦使用行註釋來註釋整個方法和語句。塊註釋主要用在對包(package)的描述中。 函數大括號的格式 go語言中不允許使用如下的大括號使用方式: func main() {    

原创 go語言學習4(數據類型、數組、切片、map)

數據類型用於聲明函數和變量,數據類型的出現是爲了把數據分成所需內存大小不同的數據,編程的時候需要用大數據的時候才需要申請大內存,就可以充分利用內存。 Go 語言按類別有以下幾種數據類型: 布爾型布爾型的值只可以是常量 true 或者 f

原创 go語言學習3(變量)

Go 語言變量名由字母、數字、下劃線組成,其中首個字符不能爲數字。聲明變量的一般形式是使用 var 關鍵字,格式:var 變量名 變量類型;舉例:var test string 也可以同時聲明多個變量,格式:var 變量名1,變量名2 變

原创 go語言學習8(包,package)

包相當於一個源文件的別名,爲了進行功能區分,將本源文件中的全局函數、結構和變量進行導出,同時定義自己功能模塊使用的函數,防止與其他文件重名。包的本質就是創建不同的文件夾,來存放程序文件。一個文件夾下可以有多個go文件,但一般都打入同一個包