全部博文(2759)
发布时间:2014-08-28 21:50:02
3. SYSCALL_DEFINE2(listen, int, fd, int, backlog)函数 该函数主要是在用户空间使用listen系统调用函数进行调用执行,在Linux内核中的还是使用System call vectors实现,在net/socket.c文件中SYSCALL_DEFINE2(socketcall, int, call,unsigned long __u.........【阅读全文】
发布时间:2014-08-21 03:17:28
转载请注明出处:http://blog.chinaunix.net/uid-20788636-id-4420258.html2.3 inet_csk_get_port函数在inet_connection_sock.c文件中的inet_csk_get_port函数分析。int inet_csk_get_port(structsock *sk, unsigned short snum){ &.........【阅读全文】
发布时间:2014-08-12 10:07:01
kernel 3.10代码分析--vmalloc(非连续内存页分配)
在分配内存时,总是希望能分配到连续的物理内存页,愿望是美好的,但系统中可能没有太多的连续内存可用(比如内存碎片严重时),此时就需要一种非连续内存的分配方式。于是乎,就产生了vmalloc,vmalloc用于分配不连续的物理内存页,但将其映射到内核虚拟地址空间中后,其虚拟地址是连续的
内核虚拟地址空间中,有一段专门的区间用于vmalloc,称之vmalloc区,位于线性映射区之后,准确的说是从892M+8M(VMALLOC_START)到VMALLOC_END之间,其中892M是线性映射区,用于线性映射低端内存,之后的8M是安全间隙,用于区间隔离,防止越界。
vmalloc区中包含一个个独立的子区域,每个子区域用于一次独立映射,各个子区域间通过一个内存页进行隔离,防止不正确的内存访问操作。......【阅读全文】