- 博客(8)
- 资源 (8)
- 收藏
- 关注
原创 浅谈用户空间和内核空间内存分配
一、用户空间动态申请内存:1、malloc: malloc分配的内存大小至少为size参数所指定的字节数 malloc的返回值是一个指针,指向一段可用内存的起始地址 多次调用malloc所分配的地址不能有重叠部分,除非某次malloc所分配的地址被释放掉 malloc应该尽快完成内存分配并返回(不能使用NP-hard的内存分配算法) 实现malloc时应同时实现内存大...
2018-06-12 10:01:24 2477
转载 Linux内核抢占机制preempt
转自:原文链接早期的Linux核心是不可抢占的。它的调度方法是:一个进程可以通过schedule()函数自愿地启动一次调度。非自愿的强制性调度只能发生在 每次从系统调用返回的前夕以及每次从中断或异常处理返回到用户空间的前夕。但是,如果在系统空间发生中断或异常是不会引起调度的。这种方式使内核实现得以 简化。但常存在下面两个问题:如果这样的中断发生在内核中,本次中断返回是不会引起调度的,而要到最初使C...
2018-06-12 09:42:54 746
转载 make menuconfig选项解析
make menuconfig 图形化的内核配置make mrproper -----删除不必要的文件和目录. #make config(基于文本的最为传统的配置界面,不推荐使用) #make menuconfig(基于文本选单的配置界面,字符终端下推荐使用) #make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用) #make oldconfig(如果只想在原来内核配置...
2018-06-11 16:14:23 1412 1
原创 ubuntu18.04编译4.15内核过程
内核下载地址:Linux kernel1、将下载好的内核源码压缩包置于ubuntu18.04虚拟机中(在windows上解压会导致部分文件损坏)2、解压下载的压缩包,在/usr/src中 tar -xvf linux-4.15.tar.gz -C /usr/src后 cd /usr/src3、安装编译工具 sudo apt-get install libncurses5-dev...
2018-06-11 16:11:46 6143
原创 Linux error
C Name Value Description EPERM 1 Operation not permitted ENOENT 2 No such file or directory ESRCH 3 No such process EINTR 4 Interrupted system call EIO 5 Input/output error ENXIO 6 No su...
2018-06-08 17:08:17 2953
转载 详解Linux双网卡绑定之bond0
1、什么是bond? 网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在生产场景中是一种常用的技术。Kernels 2.4.12及以后的版本均供bonding模块,以前的版本可以通过patch实现。2、实现原理: 网卡工作在混杂(promisc)模式,接收到达网卡的所有数据包,tcpdump工作用的也是混杂模式(promisc),将两块网卡的 MAC地址...
2018-06-08 16:42:32 39546
原创 Linux内核符号表类型说明
所谓内核符号表就是在内核内部函数或变量中可供外部引用的函数和变量的符号表符号类型 名称 说明 A Absolute 符号的值是绝对值,并且在进一步链接过程中不会被改变 B BSS 符号在未初始化数据区或区(section)中,即在BSS段中 C Common 符号是公共的。公共符号是未初始化的数据。在链接时,多个公共符号可能具有同一名称。如果该符号定义在其他地方,则公共符号被看作是...
2018-06-08 09:47:10 1680 1
原创 Linux下IPV6 Connect
最近在模拟测试IPv6客户端连接服务器(使用的是链路本地地址fe80::20c:29ff:fe98:77d2),但是总会报参数不正确,后来我使用strace追踪java-SocketTest(ipv6测试工具)的连接发现Connect需要初始化sin6_scope_id字段,才可以Connect successstruct sockaddr_in6 { u_char sin6_le...
2018-06-05 19:16:19 3947 1
windows批处理脚本编程
2017-11-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人