Аппараттық және бағдарламалық қамтамасыз етуді орнату

Unix операциялық жүйесі. Аппараттық архитектура

UNIX ұзақ және қызықты тарихы бар. Жас зерттеушілердің жеңіл және дерлік «ойыншық» жобасы ретінде басталған UNIX өзінің орбитасында университеттерді, трансұлттық корпорацияларды, үкіметтерді және халықаралық стандарттар ұйымдарын қоса алғанда, көп миллион долларлық индустрияға айналды.

UNIX 20 жылдан астам бұрын AT&T Bell Labs зертханасында пайда болды. Ол кезде Bell Labs MIT және General Electric компанияларымен бірге уақытты бөлісу MULTICS (Multiplexed Information and Computing Service) жүйесін әзірлеп жатқан болатын, бірақ бұл жүйе ішінара тым амбициялық мақсаттардың деңгейіне сәйкес келмейтіндіктен сәтсіз аяқталды. сол кездегі компьютерлер және ішінара оның PL/1-де жасалғандығына байланысты, ал PL/1 компиляторы кешіктіріліп, кешіктірілген пайда болғаннан кейін жақсы жұмыс істемеді. Сондықтан Bell Labs MULTICS жобасына қатысудан мүлде бас тартты, бұл оның зерттеушілерінің бірі Кен Томпсонға Bell Labs жұмыс ортасын жақсарту бойынша зерттеу жұмыстарын жүргізуге мүмкіндік берді. Томпсон Bell Labs қызметкері Денис Ричи және басқаларымен бірге көптеген мүмкіндіктері MULTICS-тен алынған жаңа файлдық жүйені әзірлеуде. Жаңадан тексеру үшін файлдық жүйеТомпсон GECOS мультибағдарламалық уақытты бөлісу жүйесін басқаратын GE-645 компьютері үшін ОЖ ядросын және кейбір бағдарламаларды жазды. Кен Томпсонның MULTICS-те жұмыс істеген кезде жазған ойыны «Ғарышқа саяхат» деп аталады. Ол оны GE-645 компьютерінде іске қосты, бірақ уақытты бөлудің нашар тиімділігіне байланысты ол оған жақсы жұмыс істемеді. Сонымен қатар, GE-645 машинасының уақыты тым қымбат болды. Нәтижесінде, Томпсон мен Ричи ойынды бұрышта бос отырған DEC PDP-7 машинасына көшіруді шешті, онда 4096 18 биттік сөз, телетайп машинкасы және жақсы графикалық дисплей бар. Бірақ PDP-7-де нашар бағдарламалық жасақтама болды және ойынды тасымалдауды аяқтағаннан кейін, Томпсон GE-645-те жұмыс істеген файлдық жүйені PDP-7-ге енгізуге шешім қабылдады. Дәл осы жұмыстың нәтижесінде UNIX-тің бірінші нұсқасы пайда болды, бірақ ол кезде оның аты жоқ. Бірақ ол қазірдің өзінде типтік UNIX инод негізіндегі файлдық жүйесін қамтыды, процесс пен жадты басқару ішкі жүйесі болды және екі пайдаланушыға уақытты бөлісу режимінде жұмыс істеуге мүмкіндік берді. Жүйе ассемблерде жазылған. UNIX (Uniplex Information and Computing Services) атауын оған басқа Bell Labs қызметкері Брайан Керниган берді, ол бастапқыда оны UNICS деп атады және оның көп қолданушы MULTICS-тен айырмашылығын атап көрсетті. Көп ұзамай UNICS UNIX деп атала бастады.

UNIX-ті алғашқы қолданушылар Bell Labs патенттік бөлімінің қызметкерлері болды, олар оны мәтіндерді құруға ыңғайлы орта деп тапты.

UNIX тағдырына оның тілдегі санағы үлкен әсер етті жоғары деңгей C, Денис Ричи осы мақсат үшін арнайы әзірлеген. Бұл 1973 жылы болды, сол уақытта UNIX-те 25 қондырғы болды және Bell Labs-та арнайы UNIX қолдау тобы құрылды.

UNIX CACM компьютерлік журналында Томпсон мен Ричи бұл жүйені сипаттағаннан кейін 1974 жылдан бастап кеңінен қолданыла бастады. UNIX-ті университеттер кеңінен қабылдады, өйткені олар үшін Си бастапқы кодтарымен бірге ақысыз жеткізілді.Тиімді Си компиляторларының кеңінен қолданылуы UNIX-ті сол кездегі операциялық жүйе ретінде оның әртүрлі компьютерлерге тасымалдану мүмкіндігіне байланысты бірегей етті. Университеттер UNIX-ті жетілдіруге және оның одан әрі танымал болуына үлкен үлес қосты. UNIX-ті стандартталған орта ретінде тануға бағытталған тағы бір қадам Денис Ричидің stdio I/O кітапханасын жасауы болды. Бұл кітапхананы C компиляторы үшін пайдалану арқылы UNIX бағдарламалары жоғары портативті болды.

Күріш. 5.1. UNIX-тің даму тарихы

UNIX-ті кеңінен қолдану оның көптеген нұсқалары арасында үйлеспеушілік мәселесін тудырды. UNIX-тің бір нұсқасы үшін сатып алынған пакет UNIX-тің басқа нұсқасында жұмыс істеуден бас тартуы пайдаланушыны қатты ренжітетіні анық. Мерзімді түрде UNIX-ті стандарттау әрекеттері жасалды және жасалуда, бірақ әлі күнге дейін олар шектеулі табысқа жетті. UNIX-тің әртүрлі нұсқаларының конвергенциясы және олардың дивергенциясы циклдік болып табылады. Кейбір басқа операциялық жүйенің жаңа қауіп-қатері алдында әртүрлі UNIX жеткізушілері өз өнімдерін біріктіреді, бірақ содан кейін бәсекелестік оларды бастапқы жақсартулар жасауға және нұсқаларды қайта бөлуге мәжбүр етеді. Бұл процестің жағымды жағы да бар - UNIX-ті де, оның өмір сүрген ұзақ жылдарында одан көптеген пайдалы нәрселерді қабылдаған көптеген басқа операциялық жүйелерді де жетілдіретін жаңа идеялар мен құралдардың пайда болуы.

5.1-суретте әртүрлі нұсқалардың сабақтастығы және оларға қабылданған стандарттардың ықпалы ескерілетін UNIX дамуының жеңілдетілген суреті көрсетілген. UNIX нұсқаларының бір-бірімен үйлеспейтін екі желісі кең таралған: AT&T-UNIX System V желісі және университеттің Беркли-BSD желісі. Көптеген компаниялар осы нұсқалардың негізінде UNIX-тің нұсқаларын әзірлеп, қолдады: Sun Microsystems SunOS және Solaris, Hewlett-Packard UX, Microsoft XENIX, IBM AIX, Novell UnixWare (қазір ШЫҰ-ға сатылады) және тізім жалғасуда.

AT&T SVID, IEEE POSIX және X/Open консорциумының XPG4 сияқты стандарттар UNIX нұсқаларын біріктіруге ең үлкен әсер етті. Бұл стандарттар қолданбалардың әртүрлі UNIX нұсқаларында сәтті жұмыс істеуін қамтамасыз ету үшін қолданбалар мен амалдық жүйе арасындағы интерфейске қойылатын талаптарды анықтайды.

Нұсқасына қарамастан, UNIX үшін ортақ мүмкіндіктер:

  • деректерді рұқсатсыз кіруден қорғау құралдары бар көп пайдаланушы режимі,
  • алдын ала көп тапсырмаларды орындау алгоритмдерін пайдалану негізінде уақытты бөлісу режимінде мультибағдарламалық өңдеуді жүзеге асыру,
  • мультибағдарламалау деңгейін арттыру үшін виртуалды жады мен своп механизмдерін пайдалану,
  • «файл» түсінігін кеңейтілген қолдану негізінде енгізу/шығару операцияларын унификациялау,
  • файлдарды орналастыру үшін пайдаланылатын физикалық құрылғылардың санына қарамастан бір каталогтар ағашын құрайтын иерархиялық файлдық жүйе;
  • оның негізгі бөлігін С тілінде жазу арқылы жүйенің тасымалдануы,
  • процестер арасындағы өзара әрекеттесудің әртүрлі құралдары, соның ішінде желі арқылы,
  • файлдарға кірудің орташа уақытын қысқарту үшін дискіні кэштеу.

UNIX System V Release 4 операциялық жүйенің аяқталмаған коммерциялық нұсқасы болып табылады. оның кодтарында ОЖ сәтті жұмыс істеуі үшін қажетті көптеген жүйелік утилиталар жоқ, мысалы, әкімшілік утилиталар немесе GUI менеджері. SVR4 нұсқасы VFS виртуалды файлдық жүйесі, жадпен салыстырылған файлдар және т.б. сияқты UNIX ядросының әртүрлі нұсқаларының ең танымал және тиімді шешімдерін қамтитын ядро ​​кодын стандартты іске асыру болып табылады. SVR4 коды (жартылай өзгертілген) HP-UX, Solaris, AIX және т.б. сияқты UNIX-тің көптеген заманауи коммерциялық нұсқаларының негізін құрады.

Кіріспе

Unix дегеніміз не?

Тегін Unix-ті қайдан алуға болады?

Unix-тің басқа операциялық жүйелерден негізгі айырмашылығы неде?

Неліктен Unix?

Негізгі Unix концепциялары

Файлдық жүйе

командалық аудармашы

Нұсқаулықтар - адам

Кіріспе

Unix операциялық жүйесі туралы жазу өте қиын. Біріншіден, бұл жүйе туралы көп жазылғандықтан. Екіншіден, Unix идеялары мен шешімдері барлық заманауи операциялық жүйелердің дамуына үлкен әсер етті және көрсетуде және бұл идеялардың көпшілігі осы кітапта сипатталған. Үшіншіден, Unix бір операциялық жүйе емес, жүйелердің тұтас тобы болғандықтан және олардың бір-бірімен қарым-қатынасын «қадағалап отыру» әрқашан мүмкін емес және осы топтағы барлық операциялық жүйелерді сипаттау мүмкін емес. . Соған қарамастан, біз «Unix әлеміне» оның бізге қызықты болып көрінетін салаларына курсорлық шолу жасауға тырысамыз.

Unix операциялық жүйесінің тууы 60-шы жылдардың аяғына жатады және бұл оқиға кейде осы оқиғаның егжей-тегжейлері туралы әртүрлі тәсілдермен айтатын «аңыздарға» ие болды. Unix операциялық жүйесі AT&T корпорациясының құрамына кіретін Bell Telephone Laboratories (Bell Labs) зерттеу орталығында дүниеге келген. Бастапқыда бұл PDP-7 компьютеріне арналған бастама жобасы (кейінірек - PDP-11 үшін) файлдық жүйе, немесе компьютерлік ойын, немесе мәтінді дайындау жүйесі немесе екеуі де болды. Соңында ОЖ-ға айналған жобаның басынан бастап ойластырылғаны маңызды. бағдарламалық ортаұжымдық пайдалану. Unix-тің бірінші нұсқасының авторы - Кен Томпсон, алайда жобаны талқылауға, кейін оны жүзеге асыруға қызметкерлердің үлкен тобы (Д. Ричи, Б. Керниган, Р. Пайк және т.б.) қатысты. . Біздің ойымызша, Unix-тің пайда болуының бірнеше қуанышты жағдайлары бұл жүйенің көптеген жылдар бойы табысты болуын анықтады.

Unix дүниеге келген командадағы адамдардың көпшілігі үшін бұл ОЖ «үшінші жүйе» болды. Жүйелік бағдарламашы өзінің үшінші жобасын аяқтаған кезде ғана жоғары біліктілікке қол жеткізеді деген пікір бар (мысалы, қараңыз): бірінші жоба әлі де «студент», екінші әзірлеуші ​​біріншісінде орындалмағанның бәрін қосуға тырысады және нәтижесінде ол тым ауыр болып шығады , тек үшіншіде ғана тілектер мен мүмкіндіктердің қажетті тепе-теңдігіне қол жеткізіледі. Unix дүниеге келгенге дейін Bell Labs командасы MULTICS ОЖ әзірлеуге (бірнеше басқа фирмалармен бірге) қатысқаны белгілі. MULTICS соңғы өнімі (Bell Labs әзірлеудің соңғы кезеңдеріне қатыспады) «екінші жүйенің» барлық белгілеріне ие және кеңінен қолданылмайды. Дегенмен, айта кететін жайт, көптеген маңызды идеялар мен шешімдер осы жобада дүниеге келген, және көпшілігі Unix-те дүниеге келген деп санайтын кейбір концепциялар шын мәнінде MULTICS жобасынан шыққан.

Unix операциялық жүйесі «өзім үшін және менің достарым үшін» жасалған жүйе болды. Unix нарықты жаулап алуға және қандай да бір өніммен бәсекелесуге арналмаған. Unix операциялық жүйесін жасаушылардың өздері оны пайдаланушылар болды және жүйенің өз қажеттіліктеріне сәйкестігін өздері бағалады. Нарық конъюнктурасының қысымынсыз мұндай бағалау өте объективті болуы мүмкін.

Unix - бұл бағдарламашылар бағдарламашылар үшін жасаған жүйе. Бұл бір жағынан жүйенің талғампаздығы мен концептуалды үйлесімділігін, ал екінші жағынан Unix пайдаланушысы үшін жүйені түсіну қажеттілігін және Unix үшін бағдарламалық жасақтаманы әзірлеуші ​​бағдарламашы үшін кәсіби жауапкершілік сезімін анықтады. «Unix for Dummies» жасаудың кейінгі әрекеттері Unix ОЖ-ны бұл қасиеттен арылта алмады.

1972-73 жж. Кен Томпсон мен Деннис Ричи жазды жаңа нұсқасы Unix. Әсіресе, осы мақсатта Д.Ритчи Си программалау тілін құрды, ол енді қажет емес. Unix кодының 90%-дан астамы осы тілде жазылған және тіл ОЖ-ның ажырамас бөлігіне айналды. ОЖ-ның негізгі бөлігінің жоғары деңгейлі тілде жазылуы оны кез келген аппараттық платформаның кодтарына қайта компиляциялауға мүмкіндік береді және Unix-тің кең таралуын анықтаған жағдай болып табылады.

Unix-тің пайда болуы кезінде АҚШ-тың монополияға қарсы заңдары AT&T-нің нарыққа енуіне жол бермеді. бағдарламалық өнімдер. Сондықтан Unix операциялық жүйесі коммерциялық емес болды және ең алдымен университеттерде еркін таратылды. Онда оның дамуы жалғасты және ол Берклидегі Калифорния университетінде белсенді түрде жүргізілді. Бұл университетте ОЖ-ның жеке тармағы – BSD Unix әзірлеумен айналысатын Berkeley Software Distribution тобы құрылды. Одан кейінгі тарихта негізгі Unix және BSD Unix бір-бірін қайта-қайта байыта отырып, параллель дамып отырды.

Unix операциялық жүйесі тараған сайын коммерциялық фирмалар оған көбірек қызығушылық таныта бастады, олар осы операциялық жүйенің өздерінің коммерциялық нұсқаларын шығара бастады. Уақыт өте келе AT&T-тен Unix-тің «негізгі» тармағы коммерциялық болды және оны алға жылжыту үшін Unix System Laboratory-нің еншілес кәсіпорны құрылды. BSD Unix тармағы өз кезегінде коммерциялық BSD және Free BSD-ге айналды. AT&T Unix ядросының үстіне әртүрлі коммерциялық және тегін Unix-тәрізді жүйелер жасалды, бірақ олар BSD Unix-тен алынған мүмкіндіктерді, сондай-ақ бастапқы мүмкіндіктерді қамтиды. Ортақ дереккөзге қарамастан, Unix отбасы мүшелерінің арасындағы айырмашылықтар жиналып қалды және сайып келгенде, қолданбаларды бір Unix тәрізді операциялық жүйеден екіншісіне көшіруді өте қиындатты. Unix пайдаланушыларының бастамасымен Unix API стандарттау қозғалысы болды. Бұл қозғалысты ISO халықаралық стандарттар ұйымы қолдады және әлі де әзірлену үстінде және ОЖ үшін ең беделді стандарт болып табылатын POSIX (Portable Operation System Interface eXecution) стандартының пайда болуына әкелді. Дегенмен, POSIX спецификацияларын ресми стандартқа айналдыру өте баяу процесс және жеткізушілердің қажеттіліктерін қанағаттандыра алмайды. бағдарламалық қамтамасыз етубалама салалық стандарттардың пайда болуына әкелді.

AT&T Unix-тің Nowell жүйесіне ауысуымен бұл операциялық жүйенің атауы Unixware болып өзгерді, ал Unix сауда белгісіне құқықтар X / Open консорциумына берілді. Бұл консорциум (қазіргі Ашық топ) Бірыңғай Unix спецификациясы ретінде белгілі өзінің (POSIX қарағанда кеңірек) жүйе спецификациясын әзірледі. Бұл стандарттың екінші басылымы жақында шығарылды, ол POSIX-пен жақсырақ үйлеседі.

Ақырында, Unix-тің өз нұсқаларын шығаратын бірқатар фирмалар Open Software Foundation (OSF) консорциумын құрды, олар Mach микроядросының негізінде Unix-тің OSF/1 жеке нұсқасын шығарды. OSF сонымен қатар OSF/1 жүйесінің спецификациясын шығарды, ол OSF-қа мүше фирмалардың өздерінің Unix жүйелерін шығаруына негіз болды. Бұл жүйелерге Sun Microsystems ұсынған SunOS, IBM фирмасының AIX, Hewlett-Packard фирмасының HP/UX, Compaq фирмасының DIGITAL UNIX және т.б.

Бастапқыда бұл фирмалардың Unix жүйелері негізінен BSD Unix негізінде болды, бірақ қазір көптеген заманауи өнеркәсіптік Unix жүйелері AT&T Unix System V Release 4 (S5R4) ядросы арқылы (лицензия бойынша) құрастырылған, бірақ олар сонымен бірге BSD Unix кейбір қасиеттерін мұра етеді. . Біз коммерциялық Unix жүйелерін салыстыру үшін жауапкершілікті өз мойнымызға алмаймыз, өйткені баспада мерзімді түрде шығатын осындай салыстырулар көбінесе мүлдем қарама-қарсы нәтиже береді.

Ноуэлл Unix-ті Santa Crouse Operations-қа сатты, ол өзінің Unix өнімі, SCO Open Server шығарды. ШЫҰ ашық сервері басқаларға негізделген ерте нұсқасыядро (System V шығарылымы 3), бірақ тамаша жөндеуден өтті және жоғары тұрақты болды. Santa Crouse Operations өз өнімін AT&T Unix-пен біріктіріп, Open Unix 8-ді шығарды, бірақ содан кейін Unix-ті бүгінгі күні «классикалық» Unix иесі Калдераға сатты (2001 жылдың аяғы).

Sun Microsystems Unix әлеміне енгізуді BSD ядросына негізделген SunOS арқылы бастады. Алайда ол кейіннен оны S5R4 негізіндегі Solaris жүйесімен ауыстырды. Қазіргі уақытта осы ОЖ-нің 8-нұсқасы таратылуда (сонымен бірге v.9-бета нұсқасы да бар). Solaris SPARC платформасында (Sun спецификациялары бойынша жасалған RISC процессорлары) және Intel-Pentium жүйесінде жұмыс істейді.

Hewlett-Packard HP-UX ОЖ ұсынады. PA-RISC платформасында v.11. HP-UX S5R4 негізінде жасалған, бірақ оның шығу тегін BSD Unix-тен беретін көптеген мүмкіндіктерді қамтиды. Әрине, HP-UX Intel-Itanium платформасында да қолжетімді болады.

IBM AIX ОЖ-мен бірге шығады, бүгінгі күнге дейін ең соңғы нұсқасы 5L (ол кейінірек талқыланады). IBM AIX «тегін» жариялаған жоқ, бұл негізінен түпнұсқалық әзірлеме, бірақ алғашқы нұсқаларында FreeBSD Unix-тен шыққан белгілер болды. Алайда, қазір AIX S5R4 сияқты. AIX бастапқыда Intel-Pentium платформасында қол жетімді болды, бірақ кейіннен (жалпы IBM саясатына сәйкес) бұл платформада бұдан былай қолдау көрсетілмейді. AIX қазіргі уақытта IBM RS/6000 серверлерінде және басқа PowerPC негізіндегі есептеу платформаларында (соның ішінде IBM суперкомпьютерлері) жұмыс істейді.

