Welcome 微信登录

首页 / 操作系统 / Linux

技巧分享 实现Linux的whoami命令

技巧分享 实现Linux的whoami命令

Linux下的whoami命令会显示当前的用户是谁,也就是显示自己的用户名。开始我一直想从utmp文件入手,但是总不知道怎么确定自己,后来我去群里问了,他们说每个进程都有用户ID,而用户ID可以通过geteuid系统函数获得,有了ID就好办了,下面是怎么将他转化成一个用户名,用utmp?没有uid这个数据,后来知道是查找/etc/passwd这个文件,自己写查找代码很麻烦,还好有个系统调用可以解决这个问题,它帮我们查找passwd文件,我们只要给出id就可...
成为Java初级程序员的应具备基础知识

成为Java初级程序员的应具备基础知识

目前,JAVA是开发人员的热宠,很多论坛都有不少热爱JAVA的开发人员,也有不少想成为JAVA程序员,但苦于不知道该如何学习,也不清楚该学些什么知识才能成为一个JAVA程序员。本人在这里抛砖引玉,和大家讨论成为一个JAVA初级程序员应该具有的知识,与大家共享。个人认为想成为一个合格的JAVA初级程序员应该具备如下知识:一、面向对象的知识:JAVA是一个面向对象的开发语言,因此熟悉面向对象对学习JAVA很有必要,您要了解:什么是对象,什么是类;什么是封装,什...
Linux操作系统下实现保护共享资源

Linux操作系统下实现保护共享资源

最近看了一些驱动方面的书,了解了一些Linux对共享资源的保护机制。主要有一下几种: 中断屏蔽 、 原子操作、自旋锁、信号量、环形缓冲区。在本文中对于这些机制的具体的实现函数,以及原理不再做任何的表述。本文旨在关注如何应用这些机制或技术,他们有什么区别,什么时候适合什么机制。 一、原子变量 假设我们所需要保护的共享资源只是一个整数值,此时我们可以采用的机制有自旋锁,信号量,和原子变量,当然中断屏蔽也是可以的。但是如果选择最优的机制,我们应该选择原子变量...
VIVI成功移植到FS2410核心板

VIVI成功移植到FS2410核心板

把VIVI移植到优龙的板子上时除了要修改MAKEFILE里的内容,还要修改1.修改分区信息,与内核分区一致2.修改vivi引导参数,将原来的ttyS0修改为ttySAC0即可以下是具体步骤:1.修改/vivi/Makefile:主要修改三个地方:(1)LINUX_INCLUDE_DIR = /kernel/include/改成你存放linux kernel源代码的地址,因为编译vivi需要用到kernel源代码的部分头文件,这里我的是:LINUX_INCL...
LinuxQt库的安装

LinuxQt库的安装

上网找了半天没找到想要的LinuxQt库,找到一条命令,呵呵,试了试yum install qt-devel yum install kdelibs-devel不行,看来得装了,从网上找了一个链接,挺快的,不过这个网站我不能直接访问的,我只能猜其版本了,最新的应该是4.3.3,试了一下,果然能下,而且不到一分钟就搞定,不过是用迅雷下的,Linux下下东西太慢了,所以换到XP下,把要下的东西下完在装.http://www.qtcn.org/download/...
Linux系统中即插即用功能的实现

Linux系统中即插即用功能的实现

它主要由 hotplug, udev, D-BUS, HAL, gamin 几个组件组成。 hotplug 是Linux系统内核的一部分,在设备插入或拔出时,自动进行配置内核状态。 udev 是 hotplug 的一部分,负责维护动态的 /dev 目录,使 /dev 目录的内容与当前系统状态一致。 D-BUS 可以在应用程序之间传送消息,例如可以把“连接上一台打印机”的消息发送给 HAL。 HAL 可以集成多种来源的信息,包括内核消息,配置文件等等...
关于Linux下随机数的相关知识

关于Linux下随机数的相关知识

在Linux下取随机数,当然可以简单的用rand函数,不过要注意的是一定要设置好种子,否则伪随机数就会变成非常伪的随机数。设置种子,一般就用time函数返回当前时间即可。一般来讲,这样的做法基本上就可以了,因为虽然我们用的是随机数,但是由于种子不同,从上亿的数中去猜测我们的种子几乎是不可能的。 但是如果我们的种子算法被知道了,那么显然就不行了。当然作为某些应用也无所谓,比如我们要在屏幕上随机的画一只小猪。这样的应用几乎不会有谁会去关心下一次会是什么结果。...
Ubuntu下C/C++开发环境的架构

Ubuntu下C/C++开发环境的架构

