首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Linux Epoll 一网

前言 epoll同样是linux上的IO多路复用的一种实现,内核在实现时使用的数据结构相比select要复杂,但原理上并不复杂,我们力求在下面的描述里抽出主干,理清思路。...epoll也利用了上文中介绍过的Linux中的重要数据结构 wait queue, 有了上面select的基础,其实epoll就没那么复杂了。...ws; /* The user that created the eventpoll descriptor */ struct user_struct *user; // linux...主要函数 epoll_create 创建一个epoll的实例,Linux里一切皆文件,这里也不例外,返回一个表示当前epoll实例的文件描述符,后续的epoll相关操作,都需要传入这个文件描述符。...主要分以下几步: 校验传入参数flags, 目前仅支持 EPOLL_CLOEXEC 一种,如果是其他的,立即返回失败; 调用ep_alloc, 创建 eventpoll结构体; 在当前task的打开文件描述符表中获取一个

1.7K10

Linux PID 一网

Linux PID 一网尽 前言 Linux 进程 PID 大家都知道,top命令就可以很容易看到各个进程的 PID, 稍进一步top -H,我们还能够看到各个线程的ID, 即TID。...今天我们想深入到Linux Kernel, 看一看在 Kernel里PID的来龙去脉。...pid.png 内核中进程相关ID的表示 我们以Linux Kernel 5.4.2 为例介绍 你想象中的进程pid的样子 我们在写代码时偶尔会需要获取进程的pid和父进程id, 这通常通过getpid...好了,我们接着往下看 Kernel中的pid PID Namespace Linux Kernel为了实现资源隔离和虚拟化,引入了Namespace机制,比如docker就充分利用了Namespace...前面我们说过了,进程相关的ID除了PID(TID),还有TDID, PGID, SID(Session ID), 在kernel中它们都被大一统起来,用struct pid表示, 它定义在incluse/linux

3.3K51

Linux Signal 一网

Linux Signal 一网尽 前言 Linux Signal想毕很多人都用过,比如在命令行下想要结束某个进程,我们会使用kill pid或者kill -9 pid,其实就是通过给对应的进程发送信号来完成...下面我们就来进入到Linux Signal的世界吧~~~ 信号的使用 我们先通过一段代码实例来看一下信号量的使用吧。...信号的发送 信号的发送,有人说那还不简单,只要知道一个进程的pid, 那就发呗~~~ 之前写过一篇文章Linux PID 一网尽, 里面介绍了在Linux系统里面,有进程,线程,线程组,进程组这几个概念...实时信号 从Linux2.2版本开始,支持了real-time信号,这些real-time信号量被定义在宏SIGRTMIN 和 SIGRTMAX之间,Linux系统没有给它们预先定义含义,它们可以被应用程序自由定义...信号的处理 在Linux中, signal被处理的时机是在系统调用完成返回到用户态前作统一处理。

2.3K20

脸了!微软竟然发布了自己的 Linux

据介绍,Azure Linux 是微软的 CBL-Mariner 的 Linux 发行版,支持作为 AKS 的容器主机操作系统,目前已经与 Xbox、Playfab、Minecraft 等服务和 100...微软 Azure Linux 首席项目经理 Jim Perrin 表示,微软启动 CBL-Mariner 是因为它需要一个内部 Linux 发行版和一个一致的平台来支持工程师在 Azure 上运行的无数工作负载...,而 Azure Linux 可以部署在云中并运行多个容器。...微软内部还专门针对 Linux 制定了一项计划,目的是通过各种方式来压制这款操作系统。 鲍尔默和比尔盖茨曾经说过,Linux 操作系统对于不懂技术的普通人来说太难使用了。...如今,微软竟然会发布自己的 Linux 发行版本,这无疑是打了自己的脸啊。。。。 难道,这次微软真与开源化敌为友了吗?微软对 Linux 是真爱吗? 你认为呢?欢迎评论区留下你的评论。

21030

为什么使用 golang http包 会把 linux 句柄满?

最近工作的时候一个接入服务需要测性能测试,万万没想到测出了一个把 linux 句柄满的问题 具体是什么问题呢,我们一起来看看 正常操作 项目中,有一些 http 请求是这样写的: 请求 https...content="0;url=http://www.baidu.com/"> 发现问题 可是例如这样的请求代码拿去做性能测试的话,我们实际遇到的问题是,linux...句柄数被打满了 句柄数被打满了,简单的思考有如下 2 个初步的可能: linux 句柄数设置过小 http 代码没有释放连接 我知道的有如下 3 种方式,可以修改 linux 的句柄数: 1、修改 /...添加最下面一行 session required pam_limits.so 例如上面这样添加 上述 第2 和 第3 种方式,需要重新 ssh 进入到服务器,或者重启服务器才可生效 虽然我增大了 linux

95540

Linux系统crontab备份数据库执行不成功?可能是百分号%在作怪!

之前博客分享过一篇《Linux/vps 本地七天循环备份和七牛远程备份脚本》,我自己也一直在用。某天检查备份的时候,突然发现数据库的备份的压缩包是空的!...dbname --skip-lock-tables>$back_path/$domain\_db_$TODAY\.sql 方法②、使用 root 帐号执行备份即可: 执行 crontab -e 修改 Linux...原来问题出在脚本参数上:我的 mysql 的 root 密码中含有一个百分号%,直接将上面的代码写到 crontab 中,这个百分号却无法传递,所以脚本取得的密码就是错误的!从而,备份失败!...经过查询,发现百分号%是 crontab 中的一个特殊符号!不能直接作为参数传递!!!...我也确实没在 crontab 中使用过百分号字眼,这次算是涨姿势了!

