这节我们讨论linux是如何利用x86结构中的段机制的,更确切的说是如何绕过linux的段机制的。我们决定从linux的可移植性开始讨论。我们说linux是一个广泛移植的操作移动,它支持x86,Alpha,arm等多种体系结构。但是很多的结构其实都是不支持段机制的,比如arm,Alpha等,但是他们都支持分页机制。linux为了能移植到x86上,做了不少工作。首先我们说,x86是肯定有段机制的,那么我们要在x86上运行程序,那不可避免要用到段机制。于是我们
系统 2019-08-12 01:33:51 2299
#include#include#include#include#include#includevoidPrintMsg(intNum){printf("%s\n","HelloWorld");return;}intmain(intargc,char*argv[]){signal(SIGALRM,PrintMsg);structitime
系统 2019-08-12 01:33:43 2299
鸟哥的Linux私房菜--计算机概论--計算机:辅助人脑的好工具第零章、计算机概论最近更新日期:2009/08/033.数据表示方式3.1数字系统3.2文字编码系统数据表示方式事实上我们的计算机只认识0与1,记录的数据也是只能记录0与1而已,所以计算机常用的数据是二进位的。但是我们人类常用的数值运算是十进位,文字方面则有非常多的语言,台湾常用的语言就有英文、中文(又分正体与简体中文)、日文等。那么计算机如何记录与显示这些数值/文字呢?就得要透过一系列的转换
系统 2019-08-12 01:33:36 2299
用户视角下的文件系统“一切皆是文件”,是UNIX和Linux的基本哲学之一。Linux对于文件I/O操作,实现了POSIX.1和SingleUNIXSpecification中的接口,包括open()、read()、write()、lseek()和close()等方法。正是由于Linux所实现的虚拟文件系统对具体文件系统进行了抽象,使得Linux可以方便地实现文件I/O操作接口。用户视角下的文件系统,就是一组系统调用接口,其与VFS的关系如下:每个进程在用
系统 2019-08-12 01:33:28 2299
一、条件判断表达式条件测试类型:整数测试字符测试文件测试条件测试的表达式[expression](注意expression头和尾部各有一个空格)[[expression]]testexpression算术运算有三种方法:let算术运算表达式$[算术运算表达式]$((算术运算表达式))expr算术运算表达式[root@hao~]#A=3[root@hao~]#B=4[root@hao~]#letC=$A+$B[root@hao~]#echo$C7[root@
系统 2019-08-12 01:33:13 2299
UNIX系统中的大多数文件I/O只需要用到5个函数:open,read,write,lseek以及close文件描述符文件描述符是一个非负整数,所有打开的文件都通过文件描述符引用文件描述符的变化范围是0-OPEN_MAX,OPEN_MAX是每个进程最多打开的文件1、open函数#includeintopen(constchar*pathname,intflag,mode_tmode);//若成功则返回文件描述符,若出错则返回-1flag打
系统 2019-08-12 01:32:47 2299
由于项目发布需要,最近做了一个JRE+Tomcat+Application的一体包。期间遇到了一些问题,暂且做下记录,以备以后查询。首先是Tomcat配置80端口,与windows中配置一样,修改$CATALINA_HOME/conf/目录下server.xml中的1改为:
系统 2019-08-12 01:32:30 2299
Azure门户上有opensuse,suseenterprise,centos,ubuntu三种Linux发行版的数个版本。这些镜像都是由相应的Linux发行公司提供商业化支持的,其镜像的质量是有保证的。不过,在开源的世界里,用户永远有自己的定制化需求,于是,在Azure上集成了一个开源的镜像库,这些镜像仍然是基于以上的4个发行版,但是这些镜像经过不同的定制化,比如预装了mysql,mongodb,cassandra等各种软件,或者进行了安全优化、配置优化
系统 2019-08-29 23:30:25 2298
head.s被编译成system模块的最前面部分,故而称为头部。这段程序处于地址的绝对0处,首先是加载各个数据段寄存器,重新设置中断描述符表idt,共256项,并使各个表项均指向一个只报错误的哑中断程序。然后重新设置全局描述符表gdt。接着使用物理地址0与1M开始处的内容相比较的方法,检测A20地址线是否已真的开启(如果没有开启,则在访问高于1Mb物理内存地址时CPU实际只会访问(IPMOD,如果检测下来发现没有开启,则进入死循环。然后程序测试PC机是否含
系统 2019-08-29 23:30:22 2298
linux开源安全性高linux和windows1、同时登陆多用户2、安全3、linux没有盘符的概念/。/root根目录4、linux的文件没有扩展名linuxbinsbinboot系统文件varhome普通用户的家目录root超级管理员的家目录tmp临时文件usr软件安装目录etc软件的配置文件常用命令查看当前工作目录pwd工作目录的跳转cd路径相对路径:相对于当前工作目录假设b下./c/n.txt假设a下b/c/n.txt在c下../../m.txt
系统 2019-08-12 09:27:09 2298
系统信息arch显示机器的处理器架构(1)uname-m显示机器的处理器架构(2)uname-r显示正在使用的内核版本dmidecode-q显示硬件系统部件-(SMBIOS/DMI)hdparm-i/dev/hda罗列一个磁盘的架构特性hdparm-tT/dev/sda在磁盘上执行测试性读取操作cat/proc/cpuinfo显示CPUinfo的信息cat/proc/interrupts显示中断cat/proc/meminfo校验内存使用cat/proc/
系统 2019-08-12 01:33:52 2298
需要在同一系统里启动多个tomcat,应该怎么处理?tomcat是个服务程序,需要占用几个通讯端口,所以默认情况是不能启动多个tomcat,如果要启动多个tomcat,需要修改配置文件,通过在配置文件设置不同的通讯端口就可以做到.文件%TOMCAT_HOME%/conf/server.xml是tomcat服务配置文件,里面有很多配置项,本文只关注怎么修改端口,其他配置项的含义不做说明。下面把该配置文件中各端口的含义说明下.
系统 2019-08-12 01:33:35 2298
一主机数据库函数#includestructhostent*gethostbyaddr(constvoid*addr,//地址size_tlen,//长度inttype//类型);structhostent*gethostbyname(constchar*name);这些函数返回的结构中至少包含以下几个成员structhostent{char*h_name;//主机名称char**h_aliases;//别名列表inth_addrtype
系统 2019-08-12 01:33:28 2298
Linux守护进程的编程方法守护进程(Daemon)是执行在后台的一种特殊进程。它独立于控制终端而且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种非常实用的进程。Linux的大多数server就是用守护进程实现的。比方,Internetserverinetd,Webserverhttpd等。同一时候,守护进程完毕很多系统任务。比方,作业规划进程crond,打印进程lpd等。守护进程的编程本身并不复杂,复杂的是各种版本号的Unix的实现机制不尽
系统 2019-08-12 01:33:15 2298
转载自http://blog.csdn.net/jjbear_ustc/archive/2009/12/22/5057009.aspx在Linux内核中,各个子系统之间有很强的相互关系,某些子系统可能对其它子系统产生的事件感兴趣。为了让某个子系统在发生某个事件时通知感兴趣的子系统,Linux内核引入了通知链技术。通知链只能够在内核的子系统之间使用,而不能够在内核和用户空间进行事件的通知。1数据结构:通知链有四种类型:·原子通知链(Atomicnotifie
系统 2019-08-12 01:33:02 2298