Кіріспе
Реалдық уақыт операциялық жүйесі
OS 9 – 1980-ші жылдары Microware Systems Corporation компаниясы Motorola 6809 микропроцессоры үшін жасаған, процеске негізделген, көп тапсырмалы, көп пайдаланушы операциялық жүйелер отбасы. 2001 жылы оны Radisys Corp сатып алды, ал 2013 жылы қазіргі иесі Microware LP қайтадан сатып алды. OS 9 отбасы жалпы мақсаттағы есептеулерде танымал болды және коммерциялық кіріктірілген жүйелерде, сондай-ақ хоббистер арасында қолданылып келеді. Бүгінде OS 9 – бұл Motorola 68000 сериялы машина тіліндегі операциялық жүйе және C тілінде жазылған, бастапқыда OS 9000 деп аталған, портативті (PowerPC, x86, ARM, MIPS, SH4 және т.б.) нұсқасы.
Тарих
1979–1980 жылдардағы алғашқы нұсқасы ("OS 9 Level One") Motorola 6809 CPU үшін құрастыру тілінде жазылды және оның барлық процестері жад басқару блогысыз CPU-ның 64 КБ адрестік кеңістігінде орындалды. Ол Motorola компаниясы 6809 жобасының бір бөлігі ретінде келісімшарт жасасқан BASIC09 жобасы үшін операциялық жүйені қолдау ретінде жасалды. Кейінгі 6809 нұсқасы ("Екінші деңгей") жад карталау аппараттық мүмкіндіктерін пайдаланады, 2 МБ-ға дейін жадты (шамамен 1980) көптеген іске асыруларда қолдайды және кейбір платформаларда графикалық интерфейс кірді. 1983 жылы OS 9/6809 Motorola 68000 ассемблеріне көшірілді және кеңейтілді (OS 9/68K деп аталды); ал одан кейінгі (1989) нұсқасы көбінесе C тілінде қайта жазылды. Портативті нұсқа бастапқыда OS 9000 деп аталды және 1989 жылы 80386 компьютерлік жүйелер үшін шығарылды, содан кейін 1995 жылы PowerPC-ге көшірілді. Бұл кейінгі нұсқаларда OS 9/6809 Екінші деңгейінің жад карталау мүмкіндіктері жоқ, себебі оларға қажеттілік туындамады. Олар барлық процестер бөлісетін бір ғана жазық адрестік кеңістікті қолданды; жад карталау жабдықтары, егер бар болса, көбінесе процестер тек құқығы бар жадқа ғана қол жеткізуін қамтамасыз ету үшін пайдаланылады. 680x0 және 80386 (соңырауы) МПУ-лардың барлығы кез келген жағдайда 1 МБ-дан астам жадты тікелей қолдайды. 6809 процессордың оңай қолданылатын қайта кіретін объектінің код мүмкіндіктерін пайдаланып, ертедегі кең таралған дизайн шешімдерінің салдарынан OS 9 үшін арналған бағдарламалар қайта кіруге тиіс; компиляторлар қайта кіру кодын автоматты түрде шығарады және OS 9 үшін құрастырушылар оған айтарлықтай қолдау көрсетеді. OS 9 позицияға тәуелсіз кодты және деректерді де қолданады, өйткені 6809 оны тікелей қолдайды; компиляторлар мен ассемблерлер позицияға тәуелсіздікті қолдайды. OS 9 ядросы бағдарламаларды жүктейді (қосылған кодты қоса алғанда) және деректерді бөліп береді, мұнда жад картасында жеткілікті бос орын бар. Бұл бүкіл операциялық жүйенің және барлық қолданбалардың ROM немесе Flash жадына орналастырылуына мүмкіндік береді және бағдарламалар RAM-ге жүктелгенде және орындалғанда жадыны басқару талаптарын жеңілдетеді. OS 9-дағы бағдарламалар, құрылғы драйверлері және I/O менеджерлері барлығы "модульдер" болып табылады және қажет болған жағдайда динамикалық түрде жүктелуі және түсірілуі мүмкін (байланыс санағына байланысты). OS 9/6809 Motorola EXORbus жүйелерінде жұмыс істейді, олар Motorola 6809, SS 50 Bus және SS 50C автобустық жүйелері сияқты компаниялардан, SWTPC, Tano, Gimix, Midwest Scientific және Smoke Signal Broadcasting, STD 6809 автобустық жүйелері бірнеше жеткізушілерден, Fujitsu FM 11, FM 8, FM 7 және FM 77, Hitachi ベーシックマスター #S1 және басқалары. DEC-ке үйлесімді жабдықтарды үшінші тараппен қамтамасыз ететін System Industries компаниясы VAX қондырғыларында QIC (квартал инч картридж) таспалық резервтік контроллерлерінде OS9 жүретін 68B09E процессорды қолданды. Ең танымал аппарат (бағасы төмен және кең таралған болғандықтан) TRS 80 Түсті компьютер (CoCo) және ұқсас Dragon сериясы болды. Тіпті CoCo-да, өте минималистік аппараттық платформада, OS 9/6809 Level One-де бір мезгілде бірнеше интерактивті пайдаланушыны (мысалы, консольдің пернетақтасында, екіншісі фонында, ал үшіншісі сериялық қосылым арқылы интерактивті) және басқа да бірнеше интерактивті емес процестерді іске қосуға болады. Бір жүйе, Positron 9000, білім беру мақсатында көп пайдаланушы жүйесі ретінде орналастырылды, Microware-дің BASIC және Pascal орталарын ұсынды, 64 КБ-дан 512 КБ-ға дейін оперативті жадымен жабдықталды және төрт-он екі сериялық портты ұсынды. Алайда, жүйедегі ең төменгі конфигурациядағы бірнеше пайдаланушы операциялары жауап беру жылдамдығына әсер еткен. BBC Micro үшін OS 9 процессордың екінші нұсқасын Cumana шығарды. Ол RAM, SCSI қатты диск интерфейсі және MC68008 процессорын қамтыды. OS 9 Commodore SP 9000 немесе SuperPET-ке портталды, онда базалық 8032 моделінің 6502-іне қоса 6809 болды, сондай-ақ 64 КБ артық жады болды. Торонтолық PET Users Group HW/SW жобасын демеушілік етті, оған MMU-мен бірге OS 9 тарату дисктері бар қызыл тақта кірді. Екі процессор, 96 КБ, 25 × 80 экран және сериялық, параллель және IEEE 488 порттары мен көптеген шеткі құрылғылары бар бұл қол жетімді ең қабілетті OS 9 жүйелерінің бірі болды. OS 9-дың көп пайдаланушы және көп тапсырмалы мүмкіндіктері оны жалпы мақсаттағы интерактивті компьютер жүйесі ретінде қолдануға мүмкіндік береді. Ол үшін көптеген үшінші тараптың интерактивті қолданбалары жазылды, мысалы Dynacalc электронды кестесі, VED мәтін пішімдеуіші және Stylograph және Screditor 3 WYSIWYG мәтін өңдеушілері. TSC-нің nroff эмуляциялық форматтаушысын MicroWay OS 9-ға көшірді. 1980 жылдардың ортасында OS 9 CD i операциялық жүйесіне таңдалды. Шамамен сол уақытта Microsoft компаниясы Microware компаниясын сатып алуға тырысты, негізінен CD RTOS, CD i операциялық жүйесіне қызығушылық танытты. Келіссөздер сәтсіз аяқталды және келісім жасалмады; Microware тәуелсіздігін сақтауды шешті. 1980 жылдардың соңында Microware OS 9000-ды шығарды, операциялық жүйенің көбірек портативті нұсқасы. Операциялық жүйенің басым бөлігі C тілінде қайта жазылды, аппараттық құралға тәуелді бөліктері құрастыру тілінде қалды. Кейбір "жаңа мүмкіндіктер" қосылды, мысалы, ағаш тәрізді ядролық модуль атауы кеңістігі. OS 9000 бастапқыда Motorola 680x0 процессорлар отбасысына, Intel 80386 және PowerPC-ге портталды. OS 9000/680x0 маркетингтік сәтсіздікке ұшырады және өте жылдам қайтарылып алынды, мүмкін, көптеген клиенттерге бұрынғы OS 9/680x0-дың тұрақтылығына қарағанда, іріктеулі және баяу операциялық жүйені сынап көруге құлшыныс болмады. Motorola 680x0 процессорлар отбасы мен VME тақталық компьютерлік жүйелердің жеткізушілері өмірлік циклінің соңына жақындап қалған болуы OS 9000/680x0-тың танылмауына әсер еткен болуы мүмкін. Кейін Microware барлық операциялық жүйелерін – бастапқыда OS 9000 деп аталғандарды қоса алғанда – жай ғана OS 9 деп атауды бастады және ұялы телефондар, автомобильдік навигация және мультимедиа сияқты портативті тұтынушылық құрылғылар нарығына бизнестік қызығушылығын ауыстырды. 1980 жылдардың соңы мен 1990 жылдардың басында Broadcast Systems жүйелерінде қолданылатын Character Generators компьютерлері OS 9 және OS 9000-ды кеңінен пайдаланды. Қазір тоқтатылған Pesa Electronica компаниясы CG 4722 және CG4733 сияқты CG-лерінде OS 9-ды қолданды.
Атаулар қақтығыстары мен сот шешімдері
1999 жылы, OS 9 алғаш рет шығарылғанынан кейін он тоғыз жыл өткен соң, Apple Computer Mac OS 9 жүйесін шығарды. Microware компаниясы сол жылы Apple компаниясын сауда белгісін бұзғаны үшін сотқа берді, бірақ судья екі жүйенің шатастырылу ықтималдығының төмен екенін айтты. Microware-дің жақсы танылмаған OS 9 жүйесін білмейтін кейбір Macintosh қолданушылары comp.os.os9 жаңалық тобында OS 9 нені білдіріп тұрғанын түсінбей жазды. 2001 жылы RadiSys компаниясы Intel IXP 1200 желілік процессор ресурстарын алу мақсатымен Microware компаниясын сатып алды. Бұл сатып алу Microware-ге қаржы құйып, OS 9 жүйесін әзірлеуді және қолдауды жалғастыруға мүмкіндік берді. 2013 жылдың 21 ақпанында Microware LP (жапондық Freestation, немістік Microsys Electronics және АҚШ-тың RTSI LLC серіктестігі) RadiSys компаниясынан Microware, OS 9 атауларына және барлық активтерге құқықтарды сатып алу бойынша активтерді сатып алу туралы келісімге қол қойғанын хабарлады.
Тапсырманы жоспарлау
OS 9 нақты уақыт ядросы, тапсырма ауыстыру және процестер аралық байланыс мүмкіндіктері арқылы бірнеше тәуелсіз қолданбалардың бір мезгілде орындалуына мүмкіндік береді. Барлық OS 9 бағдарламалары кем дегенде бір жеңіл процесс (жіп) бар процестер ретінде іске қосылады, бірақ олар іс жүзінде шексіз көп жіптерді қамтуы мүмкін. Процесс ішінде, осы жеңіл процестер жадты, I/O жолдарын және басқа да ресурстарды POSIX жіптер спецификациясы мен API-ына сәйкес бөліседі. OS 9 жіптерді әрбір басымдық деңгейі ішінде дөңгелек тізбектей кезектілікпен жоспарлайтын, белгілі басымдыққа ие алдын ала жоспарлау алгоритмін пайдаланады. Уақыт бөлігі қолдау көрсетіледі. Басымдық деңгейлері қартаюды қолдайтын диапазонға және қатаң басымдық жоспарлауды қолданатын жоғары басымдыққа бөлінеді. Әрбір процесс тиісті OS 9 қызмет сұрауын жіберу арқылы кез келген жүйелік ресурсты қолдана алады. Әрбір жоспарлау сәтінде OS 9 белсенді кезектегі алдыңғы жіптің басымдығын ағымдағы жіптің басымдығымен салыстырады. Егер белсенді кезектегі жіптің басымдығы ағымдағы процестің басымдығынан жоғары болса, жүйе контекстті сол жіпке ауыстырады. Көнею (aging) уақыт өте келе белсенді кезектегі жіптердің тиімді басымдығын жасанды түрде арттырады. Белгілі интервалдарда уақыт тілімі (time slicing) ағымдағы жіпті сол басымдық деңгейіндегі басқа жіптердің артында белсенді кезекке қайтарады.
Unix-пен салыстыру
OS 9 процестері мен I/O жолдарының ұғымы Unix-ке шамамен барлық жағынан ұқсас, бірақ бірнеше маңызды айырмашылықтар бар. Біріншіден, файлдық жүйе жалғыз ағаш емес, керісінше, әр ағаш құрылғыға сәйкес келетін орман. Екіншіден, OS 9-да Unix стиліндегі fork жүйелік шақыруы жоқ, оның орнына белгілі бір бағдарламаны іске қосатын процесті құратын жүйелік шақыру бар, бұл fork exec немесе spawn сияқты функцияларды орындайды. Сонымен қатар, OS 9 процестері бір емес, екі «ағымдағы каталогты» қадағалайды; «ағымдағы орындалу каталогы» – бағдарламаларды жүктеу үшін әдепкі бойынша бірінші қаралатын орын (бұл UNIX-тегі PATH ортасының айнымалысына ұқсас). Екіншісі – ағымдағы деректер каталогы. Тағы бір айырмашылық – OS 9-да әже-шеше каталогтары аралық слэштерсіз үш немесе одан көп нүктені қайталап көрсетілуі мүмкін (осындай мүмкіндік 4DOS/4OS2/4NT/TC-де де кездеседі). Мысалы, OS 9-дағы /file, Unix-тегі ///file-ге ұқсас. Бірақ . және .., тек бір немесе екі нүктелі болғанда, олардың әрқайсысы OS 9 және Unix жүйелерінде бірдей жұмыс істейді. OS 9 бастапқыда модульдік дизайнмен құрылған, 6809 процессорларын жасаушылардың ойлары мен олардың бағдарламалық жасақтаманың болашақта қалай таратылатынын күткендері әсер еткен (1979 жылғы қаңтар-наурыз айларындағы Terry Ritter және Motorola компаниясының CPU-ны жасаған командасының үш бөлімнен тұратын мақалалар сериясын қараңыз). Модульдік құрылымды толығырақ түсіндіру қажет: OS 9 «модульдер каталогын» сақтайды, ол жадта жүктеу арқылы немесе жүктеу кезінде ROM-да алғашқы сканерлеу кезінде табылған барлық модульдердің тізімі болып табылады. OS 9 қабығына команда енгізген кезде, ол бірінші кезекте ағымдағы модульдер каталогында сәйкес атаумен модульді іздейді және оны тауып алса (және сілтеме санын арттырады) пайдаланады, әйтпесе дискіде тиісті атаумен файлды іздейді. OS 9/6809 және OS 9/68000 жүйелерінде модульдер каталогы жазық, бірақ OS 9000 модульдер каталогын ағаш тәрізді құрылымдалған етіп жасады. OS 9000 қабығы алдын ала жүктелген модульдерді іздеу үшін модульдер каталогтарының тізбегін көрсететін MODPATH ортасының айнымалысын іздейді, бұл барлық нұсқалардағы PATH айнымалысына ұқсас. Модульдер бағдарламаларды сақтау үшін ғана емес, деректерді сақтау үшін де динамикалық түрде құрылуы мүмкін және OS 9 ортақ жадты қолдаудың тәсілі болып табылады. OS 9/non 68000 POSIX жіптерін қолдайды. Бір процесс кез келген сандағы жіптерді іске қоса алады.
Мәртебе
OS 9 кеңінен қолданылмай қалды, бірақ Microware LP оны әлі де қолдайды және ARM және x86 сияқты заманауи архитектураларда жұмыс істейді. Ұсынылған Ultra C/C++ компиляторы C89 стандартын қолдайды, бірақ C99 не C++98 стандартын қолдамайды. Ultra C++ C++ үлгілерін шектеулі түрде қолдайды. Ол сондай-ақ wolfSSL сияқты танымал SSL/TLS кітапханаларымен үйлесімді. Стив Адамстың G Windows-ымен жұмыс істейтін OS 9 нұсқасы Ontrak Systems / Lam Research компаниясы өндірген жартылай өткізгіш пластиналарды тазартатын құрылғыларда (wafer scrubbers) бар. Бүгінгі таңда мыңдаған осындай жүйелер қолданылуда, алайда олардағы бағдарламалық жасақтама 1999 жылы, Y2K мәселелерін шешу үшін соңғы нұсқасы жасалды. OS 9/68K нұсқалары 68000 отбасылық платформаларда, соның ішінде Жапониядағы Sharp X68000, дизайнерлері Түсті Компьютерден жаңарту ретінде қарастырған кейбір дербес компьютерлерде (мысалы, 68070 және 68340 процессорлары негізіндегі MM/1, және Франк Хогг лабораториясының басқа компьютерлері, PEP модульдік компьютерлер және Delmar Co.) қолданылды. Ultrascience компаниясы таратып жүрген 68000 процессорлы Apple Macintosh компьютерлеріне де портталған. Дигби Тарвиннің Amiga-ға жасаған порты да бар деген мәлімдемелер бар. OS 9/68K Caltrans компаниясының 2070 1B және 2070 1E контроллерлік карталарында қолдану үшін міндеттелген, сондықтан көптеген Солтүстік Американың жол қозғалысын басқару жүйелерін іске қосу үшін пайдаланылады. OS 9/68K басқа да енгізілген қосымшаларда қолданылады, соның ішінде әлі де Юта штатындағы ScanLine Technologies компаниясы өндіретін Quanta Delta теледидарлық хабарларды көрсету генераторында (character generator) қолданылады. Бұл жүйедегі пайдаланушы интерфейсі жүктелу кезінде басталатын болса да, құрылғының редакторлық каналының мониторында түбірлік қабықшаны (root shell prompt) ашатын жасырылған, құжатталмаған пернетақта тізбегі болды. OS 9 енгізілген нарықта Fairlight CMI синтезаторларында, робототехникада, автомобильдердегі навигациялық жүйелерде және Philips Compact Disc Interactive (CD i) өнеркәсіптік стандартында қолданылды. TRS 80 Түсті Компьютер (және оның клондары) әлі де пайдаланушыларға ие және Чикагода жыл сайын конференция өткізіледі; 2018 жылы 27-ші жылдық "Соңғы" Чикаго CoCoFEST 2018 жылдың 21-22 сәуірінде өтеді деп жоспарланған. Канадалық бағдарламалаушылар тобы тиімділік үшін және Hitachi 6309 процессордың жергілікті режимін пайдалану үшін CoCo 3 (адрестік аударма аппараттығымен) үшін OS 9/6809 II деңгейін қайта жазды. Бүгінгі CoCo пайдаланушылары әдетте CoCo 3-тегі 68B09E процессорын Hitachi 63B09E процессорымен ауыстырып, NitrOS 9 деп аталатын қайта жазылған нұсқаны іске қосады. Бұл комбинация өте тез жұмыс істейді, себебі ол өте арзан, 8 биттік компьютерлік жүйеде жұмыс істейді. Gary Becker's CoCo3 FPGA - синтезделген TRS 80 Түсті Компьютер, ол Altera DE 1 даму тақтасында NitrOS 9 жүйесін іске қосады. 6809 CPU өзегін Джон Кент жобалаған және қазіргі уақытта 25 МГц жылдамдықпен жұмыс істейді. OS 9000/80x86 Intel x86 процессорлары негізінде құрастырылған PC типті машиналарда жұмыс істей алады. OS 9000 сонымен қатар PowerPC, MIPS, Advanced RISC Machines ARM процессорларының кейбір нұсқаларына және Hitachi SH процессорлар отбасына портталды. DigiCart/II Plus аудио ойнату құрылымы OS 9/68K жүйесінде жұмыс істейді. Бұл радиостанциялық арба ойыншықтарының қатты күйдегі орнын алмастырушы құрылғы. Осындай құрылғылар радиостанцияларда және Walt Disney World сияқты жерлерде парк жарияламаларын ойнату үшін қолданылады. Неміс электроника өндірушісі Eltec 1970-ші жылдардың соңынан бастап өнеркәсіптік мақсаттар үшін Eurocom модельді CPU тақталарын өндіріп келеді, 6802 және 6809 Eurocom 1 және Eurocom 2 бастап, 68K және одан алынған CPU тақталарымен бүгінгі күнге дейін. Қазіргі заманғы тақталар операциялық жүйелердің қатарымен, олардың ішінде OS 9 де бар, жабдықталған. Omron өздерінің NS сериялы HMI панельдерінде OS 9 жүйесін қолданды. Алайда, жаңа NA сериясы үшін Omron Windows Embedded Compact 7 жүйесін таңдады. Omron OS 9 арқылы барлық драйверлерді, мысалы, USB флеш-картасы үшін, өздері жазуға тура келгенін мәлімдеді. OS 9000/SH4 жүктеушіде (KIWI форматындағы контейнердің ішінде, LOADING.KWI) Matsushita компаниясының Жапонияның ішкі нарығы үшін жасаған ескі автомобиль GPS навигациялық жүйелерінің карта CD/DVD-де табылған.