DEC-тің DIGITAL UNIX жүйесі OSF/1-тің жалғыз коммерциялық іске асырылуы болды. DIGITAL UNIX ОЖ DEC Alpha RISC серверлерінде жұмыс істеді. DEC-ті 1998 жылы Compaq қабылдаған кезде Compaq Alpha және DIGITAL UNIX серверлерін сатып алды. Compaq Alpha серверлер нарығында өзінің қатысуын қалпына келтіруге ниетті және осыған байланысты олар үшін ОЖ-ны қарқынды түрде әзірлеуде. Бұл ОЖ-ның ағымдағы атауы - Tru64 Unix (ағымдағы нұсқасы 5.1A), ол OSF/1 ядросына негізделген және көптеген BSD Unix мүмкіндіктері бар.

Көптеген коммерциялық Unix жүйелері бір ядроға негізделген және POSIX талаптарына сәйкес болса да, әрқайсысының API диалектісі бар және диалектілер арасындағы айырмашылықтар жинақталған. Бұл өнеркәсіптік қолданбаларды бір Unix жүйесінен екіншісіне тасымалдау қиынға соғады және кем дегенде қайта құрастыруды және жиі бастапқы кодты түзетуді қажет етеді. «Шатастыруды» жеңу және барлығына арналған бірыңғай Unix операциялық жүйесін жасау әрекетін 1998 жылы SCO, IBM және Sequent альянсы қолға алды. Бұл фирмалар сол кезде SCO, IBM AIX және Sequent's DYNIX ОЖ иелік ететін Unixware негізіндегі бір ОЖ жасау үшін Монтерей жобасына қосылды. (Sequent NUMA компьютерлерін өндіруде көшбасшы болып табылады - асимметриялық мультипроцессор - және DYNIX мұндай компьютерлер үшін Unix болып табылады). Monterey ОЖ 32-биттік Intel-Pentium платформасында, 64-биттік PowerPC платформасында және жаңа 64-биттік Intel-Itanium платформасында жұмыс істеуі керек еді. Аппараттық және аралық бағдарламалық қамтамасыз ету индустриясының барлық дерлік көшбасшылары жобаны қолдайтынын мәлімдеді. Тіпті өзінің Unix клондары бар фирмалар (Sun Microsystems қоспағанда) тек Intel платформаларында Монтерейге қолдау көрсететінін жариялады. Жоба бойынша жұмыс жақсы жүріп жатқан сияқты. Monterey OS өзінің Intel-Itanium жүйесінде (Windows NT және Linux-пен бірге) өнімділігін дәлелдеген алғашқылардың бірі болды және 32-биттік Intel-Pentium архитектурасына еліктемейтін жалғыз. Алайда жобаның соңғы кезеңінде өлімге әкелетін оқиға орын алды: ШЫҰ өзінің Unix бөлімшесін сатты. Бұдан бұрын Sequent IBM құрамына кірді. Monterey ОЖ барлық мүмкіндіктерінің «мұрагері» IBM AIX v.5L ОЖ болып табылады. Дегенмен, бәрі емес. Intel-Pentium платформасы IBM үшін стратегиялық фокус емес және AIX бұл платформада қолжетімді емес. Компьютерлік индустрияның басқа көшбасшылары IBM ұстанымын білмейтіндіктен (немесе мүлдем бөліспейтіндіктен), Unix ортақ операциялық жүйесі идеясы ешқашан жүзеге аспады.

Linux, Android, Mac OS X және басқалары сияқты көптеген заманауи операциялық жүйелердің бастаушысы UNIX операциялық жүйесі AT&T бөлімшесі Bell Labs зерттеу орталығының қабырғасында жасалған. Жалпы айтқанда, Bell Labs - бұл технологияны түбегейлі өзгерткен жаңалықтар ашқан ғалымдар үшін нағыз өсіру алаңы. Мысалы, 1947 жылы биполярлы транзисторды алғаш жасаған Уильям Шокли, Джон Бардин және Уолтер Браттейн сияқты ғалымдар Bell Labs зертханасында жұмыс істеді. Белл зертханасында лазерді ойлап тапты деп айта аламыз, дегенмен ол уақытқа дейін мазерлер жасалған. Белл зертханасында ақпарат теориясының негізін салушы Клод Шеннон да жұмыс істеді. Онда Си тілін жасаушылар Кен Томпсон мен Денис Ричи жұмыс істеді (оларды кейінірек еске түсіреміз), сонымен қатар C ++ авторы - Бьярн Строуструп.

UNIX жолында

UNIX-тің өзі туралы айтпас бұрын, соларды еске түсірейік ОЖоның алдында болған және UNIX не екенін және ол арқылы көптеген басқа заманауи операциялық жүйелерді анықтайтын.

UNIX әзірлеу операциялық жүйелер саласындағы Bell Labs-те жасалған алғашқы жұмыс емес еді. 1957 жылы зертхана операциялық жүйені жасай бастады, ол BESYS (Bell сөзінің қысқасы) деп аталды. операциялық жүйе). Жоба жетекшісі Америкаға қоныс аударған ресейлік астрономның ұлы Виктор Высоцкий болды. BESYS барлығына магниттік таспамен жіберілгенімен, дайын коммерциялық өнім ретінде шығарылмаған ішкі жоба болды. Бұл жүйе IBM 704 - 709x сериялы компьютерлерде (IBM 7090, 7094) жұмыс істеуге арналған. Мен бұл гизмостарды компьютердің антидилювиялық сөзі деп атағым келеді, бірақ құлақты кесіп алмау үшін біз оларды компьютер деп атай береміз.

IBM 704

Біріншіден, BESYS бағдарламалардың үлкен санын пакеттік орындауға арналған, яғни бағдарламалар тізімі берілген және олардың орындалуы максималды мүмкін ресурстарды алатындай етіп жоспарланған. компьютер бос тұрмайды. Сонымен бірге, BESYS-те уақытты бөлісетін операциялық жүйенің бастауы болды, яғни қазіргі уақытта көп тапсырма деп аталады. Уақытты бөлісудің толыққанды жүйелері пайда болған кезде, бұл мүмкіндік бірнеше адам бір уақытта бір компьютермен, әрқайсысы өз терминалынан жұмыс істей алатындай пайдаланылды.

1964 жылы Bell Labs компьютерлерін жаңартудан өтті, нәтижесінде BESYS IBM компаниясының жаңа компьютерлерінде іске қосыла алмады, содан кейін кросс-платформа туралы мәселе болмады. Ол кездегі компьютерлерді операциялық жүйелерсіз IBM компаниясы қамтамасыз етті. Bell Labs әзірлеушілері жаңа операциялық жүйені жазуды бастауы мүмкін еді, бірақ олар басқаша әрекет етті - олар Multics операциялық жүйесін әзірлеуге қосылды.

Multics жобасын (Multiplexed Information and Computing Service сөзінің қысқартылған) MIT профессоры Джек Деннис ұсынған. Ол 1963 жылы студенттерімен бірге жаңа операциялық жүйенің спецификациясын жасап, General Electric компаниясының өкілдерін жобаға қызықтыра алды. Нәтижесінде Bell Labs MIT және General Electric компанияларына жаңа операциялық жүйені әзірлеуге қосылды.

Ал жобаның идеялары өте өршіл болды. Біріншіден, бұл толық уақытты бөлісетін операциялық жүйе болуы керек. Екіншіден, Multics ассемблерде емес, бірінші жоғары деңгейлі тілдердің бірінде - 1964 жылы жасалған PL / 1 тілінде жазылған. Үшіншіден, Multics көп процессорлы компьютерлерде жұмыс істей алады. Дәл сол операциялық жүйеде иерархиялық файлдық жүйе болды, файл атауларында кез келген символдар болуы мүмкін және айтарлықтай ұзын болуы мүмкін, сонымен қатар каталогтарға символдық сілтемелер де файлдық жүйеде қамтамасыз етілді.

Өкінішке орай, Multics-тегі жұмыс ұзақ уақытқа созылды, Bell Labs бағдарламашылары бұл өнімнің шығуын күтпеді және 1969 жылдың сәуірінде жобаны тастап кетті. Шығарылым сол жылдың қазан айында болды, бірақ олардың айтуынша, бірінші нұсқа өте қате болды, ал қалған әзірлеушілер тағы бір жыл бойы пайдаланушылар хабарлаған қателерді түзетті, дегенмен бір жылдан кейін Multics сенімдірек болды. жүйесі.

Multics ұзақ уақыт бойы әзірленуде, соңғы шығарылымы 1992 жылы болды және бұл 12.5 нұсқасы болды, бірақ бұл мүлдем басқа оқиға, бірақ Multics UNIX болашағына үлкен әсер етті.

UNIX-тің дүниеге келуі

UNIX дерлік кездейсоқ пайда болды, оған «Ғарышқа саяхат» компьютерлік ойыны кінәлі болды, бұл Кен Томпсон жазған ғарышта ұшатын ойын. Бұл алыс 1969 жылы болды, Space Travel ойыны алғаш рет сол Multics операциялық жүйесіне арналған және Bell Labs Multics-тің жаңа нұсқаларына қол жеткізуді тоқтатқаннан кейін, Кен ойынды Фортранда қайта жазып, оны GECOS операциялық жүйесіне көшірді. GE-635 компьютерімен бірге келді. Бірақ бұл жерде екі мәселе туындады. Біріншіден, бұл компьютерде өте жақсы дисплей жүйесі болмады, екіншіден, бұл компьютерде ойнау қымбат болды - сағатына 50-75 доллар сияқты.

Бірақ бір күні Кен Томпсон сирек қолданылатын және ғарыштық саяхатты іске қосу үшін жарамды болуы мүмкін DEC PDP-7 компьютеріне тап болды, сонымен қатар оның жақсырақ бейне процессоры болды.

Ойынды PDP-7-ге көшіру оңай болған жоқ, шын мәнінде, оны іске қосу үшін жаңа операциялық жүйені жазу қажет болды. Бұл бағдарламашылар өздерінің сүйікті ойыншығы үшін бармайтын жағдай болған жоқ. UNIX, дәлірек айтсақ, Unics осылай дүниеге келді. Брайан Керниган ұсынған атау қысқаша UniplexedАқпараттық-есептеу жүйесі. Естеріңізге сала кетейін, Multics атауы сөздерден шыққан мультиплекстелгенАқпараттық және есептеу қызметі, осылайша, Unis қарапайымдылығы жағынан Multics-ке біршама қарсы болды. Шынында да, Multics оның күрделілігі туралы шабуылға ұшырады. Салыстыру үшін, Unics ядросының алғашқы нұсқалары Multics үшін 135 кБ және 12 кБ жедел жадты ғана иемденді.

Кен Томпсон

Бұл жолы әзірлеушілер (әлі) жоғары деңгейлі тілдермен тәжірибе жасамады және Unics-тің бірінші нұсқасы ассемблерде жазылды. Томпсонның өзі, Денис Ричи, Юниксті әзірлеуге қатысты, кейін оларға Дуглас Макилрой, Джои Оссанна және Рэд Кеннеди қосылды. Алғашында ОЖ атауын ұсынған Керниған тек моральдық қолдау көрсетті.

Біраз уақыттан кейін, 1970 жылы, көп тапсырма іске асырылған кезде, операциялық жүйе UNIX деп аталды және енді аббревиатура болып саналмайды. Дәл осы жыл UNIX-тің ресми туған жылы болып саналады және 1970 жылдың 1 қаңтарынан бастап жүйе уақыты(осы күннен кейінгі секундтар саны). Дәл сол дата анағұрлым аяныштырақ аталады – UNIX дәуірінің басы (ағылшын тілінде – UNIX Epoch). Естеріңізде ме, 2000 жылғы мәселе бәрімізді қорқытқан еді? Осылайша, дәл осындай мәселе бізді 2038 жылы күтеді, бұл кезде күнді анықтау үшін жиі қолданылатын 32 биттік бүтін сандар уақытты көрсету үшін жеткіліксіз болады және күні бар уақыт теріс болады. Осы уақытқа дейін барлық маңызды бағдарламалық қамтамасыз ету осы қорқынышты күнді тағы 292 миллион жылға кейінге қалдыру үшін осы мақсат үшін 64 биттік айнымалыларды қолданатынына сенгім келеді, содан кейін біз бірдеңе ойлап табамыз. 🙂

1971 жылға қарай UNIX қазірдің өзінде толыққанды операциялық жүйе болды, ал Bell Labs тіпті UNIX сауда белгісін өзі үшін таңдады. Сол жылы UNIX қуаттырақ PDP-11 компьютерінде жұмыс істеу үшін қайта жазылды және дәл осы жылы UNIX-тің бірінші ресми нұсқасы (бірінші басылым деп те аталады) шығарылды.

Uniics/UNIX-тің дамуымен қатар, Кен Томпсон мен Денис Ричи 1969 жылдан бастап BCPL тіліне негізделген жаңа B (Bi) тілін әзірледі, ол өз кезегінде алгол тілінің ұрпағы деп санауға болады. -60 тіл. Ричи UNIX-ті В тілінде қайта жазуды ұсынды, ол түсіндірілсе де портативті болды, содан кейін ол бұл тілді жаңа қажеттіліктер үшін өзгертуді жалғастырды. 1972 жылы UNIX-тің екінші басылымы шықты, ол толығымен дерлік В тілінде жазылған, ассемблерде шамамен 1000 жолдан тұратын шағын модуль қалды, сондықтан UNIX-ті басқа компьютерлерге көшіру қазір салыстырмалы түрде оңай болды. Осылайша UNIX портативті болды.

Кен Томпсон және Деннис Ричи

Содан кейін В тілі UNIX-пен бірге дамыды, ол ең танымал бағдарламалау тілдерінің бірі болып табылатын Си тілін дүниеге әкелді, қазір оны идеал деп атайды. 1973 жылы UNIX үшінші басылымы Си тіліне арналған кіріктірілген компилятормен шығарылды, ал 1974 жылы дүниеге келген 5-ші нұсқасынан бастап UNIX толығымен Си тілінде қайта жазылды деп есептеледі. Айтпақшы, ол UNIX-те 1973 жылы құбырлар (құбырлар) сияқты түсінік пайда болды.

1974-1975 жылдардан бастап UNIX Bell Labs-тан тыс тарай бастады. Томпсон мен Ричи UNIX сипаттамасын ACM Communications ішінде жариялайды, ал AT&T UNIX-ті оқу құралы ретінде оқу орындарына ұсынады. 1976 жылы бірінші UNIX басқа жүйеге – Interdata 8/32 компьютеріне ауыстырылды деп айта аламыз. Сонымен қатар, 1975 жылы UNIX-тің 6-шы нұсқасы шығарылды, одан бастап осы операциялық жүйенің әртүрлі іске асырулары пайда болды.

UNIX операциялық жүйесінің сәтті болғаны сонша, 70-жылдардың аяғынан бастап басқа әзірлеушілер ұқсас жүйелерді жасай бастады. Енді түпнұсқа UNIX-тен оның клондарына ауысып, одан қандай басқа операциялық жүйелер шыққанын көрейік.

BSD пайда болуы

Бұл операциялық жүйенің қайта шығарылуына американдық шенеуніктер, тіпті 1956 жылы UNIX туылғанға дейін, Bell Labs иелігіндегі AT&T-ге шектеулер енгізген, айтарлықтай ықпал етті. Өйткені, сол кезде Әділет департаменті AT & T компаниясына телефон-телеграф желілері мен жабдықтарына байланысты емес қызметпен айналысуға тыйым салатын келісімге қол қоюға мәжбүрледі, бірақ 70-ші жылдарға қарай AT & T ненің маңызды екенін түсінді. сәтті жоба UNIX-тен шықты және оны коммерциялық етуді қалады. Шенеуніктерге мұны істеуге рұқсат беру үшін AT&T кейбір американдық университеттерге UNIX көздерін сыйға тартты.

Бастапқы кодтың мәтініне қол жеткізе алатын осы университеттердің бірі Берклидегі Калифорния университеті болды, ал егер басқа адамдардың бастапқы кодтары болса, онда бағдарламада бір нәрсені өздері үшін түзетуге деген ұмтылыс, әсіресе лицензиядан кейін еріксіз пайда болады. бұған тыйым салған жоқ. Осылайша, бірнеше жылдан кейін (1978 жылы) бірінші AT&T UNIX үйлесімді емес жүйе пайда болды. Бұл BSD UNIX болды.

UC Беркли

BSD өте жұмсақ лицензиясы бар бастапқы кодта бағдарламалық құралды таратуға арналған арнайы жүйе болып табылатын Berkeley Software Distribution сөзінің қысқартылған нұсқасы. BSD лицензиясы жаңа UNIX үйлесімді жүйені тарату үшін ғана жасалған. Бұл лицензия оған сәйкес таратылатын бастапқы кодты қайта пайдалануға мүмкіндік береді және оған қоса, GPL-ден айырмашылығы (ол әлі болмаған), туынды бағдарламаларға ешқандай шектеулер қоймайды. Сонымен қатар, ол өте қысқа және көптеген қызықсыз заңды терминдермен жұмыс істемейді.

BSD бірінші нұсқасы (1BSD) бастапқы UNIX нұсқасына 6-ға қарағанда көбірек қосымша болды дербес жүйе. Паскаль компиляторы 1BSD-ге қосылды және мәтіндік редактормысалы. 1979 жылы шыққан BSD екінші нұсқасы vi және C Shell сияқты белгілі бағдарламаларды қамтыды.

BSD UNIX пайда болғаннан бері UNIX үйлесімді жүйелерінің саны экспоненциалды түрде өсті. Қазірдің өзінде BSD UNIX-тен операциялық жүйелердің бөлек тармақтары пайда бола бастады, әртүрлі операциялық жүйелер бір-бірімен код алмасып, өзара тоғысуы әбден түсініксіз болды, сондықтан болашақта біз барлық UNIX жүйелерінің әрбір нұсқасына тоқталмаймыз, бірақ оның қалай болатынын көрейік. олардың ең танымалы пайда болды.

Мүмкін, BSD UNIX-тің ең танымал тікелей ұрпақтары FreeBSD, OpenBSD және аз дәрежеде NetBSD болуы мүмкін. Олардың барлығы 1992 жылы шыққан 386BSD деп аталатын құрылғыдан шыққан. 386BSD, аты айтып тұрғандай, Intel 80386 процессорына BSD UNIX порты болды.Бұл жүйені де Беркли университетінің түлектері жасаған. Авторлар AT&T-дан алынған UNIX бастапқы коды AT&T лицензиясында ұпай алу үшін нашар өзгертілген деп есептеді, бірақ AT&T өзі олай ойламады, сондықтан осы операциялық жүйенің айналасында сот процесі жүріп жатыр. 386BSD өзі көптеген басқа операциялық жүйелердің ата-анасы болғанына сүйенсек, ол үшін бәрі жақсы аяқталды.

FreeBSD жобасы (бастапқыда оның өз атауы болмаған) 386BSD үшін патчтар жинағы ретінде пайда болды, бірақ бұл патчтар қандай да бір себептермен қабылданбады, содан кейін 386BSD енді әзірленбейтіні белгілі болған кезде, 1993 жылы жоба FreeBSD деп аталатын толыққанды операциялық жүйені құру бағытында орналастырылды.

Бести. FreeBSD тұмары

Сонымен бірге 386BSD әзірлеушілері өздері жасады жаңа жоба NetBSD, одан, өз кезегінде, OpenBSD тармақталған. Көріп отырғаныңыздай, бұл операциялық жүйелердің өте кең тараған ағашы болып табылады. NetBSD жобасының мақсаты сонша көп жұмыс істей алатын UNIX жүйесін құру болды Көбірекархитектуралар, яғни максималды тасымалдануға қол жеткізу. Тіпті NetBSD драйверлері кросс-платформа болуы керек.

NetBSD логотипі

Solaris

