摘要: 虚拟内存是个怎么强调也不过分的概念,它的存在极大地方便了程序设计任务,解放了程序员的手脚。下面看看虚拟内存的作用以及如何在存储管理机制的基础上实现它。什么是虚存?为什么需要它? 我们知道程序代码和数据必须驻留在内存中才能得以运行,然而系统内存数量很有限,往往不能容纳一个完整程序的所有代码和数据,更何况在多任务系统中,可能需要同时打开子处理程序,画图程序,浏览器等很多任务,想让内存驻留所有这些程序显然不太可能。因此首先能想到的就是将程序分割成小份,只让当前系统运行它所有需要的那部分留在内存,其它部分都留在硬盘。当系统处理完当前任务片段后,再从外存中调入下一个待运行的任务片段。的确,老式系统... 阅读全文
posted @ 2012-03-06 01:51 Fooving 阅读(6563) 评论(3) 推荐(5)
摘要: 系统的启动是指从计算机加电到显示用户登陆提示的整个过程。过程主要可以分为两个阶段:载入内核和准备运行环境,这里只基于i386硬件架构,但大部分内容是有共通性的。 载入内核(将内核载入内存,并将控制权传递给它) 计算机加电到Boot Loader开始工作,硬件含量远大于软件含量,所以这里暂不提及。 这一阶段是Boot Loader的主战场。它必须将可执行的内核映像和内核启动所需的额外数据信息从存储介质上载入内存,这并不是件简单的工作,因为除了从硬盘载入,可能还会需要从网络引导服务器这样的外部介质上载入。各种纷繁芜杂的文件系统类型也给载入带来了巨大的... 阅读全文
posted @ 2012-03-05 01:18 Fooving 阅读(826) 评论(0) 推荐(2)
摘要: —— 操作系统直观定义 虽然定义总是生硬、乏味、令人费解,但是它毕竟是概括性最强的,一言以蔽之,我们给操作系统的定义是: 操作系统是应用程序的运行环境。 可能运行环境这个术语令你如坠云端,它太广泛、太抽象了。其实, 你可以把运行环境看作是一种集服务和控制于一体的容器。 如果你没有理解环境这个概念,举个例子,用在这里可能并不贴切,但能说明一些问题: 现在遍布各地的软件开发区里,你可以看到许多企业孵化池或产业园,其间各种企业星罗棋布。产业园的管理机构往往为企业集中办理各种工商、保险、卫生医疗等手续、提供后勤、治安等基础服务,企业需要某些政务服务时,可以通过管理机构去和政府联系,进行处理,... 阅读全文
posted @ 2012-03-04 19:28 Fooving 阅读(1887) 评论(0) 推荐(4)
摘要: 操作系统的概念很容易混淆。拜现代的许多商业操作系统所赐,很少有用户能不费力气地明白说出什么是操作系统。很多人认为操作系统就是Windows,操作系统当然要包含字处理软件,操作系统怎么可以不处理图形? 说实话,正是由于这些广泛存在的误解,原本操作系统的定义的内涵已经越来越偏离大众的理解了——不识庐山真面目,只缘身在此山中。所以,在这里有必要对这个概念进行一番界定,才能展开下面的讨论——勿于浮沙建高塔。 如果您已经比较熟悉这些情况和渊源了,可以跳过这部分,选择其它您感兴趣的文章。 操作系统的功能变得愈来愈强大,但结构也越来越复杂。在以方便用户 (包括开发人员和终端用户)为宗旨的思想下,操作... 阅读全文
posted @ 2012-03-04 02:19 Fooving 阅读(730) 评论(0) 推荐(0)
摘要: 开始关注Python,在论坛中发现这么好的库,收藏了先,以备后用Graphical interface wxPythonhttp://wxpython.org Graphical interface pyGtkhttp://www.pygtk.org Graphical interface pyQThttp://www.riverbankcomputing.co.uk/pyqt/ Graphical interface Pmwhttp://pmw.sourceforge.net/ Graphical interface Tkinter 3000http://effbot.org/zone/wc 阅读全文
posted @ 2012-01-05 00:43 Fooving 阅读(681) 评论(0) 推荐(1)
摘要: 1.显卡信息 dmesg | grep -i vga lspci | grep -i vga //查看显卡信息2.dmidecode | grep -i 'serrial number' //查看主板信息,查看主板的序列号3.CPU信息 #通过/proc文件系统 cat /proc/cpuinfo dmesg | grep -i cpu #通过查看开机信息 dmidecode -t processor4.硬盘信息 fdisk -l //分区情况 df -h //大小情况 du -h //使用情况 dmesg | grep sda5.内存信息 ca... 阅读全文
posted @ 2011-12-30 22:42 Fooving 阅读(972) 评论(1) 推荐(1)
摘要: Linux操作系统网络服务器模型主要有两种:并发服务器和循环服务器。 所谓并发服务器就是在同一个时刻可以处理来自多个客户端的请求;循环服务器是指服务器在同一时刻只可以响应一个客户端的请求。而且对于TCP和UDP套接字,这两种服务器的实现方式也有不同的特点。1、TCP循环服务器: 首先TCP服务器接受一个客户端的连接请求,处理连接请求,在完成这个客户端的所有请求后断开连接,然后再接受下一个客户端的请求。创建TCP循环服务器的算法如下: socket(……); //创建一个TCP套接字 bind(……); //邦定公认的端口号 listen(……); //倾听客户端连接 while(1) ... 阅读全文
posted @ 2011-12-13 21:36 Fooving 阅读(958) 评论(0) 推荐(1)
摘要: 一、理解Linux的单用户多任务,多用户多任务概念; Linux 是一个多用户、多任务的操作系统;我们应该了解单用户多任务和多用户多任务的概念;1、Linux 的单用户多任务; 单用户多任务;比如我们以beinan 登录系统,进入系统后,我要打开gedit 来写文档,但在写文档的过程中,我感觉少点音乐,所以又打开xmms 来点音乐;当然听点音乐还不行,MSN 还得打开,想知道几个弟兄现在正在做什么,这样一样,我在用beinan 用户登录时,执行了gedit 、xmms以及msn等,当然还有输入法fcitx ;这样说来就有点简单了,一个beinan用户,为了完成工作,执行了几个任务;当然be.. 阅读全文
posted @ 2011-12-05 00:05 Fooving 阅读(591) 评论(0) 推荐(0)
摘要: 函数指针是指向函数的指针变量 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上一致的。函数指针有两个用途:调用函数和做函数的参数。函数指针的说明方法为: 数据类型标志符(指针变量名)(形参列表); 注1:“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少,后面的“形参列表”表示指... 阅读全文
posted @ 2011-11-28 02:26 Fooving 阅读(718) 评论(1) 推荐(1)
摘要: 在Android里要实现树形菜单,都是用ExpandableList,但是ExpandableList一般只能实现2级树形菜单......本文也依然使用ExpandableList,但是要实现的是3级树形菜单。程序运行效果图: 当用BaseExpandableListAdapter来实现二级树形菜单时,父项(getGroupView())和子项(getChildView())都是使用TextView。当要实现三级树形菜单时,子项(getChildView())就必须使用ExpandableList了.......另外还要定义结构... 阅读全文
posted @ 2011-11-26 02:47 Fooving 阅读(15137) 评论(1) 推荐(1)