关于高级语言编译、操作系统、硬件的关系思考(二)

首先,最近学习一些java的基础,并且准备转向安卓学习,但是本人有个缺点,常常考虑问题太过深入,以至于不能释怀去继续学习,这其实对一个新人来说,并不是一件好事,有时候需要尽快入门,才能有助于我们走的更远,首先,列举几个如题目中相关的疑问:

1、 高级语言,如java、c,是否可以直接通过编译器转换为硬件识别的机器码?

为什么有这个疑问呢,因为学习高级语言一直在强调跨平台性,本来我以为只是指操作系统,后来了解其实也包括硬件系统,即使这样

如果编译器也可以实现把高级语言变成机器码,至多出现一些硬件不兼容问题,但是没有所谓跨操作系统的问题了。

举例个人电脑,大部分即可以装windwos系统,也可以安装linux系统,但是硬件是同一个,如果我们机器上java或者c程序能够通过一个编译器直接转换为

硬件对应的指令集,那么就解决了跨操作系统的问题,也就是同一个程序可以在不同的操作系统上运行,因为我跳过它,直接和硬件打交道。

我想一定是可以通过一个强大的编译器去实现的,反正我暂时想不到不能实现的原因。那一定时由于某种现实的考虑,促使后来的高级语言没有怎么做

而是高度的依赖操作系统去构建整个运行环境。


2、接着谈谈为什么高级编程语言要依赖操作系统?

因为在网上没有找到明确的

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 用Linux内核作为操作系统的基础,可以实现一个新的操作系统。在这个过程中,需要深入了解Linux内核的各个方面,包括内存管理、进程管理、文件系统、设备驱动程序等。 需要使用C语言编写内核代码,并且需要了解一些汇编语言来实现一些底层的功能。同时,还需要了解操作系统的整体架构和设计原则,以确保操作系统的可靠性、安全性和效率。 这是一个非常复杂的任务,需要经验丰富的程序员和计算机科学家的共同努力才能实现。即使使用了Linux内核,也需要进行大量的开发和测试工作,才能构建出一个完整、稳定、可靠的操作系统。 ### 回答2: 要用 Linux 内核写一个操作系统,首先需要了解操作系统的基本概念和功能,并熟悉 Linux 内核的架构和编程接口。接下来,可以按照以下步骤进行: 1. 确定操作系统的需求和目标:思考要开发的操作系统的用途、目标用户群体和基本功能等方面的需求。 2. 下载和安装适当的开发工具:根据所选操作系统开发的需求,从 Linux 官方网站或其他可靠资源下载合适版本的 Linux 内核,并安装在开发机上。 3. 初步配置和编译内核:根据实际需求,进行初步的内核配置,确定需要的功能模块。然后,使用内核配置工具进行配置保存,接着开始编译内核源码。 4. 针对具体应用进行内核定制:根据所需操作系统的功能需求,可以对内核进行次开发和定制,添加或删除相应模块,扩充或精简某些功能。 5. 编写系统级驱动程序和服务:根据需求,编写特定的设备驱动和系统服务程序。可以利用 Linux 内核提供的接口函数,编写驱动程序,控制硬件设备的操作。 6. 进行内核的构建和连接:按照所做的修改和定制,重新编译内核源码,生成适合的内核映像文件。 7. 进行系统的测试和调试:将生成的内核映像文件烧录到目标设备上,进行系统的验证和测试。调试是一个不可或缺的环节,可以通过调试工具和日志信息定位和修复问题。 8. 配置和优化操作系统:根据实际需求,对操作系统进行细致的配置和优化,保证系统的性能和稳定性。 9. 发布和更新操作系统:在进行充分测试和验证之后,将操作系统发布到用户,并及时修复和升级系统中的漏洞和问题。 总之,使用 Linux 内核写一个操作系统是一项复杂的任务,需要掌握操作系统和编程技术的知识,并进行详细的计划和设计。同时,要耐心和细心进行开发、测试和调试工作,确保最终的操作系统具备所需的功能和稳定性。 ### 回答3: 使用Linux内核编写一个操作系统是一个庞大的工程,需要深入了解Linux内核的结构和原理,以及操作系统的设计和实现。 首先,我们需要从Linux内核的源代码开始,这可以从Linux官方网站或其他途径获取。然后,我们需要对内核进行分析和理解,包括内核的启动过程、内核空间和用户空间的切换、设备驱动、进程管理等。 接下来,我们可以根据需求对内核进行定制,可以添加或删除某些功能,设计和实现自己的系统调用,以及其他相关的内核模块。这需要深入了解Linux内核的API和接口,如系统调用接口、文件系统接口等。 然后,我们需要编写启动引导程序,将我们的操作系统加载到内存中并启动。 在编写操作系统的过程中,需要注意保护内核的安全性和稳定性,处理各种异常和中断,管理和调度进程,实现进程间通信和同步,支持多线程和多CPU,设计并实现内存管理、文件系统、网络协议栈等核心功能。 此外,对于更高级的功能,如图形界面、设备驱动程序、网络系统等,我们需要进一步的学习和研究。 总之,使用Linux内核编写一个操作系统是一个充满挑战的任务,需要对底层的硬件操作系统原理和编程技术有深入的了解。通过不断的学习和实践,我们可以逐步掌握这个技能,创建出符合我们需求的定制化操作系统

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值