自己开发了一套电脑系统怎么办-自己开发了一套电脑系统
1.开发一个全新的电脑操作系统多久
2.怎么编写电脑系统?
3.开发一个windows级别的操作系统难度有多大?
4.国产电脑系统有哪些?
开发一个全新的电脑操作系统多久
好几年。
微软的操作系统都是有一个极其庞大的团队花费数年的时间才可以完成一个新的操作系统。
就那server系统举例,server2003、server2008、server2012。一般都是时隔几年才会出一个新的系统。
所以你问题一个程序员编写一个计算机操作系统基本上是不可能完成的任务。都需要一个团队多年的努力才能写出来。
怎么编写电脑系统?
1. 建立开发环境
这一步非常的简单。
将masm613和vc15的压缩包分别解压到e:masm615和e:msvc15目录下。你也可以放到其他目录下,根据自己的情况而定,但是下面用到的编译命令需要作相应的修改。也不需要添加或修改任何的环境变量。
2. IBM PC的启动及当时的内存使用情况
这一部分内容已经是老生常谈了,但又不能不说。我们只说从硬盘引导的情况。
当BIOS经过POST(Power On Test Self)后,将硬盘MBR读到内存0x0000:0x7C00的位置,然后从这里开始执行。一般的情况,MBR将选择活动分区进行操作系统的启动。在MBR开始执行时,内存使用的情况如下图所示,地址数据用16进制表示:
这已经是老掉牙的内容了,但是,在20年前却十分流行。如果想更详细的了解这方面的内容,找本讲解DOS的书看看吧。
我们自己的操作系统将被加载到0x1000:0x0100。这不是必需或者必然的,是人为选择的,你也可以将其放在0x4321:1234等其他地方。但是,上图中注明有其他用途的内存区域,应该保留,否则,你会后悔的。
3. 开发操作系统
我们自己的操作系统运行在实模式环境下(如果您不知道什么是实模式,也请看看20年前出版的当时非常流行的书,或者直接请教当时的前辈高手)。即使你的电脑是P4的CPU,刚启动时,也只相当于主频较高的8086而已。但是,没有关系。
首先,使用汇编语言写一个框架,文件名是entry.asm:
; entry.asm
; Copyright (C) 2004, Tian XiangYuan
.MODEL TINY,C
.386p
option expr32
option casemap:none
cmain PROTO NEAR C
.CODE
ORG 0100h ;偏移地址
_start:
jmp begin
nop
DB 'TianXiangYuan',0 ;the magic of my os
begin:
cli
mov ax,cs
mov ds,ax
mov es,ax
mov ss,ax
mov sp,0FFFFh
sti
call cmain ;调用C语言写的主函数
mov ax,4c00h ;调用DOS的功能(为了调试),与我们自己的操作系统无关
int 21h
这段代码非常简单,应该没有什么问题。
已经说了,操作系统将从0x1000:0x0100加载,说是无心,实则有意。我们知道,TINY模式的程序,在DOS下运行时,其起始地址就是0x0100,前面的256Byte是参数部分。如果直接将操作系统在系统启动时加载到0x1000:0x0100,调试时非常麻烦。我们将其起始地址设为0x0100,使其可以在DOS下运行(这也是在程序的最后包含int 21h指令的原因),确认正确无误后,再进行下一步的开发。
下面再看C语言的代码,文件名是main.c:
……
static void InitShell()
{
}
void cmain()
{
InitShell();
TermShell();
}
顾名思义,其中实现了一个简单的shell。因为该程序本身是操作系统的一部分,所以,平时经常使用的一些C库函数,在这里就不能使用了。总之,一切都要自己动手实现。幸好,在实模式下,几乎所有的设备的驱动都包含在BIOS中了,我们可以直接使用。否则,连从键盘读一个键值这样的事都需要自己写键盘的驱动程序,实在太难了。也是这个原因,我们自己的操作系统没有将CPU转到保护模式下,有心之人可以试试。
下面的事情几乎都可以使用C语言实现了。
第一,初始化显示模式。系统启动时,显卡已经被初始化成3模式了,就是80X25的彩色模式(除非你的显示器是单色显示器),我们不需要再做什么了。当然,你也可以将显卡设成VGA甚至SVGA模式,只要你的BIOS和显卡支持。
第二,实现一个具有简单交互功能的shell。代码不全,请自己补齐,或参看附件。
/*
*从键盘读一个字符,如果没有输入,则等待;返回值的低字节为asii码,高字节为键盘扫描码
*/
static int getch()
{
int chr=0;
__asm
{
mov ah,00h
int 16h
mov chr,ax
}
return chr;
}
/*
*使用TTY模式向屏幕输出一个字符
*/
static void putch(unsigned char key)
{
__asm
{
mov bh,0
mov al,key
mov ah,0Eh
int 10h
}
}
#define KEY_BACKSPACE 0x08
#define KEY_ENTER 0x0D
#define KEY_NEWLINE 0x0A
#define KEY_ESCAPE 0x1B
static int printk(const char* str,...)
{
…… //给大家一点空间,自己实现吧
}
static void endline()
{
putch(KEY_NEWLINE); //Line Feed (LF)
putch(KEY_ENTER); //Enter (CR)
}
static char msg_prompt[]="CMD:";
static void deal_cmd(char* cmd_line,int cmd_len)
{
…… //也请大家自己实现吧,例如,可以实现help,dir,cls,halt等命令
…… //其实,就是字符串比较的过程
}
static void TermShell()
{
char cmd_line[80]={0,};
int cmd_len=0;
endline();
printk(msg_prompt,sizeof(msg_prompt));
for (;;)
{
cmd_line[cmd_len]=getch();
switch(cmd_line[cmd_len])
{
case KEY_ENTER:
if (cmd_len>1)
deal_cmd(cmd_line,cmd_len);
//break;
case KEY_ESCAPE:
cmd_len=0;
endline();
printk(msg_prompt,sizeof(msg_prompt));
break;
case KEY_BACKSPACE:
if (cmd_len>0)
{
putch(0x08);
putch(' ');
putch(0x08);
cmd_len--;
}
break;
default:
putch(cmd_line[cmd_len]);
cmd_len++;
}
}
}
更复杂、功能更强大的方法请参考BIOS的相关文档。也请大家发挥想象力,不断的扩展功能。说心里话,这个“操作系统”比dos还原始!但毕竟是自己的操作系统。
开发一个windows级别的操作系统难度有多大?
看看reactos就知道了。
实际上,开发一个操作系统并不难,几个人几个月就可以了。人家一个人使用汇编语言开发了一个系统,1.44M大小,带mp3播放,查看,。操作系统可用,最重要的是它的生态系统,操作系统的驱动,软件,编译器。例如,linux在桌面级始终比不上windows,不是linux系统不好,而是linux的软件不够丰富,IT公司不给开发,硬件厂商不给驱动。windows手机版,firefox系统,limo系统,webos与android,ios一样,不是系统不好,是人家不给开发软件,就没法用,没人用。困难到超过所有中国人的智商。哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
单纯开发一个操作系统,并不是绝对的那么难。
但是你要考虑到和众多的硬件低层兼容,和众多软件兼容。考虑到操作系统的安全性,通用性,扩展性,功能性,建立应用生态这就难了。
wintel联盟了解过吧。如果各硬件厂商不把硬件接口开放式出来你硬件都用不了[大笑]还有哪门子操作系统,
就算你开发出来了一个操作系统,上面没有众多常用的软件,和音乐播放器需要自己写,浏览器,记事本自己写,计算器自己写,聊天,办公软件自己写,那工作量就无可估量了,你也看不了斗鱼**姐,也不可能自己开发一个“吃鸡”,你自己恐怕都放弃了
其实windows已经老态龙钟,臃肿不堪了,已经是个代码垃圾山,只不过被现在硬件性能掩盖住了?,
那什么时候会有国产操作系统呢,当cpu和存储芯片等计算机主要硬件技术都被我们掌握的时候
其实并不难,难得是生态环境。没有window那么多软件支持
作为曾经的码农来回答一下
开发一个类似win的成熟的桌面级操作系统,难度高过众所周知的曼哈顿和登月,是不是觉得有些夸张?但事实可能就是这样。
vista代码行数5000万行,打印出来是170万页A4纸,耗资超过200亿美元,这还是有了微软那么多年积累,只开发vista的费用,win74000万行,win10数据没有公布,但行业预估在5000到7000万行。
win7公开的开发工作人数是23个小组,每个小组约40人,分别负责windows中的每个模块的开发,比如设备和媒体,文件系统,桌面图形等等,这还是在vista基础上的开发,并不是从头开发。
windows的发展已经有了30年,中间的积累,走的弯路都不是外人可以轻易得知的。
我国的自助操作系统,实际都是开源系统的二次开发,远不是从0开始的建设,而且软件的开发并不是1+1=2那么简单。不是说你能盖5层楼,我给你投两倍人力物力你就能盖出十层楼来。
说个有趣的小故事吧,微软的excel现在已经成为了祖传代码,里边存在很多无用代码,但微软自己都不敢把excel重新写一遍。
国产电脑系统有哪些?
1、中标麒麟操作系统:中标麒麟Linux桌面软件是上海中标软件有限公司发布的面向桌面应用的操作系统产品。中标麒麟开发了与windows操作系统非常接近的图形化桌面。习惯使用windows操作系统的用户,只需做简单的适应性学习即可在该图形化桌面下完成软件安装、文档编辑、浏览网页、播放音频等操作。
优点:为windows用户迁移到该操作系统提供了方便,使用户能够迅速掌握新系统,可节省大量人员培训成本。
缺点:与其他软件兼容性差,响应速度慢。与服务器兼容欠佳,系统运行时,高级别进程在执行低级别文件后会降低级别,而低完整级进程不可能通过执行文件提升自己的权限。
2、麒麟操作系统:麒麟(Kylin)是由国防科技大学研制的开源服务器操作系统。此操作系统是863重大攻关科研项目,目标是打破国外操作系统的垄断,研发一套中国自主知识产权的服务器操作系统。
优点:麒麟操作系统具有性能领先、生态丰富、体验提升、云端赋能、融入移动、内生安全等优点。
缺点:在其稳定性、性能和标准化这方面,还有进一步提升空间。
3、云针操作系统(CloudNeedle OS):分为服务器操作系统、桌面操作系统、移动操作系统、物联网操作系统四个版本,该操作系统适用于各种智能终端,是一款能够把各大操作系统的软硬件生态完全兼容和直容的新型革新纯国产无国界操作系统。其研发公司云针科技系列产品主要包括以云针操作系统为核心的软件产品,与合作开发生产嵌入该操作系统的服务器、消费终端(电脑、电视、平板、手机、智慧盒)、物联网终端等硬件产品,及虚拟化应用服务,可见生态集群极其丰富。
优点:一个内核就将服务器终端到消费终端、物联网终端全面打通的全新操作系统;从办公到,同时兼容直容安卓应用和windows应用,独具特色的丰富应用生态,相应速度更快,更安全可靠,并革新了美国软件生态的下载、卸载、安装等复杂的操作过程,更加高效,便捷。同时,完全直容和兼容目前国际国内市场上大部分算力终端设备(含芯片)及软件,完美打通“云-边-端”,真正实现了生态、生活、生产算力的全方位归集与精准调度运营。
缺点:由于是初上市的全新纯国产无国界操作系统,还不被大多数人所熟知,需进一步打进消费者市场,让更多人发现。
4、深度Linux(Deepin)Deepin:原名Linux Deepin,于2014年4月更名为Deepin,常被称为“深度 Linux”,是一个致力于为全球用户提供美观易用,安全可靠的Linux 发行版。它不仅仅对最优秀的开源产品进行集成和配置,还开发了基于 HTML5 技术的全新桌面环境、系统设置中心、以及音乐播放器,播放器,软件中心等一系列面向日常使用的应用软件。
优点:Deepin 简单易用,桌面美观,能够很好的代替Windows系统进行工作与,深受用户好评。
缺点:性能优化不足,软件难兼容,应用生态不健全等一系列问题仍旧需要不断完善。
5、UOS统一操作系统:统一操作系统筹备组是由多家国内操作系统核心企业自愿发起,成员包括中兴新支点、中国电子集团(CEC)、武汉深之度科技有限公司、南京诚迈科技。2019年7月,筹备组联合技术研发团队正式成立,并在广州、武汉、南京、北京等地组织了数百人的研发团队开始研发工作。
优点:UOS用开源共创社区研发模式,鼓励上下游产业链厂商和技术人员参与研发工作贡献代码,共同打造符合行业用户需求的安全、易用、稳定的操作系统产品。今年内将发布UOS的第一个版本,实现不同的CPU平台上统一发布渠道,统一应用商店、统一交互体验、统一内核版本、统一文档和开发接口。
缺点:但对于普通用户来说,缺点也很明显,缺少日常软件、游戏的生态环境极大地阻碍了系统在消费市场的发展。
6、华为鸿蒙系统(HarmonyOS):鸿蒙OS是华为公司开发的一款基于微内核、耗时10年、4000多名研发人员投入开发、面向5G物联网、面向全场景的分布式操作系统。鸿蒙的英文名是HarmonyOS,意为和谐。 基于AOSP的一款操作系统,华为基于安卓生态开发的应用能够平稳迁移到鸿蒙OS上做好衔接——将相关系统及应用迁移到鸿蒙OS上,差不多两天就可以完成迁移及部署。
优点:这个新的操作系统将打通手机、电脑、平板、电视,并且该系统是面向下一代技术而设计的,能兼容全部安卓应用的所有Web应用。若安卓应用重新编译,在鸿蒙OS上,运行性能提升超过60%。鸿蒙OS架构中的内核会把之前的Linux内核、鸿蒙OS微内核与LiteOS合并为一个鸿蒙OS微内核。创造一个超级虚拟终端互联的世界,将人、设备、场景有机联系在一起。同时由于鸿蒙系统微内核的代码量只有Linux宏内核的千分之一,其受攻击几率也大幅降低。
缺点:虽然鸿蒙系统可以兼容安卓应用,基于AOSP,但不是真正完全适配的软件,使用起来总是有些不稳定,其系统框架下的APP应用数量太少,局限性强,使其饱受诟病,鸿蒙OS基于Android系统的常用应用,也同时受谷歌的框架服务GMS制约,出国使用不了,导致核心技术始终受制于人的局面。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。