(看山是山) 小时候学到的标准答案是,这体现了愚公极其一家坚毅不拔的精神,值得学习。 ? (看山不是山) 但是,当我第一次尝试思考了这个故事后,也和那个聪明老头一样,震惊的说不出话来。...(看山还是山) “想法本身一文不值” 我一直觉得这句话是一个陈述句,它陈述了一个事实。 但很奇怪的事,我在一些场合不太好意思说这话,因为这话就像“1+1=2”一样,是公认的基本常识。...这才是“山还是山”的意义所在。 “我就说这山就是山,你还说这山不是山,你看,这不还是山吗?” “你懂……你说的对。”
汤圆还是元宵? 从美团外卖发布的数据来看,元宵节当天销售的汤圆和元宵中,其中: 2018年:88%的用户购买汤圆,12%的用户购买元宵。...从汤圆和元宵购买比例来看,口味有所变化,但汤圆还是以绝对优势胜出! 用Power BI做个简单图,对比大概这个样子: 什么馅儿是真爱? 黑芝麻馅连续两年霸占榜首第一,醪糟馅紧随其后。...从用户画像看,中青年人群可能更爱汤圆,而且相对比较习惯自制汤圆/元宵。...26岁至45岁的用户购买糯米粉的销售金额占所有消费者的77%; 教师、企业白领和小城镇居民为主的消费群体,购买糯米粉的消费金额占比达79%; 从销售增幅来看,糯米粉比汤圆/元宵的成品的增幅要低,说明用户还是更喜欢
这说明仅有口水上争斗还是不行的,打铁尚需自身硬,特别是在同质化竞争的今天,产品一定是企业的战略核心,也不是靠总经理带队召一个产品经理组成一个小组就可以搞定的事。
ChIP-Seq技术检测了转录因子SATB2在结肠上皮细胞中全基因组的结合位点,发现92.3%(39% intergenic regions和53.2% introns)的结合位点位于非启动子区域,我看了看,
我们看wikipeidia上的定义: "Zero-copy" describes computer operations in which the CPU does not perform the task...我们看Kernel如何收包(简化版): 驱动初始化时,为NIC分配ring buffer。...我觉得咱们做一个服务器软件,还是不要抢人家TCP stack的生意,否则你会把自己玩死。 基本上,这些动作都发生在application无法控制的kernel里。...那问题来了,你是费尽心思去优化散落在各处小小的,基本上不可避免的copy呢,还是1s调用一次 gettimeofday(),而不是来一个包就调用一次,省却99.99%的调用呢?...只是当我们遇到问题的时候,是真正测量还是人云亦云,吐几个buzz word就自认为解决问题了呢?
前言 在linux的高性能网络编程中,绕不开的就是epoll。和select、poll等系统调用相比,epoll在需要监视大量文件描述符并且其中只有少数活跃的时候,表现出无可比拟的优势。...本文就是笔者在探究epoll源码过程中,对kernel将就绪描述符添加到epoll并唤醒对应进程的一次源码分析(基于linux-2.6.32内核版本)。...源码看socket的阻塞和非阻塞>>中,博客地址如下: https://my.oschina.net/alchemystar/blog/1791017) 既然知道了tfile->f_op->poll的实现...list_first_entry(head, struct epitem, rdllink); list_del_init(&epi->rdllink); // readylist只是表明当前epi有事件,具体的事件信息还是得调用对应...总结 epoll作为linux下非常优秀的事件触发机制得到了广泛的运用。其源码还是比较复杂的,本文只是阐述了epoll读写事件的触发机制,探究linux kernel源码的过程非常快乐_。
从linux源码看epoll 前言 在linux的高性能网络编程中,绕不开的就是epoll。...本文就是笔者在探究epoll源码过程中,对kernel将就绪描述符添加到epoll并唤醒对应进程的一次源码分析(基于linux-2.6.32内核版本)。...(注:由于是tcp socket,所以这边sock->ops=inet_stream_ops,这个初始化的过程在我的另一篇博客>中,博客地址如下: https...list_first_entry(head, struct epitem, rdllink); list_del_init(&epi->rdllink); // readylist只是表明当前epi有事件,具体的事件信息还是得调用对应...总结 epoll作为linux下非常优秀的事件触发机制得到了广泛的运用。其源码还是比较复杂的,本文只是阐述了epoll读写事件的触发机制,探究linux kernel源码的过程非常快乐^_^。
DISTRIB_RELEASE=18.04 DISTRIB_CODENAME=bionic DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS" 命令:uname -a 结果: Linux...xdq 4.15.0-30-generic #32-Ubuntu SMP Thu Jul 26 17:42:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux 命令:
相信通过上一篇的分享,已经架设了属于自己的Linux,就这样得空客就安全了吗?当然不是,今天我们一起看看Linux本省的一些安全策略。...下午回到家就想睡觉,醒来以为快早上了,一看时间原来才晚上十一点了,感冒了两周,颓废了半个月,心态不咋好,现在又来和你们见面了,加油!...独立的Linux主机对整个网络进行防护 如下图所示,部署在Linux路由器上对整个局域网进行安全防护 ?...iptables 的前生后世 Linux最早出现的防火墙叫做 ipfw,是基于Linux2.0内核的。...,所属用户组为base_linux,附加用户组为forme_linux,同时指定用户的默认主目录为/opt/base_linux 添加用户test,指定UID为666,默认shell为/bin/sh,指定用户组为上面的
Supported link modes: 10baseT/Half 10baseT/Full
从linux源码看socket的close 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。...上篇博客讲了socket的阻塞和非阻塞,这篇就开始谈一谈socket的close(以tcp为例且基于linux-2.6.24内核版本) TCP关闭状态转移图: 众所周知,TCP的close过程是四次挥手...但最终解决方案还是得从应用程序着手。...总结 linux内核源代码博大精深,阅读其代码很费周折。之前读>的时候由于有先辈引导和梳理,所以看书中所使用的BSD源码并不觉得十分费劲。...直到现在自己带着问题独立看linux源码的时候,尽管有之前的基础,仍旧被其中的各种细节所迷惑。希望笔者这篇文章能帮助到阅读linux网络协议栈代码的人。
前言 看一团跳动的火焰~ 安装 [root@iZo7e61fz42ik0Z game]# wget https://github.com/tondrolee/Softwares/blob/master/
UEFI 的启动流程和 BIOS 的启动流程不同,由于我 2009 年购买的老爷机还是 BIOS 结构,这里不详细展开,简单提一下。...3.1 MBR 说了这么多还是没说明白到底计算机怎么从磁盘上找到引导程序。...可以启动无法关闭这个问题困扰了我很久,系统可以正常启动,但是在关机或者重启时会死机,按键没有任何反应但是系统应该还是活的(大小写灯正常切换)只能强制关机退出。...但是后来想想都研究了还是整理给大家。再比如 initrd 中 iscsi 客户端的启动和初始化有很多种方式,一开始我都手动初始化网卡,设置 dhcp 和 ip 路由。...最后还是觉得太麻烦发现 ibft 的方案最简单,果断选择了它。 水平有限如果发现那里总结的不对欢迎指正。
那SD-WAN是简单地成本革命还是真正的服务革命呢? SD-WAN服务是向虚拟专用网络(V**)发展的过程。
然而,许多旨在保护 Linux 的云安全解决方案可能很麻烦且具有破坏性,因为它们是从 Mac 或 Windows 操作系统 上移植而来,这些方案有时会影响到 Linux 系统的处理能力,甚至进行更改。...目前在 Linux 环境下,对于 EDR、XDR 产品也提出更加严格的要求。...比如,Linux 威胁和攻击媒介与 Windows/Mac OS 对应物不同,需要单独构建策略;Linux 通常是生产系统的基础,不能因为产品的中断或干扰会对业务产生负面影响;构建轻型 Linux EDR...传感器专为 Linux 构建和优化,对系统的影响降到最小。...有点像用户空间应用程序和 Linux 内核模块之间的混合体。
1.在有些时候数据会存在缓存中而没有写入磁盘中 数据同步考入磁盘 sync 2.关机重启指令
安装JDK 1.上传jdk-7u80-linux-x64.tar.gz到Linux上 2.解压jdk到/usr/local目录 tar -zxvf jdk-7u80-linux-x64.tar.gz...JAVA_HOME/bin 4.刷新环境变量 source /etc/profile 5.测试java命令是否可用 java -version 控制台显示 java version "1.7.0_79" 还是之前的...JDK还是之前的版本 6.查看系统安装了哪些JAVA,rpm -qa | grep java tzdata-java-2015e-1.el6.noarch java-1.7.0-openjdk-1.7.0.79...-2.5.5.4.el6.x86_64 java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.x86_64 上面的三个JDK是安装的Linux版本(Cnetos6.7 Desktop
当我们还在体验 Linux 5.5 稳定发行版带来更好的硬件支持时,Linux 5.6 已经来了。说实话,Linux 5.6 比 5.5 更令人兴奋。...即使即将发布的 Ubuntu 20.04 LTS 发行版将自带 Linux 5.5,你也需要切实了解一下 Linux 5.6 内核为我们提供了什么。...我将在本文中重点介绍 Linux 5.6 发布版中值得期待的关键更改和功能: Linux 5.6 功能亮点 当 Linux 5.6 有新消息时,我会努力更新这份功能列表。...换句话说,这只是 Linux 文件系统的一种新压缩技术,你可以选择待定的文件扩展技术。...因此,如果你好奇 Linux 5.6 所涉及的全部更改,则可以亲自了解一下。 现在你已经了解了 Linux 5.6 发布版带来的新功能,对此有什么看法呢?在下方评论中留下你的看法。
本文大部分讨论的是socket设置为block的情况,即setNonblock(false),仅在最后提及了nonblock socket(本文基于linux 2.6.32-431内核)。...以下为代码对比: ========================>linux 内核版本2.6.32-431<======================== #define TCP_TIMEOUT_INIT...timeout = ((2 << boundary) - 1) * rto_base; ...... } ========================>linux 内核版本2.6.32.630时,将socket设置为非阻塞,然后用select系统调用去模拟超时,而没有走linux本身的超时逻辑,如下图所示: 由于没有java并没有设置so_sndtimeo的选项,所以在...java的SocketInputStream的sockRead0超时时间 java的超时时间由SO_TIMOUT决定,而linux的socket并没有这个选项。
今天笔者就从Linux源码的角度看下Server端的Socket在进行Accept的时候到底做了哪些事情(基于Linux 3.10内核)。...关于epoll的原理可以看下笔者之前的博客《从linux源码看epoll》: https://www.cnblogs.com/alchemystar/p/13161781.html 在这里描述一下原因,...但是,如果一瞬间有大量连接涌进来,单线程处理还是有瓶颈的,无法充分利用多核的优势,在海量短连接场景下就显得稍显无力了。这也是有解决方式的!...accept_queue被填充后,由用户线程通过accept系统调用从队列中获取对应的fd 值得注意的是,当用户线程来不及处理的时候,内核会drop掉三次握手成功的连接,导致一些诡异的现象,具体可以看笔者的另一篇博客...源码看Socket(TCP)的listen及连接队列》: https://www.cnblogs.com/alchemystar/p/13845081.html 总结 Linux内核源码博大精深,每次扎进去探索时候都会废寝忘食
领取专属 10元无门槛券
手把手带您无忧上云