相关内容
不为人知的网络编程(十):深入操作系统,从内核理解网络包的接收过程(Linux篇)
而很多时候,如果你对网络底层的理解不深的话,遇到很多线上性能瓶颈你会觉得狗拿刺猬,无从下手。 这篇文章将用图解的方式,从操作系统这一层来深度理解一下网络包的接收过程(因为能直接看到内核源码,本文以linux为例)。 按照惯例来借用一段最简单的代码开始思考。 为了简单起见,我们用udp来举例,如下...

为什么Linux CFS调度器没有带来惊艳的碾压效果
linux内核还是以原始的主线为base,以讲linux内核的书为例,经典的robert love的《linux内核设计与实现》,以及《深入理解linux内核》,在讲进程调度的时候,关于多核负载均衡的笔墨都是少之又少甚至没有,如此经典的著作把很多同好引向了那万劫不复的代码深渊。 于是乎,铺天盖地的cfs源码分析纷至沓来。 但其实...

深入理解Python异步编程(上)
select因其算法效率比较低,后来改进成了poll,再后来又有进一步改进,bsd内核改进成了kqueue模块,而linux内核改进成了epoll模块。 这四个模块的作用都相同,暴露给程序员使用的api也几乎一致,区别在于kqueue 和 epoll 在处理大量文件描述符时效率更高。 鉴于 linux 服务器的普遍性,以及为了追求更高效率...

高并发基石|深入理解IO复用技术之epoll
还有同学的事情没办好,所以班长只能继续(也就是调用epoll_wait等待内核反馈的可读写事件发生并处理); 4.4 epoll官方demo通过man epoll可以看到官方的...理解了io复用技术的基本概念,我们接着来看linux系统中先后出现的各种io复用工具以及各自的特点,加深理解。 3. linux的io复用工具概览在 linux 中先后...

Android系统架构开篇
想深入理解android内核层架构,必须先深入理解linux现有的ipc机制; 对于android上层架构,则最常用的通信方式是binder、socket、handler,当然也有少量其他的ipc方式,比如杀进程process.killprocess()采用的是signal方式。 下面说说binder、socket、handler:3.1 binderbinder作为android系统提供的一种ipc机制...

掌握 Android 系统架构,看这一篇就够了!
想深入理解android内核层架构,必须先深入理解linux现有的ipc机制; 对于android上层架构,则最常用的通信方式是binder、socket、handler,当然也有少量其他的ipc方式,比如杀进程process.killprocess()采用的是signal方式。 下面说说binder、socket、handler:3.1 binderbinder作为android系统提供的一种ipc机制...

Linux 网络层收发包流程及 Netfilter 框架浅析
前言 本文主要对 linux 系统内核协议栈中网络层接收,发送以及转发数据包的流程进行简要介绍,同时对 netfilter 数据包过滤框架的基本原理以及使用方式进行简单阐述。 内容如有理解错误而导致说明错误的地方,还请指正。 如存在引用而没有添加说明的,也请及时告知,非常感谢! 2. 基础网络知识 2.1 网络分层模型 osi...
TC(Traffic Control)命令—linux自带高级流控
blog.csdn.netqinyushuangarticledetails46611709一、tc原理linux操作系统中的流量控制器tc(traffic control)用于linux内核的流量控制,主要是通过在输出端口处建立一个队列来实现流量控制。 接收包从输入接口进来后,经过流量限制丢弃不符合规定的数据包,由输入多路分配器进行判断选择:如果接收包的目的主机是本...

eBPF技术简介
“ebpf 是我见过的 linux 中最神奇的技术,没有之一,已成为 linux 内核中顶级子模块,从 tcpdump 中用作网络包过滤的经典 cbpf,到成为通用 linux 内核技术的 ebpf,已经完成华丽蜕变,为应用与神奇的内核打造了一座桥梁,在系统跟踪、观测、性能调优、安全和网络等领域发挥重要的角色。 为 service mesh 打造了具备...

Android安全性要点与规范核心详析
android 使用 linux 内核构建而成。 如果您要使用原生代码,熟悉一下 linux 开发安全最佳做法会非常有用。 本文中没有介绍 linux 安全做法,不过您可以...在 android 4.4(api 级别 19)之前平台上运行的设备使用的 webkit版本存在多个安全问题。 如果您的应用在这些设备上运行,解决方法是确认 webview对象只...