刚装好的Ubuntu系统中已经有GCC了,但是这个GCC什么文件都不能编译,因为没有一些必须的头文件,所以要安装build-essential这个软件包,安装了这个包会自动安装上g++,libc6-dev,linux-libc-dev,libstdc++6-4.1-dev等一些必须的软件和头文件的库。按理说用sudo apt-get install build-essential便可完成配置,但本人在使用此操作后出现如下提示:~$ sudo apt-get...
Linux平台下的实时定时器

Linux平台下的实时定时器

其实Linux平台下有一种高精度的定时器,那就是posix_timer。我记得以前看代码的时候CLOCK_REALTIME的定时器似乎用的就是rdtsc指令,不过现在不确定了,先放到一边。原理上来说,可以在变频的时候也使用rdtsc指令,因为CPU的频率我们也是知道的,变频的时候内核也是知道的。下面是我的timer_create的例子,编译的时候要加上rt库,这是Linux的realtime库:gcc -o test test.c#include #inc...
Linux内核学习记录

Linux内核学习记录

Linux是单内核,模块在编译时可以选择是否编译进内核,或以模块的形式编译。如果以模块的形式编译,运行时加载模块和编译时添加进模块没有功能上的区别。 Linux内核占据线性地址空间3G以上,用户程序可视空间4G。 Linux所有程序包括内核使用的段的定义都一样,都是从0~... 也就是说进程切换时段寄存器不用改变。但是为什么程序不会冲突呢?也就是都从线性地址0开始,不会物理地址重合吗?不会,因为每次任务切换时页目录都换了。 Linux只有一个TSS项...
Linux系统原理知识 进程切换的概念介绍

Linux系统原理知识 进程切换的概念介绍

一、tast_struct结构 它是一个数据结构,可以说,它代表了一个进程。它有很多字段,大体有一下几种:标识号:进程标识、用户标识、组标识。状态: Linux的进程的四种基本状态调度信息:优先级、时间片等进程链信息:父进程、子进程的指针文件信息:打开文件、虚拟文件系统上下文信息:进程的运行环境二、I386体系的任务管理和调度I386体系从硬件上支持任务间的切换。为此目的,增设了一种新段:任务状态段(TSS),首先它和数据段、代码段一样也是一种段,其次它记...
CentOS 5.1下编译与安装Linux内核2.6.24

CentOS 5.1下编译与安装Linux内核2.6.24

好久没有编译过内核了,最近要弄驱动,查看了一下在/usr/src下面有两个文件夹,里面都是空的,没有任何内核源代码。我用的是CentOS 5.1,其实红帽系列在redora出现之后就一直没有附带Linux内核源代码了,所以这些个头文件什么的在你安装好系统那刻起是都不会有的了。当然了,不管是什么发行版本的Linux系统,下面方法都应该适用。自己从新安装一个就是www.kernel.org下载下载后解压到/usr/src下:bzip2 -dc Linux-2....
Console的写操作在Windows和Ubuntu 8.04下的性能差异

Console的写操作在Windows和Ubuntu 8.04下的性能差异

在做项目的时候,为了调试方便,把很多日志信息通过console打印出来。每次进行一个操作,输出的日志非常多,导致程序看起来非常慢。难道向控制台打印信息就这么慢吗?我突然想到以前用Linux时好像没有这么慢,于是就做了一个简单的测试。测试程序非常简单,就是用System.out.println()向控制台写一个字符串,写十万次。在我的windows xp和Ubuntu 8.04下分别测试了10次,结果发现,在Linux下平均用时9.8秒,而windows下要...
Linux系统下用Frame Buffer来做摄像头编程

Linux系统下用Frame Buffer来做摄像头编程

在Linux下开发摄像头的程序,主要用的是video4linux来做的,界面用qt来实现,开始准备用frame buffer来直接写屏但是效果不怎么好,后来就用qt来做了,这样用起来效果还蛮好的,帧率也可以,可以上到30fps;运用v4l来编程主要掌握其 api,要提高帧率最重要的是用到内存映射,其实用qt和frame buffer的时候都要用到内存映射来做,只有这样才可以达到较高的帧率,不过要注意资源的利用问题.mmap后一定要munmap.对于fram...
Linux操作系统内核2.6.25-rc9版已发布

Linux操作系统内核2.6.25-rc9版已发布

Linux内核是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰黑客 Linus Torvalds为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的。该计划开始于1991年,这里有一份Linus Torvalds当时在Usenet新闻组comp.os.minix所登载的贴子,这份著名的贴子标志着Linux计划的正式开始。技术上说Linux是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务...
<< 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 >>