自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 上海快递代理点信息-百度坐标

中通快递address:上海市青浦区华志路1685号 phone:4008270270 location:31.2318,121.204顺丰速运address:双浜路258号c1栋3楼 phone:4006818586 location:31.1872,121.267顺丰速运address:上海市浦东新区张江高科技园区新前路1309号北黄家宅130号 pho

2016-08-08 18:11:08 51146

原创 上海各行政区域地铁站分布数量

首先是地铁站代号ST_NO,ST_NAME,ST_NAME_EN,LINE_NO,X,Y,TRANSFER_TAG,SERIAL_NO,ST_HORIZONTAL0111,莘庄,Xinzhuang ,1,201,771,换乘站,28,地面0112,外环路,Waihuanlu ,1,224,738,普通站,27,地面0113,莲花路,Lianhua Road ,1,243,721,普通站,

2016-07-12 15:55:45 9505 5

原创 在linux 4.x内核中增加系统调用

系统版本:deepin 2015.1 x64内核版本:4.4.31. 下载内核源代码在www.kernel.org处下载相应的内核版本,解压并进入源代码根目录。2. 增加系统调用号在系统调用入口表中增加一项:vim arch/x86/entry/syscalls/syscall_32.tbl在文件末端增加自己的系统调用函数以及对应的系统调用编号,注意不要覆盖原有的系统调

2016-02-29 14:55:22 9698 4

原创 上海地铁站谷歌地图经纬度信息

最近在研究上海地铁数据,专门统计了上海地铁站的经纬度信息。坐标全部采集自谷歌地图,可能有些许误差。七宝:31.155364678184498,121.34882432933009:station七宝:31.155365176348695,121.34882155741643:station七宝:31.158654338683657,121.32836989818442:station三林

2016-01-08 16:01:00 14244 5

原创 《Linux内核设计的艺术》总结: 进程1的创建

现在操作系统已经有了第一个用户进程0,进程0是一个idle进程,现在它要去创建进程11. 通过系统调用fork创建进程1. if (!fork()) { /* we count on this going ok */ init(); } for(;;) pause();fork系统调用会创建子进程,并和父进程共享代码段,它有两个返回值。在父进程中返回子进程的pid,每次创

2015-09-22 21:14:37 659 1

原创 《Linux内核设计的艺术》总结:设备环境初始化及激活进程0

现在main函数开始执行了,可真正意义上的说linux操作系统开始运行了。main函数将设置程序在操作系统下运行所需的环境并创建进程0,操作系统才有了第一个进程。1. 设置根设备和硬盘信息。之前在setup程序中加载了一些硬件信息并存储在物理内存0x90000-0x901FC处,main函数从这些参数中设置了全局变量根设备ROOT_DEV、硬盘信息drive_info,这两个信息在设置操作系统

2015-09-20 15:35:35 984

原创 《Linux内核设计的艺术》总结:开机加电到main执行

开机加电到main执行:BIOS运行按下开机键之后计算机便开始运行。CPU一开始在16位的实模式下运行,寻址空间为20位,也就是1MB。CPU执行的是内存中的指令,这时内存是空的,没有可执行的指令。所以BIOS会首先将自身程序加载到物理内存的特定位置,386之前的机器为0xFFFF0的位置,该位置是配件厂商协商好的。然后CS和IP寄存器会分别被强制设置为0xF000、0xFFF0,

2015-09-18 19:08:01 689

原创 Anddroid启动service:restart_processes函数分析

init程序在最后的for循环中会重新启动一些service,通过调用restart_processes函数,循环遍历service list中的每一个service。如果service设置了SVC_RESTARTING标志位,调用restart_service_if_needed函数尝试启动或重启该service。restart_service_if_needed函数实现如下:stati

2014-12-24 16:03:47 890

原创 Android读取init.rc配置文件parse_config函数解析

Android源代码版本:4.0.3static void parse_config(const char *fn, char *s)函数在Android的init程序启动过程中用于解析init.rc文件。init.rc文件是安卓系统的初始化文件,其中的内容可以分为三大类:1. Action:一个action表示一个动作,以关键字on作为开头,并加上action的名称,接下来的是对应于这个

2014-12-23 15:47:49 2010

原创 Android-4.0.3-init.c启动源码分析

作为第一个内核启动的进程,init进程初始了化安卓运行环境。执行了文件夹建立,文件系统挂载,全局property初始化,建立监听 socket,根据init.rc文件启动service,执行action,等一系列操作,下面来具体看看在Android 4.0.3中的源代码具体实现:main函数:int main(int argc, char **argv){ int fd_co

2014-12-22 18:22:39 702

原创 TCP中的send函数---tcp_sendmsg函数的实现

当应用层程序调用send发送数据之后,相应系统调用为sys_sendmsg,在socket文件系统中,该调用指向inet_sendmsg。而再对于TCP协议,inet_sendmsg指向tcp_sendmsg函数,所以tcp的发送函数接口是tcp_sendmsg。该函数首先对sock加锁防止下半段中断访问,对于阻塞的发送模式还需设置超时时间。

2014-10-31 15:29:03 4773

原创 linux中TCP的socket、bind、listen、connect和accept的实现

socket:

2014-10-30 21:35:50 8100

原创 TCP中的inet_hashinfo介绍

inet_hashinfo:这是一个类型为tcp_hashinfo的全局变量,保存当前系统的各种状态的tcp_sock(包括established,listen和bind).内核初始化调用tcp_init函数时会对该变量进行初始化.结构为:struct inet_hashinfo { struct inet_ehash_bucket *ehash; //establ

2014-10-26 15:29:12 2696 1

原创 TCP延迟确认定时器

TCP延迟确认定时器:TCP延迟确认定时器是指在一个TCP连接中,当一方收到另一端的数据之后,并不是立马返回ACK进行确认。而是等待200ms(在linux-2.6.38内核实现中应该是400ms),如果这段时间内有新的数据要发往对方,本地将ACK和数据封装在一个数据包中,称作捎带确认机制。没有新数据的话也要将ACK发给对方。这样做减少了一次数据传输带来的消耗,但是在另一方面增加了延迟。可

2014-10-23 20:37:35 1458

原创 TCP重传定时器

//本文主要介绍linux内核中TCP的重传定时器机制:用到的源代码是2.6.38//一个tcp连接中,如果一方过了rto时间内都没收到对方的ACK,会触发重传并调用tcp_write_timer定时器处理函数//其中RTO表示重传时间,RTO是动态计算的,需要考虑到当前的重传次数。//tcp_write_timer调用tcp_retransmit_timer重传处理函数,后者会调用t

2014-10-23 17:28:28 1740

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除