Дегенмен, SunOS операциялық жүйесі BSD-ден бірінші болып шықты, сіз Sun Microsystems компаниясының атынан түсінгеніңіздей, өкінішке орай, қазір қайтыс болды. Бұл 1983 жылы болды. SunOS - бұл Sun өзі жасаған компьютерлермен бірге келген операциялық жүйе. Жалпы айтқанда, Sun бір жыл бұрын, 1982 жылы Unisoft Unix v7 кодтық базасына негізделген Sun UNIX операциялық жүйесіне ие болды (Unisoft - 1981 жылы құрылған және Unix-ті әртүрлі аппараттық құралдарға тасымалдаумен айналысқан компания), бірақ SunOS 1.0 4.1 BSD кодына негізделген. SunOS 1994 жылға дейін жүйелі түрде жаңартылды, 4.1.4 нұсқасы шыққанға дейін, содан кейін ол Solaris 2 деп өзгертілді. Deuce қайдан пайда болды? Бұл біраз түсініксіз оқиға, өйткені Solaris алғаш рет 1990 жылдан 1994 жылға дейін әзірленген SunOS 4.1.1 - 4.1.4 нұсқалары деп аталды. Бұл тек Solaris 2 нұсқасынан бастау алған ребрендингтің бір түрі екенін ескеріңіз.Содан кейін 1997 жылға дейін Solaris 2.1, 2.2, т.б. шықты. 2,6-ға дейін, ал 1998 жылы Solaris 2,7 орнына жай ғана Solaris 7 шығарылды, содан кейін ғана бұл көрсеткіш өсе бастады. Қазіргі уақытта Solaris-тің соңғы нұсқасы - 11, ол 2011 жылдың 9 қарашасында шығарылды.

OpenSolaris логотипі

Solaris тарихы да өте күрделі, 2005 жылға дейін Solaris толығымен коммерциялық операциялық жүйе болды, бірақ 2005 жылы Sun Solaris 10 бастапқы кодының бір бөлігін ашуға және OpenSolaris жобасын жасауға шешім қабылдады. Сондай-ақ, Sun тірі болғанда, Solaris 10 пайдалану тегін болды немесе сіз ресми қолдауды сатып ала аласыз. Содан кейін, 2010 жылдың басында, Oracle Sun-ті басып алған кезде, ол Solaris 10-ды ақылы жүйеге айналдырды. Бақытымызға орай, Oracle әлі OpenSolaris-ті өлтіре алмады.

linux. Олсыз қайдасың?

Ал енді UNIX іске асыруларының ішіндегі ең танымалы – Linux туралы айту кезегі. Linux тарихы бір уақытта үш қызықты жобаның біріктірілгендігімен ерекшеленеді. Бірақ Linux-ті жасаушы – Линус Торвальдс туралы айтпас бұрын, тағы екі бағдарламашыны атап өту керек, олардың бірі – Эндрю Таненбаум өзі білмей, Линусты Linux-ты жасауға итермеледі, ал екіншісі – Ричард Сталлман, оның құралдарын Линус жасау үшін пайдаланды. оның операциялық жүйесі.

Эндрю Таненбаум - Амстердам еркін университетінің профессоры және негізінен операциялық жүйені дамытуға бағытталған. Ол Альберт Вудхаллмен бірігіп, Торвальдсты Linux жаза бастауға шабыттандырған «Операциялық жүйелер: дизайн және енгізу» сияқты әйгілі кітапты жазды. Бұл кітап Minix сияқты UNIX тәрізді жүйемен айналысады. Өкінішке орай, ұзақ уақыт бойы Таненбаум Minix-ті операциялық жүйелерді құруды үйренуге арналған жоба ретінде ғана қарастырды, бірақ толыққанды жұмыс істейтін ОЖ ретінде емес. Minix дереккөздерінің шектеулі лицензиясы болды, сіз оның кодын зерттей аласыз, бірақ сіз Minix-тің өзгертілген нұсқаларын тарата алмадыңыз және ұзақ уақыт бойы автордың өзі оған жіберілген патчтарды қолданғысы келмеді.

Эндрю Таненбаум

Minix-тің бірінші нұсқасы кітаптың бірінші басылымымен 1987 жылы шықты, Minix-тің кейінгі екінші және үшінші нұсқалары операциялық жүйелер туралы кітаптың сәйкес басылымдарымен бірге шықты. 2005 жылы шыққан Minix-тің үшінші нұсқасы қазірдің өзінде компьютерге арналған дербес операциялық жүйе ретінде (Minix-тің қатты дискіге орнатуды қажет етпейтін LiveCD нұсқалары бар) және микроконтроллерлер үшін енгізілген операциялық жүйе ретінде пайдаланылуы мүмкін. Minix 3.2.0 соңғы нұсқасы 2011 жылдың шілдесінде шығарылды.

Енді Ричард Сталлман туралы ойланайық. Жақында ол тек еркін бағдарламалық қамтамасыз етуді насихаттаушы ретінде қабылданады, дегенмен көптеген танымал бағдарламалар оның арқасында пайда болды, ал Торвальдс бір уақытта оның жобасы өмірді айтарлықтай жеңілдетті. Ең қызығы, Линус та, Ричард та операциялық жүйені құруға әртүрлі қырынан келді, нәтижесінде жобалар GNU/Linux-қа біріктірілді. Мұнда GNU деген не және оның қайдан шыққаны туралы кейбір түсініктемелер беру қажет.

Ричард Сталлман

Сіз Сталлман туралы біраз уақыт айта аласыз, мысалы, Гарвард университетінің физика бойынша үздік дәрежесін алған. Сонымен қатар, Сталлман Массачусетс технологиялық институтында жұмыс істеді, ол 1970 жылдары өзінің әйгілі EMACS редакторын жаза бастады. Сонымен бірге, редактордың бастапқы кодтары барлығына қол жетімді болды, бұл ұзақ уақыт бойы достық анархия белгілі бір мағынада сақталып келген MIT-те қандай да бір ерекшелік емес еді немесе Стивен Леви сияқты, керемет авторы. «Хакерлер. Компьютерлік революцияның қаһармандары», «хакерлік этика». Бірақ біраз уақыттан кейін MIT компьютерлердің қауіпсіздігіне қамқорлық жасай бастады, пайдаланушыларға парольдер берілді, рұқсат етілмеген пайдаланушылар компьютерге кіре алмады. Сталлман бұл тәжірибеге үзілді-кесілді қарсы болды, ол кез келген пайдаланушының кез келген құпия сөзін білуге ​​мүмкіндік беретін бағдарлама жасады, ол парольді бос қалдыруды жақтады. Мысалы, ол пайдаланушыларға келесідей хабарламалар жіберді: «Мен сіз құпия сөзді [сондай және басқа] таңдағаныңызды көремін. Мен сіз «каретканы қайтару» құпия сөзіне ауыса аласыз деп ойлаймын. Теру әлдеқайда оңай және бұл жерде құпия сөздер болмауы керек деген қағидаға сәйкес келеді». Бірақ оның талпыныстары еш нәтиже бермеді. Оның үстіне, MIT-ге келген жаңа адамдар өздерінің бағдарламаларының құқықтарына, авторлық құқықтарға және сол сияқты жиіркенішті істерге мән бере бастады.

Кейін Сталлман (Левидің сол кітабынан үзінді келтіре отырып): «Мен бағдарламалық жасақтаманың иелері болуы керек дегенге сене алмаймын. Болған оқиға бүкіл адамзатты бүлдірді. Бұл адамдардың бағдарламалардан барынша пайда алуына кедергі жасады». Немесе оның тағы бір сөзі: «Машиналар бұзыла бастады, оларды жөндейтін ешкім болмады. Ешкім бағдарламалық құралға қажетті өзгерістер енгізген жоқ. Хакер еместер бұған жай ғана жауап берді - олар фашизм мен лицензиялық келісімдерді ала отырып, сатып алынған коммерциялық жүйелерді пайдалана бастады.

Нәтижесінде Ричард Столлман MIT-тен кетіп, UNIX-үйлесімді операциялық жүйенің өзінің еркін жүзеге асырылуын құруға шешім қабылдады. Сонымен 1983 жылы 27 қыркүйекте «Gnu - UNIX емес» деп аударылатын GNU жобасы пайда болды. GNU-ге қатысты бірінші бағдарлама EMACS болды. GNU жобасының бөлігі ретінде 1988 жылы өзінің GNU GPL лицензиясы, GNU General Public License әзірленді, ол осы лицензия бойынша таратылатын бастапқы кодтарға негізделген бағдарламалардың авторларын GPL лицензиясы бойынша бастапқы кодтарды да ашуға міндеттейді.

1990 жылға дейін болашақ операциялық жүйенің әртүрлі бағдарламалық жасақтамасы GNU шеңберінде жазылған (тек Сталлман ғана емес), бірақ бұл ОЖ-ның өз ядросы болған жоқ. Ядро тек 1990 жылы қабылданды, бұл GNU Hurd деп аталатын жоба болды, бірақ ол «атпады», оның соңғы нұсқасы 2009 жылы шығарылды. Бірақ біз ақыры жақындаған Linux-ты «оттандырды».

Содан кейін фин баласы Линус Торвальдс әрекетке келеді. Хельсинки университетінде оқып жүргенде Линус Си тілінде және UNIX жүйесінде курстардан өтті, осы тақырыпты күту үшін ол Миниксті сипаттайтын Таненбаум кітабын сатып алды. Оның үстіне, Миникстің өзін 16 дискетада бөлек сатып алу керек, содан кейін оның құны 169 доллар болды (о, Финляндияда ол кезде біздің Горбушка жоқ еді, бірақ сіз не істейсіз, жабайылар 🙂) сипатталған. Сонымен қатар, Торвалдс 80386 процессоры бар компьютерді 3500 долларға несиеге сатып алуға мәжбүр болды, өйткені оған дейін оның 68008 процессорында ескі компьютер ғана болды, оны Minix жұмыс істей алмады (бақытымызға орай, ол бірінші рет жасаған кезде). Linux нұсқасы, алғыс білдірген пайдаланушылар оның компьютерлік несиесін жазып, төледі).

Линус Торвальдс

Торвальдс жалпы Миниксті ұнататынына қарамастан, ол бірте-бірте оның шектеулері мен кемшіліктері қандай екенін түсіне бастады. Оны әсіресе операциялық жүйемен бірге келетін терминалды эмуляциялау бағдарламасы тітіркендірді. Нәтижесінде ол өзінің терминалдық эмуляторын жазуды шешті, сонымен бірге 386-шы процессордың жұмысын түсінді. Торвалдс эмуляторды төмен деңгейде жазды, яғни ол BIOS жүктеушісінен бастады, эмулятор бірте-бірте жаңа мүмкіндіктерге ие болды, содан кейін файлдарды жүктеп алу үшін Линус иілгіш дискі мен файлдық жүйе драйверін жазуға мәжбүр болды, ал біз кеттік. . Операция бөлмесі осылай пайда болды. Linux жүйесі(ол кезде оның аты әлі болмаған).

Операциялық жүйе азды-көпті пайда бола бастағанда, Linus іске қосқан бірінші бағдарлама bash болды. Ол операциялық жүйені bash жұмыс істей алатындай етіп өзгертті деп айту дұрысырақ болар еді. Осыдан кейін ол өзінің операциялық жүйесі бойынша басқа бағдарламаларды біртіндеп іске қоса бастады. Ал операциялық жүйе мүлдем Linux деп аталмауы керек еді. «Тек ермек үшін» деген атпен жарияланған Торвальдстың өмірбаянынан үзінді келтірейік: «Іштей мен оны Linux деп атадым. Шынымды айтсам, мен оны ешқашан Linux деген атпен шығарғым келмеді, өйткені бұл маған өте ұятсыз болып көрінді. Соңғы нұсқаға қандай атау дайындадым? ақымақ. (Түсіндіңіз бе? Freaks - жанкүйерлер - және Unix-тен x соңында) «.

1991 жылы 25 тамызда comp.os.minix конференциясында келесі тарихи хабарлама пайда болды: «Барлық minix пайдаланушыларына сәлем! Мен мұнда (тегін) операциялық жүйені жазып жатырмын (әуесқойлық нұсқасы - ол gnu сияқты үлкен және кәсіби болмайды) 386 және 486 AT үшін. Мен мұнымен сәуір айынан бері айналысып келемін, ол жақында дайын болатын сияқты. Миникс туралы сізге не ұнайтынын/ұнамайтынын айтыңыз, өйткені менің ОЖ оған ұқсас (басқа нәрселермен қатар, оның практикалық себептермен файлдық жүйенің физикалық орналасуы бірдей). Осы уақытқа дейін мен оған bash (1.08) және gcc (1.40) ауыстырдым және бәрі жұмыс істейтін сияқты. Сонымен, алдағы айларда менде қазірдің өзінде жұмыс істейтін нәрсе болады және мен адамдардың көпшілігіне қандай мүмкіндіктер қажет екенін білгім келеді. Барлық өтініштер қабылданады, бірақ орындалуына кепілдік берілмейді :-)»

Мұнда GNU және gcc бағдарламасы бұрыннан айтылғанын ескеріңіз (ол кезде бұл аббревиатура GNU C Compiler дегенді білдіреді). Операциялық жүйені басқа жақтан дамыта бастаған Сталлман мен оның GNU-сын еске түсіріңіз. Ақыры бірігу болды. Сондықтан, Сталлман операциялық жүйе GNU / Linux емес, жай ғана Linux деп аталса, ренжіді, Linux дәл ядро ​​болып табылады және көптеген мұқабалар GNU жобасынан алынған.

1991 жылы 17 қыркүйекте Линус Торвальдс өзінің операциялық жүйесін алғаш рет сол кезде 0.01 нұсқасы болған жалпыға қолжетімді FTP серверіне орналастырды. Содан бері бүкіл прогрессивті адамзат бұл күнді Linux-тың туған күні ретінде тойлап келеді. Әсіресе шыдамсыз адамдар оны 25 тамызда, Линус конференцияда ОЖ жазып жатқанын мойындаған кезде тойлай бастайды. Содан кейін Linux-тің дамуы жалғасып, Linux атауының өзі күшейе түсті, өйткені операциялық жүйе орналасқан мекен-жай келесідей болды. ftp.funet.fi/pub/OS/Linux. Линусқа серверде орын бөлген мұғалім Ари Лемке Freax онша көрнекті емес деп ойлап, каталогты «Linux» деп атады - автордың аты мен «x» қоспасы сияқты. UNIX соңы.

Тукс. Linux логотипі

Сондай-ақ, Торвальдс Linux-ті Minix-тің әсерінен жазғанымен, бағдарламалау тұрғысынан Linux пен Minix арасында түбегейлі айырмашылық бар. Таненбаум микроядролық операциялық жүйелердің жақтаушысы болып табылады, яғни операциялық жүйеде функцияларының аз саны бар шағын ядросы болған кезде және операциялық жүйенің барлық драйверлері мен қызметтері жеке тәуелсіз модульдер ретінде әрекет етеді, ал Linux монолитті ядросы бар, операциялық жүйенің көптеген мүмкіндіктері қамтылған, сондықтан Linux жүйесінде сізге қандай да бір арнайы мүмкіндік қажет болса, онда кейбір өзгерістерді енгізе отырып, ядроны қайта компиляциялау қажет болуы мүмкін. Бір жағынан, микроядро архитектурасының артықшылықтары бар - бұл сенімділік пен қарапайымдылық, сонымен бірге микроядроның ұқыпсыз дизайнымен монолитті ядро ​​​​тезірек жұмыс істейді, өйткені үшіншіден үлкен көлемдегі деректермен алмасу қажет емес. партиялық модульдер. Linux пайда болғаннан кейін 1992 жылы Торвальдс пен Таненбаум, сондай-ақ олардың жақтастары арасында comp.os.minix конференциясында виртуалды дау шықты, архитектурасы қайсысы жақсы – микроядро немесе монолитті. Таненбаум микроядроның архитектурасы болашақ екенін және Linux шыққан кезде ескіргенін айтты. Сол күннен бері 20 жылға жуық уақыт өтті... Айтпақшы, GNU операциялық жүйесінің өзегіне айналуы тиіс GNU Hurd да микроядро ретінде жасалған.

Мобильді Linux

Сонымен, 1991 жылдан бастап Linux компьютерлерде болса да, біртіндеп дамып келеді қарапайым пайдаланушылар Linux үлесі әлі үлкен емес, ол серверлер мен суперкомпьютерлерде бұрыннан танымал болды, ал Windows осы саладағы өз үлесін қысқартуға тырысады. Сонымен қатар, Linux қазір телефондар мен планшеттерде жақсы орналастырылған, өйткені Android жүйесі де Linux.

Android логотипі

Android тарихы 2003 жылы пайда болған Android Inc-тен басталды және мобильді қосымшаларды әзірлеумен айналысатын сияқты көрінді (бұл компанияның өмір сүруінің алғашқы жылдарындағы нақты әзірлемелер әлі де ерекше жарнамаланбайды). Бірақ екі жылдан аз уақыт өткен соң Android Inc-ті Google басып алды. Android Inc әзірлеушілері басып алғанға дейін нақты не істеп жатқаны туралы ресми мәліметтерді табу мүмкін болмады, дегенмен 2005 жылы оны Google сатып алғаннан кейін олар телефондарға арналған жаңа операциялық жүйені жасап жатыр деген қауесет тараған болатын. Дегенмен, Android-тің бірінші шығарылымы 2008 жылдың 22 қазанында болды, содан кейін жаңа нұсқалар жүйелі түрде шығарыла бастады. Android-тің дамуының ерекшеліктерінің бірі - бұл жүйе бұзылған патенттерге шабуыл жасай бастады және Java-ны іске асыру заңды тұрғыдан түсініксіз, бірақ бұл техникалық емес дауларға бармай-ақ қояйық. .

Бірақ Android Linux-тың жалғыз мобильді өкілі емес, сонымен қатар MeeGo операциялық жүйесі де бар. Егер Android-тың артында Google сияқты қуатты корпорация тұрса, онда MeeGo-да бір сенімді адам жоқ, оны Intel, Nokia, AMD, Novell сияқты компаниялар қолдайтын Linux Foundation қолдауымен қауымдастық әзірлейді, ASUS, Acer, MSI және т.б. Қазіргі уақытта негізгі көмек Intel компаниясынан келеді, бұл таңқаларлық емес, өйткені MeeGo жобасының өзі Intel бастамашысы болған Moblin жобасынан шыққан. Моблин Linux таратуол үшін жұмыс істеу керек еді портативті құрылғылар Intel Atom процессорымен басқарылады. Тағы бір мобильді Linux-ті атап өтейік - Openmoko. Linux телефондар мен планшеттерде өз орнын табуға тырысуда, Google Android-ті байыппен қабылдады, Linux-тың басқа мобильді нұсқаларының болашағы әлі де бұлыңғыр.

Көріп отырғаныңыздай, қазіргі уақытта Linux әртүрлі процессорлармен басқарылатын көптеген жүйелерде жұмыс істей алады, дегенмен 1990 жылдардың басында Торвальдс Linux-ті 386-шы процессордан басқа жерге көшіруге болатынына сенбеді.

MacOS X

Енді UNIX-пен үйлесімді басқа операциялық жүйеге көшейік - Mac OS X. Mac OS-тің 9-шыға дейінгі алғашқы нұсқалары UNIX-ке негізделмеген, сондықтан біз оларға тоқталмаймыз. Біз үшін ең қызықтысы 1985 жылы Стив Джобсты Apple компаниясынан шығарғаннан кейін басталды, содан кейін ол NeXT компаниясын құрды, ол олар үшін компьютерлер мен бағдарламалық қамтамасыз етуді әзірледі. NeXT бағдарламасына бұрын Карнеги Меллон университетінде әзірленіп жатқан UNIX-үйлесімді операциялық жүйе үшін Mach микроядросын жасаған Аветис Теванян бағдарламашы алды. Mach ядросы BSD UNIX ядросын алмастыру керек еді.

NeXT компаниясының логотипі

