UNIX қайдан келеді?

Барлығына сәлем! Осы аптада мен бағдарламалау туралы кейбір кітаптарды оқып, өте көңілді болдым, шындық: бағдарламалауды үйренудің ең жақсы әдісі әрқашан кітаппен, кез-келген мақаламен, оқулықпен, нұсқаулықпен (оның ішінде менікі) таба алады оларды осы тақырыптағы нақты кітаппен салыстыру кезіндегі эталондар. Енді біз «нақты» кітаптың не екенін анықтауымыз керек, өйткені барлық кітаптар жақсы бола бермейді, және олардың көпшілігі тіпті өз бағасынан қымбатқа түсіп, уақытты босқа өткізеді.

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

  • Мэтт Уолкердің CEH сертификатталған этикалық хакері.
  • Python-дің басталуы: Магнус Ли Хетландтың бастаушыдан кәсібиға дейін.
  • Хакерлік: Джон Эриксонның пайдалану өнері.
  • Массимо Банцидің Arduino-мен жұмысын бастау.
  • Кэмерон Ньюбам мен Билл Розенблаттың Shell-ді үйренуі.
  • Арнольд Роббинс, Элберт Ханна және Линда Лэмбтің vi және vim редакторларын үйрену.
  • Грег Кроах-Хартманның («Gentoo» жасаушысы да) «түйіршіктегі Linux ядросы»
  • Дженс Густттың қазіргі заманғы С
  • Shellcoder's анықтамалығы Крис Анли, Джон Хизман, Феликс «FX» Линдер және Джерардо Ричарт.
  • Брайан В. Керниган мен Деннис М. Ричидің С бағдарламалау тілі (С-ті жасаушылар)
  • Ричард Сталлман, Ролан Пеш, Стэн Шебс және басқалардың GDB-мен түзету.
  • Linux-ті бұзу: Питт Герцог, Марга Барсело, Рик Такер, Андреа Барисани (Gentoo-дің тағы бір жасаушысы), Томас Бадер, Саймон Билес, Колби Кларк, Рауль Чиеса сияқты ISECOM зерттеушілерінің үлкен тобының Linux қауіпсіздік құпиялары мен шешімдері. , Пабло Эндрес, Ричард Фейст, Андреа Гирардини, Джулиан «Хаммер Джаммер» Хо, Марко Ивалди, Дру Лавинье, Стефан Ло Прести, Кристофер Лоу, Тай Миллер, Арманд Пуччетти және т.б.
  • Операциялық жүйелер: Dhananjay M. Dhamdhere тұжырымдамасына негізделген тәсіл
  • Pro Git - Скотт Чакон мен Бен Страуб
  • Сарапшы бағдарламалау: Питер Ван Дер Линденнің терең құпиялары.

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

Unix және C

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

Мультик Бұл Bell зертханаларын, General Electric пен MIT-ті біріктіріп, амалдық жүйені құру үшін мега жоба болды, бұл жүйе көптеген қателіктер жіберді, және ең маңыздыларының бірі - жүйені іс жүзінде жарамсыз етті. Біз 1969 жыл туралы айтып отырмыз, сондықтан сол кездегі аппараттық құрал жүйенің өзін басқаруға қажет бағдарламалық жасақтаманы көтере алмады.

Bell-тің бірнеше инженері 1970 жылы ғана PDP-7 үшін қарапайым, жылдам және жеңіл операциялық жүйеде жұмыс істей бастады. Барлық жүйе жазылған болатын Ассемблер және шақырылды UNIX пародия ретінде Мультик өйткені ол бірнеше нәрсені ғана жасағысы келді, бірақ екіншісі білдіретін орасан бос жұмыс орнына оларды жақсы жасағысы келді. Неге екенін енді түсінуге болады дәуірі 1 қаңтардан басталады 1970. 🙂 Мен үшін өте қызықты факт. Ол кезде С-ның өзі туралы әңгіме әлі болған жоқ, бірақ а туралы Жаңа Б. өйткені Ритчидің идеялары сол кезде қолданылып келген В тілінен шыққан.

Ерте C

Көптеген жылдар бойы (1972-3) C термині қолданыла бастады, өйткені жаңа тіл қалыптаса бастады, және осы уақытта тағы бір қызықты факт дүниеге келді, көптеген бағдарламашылар мен бағдарламашылардың әзілдері:

Бағдарламашылар 0 емес, 1 санай бастайтындығыңызды біледі.

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

array[8]=2;

Бұл бізге элемент екенін айтады жиым 2 ретінде анықталады, өйткені 8 элемент сақталатын жад кеңістігіне жету үшін жиымға 2 бірлік қосылады.С-қа дейін көптеген тілдер С-тің арқасында 1-ден есептей бастады, қазір барлығы дерлік 0-ден басталады 🙂 сондықтан бұл бағдарламашылардың емес, компилятор жазушылардың кінәсі.

