linux
文章平均质量分 82
ty_laurel
这个作者很懒,什么都没留下…
展开
-
C语言实现ps命令
在学习Unix/Linux编程实践教程时,总是感觉学不到东西,过后就没啥印象了,经过向师兄请教后,还是由于自己动手练习的太少,没能够深入理解,于是让我编写一个简单的ps命令。开始很是头大,经过自己的不断努力,终于可以实现简单的ps命令的功能了。下边就给大家分享一下,有什么错误或者建议,还望大家能够指出。先讲下自己的思路,明白以下几个小问题: 1.ps有什么用?原创 2015-12-02 16:33:27 · 5543 阅读 · 1 评论 -
十问 Linux 虚拟内存管理 (glibc)
最近在做 MySQL 版本升级时( 5.1->5.5 ) , 发现了 mysqld 疑似“内存泄露”现象,但通过 valgrind 等工具检测后,并没发现类似的问题。因此,需要深入学习 Linux 的虚拟内存管理方面的内容来解释这个现象。 Linux 的虚拟内存管理有几个关键概念: 1. 每个进程有独立的虚拟地址空间,进程访问的虚拟地址并不是真正的物理地址 2. 虚拟地址可通过每个进程转载 2017-08-02 19:27:10 · 969 阅读 · 0 评论 -
Linux进程线程源码浅析
内核版本3.13概述 Linux内核中,进程通过数据结构task_struct(也称为进程描述符) 被表示成任务(task),不像其他的操作系统会区别进程、轻量级进程和线程(下边就统称进程吧),Linux系统用 task_struct 数据结构来表示所有的执行上下文。对于每一个进程,一个类型为task_struct的进程描述符始终存在于内存中。它包含了内核管理全部进程所原创 2017-07-30 22:54:26 · 2464 阅读 · 3 评论 -
VFS之基本数据结构
文件系统是一种存储和组织计算机中文件数据的一系列抽象数据类型,它们用来实现数据的存储、管理、查看、等功能。在Linux系统中,所有的设备、进程都是以文件的形式存在,字符设备、块设备以及这些设备的驱动均要依靠文件系统来实现,设备管理的基础框架也要以来文件系统(sysfs),所以文件系统在Linux操作系统中担任着重大的作用。一、VFS介绍Linux内核通过虚拟文件系统(Virtual File Sys原创 2015-12-12 21:04:12 · 3569 阅读 · 0 评论 -
TCP带外数据OOB
传输层协议使用带外数据(out-of-band,OOB)来发送一些重要的数据,如果通信一方有重要的数据需要通知对方时,协议能够将这些数据快速地发送到对方.为了发送这些数据,协议一般不使用与普通数据相同的通道,而是使用另外的通道实现.OOB数据(TCP)介绍带外数据即就是优先数据,linux系统的套接字机制支持低层协议发送和接受带外数据.但是TCP协议没有真正意义上的带外数据.为了发送重要协议,TCP原创 2016-08-09 17:31:37 · 4316 阅读 · 0 评论 -
I/O模型
unix下可用的5种I/O模型:1.阻塞式I/O2.非阻塞式I/O3.I/O复用(select和poll)4.信号驱动式I/O(SIGIO)5.异步I/O(POSIX的aio_系列函数)阻塞式I/O模型:阻塞式I/O模型是用的比较多的一种I/O模型。socket的默认状态是阻塞的,即就是发出一个不能立即完成的套接字调用时,该进程被睡眠,直到相应的调用操作完成。可能会发生阻塞原创 2016-08-05 21:54:14 · 601 阅读 · 0 评论 -
用户态文件系统fuse学习
FUSE(用户态文件系统)是一个实现在用户空间的文件系统框架,通过FUSE内核模块的支持,使用者只需要根据fuse提供的接口实现具体的文件操作就可以实现一个文件系统。原创 2016-06-15 20:50:11 · 28494 阅读 · 37 评论 -
daemon守护进程初识
daemon介绍守护进程是一种生存期长的进程。常常在系统引导装载时启动,直到系统关闭时才终止。它们在后台运行,没有控制终端。daemon编写规则1.调用umask将文件模式创建屏蔽字设置为一个已知值(通常为0);umask(0);2.调用fork,然后使父进程exit,调用setsid创建一个新会话(下边有介绍);if((pid = fork()) 0)原创 2016-06-01 20:39:57 · 587 阅读 · 0 评论 -
linux 文件删除过程浅析
1.Linux文件删除原理Linux是通过link的数量控制文件删除的,只有当文件不存在任何链接时,该文件才会被删除,一般每个文件有两个link计数器: i_count 和 i_nlink,从VFS inode结构体中可以找到:struct inode {struct hlist_node i_hash; /* hash链表的指针 */struct list_head i_原创 2016-05-14 17:43:54 · 6068 阅读 · 2 评论 -
rm删除命令源码分析
为什么看?想要在删除文件前,先覆盖文件内容,防止他人恢复文件,从而得到文件原内容;并且需要支持rm命令原本的参数选项:NAME rm - remove files or directoriesSYNOPSIS rm [OPTION]... FILE...Remove (unlink) the FILE(s). -f, --force原创 2016-03-30 15:45:59 · 4723 阅读 · 0 评论 -
可执行文件的装载
学习程序员自我修养,随笔,以方便后边查阅。进程虚拟地址空间 每个程序被运行起来以后,将拥有独立的虚拟地址空间(virtual address space),该虚拟地址空间的大小由计算机的硬件平台决定,具体的说由CPU的位数决定。硬件决定了地址空间的最大理论上限,即硬件的寻址空间大小,比如32位的硬件平台决定了虚拟地址空间的地址为 0 到 2^32 - 1 ,即0x00000000 ~ 0xFFFF原创 2017-07-06 16:25:43 · 1485 阅读 · 0 评论