Linux之prink原理】的更多相关文章

我的分析是基于Linux4.15.1 1.看看kernel是如何调用到console初始化函数的: 分两条线: a.start_kernel  -->  console_init   --> call = __con_initcall_start 去调用放在__con_initcall_start和__con_initcall_end之间的所有函数,看看这个区间的有哪些函数. __con_initcall_start = .; *(.con_initcall.init) __con_initc…
本文转自http://www.yunweipai.com/archives/1969.html 支持原创.尊重原创,分享知识! 在企业及电信Linux服务器环境上,网络配置都会使用Bonding技术做网口硬件层面的冗余,防止单个网口应用的单点故障.Linux Bond的配置很简单,当下网络上也有很多资料,这里我们就不介绍了.我们在这篇文章中介绍Linux Bond的原理及其不足. 原理Linux Bond有两种典型的模式:主备,负载均衡.无论哪种模式,Bonding技术都是通过更改Linux的网…
http://www.tektea.com/archives/1969.html. 在企业及电信Linux服务器环境上,网络配置都会使用Bonding技术做网口硬件层面的冗余,防止单个网口应用的单点故障. Linux Bond的配置很简单,当下网络上也有很多资料,这里我们就不介绍了.我们在这篇文章中介绍Linux Bond的原理及其不足. 原理 Linux Bond有两种典型的模式:主备,负载均衡.无论哪种模式,Bonding技术都是通过更改Linux的网口驱动,来实现网口故障后平滑切换的. 主…
linux下的X server:linux图形界面原理   Moblin Core是在Gnome Mobile的平台上建立.我以前玩Linux,提交的都和图像没有关系,连Xwindows都不用启动,开机后直接进入文本命令行,所以这方面了解得很少,需要学习一下.   严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用 GNU工程各种工具和数据库的操作系统(也被称为GNU/Linux).基于这些组件的Linux软件被称为Li…
一.引文 前篇博文<Makefile之Linux内核模块的Makefile写法分析>,介绍了Linux编译生成内核驱动模块的Makefile的写法,但最近在DVSDK下使用Linux2.6.37生成PowerVR 2D/3D加速器的内核模块时,发现其Makefile中并未向其他内核模块Makefile指定内核模块的目标对象(obj-m:= pvrsrvkm.o),但最后却在模块目录下生成了pvrsrvkm.ko内核模块.一开始感觉非常奇怪,决定把其中的原由弄明白,并将该过程记录了下来. /**…
linux下的X server:linux图形界面原理 https://www.cnblogs.com/liangxiaofeng/p/5034912.html linux下的X server:linux图形界面原理   Moblin Core是在Gnome Mobile的平台上建立.我以前玩Linux,提交的都和图像没有关系,连Xwindows都不用启动,开机后直接进入文本命令行,所以这方面了解得很少,需要学习一下.   严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习…
***了解Linux文件删除原理先了解一下文件inode索引节点,每个文件在Linux系统里都有唯一的索引节点(身份证号) inode.如果文件存在硬链接,那这个文件和这个文件的硬链接的inode是相同的,并且可以创建许多硬链接. 参照了解inode索引节点 博客    https://www.cnblogs.com/zoulongbin/p/10456285.html [root@oldboy test]# ls -li total 0 140028 -rw-r--r-- 1 root roo…
Java网络编程和NIO详解6:Linux epoll实现原理详解 本系列文章首发于我的个人博客:https://h2pl.github.io/ 欢迎阅览我的CSDN专栏:Java网络编程和NIO https://blog.csdn.net/column/details/21963.html 部分代码会放在我的的Github:https://github.com/h2pl/ Linux epoll实现原理详解 在linux 没有实现epoll事件驱动机制之前,我们一般选择用select或者pol…
Linux内存管理原理 在用户态,内核态逻辑地址专指下文说的线性偏移前的地址Linux内核虚拟3.伙伴算法和slab分配器 16个页面RAM因为最大连续内存大小为16个页面 页面最多16个页面,所以16/2order(0)bimap有8个bit位两个页框page1 与page2组成与两个页框page3 与page4组成,这两个块之间有一个bit位 order(1)bimap有4个bit位order(2)bimap有4个bit位的2个页面分配过程 当我们需要order(1)的空闲页面块时,orde…
转载自:http://blog.csdn.net/hongjiujing/article/details/6831192 ARM Linux系统调用的原理 操作系统为在用户态运行的进程与硬件设备进行交互提供了一组接口.在应用程序和硬件之间设置一个额外层具有很多优点.首先,这使得编程更加容易,把 用户从学习硬件设备的低级编程特性中解放出来.其次,这极大地提高了系统的安全性,因为内核在试图满足某个请求之前在接口级就可以检查这种请求的正确性. 最后,更重要的是这些接口使得程序具有可移植性,因为只要内核…
Linux中LVM2原理及制作LVM2 一.LVM原理 [MD]:Multi Device 多设备 Mdadm是一个用户空间工具,是RAID的管理工具,与真正的RAID工作没有太大关系.真正的RAID集成在linux内核中 [DM]Device Mapper设备映射也是linux中一种经常使用的管理机制 DM 与MD近似,也可以提供一种逻辑设备 DM比MD的功能要强大.由于DM不只能提供MD的RAID的功能,它还是逻辑卷(LVM2)基础,同一时候,在逻辑卷的基础上我们也能实现RAID0,RAID…
linux内存管理原理深入理解段式页式 https://blog.csdn.net/h674174380/article/details/75453750 其实一直没弄明白 linux 到底是 段页式 还是仅是段式内存管理 2017-07-20 08:52:39 楼下丶小黑 阅读数 6275   前一段时间看了<深入理解Linux内核>对其中的内存管理部分花了不少时间,但是还是有很多问题不是很清楚,最近又花了一些时间复习了一下,在这里记录下自己的理解和对Linux中内存管理的一些看法和认识.…
详解Linux系统inode原理--硬链接.软链接.innodb大小和划分等 原创 波波说运维 2019-07-17 00:03:00 https://www.toutiao.com/i6713116869781357069/ 概述 Linux中,一切皆文件,而每个文件都有一个inode,在将inode关联到文件后系统将通过inode号来识别文件,而不是文件名.并且访问文件时将先找到inode,通过inode中记录的block位置找到该文件. 1 .硬链接 虽然每个文件都有一个inode,但是存…
Linux的文件种类与扩展名 一.文件种类:1.普通文件(regular file)第一个字符为[ - ]包括:①纯文本档(ASCII):这是Linux系统中最多的一种文件类型,称为纯文本档.是因为内容为我们人类可以直接读到的数据,例如数字.字母等等.②二进制文件(binary): 你的Linux中的可执行文件(scripts, 文字型批处理文件不算)就是这种格式的.③数据格式文件(data):有些程序在运作的过程当中会读取某些特定格式的档案,那些特定格式的档案可以被称为数据文件 (data f…
Linux零拷贝原理 前言 磁盘可以说是计算机系统最慢的硬件之一,读写速度相差内存 10 倍以上,所以针对优化磁盘的技术非常的多,比如零拷贝.直接 I/O.异步 I/O 等等,这些优化的目的就是为了提高系统的吞吐量. DMA技术 在没有DMA技术之前,IO过程是这样的: 可以看到,整个数据的传输过程,都要需要 CPU 亲自参与搬运数据的过程,而且这个过程,CPU 是不能做其他事情的.当我们用千兆网卡或者硬盘传输大量数据的时候,都用 CPU 来搬运的话,肯定忙不过来. DMA即直接内存访问(*Di…
本文以32位机器为准,串讲一些内存管理的知识点. 1. 虚拟地址.物理地址.逻辑地址.线性地址 虚拟地址又叫线性地址.linux没有采用分段机制,所以逻辑地址和虚拟地址(线性地址)(在用户态,内核态逻辑地址专指下文说的线性偏移前的地址)是一个概念.物理地址自不必提.内核的虚拟地址和物理地址,大部分只差一个线性偏移量.用户空间的虚拟地址和物理地址则采用了多级页表进行映射,但仍称之为线性地址. 2. DMA/HIGH_MEM/NROMAL 分区 在x86结构中,Linux内核虚拟地址空间划分0~3G…
转自:http://blog.chinaunix.net/uid-21977330-id-3754719.html 转自:http://bgutech.blog.163.com/blog/static/18261124320116181119889/1. 什么是workqueue       Linux中的Workqueue机制就是为了简化内核线程的创建.通过调用workqueue的接口就能创建内核线程.并且可以根据当前系统CPU的个 数创建线程的数量,使得线程处理的事务能够并行化.workqu…
转自:http://www.cnblogs.com/zhaoyl/p/3695517.html 本文以32位机器为准,串讲一些内存管理的知识点. 1. 虚拟地址.物理地址.逻辑地址.线性地址 虚拟地址又叫线性地址.linux没有采用分段机制,所以逻辑地址和虚拟地址(线性地址)(在用户态,内核态逻辑地址专指下文说的线性偏移前的地址)是一个概念.物理地址自不必提.内核的虚拟地址和物理地址,大部分只差一个线性偏移量.用户空间的虚拟地址和物理地址则采用了多级页表进行映射,但仍称之为线性地址. 2. DM…
ping命令的工作原理是: ping命令是用来查看网络上另一个主机系统的网络连接是否正常的一个工具. 他向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把报文原样传回给发送者,这有点像潜水艇的声纳系统中使用的发声装置. 例如,在Linux终端上执行ping localhost命令将会看到以下结果: [root@Oracle9i work]# ping localhost PING Oracle9i (127.0.0.1) 56(84) bytes of data. 64 b…
文件删除的原理 linux的文件名是存在父目录的block里面的,并指向这个文件的inode节点,这个文件的inode节点在标记指向存放这个文件的block的数据块.我们删除文件,实际上不是清除inode节点和block的数据,只是在这个文件的父目录里面的block中,删除了这个文件的名字,从而使这个文件名消失,并且无法指向这个文件的inode节点,当没有文件指向这个文件inode节点的时候,会同时释放inode节点存放这个文件的数据块,并更新inode MAP 和block MAP 今后让这些…
硬盘是计算机重要的一个部件,计算机中的数据都是保存在硬盘中,比如mysql的数据,linux系统日志及其他的应用日志,还有很多视频,音频,图片等文件都是保存在硬盘中,所以硬盘是计算机不可或缺的一个部件. 在linux优化,mysql优化都会涉及到硬盘的知识.所以了解硬盘的工作原理也是十分重要的. 硬盘的历史 从1956年9月,IBM向世界展示了第一台磁盘存储系统IBM35ORAMAC至今,磁盘存储系统已经历了近半个世纪的发展.经历了这45年,磁盘的变化可以说是非常巨大.最早的那台RAMAC容量只…
转:<http://linuxperf.com/?p=153> 一.概述 文件系统要解决的一个关键问题是怎样防止掉电或系统崩溃造成数据损坏,在此类意外事件中,导致文件系统损坏的根本原因在于写文件不是原子操作,因为写文件涉及的不仅仅是用户数据,还涉及元数据(metadata)包括 Superblock.inode bitmap.inode.data block bitmap等,所以写操作无法一步完成,如果其中任何一个步骤被打断,就会造成数据的不一致或损坏.举一个简化的例子,我们对一个文件进行写操…
shell简介 Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行. 运行背景 a 一个基本的linux系统结构 b.由上图可以看出,shell 在系统中是处于中间层次的.他为用户和kernel的交互提供了一种方式,方案. c.关于分层结构的众多优势: 1.开发人员可以只关注整个结构中的其中某一层:2.可以很容易的用新的实现来替换原有层次的实现:3.可以降低层与层之间的依赖:4.有利于标准化:5.利于各层逻辑的复用. 缺点: 1.降低了系…
一.LVM原理 [MD]:Multi Device 多设备 Mdadm是一个用户空间工具,是RAID的管理工具,与真正的RAID工作没有太大关系.真正的RAID集成在linux内核中 [DM]Device Mapper设备映射也是linux中一种常用的管理机制 DM 与MD近似,也能够提供一种逻辑设备 DM比MD的功能要强大.因为DM不仅仅能提供MD的RAID的功能,它还是逻辑卷(LVM2)基础,同时,在逻辑卷的基础上我们也能实现RAID0,RAID1.这样的功能.所有DM与MD中有某些功能是重…
本文转载自:https://blog.csdn.net/eleven_xiy/article/details/71249365 [摘要] [背景] [正文] [总结]   注意:请使用谷歌浏览器阅读(IE浏览器排版混乱)   [摘要] 本文将以jffs2文件系统的访问过程为例,从全局视角,介绍一下linux文件系统的实现机理.本文不追求细节实现,旨在通过访问过程,把文件系统的基本原理尽量全面地展现在大家面前. [背景] 1 为日后回顾方便. 2 很多朋友想了解文件系统的实现原理,但不知道如何入门…
引言:分析Android源码的过程中,要想从上至下完全明白一行代码,往往涉及app.framework.native一直到kernel,可能迷失到代码世界,明白了系统调用原理,或许能帮你峰回路转,找到进入kernel函数的入口.本文主要讲解ARM架构相关源码: /bionic/libc/kernel/uapi/asm-arm/asm/unistd.h /bionic/libc/arch-arm/syscalls/kill.S /kernel/arch/arm/kernel/calls.S /ke…
为Linux应用程序的开发人员,对Linux的进程间通信方式肯定是了如指掌,平时的开发中应该会大量的使用到.当你迅速的在键盘上按下[CTRL+C]终止掉一个正在运行中的命令时,你有没有仔细的思考过背后的原理呢?或者是他们是通过什么通信方式呢?这个通信方式是怎样实现的呢?本文就带着大家去Linux进程间通信一探究竟,找出他们的原理. 概念 我们都知道,应用程序在运行起来之后(进程),是相互独立的,都有自己的进程地址空间.但是往往在一些业务上需要进程间的通信,来完成系统的某个完整的功能.我们来看下进…
目录: 一.netfilter与iptables 二.filter.nat.mangle等规则表 三.INPUT.FORWARD等规则链和规则 四.Linux数据包路由原理 五.iptables编写规则 一.netfilter与iptables (1)Netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架,该框架既简洁又灵活,可实现安全策略应用中的许多功能,如数据包过滤.数据包处理.地址伪装.透明代理.动态网络地址转换(Network Address Transl…
目录 前言 linux中hello word原理 hello word 实战 学习参考 前言 hello word 著名演示程序,哈哈 下面在 arm linux 下展示一下hello world,便开始入门 arm linux 程序篇. 以下学习基于 NXP 的 IMX6 平台. linux中hello word原理 简要步骤 gcc 编译,编译成功后得出可执行文件 armHelloWord(该名字根据用户定义而不同) 预处理 编译 汇编 链接 链接分为两种 动态链接 静态链接 控制台运行可执…
如果某种应用并不需要在多个CPU上并行执行,那么软中断其实是没有必要的.因此诞生了弥补以上两个要求的tasklet.它具有以下特性: a)一种特定类型的tasklet只能运行在一个CPU上,不能并行,只能串行执行. b)多个不同类型的tasklet可以并行在多个CPU上. c)软中断是静态分配的,在内核编译好之后,就不能改变.但tasklet就灵活许多,可以在运行时改变(比如添加模块时). tasklet是在两种软中断类型的基础上实现的,因此如果不需要软中断的并行特性,tasklet就是最好的选…