Welcome 微信登录

首页 / 操作系统 / Linux

几种容易被人忘记的Linux下的编程语言

几种容易被人忘记的Linux下的编程语言

我们逐渐的被各大商业公司的技术所掩盖。事实并非如此,还有几种被人忽略的Linux下的语言,他们实实在在的服务。1.C现在满大街都在造谣C语言无用论,特别是在大学,认为C语言已经不可行了。实质,现在大量的嵌入式,工业控制,低层软件开发完全依赖C语言。并且C语言也证实了自己是最强大的跨平台语言,他可以在各种硬件平台中工作。而且做C语言开发的人现在都是技术尖子呢。不要忘记了Linux下最重要的语言。2.ShellShell的强大远没有被我们所熟悉,实际上Linu...
SDL在win32平台与Linux平台下的一些差别

SDL在win32平台与Linux平台下的一些差别

最近在学习Linux,主要考虑到跨平台开发。我一直都在思考关于中文输入的问题,在win32下解决起来那么麻烦,难道SDL的作者会不解决吗──如果是bug的话。事实证明,在Linux平台下,我们自己把GB2312往Unicode转换的工作就多余了。当前Linux内部用的就是UTF-8(我的系统是Debian 4.0),SDL的TTF函数完全可以正常工作。不过,在Linux下面也会有些问题,现在发现的有这些,大家有发现的继续帮我补充哈。1、在Linux下,TT...
Linux系统驱动程序的设计

Linux系统驱动程序的设计

驱动程序框架:Linux把外部设备看成一种特殊文件,称为"设备文件".驱动程序可看做内核与外部设备接口,驱动向硬件屏蔽细节,使内核可以像操作普通文件一样操作外部设备.驱动程序是函数的集合,他们提供的功能是能从设备上读/写,就象操作文件一样.每个设备都具有文件特征,能使用open(),close(),read().write()等系统调用.设备分为两类:字符设备和块设备.驱动也分为两类: 字符设备驱动,块设备驱动. 另外每个设备都具备 两个设备号: 主设备号...
Linux下使用TCP通讯时遇到问题的解决实例

Linux下使用TCP通讯时遇到问题的解决实例

在这里总结一下这Linux用TCP通讯需要注意的几个问题,都是前一阵子工作中遇到的问题。问题1. 发送和接收数据时的不完整问题以接收为例,当对端发送1000个字节的数据时,本端进行接收,会出现调用recv返回500并且errno==EAGAIN的情况(测试中发现这种情况非常严重),这个错误表示当前设备忙,稍后再试。理想化的解决办法是这样的:使用select或者epoll机制,当有数据到来时,select或epoll会通知,此时一直接收直到recv返回0表示...
Linux内存计数详细解析

Linux内存计数详细解析

Linux读写文件时的缓存机制与windows不同,以致于读写大文件时cached值非常大且居高不下。近几天用Oracle,发现oracle狂用内存,经常内存小到10M的规模。汗一个,赶快让经理买了新的1G内存来装,上去后发现根本认不出来。加班一多小时才发现386内核根本不认高端内存(HIGHMEM),所以内存极限一直是896M。以前是1G内存,所以看不出来,现在换了1.5G,看出来了。赶快上了一个2.6.12-1-686的内核,然后重启,认出来了。不过f...
Linux下面单个进程能够打开的文件句柄的数目

Linux下面单个进程能够打开的文件句柄的数目

环境:Linux执行ulimit -n默认的大小是1024.当然你也可以设置 ulimit -n 10240之类的这个问题,让我直接痛苦了两天,并间接痛苦了一个礼拜。一直觉得很奇怪,一个线程,仅仅是sleep 5秒钟,然后往一个文件里面写入一会儿数据,打开关闭一下的,为什么这个线程就会死掉呢?这个功能已经是极其简单了。后来终于发现,原来是另外一个线程出的错,那个线程打开的文件句柄数目太多了,超过了1024,导致上述的简单线程,连打开文件都无法打开,而且还不...
Linux下GCC源码方式安装过程

Linux下GCC源码方式安装过程

今天上午上机,任务是在Linux下熟悉以源码方式的软件安装,我们的目的就是将GCC4.1.1以源码的方式安装成功。这个东东之前也装过。是边在网上查边装的,装完能用就行了,也没总结过。今天做完后想总结一下,便于以后用。首先呢,就是下源码了, http://ftp.gnu.org/gnu/gcc/gcc-4.1.1/到这儿下一个,我们实验要求是下载这个,所以我就用的它,完全可以下一个最新的玩玩嘛,下完后解压,tar -xvjf gcc-4.1.1.tar.bz...
Linux系统下的JDK中文字体设置

Linux系统下的JDK中文字体设置

我们经常会发现在Linux系统下,java应用程序的中文会变成一个一个的“口”字,这样会给我们的使用带来很多的困扰。但是我们又不愿意放弃Linux和java的便捷。怎么来解决这个问题呢?其实,要解决这个问题也挺简单。咱们首先来说说产生这个问题的原因。java程序启动的时候会去在$JAVA_HOME/jre/lib/fonts目录下寻找相应的字体来显示。由于 JDK默认没有中文字体,所以我们需要手工的来设置一下,让java应用程序能够找到相应的中文字体。这样...
Linux与Unix过滤程序学习笔记之GREP

Linux与Unix过滤程序学习笔记之GREP

整理了下一篇关于Linux与Unix过滤程序学习笔记之GREP.grep同TAIL,WC,SORT等同属输出过滤程序。(在这里我不过多说GREP家族历史了) 命令格式:GREP 模式 文件名;也可以把管道作为输入端。 gnu grep的几个特殊选项: grep "pattern" filename(s) 基本正则表达式元字符集(默认) grep -G "pattern" filename(s) 同上(默认) grep -E "pattern" filena...
Linux内核的bootsplash功能介绍

Linux内核的bootsplash功能介绍

Linux内核原版中是没有bootsplash功能的,就是启动进度条和console的背景图的功能。需要对其进行打补丁才能实现。官方网站:http://www.bootsplash.org,下载对应内核版本的bootsplash补丁,这样内核配置里就能选择了。对打上内核的补丁进行编译,一定要进到menuconfig里确认bootsplash的相关选项被选上。编译安装splashutilities和splash主题,主题在bootsplash的官方网站也有链...
Linux下创建1000个线程

Linux下创建1000个线程

要创建1000个线程,可以先执行ulimit -s 2048。这个问题要用程序的方法解决几乎是不可能的。因为按RedHat Linux 9.0的posix线程实现,每个线程的父进程都是当前控制台进程,而不是调用pthread_create的那个进程的。而另一方面,在一个进程中能创建的线程个数又主要受堆栈的限制:2G/允许的最大堆栈大小,在i386平台上,控制台进程默认的最大堆栈大小为8M,所以能创建的线程数为2G/8M = 256个。但是,这个8M的限制可...
Linux系统驱动编译及运行

Linux系统驱动编译及运行

一、手工加载测试1、insmod ./key_test.ko 加载驱动模块到内核2、cat /proc/modules |grep key_test 查看key_test模块在内核中的地址,不加过滤器可以看到全部加载的模块。3、lsmod 显示模块,这时可以看到所有的模块名字,后面跟的是主设备号和次设备号。4、rmmod key_test 把模块从内核里卸载。二、动态加载1、把key_test.c源代码放到内核源代码的/drives/char/下,因为这是...
Linux系统下malloc/free与new/delete的区别

Linux系统下malloc/free与new/delete的区别

由于malloc/free是库函数,不是运算符,他们不能执行构造函数和析构函数,只是负责分配内存。1、malloc与free是C /C语言的标准库函数,new/delete是C 的运算符。它们都可用于申请动态内存和释放内存。2、对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行...
Java开发中关于Hibernate对多表关联查询

Java开发中关于Hibernate对多表关联查询

由于公司项目的需要,我对Hibernate对多表关联查询研究了一下,现总结如下,供朋友参考。一、 Hibernate简介Hibernate是一个JDO工具。它的工作原理是通过文件(一般有两种:xml文件和properties文件)把值对象和数据库表之间建立起一个映射关系。这样,我们只需要通过操作这些值对象和Hibernate提供的一些基本类,就可以达到使用数据库的目的。例如,使用Hibernate的查询,可以直接返回包含某个值对象的列表(List),而不必...
Linux VI编辑器中的复制与粘贴

Linux VI编辑器中的复制与粘贴

Linux服务器管理最头疼的就是配置文件的配置。一般情况下配置文件都给出了示例,我们在修改配置文件的时候,最好保留好示例现场。将示例部分复制一份,然后再修改。这样的话,即使修改错误,通过对比示例可以及时发现错误所在。那么vi编辑器中的整行(多行)复制与粘贴就非常必要了。1、复制1)单行复制在命令模式下,将光标移动到将要复制的行处,按“yy”进行复制;2)多行复制在命令模式下,将光标移动到将要复制的首行处,按“nyy”复制n行;其中n为1、2、3...2、粘...
<< 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 >>