Bourne Shell

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

#define IF if(

#define THEN ){

#define ELSE }else{

#define FI };

Бұл Algol түсінетін бірнеше мысалдар, бірақ егер біз оны бүгінде қабықшаларды бағдарламалауға қолданатын болсақ, онда сіз өзіңіздің бағдарламаларыңыздың неге қажет екенін түсінесіз fi әрқайсысы үшін if 🙂 әрине қызықты.

Оқуды бастаңыз

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


Мақаланың мазмұны біздің ұстанымдарымызды ұстанады редакторлық этика. Қате туралы хабарлау үшін нұқыңыз Мұнда.

13 пікір, өз пікіріңізді қалдырыңыз

Пікіріңізді қалдырыңыз

Сіздің электрондық пошта мекен-жайы емес жарияланады. Міндетті өрістер таңбаланған *

*

*

  1. Деректерге жауапты: Мигель Анхель Гатан
  2. Деректердің мақсаты: СПАМ-ны басқару, түсініктемелерді басқару.
  3. Заңдылық: Сіздің келісіміңіз
  4. Деректер туралы ақпарат: заңды міндеттемелерді қоспағанда, деректер үшінші тұлғаларға жіберілмейді.
  5. Деректерді сақтау: Occentus Networks (ЕО) орналастырған мәліметтер базасы
  6. Құқықтар: Сіз кез-келген уақытта ақпаратты шектей, қалпына келтіре және жоя аласыз.

  1.   Хуан дижо

    Сіздің мақалаңыз мен үшін өте қызықты болды. Көп рақмет.

  2.   HO2Gi дижо

    Әдеттегідей өте қызықты.

  3.   Хосе Рафаэль дижо

    Өте қызықты түсініктемелер жақсы.

  4.   Алекс дижо

    Excelente

  5.   Даниэлга дижо

    Қызықты !!! Көп рақмет.

  6.   екіншіден дижо

    мультиктер? бұл мультик болмайды (https://en.wikipedia.org/wiki/Multics)

    1-ден көрсеткіштері бар тілдер шайтанның өнертабысы ...

    1.    ChrisADR дижо

      Қызықты ескерту 🙂 Менің ойымша, тарихтың бір кезеңінде екі термин де қолданылған:

      https://www.landley.net/history/mirror/collate/unix.htm

      90-шы жылдардың ортасында жазылған сол кітап.

      Сәлемдесу үшін рақмет!

      1.    екіншіден дижо

        wa, қандай ғажап нәрсе, сіз мені күмәндандырдыңыз, мен Expert C бағдарламалауының «сатып алынған» көшірмесін қарап шықтым: терең құпиялар және мультиктер келеді, мен мультриктерді бірінші рет естіп тұрмын. Қандай қызық, бұл үштік қоянды еске түсіреді

        1.    ChrisADR дижо

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

          тілекпен

  7.   ED774 дижо

    Үлкен үлес

  8.   аноним дижо

    Бір қызығы, Multrics қате басып шығаруға байланысты, өйткені бұл амалдық жүйенің бастапқы атауы Multics болған, ал Unix, бастапқыда Unics деп аталған, дәл осы ұлы амалдық жүйеге сілтеме жасай отырып, ақыр соңында және фонетика арқылы Unics se Unix-ке айналды, енді тек өзін Unix-тің авторымын деп санайтын адамның атын айтуға тура келді; Кен Томпсон, аңызға сәйкес, Томпсон да, Ричи де Bell Labs-тағы кафеде өздерінің жобаларына түсініктеме беріп, Ритчи Томпосонға өзінің Unics-ті C бағдарламасымен, өзі жазған тілмен қайта жазуды ұсынды ... және басқалары , бұл тарих. 😉

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

    1.    ChrisADR дижо

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

      Ал екіншісіне келсек ... шындықты бұрмалайтын тағы бір аңыз, өйткені C-ге дейін B, A, паскаль, Ада, алгол-60, PL / 1 және тағы басқалары болды, олар дұрыс бағдарламалау тілдері болды (Ассемблеядан мүлдем өзгеше) және олардың архитектурасы бойынша процессордың аппараттық құралына тәуелді диалект)) сондықтан С бұл мағынада «жаңалық» енгізбеді, ол басқа тілдерде бұрыннан бар шешімдерді қабылдады және соңында ол бұларға қарағанда тезірек және жақсырақ танымал болды ... Жалғыз бөлігі Шындық мынада, бұл Java кейінірек өзінің виртуалды машинасын жасау үшін осы портативтілік тұжырымдамасына негізделген, бірақ ол бұл үшін С-ға ғана сеніп қоймай, басқа модельдерді ұстанған, әйтпесе бізде java-да объектілік-бағдарланған бағдарламалау парадигмасы болмас еді ...

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

  9.   Игнасио Эскивел дижо

    Әдеттегідей, мақала өте қызықты, үлес қосқаныңызға рахмет.