1.1K40

Linux中断一网尽(1) —— 中断及其初始化

[toc] Linux中断一网尽 —— 中断及其初始化 前情提要 通过本文您可以了解到如下内容: Linux 中断是什么,如何分类,能干什么? Linux 中断在计算机启动各阶段是如何初始化的?...ioapic.jpg 中断的初始化 Linux 启动流程 中断的初始化是穿插在Linux本身启动和初始化过程中的,因此我们在这里简要说一下Linux本身的初始化。...linux启动流程.png 中断描述符表 外设千万种,CPU统统不知道。...比如Linux在初始化时需要获取物理内存的详情,就 是调用了BIOS的相应中断来获取的。见下图: ?...剩下的最后一部分就是硬件中断的初始化了,它同样在start_kernel中执行: early_irq_init(); init_IRQ(); 这部分具体细节我们在Linux中断一网尽(2) -

1.6K21

Linux 命令多到记不住?这个开源项目帮你一网尽!

Linux 系统创建一个文件夹,要用什么命令? mkdir 文件夹名 在 Linux 系统中移动一个文件,要用什么命令? mv 源文件地址 目标地址 在 Linux 查找一个文件,要用什么命令?...它就是 Linux-command,一个用于快速查找 Linux 命令的项目。 对于大多数技术人员来说,Linux 命令是每天必用的工具。...它的亮点在于: 命令齐全:涵盖了 550 多个 Linux 命令,基本上是 Linux 所有的命令合集。...多种访问入口:提供 Web UI,各种客户端(Android/Mac/Win/Linux),及 Chrome 插件。 搜索快速:搜索实现自动填充,非常快速,能为你节省不少时间。...): 最后,还有 Dash 版本: 怎么样,是不是很炫酷又很硬核~ Linux命令分类 文件传输 bye、ftp、ftpcount、ftpshut、ftpwho、ncftp、tftp、uucico、

1.3K30

如何从零造自己 Linux(基于 Ubuntu 18.04.4 LTS)工作环境

前言 我们在工作或学习过程中,有许多时候会接触到 Linux,然后便想要自己亲自试试这个系统,但苦于没有系统学习过,所以想要打造自己的工作环境难免会遇到许多困难。...本博客将主要从 系统设置、常用软件安装、开发环境搭建、系统美化 三个方面着手,手把手教你如何从零造自己的 Ubuntu (基于 Ubuntu 18.04.4 LTS )工作环境。...simple-scan 扫描器 onboard 屏幕键盘 brasero 光盘可怜工具 cheese 茄子相机 libreoffice 套件,用 WPS 代替 常用软件安装 输入法 搜狗输入法 for Linux...安装 下载[4] Linux 版本安装包,然后使用如下命令在终端中安装即可; sudo dpkg -i netease-cloud-music_1.2.1_amd64_ubuntu_20190428.deb...JDK 安装 安装 先去 下载[7] 要安装的 JDK 版本,然后解压到本地,移到你要存放的位置; tar -zxvf jdk-11.0.7_linux-x64_bin.tar.gz ? ?

2K21

廖威雄: 学习Linux必备的硬件基础一网

作者简介: 廖威雄,目前就职于珠海全志科技股份有限公司从事linux嵌入式系统(Tina Linux)的开发,主要负责文件系统和存储的开发和维护,兼顾linux测试系统的设计和持续集成的维护。...在Linux上,页大小通常为4K。每一个页都有编号,从0开始,如第0页,第1页等。...一个进程的页并不是全部映射到物理内存页框中 Linux内核只有在万不得已得情况下才会真正为进程分配物理内存。例如进程1中的白色部分,由于进程还没使用,因此白色部分并不会指向物理内存的页框。 b....以32位CPU有4G虚拟内存为例,以linux的4K页大小计算: 虚拟页数量 = 4G/4K = 1M ( 1048576) 从0开始算,因此最后一个页号是1048576 - 1 = 1028575。...页面调入 在第3章"什么是页"的探讨中提到: Linux内核只有在万不得已得情况下才会实际为进程分配物理内存 这个结论同样适用于开始执行程序时的加载程序,例如一个可执行程序100M,这100M指令、数据必须要加载到内存

1K20

为何 Linus 一个人就能写出这么强的Linux系统,咱们却做不出来

首先澄清一下Linux系统不是Linus一个人的功劳,是一大堆""闲的没事""的大佬共同创造的成果。 Linus一开始就是写着玩的,想给386上整个类Unix。...Linux发行版SLS就有了,这个发行版演化出来的Debian和Slackware存活至今。...至于国内为什么做不出来…感觉是多方面原因把,首先是先发优势,Linus开始自己写Linux的1991年离电脑走进咱们老百姓家庭还早着呢,另外咱这大概没有那么多闲人,毕竟小学生医院挂水的时候都能给你安排上写作业...,终于国外某大厂使用了Linux,并慷慨的捐助了一笔不菲的资金,他不用在为日常生活发愁。...遂放弃 11.Linus在维护Linux的时候,有一些志同道合的朋友加入进来,也有一些公司机构加入进来一起维护。但是部分公司热衷于刷贡献kpi,经常刷一些标点符号,拼写错误等贡献。

26720
领券