x86、Linux、GNU、GNOME是什么

一、指令集架构:

指令集架构(英语:Instruction Set Architecture,缩写为ISA),又称指令集指令集体系,是计算机体系结构中与程序设计有关的部分,包含了基本数据类型,指令集,寄存器,寻址模式,存储体系,中断,异常处理以及外部I/O。指令集架构包含一系列的opcode即操作码(机器语言),以及由特定处理器执行的基本命令。

指令集体系与微架构(一套用于执行指令集的微处理器设计方法)不同。使用不同微架构的电脑可以共享一种指令集。例如,Intel的Pentium和AMD的AMD Athlon,两者几乎采用相同版本的x86指令集体系,但是两者在内部设计上有本质的区别。

一些虚拟机器支持基于Smalltalk,Java虚拟机,微软的公共语言运行时虚拟机所生成的字节码,他们的指令集体系将bytecode(字节码)从作为一般手段的代码路径翻译成本地的机器语言,并通过解译执行并不常用的代码路径,全美达以相同的方式开发了基于x86指令体系的VLIW处理器。

参考:

https://zh.wikipedia.org/wiki/%E6%8C%87%E4%BB%A4%E9%9B%86%E6%9E%B6%E6%A7%8B

二、x86和x64分别指什么:

  • 关于x86的32位元架构(常被称为i386、x86-32或是x86),请见“IA-32”。
  • 关于x86的64位元架构(向前相容于16位及32位的x86架构,常称AMD64或 Intel 64),请见“x86-64”。

x86是一个指令集架构家族,最早由英特尔在1978年面市的“Intel 8086”CPU上开发出来。

x86-64(简称x64)是64位版本的x86指令集,向后兼容于16位及32位的x86架构。x64于1999年由AMD设计,AMD首次公开64位集以扩充给x86,称为“AMD64”。其后也为英特尔所采用,现时英特尔称之为“Intel 64”。Apple和rpm以“x86-64”或“x86_64”称呼此64位架构。甲骨文公司及Microsoft称之为“x64”。BSD家族及其他Linux发行版则使用“amd64”,32位版本则称为“i386”(或i486/586/686),Arch Linux用x86_64称呼此64位架构。

参考:

https://zh.wikipedia.org/wiki/X86

https://zh.wikipedia.org/wiki/X86-64

三、Linux是什么

Linux是一种自由和开放源代码的类UNIX操作系统。Linux严格来说是单指操作系统的内核,因操作系统中包含了许多用户图形接口和其他实用工具。如今Linux常用来指基于Linux的完整操作系统,内核则改以Linux内核称之。而包含了许多用户图形接口和其他实用工具的Linux系统被成为Linux发行版,比如Ubuntu、Debian等。

参考:

https://zh.wikipedia.org/wiki/Linux

四、GNU是什么

GNU是一个自由操作系统,其内容软件完全以GPL方式发布。这个操作系统是GNU计划的主要目标,名称来自GNU‘s Not Unix!的递归缩写,因为GNU的设计类似Unix,但它不包含具著作权的Unix代码。作为操作系统,GNU的发展仍未完成,其中最大的问题是具有完备功能的内核尚未被开发成功。

