临风笛
码龄18年
求更新 关注
提问 私信
  • 博客:248,822
    社区:1,198
    250,020
    总访问量
  • 8
    原创
  • 76
    粉丝
  • 22
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
加入CSDN时间: 2008-12-01

个人简介:IT耶?非也,非也!

博客简介:

godleading的专栏

博客描述:
关注Linux Kernel/网络协议栈
查看详细资料
个人成就
  • 获得127次点赞
  • 内容获得18次评论
  • 获得665次收藏
  • 代码片获得122次分享
  • 博客总排名599,062名
创作历程
  • 1篇
    2018年
  • 4篇
    2017年
  • 3篇
    2016年
  • 3篇
    2015年
  • 8篇
    2014年
  • 5篇
    2013年
  • 12篇
    2012年
TA的专栏
  • Linux Kernel/网络协议栈
    16篇
  • web前端 html/php/javascript
    1篇
  • C语言
    5篇
  • 项目管理/配置工具
    5篇
  • Linux开发
    6篇

TA关注的专栏 4

TA关注的收藏夹 0

TA关注的社区 0

TA参与的活动 0

兴趣领域 设置
  • 数据结构与算法
    排序算法推荐算法
  • 人工智能
    集成学习
创作活动更多

「谁说嵌入式只是调包和焊板子?」—— 2026嵌入式全栈技术征锋令

谁说嵌入式只会“Ctrl+C 调包”和“拿电烙铁焊板子”?2026嵌入式全栈技术征锋令正式启幕! 本次活动专为硬核硬件/软件开发者打造,无论你是刚玩转裸机外设的萌新,还是精通RTOS调度、死磕底层驱动的行业老手,亦或是执掌系统架构的大神,这里都是你证明实力的舞台! 拒绝表面功夫,每一行代码,都有撬动硬件的力量!晒出你的硬核工程实战,为嵌入式开发者的全栈硬实力正名!

213人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

程序的内存分配

一、预备知识—程序的内存分配    一个由C/C++编译的程序占用的内存分为以下几个部分    1、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其    操作方式类似于数据结构中的栈。    2、堆区(heap)   —   一般由程序员分配释放,   若程序员不释放,程序结束时可能由OS回    收   。注意它与数据结构中的堆是两回事,分配方式倒是类...
转载
博文更新于 2018.03.30 ·
915 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Linux进程间通信方式

进程与进程通信的概念进程通信的应用场景进程通信的几种方式管道管道简介管道原理管道如何通信管道如何创建管道读写实现管道api与用法普通管道流管道命名管道实现原理api与应用匿名管道和有名管道总结信号信号来源信号生命周期和处理流程api使用消息队列实现原理api与应用以Posix为例共享内存实现原理api和应用system V
转载
博文更新于 2018.01.12 ·
17495 阅读 ·
21 点赞 ·
5 评论 ·
136 收藏

git使用

git使用git clone时报如下错误原因解决方法TortoiseGit clone时报错问题原因解决方法git log使用git回归代码git使用本文记录的是工作中git是使用问题,无脑模式,遇到什么记录什么,谨慎阅读。git clone时报如下错误。git@github.com:vim/vim.gitbash: git@github
原创
博文更新于 2018.01.08 ·
801 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

字节序与比特序详解

[TOC]字节序的定义字节序就是说一个对象的多个字节在内存中如何排序存放,比如我们要想往一个地址a中写入一个整形数据0x12345678,那么最后在内存中是如何存放这四个字节的呢?  0x12这个字节值为最高有效字节,也就是整数值的最高位(在本文中0x12=0x12000000),0x78为最低有效字节。  这里就分为大端字节序和小端字节序  大端字节序:便是指最高有效字节落在低地址上的字节
翻译
博文更新于 2017.12.23 ·
9111 阅读 ·
14 点赞 ·
3 评论 ·
57 收藏

Linux内核中的各种锁

