
linux系统基础知识
西门仙忍
从事数据库领域8年
展开
-
linux singal
Linux支持POSIX标准信号和实时信号。下面给出Linux Signal的简表,详细细节可以查看man 7 signal。默认动作的含义如下Term终止进程信号 取值 默认动作 含义(发出信号的原因) SIGHUP 1 Term 终端的挂断或进程死亡 SIGINT 2 Term 来自键盘的中断信号 SIGQUIT 3 Core 来自键盘的离开信号 SIGILL 4 Core 非...转载 2020-07-26 07:10:41 · 327 阅读 · 0 评论 -
我对CPU的理解
1、地址与寻址这在之前是个非常折磨我的问题,我实在想象不出如何根据一个数字去寻找内存中相应的单元,难不成每个单元上面都贴着标签?直到我看到下面所谓的选择电路:在左边这张图中,若SEL=0,则输出F=A;反之,若SEL=1,则F=B。SEL输入的信号不就是地址吗?在这个体系中,A的地址就是0,B的地址就是1。好吧,也许一根地址线不够明显,那么再看这张图:转载 2014-12-19 23:14:39 · 641 阅读 · 0 评论 -
深入理解文件存储方式
关于文件系统,相信大家都不陌生。身为攻城狮的我们几乎天天都会与之打交道,但是细深剖一下,其中又有多少是我们理解深度不够的呢。那么让我们一起来看一下下面这一组Linux文件系统相关的问题吧:1、机械磁盘随机读写时速度非常慢,操作系统是采用什么技巧来提高随机读写的性能的?2、touch一个新的空文件占用磁盘空间吗? 占用的话占用多少?3、新建一个空目录占用磁盘空间吗转载 2014-12-21 21:12:54 · 1227 阅读 · 0 评论 -
字符编码的前世今生
由于“字符编码”这个话题牵涉到的历史久远、机构众多、专业术语较多,所以本篇文章可能会略长,为了避免内容过于枯燥,我会尽量用一种通俗易懂的语言来写这篇文章。其中本文的第一篇章会对历史中的主要字符编码进行介绍,由于篇幅较长,如果读者对此已很了解,可直接跳过进行第二章的阅读。完成本篇文章的过程中参考和阅读了大量的文章和文献,写本篇文章的目的一是让自己对“字符编码”能够做一个较深的转载 2014-12-21 21:14:49 · 507 阅读 · 0 评论 -
关于单CPU,多CPU上的原子操作
https://software.intel.com/zh-cn/blogs/2010/01/14/cpucpu/所谓原子操作,就是"不可中断的一个或一系列操作" 。硬件级的原子操作:在单处理器系统(UniProcessor)中,能够在单条指令中完成的操作都可以认为是" 原子操作",因为中断只能发生于指令之间。这也是某些CPU指令系统中引入了test_and_set、test_转载 2015-01-14 20:34:23 · 433 阅读 · 0 评论 -
direct io/buffer io
打个比方:正常情况下磁盘上有个文件,如何操作它呢?读取:硬盘->内核缓冲区->用户缓冲区 写回:用户缓冲区->内核缓冲区->硬盘 这里的内核缓冲区指的是page cache,说白了,也就是是DRAM。主要作用是它用于缓存文件内容,从而加快对磁盘上映像和数据的访问。 正常的系统调用read/write的流程是怎样的呢?转载 2014-12-11 14:36:12 · 1962 阅读 · 0 评论 -
原子性(CPU核\总线\周期\锁)
如何看Linux是多少位的CPUuname -anCPU的位宽一般是以 min{ALU位宽、通用寄存器位宽、数据总线位宽}决定的!也就是说CPU由ALU、通用寄存器、数据总线三者之中最少的位宽决定!所以CPU位宽与其寻址能力并不是挂钩的!32 位 x86 CPU 包括 8 个通用寄存器。64 位 x64 处理器有 16 个寄存器。 64 位处理器(以及为它们编写转载 2015-01-14 21:09:08 · 3865 阅读 · 0 评论 -
Linux性能指标
一、CPU1、良好状态指标CPU利用率:User Time User Time + System Time 。上下文切换:与CPU利用率相关联,如果CPU利用率状态良好,大量的上下文切换也是可以接受的。可运行队列:每个处理器的可运行队列。2、监控工具vmstat$ vmstat 1procs -----------memory---------- -转载 2015-01-02 14:56:09 · 337 阅读 · 0 评论 -
立体化监控
转载 2015-01-02 14:56:48 · 498 阅读 · 0 评论 -
使用openssl的md5库
在linux机器上,有一个命令可以计算出文件的md5值,那就是md5sum,如果没有的话,就需要安装RPM包:coreutils。现在我们使用openssl的库也可以方便的计算出文件的md5值。主要用到的函数是int MD5_Init(MD5_CTX *c);int MD5_Update(MD5_CTX *c, const void *data, size_t len);i转载 2015-03-23 11:45:51 · 409 阅读 · 0 评论 -
LINUX共享内存使用常见陷阱与分析
所谓共享内存就是使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。其他进程能把同一段共享内存段“连接到”他们自己的地址空间里去。所有进程都能访问共享内存中的地址。如果一个进程向这段共享内存写了数据,所做的改动会即时被有访问同一段共享内存的其他进程看到。共享内存的使用大大降低了在大规模数...转载 2019-09-03 15:45:21 · 184 阅读 · 0 评论 -
内存屏障
RCU(Read-Copy Update),是 Linux 中比较重要的一种同步机制。顾名思义就是“读,拷贝更新”,再直白点是“随意读,但更新数据的时候,需要先复制一份副本,在副本上完成修改,再一次性地替换旧数据”。这是 Linux 内核实现的一种针对“读多写少”的共享数据的同步机制。不同于其他的同步机制,它允许多个读者同时访问共享数据,而且读者的性能不会受影响(“随意读”),读者与写者之间也...转载 2019-09-10 09:54:43 · 181 阅读 · 0 评论 -
Linux内核——第十五章:页高速缓存
文章中,红色为不理解的问题,紫色为名词和问题标注。有问题的地方欢迎在评论中提出,以便及时改正~ 基本知识: 计算机:CPU(运算器、控制器、寄存器、髙速缓存、总线) 内存(也叫随机存储器RAM)----体积小、速度快、有电可存、无电清空转载 2014-12-17 15:52:07 · 742 阅读 · 0 评论 -
对linux的IO的再认识
http://my.oschina.net/HardySimpson/blog?catalog=186948呃,其实我对linux的IO感兴趣主要的动力是为了让zlog写日志文件更快一点。虽然zlog是个用户态的函数库,但为了提升速度,必须对linux底层的机制有一定的了解。OK,言归正传,从我的各个阶段认识层次开始说起吧。1.一开始,我对linux的IO层的认识从标准转载 2014-12-17 15:50:17 · 421 阅读 · 0 评论 -
Linux 2.6 中的页面回收与反向映射
为什么要进行页面回收操作系统管理内存中的物理页面,同时也担任着内存分配的职责。应用程序可以通过内存分配函数向操作系统申请物理页面;在使用完这些物理页面之后,应用程序可以通过相应的内存释放函数释放这些物理页面。但是,对于内存中的某些物理页面来说,页面的使用者并不会主动释放它们,如果这些物理页面一直被占用而得不到释放,那么无论计算机上可用的物理内存有多少,物理内存迟早都有被用完的时候。所以,对转载 2014-12-17 14:10:37 · 273 阅读 · 0 评论 -
Linux 容器的建立和简单管理
LXC 中文名称就是 Linux 容器工具,容器可以提供轻量级的虚拟化,以便隔离进程和资源。使用 LXC 的优点就是不需要安装太多的软件包,使用过程也不会占用太多的资源, LXC 是在 Linux 平台上基于容器的虚拟化技术的未来标准,最初的 LXC 技术是由 IBM 研发的,目前已经进入 Linux 内核主线,这意味着 LXC 技术将是目前最有竞争力的轻量级虚拟容器技术,本文将循序渐进地介绍转载 2014-11-17 10:30:00 · 991 阅读 · 0 评论 -
企业应用开源防火墙安全保障实战演练,第 1 部分: 原理及简单应用
防火墙一直是信息安全领域的标志性产品,它可以在网络层甚至是目前的应用层来对恶意流量进行封堵,从而保证企业网及其服务的安全。在开源系统领域,Netfiler/IPTables 防火墙框架比较成熟,越来越多的企业采用该框架来进行企业防护。当然,防火墙的部署和使用具有一定的技巧,比如:DMZ 的部署、IPTables 封堵规则的设定等,都需要审慎的对待,才能发挥其最大功效。作为本系列的第一篇文章,本转载 2014-11-17 10:40:57 · 1442 阅读 · 0 评论 -
企业应用开源防火墙安全保障实战演练,第 2 部分: NAT、DMZ 构建及安全部署建议
实战应用 IPTables 完成 NAT 功能NAT 简介在传统的标准的 TCP/IP 通信过程中,所有的路由器仅仅是充当一个中间人的角色,也就是通常所说的存储转发,路由器并不会对转发的数据包进行修改,更为确切的说,除了将源 MAC 地址换成自己的 MAC 地址以外,路由器不会对转发的数据包做任何修改。NAT(Network Address Translation)恰恰是出于某种特转载 2014-11-17 10:42:34 · 1313 阅读 · 0 评论 -
使用 Linux 文件恢复工具
Linux 文件恢复的原理inode 和 block首先简单介绍一下 Linux 文件系统的最基本单元:inode。inode 译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是 inode,另一部份是 block,block 是用来存储数据用的。而 inode 呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属转载 2014-11-17 10:43:45 · 555 阅读 · 0 评论 -
硬链接与软连接的区别_(转)
首先我们需要了解linux下硬链接以及软连接的基本概念.硬链接:新建的文件是已经存在的文件的一个别名,当原文件删除时,新建的文件仍然可以使用.软链接:也称为符号链接,新建的文件以“路径”的形式来表示另一个文件,和Windows的快捷方式十分相似,新建的软链接可以指向不存在的文件.下面详细介绍一下硬链接和软连接之间的区别.1.硬链接和原来的文件没有什么区别,而且共享一转载 2014-11-20 12:04:39 · 395 阅读 · 0 评论 -
字符设备和块设备的区别
设备文件分为Block Device Driver和Character Device Drive两类。Character Device Drive又被称为字符设备或裸设备raw devices; Block Device Driver通常成为块设备。而Block Device Driver是以固定大小长度来传送转移资料 ;Character Device Driver是以不定长度的字元传送资料转载 2014-11-20 20:51:58 · 391 阅读 · 0 评论 -
posix_fadvise清除缓存的误解和改进措施
在典型的IO密集型的数据库服务器如MYSQL中,会涉及到大量的文件读写,通常这些文件都是通过buffer io来使用的,以便充分利用到Linux操作系统的page cache。Buffer IO的特点是读的时候,先检查页缓存里面是否有需要的数据,如果没有就从设备读取,返回给用户的同时,加到缓存一份;写的时候,直接写到缓存去,再由后台的进程定期涮到磁盘去。这样的机制看起来非常的好,在实践中也转载 2014-11-28 11:09:47 · 1259 阅读 · 0 评论 -
Linux文件系统存储方式
文件系统作为一个系统的重要组成部分,对于每位程序员来说,都是非常重要的基础知识。与此同时,Linux和Windows上的文件系统的原理又恰恰是不一样的。Windows中采用的是FAT 表的形式,但是今天我主要的讲的是更为经典的Linux本地文件系统上的存储原理,稍稍分析一下他的结构,作为抛砖引玉。文件系统的数据块管理我们都知道,文件要被存储在磁盘中,我们都是把以数据块的概念做处理和转载 2014-12-16 11:20:58 · 517 阅读 · 0 评论 -
linux IO调度算法
IO调度器的总体目标是希望让磁头能够总是往一个方向移动,移动到底了再往反方向走,这恰恰就是现实生活中的电梯模型,所以IO调度器也被叫做电梯. (elevator)而相应的算法也就被叫做电梯算法.而Linux中IO调度的电梯算法有好几种,一个叫做as(Anticipatory),一个叫做 cfq(Complete Fairness Queueing),一个叫做deadline,还有一个叫做noop(转载 2014-12-17 15:49:32 · 357 阅读 · 0 评论 -
Linux监控命令全覆盖
1.1 top1.1.1 命令说明Top 命令能够实时监控系统的运行状态,并且可以按照cpu、内存和执行时间进行排序 1.1.2 参数说明命令行启动参数:用法: top -hv | -bcisSHM -d delay -n iterations [-u user | -U user] -p pid [,pid ...]-b :原创 2014-12-17 09:48:12 · 443 阅读 · 0 评论 -
系统调用分析
本文主要分析内存以及I/O相关的系统调用和库函数的实现原理,根据原理给出在使用过程中需要注意的问题和优化的侧重点,本文涉及到的系统调用包括readahead,pread/pwrite,read/write,mmap,readv/writev,sendfile,fsync/fdatasync/msync,shmget,malloc。 本文先简单介绍应用程序对内存的使用以及I/O系统对转载 2014-12-17 11:42:04 · 882 阅读 · 0 评论 -
Linux 容器的资源管理
XC 就是 Linux 容器工具,容器可以提供轻量级的虚拟化,以便隔离进程和资源,使用 LXC 的优点就是不需要安装太多的软件包,使用过程也不会占用太多的资源。LXC 是在 Linux 平台上基于容器的虚拟化技术的未来标准,最初的 LXC 技术是由 IBM 研发的,目前已经进入 Linux 内核,这意味着 LXC 技术将是目前最有竞争力的轻量级虚拟容器技术。本文将循序渐进地介绍在 Linux转载 2014-11-17 10:28:59 · 811 阅读 · 0 评论