Linux_Kernel
文章平均质量分 93
阿卡基-马
业余马拉松选手
展开
-
【转】什么叫做裸设备
裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备。本文收集裸设备和Oracle问答20例。 1.什么叫做裸设备? 裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备。它由应用程序负责对它进行读写操作。不经过文件系统的缓冲。 2.如何辨别裸设备? 在Unix的/dev 目录下,有许多文件...转载 2018-06-04 12:03:35 · 2421 阅读 · 0 评论 -
/etc/passwd
root@ubuntu:/home/hzmct# cat /etc/passwdroot:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologinbin:x:2:2:bin:/bin:/usr/sbin/nologinsys:x:3:3:sys:/dev:/usr/sbin/nologinsync:x...原创 2018-07-18 08:52:07 · 8102 阅读 · 0 评论 -
【APUE】第三章 文件IO
3.17 小结 本章说明了UNIX系统提供的基本I/O函数。因为read和write都在内核执行。所以称这些函数为不带缓冲的I/O函数。在只使用read和write情况下,我们观察了不同的I/O长度对读文件所需时间的影响。我们也观察了许多将已写入的数据冲洗到磁盘上的方法,以及它们对应用程序性能的影响。 在说明多个进程对同一文件进行追加写操作以及多个进程创建同一...原创 2018-07-18 10:51:41 · 252 阅读 · 0 评论 -
inode理解
一、inode是什么? 理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个”块”(block)。这种由多个扇区组成的”块”,是文件存取的最小单位。”块”的大小,最常见的是4KB,即连续八个...转载 2018-07-20 15:27:27 · 285 阅读 · 0 评论 -
Uncompressing Linux..... done, booting the kernel
内核启动卡在Uncompressing Linux..... done, booting the kernel.这好像是个老生常谈的问题了。成因在网上也罗列了很多种,可这次我碰到的,却没百度出解决方法,纠结了我很久才解决。我先把造成Uncompressing Linux..... done, booting the kernel.的常见的几种可能再罗列一下1、机器码不匹配解决方法:在配...转载 2018-11-02 13:26:07 · 1960 阅读 · 1 评论 -
嵌套执行MAKE $(MAKE) -C subdir
subsystem: cd subdir && $(MAKE)其等价于: subsystem: $(MAKE) -C subdir这句是Makefile的规则:这里的$(MAKE)就相当于make,-C 选项的作用是指将当前工作目录转移到你所指定的位置。=============================...转载 2018-12-13 12:43:44 · 10275 阅读 · 0 评论 -
内核日志及printk结构浅析
作者:tekkamanninja 鸣谢:感谢ChinaUnix技术社区的tekkamanninja提供稿件 ,如需转载,请注明出处。 这段时间复习了一下内核调试系统,注意看了一下printk的实现以及内核日志的相关知识,这里做一下总结。 一、printk概述 对于做Linux内核开发的人来说,printk实在是再熟悉不过了。内核启动时显示的各种信息大部分都是通过她来...转载 2018-12-28 20:10:08 · 424 阅读 · 0 评论 -
linux下编译新内核,解决无法找到eth0设备问题,安装eth0网卡驱动
由于我的blktrace运行时出现问题,只能对设备测试一次,第二次的时候就会报如下错误:no such file or directorygoogle了解决方案,很多都说是内核版本的问题,简单的方法解决不了啊,测试不能不做啊,所以今天只能果断换内核版本了(不过我想说每编一次内核,都会遇到新的问题,整个人心都醉了~这次也不例外啊~编一次内核,呆了一下午机房,虽然解决问题的能力渣渣,不过不得不为...转载 2018-12-25 09:23:13 · 3259 阅读 · 0 评论 -
User space(用户空间)和 Kernel space(内核空间)
阮一峰 2017-02-06 11:26:32 浏览2620 评论0linux kernel CPU摘要: 学习 Linux 时,经常可以看到两个词:User space(用户空间)和 Kernel space(内核空间)。 简单说,Kernel space 是 Linux 内核的运行空间,User space 是用户程序的运行空间。学习 Linux 时,经常可以看到两个词:User space(...转载 2018-05-16 17:18:44 · 7661 阅读 · 0 评论 -
如何实现一个malloc
任何一个用过或学过C的人对malloc都不会陌生。大家都知道malloc可以分配一段连续的内存空间,并且在不再使用时可以通过free释放掉。但是,许多程序员对malloc背后的事情并不熟悉,许多人甚至把malloc当做操作系统所提供的系统调用或C的关键字。实际上,malloc只是C的标准库中提供的一个普通函数,而且实现malloc的基本思想并不复杂,任何一个对C和操作系统有些许了解的程序员都可以很...原创 2018-05-16 08:37:54 · 947 阅读 · 0 评论 -
linux系统/sbin/init执行过程
对于linux的启动过程,之前一直都是研究到内核运行/sbin/init,启动第一个用户进程为止,因为这部分一直都是在内核态工作,所以对于学习内核还是有帮助的,当时/sbin/init之后的过程也需要明白,今天就总结一下。 首先大体写一下内核从启动到执行/sbin/init的流程: head.S ===> start_kernel ===> rest_init ===>...转载 2018-04-21 11:13:21 · 4249 阅读 · 0 评论 -
/etc/fstab
rootfs / auto defaults 1 1proc /proc proc defaults 0 0devpts /dev/pts de...原创 2018-04-21 11:20:56 · 283 阅读 · 0 评论 -
僵尸进程的产生原因和避免方法
僵尸进程的产生:当一个进程创建了一个子进程时,他们的运行时异步的。即父进程无法预知子进程会在什么时候结束,那么如果父进程很繁忙来不及wait 子进程时,那么当子进程结束时,会不会丢失子进程的结束时的状态信息呢?处于这种考虑unix提供了一种机制可以保证只要父进程想知道子进程结束时的信息,它就可以得到。这种机制是:在每个进程退出的时候,内核释放该进程所有的资源,包括打开的文件,占用的内存。但是仍然保...转载 2018-05-14 17:30:35 · 14459 阅读 · 2 评论 -
linux page buffer cache深入理解
Page cache和buffer cache一直以来是两个比较容易混淆的概念,在我工作的这一段时间,page cache和buffer cache的概念曾经困扰过我,如果能够了解到这两个cache的本质,那么我们在分析io问题的时候可能会更加得心应手Page cache和buffer cache一直以来是两个比较容易混淆的概念,在网上也有很多人在争辩和猜想这两个cache到底有什么区别,讨论到最...转载 2018-05-25 14:02:47 · 1732 阅读 · 0 评论 -
BufferedIO和DirectIO混用导致的脏页回写问题
原创文章,转载请注明: 转载自系统技术非业余研究本文链接地址: BufferedIO和DirectIO混用导致的脏页回写问题今天曲山同学在线上问道:我测试发现,如果cp一个文件,然后direct io读这个文件,会消耗很长时间。我猜测dio不能用page cache,而这个文件cp以后都在cache里面,要强制刷到磁盘,才能读?我cp这个文件很大,超过256M由于数据文件默认是用bufferedi...转载 2018-05-25 14:18:15 · 615 阅读 · 0 评论 -
页高速缓存和页回写
由于页高速缓存的缓存作用,写操作实际上会被延迟。当页高速缓存中的数据比后台存储的数据更新时,那么该数据就被称为脏数据。在内存中积累起来的页最终必须被写回磁盘。在以下两种情况发生时,脏页被写回磁盘:1. 当空闲的内存低于一个特定的阈值时,内核必须将脏页写回磁盘,以便释放内存。2. 当脏页在内存中驻留时间超过一个特定的阈值时,内核必须将超时的脏页写回磁盘,以确保脏页不会无限期地驻留在内存。 在老...转载 2018-05-25 14:29:43 · 323 阅读 · 0 评论 -
Linux DirectIO机制分析
DirectIO是write函数的一个选项,用来确定数据内容直接写到磁盘上,而非缓存中,保证即是系统异常了,也能保证紧要数据写到磁盘上,具体写文件的机制流程可以参考前面写的<Linux内核写文件流程>,DirectIO流程也是接续着写文件流程而来的。内核走到__generic_file_aio_write函数时,系统根据file->f_flags & O_DIRECT判断...转载 2018-05-25 14:46:53 · 1422 阅读 · 1 评论 -
#cat /proc/meminfo 详解
$cat /proc/meminfoMemTotal: 2052440 kB //总内存MemFree: 50004 kB //空闲内存Buffers: 19976 kB //给文件的缓冲大小Cached: 436412 kB //高速缓冲存储器(http://baike.baidu.com/view/496990.htm)...转载 2018-05-25 16:27:32 · 30052 阅读 · 0 评论 -
Linux Malloc分析-从用户空间到内核空间
本文介绍malloc的实现及其malloc在进行堆扩展操作,并分析了虚拟地址到物理地址是如何实现映射关系。ordeder原创,原文链接: http://blog.csdn.net/ordeder/article/details/416545091背景知识1.1 进程的用户空间图1:来源 http://www.open-open.com/lib/view/open1409716051963.html...转载 2018-05-16 08:31:25 · 312 阅读 · 0 评论 -
init/main.c
static int __ref kernel_init(void *unused){ kernel_init_freeable(); /* need to finish all async __init code before freeing the memory */ async_synchronize_full(); free_initmem(); mark_rodata_ro(); sys...原创 2018-04-21 10:33:00 · 415 阅读 · 0 评论