
linux
aganlengzi
无无
展开
-
Linux中重定向输出的学习
学习视频笔记在这里,重定向可以做如下理解:原来的输出方式好比是向一个水池(屏幕)中放水的水龙头,水就是要输出的内容当把水龙头转接到不是水池的桶(文件)中时,就是重定向输出了。linux中的输出方式主要有:标准输出的两种方式:STDOUT 标准输出STDERR 标准错误屏幕的输出可以被重定向,使得原来应该输出到屏幕上的内容被重定向到其他的地方,比如说是原创 2014-03-03 19:56:24 · 1764 阅读 · 0 评论 -
xxx is not in the sudoers file 和 Authority XXX 不能sudo解决方法
当这个用户想要用到root权限来进行相关操作的时候(执行sudo)系统显示: XXX is not in the sudoers file. This incident will be reported.su - 也是不行的,提示的是:Authority XXX(具体忘了)想要获得root权限------>需要用root权限修改相应文件---------->想要获得root权限------->需要用root权限修改相应文件原创 2014-11-17 08:49:28 · 959 阅读 · 0 评论 -
skyeye安装+arm-elf-gdb安装+模拟s3c44b0x+运行ucos4skyeye
本文利用在ubuntu12.04虚拟机上安装skyeye-1.2.6和arm-elf-gdb并成功运行ucos4skyeye/samples/ucos_test例子skyeye-testsuite/uCLinux/s3c44box中的例子原创 2014-11-03 20:49:05 · 2128 阅读 · 0 评论 -
Linux内核源码学习之 内核页表打印
本学期Linux内核实验最后是打印内核页表,线性地址----物理地址我看到这个实验题目的时候想到的就是这个init函数(因为这部分当时就是我讲的^_^),这个函数是初始化linux内核页表的,也就是将32位系统中3G以上的896M线性地址映射到物理地址的0-896M,在其调用者paging_init函数中还处理了其他的情况,比如固定映射之类的。那属于高端内存映射那一块的内容,目前我们先看一下如原创 2014-12-25 12:37:05 · 1683 阅读 · 0 评论 -
Linux内核源码学习之 slab 分配器剖析
全文转自:https://www.ibm.com/developerworks/cn/linux/l-linux-slab-allocator/动态内存管理内存管理的目标是提供一种方法,为实现各种目的而在各个用户之间实现内存共享。内存管理方法应该实现以下两个功能:最小化管理内存所需的时间最大化用于一般应用的可用内存(最小化管理开销)内存管理实际上是一种关转载 2014-12-09 10:13:46 · 821 阅读 · 0 评论 -
Linux进程的栈和进程中函数的栈帧及其结构
Linux进程的栈和进程中函数的栈帧及其结构主要理解了Linux进程的栈和函数的栈帧的区别和联系1)如何从调用者进入被调者?call2)如何从被调者返回调用者?ret3)调用者如何支配被调者(被调函数参数传递)?参数4)被调者的价值如何体现(返回值的传递)?寄存器eax、edx原创 2015-03-05 23:21:14 · 1528 阅读 · 0 评论 -
linux平台LD_PRELOAD及其机制的一种技术
在Unix操作系统的动态链接库的世界中,LD_PRELOAD就是这样一个环境变量,它可以影响程序的运行时的链接(Runtime linker),它允许你定义在程序运行前优先加载的动态链接库。这个功能主要就是用来有选择性的载入Unix操作系统不同动态链接库中的相同函数。通过这个环境变量,我们可以在主程序和其动态链接库的中间加载别的动态链接库,甚至覆盖正常的函数库。原创 2014-03-22 20:55:35 · 73739 阅读 · 0 评论 -
C Runtime C运行时
C运行时主要包括以下几个部分:1)引导程序(main)的入口函数和退出函数以及其依赖的各种函数2)C的标准函数的实现3)I/O功能的封装和实现4)堆的封装和实现5)C语言的特殊功能的实现6)调试功能7)其他运行时(Runtime)是平台相关的,这里的平台指的是操作系统它可以被理解成是C语言程序和不同操作系统平台的抽象层原创 2015-03-07 20:45:16 · 1054 阅读 · 0 评论 -
Linux进程的堆
进程的地址空间中有很大的一块区域是被称作“堆”的区域其地址空间是在进程的.data和.bss的地址增长方向到动态库区域的低地址部分的范围堆可以理解成是进程的一大块内存区域(已经分配实际物理内存,但并不是所有的地址空间都分配了物理内存,其大小根据系统类型和版本来定)用来供进程中的程序动态分配内存空间通常,进程通过向操作系统批发一大块实际的内存空间交给glibc管理以提高动态内存请求和释放的效率在程序要请求动态分配比较小的内存空间的时候,glibc从这一大块内存空间中分配之当程序要请求动态分配较大的原创 2015-03-07 19:22:35 · 1373 阅读 · 0 评论 -
Linux终端关闭后台进程也结束原因分析和nohup的使用
Windows和Linux的远程连接(都叫做远程连接吧)不同:1)Windows远程连接后,如果在远程机器上运行某个程序,完全可以退出连接后过一段时间再连接到那台机器上看有没有结束,即Windows的远程连接在不经过任何处理的情况下,在远程机器上运行的程序不会随着中止连接而结束。2)Ubuntu在终端登陆远程主机并运行程序后,如果此时直接中止连接退出,那么这个连接所开的会话(session原创 2015-06-28 14:26:08 · 12365 阅读 · 0 评论 -
Linux内核源码学习之进程切换细节整理
linux中的进程是个最基本的概念,进程从运行队列到开始运行有两个开始的地方,一个就是switch_to宏中的标号1:"1:/t",//只要不是新创建的进程,几乎都是从上面的那个标号1开始的,而switch_to宏则是除了内核本身,所有的进程要 想运行都要经过的地方另 一个就是ret_form_fork这样看来,虽然linux的进程体系以及进程调度非常复杂,但是总体看来就是一个沙漏原创 2014-10-27 21:40:13 · 2850 阅读 · 0 评论 -
linux环境编程之 fork() || fork()
由一个面试题关联到的:int main{fork() || fork()}逻辑上一共创建了多少个进程(包括父进程)?原创 2016-03-23 13:12:10 · 1032 阅读 · 1 评论 -
Linux内核源码学习之fork的缓冲区
【fork之后并不能确定究竟是哪个进程首先执行相关】【fork后子进程会复制父进程的资源,缓冲区是父进程的资源,所以自然会复制一份】【设备的不同缓冲属性】【标准输出设备在正常情况下是linux中的行缓存的设备(除出错)】【linux中写入文件流是全缓存的,也就是换行符并不会冲洗缓冲区】原创 2014-10-29 14:39:28 · 1672 阅读 · 0 评论 -
linux scp 命令在两台主机之间不需要输入密码进行文件传输
参考:http://www.cnblogs.com/hitwtx/archive/2011/11/16/2251254.htmlscp命令:不同的linux电脑之间进行文件的copy有三种方法:第一种:ftp,也就是其中一台Linux安装ftp Server,这样可以另外一台使用ftp的client程序来进行文件的copy。第二种:采用samba服务,类似Windows文件copy原创 2014-03-21 22:27:27 · 2847 阅读 · 0 评论 -
【基础知识思考整理 】Zero-copy原理理解(用户角度)
基础知识思考整理 http://write.blog.csdn.net/mdeditor#!postId=52836140关于Zero-Copy的原理。主要参照的是一篇03年的文章[1](Linux Journal),原理讲得很明白。首先需要知道应用场景: 适用于静态资源从磁盘到网络的发送(中间不对资源进行改变),这在web server提供的功能中很常见,一个例子是:保存在磁盘上的一原创 2016-11-25 11:53:49 · 2728 阅读 · 1 评论 -
Linux内核源码学习之 基本知识
GNOMEGNOME是一种让使用者容易操作和设定电脑环境的工具,GNOME 包含了 Panel (用来启动此程式和显示目前的状态)、桌面(应用程式和资料放置的地方)、及一系列的标准桌面工具和应用程式,并且能让各个应用程式都能正常地运作。不管之前使用何种操作系统,都能轻易地使用 GNOME 功能强大的图形接口工具。 KDEKDE,K桌面环境(KoolDesktop Environme原创 2014-09-07 17:28:30 · 1331 阅读 · 0 评论 -
用户CPU时间, 系统CPU时间,CPU时间,Wall time, Process time和Monotonic time.
时钟时间 = 处于阻塞状态时间 + 处于就绪状态时间 +处于运行状态时间用户CPU时间 = 运行状态下用户空间的时间系统CPU时间 = 运行状态下系统空间的时间。用户CPU时间+系统CPU时间=运行时间,也就是进程时间(CPU时间)。原创 2014-03-23 21:31:51 · 13486 阅读 · 0 评论 -
Linux内核源码学习之 数据结构
本篇记录在学习Linux内核源码过程中对一些知道但不熟悉不会用的数据结构进行记录。union是在学习进程复制函数do_fork中遇到的: union thread_union { struct thread_info thread_info; unsigned long stack[THREAD_SIZE/sizeof(long)];原创 2014-09-26 21:00:16 · 1396 阅读 · 0 评论 -
AMD x2 ubuntu12.04 64bit平台 adt-bundle-linux-x86_64-20131030的Android源码工程调试
参考:http://blog.csdn.net/yjkwf/article/details/7162873在上一篇(源代码的编译)基础上,做如下的工作一、搭建Eclipse源码工程1、 进入源码目录下的development/ide/eclipse,把android-formatting.xml ,android.importorder , .classpath拷贝到源码目原创 2014-03-03 23:43:52 · 1891 阅读 · 0 评论 -
Android adb shell 命令
参考:http://developer.51cto.com/art/201001/180718.htmAndroid是一个操作系统平台,启动一个模拟器就启动了一个操作系统。使用Android adb连接到这个操作系统,并运行一些系统命令就像用终端访问一台远程linux/unix服务器。Android 的主要调试工具adb(Android debuging bridge),ddm原创 2014-03-12 15:36:52 · 798 阅读 · 0 评论 -
linux grep命令
出处:http://www.cnblogs.com/end/archive/2012/02/21/2360965.html 感谢作者linux grep命令1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达转载 2014-03-12 14:36:00 · 679 阅读 · 0 评论 -
extern的3种常见用法:
extern置于变量或者函数前,表明变量或者函数的定义(实现)在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。另外,extern也可用来进行链接指定。extern 变量 注意这里的变量的类型要完全的匹配,编译器会严格检查这里两边的类型。extern “C” C++语言在编译的时候为了解决函数的多态问题,会将函数名和参数联合起来生成一个中间的函数名称,而C语原创 2014-03-13 11:38:58 · 1158 阅读 · 0 评论 -
关于EXPORT_SYMBOL
EXPORT_SYMBOL标签内定义的函数对全部内核代码公开,不用修改内核代码就可以在您的内核模块中直接调用。If we want export the symbol in a module, just use the EXPORT_SYMBOL(xxxx) in the C or H file.And compile the module by adding the compile flag原创 2014-03-13 18:14:04 · 997 阅读 · 0 评论 -
从C源代码到可执行文件的总体过程框架
出处:http://blog.csdn.net/gabriel1026/article/details/6321701 使用gcc进行编译c语言文件很简单: gabriel@gabriel-laptop:~$ gcc hello.c -o hello 但是事实上,这个过程可分为4步,分别是预处理(Prepressing),编译(Compilation)转载 2014-03-08 10:40:47 · 1339 阅读 · 0 评论 -
ubuntu12.04安装中文输入法和开机启动ibus
安装ibus和中文输入法:http://www.cnblogs.com/zhj5chengfeng/archive/2013/06/23/3150620.html设置开机启动ibusGo to the menu:System >> Preferences >> Startup ApplicationsClick the button: AddName: IBus d原创 2014-03-14 16:27:43 · 946 阅读 · 0 评论 -
简单理解一道关于#ifndef 和extern "C"的题
extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般之包括函数名。 #ifnde原创 2014-03-10 13:56:04 · 1369 阅读 · 0 评论 -
ubuntu12.04 64bit 安装source insught 3.5 并创建桌面图标
安装过程见:http://blog.csdn.net/imyang2007/article/details/7654700本人安装平台为ubuntu12.04 64bit 安装后无法像原作者一样打开,后文提供打开方法。在我的安装平台上:[plain] view plaincopycd ~ ll 发现多了个隐藏目录:.wine/原创 2014-03-19 12:53:36 · 2233 阅读 · 0 评论 -
linux伙伴系统初探
来源:百度百科http://baike.baidu.com/view/4935190.htm?fr=wordsearch待后续补充Linux内核中采用了一种同时适用于32位和64位系统的内存分页模型,对于32位系统来说,两级页表足够用了,而在x86_64系统中,用到了四级页表,如图2-1所示。四级页表分别为:页全局目录(Page Global Directory)页上级目录(Pag转载 2014-03-22 19:30:31 · 840 阅读 · 0 评论 -
一个系统调用加钩子函数的实现过程
以上完成的是Android层利用系统调用向kernel层传递参数值的方法如果想利用这一整套框架进行kernel层向Android传值(返回值传递)只需修改系统调用的实现+onframe函数的实现和具体在onframe函数中调用的内核中提供的函数接口就可以了。就是不停return值。原创 2014-03-26 13:17:37 · 1701 阅读 · 0 评论 -
在ubuntu14.04上安装sogoupinyin
明确几个点:1)System Setting...->Language Support设置 keyboard input method system: fcitx2)在软件中心安装sougoupinyin完成以上两部应该就可以了,即要保证fcitx和sougoupinyin就可以了安装过程中需要重启。原创 2014-09-07 08:42:57 · 898 阅读 · 0 评论 -
Linux内核源码学习之 内核编译
我的完全是新系统(刚装上并且进行了更新20140906)下载linux-3.16.1系统并解压到/usr/src/下:mkproper无法执行此命令,表示缺少相关软件,上网安装即可。sudo apt-get install ncurses-devmake menuconfig采用的方法是直接导入本机已有的.config文件,未做更改。开始编译:make bzImag原创 2014-09-07 08:40:39 · 1318 阅读 · 0 评论 -
ubuntu常见问题及解决汇总
1. 显示grub引导菜单 有时候装了linux系统后,开机时无法显示引导菜单,原因是系统设置上隐藏了这个菜单,下面说明下如何显示: 1.编辑/etc/default/grub文件,将 GRUB_HIDDEN_TIMEOUT=0 这一行注释掉。 2.使用update-grub命令更新配置 root@yanwenjie-vm:/home/yan# update原创 2014-09-13 11:36:27 · 1133 阅读 · 0 评论 -
Linux内核源码学习之僵尸进程
孤儿进程和僵尸进程 正常的子进程fork其父进程后,二者建立父子关系。 当子进程终结时,它会通知父进程,并清空自己所占据的内存,并在kernel里留下自己的退出信息(exit code,如果顺利运行,为0;如果有错误或异常状况,为>0的整数)。在这个信息里,会解释该进程为什么退出。父进程在得知子进程终结时,有责任对该子进程使用wait系统调用。这个wait函数能从ke原创 2014-09-26 08:53:50 · 1363 阅读 · 0 评论 -
【善用工具】vim使用-安装Vundle和YouCompleteMe
需要在Vim下做开发,所以需要配置一下开发环境 需求: Vim C/C++开发环境主要是想要获得自动补全的功能,类似于Visual Studio方式下 1)对函数进行提示补全 2)对头文件等进行补全首先是安装了bundle(vundle): git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle 下载了网上的原创 2016-06-19 22:21:06 · 2111 阅读 · 0 评论