![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 69
linux_carlos
这个作者很懒,什么都没留下…
展开
-
软链接和硬链接
硬链接是指多个文件名指向同一个 inode(文件数据和元数据),所以它们共享相同的内容。软链接(Symbolic Link)是一个指向另一个文件或目录的符号链接。硬链接(Hard Link)是多个文件名指向同一个 inode 的链接。软链接是指一个文件名指向另一个文件的路径。硬链接和软链接在文件的详细信息中会有所不同。通过上述方法,您可以确定一个文件是硬链接还是软链接。要查看一个文件是硬链接还是软链接,可以使用。要创建软链接和硬链接,可以使用。例如,要创建一个名为。例如,要创建一个名为。原创 2024-04-23 23:42:32 · 231 阅读 · 0 评论 -
Cache机制
随着半导体工艺和芯片设计技术的发展,CPU的工作频率也越来越高,和CPU进行频繁数据交换的内存的运行速度却没有相应提升,于是两者之间就产生了带宽问题,进而影响计算机系统的整体性能。CPU执行一条指令需要零点几纳秒,而RAM则需要30纳秒左右,读写一次RAM的时间,CPU都可以执行几百条指令了。原创 2024-04-11 18:33:49 · 958 阅读 · 0 评论 -
计算机体系架构
当CPU到RAM中读数据时,内存RAM不是一次只传输要读取的指定字节,而是一次缓存一批数据到Cache中,等下次CPU再去取指令和数据时,可以先到这两个Cache中看看要读取的数据是不是已经缓存到这里了,如果没有缓存命中,再到内存中读取。为了兼顾存储和效率,计算机系统一般会采用内存+外存的存储结构:程序指令保存在诸如磁盘、NAND Flash、SD卡等外部存储器中,当程序运行时,相应的程序会首先加载到内存,然后CPU从内存一条一条地取指令、翻译指令和运行指令。我们编写的程序,除了指令,还有各种各样的数据。原创 2024-04-10 23:43:12 · 1741 阅读 · 0 评论 -
可重入函数
可重入函数(Reentrant Function)是指该函数能够被多个任务或线程安全地调用,即使这些调用是并发执行的。一个可重入函数在任何时刻都可以被中断,然后由另一个任务或线程安全地执行,执行完成后,原来的任务或线程可以继续执行,而不会出现数据错误或不一致的情况。可重入函数对于实时操作系统(RTOS)和多线程环境非常重要,因为它们有助于避免并发执行时的数据冲突和不一致性问题。编写一个可重入函数需要遵循一些基本原则,以确保函数的安全性和稳定性,特别是在多线程或中断驱动的环境中。原创 2024-04-09 23:35:36 · 317 阅读 · 0 评论 -
Linux虚拟内存简介
若进程欲访问的页面目前并未驻留在物理内存中,将会发生页面错误(page fault),内核即刻挂起进程的执行,同时从磁盘中将该页面载入内存。该页表描述了每页在进程虚拟地址空间(virtual address space)中的位置(可为进程所用的所有虚拟内存页面的集合)。虚拟内存管理的最后一个优点是:由于每个进程使用的RAM减少了,RAM中同时可以容纳的进程数量就增多了。PMMU把要访问的每个虚拟内存地址转换成相应的物理内存地址,当特定虚拟内存地址所对应的页没有驻留于RAM中时,将以页面错误通知内核。原创 2024-04-09 23:19:07 · 1604 阅读 · 0 评论 -
Linux系统调用-PREAD
在Linux系统中,pread()函数是一个用于从文件中读取数据的系统调用,它与read()函数相似,但提供了一个额外的功能:它允许你在指定的偏移量处读取数据,而不改变文件的当前偏移量(文件指针的位置)。这使得pread()特别适用于多线程环境,因为它避免了对文件偏移量的共享和潜在的竞争条件。原创 2024-04-08 14:19:49 · 646 阅读 · 0 评论 -
原子操作和竞争条件
所有系统调用都是以原子操作方式执行的。之所以这么说,是指内核保证了某系统调用中的所有步骤会作为独立操作而一次性加以执行,其间不会为其他进程或线程所中断。原子性是某些操作得以圆满成功的关键所在。特别是它规避了竞争状态(race conditions)(有时也称为竞争冒险)。竞争状态是这样一种情形:操作共享资源的两个进程(或线程),其结果取决于一个无法预期的顺序,即这些进程1 获得 CPU 使用权的先后相对顺序。原创 2024-04-07 23:30:51 · 685 阅读 · 0 评论 -
linux系统调用-truncate 和ftruncate
truncate和ftruncate是两个用于修改文件大小的 POSIX 系统调用。它们允许你增大或减小一个文件的大小,如果文件被增大,新增的部分会被填充为零字节。这两个调用的主要区别在于它们指定操作文件的方式。原创 2024-04-06 17:12:52 · 484 阅读 · 0 评论 -
linux系统临时文件-TMPFILE和MKSTEMP
在Linux中,使用临时文件是一种常见的做法,特别是当你需要存储大量数据或者不想影响文件系统的持久存储时。C语言提供了几种创建和使用临时文件的方法,包括使用tmpfile()函数和mkstemp()函数。原创 2024-04-05 16:41:20 · 483 阅读 · 0 评论 -
linux系统调用-FCNTL
fcntl提供了对文件描述符的各种控制操作,比如改变已打开的文件的属性、复制文件描述符、设置文件锁等。fcntl的功能比较广泛,它可以用来实现多种不同的文件操作。原创 2024-04-05 15:32:54 · 691 阅读 · 0 评论 -
linux系统调用-WRITE
Linux系统中的write函数是一个基本的系统调用,用于将数据写入文件或者其他输出流中。它是POSIX标准的一部分,因此在大多数类Unix操作系统中都可以找到它。write函数的原型定义在unistd.h头文件中。原创 2024-04-05 13:26:32 · 232 阅读 · 0 评论 -
Linux系统调用–OPEN
open是Linux系统中用于打开和可能创建一个文件的系统调用。当你打开一个文件时,系统会返回一个文件描述符(file descriptor),这是一个非负整数,之后的读写操作都会使用这个文件描述符。原创 2024-04-04 19:48:11 · 393 阅读 · 0 评论 -
linux系统调用--READ
read是Linux系统中用于从打开的文件、管道或者终端中读取数据的系统调用。它将数据从文件描述符指向的文件中读取到缓冲区中。原创 2024-04-04 20:04:22 · 367 阅读 · 0 评论 -
linux系统调用-LSEEK
lseek函数是Linux系统调用之一,用于重新定位文件内的读/写文件偏移量。这个函数允许文件的读写操作不必从文件开头开始,可以从文件的任意位置开始,这对于访问大文件或者进行文件内容的随机访问非常有用。原创 2024-04-05 13:37:55 · 498 阅读 · 0 评论 -
linux系统调用-CLOSE
Linux系统调用close函数用于关闭一个已经打开的文件描述符(file descriptor)。当一个文件描述符被关闭后,它将不再引用任何文件,且其值可以被后续的open系统调用重新使用。原创 2024-04-05 13:31:58 · 398 阅读 · 0 评论 -
linux系统调用-IOCTL
在Linux系统中,ioctl函数是一种系统调用,用于对设备进行控制。它提供了一种执行设备特定操作的方法,这些操作通常无法通过标准输入/输出调用来完成。ioctl的名称来源于“输入/输出控制”(Input/Output Control)的缩写。原创 2024-04-05 13:51:14 · 453 阅读 · 0 评论 -
linux进程的相关基本概念
linux进程的相关基本概念1.1进程的定义进程是一个程序的一次执行过程,在这个过程中,伴随着资源的分配和释放。1.2操作系统的三个抽象文件:将所有的IO设备都抽象成文件进程:程序执行过程中的所有资源抽象成进程虚拟内存:隔离不同进程,操作系统会为每个进程分配独立的4G的虚拟空间1.3进程和程序的区别程序 program:可执行文件,存在硬盘,静态的概念进程 process:程序的...原创 2020-03-22 09:28:15 · 108 阅读 · 0 评论 -
Linux系统常用指令
Linux系统常用指令打开终端Terminal(快捷键ctrl + alt + t)Shell提供命令提示符表示该命令行的开始,用户在命令提示符后面输入命令,按下ENTER键表示提交命令。命令提示符的格式为:username@hostname:direction $/#其中:username:表示用户名,显示当前登陆用户的账号名hostname:表示主机名,显示当前登陆的主机名di...原创 2020-03-21 11:13:15 · 70 阅读 · 0 评论