自定义博客皮肤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 495

原创 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 1230

原创 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 192

原创 Linux 5.0内核 系统调用

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

2022-05-08 11:19:50 169

原创 操作系统Shell的实现

一、shell的实现 记录第一次实现简易shell,含makefile。 实现命令如下 ls cat clear echo grep head mkdir rmdir touch rm cd pwd wc 管道命令`ls -l | head 3 | wc 重定向命令 ls -l > ls.out Github:待上传… 命令文件:待上传… 主函数截图 ...

2021-05-29 22:23:42 595

原创 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 177

空空如也

空空如也

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

TA关注的人

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