我们先拿人来做个类比,人与人之间为什么要通信,有两个原因。首先是因为你有和对方沟通的需求,如果你都不想搭理对方,那就肯定不用通信了。其次是因为有空间隔离,如果你俩在一起,对方就站在你面前,你有话直说就行了,不需要通信。此时你非要给对方打个电话或者发个微信,是不是显得非常奇怪、莫名其妙。如果你俩不在一块,还有事需要沟通,此时就需要通信了。通信的方式有点烽火、送信鸽、写信、发电报、打电话、发微信等。采取什么样的通信方式跟你的需求、通信量的大小、以及客观上能否实现有关。
正如Linus Torvalds曾经说过的,大多数安全问题都是bug造成的,而bug又是软件开发过程的一部分,是软件就有bug。至于是安全还是非安全漏洞BUG,内核社区的做法就是尽可能多的测试,找出更多潜在漏洞这样近似于黑名单的做法。Greg Kroah-Hartman说:“一旦我们修复了它,我们就将它放到我们的栈分析规则中,以便于以后不再重新出现这个bug。”如果没有2015年11月5号华盛顿邮报的一篇关于内核安全性的爆炸性专题报道《Net of insecurity the kernel of the argument》,内核社区应该仍会固守“A bug is bug”的理念(虽然如今也没有改变太多)。这篇文章狠狠的批评了内核社区对内核安全的态度,批评Linux “没有一个系统性的机制能在黑客之前发现和解决安全问题,或引入更新的防御技术”,“甚至Linux内核开发社区都没有一个首席安全官”等等。
我是从ARM7TDMI开始接触ARM架构的,当时很幸运有DSP的学习基础,同时遇到了把ARM架构和操作系统结合讲解的书籍。这样,结合自己不断的实践,一直可以跟上ARM架构的演进。长期的跟踪也让我容易能看到ARM的趋势,我从Linaro在做ARM NEON指令集优化关注到Linaro,后面持续的关注以Linaro为首ARM生态组织的发展,几年后的2017年,我作为演讲人分享了ARM架构下的一个TLB性能优化方案,实现了从关注到深度参与到过程。
我们生活中几乎到处都能接触到计算机,从我们日常使用的手机、平板,到办公使用的笔记本、台式机,到银行的ATM机,到各处可见的监控设备,还有我们平时看不见但是我们浏览的网页其所在的服务器,还有微信、抖音等我们日常所用的APP它们所在的服务器,等等,这些都是计算机。如果没有了计算机,我们的生活将难以想象。那么究竟什么是计算机呢,这个还真不好下定义的,那我们就来看一下百度百科对计算机的定义:计算机俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。计算机的应用非常广泛,从我们日常最常见的台式机、笔记本到手机平板都是计算机,而且大到服务器、超级计算机,小到各种嵌入式设备也都是计算机。现在我们对计算机既有了感性的认识,又知道了的它的权威定义,那么计算机是怎么产生的呢,下面我们来看一看计算机的发展史。
在我仔细研究Linux内核中的ftrace之后,发现ftrace中的各个tracers的作用一直被人们严重低估了, 比如我们会花了大量的时间去理解Linux内核中的一块代码,然后猜测可能的执行流, 但是ftrace会首先直接告诉你整个执行流,然后你再去查看代码,这样无论从效率和准确度来讲都是极大的提升。
随着2003年10月安迪鲁宾联合几位朋友创建了Android公司,后来影响众人的智能设备操作系统公司由此而生(2005年被Google收购)。现如今,世界上越来越多的智能终端包括手机、TV、SmartBox和IoT、汽车、多媒体设备等等,均深度使用Android系统,而Android的底层正是Linux内核,这也让Linux内核的安全性对Android产生重大影响。但由于Android由于想绕过商业授权的问题,又研究出来了以bionic取代Glibc、以Skia取代Cairo等类似的方案,使用的不是标准内核和GNU/Linux。由于这些原因,Google在Android内核开源的问题上,理念和Linux内核社区不是十分的匹配,这也导致了Android对内核做了大量的针对性修改,但是无法合入到Upstream上。这也导致了Android内核在安全侧有部分不同于Linux内核,侧重点也存在不同。
在我仔细研究Linux内核中的ftrace之后,发现ftrace中的各个tracers的作用一直被人们严重低估了, 比如我们会花了大量的时间去理解Linux内核中的一块代码,然后猜测可能的执行流, 但是ftrace会首先直接告诉你整个执行流,然后你再去查看代码,这样无论从效率和准确度来讲都是极大的提升。
F2FS是Flash Friendly File System的简称。该文件系统是由韩国三星电子公司于2012年研发,只提供给运行Linux内核的系统使用,这种文件系统对于NAND闪存类存储介质是非常友好的。并且F2FS是专门为基于 NAND 的存储设备设计的新型开源 flash 文件系统。特别针对NAND 闪存存储介质做了友好设计。F2FS 于2012年12月进入Linux 3.8 内核。目前,F2FS仅支持Linux操作系统。
作者简介 王柏生 资深技术专家,先后就职于中科院软件所、红旗Linux和百度,现任百度主任架构师。在操作系统、虚拟化技术、分布式系统、云计算、自动驾驶等相关领域耕耘多年,有着丰富的实践经验。著有畅销书《深度探索Linux操作系统》(2013年出版)。谢广军 计算机专业博士...
作者简介 王柏生 资深技术专家,先后就职于中科院软件所、红旗Linux和百度,现任百度主任架构师。在操作系统、虚拟化技术、分布式系统、云计算、自动驾驶等相关领域耕耘多年,有着丰富的实践经验。著有畅销书《深度探索Linux操作系统》(2013年出版)。谢广军 计算机专业博士...
课程简介随着项目复杂度的增加,现实中的很多项目都会涉及到远程过程调用(RPC)的问题,这些远程过程也许是同一设备上的不同进程,也许分属于物理上分割的不同设备。如何灵活高效地实现这些远程调用,是很多项目都会面临的挑战。本课程首先通过对远程过程调用一般性原理的解释和基本框架的介绍,使...
作者简介谢欢,大家可以叫我Jeff,我目前就职于某国际知名linux发行版开源公司,热衷于linux内核。我平时把linux内核源码当小说一样阅读学习,也一直把能给linux社区贡献更多有质量的代码而努力。今年10月中旬,我向Linux内核社区提交了一个关于tracing的pat...
作者简介甄建勇,高级架构师(某国际大厂),十年以上半导体从业经验。主要研究领域:CPU/GPU/NPU架构与微架构设计。感兴趣领域:经济学、心理学、哲学。 1.引言1加1等于几?这个问题很简单,一年级的小学生都会毫不犹豫的回答是:2。可是你知道计算机是怎么计算出来的吗?你可能会...