Linux内核
文章平均质量分 83
小弟季义钦
好东西要大家分享!
展开
-
Linux中的UDP通信
客户端: #include "apue.h" #include #include /* 问题: UDP通信套接字描述符没有同任何地址绑定,那么在这个套接字描述符上面发送数据有什么意义 ??? 是不是系统默认将其与本机地址绑定了? 答案:假如c_fd没有显式和任何本地"端口"绑定,那么内核会为其绑定一个临时"端口", 以便其可以通过该"端口"将数据发送到目的地址 !!! >>>原创 2012-11-01 23:14:58 · 1388 阅读 · 0 评论 -
Linux中的TCP通信
客户端: #include "apue.h" #include #include #include int main(void){ int c_fd; struct sockaddr_in s_addr; /*linux套接字地址需转化成通用sockaddr结构地址*/ char buf[MAXLINE] = "hello server!\n"; /* (1原创 2012-11-01 23:26:34 · 1317 阅读 · 0 评论 -
Linux内核(一)系统启动过程
转载请注明出处:jiq•钦's technical Blog (1) CPU自身初始化: CPU加电之后需要进行一系列的初始化工作; (2) CPU加载BIOS(Basic InputOutput System): CPU执行一个固定的位置(一般是0xFFFFFFF0)的指令。这是一条跳转指令,跳转到BIOS代码的首部。BIOS固化在主板上一个很小的ROM中,主要完原创 2015-06-21 16:41:38 · 1312 阅读 · 0 评论 -
Linux内核(三)进程调度
转载请注明出处:jiq•钦's technical Blog 数据结构: 每个处理器维护一个运行队列,主要字段如图所示。 每个运行队列有两个优先级队列,一个活跃的(时间片未完),另一个是过期的(时间片已完)。每个队列都有一个位图,用于快速寻找到当前队列中的最高优先级。 Schedule()函数执行步骤如下: (1)在活动优先级队列的位图数组中找到当前最高优先级原创 2015-06-21 16:55:00 · 1347 阅读 · 0 评论 -
Linux内核(二)中断基本概念
转载请注明出处:jiq•钦's technical Blog 首先解释一些容易混淆的概念: 中断上下文:正在执行ISR或者下半部。没有进程背景(只是暂停CPU去内存中其他地方执行一段快速代码),所以不能被切换(比如睡眠,被其他进程抢占等都不行)。 进程上下文:非中断上下文(比如执行系统调用或者内核线程的时候)。此时内核代表线程在执行,所以允许睡眠,被抢占等(被切原创 2015-06-21 16:51:31 · 1362 阅读 · 0 评论 -
Linux内核(四)系统调用
转载请注明出处:jiq•钦's technical Blog 什么是系统调用? 系统调用——内核和用户应用程序的桥梁,中间人。 系统调用就是内核实现的一系列函数,这些函数提供了一套固定的接口,通过这套接口,用户程序可以访问系统硬件和操作系统的资源,即内核提供的服务。 为什么提供系统调用? 用户空间只能通过系统调用来访问内核提供的服务的根本原因是为了对系统进行“保原创 2015-06-21 16:57:43 · 1487 阅读 · 0 评论 -
Linux内核(五)虚拟内存
转载请注明出处:jiq•钦's technical Blog 内存管理单元(MMU)完成虚存地址到物理地址的转换。 1什么是虚拟内存: 虚拟内存两个关键技术: (1)页表(地址变换机构)。虚拟地址(连续的)到物理地址(不连续的页)的转换; (2)页面置换功能。将暂时不用的页面放到磁盘,让正在运行的进行获得更大的物理空间。 虚拟内存是计算机系统内存管理的一种技术原创 2015-06-21 17:11:09 · 1489 阅读 · 0 评论