您的位置 主页 正文

linux为什么访问设备数据先要mount?

一、linux为什么访问设备数据先要mount? 在知乎上,我几乎一直在不厌其烦的强调“存储设备”和“文件系统”是两个不同的概念。 /dev/下的存储设备文件对应的是存储设备本身,你虽然

一、linux为什么访问设备数据先要mount?

在知乎上,我几乎一直在不厌其烦的强调“存储设备”和“文件系统”是两个不同的概念。

/dev/下的存储设备文件对应的是存储设备本身,你虽然也可以打开、读取、写入一个存储设备,但是你面向的终究是一个存储设备,不是文件系统。存储设备提供的访问单元是块(比如扇区),对于一个块设备来说,它能够提供的基本功能就是可以寻址并读/写哪个/组地址“块”。关于编址可以参考我下面这个回答:

机械硬盘如何编址?

比如你可以试图访问某一个或几个扇区的数据,把扇区里的数据读出来,读出来一堆0和1,但是对于一个庞大的存储设备,你很难知道哪个块里是什么数据,更难以理解读出的一块数据是什么意思。

所以“块”作为计算机面向的单位还是可以的,但绝不适合作为用户面向的单位。用户需要面向的单位不是存储块本身,用户面向的单位是“文件”这样的抽象概念,而文件这个概念就是文件系统抽象出来的,一个文件的数据(和元数据)可能散落在一个存储设备的各个角落(块),用户如果想通过直接读取存储块的内容的方式来获取文件内容是非常困难的,和大海捞针一样。所以用户需要文件系统提供的一层逻辑抽象,借助文件系统的这层管理逻辑来以“文件”的概念访问存储设备。

那么如何借助文件系统来访问存储设备呢?这时就到我们的“挂载”也就是mount操作出场的时候了。挂载的最主要作用其实就是将一个具体存储设备上的具体文件系统和操作系统中对应的文件系统驱动(/模块)关联起来,并将这个具体文件系统中的文件和目录关系挂载到全局目录树上,形成一个“激活运行状态”的文件系统。这之后用户才可以看到你已经习以为常、甚至认为理所当然存在的那些“文件”和“文件夹”,并能通过文件系统模块提供的很多方法访问这些“抽象”概念。

文件系统是一个说大不大说小不小的概念,我不可能在一篇回答里就把它说清楚。好在我之前还回答过很多这方面的问题,如果你真的对文件系统的组织/运行逻辑感兴趣,可以参考下面几篇回答/文章(第4个链接和这个问题很相关,其它三个可以为你提供更多相关方面的理解):

文件系统怎么让Linux内核认识自己图解mount系统调用之挂载关系Linux系统如何知道某文件在硬盘中的位置?Linux的文件系统和挂载点是什么意思?

如果还想了解更多,可以参考下面这篇索引式文章的“存储和文件系统”部分列出的文章和回答:

README - 计算机专业性文章及回答总索引

当然,如果你想认真的研究和学习,那这些都是不够的,还需要系统的学习计算机知识,并不断通过研究和实践来认识文件系统和操作系统。


补充:

忽然觉得好多人还是难以理解存储介质和文件系统的关系和区别, 当然这也没什么, 术业有专攻, 我们不能要求所有人都是计算机专业的。普通的电子设备用户确实没有必要做到能将硬件介质和软件逻辑特别明确分开的地步, 大家常用的Windows系统一直以来也都在尽量透明化存储分区和文件系统的概念, 用户一般口头一提就是C盘, D盘这样的盘符。 脑子里想的应该也是"叫C盘的分区, 叫G盘光驱, 叫H盘的U盘"等等这样的东西, 根本不会想上面的文件系统, 更不会想到什么挂载的概念(被windows透明化了)。其实你双击这些盘符时打开的不是存储设备本身,而是已经挂载的存储设备上的文件系统的挂载点。对普通用户透明化很多细节概念其实是没有问题的, 这应该是属于针对用户使用而设计的概念, 和计算机原理没太大关系。

为了让非计算机专业的普通用户能形象化的理解存储介质和文件系统的区别和联系, 我举一个类比的例子(我也将这个例子回复给了评论区的一个朋友):

分区也好,硬盘也罢,甚至冗余存储设备、逻辑卷,又或者通过iscsi、FC链接的存储设备,这些都是存储设备而已,就好像你有一个空白的本子,不管是牛皮纸的也好,镶金边的也好,活页本也好,甚至是word文档或者能在线编辑的文档,这些都是不同形式的存储介质而已。

