自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 Linux 接受数据包过程

数据包到达产生PKT arrive中断,某驱动程序的中断服务例程响应中断。1.当中断到来,首先判断是否报文接收中断,如果是那么必定完成如下工作:skb=dev_alloc_skb(GFP_ATOMIC)skb->protocol=eth_type_trans(skb,dev)2.触发软中断,ISR返回首先通过netif_rx从设备驱动程序中收到一个报文在enqueue_to_backlog中,这块的意思是,先判断是否队列不空,如果队列中还有报文,那么先把收到的报文挂到队列中,然后就返回,

2022-05-08 11:28:47 458

原创 Linux send系统调用

net/socket.c调用send,调用__sys_sendto应用层将待发送的数据放在自己申请的buff中INETsocket层将数据放在msghdr{}中INETsocket以下的层将数据放在sk_buff{}中在sendto的系统调用中,首先找到BSD socket,再调用send_message。sendmessage里面执行socket->ops->sendmsg。这里补充,执行的是sock的prot的sendmessage,即真正的sendmessage比如

2022-05-08 11:25:38 1179

原创 Linux 协议栈初始化

net/ipv4/ap_inet.c/inet_init函数首先将几个协议的原型proto{}结构挂到一个全局链表proto_list中,这三个全局变量非常重要,是连接传输层和IP层的纽带。原型里面包括操作。下面是sock_register函数,它将inet_family_ops塞入net_families数组中,这个结构是为了应付从上到下的关系,用户创建socket时,先指定INET地址簇,再指定套接字类型。下面把协议添加进去,就是把协议加入到一个hash表中。这是应付从下到上的数据流接受方向

2022-05-08 11:21:44 177

原创 Linux 5.0内核 系统调用

Linux kernel 5.0 系统调用include/linux/syscalls.h 存放系统调用声明在一个.c文件下实现自己的系统调用添加系统调用号

2022-05-08 11:19:50 154

原创 操作系统Shell的实现

一、shell的实现记录第一次实现简易shell,含makefile。实现命令如下lscatclearechogrepheadmkdirrmdirtouchrmcdpwdwc管道命令`ls -l | head 3 | wc重定向命令 ls -l > ls.outGithub:待上传…命令文件:待上传…主函数截图...

2021-05-29 22:23:42 567

原创 Dijkstra(力扣743)和bellman-Ford(力扣1514)

路由算法1.dijkstra普通实现时间复杂度O(N2)O(N^{2})O(N2),堆实现时间复杂度O(NlogN)O(NlogN)O(NlogN)class Solution {public: int networkDelayTime(vector<vector<int>>& times, int n, int k) { int book[n+1]; int map[n+1][n+1]; int dis[n+1

2021-05-29 21:33:12 132

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除