添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
https://www.sqlite.org/opcode.html
处理语法树,生成bytecode。
包含一批类似delete.c,insert.c的代码,处理各种sql语句,转换成合适的bytecode。

  • Bytecode Engine
    bytecode用一个虚拟机来执行。代码为vdbe.c。

  • 数据库的核心数据结构。每个表、每个index都有一棵B树。

  • Page Cache页缓存
    除了页缓存的基础功能。还实现原子操作、回滚等功能。

  • OS Interface
    os接口层,实现跨平台。
    https://www.sqlite.org/vfs.html

  • Utilities
    其他辅助功能。比如内存分配、字符串-数字转换、unicode处理等等。

  • Test Code

    linux下输入 sqlite3 test_db ,进入sqlite命令行,自动打开test_db这个数据库文件。
    并接受用户输入的sql语句。

    看源代码shell.c的main函数如何实现这一流程。

       main()
           做各种初始化和配置,包括main_init.
           sqlite3_initialize()
           sqlite3_appendvfs_init()
           open_db() // 打开数据库
               SHELL_OPEN_NORMAL
               sqlite3_open_v2()(main.c)
                   openDatabase()
                       sqliteInt.h包含各种内部接口的定义
                       比如全局配置,Sqlite3Config.
                       createCollation()
           // 打印欢迎信息 “SQLite version ...”
           process_input() // 死循环处理命令行的输入
               one_input_line() // 解出一行sql语句
               runOneSqlLine() // 运行一条sql语句
                   shell_exec()
                       sqlite3_prepare_v2
                           sqlite3LockAndPrepare
                               sqlite3Prepare() // Compile the UTF-8 encoded SQL statement zSql into a statement handle
                                   sqlite3RunParser()(tokenize.c)
                                   sqlite3Parser() // 这里开始语法解析。sqlite3Parser在parse.y里定义。
           各种free
    
  • SSH客户端的实现1 加密通信的建立
  • MIT 6.824 Distributed Systems 分布式系统课程系列1 Lab1-MapReduce
  • MIT 6.824 Distributed Systems 分布式系统课程系列2 Lab2-Raft
  • MIT 6.824 Distributed Systems 分布式系统课程系列3 Lab3-Fault-tolerant Key/Value Service
  • MIT 6.828 操作系统课程系列0 基础和环境
  • MIT 6.828 操作系统课程系列1 Utilities
  • MIT 6.828 操作系统课程系列2 System calls
  • MIT 6.828 操作系统课程系列3 Page tables
  • MIT 6.828 操作系统课程系列4 Traps
  • MIT 6.828 操作系统课程系列5 Copy-on-Write Fork
  • MIT 6.828 操作系统课程系列6 Multithreading
  • MIT 6.828 操作系统课程系列7 Networking
  • MIT 6.828 操作系统课程系列8 Locks
  • MIT 6.828 操作系统课程系列9 File System
  • MIT 6.828 操作系统课程系列10 Mmap
  • Angular速成1 官网教程入门
  • Angular速成2 基本开发
  • Angular速成3 自定义指令(custom directives)
  • Angular速成4 搭建一个markdown编辑器
  • Angular速成5 实际问题记录
  • Erlang学习笔记&快速入门
  • 用Erlang开发服务程序
  • Erlang服务程序和OTP基础
  • Erlang OTP实践
  • Python机器学习快速入门1
  • Python机器学习快速入门2
  • Python机器学习快速入门3
  • 差分数组的应用
  • Docker的远程访问和证书配置
  • Linux Namespaces学习
  • 协程的简单实现(C_C++)
  •