linux学习
qianji_little_boy
这个作者很懒,什么都没留下…
展开
-
常用Linux命令总结
1.文件查找在指定目录查找文件find 命令 : find path -name <filename>2.网络相关查看网络是否连通ping命令: ping ip地址查看系统网络状态netstat 命令: netstat -up/tp ,通常配合grep使用u : udp t: tcp p:program name...原创 2019-07-29 16:51:17 · 149 阅读 · 0 评论 -
linux文件系统-ext2文件系统
文件系统的作用就是怎么管理磁盘上存储的文件,包括增删改查等,本文主要介绍ext2文件系统1.ext2文件系统的整体布局文件系统管理的单元是数据块,每个块的大小是一样的;上图中的启动块 Boot Block中存储的是磁盘分区信息和启动信息,不属于ext2文件系统,启动块之后才是文件系统的开始;ext2文件系统将整个磁盘分区划分成若干个同样大小的块组。超级块(Super Block)描...原创 2019-08-14 19:59:17 · 447 阅读 · 0 评论 -
系统调用的实现
1.系统调用过程概述系统调用主要通过int指令和iret指令实现,用户态代码与内核态代码的切换。int指令,产生一个软中断,进入内核态,cpu去中断向量表中查找中断处理例程。ret指令,从内核态返回到用户态。过程:系统调用通过把参数放入寄存器,通过int指令产生一个软中断,保护现场,将寄存器的值压入堆栈,cpu去执行中断处理例程,然后根据系统调用表,找到相应的系统调用,进行系统调用,...原创 2019-08-19 22:19:48 · 391 阅读 · 0 评论 -
Linux文件系统-VFS(Virtual Filesystem)
linux支持各种各样的文件系统格式,如ext2,etx3等;不同的磁盘分区可以采用不同的磁盘格式。然而这个文件系统都可以mount到某个目录下,我们可以看到统一的文件目录,使用ls和对文件的读写操作看起来都是一样的。这是因为Linux内核在各种不同的文件系统之上做了一个抽象层,使得各种文件系统用起来都一样,这个抽象层称为虚拟文件系统(Virtual Filesystem)1.内核数据结构...原创 2019-08-14 21:05:55 · 234 阅读 · 0 评论 -
进程间通信
1.管道创建一个管道,一端关闭读,一端关闭写。只能在有血缘关系的进程之间使用,例如父子进程和兄弟进程。2.信号量信号量用于进程间同步,分为P,V操作。P:如果信号量的值大于0,就将其减1;如果信号量的值等于0就将进程挂起。V:将信号量的值加一,如果有进程是因为等待该信号量而挂起就将其唤醒。3.共享内存共享内存是将两个进程的地址空间映射到同一块内存上。共享内存没有提供同步操...原创 2019-08-24 10:46:13 · 136 阅读 · 0 评论 -
僵尸进程与孤儿进程
1.预备知识wait函数wait函数主要有两个作用;父子进程间的同步和父进程得到子进程的退出状态并对子进程进行清理工作init进程它是第一个用户级进程,负责启动其他系统进程和清理孤儿进程等2.僵尸进程2.1 产生原因系统为了让父进程可以得到子进程的退出状态,当子进程退出时,系统回收子进程占用的内存和打开的文件等资源,但是子进程的结构体task_struct仍然存在,...原创 2019-08-15 17:50:22 · 100 阅读 · 0 评论 -
epoll分析
本文主要从epoll的三个主要调用epoll_create, epoll_ctl, epoll_wait进行分析1.epoll_create1.1 使用方式 int epoll_create(int size)创建一个epoll的文件描述符。1.2 源码分析//epoll_create的源码,主要做的事情是创建一个eventpoll和file结构体。//eventpoll结构体中主...原创 2019-08-21 11:53:27 · 121 阅读 · 0 评论 -
线程间同步
1.互斥量1.1 实现原理为了实现互斥锁操作,大多数体系结构提供了swap或exchange指令,该指令的作用是把寄存器和内存单元的数据相交换,由于只有一条指令所以是原子操作,同时在多处理器平台,一个处理器的交换指令在执行时,另一个处理器的交换指令只能处于等待状态。伪代码如下,mutex变量为1表示为空闲状态,为0表示为上锁状态。lock: movb $0, %al swap(mu...原创 2019-08-16 17:19:32 · 104 阅读 · 0 评论