系统崩溃,TCP协议栈
上学那会儿,学的是谭浩强的C语言教材,书里说“访问空指针会造成系统崩溃”。我记得大学老师讲到这里的时候,我就会较真儿什么是系统崩溃,老师便告诉我,访问任意指针,系统的行为将会是未知的,访问空指针系统会直接崩溃,我再问什么是系统,如何崩溃的时候,老师说,系统就是操作系统,崩溃就是蓝屏,司机之类的,反正就是系统不能继续用了…
那是2003年左右,Windows XP系统刚刚发布不到两年,大红大紫之时啊,我记得只要回到寝室,一有上机时间就会摆弄Windows XP的各种特性,炫酷的UI真的不错…
那时我们的C语言平台是Turbo C,我用它写了一个访问空指针的程序,看看能不能让Windows XP崩溃,然而,并不能。无论我写一个访问什么指针的程序,系统都不会崩溃,只是简单的程序错误。
…
那个时候我还在机械工程系学习机械原理,也就不纠结计算机的事了。时间过了好多年后,我才第一次经历了自己访问空指针造成了Linux操作系统崩溃,那一次,我第一次写Linux内核模块,写的不好,所以操作系统就崩溃了…
所以,在教授或者学习C语言之前,最好先教授或者学习一些操作系统的基础原理,否则,对于指针错误这种,就很难能描述清楚。即便是普通应用程序里的指针,你想真正了解它,不也得先了解虚拟内核和MMU吗?不然,当程序由于指针出现错误时,很难获得一个根源上的解释。
我不知道现在大学的老师在讲C语言系统崩溃的时候,还会不会说操作系统崩溃了,反正,跟我差不多时间上大学的人,遇到这个问题时,很多的老师都是在照本宣科操作系统崩溃。
当我们提到“栈”这个词时,我们说的是带有后入先出这种行为的一种容器。也就是说,它的内容并不是一个东西,而是多个层次化的东西层叠在一起,就像一摞盘子一样。
协议栈,指的是符合某种分层模型约束的多个协议的层叠结构,比如TCP/IP,这是一个典型的协议栈。但是注意,TCP/IP协议栈包含的是一族协议,其中有HTTP,DNS,TCP,UDP,ICMP,IP,ARP,RIP,OSPF等等,而不是某一个协议。
由于TCP名不副实的地位,人们经常会用“TCP协议栈”这个词来代替TCP这一个协议,有点喧宾夺主,这是不对的。TCP只是一个协议,并不是一个栈。如果非要硬将TCP协议栈指代TCP/IP协议栈,那就必须连带着包含IP协议。
这就好比,没有任何人可以被称作人类一样。如果要描述TCP,就说TCP好了,把“栈”字去掉。
昨天看了《恐怖游轮》,本来今天准备用代码写一下逻辑的,然而睡了一觉后就没想法了,而且还有几个BUG需要解释,等全部通了一并搞。今天继续看完《土拨鼠之日》和《Happy Death Day!》,同样精彩的无限循环电影。
系统崩溃,TCP协议栈相关推荐
- 怎样实现linux的网络通信协议是,一种基于Linux系统的TCP/IP协议栈的实现
一种基于Linux系统的TCP/IP协议栈的实现 本文分析了Linux内核TCP/IP协议栈的实现,给出了Linux网络数据处理流程,探讨了Linux的I (本文共3页) 阅读全文>> 介 ...
- linux协议栈劫持,Linux系统优化之TCP协议栈优化-基本篇1
因为在做爬虫分布式系统的过程中,涉及到了一些linux系统优化方面的知识,所以来总结一下,我们会对linux的不同模块做相关的基本优化,这篇文章主要讲述的是关于tcp协议栈的参数优化. 1.机器环境 ...
- 用户态TCP协议栈的调研
一.各种用户态socket的对比 1.MTCP 简单介绍: 韩国高校的一个科研项目,在DPDK的2016年的技术开发者大会上有讲,所以intel将这个也放到了官方上,所以一般搜索DPDK的用户态的协议 ...
- 什么叫linux网络协议栈,我们为什么使用Linux内核的TCP协议栈
最近的一篇文章提出了"我们为什么使用Linux内核的TCP协议栈"的问题,并在Hacker News引发了非常有意思的讨论. 在CloudFlare的时候我也曾思考这个问题.我的经 ...
- tcp协议栈实现,tcp定时器与滑动窗口实现
要实现用户态协议栈,必须要搞懂TCP,TCP 11个状态.滑动窗口.拥塞控制.定时器等等. 要使用用户态协议栈,内核提供的epoll就不起作用了,我们需要自己实现用户态的epoll.epoll内部涉及 ...
- linux 系统崩溃完全没有操作空间的系统修复
linux 系统崩溃完全没有操作空间的系统修复 1.通过U盘系统启动 2.修复文件系统 https://editor.csdn.net/md/?articleId=106213788 此时硬盘会被挂在 ...
- 开机不进去桌面执行gui_电脑系统崩溃进不去,简单几步设置U盘,快速找回桌面重要文件...
hello~我可爱的粉丝们!今天粮小白分享一个电脑系统崩溃无法开机,怎么把电脑数据保存备份的小技能,就来就点个关注吧.每天更新生活必备技能哦. 电脑系统崩溃进不去,简单几步设置U盘,快速找回桌面重要文 ...
- Science长文综述:通过空间斑图形成避免复杂系统崩溃
来源: 集智俱乐部 作者:Max Rietkerk et al. 译者:吕丽莎.胡一冰.李明章.郭瑞东.张澳 审校:张澳.梁金 编辑:邓一雪 导语 今天的地球处于人类世,人类活动对整个地球生态系统具有 ...
- linux服务器崩,Linux系统崩溃最快速的解决方法
现象: 在安装HP硬件监控(hpasmcli)提示需要依赖Glibc-2.7,而本机的是Glibc-2.5,看来得升级Glibc了,可惜在升级时又出现了更多的依赖问题,想到在其他服务器上安装hpasm ...
- 让Linux系统崩溃最快速的方法
现象: 在安装HP硬件监控(hpasmcli)提示需要依赖Glibc-2.7,而本机的是Glibc-2.5,看来得升级Glibc了,可惜在升级时又出现了更多的依赖问题,想到在其他服务器上安装hpasm ...
最新文章
- 杭州新设大数据资源管理局 推动资源共享、市场规范
- rust(65)-rust常用指针
- 编译执行和解释执行/初识量子计算机
- JavaScript学习(二十七)—解决IE以及IE8之前的浏览器下面的添加事件或者删除事件
- java tcp socket 关闭_JAVA SOCKET和TCP四次挥手
- 计算机网络和综合布线的关系,浅谈计算机网络综合布线的合理性
- LSTM神经网络图解
- 以编程方式使用 Microsoft Office Visio 2003 ActiveX 控件
- python离线安装whl文件.
- 股指期货基差和升贴水介绍
- 数字签名的全过程签名与验证
- 机器人学回炉重造(4):动力学仿真(附牛顿-欧拉递归逆动力学算法matlab代码)
- 线性代数--线性方程组
- Flying-Saucer使用HTML或者FTL(Freemarker模板)生成PDF
- 2022-03-15 工作记录--PHP-判断数组的长度 + 展示数组的长度
- luogu P3647 [APIO2014] 连珠线
- python解释器环境中用于表示上一次运算结果的特殊变量_Python语句print(type(1//2))的输出结果是...
- 【传感器模块】 HC-SR501 人体红外感应模块 热释电 红外传感器
- 关于线程中断thread interrupt
- 纯CSS实现正方形、自适应正方形方法