Welcome 微信登录

首页 / 操作系统 / Linux

Java教程:JVM启动参数

Java教程:JVM启动参数

java启动参数共分为三类;其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用;标准参数中比较有用的:verbose -verbose:class 输出jvm载入类的相关信息,当jvm报告说找不到类或者类冲突时可此进行诊断...
Java -verbose命令

Java -verbose命令

java -verbose[:class|gc|jni] 在输出设备上显示虚拟机运行信息。1.java -verbose:class在程序运行的时候究竟会有多少类被加载呢,一个简单程序会加载上百个类的!你可以用verbose:class来监视,在命令行输入java -verbose:class XXX (XXX为程序名)你会在控制台看到加载的类的情况。verbose和verbose:class含义相同,输出虚拟机装入的类的信息,显示的信息格式如下: [Lo...
在Android的源码中添加LOG

在Android的源码中添加LOG

想在Opencore代码中添加打印信息,但是使用OpenCore自带的PVLOGGER,有一定的局限,因为只能在创建对象调用相应的ThreadLogon()后才能使用。所以不能实现在任何函数中添加。于是通过添加Log.h的方法来添加。首先转下别人的经验我试了下还是出先undefined reference to `__Android_log_write"错误1:在编译so文件的c或cpp文件之前中加入以下代码,就可以在android中的log显示日志内容 ...
Linux 2.6.32的内核栈和用户空间栈关系

Linux 2.6.32的内核栈和用户空间栈关系

1.进程的堆栈内核在创建进程的时候,在创建task_struct的同事,会为进程创建相应的堆栈。每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈;当进程在内核空间时,cpu堆栈指针寄存器里面的内容是内核栈空间地址,使用内核栈。2.进程用户栈和内核栈的切换当进程因为中断或者系统调用而陷入内核态之行时,进程所使用的堆栈也要从用户栈转到内核栈。进程陷入内核...
Linux编译链接问题----静态库和动态库

Linux编译链接问题----静态库和动态库

1. Linux静态库和动态库的命名规则:静态函数库:静态库的名字一般是libxxx.a,利用静态库编译生成的文件比较大,因为整个静态库所有的数据都会被整合进目标代码中。a) 优点:编译后,可执行文件不需要外部支持;b) 缺点:生成的可执行程序大;静态库改变了,就需要重新编译可执行程序。动态函数库:动态库的名字一般是libxxx.so,相对于静态库,动态函数库在编译的时候并没有被编译进目标代码中,你的程序执行到相关函数时才调用函数库里面相应的函数,因此使用...
Linux 2.6 内核软中断(softirq)执行分析

Linux 2.6 内核软中断(softirq)执行分析

今天无意中看了眼 Linux 2.6 内核的软中断实现,发现和以前我看到的大不相同(以前也是走马观花,不大仔细),能说改动非常大。连 softirq 的调用点都不相同了,以前是三个调用点,今天搜索了一下原始码,发目前多出了ksoftirqd 这个东西后,softirq 在系统中的调用点仅是在 ISR 返回时和使用了 local_bh_enable() 函数后被调用了。网卡部分的显示调用,我觉得应该不算是系统中的调用点。ksoftirqd 返回去调用 do_...
Linux进程控制--STRACE:追踪信号和系统调用

Linux进程控制--STRACE:追踪信号和系统调用

在传统的UNIX系统上,判断一个进程实际正在做什么相当困难,用户只有根据从文件系统以及ps这样的工具取得的间接数据和经验来推测,而在Linux中,用户可以通过strace命令直接观察一个进程,进程的每一次系统调用,每接收到一个信号,这个命令都能显示出来。用户还可以把strace附在一个正在执行的进程上,监视一会儿该进程,再从进程上脱离,整个过程都不会影响那个进程。[root@www.linuxidc.com ~]# strace topexecve("/u...
Linux驱动工程师成长之路

Linux驱动工程师成长之路

本人此刻还不是什么驱动工程师,连入门都谈不上,但我坚信在未来的3-5年我肯定能成为我想像中的人,因为我马上就要进入这一行工作了。写下这个日志来记录我是怎么最后成为我想像中的人才的,呵呵。《Linux驱动工程师》这个东西是我在大二的时候看到有一篇讲如何学习嵌入式的,点击这里下载PDF,里面讲到嵌入式分为四层:硬件,驱动,系统,应用程序;还说linux驱动最难然后工资也最高就冲着他这句话我就决定我大学毕业的时候要去做这个linux驱动工程师,随后我就先后买了5...
Linux平台创建多个进程的方法

Linux平台创建多个进程的方法

自己第一次写创建多个进程的程序时不加思索地用循环,类似如下,for(i=0; i<3; i++){pid =fork();if(pid==0){child_process();}}结果运行之后的结果很奇怪,因为父进程创建出来的子进程又会创建子进程,所以像一棵树一样创建下去,而不是所有子进程皆以主进程为父亲!正确的方法应该是像引文中一样,如下;法一#include<stdio.h> #include<stdlib.h> #inc...
mini6410 矩阵键盘接口驱动移植

mini6410 矩阵键盘接口驱动移植

做了矩阵键盘驱动移植,虽然步骤简单还是来记录下,顺便整理下思路。贵人多忘事 虽然咱不是贵人也记性不好啊水平有限,此文档只供自己参考,但也欢迎扔砖。2.6.38 中6410键盘接口驱动对应的是 samsung-keypad.c位于driver/input/keyboard目录。另外 Dev-key.c 定义了keypad设备 samsung_device_keypad,及resource samsung_keypad_resources。除此之外还有系统板文...
Linux 驱动开发问题及解答

Linux 驱动开发问题及解答

设备文件不能正常打开动态加载模块后#insmod hello.ko然后用应用程序open时open erro ,the erro num is -1 然后到/dev 目录下确实没有找到安装的目录。查找原因,因为动态加载模块时还需要手动添加设备节点 mknod /dev/hello c 205 0hello 要和驱动里设备名一致 c 字符设备205 主设备号0 次设备号 然后就可以打开,需要root 权限删除自己创建的设备节点和删除普通文件相同 rm /de...
编译Android源代码流程及Linux环境变量设置

编译Android源代码流程及Linux环境变量设置

本文假定已经获得Android系统源码。 http://www.linuxidc.com/Linux/2011-04/34072.htm1 首先要学会如何设置android编译环境变量android的编译源码需要使用root权限,因此用su获取root权限后,在源码的根目录依次执行命令:source build/envsetup.sh之后就可以输入help查看可以使用的编译命令了,此时可以交互一下,输入tapas依次根据需要选择即可第一步,选择目标设备: ...
C++:Eclipse 开发C++环境配置(保你编译成功)

C++:Eclipse 开发C++环境配置(保你编译成功)

eclipse是java代言人,linux上的gcc是c++代言人啊,在windows上用eclipse开发c++真是有点牵强,不过比起臃肿的visual studio 20**,还是eclipse比较清爽。总结一下吧。环境:windows xp, eclipse(eclipse-cpp-helios-SR2-win32,什么版本无所谓,一定要集成了cdt的,纯净版的eclipse请搜索如何暗转cdt插件),wingw安装包。问题:eclipse有什么要求...
<< 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 >>