技术教育社区
www.teccses.org

计算之道 卷II:LINUX内核源码与REDIS源码

封面

作者:黄俊 秦羽 著

出版社:清华大学出版社

出版日期:2024

ISBN:9787302675747

电子书格式:pdf/epub/txt

网盘下载地址:下载计算之道 卷II:LINUX内核源码与REDIS源码

内容简介

本书是一本全面深入探讨深度学习领域的核心原理与应用实践的专业书籍。本书旨在为读者提供系统的学习路径,从深度学习的基础知识出发,逐步深入到复杂的大模型架构和算法实现。本书适合深度学习初学者、中级开发者以及对大模型有深入研究需求的专业人士。通过阅读本书,读者不仅能够掌握深度学习的理论基础,还能通过丰富的实战案例,提升解决实际问题的能力。

作者简介

黄俊专注于研究Java语言专注于研究Hotspot专注于研究Linux内核专注于研究C语言与汇编专注于研究架构设计专注于研究多线程并发处理专注于研究高效学习方式曾就职于美团、阿里黄俊专注于研究Java语言专注于研究Hotspot专注于研究Linux内核专注于研究C语言与汇编专注于研究架构设计专注于研究多线程并发处理专注于研究高效学习方式曾就职于美团、阿里前新东方业务架构师
秦羽专注于研究Java语言专注于研究Hotspot专注于研究Linux内核专注于研究C语言与汇编语言专注于研究代码框架设计专注于研究多线程并发处理曾就职于华为,负责移动营业项目,担任技术开发负责人

本书特色

本书以清晰易懂的语言深入剖析深度学习的核心原理,从基础算法到复杂模型架构,为读者揭开技术神秘面纱。书中详细阐述大模型的构建、训练与优化策略,结合丰富的实践案例,使抽象理论具象化。无论是深度学习初学者渴望入门,还是专业人士欲深入探索大模型奥秘,本书都能提供全面且深入的指引,是一本不可多得的深度学习与大模型学习宝典,帮助读者在这个前沿技术领域快速提升认知与实践能力,紧跟时代技术浪潮。

目录

