kernel
文章平均质量分 63
iteye_15638
这个作者很懒,什么都没留下…
展开
-
Linux内核网络协议栈1- socket文件系统注册
一、注册时机1、在内核初始化时完成;2、内核初始化过程(init/main.c):kernel_init()->do_basic_setup()->do_initcalls()->do_one_initcall();3、socket文件系统注册过程(net/socket.c):core_initcall(sock_init);1) core_initcall宏定义如...2011-06-14 15:20:45 · 185 阅读 · 0 评论 -
kernel-4 进程管理
进程的概念进程就是处于执行期的程序;包含:可执行程序代码(代码段text section),打开的文件、挂起的信号、内核内部数据、处理器状态、地址空间及一个或多个执行线程、存放全局变量的数据段(data section)等;执行线程即线程,是在进程中活动的对象;每个线程都拥有一个独立的程序计数器、进程栈和一组进程寄存器;内核调用的对象是线程,而不是进程;在传统的Unix系统中,...原创 2010-08-01 14:53:15 · 110 阅读 · 0 评论 -
kernel-3 从内核出发
编译内核:在编译内核之前,必须配置它;配置的选项以CONFIG_FEATURE形式表示,如对称多处理器(SMP)的配置选项为:CONFIG_SMP=y/n;y表示启用,n表示不起作用;make config:该工具会挨个遍历所有配置项,要求用户选择yes,no或是module;make menuconfig:基于X11的图形工具;make xconfig:基于gtk+图形工...原创 2010-08-01 09:34:21 · 178 阅读 · 0 评论 -
kernel-2 Linux内核简介
操作系统是指整个系统中负责完成最基本功能和系统管理的那些部分,包括:内核驱动程序启动引导程序命令行shell或者其它种类的用户界面基本的文件管理工具和系统工具内核通常由:负责响应中断的中断服务程序负责管理多个进程从而分享处理器时间的调度程序负责管理进程地址写意的内存管理程序网络、...原创 2010-07-31 16:12:48 · 115 阅读 · 0 评论 -
Linux内核网络协议栈8—socket监听
几个问题了解以下几个问题的同学可以直接忽略下文:1、listen库函数主要做了什么?2、什么是最大并发连接请求数?3、什么是等待连接队列?socket监听相对还是比较简单的,先看下应用程序代码:listen( server_sockfd, 5) ; 其中,第一个参数server_sockfd为服务...2011-08-02 09:07:21 · 313 阅读 · 0 评论 -
Linux内核网络协议栈7-socket端口管理
一、前情回顾上一节《socket地址绑定》中提到,应用程序传递过来的端口在内核中需要检查端口是否可用:if (sk->sk_prot->get_port(sk, snum)) { inet->saddr = inet->rcv_saddr = 0; err = -EADDRINUSE; ...2011-07-05 11:08:38 · 470 阅读 · 0 评论 -
Linux内核网络协议栈6-socket地址绑定(续)
接上篇《socket地址绑定》 三、根据不同的协议来完成绑定上面代码中的第3步是根据应用程序在创建socket时传递到内核的协议域及socket类型来决定调用采用哪个方法,具体可以参考创建socket一文,这里不再赘述;下面以AF_IENT及SOCK_STREAM为例来说明绑定的过程;1、调用链:net/Socket.c:sys_bind()-&g...2011-06-24 21:11:29 · 259 阅读 · 0 评论 -
Linux内核网络协议栈5-socket地址绑定
一、socket绑定入口1、示例代码struct sockaddr_in server_address;server_address.sin_family = AF_INET;server_address.sin_addr.s_addr = inet_addr("0.0.0.0");server_address.sin_port = htons(9734);s...2011-06-24 15:34:47 · 189 阅读 · 0 评论 -
Linux内核网络协议栈4-创建socket(续)
接上篇“创建socket”一文; 5、分配sock结构:本文中的例子会调用inet_family_ops.create方法即inet_create方法完成socket的创建工作;其调用链如下:net/Socket.c:sys_socket()->sock_create()->__sock_create()->net/ipv4/Af_inet.c...2011-06-17 14:13:42 · 223 阅读 · 0 评论 -
Linux内核网络协议栈3-创建socket
1、示例及函数入口:1) 示例代码如下:int server_sockfd = socket(AF_INET, SOCK_STREAM, 0);2) 入口:net/Socket.c:sys_socketcall(),根据子系统调用号,创建socket会执行sys_socket()函数;2、分配socket结构:1) 调用链:net/Socket.c:sys_socket()-&g...2011-06-17 12:28:00 · 209 阅读 · 0 评论 -
Linux内核网络协议栈2-socket从库函数到内核
一、socket()库函数到系统调用,再到内核1、Linux运行的C库是glibc;2、socket()调用如下:1) socket()->__socket():glibc-2.3.6/sysdept/generic/socket.c (weak_alias(name1, name2))2) __socket():glibc-2.3.6/sysdept/unix/sysv/...2011-06-14 15:30:46 · 173 阅读 · 0 评论 -
kernel-1 内核对照
进程管理-x86系统:进程结构:<include/linux/sched.h>-struct task_structthread_info:<arch/x86/include/asm/thread_info.h>-struct thread_infothread_union:<include/linux/sched.h>current_thr...原创 2010-08-03 13:57:16 · 167 阅读 · 0 评论