在写入有意义的文字之前它们都是“可以涂写的介质”而已,但是比如你写入了小说,加上了插画,你就获得了句子、段落、章节、主题、日期、主人公、叙事手法、经典句子等等这些概念。你在和别人讨论时你会说哪一节写的怎么样,哪个人物在哪一段怎么样,但是你一般不会说第几页从上往下数10厘米,再从左往右数3到8厘米那个内容写的特别好。再比如你画了一幅画, 你会获得近景, 远景, 线条, 人物, 花草树木, 天空, 房子, 色彩, 冷暖色等等这些概念(非艺术专业,我就随便举个例子:)

这些概念本身都是超脱存储介质(如纸张, 画本)的存在,但是又经常依附于书本这样的存储介质而呈现。这就好比文件系统和存储介质的关系了,请类比的理解。最后我只能再贴一个我觉得最浅的概述性回答了:

Linux文件系统概述

我感觉这应该是我能说的最通俗的解释了, 不想明白这些的普通用户大可不必过于纠结, 而非要纠结的想弄明白的, 那我只能推荐你系统的学习计算机系统的基础知识了。倒不用太深的知识, 基本上到计算机专业大二下学期或大三上学期的专业基础知识可能就差不多了.

二、Linux到底牛在哪?为什么大神程序员都喜欢用Linux?

程序员之所以喜欢Linux系统,究其原因具体如下:

1、强大的命令行

命令行有很多功能,如快速、自动化管理系统及处理业务,这消除了开发者对鼠标或触控板的需求,使开发者能够直接通过键盘输入指令来管理系统。自动化管理系统及处理业务可以让开发者专注于手头更重要的任务从而节省下大量实践。作为Linux的核心组件之一,尽管Linux命令行并不完美但始终保持了终端的纯度。

2、Linux非常安全

由于Linux是开源的由大型开发者社区开发和维护,所以安全漏洞被发现和修复的几率更高。此外Windows作为最受欢迎的操作系统,据相关数据统计,Windows设备以76.7%的占比排名第一。因此更多恶意攻击针对的是Windows而不是Linux。

3、对开发者友好

与Windows相比Linux在很大程度上对用户更友好更容易被接受。如Linux有为开发者专门提供的工具,所以它在开发者中非常受欢迎。在Linux中,开发者能够拥有编译器、命令行编辑器、几乎可以调整任何内容的能力、以及自己设置快捷方式的能力,并且这一切都是开箱即用。

4、定期更新

由于Linux是开源的随着人们发现漏洞、安全缓存和错误脚本,开发者会定期得到大量的更新,这就是Linux用户的主要优势之一。

5、社区支持

Linux社区致力于服务所有的Linux用户,因此它将提供长期的支持。Windows社区却与Linux不同,Windows社区之前停止为Windows7用户提供支持,因此如果开发者在Windows7中遇到任何问题或数据泄露的麻烦都将无法联系到帮助中心。但当Linux用户遇到麻烦时,可以在许多地方寻求到帮助,比如:Twitter、LinkedIn、Forums等。

6、隐私性强

Linux不会收集或与任何人分享用户的信息。用户甚至可以关闭收集数据的开发建议,如果打开,也只会提供给Linux的开发团队。如果你曾经使用过Windows10,你会注意到默认的隐私设置会自动开启所有功能。即使你选择不提交有关自己的Microsoft数据,你的信息也依旧会被收集,除非你使用一组程序来禁用Windows的窃听模块。

7、网络安全

Linux通常是网络安全方面最常用的操作系统。这是因为Linux不容易受到病毒攻击,而且它的系统维护得非常好,使系统中出现漏洞的机会极少。因此,通过使用Linux,开发者可以学习到它在网络安全方面的经验,如学习如何保护个人或专业数据免受暴力破解攻击、网络攻击或任何其他类型的攻击,以此来避免个人数据被攻击而泄露。

此外,Linux的好处还有很多,就不为大家一一介绍了。如果想要学习Linux,推荐大家来老男孩教育免费试听~

三、linux oracle为什么要使用大页?

设置了大页,但没被Oracle使用,原因只有两个:

(1)、SGA_MAX_SIZE超过了大页

(2)、没有设置内存锁

内存:是进程活动的舞台,ORACLE数据库在startup时会自动去查找是否设置有大页。

如有,在大页中分配SGA。

