当前位置:  技术问答>linux和unix

大家好,讨论一下,Linux是基于什么的操作系统 ?

    来源: 互联网  发布时间:2015-10-15

    本文导语:  就像 Windows 是基于消息循环的 ,理论上只要把握住这一点,就能控制Windows编程中的方方面面,那么 Linux 呢? 它是基于什么的 ? 一点妄谈,欢迎批评 | 进程见通信(消息队列,共享内存,socket,信号灯)等,就...


就像 Windows 是基于消息循环的 ,理论上只要把握住这一点,就能控制Windows编程中的方方面面,那么 Linux 呢? 它是基于什么的 ?

一点妄谈,欢迎批评

|
进程见通信(消息队列,共享内存,socket,信号灯)等,就把握住了一大部分。其他的我不知道怎么把握,,,

|
基于模块化. fork exec pipe ... ...进程间通信

|
Linux基于单一内核,上层是一堆GNU软件

一些基本的东西在所有操作系统中都存在,Windows的消息、共享内存也是从Unix中学的,只不过是用的自己实现

Linux内核所有都以简单高效为目的,单一内核的优点就是不需要去考虑内核各个模块之间的同步

|
基于微内核、模块化。下面详细解释一下:
一、什么是 modules?
  modules 的字面意思就是模块,在此指的是 kernel modules;简单来说,一个模块提供了一个功能,如 isofs、minix、nfs、lp 等等。传统来讲,模块化有两个方法解决:设计者可以把各项功能分离到单独的叫做线程的处理中去,或者是将内核以包含/排除一些功能的方式重新编译。如果把功能分离到线程中去,那么内核就叫做“微内核”(micro-kernel),这种解决方法增加了线程间协调工作的通信开销。就象名字暗示的那样,这种解决方案的优点在于内核的大小。 

  Linux的解决方案是包含内核模块,这些模块是可以按需要随时装入和卸下的。这样做可以使得内核的大小和通信量都达到最小。将模块从内核中独立出来,不必预先『绑』在 kernel codes 中。这样做有三种优点: 第一, 将来修改 kernel 时,不必全部重新compile,可节省不少时间;第二, 若需要安装新的 modules ,不必重新 compile kernel,只要插入 (通过insmode指令) 对应的 modules 即可;第三,减少内核对系统资源的占用,内核可以集中精力做最基本的事情,把一些扩展功能都交由modules实现。 

  模块也可以用来尝试新的内核代码而不需要每次都创建和重激活内核。但是,这样做带来的问题是:使用内核模块通常会轻微的增加性能和内存开支。一个可加载模块肯定会产生更多的代码,这种代码和额外的数据结构会占用更多一点的内存。另外因为间接访问内核资源也让模块的效率轻微降低。 

  模块化的思想已经被广泛接受,主要的原因在于它可以扩展系统的功能,用户可以灵活的配置系统。Apache也采取了这种功能扩展方式,在本文中主要讨论是内核的模块安装与卸载,Apache模块的安装请参照Apapce的相关文档。 

二、如何加载模块? 
  加载内核模块的方法有两种。第一种使用insmod命令手工把它插入到内核。另一个更智能的方法是在需要的时候加载这个模块︰这叫做按需加载(demand loading)。当内核发现需要一个模块的时候,例如当用户安装一个不在内核的文件系统的时候,内核会请求内核守护进程(kerneld)试图加载合适的模块。说到这里就不能不提到内核守护进程kerneld了,它非常的聪明,能够主动的把您需要的modules 自动插入 kernel,将没用到的 module 从kernel中清退。Kerneld由两个独立的部分构成:一部分工作于Linux的内核,负责向daemon发送请求;另一部分工作于系统的用户数据区,负责调入由内核请求指定的modules。若少了这个kerneld,就只能通过手工的方式,用insmode或modeprobe命令进行加载。 

|
面前位置 => 目前为止

|
基于操作系统的基础,内存分配,文件管理,进程,线程,网络 and so on...

    
 
 

