Eine ZJU -Bachelor -Computer/Geografie Informationswissenschaftswissensbasis
Die Straße ist lang und mühsam
Hier sind einige Notizen/Hausaufgaben für geografische Informationswissenschaft/Informatik und Technologie (umfasst auch Selbststudien-Open-Kurse, die einige verschiedene Gegenstände speichern) wie Hausaufgaben, Notizen, Projektlinks für verschiedene Bachelor-Kurse, Zusammenfassung und Erfahrung von Kursen Share, Share, Share, Share, Share, Teilen, Ich habe großartige technische Blogs usw. Konsistenz der Qualität (Warnung: Nur als Referenz, bitte nicht kopieren)
Die ursprüngliche Absicht, dieses Lagerhaus zu bauen, besteht darin, selbst einige Informationen zu speichern也许您也曾碰到过这样的情况:好像曾经上过某些课程或者阅读过很久价值的文章,但反过来又忘记了具体内容... damit ich mich schnell erinnern kann, was ich gelernt habe, wenn ich sie brauche.也许您也曾碰到过这样的情况:好像曾经上过某些课程或者阅读过很久价值的文章,但反过来又忘记了具体内容...
Es enthält nicht die von Lehrern unterrichtete PPT, die letzten Jahre, die nicht von mir zurückgerufen werden, und einige Hausaufgabeninhalte, die nicht für die öffentliche Offenlegung geeignet sind usw. (andere öffentliche Links können jedoch gegeben werden)
(In Zukunft werde ich andere frühere Notizen und Informationen langsam aussortieren, wenn ich Zeit habe)
- Wenn es Ihnen hilft, können Sie auch mit einem Stern helfen
- Aber in der Tat denke ich persönlich, dass die Herstellung von Hausaufgaben keine schlechte Art zu lernen ist, zumindest ist es besser, als nichts zu tun ...
- Mein persönlicher Haupttechnologie -Stack ist die Backend C/C ++/Rust -Richtung.
Inhaltsverzeichnis
- Eine ZJU -Bachelor -Computer/Geografie Informationswissenschaftswissensbasis
- Die Straße ist lang und mühsam
- Inhaltsverzeichnis
- Ordnerorganisationsstruktur
- Einige Hausaufgaben und Projektlinks (über einige einfache Dinge, die in der Schule zu tun sind)
- Derzeit betriebs Open Source-Projekt: Eunomia-BPF
- Verschiedene Dinge wie offene Klassen/Veranstaltungen/Wettbewerbe
- Blog/Papier/einige andere verschiedene
Ordnerorganisationsstruktur
Die Verzeichnisstruktur dieses Repositorys wird grob nach Kursen klassifiziert und ist möglicherweise teilweise nicht dasselbe (möglicherweise können Sie versuchen, die Suchfunktion von Github zu verwenden?):
- Notizen
- Kompilierungsprinzip
- Computernetzwerk (einschließlich geografischer Informationssysteme und Netzwerktechnologie)
- Einführung in Computersysteme
- Programmiersprache
- Programmiersthemen (h)
- Objektorientierte Programmierung
- Java/C Mini-Sammlung (ich habe die Klasse genommen, aber es scheint, dass nichts zurückgelassen wird)
- Datenstrukturen und Algorithmen (einschließlich grundlegender Datenstrukturen, erweiterte Datenstrukturen und Algorithmusanalyse)
- Leetcode -Fragelösung
- PTA/PAT -Problemlösung
- Einige seiner eigenen Datenstruktur -Implementierung
- Datenbank
- Computergrafik
- Ai
- Computerarchitektur (einschließlich Computerkomposition)
- Betriebssystem
- Andere Hauptkurse
- Verschiedenes
Einige Hausaufgaben und Projektlinks (über einige einfache Dinge, die in der Schule zu tun sind)
Dieser Teil ist ein Link zu einigen kleinen Kursprojekten oder Hausaufgaben sowie einige Demos, die während des Lernprozesses geschrieben wurden.
Demo
Datenstruktur:
- Textsuchmaschine basierend auf dem inversen Index
- Geospatial Index: Quadtree/Hilbert -Kurve/Z -Kurve
- Persistierbarer AVL -Baum durch Rost implementiert
Tiefes Lernen:
- Beschneiden der Suche, um Schwarz -Weiß -Schach -KI zu verwirklichen
- Müllklassifizierung auf der Grundlage des neuronalen Netzwerks mit Faltung
- Adaptiver Median -Filteralgorithmus zum Entfernen von Salz und Pfeffergeräuschen
Netzwerk:
- Implementieren Sie den benutzerdefinierten Protokoll -Chatraum basierend auf der Socket -Schnittstelle
- Ein leichtgewichtiger Webserver
Grafik:
- Dreidimensionales Sonnensystem
- Einfache Software -Strahlenverfolgung Renderer
andere:
Projekt
GIS:
- GIS-Programmierung: Hubei-Epidemie-Daten Speziales Display-System https://github.com/yunwei37/covid-19-arcengine
- Geospatial-Datenbank: Website für visuelle interaktive Analyse für CoVID-19-Epidemie-Daten https://github.com/yunwei37/covid-19-nlp-vis
C ++:
- Objektorientierte Programmierung: UNO LAN-Online-Kartenspiel basierend auf der QT-Entwicklung https://github.com/yunwei37/uno-game-oop
- Kurs umfassende Praxis II: C ++ Ingenieurpraxis: OpenGL implementiert ein einfaches Sandbox -Spiel ähnlich wie MC https://github.com/yunwei37/mc
- Ein Server, der mit C ++ 20 Coroutines und io_uring geschrieben wurde
Computersystem:
- Computerzusammensetzung: Assembler/Disassembler/Emulator der Grafikschnittstelle MIPS-Assembly-Anweisungen von QT https://github.com/yunwei37/mips-sc-zju
- Computerarchitektur: Multi-Cycle-CPU-Design Computerarchitektur Multi-Cycle-CPU-Design
- Computerarchitektur: Pipeline CPU -Design Computerarchitektur Pipeline CPU -Design
- Betriebssystem: Ein einfacher experimenteller Kernel, der in Rost geschrieben wurde (das Originallabor wurde in C geschrieben, ich habe ihn in Rost geändert) https://github.com/yunwei37/linux-0.11-rs
andere:
- Eine einfache Blockchain -Praxis: Blockchain von Grund auf neu bauen
Derzeit betriebs Open Source-Projekt: Eunomia-BPF
Eunomia-BPF ist eine Open-Source-EBPF-Dynamik-Lade-Laufzeit und -ToolChain.
Mit Eunomia-BPF können Sie:
- Beim Schreiben von EBPF-Programmen oder -Tools wird nur der Kernel-State-Code geschrieben, um automatisch Exportinformationen des Kernel-Zustands zu erhalten.
- Verwenden Sie WASM, um interaktive Programme für Benutzerzustand zu entwickeln, die Lade und Ausführung des gesamten EBPF-Programms innerhalb der virtuellen WASM-Maschine sowie prozessbezogene Daten zu steuern.
- Eunomia-BPF kann vorkompilierte EBPF-Programme in allgemeine JSON- oder WASM-Module packen, die über Architektur- und Kernelversionen verteilt sind und ohne Neukompilation dynamisch geladen und ausgeführt werden können.
Eunomia-BPF besteht aus einer Zusammenstellung von Toolchain und einer Laufzeitbibliothek. CODE ZU EBLINDEN. Wenn Sie einen Benutzer-Modus-Code schreiben müssen, können Sie auch WebAssembly verwenden, um die Entwicklung von Benutzermodus in mehreren Sprachen zu erreichen. Im Vergleich zu Scripting-Tools wie BPFTrace behält Eunomia-BPF ähnliche Komfort und ist nicht auf Spuren beschränkt, kann jedoch in mehr Szenarien wie Netzwerk, Sicherheit usw. verwendet werden.
- Eunomia-BPF-Projekt Github Adresse: https://github.com/eunomia-bpf/eunomia-bpff
- Gitee Mirror: https://gitee.com/anolis/eunomia
- Dokumentwebsite: https://eunomia-bpf.github.io/
Verschiedene Dinge wie offene Klassen/Veranstaltungen/Wettbewerbe
Betriebssystem:
Alte Version von MIT 6.828 Labors im Jahr 2018: 1-6:
Ein sehr berühmter Betriebssystemkurs, die erste Betriebssystempraxis für junge Menschen
OS Sommer des Code 2020
Eine Veranstaltung der Rcore Open Source Community
nginx-lua-eBPF-toolkit
Apache -Apiix -Profil -Tools: Profil- und Tracking -Tools für LUA und NGINX mit EBPF
Eunomie
Erster Preis im 2022 Betriebssystem Wettbewerb Finale: Ein leichtes EBPF-basierter Monitor-Tool: EBPF als Service ausführen!
- Es ist nicht erforderlich, den Code zu ändern, keine mühsame Konfiguration erforderlich, nur BTF und eine winzige Binäranlage, um die Überwachung zu beginnen und Eunomia -Kernfunktionen zu erhalten:
- Der Code kann ohne Eindringen aus dem Box gesammelt werden, wobei nur eine geringe Menge an Speicher- und CPU -Ressourcen konsumiert werden.
- Verabschieden Sie sich von der riesigen Spiegel- und BCC -Zusammenstellung Toolchain und benötigen nur etwa 4 MB, um mit der Nachverfolgung von unterstützten Kernel oder Behältern zu beginnen.
- Machen Sie die Verteilung und Nutzung von EBPF -Programmen so natürlich wie Webseiten und Webdienste:
- Ist es schwierig, EBPF -Programme in Hunderten von Knoten zu verteilen und bereitzustellen? Das BPFTRACE -Skript ist praktisch, hat aber nur begrenzte Funktionen? Eunomia unterstützt die Verteilung und das heiße Update des lokal kompilierten EBPF -Codes über die HTTP -RESTful -API und kann die Bereitstellung und Aktualisierung komplexer EBPF -Tracker in nur Hunderten von Millisekunden und fast vernachlässigbarer CPU -Speicherfußabdruck abschließen.
- Die On-Demand-Verfolgung kann durch die HTTP-API mit effizientem Heiß-Swap-EBPF-Tracker (ca. 100 ms) erreicht werden.
- Bieten Sie einen nicht anfänglichen EBPF-Cloud-nativen Überwachungsrahmen an:
- Mindestens dreißig oder vierzig Codezeilen müssen vererbt und geändert werden. Timing.
- Bietet reichhaltige Dokumentations- und Entwicklungs -Tutorials und bemüht sich, die Entwicklungsschwelle von EBPF -Programmen zu senken.
Blog/Papier/einige andere verschiedene
- Portal: Mein Blog
- Zhihu: Yunwei's Zhihu