linux应用
文章平均质量分 70
主流服务器操作系统,主流软件开发环境,主流互联网应用都基于linux系统
协议森林
这个作者很懒,什么都没留下…
展开
-
【Linux应用】Linux系统的设备管理——Udev
udev是 Linux2.6内核里的一个功能,它替代了原来的 devfs,成为当前 Linux 默认的设备管理工具,能够根据系统中的硬件设备的状态动态更新设备文件,包括设备文件的创建,删除等。udev以守护进程的形式运行,通过帧听内核发出来的uevent来管理/dev目录下的设备文件。不像之前的设备管理工具,udev在用户空间运行,而不在内核空间运行。原创 2024-06-15 14:32:59 · 1864 阅读 · 0 评论 -
【Linux应用】进程间通信消息队列
进程间通信简称IPC(Inter process communication),进程间通信就是在不同进程之间传播或交换信息。消息队列是进程通信的一种方式,本质是一个存储消息的链表,这些消息具有特定的格式及特定优先级。消息队列是随内核持续的,只有在内核重启,或者删除一个消息队列时,该消息队列才会真正地被删除。原创 2023-02-24 17:38:08 · 647 阅读 · 0 评论 -
【Linux应用】strace 命令详解
strace是跟踪进程执行时的系统调用和所接收的信号(即它跟踪到一个进程产生的系统调用,包括参数、返回值、执行消耗的时间)。原创 2023-01-06 17:24:01 · 753 阅读 · 0 评论 -
【Linux应用】网络管理nmcli 用法
nmcli 是 NetworkManager 的提供的命令,使用 nmcli 命令时,必须确保 NetworkManager 为运行状态。nm 代表 NetworkManager,cli 代表 Command-Line 命令行。显示 NetworkManager 是否接管网络设置:networking 可以简写为 n、ne、net、netw…… 所以以上命令可以简写为:查看网络连接状态:网络连接状态共有五种:full、limited(连网,但无法上网)、portal(连网,但需要认证登录后才能上网)原创 2022-12-06 16:26:57 · 1790 阅读 · 0 评论 -
【Linux应用】磁盘IO读写测试工具-FIO详解
FIO是Linux下开源的一款IOPS测试工具,主要用来对磁盘进行压力测试和性能验证。转载 2022-06-21 16:20:55 · 6802 阅读 · 0 评论 -
【Linux应用】SAN(存储区域网络)技术
SAN实际是一种专门为存储建立的独立于TCP/IP网络之外的专用网络。目前一般的SAN提供2Gb/S到4Gb/S的传输数率,同时SAN网络独立于数据网络存在,因此存取速度很快,另外SAN一般采用高端的RAID阵列,使SAN的性能在几种专业存储方案中傲视群雄。...原创 2022-06-20 14:39:39 · 1535 阅读 · 0 评论 -
【Linux应用】Linux下磁盘分析工具
1.简述本节主要介绍基于Linux 操作系统上的磁盘I/O 性能分析工具。2.iostatiostat(1)汇总了单个磁盘的统计信息,为负载特征归纳、使用率和饱和度提供了指标。它可以由任何用户执行,通常是在命令行调查磁盘I/O 问题使用的第一个命令。统计信息的来源直接由内核维护,因此这个工具的开销基本可以忽略不计。3.blktraceblktrace(8)是一个Linux 上的块设备I/O 事件自定制跟踪工具,包括用来跟踪和缓冲数据的内核组件(后来被移到跟踪点),以及供用户态工具使用的控制原创 2022-03-09 15:31:56 · 1749 阅读 · 0 评论 -
【Linux应用】Linux应用程序调优基本思想
性能调整离工作所执行的地方越近越好:最好在应用程序里。应用程序包括数据库、Web服务器、应用服务器、负载均衡器、文件服务器等等。后续会从资源消耗的角度来审视应用程序:CPU、内存、文件系统、磁盘和网络。原创 2022-02-23 09:43:48 · 798 阅读 · 0 评论 -
【Linux应用】Linux性能调优理论与方法
1.简述性能是一门令人激动的,富于变化同时又充满挑战的学科。系统性能是对整个系统的研究,包括了所有的硬件组件和整个软件栈。2.延时对于某些环境,延时是唯一关注的性能焦点。而对于其他环境,它会是除了吞吐量以外,数一数二的分析要点。可以用数字来作为时间的比较方法,同时可以用时间的长短经验来判断延时的源头。正如你所见,CPU 周期的时间是很微小的。这段时间光只能走0.5 米。很可能你眼睛到这页书的距离,光大约走了1.7ns。这段时间里,现代的CPU 已经执行了5 个CPU 循环,处理了若干个指令。3原创 2022-01-25 11:10:07 · 1000 阅读 · 0 评论 -
【Linux应用】SAN网络ISCSI中target组建工具tgt架构及原理
1.SAN网络SAN,即存储区域网络(storage area network and SAN protocols),它是一种高速网络实现计算机与存储系统之间的数据传输。常见的分类是FC-SAN和IP-SAN两种。FC-SAN通过光纤通道协议转发scsi协议;IP-SAN通过TCP协议转发scsi协议,也就是IP 地址。存储设备是指一台或多台用以存储计算机数据的磁盘设备,通常指磁盘阵列,主要厂商EMC、日立等。iSCSI是一种基于TCP/IP 的协议,用来建立和管理IP存储设备、主机和客户机等之间的相互原创 2022-01-24 16:01:43 · 1521 阅读 · 0 评论 -
【Linux应用】图解存储技术架构及原理
1.简述磁盘驱动器是讨论存储I/O路径的最终目的地,这里主要讨论两种磁盘驱动器:常规磁盘驱动器以及固态磁盘驱动器。常规磁盘驱动器即传统机械式磁盘驱动器,图是一个常规磁盘驱动器主要组件示意图。固态驱动器(Solid State Drive,SSD)是一种基于永久性内存,如闪存,或非永久性内存的计算机外部存储设备。2.NAS存储设备NAS是一种将存储设备和应用服务器分开的机制,它使用CIFS和NFS向客户端提供文件级服务。3.iSCSI存储设备iSCSI存储设备即以硬件方式或软件方式实现iSC原创 2022-01-20 10:43:55 · 4102 阅读 · 2 评论 -
【Linux应用】Linux进程间通信--消息队列
1.简述消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制。2.主要APImsgget()函数该函数用来创建和访问一个消息队列。它的原型为:int msgget(key_t, key, int msgflg);与其他的IPC机制一样,程序必须提供一个键来命名某个特定的消息队列。msgfl原创 2022-01-06 11:04:22 · 187 阅读 · 0 评论 -
【Linux应用】中标麒麟操作系统
1.安装2.运行3.加入讨论原创 2022-01-05 14:39:17 · 830 阅读 · 0 评论 -
【Linux应用】FreeNAS和TrueNAS介绍与使用
1.简述FreeNAS (读音 free·nas [free-næs]),是一款开源免费专门用于构建 NAS(Network Attached Storage) 服务器的专业操作系统。FreeNAS 可以轻松把一台普通的台式机变成存储服务器。它基于 FreeBSD 开发,在 BSD License 授权写一下发布,主要运行在 x86-64 架构的计算上。FreeNAS 支持 Windows,OS X 和 Unix 客户端以及大量的虚拟化主机,例如 XenServer 和 VMware,支持 CIFS,AF原创 2021-10-09 16:25:25 · 16017 阅读 · 2 评论 -
【Linux应用】iSCSI服务端tgtadm配置
1.简述组建iscsi网络三种target工具,分别为tgt,iscsi_tgt和targetcli ,之前已经介绍过targetcli 组装iscsi方法,此文重点介绍tgtadm的配置方法。2.安装服务#1.安装和配置网络存储服务器tgtadmyum install scsi-target-utils#2.启动tgtd服务 service tgtd start3.基本配置#1.创建tgtadm tgtadm --lld iscsi --op new --mode target原创 2021-10-09 15:22:37 · 3511 阅读 · 0 评论 -
【Linux应用】存储技术Multi-Disk(MD)模块
1. 简介RAID技术是利用多个块设备来模拟一个单个的块设备。Linux内核在多个块设备的基础上,注册了一个特殊的块设备,称为Multi-Disk(MD)设备,这个MD设备形成了一个逻辑层,支持不同级别的RAID技术。2.分层架构Linux内核中RAID功能的实现属于MD模块。MD模块是一个虚拟块设备层,它属于块I/O子系统中的块设备驱动层,架构于物理块设备层,比如SCSI磁盘驱动之上。MD模块分为两层:• RAID共性层:也被称为RAID公共层,它提取各种级别的RAID的公共特性,依照块设备的实原创 2021-09-15 10:52:26 · 1650 阅读 · 0 评论 -
【Linux应用】mdadm失败:RUN_ARRAY fail:Invalid argument
1.简介mdadm,lvm工具提供强大的动态磁盘管理功能,只是操作RAID的用户态工具而已,两者都需要内核md的支持,故使用前需查看内核是否支持md,如果不支持需重新编译内核。如果内核不支持,会出现RUN_ARRAY fail:Invalid argument2.方法查看内核相关是否打开,如下totosun@ubuntu:/boot$ grep RAID config-`uname -r`CONFIG_RAID_ATTRS=mCONFIG_BLK_DEV_3W_XXXX_RAID=mCONFI原创 2021-08-27 16:29:45 · 2282 阅读 · 0 评论 -
【Linux应用】goahead5.1.1编译原理
1.编译分析goahead\goahead-5.1.1\projects\goahead-linux-default.mk# goahead-linux-default.mk -- Makefile to build Embedthis GoAhead Community Edition for linuxNAME := goaheadVERSION := 5.1.1PROFILE ?= default原创 2021-08-17 17:07:38 · 408 阅读 · 0 评论 -
【Linux应用】goahead5.1.1移植
1.官网源码包下载:https://www.embedthis.com/goahead/download.html2.简介GoAhead WebServer,它是一个源码,免费、功能强大、可以在多个平台运行的嵌入式WebServer。GoAhead WebServer的主要特性有:支持ASP嵌入式的javascript标准的CGI执行内存中的CGI处理GoFroms扩展的API快速响应,每秒可处理超过50个请求完全和标准兼容如果不包含SSI,仅要求60K的内存;包含SSI,要求500原创 2021-08-17 13:35:36 · 680 阅读 · 0 评论 -
【Linux应用】iSCSI概念及服务端targetcli配置
1. 简述为了进一步提升硬盘存储设备的读写速度和性能,人们一直在努力改进物理硬盘设备的接口协议。当前的硬盘接口类型主要有 IDE、 SCSI 和 SATA 这 3 种。IDE 是一种成熟稳定、价格便宜的并行传输接口。SATA 是一种传输速度更快、数据校验更完整的串行传输接口。SCSI 是一种用于计算机和硬盘、光驱等设备之间系统级接口的通用标准,具有系统资源占用率低、转速高、传输速度快等优点。不论使用什么类型的硬盘接口,硬盘上的数据总是要通过计算机主板上的总线与CPU、 内存设备进行数据交换,这种原创 2021-06-26 14:52:05 · 2445 阅读 · 3 评论 -
【Linux应用】卷组概念及其操作
1.简述物理卷(Physical Volume,PV):指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。卷组(Volume Group,VG):是由一个或多个物理卷所组成的存储池,在卷组上能创建一个或多个逻辑卷。逻辑卷(Logical Volume,LV):类似于非LVM系统中的硬盘分区,它建立在卷组之上,是一个标准的块设备,在逻辑卷之上可以建立文件系统。我们用面粉做馒头的例子原创 2021-06-24 19:04:06 · 4292 阅读 · 1 评论 -
【Linux应用】RAID盘阵操作及其读写测试
1.简述磁盘阵列(Redundant Arrays of Independent Disk)简称RAID,将数据以分段(striping)的方式分散存储在不同的磁盘中,通过多个磁盘的同时读写减少存取时间,并且利用不同技术实现数据冗余,具有安全性高、速度快、数据容量大等突出特点。 磁盘阵列根据其使用的技术不同而划分了等级,目前公认的标准是RAID 0~RAID 5。其中的level并不代表技术的高低,至于选择哪一种RAID需视用户的需求而定。2.RAID等级RAID0:是将多个磁盘并列起来,成为一个大原创 2021-06-21 15:13:48 · 4427 阅读 · 0 评论 -
【Linux应用】Linux线程通信及锁机制同步
1.前言线程是操作系统调度的最小单位,有自己的栈空间。线程通信就是当多个线程共同操作共享的资源时,互相告知自己的状态以避免资源争夺。不同线程共享同一份全局内存区域,包括初始化数据段、未初始化数据段及堆内存段,故线程之间可方便快速地共享全局或堆数据。线程间通信主要是用于数据同步,故其没有像进程通信中的用于数据交换的机制。2. 进程通信管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关原创 2021-06-16 17:32:37 · 289 阅读 · 0 评论 -
【脚本shell】shell脚本实现守护进程
1.前言在实际的Linux App开发中,编写一个程序,在系统后台运行中,难免会因各种原因导致程序意外退出。为了确保程序平稳长时间运行,开发者会实时监控后台程序运行情况。这种背景下,需要开发者定时守护进程,确保正常运行。本期我们采用shell脚本两种简单的方式,向各位演示守护进程的原理。2.示例方案一:# #! 不是注释符,而是指定脚本由哪个解释器来执行,# #! 后面有一个空格,空格后面为解释器的全路径且必须正确。#! /bin/shwhile true ; do sleep 8原创 2021-05-08 15:34:16 · 2841 阅读 · 0 评论 -
【Linux应用】串口UART编程
1.前言通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,通常称作UART) 是一种串行异步收发协议,应用十分广泛。UART工作原理是将数据的二进制位一位一位的进行传输,在UART通讯协议中信号线上的状态位高电平代表’1’,低电平代表’0’。2.通信协议UART帧格式如下:空闲位:UART协议规定,当总线处于空闲状态时信号线的状态为‘1’即高电平起始位:开始进行数据传输时发送方要先发出一个低电平’0’来表示传输字符的开始。因为空闲原创 2021-03-22 15:01:11 · 2618 阅读 · 0 评论 -
【Linux内幕】如何理解Linux文件系统
1.前言2.系统文件分类原创 2020-12-02 14:23:15 · 438 阅读 · 0 评论 -
【Linux应用】线程简介以及如何创建线程
1.前言线程是计算机中独立运行的最小单位。每个线程占用的CPU时间是由系统分配的,因此可以把线程看成操作系统分配CPU时间的基本单位。每个线程只有在系统分配给它的时间片内才能取得CPU控制权,执行线程中的代码。Linux操作系统在一个进程内生成多个线程。多线程和多进程相比,拥有以下优点:(1)进程都有独立的地址空间,创建新进程要耗费时间为期分配系统资源,而线程共享进程的地址空间,所以创建线程花费的时间要少得多。(2)系统调度方面,由于进程地址空间独立而线程共享地址空间,所以线程间的切换速度要远远快过原创 2020-09-25 13:56:19 · 1150 阅读 · 0 评论 -
【Linux应用】CAN总线编程
前言CAN 是控制器局域网络(Controller Area Network,CAN)的简称,由德国 BOSCH 公司开发,并最终成为国际标准(ISO 11898-1)。CAN 总线主要应用于工业控制和汽车电子领域,是国际上应用最广泛的现场总线之一。1.CAN 总线简介CAN 总线是一种串行通信协议,能有效地支持具有很高安全等级的分布实时控制。 CAN 总线的应用范围很广,从高速的网络到低价位的多路接线都可以使用 CAN。在汽车电子行业里,使用 CAN 连接发动机的控制单元、传感器、防刹车系统等,传输原创 2020-10-15 17:20:36 · 6222 阅读 · 1 评论 -
【Linux运维】Linux中ps与top命令的细微区别
这两个命令都是查看系统进程信息的命令,但是用处有点儿不同1.ps命令–提供系统过去信息的一次性快照也就是说ps命令能够查看刚刚系统的进程信息 命令:ps aux或者ps lax[root@Linux ~]# ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.1 0.1 2032 644 ? Ss 21:55 0:01 ini原创 2020-09-17 13:26:22 · 510 阅读 · 0 评论 -
【Linux应用】龙芯派loongsonpai开发者日记(四)----PMON制作
一、pmon相关资源1)pmon源码获取pmon:http://ftp.loongnix.org/loongsonpi/pi_2/source/pmon-loongson3.tar.bz2解压:$ sudo tar -xvf pmon-loongson3.tar.bz22)pmon工具链获取工具链: http://ftp.loongnix.org/loongsonpi/pi_2/toolchain/gcc-4.4-gnu.tar.gz解压:$ sudo tar -zxvf gcc-4.4原创 2020-09-07 10:48:14 · 1354 阅读 · 0 评论 -
【Linux应用】龙芯派loongsonpai开发者日记(三)----文件系统
前言本节主要讲述如何配置boot和文件系统。1.准备工作将编译生成的vmlinuz拷贝到龙芯派中,这里我们用winscp工具来操作。另外建议开启SSH服务,root下执行以下命令就可以sudo service sshd start此时,我们操作单板的方式就有:串口,SSH,FTP。开发工作即将开始。2.boot配置编辑boot.cfg文件,增加一组,设置波特率等3.文件系统buildroot官网:https://buildroot.org/下载buildroot-2020.0原创 2020-08-31 16:05:24 · 800 阅读 · 0 评论 -
【Linux应用】龙芯派loongsonpai开发者日记(二)----内核
1.解压工具链这里我们主要搭建交叉编译链环境工具链下载:http://www.loongnix.org/index.php/Cross-compile拷贝到虚拟机中并解压tar -vxf mips-loongson-gcc4.9-2019.08-05.linux-gnu.tar.gz原创 2020-08-29 18:01:34 · 1153 阅读 · 1 评论 -
【Linux应用】龙芯派loongsonpai开发者日记(一)----简介
前言龙芯派开发板二代#1.接口启动EJTAG1、 启动ejtag工具 sudo ./ejtag_debug_usb -tcpu0 -2、设置配置文件 cpu0 - source configs/config.ls3a40003、切换cpu 到核1 cpu0 - cpu 14、查看通用寄存器信息 cpu0 - set5、退出ejtag debug ,处理器继续工作 cpu0 - cont 注意:执行完set、disas等指令 后及时执行cont。否则会有死原创 2020-08-26 10:48:56 · 2878 阅读 · 0 评论 -
【Linux应用】嵌入式设备植入vsftp服务
嵌入式设备植入vsftp服务1.下载源码并解压2.修改Makefile文件,修改编译环境3.make编译出bin文件前言vsftpd作为热门应用,其作用不言而喻,近期需要在嵌入式设备上支持该应用,研究了三天,简单记录操作步骤,具体步骤可参阅官网:https://pkgs.org/download/vsftpd1.下载源码并解压将下载的代码复制到我们的编译服务器中,准备开始。 tar xzvf vsftpd-3.0.2.tar.gz chmod 777 vsftpd-3.0.2说明:版原创 2020-08-17 18:45:25 · 958 阅读 · 0 评论 -
【Linux内幕】schedule_work基本流程
1、前言在许多情况下,设备驱动程序不需要有自己的工作队列。如果我们只是偶尔需要向队列中提交任务,则一种更简单、更有效的办法是使用内核提供的共享的默认工作队列。但是,如果我们使用了这个默认的工作队列,则应该记住我们正在和他人共享该工作队列。这意味着,我们不应该长期独占该队列,即:不能长时间休眠,而且我们的任务可能需要更长的时间才能获得处理器。2、schedule使用步骤:1、定义相关数据static struct work_struct jiq_work;2、编写要提交到工作队列中的函数stat原创 2020-08-11 14:00:03 · 6770 阅读 · 0 评论 -
【Linux应用】tftp命令
1、Busybox中tftp命令的用法命令格式为:tftp [option] … host [port]如果要下载或上传文件的话是一定要用这些option的。-g表示下载文件(get)-p表示上传文件(put)-l表示本地文件名(local file)-r表示远程主机的文件名(remote file)例1:要从远程主机192.168.1.2上下载,则应输入以下命令tftp -g -r embedexpert 192.168.1.2例2:tftp 0x80600000 u-boot-wi原创 2020-08-03 09:57:31 · 2058 阅读 · 0 评论 -
【Linux应用】本地CRT软件SSH访问虚拟机
1、开启SSH服务在使用SSH之前,可以先检查SSH服务有没有开启。使用命令:sudo ps -e | grep ssh来查看,如果返回的结果是“xxxx? 00:00:00 sshd”,代表服务开启。那个四个x代表四位数字,每台机数字不一样的,如图:如果没有反应或者其他结果,再试着开启SSH服务。使用命令sudo /etc/init.d/ssh start来开启服务,如图:安装SSH服务,使用命令:sudo apt-get install openssh-server。如图:2.SSH客户原创 2020-08-01 09:25:10 · 496 阅读 · 0 评论 -
【Linux内幕】一张图看懂linux内核架构
1.前言Linux内核可以划分为5个组件部分,每个部分的功能定义都非常明确,各组件又为内核的其他组件提供相应的服务。这种划分可以从内核的源码树形结构中看到,在内核源码根目录下每个组件都有自己的目录和子树。从代码角度来看Linux内核的架构,更为详实。本博客的“协议森林”系列也来源于此,主要是围绕“networking”展开的。2.进程管理负责创建、结束进程,管理内核的活动,如软件中断、...原创 2019-10-27 22:41:53 · 4624 阅读 · 1 评论 -
【Linux】SecureCRT的快捷键
编辑命令Ctrl + a :移到命令行首Ctrl + e :移到命令行尾Ctrl + xx:在命令行首和光标之间移动Ctrl + u :从光标处删除至命令行首Ctrl + k :从光标处删除至命令行尾Ctrl + w :从光标处删除至字首alt + b : 打开快速启动栏alt + 1/2/3... : 在多个不同的session标签之间切换重新原创 2017-05-21 15:21:53 · 1333 阅读 · 0 评论 -
【Linux】list_for_each_entry用法
参考:http://blog.sina.com.cn/s/blog_5e99b41e0100rxgf.htmlhttp://hi.baidu.com/shiftedmind/blog/item/1a7c8381e6a67fa56d8119da.html 在Linux内核源码中,经常要对链表进行操作,其中一个很重要的宏是list_for_each_entry:原创 2017-09-03 21:55:47 · 27539 阅读 · 2 评论