软件水文
現(xiàn)在電腦越來(lái)越普及了,一點(diǎn)是人們生活水平提高了,一點(diǎn)是電子產(chǎn)品價(jià)格真的下降了,還有很重要的一點(diǎn)是它確實(shí)豐富了人們物質(zhì)和精神生活。電腦用起來(lái)也確實(shí)太方便了,一按電源鍵就能使用了,而且還有很多的匪夷所思的功能。我老家的長(zhǎng)輩們對(duì)我所從事的軟件這個(gè)行業(yè)都覺(jué)得很神奇,而且完全不能理解。確實(shí)我對(duì)軟件的熟悉也僅限于我知道去哪里能得到這個(gè)軟件,這個(gè)軟件能做什么,其它的就真的不知道了。
朋友們有沒(méi)有想過(guò),在我們按下電源鍵那一刻起電腦都做了什么,那么令人頭痛的東西我就不絮叨了-> _ ->!
圖 boot.asm
上圖的代碼(圖 boot.asm)使用命令nasm boot.asm -o boot.bin,將會(huì)把代碼變成軟件,接下來(lái)運(yùn)行一系列的命令將這個(gè)軟件打包。
第一條命令:
dd if=/dev/zero of=blank.img bs=512 count=2880
第二條命令:
dd if=boot.bin of=boot.img bs=512 count=1
第三條命令:
dd if=blank.img of=boot.img skip=1 seek=1 bs=512 count=2879
上面生成的boot.img就是我們需要的打包好的軟件,其實(shí)這是一個(gè)軟盤鏡像。把它直接寫到軟盤里就可以使用了,但是在今天如此先進(jìn)的時(shí)代,如此落后的軟驅(qū)技術(shù)我就不難為朋友們?nèi)ヅ?。去安個(gè)虛擬機(jī)去吧,呵呵,硬件不要求,軟件又來(lái)了一個(gè)。
弄好虛擬機(jī)后,先新建一臺(tái),把剛剛生成的軟件先運(yùn)行起來(lái)再說(shuō)。裝什么操作系統(tǒng)?Windows?OR Linux?OR Othres?我這個(gè)軟件特殊,不依賴操作系統(tǒng),直接驅(qū)動(dòng)電腦硬件。神馬?對(duì),這個(gè)就是引導(dǎo)扇區(qū)使用的軟件,讓電腦從boot.img啟動(dòng),下圖(圖 myos)就是我們軟件的運(yùn)行結(jié)果。
圖 myos
這是如何做到的?boot.img能完美適配所有電腦么?這個(gè)就要說(shuō)設(shè)計(jì)者們的偉大之處了。規(guī)定是這樣的:
1. BIOS首先會(huì)加載磁盤的第一扇區(qū)
2. BIOS僅載入512字節(jié)
3. 將該512字節(jié)放入0x7c00處
4. 檢查511和512字節(jié)是不是55和AA
如果檢查通過(guò)BIOS則認(rèn)為這是一個(gè)有效的引導(dǎo)扇區(qū),按照引導(dǎo)扇區(qū)軟件的要求繼續(xù)啟動(dòng)電腦(比如我們用的windows操作系統(tǒng))。
硬件廠商和軟件廠商就靠這些簡(jiǎn)單的約束,和諧的讓我們的電腦優(yōu)雅的裝點(diǎn)著我們美好的生活。程序猿們是否對(duì)他們的設(shè)計(jì)驚嘆稱奇?不管你是不是贊嘆了,反正我是對(duì)他們的景仰那是如滔滔江水連綿不絕又如黃河泛濫一發(fā)不可收拾。
遠(yuǎn)的不說(shuō),我們說(shuō)近的。開發(fā)一套程序我們?cè)撊绾巫?#xff0c;所謂兵馬未到,糧草先行,那好我們開工吧。老板說(shuō)“程序猿們,我想做一個(gè)電商軟件,我們開工吧。做個(gè)IPhone手機(jī)端的,做個(gè)Andorid手機(jī)端的,做個(gè)瀏覽器端的,再來(lái)個(gè)電腦應(yīng)用端的”。這么一分?jǐn)傁聛?lái),這個(gè)開發(fā)團(tuán)隊(duì)可就真的很龐大了,不要小看我們這幾個(gè)常用設(shè)備上的開發(fā),這每一款軟件都有其強(qiáng)大的規(guī)則,我們按其嚴(yán)謹(jǐn)開發(fā),自然是水到渠成。
IPhone端比較封閉,一款軟件的誕生需要Apple的批準(zhǔn),不然你就永遠(yuǎn)讓用戶用開發(fā)模式的軟件吧。Android雖然Google也有嚴(yán)格的審核,但是它還是很靈活的,可以通過(guò)Google之外的其它應(yīng)用商下載安裝,或者直接在軟件官網(wǎng)下載程序自主安裝。瀏覽器端則要想好是適配IE內(nèi)核,還是Webkit內(nèi)核,等等瀏覽器內(nèi)核,或者都適配。當(dāng)然每種瀏覽器內(nèi)核還有版本之分、頁(yè)面大小之分等等。電腦應(yīng)用端則更像自主開發(fā)了一個(gè)瀏覽器,那開發(fā)它的優(yōu)勢(shì)在哪里呢?這么提一下吧,我們玩的魔獸世界、Dota這些沒(méi)用瀏覽器去玩吧。
剛才提到的這幾個(gè)軟件,都是在用戶端運(yùn)行的,它們所需要的數(shù)據(jù)還需要一個(gè)強(qiáng)大的服務(wù)器支持,服務(wù)器端的程序也是一個(gè)龐大的開發(fā)量。剛才說(shuō)兵馬未到,糧草先行。這個(gè)服務(wù)端程序和用戶端程序之間的協(xié)議,就是我們先行的糧草。人吃糧,馬吃草,這IPhone、Android、瀏覽器和電腦應(yīng)用,都有各自的協(xié)議特色,需要和諧對(duì)待。
文章到這里,僅就蜻蜓點(diǎn)水般的提到了軟件開發(fā)。所謂醉翁之意不在酒,只在文中上半篇,希望對(duì)我中華有志之士能做到拋磚引玉。
總結(jié)
- 上一篇: 全志Linux下载工具,全志 Allwi
- 下一篇: 小红书2020校招前端笔试题卷一