如没有,则正常使用默认数据块大小启动。

四、为什么都推荐ubuntu系统作为Linux入门?

这个问题,我感觉应该是预备从Windows转到Linux时发出的。那答案来了:

Ubuntu是很好的过渡,对转到Linux上的Rookie来说,Ubuntu更“像”Windowns

其他关于Ubuntu的种种优缺点的描述都不如这条充分和必要,特别是对效率,性能的探讨,入门的时候,或者准确说,准备入门的时候,真的是一点体会也不会有。

哪些方面像:

  1. 从安装角度:安装教程多。丰富,深入浅出,内容详尽,看起来安装过程很友好。到了逼良为娼的地步。无法拒绝安装它。
  2. 从使用角度:资源管理器、网页浏览器、音乐视频播放器一应俱全。有这几个东西,就算是具备目前PC机的基本必要功能了吧。毕竟打游戏一般是PS4或者XBOX主机,聊天社交购物有手机。至于PC机上还要什么自行车。有这几个东西,Ubuntu和Windows还有什么区别!我感觉资源管理器和音乐播放器都可以不用。毕竟在Windows上基本配置也就是网页浏览器+卷筒纸。Ubuntu上有很好的实现,无障碍。如果是在tty2上,通过curl某hub,那真的很难用到卷筒纸。总结这条的话就是Ubuntu很好的实现了Windows向普通用户提供的一些基本功能,让你可以在不借助教程的情况下,轻松使用

综上所述,Ubuntu更适合从Windows上过渡的入门者使用。不过我觉得对于入门者来说,另外一个问题,也许更有意义:——是什么让你留在Ubuntu上?

我对这个问题的答案是,如果你是为了完成某个特定工作,并希望对此工作进行深刻理解,那Ubuntu是很好的选择,它会很快让你:留下来,潜心工作。

我是为了写Ruby来的,然后发现在Ubuntu上可以非常安静的工作。短暂摆脱生活中R8、女朋友林林总总的干扰。

五、为什么数据都呈正态分布?

实际上,并非所有的数据都呈正态分布。正态分布(也称为高斯分布)是一种特殊的概率分布形态,具有两侧对称、钟形曲线的特点。在某些情况下,真实世界中的数据可能呈现出接近或逼近正态分布的趋势,但并不意味着所有数据都遵循正态分布。

以下是一些可能导致数据呈正态分布的原因:

1. 中心极限定理:根据中心极限定理,当我们从一个足够大的样本中抽取多个独立观测值时,这些观测值的平均值将趋向于正态分布。这是由于许多随机事件的累积效应导致了正态分布的出现。

2. 统计模型的假设:在许多统计模型中,包括线性回归和假设检验等,常常假设数据服从正态分布。这使得在这些模型中使用正态分布进行推断和估计更加方便和简单。

六、为什么很多程序员都建议使用 Linux?

大学期间受人点拨, 利用暑假时间学习和使用Linux开展工作.

然后一个暑假过去了.

同学有写了个啥啥项目的, 有学了啥啥新语言新框架的, 有接活争了多少多少钱的.

我呢?

没有任何学习, 工作上的进步, 完全没有.

全都在折腾自己的电脑和Linux上了.

直到收假, 最终也没能让电脑正常播放声音.

最好的情况是----开机后有一半的记录有声音, 能听个响.

当然不是说整个暑假都在折腾声音, 而是其他的坑都折腾的差不多了.

比如图形问题, 分辨率, 刷新率, 网络问题, 中文显示问题, 内核编译......

最终发现其实自己什么也没学到, 荒废了.

即便是通过踩坑学来的解决方案, 在其他人那也完全用不上, 后来没多久很快也忘光了.


所以后来悟出了这么一个道理, 只有你的工作或学习内容涉及Linux, 你才有必要去投入精力和时间.

如果有人不考虑你的实际工作内容, 无脑让你去用Linux工作.

----那么一定是为了让你停一停脚步, 好让他超过你.

七、什么叫原始数据,记录原始数据有什么要求,为什么这样要求?

实验的原始数据,就是做实验的时候记录的实验参数、设置,以及实验的结果,这些都是直接可以获得的,不是经过计算处理得到的数据。称之为实验原始数据。

八、为什么选择Linux系统运维?Linux系统优势大揭秘

开篇

