文章目录 一、Linux 文件分类 1、普通文件 2、链接文件 3、字符设备文件 4、管道文件 5、块设备文件 一、Linux 文件分类 ---- Linux 文件分类 : " - " 表示 普通文件..." d " 表示 目录文件 " l " 表示 链接文件 " c " 表示 字符设备文件 " p " 表示 管道文件 " b " 表示 块设备文件 1、普通文件 " - " 表示普通文件 , 既不是目录.../magisk , 也就是本目录的 magisk 文件 ; 3、字符设备文件 " c " 表示 " 字符设备文件 " , 如 /dev/ 目录下大部分都是字符设备文件 ; 4、管道文件 " p " 表示...管道文件 ; 5、块设备文件 " b " 表示 " 块设备文件 " , 在 /dev/block/ 目录下基本都是 块设备文件 ; pci , ram 随机存储内存 , adx 硬盘设备 , loop...伪设备 ( 将文件映射为设备 ) , 一般都是块设备 ;
在Linux系统中,每个设备都被当成一个文件来对待。 ...举例来说,IDE接口的硬盘的文件名即为/dev/hd[a-d],其中,括号里的字母为a-d当中任意一个,也即有/dev/hda,/dev/hdb,/dev/hdc,/dev/hdd这四个文件的意思。...设备 设备在Linux内的文件名 IDE硬盘 /dev/hd[a-d] SCS/SATA/USB硬盘 /dev/sd[a-p] U盘 /dev/sd[a-p](与SATAX相同) 软驱 /dev/fd[
现在都提倡Linux化,且大部分政企都开始转向Linux环境;是故,假如您已在Linux下办公及日常娱乐,那么是否有这样的要求: “我要怎样快速的把电脑上的文件传送到手机等移动设备?”...其实想满足这个需求,现在智能手机都有一个“远程文件管理”功能,这是一个FTP功能,把手机当做一个FTP-Server来用,从而达到文件传送的目的。但是从打开到关闭,相对来讲,还是有点儿复杂的。...,只需要在您的电脑上安装这个软件,即可通过手机端扫描二维即可进行下载分享的文件。...语法格式: qrcp -k 文件名 ---- 注意 如果是目录,需要进行打包压缩,如果不打包,在分享的时候会自动打包压缩; 注意使用 -k 参数,如果不用,一旦手机扫码,程序就会退出,从而导致下载文件失败
答: 在传统的Linux系统中 /dev目录下 的设备节点为一系列静态存在的文件, 而udev则动态提供了在系统中实际存在的设备节点, 虽然在Linux中是采用的devfs提供类似功能但是udev有更好使用的理由..., 来对设备设定一个持久的名称,而不管该设备什么时候被发现添加; 2.我们知道在Linux中万物皆文件而/dev目录包含了所有可能出现的设备的设备文件, 使用udev通过定义一个 udev 规则 (rule...而不会特别地区分设备文件、设备节点或者设备特殊文件; 2.devfs:devfs是 Linux 早期的设备管理工具,已经被 udev 取代。...从该文件系统中Linux 用户可以获取很多设备的属性可以帮助我们编写udev规则。...上文主要描述了Linux 用户能够了解到 udev 的工作原理和流程,灵活地运用 udev 规则文件,从而方便地管理 Linux 设备文件。
mkfs命令用于在设备上(通常为硬盘)创建Linux文件系统。mkfs本身并不执行建立文件系统的工作,而是去调用相关的程序来执行。...语法 mkfs(选项)(参数) 选项 fs:指定建立文件系统时的参数; -t:指定要建立何种文件系统; -v:显示版本信息与详细的使用方法; -V:显示简要的使用方法; -c:在制做档案系统前...参数 文件系统:指定要创建的文件系统对应的设备文件名; 块数:指定文件系统的磁盘块数。
Linux多线程 多线程 进程内进行资源划分 之前说过页表有用户级页表和内核级页表,现在再来扩展一下。...编程难度提高 编写与调试一个多线程程序比单线程程序困难得多。...,因此Text Segment、Data Segment都是共享的,如果定义一个函数,在各线程中都可以调用,如果定义一个全局变量,在各线程中都可以访问到,除此之外,各线程还共享以下进程资源和环境: 文件描述符表...kw=thread 但是这里要注意:任何语言在Linux中要实现多线程,必定要使用pthread库。 C++11中的多线程,本质就是对pthread库的封装。...封装线程接口 这里就用Linux的线程接口来实现C++中的多线程部分功能。
为了方便对物理内存做管理,将其划分成了若干个4KB大小的数据页,并设置了struct Page{}结构体,最后通过数组(struct Page mem[])的方式来管理这些数据页,这些数据页也被称为页框;这就是为什么外设和文件系统进行交互的时候是以...线程是进程内部的一个执行流,在Linux下并没有为线程额外创建数据结构来管理,而是通过只建立PCB来模拟实现的;但是在Windows下为了管理线程又创建了TCB内核数据结构来管理; Linux这种方式一方面是提高了代码的复用率...下进程和线程的关系: 之前我们接触的都是单进程多线程或者多个单线程进程 3.线程的数据属性 一个进程内部的线程共享大部分的资源比如:全局数据、堆空间、加载的的动态库、文件描述符表、每种信号的处理方式...2、健壮性(鲁棒性)降低 编写多线程需要更全面更深入的考虑,在一个多线程程序里,因时间分配上的细微偏差或者因共享了不该共享的变量而造成不良影响的可能性是很大的,换句话说线程之间是缺乏保护的。...4、编程难度提高 编写与调试一个多线程程序比单线程程序困难得多。
fdisk命令用于新建、修改及删除磁盘的分区表信息分区 [root@rhel ~]# fdisk /dev/sdb 依次输入 p n p 1 +1024G 回车 p w Linux...系统会自动把这个硬盘主分区抽象成/dev/sdb1设备文件[root@rhel ~]# parentprobe[root@rhel ~]# parentprobe[root@rhel ~]# file...[root@rhel ~]# mount -a 挂载所有在/etc/fstab中定义的文件系统2 [root@rhel ~]# blkid 使用blkid命令来查询设备UUID [root.../backup xfs defaults 0 0[root@rhel ~]# mount -a[root@rhel ~]# df -humount命令用于卸载设备或文件系统...为此,需要提前备份好重要的数据信息,然后依次删除逻辑卷、卷组、物理卷设备,这个顺序不可颠倒。第1步:取消逻辑卷与目录的挂载关联,删除配置文件中永久生效的设备参数。
DTS不是arm的专利 在使用了设备树后,对于同一SOC的不同主板,只需更换设备树文件.dtb即可实现不同主板的无差异支持,而无需更换内核文件。...dts,所以这些dts势必有共同部分,为了减少代码的屯余,设备树将这些共同部分提炼保存在dtsi中,供不同的dts使用,dtsi文件类似于c语言的头文件 2.1.2 DTC DTC为编译工具,它可以将....dts文件编译成.dtb文件。...可以由linux内核解析,uboot这样的bootloader也可以识别.dtb,有两种使用方式,一种是bootloader启动内核过程中会先读取dtb到文件中;第二种是把dtb和zImage打包在一起做成一个印象文件...每个设备树文件都有一个根节点,每个设备都是一个节点。 2. 节点间可以嵌套,形成父子关系,这样就可以方便的描述设备间的关系。 3.
Linux使用aria2进行多线程下载大文件 本文以Ubuntu系统演示 1. 安装aria2 apt update apt install aria2 -y 2....使用aria2下载文件 aria2c -x16 -s5 -d /stable-diffusion-webui/models/Stable-diffusion https://civitai.com/api.../download/models/146751 这里以下载stable-diffusion模型为例,分16个线程、分5份去下载,下载的文件保存在/stable-diffusion-webui/models
Linux 常见主设备号设备清单# 在Linux系统中,设备通常通过主设备号和次设备号来标识。主设备号用于区分设备的大类,例如硬盘、字符设备等;次设备号用于在同一大类设备中区分不同的设备。...在 Linux 系统中,NVMe 设备通常具有 /dev/nvmeXnY 格式的设备文件名,其中 X 是控制器的编号,Y 是命名空间的编号。...这个设备文件对应整个 NVMe 磁盘,你可以通过这个设备文件读写磁盘的任何位置,或者在其上创建文件系统。然而,如果磁盘已经被分区,通常会使用分区设备文件而不是这个设备文件。...每个设备文件对应磁盘上的一个分区,你可以在这些设备文件上读写对应分区的数据,或者在其上创建文件系统。每个分区设备文件的次设备号(0, 1, 2)对应其分区的编号。...Linux 源码定义# 设备号的分配在早期的 Linux 内核版本中是静态的,设备号的列表可以在内核源代码的 Documentation/admin-guide/devices.txt 文件中找到。
在Linux设备驱动之字符设备(一)中学习了设备号的构成,设备号的申请与释放。在Linux设备驱动之字符设备(二)中学习了如何创建一个字符设备,初始化,已经注册到系统中和最后释放该字符设备。...字符设备驱动程序源码 #include #include #include #include <linux/...\n"); return 0; } //文件操作函数集 static struct file_operations char_ops={ .owner = THIS_MODULE,...char_dev = cdev_alloc();//动态分配cdev if(char_dev) { char_dev->ops = &char_ops;//设置文件操作集...237,所以下一步就是根据主设备号创建设备节点。
/***************** * proc文件系统 *****************/ (1)/proc文件系统的特点和/proc文件的说明 /proc文件系统是一种特殊的、由软件创建的文件系统.../proc下面的每个文件都绑定于一个内核函数,用户读取文件时,该函数动态地生成文件的内容。...也可以通过写/proc文件修改内核参数 /proc目录下的文件分析 /proc/$pid关于进程$pid的信息目录。每个进程在/proc 下有一个名为其进程号的目录。.../proc/devices 列出字符和块设备的主设备号,以及分配到这些设备号的设备名称 /proc/dma 显示当前使用的DMA通道。...供uptime使用 /proc/version 内核版本 (2)自行实现一个/proc文件 需包含头文件,函数定义在/fs/proc/generic.c a.在/proc
Linux中设备驱动的分类 从上图可以看到Linux系统将各异的设备分为三大类:字符设备,块设备和网络设备。内核针对每一类设备都提供了对应驱动模型架构,包括基本的内核设施和文件系统接口。...主设备号用来标识对于的设备驱动程序,而次设备号则由驱动程序使用,用来标识它所管理的若干同类设备。 设备号的表示 在linux系统中,设备号用dev_t表示。这是个32位的无符号整数。... --------------------------- typedef __kernel_dev_t dev_t; typedef __u32 _...随着Linux系统的演变,上述的主次设备号的分发可能在将来会发生变化,所以设备驱动程序开发者应该避免直接使用主次设备号所占的位宽来获得对于的主设备号或次设备号。... ------------------------- #define MINORBITS 20 #define MINORMASK ((1U <<
通过上一节Linux设备驱动字符设备(一)了解了Linux设备驱动的分类,设备号的构成,设备号的申请以及设备号的释放。 在Linux内核中使用struct cdev结构来代码字符设备。... -------------------------------------------------- struct cdev { struct kobject...struct kobject kobj 内核的内嵌对象,是Linux设备驱动模型的重要成员。...struct module *owner 字符设备驱动程序所在的内核模块指针 struct file_operations *ops 字符设备驱动程序文件操作函数集,是应用程序通过文件系统访问驱动的桥梁...该部分在后面Linux字符设备框架一节会详细分析,目前只要明白主要流程即可。 字符设备的注销 当驱动程序需要从系统卸载的时候,就需要使用cdev_del释放字符设备占用的内存。
还有多线程编程的一些细节问题,如线程之间怎样同步、互斥,这些东西将在本文中介绍。我见到这样一道面试题: 是否熟悉POSIX多线程编程技术?...(下面的内容摘自Linux下的多线程编程) 使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式。...我们知道,在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种"昂贵"的多任务工作方式。...当然,数据的共享也带来其他一些问题,有的变量不能同时被两个线程所修改,有的子程序中声明为static的数据更有可能给多线程程序带来灾难性的打击,这些正是编写多线程程序时最需要注意的地方。 ...除了以上所说的优点外,不和进程比较,多线程程序作为一种多任务、并发的工作方式,当然有以下的优点: 提高应用程序响应。
还有多线程编程的一些细节问题,如线程之间怎样同步、互斥,这些东西将在本文中介绍。我见到这样一道面试题: 是否熟悉POSIX多线程编程技术?...(下面的内容摘自Linux下的多线程编程) 使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式。...linux基础 http://www.makeru.com.cn/course/details/2058?...s=45051 快速上手linux http://www.makeru.com.cn/live/1758_310.html?...s=45051 linux多线程编程 http://www.makeru.com.cn/course/details/1937?
1.Linux线程的发展 早在LINUX2.2内核中。...这一切是2.6的内核多线程机制更加完备。...一个注意点:在默认线程属性下,如果一个进程有很多线程在同时运行,一个线程在退出以后,当前线程所占用的资源并不会随着线程的终止而得到释放。因为所有处在一个进程中的线程共享资源。...================================================================================= linux多线程pthread的函数声明在...中,因此在使用该函数时,需要把该头文件引入。
进程实际上是一个线程组,因此一个多线程进程就是一个团队,里面的每一条线程都可以被单独调度,提高了程序执行的并发性。...拓展: 通常,对于一个多任务的程序来说,需要创建多条线程,但是线程的多寡应该是由任务的轻重来决定的,因此对于一个更加灵活的多线程程序而言,更高级的使用技巧是所谓的线程池。
多线程互斥 抢票问题 这里还需要用一个函数: 这里是以微妙做单位进行休眠的。 假设有1000张火车票,一共四个接口在抢,最后我们要看到什么现象呢? 因为多个线程进行交叉执行。...对一个全局变量进行多线程更改,这个操作也不是安全的。 对于++,- -这两种操作,在C,C++上看起来只有一条语句,其实汇编用了三条语句。 1.从内存中读取数据到CPU寄存器中。...pthread_join(e,nullptr); } pthread_mutex_destroy(&lock);//解锁 return 0; } 理解锁 锁的背景概念 临界资源:多线程执行流共享的资源就叫做临界资源
领取专属 10元无门槛券
手把手带您无忧上云