首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
linux源码可以免费获得吗
2024-08-30
Linux内核源代码获取教程
Linux内核源代码获取方法 什么叫Linux 什么叫Linux内核 Linux内核源代码的获取 什么叫Linux? Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支持32位和64位硬件.Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统.Linux最早是由芬兰黑客 Linus Torvalds为尝试在英特尔x86架构上提
linux源码阅读笔记 数组定义
在阅读linux源码的过程中遇到了下面的略显奇怪的结构体数组定义. static struct hd_struct{ long start_sect; long nr_sects; }hd[10]={{0,0},}; 经测试,猜测应该是只对该数组的第一个元素进行初始化为{0,0},而其他元素不初始化
linux源码阅读笔记 asm函数
在linux源码中经常遇到__asm__函数.它其实是函数asm的宏定义 #define __asm__ asm,asm函数让系统执行汇编语句. __asm__常常与__volatile__一起出现.__volatile__限制编译器不能对下面的汇编语句进行优化处理. 分析下面语句 __asm__("movb %3,%%dh\n\t" \ "movb %2,%%dl\n\t" \ "shll $16,%%edx\n\t" \ "movw
linux源码分析2
linux源码分析 这里使用的linux版本是4.8,x86体系. 这篇是 http://home.ustc.edu.cn/~boj/courses/linux_kernel/1_boot.html 的学习笔记. linux的启动过程有点像是小鱼吃大鱼,最后吃成一个胖子. 计算机中的PC寄存器是用来指示下个执行程序.最开始的时候,pc寄存器都是指向0xfffffff0.这个程序是指向BIOS的POST程序的.POST全称是Power On Self Test,意思是加点自检.过程包括内存检查,系
如何从Linux源码获知版本信息
/*************************************************************************** * 如何从Linux源码获知版本信息 * 声明: * 本文主要在移植BQ27441-G1电量监测计驱动过程中,发现I2C获取的值有异常, * 之前移植官方的驱动发现驱动与当前版本的Linux版本好像是不兼容的,但没有进行 * 更进一步的深究,这里记录一下. * * 2016-2-15 深圳 南山平山村 曾剑锋 *****************
Linux 源码编译Python 3.6
Linux 源码编译Python 3.6 1.操作系统以及版本显示 # uname -sr Linux 3.10.0-514.el7.x86_64 # uname -sr Linux 3.10.0-514.el7.x86_64 2.下载python安装包 # wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz 3.开始进行编译安装python 3.1 解压python # tar -xf Python-3.6.1.ta
Linux源码安装JDK1.8
Linux源码安装Java 1.到官网下载 jdk-8u131-linux-x64.tar.gz 官网地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2.解压安装包,重命名为jdk [root@QIANZI-BASE home]# tar -zvxf jdk-8u131-linux-x64.tar.gz [root@QIANZI-BASE home]# mv jdk1..
Linux 源码阅读 进程管理
Linux 源码阅读 进程管理 版本:2.6.24 1.准备知识 1.1 Linux系统中,进程是最小的调度单位: 1.2 PCB数据结构:task_struct (Location:linux-2.6.24\include\linux\sched.h)(任务可以和进程混用) task_struct结构体 2.设计思路图 3.数据结构 4.主要函数 4.1创建进程 long do_fork(unsigned long clone_flags, unsigned long stack_start,
linux源码学习-for_each_cpu
刚开始读linux源码,第一眼就看到了这个很有意思的函数族,周末好好研究一下 3.13 这个组都是宏定义for循环,分析的时候注意到cpumask_next(),它在一个文件中定义了两次,还不是重载,其中一个只是返回参数加一.
Debian 安装Linux源码
参考: http://blog.chinaunix.net/uid-20683355-id-1895778.html http://www.linuxdiyf.com/viewarticle.php?id=66496 安装完毕后,会在/usr/src下面生成一个Linux源码包.
mysql-5.5 for linux源码安装
mysql-5.5 for linux源码安装 1.使用Yum安装依赖软件包 # yum install -y gcc gcc-c++ gcc-g77 autoconf automake bison zlib* fiex* \ libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* 2.安装cmake # yum install -y cmake 3.解压缩并编译安装MySQL源码包 # tar xzvf mysql-5.5.27.tar.gz
【跟我一起读 linux 源码 01】boot
计算机启动流程在我的上一个学习计划<自制操作系统>系列中,已经从完全不知道,过渡到了现在的了如指掌了,虽然有些夸张,但整个大体流程已经像过电影一样在我脑海里了,所以在看 linux 源码的这个 boot 部分时,几乎是看到的地方即使自己写不出,也知道它究竟在做什么,以及下一步可能要做什么,真的特别庆幸之前从零开始的折腾.计算机最初的启动原理,可以参考<硬核讲解计算机启动流程> 下好 linux 源码,我们总是想找到 main 函数开始看,但其实 main 函数之前,有三个由汇编语言
从linux源码看socket的阻塞和非阻塞
从linux源码看socket的阻塞和非阻塞 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情. 大部分高性能网络框架采用的是非阻塞模式.笔者这次就从linux源码的角度来阐述socket阻塞(block)和非阻塞(non_block)的区别. 本文源码均来自采用Linux-2.6.24内核版本. 一个TCP非阻塞client端简单的例子 如果我们要产生一个非阻塞的socket,在C语言中如下代码所示: // 创建socket int sock_fd =
从linux源码看epoll
从linux源码看epoll 前言 在linux的高性能网络编程中,绕不开的就是epoll.和select.poll等系统调用相比,epoll在需要监视大量文件描述符并且其中只有少数活跃的时候,表现出无可比拟的优势.epoll能让内核记住所关注的描述符,并在对应的描述符事件就绪的时候,在epoll的就绪链表中添加这些就绪元素,并唤醒对应的epoll等待进程. 本文就是笔者在探究epoll源码过程中,对kernel将就绪描述符添加到epoll并唤醒对应进程的一次源码分析(基于linux-2.6.3
从linux源码看socket(tcp)的timeout
从linux源码看socket(tcp)的timeout 前言 网络编程中超时时间是一个重要但又容易被忽略的问题,对其的设置需要仔细斟酌.在经历了数次物理机宕机之后,笔者详细的考察了在网络编程(tcp)中的各种超时设置,于是就有了本篇博文.本文大部分讨论的是socket设置为block的情况,即setNonblock(false),仅在最后提及了nonblock socket(本文基于linux 2.6.32-431内核). connectTimeout 在讨论connectTimeout之前,
从Linux源码看Socket(TCP)Client端的Connect
从Linux源码看Socket(TCP)Client端的Connect 前言 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情. 今天笔者就来从Linux源码的角度看下Client端的Socket在进行Connect的时候到底做了哪些事情.由于篇幅原因,关于Server端的Accept源码讲解留给下一篇博客. (基于Linux 3.10内核) 一个最简单的Connect例子 int clientSocket; if((clientSocket = sock
从Linux源码看Socket(TCP)的bind
从Linux源码看Socket(TCP)的bind 前言 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情. 今天笔者就来从Linux源码的角度看下Server端的Socket在进行bind的时候到底做了哪些事情(基于Linux 3.10内核). 一个最简单的Server端例子 众所周知,一个Server端Socket的建立,需要socket.bind.listen.accept四个步骤. 代码如下: void start_server(){ // ser
从Linux源码看Socket(TCP)的listen及连接队列
从Linux源码看Socket(TCP)的listen及连接队列 前言 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情. 今天笔者就来从Linux源码的角度看下Server端的Socket在进行listen的时候到底做了哪些事情(基于Linux 3.10内核),当然由于listen的backlog参数和半连接hash表以及全连接队列都相关,在这一篇博客里也一块讲了. Server端Socket需要Listen 众所周知,一个Server端Socket的建
从Linux源码看TIME_WAIT状态的持续时间
从Linux源码看TIME_WAIT状态的持续时间 前言 笔者一直以为在Linux下TIME_WAIT状态的Socket持续状态是60s左右.线上实际却存在TIME_WAIT超过100s的Socket.由于这牵涉到最近出现的一个复杂Bug的分析.所以,笔者就去Linux源码里面,一探究竟. 首先介绍下Linux环境 TIME_WAIT这个参数通常和五元组重用扯上关系.在这里,笔者先给出机器的内核参数设置,以免和其它问题相混淆. cat /proc/sys/net/ipv4/tcp_tw_reus
从Linux源码看Socket(TCP)的accept
从Linux源码看Socket(TCP)的accept 前言 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情. 今天笔者就从Linux源码的角度看下Server端的Socket在进行Accept的时候到底做了哪些事情(基于Linux 3.10内核). 一个最简单的Server端例子 众所周知,一个Server端Socket的建立,需要socket.bind.listen.accept四个步骤. 今天,笔者就聚焦于accept. 代码如下: void st
Linux源码安装RabbitMQ高可用集群
1.环境说明 linux版本:CentOS Linux release 7.9.2009 erlang版本:erlang-24.0 rabbitmq版本:rabbitmq_server-3.9.13 2.源码安装erlang.RabbitMQ Rabbitmq采用erlang语言开发,所以在安装rabbitmq之前,需要安装erlang. 2.1 下载erlang.RabbitMQ源码包 erlang官网下载地址:http://www.erlang.org/download 选择opt_src_
热门专题
id为string findByid
php5.4支持zabbix4
Rstudio查看运行进度
c# ChromeDriver 最大化
oauth2 中resourceid使用
open cascade 动画
k8s部署python服务对外暴露
js 读取图片文件流 发送到post
kail Linux如何破解zip解压密码
mysql 事务脚本
ls是bash命令吗
sql date相减求时长
部署openfaass
python把x平均分成n
SpringContextUtil 获取其它服务bean
js ascii数组转字符串
深度学习对结构化数据编码
dota英雄shader
shell 既要返回值又要输出
BP 算法 置信传播 LDPC译码