硬件中断发生频繁,是件很消耗 CPU 资源的事情,在多核 CPU 条件下如果有办法把大量硬件中断分配给不同的 CPU (core) 处理显然能很好的平衡性能。...更多介绍请参看 Linux 内核源代码自带的文档:linux-2.6.31.8/Documentation/IRQ-affinity.txt 如何使用 先看看系统上的中断是怎么分配在 CPU 上的,很显然...先查看一下 IRQ 90 中断的 smp affinity,看看当前中断是怎么分配在不同 CPU 上的(ffffffff 意味着分配在所有可用 CPU 上): # cat /proc/irq/90/smp_affinity...绑定到第2个 CPU(CPU1): # /etc/init.d/irqbalance stop # echo "2" > /proc/irq/90/smp_affinity (上面的 echo “2” 是怎么来的...VPSee 经常收到网友来信问到如何优化 Linux、优化 VPS、这个问题不太好回答,要记住的是性能优化是一个过程而不是结果,不是看了些文档改了改参数就叫优化了,后面还需要大量的测试、监测以及持续的观察和改进
IP 隧道 Linux 原生支持多种三层隧道,其底层实现原理都是基于 tun 设备。我们可以通过命令 ip tunnel help 查看 IP 隧道的相关操作。...sit:和 ipip 类似,不同的是 sit 是用 IPv4 报文封装 IPv6 报文,即 IPv6 over IPv4。...实践 IPIP 隧道 我们下面以 ipip 作为例子,来实践下 Linux 的隧道通信。本文以前文的 Linux 路由机制作为基础,不清楚 Linux 路由的可以先翻看下那篇文章再来看。...5、Linux 打开了 ip_forward,相当于一台路由器,10.10.10.0 和 10.10.20.0 是两条直连路由,所以直接查表转发,从 NS1 过渡到 NS2。...如下是通过 wireshark 抓取的 v1 口的包: 可以看到,有两层 IP 报文头,外层使用的 ipip 协议构成隧道的端点,内层是正常的通信报文,封装了 ICMP 报文作为 payload
多核CPU现在很常见,那么问题来了,一个程序在运行时,只在一个CPU核上运行?还是交替在多个CPU核上运行呢?Linux内核是如何在多核间调度进程的呢?...实际上,如果你没有对你的进程做过特殊处理的话,LINUX内核是有可能把它放到多个CPU处理器上运行的,这是内核的负载均衡。...假设我们的系统是双核的,父进程运行在cpu0上,那么这个fork出来的进程也是在cpu0的runqueue中。 那么,什么时候会发生负载均衡呢?...当然,多核CPU也有许多种,例如INTEL的超线程技术,而LINUX内核对一个INTEL超线程CPU会看成多个不同的CPU处理器。...上面说过,如果你没有对你的进程做过特殊处理的话,LINUX内核是有可能把它放到多个CPU处理器上运行的,但是,有时我们如果希望我们的进程一直运行在某个CPU处理器上,可以做到吗?
《Linux是怎么样工作的》读书笔记 引言 这本书是个人看过的讲操作系统底层里面讲的最通俗易懂的了,但是200多页的内容确实讲不了多深的内容,所以不要对这本书抱有过高期待,当一个入门书了解即可。...如果在写入的时候突然断电怎么办? 这时候数据是在另一个地方操作的,数据写入到一半也不会对旧数据有影响,如果是其他操作情况下比如写入刚完成没有更新引用的情况,此时只需要把引用更新一下即可。...总之就是怎么样都不会影响原来的数据。...那么如果此时R0数据被改写会怎么办?...另外由于很多程序编写都是单线程程序,一核运行,多核围观或许在过去更普遍。 优化吞吐量和延迟的方式是使用 sar 命令找到运行时间和开销最大进程,同时把一些死进程kill掉。
昨天在微信群里有人提问,如果创建一个文件,创建这个文件的时间是保存在哪里的。 所以就查到了这篇文章。 ? ?...,软连接文件是一个新的文件(实际上硬链接文件在磁盘上和原文件使用的是同一个inode节点,软连接文件使用不同的inode节点来管理文件)。...i_pipe struct block_device *i_bdev;//如果文件是一个块设备则使用i_bdev struct cdev *i_cdev;//如果文件是一个字符设备这使用...索引节点有两种,一种是这里所说的VFS索引节点,存在内存中;另一种是具体文件系统的索引节点,存在于磁盘上,使用时将其读入内存填充VFS的索引节点,之后对VFS索引节点的任何修改都将写回磁盘更新磁盘的索引节点...如果一个文件 系统没有索引节点,那么不管这些相关信息在磁盘上市怎么存放的,文件系统都必须从中提取这些信息。没有索引的文件系统通常将文件的描述信息作为文件的一部分来存放。
如果在写入的时候突然断电怎么办? 这时候数据是在另一个地方操作的,数据写入到一半也不会对旧数据有影响,如果是其他操作情况下比如写入刚完成没有更新引用的情况,此时只需要把引用更新一下即可。...总之就是怎么样都不会影响原来的数据。...那么如果此时R0数据被改写会怎么办?...另外由于很多程序编写都是单线程程序,「一核运行,多核围观」或许在过去更普遍。 优化吞吐量和延迟的方式是使用 sar 命令找到运行时间和开销最大进程,同时把一些死进程kill掉。...4.不能利用多核处理器优点,OS调度进程,每个进程仅有一个ULT能执行5.一个ULT阻塞,将导致整个进程的阻塞。 ❝对于用户线程阻塞在后续技术的发展出现了一种叫做「Jacketing技术」。
使用 Linux 系统的开发者,很多人都有自己喜欢的系统命令,下面这个几个命令令是我平常用的比较多的,分享一下。...No.3 pwd 可能有些人会奇:pwd 怎么会是常用命令呢?它的作用是打印当前路径,在命令行窗口中,路径是一直显示出来的啊!...没错,在默认的情况下,当前所处的路径信息,是直接显示出来的,如下: root@ubuntu:~/OpenSource/linux-4.15/samples/watchdog$ 但是这里有一个小小的问题...那么,应该怎么样来去掉显示路径中的目录信息呢?...例如下面这条指令:读取 main 文件中最开始的 52 个字节的内容: od -Ax -t x1 -N 52 main main 是 Linux 系统中的可执行程序,当然也就是 ELF 格式了。
但与人类不同的是,计算机需要知道两个问题: 本次所执行的是哪个指令。 该指令的执行对象是什么。 ?...所以硬件设计是在现有技术水平、期望计算速度、成本、散热等因素之间所做的trade-off。 多核 当单个CPU主频超过一定范围后,CPU成本和散热成了很大的问题,主频很难突破10GHz。...CPU和cache 图片来源:网络 上图中是一个多核处理器的电路图,每个Core旁边的黑色圆圈分别为L1和L2 Cache。可以看到CPU中,各类Cache占用了很大的空间。 ?...多处理器多核结构 图片来源:Intel 高性能服务器通常可以支持多个处理器,提供更多计算核心。...多核多线程 多核架构提供给用户多个可以独立计算的核心,这也意味着计算机可以同时并行执行多项任务,即并行计算。某个计算任务在某个核中进行,被称作线程。多个核处理多个任务通常被称为多线程。
,我的笔记本电脑内存就是 8GB 的 这个内存其实是物理内存 物理内存也称为主存,大多数计算机用的主存都是动态随机访问内存(DRAM) 灵魂拷问 只有内核才可以直接访问物理内存,那么进程要访问内存时,怎么办...虚拟地址空间 为了解决上面的问题,Linux 内核给每个进程都提供了一个独立的虚拟地址空间,并且这个地址空间是连续的 这样,进程就可以很方便地访问内存,更确切地说是访问虚拟内存 内部 虚拟地址空间的内部又被分为内核空间和用户空间两部分...页表实际上存储在 CPU 的内存管理单元 MMU 中 正常情况下,处理器就可以直接通过硬件,找出要访问的内存 在页表的映射下,进程就可以通过虚拟地址来访问物理内存了 灵魂拷问 么具体到 一个 Linux...进程中,这些内存又是怎么使用的呢?...64 位系统的内存分布也类似,只不过内存空间要大得多 灵魂拷问 内存究竟是怎么分配的呢?
那么,磁盘和文件系统是怎么工作的呢?又有哪些指标可以衡量它们的性能呢? 索引节点和目录项 文件系统,本身是对存储设备上的文件,进行组织管理的机制。组织方式不同,就会形成不同的文件系统。...索引节点和目录项纪录了文件的元数据,以及文件间的目录关系,那么具体来说,文件数据到底是怎么存储的呢?是不是直接写到磁盘中就好了呢?...这里,下图是 Linux 文件系统的架构图,帮我们更好地理解系统调用、VFS、缓存、文 件系统以及块存储之间的关系。...这下我们也应该可以理解,“Linux 一切皆文件”的深刻含义。无论是普通文件和块设备、还是网络套接字和管道等,它们都通过统一的 VFS 接口来访问。...这是怎么回事呢? 其实除了文件数据,索引节点也占用磁盘空间。
相比大家也想让自己的Linux备份啊什么的存储起来 放到哪里最安全呢 相比来说放到自己QQ邮箱比放到自己电脑更安全一些 我们今天就来做一个实验 让你的Linux发邮件到你的mail中 我们今天需要一个软件...email.sh 然后我们要给他一个执行权限: chmod 777 /email.sh 我们在执行一下文件 /email.sh 然后我们要去腾讯要认证规则 写入到.sh文件中(QQ比较火所以小编用的是QQ...验证成功以后就会给你一个授权码 其实我们要的是授权码 然后我们进Linux 打开刚才mail的配置文件 加入规则: vi /etc/mail.rc 进入以后我们加入规则 set smtp-use-starttls
索引节点和目录项 文件系统,本身是对存储设备上的文件,进行组织管理的机制。组织方式不同,就会形成不同的文件系统。 我们要记住最重要的一点,在 Linux 中一切皆文件。...索引节点和目录项纪录了文件的元数据,以及文件间的目录关系,那么具体来说,文件数据到底是怎么存储的呢?是不是直接写到磁盘中就好了呢?...这里,下图是 Linux 文件系统的架构图,帮我们更好地理解系统调用、VFS、缓存、文 件系统以及块存储之间的关系。...这下我们也应该可以理解,“Linux 一切皆文件”的深刻含义。无论是普通文件和块设备、还是网络套接字和管道等,它们都通过统一的 VFS 接口来访问。...这是怎么回事呢? 其实除了文件数据,索引节点也占用磁盘空间。
毫无疑问,李勇老师是一位努力的天才。 ? Linux内核工程师是怎么步入内核殿堂的? 划 重 点 ?...大概是大二下学期有一次在图书馆看书,无意中看到了一本介绍Linux的薄书,作者写的很有意思,我居然就在图书馆一直看到很晚把那本书给看完了。然后我就决定,要去找Linux来玩玩。...当时学校的机房里还没有Linux,我自己也没有电脑,只能是残念了。后来大三暑假我去了一家叫美商网虎的Linux公司实习,算是真正接触了这个系统,感觉很酷。...Linux内核代码是由一群优秀的工程师开发的,里面还会尝尝夹杂很多其它领域专业知识。...这种感觉会经常冒出来 然而,对于系统软件开发的喜爱是由心而生的,随着越来越深入,我也么逐渐接受了自己没有预期那么优秀的现实,并鼓励自己蠢也不妨碍我喜欢这个技术 做Linux内核开发和其他软件开发差别不太大
网络是计算机体系中绕不开的一环,而socket作为计算机网络体系的重要组成部分,也具备着相当重要的地位。...,但对于它到底是什么东西、怎么把握和理解,仍然不够清楚。...操作网络时的模式是类似的,这是一个很好的比喻。...,对端服务进程突然挂了或是本来就不存在,但其宿主机器仍然正常时,我们在接收数据或写入数据时会接收到 EOF 相关字样或是 connection reset by peer、Broken pipe(对应Linux...这里默认的重传次数是15次,对应的时间是9min,中间间隔会依照特定退避算法进行,而不是固定频率。如果在日常所遇到的问题碰到了这样的时间间隔,要足够敏感。
文章目录 Java与Python该怎么选?...至于MySQL、Linux、算法,结合的经验来看,无论你未来从事什么开发,我建议你都去学一学,无论是求职还是整体编程技能的提升,都有莫大的帮助。在本文的后半段,我也会为你讲解这些技术栈。...Java与Python该怎么选?分五点来讲: 1、从语法结构来讲,Java是面向对象编程,语法结构更加严谨,而Python,既是面向对象编程又是面向过程编程,语法结构更加简单一些,更容易上手。...接下来,就为大家推荐一些我觉得还不错的学习内容,至于怎么选择,一定要根据自身情况而定哦!...相关教程传送门:MySQL数据库从入门到实战 LInux教程: linux应该算是每一个程序员必备的技能啦!所以不管是做开发还是运维,不会点Linux知识是无法进入到企业里工作。
大家好,又见面了,我是你们的朋友全栈君。 ZIP是最广泛使用的归档文件格式,支持无损数据压缩。...ZIP文件是包含一个或多个压缩文件或目录的数据容器 在此文中将向您展示如何使用unzip命令通过命令行解压缩Linux系统中的文件 Unzip命令,可帮助您列出,测试和提取压缩的ZIP归档 安装unzip...默认情况下,大多数Linux发行版中都没有安装Unzip,但您可以使用发行版的软件包管理器安装它。...unzip filename.zip 为了能够提取ZIP存档到指定目录,用户需要对该目录具有写入权限 ZIP文件不支持Linux所有权信息,并且所有提取的文件将由运行该命令的用户拥有 例如,假设您下载了
很多人之所以并不看好微内核,很大程度上是因为它和Linux内核是如此不同,人们认为不同于Linux内核的操作系统内核都有这样那样的缺陷,这是因为Linux内核给我们洗了脑。...Linux内核的设计固化了人们对操作系统内核的理解上的观念 ,以至于 Linux内核做什么都是对的,反Linux的大概率是错的。 Linux内核就一定正确吗?...诚然,近十几年来Linux内核从2.6发展到5.3,一直在SMP多核扩展方面精益求精,但是说实话架构上并没有什么根本性的调整,要说比较大的调整,当属: $O(1)$调度算法。...一直到今天,自旋锁在不断被优化,然而无论怎么优化,它始终都是一个不合时宜的自旋锁。 可见,Linux内核一开始就不是为SMP设计的,因此其并发模式是错误的,至少不是合适的。...但无论它们俩的哪一个,目前无论是宏内核还是微内核都有非常非常棒的方案。遗憾的是,这些很棒的方案都不是Linux内核所采用的方案。
Linux 内核介绍 Linux内核(英语:Linux kernel)是一种开源的类Unix操作系统宏内核。...Linux kernel官网:https://www.kernel.org/ linux Kernel维基百科:https://www.wiki.kernel.org/ 在线阅读linux kernel...上述Git仓库是专为100ask_imx6ull系列开发板制定的Linux内核,它有如下特性: 2....编译内核模块 无论是哪个版本的STM32MP157开发板,编译内核模块的命令是一样的。...注意:下面会执行tree命令,如果提示没有该命令,需要执行“sudo apt install tree”命令安装tree 工具(前提是Ubuntu能上网)。
标题《网络是怎么连接的》 总体示意图 最基本的说,网络是由web服务器和浏览器(客户端) 以及一套安全准确稳定传输服务器和客户端信息的机制组成。...这里假设我们客户端的计算机是连接到家庭或公司的局域网中,然后通过FTTH等宽带线路接入互联网。这样,网卡发送的信息包会经过交换机等设备,到达用来接入互联网的路由器。路由器后就是互联网。...接入点的实体是一台专为运营商设计的路由器,它就是离我们家最近的邮局,我们投递到邮筒的信件需要先收集到邮局进行分拣,然后送出。...当通过防火墙之后可能会遇到缓存服务器,对于一些网页中可以重读使用的数据是会被保存在缓存服务器中,如果要访问的数据正好在缓存服务器中那么就不用劳烦web服务器直接从缓存服务器中读取。
1、什么是TRTC 我们先从TRTC这个名字的含义来分析 腾讯实时音视频(Tencent Real-Time Communication,TRTC),这是官方对TRTC的定义。...接下来,从技术的角度去分析,什么是TRTC 刚刚我们已经了解到TRTC的定义是实时音视频通信,那么它是如何实现的呢?...这个的涉及面比较广,粗略的说一下吧,一则是云服务器,以TRTC为例,通过TRTC的SDK,可以访问到TRTC的专有服务器。...2、TRTC是如何实现的 作为一名程序员,那当然要先了解TRTC如何实现的 以web App之间的视频通讯为例,上面了解到可以通过SDK去联系TRTC云服务,那么,具体是如何进行联系的呢?...一个小的团体,或者是两个人,或者是多个人,互相之间进行沟通,这就是房间的概念。
领取专属 10元无门槛券
手把手带您无忧上云