Linux
Watson2016
游戏,c++,机器视觉,嵌入式,后台开发
展开
-
Linux下(8086)寄存器详解
开始读Linux内核相关书籍时,我却越来越觉得为了搞清楚Linux内核相关设计和运行原理,自己那点自学来的汇编知识不但不够,还大大的需要补充。本文是我今日对微处理器寄存器学习总结所得,主要是翻译自《Intel 微处理器英文第7版》,阅读的过程中我参考了网上可以下载到的该书第六版的中文版和一篇关于寄存器在Visual Stdio 编译器中惯用方法的文章《汇编-32位寄存器的功能及其使用之整理篇》一文原创 2016-08-16 15:25:35 · 2192 阅读 · 0 评论 -
查找某目录下占用空间最大的10个文件
目前没有单个命令来完成查找的工作,通常可以使用一些命令的组合来帮助您找出磁盘上比较占用空间的文件或者文件夹。主要用到下面的三个命令: du : 计算出单个文件或者文件夹的磁盘空间占用.sort : 对文件行或者标准输出行记录排序后输出.head : 输出文件内容的前面部分. 用下面的命令组合就可以完成上述查找工作: # du -a /var原创 2017-05-03 22:06:08 · 6720 阅读 · 0 评论 -
linux启动流程
[正文开始]启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。启动第二步--读取MBR众所周知,硬盘上第0磁道第一个转载 2017-03-26 22:18:40 · 296 阅读 · 0 评论 -
linux试题汇总
转载:http://linuxgirl.blog.51cto.com/1910230/378876 一.填空题:1. 在Linux系统中,以 文件 方式访问设备 。2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。3. Linux文件系统中每个文件用 i节点 来标识。4. 全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i节转载 2017-04-04 16:26:07 · 2037 阅读 · 0 评论 -
linux内存寻址
计算机内存寻址计算机管理内存的基本方式有两种:段式管理和页式管理。而在使用80x86微处理器时,内存地址分为三个不同的地址:逻辑地址,线性地址,物理地址。他们之间有什么关系,内存是如何寻址,本文主要介绍的就是内存寻址。1、基本概念:cpu段式管理:段式管理的基本原理是指把一个程序分成若干个段(segment)进行存储,每个段都是一个逻辑实体(logical entity)。一个转载 2017-03-26 16:24:17 · 423 阅读 · 0 评论 -
计算机内存地址对齐与类大小
计算机内存中的对齐一、什么是对齐,以及为什么要对齐⒈现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。⒉对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些原创 2017-03-29 22:33:02 · 898 阅读 · 0 评论 -
伙伴系统和slab缓存详解
本节,我将介绍linux系统物理内存分配时所用到的技术——伙伴系统和slab缓存。知识背景1. DMA/HIGH_MEM/NROMAL 分区在x86结构中,Linux内核虚拟地址空间划分0~3G为用户空间,3~4G为内核空间(注意,内核可以使用的线性地址只有1G)。内核虚拟空间(3G~4G)又划分为三种类型的区:ZONE_DMA 3G之后起始的16MBZONE_NO原创 2017-03-28 16:39:51 · 2011 阅读 · 0 评论 -
内存分配函数介绍
brk和sbrk主要的工作是实现虚拟内存到内存的映射.在GNUC中,内存分配是这样的: 每个进程可访问的虚拟内存空间为3G,但在程序编译时,不可能也没必要为程序分配这么大的空间,只分配并不大的数据段空间,程序中动态分配的空间就是从这一块分配的。如果这块空间不够,malloc函数族(realloc,calloc等)就调用sbrk函数将数据段的下界移动,sbrk函数在内核的管理下将虚拟转载 2017-03-27 22:15:03 · 1002 阅读 · 0 评论 -
内存管理实质
1. 内核初始化: * 内核建立好内核页目录页表数据库,假设物理内存大小为len,则建立了[3G--3G+len]::[0--len]这样的虚地址vaddr和物理地址paddr的线性对应关系; * 内核建立一个page数组,page数组和物理页面系列完全是线性对应,page用来管理该物理页面状态,每个物理页面的虚地址保存在page->virtual中; * 内核建转载 2017-03-27 22:29:50 · 253 阅读 · 0 评论 -
进程切换、创建与退出流程详解
1、执行进程切换从本质上说,每个进程切换由两步组成:发生在schedule()函数切换页全局录以安装一个新的地址空间;切换内核态堆栈和硬件上下文,因为硬件上下文提供了内核执行新进程所需要的所有信息,包含CPU寄存器。进程切换的第二节由switch_to宏执行。2、进程的创建传统的Unix操作系统以统一的方式对待原创 2017-03-26 21:48:06 · 1675 阅读 · 0 评论 -
进程调度算法
Linux进程调度的目标: 1.高效性:高效意味着在相同的时间下要完成更多的任务。调度程序会被频繁的执行,所以调度程序要尽可能的高效; 2.加强交互性能:在系统相当的负载下,也要保证系统的响应时间; 3.保证公平和避免饥渴; 4.SMP调度:调度程序必须支持多处理系统; 5.软实时调度:系统必须有效的调用实时进程,但不保证一定满原创 2017-03-27 16:31:11 · 311 阅读 · 0 评论 -
/bin,/sbin,/usr/sbin,/usr/bin 区别
/bin,/sbin,/usr/sbin,/usr/bin 目录 这些目录都是存放命令的,首先区别下/sbin和/bin: 从命令功能来看,/sbin 下的命令属于基本的系统命令,如shutdown,reboot,用于启动系统,修复系统,/bin下存放一些普通的基本命令,如ls,chmod等,这些命令在Linux系统里的配置文件脚本里经常用到。 从用户权限的转载 2016-11-11 18:34:57 · 448 阅读 · 0 评论 -
十问 Linux 虚拟内存管理 (glibc) (二)
十问 Linux 虚拟内存管理 (glibc) (二)陈福荣 标签: Linux2016-11-02 10:12:42 1203接上篇:十问 Linux 虚拟内存管理 (glibc) (一)五.free 的内存真的释放了吗(还给 OS ) ?前面所有例子都有一个很严重的问题,就是分配的内存都没有释放,即导致内存泄露。原则上所有 mal转载 2016-11-07 20:04:04 · 408 阅读 · 0 评论 -
十问 Linux 虚拟内存管理 (glibc) (一)
十问 Linux 虚拟内存管理 (glibc) (一)陈福荣 标签: Linux2016-11-02 10:02:30 1411最近在做 MySQL 版本升级时( 5.1->5.5 ) , 发现了 mysqld 疑似“内存泄露”现象,但通过 valgrind 等工具检测后,并没发现类似的问题。因此,需要深入学习 Linux 的虚拟内存管理方面的内容来解释这个现象。转载 2016-11-07 20:02:18 · 548 阅读 · 0 评论 -
linux系统调用、库函数和内核函数关系与区别
看系统调用,还有库函数,以前一直不明白,总是以为 系统调用跟库函数是一样的,但是今天才知道是不一样的。库函数也就是我们通常所说的应用编程接口API,它其实就是一个函数定义,比如常见read()、write()等函数说明了如何获得一个给定的服务,但是系统调用是通过软中断向内核发出一个明确的请求,再者系统调用是在内核完成的,而用户态的函数是在函数库完成的。系统调用发生在内核空间,因此如原创 2016-08-25 10:33:17 · 1987 阅读 · 0 评论 -
linux sed命令详解
简介sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。转载 2016-08-30 15:46:22 · 254 阅读 · 0 评论 -
Linux驱动静态加载和动态加载详解
说明:这是我最近给单位写的一篇文档,没有什么复杂的东东,对刚接触linuxdriver的朋友或许有点帮助。文档本来是针对我们自己的产品的,有些地方(路径、mknod、动态分配主设备号等)本来应该改改,因为懒惰也没去改。在LINUX下加载驱动程序可以采用动态和静态两种方式。静态加载就是把驱动程序直接编译到内核里,系统启动后可以直接调用。静态加载的缺点是调试起来比较麻烦,每次修改一个地方都要重转载 2016-08-08 20:06:09 · 9950 阅读 · 1 评论 -
Linux内核面试问题汇总
1) Linux中主要有哪几种内核锁?Linux的同步机制从2.0到2.6以来不断发展完善。从最初的原子操作,到后来的信号量,从大内核锁到今天的自旋锁。这些同步机制的发展伴随Linux从单处理器到对称多处理器的过渡;伴随着从非抢占内核到抢占内核的过度。Linux的锁机制越来越有效,也越来越复杂。Linux的内核锁主要是自旋锁和信号量。自旋锁最多只能被一个可执行线程持有,如果一个原创 2016-08-08 19:56:20 · 4764 阅读 · 0 评论 -
linux中如何写一个运行在终端里私人的英语字典(翻译)
首先给大家介绍一个翻译的网站,我经常使用的,海词词典(http://dict.cn/ ),接下来我就使用海词词典来进行脚本的编写,编写脚本的方法有很多,可以用shell,python,这里我使用shell来进行编写,python的源代码我也会提供出来,供大家选择修改。首先大家可以看一下效果:1.那么我是如何实现的呢,看一下源代码:(是不是感觉源代码非常简单)这里有一个curl,我们可以原创 2016-08-30 17:00:48 · 1531 阅读 · 0 评论