用的最多的应该是GPL,即GNU通用公共许可协议(GNU General Public License,是广泛使用的免费软件许可证 ,可以保证终端用户得自由运行,学习,共享和修改软件。

或者通俗点说:GNU由于操作系统没发展起来,然而先从软件做起,比如先在Unix系统上开发基于GNU协议的软件,最有名的GCC编译器这些。然后早期Linux在当时发展需要,就集成了GNU这些软件,使操作系统能实现我们工作需要的功能。

参考:

https://zh.wikipedia.org/wiki/GNU

https://zh.wikipedia.org/wiki/GNU%E9%80%9A%E7%94%A8%E5%85%AC%E5%85%B1%E8%AE%B8%E5%8F%AF%E8%AF%81

五、Linux与GNU的名字相争

Linux的完整操作系统中,由于这些支持用户空间的系统工具和库主要由理查德·斯托曼于1983年发起的GNU计划提供,自由软件基金会提议将其组合系统命名为GNU/Linux,但Linux不属于GNU计划,这个名称并没有得到社区的一致认同。

六、Linux与GNU的详细发展历史

参考鸟叔的Linux私房菜:http://cn.linux.vbird.org/linux_basic/0110whatislinux.php

七、Linux发行版汇总

参考:https://linux.cn/article-4130-1.html

八、单独安装Linux内核可以吗?

答案当然可以的,当时如果单单是内核,那么只能启动到init的第一个进程,然后系统什么都干不了。那么要使内核能跑起来,需要做如下几点:

1、硬件启动到BIOS时,再到硬盘,此时需要一个程序去引导,然后再启动内核。那么这个引导程序是需要集成到内核去,帮助从BIOS过来之后能成功调用起内核。

2、启动到了内核的第一个集成init之后,就应该启动其它进程来实现工作需要,比如集成一些实用的工具来保证完整性。

通过以上几点,参考下面站点看Linux内核是如何组装成完整的操作系统的,有点像Linux发行版:

https://github.com/ivandavidov/minimal-linux-script

https://github.com/ivandavidov/minimal

http://minimal.idzona.com/

参考:

http://bbs.csdn.net/topics/80151778

https://gxnotes.com/article/19587.html

http://techqa.info/programming/question/27582166/How-to-run-only-the-LINUX-kernel-and-User-programs

https://superuser.com/questions/290808/running-linux-kernel-0-01-in-a-virtual-machine

https://superuser.com/questions/668061/can-linux-kernel-be-installed-alone-without-any-other-existing-os

https://unix.stackexchange.com/questions/175386/run-only-the-linux-kernel-and-user-programs

https://stackoverflow.com/questions/22610448/how-to-install-a-bare-linux-kernel-without-any-distribution-to-study-it

https://unix.stackexchange.com/questions/17122/is-it-possible-to-install-the-linux-kernel-alone

九、GNOME是什么

GNOME是一个完全由自由软件组成的桌面环境。它的目标操作系统是Linux,但是大部分的BSD系统亦支持GNOME。

通俗的说:比如内核启动到了init进程之后,然后再经过一些列进程之后,再到GNOME这个进程被调用,就能在屏幕上显示出桌面,有鼠标有显示的图形界面。如果没有这个图形界面就只能在命令行上操作。(从中是很复杂的一个过程)

对于桌面环境还有很多,随着发展可能会更多,常用的如下所示:

  • GNOME
  • KDE
  • Xfce
  • LXDE
  • CDE
  • Unity(Ubuntu基于GNOME2往上开发的新型桌面环境,最后还是放弃了)
  • Enlightenment
  • Ambient
  • Étoilé
  • IRIX Interactive Desktop
  • Project Looking Glass
  • Workbench
  • OpenWindows
  • Mezzo
  • ROX Desktop
  • Sugar
  • UDE
  • EDE

参考:

https://zh.wikipedia.org/wiki/GNOME

https://zh.wikipedia.org/wiki/%E6%A1%8C%E9%9D%A2%E7%8E%AF%E5%A2%83

时间: 2024-11-25 06:56:34

x86、Linux、GNU、GNOME是什么的相关文章

VELT-0.1.6开发:在VS2013下用QEMU调试x86 Linux内核

快乐虾 http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651) 欢迎转载,但请保留作者信息 VELT的全称是Visual EmbedLinuxTools,它是一个visual studio插件,用以辅助完成Linux开发.利用这个插件,将可以在visualstudio的IDE中进行Linux应用程序的开发(包括编译和调试),也可以进行uboot和linux内核的编译和调试,并根据编译时的错误信息正确定位到源码

linux 进入 GNOME X 界面

CentOS 安装Gnome CentOSVmwareLinuxBlogHTML 刚开始装系统的时候,没有选Gnome或者KDE,现在想装个玩玩. 简单的安装可以参考这个:http://huruxing159.iteye.com/blog/744750 centos安装是是使用linux text 模式安装没有安装xwindows界面.现在要使用,使用yum安装. 登录系统,使用yum 安装 #yum groupinstall 'X Window System'  -y 安装GNOME桌面环境 