Аветис Теванян NeXTSTEP деп аталатын UNIX үйлесімді жаңа операциялық жүйені әзірлеуші ​​топтың жетекшісі болды. Дөңгелекті қайта ойлап табу үшін емес, NeXTSTEP бірдей Mach ядросына негізделген. Бағдарламалау тұрғысынан NeXTSTEP, көптеген басқа операциялық жүйелерден айырмашылығы, объектілі-бағытталған болды, онда үлкен рөлді қазір Mac OS X жүйесінде кеңінен қолданылатын Objective-C бағдарламалау тілі атқарды. NeXTSTEP бірінші нұсқасы шығарылды. 1989 жылы. NeXTSTEP бастапқыда Motorola 68000 процессорларына арналғанына қарамастан, бірақ 1990 жылдардың басында операциялық жүйе 80386 және 80486 процессорларына ауыстырылды. NeXT үшін жағдай жақсы болмады және 1996 жылы Apple Джобсқа Mac OS орнына NeXTSTEP пайдалану үшін NeXT сатып алуды ұсынды. Мұнда әлі де NeXTSTEP және BeOS операциялық жүйелері арасындағы бәсекелестік туралы айтуға болады, ол NeXTSTEP жеңісімен аяқталды, бірақ біз ұзақ әңгімені ұзартпаймыз, сонымен қатар BeOS UNIX-ке ешқандай қатысы жоқ, сондықтан қазіргі уақытта ол бізді қызықтырмайды, дегенмен бұл операциялық жүйенің өзі өте қызықты болды және оның дамуы үзілгені өкінішті.

Бір жылдан кейін Джобс Apple-ге оралғанда, ол NeXTSTEP-ті бейімдеу саясатын жалғастырды Apple компьютерлері, ал бірнеше жылдан кейін бұл операциялық жүйе PowerPC және Intel процессорларына ауыстырылды. Осылайша, сервер Mac нұсқасы OS X (Mac OS X Server 1.0) 1999 жылы шығарылды, ал 2001 жылы соңғы пайдаланушыларға арналған операциялық жүйе Mac OS X (10.0) шығарылды.

Кейінірек Mac OS X негізінде операциялық жүйе әзірленді iPhone телефондары, ол Apple iOS деп аталды. iOS жүйесінің бірінші нұсқасы 2007 жылы шығарылды. Сондай-ақ iPad бірдей операциялық жүйеде жұмыс істейді.

Қорытынды

Жоғарыда айтылғандардың барлығынан кейін сізде қандай операциялық жүйені UNIX деп санауға болады деген сұрақ туындауы мүмкін. Бұған нақты жауап жоқ. Ресми тұрғыдан алғанда, Бірыңғай UNIX спецификациясы бар - UNIX деп аталу үшін операциялық жүйе қанағаттандыруы керек стандарт. UNIX-ке ұқсамайтын операциялық жүйе қанағаттандыра алатын POSIX стандартымен шатастырмаңыз. Айтпақшы, POSIX атауын сол Ричард Сталлман ұсынған және ресми түрде POSIX стандартында ISO/IEC 9945 нөмірі бар.Бір спецификацияны алу қымбат және уақытты қажет ететін бизнес, сондықтан онымен операциялық жүйелер көп емес. . Бұл сертификатты алған операциялық жүйелерге Mac OS X, Solaris, SCO және басқа да азырақ белгілі операциялық жүйелер кіреді. Бұған Linux немесе *BSD кірмейді, бірақ олардың «Unixness» екеніне ешкім күмән келтірмейді. Сондықтан, мысалы, программист және жазушы Эрик Рэймонд осы немесе басқа операциялық жүйенің UNIX-ке ұқсас екенін анықтау үшін тағы екі белгіні ұсынды. Бұл мүмкіндіктердің біріншісі - AT&T және Bell Labs-та жасалған түпнұсқа UNIX-тен бастапқы кодтың «сәйкессіздігі». Бұған BSD жүйелері кіреді. Екінші белгі – «UNIX функционалда». Бұған UNIX спецификациясында сипатталғанға жақын әрекет ететін, бірақ ресми сертификат алмаған операциялық жүйелер жатады, сонымен қатар, бастапқы UNIX көздерімен ешқандай байланысы жоқ. Бұған Linux, Minix, QNX кіреді.

Бұл туралы, мүмкін, біз тоқтайтын шығармыз, әйтпесе ол шықты, сондықтан әріптер өте көп. Бұл шолу негізінен ең танымал операциялық жүйелердің пайда болу тарихын қамтыды - BSD, Linux, Mac OS X, Solaris вариациялары, QNX, Plan 9, Plan B және басқалары сияқты кейбір UNIXs артта қалды. Кім біледі, мүмкін болашақта оларды тағы да еске алармыз.

РЕСЕЙДІҢ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ

ФЕДЕРАЦИЯ

БІЛІМ БЕРУ ФЕДЕРАЛДЫҚ АГЕНТІГІ

МЕМЛЕКЕТТІК ОҚУ МЕКЕМЕСІ

ЖОҒАРЫ КӘСІБИ БІЛІМ БЕРУ

Таганрог мемлекеттік радиотехника университеті

«Информатика» пәні

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

Орындаған: Орда-Жигулина Д.В., гр. E-25

Тексерген: Вишневецкий В.Ю.

Таганрог 2006 ж


Кіріспе

Unix 3 дегеніміз не

Unix 7 тегін қайдан алуға болады

Негізгі бөлім. (Unix сипаттамасы)

1. Unix 8-тің негізгі түсініктері

2. Файлдық жүйе 9

2.1 Файл түрлері 9

3. Командалық аудармашы 11

4. UNIX 12 ядросы

4.1 Жалпы ұйымдәстүрлі UNIX 13 ядросы

4.2 Ядроның негізгі функциялары 14

4.3 Ядромен әрекеттесу принциптері 15

4.4 Үзілістерді өңдеу принциптері 17

5. Енгізу/шығаруды басқару 18

5.1 Жүйе енгізу/шығару буферлеу принциптері 19

5. Енгізу/шығаруды басқаруға арналған 2 жүйелік қоңыраулар 21

6. Драйверлердің интерфейстері мен енгізу нүктелері 23

6.1 Драйверлерді блоктау 23

6.2 Таңба драйверлері 24

6. 3 ағындық драйверлер 25

7. Командалар мен утилиталар 25

7. 1 UNIX OS 26 жүйесінде топты ұйымдастыру

7.2 Енгізу/шығаруды қайта бағыттау және құбырлар 26

7. 3 Кірістірілген, кітапхана және пайдаланушы командалары 26

7.4 Командалық тілде бағдарламалау 27

8. GUI құралдары 27

8.1 Пайдаланушы идентификаторлары және пайдаланушы топтары 30

8.2 Файлды қорғау 32

8.3 UNIX ОЖ ортасын қолдайтын перспективалы операциялық жүйелер 33

Қорытынды

Unix пен басқа ОЖ 36 арасындағы негізгі айырмашылықтар

Unix 37 қолданбалары


Кіріспе

Unix дегеніміз не

Unix термині және мүлдем баламалы емес UNIX әртүрлі мағынада қолданылады. Қарапайымырақ термин ретінде екінші терминнен бастайық. Қысқаша айтқанда, UNIX (осы пішінде) бастапқыда AT&T корпорациясына тиесілі тіркелген сауда белгісі болып табылады, ол көп жылдар бойы қолдарын ауыстырды және қазір Open Group деп аталатын ұйымның меншігі болып табылады. UNIX атауын пайдалану құқығына «биттерді тексеру» түрі – кейбір анықтамалық ОЖ (Single Unix Standard – бұл жағдайда Unix жүйесіндегі Бірыңғай стандарт деп аударуға болады) техникалық сипаттамаларына сәйкестік сынақтарынан өту арқылы қол жеткізіледі. Бұл процедура тек күрделі ғана емес, сонымен қатар өте қымбат, сондықтан қазіргіден бірнеше операциялық жүйелер ғана өтті және олардың барлығы жеке меншік болып табылады, яғни олар белгілі бір корпорациялардың меншігі болып табылады.

UNIX атауына құқықты иеленген корпорациялардың ішінде әзірлеушілер / тестерлер және иелерінің қаны (дәлірек айтқанда, доллар) келесілерді атауға болады:

SunOS-пен күн (әлемге Solaris деген атпен танымал);

AIX жүйесін әзірлеген IBM;

Hewlett-Packard HP-UX жүйесінің иесі;

IRIX – SGI операциялық жүйесі.

Сонымен қатар, тиісті UNIX атауы жүйелерге қолданылады:

DEC әзірлеген True64 Unix жойылуымен Compaq-қа өтті, енді соңғысымен бірге сол Hewlett-Packard компаниясының меншігіне айналды;

UnixWare ШЫҰ-ға тиесілі (Caldera және Santa Cruz Operation бірігуінің өнімі).

Меншік болғандықтан, бұл жүйелердің барлығы көп ақшаға (тіпті американдық стандарттар бойынша) сатылады. Дегенмен, бұл UNIX-тің таралуына негізгі кедергі емес.Олардың ортақ ерекшелігі белгілі бір аппараттық платформаларға байланысты: AIX IBM серверлерінде және Power процессорлары бар жұмыс станцияларында жұмыс істейді, HP-UX жеке HP-PA (Precision Architecture) машиналар , IRIX - MIPS процессорлары бар SGI графикалық станцияларында, True64 Unix - Alpha процессорларына арналған (өкінішке орай, қайтыс болған Bose-де) Тек UnixWare «демократиялық» ДК платформасына бағытталған, ал Solaris екі архитектураға арналған нұсқаларында бар - өзіндік, Sparc және бәрі бірдей ДК, бірақ олардың таралуына айтарлықтай ықпал етпеді - жаңа ДК перифериялық құрылғыларына салыстырмалы түрде әлсіз қолдаудың арқасында.

Осылайша, UNIX ең алдымен заңды ұғым болып табылады. Бірақ Unix терминінің технологиялық түсіндірмесі бар. Бұл IT индустриясы операциялық жүйелердің бүкіл отбасы үшін қолданатын жалпы атау, не "түпнұсқа" UNIX компаниясы AT & T компаниясынан алынған немесе оның функцияларын "нөлден бастап", соның ішінде Linux, FreeBSD және сияқты тегін операциялық жүйелерді қайта шығаратын. басқа BSD дискілері, Single Unix стандартына сәйкес келетін ешқандай растау ешқашан көрсетілмеген. Сондықтан оларды жиі Unix тәрізді деп атайды.

Мағынасы жағынан жақын «POSIX-үйлесімді жүйелер» термині де кеңінен қолданылады, ол бір аттас стандарттар жинағына сәйкес келетін операциялық жүйелердің тобын біріктіреді. POSIX (uniX негізіндегі портативті операциялық жүйе интерфейсі) стандарттарының өзі Unix жүйелерінде қабылданған тәжірибелер негізінде әзірленген, сондықтан соңғыларының барлығы, анықтамасы бойынша, POSIX сәйкес келеді. Дегенмен, бұлар толық синоним емес: POSIX стандарттарымен үйлесімділікке тек Unix-ке жанама түрде қатысты (QNX, Syllable) немесе мүлдем қатысы жоқ (Windows NT/2000/XP дейін) операциялық жүйелер мәлімдейді.

UNIX, Unix және POSIX арасындағы қарым-қатынас туралы мәселені нақтылау үшін тарихқа аздап үңілу керек. Шын мәнінде, бұл мәселенің тарихы «Тегін Unix: Linux, FreeBSD және басқалары» кітабының сәйкес тарауында (жақында BHV-Петербургте шығады) және Linux және BSD жүйелерінің тарихы туралы мақалаларда егжей-тегжейлі талқыланады.

Unix операциялық жүйесін (дәлірек айтсақ, оның бірінші нұсқасы) Bell Labs (AT&T бөлімшесі) қызметкерлері 1969-1971 жж. Оның алғашқы авторлары - Кен Томпсон мен Деннис Ричи - мұны тек өз мақсаттары үшін, атап айтқанда, өздерінің сүйікті StarTravel ойынымен көңіл көтеру үшін жасады. Ал бірқатар заңды себептерге байланысты компанияның өзі оны коммерциялық өнім ретінде пайдалана алмады. Дегенмен, Unix-тің практикалық қолданылуы өте тез табылды. Біріншіден, ол Bell Labs зертханасында әртүрлі техникалық (соның ішінде патенттік) құжаттамаларды дайындау үшін пайдаланылды. Ал екіншіден, UUCP (Unix to Unix Copy Program) байланыс жүйесі Unix негізінде құрылған.

Өткен ғасырдың 70-80-ші жылдарының басында Unix қолданылған тағы бір аймақ өте ерекше болып шықты. Атап айтқанда, бастапқы мәтіндерде ол Информатика саласында жұмыс жүргізетін ғылыми мекемелер арасында таратылды. Мұндай таратудың мақсаты (қазіргі мағынада мүлдем тегін емес, бірақ шын мәнінде өте либералды болып шықты) мыналар болды: жоғарыда аталған білім саласында білім беру және зерттеу.

Ең танымалы - Калифорниядағы Беркли университетінде жасалған BSD Unix жүйесі. Түпнұсқа Unix-тің меншікті кодынан бірте-бірте босатылып, ақырында, күрт көтерілулер мен құлдыраулардан кейін (мұнда егжей-тегжейлі сипатталған) заманауи тегін BSD жүйелерін - FreeBSD, NetBSD және т.б. пайда болды.

Университет хакерлерінің жұмысының маңызды нәтижелерінің бірі (1983 ж.) сол кездегі ARPANET желісіне негізделген (және қазіргі Интернеттің негізіне айналған) Unix-те TCP/IP протоколын қолдауды енгізу болды. Бұл бүкіләлемдік желіге қатысты барлық салаларда Unix үстемдігінің алғы шарты болды. Және бұл операциялық жүйелердің осы тобының келесі практикалық қолданбасы болды - сол уақытта бір Unix туралы айтудың қажеті жоқ еді. Өйткені ол, бұрын айтылғандай, өзінің екі тармағын бөлді - бастапқы UNIX-тен (уақыт өте келе ол System V атауын алды) және Берклиден шыққан жүйеден. Екінші жағынан, V жүйесі бұл атауды талап етуге заңды құқығы бар әртүрлі меншікті UNIX-тердің негізін құрады.

Соңғы жағдай - бір кездері бір ОЖ-ның үйлесімділігін біртіндеп жоғалтатын бірнеше жолдарға тармақталуы - Unix идеологиясының іргетастарының біріне қайшы келді: жүйенің әртүрлі платформалар арасындағы тасымалдануы және оның бір Unix жүйесінен қолдануы. басқа. Жоғарыда айтылған POSIX стандарттарының жиынтығын құрумен аяқталатын әртүрлі стандарттар ұйымдарының қызметін өмірге әкелген нәрсе.

Бұл Linus Torvalds өзінің операциялық жүйесін - Linux-ті «нөлден» (яғни, бұрыннан бар кодты пайдаланбай) жасап, POSIX стандарттарына сүйенді. Және ол Unix жүйелерін қолданудың дәстүрлі салаларын (бағдарламалық қамтамасыз ету, коммуникациялар, Интернет) тез және сәтті игеріп, соңында олар үшін жаңасын - жалпы мақсаттағы жұмыс үстелі пайдаланушы платформаларын ашты. Бұл оны халық арасында танымал етті - бұл барлық басқа Unix жүйелерінің меншікті және ақысыз біріктірілгенінен асып түсетін танымалдылық.

Келесі сөздің кең мағынасында Unix жүйелерінде ешбір түрін есепке алмай жұмыс істеу туралы болады сауда белгілеріжәне басқа да құқықтық мәселелер. Жұмыс әдістеріне қатысты негізгі мысалдар олардың еркін жүзеге асырылу өрісінен алынады - Linux, аз дәрежеде FreeBSD, тіпті азырақ - басқа BSD жүйелерінен.

Тегін Unix-ті қайдан алуға болады?

FreeBSD дерекқоры - www.freebsd.org;

www.sco.com сайтына кіруге болады


Негізгі бөлім. (Unix сипаттамасы)

1. Unix бағдарламасының негізгі түсініктері

Unix екі негізгі ұғымға негізделген: «процесс» және «файл». Процестер болып табылады динамикалық жағыжүйелер субъектілер болып табылады; және файлдар – статикалық, бұл процестердің объектілері. Ядромен және бір-бірімен әрекеттесетін процестер арасындағы барлық дерлік интерфейс файлдарды жазу/оқу сияқты көрінеді. Сізге сигналдар, ортақ жад және семафорлар сияқты нәрселерді қосу қажет болса да.

Процестерді шамамен екі түрге бөлуге болады - тапсырмалар және демондар. Тапсырма - бұл өз жұмысын орындайтын, оны тезірек аяқтауға және оны аяқтауға тырысатын процесс. Демон өңдеуге қажет оқиғаларды күтеді, орын алған оқиғаларды өңдейді және қайтадан күтеді; ол әдетте басқа процестің тәртібімен аяқталады, көбінесе оны пайдаланушы «процесс_санын өлтіру» пәрменін беру арқылы өлтіреді. Осы тұрғыдан алғанда, пайдаланушы енгізуін өңдейтін интерактивті тапсырма тапсырмадан гөрі демонға көбірек ұқсайтыны белгілі болды.

2. Файлдық жүйе

Ескі Unix-те атауға 14 әріп тағайындалды, жаңаларында бұл шектеу жойылды. Файл атауынан басқа, каталогта оның inode идентификаторы бар - блоктың нөмірін анықтайтын бүтін сан. файл атрибуттары жазылады.Олардың ішінде: пайдаланушы нөмірі – файл иесі;сандық топтар Файлға сілтемелер саны (төменде қараңыз) Жасалған күні мен уақыты, соңғы өзгерту және файлға соңғы қол жеткізу Access атрибуттары Access атрибуттары түрін қамтиды. файлдың (төменде қараңыз), іске қосу кезіндегі құқықтарды өзгерту атрибуттары (төменде қараңыз) және оқу, жазу және орындау үшін иесінің, сыныптасының және басқалардың оған қол жеткізу құқықтары. Файлды жою құқығы жазу құқығымен анықталады. үстіңгі каталогқа.

Әрбір файл (бірақ каталог емес) бірнеше атаумен белгілі болуы мүмкін, бірақ олар бір бөлімде болуы керек. Файлға барлық сілтемелер тең; файлға соңғы сілтеме жойылған кезде файл жойылады. Егер файл ашық болса (оқу және/немесе жазу үшін), онда оған сілтемелер саны тағы біреуге артады; уақытша файлды ашатын қанша бағдарлама оны бірден жояды, осылайша олар бұзылса, операциялық жүйе процесс ашқан файлдарды жапқанда, бұл уақытша файл операциялық жүйе арқылы жойылады.

Тағы біреуі бар қызықты ерекшелігіфайлдық жүйе: егер файл жасалғаннан кейін оған жазу қатарда емес, үлкен аралықтарда болса, онда бұл аралықтарға дискілік кеңістік бөлінбейді. Осылайша, бөлімдегі файлдардың жалпы көлемі бөлімнің көлемінен үлкен болуы мүмкін және мұндай файл жойылған кезде оның өлшемінен аз орын босатылады.

2.1 Файл түрлері

Файлдар келесі түрлерде болады:

тұрақты тікелей қатынау файлы;

каталог (басқа файлдардың аттары мен идентификаторлары бар файл);

символдық сілтеме (басқа файлдың аты бар жол);

блоктық құрылғы (диск немесе магниттік таспа);

сериялық құрылғы (терминалдар, сериялық және параллель порттар; дискілер мен таспаларда да сериялық құрылғы интерфейсі бар)

атаулы арна.

Құрылғылармен жұмыс істеуге арналған арнайы файлдар әдетте «/dev» каталогында орналасады. Міне, олардың кейбіреулері (FreeBSD номинациясында):

tty* - терминалдар, соның ішінде: ttyv - виртуалды консоль;

ttyd - DialIn терминалы (әдетте сериялық порт);

cuaa - DialOut желісі

ttyp – желілік псевдотерминал;

tty – тапсырма байланыстырылатын терминал;

wd* - қатты дискілер және олардың бөлімшелері, соның ішінде: wd - қатты диск;

wds - осы дискінің бөлімі (мұнда «кесінді» деп аталады);

wds - бөлім бөлімі;

fd - иілгіш диск;

rwd*, rfd* - wd* және fd* сияқты, бірақ дәйекті қатынасы бар;

