zhougb3的博客

It's been kind of tough, but tough people last.

Linux简述

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调试

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhougb3/article/details/79948323
个人分类: Linux
上一篇《TCP/IP详解 卷1:协议》第二十一到第二十三章
下一篇2. Add Two Numbers
想对作者说点什么? 我来说一句

Professional Linux Programming

2009年09月23日 2.64MB 下载

linux动态链接库的开发实例

2011年06月23日 130KB 下载

ARM Linux从入门到实践简述

2009年08月31日 1.52MB 下载

操作系统原理安全课件PPT

2011年05月04日 856KB 下载

linux编程入门

2013年07月15日 1.03MB 下载

格式化硬盘

2013年11月14日 74KB 下载

LINUX环境下程序开发基础

2018年06月20日 3.03MB 下载

Linux历史及命令

2013年09月13日 469KB 下载

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

关闭
关闭