您可能感兴趣的文章:

  • 讨论ejb中数据库操作问题
  • 讨论:数据库操作的设计模式
  • 使用java写c/s结构的程序可以触到操作系统的低层么?欢迎讨论!!
  • 关于文件操作路径的问题!同时欢迎讨论日志问题!
  • 讨论一下中国操作系统的前景
  • [讨论] 我看www.csdn.net。问题2:大家把大对象放在哪里?有感于满论坛的“怎么操作Blob”以及CSDN上面很多的404 Not Found
  • 用java开发一个基于Proxy(代理)的网络计费系统。有兴趣的来讨论讨论
  • 用java做mis系统怎么样,用什么软件较好?希望大家讨论,论者有分!
  • 新闻发布系统的分权限管理问题,请大家来讨论一下
  • 就做linux裁减系统启动软盘的讨论!
  • 关于大型新闻系统的讨论
  • [讨论]Linux系统开发主板硬件测试程序
  • 大家来讨论──从内核到完整的Linux系统
  • ¥¥¥¥¥¥¥人力资源系统--欢迎大家来讨论!!!¥¥¥¥¥¥
  • oracle+jsp 多用户查询系统讨论:
  • mis系统开发经验讨论
  • 公告:CSDN AIX论坛有奖话题讨论活动(七)——本期话题:在海量运算方面,和Linux系统相比,AIX系统有优势吗?
  • 讨论:PIII550+128SD+20GB硬盘,使用DDNS,用铁通,能撑多少个连接?用什么系统最好?
  • 公告:CSDN AIX论坛有奖话题讨论活动(八)——本期话题:除了数据库应用,还有哪些应用也可以运行于AIX系统之上?(和Linux系统相比较,性能更优)
  • 在一个比较大OA系统数据库设计时,有些表的主键设置成自增还是人工取最大值好呢,欢迎讨论
  • 大家讨论下如何恢复文件系统为ext3,ext4下rm -rf 删除的文件
  • 如何系统学习j2ee?欢迎大家讨论
  • 技术讨论:高速公路收费系统项目用JAVA技术来构建适合吗?
  • *****网站或WEB应用系统的单点登录问题,有经验的高手请进并讨论!!!*****
  • 公告:CSDN AIX论坛有奖话题讨论活动(四)——本期话题:从开发周期上来看,和HP-UX、Solaris相比,AIX系统有优势吗?
  • 【讨论】一个WEB应用系统的设计问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Java 可以做拨号程序吗?我只是和大家讨论讨论 不必太认真
  • 欢迎高手来讨论:关于文件格式的大讨论
  • 参数传递的问题!(大家讨论讨论)
  • 哪位高手有兴趣跟我讨论讨论java中调用dll文件??小弟有些问题还是不很清楚??
  • 【讨论贴】gcc开发的时候有大家都有什么好的调试方法,来讨论下
  • 和Java版高手在线讨论代理服务器的问题,讨论者都有分。
  • 讨论讨论,当错误发生时,并用if语句测试出时,应该返回怎样的值
  • 一个面试,是“北京华胜六所”外包给风河(VxWorks)北京研发处,做linux内核开发,大家过来讨论讨论
  • 新建了个QQ群(软件与创业),希望有兴趣的朋友进来讨论讨论软件项目、产品、创业、管理、投资等(代码之外的)观点和想法
  • Java 访问控制的问题(public,private,protected,(default))!讨论讨论!
  • 用java做c/s结构可行吗???大家来讨论讨论,应该都会有收获。
  • 这两天本版人气不高,我来发个问题,有关互斥同步的。大家讨论讨论
  • 有没有人讨论value object模式
  • http://www.itpub.net 论坛更换数据库,速度更快,欢迎大家前去讨论!
  • 讨论“内存泄漏”
  • 很专业的问题请教J2EE高手!这是一个讨论区,有请各位对J2EE感兴趣的朋友参加讨论!
  • 大家一起讨论讨论,suse和ubuntu的区别,顺便散散分
  • 对大家很有意义的一个问题,建议大虾、菜鸟们都来讨论讨论#¥#·#¥·#%#¥%#¥%
  • 大家来讨论一个最实际的问题:)
  • 大家来讨论一下java 的发展前景


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3