1.基本概念         散列表(Hash  table.也叫哈希表).是依据关键码值(Key  value)而直接进行訪问的数据结构. 也就是说,它通过把关键码值映射到表中一个位置来訪问记录.以加快查找的速度. 这个映射函数叫做散列函数.存放记录的数组叫做散列表. 2. 经常使用的构造散列函数的方法         散列函数能使对一个数据序列的訪问过程更加迅速有效.通过散列函数.数据元素将被更快地定位.散列表的经常使用构造方法有:   (1)直接定址法   (2)数字分析法   (3)平方…
1.Linux Kernel Kconfig系统的基本结构 Linux内核的配置系统由三个部分组成,分别是: 1>.Makefile:分布在 Linux 内核源代码根目录及各层目录中,定义 Linux 内核的编译规则: 2>.Kconfig:分布在 Linux 内核源代码根目录及各层目录中,给用户提供配置选择的功能: 3>..config:保存了配置选项结果: 4>.配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和配置用户界面(提供基于字符界面.基于 Ncurs…
linux调度器的一般原理请参阅<linux进程调度浅析>.之前的调度器cfs之前的linux调度器一般使用用户设定的静态优先级,加上对于进程交互性的判断来生成动态优先级,再根据动态优先级决定进程被调度的顺序,以及调度后可以运行的时间片.反过来,随着进程的运行,内核可能发现其交互性发生改变,从而调整其动态优先级(奖励睡眠多的交互式进程.惩罚睡眠少的批处理进程).cfs原理cfs定义了一种新的模型,它给cfs_rq(cfs的run queue)中的每一个进程安排一个虚拟时钟,vruntime.如…
10月28日,新浪科技发表文章,题为"国产操作系统迎来利好:部委机构正大量採购",读后有感. 如今,国家进入法制时代.政府採购"国产操作系统",似乎成为一种"风气".可是,我们大家知道,"软件产品"须要花钱採购的,必然归属于私有软件. 纵观"国内操作系统",它们都是Linux内核的衍生物.可是,国产操作系统厂商为什么都不敢说出"基于Linux"的事实?这不是诚实经营的行为,会把政府拖入&…
前言 本人再看深入理解Linux内核的时候发现比较难懂,看了Linux系统编程一说后,觉得Linux系统编程还是简单易懂些,并且两本书都是讲Linux比较底层的东西,只不过侧重点不同,本文就以Linux系统编程为例并且会穿插一些深入理解Linux内核的内容来写. 1 入门与基本概念 本书的背景 Linux内核3.9,gcc编译器4.8,C库2.17 文件和文件系统 文件必须打开才能访问 同一个文件可以由多个进程或者同一个进程多次打开.系统会为每个打开的文件实例提供唯一描述符.进程可以共享文件描述…
全局描述符表GDT(Global Descriptor Table): (1)在整个系统中,全局描述符表(注意这里是表,表只有一张)GDT只有一张(一个处理器对应一个GDT). (2)GDT可以被放在内存的任何位置,但CPU必须知道GDT的入口,也就是基地址放在哪里,Intel的设计者门提供了一个寄存器GDTR用来存放GDT的入口地址,程序员将GDT设定在内存中某个位置之后,可以通过LGDT指令将GDT的入口地址装入此积存器,从此以后,CPU就根据此寄存器中的内容作为GDT的入口来访问GDT了.…
本文參考了例如以下文章 深入理解linux启动过程 mbr (主引导记录(Master Boot Record)) 电脑从开机加电到操作系统main函数之前执行的过程 详细解释linux系统的启动过程及系统初始化 linux系统的启动流程 关于linux系统的启动流程我们能够按步进行划分为例如以下: BIOS POST自检 BIOS(Boot Sequence) 引导操作系统 载入对应引导上的MBR(bootloader) 主引导设置载入其BootLoader 载入操作系统 启动BIOS,准备实…
Linux内核源代码获取方法 什么叫Linux 什么叫Linux内核 Linux内核源代码的获取 什么叫Linux? Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支持32位和64位硬件.Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统.Linux最早是由芬兰黑客 Linus Torvalds为尝试在英特尔x86架构上提…
内核是提供硬件抽象层.磁盘及文件系统控制.多任务等功能的系统软件.一个内核不是一套完整的操作系统.一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux.Linux内核的主要模块(或组件)分以下几个部分:存储管理.CPU和进程管理.文件系统.设备管理和驱动.网络通信,以及系统的初始化(引导).系统调用等.                                                        人们不能直接控制汽车发动机,那么架设在底层之上会有点火…
Linux内核与根文件系统的关系开篇题外话:对于Linux初学者来说,这是一个很纠结的问题,但这也是一个很关键的问题!一语破天机: “尽管内核是 Linux 的核心,但文件却是用户与操作系统交互所采用的主要工具.这对 Linux 来说尤其如此,这是因为在 UNIX 传统中,它使用文件 I/O 机制管理硬件设备和数据文件.” 一.什么是文件系统文件系统指文件存在的物理空间,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构.Linux文件系统中的文件是数据的集合,文件系统不仅包含着文…