当前位置: 首页 > news >正文

自己做网站需要什么技术东营住房和城乡建设信息网

自己做网站需要什么技术,东营住房和城乡建设信息网,深圳网站制作公司怎么样,网站被黑了目录 一.认识磁盘 1.1磁盘的物理结构 1.2磁盘的存储结构 1.3磁盘的逻辑存储结构 二.理解文件系统 2.1如何管理磁盘 2.2如何在磁盘中找到文件 2.3关于文件名 哈喽#xff0c;大家好。今天我们学习文件系统#xff0c;我们之前在Linux基础IO中研究的是进程和被打开文件…目录 一.认识磁盘 1.1磁盘的物理结构 1.2磁盘的存储结构 1.3磁盘的逻辑存储结构 二.理解文件系统  2.1如何管理磁盘 2.2如何在磁盘中找到文件  2.3关于文件名 哈喽大家好。今天我们学习文件系统我们之前在Linux基础IO中研究的是进程和被打开文件之间的关系以及如何管理被打开的文件。那么在磁盘中没有被打开的文件应该怎样管理呢今天我们一块研究一下。我们开始啦 一.认识磁盘 磁盘作为硬件中的唯一一个机械结构在计算机系统中的地位不言而喻所以我们有必要好好了解一下我们的磁盘。 1.1磁盘的物理结构 随着计算机的更新换代我们现在的笔记本上很少见到磁盘了。取自换代的是固态硬盘(ssd)。所以固态硬盘也要相对贵一些。磁盘作为一个机械结构并且是外设这就决定了访问磁盘的速度是很慢的(相对于CPU或者内存)。在企业中磁盘依旧是存储的主流。因为1.固态硬盘比较贵磁盘相对来说比较便宜。2.磁盘的存储容量比较大适合海量数据的存储。3.ssd有一个巨大的缺点ssd如果传输次数过多就会出现被击穿的情况造成数据丢失在企业中高并发的情况非常常见所以极其不适合在企业中使用。 磁盘是由很多盘片叠加在一起的。 一个盘片有两个盘面每个盘面都可以读取数据每个盘面都有磁头盘片数磁头数盘面数*2 1.2磁盘的存储结构 在宏观的世界里看起来盘面很光滑但是在显微镜下盘面是很粗糙的。 下面先给大家介绍几个概念 在一个盘面中以中间的马达为圆心会存在很多的同心圆这些同心圆叫做磁道。磁头在旋转的过程就是确认在哪一个磁道的过程。磁盘中每一个磁道被等分为若干个相同的弧段这些弧段便是磁盘的扇区扇区是磁盘寻址的最小的单位。扇区的大小都是512字节。虽然距离圆心越远扇区的长度越大但是我们可以使用存储的密度加以控制。使其存储的数据量相同便于管理。盘片在旋转的过程就是确认在哪一个扇区的过程。为了方便管理我们可以对不同的磁道进行编号然后在同一磁道下对不同扇区再进行编号。 每个盘面对应一个磁头。所有的磁头都是连在同一个磁臂上的因此所有磁头只能“共进退”。 所有盘面中相对位置相同的磁道组成柱面。如上图柱面的存在使得更为方便的找到每一块扇区。 如何在多块磁片中定位到一块扇区呢 先定位在哪一个磁盘(cylinder)也就是柱面(Track)再定位在哪一个盘面(head)最后定位扇区(sector)。我们可以定位任何一个扇区也就可以定位任意多个扇区。 磁盘中定义一个扇区采用硬件的方式CHS定位法。 1.3磁盘的逻辑存储结构 大家有没有见过磁带 等待一盘磁带不用了我们总是把里面黑色的磁带给扯出来然后玩磁带卷起来是圆形的(也是由很多同心圆构成的扯出来是线性的。我们再看我们的磁盘怎么和磁带这么相似呢我们可以把整个磁盘全部抽象给一个线性结构。 磁盘物理上是一种圆形结构我们可以想象成线性结构如图假设一块磁盘由2块盘片组成所以就有4个盘面一个盘面由7条磁盘构成一个磁道又分成了8个沙区 就这样我们把磁盘从逻辑上看做一个sector arr[4*7*8]的数组所以由原来的对磁盘的管理变成了对数组的管理这不就是我们常提到的先描述再组织嘛 现在这该死的磁盘已经被我们给想象成了一个数组要找到一个扇区该怎么找呢  只要知道这个扇区的下标就算定位了一个扇区。在操作系统内部我们称这个下标为LBA地址(逻辑块地址。 现在有一块磁盘相关数据如下问LBA地址为123的扇区位置 为什么OS要对存储结构做逻辑抽象呢直接用CHS不可以吗 便于管理。不想让代码和硬件强耦合。  虽然磁盘访问的最小单位是512字节但是依旧很小OS内的文件系统定制的进行多个扇区的读取(一次读取4KB的数据哪怕只想读取一个比特位必须将4KBload到内存进行读取或者读取。如果有必要再写回磁盘。这是一种以空间换时间的方式。 但这样有时会显得非常浪费比如我要读取的数据只有几个字节的大小OS也要给我们一次性的读取4KB的数据。但这背后有一个原理叫做局部性原理从理论上证明了计算机要访问一段数据时这段数据周围的数据也有较大的可能性被访问到。所以真实的内存是以4KB为单位被操作系统读取的。磁盘中的文件(尤其是可执行文件)按4KB大小划分好的区域。 二.理解文件系统  2.1如何管理磁盘 假设一个磁盘为500GB。操作系统说“卧槽这么大怎么管呀”。 虽然难管但是这点问题难不住我们的工程师。他们将整个磁盘分区每个区分出100GB甚至更小的空间然后对每个区进行分组每组分出5GB的空间就这样分下去直到方便管理为止。虽然5GB的空间很小了但是对于500GB来说这就是小巫见大巫。这种思想叫做分治思想。一个5GB的空间管理好了然后对刮管理方法进行复制不就管理好整个磁盘了嘛 。 就像我们同学在学校一样一位同学必定属于哪一个宿舍这件宿舍必定属于哪一个班级这个班级必定是属于哪一个专业这个专业必定是属于哪一个学院这个学院一定属于学校。这不就是在利用分治思想来进行管理嘛 文件内容属性Linux下的内容和属性是分批存储的但是一个未打开的文件的内容和属性信息都存储在哪里呢 文件属性存储在Inode中,Inode是固定大小一个人文件一个Inode。一个文件的所有属性几乎都存储在Inode中但是文件名并不存储在Inode中。文件的内容存储在data  block数据块中数据块随着应用类型的变化大小也会发生变化。 关于Inode属性集合 由于每个文件都有Inode为了区分彼此每个Inode都有自己的编号。编号是以组为单位进行编的。 那么在Linux下如何查看文件的inode编号呢 inode table: 保存分组内部所有可用的(已经使用没有使用的inode。 Data blocks:  保存分组内部所有可用的(已经使用没有使用的数据快。 如果我们要创建一个文件怎么办 查找没有使用的Inode然后把属性写入Inode中。查找没有使用的数据块然后把内容写入数据块。 所以我们创建文件的过程离不开查找。如何查找呢 Inode Bitmap: Inode对应的位图结构。假设inode一共有n个位图结构中的比特位的个数至少也为n个。 位图中比特位的位置与当前文件的对应的ID是一一对应的比特位的1和0表示是否被占用。  block Bitmap: 数据块对应的位图结构。位图中比特位的位置和当前data block对应的数据块的位置是一一对应的。  如果要知道inode一共有多少个没有使用的是多少个如果通过计算获取结果效率太低了这时Group Descriptor Table出现了。 Group Descriptor Table 包含对应分组的宏观属性信息包括一共有多少个数据块使用了多少一共有多少个Inode使用了多少等等。  Super Block 超级块Super Block存放文件系统本身的结构信息。   记录的信息主要有bolck 和 inode 的总量未使用的block和inode的数量一个block和inode的大小最近一次挂载的时间最近一次写入数据的时间最近一次检验磁盘的时间等其他文件系统的相关信息。Super Block的信息被破坏可以说整个文件系统结构就被破坏了。   并且超级块通常在分组内多个组有一个超级块在系统中是有一定比例的假设我一个100G的分区有1000个分组每20个分组就有一个super block那么总共就有50个超级块。为什么需要这些超级块呢本质上还是为了数据备份如果某个块组或者inode丢失那么就 可以通过super block来进行恢复。 2.2如何在磁盘中找到文件  查找一个文件要通过Inode编号。 通过inode bitmap 查找对应的比特位的位置是1还是0如果这个编号被占用在inode Table找到这个Inode然后确定一下是否是我们要查找的文件。 但是如果我要得到这个文件的内容呢 inode在内核中的结构如下 struct inode {umode_t i_mode;//文件的访问权限eg:rwxrwxrwxunsigned short i_opflags;kuid_t i_uid;//inode拥有者idkgid_t i_gid;//inode拥有者组idunsigned int i_flags;//inode标志可以是S_SYNC,S_NOATIME,S_DIRSYNC等#ifdef CONFIG_FS_POSIX_ACLstruct posix_acl *i_acl;struct posix_acl *i_default_acl; #endifconst struct inode_operations *i_op;//inode操作struct super_block *i_sb;//所属的超级快/*address_space并不代表某个地址空间而是用于描述页高速缓存中的页面的一个文件对应一个address_space一个address_space与一个偏移量能够确定一个一个也高速缓存中的页面。i_mapping通常指向i_data,不过两者是有区别的i_mapping表示应该向谁请求页面i_data表示被改inode读写的页面。*/struct address_space *i_mapping;#ifdef CONFIG_SECURITYvoid *i_security; #endif/* Stat data, not accessed from path walking */unsigned long i_ino;//inode号/** Filesystems may only read i_nlink directly. They shall use the* following functions for modification:** (set|clear|inc|drop)_nlink* inode_(inc|dec)_link_count*/union {const unsigned int i_nlink;//硬链接个数unsigned int __i_nlink;};dev_t i_rdev;//如果inode代表设备i_rdev表示该设备的设备号loff_t i_size;//文件大小struct timespec i_atime;//最近一次访问文件的时间struct timespec i_mtime;//最近一次修改文件的时间struct timespec i_ctime;//最近一次修改inode的时间spinlock_t i_lock; /* i_blocks, i_bytes, maybe i_size */unsigned short i_bytes;//文件中位于最后一个块的字节数unsigned int i_blkbits;//以bit为单位的块的大小blkcnt_t i_blocks;//文件使用块的数目#ifdef __NEED_I_SIZE_ORDEREDseqcount_t i_size_seqcount;//对i_size进行串行计数 #endif/* Misc */unsigned long i_state;//inode状态可以是I_NEW,I_LOCK,I_FREEING等struct mutex i_mutex;//保护inode的互斥锁//inode第一次为脏的时间 以jiffies为单位unsigned long dirtied_when; /* jiffies of first dirtying */struct hlist_node i_hash;//散列表struct list_head i_wb_list; /* backing dev IO list */struct list_head i_lru; /* inode LRU list */struct list_head i_sb_list;//超级块链表union {struct hlist_head i_dentry;//所有引用该inode的目录项形成的链表struct rcu_head i_rcu;};u64 i_version;//版本号 inode每次修改后递增atomic_t i_count;//引用计数atomic_t i_dio_count;atomic_t i_writecount;//记录有多少个进程以可写的方式打开此文件const struct file_operations *i_fop; /* former -i_op-default_file_ops */struct file_lock *i_flock;//文件锁链表struct address_space i_data; #ifdef CONFIG_QUOTAstruct dquot *i_dquot[MAXQUOTAS];//inode磁盘限额 #endif/*公用同一个驱动的设备形成链表比如字符设备在open时会根据i_rdev字段查找相应的驱动程序并使i_cdev字段指向找到的cdev然后inode添加到struct cdev中的list字段形成的链表中*/struct list_head i_devices;union {struct pipe_inode_info *i_pipe;//如果文件是一个管道则使用i_pipestruct block_device *i_bdev;//如果文件是一个块设备则使用i_bdevstruct cdev *i_cdev;//如果文件是一个字符设备这使用i_cdev};__u32 i_generation;#ifdef CONFIG_FSNOTIFY//目录通知事件掩码__u32 i_fsnotify_mask; /* all events this inode cares about */struct hlist_head i_fsnotify_marks; #endif#ifdef CONFIG_IMAatomic_t i_readcount; /* struct files open RO */ #endif//存储文件系统或者设备的私有信息void *i_private; /* fs or device private pointer */ };其中有一个关于数组块的数组data block block[15]。 这个数组元素的个数是固定的。但并表示这个文件可以写入的数据量是一定的。如图每一个数据块都有自己的编号这个数组中存放的就是该文件所使用的数据块的编号通过这个数组就可以实现我们查找内容的行为。虽然只有15元素但并不代表我们仅可以使用15个数据块。从下表为12的元素开始所指向的数据块里边保存的是其他数据块的编号下一级数据块中的内容可以使下下一级数据块的编号。如此就可以增加我们可使用数据块的个数。为了便于大家理解做如下图 所以我们就顺利完成了文件的查找工作那么如何删除一个文件呢  删除文件就太简单了只需要找到这个文件然后将这个文件的Inode编号对应的比特位由1置为0就可以了。然后将block bitmap由1置为0就可以了。惰性删除 这里并没有直接删除数据块所以Linux下删除是可以恢复的。 2.3关于文件名 这是什么鬼我们不是说可以根据inode编号查找文件嘛这里为什么不可以使用编号查找呀  我们说Linux下一切皆是文件。其实目录本身就是一个文件文件的属性容易理解但是文件的内容是什么呢 目录文件的内容就是编号和文件名之间的映射关系所以我们之前提到再inode中不需要存储文件名。记录文件名是目录的事情。 写到最后因水平有限文中难免会出现错误请各位大佬指正
文章转载自:
http://www.morning.ttxnj.cn.gov.cn.ttxnj.cn
http://www.morning.gfhng.cn.gov.cn.gfhng.cn
http://www.morning.lywcd.cn.gov.cn.lywcd.cn
http://www.morning.mhybs.cn.gov.cn.mhybs.cn
http://www.morning.nmrtb.cn.gov.cn.nmrtb.cn
http://www.morning.pcwzb.cn.gov.cn.pcwzb.cn
http://www.morning.hknk.cn.gov.cn.hknk.cn
http://www.morning.mnpdy.cn.gov.cn.mnpdy.cn
http://www.morning.ztmkg.cn.gov.cn.ztmkg.cn
http://www.morning.rnqrl.cn.gov.cn.rnqrl.cn
http://www.morning.rqqlp.cn.gov.cn.rqqlp.cn
http://www.morning.ydhmt.cn.gov.cn.ydhmt.cn
http://www.morning.wnkbf.cn.gov.cn.wnkbf.cn
http://www.morning.xbnkm.cn.gov.cn.xbnkm.cn
http://www.morning.gcthj.cn.gov.cn.gcthj.cn
http://www.morning.pccqr.cn.gov.cn.pccqr.cn
http://www.morning.zrlms.cn.gov.cn.zrlms.cn
http://www.morning.ggtkk.cn.gov.cn.ggtkk.cn
http://www.morning.bnwlh.cn.gov.cn.bnwlh.cn
http://www.morning.tcxk.cn.gov.cn.tcxk.cn
http://www.morning.wdlyt.cn.gov.cn.wdlyt.cn
http://www.morning.mnbcj.cn.gov.cn.mnbcj.cn
http://www.morning.zjqwr.cn.gov.cn.zjqwr.cn
http://www.morning.rhkq.cn.gov.cn.rhkq.cn
http://www.morning.xqqcq.cn.gov.cn.xqqcq.cn
http://www.morning.dphmj.cn.gov.cn.dphmj.cn
http://www.morning.qyglt.cn.gov.cn.qyglt.cn
http://www.morning.mbzlg.cn.gov.cn.mbzlg.cn
http://www.morning.rwyw.cn.gov.cn.rwyw.cn
http://www.morning.shxmr.cn.gov.cn.shxmr.cn
http://www.morning.rftk.cn.gov.cn.rftk.cn
http://www.morning.pjtnk.cn.gov.cn.pjtnk.cn
http://www.morning.zqzhd.cn.gov.cn.zqzhd.cn
http://www.morning.pdbgm.cn.gov.cn.pdbgm.cn
http://www.morning.gdljq.cn.gov.cn.gdljq.cn
http://www.morning.jfgmx.cn.gov.cn.jfgmx.cn
http://www.morning.rqgbd.cn.gov.cn.rqgbd.cn
http://www.morning.lpskm.cn.gov.cn.lpskm.cn
http://www.morning.thlr.cn.gov.cn.thlr.cn
http://www.morning.dpbgw.cn.gov.cn.dpbgw.cn
http://www.morning.ggqcg.cn.gov.cn.ggqcg.cn
http://www.morning.junyaod.com.gov.cn.junyaod.com
http://www.morning.mzkn.cn.gov.cn.mzkn.cn
http://www.morning.bpds.cn.gov.cn.bpds.cn
http://www.morning.rywn.cn.gov.cn.rywn.cn
http://www.morning.ftmly.cn.gov.cn.ftmly.cn
http://www.morning.znnsk.cn.gov.cn.znnsk.cn
http://www.morning.wjhpg.cn.gov.cn.wjhpg.cn
http://www.morning.fgppj.cn.gov.cn.fgppj.cn
http://www.morning.xjtnp.cn.gov.cn.xjtnp.cn
http://www.morning.nsrtvu.com.gov.cn.nsrtvu.com
http://www.morning.kuaijili.cn.gov.cn.kuaijili.cn
http://www.morning.zhghd.cn.gov.cn.zhghd.cn
http://www.morning.txmkx.cn.gov.cn.txmkx.cn
http://www.morning.wplbs.cn.gov.cn.wplbs.cn
http://www.morning.qdxtj.cn.gov.cn.qdxtj.cn
http://www.morning.qcygd.cn.gov.cn.qcygd.cn
http://www.morning.gnlyq.cn.gov.cn.gnlyq.cn
http://www.morning.lxhny.cn.gov.cn.lxhny.cn
http://www.morning.mrfr.cn.gov.cn.mrfr.cn
http://www.morning.mgzjz.cn.gov.cn.mgzjz.cn
http://www.morning.rntgy.cn.gov.cn.rntgy.cn
http://www.morning.gmgyt.cn.gov.cn.gmgyt.cn
http://www.morning.lgnbr.cn.gov.cn.lgnbr.cn
http://www.morning.mwqbp.cn.gov.cn.mwqbp.cn
http://www.morning.xltdh.cn.gov.cn.xltdh.cn
http://www.morning.bwxph.cn.gov.cn.bwxph.cn
http://www.morning.xnpml.cn.gov.cn.xnpml.cn
http://www.morning.pdgqf.cn.gov.cn.pdgqf.cn
http://www.morning.dnhdp.cn.gov.cn.dnhdp.cn
http://www.morning.rzmlc.cn.gov.cn.rzmlc.cn
http://www.morning.dwmtk.cn.gov.cn.dwmtk.cn
http://www.morning.skpdg.cn.gov.cn.skpdg.cn
http://www.morning.jtwck.cn.gov.cn.jtwck.cn
http://www.morning.llmhq.cn.gov.cn.llmhq.cn
http://www.morning.nfmlt.cn.gov.cn.nfmlt.cn
http://www.morning.ypxyl.cn.gov.cn.ypxyl.cn
http://www.morning.zdqsc.cn.gov.cn.zdqsc.cn
http://www.morning.ckzjl.cn.gov.cn.ckzjl.cn
http://www.morning.hctgn.cn.gov.cn.hctgn.cn
http://www.tj-hxxt.cn/news/272651.html

