ZJUの学部コンピューター/地理的情報科学知識ベース
道は長くて骨の折れる
地理情報科学/コンピューターサイエンステクノロジーのメモ/宿題(また、宿題、メモ、さまざまな学部コースのプロジェクトリンク、概要、コースの共有体験など、いくつかの雑多なアイテムの保存も含まれています)のメモ/宿題です。私は素晴らしい技術ブログなどに遭遇しました...それはあなたの参照に使用できるかもしれません。品質の一貫性(警告:参照のみ、コピーしないでください)
この倉庫を構築する当初の意図は、実際に自分で情報を保存することです也许您也曾碰到过这样的情况:好像曾经上过某些课程或者阅读过很久价值的文章,但反过来又忘记了具体内容...
教師によって教えられたPPT、私が想起していない過去数年間、公開開示などには適していない宿題のコンテンツは含まれません(ただし、他のパブリックリンクが示される場合があります)
(将来、時間があれば他の以前のメモや情報をゆっくりと整理します)
- それがあなたを助けるなら、あなたは星を助けることもできます
- しかし、実際には、宿題を描くことは悪い学習方法ではないと個人的に考えています。少なくとも何もしないよりはましです...
- 私のメインテクノロジースタックは、バックエンドC/C ++/RUSTの方向です。
目次
- ZJUの学部コンピューター/地理的情報科学知識ベース
- 道は長くて骨の折れる
- 目次
- フォルダー組織構造
- いくつかの宿題とプロジェクトのリンク(学校でやるべきことについて)
- 現在オープンソースプロジェクトを操作しています:Eunomia-BPF
- オープンクラス/イベント/競技などのその他
- ブログ/紙/他の雑多なもの
フォルダー組織構造
このリポジトリのディレクトリ構造は、コースによって大まかに分類されており、部分的に同じではない場合があります(GitHubの検索機能を使用してみることができますか?)
- メモ
- 編集原則
- コンピューターネットワーク(地理情報システムとネットワークテクノロジーを含む)
- コンピューターシステムの紹介
- プログラミング言語
- プログラミングトピック(H)
- オブジェクト指向プログラミング
- Java/Cミニコレクション(私はクラスを受講しましたが、何も残されていないようです)
- データ構造とアルゴリズム(基本的なデータ構造、高度なデータ構造、アルゴリズム分析を含む)
- leetcode質問ソリューション
- PTA/PAT問題ソリューション
- 独自のデータ構造実装の一部
- データベース
- コンピューターグラフィックス
- ai
- コンピューターアーキテクチャ(コンピューター構成を含む)
- オペレーティング·システム
- その他の主要なコース
- その他
いくつかの宿題とプロジェクトのリンク(学校でやるべきことについて)
この部分は、いくつかの小規模なプロジェクトや宿題へのリンクであり、学習プロセス中に書かれたいくつかのデモがあり、一部は他のリポジトリにあります。
デモ
データ構造:
- 逆インデックスに基づくテキスト検索エンジン
- 地理空間指数:Quadtree/Hilbert Curve/Z曲線
- 錆によって実装された持続可能なAVLツリー
深い学習:
- 黒と白のチェスAIを実現するための剪定検索
- 畳み込みニューラルネットワークに基づくゴミ分類
- 塩とコショウの騒音を除去するための適応中央値フィルタリングアルゴリズム
ネットワーク:
- ソケットインターフェイスに基づいてカスタムプロトコルチャットルームを実装します
- 軽量のWebサーバー
グラフィック:
- 三次元太陽系
- シンプルなソフトウェアレイトレースレンダラー
他の:
プロジェクト
GIS:
- GISプログラミング:Hubei Epidemic Data Special Display System https://github.com/yunwei37/covid-19-arcengine
- 地理空間データベース:視覚的インタラクティブ分析Covid-19流行データのためのWebサイトプラットフォームhttps://github.com/yunwei37/covid-19-nlp-vis
C ++:
- オブジェクト指向プログラミング:QT開発に基づくUNO LANオンラインカードゲームhttps://github.com/yunwei37/uno-game-oop
- コース包括的なプラクティスII:C ++エンジニアリングプラクティス:OpenGLは、MC https://github.com/yunwei37/mcに似たシンプルなサンドボックスゲームを実装しています
- C ++ 20 CoroutinesおよびIO_IRINGを使用して記述されたサーバー
コンピューターシステム:
- コンピューターの構成:QT https://github.com/yunwei37/mips-sc-zjuによって実装されたグラフィカルインターフェイスMIPSアセンブリのアセンブラー/エミュレータMIPSアセンブリ手順
- コンピューターアーキテクチャ:マルチサイクルCPU設計コンピューターアーキテクチャマルチサイクルCPU設計
- コンピューターアーキテクチャ:パイプラインCPU設計コンピューターアーキテクチャパイプラインCPU設計
- オペレーティングシステム:錆で書かれた単純な実験カーネル(元のラボはCで書かれていました、私はそれを錆に変更しました)https://github.com/yunwei37/linux-0.11-rs
他の:
- シンプルなブロックチェーンの練習:錆びてゼロからブロックチェーンを構築する
現在オープンソースプロジェクトを操作しています:Eunomia-BPF
Eunomia-BPFは、EBPFプログラムの開発、建設、流通、および運用を簡素化するために、Open Sourceの動的読み込みと開発ツールチェーンです。
eunomia-bpfを使用すると、次のことができます。
- EBPFプログラムまたはツールを作成するとき、カーネル状態のエクスポート情報を自動的に取得するために、カーネル状態コードのみが書き込まれます。
- WASMを使用して、ユーザーステートインタラクティブプログラムを開発し、WASM仮想マシン内のEBPFプログラム全体の読み込みと実行を制御し、関連データを処理します。
- Eunomia-BPFは、事前コンパイルされたEBPFプログラムを一般的なJSONまたはWASMモジュールにパッケージ化し、アーキテクチャバージョンとカーネルバージョン全体に分散し、再コンパイルなしで動的にロードおよび動的に実行できます。
Eunomia-BPFは、コンピレーションツールチェーンと、Native Libbpfなどの従来のフレームワークで構成されています。コードを簡単に構築して、完全なEBPFアプリケーションを公開しますが、カーネル状態のEBPFコードは、主流のLIBBPF、LIBBPFGO、LIBBPF-RS、およびその他の開発フレームワークと100%互換性があります。ユーザーモードコードを記述する必要がある場合は、WebAssemblyを使用して複数の言語でユーザーモード開発を実現することもできます。 BPFTRACEなどのスクリプトツールと比較して、Eunomia-BPFは同様の利便性を保持しており、トレースに限定されませんが、ネットワーク、セキュリティなどのより多くのシナリオで使用できます。
- eunomia-bpfプロジェクトGithubアドレス:https://github.com/eunomia-bpf/eunomia-bpf
- Gitee Mirror:https://gitee.com/anolis/eunomia
- ドキュメントウェブサイト:https://eunomia-bpf.github.io/
オープンクラス/イベント/競技などのその他のもの
オペレーティング·システム:
2018年のMIT 6.828 Labsの古いバージョン:1-6:
非常に有名なオペレーティングシステムコース、若者向けの最初のオペレーティングシステムの練習
コード2020の夏
RCOREオープンソースコミュニティが開催したイベント
nginx-lua-ebpf-toolkit
Apache Apisixプロファイルツール:EBPFを使用したLUAおよびNGINXのプロファイルおよび追跡ツール
エウノミア
2022年のオペレーティングシステムコンペティションファイナルでの一等賞:軽量EBPFベースのモニターツール:EBPFをサービスとして実行してください!
- コードを変更する必要はなく、退屈な構成の必要はありません。BTFと小さなバイナリだけで、監視を開始してEunomiaコア関数を取得します。
- コードは、侵入せずに箱から収集でき、少量のメモリとCPUリソースのみを消費できます。
- 巨大なミラーとBCCコンピレーションツールチェーンに別れを告げると、サポートされているカーネルまたはコンテナでの追跡を開始するために約4MBのみが必要です。
- WebページやWebサービスと同じくらい自然なEBPFプログラムの配布と使用を作成します。
- 数百のノードのクラスターにEBPFプログラムを配布および展開することは困難ですか? BPFTRACEスクリプトは便利ですが、機能は限られていますか? Eunomiaは、HTTP Restful APIを介してローカルにコンパイルされたEBPFコードの分布とホットアップデートをサポートし、ほんの数百ミリ秒およびほぼ無視できるCPUメモリフットプリントで複雑なEBPFトラッカーの展開と更新を完了することができます。
- 効率的なホットスワップEBPFトラッカー(約100ms)を使用して、HTTP APIを通じてオンデマンドトラッキングを実現できます。
- 初心者に優しいEBPFクラウドネイティブ監視フレームワークを提供します。
- 少なくとも30行または40行のコードを継承して変更する必要があります。EunomiaのLIBBPFブートストラップの足場に基づいてカスタムEBPFトラッカーを追加し、セキュリティアラームルールをマッチし、コンテナメタ情報を取得し、PrometheusとGrafanaにデータをエクスポートし、効率的に達成できます。タイミングと視覚化、およびクラウドネイティブの監視を簡単に体験します。
- 豊富なドキュメントと開発のチュートリアルを提供し、EBPFプログラムの開発しきい値を下げるよう努めています。
ブログ/紙/他の雑多なもの
- ポータル:私のブログ
- Zhihu:YunweiのZhihu