Linux
指关节
这个作者很懒,什么都没留下…
展开
-
VFS(虚拟文件系统)
Linux文件系统在使用计算机的过程中,文件是经常被提到的概念,例如可执行文件、文本文件等,这里说的文件是一个抽象的概念,它是存放一切数据化信息的仓库。用户为了保存数据或信息,首先要创建-一个文件,然后把数据或信息写人该文件。最终这些数据被保存到文件的载体上,通常情况下是磁盘上,只要给出存放文件的路径和文件名,文件系统就可以在磁盘上找到该文件的物理位置,并把它调人内存供用户使用。在这个过程...原创 2020-04-26 19:37:55 · 2997 阅读 · 0 评论 -
系统调用的概念及原理
系统调用与内核函数内核函数与普通函数形式上没有什么区别,只不过前者在内核实现,因此要满足一些内核编程的要求。系统调用是用户进程进入内核的接口层,它本身并非内核函数,但它是由内核函数实现的,进入内核后,不同的系统调用会找到相应的内核函数,这些内核函数被称为系统调用的“服务例程”。比如系统调用getpid()实际调用的是服务例程sys_getpid(),也可以说,系统调用getpid()是服务例...原创 2019-11-01 20:34:22 · 17576 阅读 · 9 评论 -
初识Linux内核
引言在计算机中不管是CPU,内存,或者是一些外围设备,它们之所以能有条不紊的协同工作,是因为有一层软件不遗余力的管理着它们。这层软件就是操作系统。操作系统在整个计算机系统中的位置从这张图中可以看出用户界面是操作系统的外在表象,内核才是操作系统的内在核心,它真正完成用户程序所要求的操作。那么就可以说一方面操作系统是上层软件与硬件打交道的窗口和桥梁,另一方面操作系统是其他所有用户程序运行的基础...原创 2019-10-27 16:07:26 · 330 阅读 · 0 评论 -
实现自己的ls
相信在linux上最常用的命令之一应该就是ls了,因为我们可能随时都要知道文件或者目录的相关信息,而小组暑假留校的第一个小项目就是完成自己的ls,最终自己实现的ls具有-a,-l,-R,-r,-d以及染色输出不同权限的文件或是目录.自己觉得需要注意的1.在动手实现项目前自己要有一个大体的架构(我开始是依照书上的架构进行的,但越往后写自己会添加更多的功能,而且每个人的编程风格可能会存在一些差异,...原创 2019-07-23 17:32:47 · 237 阅读 · 0 评论 -
实现myshell前的准备工作(缕一缕思路)
这篇博客主要讲一下实现myshell前的准备工作我们先从基础需求开始1. 1,2 ,3 要求支持重定向,管道命令以及后台运行,那么首先需要考虑的就是解析参数,输入输出重定向(<,>,>>),管道(|),后台运行(&)与一般命令需要区别开来。注:>与>> 的区别就是打开文件时的方式不同fd = open(file,O_RDWR|O_CREA...原创 2019-07-25 09:57:25 · 310 阅读 · 0 评论 -
linux网络编程——聊天室总结
说在前面暑假留校的主要任务是学习linux下的c语言编程,之前写了my_ls, my_shell这两个可以说是练手的小项目,而最后的项目聊天室也是花了自己快两周的时间,说实话第一次写这种(对自己而言)大项目,最深刻的体会就是整体的架构很重要,很重要,很重要…项目概述Linux 环境下的简易聊天室,采用C/S模型,实现多客户端之间的稳定数据传输。功能登陆注册账号,登陆时密码不会显好友管...原创 2019-08-19 21:54:12 · 4127 阅读 · 8 评论 -
进程小总结
今天晚上准备总结一下进程和线程,第一篇先总结一下进程的点。一. 那么首先,什么是进程呢?1.进程是程序的一次执行(也就是执行中的程序)。2.进程是一个程序及其数据在处理机上顺序执行时所发生的活动。3.进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。4.将进程当作一组元素的实体。进程的两个基本元素是程序代码和与之相关的数据集。二. 说进程是程序的一次执行,...原创 2019-08-11 23:51:39 · 132 阅读 · 0 评论 -
线程实例(生产者消费者+哲学家问题+简易线程池)
生产者消费者生产者消费者模型的描述: 两个进程共享一个缓冲区,一个进程称为生产者向缓冲区中放数据,另一个称为消费者从缓冲取中取数据,当缓冲区中被放时,生产者进程就必须可进入挂起状态,直到消费者从缓冲中取走数据时,生产者才能继续向缓冲区中存放数据,同样当缓冲取中没有数据时,消费者进程就必须进入挂起休眠状态,直到生产者向缓冲区中放入数据时,消费者才能被唤醒继续从缓冲区中取走数据。基于互斥所和条件变...原创 2019-08-12 01:03:20 · 279 阅读 · 0 评论