世界是数字的重点读书笔记(计算机科普知识)

《世界是数字的》是世界顶尖计算机科学家Brian W.Kernighan写的一本计算机科普类读物,简明扼要但又深入全面地解释了计算机和通信系统背后的秘密,适合计算机初学者和非计算机专业的人读。这真的是一本好书,借Google常务董事长的话:

对计算机、互联网及其背后的奥秘充满好奇的人们,这绝对是一本不容错过的好书。

对于一个计算机已经学了N年的专业人士来说,这本书也许简单了点,不过我还是认真过了一遍,发现也有一定的收货,因为一个人很难掌握本领域里的所有知识,或多或少会有一些欠缺,总会有一些你以前不知道的,或一直没理解清楚的但又很有必要知晓的知识,我在阅读此书过程中就有这种感觉,经常会有一种恍然大悟的感觉,比如理解了互联网上一些不为人知的跟踪原理(具体可以看我下面总结的第12点“Cookie如何暴露你在互联网上的行踪”)。我是个喜欢记笔记和做总结的人,阅读完一本书,我经常会找个闲暇的时间总结下,主要是根据自己已有的知识储备体系总结一些对我有帮助的或有必要知道的知识点。

下面就简单总结下自己的所获和所感。
注意:下面的知识都是科普知识,适合非计算机专业、计算机初学者及和像我一样计算机一开始就没学好的人看,那些牛B的大牛就不用来浪费时间来读你们已称之为“常识”的知识啦。

1. P和NP问题

现在的程序员都很怕遇到NP问题,不仅算法复杂而且还保证不了每次都能找到解。那到底什么是P问题和NP问题呢?作为一个程序员,你如果回答说“P问题就是容易的问题,NP问题就是复杂的难以解决的问题”那就太失败了。P即“Polynomial”(多项式),P问题是指具有“多项式”级复杂性的问题。换句话说,解决这些问题的时间可以用N^2这样的多项式来表示,其中指数可以大于2,但都是可能在多项式时间内被解决的,这些问题相对比较简单。
但是,现实中大量的问题或者说很多实际的问题似乎都需要指数级算法来解决,即我们还不知道对这类问题有没有多项式算法。这类问题被称为“NP(nondeterministic polynomial,非确定性多项式)”问题。NP 问题的特点是,它可以快速验证某个解决方案是否正确,但要想迅速找到一个解方案却很难。可以这么认为,这些问题可以用一个算法在多项式时间内靠猜测来解决,而且该算法必须每次都能猜中。在现实生活中,没有什么能幸运到始终都做出正确的选择,所以这只是理论上的一种设想而已。

可以举个简单的例子来说明NP问题,那就是著名的“旅行推销员问题”(Traveling Salesman Problem)。一个推销员必须从他居住的城市出发,到其他几个城市去推销,然后再回家。目标是每个城市只到一次(不能重复),而且走过的总距离最短。这个问题实际应用价值很大,其原理经常被应用于设计电路板上孔洞的位置,或者部署船只到墨西哥湾的特定地点采集水样。旅行推销员问题已经被仔细推敲了50 多年,但还是解决不了NP难问题。

现在业界内也经常讨论一个问题:P 是否等于NP?即这些难题到底跟那些简单的问题是不是一类?
尽管很多人都相信未来的某一天可以达到P=NP,但我还是希望这一天不要太早到来,因为现在一些重要的应用,如加密软件,都是完全建立在某个特定的问题确实极难解决的基础之上的。设想一下,如果某天这些难问题都被攻破了,那我们的各个账号密码、网银岂不是要……当然,如果真有那么一天,也表明计算机领域又有了一个重大的突破,这是值得可贺的。

2. 没有删除只有覆盖

我们知道,磁盘没有真正的删除,我们所谓的“delete”操作只是把文件占用的块回写到空闲块列表。但是,这些文件的内容并没有被删除。换句话说,原始文件占用的每个块中的所有字节都会原封不动地呆在原地。除非相应的块从空闲块列表中被“除名”并奉送给某个应用程序,否则这些字节不会被新内容覆盖。这意味着什么呢?意味着你认为已经删除的信息实际上还保存在硬盘上。如果有人知道怎么读取它们,仍然可以把它们读出来。任何可以不通过文件系统而能够逐块读取硬盘的程序,都可以看到那些被“删除”的内容。

那么如何真正的彻底删除呢?Mac中的“安全擦除”选项在释放磁盘块之前,会先用随机生成的比特重写其中的内容。但是即使用新信息重写了原有内容,一名训练有素的敌人仍旧可以凭借他掌握的大量资源发现蛛丝马迹。军事级的文件擦除会用随机的1 和0 对要释放的块进行多遍重写。更为保险的做法是把整块硬盘放到强磁场里进行消磁。而最保险的做法则是物理上销毁硬盘,这也是保证其中内容彻底销声 匿迹的唯一可靠方法。

也有一些彻底删除文件的软件,比如我用过的BCWipe(是看韩国黑客犯罪片“幽灵”时知道的,剧里经常用这个软件删除机密文件),它提供 Delete with wiping、Wipe free disk space 两种方式来清除你的磁盘文件,还有其它选项,不过这款软件是收费软件,我只试用过一段时间,我本人没啥见不得人的文件,也不需要此类软件,只是当时看完电视好奇试玩了一把。

3. 无线网络上网原理

从技术角度讲,

  • 11
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
操作系统的重点知识笔记包括以下内容: 1. 操作系统的基本概念和地位,涉及操作系统的定义、作用以及在计算机系统中的位置。 2. 操作系统的主要特征和基本功能,包括进程管理、内存管理、文件系统、设备管理等。 3. 操作系统的体系结构,涉及单体结构、客户端-服务器结构、分层结构、微内核结构等不同的操作系统结构设计方法。 4. 操作系统的发展和结构,包括不同操作系统的发展历程和演变过程,以及它们的结构特点。 5. 对于Java基础学习,可以参考比较详细的Java基础学习笔记。 总之,操作系统是指在一台主机上连接了多个配有显示器和键盘的终端并由此所组成的系统,它允许多个用户同时通过自己的终端,以交互方式使用计算机,共享主机中的资源。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [自考操作系统02326笔记2017版教程 第一章](https://download.csdn.net/download/alang1991/11076432)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Java基础笔记MarkDown版4万字肝吐血](https://download.csdn.net/download/qq_33865785/88275967)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [操作系统OS笔记与知识点总结](https://download.csdn.net/download/ruanerzhaopeng/10128041)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值