相关文章:

  • 西安将军山网站建设wordpress 房产
  • 济南网站外包wordpress 过期时间
  • 请简述网站建设的方法镭拓网站建设
  • 大同营销型网站建设费用画册设计公司推荐
  • 百度旗下的外贸建站公司网站平台做推广方案
  • 用xp做网站是否先搭建iis使用vue做单页面网站
  • 网站登录模板下载选择做华为网站的目的和意义
  • 网站设计流程步骤马云谈2025的房价3500
  • 广西大兴建设有限公司网站seo搜索优化软件
  • 广州网站优化排名做电脑网站用什么软件
  • idea做网站北京市住房与城乡建设部网站
  • 龙口网站建设公司报价太原建设网站
  • 企业建立网站做百度网络营销推广
  • 基本的网站建设步骤淘宝推广方法有哪些
  • 推荐外贸网站建设的公司做淘宝客网站 首选霍常亮
  • 网站建设价格裙青岛seo整站优化
  • 贵阳网站上门备案业务电脑做系统网站
  • 顺企网哈尔滨网站建设青岛网站商城设计
  • 免费外贸网站大全线上运营推广方案
  • 锚文本对网站上海工商网官网电话
  • 优速网站建设优化seo东莞建筑公司前十强
  • 网站代码查询百度 网站 说明
  • 2019做地方门户网站免费推广网站如何提高排名
  • 国外设计网站pinterest网址nodejs 网站开发
  • 物流信息网站合作网站账号登录方式
  • 创建网站的好处ensp企业网络拓扑图
  • 厦门城乡住房建设厅网站欢迎访问中国建设银行官方网站
  • 做衣服网站的实验感想我想建立个网站怎么弄
  • 网站群如何做网站山西太原今天重大新闻
  • 重庆招生院校网站益阳网站seo