第1章 Redis结构分析 1.1 C语言相关的前置知识复习 1.2 Redis背景 1.2.1 什么是Redis 1.2.2 ANSI C与GNU C 1.2.3 Redis源码下载 1.3 Redis sds函数分析 1.3.1 sds结构体分析 1.3.2 sdsnewlen函数分析 1.3.3 sdscatlen函数分析 1.3.4 sdslen函数分析 1.3.5 sdsMakeRoomFor函数分析 1.3.6 redisObject结构分析 1.3.7 Redis的压缩链表分析第1章 Redis结构分析 1.1 C语言相关的前置知识复习 1.2 Redis背景 1.2.1 什么是Redis 1.2.2 ANSI C与GNU C 1.2.3 Redis源码下载 1.3 Redis sds函数分析 1.3.1 sds结构体分析 1.3.2 sdsnewlen函数分析 1.3.3 sdscatlen函数分析 1.3.4 sdslen函数分析 1.3.5 sdsMakeRoomFor函数分析 1.3.6 redisObject结构分析 1.3.7 Redis的压缩链表分析 1.4 通过Redis数据结构引发的思考1.4.1 地址与值的思考1.4.2 NULL的思考1.4.3 数组与指针的思考1.5 小结
第2章 操作系统相关介绍2.1 进入Linux2.1.1 内核源码下载2.1.2 Linux目录解读2.1.3 内核概览2.1 历史背景2.1.1 Linux相关背景2.1.2 Intel相关背景2.2 操作系统2.2.1 什么是操作系统2.2.2 操作系统启动过程2.2.3 操作系统调用层级2.3 地址空间2.3.1 内存模型2.3.2 为什么要有地址空间2.3.3 什么是线性地址空间2.3.4 段寄存器2.3.5 指令指针寄存器2.4 实模式与保护模式2.5 特权级2.5.1 CPL、RPL、DPL2.5.1 一致性与非一致性2.5.2 切换特权级的调用过程2.6 小结
第3章 进程管理分析3.1 进程的相关背景3.1.1 单道批处理3.1.2 多道批处理3.1.3 分时系统3.2 进程概览3.2.1 元数据3.2.2 上下文切换3.2.3 进程描述符3.2.4 任务状态段3.3 内核初始化3.3.1 内核的main函数3.3.2 从内核态进入用户态3.3.3 创建0号进程3.4 进程调度3.4.1 进程状态3.4.2 execv函数3.4.3 schedule函数3.3.4 switch_to函数3.4.5 sys_pause函数3.4.6 sleep_on函数3.4.7 interruptible_sleep_on函数3.4.8 wake_up函数3.4.9 sys_exit函数3.4 中断处理分析3.4.1 什么是中断3.4.2 中断与异常的来源 3.4.3 中断描述符表 3.4.4 状态寄存器 3.4.5 程序调用 3.4.6 中断处理过程 3.4.7 系统调用 3.5 硬中断原理 3.5.1 request_irq函数 3.5.2 setup_irq函数 3.5.3 init_IRQ函数 3.5.4 interrupt[i] 数组生成 3.5.5 do_IRQ函数 3.5.6 handle_IRQ_event函数 3.6 软中断原理 3.6.1 raise_softirq函数 3.6.2 wakeup_softirqd函数 3.6.3 ksoftirqd内核线程的创建 3.6.4 ksoftirqd 函数 3.6.5 do_softirq函数 3.7 内核线程原理 3.7.1 sys_clone函数 3.7.2 do_fork函数 3.7.3 copy_files函数 3.7.4 copy_fs函数 3.7.5 copy_sighand函数 3.7.6 copy_mm函数 3.7.7 copy_thread函数 3.7.8 ret_from_fork函数 3.7.9 syscall_exit函数 3.8 信号原理 3.8.1 sys_kill函数 3.8.2 group_send_sig_info函数 3.8.3 handle_stop_signal函数 3.8.4 sig_ignored函数 3.8.5 LEGACY_QUEUE宏 3.8.6 send_signal函数 3.8.7 group_complete_signal函数 3.8.8 信号处理汇编 3.8.9 do_signal函数 3.9 小结
第4章 内存管理分析 4.1 分页概览 4.1.1 为什么分页? 4.1.2 控制寄存器 4.1.3 段选择子 4.1.4 段描述符 4.1.5 全局描述符表 4.1.6 局部描述符表 4.1.7 分页过程 4.2 内存描述符 4.3 mmap函数原理 4.3.1 sys_mmap函数 4.3.2 do_mmap2函数 4.3.3 do_mmap_pgoff函数分析 4.3.4 get_unmapped_area函数 4.3.5 find_vma_prepare函数 4.4 munmap函数原理 4.4.1 do_munmap函数 4.4.2 find_vma_prev函数 4.4.3 split_vma函数 4.4.4 find_vma函数 4.4.5 detach_vmas_to_be_unmapped函数 4.4.6 vma_merge函数 4.5 小结
第5章 I/O原理分析 5.1 I/O原理 5.1.1 提升I/O性能的基本思想 5.1.2 I/O执行流程 5.2 文件系统 5.2.1 虚拟文件系统 5.2.2 文件系统概览 5.2.3 文件系统布局 5.2.4 用户权限 5.3 open函数原理 5.3.1 sys_open函数 5.3.2 open_namei函数 5.3.3 dir_namei函数 5.3.4 get_dir函数 5.3.5 find_entry函数 5.3.6 new_inode函数 5.3.7 add_entry函数 5.4 close函数原理 5.4.1 sys_close函数 5.4.2 iput函数 5.5 read函数原理 5.5.1 sys_read函数 5.5.2 block_read函数 5.5.3 file_read函数 5.5.4 bmap函数 5.5.5 new_block函数 5.5.6 get_super函数 5.6 write函数原理 5.6.1 sys_write函数 5.6.2 block_write函数 5.6.3 file_write函数 5.7 高速缓冲区 5.7.1 buffer_head结构体 5.7.2 bread函数 5.7.3 breada函数 5.7.4 brelse函数 5.7.5 getblk函数 5.7.6 get_hash_table函数 5.7.7 wait_on_buffer函数 5.7.8 sync_dev函数 5.7.9 find_buffer函数 5.7.10 remove_from_queues函数 5.7.11 insert_into_queues函数 5.8 块设备驱动 5.8.1 块设备定义 5.8.1 ll_rw_block函数 5.8.2 make_request函数 5.8.3 lock_buffer函数 5.8.4 unlock_buffer函数 5.8.5 add_request函数 5.8.6 do_hd_request函数 5.9 高版本文件写入原理 5.9.1 sys_open函数 5.9.2 filp_open函数 5.9.3 open_namei函数 5.9.4 dentry_open函数 5.9.5 fd_install函数 5.9.6 sys _write函数 5.9.7 vfs_write函数 5.9.8 generic_file_write函数 5.9.9 generic_file_aio_write_nolock函数 5.9.10 generic_commit_write函数 5.10 小结
第6章 数据同步机制 6.1 同步机制概览 6.1.1 同步函数介绍 6.1.2 同步流程 6.1.3 page/buffer cache 6.1.4 create_buffers函数 6.2 O_DIRECT标志 6.2.1 generic_file_direct_IO函数 6.2.2 filemap_fdatawrite函数 6.2.3 mpage_writepages函数 6.2.4 ext2_writepage函数 6.2.5 filemap_fdatawait函数 6.2.6 ext2_direct_IO函数 6.2.7 do_direct_IO函数 6.2.8 submit_page_section函数 6.2.9 dio_bio_submit函数 6.3 O_SYNC标志 6.3.1 generic_osync_inode函数 6.3.2 sync_mapping_buffers函数 6.3.3 wait_on_buffer函数 6.3.4 ll_rw_block函数 6.3.5 write_inode_now函数 6.3.6 write_inode函数 6.3.7 wait_on_inode函数 6.4 sync函数 6.4.1 sys_sync函数 6.4.2 sync_inodes函数 6.4.3 sync_supers函数 6.5 fsync/fdatasync函数 6.5.1 sys_fsync/sys_fdatasync函数 6.5.2 ext2_sync_file函数 6.5.3 ext2_sync_inode函数 6.6 msync函数 6.6.1 sys_msync函数 6.6.2 msync_interval函数 6.6.3 filemap_sync函数 6.2.4 filemap_sync_pte_range 6.2.5 虚拟地址转化物理地址 6.2.5 set_page_dirty 6.7 小结
第7章 网络相关函数分析 7.1 TCP/IP流程概览 7.1.1 TCP流程 7.1.2 TCP状态变更 7.1.3 三次握手与四次挥手 7.1.4 TCP/IP四层模型 7.1.5 socket结构体 7.2 socket函数 7.2.1 sys_socket函数 7.2.2 sock_create函数 7.2.3 sock_alloc函数 7.2.4 inet_create函数 7.2.5 sock_init_data函数 7.2.6 sock_map_fd函数 7.3 bind函数 7.3.1 sys_bind函数 7.3.2 inet_bind函数 7.4 listen函数 7.4.1 sys_listen函数 7.4.2 inet_listen函数 7.4.3 tcp_listen_start函数 7.5 connect函数 7.5.1 sys_connect函数 7.5.2 inet_stream_connect函数 7.5.3 tcp_v4_connect函数 7.5.4 tcp_connect函数 7.5.5 tcp_transmit_skb函数 7.6 accept函数 7.6.1 sys_accept函数 7.6.2 inet_accept函数 7.6.3 tcp_accept函数 7.7 recv函数 7.7.1 sys_recv函数 7.7.2 inet_recvmsg函数 7.7.3 tcp_recvmsg函数 7.8 send函数 7.8.1 sys_send函数 7.8.2 inet_sendmsg函数 7.8.3 tcp_sendmsg函数 7.8.4 tcp_write_xmit函数 7.9 close函数 7.5.1 sys_close函数 7.9.2 inet_release函数 7.9.3 tcp_close函数 7.10 小结
第8章 Redis源码分析 8.1 Redis主流程分析 8.1.1 main函数 8.1.2 initServerConfig函数 8.1.3 initServer函数 8.1.4 setupSignalHandlers函数 8.1.5 createSharedObjects函数 8.1.6 adjustOpenFilesLimit函数 8.1.7 slowlogInit函数 8.1.8 bioInit函数 8.1.9 aeSetBeforeSleepProc函数 8.1.10 aeMain函数 8.1.11 aeDeleteEventLoop函数 8.2 Redis事件循环 8.2.1 event结构 8.2.2 Redis 事件循环设计 8.2.3 aeEventLoop结构体 8.2.4 aeFiredEvent结构体 8.2.5 aeTimeEvent结构体 8.2.6 aeFileEvent结构体 8.2.7 事件循环操作函数原型 8.2.8 ae_select实现 8.2.9 ae_epoll实现 8.3 Redis多路复用器 8.3.1 如何根据环境选择多路复用器 8.3.2 aeCreateEventLoop函数 8.3.3 aeCreateFileEvent函数 8.3.4 aeDeleteFileEvent函数 8.3.5 aeCreateTimeEvent函数 8.3.6 aeDeleteTimeEvent函数 8.3.7 aeMain函数 8.3.8 aeProcessEvents函数 8.3.9 processTimeEvents函数 8.3.10 aeWait函数 8.4 Redis请求与响应整体流程 8.4.1 anetTcpServer函数 8.4.2 anetUnixServer函数 8.4.3 acceptTcpHandler函数 8.4.4 acceptUnixHandler函数 8.4.5 acceptCommonHandler函数 8.4.6 createClient函数 4378.4.7 readQueryFromClient函数 8.4.8 processInputBuffer函数 8.4.9 resetClient函数 8.4.10 processCommand函数 8.4.11 lookupCommand函数 8.4.12 queueMultiCommand函数 8.4.13 call函数 8.4.14 addReply函数 8.4.15 sendReplyToClient函数 8.5 小结

赞助用户下载地址

立即下载

(解压密码:www.teccses.org)

Article Title:《计算之道 卷II:LINUX内核源码与REDIS源码》
Article link:https://www.teccses.org/29087.html