說實話,這東西是個新鮮玩意,現在大家的焦點,還在怎么利用計算機完成特定功能這個事情上。
至于像高振東這種,仿佛什么事情都不干,只是讓屏幕亮起來,讓人能操作計算機,但是卻沒有具體目標的事情,一時之間讓大家都有點懵。
但是在場的畢竟都是專業人士,高振東說的意義一時之間還沒感受到,但是至少,很快他們就意識到這個東西對專業人員的好處。
對于現在的循環值守程序來說,其實文件管理是非常麻煩的一個事情。
甚至循環值守程序本身,都不是個省油的燈。
每當完成一個程序,如果是單獨運行,不加入循環值守程序的軟件菜單的話,那還好辦一些,直接存儲到存儲設備的某一個定起始位置,計算機在啟動后會自動從那個地方開始執行程序,自然就調用了。
但是如果為了方便,想放到現在這個循環值守程序的軟件菜單里面,方便調用和程序切換的話,那麻煩就來了。
要先把編譯好的程序放到存儲器里,然后記下它在存儲器里的起始位置,然后把這個軟件的名稱和起始位置配置到循環值守程序的配置文件里,這樣才能調用。
如果說這都不算最麻煩的話,那另外一個東西就超級麻煩了。
——文件管理。
在循環值守程序里,雖然有文件本身的結構,但是卻沒有文件系統。這意味著理論上,每個程序生成或者修改的文件都是它自己私有的,別的軟件根本訪問不了。
當然,也不是沒有解決辦法,比如,在存儲器上劃定一片或者多片區域,所有的程序都約定,當需要訪問某種用途的文件時,就去訪問這種區域,以特定的格式讀寫。
除了這種劃定的區域,其他地方千萬別動,那是別的軟件的地盤,甚至有可能是別的軟件的本體。
這樣一來,勉強算是解決了文件在多個軟件內的共享訪問的問題。
這也可以算是一種比較原始的文件系統,甚至都不能算系統,只能算是文件操作方法。
但是這樣的方法,是極為麻煩的。
這些文件的管理,基本上不是計算機在自動管理,而是人在管理,而且管理的是具體的存儲位置這種極為細節的問題,這就讓人很頭疼了。
雖然可以通過一些方法,做到根據配置自動裝載訪問地址等等小便利的功能,但是核心上,依然解決不了問題。
然而,現在,有了高總工這個東西,仿佛一切都迎刃而解了!
蒼天啊大地啊,終于不用算地址了嗎!
厲所長代表所有程序員,用激動的語氣問高振東:“高總工,別的你先別管,我就問一個事兒,這東西,能自動把文件管起來不?”
高振東笑了:“能!文件在這個系統里,就是一個二進制數據流。對于已經預設好的常用文件格式,你們只需確定文件的名字,指定具體的操作就可以,至于文件在存儲器上怎么分布、存儲、讀寫、修改、擦除、存儲空間的回收等等,都是操作系統的事情。”
池總工問出了自己總結的想法:“也就是說,我們只要下達類似‘操作系統,把名字為test的文本文件后面加300行字符,每行10個a’這種指令,他就能自動在存儲器上把文件操作完成了?而且文件的地址對于所有軟件都是透明的,任何軟件在操作文件的時候,只需要通過文件名就可以操作了?”
“對!操作系統甚至能做更多。不過只有文件名不夠,需要把文件路徑定義好。”
池總工已經不在乎這個“文件路徑”是個什么鳥東西了:“不用更多不用更多,這個就好,這個就挺好。”
這話說得,極為實用主義。
所有的軟件人員都面露喜色,就這一個功能,就能讓他們少掉很多頭發。
如果高振東知道他們現在在想什么,恐怕會大笑出來,笑死,你們那點兒頭發,終究是保不住的。
看著他們高興,高振東又向他們介紹了另外一個極為實用的功能。
“你們可以在任何一個程序里,直接調用其他程序,完成其他程序的功能。例如.”
高振東打開C編輯器,編寫了一個名為execprint的的程序,極為簡單,就一個功能,核心代碼就兩行。
——調用vi編輯一個名為xt的文件,然后調用打印程序打印xt。
調用的是外部可執行程序,而不是庫函數、內建函數這種程序內部的東西。
編譯之后,所有人看著他直接輸入execprint指令就運行了這個程序。
然后vi自動啟動,高振東輸入了那個著名的字符串,存儲并關閉vi,然后打印機“滋滋”作響,一張白紙吐了出來。
對于現在的程序員或者計算機操作人員來說,可執行程序之間的互相調用是完全沒有考慮過的事情,做不到,或者說做起來非常危險。
舉個例子,他們想完成剛才高振東演示的那個程序,完整操作是這樣的。
先打開vi,把xt編好,退出vi。
然后切換打開print程序,打印。
這算是運氣好,在循環值守環境里,同時有vi和print,如果兩者不在同一個環境里,那樂子可就大了,先完成vi操作,然后關閉計算機,換磁帶或者存儲器掛載print軟件,打印。
看起來好像不“太”麻煩,可是實際操作完全不是這么回事,而且,這涉及到一個程序自動執行的問題,這才是核心。
當然,對于高振東的操作系統來說,這些操作還有一個實現方式,那就是用腳本,不過那是另外一個問題了。
看著那一行熟悉的“NiHao,ShiJie!”,所有程序員都叫了起來。
“這個功能太好了!”
“有這個,我至少能節約四分之一的時間!”
“程序自動調用啊,我一直想著類似的功能,但是就是不知道怎么實現,原來那個循環值守環境框架太死了。”
“你好,師姐!”嗯?好像混進了奇怪的東西。
高振東趁熱打鐵,又給他們演示了上述操作的另外一種自動執行方法,批處理文件,或者說叫腳本,不過高振東覺得批處理這個名字,更貼切一些。
又是一陣哄鬧。
“這個更好,都不用編譯,直接用現有軟件就能搞出一個成系統的新軟件來。”
“批處理,這個名字起得好,有了這個功能,一些簡單的重復操作就能自動執行了。”
“高總工甚至還在里面加上了類似C語言的流程控制語句,不服不行。”
隨著操作系統面紗的一點點揭開,厲所長和池總工開始意識到,剛才高振東說的那番話,這個東西,遠遠不是他們開始想的那么簡單,意義重大。
也不是沒有毛病,比如對于現在的存儲器來說,只能在磁帶上調用,磁芯和晶體管存儲器上都別想,太貴了。
但是這是操作系統的問題嗎?不,這是我們自己的問題,買不起足夠多的高速存儲器。
池總工回想著剛才高振東的一番操作,突然發現了一個大家都沒注意到的點。
“高總工,你這個操作系統,可以同時執行多個程序?剛才在vi編輯的時候,很明顯,execprint程序是沒有退出的,還在運行,這是不是意味著”
所有人這才注意到這個細節,鴉雀無聲,這如果是真的,那完全是顛覆性的。
現在的計算機,基本上都是走單任務的,其實也是因為性能就那么點兒,能完成一個任務就不錯了。
但是不管怎么說,能實現多任務同時運行,這就是個了不起的變革,這意味著更多的可能性。
高振東笑了,怎么說呢,證據錯了,但是結論是對的。
“剛才那個啊?那個不算,那一個我只是使用了類似函數調用的堆棧操作保存了execprint的現場,實際當時在跑的,只有vi,execprint是在它運行完之后重新恢復現場開跑的。”
大家有些失望,但是又好像有些放心,這樣的結果,好像顯得高總工更加接地氣一點。
“但是.”得,最怕的就是但是了。
高振東可顧不上他們在想什么,繼續說道:“這個操作系統,的確是多任務操作系統,可以同時執行多個程序。說是同時,只是宏觀時間尺度上的同時,微觀尺度上,實際上是把時間分成很多片,按需輪流跑。”
“哇!!!!!!”
眾人一陣驚呼,還能這樣搞的?理論上這的確是可行的,時分操作嘛,灑灑水啦,簡單,可實際上,簡單個屁啊!
至少在座的所有人,有一個算一個,從來沒想到過到底怎么弄這個事情。
肖勤看著伍升遠三個人,目光中滿是羨慕嫉妒,這就是他們去的單位,這就是他們的技術帶頭人?恐怖如斯!可算是讓他們給逮著好機會了。
“嘶”
得到高振東的確認,厲所長和池總工倒吸一口涼氣,高總工這幾個月,在計算機方面好像都沒怎么大動作,可是萬萬沒想到,終年看不見,一舉露崢嶸。
這一搞,就搞了個大的。