這裡是一些地理信息科學/計算機科學與技術的筆記/作業(也包含自學的公開課部分,存放一些雜項)的整理,例如各種本科課程的作業、筆記、項目鏈接,對課程的總結和經驗分享,遇到過很棒的技術博客等等...也許可以供您參考;不過我自己屬於憑興趣上課也不是特別在意績點,所以有些作業可能是水過去的,並不能保證質量一致(警告:僅供參考,請勿抄襲)
建造這個倉庫的初衷其實只是為了我自己存儲一些資料,以便於在有需要的時候能快速回憶起自己到底學過了哪些東西;
也许您也曾碰到过这样的情况:好像曾经上过某些课程或者阅读过很久价值的文章,但反过来又忘记了具体内容...不包含教師授課的PPT、非本人回憶的歷年卷、以及一些不適合公開的作業內容等等(但可能會給出其他公開鏈接)
(以後有時間會慢慢把之前的其他的筆記和資料整理上來)
本倉庫的目錄結構大致以課程分類,可能部分不完全相同(也許可以試著使用一下github 的搜索功能?):
這部分是一些課程小項目或者大作業的鏈接,還有一些自己學習過程中寫的demo,有一部分在本repo 中,一部分在其他repo:
數據結構:
深度學習:
網絡:
圖形學:
其他:
GIS:
C++:
計算機系統:
其他:
eunomia-bpf 是一個開源的eBPF 動態加載運行時和開發工具鏈,是為了簡化eBPF 程序的開發、構建、分發、運行而設計的,基於libbpf 的CO-RE 輕量級開發框架。
使用eunomia-bpf ,可以:
eunomia-bpf 由一個編譯工具鍊和一個運行時庫組成, 對比傳統的BCC、原生libbpf 等框架,大幅簡化了eBPF 程序的開發流程,在大多數時候只需編寫內核態代碼,即可輕鬆構建、打包、發布完整的eBPF 應用,同時內核態eBPF 代碼保證和主流的libbpf, libbpfgo, libbpf-rs 等開發框架的100% 兼容性。需要編寫用戶態代碼的時候,也可以藉助Webassembly 實現通過多種語言進行用戶態開發。和bpftrace 等腳本工具相比, eunomia-bpf 保留了類似的便捷性, 同時不僅局限於trace 方面, 可以用於更多的場景, 如網絡、安全等等。
- eunomia-bpf 項目Github 地址: https://github.com/eunomia-bpf/eunomia-bpf
- gitee 鏡像: https://gitee.com/anolis/eunomia
- 文檔網站:https://eunomia-bpf.github.io/
作業系統:
2018 年的舊版mit 6.828 labs:1-6:
某個非常著名的操作系統課程,年輕人的第一次操作系統實踐
OS summer of code 2020
rcore 開源社區舉辦的某個活動
nginx-lua-ebpf-toolkit
Apache APISIX profile 工具: profile and tracking tools for lua and nginx using eBPF
Eunomia
2022 年操作系統大賽決賽一等獎:A lightweight eBPF-based Monitor tool:run ebpf as a service!
- 代碼無侵入即可開箱即用收集多種指標,僅佔用少量內存和CPU 資源;
- 告別龐大的鏡像和BCC編譯工具鏈,最小僅需約4MB 即可在支持的內核上或容器中啟動跟踪;
- 數百個節點的集群難以分發和部署ebpf 程序? bpftrace 腳本很方便,但是功能有限? Eunomia 支持通過http RESTful API 直接進行本地編譯後的ebpf 代碼的分發和熱更新,僅需約數百毫秒和幾乎可以忽略的CPU 內存佔用即可完成複雜ebpf 追踪器的部署和更新;
- 可以通過http API 高效熱插拔ebpf 追踪器(約100ms),實現按需追踪;
- 最少僅需繼承和修改三四十行代碼,即可在Eunomia 中基於libbpf-bootstrap 腳手架添加自定義ebpf 追踪器、匹配安全告警規則、獲取容器元信息、導出數據至prometheus 和grafana,實現高效的時序數據存儲和可視化,輕鬆體驗雲原生監控;
- 提供了豐富的文檔和開發教程,力求降低ebpf 程序的開發門檻;