一、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系统的多功能性
Linux操作系统是一种开源的操作系统,具有多种实际应用和用途。无论是个人用户还是企业,都可以从Linux系统中获益。
服务器应用
许多服务器运行的是Linux系统,因为它稳定、安全且可靠。企业可以利用Linux服务器来托管网站、应用程序、数据库等,因为Linux系统对多用户和多任务处理的支持非常出色。
嵌入式系统
Linux系统在嵌入式设备中应用广泛,例如智能手机、平板电脑、路由器、网络存储设备等。由于Linux系统具有灵活性和可定制性,因此它非常适合用于嵌入式系统。
科学研究和开发
许多科学研究和开发工作都需要庞大的计算能力和高度的自定义设置。Linux系统提供了丰富的工具和资源,适用于各种科学计算和开发任务。
网络安全
Linux系统通常被用于网络安全领域,例如网络入侵检测系统(NIDS)、网络防火墙、虚拟专用网络(VPN)等。许多信息安全专业人士使用Linux系统来执行安全审计和渗透测试。
个人电脑
对于个人用户而言,Linux系统也具有吸引力。许多版本的Linux提供了美观、易用并且资源消耗较少的桌面环境,适合用于日常办公和娱乐。
总的来说,学习和使用Linux系统可以为个人用户和企业带来各种各样的好处,不仅能够提升技能,还能够带来更高的稳定性、安全性和灵活性。
感谢您阅读本文,希望能够帮助您更好地了解Linux系统的多样化用途。
三、为什么学习Linux? Linux培训是否有必要?
对于计算机爱好者或者希望在IT行业发展的人来说,学习Linux操作系统是非常有必要的。Linux作为一种开源操作系统,在服务器、嵌入式设备、移动设备等领域都有着广泛的应用,掌握Linux技能可以为个人的职业发展带来很多机会。
为什么学习Linux?
首先,Linux在服务器领域应用非常广泛,很多大型互联网公司的服务器都是运行在Linux系统上的。掌握Linux操作系统可以帮助你更好地理解服务器的运行原理,有利于未来从事系统管理、运维工作。
其次,Linux在嵌入式设备领域也有着重要的地位,比如智能手机、家用路由器、智能家居设备等,都可能采用Linux作为操作系统。学习Linux可以为你进入嵌入式设备开发领域铺平道路。
此外,随着云计算、大数据、人工智能等新兴技术的发展,对Linux系统的需求也在不断增加。掌握Linux技能可以让你更好地适应新技术的发展,增强自身的竞争力。
Linux培训是否有必要?
对于初学者来说,参加一些系统化的Linux培训课程是非常有必要的。培训课程可以帮助你系统地学习Linux的基础知识,掌握操作系统的各种命令和技巧,快速建立起对Linux系统的认知。
此外,通过培训课程,你还可以获得一些实际操作的机会,比如搭建服务器、进行系统调优等,这些经验对于今后的工作会大有裨益。
另外,培训机构往往有一些优秀的讲师和教学资源,能够帮助你更快地掌握Linux系统,避免走很多弯路,节省时间和精力。
综上所述,学习Linux对于个人发展具有重要意义,而参加Linux培训课程则可以帮助你更系统地学习和掌握这一技能,为将来的就业和职业发展打下坚实的基础。
感谢您阅读本文,希望能帮助您更好地了解学习Linux的重要性和培训的必要性。
四、为什么学习Linux?Linux学了有什么用
Linux学了有什么用
Linux作为一个开源的操作系统,具有广泛的应用场景和强大的功能,学习Linux不仅可以提升个人技能,还可以为职业发展增添不少优势。
以下是学习Linux的一些重要用途:
- 职业发展: 在信息技术领域,对Linux系统的熟练应用是很多职位的基本要求,比如系统管理员、网络工程师、安全工程师等。
- 开发能力: 对于软件开发人员来说,Linux系统可以提供更好的开发环境和工具,能够更好地进行开发和调试工作。
- 云计算: 当前云计算领域的热度不断增加,很多云平台都是基于Linux系统,了解Linux系统可以更好地理解和应用云计算技术。
- 安全性: Linux系统在安全性方面具有诸多优势,学习Linux可以帮助个人提升对系统安全的认识和应对能力。
- 个人兴趣: 对于对计算机技术感兴趣的人来说,学习Linux系统可以帮助更好地了解计算机工作原理和系统原理,满足个人技术探索的需求。
总之,学习Linux系统可以为个人技能提升、职业发展提供更多机会,同时也可以让个人更好地适应当今信息技术的发展趋势。
感谢您阅读本文,希望可以为您更好理解学习Linux的重要性带来帮助。
五、linux数据库主要存储哪些数据?
整型,浮点型,字符型,字符串型!
六、请问怎么访问linux数据盘?
在Linux下面,硬盘称为块设备,这个跟Windows下的使用非常不同。Windows下的硬盘是能够看到的,一个非常直观的设备,我们通过向导可以格式化这个硬盘,然后双击就可以进去。但是Linux下的硬盘其实只是一个文件,因此是不可以直接进入的。这里我们介绍一下基本原理,相信看完之后就知道怎么使用了。
Linux下的硬盘
如果要使用Linux下的磁盘,必须先要知道Linux下的硬盘在哪里。Linux所有的设备都是在/dev目录下面的一个文件,而且文件名称是有规律的。以通过SCSI协议连接的硬盘为例,他们的名字都是以sd开头的,比如sda,sdb,sdc等。下面是我电脑中的所有硬盘。但是需要注意的是,我这里的sda1和sda2并不是独立的硬盘,而是硬盘sda的两个不同的分区。
如果不是SCSI协议的硬盘,比如NVMe协议的硬盘,那么则不是以sd作为前缀,而是以nvme作为前缀。
如果你使用的服务器不是物理机,而是使用的公有云的服务器,比如阿里云,华为云等。那么硬盘的名称又可能会不同,这点可以查一下官方文档。
如何使用(进入)磁盘
我理解题住这里所谓的进入,其实就是如何使用这个磁盘。在Linux操作系统中,使用一个新硬盘分为两个两步:
1) 格式化硬盘
2)挂载硬盘
如果硬盘不是新安装的,之前被格式化过,那么就可以省略第一步。
所谓格式化硬盘,就是在硬盘上创建一个文件系统。我们可以创建任何自己喜欢的文件系统,比如Ext4,XFS或者Btrfs等,命令也很简单,以Ext4为例,可以执行如下命令【谨慎操作,硬盘原有数据会丢失】:
mkfs.ext4 /dev/sdc
所谓挂载就是将硬盘的文件系统与现有的目录树进行关联,这样我们就可以进入该文件系统了。命令也很简单,比如挂载到/mnt/ext4目录(通常ext4目录需要新建)下面。
mount /dev/sdc /mnt/ext4
这个时候,我们通过cd命令,就可以切换到/mnt/ext4下面了。然后通过ls命令可以查看其中的内容。
废话一箩筐,回到题主的问题。题主描述是想进入/dev/sda2中,通过题主的截图可以看到该设备挂载到了目录/usr/bin/nvidia-smi目录上,所以直接执行如下命令即可。
cd /usr/bin/nvidia-smi
七、linux oracle为什么要使用大页?
设置了大页,但没被Oracle使用,原因只有两个:
(1)、SGA_MAX_SIZE超过了大页
(2)、没有设置内存锁
内存:是进程活动的舞台,ORACLE数据库在startup时会自动去查找是否设置有大页。
如有,在大页中分配SGA。
如没有,则正常使用默认数据块大小启动。
八、学习Linux有什么用?为什么要学习Linux?
你可能听说过Linux,但你是否真的了解它的价值和重要性?学习Linux对于IT行业的从业者来说,绝对是一项有着丰厚回报的投资。
提升就业竞争力
随着云计算、大数据和人工智能的迅速发展,对于精通Linux操作系统的需求也越来越大。许多大型互联网企业、金融机构和科技公司都在招聘Linux技术人才,因为他们对这些行业至关重要。
深入了解操作系统
Linux是开源操作系统,是学习操作系统的绝佳选择。通过学习Linux,你可以深入了解操作系统的原理、内核和管理技术,这对于日后的系统架构设计和性能优化都是至关重要的知识。
获得更广阔的发展空间
精通Linux操作系统可以让你更容易地涉足云计算、容器技术和DevOps领域。这些都是当前和未来IT行业的热门方向,拥有Linux技能将为你打开更广阔的职业发展空间。
提高工作效率
无论是开发、运维还是测试,熟练运用Linux都能帮助你提高工作效率。Linux提供了丰富的命令行工具和自动化脚本技术,能够让你更快速地完成日常工作任务。
拓展网络和安全知识
Linux系统在网络和安全领域有着广泛的应用。通过学习Linux,你将掌握网络配置、安全加固和故障排查等技能,为自己在网络运维和安全领域的发展打下坚实的基础。
总之,学习Linux不仅可以提升你的就业竞争力,还可以为你的技术成长和职业发展打下坚实的基础。无论是从长远规划还是个人技能提升的角度来看,学习Linux都是非常有用且值得投入精力的。
感谢您阅读这篇文章,希望它能够为您明确学习Linux的价值,并为您的职业发展提供一些帮助。
```九、linux云端数据储存及管理?
这个挺庞大的,一个云服务器不够用吧,除非你在云服务器上面进行虚拟机划分,但是这样性能肯定不好。
云端存储管理,首先你需要后端存储,这个后端存储制作数据存储,也就是数据库和web的数据盘,web和数据库本身是不在后端存储盘上进行布置的,后端存储之上是数据库,假定为Mysql,Mysql——server读写都在后端进行,Mysql的前面是web,web进行用户的管控,修改等等,当然,你要是在里面进行HA集群、数据库的集群、或者是给数据库再做内存加速,那么结构还要复杂,不过基本就这样了。
十、linux不能启动数据库?
1、估计没有完全关闭mysql,又启动了2、/etc/init.d/mysqld stop,如果不能彻底关闭,就查进程号直接kill3、ps -ef|grep mysql检查mysql进程是否存在4、netstat -ntlp检查端口是否存在5、检查my.cnf是否有改动,你可以增加[mysqld]socket=/tmp/mysql.sock6、假如mysql正常启动仍报错,用which mysql命令可确认你用的哪里的mysql用mysql -uroot -p -S /tmp/mysql.sock可指定sock文件