惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Vulnerabilities – Threatpost
O
OpenAI News
D
Darknet – Hacking Tools, Hacker News & Cyber Security
B
Blog
博客园 - 聂微东
博客园_首页
Latest news
Latest news
Know Your Adversary
Know Your Adversary
雷峰网
雷峰网
Recent Announcements
Recent Announcements
美团技术团队
Microsoft Azure Blog
Microsoft Azure Blog
F
Fortinet All Blogs
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Tor Project blog
J
Java Code Geeks
WordPress大学
WordPress大学
L
Lohrmann on Cybersecurity
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
G
GRAHAM CLULEY
腾讯CDC
Vercel News
Vercel News
Engineering at Meta
Engineering at Meta
F
Full Disclosure
The Hacker News
The Hacker News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Spread Privacy
Spread Privacy
AWS News Blog
AWS News Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
有赞技术团队
有赞技术团队
K
Kaspersky official blog
Jina AI
Jina AI
Scott Helme
Scott Helme
P
Privacy & Cybersecurity Law Blog
Hugging Face - Blog
Hugging Face - Blog
H
Help Net Security
V2EX - 技术
V2EX - 技术
P
Privacy International News Feed
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 【当耐特】
小众软件
小众软件
C
Cyber Attacks, Cyber Crime and Cyber Security
Cisco Talos Blog
Cisco Talos Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
The Cloudflare Blog
Forbes - Security
Forbes - Security
S
Securelist
A
About on SuperTechFans

Coding | 酷 壳 - CoolShell

API设计原则 – Qt官网的设计实践总结 | 酷 壳 - CoolShell Linus:利用二级指针删除单向链表 | 酷 壳 - CoolShell 如此理解面向对象编程 | 酷 壳 - CoolShell 代码执行的效率 | 酷 壳 - CoolShell 千万不要把 bool 设计成函数参数 | 酷 壳 - CoolShell 重构代码的7个阶段 | 酷 壳 - CoolShell 如何写出无法维护的代码 | 酷 壳 - CoolShell Amazon的书为什么卖到了$2000万 | 酷 壳 - CoolShell Linux 2.6.39-rc3的一个插曲 | 酷 壳 - CoolShell 一些软件设计的原则 | 酷 壳 - CoolShell 打印质数的各种算法 | 酷 壳 - CoolShell 代码重构的一个示例 | 酷 壳 - CoolShell 编程时间分配图 | 酷 壳 - CoolShell 代码优化概要 | 酷 壳 - CoolShell
一个空格引发的惨剧 | 酷 壳 - CoolShell
陈皓 · 2011-06-20 · via Coding | 酷 壳 - CoolShell

你是否相信如果你的程序里没有检查一个变量会导致怎么系统瘫痪?无论你相不相信,这是我一个亲身经历过的案例,你可以在本站的程序员那些悲催的事儿中找到很多这样的事。这样的事昨天在发生,今天同样在发生。Unix40多年了,在这40年里,程序员发生过各种各样的的惨剧,但是大多数的事情一而再再而三的重演。

今天的你,可能在开发者各种各样NB的系统,你会相信你的一个空格也能导致系统瘫痪吗?也许你可能很难相信这个事。不过,再下面这个事将告诉你这个血淋淋的事实 —— 一个空格产生的bug可以让你的系统瘫痪。

bumblebee是一个开源项目,这个名字也就是变形金刚里的大黄蜂,这个项目是这样介绍自己的——

bumblebee is Optimus support for Linux, with real offloading, and not switchable graphics.. More important.. it works on Optimus Laptops without a graphical multiplexer..

Optimus 是NVIDIA的“优驰”技术,其可以将您的笔记本电脑PC提升到绝佳状态,提供出色的图形性能,并在需要时延长电池续航时间。这个项目是把这个技术移到Linux上来。

这个项目本来不出名,不过,程序在其安装脚本install.sh里的一个bug让这个项目一下子成了全世界最瞩目的项目,这个bug的fix如下:

@@ -348,7 +348,7 @@ case "$DISTRO" in
-  rm -rf /usr /lib/nvidia-current/xorg/xorg
+  rm -rf /usr/lib/nvidia-current/xorg/xorg

看明白了吗?空格。这个空格会导致什么样的问题呢?呵呵。你有没有感到菊花一紧?这个bug绝对的霸气外露!真是验证了“如何写出无法维护代码”的那句话——“测试你的程序是一种懦夫的行为”。

不过,最精彩还不是这个bug,而是全世界程序员的对这个bug 的 code review comments,真的相当的欢乐。请强势围望!

https://github.com/MrMEEE/bumblebee/commit/a047be85247755cdbe0acce6#diff-1

重点是其中的很多图片——下面的图片众多。

clip_image001

clip_image002

clip_image007

clip_image010

clip_image011

clip_image012

clip_image014

clip_image016

clip_image019

clip_image020

clip_image021

(全文完)

Loading...