标签:Linux系统原理
Linux五种IO模型浅谈
文件描述符 我们知道Linux的内核将所有外部设备都可以看做一个文件来操作。那么我们对与外部设备的操作都可以看做对文件进行操作。我们对一个文件的读写,都通过调用内核提供的系统调用,内核给我们返回一个文件描述符(file descriptor,简称fd)。我们通过ls -l /proc/${pid}/fd/ 可以看到进程${pid}占用的所有描述符。而对一个……
HugePage是否是拯救性能的万能良药?
一、准备知识 在阅读本文之前,需要读者至少了解以下基础知识 CPU Cache的基本概念,具体可参见 关于CPU Cache – 程序猿需要知道的那些事。 NUMA的基本概念,具体可参见 NUMA架构的CPU — 你真的用好了么?。 目前Linux基于多核CPU繁忙程度的线程调度机制,参看Chip Multi Processing aware ……
通过学习Linux内存分配策略,搞明白进程OOM机制
第一章:学习Linux内存分配策略 今天想提到的是线上一个4G的RDS实例,发生了OOM(out of memory)的问题,MySQL进程被直接Kill掉了。在解释这个问题的时候,我们首先需要从Linux系统内存分配策略讲起。 一般写C语言程序,我们习惯使用malloc动态的申请内存空间(Java由JVM负责内存管理),malloc函数会向操作系统申请一段……
Linux根文件系统简单介绍
一、根文件系统 根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统,它的特殊之处在于,它是内核启动时所挂载(mount)的第一个文件系统,内核代码的映像文件保存在根文件系统中,系统引导启动程序会在根文件系统挂载之后从中把一些初始化脚本(如rcS,inittab)和服务加载到内存中去运行。我们要明白文件系……
计算机操作系统有哪些?
1)早期电脑操作系统(专利保护) TRS-DOS,ROM OS”s TI99-4 Commodore PET,64,和 VIC-20, 第一套IBM-PC 苹果电脑 Sinclair Micro和QnX等 2)非Unix商业电脑操作系统 CPM操作系统 、MP/M-80 、UCSD P-system、Mini-FLEX、SSB-DOS 、……
Linux系统原理之系统调用
系统调用 系统调用是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口获得操作系统内核提供的服务。例如,用户额可以通过文件系统相关的调用请求系统打开文件、关闭文件或读写文件;通过时钟相关的系统调用获得系统时间或设置系统时间;通过进程控制相关的系统调用来创建进程、实现进程调度、进程管理等。 操作系统的主要功能是为管理硬件资源和为应用……
Linux系统原理之整体概述
首先,要知道计算机有硬件和软件组成。硬件最核心的就是五大部件,分别是计算器、控制器、存储器、输入设备、输出设备;这也就是冯若依曼体系结构,如下图所示: 再向上就是我们的OS操作系统,但是要明白操作系统本身是不做任何有意义性的工作,这些工作都是由操作系统之上特定的应用程序来完成。 然后把它们组合到一块来看,首先就是硬件系统。在CPU中除了计算器和控制器之外,……
Linux系统启动过程详解(四)
终端类型 console:PTY物理终端是一个直接连进主机的显示和键盘 UNIX出现时,这是一个多用户、多任务的分时操作系统。当时能够运行UNIX的电脑都很贵,人们在使用的时候都是使用一个廉价的设备连接到这台电脑上共享使用的。UNIX会让使用者以为这个连接设备就是那台昂贵的电脑。这个廉价设备被称为物理终端。 tty:虚拟控制台通常是结合物理控制台通过软件模拟……
Linux系统启动过程详解之SysV init(二)
初始化kernel BIOS把路已经铺稳了,GRUB借着MBR的地儿也开始运行了,内核启动参数全都弄好了。接下来就该加载内核并初始化了。接下来就是看看内核初始化的过程了。 startup_32():内核自解压(内核是压缩的历史遗留问题)完毕之后将跳转到startup_32这个函数继续执行。这个函数式完全用汇编语言写的。内核源码中叫startup_32的函数有……
Linux系统启动过程详解(一)
Centos5.x启动过程图 Post加电自检 CPU访问BIOS程序用来检测硬件是否正常;BIOS(basic input output system)基本输入输出系统,BIOS是我们电脑最开始执行的程序。它会读取CMOS中的信息来了解硬件情况,比如CPU的总线时钟、启动设备的搜索顺序、硬盘大小与型号、系统时间、即插即用设备、各设备的I/O地址、中端请求……
Linux系统原理之线程管理
进程与线程 在现代操作系统中,进程支持多线程。进程是资源管理的最小单元;而线程是程序执行的最小单元。一个进程的组成实体可以分为两大部分:线程集合和资源集合。进程中的线程是动态的对象,代表了进程指令的执行。而资源包括地址空间、打开的文件、用户信息等等,由进程内的线程共享。线程有自己的私有数据:程序计数器,栈空间以及寄存器。 一个线程是一个单独的进程生成的一个执……
- 1
- 2