Linux内核中的各种锁在现代操作系统里,同一时间可能有多个内核执行流在执行,因此内核其实象多进程多线程编程一样也需要一些同步机制来同步各执行单元对共享数据的访问。尤其是在多处理器系统上,更需要一些同步机制来同步不同处理器上的执行单元对共享的数据的访问。在主流的Linux内核中包含了几乎所有现代的操作系统具有的同步机制,这些同步机制包括:原子操作、信号量(semaphore)、读写信号量(rw_se
转载
博文更新于 2017.11.06 ·
21861 阅读 ·
15 点赞 ·
0 评论 ·
114 收藏

C语言字节对齐问题详解

C语言字节对齐
转载
博文更新于 2017.10.31 ·
1608 阅读 ·
2 点赞 ·
0 评论 ·
5 收藏

理解tcp关闭连接中的time_wait状态

首先看一下tcp关闭连接时的四次握手过程:1.Client向Server发送FIN包,表示Client主动要关闭连接,然后进入FIN_WAIT_1状态,等待Server返回ACK包。此后Client不能再向Server发送数据,但能读取数据。2.Server收到FIN包后向Client发送ACK包,然后进入CLOSE_WAIT状态,此后Server不能再读取数据,但可以
转载
博文更新于 2017.06.22 ·
4069 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

各种算法复杂度

数据结构 注解: Skip_List:跳跃表 Cartesian_Tree:笛卡尔树是一种特定的二叉树数据结构,可由数列构造,在范围最值查询、范围top k查询(range top k queries)等问题上有广泛应用。数组排序算法 图操作 堆操作 大O复杂度
转载
博文更新于 2016.11.21 ·
746 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux内核中的软中断、tasklet和工作队列详解

[TOC] 本文基于Linux2.6.32内核版本。引言软中断、tasklet和工作队列并不是Linux内核中一直存在的机制,而是由更早版本的内核中的“下半部”(bottom half)演变而来。下半部的机制实际上包括五种,但2.6版本的内核中,下半部和任务队列的函数都消失了,只剩下了前三者。 介绍这三种下半部实现之前,有必要说一下上半部与下半部的区别。 上半部指的是中断处理程序,下半部则指的
原创
博文更新于 2016.10.30 ·
34304 阅读 ·
40 点赞 ·
7 评论 ·
291 收藏

Linux进程状态

众所周知,现在的分时操作系统能够在一个CPU上运行多个程序,让这些程序表面上看起来是在同时运行的。linux就是这样的一个操作系统。在linux系统中,每个被运行的程序实例对应一个或多个进程。linux内核需要对这些进程进行管理,以使它们在系统中“同时”运行。linux内核对进程的这种管理分两个方面:进程状态管理,和进程调度。进程状态在linux下,通过ps命令我们能够查看到系统中
转载
博文更新于 2016.08.17 ·
902 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux Shell参数

在shell编程时.可以使用参数。Shell有位置参数和内部参数1、 位置参数  由系统提供的参数称为位置参数。位置参数的值可以用$N得到,N是一个数字,如果为1,即$1.类似C语言中的数组,Linux会把输入的命令字符串分段并给每段进行标号,标号从0开始。第0号为程序名字,从1开始就表示传递给程序的参数。如$0表示程序的名字,$1表示传递给程序的第一个参数,以此类推。2、 内部参数
转载
博文更新于 2015.06.08 ·
705 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

IO多路复用总结

本文基于Linux2.6.32内核版本。一、基本概念  IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合:  (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。  (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。  (3)如果一个TCP服务器
原创
博文更新于 2015.04.14 ·
4496 阅读 ·
1 点赞 ·
0 评论 ·
12 收藏

Linux中的地址空间以及I/O地址空间

解惑—Linux中的地址空间(一)有这么一系列的问题,是否在困扰着你:1. 用户程序编译连接形成的地址空间在什么范围内?2. 内核编译后地址空间在什么范围内?3. 要对外设进行访问,I/O的地址空间又是什么样的?先回答第一个问题。Linux最常见的可执行文件格式为elf(Executable and Linkable Format)。在elf格式的可执行代码中,ld总是从0
原创
博文更新于 2015.03.17 ·
11288 阅读 ·
11 点赞 ·
0 评论 ·
75 收藏

进程栈和内核栈

1.进程的堆栈       内核在创建进程的时候,在创建task_struct的同时,会为进程创建相应的堆栈。每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈;当进程在内核空间时,cpu堆栈指针寄存器里面的内容是内核栈空间地址,使用内核栈。2.进程用户栈和内核栈的切换(堆栈指
转载
博文更新于 2014.05.20 ·
3956 阅读 ·
2 点赞 ·
0 评论 ·
8 收藏

组播MAC地址和各类IP地址

MAC地址是以太网二层使用的一个48bit(6字节十六进制数)的地址,用来标识设备位置。MAC地址分成两部分,前24位是组织唯一标识符(OUI, Organizationally unique identifier),后24位由厂商自行分配。    MAC地址有单播、组播、广播之分。单播地址(unicast address)表示单一设备、节点,多播地址或者组播地址(multicast ad
转载
博文更新于 2014.03.17 ·
30865 阅读 ·
5 点赞 ·
0 评论 ·
49 收藏

linux iptables实现

Xtables提供的资源 struct  xt_af  xt[]结构数组该数组用于挂载各个协议的match和target资源。由于写者(添加、删除)和读者(查找)都是在内核空间进程上下文执行,所以它们只需要用xt[n].mutex信号量进行互斥。读者(查找)在将规则关联上一个match或target时会增加它们所在模块的引用计数,在它释放这个引用计数之前该模块是不会被卸载的,所
转载
博文更新于 2014.02.26 ·
5945 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

Linux nf_conntrack连接跟踪的实现

连接跟踪,顾名思义,就是识别一个连接上双方向的数据包,同时记录状态。下面看一下它的数据结构:struct nf_conn {        /* Usage count in here is 1 for hash table/destruct timer, 1 per skb, plus 1 for any connection(s) we are `master' for */   
转载
博文更新于 2014.02.26 ·
28674 阅读 ·
2 点赞 ·
0 评论 ·
22 收藏

Understanding a Kernel Oops

Understanding a kernel panic and doing the forensics to trace the bug is considered a hacker’s job. This is a complex task that requires sound knowledge of both the architecture you are working on, an
转载
博文更新于 2014.01.27 ·
1386 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux用户进程内存空间

经常使用top命令了解进程信息,其中包括内存方面的信息。命令top帮助文档是这么解释各个字段的。VIRT , Virtual Image (kb)RES, Resident size (kb)SHR, Shared Mem size (kb)%MEM, Memory usage(kb)SWAP, Swapped size (kb)CODE, Code size (kb)
转载
博文更新于 2014.01.24 ·
2397 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

内存对齐详解

首先由一个程序引入话题:1 //环境:vc6 + windows sp2 2 //程序1 3 #include 4 5 using namespace std; 6 7 struct st1 8 { 9 char a ;10 int b ;11 short c ;12 };13 14 struct st215 {16 sh
转载
博文更新于 2014.01.24 ·
1207 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多