写给 Android 应用工程师的 Binder 原理剖析
binder 机制在 android 中的位置非常重要,毫不夸张的说理解 binder 是迈向 android 高级工程的第一步。 1.2 为什么是 binder ? android 系统是基于 linux 内核的,linux 已经提供了管道、消息队列、共享内存和 socket 等 ipc 机制。 那为什么 android 还要提供 binder 来实现 ipc 呢? 主要是基于性能、稳定性和安全...

Elastic Search
内核使用的是2.6。 内核版本不满足要求。 无法安装es。 必须升级内核。 1 升级linux内核版本系统内核的提升,对已部署的应用一般没有影响,但是新版本内核...(api复杂度高,需要深入理解内部原理【索引结构等】)1.2 :基于lucene开发,提供简单的restful api接口、java api接口、其他语言开发接口等...

关于系统工具栏和全屏沉浸模式
熟悉 framework 后就可以配合着 linux 内核的知识了解 android 底层的实现了。 好了,先把注意放在应用层,毕竟这是最简单的。 system bars 包括三条 bar...随着应用程序的一些深入设计,大家总想要更好的界面和体验,所以有些东西并不能只是知道方法就结束了,是得要去深入研究研究的。 通过这个过程我觉得,从...
万字长文|全(小区局域)网最强TCPIP拥塞控制总结
在google进行的测试中,能将平均延迟降低3~10%恢复超时减少5%,prr算法后作为linux内核3.2版本默认拥塞算法。 tcp bbrtcp bbr是由google设计于2016年发布...如图为发生超时重传rto时的过程:? 4.4拥塞控制过程详解我们以典型慢启动、拥塞避免、快速重传、快速恢复四个过程进行阐述。 慢启动慢启动就是对于刚启动...
Android电源管理基础知识整理
该机制起初是早期android为linux内核打得一个补丁,并想合入到linux内核,但被linux社区拒绝,后续linux内核引入自己的wakelock机制,android系统也使用的...android开发者官网当中提到“idle states”,该如何理解,这个状态会对设备及我们的程序造成何种影响? 进入doze模式中的idle状态,我们的程序还能运行吗...

我也想聊聊Binder机制
由于android是基于linux内核,因此,除了binder以外,还有其他的ipc机制,例如socket,共享内存,管道和消息队列等。 之所有不使用原有的 ipc机制,是因为...了解android是如何通过层层封装将binder机制集成要应用程序,对binder机制有一个较深入的理解。 可以通过第java层aidl的使用,加深对binder机制的理解...
【翻译】NIST IR 8151: 显著减少软件漏洞——致美国白宫科技政策办公室
容器提供了独立计算机或者完整的虚拟机的某些隔离属性,但是,容器可以在商品级硬件上在几分之一秒的时间内启动。 容器通常要求显著少于完整虚拟机的计算和存储资源。 基于容器的隔离可以明显减少软件漏洞的影响,如果隔离足够强。 因此,获取关于容器基础设施组件(例如 linux 内核中的控制组和名称空间)在面对恶意...

图文并茂 RAID 技术全解 – RAID0、RAID1、RAID5、RAID100……
linux 的 md raid 也可以实现类似的功能。 7.linux md raid 10 raid 10 是 linux 内核所支持的软 raid 等级之一,它还支持 raid0、1、3、4、5、6 等级别...至于设计何种 raid (甚至新的等级或类型)或采用何种模式的 raid ,需要在深入理解系统需求的前提下进行合理选择,综合评估可靠性、性能和成本来进行折中...
JAVA学习之路:不走弯路,就是捷径
如果你对操作系统比较熟悉,你可以学习clinux等等,为linux内核开发驱动程序开发嵌入式开发打基础。 如果你想介入到应用范围最广泛的应用软件开发(包括...熟悉api的方法一是多查java doc文档(参考文献4.4),二是使用jbuildereclipse等ide的代码提示功能。 3. 1. 4 特定api的学习 java介入的领域很广泛,不同...
如何学好一门编程语言?
如果你对操作系统比较熟悉,你可以学习clinux等等,为linux内核开发驱动程序开发嵌入式开发打基础。 如果你想介入到应用范围最广泛的应用软件开发(包括...熟悉api的方法一是多查javadoc文档(参考文献4.4),二是使用jbuildereclipse等ide的代码提示功能。 3.1. 4 特定api的学习java介入的领域很广泛,不同的...