- 零基础学习Linux内核启动流程
- 嵌入式开发岗为什么要学Linux内核
- 【基础讲解】Linux内核《六大锁机制实现》
- 【基础讲解】Linux内核《原子操作机制原理》
- 【基础讲解】Linux内核《自旋锁机制与信号量》
- 【基础讲解】Linux内核《KVM架构与性能调优》
- 【基础讲解】Linux内核《处理器缓存系统调用》
- 【基础讲解】Linux内核《翻译后援存储器(TLB)》
- 【基础讲解】Linux内核《CPU虚拟化与内存过载》
- 【基础讲解】Linux内核《x86通用寄存器结构》
- 【进程管理】Linux内核《进程调度算法》
- 【进程管理】Linux内核《进程地址空间》
- 【进程管理】Linux内核《进程虚拟内存》
- 【进程管理】Linux内核《进程调度内核APi》
- 【进程管理】Linux内核《进程描述符与优先级》
- 【进程管理】Linux内核《同步系统调用》
- 【进程管理】Linux内核《调度组与调度域》
- 【进程管理】Linux内核《3个必学系统调用》
- 【进程管理】Linux内核《SMP负载均衡》
- 【进程管理】Linux内核《NUMA调度器》
- 【进程管理】Linux内核《CFS完全公平调度器》
- 【进程管理】Linux内核《CFS详解与系统调用》
- 【进程管理】Linux内核《init_task进程源码解读》
- 【内存管理】Linux内核《内存管理高级详解》
- 【内存管理】Linux内核《内存管理技术栈》
- 【内存管理】Linux内核《内存管理精华》
- 【内存管理】Linux内核《物理内存管理》
- 【内存管理】Linux内核《内存管理模型》
- 【内存管理】Linux内核《虚拟内存管理》
- 【内存管理】Linux内核《虚拟内存进程地址空间》
- 【内存管理】Linux内核《内存分配器详解》
- 【内存管理】Linux内核《内存管理8大架构》
- 【内存管理】Linux内核《内存管理源码分析》
- 【内存管理】Linux内核《内存分配器与链表》
- 【内存管理】Linux内核《内存管理API系统调用》
- 【内存管理】Linux内核《内存碎片整理》
- 【内存管理】Linux内核《内存虚拟可移动区域》
- 【内存管理】Linux内核《Slab分配器详解》
- 【内存管理】Linux内核《创建内存映射详解》
- 【内存管理】Linux内核《请页机制详解》
- 【内存管理】Linux内核《物理页面page》
- 【内存管理】Linux内核《分配物理页面》
- 【内存管理】Linux内核《物理页面及内存管理区》
- 【内存管理】Linux内核《高并发内存池实现》
- 【内存管理】Linux内核《缺页中断处理》
- 【内存管理】Linux内核《伙伴系统架构》
- 【内存管理】Linux内核《伙伴分配器_块分配器》
- 【内存管理】Linux内核《内存检测及死锁检测》
- 【内存管理】Linux内核《删除内存映射与页表缓存》
- 【内存管理】Linux内核《虚拟地址空间布局详解》
- 【内存管理】Linux内核《页表缓存详解》
- 【内存管理】Linux内核《页与块缓存详解》
- 【内存管理】Linux内核《页表缓存与ASID & VMID》
- 【内存管理】Linux内核《页高速缓存及基树应用》
- 【设备驱动】Linux内核《设备驱动程序》
- 【设备驱动】Linux内核《设备驱动程序架构》
- 【设备驱动】Linux内核《IO体系结构与访问设备》
- 【设备驱动】Linux内核《USB系统架构》
- 【设备驱动】Linux内核《3种内核模块实战》
- 【设备驱动】Linux内核《字符与块设备驱动程序》
- 【设备驱动】Linux内核《模块机制API大全》
- 【文件系统】Linux内核《虚拟文件系统》
- 【文件系统】Linux内核《Ext2_3文件系统》
- 【文件系统】Linux内核《文件系统API实战》
- 【文件系统】Linux内核《VFS技术栈详解》
- 【文件系统】Linux内核《VFS-5种结构源码分析》
- 【网络协议栈】Linux内核《网络协议栈详解》
- 【网络协议栈】Linux内核《协议栈分析》
- 【网络协议栈】Linux内核《协议栈与sk_buff》
- 【网络协议栈】Linux内核《UDP_TCP协议栈》
- 【网络协议栈】Linux内核《IPv4协议源码》
- 【网络协议栈】Linux内核《epoll原码分析》
- 【网络协议栈】Linux内核《IO与网络模型实现》
- 【网络协议栈】Linux内核《网络编程5种IO模型》
- 【网络协议栈】Linux内核《Netfilter框架详解》
- 【网络协议栈】Linux内核《Netfilter框架报文处理》
- 【网络协议栈】Linux内核《Iptables和netfilter框架》
- 【网络协议栈】Linux内核《Netfilter架构及挂接点》
- 【网络协议栈】Linux内核《高级路由选择详解分析》
- 【网络协议栈】Linux内核《套接字接口类型及原理 》
- 【网络协议栈】Linux内核《网络设备net_device》
- 【网络协议栈】Linux内核《网络开发模型及Netlink协议》
- 【中断管理】Linux内核《中断管理技术栈》
- 【中断管理】Linux内核《中断管理架构》
- 【中断管理】Linux内核《中断子系统详解》
- 【中断管理】Linux内核《缺页中断处理详解》
- 【中断管理】Linux内核《ARM中断控制器》
- 【中断管理】Linux内核《ARM32页表映射》
- 【中断管理】Linux内核《ARM64处理器架构》
- 【中断管理】Linux内核《ARM64高低层中断方案》
- 【中断管理】Linux内核《SoftIRQ软中断与Tasklet机制》
- 【面试题总结】Linux内核《大厂面试5大知识体系》
- 【面试题总结】Linux内核《面试官最爱问30道内核题》
- 【面试题总结】Linux内核《100道经典内核面试题》
- 【面试题总结】Linux内核《200道Linux内核精选题》
- 【面试题总结】Linux内核《如何提高面试大厂竞争力》
这门课的精髓在于,不仅教会你如何分析Linux内核,更教你做事的方法论:“天下难事必做于易,天下大事必做于细”,对于代码量庞大无从下手的内核,我们从小处入手,步步为营,最终掌握全局。
Linux内核分析的过程,是对自己肯定,否定,再肯定并不断重复这个循环的过程。作为coder,唯一的快感就是有一种自我肯定的得意。然而这个过程很快会被无情的打破,因为这么庞大的内核,我们始终有一种盲人摸象的茫然。
进程调度算法从实现的角度看仅仅是从运行队列中选择一个新进程,选择的过程中运用了不同的策略而已。对于理解操作系统的工作机制,反而是进程的调度时机与进程的切换机制更为关键。schedule()函数用来选择一个新的进程来运行,并调用context_switch()进行上下文的切换,这个宏调用switch_to()来进行关键上下文切换,其中pick_next_task()函数封装了进程调度算法。
