
linux
文章平均质量分 80
catdeo
怕什么真理无穷,进一寸有一寸的欢喜
展开
-
【Linux】线程概念与线程控制
认识线程线程是一个执行流(运行代码,处理数据) 1.操作系统使用pcb来描述一个程序的运行-------pcb就是进程 2.linux下通过pcb模拟实现线程,因此linux下的线程是一个轻量级进程 3.这个轻量级进程因为公用大部分进程资源;相较于传统进程更加轻量化进程是资源分配的基本单位----因为程序运行时资源分配给整个线程组(线程是cpu调度的基本单位-----因...原创 2022-11-24 14:07:22 · 484 阅读 · 1 评论 -
快速移植OpenHarmony Linux内核的方法
内核态与用户态OpenHarmony = OpenHarmony内核态层 + OpenHarmony用户态层其中内核态层就是由内核本身(如Linux Kernel,LiteOS),和一些运行在内核态的一些特性组成,比如HDF等。OH内核态层 = OH Linux内核 + OH内核态特性(可选特性或者必选特性,如必选特性HDF,今后的可选特性HMDFS等)而OH Linux内核 = 标准LTS Linux内核 + 三方SoC芯片平台代码 + OH内核态基础代码(支撑OH用户态层运行的最基础代码)OH原创 2022-04-12 21:10:27 · 2597 阅读 · 0 评论 -
【起航】OpenHarmony远征05标准系统移植
标准移植流程定义开发板本文以移植名为MyProduct的开发板为例讲解移植过程,假定MyProduct是MyProductVendor公司的开发板,使用MySoCVendor公司生产的MySOC芯片作为处理器定义SOC在“//productdefine/common/device”目录下创建以SOC名字命名的json文件,并指定CPU的架构。如要移植一个叫MySOC的SOC,这个SOC采用32位ARM内核。配置如下://productdefine/common/device/MySOC.json原创 2022-04-12 17:52:16 · 1074 阅读 · 0 评论 -
【起航】OpenHarmony远征04小型系统移植
openharmony小型系统内核移植内核支持的archROM文件系统Flash类型Liteos-AARMV7>2MVFAT、JFFS2SPI、NOR、NANDLinux-4.19ARM、ARM64、MIPS、X86>5MVFAT、JFFS2、EXT2NOR、NAND、EMMC编译构建系统介绍编译框架与编译环境的搭建和之前的轻量系统移植类似Liteos-A内核移植Liteos-A支持ARM V7的指令集架构,若第三方芯片本身就是原创 2022-04-12 16:52:30 · 1131 阅读 · 0 评论 -
【起航】OpenHarmony远征03轻量系统移植
轻量级系统芯片移植目前轻量级系统的典型架构有cortex-m和risc-v系列,这里顺便说一下常见的架构CISC(复杂指令合集):隐式总线访问x86 --> 用于PC 常见的芯片core i7 (intel)RISC(精简指令合集):显式总线访问ARM -->用于Mobile & 便携设备MIPS -->机顶盒 & 网关RISC-V -->智能穿戴设备由于openharmony的整体功能较为复杂,如果没有特殊的需求,移植过程中需要关注的目原创 2022-04-06 14:38:32 · 1123 阅读 · 0 评论 -
初识cgroups原理
cgroups子系统cpu子系统,用来限制进程的cpu使用率cpuacct子系统,可以统计cgroups中进程的使用报告cpuset子系统,为cgroups中的进程分配单独的cpu节点或者内存节点memory子系统,可以限制进程的memory的使用量blkio子系统,可以限制进程的块设备iodevices子系统,可以控制进程能够访问某些设备net_cls子系统,可以标记cgroups中进程的网络数据包,然后使用tc模块对数据包进行控制freezer子系统,可以挂起或者恢复cgroups中的原创 2021-09-24 20:23:01 · 504 阅读 · 0 评论 -
Session和Cookie的区别
协议:计算机通信网络中两台计算机进行通信所必须共同遵守的规定或规则。超文本传输协议(HTTP):是一种通信协议,它允许将超文本标记语言(HTML)文档从服务器端传送到客户端浏览器。HTTP协议是无状态的协议:一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。会话:指用户登录网站后的一系列动作,比如浏览商品添加到购物车并购买。会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cooki原创 2020-09-22 13:59:02 · 213 阅读 · 0 评论 -
大小端系统分析
什么是大端小端大小端模式就是存储数据时,数据的高低位是怎么存储在地址的高低位上。大端模式(Most Significant Byte,MSB):数据的高位,存放在地址的低位,即高位存低位,低位存高位。小端模式(Least Significant Byte,LSB):数据的高位,存放在地址的高位,即高位存高位,低位存低位。明显小端模式更符合我们日常记录书写的习惯,pc机一般都是小端模式。当我们使用的pc机和待读取数据大小端不一致时候,要特别注意,要使用相应的方式进行读取数据,具体方式看下文。//联原创 2020-09-22 13:53:26 · 312 阅读 · 0 评论 -
df du top free等命令的区别
df du top free等命令的区别df含义:列出文件系统的整体磁盘使用量-a 列出所有的文件系统-k 以kb的容量显示各个文件系统-m 以mb的容量显示各个文件系统-h 以容易阅读的方式显示各个文件系统du含义:评估文件系统的磁盘使用量-a 列出所有档案与目录内容-s 列出总量,不列出个别目录的占用容量du -sm /× 检查根目录下每个目录所占用的容量top含义:不同于ps是静态的输出,top可以持续的检测系统的程序工作状态-d 后面可以接秒数,即整个程序画面更新的秒数,原创 2020-07-22 09:16:30 · 1086 阅读 · 0 评论 -
【Linux】线程池知识点复习
线程池 线程池的实现 = 线程安全的队列 + 很多线程、为何要有线程池?在实际的业务场景中,一台服务器可能在同一时刻涌入大量的请求,但是这个请求五花八门,在程序不崩溃的情况下,需要竟可能多的处理请求。如果只有一个线程,程序效率低如果在请求到来的时候创建线程会有大量的时间成本如果没有开辟线程数量的限制,有可能会耗尽CPU的资源导致程序崩溃这就产生了线程池的需要,根据系统资源的多少实时...原创 2020-05-01 16:35:25 · 209 阅读 · 0 评论 -
【Linux】IPC知识点总结
匿名管道具有亲缘关系的进程之间进行通信半双工通信,只能提供字节流服务当传输的数据小于PIPE_BUF时,带有同步与互斥属性生命周期随进程如果管道中没有数据,产生读阻塞如果管道中写满了数据,产生写阻塞如果读端被关闭,写端还往管道中写数据时,会造成管道破裂,当前正在写的进程收到SIGPIPE信号,导致进程终止如果写端被关闭,读端读完管道的数据后,read不会处于阻塞状态,而是返回读到...原创 2020-02-18 18:09:03 · 367 阅读 · 0 评论 -
【Linux】文件IO整理
文件描述符与文件流指针的关系文件描述符文件描述符是由内核中的进程产生的,进程控制块(PCB)中存放了files_struct结构体,该结构体中存放了若干个文件描述符的结构体数组fd_array,数组中的每一个元素都是一个file结构体用来保存文件的大小、创建时间、所有者、所属组等信息,通过该文件描述服能够找到对应的 *.*文件。文件流指针文件流指针是用来封装文件描述符的,文件流指针的底层是...原创 2020-02-15 16:07:14 · 229 阅读 · 0 评论 -
【Linux】虚拟地址到物理地址的转换
硬件单元MMU如何实现虚拟地址到物理地址的转换虚拟地址构成虚拟地址有32个bit位组成,其中高10个字节存放L1(一级页表索引),中间8个字节存放L2(二级页表索引),低12个字节存放页索引虚拟地址到物理地址的转换L1索引检索的一级页表存放在TTBRx寄存器中,通过L1地址在一级页表中检索到二级页表的地址,再通过L2地址在二级页表中检索到的地址作为物理地址的前24个字节,最后与页索引共同...原创 2019-10-20 20:54:00 · 569 阅读 · 0 评论 -
在浏览器输入URL,按下回车会经历那些流程
在浏览器输入URL,按下回车会经历那些流程?DNS域名解析,得到IP地址DNS解析流程: 1.在主机查询DNS缓存,如果没有就会给本地的DNS发送查询请求 2.本地的DNS服务器向根域名服务器发送查询请求,根域名服务器返回该域名的一级域名服务器 3.该本地服务器给该一级域名服务器发送查询请求,然后依次类推直到查询到该域名的IP地址解析出IP地址后,根据IP地址和默认...原创 2019-10-11 10:02:12 · 1434 阅读 · 1 评论 -
linux下的目录结构
1.linux下的目录结构,以及根目录下各级目录存放的文件类型1./bin该目录被称为二进制目录,包含供系统管理员与普通用户使用的linux命令的二进制映像,该目录存放的内容包括各种可执行文件。常用命令有cp、kill、rm、ping、chomd、bash、cat、echo、ls等2./boot该目录存放系统的核心文件以及linux启动时必须读取的文件,包括linux内核的二进制映像...原创 2019-05-11 17:01:43 · 215 阅读 · 0 评论 -
vim 基本配置及与其他编辑器的优缺点比较
vim 基本配置下载vim yum install vim 在vimrc中配置vim编辑器 set nocompatible “去掉有关vi一致性模式,避免以前版本的bug和局限 set nu! ”显示行号 set guifont=Luxi/Mone/9 "设置字体,字体名称,以及字号 filetype on "检测文件的类型 ...原创 2019-05-21 21:49:06 · 3470 阅读 · 0 评论 -
Linux实现一个简单的shell
实现一个minishell1.从标准输入获取用户的输入2.将字符串进行解析,将获取的字符串划分为命令和参数的格式3.创建子进程4.进行进程替换shell中处理命令是通过创建子进程后进程替换实现功能,但还有一部分功能使系统的内建功能,例如cd重定向实现思路:对传入的字符串进行解析,重定向符号的前是命令,重定向后是文件名称在子进程程序替换之前,按照解析的重定向方向打开文件使用dup...原创 2019-06-13 17:42:38 · 1344 阅读 · 0 评论 -
Linux中关于进程间信号概念及理解
进程间信号(软中断)信号:信号是unix中最古老的进程通信的一种方式,他是软件层次上对中断机制的模拟,是一种异步通信方式,信号可以实现用户空间进程和内核空间进程的交互,内核进程可以利用他通知用户空间进程发生了哪些系统事件,我们可以任何时候给进程发送信号而无需知道进程的状态,如果进程当前并未处于执行态,则信号则会由内核保存起来,如果进程是阻塞状态,那么信号传递会被延迟,直到阻塞结束时才会传递给进...原创 2019-06-14 11:08:52 · 229 阅读 · 0 评论 -
linux中常见的进程调度算法
进程调度的概念操作系统管理了系统的有限资源,当有多个进程(或多个进程发出的请求)要使用这些资源时,因为资源的有限性,必须按照一定的原则来选择进程(请求)来占用资源。这就是调度。目的是控制资源使用者的数量,选取资源使用者许可来占用资源。1.先来先服务算法(FCFS)算法原理:进程按照它们请求CPU的顺序使用CPU.就像你买东西去排队,谁第一个排,谁就先被执行,在它执行的过程中,不会中断它。当其...转载 2019-06-09 20:54:16 · 1145 阅读 · 0 评论 -
Linux下关于进程的相关概念
1.进程概念用户理解层面:进程就是运行起来的程序。从操作系统层面理解进程:程序运行需要将代码数据加载带内存中,操作系统上运行了很多程序操作系统必须管理这些程序的运行在操作系统的层面,进程就是操作系统对一个运行程序的描述。(举个栗子:在校长眼里,只能通过档案管理学生,不能直接指导xxx是哪位同学)在操作系统眼中,通过对运行程序的描述来进行管理,这个运行程序的描述就是PCB(...原创 2019-06-10 16:29:27 · 221 阅读 · 0 评论 -
Linux下的进程创建、等待与终止
1.进程创建/终止(fork/vfork)fork --通过复制调用进程创建一个新的子进程复制(pcb–代码独有,数据共享)—程序计数器(运行的位置一样)返回值:父进程返回子进程pid,子进程返回0;写时拷贝技术:只有子进程要修改父进程的某些数据时,才会开辟空间将父进程的数据拷贝到自己的内存中。vfork创建子进程,共用同一个虚拟地址空间。为了防止调用栈混乱,因此父进程调用vfork...原创 2019-06-11 15:33:38 · 327 阅读 · 0 评论 -
[Linux]进程间通信
进程间通信方式管道:原理:让多个进程访问相同的缓冲区实现通信,管道实现通信用的是系统调用的IO接口。 本质:内核中的一块缓冲区 分类:匿名管道/命名管道 匿名管道:只能用于具有亲缘关系的进程建通行,因为创建的缓冲区在内核中没有标识,不能被其他的进程找到,只能在父子进程间使用,通过接口int pipe(int pipefd[2])实现。 命名管道:可以用于同一主机上的任意进程间通...原创 2019-07-12 16:47:57 · 211 阅读 · 0 评论 -
【Linux】单例模式
某些类,只应该具有一个对象(实例),就称之为单例。在很多的服务器开发场景中,需要服务器加载很多的数据到内存中,往往需要一个单例的类来管理这些数据饿汉模式懒汉模式懒汉模式的核心思想就是“延时加载“,从而能够优化服务器的启动速度。如果在创建实例对象时不加上synchronized就导致对对象的访问是线程不安全的。饿汉模式的核心思想就是“立即加载”,饿汉模式是线程安全的,在类创建的同时就会...原创 2019-09-20 10:23:19 · 749 阅读 · 0 评论 -
【Linux】图片服务器
项目背景类似于在优快云中上传博客,选择上传图片后,会进去选择图片文件的界面,然后上传成功后,我们就可以看到上传的图片被显示,其实质就是将图片上传到了优快云的后台服务器中。核心功能新增图片查看所有的图片信息查看指定图片信息查看图片内容删除图片该项目的核心就是实现一个HTTP服务器,然后用该服务器来存储图片,针对每个图片提供唯一的URL,有了该URL后,就可以接住它将图片展示在其...原创 2019-09-20 15:52:14 · 456 阅读 · 0 评论 -
【Linux】浅析单例模式与线程池
单例模式及其应用场景单例模式是一种常见的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个全局对象,这样有利于协调系统整体的行为。例如在服务器程序中,该服务器的配置信息存放在一个文件中,这些配置信息由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息,这样能够简化复杂环境下的配置管理。如何实现一个单例模式一个类能...原创 2019-09-29 17:26:56 · 305 阅读 · 0 评论 -
linux下的常用命令解释
linux基本命令总结1.linux下的常用指令ls 浏览目录内容 -l 查看文件详细信息 -a 查看所有文件包括隐藏文件 pwd 查看文件当前目录 /home/dev 绝对路径(从根目录开始的都是绝对路径) 每个目录下都有两个目录 . 目录自身 .. 自身的上一层目录 mkdir 创建一个目录 mkdir -p /abc/bcd/cde 多层级创建目录 r...原创 2019-05-11 16:56:12 · 432 阅读 · 0 评论