巴特西
首页
Python
Java
PHP
IOS
Andorid
NodeJS
JavaScript
HTML5
linux内核完全注释 6.0
赵炯博士《Linux内核完全注释》
赵炯:男,1963年10月5日出生,江苏苏州人,汉族. 同济大学机械工程学院机械电子教研室副教授,从事教学和科研工作. 现在主要为硕士和博士研究生开设<计算机通信技术>.<计算机控制技术>.<现代电子学>等课程. 同时参与国家自然科学基金项目“系统芯片在线测试与容错技术研究”的工作.为国际计算机仿真协会.上海市通信学会会员. 主要研究方向为计算机网络协议分析与性能评估.操作系统体系结构和自动化系统中的智能控制技术. 至今已发表文章几十篇,出版书籍三本. 赵
读《linux内核完全注释》的FAQ
以下只是个人看了<linux内核完全注释>的一点理解,如果有错误,欢迎指正! 1 eip中保存的地址是逻辑地址.线性地址还是物理地址? 这个应该要分情况.eip保存的是下一条要执行的指令地址,也就是说cpu是根据eip到内存中去寻找指定的内容.如果cpu工作在实模式,那么eip保存的就是物理地址:如果cpu工作在保护模式下,那么cpu在去内存寻找指定的内容之前要先将eip加上当前程序代码段的基址(通过当前cs所指向的代码段描述符获得),即获得当前程序的线性地址,如果cpu没有开启分页机制,那么
linux内核参数注释与优化
目录 1.linux内核参数注释 2.两种修改内核参数方法 3.内核优化参数生产配置 参数解释由网络上收集整理,常用优化参数对比了网上多个实际应用进行表格化整理,使查看更直观. 学习linux也有不少时间了,每次优化linux内核参数时,都是在网上拷贝而使用,甚至别人没有列出来的参数就不管了,难道我就不需要了吗? 参考文章: linux内核TCP相关参数解释 http://os.chinaunix.net/a2008/0918/985/000000985483.shtml linux内核参数优化
LINUX内核完全注释
学习教材:LINUX内核完全注释,内核版本0.11,修正版V3.0 赵炯编著 参考教材:UNIX操作系统设计--M. J. Bach, programming the 80x86 --John H. Crawford MINIX操作系统的设计与实现--Andrew S.Tanenbaum --Tanenbaum 学习进度: 2013.11.28 前面的内容主要介绍,LINUX的起源和发展,这本书的独特之处,本书内容安排. 1.2 内容综述—PAGE21 本书内容安排. 2,1计算机组成原理—P
(转)linux内核参数注释与优化
linux内核参数注释与优化 原文:http://blog.51cto.com/yangrong/1321594 http://oldboy.blog.51.cto.com/2561410/1336488----CentOS(5.8/6.4)linux生产环境若干优化实战 目录 1.linux内核参数注释 2.两种修改内核参数方法 3.内核优化参数生产配置 参数解释由网络上收集整理,常用优化参数对比了网上多个实际应用进行表格化整理,使查看更直观. 学习linux也有不少时间了,每次优化linux
linux内核代码注释 赵炯 第三章引导启动程序
linux内核代码注释 第三章引导启动程序 boot目录中的三个汇编代码文件 bootsect.s和setup.s采用近似intel的汇编语法,需要8086汇编器连接器as86和ld86 head.s用GNU的汇编程序格式 并且运行在保护模式下,需要GNU的as进行编译.为AT&T语法的汇编语言程序.GNU只支持386后的cpu 不支持实模式下的程序 总体功能 pc加电->cpu进入实模式->从0xfff0开始执行程序代码(bios地址),进行系统检测,并在物理地址0处开始初
Linux内核0.11体系结构 ——《Linux内核完全注释》笔记打卡
0 总体介绍 一个完整的操作系统主要由4部分组成:硬件.操作系统内核.操作系统服务和用户应用程序,如图0.1所示.操作系统内核程序主要用于对硬件资源的抽象和访问调度. 图0.1 操作系统组成部分 内核的主要作用是为了与计算机硬件进行交互,实现对硬件部件的编程控制和接口操作,调度对硬件资源的访问,并为计算机上的用户程序提供一个高级的执行环境和对硬件的虚拟接口. 1 Linux内核模式 操作系统内核的结构模式主要可分为整体式的单内核模式和层次是的微内核模式.Linux 0.11采用了单内核模式. 如
Linux内核完全注释阅读笔记1:O(1)时间复杂度查找timeout定时器
前言 一直有Linux kernel情节,之前也一直在看Linux kernel相关的书和代码,但是每次到最后又由于兴趣转变而荒废了.这次终于静下心来想把Linux内核相关的代码好好看看,算是对自己的一个沉淀吧.由于之前工作做的是分布式调度这块的东西,也稍微有过分布式文件系统相关的实习经历,所以阅读Linux内核代码的重心可能会往调度和文件系统这两大块倾斜. 个人感觉读读Linux kernel还是蛮有必要的,其实现在各种分布式框架.各种云计算,其实很多的思想都是借鉴Linux kernel的.
C语言在linux内核中do while(0)妙用之法
为什么说do while(0) 妙?因为它的确就是妙,而且在linux内核中实现是相当的妙,我们来看看内核中的相关代码: #define db_error(fmt, ...) \ do { \ fprintf(stderr, "(error): "); \ fprintf(stderr, fmt, ##__VA_ARGS__); \ } while (0) 这只是个普通的调试信息的输出,有人便会认为,你这不是多此一举吗?去掉do while(0)不一样也实现了吗?其实不然,我们看看例子
Linux内核完全注释之编程语言和环境(一)
as86汇编器 1.来源与对于linux的用途 as86来源minix-386开发的intel 8086.80386汇编编译程序和链接程序,他主要为linux创建16位的启动引导扇区程序boot/bootsect.s和实模式下初始设置程序boot/setup.s的二进制执行代码. 2.语法 as86语法是基于minix系统的汇编 语言语法,与gnu as汇编器的语法不兼容 汇编的命令基本格式: as [option] -o objfile srcfile 3.语句 汇编语言程序srcfile是一
Linux内核完全注释之编程语言和环境(二)
c程序的编译和链接 使用gcc汇编器编译c语言程序时通常会经历四个阶段,即预处理阶段.编译阶段.汇编阶段.链接阶段,如下图. 例如: gcc -o hello hello.c 生成可执行文件hello gcc -S -o hello.s hello.c gcc -c -o hello.o hello.c 嵌入式汇编(内联汇编) 1.格式 asm("汇编语句" :输出寄存器 :输入寄存器 :会被修改的寄存器) asm是内联汇编语句的关键词:输出寄存器与输入寄存器都分别对应着一个C变量或常
linux内核完全注释之微型计算机组成结构
计算机组成原理 1.传统计算机计算机组成框图 CPU通过地址线.数据线.控制线组成的本地总线(或内部总线),与系统的其他部分进行数据通信,地址线用于提供内存或I/O设备的地址,指明所需读写数据的具体操作位置.数据线用于在CPU和内存或I/O之间的数据传输通道:控制线用于控制内存与I/O的具体读写操作 内存的大小由地址线的位数决定:如32位232字节,共4GB 下方的各种控制卡(也可成适配卡)是通过扩展插槽与系统总线进行连接,总线插槽是系统地址线.数据总线.控制总线与扩展设备控制器的标准接口.总线
Linux TCP/IP调优-Linux内核参数注释
固定文件的内核参数 下列文件所在目录: /proc/sys/net/ipv4/ 名称 默认值 建议值 描述 tcpsyn_retries 5 1 对于一个新建连接,内核要发送多少个SYN连接请求才决定放弃.不应该大于255,默认值是5,对应于180毫秒左右时间.(对于大负载而物理通信良好的网络来说,这个值偏高,可以修改为2.这个值仅仅是针对对外的连接,对进来的连接,是由tcp_retries1决定) tcp_synack_retries 5 1 对于远端的连接请求SYN,内核会发送SYN+ACK
Ubuntu 16.04升级Linux内核为4.7.0最快的方法
升级内容有很多好处,比如支持最新硬件驱动,使系统更安装等.但是升级内容也会带来一些问题,比如一些软件的兼容性问题,从而出现一些莫名其妙的问题等,所以升级时要慎重考虑. 升级方法: 下载脚本: https://software.intel.com/en-us/forums/opencl/topic/738108 使用: mv install_OCL_driver.txt install_OCL_driver.sh chmod 755 install_OCL_driver.sh sudo su ./
linux内核完全剖析——基于0.12内核-笔记(2)-统一编址和独立编址
IO是什么 ? IO(Input and Output)是输入输出接口.是CPU和其他外部设备(如串口.LCD.触摸屏.LED等)之间通信的接口.一般的,我们说的IO就是指CPU的各种内部或外部外设.对于CPU而言,CPU操作外设就是操作外设中的寄存器,为了区分外设中的寄存器,每个被操作的外设寄存器就需要一个地址. 什么是IO端口的寻址方式? CPU为了访问IO接口控制器或控制卡上的数据和状态信息,首先需要指定他们的地址.这种地址就称为I/O端口地址或者简称端口.通常,一个IO控制器包含访问数据
linux内核完全剖析——基于0.12内核-笔记(1)-CPU 数据通信
CPU数据通信总线 CPU通过地址线.数据线.控制信号组成的本地总线(或称为内部总线)与系统其它部分进行数据通信. 地址总线 地址总线用于内存或I/O设备的地址,即指明需要读/写数据的具体位置. 数据线 数据线用于CPU和内存或IO设备之间提供数据传输通道 控制线 负责指挥执行的具体读/写操作.
Linux内核完全剖析基于0.12内核
控制寄存器(CR0,CR1,CR2,CR3)用于控制和确定处理器的操作模式以及当前执行任务的特性.CR0中含有控制处理器操作模式和状态的系统控制标志,CR1保留不用,CR2含有导致页错误的线性地址,CR3含有页目录表物理内存基地址,因此该寄存器也被称为页目录基地址寄存器PDBR
Linux内核0.11代码阅读(转)
最近决定开始阅读Linux 0.11的源代码. 学习Linux操作系统的核心概念最好的方法莫过于阅读源代码.而Linux当前最新的源代码包已经有70MB左右,代码十分庞大,要想深入阅读十分困难.而Linux早期的0.11版本虽然有诸多局限,但是具备了现代操作系统的完备功能,一些基本概念沿用到了当前版本,并且代码只有300KB,非常适合阅读. 阅读源代码之前首先需要搭建实验环境,由于Linux 0.11的代码是二十年前编写的,当前版本的gcc编译器无法正常编译通过,因此需要首先将Linux 0.1
Linux内核参数配置
Linux在系统运行时修改内核参数(/proc/sys与/etc/sysctl.conf),而不需要重新引导系统,这个功能是通过/proc虚拟文件系统实现的. 在/proc/sys目录下存放着大多数的内核参数,并且设计成可以在系统运行的同时进行更改, 可以通过更改/proc/sys中内核参数对应的文件达到修改内核参数的目的(修改过后,保存配置文件就马上自动生效),不过重新启动机器后之前修改的参数值会失效,所以只能是一种临时参数变更方案.(适合调试内核参数优化值的时候使用,如果设置值有问题,重启服
linux内核书籍
1, 关于操作系统理论的最初级的知识.不需要通读并理解<操作系统概念><现代操作系统>等巨著,但总要知道分时(time-shared)和实时(real-time)的区别是什么,进程是个什么东西,CPU和系统总线.内存的关系(很粗略即可),等等. 2, 关于C语言.不需要已经很精通C语言,只要能熟练编写C程序,能看懂链表.散列表等数据结构的C实现,用过gcc编译器,就可以了.当然,如果已经精通C语言显然是大占便宜的. 3, 关于CPU的知识.这块儿可以在学习内核过程中补,但这样的话你
热门专题
Eclipse 在桌面创建快捷方式打开工作区
element ui中点击分页查询的时候页面不要向上滚
修改MySQL5.6data目录路径 启动报1067
点击 splinemesh
64位的excel 更新代码 declare
preg_replace /e漏洞
发异步,把数据提交给php
ie11离线安装需要更新解决办法
mysql 取上月第一天和最后一天
@click怎么传this
python 排列组合函数
netbsd 嵌入式 固件
Cypress获取点击结果
强化学习online offline update
minio路径不设置密码访问
vs2019静态编译
查看consule注册的服务
vescode如何使用
Stm32cube 看用了多少ram
授权登录 成功以后跳转