Une base de connaissances sur les sciences de l'information / l'information géographique du ZJU
La route est longue et ardue
Voici quelques notes / devoirs pour les sciences géographiques de l'information / l'informatique et la technologie (comprend également des cours ouverts d'auto-étude, le stockage de certains articles divers), tels que les devoirs, les notes, les liens de projet pour divers cours de premier cycle, le résumé et l'expérience des cours, partagent, J'ai rencontré de grands blogs techniques, etc ... peut-être que cela peut être utilisé pour votre référence; Cohérence de la qualité (avertissement: pour référence uniquement, veuillez ne pas copier)
L'intention initiale de construire cet entrepôt est en fait de stocker moi-même des informations afin que je也许您也曾碰到过这样的情况:好像曾经上过某些课程或者阅读过很久价值的文章,但反过来又忘记了具体内容... souvienne rapidement de ce que j'ai appris quand j'en ai besoin;也许您也曾碰到过这样的情况:好像曾经上过某些课程或者阅读过很久价值的文章,但反过来又忘记了具体内容...
Il n'inclut pas le PPT enseigné par les enseignants, les dernières années qui ne sont pas rappelées par moi, et certains contenus de devoirs qui ne conviennent pas à la divulgation publique, etc. (mais d'autres liens publics peuvent être donnés)
(À l'avenir, je trierai lentement d'autres notes et informations précédentes si j'ai le temps)
- Si cela vous aide, vous pouvez également aider avec une étoile
- Mais en fait, je pense personnellement que s'appuyer sur les devoirs n'est pas une mauvaise façon d'apprendre, du moins c'est mieux que de ne rien faire ...
- Ma pile de technologie principale personnelle est la direction c / c ++ / rouille backend.
Table des matières
- Une base de connaissances sur les sciences de l'information / l'information géographique du ZJU
- La route est longue et ardue
- Table des matières
- Structure de l'organisation du dossier
- Certains devoirs et liens de projets (sur certaines choses simples à faire à l'école)
- Projet open source en cours d'exploitation: Eunomia-BPF
- Des choses diverses comme les classes / événements / compétitions ouverts
- Blog / papier / d'autres divers
Structure de l'organisation du dossier
La structure du répertoire de ce référentiel est grossièrement classé par les cours et peut être en partie la même (peut-être pouvez-vous essayer d'utiliser la fonction de recherche de Github?):
- notes
- Principe de compilation
- Réseau informatique (y compris les systèmes d'information géographique et la technologie du réseau)
- Introduction aux systèmes informatiques
- Langage de programmation
- Programmation des sujets (H)
- Programmation orientée objet
- Java / C Mini-Collection (j'ai suivi le cours mais il semble que rien ne soit laissé pour compte)
- Structures de données et algorithmes (y compris les structures de données de base, les structures de données avancées et l'analyse des algorithmes)
- Solution de question Leetcode
- Solution de problème PTA / PAT
- Une partie de sa propre implémentation de structure de données
- base de données
- Informatique
- IA
- Architecture informatique (y compris la composition informatique)
- système opérateur
- Autres cours majeurs
- Divers
Certains devoirs et liens de projets (sur certaines choses simples à faire à l'école)
Cette partie est un lien vers certains projets de cours ou devoirs, ainsi que certaines démos écrites pendant le processus d'apprentissage.
Démo
Structure des données:
- Moteur de recherche de texte basé sur l'index inverse
- Index géospatial: Courbe Quadtree / Hilbert / Z
- Arbre avl persistable implémenté par Rust
Apprentissage en profondeur:
- Recherche d'élagage pour réaliser des échecs en noir et blanc AI
- Classification des ordures basée sur un réseau neuronal convolutionnel
- Algorithme de filtrage médian adaptatif pour éliminer le bruit du sel et du poivre
réseau:
- Implémentez le protocole personnalisé.
- Un serveur Web léger
Graphique:
- Système solaire tridimensionnel
- Rendu de tracé de rayons logiciels simples
autre:
Projet
SIG:
- Programmation SIG: Hubei Epidemic Data Data Special Display System https://github.com/yunwei37/covid-19-arcengine
- Base de données géospatiale: plate-forme de site Web de l'analyse interactive visuelle pour les données épidémiques Covid-19 https://github.com/yunwei37/covid-19-nlp-vis
C ++:
- Programmation orientée objet: jeu de cartes en ligne uno lan basé sur le développement QT https://github.com/yunwei37/uno-game-oop
- Pratique complète du cours II: C ++ Engineering Practice: OpenGL implémente un jeu de bac à sable simple similaire à MC https://github.com/yunwei37/mc
- Un serveur écrit à l'aide de C ++ 20 Coroutines et IO_URING
Système informatique:
- Composition informatique: assembleur / désassembleur / émulateur d'interface graphique Instructions d'assemblage MIPS implémentées par Qt https://github.com/yunwei37/mips-sc-zju
- Architecture informatique: conception de processeur multi-cycle architecture informatique conception du processeur multi-cycle
- Architecture informatique: conception de processeur du pipeline Architecture informatique Pipeline CPU Design
- Système d'exploitation: un noyau expérimental simple écrit en rouille (le laboratoire d'origine a été écrit en C, je l'ai changé en rouille) https://github.com/yunwei37/linux-0.11-rs
autre:
- Une simple pratique de la blockchain: construire une blockchain à partir de zéro avec de la rouille
Projet open source en cours d'exploitation: Eunomia-BPF
Eunomia-BPF est une chaîne d'outils de chargement dynamique EBPF open source.
En utilisant Eunomia-BPF, vous pouvez:
- Lors de la rédaction de programmes ou d'outils EBPF, seul le code de l'état de noyau est écrit pour obtenir automatiquement des informations d'exportation d'état du noyau;
- Utiliser WasM pour développer des programmes interactifs de l'état utilisateur, contrôler le chargement et l'exécution de l'ensemble du programme EBPF dans la machine virtuelle WASM et des données liées à un processus;
- Eunomia-BPF peut emballer des programmes EBPF précompilés dans des modules JSON ou WASM généraux, distribués à travers les versions d'architecture et de noyau, et peut être chargé et exécuté dynamiquement sans recompilation.
Eunomia-BPF se compose d'une chaîne d'outils de compilation et d'une bibliothèque d'exécution. Code à créer facilement. Lorsque vous devez rédiger du code en mode utilisateur, vous pouvez également utiliser WebAssembly pour réaliser le développement du mode utilisateur dans plusieurs langues. Par rapport aux outils de script tels que BPFTrace, Eunomia-BPF conserve une commodité similaire et ne se limite pas à la trace, mais peut être utilisé dans plus de scénarios, tels que le réseau, la sécurité, etc.
- Projet Eunomia-BPF Adresse GitHub: https://github.com/eunomia-bpf/eunomia-bpf
- miroir gitee: https://gitee.com/anolis/eunomia
- Site Web de document: https://eunomia-bpf.github.io/
Des choses diverses comme les classes / événements / compétitions ouverts
système opérateur:
Ancienne version du MIT 6.828 Labs en 2018: 1-6:
Un cours de système d'exploitation très célèbre, la première pratique du système d'exploitation pour les jeunes
OS Summer of Code 2020
Un événement organisé par la communauté open source RCORE
nginx-lu-ebpf-toolkit
APCACH APISIX PROFILS OUTILS: Profil et outils de suivi pour Lua et Nginx à l'aide d'EBPF
Eunomia
Premier prix de la finale du concours du système d'exploitation 2022: un outil de moniteur basé sur l'EBPF léger: exécutez EBPF en tant que service!
- Pas besoin de modifier le code, pas besoin de configuration fastidieuse, juste BTF et un petit binaire pour commencer la surveillance et obtenir des fonctions de base Eunomia:
- Le code peut être collecté hors de la boîte sans intrusion, ne consommant qu'une petite quantité de mémoire et de ressources CPU;
- Dites au revoir à l'énorme chaîne d'outils de miroir et de compilation BCC, et ne nécessite qu'environ 4 Mo pour commencer le suivi sur les noyaux ou les conteneurs pris en charge;
- Rendre la distribution et l'utilisation des programmes EBPF aussi naturels que les pages Web et les services Web:
- Est-il difficile de distribuer et de déployer des programmes EBPF en grappes de centaines de nœuds? Le script BPFTrace est pratique, mais a une fonctionnalité limitée? Eunomia prend en charge la distribution et la mise à jour à chaud du code EBPF compilé localement via l'API HTTP Restful, et peut terminer le déploiement et la mise à jour des trackers EBPF complexes dans environ centaines de millisecondes et une empreinte de mémoire CPU presque négligeable;
- Le suivi à la demande peut être réalisé via l'API HTTP avec un tracker EBPF à balayage chaud efficace (environ 100 ms);
- Fournir un cadre de surveillance natif du cloud-natif EBPF respectueux des novices:
- Au moins trente ou quarante lignes de code doivent être héritées et modifiées, vous pouvez ajouter des trackers EBPF personnalisés basés sur l'échafaudage LibBPF-Bootstrap dans Eunomia, faire correspondre les règles d'alarme de sécurité, obtenir des méta-informations de conteneur, exporter les données vers Prométhée et Grafana, et atteindre efficace Timing.
- Fournit des tutoriels de documentation et de développement riches, s'efforçant de réduire le seuil de développement des programmes EBPF;
Blog / papier / d'autres divers
- Portail: mon blog
- Zhihu: Zhihu de Yunwei