上学那会儿,学的是谭浩强的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协议栈相关推荐

  1. 怎样实现linux的网络通信协议是,一种基于Linux系统的TCP/IP协议栈的实现

    一种基于Linux系统的TCP/IP协议栈的实现 本文分析了Linux内核TCP/IP协议栈的实现,给出了Linux网络数据处理流程,探讨了Linux的I (本文共3页) 阅读全文>> 介 ...

  2. linux协议栈劫持,Linux系统优化之TCP协议栈优化-基本篇1

    因为在做爬虫分布式系统的过程中,涉及到了一些linux系统优化方面的知识,所以来总结一下,我们会对linux的不同模块做相关的基本优化,这篇文章主要讲述的是关于tcp协议栈的参数优化. 1.机器环境 ...

  3. 用户态TCP协议栈的调研

    一.各种用户态socket的对比 1.MTCP 简单介绍: 韩国高校的一个科研项目,在DPDK的2016年的技术开发者大会上有讲,所以intel将这个也放到了官方上,所以一般搜索DPDK的用户态的协议 ...

  4. 什么叫linux网络协议栈,我们为什么使用Linux内核的TCP协议栈

    最近的一篇文章提出了"我们为什么使用Linux内核的TCP协议栈"的问题,并在Hacker News引发了非常有意思的讨论. 在CloudFlare的时候我也曾思考这个问题.我的经 ...

  5. tcp协议栈实现,tcp定时器与滑动窗口实现

    要实现用户态协议栈,必须要搞懂TCP,TCP 11个状态.滑动窗口.拥塞控制.定时器等等. 要使用用户态协议栈,内核提供的epoll就不起作用了,我们需要自己实现用户态的epoll.epoll内部涉及 ...

  6. linux 系统崩溃完全没有操作空间的系统修复

    linux 系统崩溃完全没有操作空间的系统修复 1.通过U盘系统启动 2.修复文件系统 https://editor.csdn.net/md/?articleId=106213788 此时硬盘会被挂在 ...

  7. 开机不进去桌面执行gui_电脑系统崩溃进不去,简单几步设置U盘,快速找回桌面重要文件...

    hello~我可爱的粉丝们!今天粮小白分享一个电脑系统崩溃无法开机,怎么把电脑数据保存备份的小技能,就来就点个关注吧.每天更新生活必备技能哦. 电脑系统崩溃进不去,简单几步设置U盘,快速找回桌面重要文 ...

  8. Science长文综述:通过空间斑图形成避免复杂系统崩溃

    来源: 集智俱乐部 作者:Max Rietkerk et al. 译者:吕丽莎.胡一冰.李明章.郭瑞东.张澳 审校:张澳.梁金 编辑:邓一雪 导语 今天的地球处于人类世,人类活动对整个地球生态系统具有 ...

  9. linux服务器崩,Linux系统崩溃最快速的解决方法

    现象: 在安装HP硬件监控(hpasmcli)提示需要依赖Glibc-2.7,而本机的是Glibc-2.5,看来得升级Glibc了,可惜在升级时又出现了更多的依赖问题,想到在其他服务器上安装hpasm ...

  10. 让Linux系统崩溃最快速的方法

    现象: 在安装HP硬件监控(hpasmcli)提示需要依赖Glibc-2.7,而本机的是Glibc-2.5,看来得升级Glibc了,可惜在升级时又出现了更多的依赖问题,想到在其他服务器上安装hpasm ...

最新文章

  1. 杭州新设大数据资源管理局 推动资源共享、市场规范
  2. rust(65)-rust常用指针
  3. 编译执行和解释执行/初识量子计算机
  4. JavaScript学习(二十七)—解决IE以及IE8之前的浏览器下面的添加事件或者删除事件
  5. java tcp socket 关闭_JAVA SOCKET和TCP四次挥手
  6. 计算机网络和综合布线的关系,浅谈计算机网络综合布线的合理性
  7. LSTM神经网络图解
  8. 以编程方式使用 Microsoft Office Visio 2003 ActiveX 控件
  9. python离线安装whl文件.
  10. 股指期货基差和升贴水介绍
  11. 数字签名的全过程签名与验证
  12. 机器人学回炉重造(4):动力学仿真(附牛顿-欧拉递归逆动力学算法matlab代码)
  13. 线性代数--线性方程组
  14. Flying-Saucer使用HTML或者FTL(Freemarker模板)生成PDF
  15. 2022-03-15 工作记录--PHP-判断数组的长度 + 展示数组的长度
  16. luogu P3647 [APIO2014] 连珠线
  17. python解释器环境中用于表示上一次运算结果的特殊变量_Python语句print(type(1//2))的输出结果是...
  18. 【传感器模块】 HC-SR501 人体红外感应模块 热释电 红外传感器
  19. 关于线程中断thread interrupt
  20. 纯CSS实现正方形、自适应正方形方法

热门文章

  1. HTML5大前端开发有哪些常用工具?
  2. Nmap下载和简单应用
  3. python简单温度转换,python编写的简单温度转换程序
  4. 给自己的Web站点嵌入一个免费的图片编辑器
  5. 7个免费的在线音频编辑网站推荐
  6. 很简单的与ACM告个别
  7. Java JVM 运行机制及基本原理
  8. 我市“一卡通”被授予国家金卡工程优秀应用成果奖
  9. lwIP配置宏整理(部分)
  10. python之pandas基础知识以及练习题