- 博客(17)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注
原创 VIVO-Linux内核优化方向的面试记录
VIVO-Linux内核优化方向的面试记录晚上去了上梅林步步高大厦VIVO面试,面聊过程我表达对Linux系统比较感兴趣想往这块发展,所以被问了不少Linux内核相关的知识,主要包括文件系统(针对突然断电对文件系统的影响甚至造成文件系统损坏有什么方式处理或解决,手机多应用同时打开造成大量的IO请求或阻塞使得系统卡顿是否有方法处理,IO电梯算法有哪些),内存管理(如何内存解决碎片问题,除buddy/slab外还了解其它策略吗,页回收的策略),进程调度(对进程调度的理解,如何快速地选择最佳的进程调度运行),
2021-12-31 09:32:49
760
原创 linux双向链表(list_head)分析
源码路径:include/linux/list.hstruct list_head { struct list_head *next, *prev;};1、定义并初始化 LIST_HEAD(A);2、添加一个节点到表头之后(即表头的next) list_add(struct list_head *new, struct list_head *head)3、添加一个节点到表头之前(即表头的prev,对next而言是tail) list_add_...
2021-11-09 18:10:29
1022
原创 linux程序调试过程分析
1、gdb调试过程:介绍:gdb不仅可以用来调试分析和解决实际问题,也可以用来学习程序运行的过程;gdb的实现是靠ptrace,让被调试的程序作为gdb的子进程,有的通过gdb fork生成,有的通过gdb attach收养,因此被调试子程序的所有信号和状态都可以被父进程监听和控制;1)判断一个程序(可执行文件)是否带有调试信息: gdb helloworld // helloworld表示要调试的可执行文件 如果出现no debugging symbols found表示该...
2021-10-28 11:29:14
1190
原创 linux系统调用过程分析
1、ARM系统应用调用open的过程:open -> glibc -> swi 0x0 -> kernel -> vector_swi -> sys_openat (SYSCALL_DEFINE4(openat, xxx))1)glibc端:-> open(xxx) // fcntl.h -> __libc_open(xxx) // sysdeps/unix/sysv/linux/open.c -> SYSCALL_CANCEL...
2021-10-27 15:37:16
441
原创 MCU之WWDG
1、WWDG特点解读–可以设置窗口时间,把喂狗的时间控制在指定的一段时间内,以便约束程序的运行行为,如果程序因异常造成没能够在指定的时间段内喂狗将会产生看门狗复位;有两种复位情况,一是“狗饿死”即超时复位underflow,二是“过早喂狗”即窗口期内喂狗;2、WWDG相关寄存器–WDG_CNT:看门狗计数器(一般是count down计数器)–WDG_DR:看门狗数据寄存器(喂狗时写该寄存器即可更到WDG_CNT)–WDG_WIN_DR:看门狗窗口数据寄存器(用于设置窗口时间)
2021-07-08 16:17:09
245
原创 学习网络编程之ping
ping命令通常被用来检查网络连接是否是通的,如我们的电脑接在局域网的路由器下面,我们可以用ping来测试跟路由器或其它局域网内的某台主机的连接情况,又或者我们想测试是否连接外网正常,我通常会ping一下一些门户网站如www.baidu.com,www.jd.com等。这个命令行工具相信很多人都用过,应该也有不少人和我一样一直想它到底是怎么实现的,或它的过程是怎样的。1 ping测试测试设
2015-04-03 14:35:38
1231
原创 Android 464XLAT
今天看ConnectivityService发现了Nat464Xlat,开始很迷惑,从名字上无法理解到底是什么东东,后上网搜索了一下才知道464XLAT是用于IPv4与IPv6之间通信的。
2015-03-31 16:20:17
4448
1
原创 如何让Flex AIR压缩解压缩库airxzip也支持中文文件名
最近忙个Flex AIR项目要用到压缩和解压缩打包网络传输功能,所以在网上发现了这个库airxzip,接口使用挺方便的,但是一开始就是不支持中文文件名,压缩后的文件名一直是用UTF-8的,后来从airxzip项目官网https://code.google.com/p/airxzip/上了解到它的文件名只支持日本Shift_JIS和UTF-8编码。难道airxzip是日本人写的?于是下载它的sour
2014-03-07 14:10:38
2187
1
原创 Python IDE Eric4 windows安装
上一篇我已经装好了Eric5,但是Eric5是基于Python3.x版本的,而wxPython目前最新的版本还是基于Python2.6或2.7,因此我又不得不重新安装Python2.7以适应最新的wxPython。而Python2.x版本系列只能支持Eric4,因此要构建Python2.7的IDE就需要安装Eric4了,还好有了前面Eric5的安装过程,这次Eric4的安装很顺利,总之所选的Pyt
2013-04-26 16:44:45
1639
原创 Python IDE Eric5 windows安装
前两天在学习wxWidgets这个类似MFC的跨平台C++ GUI framework,发现它在其它语言的绑定也很丰富,于是想尝试一下它的wxPython,好吧,既然是Python绑定,那就需要先安装Python解释器,后来又想装个Python IDE来玩玩,于是开始从网上了解常用的Python IDE及其差异,当然对于我们这种屌丝程序猿商业版的首先不考虑,最后就看中了Eric。安装Eric开
2013-04-26 11:36:04
2438
原创 gtk之G_LIKELY(expr)和G_UNLIKELY(expr)
前段时间在读xfce的Thunar(file manager)的源码时碰到了G_LIKELY和G_UNLIKELY的调用,虽然大概知道什么意思,跟linux内核里用的likely和unlikely应该是一样的,但是还是想在这里总结一下。从glib的源码里面(glib/gmacros.h)可以找到G_LIKELY和G_UNLIKELY的定义:#define _G_BOOLEAN_EXPR
2013-01-25 15:18:55
3133
原创 linux编程之main()函数启动过程
1 最简单的程序 1)编辑helloworld程序,$vim helloworld.c 1 #include 2 3 int main (int argc, char *argv[]) 4 { 5 printf("Hello world!\n"); 6 7 return 0; 8 }2) 编译,$ gcc hellow
2013-01-15 15:36:57
11243
4
原创 linux编程之国际化和本地化
1 国际化(internationalization, i18n),本地化(localization, l10n)这里不多说,想具体了解可以上wikipedia。2 如何把“Hello world!”打印显示为“你好,世界!”?1)编辑test_helloworld.c$vim test_helloworld.c 1 #include 2 #include 3
2013-01-14 16:04:56
823
TCP连接关闭时怎么少了一次挥手ACK
2015-04-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人