Linux简述

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhougb3/article/details/79948323

Linux系统组成部分:Linux内核、shell、文件系统和应用程序。

Linux 内核由如下几部分组成:内存管理、进程管理(比较简单的基于优先级的进程调度算法选择新的进程)、设备驱动程序、文件系统和网络管理等。

Linux下面的文件类型主要有:
1) 普通文件:C语言元代码、SHELL脚本、二进制的可执行文件等。分为纯文本和二进制。
2) 目录文件:目录,存储文件的唯一地方。
3) 链接文件:指向同一个文件或目录的的文件。
4) 设备文件:与系统外设相关的,通常在/dev下面。分为块设备和字符设备。
5)管道(FIFO)文件 : 提供进程建通信的一种方式
6)套接字(socket) 文件: 该文件类型与网络通信有关

Linux的磁盘分区:主分区,扩展分区,逻辑分区(从5开始编号)

对于一个磁盘分区来说,在被指定为相应的文件系统后,整个分区被分为 1024,2048 和 4096 字节大小的块。根据块使用的不同,可分为:

超级块(Superblock): 这是整个文件系统的第一块空间。包括整个文件系统的基本信息,如块大小,inode/block的总量、使用量、剩余量,指向空间 inode 和数据块的指针等相关信息。

inode块(文件索引节点) : 文件系统索引,记录文件的属性。它是文件系统的最基本单元,是文件系统连接任何子目录、任何文件的桥梁。每个子目录和文件只有唯一的一个 inode 块。它包含了文件系统中文件的基本属性(文件的长度、创建及修改时间、权限、所属关系)、存放数据的位置等相关信息. 在 Linux 下可以通过 “ls -li” 命令查看文件的 inode 信息。硬连接和源文件具有相同的 inode 。

数据块(Block) :实际记录文件的内容,若文件太大时,会占用多个 block。为了提高目录访问效率,Linux 还提供了表达路径与 inode 对应关系的 dentry 结构。它描述了路径信息并连接到节点 inode,它包括各种目录信息,还指向了 inode 和超级块。

可以用ln命令对一个已经存在的文件再建立一个新的连接,而不复制文件的内容。连接有软连接和硬连接之分,软连接又叫符号连接。它们各自的特点是:
  硬连接:原文件名和连接文件名都指向相同的物理地址。目录不能有硬连接;硬连接不能跨越文件系统(不能跨越不同的分区)文件在磁盘中只有一个拷贝,节省硬盘空间;
  由于删除文件要在同一个索引节点属于唯一的连接时才能成功,因此可以防止不必要的误删除。
  符号连接:用ln -s命令建立文件的符号连接符号连接是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径名。类似windows下的快捷方式。软链接有着自己的 inode 号以及用户数据块
  可以删除原有的文件而保存连接文件,没有防止误删除功能。

进程 VS 线程
进程:资源管理和分配的基本单位,每个进程都有自己的地址空间。进程由程序代码、代码 相关的数据集和进程控制块(PCB)3 部分组成。
线程:CPU 调度和分派的基本单位,线程是属于进程的,它运行在进程空间内,同一进程所产生的线程共享同一内存空间。每个线程有独立的栈和线程控制块(TCB,包含寄存器的值、 程序计数器、优先级等)。
并发度:两者都可提高并发度
开销:线程执行开销小,但不利于资源管理和保护,进程创建和销毁系统都要分配和回 收资源,开销大。
速度:线程的产生、通信、切换都比较快;
资源利用率:线程的资源利用率好,因为共享数据;
同步:线程使用公共变量和内存时需使用同步机制。
资源:线程不拥有系统资源,但可以使用进程的资源。
适用情况:线程适合在 SMP(多处理器)的机器上运行,进程可跨机器迁移。

gdb调试

阅读更多

没有更多推荐了,返回首页