就是 汇编语言和C语言 和操作系统的关系

时间:2021-11-23 14:25:50
我的问题是 我知道汇编语言是低级语言很接近机器的那种
C语言是高级语言是比较接近人们所用的, 但是我想知道就是在计算机没装操作系统之前
那么它是怎么运做的呢  是不是用了机器语言编制的程序做最低层的东西啊  汇编语言好象是要转换成机器代码的  
那机器代码是什么  而又在什么环境下我们可以直接的用机器代码来指挥它们的运做
LINUX下还有各种各样的外壳程序 如果没这些外壳 那要用什么操作来指挥呢
还有就是  SHELL脚本程序 好象没多少形式话的东西 我指的是想C语言那样的头文件什么的
是不是说就只是靠#!这个符号告诉内核所需要的东西呢  内核中是不是有专门处理脚本的程序啊 
   

谢谢   就这些了  问题杂了点和多了点   希望大虾们不吝赐教

如果有关于更好理解这些问题的建议  将不胜感激

10 个解决方案

#1


为什么没人来回答我的问题呢
请谁帮我一下啊

#2


数字电路-->逻辑功能单元-->控制逻辑--->微命令-->微命令序列-->机器指令-->(编译器)-->系统层指令--->汇编指令-->命令(如语言中)--->让人无法说清的垃圾语言系列(所谓高级呀)

你说的很多是离开硬件层的,系统层主要在软件层,看看组原吧

#3


首先明确一点,无论一台PC上安装了什么操作系统和应用软件,CPU执行的都是0-1机器码。计算机刚发明的时候是没有操作系统的,那个时候,计算机主要用于计算任务,人们将自己要计算机执行的任务编写成程序,最早的时候,人们直接书写的就是0-1机器码,然后将这些0-1码用打孔的方式固化到卡片或者纸带上。计算机用专门的输入设备读取这些机器码,然后执行它们。程序读入机器后,机器就开始工作直到程序停止。

后来,机器引入帮助程序输入输出等工作的代码库。这是现代操作系统的起源。为了方便起见,人们把所有程序都需要执行的任务,主要包括:进程管理、内存分配、硬件驱动等,专门分离出来,形成了操作系统,而不同用户在使用计算机的时候就不用再考虑这些直接和硬件打交道的地方,而可以专心致力于自己所需要任务的编排。于是,操作系统和应用软件就分离开了。

操作系统是直接和硬件交互的软件,为了方便用户和操作系统的交互,于是出现了shell外壳这种东西。它实际上是一个命令的集合,例如浏览目录, 创建/删除/修改文件、文件夹,设定用户,设置用户权限等等命令。每一个命令就是一个小程序。这一个个小的程序组合成了shell,专门用户负责和操作系统交互,用户运行一个命令就相当于执行了一个小的程序。

有一些任务可能需要很多个命令共同完成,于是出现了shell script这种东西,用户可以将很多命令用一种很简单的语法组合在一起,然后运行这个script,就会有命令解释程序读取这个脚本,从中按顺序分离出一个个的单个命令,顺序执行之。所以shell script不用头文件,它和c语言编写的程序完全是两种东西。c语言编写的程序需要编译器、连接器,编译后执行,而script则是一步步解释执行的。

#4


任何时候,计算机都是被0-1机器码所操纵的,只不过当前大多数情况下,作为pc的使用者,你没有直观地看到这个过程罢了。
最原始的情况,使用者用一组闭合/开启分别代表0/1的小开关向古老的计算机输入机器码。后来发现这样太容易错,一只苍蝇从眼前飞过去可能就忘了应该打开还是关上开关了,这样不但当前输入的这个语句白费了,还很可能影响以前已经执行的语句。
要是能把所有的语句一句句写下来,确认无误后再执行就好了,于是发明了读纸带的输入设备,0-1码被用一个个小孔或者空白表示在一条长长的纸条上,输入机器。不久纸袋被改成更不容易被损坏的卡片。

在后来,出现了磁介质,可以大量存储0-1码了。人们也开始变懒了,不愿意在为一条语句写8个或者16个或者24个0和1,于是用16进质数来表示0-1,以前需要4各符号的,现在只要一个符号就行了。
在后来人们发现,其实完全不用写数字,可以用自然语言的缩写符号来代替数字,这样一看一个助记符就知道是什么意思,程序员的负担就小多了。于是出现了汇编语言。

在后来,发现,其实可以用我们人类更容易接受的文字、语法和格式来书写程序,用一个专门的程序——编译程序,将它翻译成汇编语言就是了。于是涌现出了各种高级语言及其相应的编译器。
如此而已。

#5


学习

#6


多谢大家  我所想要说的是很空泛的问题得到了这些答案   我收益非浅   希望还有 比如如果直接和操作系统交互的话  那么应该学些什么东西呢 
  我曾经参加了一个培训班但因为我的基础太差了  所以培训没过关  我在其中学习许多的文件配置
 
我有点没搞懂LINUX下的文件配置它用的是那种SHELL脚本吗
我的意思说学习什么级别的什么语言可以方便的理解那种配置文件   谢谢大家

#7