Кейде пайдаланушы іске қосқан бағдарлама оны іске қосқан пайдаланушының құқықтарына ие емес, басқа біреудің құқықтарына ие болуы талап етіледі. Бұл жағдайда өзгерту құқықтары атрибуты пайдаланушының құқықтарына - бағдарлама иесіне орнатылады. (Мысал ретінде сұрақ-жауаптары бар файлды оқитын бағдарламаны беремін және оның оқығаны негізінде осы бағдарламаны іске қосқан студентті сынаймын. Бағдарлама жауаптары бар файлды оқуға құқығы болуы керек, бірақ студент Оны кім іске қосса, оны іске қоспау керек.) Мысалы, пайдаланушы құпия сөзін өзгерте алатын passwd бағдарламасы жұмыс істейді. Пайдаланушы passwd бағдарламасын іске қоса алады, ол жүйелік дерекқорға өзгертулер енгізе алады, бірақ пайдаланушы жасай алмайды.

«Drive:pathname» ретінде толық жарамды файл атауы бар DOS және «-filesystem-drive:$.path.name» ретінде бар RISC-OS-тен (әдетте оның артықшылықтары бар) айырмашылығы Unix мөлдір белгілерді пайдаланады. «/жол/атауы» пішімі. Түбір Unix ядросы жүктелген бөлімнен өлшенеді. Егер басқа бөлімді пайдалану қажет болса (және жүктеу бөлімінде әдетте жүктеу үшін қажет нәрсені ғана қамтиды), `mount /dev/partitionfile dir` пәрмені пайдаланылады. Сонымен бірге, бұрын осы каталогта болған файлдар мен ішкі каталогтар бөлім ажыратылғанға дейін қолжетімсіз болады (әрине, барлық қалыпты адамдар бөлімдерді орнату үшін бос каталогтарды пайдаланады). Тек жетекшінің монтаждау және түсіру құқығы бар.

Іске қосу кезінде әрбір процесс оған 0 дескрипторында стандартты stdin кірісі ретінде белгілі үш файл ашық болуы мүмкін; 1 дескриптордағы стандартты шығыс stdout; және дескриптордағы stderr стандартты шығысы 2. Жүйеге кірген кезде, пайдаланушы логин мен парольді енгізгенде және қабық іске қосылғанда, үшеуі де /dev/tty; кейінірек олардың кез келгенін кез келген файлға қайта бағыттауға болады.

3. Командалық интерпретатор

Unix әрқашан дерлік екі қабықпен келеді, sh (қабық) және csh (C тәрізді қабық). Олардан басқа bash (Борн), ksh (Korn) және т.б. Егжей-тегжейлерге тоқталмай-ақ, жалпы қағидалар:

Ағымдағы каталогты өзгерту, ортаның айнымалы мәндерін (орта) және операторларды орнатудан басқа барлық пәрмендер құрылымдық бағдарламалау - сыртқы бағдарламалар. Бұл бағдарламалар әдетте /bin және /usr/bin каталогтарында орналасады. Жүйені басқару бағдарламалары - /sbin және /usr/sbin каталогтарында.

