Кіріспе

Symbolics операциялық жүйесі Lisp тіліне негізделген.

Genera – Symbolics компаниясы жасаған Lisp машиналары үшін арналған коммерциялық операциялық жүйе және интеграцияланған даму ортасы. Ол негізінен Массачусетс технология институтының (MIT) Жасанды интеллект зертханасының (AI Lab) Lisp машиналарында пайда болған алдыңғы операциялық жүйенің түйінді нұсқасы болып табылады, оны Symbolics, Lisp Machines, Inc. (LMI) және Texas Instruments (TI) компаниялары да қолданған. Genera сонымен қатар Symbolics компаниясы арқылы Open Genera ретінде сатылды, ол Tru64 UNIX жүйесінде жұмыс істейтін Digital Equipment Corporation (DEC) Alpha процессорына негізделген компьютерлерде Genera-ны іске қосады. 2021 жылы жаңа нұсқасы – Portable Genera шығарылды, ол Tru64 UNIX (Alpha), Linux (x86 64 және Arm64), сондай-ақ macOS (x86 64 және Arm64 (Apple Silicon M Series)) жүйелерінде жұмыс істейді. Ол жеке меншік бағдарламалық қамтамасы ретінде шығарылып, лицензияланады. Genera – Lisp бағдарламалау тіліне негізделген объектіге бағытталған операциялық жүйенің мысалы. Genera объектіге бағытталған бағдарламалауды кеңінен қолдайды және бағдарламалау стильдерінің әртүрлі комбинацияларын пайдалана отырып, күрделі бағдарламалық жасақтаманы кезең-кезеңмен және интерактивті түрде дамытуға мүмкіндік береді.

Genera операциялық жүйесі

Symbolics жаңа Lisp машиналарын жасап, Genera атауымен операциялық жүйені жариялады. Соңғы нұсқасы 8.5 болып табылады. Symbolics Genera 1980-ші жылдардың басында және 1990-шы жылдардың басында жасалды. Соңғы жылдары даму көбінесе түзетулерді, өте аз жаңа мүмкіндіктерді қамтыды. Symbolics Genera-ны MIT Lisp машинасының операциялық жүйесінің негізінде дамытты. Ол операциялық жүйені және қабатталған бағдарламалық жасақтаманы сатады. Кейінгі нұсқаларда қабатталған бағдарламалық жасақтаманың бір бөлігі Genera-ға енгізілді. Symbolics бастапқы MIT Lisp машинасының операциялық жүйе бағдарламалық жасақтамасын жақсартты және кеңейтті. Genera операциялық жүйесі тек Symbolics Lisp машиналары мен Open Genera виртуалды машинасы үшін қолжетімді болды. Symbolics Genera көптеген мүмкіндіктерге ие және Symbolics өмір бойы жасаған әртүрлі аппараттық құралдардың барлық нұсқаларын қолдайды. Оның бастапқы коды миллионнан астам жолдан тұрады; саны нұсқаға және орнатылған бағдарламалық жасақтамаға байланысты. Symbolics Genera магниттік лентада және CD-ROM-да жарық көрді. Операциялық жүйенің шығарылымы операциялық жүйенің және оның қосымшаларының көп бөлігінің бастапқы кодын да қамтамасыз етті. Пайдаланушы жұмыс істеп тұрған операциялық жүйенің барлық бөліктеріне еркін қол жеткізе алады және өзгерістер мен кеңейтулер жасай алады. Операциялық жүйенің бастапқы коды жүйелерге бөлінген. Бұл жүйелер дереккөздерді, бинарлық файлдарды және басқа да файлдарды біріктіреді. Жүйелік құрастыру құралы (SCT) барлық жүйелердің тәуелділіктерін, компоненттерін және нұсқаларын басқарады. Жүйеде екі сан бар: негізгі және қосалқы нұсқа нөмірі. Негізгі нұсқа нөмірі жүйенің толық құрастырылу санын есептейді. Қосалқы нұсқа жүйеге енгізілген түзетулер санын есептейді. Түзету – бұл жүйенің белгілі бір нұсқасындағы проблемаларды шешуге немесе кеңейтулерді ұсынуға арналған файл. Symbolics Open Genera деп аталатын нұсқасын жасады, ол DEC Alpha негізіндегі жұмыс станцияларында Genera-ны іске қосуға мүмкіндік беретін виртуалды машинаны, сондай-ақ жеке сатылатын бірнеше Genera кеңейтулерін және қосымшаларын (мысалы, Symbolics S Graphics жиынтығы) қамтыды. Сонымен қатар, олар Common Lisp-те кіріктірілген пайдалану үшін Minima деп аталатын жаңа операциялық жүйе жасады. Соңғы нұсқасы Portable Genera, оның виртуалды машинасы x86 64, Arm64 және Apple M1 процессорларына, DEC Alpha процессорынан өзге, портталған. Виртуалды машина Linux және macOS, Tru64 UNIX-тен басқа, жүйелерінде де жұмыс істейді. Бастапқы Lisp машинасының операциялық жүйесі Lisp Machine Lisp-те жасалды, ол Lisp-тің Flavors объектіге бағытталған кеңейтуін пайдаланды. Symbolics Flavors-қа New Flavors деп аталатын жаңару ұсынды. Кейінірек Symbolics Common Lisp және Common Lisp Object System (CLOS) жүйелерін де қолдады. Содан кейін Symbolics Common Lisp Genera бағдарламалық жасақтамасын жазу үшін стандартты Lisp диалектісіне айналды. Операциялық жүйенің бағдарламалық жасақтамасы негізінен Lisp Machine Lisp (ZetaLisp деп аталады) және Symbolics Common Lisp тілдерінде жазылған. Бұл Lisp диалектілері Genera жүйесінде де ұсынылған. Бағдарламалық жасақтаманың кейбір бөліктері Flavors, New Flavors және Common Lisp Object System жүйелерін де пайдаланды. Genera операциялық жүйесінің кейбір ескі бөліктері Symbolics Common Lisp және Common Lisp Object жүйесінде қайта жазылды. Операциялық жүйенің көп бөлігі ZetaLisp және Flavors (немесе New Flavors) тілдерінде жазылған күйінде қалды.

