{"id":36852933,"url":"https://github.com/zboya/golang_runtime_reading","last_synced_at":"2026-01-12T14:40:19.286Z","repository":{"id":57597289,"uuid":"142290335","full_name":"zboya/golang_runtime_reading","owner":"zboya","description":"golang 1.10.2 runtime code reading - golang runtime源码分析。只有思考过，你才会印象深刻。","archived":false,"fork":false,"pushed_at":"2020-06-07T04:32:10.000Z","size":153742,"stargazers_count":519,"open_issues_count":4,"forks_count":76,"subscribers_count":31,"default_branch":"master","last_synced_at":"2024-06-20T16:45:31.806Z","etag":null,"topics":["data-structures","golang","goroutine","runtime","source"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zboya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-07-25T11:23:51.000Z","updated_at":"2024-06-17T10:21:23.000Z","dependencies_parsed_at":"2022-08-25T01:41:54.398Z","dependency_job_id":null,"html_url":"https://github.com/zboya/golang_runtime_reading","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zboya/golang_runtime_reading","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zboya%2Fgolang_runtime_reading","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zboya%2Fgolang_runtime_reading/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zboya%2Fgolang_runtime_reading/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zboya%2Fgolang_runtime_reading/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zboya","download_url":"https://codeload.github.com/zboya/golang_runtime_reading/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zboya%2Fgolang_runtime_reading/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28340403,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T12:22:26.515Z","status":"ssl_error","status_checked_at":"2026-01-12T12:22:10.856Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-structures","golang","goroutine","runtime","source"],"created_at":"2026-01-12T14:40:18.585Z","updated_at":"2026-01-12T14:40:19.274Z","avatar_url":"https://github.com/zboya.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 初定方案\n**有任何理解错误的地方，还望指出**\n\n## golang官网\n* [golang.org](https://golang.org)\n* [github.com/golang/go](https://github.com/golang/go)\n\n## 目标\n理解golang runtime的运行原理，重点掌握golang的调度，gc，内存分配，数据结构. \n\n`对于注释不理解的，欢迎提issue`。\n\n## 目前的进度\n* 2018-08-05 已阅读完调度系统的大概源码\n* 2018-08-12 正在仔细阅读调度的源码\n* 2018-08-19 正在仔细阅读调度的源码\n* 2018-08-27 正在仔细阅读调度的源码\n* 2018-09-02 已仔细阅读完调度的源码，正在阅读gc的大概源码\n* 2018-09-09 正在阅读gc的大概源码\n* 2018-09-16 大概阅读完gc流程源码\n* 2018-09-24 开始详细阅读gc源码\n* 2018-10-13 理解mgc的注释和大概阅读gcStart\n* 2018-10-20 阅读gcMark准备和markroots扫描根对象的逻辑\n* 2018-10-27 阅读gc的栈扫描和消费标记队列\n* 2018-11-04 内存分配的注释 (@jingyugao)\n* 2018-11-25 简单看了一下系统调用如何调度 \n* 2018-01-12 开始阅读内存分配\n* 2019-01-19 补充gc的整个流程和继续阅读内存分配\n* 2019-02-10 继续阅读内存分配\n* 2019-02-22 基本阅读完内存分配的流程，接下来阅读栈的分配\n* 2019-03-03 阅读栈管理的代码\n* 2019-03-18 基本阅读完stack的分配\n* 2019-03-30 阅读golang网络底层原理和Mutex的实现\n* 2019-04-08 简单阅读channel的实现\n* 2019-04-21 从头开始阅读调度系统，并开始编写调度实现文档\n* 2019-05-12 继续阅读调度系统，编写调度实现文档\n\n## 微信群\n想一起阅读的小伙伴可以加我微信`sheepbao-520`,加入阅读群\n![wechat](./wechat.jpeg)  \n\n## github地址\nhttps://github.com/sheepbao/golang_runtime_reading\n\n### 时间\n每周日晚9:00-10:00\n\n### golang版本\ngo1.10.2\n\n### 准备工作\n* 有一台能上网的电脑\n* 安装zoom软件，并注册\n* 装一个阅读golang源码的编译器或者ide，推荐vscode\n* 下载go1.10.2的源码\n\n### 可以先阅读的资料\n* [Goroutine背后的系统知识](http://blog.jobbole.com/35304/)\n* [golang源码剖析-雨痕老师](https://github.com/qyuhen/book)\n* [go-intervals](https://github.com/teh-cmc/go-internals)\n* [也谈goroutine调度器](https://tonybai.com/2017/06/23/an-intro-about-goroutine-scheduler/)\n\n### 活动步骤\n* 线上用zoom共享屏幕，阅读golang runtime源码，一起讨论添加注释，尽量让每个人都理解\n* 提交结果到github\n\n### 阅读的方式\n1. 选好一个主题，并查询资料阅读该主题的相关背景\n2. 大概浏览阅读相关源码\n3. 仔细阅读源码实现原理\n4. 最后再整理整个流程\n\n### 暂定的主题\n1. goroutine调度实现\n2. 数据结构的实现\n3. 内存分配实现\n4. gc的实现\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzboya%2Fgolang_runtime_reading","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzboya%2Fgolang_runtime_reading","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzboya%2Fgolang_runtime_reading/lists"}