
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文主要记录Linux协议栈相关的主要系统调用的一些主要的函数调用栈,备忘。目前添加socket/connect1.sys_socketbsd socket layer=> sys_create net/socket.c=> socket_create net/socket.c=> __socket_create net/socket.c=> sock_alloc net/socket.cine
Linux内核的VFS是非常经典的抽象,不仅抽象出了flesystem,super_block,inode,dentry,file等结构,而且还提供了像页高速缓存层的通用接口,当然,你可以自己选择是否使用或者自己定制使用方式。本文主要根据自己阅读Linux Kernel 3.19.3系统调用read相关的源码来追踪页高速缓存在整个流程中的痕迹,以常规文件的页高速缓存为例,了解页高速缓存的实现过程,
本文接上一篇Linux内核协议栈-初始化流程分析,在上一篇中主要分析了了Linux内核协议栈涉及到的关键初始化函数,在这一篇文章中将分析协议栈的BSD socket和到传输层的流程。采取的方式是分析socket相关的主要系统调用。针对不同的系统调用,其到达的协议层深度可能不同,有的基本只到sock层就够了,但是有些可能需要会涉及到比如tcp的具体细节和更底层的细节。本文基本追溯到传输层的开始,再深
简单描述了x86 32位体系结构下Linux内核的用户进程和内核线程的线性地址空间和物理内存的联系,分析了高端内存的引入与缺页中断的具体处理流程。先介绍了用户态进程的执行流程,然后对比了内核线程,引入高端内存的概念,最后分析了缺页中断的流程。用户进程fork之后的用户态进程已经建立好了所需的数据结构,比如task struct,thread info,mm struct等,将编译链接好的可执行
本文主要针对Linux-3.19.3版本的内核简单分析内核协议栈初始化涉及到的主要步骤和关键函数,不针对协议的解析以及数据包的处理流程做具体分析,后续有机会再详细分析(主要是作者目前这块才涉及…)1.准备Linux内核协议栈本身构建在虚拟文件系统之上,所以对Linux VFS不太了解的可以参考内核源码根目录下Documentation/filesystems/vfs.txt,另外,socket接口
(额…觉得Linux编译链接过程和启动过程还是有那么点作用的哈,要理清楚细节非常多…趟了不少源码…记此备忘)编译流程1.编译除arch/x86/boot目录外的其他目录,生成各模块的built_in.o,将静态编译进内核的模块链接成ELF格式的文件vmlinux大约100M,置于源码根目录之下2.通过objcopy将源码根目录下的vmlinux去掉符号等信息置于arch/x86/boot/com
1.根文件系统的挂载mount_root[init/do_mounts.c]create_dev(“/dev/root”, ROOT_DEV)==>how to do thissys_unlink(“/dev/root”)sys_mknod(“/dev/root”,…)mount_block_root(“/dev/root”, flags)get_fs_names -> c
主要介绍内核抢占的相关概念和具体实现,以及抢占对内核调度和内核竞态和同步的一些影响。1. 基本概念用户抢占和内核抢占用户抢占发生点当从系统调用或者中断上下文返回用户态的时候,会检查need_resched标志,如果被设置则会重新选择用户态task执行内核抢占发生点当从中断上下文返回内核态的时候,检查need_resched标识以及__preemp_count计数,如果标识被设置,并且
1. 介绍简单玩了下Linux kernel为容器技术提供的基础设施之一namespace(另一个是cgroups),包括uts/user/pid/mnt/ipc/net六个(3.13.0的内核). 这东西主要用来做资源的隔离,我感觉本质上是全局资源的映射,映射之间独立了自然隔离了。主要涉及到的东西是:clonesetnsunshare/proc/pid/ns, /proc/pid/uid_