Пайдаланушы интерфейсі

Symbolics Genera-ның алғашқы нұсқалары Lisp машинасының операциялық жүйесінің бастапқы графикалық пайдаланушы интерфейсі (GUI) терезе жүйесімен құрылды. Содан кейін Symbolics презентацияға негізделген пайдаланушы интерфейсі бар Dynamic Windows деп аталатын жаңа терезе жүйесін жасады. Бұл терезе жүйесі 1986 жылы Genera 7 нұсқасымен бірге ұсынылды. Genera қолданбаларының көптеген түрлері пайдаланушы интерфейсі үшін Dynamic Windows-ты пайдаланды. Кейіннен Common Lisp Interface Manager (CLIM) ретінде, басқа өндірушілердің Common Lisp орындалымдарында жұмыс істеу үшін терезе жүйесінің бөліктерін ауыстыру жұмыстары жүргізілді. CLIM нұсқалары (басқаларымен қатар) Allegro Common Lisp, LispWorks және Macintosh Common Lisp үшін қолжетімді болды. Ашық кодты нұсқасы (McCLIM) да бар. Dynamic Windows экранға шығарылатын барлық мәлімет үшін типтелген нысандарды қолданады. Көрсетілген барлық ақпарат көрсетілген нысандармен байланысты күйінде сақталады (шығарылымды жазу). Бұл мәтіндік және графикалық шығарылым үшін де жұмыс істейді. Орындалу кезінде осы нысандарға қолданылатын операциялар сыныптық иерархия мен қолжетімді операциялар (командалар) негізінде есептеледі. Командалар параметрленген иерархиялық командалар кестелерінде ұйымдастырылған. Командаларды тышқанмен (тышқанның бірнеше пернесін бірдей басуды кеңінен пайдалана отырып), пернетақта арқылы және командалық жол интерфейсі арқылы енгізуге болады. Барлық қолданбалар әртүрлі пайдалану түрлеріне бейімделетін бір командалық жол интерпретаторымен бөліседі. Терезе жүйесінің графикалық мүмкіндіктері PostScript графикалық моделіне негізделген. Пайдаланушы интерфейсі көбінесе монохромды (қара және ақ) түсте болады, себебі аппараттық консоль әдетте осы түсті ұсынатын. Бірақ түстік қолдау да кең, түстік кадрлық буферлерді немесе түсті қолдауға ие X Window System (X11) серверлерін пайдалану арқылы қолжетімді. Іс-әрекеттер (қолданбалар) бірнеше тақталары бар толық экранды пайдаланады, бірақ терезелер кішірек болуы мүмкін. Бұл іс-әрекет терезелерінің орналасуы әртүрлі экран өлшемдеріне бейімделеді. Іс-әрекеттер әртүрлі тақта орналасулары арасында ауыса алады. Genera терезелерді басқару, қолданбаларды ауыстыру және терезе жүйесін басқару үшін жүйелік мәзірді ұсынады. Пайдаланушы интерфейсінің көптеген мүмкіндіктерін (іс-әрекеттер арасында ауысу, іс-әрекеттерді жасау, процестерді тоқтату және іске қосу және т.б.) пернетақта командаларымен басқаруға болады. Dynamic Lisp Listener – толық графикалық мүмкіндіктері бар және тышқанмен өзара әрекеттесуді қолдайтын командалық жол интерфейсінің мысалы. Ол Lisp өрнектері мен командаларын қабылдайды. Шығарылым тышқанға сезімтал. Lisp тыңдаушысы әртүрлі орнатылған командалар үшін деректерді енгізуге арналған нысандарды көрсетуге қабілетті. Пайдаланушы интерфейсі кең ауқымды онлайн көмек және контекстке байланысты көмек, сондай-ақ әртүрлі жағдайларда таңдауды аяқтау мүмкіндігін ұсынады.

