![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 71
wfs1874
代码的世界应该是快乐的。
展开
-
Ext4文件系统架构分析
转自:https://www.cnblogs.com/alantu2018/p/8461272.html本文描述的Ext4文件系统磁盘布局和元数据的一些分析,同样适用于Ext3的和的Ext2文件系统,除了它们不支持的的Ext4的特性外,整个分析分两篇博文,分别概述布局和详细介绍各个布局的数据结构及组织寻址方式等。感兴趣的看官敬请留意和指导!1. Ext4文件系统布局综述一个的Ext4文件系统被分成...转载 2018-06-29 10:39:08 · 5885 阅读 · 0 评论 -
ext4_find_extend 解析
转载:https://www.xuebuyuan.com/1470646.html概述 在ext4文件系统中,该函数扮演了非常重要的角色,虽然其实现如此短小精悍,其主要作用是根据逻辑块号找到所在的extent,进而可以找到其物理块号,因为每个extent中的所有磁盘块在物理位置上连续的。 看看函数的定义: struct ext4_ext_path *...转载 2018-11-05 15:13:05 · 1211 阅读 · 0 评论 -
linux中fork()函数详解
fork入门知识一个进程,包含代码,数据,和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但是如果初始参数或者传入的变量不同,两个进程也可以做不同的事。一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的进程中,只有少数值与原来的进程的值不同。相当于克隆...转载 2018-11-12 16:09:33 · 408 阅读 · 0 评论 -
Linux内存管理 (透彻分析)
摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终能驾驭Linux内存管理。前言内存管理一向是所有操作系统书籍不惜笔墨重点讨论的内...转载 2018-11-18 17:03:32 · 1622 阅读 · 1 评论 -
linux 中 tar.xz 的解压命令
对于 tar.xz结尾的压缩文件,解压有两种方式:可以先将外层用xz解压方式解压,,然后里层用tar解压方式解压:$ xz -d *****.tar.xz$ tar -xvf *****.tar2.直接使用如下命令解压:$ tar xvJf ***.tar.xz...原创 2018-11-26 12:18:34 · 33726 阅读 · 1 评论 -
使用ssh以root用户直接登录
出于安全考虑,ubuntu默认不允许root远程登录解决方案:安装openssh软件sudo apt install -y openssh-server编辑SSH文件sudo nano /etc/ssh/sshd_config将PermitRootLogin 的值改为yes将PermitEmptyPasswords 的值改为no重启ssh服务services ss...转载 2019-01-24 19:23:55 · 2740 阅读 · 0 评论 -
Unable to correct problems, you have held broken packages(linux apt install 失败问题)
问题apt install libmysqlclient-devReading package lists… DoneBuilding dependency treeReading state information… DoneSome packages could not be installed. This may mean that you haverequested an im...原创 2019-02-20 21:01:16 · 2449 阅读 · 0 评论 -
Linux内核task_struct结构详解
最近被这个进程给搞蒙了,进程由内核统一调度控制,所以内核中的task_struct显得尤其重要。task_struct结构中的 char comm[TASK_COMM_LEN];成员可以获取到进程的名称。//注意 TASK_COMM_LEN 的长度是16字节 sprintf(buffer,"%s",pTaskStruct->comm);下面是对task_struct基本信息的中文释...原创 2019-03-09 20:12:37 · 2664 阅读 · 0 评论 -
Linux内核模块编程(打印所有内核线程的程序名、PID号,进程状态,及进程优先级,父进程的PID)
转自:https://blog.csdn.net/SweeNeil/article/details/876462441. 设计一个模块,要求列出系统中所有内核线程的程序名、PID 号、进程状态及进程优先级、父进程的PID。首先,我们开始编写模块代码,这是Linux内核编程的核心代码,代码如下:#include <linux/init.h>#include <linux...转载 2019-03-08 13:30:40 · 7663 阅读 · 0 评论 -
Linux 下用g++编译 thread 所线程出错
这个错误其他地方也描述有因为thread是C++11新加入的特性,所以我们在用g++编译的时候不能直接用。用g++ 编译则应该输入:g++ -std=c++11 -o client2 client_lan_tcp2.cpp -pthread...原创 2019-03-24 21:57:19 · 1070 阅读 · 0 评论 -
linux获取网卡MAC地址&&SOCK_STREAM和SOCK_DGRAM两种类型的区别
文章目录1. 获取网卡Mac地址2.SOCK_STREAM 和 SOCK_DGRAM区别1. 获取网卡Mac地址最近要用Mac地址进行唯一标识,所以,需要获取网卡的Mac地址。ifconfig -a 其中HWaddr字段就是mac地址cat /sys/class/net/eth0/address 查看eth0的mac地址cat /proc/net/arp 查看链接到本机的远端...原创 2019-03-18 14:21:42 · 741 阅读 · 0 评论 -
IPC通信之----Linux共享内存和Android共享内存总结
文章目录1. 小情景2. what is 共享内存3. Linux共享内存共享内存使用3.1 shmget函数3.2 shmat函数3.3 shmdt函数3.4 shmctl函数3.5 实践小结Android 匿名共享内存1. 小情景在Android系统中,APP端View视图的数据是如何传递SurfaceFlinger服务的呢?View绘制的数据最终是按照一帧一帧显示到屏幕的,而每一帧都会...原创 2019-03-25 16:43:08 · 1372 阅读 · 0 评论 -
Linux C语言 获取可执行文件的绝对路径、进程运行目录【cwd】
自己见过两种方法1.使用getcwd函数头文件 : #include <unistd.h>定义函数: char * getcwd(char * buf, size_t size);函数说明:getcwd()会将当前的工作目录绝对路径复制到参数buf 所指的内存空间,参数size 为buf 的空间大小Usage:char buf[240]={0};getcwd(bu...原创 2019-03-26 19:49:07 · 5363 阅读 · 0 评论 -
fork()子进程与父进程的关系(继承了什么)
之前发过一篇博客**fork函数详解**#include<stdio.h>#include<string.h>#include<stdlib.h>#include<unistd.h> void main(){ char str[6]="hello"; pid_t pid=fork(); if(pid==0...原创 2019-03-23 23:05:32 · 6562 阅读 · 0 评论 -
linux libc--stat函数详解
stat函数头文件: #include <sys/stat.h>定义函数: int stat(const char *file_name, struct stat *buf);函数说明: 通过文件名filename获取文件信息,并保存在buf所指的结构体stat中可以获取文件大小等信息返回值: 执行成功则返回0, 失败返回-1,错误代码存于errno错误代码:ENOEN...原创 2019-04-11 20:58:41 · 530 阅读 · 0 评论 -
Linux下特殊文件---/dev/null && /dev/zero详解
1.概论(维基百科解释)/dev/null : 在类Unix系统中,/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它会立即得到一个EOF。/dev/null 被称为位桶(bit bucket)或者黑洞(black hole)。空设备通常被用于丢弃不需要的输出流,或作为用于输入流的空文件。这些操作通常由重定向完成。/dev/...转载 2019-04-08 22:39:39 · 2335 阅读 · 0 评论 -
深入理解ext4 ----- extent区段
参考文档: https://blog.csdn.net/sara4321/article/details/8609610参考文档: https://blog.csdn.net/sara4321/article/details/8610135 里面详细分析了 extent 区段的知识。...原创 2018-11-05 10:20:15 · 405 阅读 · 0 评论 -
linux-dumpe2fs 命令
dumpe2fs命令用来查询文件系统状态 格式:# dumpe2fs -h /dev/sda1加 -h 表示只输出超级块信息 注: df和du用来查看文件系统大小,fsck文件系统修复, dump2fs查看文件系统状态。...原创 2018-11-05 10:12:14 · 1217 阅读 · 0 评论 -
linux内核编译总结
转自:https://blog.csdn.net/fjt19900921/article/details/8316481一、实验目的学习重新编译Linux内核,理解、掌握Linux内核和发行版本的区别。 二、实验内容在Linux操作系统环境下重新编译内核。实验主要内容:A. 查找并且下载一份内核源代码,本实验使用最新的Linux内核2.6.36。B. 配置内核。C. 编译内核和模块。D. 配置启动...转载 2018-07-01 15:07:26 · 311 阅读 · 0 评论 -
Linux 文件系统的创建与挂载方法
转自:https://blog.csdn.net/gz153016/article/details/51655994Linux的 文件系统的创建与挂载方法1 Linux 文件系统的创建Linux的 操作系统在安装服务器时,安装程序已经创建了自己的文件系统,但是在使用了一段时间后,由于用户和软件系统的增加使得磁盘空间越来越紧张,此时就需要网络管理员对原有的文件系统进行扩展。文件系统的扩展方法有两...转载 2018-07-01 18:10:26 · 809 阅读 · 0 评论 -
linux文件系统管理---分区挂载篇
转:HTTP://www.cnblogs.com/alantu2018/p/8461680.html一,系统在初始化时如何识别硬盘 1,系统初始时根据MBR的信息来识别硬盘,其中包括了一些执行文件就来载入系统,这些执行文件就是MBR里前面446bytes里的启动加载器程式,而后面的16X4的空间就是存储分区表信息的位置;如下图 2,在分区表中,主要储存了以下信息:(1)分区号,常见的分区号有以下...转载 2018-07-01 20:43:13 · 1915 阅读 · 0 评论 -
Linux 文件系统直接IO入门
转载于:https://www.ibm.com/developerworks/cn/linux/l-cn-directio/什么是缓存I/O (buffered I/O) 缓存I / O又被称为标准I / O,大多数文件系统的默认I/O操作都是缓存I/O。在Linux的缓存I/O机制中,操作系统会将I/O的数据缓存在文件系统的页缓存page cache中,也就是说,数据会先被拷贝到操作系...转载 2018-06-27 03:57:57 · 1030 阅读 · 0 评论 -
linux系统调用open七日游(一)
友情提示:您需要一个 kernel 3.15.6,下载地址:https://www.kernel.org/pub/linux/kernel/v3.0/linux-3.15.6.tar.xz 我们将以 Linux 系统调用 open 为主线,参观游览 Kernel 的文件系统,一窥 Kernel 文件系统精妙的设计和严谨的实现。因受篇幅限制,我们此次观光只涉足 Kernel 的虚拟文件系统(v...转载 2018-07-02 16:21:32 · 395 阅读 · 4 评论 -
linux 系统调用open 七日游(二)
接着昨日的旅程,我们应该开始处理具体的子路径了:【fs/namei.c】sys_open->do_sys_open->do_filp_open->path_openat->link_path_walk点击(此处)折叠或打开 ... err = walk_component(nd, &next, LOOKUP_FOLLOW); if (e...转载 2018-07-02 16:23:28 · 181 阅读 · 0 评论 -
Linux 文件系统调用open七日游(三)
接着上回,当对“.”和“..”处理完成后就直接返回进入下一个子路径循环了,但如果当前子路径不是“.”或“..”呢?【fs/namei.c】sys_open > do_sys_open > do_filp_open > path_openat > link_path_walk > walk_component点击(此处)折叠或打开 ... err = looku...转载 2018-07-02 16:24:54 · 310 阅读 · 0 评论 -
linux文件系统调用 open 七日游(四)
现在,我们的“路径行走”只剩下最后一个小问题需要处理了——符号链接。【fs/namei.c】sys_open > do_sys_open > do_filp_open > path_openat > link_path_walk点击(此处)折叠或打开 ... if (err) { err = nested_symlink(&ne...转载 2018-07-02 16:26:28 · 167 阅读 · 0 评论 -
Linux文件系统调用open 七日游 (六)
还记得在上一个场景中,build_open_flags里面有一个对标志位O_PATH的判断么?现在我们就来看看这个标志位是干啥的:【场景二】open(pathname,O_PATH) 这个O_PATH似乎是不常用的,咱们先看看它的使用说明:【open(2)】http://man7.org/linux/man-pages/man2/open.2.htmlO_PATH(自Linux 2.6.39...转载 2018-07-02 16:27:59 · 394 阅读 · 0 评论 -
Linux 系统调用 open 七日游(七)
【场景三】open(pathname, O_WRONLY | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR) 在这个场景中我们希望创建一个新文件(O_CREAT),并赋予该文件用户可读(S_IRUSR)和用户可写(S_IWUSR)的权限,然后以只写(O_WRONLY)的方式打开这个文件。O_EXCL 在这里保证该文件必须被创建,如果该文件已经存在则失败返回。 ...转载 2018-07-02 16:29:19 · 186 阅读 · 0 评论 -
Linux fsync和fdatasync系统调用实现分析(Ext4文件系统)
参考:https://blog.csdn.net/luckyapple1028/article/details/61413724在Linux系统中,对文件系统上文件的读写一般是通过页缓存(page cache)进行的(DirectIO除外),这样设计的可以延时磁盘IO的操作,从而可以减少磁盘读写的次数,提升IO性能。但是性能和可靠性在一定程度上往往是矛盾的,虽然内核中设计有一个工作队列执行赃页...转载 2018-07-21 09:06:00 · 1300 阅读 · 1 评论 -
如何在Linux 4.12内核添加系统调用
转发:http://blog.csdn.net/qq_34911465/article/details/74840024基本情况系统版本:CentOS Linux 7内核版本:linux-4.12准备操作1.下载并且解压打开文件夹2.进入文件夹后进入系统调用的入口表,这个表记录了系统调用的一些基本信息。系统调用表就是这个文件了,用如图命令打开这里是添加系统调用的格...转载 2018-08-23 16:56:19 · 99 阅读 · 0 评论 -
浅入浅出 Android 安全: Android Linux 内核层安全
转载:https://www.jianshu.com/p/ac84963b9e48 来源:Yury Zhauniarovich | Publications译者:飞龙协议:CC BY-NC-SA 4.0作为最广为人知的开源项目之一,Linux 已经被证明是一个安全,可信和稳定的软件,全世界数千人对它进行研究,攻击和打补丁。 不出所料,Linux 内核是 Androi...转载 2018-09-20 14:29:28 · 535 阅读 · 0 评论 -
Linux最大文件打开数
转载:https://www.cnblogs.com/pangguoping/p/5791432.html介绍在Linux下有时会遇到Socket/File : Can't open so many files的问题。其实Linux是有文件句柄限制的,而且Linux默认一般都是1024(阿里云主机默认是65535)。在生产环境中很容易到达这个值,因此这里就会成为系统的瓶颈。1.查看方法...转载 2018-10-19 22:24:05 · 1225 阅读 · 0 评论 -
socket中的函数遇见EINTR的处理
转载 : https://blog.csdn.net/benkaoya/article/details/17262053http://blog.chinaunix.net/uid-21501855-id-4490453.html这几天,写服务器代码过程当中,遇见EINRT信号的问题,我是借鉴 《unp 》,采用continue或者goto again循环解决的。但是感觉这个还是很有必要记录...转载 2018-10-19 23:08:25 · 241 阅读 · 0 评论 -
mmap()函数参数详解
author : wfstime : 2019.4.17功能描述mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。 munmap执行相反的操作,删除特定地址区域的对象映射。基于文件的映射,在mmap和munmap执行过程的任何时刻,被映射文件的st_atime可能被更新。在对映射区写入之...转载 2019-04-17 15:20:41 · 6434 阅读 · 0 评论