計算之道 卷II:LINUX內核源碼與REDIS源碼 版權信息
- ISBN:9787302675747
- 條形碼:9787302675747 ; 978-7-302-67574-7
- 裝幀:平裝
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
計算之道 卷II:LINUX內核源碼與REDIS源碼 本書特色
本書以清晰易懂的語言深入剖析深度學習的核心原理,從基礎算法到復雜模型架構,為讀者揭開技術神秘面紗。書中詳細闡述大模型的構建、訓練與優化策略,結合豐富的實踐案例,使抽象理論具象化。無論是深度學習初學者渴望入門,還是專業人士欲深入探索大模型奧秘,本書都能提供全面且深入的指引,是一本不可多得的深度學習與大模型學習寶典,幫助讀者在這個前沿技術領域快速提升認知與實踐能力,緊跟時代技術浪潮。
計算之道 卷II:LINUX內核源碼與REDIS源碼 內容簡介
本書是一本全面深入探討深度學習領域的核心原理與應用實踐的專業書籍。本書旨在為讀者提供系統的學習路徑,從深度學習的基礎知識出發,逐步深入到復雜的大模型架構和算法實現。本書適合深度學習初學者、中級開發者以及對大模型有深入研究需求的專業人士。通過閱讀本書,讀者不僅能夠掌握深度學習的理論基礎,還能通過豐富的實戰案例,提升解決實際問題的能力。
計算之道 卷II:LINUX內核源碼與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章 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 小結
展開全部
計算之道 卷II:LINUX內核源碼與REDIS源碼 作者簡介
黃俊專注于研究Java語言專注于研究Hotspot專注于研究Linux內核專注于研究C語言與匯編專注于研究架構設計專注于研究多線程并發處理專注于研究高效學習方式曾就職于美團、阿里黃俊專注于研究Java語言專注于研究Hotspot專注于研究Linux內核專注于研究C語言與匯編專注于研究架構設計專注于研究多線程并發處理專注于研究高效學習方式曾就職于美團、阿里前新東方業務架構師
秦羽專注于研究Java語言專注于研究Hotspot專注于研究Linux內核專注于研究C語言與匯編語言專注于研究代碼框架設計專注于研究多線程并發處理曾就職于華為,負責移動營業項目,擔任技術開發負責人