Құжаттамалық

Genera толыққанды гиперсілтемелі онлайн құжаттаманы қолдайды. Құжаттама Document Examiner – алғашқы гипермәтіндік браузер арқылы оқылады. Құжаттама редактормен және Lisp тыңдаушысымен әртүрлі контексттерде көрсетілуі мүмкін, қайта пайдалануға болатын шағын құжаттамалық жазбаларға негізделген. Құжаттама кітаптар мен бөлімдерге ұйымдастырылған. Кітаптар онлайн құжаттамамен бірдей мазмұндағы баспа түрінде де ұсынылды. Құжаттама дерекқоры Genera жүйесімен бірге келеді және инкрементті жаңартулар арқылы өзгертілуі мүмкін. Құжаттама Symbolics Concordia деп аталатын, Genera жүйесімен бірге жеткізілмеген жеке қосымша арқылы жасалды. Concordia құжаттамалық жазбаларды өңдеуге арналған Zmacs редакторына кеңейтім, графикалық редактор және бетті алдын ала қарау құралын ұсынады. Құжаттама пайдаланушы нұсқаулықтарын, орнату бойынша нұсқауларды және әртүрлі Lisp конструкциялары мен кітапханаларына сілтемелерді қамтиды. Белгілеу тілі Scribe белгілеу тіліне негізделген және оны әзірлеушілер де пайдалана алады. Genera постскрипт принтерлеріне басып шығаруды қолдайды, басып шығару кезегін және Lisp тілінде жазылған PostScript интерпретаторын ұсынады.

Ерекшеліктері

Genera сонымен қатар әртүрлі желілік протоколдар мен оларды пайдаланатын қосымшаларды қолдайды. Ол TCP/IP-ді кеңінен қолдайды. Genera бірнеше жіптерді (процестер деп аталатын) қолдайтын бір процессорлы машиналарды қолдайды. Genera қоқыс жинаудың бірнеше түрін қолдайды: толық GC, орнында GC, күмекейлік GC және уақытша GC. Уақытша коллектор тек физикалық жадты пайдаланады және жад басқару блогын физикалық жадтағы өзгертілген беттер туралы ақпарат алу үшін пайдаланады. Коллектор ұрпақтарды пайдаланады және виртуалды жад аймақтарға бөлінеді. Аймақтарда белгілі бір типтегі объектілер (жолдар, биттік карталар, жол атаулары) болуы мүмкін, және әр аймақ әртүрлі жад басқару механизмдерін пайдалана алады. Genera екі файл жүйесін іске асырады: үлкен файлдар үшін FEP файл жүйесі және көптеген кіші файлдар үшін оңтайландырылған Lisp Machine File System (LMFS). Бұл жүйелер файлдардың әртүрлі нұсқаларын да сақтайды. Егер файл өзгертілсе, Genera бұрынғы нұсқаларын сақтап қалады. Genera сонымен қатар басқа, жергілікті және қашықтан файл жүйелеріне қол жеткізеді, оның ішінде NFS, FTP, HFS, CD ROM, магниттік ленталар. Genera желілік жүктөөді қолдайды. Genera Symbolics-тен Statice нысандық деректер қорына клиенттік бағдарлама ұсынады. Genera орындалу кезінде туындайтын барлық қателерді өңдеу үшін шартты жүйені (көзқарас жүйесін) кеңінен пайдаланады және осы қателердің көпшілігін қалпына келтіре алады. Мысалы, егер желілік қосылымда қате туса, желілік операцияларды қайтадан орындауға мүмкіндік береді; қолданба коды жұмысын жалғастырады. Қате пайда болған кезде пайдаланушыларға қайта іске қосу мәзірі ұсынылады (тоқтату, қайталау, жалғастыру опциялары), ол туындаған қатеге қатысты. Genera кең ауқымды жөндеу құралдарына ие. Genera жұмыс істеп тұрған жүйенің нұсқаларын әлемдерге сақтай алады. Бұл әлемдерді жүктеуге болады, сонда сақталған деректер мен кодтар болады.