Пәрмен іске қосылатын бағдарламаның аты мен аргументтерден тұрады. Аргументтер пәрмен атынан және бір-бірінен бос орындар мен қойындылар арқылы бөлінеді. Кейбір арнайы таңбалар қабықтың өзі арқылы түсіндіріледі.Арнайы таңбалар " " ` ! $ ^ * ? | & ; (тағы не?).

Бір пәрмен жолыбірнеше командалар беруге болады. Командаларды бөлуге болады; (командаларды тізбектей орындау), & (асинхронды бір мезгілде командаларды орындау), | (синхронды орындау, бірінші команданың stdout екіншінің stdinіне беріледі).

Сондай-ақ, аргументтердің бірі ретінде "файл" (файл нөлден шығарылады) немесе ">>файл" (жазба файлдың соңына жазылады) қосу арқылы файлдан стандартты енгізуді алуға болады.

Кез келген пәрмен бойынша ақпарат қажет болса, «man command_name» пәрменін беріңіз. Бұл экранда «көп» бағдарламасы арқылы көрсетіледі - оны Unix жүйесінде «адам көбірек» пәрменімен қалай басқару керектігін қараңыз.

4. UNIX ядросы

Пайдаланушыларды бір-бірінен қорғайтын және жүйе деректерін кез келген артықшылығы жоқ пайдаланушыдан қорғайтын кез келген басқа көп пайдаланушы операциялық жүйе сияқты, UNIX-те компьютер ресурстарын басқаратын және пайдаланушыларға қызметтердің негізгі жиынтығын ұсынатын қауіпсіз ядросы бар.

UNIX операциялық жүйесінің заманауи нұсқаларының ыңғайлылығы мен тиімділігі бүкіл жүйенің, соның ішінде ядроның ең жақсы жобаланған және құрылымдалғанын білдірмейді. UNIX ОЖ бірнеше жылдар бойы дамыды (бұл тарихтағы бірінші операциялық жүйе, ол соншалықты жетілген жаста - 25 жылдан астам танымалдылықты жалғастыруда). Әрине, жүйенің мүмкіндіктері өсті және үлкен жүйелерде жиі болатындай, UNIX ОЖ құрылымындағы сапалы жақсартулар оның мүмкіндіктерінің өсуіне ілесе алмады.

Нәтижесінде, UNIX операциялық жүйесінің қазіргі заманғы коммерциялық нұсқаларының көпшілігінің өзегі үлкен, өте жақсы құрылымдалмаған монолит болып табылады. Осы себепті UNIX ядросы деңгейінде бағдарламалау өнер болып қала береді (сыртқы құрылғы драйверлерін әзірлеудің жақсы қалыптасқан және түсінікті технологиясын қоспағанда). UNIX ядросының ұйымдастырылуындағы бұл өндіргіштіктің жоқтығы көпшілікті қанағаттандырмайды. Осыдан UNIX ОЖ ортасын жүйені мүлде басқаша ұйымдастырумен толық қайта шығаруға деген ұмтылыс туындайды.

Ең көп таралғандықтан, UNIX System V ядросы жиі талқыланады (оны дәстүрлі деп санауға болады).

4.1 Дәстүрлі UNIX ядросының жалпы ұйымдастырылуы

UNIX ОЖ-нің негізгі жетістіктерінің бірі жүйенің жоғары ұтқырлық қасиетіне ие болуы. Бұл сапаның мағынасы бүкіл операциялық жүйені, оның ішінде ядросын әртүрлі аппараттық платформаларға салыстырмалы түрде оңай тасымалдау болып табылады. Жүйенің ядродан басқа барлық бөліктері машинадан толығымен тәуелсіз. Бұл компоненттер C тілінде ұқыпты жазылған және оларды жаңа платформаға көшіру (кем дегенде 32-биттік компьютер класында) тек бастапқы кодтарды мақсатты компьютер кодтарына қайта құрастыруды талап етеді.

Әрине, ең үлкен мәселелер пайдаланылатын компьютердің ерекшеліктерін толығымен жасыратын жүйелік ядромен байланысты, бірақ өзі осы ерекшелікке байланысты. Ядроның машинаға тәуелді және машинаға тәуелсіз құрамдас бөліктерін ойластырылған бөлу нәтижесінде (шамасы, операциялық жүйені жасаушылардың көзқарасы бойынша бұл дәстүрлі UNIX ОЖ ядросын жасаушылардың ең жоғары жетістігі болса керек), ол ядроның негізгі бөлігі мақсатты платформаның архитектуралық ерекшеліктеріне тәуелді емес, толығымен C тілінде жазылған және жаңа платформаға көшіру үшін тек қайта құрастыруды қажет етеді.

Дегенмен, ядроның салыстырмалы түрде аз бөлігі машинаға тәуелді және C және мақсатты процессордың ассемблер тілінде араласқанда жазылған. Жүйені жаңа платформаға көшіру кезінде ядроның бұл бөлігі ассемблер тілі арқылы және мақсатты аппараттық құралдың ерекше мүмкіндіктерін ескере отырып қайта жазылуы керек. Ядроның машинаға тәуелді бөліктері негізгі машинаға тәуелсіз бөліктен жақсы оқшауланған және әрбір машинаға тәуелді құрамдас бөліктің мақсатын жақсы түсінген кезде, машинаға тән бөлікті қайта жазу негізінен техникалық тапсырма болып табылады (бірақ ол жоғары бағдарламалау дағдылары).

Дәстүрлі UNIX ядросының машинаға арналған бөлігі келесі құрамдастарды қамтиды:

жүйені төмен деңгейде жылжыту және инициализациялау (әзірше бұл аппараттық құралдардың мүмкіндіктеріне байланысты);

ішкі және сыртқы үзулерді алғашқы өңдеу;

жадты басқару (виртуалды жадты аппараттық қамтамасыз ету мүмкіндіктеріне қатысты бөлігінде);

пайдаланушы және ядро ​​режимдері арасында контекстті ауыстыру процесі;

құрылғы драйверлерінің мақсатты платформасының арнайы бөліктері.

4.2 Ядроның негізгі функциялары

UNIX ОЖ ядросының негізгі функцияларына мыналар жатады:

(a) Жүйені инициализациялау – іске қосу және айналдыру функциясы. Ядро толық ядроны компьютер жадына жүктеп, ядроны іске қосатын жүктеу құралын қамтамасыз етеді.

(b) Процесті және ағынды басқару - бар процестер мен ағындарды (ортақ виртуалды жадта жұмыс істейтін "процестер") құру, тоқтату және қадағалау функциясы. UNIX көп процессті операциялық жүйе болғандықтан, ядро ​​процессордың уақытын (немесе көп процессорлы жүйелердегі процессорларды) және басқа компьютерлік ресурстарды орындалатын процестер арасында бөлісуді қамтамасыз етеді, бұл процестер шын мәнінде параллель орындалатындай көрініс береді.

(c) Жадты басқару – процестердің іс жүзінде шексіз виртуалды жадын физикалық түрде салыстыру функциясы Жедел Жадтау Құрылғысыөлшемі шектеулі компьютер. Сәйкес ядро ​​құрамдас бөлігі ЖЖҚ-ның бірдей аймақтарын бірнеше процестер арқылы ортақ пайдалануды қамтамасыз етеді сыртқы жады.

(г) Файлдарды басқару - файлдық жүйенің абстракциялауын жүзеге асыратын функция - каталогтар мен файлдар иерархиялары. UNIX файлдық жүйелері файлдардың бірнеше түрін қолдайды. Кейбір файлдар ASCII деректерін қамтуы мүмкін, басқалары сыртқы құрылғыларға сәйкес келеді. Файлдық жүйе объектілік файлдарды, орындалатын файлдарды және т.б. сақтайды. Файлдар әдетте сыртқы жад құрылғыларында сақталады; оларға қол жеткізу ядро ​​арқылы қамтамасыз етіледі. UNIX әлемінде файлдық жүйені ұйымдастырудың бірнеше түрі бар. UNIX операциялық жүйесінің қазіргі нұсқалары бір уақытта файлдық жүйелердің көпшілігін қолдайды.

(е) Коммуникациялық құралдар – бір компьютердің ішінде жұмыс істейтін процестер арасында (IPC - Inter-Process Communications), жергілікті немесе кең деректер желісінің әртүрлі түйіндерінде орындалатын процестер арасында, сондай-ақ процестер арасында деректер алмасу мүмкіндігін қамтамасыз ететін функция және сыртқы құрылғы драйверлері.

(f) Бағдарламалау интерфейсі – функциялар кітапханасы түрінде реттелген жүйелік шақырулар механизмі негізінде пайдаланушы процестері жағынан ядроның мүмкіндіктеріне қол жеткізуді қамтамасыз ететін функция.

4.3 Ядромен әрекеттесу принциптері

Кез келген операциялық жүйеде пайдаланушы бағдарламаларына ОЖ ядросының қызметтеріне қол жеткізуге мүмкіндік беретін кейбір механизмге қолдау көрсетіледі. Ең атақты кеңестік компьютер BESM-6 операциялық жүйелерінде ядромен сәйкес байланыс құралдары экстракодтар деп аталды, IBM операциялық жүйелерінде жүйелік макростар және т.б. UNIX жүйесінде бұл құралдар деп аталады жүйелік қоңыраулар.

Атау мағынасын өзгертпейді, яғни ОЖ ядросының функцияларына қол жеткізу үшін процессордың «арнайы нұсқаулары» пайдаланылады, орындалған кезде процессордың ішкі үзілуінің ерекше түрі пайда болады, оны ядро ​​​​режиміне ауыстырады (қазіргі заманның көпшілігінде). ОЖ бұл түрдегі үзіліс trap - trap деп аталады). Мұндай үзілістерді өңдеу (шифрды шешу) кезінде ОЖ ядросы үзіліс шын мәнінде белгілі бір әрекеттерді орындау үшін пайдаланушы бағдарламасынан ядроға сұраныс екенін таниды, шақыру параметрлерін таңдайды және оны өңдейді, содан кейін «үзуден қайтару» орындайды. «, пайдаланушы бағдарламасының қалыпты орындалуын қалпына келтіру.

Пайдаланушы бағдарламасымен іске қосылған ішкі үзілістерді көтерудің нақты механизмдері әртүрлі аппараттық архитектураларда ерекшеленетіні анық. UNIX ОЖ пайдаланушы бағдарламалары толығымен мобильді болуы мүмкін ортаны қамтамасыз етуге ұмтылатындықтан, ішкі үзілістерді көтерудің нақты механизмінің ерекшеліктерін жасыру үшін қосымша қабат қажет болды. Бұл механизм жүйелік шақыру кітапханасымен қамтамасыз етілген.

Пайдаланушы үшін жүйелік қоңыраулар кітапханасы Си программалау жүйесінің алдын ала орындалған функцияларының кәдімгі кітапханасы болып табылады. Си тілінде бағдарламалау кезінде жүйелік шақырулар кітапханасынан кез келген функцияны пайдалану кез келген жергілікті немесе кітапханалық C функциясын пайдаланудан еш айырмашылығы жоқ. Дегенмен, белгілі бір жүйелік қоңыраулар кітапханасының кез келген функциясының ішінде, жалпы айтқанда, берілген аппараттық платформаға тән код бар.

4.4 Үзілістерді өңдеу принциптері

Әрине, операциялық жүйелерде қолданылатын ішкі және сыртқы үзілістерді өңдеу механизмі негізінен белгілі бір аппараттық платформамен үзілістерді өңдеуге арналған аппараттық қолдаудың қандай түріне байланысты. Бақытымызға орай, осы уақытқа дейін (және біраз уақыттан бері) ірі компьютер өндірушілері негізгі үзіліс механизмдері туралы іс жүзінде келісті.

Нақты және нақты емес айтсақ, бүгінгі таңда қабылданған механизмнің мәні мынада: процессордың әрбір мүмкін үзілуі (ішкі немесе сыртқы үзіліс болсын) физикалық жедел жадтың белгілі бір тіркелген мекенжайына сәйкес келеді. Ішкі немесе сыртқы үзу сұрауының болуына байланысты процессордың үзілуіне рұқсат етілген сәтте сәйкес адресі бар физикалық жедел жад ұяшығына басқарудың аппараттық берілуі орын алады - әдетте бұл ұяшықтың мекенжайы «үзу» деп аталады. векторы» (әдетте, ішкі үзу сұраулары, яғни тікелей процессордан келетін сұраныстар бірден қанағаттандырылады).

Операциялық жүйенің қызметі – жедел жадының сәйкес ұяшықтарына үзілісті бастапқы өңдеуді қамтамасыз ететін және толық өңдеуді бастайтын программалық кодты орналастыру.

Негізінде UNIX операциялық жүйесі жалпы көзқарасты қабылдайды. Сыртқы үзіліске сәйкес келетін үзу векторында, яғни. кейбір сыртқы құрылғыдан үзу, процессордың іске қосу деңгейін орнататын нұсқауларды қамтиды (іске қосу деңгейі процессордың қандай сыртқы үзулерге дереу жауап беруі керектігін анықтайды) және сәйкес құрылғы драйверіндегі толық үзу өңдеушісіне өту. Ішкі үзу үшін (мысалы, жоқ кезде пайдаланушы бағдарламасымен басталатын үзу қалаған бетвиртуалды жад, пайдаланушы бағдарламасында ерекше жағдай орын алғанда және т.б.) немесе таймер үзілісінде, үзу векторында сәйкес UNIX ядросының бағдарламасына өту бар.

5. Енгізу/шығаруды басқару

Дәстүрлі түрде UNIX ОЖ енгізу-шығару ұйымының үш түрін және сәйкесінше драйверлердің үш түрін ажыратады. Блок енгізу/шығару негізінен каталогтармен жұмыс істеуге арналған және кәдімгі файлдарбазалық деңгейде блоктық құрылымы бар файлдық жүйе. Пайдаланушы деңгейінде енді файлдарды виртуалды жад сегменттеріне тікелей салыстыру арқылы жұмыс істеуге болады. Бұл мүмкіндік енгізу/шығару блогының жоғарғы деңгейі болып саналады. Төменгі деңгейде блокты енгізу/шығару блок драйверлері арқылы қолдайды. Блок енгізу/шығару жүйесіне буферлеу арқылы да қолдау көрсетіледі.

Таңбаларды енгізу/шығару пайдаланушының мекенжай кеңістігі мен сәйкес құрылғы арасындағы тікелей (буферлеусіз) алмасу үшін қолданылады. Барлық таңба драйверлеріне ортақ ядролық қолдау пайдаланушы мен ядро ​​мекенжай кеңістігі арасында деректерді тасымалдау функцияларын қамтамасыз ету болып табылады.

Ақырында, ағынды енгізу/шығару таңбалық енгізу/шығаруға ұқсас, бірақ ағынға аралық өңдеу модульдерін қосу мүмкіндігіне байланысты ол әлдеқайда икемділікке ие.

5.1 Жүйені енгізу/шығару буферлеу принциптері

Блоктық құрылымы бар сыртқы жад құрылғыларымен алмасуды орындау кезінде үстеме шығындарды азайтудың дәстүрлі әдісі блоктық енгізу/шығару буферлеуі болып табылады. Бұл сыртқы жад құрылғысының кез келген блогы ең алдымен UNIX ОЖ-де жүйелік кэш деп аталатын негізгі жады аймағының кейбір буферіне оқылады және сол жерден толық немесе ішінара (алмасу түріне байланысты) көшіріледі дегенді білдіреді. сәйкес пайдаланушы кеңістігі.

Дәстүрлі буферлеу механизмін ұйымдастыру принциптері, біріншіден, блок мазмұнының көшірмесі буферлердің жетіспеушілігіне байланысты оны ауыстыру қажет болғанға дейін жүйелік буферде сақталады (LRU алгоритмінің вариациясы қолданылады). ауыстыру саясатын ұйымдастырыңыз). Екіншіден, сыртқы жад құрылғысының кез келген блогын жазу кезінде тек кэш буферін жаңарту (немесе қалыптастыру және толтыру) іс жүзінде орындалады. Құрылғымен нақты алмасу мазмұны ауыстырылғандықтан буферді шығару арқылы немесе жаңартылған кэш буферлерін сыртқы жадқа мәжбүрлеп итеру үшін арнайы қолдау көрсетілетін арнайы синхрондау (немесе fsync) жүйелік шақыруын беру арқылы жүзеге асырылады.

Бұл дәстүрлі буферлеу схемасы UNIX ОЖ заманауи нұсқаларында жасалған басқару элементтеріне қайшы келді. виртуалды жаджәне әсіресе файлдарды виртуалды жад сегменттеріне салыстыру механизмімен. Сондықтан, System V Release 4 жаңа буферлеу схемасын енгізді, ол қазіргі уақытта ескі схемамен қатар қолданылады.

Жаңа схеманың мәні ядро ​​деңгейінде виртуалды жады сегменттеріне файлдарды салыстыру механизмі іс жүзінде қайта шығарылады. Біріншіден, UNIX ядросы шын мәнінде өзінің виртуалды жадында жұмыс істейтінін есте сақтаңыз. Бұл жад күрделірек, бірақ негізінен пайдаланушының виртуалды жадымен бірдей құрылымға ие. Басқаша айтқанда, ядроның виртуалды жады сегмент-бет болып табылады және пайдаланушы процестерінің виртуалды жадымен бірге виртуалды жадты басқарудың жалпы ішкі жүйесімен қамтамасыз етіледі. Бұдан шығатыны, екіншіден, пайдаланушыларға ядро ​​ұсынатын кез келген функцияны ядроның кейбір құрамдас бөліктері ядроның басқа құрамдас бөліктерімен қамтамасыз ете алады. Атап айтқанда, бұл файлдарды виртуалды жад сегменттеріне салыстыру мүмкіндігіне де қатысты.

UNIX ядросындағы жаңа буферлеу схемасы негізінен буферлеуді ұйымдастыру үшін арнайы ештеңе істей алмайтыныңызға негізделген. Пайдаланушы процестерінің бірі осы уақытқа дейін ашылмаған файлды ашқанда, ядро ​​жаңа сегментті құрайды және ашылатын файлды осы сегментке қосады. Осыдан кейін (пайдаланушы процесі жүйелік қоңырауларды оқу және жазу арқылы дәстүрлі режимде файлмен жұмыс істейтініне немесе файлды оның виртуалды жады сегментіне қосатынына қарамастан) ядро ​​деңгейінде ядро ​​сегментімен жұмыс орындалады. деңгей ядроларында файл тіркелген. Жаңа тәсілдің негізгі идеясы виртуалды жадты басқару мен жалпы жүйелік буферлеу арасындағы алшақтықты жою болып табылады (бұл баяғыда жасалуы керек еді, өйткені операциялық жүйедегі негізгі буферлеуді компьютер орындау керек екені анық. виртуалды жадты басқару компоненті).

Неліктен ескі буферлеу механизмінен бас тартпасқа? Мәселе мынада, жаңа схема сыртқы жад объектісінің ішінде кейбір үздіксіз адресацияның болуын болжайды (салысқан және салыстырылған нысандар арасында изоморфизм болуы керек). Дегенмен, файлдық жүйелерді ұйымдастыру кезінде UNIX ОЖ-де сыртқы жадты бөлу өте қиын, бұл әсіресе i-түйіндерге қатысты. Сондықтан сыртқы жадтың кейбір блоктарын оқшауланған деп санауға тура келеді және олар үшін ескі буферлеу схемасын пайдалану тиімдірек болып шықты (бірақ UNIX-тің ертеңгі нұсқалары біртұтас жаңа схемаға толығымен ауысуы мүмкін). ).

5. 2 Жүйе енгізу/шығаруды басқаруға шақырады

Файлдың кез келген түріне (арнайы файлдарды қоса) қол жеткізу (яғни, кейінгі енгізу/шығару операцияларын орындау мүмкіндігі) үшін пайдаланушы процесі алдымен файлға ашу, жасау, көшіру немесе құбыр жүйесінің бірін пайдаланып қосылуы керек. қоңыраулар.

Ашық (жол атауы, режимі) жүйелік шақырудың әрекеттер тізбегі келесідей:

енгізу параметрлерінің сәйкестігі (негізінен файлға кіру режимінің жалаушаларына қатысты) талданады;

ішінде файл дескрипторы үшін орынды бөледі немесе табады жүйе аймағыөңдеу деректері (u-аймақтары);

жалпы жүйе аймағында бар кеңістік жүйелік файл дескрипторын (файл құрылымын) орналастыру үшін бөлінген немесе орналастырылған;

файлдық жүйе мұрағаты «жол атауы» деп аталатын нысанды іздейді және файлдық жүйе деңгейіндегі файл дескрипторы (UNIX V жүйесінің 4 терминдеріндегі vnode) жасалады немесе табылды;

vnode бұрын қалыптасқан файл құрылымына байланысты.

Ашық және жасалған жүйе шақырулары (дерлік) функционалдық жағынан баламалы. Кез келген бар файлды creat жүйелік шақыруымен ашуға болады және кез келген жаңа файлды ашық жүйелік шақыру арқылы жасауға болады. Дегенмен, creat жүйелік шақыруға келетін болсақ, бұл жүйелік шақыру өзінің табиғи қолданылуында (файл жасау үшін) сәйкес каталогта (берілген жол атауына сәйкес) жаңа жазбаны жасайтынын, сонымен қатар және жаңа i-түйінді сәйкесінше инициализациялайды.

Ақырында, қайталанатын жүйе шақыруы (көшірме – көшірме) жаңа дескриптордың қалыптасуына әкеледі. файлды ашыңыз. Бұл UNIX-арнайы жүйелік шақыру тек енгізу/шығару бағытын өзгертуге арналған.) Оның орындалуы пайдаланушы процесінің жүйелік кеңістігінің u-аймағында жаңадан құрылған файл дескрипторын (бүтін) қамтитын, бірақ бұрыннан бар жүйелік файл құрылымына сілтеме жасайтын және бірдей белгілер мен жалауларды қамтитын жаңа ашық файл дескрипторын құрудан тұрады. ашық үлгі файлына сәйкес келеді.

Басқа маңызды жүйелік қоңыраулар оқу және жазу жүйелік қоңыраулар болып табылады. Оқу жүйелік шақыруы келесідей орындалады:

жалпы жүйелік файл кестесінде дескриптор бар көрсетілген файл, және осы процестен апелляциялық шағым түсірілгені анықталады берілген файлкөрсетілген режимде;

біраз (қысқа) уақыт үшін осы файлдың vnode синхрондау құлпы орнатылады (дескриптордың мазмұны оқу әрекетінің маңызды сәттерінде өзгермеуі керек);

нақты оқу ескі немесе жаңа буферлеу механизмі арқылы орындалады, содан кейін деректер пайдаланушының мекенжай кеңістігінде қолжетімді болу үшін көшіріледі.

Жазу әрекеті дәл осылай жұмыс істейді, бірақ буфер пулының буферінің мазмұнын өзгертеді.

Жабылған жүйелік шақыру драйверді байланыстырылған пайдаланушы процесін тоқтатады және (ең соңғы құрылғы жабылған жағдайда) бүкіл жүйе бойынша «драйвер бос» жалаушасын орнатады.

Соңында, арнайы файлдар үшін басқа «арнайы» ioctl жүйелік қоңырауына қолдау көрсетіледі. Бұл арнайы файлдар үшін берілген және файлдардың басқа түрлері үшін қамтамасыз етілмеген жалғыз жүйелік қоңырау. Шын мәнінде, ioctl жүйелік шақыруы кез келген драйвердің интерфейсін ерікті түрде кеңейтуге мүмкіндік береді. ioctl параметрлері операциялық кодты және пайдаланушы процесс жадының кейбір аймағына көрсеткішті қамтиды. Опкодты және онымен байланысты арнайы параметрлерді барлық түсіндіруді драйвер өңдейді.

Әрине, драйверлер негізінен сыртқы құрылғыларды басқаруға арналғандықтан, драйвер кодында құрылғыдан үзілістерді өңдеуге арналған тиісті құралдар болуы керек. Драйвердегі жеке үзу өңдеушісіне қоңырау операциялық жүйе ядросынан келеді. Дәл осылай, драйвер алдын ала драйвер тапсырыс берген уақыт біткен кезде ядро ​​қол жеткізетін «тайм-аут» енгізуін жариялай алады (мұндай уақытты басқару аз интеллектуалды құрылғыларды басқару кезінде қажет).

Драйверлердің интерфейсін ұйымдастырудың жалпы схемасы 3.5-суретте көрсетілген. Бұл суретте көрсетілгендей, интерфейстер және жалпы жүйелік басқару тұрғысынан драйверлердің екі түрі бар - таңба және блок. Ішкі ұйымдастыру тұрғысынан драйверлердің тағы бір түрі - ағындық драйверлер ерекшеленеді. Дегенмен, сыртқы интерфейсі бойынша ағындық драйверлердің таңба драйверлерінен айырмашылығы жоқ.

6. Драйверлердің интерфейстері мен енгізу нүктелері

6.1 Драйверлерді блоктау

Блок-драйверлер блоктық құрылымы бар сыртқы құрылғыларға қызмет көрсетуге арналған (магниттік дискілер, таспалар және т.б.) және басқалардан ерекшеленеді, олар жүйелік буферлеуді қолдану арқылы әзірленіп, орындалады. Басқаша айтқанда, мұндай драйверлер әрқашан жүйелік буфер пулы арқылы жұмыс істейді. 3.5-суретте көріп отырғанымыздай, блок драйверіне кез келген оқу немесе жазу рұқсаты әрқашан алдын ала өңдеуден өтеді, яғни буфер пулынан қажетті блоктың көшірмесін табуға тырысу.

Қажетті блоктың көшірмесі буфер пулында болмаса немесе қандай да бір себептермен кейбір жаңартылған буфердің мазмұнын ауыстыру қажет болса, UNIX ядросы сәйкес блок драйверінің стратегиялық процедурасын шақырады. Стратегия қамтамасыз етеді стандартты интерфейсядро мен драйвер арасында. Драйверлерді жазуға арналған кітапхананың ішкі бағдарламаларын пайдалану арқылы стратегия процедурасы дискідегі магниттік бастардың қозғалысын оңтайландыру үшін, мысалы, құрылғымен алмасу кезегін ұйымдастыра алады. Блок драйвері орындайтын барлық алмасулар буферлік жадымен орындалады. Қажетті ақпаратты сәйкес пайдаланушы процесінің жадына қайта жазу буферлерді басқаратын ядро ​​​​бағдарламалары арқылы жүзеге асырылады.

6.2 Таңба драйверлері

Таңбалар драйверлері негізінен таңбалар бойынша немесе айнымалы ұзындықтағы таңбалар жолдарын байланыстыратын құрылғыларға қызмет көрсетуге арналған. Таңбалар құрылғысының типтік мысалы - әр алмасу үшін бір таңбаны қабылдайтын қарапайым принтер.

Таңба драйверлері жүйелік буферлеуді пайдаланбайды. Олар деректерді жазу операцияларын орындау кезінде пайдаланушының процесс жадынан тікелей көшіреді немесе оқу әрекеттерін орындаған кезде өздерінің буферлерін пайдалана отырып, пайдаланушының технологиялық жадына көшіреді.

Блоктық құрылғы үшін таңбалық интерфейсті қамтамасыз етуге болатынын атап өткен жөн. Бұл жағдайда блок драйвері стратегиялық процедураның қосымша мүмкіндіктерін пайдаланады, бұл алмасуды жүйелік буферлеуді қолданбай жүзеге асыруға мүмкіндік береді. Блок пен таңба интерфейсі бар драйвер үшін екі арнайы файл, блок және таңба. Әрбір қоңырау кезінде драйвер ол қолданылатын режим туралы ақпаратты алады.

6. 3 ағындық драйверлер

Ағындар механизмінің негізгі мақсаты - күрделі ішкі логикасы бар драйверлердің модульдік және икемділік деңгейін арттыру (бұл ең алдымен жетілдірілген драйверлерді енгізетін драйверлерге қатысты. желілік протоколдар). Мұндай драйверлердің ерекшелігі бағдарлама кодының көпшілігі аппараттық құрылғының мүмкіндіктеріне байланысты емес. Сонымен қатар, бағдарлама кодының бөліктерін әртүрлі тәсілдермен біріктіру жиі тиімді.

Осының барлығы өңдеу модульдерінің қос бағытты құбыры болып табылатын драйверлердің ағынды архитектурасының пайда болуына әкелді. Құбырдың басында (пайдаланушы процесіне ең жақын) ағын тақырыбы орналасады, оған бірінші кезекте пайдаланушы қатынасады. Құбырдың соңында (құрылғыға ең жақын) қалыпты құрылғы драйвері орналасқан. Өңдеу модульдерінің ерікті саны аралықта орналасуы мүмкін, олардың әрқайсысы қажетті ағындық интерфейске сәйкес жасалған.

7. Командалар мен утилиталар

UNIX ОЖ ортасында интерактивті жұмыс істегенде, олар әртүрлі утилиталарды немесе қабық тілінің сыртқы командаларын пайдаланады. Бұл утилиталардың көпшілігі қабықтың өзі сияқты күрделі (және айтпақшы, қабықтың өзі пәрмен жолынан қоңырау шалуға болатын утилиталардың бірі).

7. 1 UNIX ОЖ-де топты ұйымдастыру

Жаңа пәрменді жасау үшін сізге тек Си бағдарламалау ережелерін сақтау қажет. Кез келген жақсы қалыптасқан Си бағдарламасы өзінің орындалуын негізгі функциядан бастайды. Бұл «жартылай жүйелік» функцияның стандартты интерфейсі бар, ол қабық ортасында шақырылуы мүмкін командаларды ұйымдастыруға негіз болады. Сыртқы пәрмендерді қабықша интерпретаторы көптеген шанышқылар жүйесі шақырулары мен орындау опцияларының бірі арқылы орындайды. Exec жүйелік шақыруының параметрлері мәтіндік жолдар жиынын қамтиды. Мәтіндік жолдардың бұл жинағы орындалатын бағдарламаның негізгі функциясына кіріс ретінде беріледі.

Дәлірек айтқанда, негізгі функция екі параметрді қабылдайды - argc (өтетін мәтін жолдарының саны) және argv (мәтін жолдарына көрсеткіштер массивіне көрсеткіш). Қабық пәрмені ретінде пайдаланылатын бағдарламаның жақсы анықталған сыртқы интерфейсі болуы керек (параметрлер әдетте терминалдан енгізіледі) және енгізу параметрлерін басқаруы және дұрыс талдауы керек.

Сондай-ақ, қабық стиліне сәйкес болу үшін мұндай бағдарлама стандартты енгізуге, стандартты шығысқа және стандартты қатеге сәйкес келетін файлдарды өзі жоққа шығармауы керек. Содан кейін пәрменді енгізу/шығаруды әдеттегі жолмен қайта бағыттауға болады және оны құбырларға қосуға болады.

7.2 Енгізу/шығаруды қайта бағыттау және құбырлар

Алдыңғы абзацтың соңғы сөйлемінен көріп отырғаныңыздай, нұсқауларды бағдарламалау кезінде енгізу/шығару бағытын өзгертуді және конвейерді қосу үшін арнайы ештеңе жасаудың қажеті жоқ. Бастапқы үш файл дескрипторына қол тигізбей, осы файлдармен дұрыс жұмыс істеу жеткілікті, атап айтқанда stdout дескрипторы бар файлға шығару, stdin файлынан деректерді енгізу және stderror файлына қате туралы хабарларды басып шығару.

7. 3 Кірістірілген, кітапхана және пайдаланушы командалары

Кірістірілген командалар қабық бағдарламасы кодының бөлігі болып табылады. Олар аудармашы ішкі бағдарламалары ретінде жұмыс істейді және оларды ауыстыру немесе қайта анықтау мүмкін емес. Кірістірілген командалардың синтаксисі мен семантикасы сәйкес команда тілінде анықталған.

Кітапхана командалары жүйелік бағдарламалық құралдың бөлігі болып табылады. Бұл операциялық жүйемен қамтамасыз етілген орындалатын бағдарламалар (утилиталар) жиынтығы. Бұл бағдарламалардың көпшілігі (мысалы, vi, emacs, grep, find, make, т.

Пайдаланушы пәрмені - бұл жерде белгіленген талаптарға сәйкес ұйымдастырылған кез келген орындалатын бағдарлама. Осылайша, кез келген UNIX ОЖ пайдаланушысы өзінің командалық тілінің сыртқы командаларының репертуарын шексіз кеңейте алады (мысалы, сіз өзіңіздің командалық интерпретаторыңызды жаза аласыз).

7.4 Командалық тілде программалау

Қабық тілінің аталған нұсқаларының кез келгенін, негізінен, бағдарламалау тілі ретінде пайдалануға болады. UNIX пайдаланушыларының арасында қабықшаға айтарлықтай маңызды бағдарламалар жазатын адамдар көп. Бағдарламалау үшін командалық тілдерді емес, бағдарламалау тілдерін (С, С++, Паскаль және т.б.) қолданған дұрыс.


8. GUI құралдары

Бүгінгі таңда көптеген кәсіби UNIX бағдарламашылары жүйемен өзара әрекеттесу үшін дәстүрлі желілік құралдарды пайдалануды жөн санаса да, салыстырмалы түрде арзан, жоғары ажыратымдылықтағы түрлі-түсті графикалық терминалдарды кеңінен қолдану UNIX ОЖ-нің барлық заманауи нұсқалары графикалық пайдаланушыны қолдауына әкелді. жүйемен интерфейстер. , ал пайдаланушыларға олар әзірлеген бағдарламалармен графикалық интерфейстерді әзірлеуге арналған құралдар беріледі. Соңғы пайдаланушының көзқарасы бойынша UNIX ОЖ-ның әртүрлі нұсқаларында және басқа жүйелерде (мысалы, MS Windows немесе Windows NT) қолдау көрсетілетін графикалық интерфейс құралдарының стилі шамамен бірдей.

Біріншіден, барлық жағдайларда терминал экраны бар көп терезелі жұмыс режиміне қолдау көрсетіледі. Кез келген уақытта пайдаланушы жаңа терезе жасап, оны жеке терминал сияқты осы тереземен жұмыс істейтін қажетті бағдарламамен байланыстыра алады. Терезелерді жылжытуға, өлшемін өзгертуге, уақытша жабуға және т.б.

Екіншіден, графикалық интерфейстің барлық заманауи сорттарында тінтуірді басқаруға қолдау көрсетіледі. UNIX жағдайында кәдімгі терминалдық пернетақта тек дәстүрлі желі интерфейсіне ауысқанда ғана пайдаланылады (бірақ көп жағдайда кем дегенде бір терминалдық терезеде қабықшалар тобының қабықтарының бірі жұмыс істейді).

Үшіншіден, «тышқан» жұмыс стилінің мұндай таралуы пиктограммалар (белгішелер) мен мәзірлер негізіндегі интерфейс құралдарын пайдалану арқылы мүмкін болады. Көп жағдайда белгілі бір терезеде жұмыс істейтін бағдарлама пайдаланушыны терезеде мүмкін болатын функциялардың (белгішелердің) символдық кескіндерінің жиынын көрсету арқылы немесе көп деңгейлі мәзірді ұсыну арқылы өзі орындайтын кез келген функцияны таңдауды ұсынады. . Кез келген жағдайда, одан әрі таңдау үшін тінтуірдің көмегімен сәйкес терезенің курсорын басқару жеткілікті.

Ақырында, заманауи графикалық интерфейстер кез келген жағдайда интерактивті көмекті дереу алуға мүмкіндік беретін «пайдалануға ыңғайлы». (Мүмкін, жақсы GUI бағдарламалау стилі шын мәнінде осындай кеңестер беретін стиль деп айту дұрысырақ болар еді.)

Барлық осы ортақ қасиеттерді тізімдегеннен кейін заманауи құралдарграфикалық интерфейс, табиғи сұрақ туындауы мүмкін: Графикалық интерфейстер саласында осындай біркелкілік болса, UNIX ОЖ ортасында графикалық интерфейстер туралы қандай ерекшелік айтуға болады? Жауап жеткілікті қарапайым. Иә, қазіргі кез келген жүйеде соңғы пайдаланушы шынымен де интерфейс мүмкіндіктерінің шамамен бірдей жиынтығымен айналысады, бірақ әртүрлі жүйелерде бұл мүмкіндіктерге әртүрлі жолдармен қол жеткізіледі. Әдеттегідей, UNIX артықшылығы графикалық интерфейстері бар мобильді қосымшаларды жасауға мүмкіндік беретін стандартталған технологиялардың болуы болып табылады.

8. Қорғау принциптері

UNIX операциялық жүйесі пайда болған кезден бастап көп пайдаланушылы операциялық жүйе ретінде ойластырылғандықтан, онда әр түрлі пайдаланушылардың файлдық жүйенің файлдарына қол жеткізуін авторизациялау мәселесі әрқашан өзекті болды. Қол жеткізу авторизациясы пайдаланушының қатынас құқықтарына және файл үшін орнатылған қатынас шектеулеріне байланысты берілген пайдаланушыға берілген файлға кіруге рұқсат беретін немесе тыйым салатын жүйе әрекеттерін білдіреді. UNIX операциялық жүйесінде қолданылатын қол жеткізуді авторизациялау схемасы қарапайым және ыңғайлы және сонымен бірге соншалықты күшті, ол қазіргі заманғы операциялық жүйелердің іс жүзінде стандартына айналды (бұл көп деңгейлі қорғанысы бар жүйелер болып көрінбейді).

8.1 Пайдаланушы идентификаторлары және пайдаланушы топтары

UNIX жүйесіндегі әрбір іске қосылған процесс нақты пайдаланушы идентификаторымен, тиімді пайдаланушы идентификаторымен және сақталған пайдаланушы идентификаторымен байланысты. Бұл идентификаторлардың барлығы тек суперпайдаланушы режимінде орындалатын setuid жүйелік шақыру арқылы орнатылады. Сол сияқты, әрбір процесте онымен байланысты үш пайдаланушы тобы идентификаторы болады - нақты топ идентификаторы, тиімді топ идентификаторы және сақталған топ идентификаторы. Бұл идентификаторлар артықшылықты setgid жүйелік шақыруымен орнатылады.

Пайдаланушы жүйеге кірген кезде, кіру бағдарламасы пайдаланушының жүйеге кіргенін және дұрыс құпия сөзді (егер орнатылған болса) білетінін тексереді, жаңа процесті жасайды және ондағы осы пайдаланушыға қажетті қабықты іске қосады. Бірақ мұны жасамас бұрын, логин /etc/passwd және /etc/group файлдарында сақталған ақпаратты пайдалана отырып, жаңадан жасалған процесс үшін пайдаланушы және топ идентификаторларын орнатады. Пайдаланушы және топ идентификаторлары процесспен байланыстырылғаннан кейін, файлға кіру шектеулері осы процеске қолданылады. Процесс файлға қатынаса алады немесе файлды орындай алады (егер файлда орындалатын бағдарлама болса), егер файлдың кіру шектеулері оған рұқсат берсе ғана. Процесспен байланысты идентификаторлар сол шектеулерге сәйкес ол жасайтын процестерге беріледі. Дегенмен, кейбір жағдайларда процесс setuid және setgid жүйелік шақырулары арқылы өз рұқсаттарын өзгерте алады, ал кейде жүйе процестің рұқсаттарын автоматты түрде өзгерте алады.

Мысалы, келесі жағдайды қарастырайық. /etc/passwd файлын суперпайдаланушыдан басқа ешкім жаза алмайды (суперпайдаланушы кез келген файлға жаза алады). Бұл файлда, басқалармен қатар, пайдаланушы құпия сөздері бар және әрбір пайдаланушыға өзінің құпия сөзін өзгертуге рұқсат етіледі. Қол жетімді арнайы бағдарлама/bin/passwd, ол құпия сөздерді өзгертеді. Дегенмен, пайдаланушы мұны бұл бағдарламамен де жасай алмайды, себебі /etc/passwd файлын жазуға рұқсат етілмейді. UNIX жүйесінде бұл мәселе келесідей шешіледі. Орындалатын файл оны іске қосқан кезде пайдаланушы және/немесе топ идентификаторларын орнату керектігін көрсетуі мүмкін. Егер пайдаланушы осындай бағдарламаны орындауды сұраса (exec жүйелік шақыру арқылы), онда сәйкес процестің пайдаланушы идентификаторы орындалатын файлдың және/немесе осы иенің топ идентификаторының иесінің идентификаторына орнатылады. Атап айтқанда, /bin/passwd бағдарламасы іске қосылғанда, процестің түбірлік идентификаторы болады және бағдарлама /etc/passwd файлына жаза алады.

Пайдаланушы идентификаторы үшін де, топ идентификаторы үшін де нақты идентификатор шынайы идентификатор, ал тиімді идентификатор ағымдағы орындалу идентификаторы болып табылады. Ағымдағы пайдаланушы идентификаторы суперпайдаланушыға сәйкес келсе, сол идентификатор мен топ идентификаторын setuid және setgid жүйелік шақырулары арқылы кез келген мәнге қалпына келтіруге болады. Ағымдағы пайдаланушы идентификаторы суперпайдаланушы идентификаторынан өзгеше болса, setuid және setgid жүйелік шақыруларын орындау ағымдағы идентификатордың шынайы идентификатормен (тиісінше пайдаланушы немесе топ) ауыстырылуын тудырады.

8.2 Файлдарды қорғау

Көп пайдаланушы операциялық жүйеде әдеттегідей UNIX файлдар мен файлдық жүйе каталогтарына қол жеткізуді басқарудың біркелкі механизмін қолдайды. Кез келген процесс белгілі бір файлға қатынаса алады, егер файлмен сипатталған қатынас құқығы осы процестің мүмкіндіктеріне сәйкес келсе ғана.

UNIX жүйесінде файлдарды рұқсатсыз кіруден қорғау үш фактіге негізделген. Біріншіден, файлды (немесе каталогты) жасайтын кез келген процесс жүйедегі кейбір бірегей пайдаланушы идентификаторымен (UID - пайдаланушы идентификаторы) байланысты, оны жаңадан жасалған файл иесінің идентификаторы ретінде қарастыруға болады. Екіншіден, файлға қатынасуға әрекеттенетін әрбір процесте онымен байланысты идентификаторлар жұбы, ағымдағы пайдаланушы және топ идентификаторлары болады. Үшіншіден, әрбір файл өзінің дескрипторына – i-түйініне бірегей сәйкес келеді.

Файлдық жүйеде қолданылатын кез келген i-түйін әрқашан бір ғана және бір файлға сәйкес келеді. I-түйінде әр түрлі ақпарат өте көп (оның көпшілігі stat және fstat жүйелік қоңыраулар арқылы пайдаланушыларға қол жетімді) және осы ақпараттың ішінде файлдық жүйеге берілген процестің қол жеткізу құқықтарын бағалауға мүмкіндік беретін бөлігі бар. қажетті режимде берілген файлға.

Жалпы қорғау принциптері жүйенің барлық қолданыстағы нұсқалары үшін бірдей: i-түйін ақпараты файлдың ағымдағы иесінің UID және GID кодын қамтиды (файл жасалғаннан кейін бірден оның ағымдағы иесінің идентификаторлары жасаушы процесінің сәйкес ағымдағы идентификаторы, бірақ кейінірек chown және chgrp жүйелік шақырулары арқылы өзгертілуі мүмкін) . Сонымен қатар, файлдың i-түйінінде пайдаланушы - оның иесі файлмен не істей алатынын, иесі сияқты бір пайдаланушы тобына жататын пайдаланушылар файлмен не істей алатынын және басқалардың не істей алатынын көрсететін шкала бар. файл пайдаланушылары. Жүйенің әртүрлі нұсқаларында іске асырудың ұсақ бөлшектері ерекшеленеді.

8.3 UNIX ОЖ ортасын қолдайтын болашақ операциялық жүйелер

Микроядро модульдік және портативті кеңейтімдер үшін негіз ретінде қызмет ететін операциялық жүйенің ең кіші негізгі бөлігі болып табылады. Келесі буын операциялық жүйелерінің көпшілігінде микроядролар болатын сияқты. Дегенмен, микроядроға қатысты операциялық жүйе қызметтерін қалай ұйымдастыру керектігі туралы әртүрлі пікірлер бар: құрылғы драйверлерін мүмкіндігінше тиімді етіп жобалау, бірақ драйвер функцияларын мүмкіндігінше аппараттық құралдан тәуелсіз ұстау; ядролық емес операциялар ядро ​​кеңістігінде немесе пайдаланушы кеңістігінде орындалуы керек пе; бар ішкі жүйелердің бағдарламаларын сақтау керек пе (мысалы, UNIX) немесе бәрін тастап, нөлден бастаған дұрыс па.

Микроядро ұғымын операциялық жүйесі Mach микроядросын пайдаланған Next компаниясы кеңінен қолданысқа енгізді. Пайдаланушы режимінде ішкі жүйелер жұмыс істейтін осы операциялық жүйенің шағын, артықшылықты ядросы теориялық тұрғыдан жүйенің бұрын-соңды болмаған икемділігі мен модульділігін қамтамасыз етуі керек еді. Бірақ іс жүзінде бұл артықшылық UNIX BSD 4.3 операциялық жүйесін жүзеге асыратын монолитті сервердің болуымен біршама төмендетілді, ол Next Mach микроядросын орау үшін таңдады. Дегенмен, Mach-қа сену жүйеге хабар алмасу құралдарын және бірқатар объектіге бағытталған сервистік функцияларды қосуға мүмкіндік берді, соның негізінде желіні конфигурациялауға, жүйені басқаруға арналған графикалық құралдармен талғампаз соңғы пайдаланушы интерфейсін жасауға мүмкіндік берді. және бағдарламалық қамтамасыз етуді әзірлеу.

Келесі микроядро операциялық жүйесі Microsoft корпорациясының Windows NT операциялық жүйесі болды, мұнда микроядроны пайдаланудың негізгі артықшылығы тек модульдік қана емес, сонымен қатар тасымалдануы болды. (NT шын мәнінде микроядро ОЖ деп санау керек пе деген консенсус жоқ екенін ескеріңіз.) NT Intel, Mips және Alpha процессорларына негізделген бір және көп процессорлы жүйелерде пайдалану үшін жасалған.(және олардан кейінгілер) . DOS, Windows, OS/2 және Posix-үйлесімді жүйелер үшін жазылған бағдарламалар NT-де жұмыс істеуі керек болғандықтан, Microsoft корпорациясы құру үшін микроядро әдісінің тән модульділігін пайдаланды. жалпы құрылымҚолданыстағы операциялық жүйелердің ешқайсысын қайталамайтын NT. Әрбір операциялық жүйе жеке модуль немесе ішкі жүйе ретінде эмуляцияланады.

Жақында микроядроның операциялық жүйесінің архитектурасы Novell/USL, Open Software Foundation (OSF), IBM, Apple және т.б. Микроядролық операциялық жүйелердегі NT негізгі бәсекелестерінің бірі Mach 3.0 болып табылады, бұл Карнеги Меллон университетінде жасалған жүйе, оны IBM және OSF коммерцияландыруды қолға алған. (Next қазіргі уақытта NextStep негізі ретінде Mach 2.5 нұсқасын пайдалануда, бірақ сонымен бірге Mach 3.0 нұсқасына мұқият қарайды.) Тағы бір бәсекелес Chorus Systems' Chorus 3.0 микроядросы болып табылады, оны USL жаңа UNIX іске асырулары үшін негіз ретінде таңдаған. Кейбір микроядролар Sun's SpringOS жүйесінде, Solaris-тің объектіге бағытталған мұрагерінде қолданылады (егер, әрине, Sun SpringOS-ты аяқтаса). Монолитті жүйеден микроядролық жүйелерге көшудің айқын тенденциясы бар (бұл процесс оңай емес: IBM кері қадам жасап, микроядро технологиясына көшуден бас тартты). Айтпақшы, бұл бірнеше жыл бойы сәтті микроядролық операциялық жүйелерді шығарған QNX Software Systems және Unisys үшін мүлдем жаңалық емес. QNX OS нақты уақыт нарығында сұранысқа ие, ал Unisys CTOS банктік қызметте танымал. Екі жүйе де микро ядролық операциялық жүйелерге тән модульді сәтті пайдаланады.


Қорытынды

Unix пен басқа ОЖ арасындағы негізгі айырмашылықтар

Unix драйверлері мен утилиталары бар ядродан тұрады (ядроға сыртқы бағдарламалар). Конфигурацияны өзгерту қажет болса (құрылғы қосу, портты өзгерту немесе үзу), онда ядро ​​нысан модульдерінен немесе (мысалы, FreeBSD-де) көздерден қайта құрылады (қайта байланыстырылады). Бұл мүлдем дұрыс емес. Кейбір параметрлерді қайта құрусыз түзетуге болады. Сондай-ақ жүктелетін ядро ​​модульдері бар.

Unix-тен айырмашылығы, Windows жүйесінде (егер ол қайсысы екені көрсетілмесе, онда біз 3.11, 95 және NT деп айтамыз) және OS / 2, жүктеген кезде, олар іс жүзінде драйверлерді жолда байланыстырады.Сонымен бірге, ықшамдығы жинақталған ядро ​​және жалпы кодты қайта пайдалану шамасының тәртібінен төменірек. Сонымен қатар, егер жүйе конфигурациясы өзгеріссіз қалса, Unix ядросын ROM-ға жазуға және ЖЖҚ-ға _жоқталмай_ орындауға болады (тек бастапқы кодты өзгерту қажет болады). BIOS бөлігі). жад дискіге ауыстырылмайды.

Unix - ең көп платформалы ОЖ. WindowsNT оны еліктеуге тырысады, бірақ әзірге ол сәтті болмады - MIPS және POWER-PC-тен бас тартқаннан кейін W "NT тек екі платформада қалды - дәстүрлі i * 86 және DEC Alpha. Unix-тің бір нұсқасынан бағдарламалардың тасымалдануы. Unix-ті іске асырудағы айырмашылықтарды ескермейтін, ұқыпсыз жазылған бағдарлама «бүтін сан ұзындығы төрт байт болуы керек» сияқты негізсіз болжамдарды жасайды, күрделі қайта өңдеуді қажет етуі мүмкін, бірақ бұл әлі де бірнеше рет көшіруден оңайырақ. Мысалы, OS/2 - NT.

Unix қолданбалары

Unix сервер ретінде де қолданылады жұмыс станциясы. Сервер номинациясында онымен MS WindowsNT, Novell Netware, IBM OS/2 Warp Connect, DEC VMS және mainframe операциялық жүйелері бәсекелеседі. Әрбір жүйенің басқаларға қарағанда жақсырақ болатын өзінің қолдану аймағы бар.

WindowsNT ресурстарды үнемдеу мен жоғары өнімділікке қарағанда ыңғайлы интерфейсті қалайтын әкімшілерге арналған.

Желілік бағдарламалық құрал – өнімділігі жоғары файл және принтер қызметтері қажет және басқа қызметтер соншалықты маңызды емес желілерге арналған. Негізгі кемшілігі- Netware серверінде қолданбаларды іске қосу қиын.

OS / 2 сізге «жеңіл» қолданба сервері қажет жерде жақсы. Ол NT-ге қарағанда ресурстарды аз талап етеді, басқаруда икемді (бірақ оны орнату қиынырақ болуы мүмкін) және көп тапсырманы орындау өте жақсы. Қол жеткізу құқықтарын авторизациялау және дифференциациялау ОЖ деңгейінде жүзеге асырылмайды, бұл қолданбалы серверлер деңгейінде іске асыру арқылы өтеледі. (Алайда, көбінесе басқа ОЖ дәл осылай жасайды). Көптеген FIDOnet және BBS станциялары OS/2 негізінде құрылған.

VMS қуатты, ешбір жағдайда Unix қолданбасының серверінен кем түспейді (және көп жағынан одан жоғары), бірақ тек DEC-тің VAX және Alpha платформалары үшін.

Mainframe-тер – өте көп пайдаланушыларға қызмет көрсету үшін (бірнеше мың рет). Бірақ бұл пайдаланушылардың жұмысы әдетте клиент пен сервердің өзара әрекеттесуі түрінде емес, хост-терминал түрінде ұйымдастырылады. Бұл жұптағы терминал клиент емес, сервер (Internet World, 1996 жылғы N3). Мейнфрэймдердің артықшылықтарына жоғары қауіпсіздік пен ақауларға төзімділік жатады, ал кемшіліктерге осы сапаға сәйкес келетін баға жатады.

Unix білікті (немесе болуға дайын) әкімші үшін жақсы, өйткені онда болып жатқан процестердің қызмет ету принциптерін білуді талап етеді. Нағыз көп тапсырма және қатты жадты ортақ пайдалану жүйенің жоғары сенімділігін қамтамасыз етеді, дегенмен Unix файлдық және басып шығару қызметтерінің өнімділігі Netware-тен төмен.

WindowsNT-пен салыстырғанда пайдаланушыларға файлдарға қол жеткізу құқықтарын беруде икемділіктің болмауы _at_the_file_system_ деңгейіндегі деректерге (дәлірек айтқанда, файлдарға) топтық қатынасты ұйымдастыруды қиындатады, бұл, менің ойымша, іске асырудың қарапайымдылығымен өтеледі, бұл аппараттық құралдардың аздығын білдіреді. талаптар. Дегенмен, SQL Server сияқты қолданбалар деректерге топтық қол жеткізу мәселесін өздігінен шешеді, сондықтан Unix мүмкіндігінің жоқтығы белгілі бір пайдаланушыға _file_ қол жеткізуге тыйым салу, менің ойымша, анық артық.

Интернетке негізделген хаттамалардың барлығы дерлік Unix астында әзірленді, атап айтқанда TCP/IP протоколдар стегі Беркли университетінде ойлап табылды.

Unix қауіпсіздігі, дұрыс басқарылған кезде (және ол болмаған кезде?) Novell немесе WindowsNT-тен ешбір жағдайда кем түспейді.

Unix-тің негізгі фреймдерге жақындататын маңызды ерекшелігі оның көп терминалдылығы болып табылады, көптеген пайдаланушылар бір уақытта бір Unix машинасында бағдарламаларды іске қоса алады. Егер графиканы пайдалану қажет болмаса, баяу сызықтар арқылы қосылған арзан мәтіндік терминалдармен (мамандандырылған немесе арзан компьютер негізіндегі) жұмыс істей аласыз. Бұл жағдайда тек VMS онымен бәсекелеседі. Графикалық X терминалдарын әртүрлі машиналарда жұмыс істейтін процестердің терезелері бір экранда болған кезде де пайдалануға болады.

Жұмыс станциясы номинациясында Unix MS Windows*, IBM OS/2, Macintosh және Acorn RISC-OS жүйелерімен бәсекелеседі.

Windows - тиімділіктен гөрі үйлесімділікті бағалайтындар үшін; сатып алғысы келетіндер үшін көп саныжад, дискілік кеңістік және мегагерц; мәніне терең бойламауды ұнататындар үшін терезедегі түймелерді басыңыз. Рас, ерте ме, кеш пе, сіз әлі де жүйенің және хаттамалардың принциптерін зерттеуіңіз керек, бірақ кейін кеш болады - таңдау жасалды. маңызды Windows артықшылығыСондай-ақ бағдарламалық жасақтаманы ұрлау мүмкіндігін мойындау керек.

OS/2 - OS/2 әуесқойлары үшін. :-) Кейбір есептерге сәйкес, OS / 2 негізгі фреймдермен және IBM желілерімен басқаларға қарағанда жақсы әрекеттеседі.

Macintosh – графикалық, баспа және музыкалық жұмыстарға, сондай-ақ анық, әдемі интерфейсті жақсы көретін және жүйенің егжей-тегжейлерін түсінгісі келмейтін (түсінгісі келмейтін) үшін.

ROM-да жыпылықтаған RISC-OS операциялық жүйені орнатуға және сәтсіздіктерден кейін оны қалпына келтіруге уақытты жоғалтпауға мүмкіндік береді. Сонымен қатар, оның аясындағы барлық дерлік бағдарламалар ресурстарды өте үнемді пайдаланады, сондықтан олар ауыстыруды қажет етпейді және өте жылдам жұмыс істейді.

Unix компьютерлерде де, RISC процессорлары бар қуатты жұмыс станцияларында да жұмыс істейді, шын мәнінде қуатты CAD бағдарламалары Unix астында жазылған және геоақпараттық жүйелер. Unix-тің ауқымдылығы, оның көпплатформалық сипатына байланысты, кейбір авторлардың пікірінше, кез келген басқа операциялық жүйеден жоғары дәрежеде.


Әдебиеттер тізімі

1. Оқулық Кузнецова С.Д. «UNIX операциялық жүйесі» 2003 ж.;

2. Поляков А.Д. “X86 жүйесіндегі UNIX 5-ші шығарылымы немесе тарихты ұмытпаңыз”;

3. Карпов Д.Ю. «UNIX» 2005;

4. Федорчук А.В. Unix шеберлігі, 2006 ж

5. Сайт материалдары http://www.citforum.ru/operating_systems/1-16;

РЕСЕЙ ФЕДЕРАЦИЯСЫНЫҢ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ БІЛІМ БЕРУ ЖӨНІНДЕГІ ФЕДЕРАЛЫҚ АГЕНТТІГІ МЕМЛЕКЕТТІК ЖОҒАРЫ КӘСІПТІК БІЛІМ БЕРУ МЕКЕМЕСІ

Unix дегеніміз не (жаңадан бастаушылар үшін)


Дмитрий Ю. Карпов


Мен не туралы айтып отырмын?


Бұл шығарма толық деп есептемейді. Оның үстіне, қарапайымдылық үшін кейбір мәліметтер әдейі алынып тасталды. Алғашында цикл жиі қойылатын сұрақтар (FAQ – жиі қойылатын сұрақтар) ретінде ойластырылған, бірақ ол «Жас солдат курсы» немесе «Сержант мектебі» болып шығатын сияқты.

Мен әртүрлі операциялық жүйелердің салыстырмалы сипаттамасын беруге тырыстым - бұл, менің ойымша, көптеген оқулықтар мен техникалық оқулықтарда жетіспейді.

Тәжірибелі Unix "оидтерінің әсерін күтпестен, мен ерікті түрде мойындаймын - мен өзімді Unix-тің тамаша білгірімін деп айта алмаймын және менің білімім негізінен FreeBSD айналасында. Бұл кедергі жасамайды деп үміттенемін.

Бұл файл ұзақ уақыт бойы «салынып жатқан» күйде болады. :-)

Unix дегеніміз не?


Unix – толық, көп пайдаланушылы, көп тапсырмалы және көп терминалды операциялық жүйе. Дәлірек айтқанда, бұл бағдарламаның бастапқы кодтары деңгейінде бір-бірімен дерлік үйлесімді жүйелердің тұтас тобы.

Unix дегеніміз не және олар қандай машиналарда жұмыс істейді?


Бұл тізім толық емес деп мәлімдемейді, өйткені тізімделгендерге қосымша, көп тараған Unix және Unix тәрізді жүйелер, Ескірген машиналарға арналған ежелгі Unix «ah.

Шартты түрде жүйе V және Беркли отбасыларын ажыратуға болады. V жүйесінің («Бесінші жүйе» деп айтылады) бірнеше нұсқалары бар, менің білуімше ең соңғысы System V шығарылымы 4. Беркли университеті тек BSD әзірлеуімен ғана емес, сонымен бірге көпшілік үшін танымал. Интернет протоколдары. Дегенмен, көптеген Unix файлдары екі жүйенің мүмкіндіктерін біріктіреді.

Тегін Unix-ті қайдан алуға болады?


  • BSD отбасы: FreeBSD, NetBSD, OpenBSD.
  • Linux отбасы: RedHat, SlackWare, Debian, Caldera,
  • SCO және Solaris коммерциялық емес мақсатта (негізінен оқу орындары үшін) тегін қол жетімді.

    Unix-тің басқа операциялық жүйелерден негізгі айырмашылығы неде?


    Unix драйверлері мен утилиталары бар ядродан тұрады (ядроға сыртқы бағдарламалар). Конфигурацияны өзгерту қажет болса (құрылғы қосу, портты өзгерту немесе үзу), онда ядро ​​нысан модульдерінен немесе (мысалы, FreeBSD-де) көздерден қайта құрылады (қайта байланыстырылады). /* Бұл мүлдем дұрыс емес. Кейбір параметрлерді қайта құрусыз түзетуге болады. Сондай-ақ жүктелетін ядро ​​модульдері бар. */

    Unix-тен айырмашылығы, Windows жүйесінде (егер ол қайсысы екені көрсетілмесе, онда біз 3.11, 95 және NT деп айтамыз) және OS / 2, жүктеген кезде, олар іс жүзінде драйверлерді жолда байланыстырады.Сонымен бірге, ықшамдығы жинақталған ядро ​​және жалпы кодты қайта пайдалану шамасының тәртібінен төменірек. Сонымен қатар, егер жүйе конфигурациясы өзгеріссіз қалса, Unix ядросын ROM-ға жазуға және ЖЖҚ-ға _жоқталмай_ орындауға болады (тек бастапқы кодты өзгерту қажет болады). BIOS бөлігі). жад дискіге ауыстырылмайды.

    Unix - ең көп платформалы ОЖ. WindowsNT оны еліктеуге тырысады, бірақ әзірге ол сәтті болмады - MIPS және POWER-PC-тен бас тартқаннан кейін W "NT тек екі платформада қалды - дәстүрлі i * 86 және DEC Alpha. Әрине, бағдарламалардың тасымалдануы. Unix-тің бір нұсқасынан екіншісіне көшу шектеулі."Бүтін айнымалы төрт байт алуы керек" сияқты негізсіз жорамалдар жасай отырып, Unix-ті іске асырудағы айырмашылықтарды ескермейтін, немқұрайлы жазбаша бағдарлама күрделі қайта өңдеуді қажет етуі мүмкін, бірақ бұл әлі де көптеген тапсырыстар. мысалы, OS / 2-ден NT-ге көшіруден гөрі жеңілірек.

    Неліктен Unix?


    Unix сервер ретінде де, жұмыс станциясы ретінде де қолданылады. Сервер номинациясында онымен MS WindowsNT, Novell Netware, IBM OS/2 Warp Connect, DEC VMS және mainframe операциялық жүйелері бәсекелеседі. Әрбір жүйенің басқаларға қарағанда жақсырақ болатын өзінің қолдану аймағы бар.

  • WindowsNT үнемділік пен жоғары өнімділікке қарағанда таныс интерфейсті қалайтын әкімшілерге арналған.
  • Желілік бағдарламалық құрал – өнімділігі жоғары файл және принтер қызметтері қажет және басқа қызметтер соншалықты маңызды емес желілерге арналған. Негізгі кемшілігі Netware серверінде қолданбаларды іске қосу қиын.
  • OS / 2 сізге «жеңіл» қолданба сервері қажет жерде жақсы. Ол NT-ге қарағанда ресурстарды аз талап етеді, басқаруда икемді (бірақ оны орнату қиынырақ болуы мүмкін) және көп тапсырманы орындау өте жақсы. Қол жеткізу құқықтарын авторизациялау және дифференциациялау ОЖ деңгейінде жүзеге асырылмайды, бұл қолданбалы серверлер деңгейінде іске асыру арқылы өтеледі. (Алайда, көбінесе басқа ОЖ дәл осылай жасайды). Көптеген FIDOnet және BBS станциялары OS/2 негізінде құрылған.
  • VMS қуатты, ешбір жағдайда Unix қолданбасының серверінен кем түспейді (және көп жағынан одан жоғары), бірақ тек DEC-тің VAX және Alpha платформалары үшін.
  • Mainframe-тер – өте көп пайдаланушыларға қызмет көрсету үшін (бірнеше мың рет). Бірақ бұл пайдаланушылардың жұмысы әдетте клиент пен сервердің өзара әрекеттесуі түрінде емес, хост-терминал түрінде ұйымдастырылады. Бұл жұптағы терминал клиент емес, сервер (Internet World, 1996 жылғы N3). Мейнфрэймдердің артықшылықтарына жоғары қауіпсіздік пен ақауларға төзімділік жатады, ал кемшіліктерге осы сапаға сәйкес келетін баға жатады.

    Unix білікті (немесе болуға дайын) әкімші үшін жақсы, өйткені онда болып жатқан процестердің қызмет ету принциптерін білуді талап етеді. Нағыз көп тапсырма және қатты жадты ортақ пайдалану жүйенің жоғары сенімділігін қамтамасыз етеді, дегенмен Unix файлдық және басып шығару қызметтерінің өнімділігі Netware-тен төмен.

    WindowsNT-пен салыстырғанда пайдаланушыларға файлдарға қол жеткізу құқығын беруде икемділіктің болмауы _at_the_file_system_ деңгейінде деректерге (дәлірек айтқанда, файлдарға) топтық қатынасты ұйымдастыруды қиындатады, бұл, менің ойымша, іске асырудың қарапайымдылығымен өтеледі, бұл аппараттық құралдардың аздығын білдіреді. талаптар. Дегенмен, SQL Server сияқты қолданбалар деректерге топтық қол жеткізу мәселесін өздігінен шешеді, сондықтан Unix мүмкіндігінің жоқтығы белгілі бір пайдаланушыға _file_ қол жеткізуге тыйым салу, менің ойымша, анық артық.

    Интернетке негізделген хаттамалардың барлығы дерлік Unix астында әзірленді, атап айтқанда TCP/IP протоколдар стегі Беркли университетінде ойлап табылды.

    Unix-тің қауіпсіздігі дұрыс басқарылған кезде (және ол болмаған кезде?) Novell немесе WindowsNT-тен ешбір жағдайда кем түспейді.

    Unix-тің негізгі фреймдерге жақындататын маңызды ерекшелігі оның көп терминалдылығы болып табылады, көптеген пайдаланушылар бір уақытта бір Unix машинасында бағдарламаларды іске қоса алады. Егер графиканы пайдалану қажет болмаса, баяу сызықтар арқылы қосылған арзан мәтіндік терминалдар (мамандандырылған немесе арзан компьютер негізіндегі) арқылы жұмыс істей аласыз. Бұл жағдайда тек VMS онымен бәсекелеседі. Графикалық X терминалдарын әртүрлі машиналарда жұмыс істейтін процестердің терезелері бір экранда болған кезде де пайдалануға болады.

    Жұмыс станциясы номинациясында Unix MS Windows*, IBM OS/2, Macintosh және Acorn RISC-OS жүйелерімен бәсекелеседі.

  • Windows - тиімділіктен гөрі үйлесімділікті бағалайтындар үшін; жадтың, дискілік кеңістіктің және мегагерцтің үлкен көлемін сатып алуға дайын адамдар үшін; мәніне терең бойламауды ұнататындар үшін терезедегі түймелерді басыңыз. Рас, ерте ме, кеш пе, сіз әлі де жүйенің және хаттамалардың принциптерін зерттеуіңіз керек, бірақ кейін кеш болады - таңдау жасалды. Windows жүйесінің маңызды артықшылығы бағдарламалық қамтамасыз етуді ұрлау мүмкіндігі ретінде де мойындалуы керек.
  • OS/2 - OS/2 әуесқойлары үшін. :-) Кейбір есептерге сәйкес, OS / 2 негізгі фреймдермен және IBM желілерімен басқаларға қарағанда жақсы әрекеттеседі.
  • Macintosh – графикалық, баспа және музыкалық жұмыстарға, сондай-ақ түсінікті, әдемі интерфейсті жақсы көретін және жүйенің егжей-тегжейлерін түсінгісі келмейтін (түсінгісі келмейтін) үшін.
  • ROM-да жыпылықтаған RISC-OS операциялық жүйені орнатуға және сәтсіздіктерден кейін оны қалпына келтіруге уақытты жоғалтпауға мүмкіндік береді. Сонымен қатар, оның аясындағы барлық дерлік бағдарламалар ресурстарды өте үнемді пайдаланады, сондықтан олар ауыстыруды қажет етпейді және өте жылдам жұмыс істейді.

    Unix компьютерлерде де, RISC процессорлары бар қуатты жұмыс станцияларында да жұмыс істейді; шын мәнінде қуатты CAD жүйелері мен географиялық ақпараттық жүйелер Unix астында жазылған. Unix-тің ауқымдылығы, оның мультиплатформалық сипатына байланысты, мен білетін кез келген басқа операциялық жүйеден жоғары дәрежеде.

    Негізгі Unix концепциялары


    Unix екі негізгі ұғымға негізделген: «процесс» және «файл». Процестер жүйенің динамикалық жағы, олар субъектілер; және файлдар – статикалық, бұл процестердің объектілері. Ядромен және бір-бірімен әрекеттесетін процестер арасындағы барлық дерлік интерфейс файлдарды жазу/оқу сияқты көрінеді. /* Бізге сигналдар, ортақ жад және семафорлар сияқты нәрселерді қосу керек болғанымен. */

    Процестерді бағдарламалармен шатастырмау керек - бір бағдарлама (әдетте әртүрлі деректермен) әртүрлі процестерде орындалуы мүмкін. Процестерді шамамен екі түрге бөлуге болады - тапсырмалар және демондар. Тапсырма - бұл өз жұмысын орындайтын, оны тезірек аяқтауға және оны аяқтауға тырысатын процесс. Демон өңдеуге қажет оқиғаларды күтеді, орын алған оқиғаларды өңдейді және қайтадан күтеді; ол әдетте басқа процестің тәртібімен аяқталады, көбінесе оны пайдаланушы «процесс_санын өлтіру» пәрменін беру арқылы өлтіреді. /* Осы мағынада, пайдаланушы енгізуін өңдейтін интерактивті тапсырма тапсырмадан гөрі демонға көбірек ұқсайтыны белгілі болды. :-) */

    Файлдық жүйе


    Ескі Unix-те атауға 14 әріп тағайындалды, жаңаларында бұл шектеу жойылды. Файл атауынан басқа, каталогта оның inode идентификаторы бар - блоктың нөмірін анықтайтын бүтін сан. файл атрибуттары жазылады.Олардың ішінде: пайдаланушы нөмірі – файл иесі;сандық топтар Файлға сілтемелер саны (төменде қараңыз) Жасалған күні мен уақыты, соңғы өзгерту және файлға соңғы қол жеткізу Access атрибуттары Access атрибуттары түрін қамтиды. файлдың (төменде қараңыз), іске қосу кезіндегі құқықтарды өзгерту атрибуттары (төменде қараңыз) және оқу, жазу және орындау үшін иесінің, сыныптасының және басқалардың оған қол жеткізу құқықтары. Файлды жою құқығы жазу құқығымен анықталады. үстіңгі каталогқа.

    Әрбір файл (бірақ каталог емес) бірнеше атаумен белгілі болуы мүмкін, бірақ олар бір бөлімде болуы керек. Файлға барлық сілтемелер тең; файлға соңғы сілтеме жойылған кезде файл жойылады. Егер файл ашық болса (оқу және/немесе жазу үшін), онда оған сілтемелер саны тағы біреуге артады; уақытша файлды ашатын қанша бағдарлама оны бірден жояды, осылайша олар бұзылса, операциялық жүйе процесс ашқан файлдарды жапқанда, бұл уақытша файл операциялық жүйе арқылы жойылады.

    Файлдық жүйенің тағы бір қызықты ерекшелігі бар: егер файлды жасағаннан кейін оған жазу қатарда емес, үлкен аралықта болса, онда бұл аралықтарға дискілік кеңістік бөлінбейді. Осылайша, бөлімдегі файлдардың жалпы көлемі бөлімнің көлемінен үлкен болуы мүмкін және мұндай файл жойылған кезде оның өлшемінен аз орын босатылады.

    Файлдар келесі түрлерде болады:

    • тұрақты тікелей қатынау файлы;
    • каталог (басқа файлдардың аттары мен идентификаторлары бар файл);
    • символдық сілтеме (басқа файлдың аты бар жол);
    • блоктық құрылғы (диск немесе магниттік таспа);
    • сериялық құрылғы (терминалдар, сериялық және параллель порттар; дискілер мен таспаларда да сериялық құрылғы интерфейсі бар)
    • атаулы арна.

    Құрылғылармен жұмыс істеуге арналған арнайы файлдар әдетте /dev каталогында орналасады. Міне, олардың кейбіреулері (FreeBSD номинациясында):

    • tty* - терминалдар, соның ішінде:
      • ttyv - виртуалды консоль;
      • ttyd - DialIn терминалы (әдетте сериялық порт);
      • cuaa - DialOut желісі
      • ttyp – желілік псевдотерминал;
      • tty – тапсырма байланыстырылатын терминал;
    • wd* - қатты дискілер және олардың бөлімдері, соның ішінде:
      • wd - қатты диск;
      • wds - осы дискінің бөлімі (мұнда «кесінді» деп аталады);
      • wds - бөлім бөлімі;
    • fd - иілгіш диск;
    • rwd*, rfd* - wd* және fd* сияқты, бірақ дәйекті қатынасы бар;

    Кейде пайдаланушы іске қосқан бағдарлама оны іске қосқан пайдаланушының құқықтарына ие емес, басқа біреудің құқықтарына ие болуы талап етіледі. Бұл жағдайда өзгерту құқықтары атрибуты пайдаланушының құқықтарына - бағдарлама иесіне орнатылады. (Мысал ретінде сұрақ-жауаптары бар файлды оқитын бағдарламаны беремін және оның оқығаны негізінде осы бағдарламаны іске қосқан студентті сынаймын. Бағдарлама жауаптары бар файлды оқуға құқығы болуы керек, бірақ студент Оны кім іске қосса, оны іске қоспау керек.) Мысалы, пайдаланушы құпия сөзін өзгерте алатын passwd бағдарламасы жұмыс істейді. Пайдаланушы passwd бағдарламасын іске қоса алады, ол жүйелік дерекқорға өзгертулер енгізе алады, бірақ пайдаланушы жасай алмайды.

    Толық файл атауы "диск:\жол\атауы" сияқты көрінетін DOS және "-filesystem-drive:$.path.name" сияқты көрінетін RISC-OS-тен (жалпы оның артықшылықтары бар) айырмашылығы, Unix мөлдір файлды пайдаланады. "/жол/атауы" белгісі. Түбір Unix ядросы жүктелген бөлімнен өлшенеді. Егер біз басқа бөлімді пайдаланатын болсақ (және жүктеу бөлімінде әдетте жүктелетін негізгі элементтер ғана болады), `mount /dev/partitionfile dir` пәрмені пайдаланылады. Сонымен бірге, бұрын осы каталогта болған файлдар мен ішкі каталогтар бөлім ажыратылғанға дейін қолжетімсіз болады (әрине, барлық қалыпты адамдар бөлімдерді орнату үшін бос каталогтарды пайдаланады). Тек жетекшінің монтаждау және түсіру құқығы бар.

    Іске қосу кезінде әрбір процесс оған 0 дескрипторында стандартты stdin кірісі ретінде белгілі үш файл ашық болуы мүмкін; 1 дескриптордағы стандартты шығыс stdout; және дескриптордағы stderr стандартты шығысы 2. Жүйеге кірген кезде, пайдаланушы логин мен парольді енгізгенде және қабық іске қосылғанда, үшеуі де /dev/tty; кейінірек олардың кез келгенін кез келген файлға қайта бағыттауға болады.

    командалық аудармашы


    Unix әрқашан дерлік екі қабықпен келеді, sh (қабық) және csh (C тәрізді қабық). Олардан басқа bash (Борн), ksh (Korn) және т.б. Егжей-тегжейлерге тоқталмай-ақ, жалпы қағидалар:

    Ағымдағы каталогты өзгерту, ортаның айнымалы мәндерін орнату (орта) және құрылымдық бағдарламалау мәлімдемелерінен басқа барлық командалар сыртқы бағдарламалар болып табылады. Бұл бағдарламалар әдетте /bin және /usr/bin каталогтарында орналасады. Жүйені басқару бағдарламалары - /sbin және /usr/sbin каталогтарында.

    Пәрмен іске қосылатын бағдарламаның аты мен аргументтерден тұрады. Аргументтер пәрмен атынан және бір-бірінен бос орындар мен қойындылар арқылы бөлінеді. Кейбір арнайы таңбалар қабықтың өзі арқылы түсіндіріледі.Арнайы таңбалар " " ` \ ! $ ^ * ? | & ; (тағы не?).

    Бір пәрмен жолында бірнеше пәрмен беруге болады. Командаларды бөлуге болады; (командаларды тізбектей орындау), & (асинхронды бір мезгілде командаларды орындау), | (синхронды орындау, бірінші команданың stdout екіншінің stdinіне беріледі).

    Сондай-ақ файлдан стандартты енгізуді қосу арқылы алуға болады.<файл" (без кавычек); можно направить стандартный вывод в файл, используя ">файл» (файл нөлге тең болады) немесе «>>file» (файлдың соңына дейін жазу орындалады). Бағдарламаның өзі бұл аргументті қабылдамайды; енгізу немесе шығыс қайта тағайындалғанын білу үшін бағдарлама өзі өте маңызды емес қимылдарды қабылдауы керек.

    Нұсқаулықтар - адам


    Кез келген пәрмен бойынша ақпарат қажет болса, «man command_name» пәрменін беріңіз. Бұл экранда «көп» бағдарламасы арқылы көрсетіледі - оны Unix жүйесінде «адам көбірек» пәрменімен қалай басқару керектігін қараңыз.

    Қосымша құжаттама

  • Мақала ұнады ма? Достарыңызбен бөлісіңіз!
    Бұл мақала пайдалы болды ма?
    Иә
    Жоқ
    Пікіріңізге рахмет!
    Бірдеңе дұрыс болмады және сіздің дауысыңыз есептелмеді.
    Рақмет сізге. Сіздің хабарламаңыз жіберілді
    Мәтіннен қате таптыңыз ба?
    Оны таңдаңыз, басыңыз Ctrl+Enterжәне біз оны түзетеміз!