
Linux
文章平均质量分 60
Linux学习过程中的总结
我叫刘十三
这个作者很懒,什么都没留下…
展开
-
进程控制(创建、终止、等待、替换)
进程控制进程创建pid_t fork(void)—通过复制父进程创建一个子进程(数据独有,代码共享)返回值:对于父进程返回值大于0,是子进程的id,对于子进程返回值等于0,返回值小于0错误写时拷贝技术:子进程复制父进程,一开始两个进程都是同一块物理内存(但是虚拟地址空间以及页表这些信息都是进程独有的)因为进程间要具备独立性,因此当这块物理内存即将发生改变的时候,给子进程重新开辟空间复制数据pid_t vfork(void):—创建子进程,父子进程共用一个虚拟地址空间(使用的数据都是同一份),父进程原创 2021-08-07 11:37:19 · 194 阅读 · 0 评论 -
Linux中关于权限的概念及指令操作
权限概念以及指令操作权限的认识:对用户操作的权限限制系统操作权限:管理员用户-root-为所欲为,普通用户-权利收到一定的限制的用户,只能进行一些跟自己的相关的不涉及系统级的操作su-用户切换-为了切换用户的所有权限sudo-在不切换用户的情况下,临时为操作提权文件权限的认识:什么样的用户能够对文件进行什么样的操作文件的访问用户分类:u-文件所有者;g-文件所属组;o-其他用户文件的访问操作的分类:r-可读/可浏览; w-可写/可创建删除;x-可执行/可进入rwx rwx rwx—文件的权限原创 2021-07-28 15:50:35 · 177 阅读 · 0 评论 -
关于进程,这些知识你都会了吗
进程概念首先我们对进程进行介绍,进程顾名思义,就是运行中的程序,但是从操作系统的层面上来说,进程就是pcb,是操作系统对于程序运行的一个动态描述,通过这些描述让程序运行起来,实现操作系统对于程序运行的调度管理PCB描述信息:pcb在Linux下是task_struct结构体,进程标识符,上下文信息,内存指针,程序计数器cpu分时机制:将cpu处理程序运行的过程划分为时间片,每个程序在cpu上运行一段很短的时间,直到时间片用完,切换下一个进程并发:同一时间段。cpu资源不够的情况下,采用cpu分时机制原创 2021-07-28 15:04:29 · 169 阅读 · 0 评论 -
浅谈单例模式
单例模式含义:一种非常典型的设计模式,一个类在内存中只能实例化一个对象单例模式的实现:一个类在内存中只有一份资源,提供一个统一的接口进行访问单例模式的实现方式饿汉模式所谓的饿汉模式,就是在程序的初始化阶段完成资源的申请加载初始化,对象的实例化,空间换时间的思想,“不管需不需要我全都要”实现代码template<class T>class Singleton{private: static T data;public: T *getInstance() { r原创 2021-06-05 17:07:15 · 93 阅读 · 0 评论 -
多线程-线程控制
线程概念概念:线程是进程中的一条执行流,是cpu执行调度的基本单位。进程:进程是一个pcb,一个程序动态运行的描述,通过这个描述可以实现操作系统对程序运行的调度管理。在Linux下是task_struct结构体在学习线程这里:线程是进程的一条执行流,一个进程中可以有多个·pcb,Linux下的线程执行流,是通过pcb是实现,且一个进程中可能有多个pcb,并且这些pcb共享同一个进程中大部分资源,相较于传统pcb更加轻量化,因此也被称为轻量级进程线程是cpu调度的基本单位,进程是系统进行资源分配的基本原创 2021-03-31 10:39:32 · 389 阅读 · 0 评论 -
进程虚拟地址空间
进程虚拟地址空间为什么操作系统不直接让进程访问一个物理地址,而是访问一个虚拟地址程序在编译时,会自动地给指令和数据进行地址编号,但是如果地址不连续,就会程序运行不起来,编译器的地址管理比较麻烦(无法动态的获知物理空间的使用情况,也就无法为数据进行编号)进程直接访问物理地址,如果此时有一个野指针,那么在进行操作野指针的时候可能会改变其他空间的数据,造成不安全的事件发生(无法进行内存访问控制)程序运行空间通常需要一块连续的空间,空间利用率低,通过虚拟地址空间映射到物理内存上进行数据存储,可以实现数据在原创 2021-03-19 17:51:55 · 446 阅读 · 0 评论 -
博客系统
博客系统这篇博客主要是针对最近写的实战项目—博客系统进行一个详细的总结,在开发项目的过程中遇到了很多的问题以及解决的方法,通过这篇博客也是对自己所学知识的一个总结,以下是此项目的具体内容:项目名称:博客系统项目功能:实现一个web服务器,能够提供用户通过浏览器访问服务器,实现博客的展示以及对博客的增删查改的操作。框架设计:实现前端的界面,后台的服务以及数据的管理,其实运用的框架是MVC框架,MVC框架中,M代表业务模型,V代表用户界面,C代表控制器,简单的来说,就是前端界面将后台数据在界面进行展示,原创 2021-02-18 11:45:18 · 4145 阅读 · 11 评论 -
gcc升级高版本
gcc升级在很多情况下我们需要下载什么安装包的时候由于gcc版本过低,导致下载不了,下面我将升级的简单步骤列出:升级 高版本 gcc# 先获取 root 权限yum install centos-release-scl-rh centos-release-sclyum check-updateyum install devtoolset-7-gcc devtoolset-7-gcc-c++source /opt/rh/devtoolset-7/enable (这个可以放到 ~/.bashr原创 2021-02-14 11:13:52 · 2667 阅读 · 0 评论 -
Linux之信号
Linux之信号信号:信号和信号量不是同一个东西,信号是通知进程发生了某个事件,用来打断进程当前正在进行的操作,去处理这个事件,是一个软件终中断,功能是事件通知。== 信号的分类==信号分为可靠信号和非可靠信号,利用kill -l命令查看信号非可靠信号:1---31号(可能会发生信号丢失)可靠信号:34---64号(不会丢失)信号的生命周期产生—>在进程中注册---->在进程中注销—>处理; 阻塞 信号的产生: 硬件产生:ctrl+c中断 ctrl+z停止 ct原创 2020-11-28 15:55:10 · 197 阅读 · 0 评论 -
进程间通信之管道
管道进程间通信进程间通信是不能直接靠两个进程直接建立连接进行通信,需要依靠操作系统提供一个进程间都可以访问到的区域进行两个进程的共同访问,因为适用的场景不通,所以分为几种进程间的通信方式:消息队列、共享内存、管道、信号量进程间不能进行直接通信的原因:进程具有独立性,每个进程其实就是一个单独pcb,他们有自己独有的虚拟空间地址进程间只能访问自己的虚拟地址空间的虚拟地址,因而需要操作系统提供一个共享区域来实现进程间的相互通信管道:实质上是用于实现进程间通信的一块内核缓冲区,管道属于半双工通信,用于原创 2020-11-21 19:23:36 · 301 阅读 · 0 评论