Uma base de conhecimento de computação/informação geográfica ZJU
A estrada é longa e árdua
Aqui estão algumas notas/trabalhos de casa para ciência da informação geográfica/ciência da computação e tecnologia (também inclui cursos abertos de auto-estudo, armazenando alguns itens diversos), como lição de casa, notas, links de projeto para vários cursos de graduação, resumo e experiência do compartilhamento de cursos, Eu encontrei ótimos blogs técnicos, etc ... Talvez ele possa ser usado para sua referência; Consistência da qualidade (aviso: apenas para referência, não copie)
A intenção original de construir este armazém é realmente apenas para armazenar algumas informações para que eu possa me lembrar rapidamente do que aprendi quando precisar也许您也曾碰到过这样的情况:好像曾经上过某些课程或者阅读过很久价值的文章,但反过来又忘记了具体内容...
Ele não inclui o PPT ensinado pelos professores, nos últimos anos que não são lembrados por mim e algum conteúdo de lição de casa que não é adequado para divulgação pública, etc. (mas outros links públicos podem ser dados)
(No futuro, resolverei lentamente outras notas e informações anteriores, se tiver tempo)
- Se ajudar você, você também pode ajudar com uma estrela
- Mas, na verdade, eu pessoalmente acho que desenhar na lição de casa não é uma maneira ruim de aprender, pelo menos é melhor do que não fazer nada ...
- Minha pilha de tecnologia principal pessoal é a direção de back -end c/c ++/ferrugem.
Índice
- Uma base de conhecimento de computação/informação geográfica ZJU
- A estrada é longa e árdua
- Índice
- Estrutura da organização da pasta
- Alguns links de lição de casa e projetos (sobre algumas coisas simples para fazer na escola)
- Atualmente operando o projeto de código aberto: Eunomia-BPF
- Coisas diversas, como aulas/eventos/competições abertos
- Blog/papel/algum outro diverso
Estrutura da organização da pasta
A estrutura de diretório deste repositório é classificada aproximadamente pelos cursos e pode não ser parcialmente a mesma (talvez você possa tentar usar a função de pesquisa do Github?):
- Notas
- Princípio de compilação
- Rede de computadores (incluindo sistemas de informação geográfica e tecnologia de rede)
- Introdução aos sistemas de computador
- Linguagem de programação
- Tópicos de programação (H)
- Programação orientada a objetos
- Java/C Mini-Collection (fiz a aula, mas parece que nada é deixado para trás)
- Estruturas de dados e algoritmos (incluindo estruturas de dados básicas, estruturas de dados avançadas e análise de algoritmos)
- Solução de questões de LEETCODE
- Solução de problemas de PTA/PAT
- Implementação de algumas de minhas próprias estruturas de dados
- banco de dados
- Computer Graphics
- Ai
- Arquitetura de computador (incluindo composição do computador)
- sistema operacional
- Outros cursos principais
- Variado
Alguns links de lição de casa e projetos (sobre algumas coisas simples para fazer na escola)
Esta parte é um link para alguns pequenos projetos de curso ou lição de casa, bem como algumas demos escritas durante o processo de aprendizado.
Demonstração
Estrutura de dados:
- Mecanismo de pesquisa de texto com base no índice inverso
- Índice Geoespacial: Curva Quadtree/Hilbert/Z Curva
- Árvore AVL persistível implementada por ferrugem
Aprendizado profundo:
- Pesquisa de poda para realizar xadrez em preto e branco ai
- Classificação de lixo com base na rede neural convolucional
- Algoritmo de filtragem mediana adaptável para remover o ruído de sal e pimenta
rede:
- Implementar sala de bate -papo de protocolo personalizado com base na interface do soquete
- Um servidor web leve
Gráficos:
- Sistema solar tridimensional
- Renderizador de rastreamento de raios de software simples
outro:
Projeto
Gis:
- Programação GIS: Sistema de Exibição Especial de Dados Epidêmicos de Hubei https://github.com/yunwei37/covid-19-arcengine
- Banco de Dados Geoespacial: Plataforma do Site de Análise Interativa Visual para Dados Epidêmicos da CoVID-19 https://github.com/yunwei37/covid-19-nlp-vis
C ++:
- Programação orientada a objetos: jogo de cartas online da ONU LAN com base no QT Development https://github.com/yunwei37/uno-game-oop
- Curso Compreensivo Prática II: C ++ Prática de engenharia: OpenGL implementa um jogo simples de sandbox semelhante ao MC https://github.com/yunwei37/mc
- Um servidor escrito usando C ++ 20 Coroutines e io_uring
Sistema de computador:
- Composição do computador: As instruções de montagem de montagem/desmontagem/emulador de interface gráfica MIPS implementadas por qt https://github.com/yunwei37/mips-sc-zju
- Arquitetura de computador: CPU de vários ciclos Arquitetura de computador Design de CPU multi-ciclos
- Arquitetura de computador: Pipeline CPU Design Architecture Pipeline CPU Design
- Sistema operacional: um kernel experimental simples escrito em Rust (o laboratório original foi escrito em C, eu mudei para Rust) https://github.com/yunwei37/linux-0.11-rs
outro:
- Uma simples prática de blockchain: construindo uma blockchain do zero com ferrugem
Atualmente operando o projeto de código aberto: Eunomia-BPF
O Eunomia-BPF é um código de execução dinâmico de EBPF de código aberto e da Chapa de Ferramentas de Desenvolvimento.
Usando eunomia-bpf, você pode:
- Ao escrever programas ou ferramentas de EBPF, apenas o código do estado do kernel é gravado para obter informações automaticamente nas informações de exportação do estado de kernel;
- Use o WASM para desenvolver programas interativos do Estado de Usuário, controlar o carregamento e a execução de todo o programa EBPF dentro da máquina virtual do WASM e processos relacionados a dados;
- O Eunomia-BPF pode empacotar os programas EBPF pré-compilados nos módulos JSON ou WASM General, distribuídos nas versões de arquitetura e kernel, e podem ser carregados e executados dinamicamente sem recompilação.
O Eunomia-BPF consiste em uma cadeia de ferramentas de compilação e uma biblioteca de tempo de execução. Código para construir facilmente o pacote e publique aplicativos EBPF completos, enquanto o código EBPF do estado do kernel garante 100% de compatibilidade com o mainstream libbpf, libbpfgo, libbpf-rs e outras estruturas de desenvolvimento. Quando você precisa escrever o código do modo de usuário, você também pode usar o WebAssembly para obter o desenvolvimento do modo de usuário em vários idiomas. Comparado com ferramentas de script como o BPFTrace, o Eunomia-BPF mantém conveniência semelhante e não se limita ao rastreamento, mas pode ser usado em mais cenários, como rede, segurança, etc.
- Eunomia-bpf Projeto Github Endereço: https://github.com/eunomia-bpf/eunomia-bpf
- espelho gitee: https://gitee.com/anolis/eunomia
- Site do documento: https://eunomia-bpf.github.io/
Coisas diversas, como aulas/eventos/competições abertos
sistema operacional:
Versão antiga do MIT 6.828 Labs em 2018: 1-6:
Um curso de sistema operacional muito famoso, a primeira prática do sistema operacional para os jovens
OS Summer do Código 2020
Um evento realizado pela comunidade de código aberto da RCORE
nginx-lua-ebpf-toolkit
Ferramentas de perfil Apache Apisix: Ferramentas de perfil e rastreamento para Lua e Nginx usando EBPF
Eunomia
Primeiro prêmio na final do Sistema Operacional de 2022: uma ferramenta de monitor leve baseada em EBPF: Execute o EBPF como um serviço!
- Não há necessidade de modificar o código, não há necessidade de configuração tediosa, apenas BTF e um pequeno binário para começar a monitorar e obter funções principais da Eunomia:
- O código pode ser coletado fora da caixa sem intrusão, consumindo apenas uma pequena quantidade de memória e recursos da CPU;
- Diga adeus ao enorme espelho e cadeia de ferramentas de compilação BCC e requer apenas cerca de 4 MB para começar a rastrear em kernels ou contêineres suportados;
- Faça a distribuição e o uso de programas EBPF tão naturais quanto páginas da web e serviços da Web:
- É difícil distribuir e implantar programas EBPF em clusters de centenas de nós? O script bpftrace é conveniente, mas tem funcionalidade limitada? Eunomia suporta a distribuição e a atualização quente do código EBPF compilado localmente através da API HTTP RESTful e pode concluir a implantação e a atualização de rastreadores complexos de EBPF em apenas centenas de milissegundos e quase insignificante pegada de memória da CPU;
- O rastreamento sob demanda pode ser alcançado através da API HTTP com rastreador EBPF eficiente eficiente (cerca de 100ms);
- Forneça uma estrutura de monitoramento nativo da nuvem EBPF para iniciantes:
- Pelo menos trinta ou quarenta linhas de código precisam ser herdadas e modificadas. Timing.
- Fornece ricos tutoriais de documentação e desenvolvimento, esforçando -se para diminuir o limiar de desenvolvimento dos programas EBPF;
Blog/papel/algum outro diverso
- Portal: Meu blog
- Zhihu: Zhihu de Yunwei