小知识大作用:U盘的芯片,为什么会有坏块?
坏块的种类:
第一种是出厂时就有的坏块,也就是,你买到的新的,还没用过的Nand Flash,就可能包含了坏块。此类出厂时就有的坏块,被称作factory (masked) bad block 或initial bad/invalid block,在出厂之前,就会做对应的标记,标为坏块。
第二种是在使用过程中产生的坏块,由于使用过程时间长了,在擦块除的时候,出错了,说明此块坏了,也要在程序运行过程中,发现,并且标记成坏块的。具体标记的位置,和上面一样。这类块叫做worn-out bad block。即用坏了的块。
坏块标记:
NAND Flash坏块标记的位置三种情况:每个块的第1页、第1页和第2页、最后1页。对于小页(512Bytes大小),坏块标记是在OOB区域的第6个字节。对于大页(如2K大小),坏块标记是在OOB区域的第1个字节。如果坏块标记字节是0xff,则说明这个块是好块,否则就是坏块。
坏块管理:
在linux系统中会使用坏块表(BBT)对坏块进行管理。在加载NAND驱动时,如果你没有加入参数主动要求跳过坏块扫描,那么系统都会扫描坏块,并建立BBT。使用中可以通过BBT来查询某个块是否是坏块。使用过程中如果发现坏块,也需要更新BBT。坏块表有两种存放方式:
第一种是存放在内存中,这就要求在每次系统上电后都要重新扫描一次NAND Flash,建立bbt。缺点是使系统启动速度变慢,优点是不需要占用NAND Flash空间。
第二种是存放在NAND Flash中,这种方式就不需要在系统上电后重新扫描NAND Flash,只需要去读取就可以了。
Linus Torvalds:桌面版 Linux 的程序兼容性才是最糟糕的问题
近日,“Linux 之父” Linus Torvalds 在 7 年前某会议上对桌面版 Linux 所存在问题进行“吐槽”的视频,再次被网友和媒体们挖了出来,由此引发了热议。
视频中,Linus 强调:乱改核心,造成应用程序不兼容,这才是桌面版 Linux 最糟糕的问题所在!
众所周知,Linus 向来以犀利、激进的言语而闻名。去年,Linus 还对 Intel 的 Advanced Vector Extensions 512(AVX-512)指令集提出了一些激进看法,称其为“功率病毒”,并怒喷 Intel 直言“去死”。
而在这个视频中,Linus 就直指各大 Linux 桌面发行版的程序兼容性问题,并强调了该问题将给开发者和普通用户带来的很多糟糕体验。
首先,Linus 指出了Linux 分裂的一个重要原因:每个发行版都在随意地修改 glibc 库,改变底层 API。
由于这些 API 的差别导致应用开发者无法为 “Linux” 平台创建一个通用的包,因此应用的二进制文件通常只能适用于某个发行版。
我们知道,Linus 一直以来都在呼吁且要求各版本的 Linux 尽量不要更改核心,不能破坏用户空间,但现实中基本没人遵守这个原则。
Linus 表示,自己也参与了一个聊天软件的开发,为 Windows 和 OSX 制作了二进制文件包,但“我一般不为 Linux 桌面制作二进制文件,不同的 Linux 发行版有不同的规则,因为给不同版本的 Linux 做适配真他X的痛苦。”
其次,API 的变动也会让一些桌面版 Linux 在向后兼容方面变得很差,Linus 称这会给非开发者的普通用户带来很不好的交互体验。
最后,Linus 也谈到了桌面版 Linux 在包管理上浪费了太多精力,以及 SteamOS 对桌面 Linux 发行版的影响等。
其实,这已经不是 Linus 第一次“吐槽”所谓桌面版 Linux “烂”了。
在过去的 20 年里,我们一直听说桌面版 Linux 将如何在“5 年”内成为主流的话题。但与此同时,Linus 也花了 20 年时间,试图向那些“狂热的”桌面版 Linux 操作系统用户解释——Linux 根本不是为普通桌面操作系统用户设计的,而是为开发者、IT 专家和程序员而设计的。
所以,我们看到了这条 Linus 在 7 年前 DebConf14 上的视频。
但今天看来,Linus 当初提出的程序兼容性问题不仅没解决,新 Linux 版本又在不断的分裂 Linux 软件生态,这属实很无奈。
好在,我们也看到了一些好的方面的改进,比如 Snap、 Flatpak 这种跨 Linux 版本的统一包管理程序。
其中,snap 包中含有软件的二进制文件和其所需的所有依赖和库,因此可无视软件版本、在任意 Linux 发行版上安装软件。
而 Flatpak 作为分发桌面应用的新框架,可让开发者完全摆脱为不同 Linux 发行版打包分发应用的这些负担,只需构建一个 Flatpak app 就可以在多种发行版上安装使用。
以上这些方法,都能很好的解决了 linux 软件安装时烦人的依赖问题。
如果你也正考虑将 Linux 作为自己的主要桌面操作系统,那么可以先看看来自 Linus Torvalds “吐槽”该问题的完整视频。
视频地址:https://www.reddit.com/r/programming/comments/n06qqf/linus_torvalds_on_why_desktop_linux_sucks/
相关问答
****************** - OSCHINA - 中文开源技术交流社区评论区很有意思,黑底白字写个kernelpanic跟蓝底白字什么差别.还“史诗级退步”"好的不学坏的学的挺快"文档整体看了,也深入细节看了,从规格上来看算是一个非常...
****************** - OSCHINA - 中文开源技术交流社区不管怎么样,在安卓和ios的夹缝中,敢于建立第三个生态系统,关键还建立起来了,这就newbee了;强如微软,当年也灰头土脸;那些吹毛求疵的,其实就是见不得自己人好。...
VxWorks累积的11个重大安全漏洞,对行业客户造成了多大影响?平时人们总能听到有关Windows和Android操作系统的漏洞报告,iOS和Linux则要少一些。不过本文要为大家介绍的,则是VxWorks实时操作系统(RTOS)曝出的...
Linux 突然宕机应该怎么恢复?linux宕机后完全重启会可以进到系统中的,多年的维护经验,遇到过linux各种宕机,但系统存坏无法重启的事情基本没有遇到过,重启过后的主要任务是去/var/log查看...
Linux 命令又多又杂,新手该如何分类?写在前面,个人使用的是:ubuntu18.04版本的系统,使用的是虚拟机和某讯云服务器的。分类的依据主要是根据功能来区分的。常用的命令cdcd是changedirectory...
linux 系统应如何检测硬盘坏道与 坏块 ?在linux系统上,大多数的涉及到系统操作的行为,都是基于命令的。我个人对于linux的GUI的那些软件没有什么深入的研究。在题主的问题中,主要是关于硬盘坏道的检...
deepin磁盘 坏 道检测怎么用?1、通过fdisk命令查看系统的磁盘信息。执行命令"fdisk-l"查看系统的磁盘信息。2、检查Linux硬盘上的坏道/坏块执行命令"badblocks-v...
想问一下,nvim如何设置编辑区左边距,现在文字一直顶在左边...nvim如何设置编辑区左边距,现在文字一直顶在左边框上,全屏模式下实在太别扭了...不給他難道給研究中國人喫肉蛋奶破壞環境的文科教授?想起了最近的国产炒作系...
0基础学习编程,求书籍推荐?本文从以下几个方面给大家分享几本高价值书单,并不一定全面,欢迎读者补充,希望能对你有帮助。1关于编码与重构1.1代码整洁之道英文名《Cleancode》,该...
Linux 在哪些情况下会死机,原因是什么?如何 处理 ?2.系统负载超过正常值的情况下容易死机,原因可能是cpu占用过高,网络io过高,硬盘读写io过高,处理的话也具体根据情况来具体分析,但就是几种思路,优化多核cp...