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