Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Linux协议栈查找算法优化随想

Linux协议栈查找算法优化随想

Linux的网络协议栈实现可谓精确却不失精巧,不必说Netfilter,单单说TC就够了,但是有几处硬伤,本文做一个不完备的记录,就当是随笔,不必当真。0.查找的种类Linux协议栈作为一个纯软件实现,保留了硬件接口,但是本文不涉及硬件。在Linux的协议栈实现中,由于没有硬件电路的固化,查找算法是难免的,比如路由查找,邻居查找,conntrack查找,socket查找,不一而足。事实上,协议栈作为一个公共组织,为所有的数据包服务,如果一个数据包到达协议栈...
关于 HeartBleed 安全漏洞的 2 张漫画

关于 HeartBleed 安全漏洞的 2 张漫画

openSSL 的「滴血之心」漏洞造成的恐慌几乎席卷全球,国内外白帽子黑帽子疯狂刷数据刷积分,各大网站的安全部门也是遇到了从未有过的危机。虽然大家都讨论的很热烈,但对于用户们来说,只关心一件事情:我们支付宝里的钱还安全么。最近大家关注的“OpenSSL漏洞”是怎么回事?这个漏洞在英文中称为Heartbleed(可暂译为“心泣”),可能导致各种各样的信息泄露,但其实它的原理出奇地简单。不信,请看著名网络漫画xk...
Linux环境编程:获取网卡的实时网速

Linux环境编程:获取网卡的实时网速

在Windows下面,我们可以看到360或者是qq安全卫士的“安全球”,上面显示实时的网速情况。那么在Linux里面如何获取网卡的实时网速?其实原理很简单,读取需要获取网速的网卡在某段时间dT内流量的变化dL,那么实时网速就出来了,Speed = dL / dt。Linux在ifaddrs.h中提供了函数:/* Create a linked list of `struct ifaddrs" structures, one for ...
内幕:NSA 已经利用 Heartbleed 漏洞多年

内幕:NSA 已经利用 Heartbleed 漏洞多年

据彭博社(Bloomberg)消息,两名不愿透露姓名的内部人士爆料,美国国家安全局NSA早已在两年前就得知Heartbleed漏洞的存在,且一直隐蔽地利用漏洞来窃取密码和收集数据。报道显示,当漏洞2012年首次现身时,NSA就发现该漏洞并一直保留访问权限。漏洞在未被爆出并修复之前(上周),包括Gmail和亚马逊在内的众多服务器都可以被其攻击。这使得NSA几乎可以访问网络上三分之二的加密服务器。报道同时指出Heartbleed漏洞仅仅是冰山一角,安全局还有上...
Linux编译curl库的动态库so

Linux编译curl库的动态库so

curl库是一个很强大的http开源库,c++里面能够很方便的和http服务器交互。最近项目开始内测,开始接登录和充值的SDK,选择了使用curl库来和第三方http服务器交互。在Windows下还是很容易使用,如何使用的案例比比皆是,而且很容易就找到已经编译好的动态库进行测试,但是最后在Linux下部署的时候,发现不好找已经编译好的so库文件,最后没办法只好自理更生。下载了源码下来看,配置文件看得一塌糊涂,在网上查了一些资料,也很少找到有用的信息,最后结...
幕后大起底:OpenSSL“Heartbleed”漏洞消息发布前的惊魂72小时

幕后大起底:OpenSSL“Heartbleed”漏洞消息发布前的惊魂72小时

从芬兰到硅谷,有一支小规模的漏洞猎手团队发现了互联网历史上最为严重的网络安全漏洞,并为之积极准备着。最近Heartbleed这个词可谓是家喻户晓,这个安全漏洞引起了几乎每个网民的担心。但其实 David Chartier 早在一周前,当所有人还蒙在鼓里的时候,就已经知道它的存在了。周五一大早,Codenomicon 安全公司的 CEO Chartier 接到了一个从芬兰打来的电话,那时他才刚刚到达在硅谷的办公室。在那个平常的不能再平常的阴霾天,Charti...
Linux下在C语言中获取硬盘大小

Linux下在C语言中获取硬盘大小

由于系统中没有现成的代码可以直接获取某个硬盘的大小,此时可以借助popen,sscanf,fdisk命令共同完成硬盘大小的获取。工件原理如下,在Linux中执行fdisk -l命令,获取硬盘的详细信息,然后在C程序中通过popen将信息获取,然后用sscanf将相关信息进行处理,得到硬盘的大小。代码如下:int get_system_tf_capacity(double *capacity){if (capacity == NULL) return -1;...
Linux下串口通信编程

Linux下串口通信编程

由于串口通信需要自己写代码进行测试,同时要轮询测试各波特率是否工作正常。按照网上的代码,Linux下运行后总是或多或少有一些问题,后来借鉴APUE中关于tty_raw代码部分进行修改,终于可以正常运行,通信不丢数,不修改数据。同时在测试数据位为5,6时发现结果不正确,然后与其它同事了解后,发现串口下数据位5bit代表只会发送一个字节5bit。而不会自己进行拆分然后重组,得到原来的数据。例如,发送0xff,数据位5时,收到0x1f,数据位6时,收到0x3f,...
Linux文件锁flock,检查程序是否已经运行

Linux文件锁flock,检查程序是否已经运行

在多个进程同时操作同一份文件的过程中,很容易导致文件中的数据混乱,需要锁操作来保证数据的完整性,这里介绍的针对文件的锁,称之为“文件锁”-flock。flock,建议性锁,不具备强制性。一个进程使用flock将文件锁住,另一个进程可以直接操作正在被锁的文件,修改文件中的数据,原因在于flock只是用于检测文件是否被加锁,针对文件已经被加锁,另一个进程写入数据的情况,内核不会阻止这个进程的写入操作,也就是建议性锁的内核处理策略。Lin...
美国政府发出Heartbleed漏洞安全警示

美国政府发出Heartbleed漏洞安全警示

日前,美国政府发出警告,称黑客或正在利用Heartbleed漏洞进行破坏。美国国土安全部建议人们更改受漏洞影响网站的密码。一位官员同时表示,目前没有接到任何攻击或受侵害事件的报告。相关阅读:OpenSSL TLS心跳读远程信息泄露漏洞 (CVE-2014-0160) http://www.linuxidc.com/Linux/2014-04/99741.htmOpenSSL严重bug允许攻击者读取64k内存,Debian半小时修复 http://www.l...
GCC选项_-Wl,-soname

GCC选项_-Wl,-soname

-Wl选项告诉编译器将后面的参数传递给链接器。-soname则指定了动态库的soname(简单共享名,Short for shared object name)soname的关键功能是它提供了兼容性的标准:当要升级系统中的一个库时,并且新库的soname和老库的soname一样,用旧库链接生成的程序使用新库依然能正常运行。这个特性使得在Linux下,升级使得共享库的程序和定位错误变得十分容易。在Linux中,应用程序通过使用soname,来指定所希望库的版...
<< 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 >>