Vs2012在Linux开发中的应用(13): 添加对x86 Linux的支持

快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 因为马上要进入Debugger的研究,为了方便对GDB的学习,先添加对虚拟机中的x86 linux的平台支持.按照先前的做法,很容易就看到结果了: 突然发现,原来的修改注册表似乎并不是必须的!! 在交叉编译器参数中直接留空: 看编译结果: 搞定!!! 

alias function varibales in Linux/GNU and Mac alias命令细说

细说,在古文言中是”奸细佞臣的话“,现如今成了”详细说明“的缩略. alias是MS-DOC中cmds中doskey的counterpart,是”别名“或者”化名“的意思 alias强大之处在于可以化繁为简,化冗为略,化干戈为玉帛,化腐朽为神奇,简而言之,高手段偷懒. 默认的话所有的设置都是在.bashrc中进行,但是总结我们平时的修改,无外乎alias某个东西,添加PATH环境变量,或者写一个什么作用的函数,就这样,所以呢 写的多了,发现.bashrc文件很长,很不好操作,所以 我们把.bas

X86 Linux 下 SIGBUS 总结

SIGBUS 在 x86 Linux 上并不多见,但一旦出现,其调用堆栈常常让人摸不着头脑,加之信号问题各平台系统间差异较大,更让人难以理清,这里稍微总结一下 x86 Linux 上大概有哪些情形会触发 BUS ERROR. 文件映射访问异常 这是 SIGBUS 在用户态最为常见的场景,也最容易触发,通常来说根本原因都是进程 mmap 了一个文件后,另外的进程把这个文件截断了,导致 mmap 出来的某些内存页超出文件的实际大小,访问那些超出的内存页就会触发 SIGBUS,具体来说有以下几种场景:

linux GNU 交流

linux交流群 热烈欢迎各位童鞋的加入,群内各种大神层出不穷,让你更快的掌握linux 轻松做大神,还在等什么 赶快来加入吧.有志于GNU开发的童鞋同样期待你的加入. QQ群: 434059454

随想录(在x86 linux上仿真多核cpu运行)

[ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 搞过嵌入式开发的朋友都知道无论在实际环境还是在fpga上调试代码是一件非常辛苦,同时吃力不讨好的事情.一方面芯片的片上资源少,另外一方面就是除了软件之外你还要处理各种意外的硬件事故.好一点的公司可能还会提供虚拟机来调试,但很多时候虚拟机的稳定性也是一个问题.搞过skyeye的朋友应该比较有体会. 其实,如果调试驱动代码或者cpu boot代码,那么毫无疑问应该在实际环境上开发.但是如果开发的

Linux 下GNOME KDE的sftp gui 客户端

用习惯了winscp和xftp直连服务器修改文件,换到了linux gnome或者kde下发现没有winscp这样提供界面的客户端了,去下了个FileZilla,但是CentOS的libstdc++版本太旧不支持. 原来Linux本身的文件管理器就自带了这一功能,只要打开文件管理器,点击连接服务器,输入 sftp://[email protected]:22  就直连了服务器sftp,跟之前使用基本一样了,很方便.

linux下Gnome桌面环境的安装

在实际工作中,无论是生产环境还是公司内部环境.很多时候装的linux系统都是最小化安装的.即没有桌面环境,那么如果有时我们又需要一个桌面环境.该怎么安装呢?其实不难,现笔者将安装方法分享如下. 测试环境:Centos 6.3桌面类型:Gnome安装方法: [[email protected]5201351 ~]yum groupinstall "Desktop" -y [[email protected]5201351 ~]yum groupinstall "X Window

How the Computer Works (based on X86/Linux)

注明 李振业原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.实验过程 首先创建一个C语言文件 vi main.c 接着编写一段C语言代码 int g(int x) {   return x + 32; } int f(int x) {   return g(x); } int main(void) {   return f(6) + 1; } 结束保存并退出 shift+: wq 利用