你上的是Linux培训班吧,上玩了考一个认证那种?
那种培训班一般没什么用,就算没学到这么也别着急
LINUX下的一些配置文件是给系统直接读取的,不全是SHELL脚本
你先别着急,谁也不是一天内学会所有东西的,
先慢慢学会使用LINUX,别的东西是逐步深入的

#8


结贴是怎么结的啊
我这一版想结了

#9


在   我的技术问题   中点管理就行了~~
结时别忘了给偶点分啊~~~~^_^

#10


对不起啊
各位 小弟是新手没分 所以不能给了  大家别嫌少  就表示小弟的一点心意吧

#1


为什么没人来回答我的问题呢
请谁帮我一下啊

#2


数字电路-->逻辑功能单元-->控制逻辑--->微命令-->微命令序列-->机器指令-->(编译器)-->系统层指令--->汇编指令-->命令(如语言中)--->让人无法说清的垃圾语言系列(所谓高级呀)

你说的很多是离开硬件层的,系统层主要在软件层,看看组原吧

#3


首先明确一点,无论一台PC上安装了什么操作系统和应用软件,CPU执行的都是0-1机器码。计算机刚发明的时候是没有操作系统的,那个时候,计算机主要用于计算任务,人们将自己要计算机执行的任务编写成程序,最早的时候,人们直接书写的就是0-1机器码,然后将这些0-1码用打孔的方式固化到卡片或者纸带上。计算机用专门的输入设备读取这些机器码,然后执行它们。程序读入机器后,机器就开始工作直到程序停止。

后来,机器引入帮助程序输入输出等工作的代码库。这是现代操作系统的起源。为了方便起见,人们把所有程序都需要执行的任务,主要包括:进程管理、内存分配、硬件驱动等,专门分离出来,形成了操作系统,而不同用户在使用计算机的时候就不用再考虑这些直接和硬件打交道的地方,而可以专心致力于自己所需要任务的编排。于是,操作系统和应用软件就分离开了。

操作系统是直接和硬件交互的软件,为了方便用户和操作系统的交互,于是出现了shell外壳这种东西。它实际上是一个命令的集合,例如浏览目录, 创建/删除/修改文件、文件夹,设定用户,设置用户权限等等命令。每一个命令就是一个小程序。这一个个小的程序组合成了shell,专门用户负责和操作系统交互,用户运行一个命令就相当于执行了一个小的程序。

有一些任务可能需要很多个命令共同完成,于是出现了shell script这种东西,用户可以将很多命令用一种很简单的语法组合在一起,然后运行这个script,就会有命令解释程序读取这个脚本,从中按顺序分离出一个个的单个命令,顺序执行之。所以shell script不用头文件,它和c语言编写的程序完全是两种东西。c语言编写的程序需要编译器、连接器,编译后执行,而script则是一步步解释执行的。

#4


任何时候,计算机都是被0-1机器码所操纵的,只不过当前大多数情况下,作为pc的使用者,你没有直观地看到这个过程罢了。
最原始的情况,使用者用一组闭合/开启分别代表0/1的小开关向古老的计算机输入机器码。后来发现这样太容易错,一只苍蝇从眼前飞过去可能就忘了应该打开还是关上开关了,这样不但当前输入的这个语句白费了,还很可能影响以前已经执行的语句。
要是能把所有的语句一句句写下来,确认无误后再执行就好了,于是发明了读纸带的输入设备,0-1码被用一个个小孔或者空白表示在一条长长的纸条上,输入机器。不久纸袋被改成更不容易被损坏的卡片。

在后来,出现了磁介质,可以大量存储0-1码了。人们也开始变懒了,不愿意在为一条语句写8个或者16个或者24个0和1,于是用16进质数来表示0-1,以前需要4各符号的,现在只要一个符号就行了。
在后来人们发现,其实完全不用写数字,可以用自然语言的缩写符号来代替数字,这样一看一个助记符就知道是什么意思,程序员的负担就小多了。于是出现了汇编语言。

在后来,发现,其实可以用我们人类更容易接受的文字、语法和格式来书写程序,用一个专门的程序——编译程序,将它翻译成汇编语言就是了。于是涌现出了各种高级语言及其相应的编译器。
如此而已。

#5


学习

#6


多谢大家  我所想要说的是很空泛的问题得到了这些答案   我收益非浅   希望还有 比如如果直接和操作系统交互的话  那么应该学些什么东西呢 
  我曾经参加了一个培训班但因为我的基础太差了  所以培训没过关  我在其中学习许多的文件配置
 
我有点没搞懂LINUX下的文件配置它用的是那种SHELL脚本吗
我的意思说学习什么级别的什么语言可以方便的理解那种配置文件   谢谢大家

#7


你上的是Linux培训班吧,上玩了考一个认证那种?
那种培训班一般没什么用,就算没学到这么也别着急
LINUX下的一些配置文件是给系统直接读取的,不全是SHELL脚本
你先别着急,谁也不是一天内学会所有东西的,
先慢慢学会使用LINUX,别的东西是逐步深入的

#8


结贴是怎么结的啊
我这一版想结了

#9


在   我的技术问题   中点管理就行了~~
结时别忘了给偶点分啊~~~~^_^

#10


对不起啊
各位 小弟是新手没分 所以不能给了  大家别嫌少  就表示小弟的一点心意吧