Skip to content

ccckmit/computer0

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

computer0 - 從零實作電腦技術

將電腦最重要的一些技術,從作業系統到程式語言,從影像到 web 到 AI 等等,全部實作 DIY 一遍的專案。

主要語言:C + Python,有時會多加上 Rust。

專案結構

computer0/
├── ai/         # AI + Machine Learning
├── av/         # Audio + Video
├── compiler/    # 編譯器
├── crpyto/     # 密碼學 + 區塊鏈
├── gui/        # GUI 圖形介面
├── interpreter/# 直譯器
├── irvm/       # IR + VM
├── net/        # 網路 + Web
├── os/         # 作業系統
├── theory/     # 理論計算機科學
└── tool/       # 工具軟體

各領域實作

AI / Machine Learning

  • game - 井字棋 + 五子棋
  • image - 影像處理
  • ml - 機器學習
  • nn - 神經網路
  • reinforce - 強化學習

Audio / Video

  • audio0 - 音訊處理
  • fft - FFT 快速傅立葉轉換
  • jpg0 / mpg0 / mpg - JPEG / MPEG 編碼
  • mp4 - MP4 影片編碼

Compiler 編譯器

  • c0 - C 語言子集編譯器
  • c4 / c5 - C 語言編譯器
  • js0 - JavaScript 直譯器
  • py - Python 編譯器

Cryptography 密碼學

  • blockchain0 - 區塊鏈
  • https0 - HTTPS 實作
  • keygen0 - 金鑰生成
  • ssl0 - SSL/TLS

GUI 圖形介面

  • mdbrowser0 - 瀏覽器

Interpreter 直譯器

  • basic - BASIC 直譯器
  • js0i - JavaScript 直譯器
  • lisp - Lisp 直譯器
  • prolog - Prolog 直譯器
  • py0i - Python 直譯器

IR / VM

  • ll0 - LLVM IR
  • qd0 - Quad IR
  • rv0 - RISC-V VM + Assembler

Networking 網路

  • fastapi0 - FastAPI Web Framework
  • telnet0 - Telnet
  • webserver0 - Web Server
  • xml0 - XML 處理

Operating System 作業系統

  • xv6 / xv7 - UNIX 作業系統教學
  • mini-riscv-os2 - RISC-V 作業系統

Theory 理論

  • finiteStateMachine - 有限狀態機
  • grammar - 形式文法
  • lambda - Lambda Calculus
  • turingMachine - 圖靈機

Tools 工具

  • blockchain0 - 區塊鏈工具
  • diff0 - diff 工具
  • docker0 - Docker
  • git0 - Git 版本控制
  • make0 - Make 建構工具
  • pip0 - pip 套件管理
  • sql0 - SQL 資料庫
  • vim_kilo - Vim Clone
  • vi0 - VI Clone

授權

GPL v2 - 請參考 LICENSE 檔案

About

A minimalist computer do it yourself.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors