Welcome 微信登录

首页 / 操作系统 / Linux

JAVA语言进阶:什么是Web Service

JAVA语言进阶:什么是Web Service

你可能早就听说过Web service了,你也可能已经对Web service有一些概念了。一时间,好像所有的计算机期刊、书籍和网站都开始提及Web service。然而,当前大多数对Web service的介绍都没能清楚的说明Web service到底是什么。他们只是鼓吹Web service是多么多么的好,简直就像是在做广告。在本文中会讲清楚两件事:Web service到底是什么;在什么情况下你应该使用Web service。 分布式应用程序和浏览器...
linux内核原理详解

linux内核原理详解

内核简介 内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。 Linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/usr/src/linux下找到,大部分应用软件也都是遵循GPL而设计的,你都可以获取相应的源程序代码。 全世界任何一个软件工程师都可以将自己认为优秀的代码加入到其中,由此引发的一个明显的好处就是Linux修补漏洞的快速以及对最新软件技术的利用。而Linu...
为Linux 应用程序编写 DLL详解

为Linux 应用程序编写 DLL详解

插件和 DLL 通常是用来无须编写整个新应用程序而添加功能的极好方法。在 Linux 中,插件和 DLL 以动态库形式实现。电子商务顾问兼设计师 Allen Wilson 介绍了动态库并且向您演示了如何在某个应用程序正在运行之后使用动态库来改变该应用程序。 Internet 浏览器用户非常熟悉插件的概念。从 Web 上下载插件,通常这些插件为浏览器的音频、视频以及特殊效果提供增强支持。一般来讲,在不更改原有应用程序的情况下,插件为现有应用程序提供新功能。D...
Linux 后台服务进程的开发

Linux 后台服务进程的开发

守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。 守护进程的编程本身并不复杂,复杂的是各种版本的Unix的实现机制不尽相同,造成不同 Unix环境下守护进程的编程规则...
应该如何学习linux下的网络编程

应该如何学习linux下的网络编程

Linux是一个可靠性非常高的操作系统,但是所有用过Linux的朋友都会感觉到,Linux和Windows这样的"傻瓜"操作系统(这里丝毫没有贬低Windows的意思,相反这应该是Windows的优点)相比,后者无疑在易操作性上更胜一筹。但是为什么又有那么多的爱好者钟情于Linux呢,当然自由是最吸引人的一点,另外Linux强大的功能也是一个非常重要的原因,尤其是Linux强大的网络功能更是引人注目。放眼今天的WAP业务、银行网络业务和曾经红透半边天的电子...
linux网络编程之基本协议学习

linux网络编程之基本协议学习

学习网路编程,主要是掌握网络函数的使用方法。但是大部分网络编程问题和网络编程无关,这些问题主要是由于程序员不熟悉底层的网络协议而造成的。所以先来学习一下相关的基本协议。如果学过网络,我们肯定知道网络的体系结构:OSI参考模型和Tcp/Ip参考模型。前者是理论模型,后者确是实际运行的模型。1)我们这里先简单学习一下Tcp/IP模型。下面是Tcp/Ip协议层次===============================应用程序 应用程序 应用层-------...
Linux下的C语言编程之基础知识学习篇

Linux下的C语言编程之基础知识学习篇

这篇文章介绍在Linux下进行C语言编程所需要的基础知识.在这篇文章当中,我们将会学到以下内容: 源程序编译 Makefile的编写 程序库的链接 程序的调试 头文件和系统求助--------------------------------------------------------------------------------1.源程序的编译 在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面我们以一个实例来说明...
深度剖析Linux系统2.6内核改进的内存管理

深度剖析Linux系统2.6内核改进的内存管理

Linux系统2.6内核使用了许多技术来改进对大量内存的使用,使得 Linux 比以往任何时候都更适用于企业。本文列出了一些更重要的改变,包括反向映射(reverse mapping)、使用更大的内存页、页表条目存储在高端内存中,以及更稳定的内存管理器。 随着 Linux 内核的发展和成熟,更多的用户期待着 Linux 可以运行非常大的系统来处理科学分析应用程序或者甚至海量数据库。这些企业级的应用程序通常需要大量的内存才能好好运行。2.4 Linux 内核...
用Perl 来创建可重用的Web应用程序

用Perl 来创建可重用的Web应用程序

Perl 是面向复杂 Web 应用程序开发的方便而有效的工具。然而,即使是经验丰富的程序员也会因为 Perl 的学习和使用难度太高而不愿使用。本文阐述了 Perl 面向对象的执行能简化工作,特别是因为其分布式设计及应用程序的功能性能使其比其他 Web 技术更为有效 当我尝试寻找一个好的留言簿脚本时发现,在 CGI 脚本中,面向对象的执行并不常见。我想要一个能通过改变式样、添加新功能等方式能进行轻易的修改,并能用来建立论坛的脚本。在 Web 上三十种免费留...
linux C++ 程序实例分析

linux C++ 程序实例分析

第一次接触linux下的C++,按照一本windows下面的C++来做,有不少问题。出现错误提示为:t1.cpp: In function ‘int main()’:t1.cpp:5: 错误: ‘cout’ 在此作用域中尚未声明t1.cpp:6: 错误: ‘cin’ 在此作用域中尚未声明后来解决了问题。原来在linux下的c++调用系统函数时,要引用这个类所在的空间,就是加一句using namespace XXXX(类空间名);并且main前不能用vo...
Relay:Linux系统的高效数据传输技术

Relay:Linux系统的高效数据传输技术

Relay 是一种从 Linux 内核到用户空间的高效数据传输技术。通过用户定义的 relay 通道,内核空间的程序能够高效、可靠、便捷地将数据传输到用户空间。Relay 特别适用于内核空间有大量数据需要传输到用户空间的情形,目前已经广泛应用在内核调试工具如 SystemTap中。本文介绍了 Relay 的历史和原理,并且用一个简单的实例介绍了 Relay 的具体用法。 Relay 要解决的问题 对于任何在内核工作的程序而言,如何把大量的调试信息从...
Linux内核要点及意义

Linux内核要点及意义

Linux内核源代码包括多个目录,其意义如下: (1)arch:包括硬件特定的内核代码,如arm、mips、i386等; (2)drivers:包含硬件驱动代码,如char、cdrom、scsi、mtd等; (3)include:通用头文件及针对不同平台特定的头文件,如asm-i386、asm-arm等; (4)init:内核初始化代码; (5)ipc:进程间通信代码; (6)kernel:内核核心代码; (7)mm:内存管理代码; (8...
在Linux系统下实现定时器的几种常用方法

在Linux系统下实现定时器的几种常用方法

在Linux系统下实现定时器的几种常用方法 在Linux实现一个定时器,不像Win32下那样直观。在Win32调用SetTimer就行了,在Linux下则没有相应函数可以直接调用。定时器作为一个常用的功能,在Linux当然也有相应实现。下面我们看看几种常用的方法。 要实现定时器功能,最土的办法实现莫过于用sleep/usleep来实现了。当然,它会阻塞当前线程,除了处理定时功能外,什么活也干不了。当然要解决这个问题不难,创建一个单独的线程来负责定时器,...
Linux操作系统下的多进程编程(二)

Linux操作系统下的多进程编程(二)

管道是进程间通信中最古老的方式,它包括无名管道和有名管道两种,前者用于父进程和子进程间的通信,后者用于运行于同一台机器上的任意两个进程间的通信。 无名管道由pipe()函数创建: int pipe(int filedis[2]); 参数filedis返回两个文件描述符:filedes[0]为读而打开,filedes[1]为写而打开。filedes[1]的输出是filedes[0]的输入。下面的例子示范了如何在父进程和子进程间实现通信。 #defin...
Linux下把IO空间映射到用户进程空间

Linux下把IO空间映射到用户进程空间

其实是个蛮简单的问题。在LDD3的第15章上有写(见“Remapping Specific I/O Regions”这一节)。不过当时作者选择了一个错误的做法:先把这块IO空间用ioremap映射到了内核空间,然后在用户进程访问被映射的地址所产生的缺页中断里,用vmalloc_to_page得到page,返回给用户进程。 然而,vmalloc_to_page没法用在ioremap所得到的地址上,因为IO空间根本就没有对应的Page结构,返回的page指针...
<< 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 >>