摘要:
一学期的课程就这样结束了,涉及的内容不少,但要把这些内容整合在一起重新组织纳入到自己的知识体系中还是比较困难,尽力而为吧。 下面内容是按照各个模块进行总结,就算是期末前的复习了。 系统调用与用户态和内核态以及用户空间和内核空间之间的关系 为了更好的进行资源管理以及维护计算机系统的稳定,程序在计算机上 阅读全文
摘要:
1. CPU上下文 Linux 是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行。当然,这些任务实际上并不是真的在同时运行,而是因为系统在很短的时间内,将 CPU 轮流分配给它们,造成多任务同时运行的错觉。 CPU上下文 CPU 寄存器和程序计数器就是 CPU 上下文,因为它们都是 C 阅读全文
摘要:
1.配置内核debug环境 1.1 通过两个命令行窗口进行内核debug 已经有很多其它同学的博客详细的描述了这个过程,另外自己在网络程序设计课程中已经配置过类似的环境,很多操作不想再重复一遍,这里就不在赘述。下面直接给出系统启动时暂停在start_kernel处的截图。 1.2 在vscode中配 阅读全文
摘要:
1.下载linux-5.4.34和mykernel 在kernel.org下载内核速度特别慢,推荐在USTC开源镜像站下载,速度飞起.linux-5.4.34的下载地址是 https://mirrors.ustc.edu.cn/kernel.org/linux/kernel/v5.x/linux-5 阅读全文
摘要:
试卷共分为选择和简答两个部分,各占50%。选择题均来自历年408真题,简答题来自网络。 一、选择题(5×10) 1. (2010-408)下列选项中,不属于网络体系结构所描述的内容是(C)A.网络的层次B.每一层使用的协议 C.协议的内部实现细节D.每一层必须完成的功能 解析:计算机网络体系结构是计 阅读全文
摘要:
1.内核TCP三次握手代码分析 首先客户端调用connect主动发起连接 SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr, int, addrlen) { return __sys_connect(fd, u 阅读全文
摘要:
1 Linux内核初始化过程中加载TCP/IP协议栈 1.1Linux内核启动过程 由课上的讲解我们知道start_kernel是内核加载的起点,也是我们进行debug的起点。start_kernel中的最后一句为arch_call_rest_init(),其内部调用了课堂ppt上所说的rest_i 阅读全文
摘要:
实验环境 Ubuntu 16.04 LTS 1. 下载并解压linux_5.0.1内核 cd ~/Desktop mkdir LinuxKernel #在桌面创建LinuxKernel工程目录 cd LinuxKernel wget https://cdn.kernel.org/pub/linux/ 阅读全文
摘要:
1. 实验环境 Ubuntu 16.04LTS 2. 利用python的socket接口实现一个简单的聊天小程序 server端 import socket server = socket.socket(socket.AF_INET,socket.SOCK_STREAM) server.setsoc 阅读全文
摘要:
1. 背景 在生活中的会经常遇见一台PC同时连接多个网络的场景.最典型的,一台笔记本可以同时连接一个无线网(手机热点)和一个有线网(以太网).linux和window操作系统在默认情况都会使用最早连接的网络进行互联网访问.如果我们想切换到另一个网络进行互联网访问,最粗暴的方法就是断开最先连接的网络, 阅读全文