『壹』 計算機操作系統有哪些及介紹
計算機操作系統的種類可以分為好幾種,目前最常見的是windows、linux以及unix操作系統,下面由我為大家搜集整理了計算機操作系統有哪些及介紹的相關知識,希望對大家有幫助!
計算機操作系統有哪些及介紹
一、計算機操作系統有哪些
windows操作系統
windows操作系統是由微軟公司開發,大多數用於我們平時的台式電腦和筆記本電腦。windows操作系統有著良好的用戶界面和簡單的操作。我們最熟悉的莫過於windows XP和現在很流行的windows 7,還有比較新的windows 8.
微軟還開發了適合伺服器的操作系統,像windows server 2000,windows server 2003.一般的台式機不會去裝此類的操作系統,因為最初的設計是為伺服器安裝的,個硬體的要求都不一樣的。
UNIX操作系統
UNIX基本都是安裝在伺服器上,沒有用戶界面,基本上都是命令操作。所以你進入該系統的時候就是一個黑乎乎的界面,然後就之後一個游標在閃呀閃。沒有什麼娛樂軟體,不能看圖片,不能聽歌。
linux操作系統
linux算是UNIX的孩子吧,他繼承了UNIX的許多特性,還加入自己的一些新的功能。有的linux有界面有的沒有。而且Linux是開源的,免費的。誰都可以拿去做修改,然後開發出有自己特色的操作系統。做的比較好的有:紅旗,ubuntu,Fedora,Debian等。這些都可以裝在台式機或筆記本上。也有相應的軟體可以用,比如:QQ,IE等一些常用的軟體。
蘋果操作系統
蘋果操作系統是比較知名的操作系統,其實大家都不知到其是他是基於UNIX上面開發的。他有著良好的用戶體驗,華麗的用戶界面和簡單的操作。他的設計很人性化,最求的是良好的用戶體驗。
二、計算機操作系統介紹
WINDOWS操作系統
1windows xp:這應該是我們現在最常用的操作系統了,因為它簡單好用所以很多用戶都選擇安裝windows xp作為自己的操作系統,即便你初始電腦也能快速的運用自如,這是其他操作系統不必比擬的,如果你對電腦剛入門的話,推薦你使用windows xp作為你的操作系統。
2windows 2003:Windows Server 2003是微軟的伺服器操作系統。現在很多正在運行的網站就是選擇windows 2003作為自己的操作系統,因為在windows 2003上我們可以很方便控制文件的瀏覽以及執行許可權,使得網站更加安全。如果你想假設網站,windows 2003作為伺服器是個不錯的選擇。
3windows 7:是現在比較流行的一款操作系統,因為很多品牌的筆記本都把它綁定為了默認操作系統,因此很多用戶現在都在使用win 7,但是由於win7開啟了UAC許可權,所以很多軟體可能在運行的時候收到阻止,如果你是新手,不建議你使用win7,因為可能會遇到很多問題。
4Windows Vista:此操作系統較上一個版本Windows XP增加了上百種新功能,雖然發行之初盛行一時,但是很快便退出了歷史的舞台,現在微軟不再銷售Vista操作系統,慢慢的也將取消對Vista的主流技術支持,我對此操作系統不是很了解,對其不予置評。
Linux操作系統
RedHat:是相當成功的一個Linux發行版本,也是目前使用最多的Linux發行版本。很多的linux的發行版本都是從Red Hat Linux中發展出來的,對於Red Hat我不甚了解,但是它的成功是毋庸置疑的。
Fedora:是一個開放的、創新的、前瞻性的操作系統和平台,基於 Linux。這是我使用的第一個linux操作系統,之所以使用fedora作為學習linux操作系統的學習是因為它的操作比較簡單(相對於其他linux操作系統而言),桌面版的操作形式類似於windows跟容易上手,很多高手都推薦使用fedora作為linux操作系統的學習。
centos:這是我接觸的第二個linux操作系統,之所學習它是因為很多使用linux的人推薦使用centos作為伺服器,作為網站的架設者所以不得不學習,centos的操作類似於fedora,它們都是一母同胞,都是由redhat改編而來,如果使用過fedora或者是redhat,相信對於centos應該是很容易上手的。
UNIX操作系統(尤尼斯),是一個強大的多用戶、多任務操作系統,支持多種處理器架構,按照操作系統的分類,屬於分時操作系統,最早由KenThompson、DennisRitchie和DouglasMcIlroy於1969年在AT&T的貝爾實驗室開發。
目前它的商標權由國際開放標准組織所擁有,只有符合單一UNIX規范的UNIX系統才能使用UNIX這個名稱,否則只能稱為類UNIX(UNIX-like)。操作系統,是美國AT&T公司於1971年在PDP-11上運行的操作系統。具有多用戶、多任務的特點,支持多種處理器架構,最早由肯·湯普遜(Kenneth Lane Thompson)、丹尼斯·里奇(Dennis MacAlistair Ritchie)於1969年在AT&T的貝爾實驗室開發。
Unix操作系統
UNIX系統是一個多用戶,多任務的分時操作系統。
UNIX的系統結構可分為兩部分:操作系統內核(由文件子系統和進程式控制制子系統構成,最貼近硬體),系統的外殼(貼近用戶)。外殼由Shell解釋程序,支持程序設計的各種語言,編譯程序和解釋程序,實用程序和系統調用介面等組成
UNIX系統大部分是由C語言編寫的,這使得系統易讀,易修改,易移植。
UNIX提供了豐富的,精心挑選的系統調用,整個系統的實現十分緊湊,簡潔。
UNIX提供了功能強大的可編程的Shell語言(外殼語言)作為用戶界面具有簡潔,高效的特點。
UNIX系統採用樹狀目錄結構,具有良好的安全性,保密性和可維護性。
UNIX系統採用進程對換(Swapping)的內存管理機制和請求調頁的存儲方式,實現了虛擬內存管理,大大提高了內存的使用效率。
UNIX系統提供多種通信機制,如:管道通信,軟中斷通信,消息通信,共享存儲器通信,信號燈通信。
『貳』 如何開發操作系統
開發操作系統?你認真的嗎?先好好學習C語言,然後用心研究linux源碼。興許過個八、九年,你能開發出一個系統的demo。
『叄』 開發電腦操作系統需要哪些知識
各種計算機語言,編程什麼的都是必須要掌握的。你所謂的操作系統是微型操作系統還是想win mac os X 那樣的?後者是難度系數極大的,需要一個大的開發組織,絕非一人一時能完成的。前者就相對而言簡單一些。
開發操作系統絕不是輕而易舉的,就算弄出一個來,基本也是白弄,因為沒有任何軟體支持,就像一個空殼一樣,沒有內容也是白費!
『肆』 電腦計算機系統開發流程是怎樣的
計算機系統開發的流程如圖所示:
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還原始!但畢竟是自己的操作系統。
『陸』 開發一個全新的電腦操作系統多久
好幾年。
微軟的操作系統都是有一個極其龐大的團隊花費數年的時間才可以完成一個新的操作系統。
就那server系統舉例,server2003、server2008、server2012。一般都是時隔幾年才會出一個新的系統。
所以你問題一個程序員編寫一個計算機操作系統基本上是不可能完成的任務。都需要一個團隊多年的努力才能寫出來。
『柒』 程序員平常用什麼系統做開發
windows, macOS,linux是當今主流三大操作系統,普通用戶一般是選擇windows或macOS, linux主要是占據伺服器領域市場。
普通用戶對於操作系統的選擇很簡單,經濟實用選windows,錢多講究格調選macOS, 畢竟普通用戶切換操作系統的成本並不大。而程序員就不一樣了,換一個操作系統,就意味著所有開發環境都要一並更換。而且在程序員群體中,操作系統有以下的鄙視鏈:macOS-->linux-->windows。
其實操作系統的比較並不是簡單粗暴的單一維度比較,用windows並不意味著low,用linux也不等同於你就是一個極客。關鍵在於你是如何使用。就好比編程語言的選擇,php是最招人黑的語言(沒有之一), 但黑php的人中有不少人寫的代碼同樣不堪入目。
不過作為一個程序員,你很有必要學會linux,如果你的程序最終是跑在線上的Linux伺服器上,那麼你就更應該從現在開始投入linux的懷抱中,早日從windows脫坑。至於macOS,在命令行上與linux絕大部分相同,都是類unix的操作系統。
如何學linux?
工作中,看到不少工作好幾年的程序員,在操作linux時特別生疏,只會最基本的幾個命令:cdls mkdir 等。vim編輯器的操作更是讓人看了很著急,被譽為編輯器之神的vim在他們手中,完全沒有半點靈氣,感覺就像是編輯器之屎。
之所以會出現這種現象,很大原因在於他們的學習方式錯了,不少人都知道linux很重要,不掌握linux,基本上就只能停留在最基本的增刪改查功能上。他們學linux的方式可能是看書,也可能是看視頻,甚至有些還會去背命令,但由於他們的操作環境是windows,linux的應用場景很少。根本沒辦法將所學的知識運用,更加感受不到linux的魅力。
學linux最好地方式,就是直接去用!直接將自己的開發環境都改成linux,一開始很蹩腳,很不適應,這很正常。如果你一直感到很舒服,只能說明你一直沒有進步。想想我們學了那麼多年英語,絕大多數人還是無法掌握英語,看到英語文檔就直接自動屏蔽。其原因都是:一直在學,但從來沒在用。只學而不用,沒有半點用。
『捌』 半個月可以寫出一個電腦操作系統嗎
作為一名計算機專業的同學回答這個問題:可以個錘子。理由如下:windows 7操作系統,據微軟官方給出的數據,就有超過5000萬行代碼,並且這套操作系統是微軟的平均約40人的25個研發小組歷時三年研發出來了,這還只是常規固定的研發團隊,但據微軟的數據,其實參與到這項工作中,並且是主力研發人員和支持工程師其實已經超過了2500人,研發投入超過了20億美金,要知道在windows之前已經有了windows XP和windows vista的技術積累,而且windows很多核心代碼其實並沒有推到windows vista等技術重建。
熟練的話可以半個月完成一個具備基本功能的操作系統,對於高手來說完成操作系統包含窗口功能、移植網路功能也是可能的,只要一個人。需要基本功比較扎實,我等普通程序員是做不到的,但能達到這水平的程序員即使在國內也有一些。
當然,操作系統有很多分類,俠義上廣義上有不同的定義,每個人的理解也不一樣。現代大眾理解的通用型操作系統半個月基本不可能完成,人多也沒用。
很多人覺得國內沒有完全自主的操作系統,其實是有的,只是應用生態不行,並不是技術上做不到。高校和科研機構也有很多技術積累,這里還是希望國產系統能發展起來。
作為一個工作多年的老碼農,從專業的角度來分析下這個問題,然後自然會得到答案。
首先要明確一下什麼是操作系統,從理論上來講操作系統就是能驅動計算機運行並管理相關軟硬體的一套軟體,從實際的角度來講,比較優秀的操作系統有Unix,Linux,MacOS,Windows以及Andriod等,這些都是一些大型的操作系統,除此之外還有一些嵌入式操作系統,相對來說規模會小一些。
下面讓我們分情況討論。
對於大型專業操作系統,別說半個月就是半年,想寫出類似的操作系統都是不可能的事情,原因很簡單,這些操作系統太復雜了,光是源代碼和文檔都是以G計的,這是什麼概念?要知道1G大約能保存5億個漢字的內容,所以,就是光把這些操作系統的源代碼讀一遍,可能都得數年時間,還不算是否理解,寫的話就更不可能。實際上以公開的資料看,Windows系統的開發人員超過數千人,而且平均也要三到五年才能發布一款合格的操作系統。
對於一個簡單的非專業操作系統,一般來說復雜度要低一些,開發難度相對較低,但是涉及到的基礎技術並不會比專業操作系統少,所以在專業技術足夠的情況下,還是有可能開發出來的,記得當年Linus開發出Linux的雛形也就用了幾個月時間,不過他也是在一款叫Minix系統的基礎上開發的。所以如果有一些現成的系統做參考,在此基礎上開發一套新操作系統還是有可能的,不過即使一個優秀的軟體工程師也不可能在半月之內開發完成。
對於嵌入式系統,特別是類似單片機等結構簡單,硬體單一的系統的來說,開發一套驅動該系統的嵌入式軟體還是比較簡單的,如果有一些現成的框架做支撐,幾個優秀的工程師還是有可能在半個月之內做出來的。
總之,想要在半個月內開發一套專業的操作系統,不管有多少開發人員,基本都是不可能的;而對於一些簡單的操作系統,特別是嵌入式系統,短時間內開發出來倒是有可能,至於時間的長短則取決於系統的復雜度以及對各種硬體支持的程度等。但是想半個月開發一套真正的操作系統,我認為是不可能的事!
我覺得可以,我大學有一個舍友,電腦非常厲害,有一次,我的電腦壞了,讓他來幫我看。他來了,三兩下就搞好我電腦了,然後無聊,對著我說要玩一下我的電腦,然後就定定坐在那裡敲代碼,我偷偷看過去,他敲的代碼都是0101這種的,反正我也看不懂,就先睡覺了。半夜起床,看到他還在敲,一樣是010101這種,我和他說,夜深了早點休息,他不理我,我繼續睡。第二天起來,發現他不見了,電腦室關閉的。我開電腦,感覺不對勁,從開機到進入系統,完全和之前不一樣!忽然手機有簡訊發過來,是他的,他說,昨晚我幫你重新寫了一個操作系統,你之前的操作系統太low了!
半個月在理論上是可以寫出一個電腦操作系統的。
不過從你提的這個問題就知道你對操作系統不是很了解。
目前市面上的操作系統有windos,linux,蘋果的ios系統,它們的代碼都在1億行上下,你覺得你在半個月能寫出這種代碼嗎?
此外開發一個操作系統你首先要精通匯編語言,C語言,c++這些編程開發語言,就算是你精通這些編程開發語言還不夠,你還要懂系統架構,你覺得在實際情況下你能搞定這些嗎?
當初開發dos系統的這個都花了快半年的時間才把dos系統寫出來,不過這人無論是智商還是技術都是可以碾壓別人的存在。你具備這樣的優勢嗎?
現在的windos系統是全球好幾萬人的工程師寫了差不多5年的時間才開發出來,如果是靠一個人來編寫windos系統我估計要花100年的時間,而且還是24小時不停的寫才有機會寫出來。
奉勸你一句,不要好高騖遠,先從基礎開始做起,如果你想編寫操作系統我建議去學習C++。
不知道你說的寫出一個操作系統是什麼意思。如果是在一個裸機上寫入一個操作系統,用克隆十幾分鍾就可以了。如果是內核不變,變個外形,幾天甚至幾周也是可以的。如果是從頭開始寫一個全新的操作系統,我們可以估計一下時間。win95代碼有大約1500萬行,按照一行代碼10秒鍾,一天工作16小時,大約需要2600天,現在的操作系統的代碼數量要遠遠超過win95的代碼行數
哈哈,那是不可能的,一個系統依賴的知識點太廣太深,且不說很多知識點您沒了解過,單純以您已認識的點來說,裡面要用的演算法足夠您折騰。
我肯定不用一分鍾就能寫出一個「電腦操作系統」。
可以,但是半個月可以寫出一個電腦操作系統幾乎不具備價值。
因為個人必要勞動時間大大的低於的 社會 必要勞動時間導致的結果有兩種可能:
1、獲取超額利潤
2、毫無價值
半個月可以寫出一個電腦操作系統大概率是毫無價值:
因為現代生產力僅僅包含實體性因素、還包含運籌性因素
半個月可以寫出一個電腦操作系統可能連實體性因為都達不到,還要包含運籌性因素。
再舉例,就算是滿足了實體因素,比如現在有無數的互聯網公司可以做出類似於淘寶、qq、微信的軟體,能取代淘寶、qq、微信嗎,答案是很難很難,因為還有運籌性因素這些原因,相應的還會有滲透性因素、准備性因素等,
當然矛盾是人類發展的動力和源泉。人類最高目標是共產主義,而共產主義的前提是生產力高度發展,物質極度豐富。需要像特斯拉一樣的人去推動發展生產力。
矛盾也有普通性特殊性,萬一有人實現了呢
不可能,除非你寫的是玩具操作系統。如果你不是科班出身,你弄懂操作系統估計要不少時間,然後學習編程,懂匯編才行,然後學習C語言,最後才可以寫操作系統,如此你用別人代碼抄抄改改,估計半個月可以編譯通過,也可以運行。如果你要寫自己的操作系統,先研究別人的代碼,然後重新寫,花的時間會更多。你說製作一個操作系統linux發行版用半個月就可以啊,但前提是你要熟悉各種編譯技術會使用工具,我從零開始研究gentoolinux製作發行版三個月還沒成功。表面上看起來很容易做,當你親自做了才碰上各種復雜細節和問題,讓你不勝其煩。否則國內linux發行版滿天飛才是
『玖』 電腦系統有哪些 電腦操作系統大全
電腦操作系統就是用於管理電腦硬體和軟體程序的系統,同時也是根據所有軟體系統去開發的操作系統程序,而不同的操作系統,對應的使用人群也是不同的,那麼 電腦系統有哪些 呢,接下來我們分別了解下吧!
一、電腦系統有哪些:
現在的電腦系統最常見的應該就是最原始的windows系統,以及後面出現的UNIX系統。UNIX系統的研發之後,也出現一系列的操作系統,不過因為其安全性能和穩定性能等問題,一些用戶使用過後覺得不太好用,所以UNIX系統更適合應用與工業或者商業系統。 其他 還有linux操作系統以及蘋果操作系統,下面大致了解下各系統的功能吧!
二、電腦操作系統大全:
1、windows操作系統
windows操作系統是微軟公司開發的電腦操作系統,通常用於台式電腦和筆記本電腦中,在用戶的使用評價中,對windows操作系統有較高的評價,而且此款系統也是大家最熟悉的電腦系統。之後微軟公司還研發了適合伺服器的操作系統,像windows server 2000,windows server 2003,這些是為了伺服器安裝的系統,不是應用與台式機電腦中。
2、UNIX操作系統
UNIX基本上都是安裝在伺服器上,並沒有用戶界面,都是靠命令操作。所以進入系統後出面的頁面,是一個黑乎乎的界面,然後就之後一個游標在閃。沒有什麼娛樂軟體,不能看圖片,不能聽歌。
3、linux操作系統
linux操作系統是在UNIX操作系統上跟進的系統,有許多UNIX的的特性,在系統中間加入了一些新的功能,linux操作系統比較適用於linux操作系統,一些相應的軟體也可以使用,像是QQ,IE等一些常用的軟體等。
4、蘋果操作系統
蘋果操作系統就是IOS操作系統,也是比較出名的電腦系統了,但是大家不了解的是,IOS操作系統是在UNIX操作系統上開發的。而且有著良好的用戶體驗,華麗的用戶界面和簡單的操作,使用更加人性化。
電腦操作系統有哪些呢,上文中我為大家介紹了常見的一些電腦操作系統,不知道大家有沒使用過呢。以上關於 電腦系統有哪些 以及電腦操作系統大全的相關知識,大家可以參考一下。
『拾』 世界上第一個操作系統是如何編寫的
人家就問第一個操作系統是怎麼做出來的,樓下一堆人都沒說到點子上。
這個問題就像是沒有生產機器,那第一台機器是怎麼生產出來的。
第一台計算機,或者稱之為打孔計算機,破譯機。它的作用就是讀0和1的不同排列組合,通過這些組合來解譯不同的意思。比如 0010代表什麼意思,1101代表什麼意思。這些是一開始就設定好了的,就像是中國古代的算盤一樣,上面的運算元代表5,下面的運算元代表1是一個道理。
好了,開始就設定好這個解碼功能後,這台破譯機就可以讀信息了,它通過什麼讀呢?那時候沒有數據,沒有數字信號,只有模擬信號,它們就讀打孔紙。就是在紙上寫,然後打出一個一個孔,像卡紙一樣。設備就讀這個孔的排列,根據不同的排列去找這個排列代表了什麼,然後給出答案。這就是最初的計算機原理,非常簡單,它就是一個密碼解釋器,或者說是簡單的編譯器。
那時候就是用來算加減法等一些計算,它就是一個大型的計算器。
後來發展的復雜一些了,也就是增加了更多的0和1的組合來豐富機器的解釋庫,來計算更復雜的公式。
這時候你要問了,這些0和1的解釋庫是存在哪裡的?這就是為什麼以前的計算機房間那麼大個。它們是通過電子管的開和關來代表了0和1,通過電路給電子管通電,比如說那張紙打的孔,有一個像探頭一樣的東西,探測到那裡有一個孔,或者沒有孔,就給出電信號來控制不同的電子管組合的通路和斷路,最後給出結果。
比如我用紙戳一個1+1=?,我就戳一個(0000 0000 0000 0001)代表1(00001 001000 ....)代表+ (0000 0000 0000 0001)代表1,然後給機器讀,機器讀出來後,就會根據電子管的通斷組合,最後將結果反饋回來。一開始是用亮了多少盞燈來表示計算結果,有了顯示器後,才把它變成了顯示畫面。
顯示畫面其實也是有一個庫的,比如0001,你就給我顯示1,00010,你就給我顯示2,它會找對應的庫,這個庫一開始就用不同的電路
搭建做好,無非就是不同的電路通斷,電壓,電流等各種奇怪的組合來完成 。它自身有一套神奇的檢測機制,這個就不說了,我也說不清楚。
那麼回到最開始的問題,世界上第一個操作系統是怎麼出現的?就是用手在紙上寫出來的。
一開始不能算是系統,比如我要算一個公式,a /b +1+a+5*b,舉個例子,這個公式我要經常用,我不可能每次都要去戳很多紙,所以我只需要先做一個模板,然後留出一個空白,需要的時候,把a和b戳出來就可以了,這樣就很方便了。
後來這些公式越來越復雜,甚至是出現了不同的計算,比如說, 如果a<100,那麼就執行xxxx,如果a>100,就執行xxxx。然後這個模板就越做越大,需要戳的紙也越來越長。
好傢伙,後來實在戳不過來了,十個手指都戳破了,甚至計算機也運行不過來了,更復雜的運算根本做不了。不行,不能這樣下去了。
後來就開始有人研究了,電子技術的發展越來越高科技,電子管也做得越來越小,最後用集成電路來控制開關,但是其實原理都是一樣的。可以運算的公式和能力也越來越強。其實還是不同的電子管組合成不同的開關,你以為這個組合就是幾個電子組的組合嗎?不,已經達到上億,上千億個電子管的組合了,這也是集成電路的優勢。
一開始是用紙來保存信息,但是前面說了,紙已經不夠用了,就開始出現了軟盤,光碟。光碟上的凹凸點,代表了0和1,其實就是存儲的介質發生了變化,後面發明了磁碟,發明了光碟,甚至是軟盤、機械硬碟,SSD等不同的儲存介質,這些其實就是保存的方式不同而已,其實它們保存的數據還是和打孔紙一樣,就是0和1的數據,只是相比紙而言,保存得更多,更方便,也更容易被機器讀取。
這時候保存的介質發生了變化 ,那麼讀取這些數據的那個探頭也發生了變化,變成了像軟盤的磁頭,光碟的激光頭等。
當這種保存的介質從紙變成了硬碟後,就會出現一個問題,一開始寫這些孔的時候,是用筆和給紙戳一個窟窿來讓機器識別,現在要怎麼把0和1這種數據寫到磁碟里呢?這里就發明了鍵盤了,最初的鍵盤當然和現在不一樣,但是原理是一樣的。還是按一個鍵,給一個電信號,磁頭收到了電信號,會判斷是0還是1,如果是0,就是反磁,如果是1就是正磁。一開始的鍵盤,就是只有幾個鍵,1鍵和0鍵。
後來有人覺得整天打0和1太麻煩了,如果我要打a這個符號,我就要按(0000000000000000),按這么多下,我的手都要變成一指禪了,於是就發明更復雜的鍵盤,比如我要打a,b,c,d,我就一開始就設定好,我打a,就直接發送一串機器碼(0000000000000000),我要打b就發送一串機器碼(0000000000000001),類似這樣的。其實也是給鍵盤做好一個約定,我一開始就把一些特定的,經常使用到的符號或其他有代表性的字母、數字,把它們對應的0和1組合的機器碼先做成一個表格,存到鍵盤的識別庫里,我按哪一個字元,你就給我發送哪一個字元對應的機器碼就可以了,這樣我就不用從早到晚按0和1這兩個鍵,按個沒完。這么一設定,我就不用記太多的機器碼組合了,一開始就把這些組合給分門別類。
這樣發展到這里,鍵盤的雛形就出來了,也為匯編的發展埋下了伏筆。匯編其實就是最接近或者它就是機器碼的一種組合語言,機器是可以直接識別出來。
前面說了,為了執行不同的公式和復雜的計算,就出現了這同的模板,只需要修改模板上的參數,就可以重復執行這些模板。
現在這些板從紙上存到了軟盤上,現在就更方便了。以前用紙的時候,用過一次,紙就沒用了,現在軟盤上的數據一直在,我只需要用磁頭把原來填的數據擦掉,重新寫個新的參數就可以了。你可以理解成當時在紙上我用鉛筆寫參數,用過一次,用橡皮擦給擦掉重復寫。但是紙是需要打孔的,打了孔,橡破擦也沒用,已經是一個孔了,你也補不上,所以那紙就廢掉了。
但是軟盤不一樣,軟盤是可以重復寫的。可以把磁消掉重新在那個位置寫一個新的參數,這樣就可以重復利用了。
後來這些模板越做越復雜,最後慢慢的發展成了一個小型的,有自己一些獨立功能的計算系統,這可以理解為,它有了系統的一些特性,但是還不算系統。
後來這些模板更強大了,有人覺得,因為需要更加強大的功能,一般的模板已經沒辦法滿足了,而且通過這種最原始的abcd來拼湊這些公式、模板,太累了。於是就有人開始寫中間解釋器。
怎麼理解呢?前面說了,一開始大家都是寫1和0組合,覺得太累了,於是把1和0的不同組合做成了一個庫,我只需要輸入1+1,abcd這種鍵盤上約定好的字母,鍵盤就發送對應的1和0組合給機器,機器就可以直接識別了。
現在需求越來越復雜,發現光打這些abcd,需要打越來越多的代碼,發現和之前打1和0一樣累了,怎麼辦呢?於是就有人打算再創一個中間庫,把這些abcd,1,2,3等組合做成一個庫,不同的組合代碼不同的意思,這就是從機器向交互語言的發展了初期了。
這個庫一開始還是用abcd等最初的那個鍵盤庫打上去的,當然做的也很累,但是只要這個庫完善好了,後面要繼續發展更高級的交互語言就簡單多了,以後所有交互語言寫出來的東西,都通過這個庫翻譯成機器語言庫,機器語言庫就可以識別了。
於是有了交互語言庫,大家就不用打太多的字元來拼湊成不同的模板了,因為交互語言庫有了不同的單片語合成更加有意義符號,人一看就懂,不需要那些零零散散的字母,沒有任何意義在裡面,還需要死記硬背。
這就有點像是古代的文言文,你一聽不知道他在說什麼,然後去查一下文言文字典,這樣你才能知道他在說什麼。
現在你可以用白話言語來交流了,這樣就更輕鬆了,你可以直接和他對話。
至於機器聽不聽的懂你說的意思,這個不要緊,有解釋庫,你把解釋庫做好了,你說的每一句話會自動翻譯成機器語言,就可以了。
隨著語言的越來越強大,現在就可以寫出更加復雜的模板了,後來顯示器的發展越來越強大,讓這些模板出現了更豐富的畫面,其實它顯示什麼東西,也還是會有一個庫的,只要約定好,我返回的這串代碼代表了什麼東西,你就顯示什麼東西就可以了。甚至後來有了圖片。
其實圖片的顯示也有自己的一個約定,就是我返回什麼代碼,你就解析成什麼顏色點,然後不同的代碼組合,就會現出一大串的顏色點組合在一起,就變成了有顏色的圖片和畫面。其實文字也是圖片的一種,就是一種圖信號。
回到模板上來,後來慢慢的,這些模板越來越強大,甚至有人開始動起心思,開始給這些模板加皮膚,加各種好看或者神奇的功能,讓它更加好用,於是最初始的系統就這么慢慢的發展起來了。
其實系統它不是突然就有的,是在整個機器的發展的過程中,慢慢的累積到一定程度後,順應發展而來的。
這些模板也是從最簡單的公式模板慢慢發展成了現在有了自己的界面,有了自己的獨立運算功能和各種娛樂功能等強大的系統。
最初的系統,也就是這些模板的誕生,其實是很辛苦的,它們需要有一定的積累,一些基礎的識別庫的完善,這些都是需要最初的那代人,一開始就約定好,然後慢慢地完善起來,然後高級的語言和系統才能通過這些庫來和機器交流。