今天为了深入研究内核代码,正好看到了一篇介绍__attribute__和compiler.h的文章,感觉不错在看这篇文章的同时顺便用了下pvtrace和Graphviz,pvtrace和Graphviz可以实现对linux下C程序的函数调用跟踪,并自动画出调用流程图(神器啊),操作也很简单-------------------------------------------------------            
                
         
            
            
            
            Linux中的地址空间(address_space)是一项非常重要的概念,特别是在内核开发中。在Linux内核中,每个进程都有自己独立的地址空间,其中包含了进程的代码、数据、堆栈等。这些地址空间在物理内存中被映射为一组页框,并被操作系统管理。
在Linux内核中,地址空间通过 struct address_space 结构表示。每个内存映射都有一个相应的地址空间结构,其中包含了与该内存映射相关的            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-04-19 11:05:28
                            
                                150阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1.什么是address_space
文件管理的核心数据结构,定义在struct inode中,作为纽带,将磁盘上的文件inode与内存中的缓存页struct page以及映射此文件的虚拟内存区域vmp关联起来。
struct inode {
	umode_t			i_mode;
	unsigned short		i_opflags;
	kuid_t			i_uid;
	kgid_t			i_gi            
                
         
            
            
            
            address_space 从哪里来这两天想弄清楚linux的内存分配,忽然看到了address_space,就想弄明白。整个内核就见到 address_space(1)和address_space(2)在这个文件里出现。include/linux/compiler.h: # define __us...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2015-09-04 01:38:00
                            
                                158阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            缓存swap cache(2) 如果page->mapping不等于0,但第            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2022-12-11 17:41:39
                            
                                322阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Read More            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2012-02-15 14:46:00
                            
                                131阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # 无法为Java堆保留地址空间的解决方法
在使用Java开发应用程序时,有时会遇到“Failed to reserve address space for Java heap”这样的错误信息。这个错误通常是由于Java虚拟机试图为Java堆保留的地址空间不足而导致的。在本文中,我们将探讨这个问题的原因,以及一些解决方法。
## 问题原因
Java堆是Java虚拟机中用于存储对象实例的内存区            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-05-23 03:20:17
                            
                                109阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Realizing 4 GB of Address Space NOte: every process has its own page directory. Translating a virtual address from page directory to page frame is similar to            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2007-12-29 10:10:00
                            
                                92阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
             Every process is given its very own virtual address space. For 32-bit processes, this address space is 4 GB because a 32-bit pointer can have any value from 0x00000000 through 0xFFFFFFFF. This r            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                            精选
                                                        
                            2011-04-01 14:08:12
                            
                                1061阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            在docker中创建networks的时候有时候会报ERROR: Pool overlaps with other one on this address space的错误,这            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-06-06 17:49:17
                            
                                656阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            DockerContainer下gdb无法正常工作的解决办法昨天想在Mac上使用gdb调试一个Linux下编译的动态链接库, 以正常选项启动一个docker container, 运行gdb却发现如下错误提示.warning: Error disabling address space randomization: Operation not permitted
Cannot create pro            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-05-31 11:15:08
                            
                                747阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            百度查询,说是docker容器构建问题,需要加参数重新创建容器,确实,我的程序是在docker中运行的,同时            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-06-06 11:53:54
                            
                                73阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            The 32-bit ARM CPU can address up to 2^32 = 4GB address*. It's not b            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2017-04-28 21:55:00
                            
                                546阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            ://thinkiii.blogspot.jp/2014/02/arm-linux-kernel-virtual-address-space.html ARM Linux kernel virtual address space Now let's talk about the Li            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2017-04-28 21:52:00
                            
                                992阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
                大约有3个多月没有写过任何前端代码了,最近被安排的一个task是在docker下搭建Redis Cluster,且能从外部访问到。一开始使用Docker Hub上现成的docker image,再写个docker-compose.yml轻松就能搭建一个可以内部通讯的Redis Cluster。但是当用Java写了一个Client从外部访问的时候,一直提示Cannot c            
                
         
            
            
            
             Kernel Address Space   阅读了官网里lab2 part3内核地址空间的部分内容,发现自己搞混了内核地址空间和内核。我的理解是从0x00100000开始载入的内核指的是内核代码相关的部分,是物理空间。内核地址空间是虚拟地址空间,内核和用户进程只能访问各自的地址空间。   有关于内核地址空间和用户进程空间的划分可以见下图。内核地            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-17 13:52:42
                            
                                27阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            遇到个奇怪的问题,一开fiddler网站的某些请求就报跨域错误,查看控制台报错如标题,原来是chrome在阻拦。chrome://flags/#block            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-09-08 14:29:53
                            
                                2680阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            解决方法:http://zhidao.baidu.com/link?url=DWTVVdALVqPtUt0sWPURD6c1eEppyu9CXocLTeRZlZlhwHOA1P1xdesqmUQNwcNrbqJTVN2rpieEWWBhwxULT_            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2015-04-16 22:40:00
                            
                                600阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            ASLR: Address space layout randomization:地址空间布局随机化,是参与保护缓冲区溢出问题的一个计算机安全技术。是为了防止攻击者在内存中能够可靠地对跳转到特定利用函数。ASLR包括随机排列程序的关键数据区域的位置,包括可执行的部分、堆、栈及共享库的位置。历史:在1            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2017-12-05 16:57:00
                            
                                320阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            IP Address在网络中,通信节点都需要一个IP地址以点分十进制表示,有32位二进制构成(大约43亿) 分为两个部分:网络位和主机位网络位:代表IP地址所属的网段 主机位:代表网点上的某个节点由子网掩码决定"分界点"IP地址分类:IP地址分为A,B,C,D,E五类地址 能够被主机使用的地址:A,B,C(单播地址) 只能用作目的的地址:D(组播地址)特殊用途的地址 0.0.0.0:任意地址,用于            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-07 15:31:54
                            
                                123阅读
                            
                                                                             
                 
                
                                
                    