一、系统调用与socket编程 系统调用是操作系统为用户态进程与硬件设备进行交互提供了一组接口。系统调用通过软中断向内核发出中断请求,int指令(interrupt)+具体的系统调用号触发中断请求。Socket的功能通过调用Socket API来实现。API(application program ...
分类:
其他好文 时间:
2019-12-19 23:13:11
阅读次数:
83
首先来看看sys_socket中的函数调用关系: sys_socket | + sock_create | | | + __sock_create | | | + security_socket_create | + sock_alloc() | + rcu_dereference(net_fami ...
分类:
其他好文 时间:
2019-12-19 23:07:06
阅读次数:
112
Socket与系统调用深度分析 Socket API编程接口之上可以编写基于不同网络协议的应用程序; Socket接口在用户态通过系统调用机制进入内核; 内核中将系统调用作为一个特殊的中断来处理,以socket相关系统调用为例进行分析; socket相关系统调用的内核处理函数内部通过“多态机制”对不 ...
分类:
其他好文 时间:
2019-12-19 23:03:12
阅读次数:
79
1 Linux内核初始化过程中加载TCP/IP协议栈 1.1Linux内核启动过程 由课上的讲解我们知道start_kernel是内核加载的起点,也是我们进行debug的起点。start_kernel中的最后一句为arch_call_rest_init(),其内部调用了课堂ppt上所说的rest_i ...
分类:
其他好文 时间:
2019-12-19 23:01:56
阅读次数:
112
linux内核中socket有关的编程接口 内核中socket有关的编程接口及其对应的功能: 系统调用描述 socketcall socket系统调用 socket 建立socket bind 绑定socket到端口 connect 连接远程主机 accept 响应socket连接请求 send 通 ...
分类:
其他好文 时间:
2019-12-19 22:59:32
阅读次数:
85
1 概念 Linux的设计哲学之一就是:对不同的操作赋予不同的执行等级,就是所谓特权的概念,即与系统相关的一些特别关键的操作必须由最高特权的程序来完成。Intel的X86架构的CPU提供了0到3四个特权级,数字越小,特权越高,Linux操作系统中主要采用了0和3两个特权级,分别对应的就是内核态(Ke ...
分类:
其他好文 时间:
2019-12-19 22:58:58
阅读次数:
94
Issue: 某部机上跟其它机器的连接有问题,ping可以通,telnet端口不通,可以其它机器可以连接到该机器上的进程。 java应用启动不起来,产生以下错误。 Troubleshoot: 打开任务管理器,发现某个进程产生了上千的大量的线程。 Solution: 杀死该进程后,java应用可以成功 ...
分类:
编程语言 时间:
2019-12-19 22:58:23
阅读次数:
119
Socket与系统调用深度分析 1.系统调用:在系统中真正被所有进程都使用的内核通信方式是系统调用。例如当进程请求内核服务时,就使用的是系统调用。一般情况下,进程是不能够存取系统内核的。它不能存取内核使用的内存段,也不能调用内核函数,CPU的硬件结构保证了这一点。只有系统调用是一个例外。进程使用寄存 ...
分类:
其他好文 时间:
2019-12-19 22:57:36
阅读次数:
102
Socket与系统调用深度分析 系统调用 在一开始,应用程序是可以直接控制硬件的,这就需要程序员有很高的编程能力,否则一旦程序出了问题,会将整个系统Crash。 在现在的操作系统中,用户程序运行在用户态,而要进行诸如 、`磁盘I/O system call`。有了操作系统分离了内核和用户态,应用程序 ...
分类:
其他好文 时间:
2019-12-19 22:55:55
阅读次数:
80
1. 前言 本文主要阐述C语言socket api追踪至系统调用的详细过程。追踪过程分为用户态的追踪和内核态的追踪。 目录 用户态追踪 系统调用定义 系统调用初始化的过程 系统调用的执行过程(以socket为例的证明过程) 内核态追踪 分析replyhi和hello程序 gdb跟踪 sys_sock ...
分类:
其他好文 时间:
2019-12-19 21:39:44
阅读次数:
155