Linux Socket 编程简介和实现
在 TCP/IP 协议中,"IP地址 + TCP或UDP端口号" 可以唯一标识网络通讯中的一个进程,"IP地址+端口号" 就称为 socket。本文以一个简单的 TCP 协议为例,介绍如何创建基于 TCP 协议的网络程序。TCP 协议通讯流程下图描述了 TCP 协议的通讯流程(此图来自互联网):下图则描述 TCP 建立连接的过程(此图来自互联网...
2024-01-10【linux】centos7 的问题
linux小白,弱弱的请教一下。。配置nodejs环境变量完了以后卡在这了输入什么按键光标都没反应,求助。。。回答一看就是用 vim 进去改的文件, Esc 然后输入 :wq! ,保存退出。如何退出viesc:wq...
2024-01-10Linux下如何查杀stopped进程详解
前言在Linux系统下面,top命令可以查看查看stopped进程。但是不能查看stopped进程的详细信息。那么如何查看stopped 进程,并且杀掉这些stopped进程呢? ps -e j | grep T stopped进程的STAT状态为T,一般而言,进程有下面这些状态码: D uninterruptible sleep (usually IO) ...
2024-01-10linux系统使用vscode进行qt开发的过程分享
目录1.安装Qtcrater2.打开Qtcrater创建新项目3.使用vscode打开项目从一头雾水到模模糊糊,不明原理,暂时记录一下1.安装Qtcratersudo pacman -S qtcreater2.打开Qtcrater创建新项目其中build system 选择cmake创建好之后如下:这里我的项目名称为qt_window3.使用vscode打开项目进入根目录,找到项目名称命名的文件夹,...
2024-01-10linux环境下的Oracle部署教程
一、 环境及相关软件虚拟机:VMwore WorkstationLinux系统:CentOSORACLE:ORACLE_112030_Linux-x86-64Xmanger软件二、 安装虚拟机及Linux系统1. 安装虚拟机2. 安装Centos2.1 新建虚拟机2.2 下一步,选择后续装操作系统2.3 选择操作系统,选择linux,版本选择centos 64位2.4 虚拟机命名及文件位置选择2.6 选择硬盘大...
2024-01-10linux中把.c的文件编译成.so文件
linux中共享库以so为后缀(shared object),与Windows下的DLL类似,是在程序运行时动态连接。多个进程可以连接同一个共享库。以下以编译mylib.c为例讲如何编译.so文件。首先,编译mylib.c:$gcc -c -fPIC -o mylib.o mylib.c-c表示只编译(compile),而不连接。-o选项用于说明输出(output)文件名。gcc将生成一个目标(object)文...
2024-01-10Linux系统编程 —读写锁rgwock
读写锁是另一种实现线程间同步的方式。与互斥量类似,但读写锁将操作分为读、写两种方式,可以多个线程同时占用读模式的读写锁,这样使得读写锁具有更高的并行性。读写锁的特性为:写独占,读共享;写锁优先级高。对于读写锁,掌握了这12个字就足矣了。Linux环境下,读写锁具有以下三种状...
2024-01-10Linux系统编程 —读写锁rgwock
读写锁是另一种实现线程间同步的方式。与互斥量类似,但读写锁将操作分为读、写两种方式,可以多个线程同时占用读模式的读写锁,这样使得读写锁具有更高的并行性。读写锁的特性为:写独占,读共享;写锁优先级高。对于读写锁,掌握了这12个字就足矣了。Linux环境下,读写锁具有以下三种状...
2024-01-10linux cgroups详细介绍
Cgroups是什么?cgroups(Control Groups) 是 linux 内核提供的一种机制,这种机制可以根据需求把一系列系统任务及其子任务整合(或分隔)到按资源划分等级的不同组内,从而为系统资源管理提供一个统一的框架。简单说,cgroups 可以限制、记录任务组所使用的物理资源。本质上来说,cgroups 是内核附加在程序...
2024-01-10Linux上的flock vs lockf
如果lockf以0偏移量使用,则在排他模式下使用时flock和lockf使用时有什么区别?我之所以问是因为我正在阅读基于平台有条件地在这两个函数中的任何一个中编译的代码,所以我想了解原因。回答:flock()和之间的实际区别在于lockf()语义(关于关闭和传递的行为),在NFS和其他共享文件系统上的适用性...
2024-01-10linux C编程: volatile和全局变量?
共有1.c、2.c、3.c三个文件.定义int i=1;尝试输出++i + ++i1.c当中变量i是main函数的局部变量2.c当中:变量i被volatile修饰3.c当中:变量i是全局变量对于1.c,gcc编译器给出答案6,clang给出5.对于2.c和3.c,gcc编译器给出答案5.也就是说,对gcc编译器,volatile和全局变量某种程度上效果一致。这是为什么呢?回答Volatile 的...
2024-01-10Linux安装Cockkut监控服务
CentOS/RHEL 8的新特性之一就是自带了一个cockpit的监控服务。通过c/s架构模式运行,客户端输入ip:端口即可访问这类似于glances监控。如果你不是使用的centos/rhel8也是可以使用的,无非要自己安装而已 ...
2024-01-10linux C编程: volatile和全局变量?
共有1.c、2.c、3.c三个文件.定义int i=1;尝试输出++i + ++i1.c当中变量i是main函数的局部变量2.c当中:变量i被volatile修饰3.c当中:变量i是全局变量对于1.c,gcc编译器给出答案6,clang给出5.对于2.c和3.c,gcc编译器给出答案5.也就是说,对gcc编译器,volatile和全局变量某种程度上效果一致。这是为什么呢?回答:Volatile ...
2024-01-10详解linux usb host驱动编写入门
usb协议是一个复杂的协议,目前涉及到的版本就有usb1.0, usb2.0, usb3.0。大家如果打开kernel usb host目录,就会发现下面包含了ohci,uhci,ehci,xhci,whci等多种形式的控制器驱动。那么,对于我们这些不是很了解usb的开发人员,如何了解usb的代码结构呢?1、代码分布drivers/usb目录下面,host目录包括了host...
2024-01-10Linux Bash Heredoc
当编写shell脚本,你可能在一个情况下,你需要将文本或代码的传递给交互式命令,如tee,cat或sftp。在Bash和Zsh等其他shell中,Heredoc是一种重定向类型,它允许您将多行输入传递给命令。编写HereDoc的语法采用以下形式:[COMMAND] <<[-] 'DELIMITER' HERE-DOCUMENTDELIMITER第一行以可选命令开头,后跟特殊重定向操...
2024-01-10【linux】centos下rpm命令无法使用,提示数据库损坏
状况如图所示:网上的方法基本都试了,rpm修复神马的,rpm -v --rebuilddb等等均不行。回答rpm的数据库挂了。你上次升级没有成功又强行退出了?你可以删除旧数据库,然后重建数据库:删除旧数据库:rm /var/lib/rpm/__db*重建数据库:yum --rebuilddb...
2024-01-10linux中Centos7的LVM磁盘扩容问题
系统提示我容量不足 就利用LVM的方式进行扩容吧。系统是RHEL7(centos7差不多一样)先查看磁盘信息及根目录fdisk -l注意:sda为硬盘,需要扩容的是系统的根目录,这里RHEL的系统根目录为/dev/mapper/rhel-root(系统不一样,根目录也不一样)关闭系统,在vmware—>设置—>硬盘—>扩展—>输入数字大于当前...
2024-01-10Linux系统编程 —堆区之fsync
共享内存概念共享内存是通信效率最高的IPC方式,因为进程可以直接读写内存,而无需进行数据的拷备。但是它没有自带同步机制,需要配合信号量等方式来进行同步。共享内存被创建以后,同一块物理内存被映射到了多个进程地址空间,当有一个进程修改了共享内存的数据,其余的进程均可看见所...
2024-01-10Linux下Docker及portainer相关配置方法
一、安装使用Docer CE本文以CentOS 7为例,安装docker CE版本,docker有两种版本,社区版本CE和企业版本EE,此处学习研究以CE版本为例,两种安装方式可选:1、使用yum安装,2、使用脚本自动安装系统要求Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内...
2024-01-10Linux内核TCP/IP、Socket参数调优
/proc/sys/net目录 所有的TCP/IP参数都位于/proc/sys/net目录下(请注意,对/proc/sys/net目录下内容的修改都是临时的,任何修改在系统重启后都会丢失),例如下面这些重要的参数:参数(路径+文件)描述默认值优化值/proc/sys/net/core/rmem_default默认的TCP数据接收窗口大小(字节)。229376256960/proc/sys/n...
2024-01-10Linux系统编程 —套接字量mutex
互斥量mutex前文提到,系统中如果存在资源共享,线程间存在竞争,并且没有合理的同步机制的话,会出现数据混乱的现象。为了实现同步机制,Linux中提供了多种方式,其中一种方式为互斥锁mutex(也称之为互斥量)。互斥量的具体实现方式为:每个线程在对共享资源操作前都尝试先加锁,成功加锁...
2024-01-10Linux下远程连接Jupyter+pyspark部署教程
博主最近试在服务器上进行spark编程,因此,在开始编程作业之前,要先搭建一个便利的编程环境,这样才能做到舒心地开发。本文主要有以下内容:1、python多版本管理利器-pythonbrew 2、Jupyter notebooks 安装与使用以及远程连接方法 3、Jupyter连接pyspark,实现web端sprak开发一、python多版本管理利器-pythonbre...
2024-01-10【linux】使用codeblocks添加了一个以存在的工程,为什么无法编译?
我使用的是已经存在工程自带的makefile,然后就会现实如图信息,请问怎么解决?回答No rule to make target 'Debug'你执行的是命令 make -f sdkcrack/Makefile Debug吧写的很清楚哦,Debug Make参数不支持...
2024-01-10Linux Mach-O反汇编程序
是否有任何Linux程序可以反汇编OSX通用x86 / x86_64胖Mach-O二进制文件,如objdump?GNUbinutils的objdump支持ELF和Windows PE文件,但不支持Mach-O。回答:AFAIK,本地的Darwin二进制工具是cctools软件包的一部分。它们没有与GNUbinutils相同的命令行语法或输出。但是后来的binutils(即2.22)支持Mach-O格式。你可以得到这...
2024-01-10【原创】Linux中断子系统(三)softirq和tasklet
背景Read the fucking source code! --By 鲁迅A picture is worth a thousand words. --By 高尔基说明:Kernel版本:4.14ARM64处理器,Contex-A53,双核使用工具:Source Insight 3.5, Visio1. 概述中断子系统中有一个重要的设计机制,那就是Top-half和Bottom-half,将紧急的工作放置在Top-half中来处理,而将耗时的工作放置在Bottom-h...
2024-01-10