摘要: 1. Linux体系结构 Linux系统的地址空间分为用户空间和内核空间,通过系统调用和硬件中断能够完成从用户空间到内核空间的转移。 2. 系统调用接口 ① 一般情况下,用户进程不能访问内核空间。Linux内核中提供了一组用于实现各种系统功能的子程序,用户可以调用它们访问Linux内核的数据和函数, 阅读全文
posted @ 2018-08-17 18:04 99度的水 阅读(658) 评论(0) 推荐(0) 编辑
摘要: 1. Linux 内核的整体结构非常庞大,其包含的组件也非常多,使用这些组件的方法有两种: ① 直接编译进内核文件,即zImage或者bzImage(问题:占用内存过多) ② 动态添加 * 模块本身并不被编译进内核文件 * 根据需求,在内核运行期间动态安装或卸载 2. 内核模块动态安装与卸载 ①安装 阅读全文
posted @ 2018-08-17 11:51 99度的水 阅读(566) 评论(0) 推荐(1) 编辑
摘要: 1. Linux进程控制理论 ① 进程是一个具有一定独立功能的程序的一次运行活动(动态性、并发性、独立性、异步性)。 进程的四要素: (1)有一段程序供其执行(不一定是一个进程所专有的),就像一场戏必须有自己的剧本。 (2)有自己的专用系统堆栈空间(私有财产) (3)有进程控制块(task_stru 阅读全文
posted @ 2018-08-15 11:34 99度的水 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 并发服务器的思想是每一个客户的请求并不由服务器直接处理,而是由服务器创建一个子进程来处理 1. 服务器端 2. 客户端 阅读全文
posted @ 2018-08-15 01:53 99度的水 阅读(2183) 评论(2) 推荐(0) 编辑
摘要: 1. UDP通讯模型 2. 服务器端 ① 创建一个socket,用函数socket() ② 绑定IP地址、端口等信息到socket上,用函数bind() ③ 循环接收数据,用函数recvfrom() ④ 关闭网络连接 3. 客户端 ① 创建一个socket,用函数socket() ② 绑定IP地址、 阅读全文
posted @ 2018-08-13 17:04 99度的水 阅读(560) 评论(0) 推荐(0) 编辑
摘要: 1. TCP通讯模型 2. 服务器端 ① 创建socket,用函数socket() ② 绑定IP地址、端口号等信息到socket上,用函数bind() ③ 设置允许的最大连接数,用函数listen() ④ 等待来自客户端的连接请求,用函数accept() ⑤ 收发数据,用函数send()和recv( 阅读全文
posted @ 2018-08-13 16:50 99度的水 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 1. Linux网络模型 ① OSI七层模型和Linux四层模型 ② 各种协议之间的关系及在Linux模型中的位置 ③ 协议封装:各种协议处于一种层层封装的关系 (1)Ethernet (2)IP * IP主要有四个主要功能:数据传送,寻址,路由选择,数据报分段 * IP的主要目的是为数据输入、输出 阅读全文
posted @ 2018-08-13 12:26 99度的水 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 1. 二分查找算法概述 二分查找是对一个有序数据集合所做的操作。查找开始时,首先找出有序集合中间的那个元素。如果此元素比要查找的元素大,就接着在较小的一半查找;反之,则在较大的一半查找。 2. 使用二分查找算法的必要条件 ① 必须是有序集合② 元素必须存储在连续的空间 3. 二分查找示例 阅读全文
posted @ 2018-08-10 12:36 99度的水 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 函数调用栈为ABI规范的内容,不同的操作系统有不同的约定。 Arm+Linux平台下函数调用过程的研究 1. C语言代码: 2. C语言代码反汇编:arm-linux-objdump -D -S Test > dump 3. 函数调用及返回过程,fp指针(当前函数栈针基地址)和sp指针(指向栈顶的指 阅读全文
posted @ 2018-08-09 03:54 99度的水 阅读(360) 评论(0) 推荐(0) 编辑
摘要: ①main函数原型: int main(int argc, char* argv[], char* env) ②mian函数返回值: main函数的返回值是返回给父进程的,父进程调用下面函数来获取进程的退出码 pid_t wait(int* status); pid_t waitpid(pid_t 阅读全文
posted @ 2018-08-08 21:30 99度的水 阅读(346) 评论(0) 推荐(0) 编辑