当今互联网时代,随着信息技术的不断发展,越来越多的企业开始注重数据的安全、稳定性以及性能优化,因此操作系统的选择显得尤为重要。而在诸多操作系统中,Linux以其稳定、灵活和高度可定制性成为了众多企业的首选。那么,Linux系统运维到底好不好呢?本文将从多个角度全面剖析,揭示Linux系统的优势。

功能强大

首先,Linux系统在功能上有着极大的优势。作为开源系统,Linux具有强大的网络功能、多用户支持、多任务处理、安全性等特点,这些都使得其在服务器领域表现出色。相比之下,Windows操作系统则在稳定性和安全性上存在一定的短板。

成本低廉

由于其开源的属性,采用Linux系统可以大大降低企业的运维成本。而且,Linux有着丰富的免费应用软件和工具,也可以有效减少企业的软件成本,极大地提升了企业的竞争力。

高度可定制

另外,Linux系统可以根据企业的需求进行定制,可以选择不同的发行版本,根据需要安装不同的软件包,这种高度可定制的特性,使得Linux系统更加符合企业的实际需求。

安全性

在当今信息安全日益严峻的形势下,Linux系统以其天生的安全性备受青睐。相较于商业操作系统,Linux由于源代码公开,安全漏洞能够更快被发现和修复,从而能够更好地保护企业的数据安全。

社区支持

此外,Linux系统拥有庞大的开源社区,这为用户提供了不竭的资源。无论是开发者还是管理员,都能够通过社区获取免费、及时的支持和解决方案。

总结

综上所述,Linux系统运维绝对是一个不错的选择。其开源特性、低成本、高度可定制、安全性以及社区支持等优势,使得其在企业环境中表现突出。无论是小型企业还是大型企业,选择Linux系统运维都是一个明智的决定。

最后,感谢您的阅读,希望本文能带给您关于Linux系统运维选择的帮助。

九、Linux明明不是Unix,为什么许多人都认为Linux是Unix的衍生版?

简单来说,Linux是Unix的山寨版。

Linux就是lite+Unix

lite的中文意思低热量的,清淡的(light的一种拼写方法);类似…的劣质品;

读音:英 [laɪt];美 [laɪt] ;

词性:形容词adj;

懂了吗?

狗头 保命。

十、为什么程序员都喜欢Linux操作系统?

不是高人,说点个人看法。

首先,你的问题是个伪命题。并不是所有程序员都喜欢 Linux 的。喜欢 Linux, Windows, Mac OS 的程序员各有多少,是需要调查才能知道的。

虽然没有证据,但我相信喜欢 Linux 的程序员恰好是三大系统中最少的。之所以形成“程序员都喜欢Linux操作系统”的假象,我想可能有以下几个原因:

  1. Linux 爱好者属于小众群体,这个群体具有普遍的极客精神和传播自觉,在这个问题上的观点更具有感染力和传播力。
  2. 对于能够充分驾驭,并且体现自己能力的东西,正常人都会不自觉地表现出更大的偏爱,尤其是当一个东西恰好有足够的独特性的时候。Linux 就符合这个条件。
  3. Linux 程序员中高水平程序员的比例和数量都很高,这批人的影响力不容忽视。
  4. Linux 本身给了用户非常大的自由度,而这种自由度又恰好能被程序员这种特殊的用户驾驭。
  5. 对于自己喜欢的工具,越来越喜欢,以至于爱不释手,当成玩具,也是很自然的。这样一来,程序员就有了自觉改进系统的可能。就像一个工匠,把自己每天用的工具随手改一下,让他用起来更顺手一些。
  6. (欢迎补充)

以上第4条其实属于 Linux 本身的优点,是其他几条成立的基础之一。打铁还需自身硬,你说是不是?

关于你的第二个问题,能否开始尝试Linux,答案当然是能。试一下又不会怀孕,怕什么呢。不过这引申出另外一个问题:有无必要。这个得看你个人的工作需要和兴趣,难以一概而论。有的程序员一辈子不碰 Linux 也能活得好好的,有些就必须会。有些人会觉得没事多学一门技术很亏,也有些人能乐在其中。

第三个问题,如何开始。如果只是使用 Linux 的话,还是很容易的。分两种:桌面应用和服务器应用。前者很好办,挑一个 Linux 发行版装上,使劲用就行了。请注意,是把 Linux 当成日常桌面,每天用,而不是想到要学习的时候再打开它。服务器应用也不难,自己按照文档搭一些 Web 和数据库服务器就有感觉了。

为您推荐

返回顶部