Од каде потекнува UNIX?

Поздрав до сите ... овие недели сум доста забавен читајќи неколку книги за програмирање, вистината е дека најдобриот начин да научите да програмирате е секогаш со книга, секој напис, упатство, упатство што може да се најде (вклучувајќи го и мојот) се само репери кога ги споредуваме со вистинска книга на оваа тема. Сега, мора да дефинираме што е „вистинска“ книга, бидејќи не се сите книги вообичаени добри, а многу од нив дури можат да чинат и повеќе отколку што навистина вреди и да губат време.

За време на овие години, списокот на книги што ги прочитав и списокот на книги што можам да ги препорачам се разидуваа доста, но без сомнение ги имаме меѓу моите омилени (без специфичен редослед):

  • Сертифициран етички хакер CEH од Мет Вокер.
  • Почеток Пајтон: Од почетник до професионалец од Магнус Лај Хетланд.
  • Хакирање: уметност на експлоатација од Jonон Ериксон.
  • Започнување со Arduino од Масимо Банзи.
  • Учење на баш Шел од Камерон bубам и Бил Розенблат.
  • Учење на уредниците за ви и вим од Арнолд Робинс, Елберт Хана и Линда Ламб.
  • Linux Kernel in a Nuthell од Грег Кроа-Хартман (развивач на Gentoo исто така).
  • Modern C од Јенс Гастд
  • Прирачник за Шелкодер од Крис Енли, Johnон Хисман, Феликс «FX» Линдер и eraерардо Ричарте.
  • Програмски јазик C од Брајан В. Керниган и Денис М. Ричи (креатори на Ц)
  • Дебагирање со ГДБ од Ричард Сталман, Роланд Пеш, Стен Шебс и др.
  • Хакиран Linux: Откриени безбедносни тајни на Linux и решенија од голема група истражувачи на ISECOM, вклучувајќи ги Пит Херцог, Марга Барсело, Рик Такер, Андреа Барисани (друг поранешен развивач на Gentoo), Томас Бадер, Симон Билс, Колби Кларк, Раул Киеза , Пабло Ендрес, Ричард Феист, Андреа Гирардини, Julулијан „ХамерЈамер“ Хо, Марко Ивалди, Дру Лавињ, Стефан Ло Прести, Кристофер Лоу, Тај Милер, Арманд Пучети и др.
  • Оперативни системи: Пристап заснован на концепт од Dhananjay M. Dhamdhere
  • Про Гит од Скот Чакон и Бен Страуб
  • Програмирање на експерт Ц: Длабоки тајни од Питер Ван Дер Линден.

Јас би можел да зборувам многу за секоја од овие книги, но за денес ќе земеме некои од пасусите од последната на списокот, бидејќи многу од овие анектоди ме воодушевија и ми помогнаа подобро да разберам некои сложени тајни на Ц и програмирање воопшто. 🙂

Уникс и Ц.

Кога зборуваме за UNIX, историјата е испреплетена со потеклото на овој систем и развојот на јазикот кој до денес е еден од најкористените во развојот на него и неговите деривати (вклучувајќи го и Линукс). И lyубопитно, овие двајца се родени од „грешка“.

Мултирика Тоа беше мега проект кој ги обедини „Лаб лаборатории“, „Generalенерал електрик“ и самиот МИТ за да создадат оперативен систем, рече дека системот претставил многу грешки, и меѓу една од најважните, неуспеси во перформансите што го направиле системот практично неупотреблив. Зборуваме за 1969 година, така што хардверот од тоа време не можеше да ја поддржи количината на софтвер што беше потребен за да се изврши самиот систем.

Дури во 1970 година, неколку инженери на Бел започнаа да работат на едноставен, брз и лесен оперативен систем за PDP-7. Целиот систем беше запишан Асемблер и бил повикан UNIX како пародија на Мултирика бидејќи тој сакаше да направи само неколку работи, но да ги направи добро наместо огромната потрошена работа што ја значеше втората. Сега можете да разберете зошто Епоха започнува на 1 јануари, 1970. Rather Прилично iousубопитен факт за мене. Во тоа време сè уште не се зборуваше за самото Ц, туку за а Нов Б. бидејќи идеите на Ричи потекнуваа од веќе користениот Б јазик од тоа време.

Рано Ц.

Со текот на годините (1972-3) терминот Ц започнал да се користи кога новиот јазик започнал да се оформува и околу ова време се родил уште еден curубопитен факт, велат многу програмери и програмски шеги:

Програмерите знаат дека почнувате да броите од 0 наместо од 1.

Па, ова не е сосема точно ... вистинската причина зошто ова се смета на овој начин до денес е затоа што при неговото создавање, за писателите на компајлери било полесно да се пресмета низа користејќи неутрализирање, овие означуваат растојание што постои од точка на потекло до посакуваната цел, затоа:

array[8]=2;

Ни кажува дека елементот од низата се дефинира како 2, бидејќи 8 единици се додаваат во низата за да се достигне меморискиот простор каде што ќе се зачува елементот 2. Пред C, многу јазици започнаа да бројат од 1, благодарение на C, сега скоро сите почнуваат со 0 🙂 значи, не се виновни програмерите, но виновни се компилаторите што е така.

Школка Борн

Ова е тема што, иако не е директно поврзана со Ц, може да помогне повеќе од една да разбере зошто програмирањето на Шел е толку чудно и сигурно е curубопитно да се знае. Стив Борн напиша компилер за Алгол-68 таа сезона, ова е јазик на кој копчињата ( {} ) се заменуваат со зборови, така што можеме да го дефинираме како што следува во Ц:

#define IF if(

#define THEN ){

#define ELSE }else{

#define FI };

Ова се само неколку примери за тоа што Алгол разбира, но ако денес го примениме на програмирање на школки, ќе разберете зошто за вашите програми е потребна fi за секој if ... секако интересно.

Започнете со читање

Не можам да ви ги кажам сите детали за книгата, особено затоа што многу од овие се веќе програмски теми за кои треба да се разбере претходната позадина, но мислев дека ќе споделам со вас некои theубопитни анегдоти што ги најдов на патот 🙂 не сум имал Време е да поработам на некои од предметите што се најдоа на списокот што треба да се направат бидејќи овие последниве неколку книги едноставно ме фатија и уживам во нив секој ден и пред се обидувајќи се да ги разберам во потполност. Поздрав и наскоро ќе можам да споделам со вас повеќе теми, поздрави.


Содржината на статијата се придржува до нашите принципи на уредничка етика. За да пријавите грешка, кликнете овде.

13 коментари, оставете ги вашите

Оставете го вашиот коментар

Вашата е-маил адреса нема да бидат објавени.

*

*

  1. Одговорен за податоците: Мигел Анхел Гатон
  2. Цел на податоците: Контролирајте СПАМ, управување со коментари.
  3. Легитимација: Ваша согласност
  4. Комуникација на податоците: Податоците нема да бидат соопштени на трети лица освен со законска обврска.
  5. Складирање на податоци: База на податоци хостирани од Occentus Networks (ЕУ)
  6. Права: Во секое време можете да ги ограничите, вратите и избришете вашите информации.

  1.   Јован dijo

    Вашата статија ми беше многу интересна. Благодарам многу.

  2.   HO2Gi dijo

    Многу интересно како и секогаш.

  3.   Хозе Рафаел dijo

    Многу интересно појаснувањата се добри.

  4.   Алекс dijo

    Одлично

  5.   Даниелга dijo

    Интересно !!! Благодарам многу.

  6.   вториот dijo

    мноштво? нема да биде мултикли (https://en.wikipedia.org/wiki/Multics)

    јазиците со индекси од 1 се изум на сатаната ...

    1.    Крис АДР dijo

      Интересна забелешка 🙂 Претпоставувам дека во одреден момент од историјата биле користени двата поими:

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

      и очигледно истата книга што е напишана во средината на 90-тите години.

      Ви благодариме за појаснувањето 🙂 поздрави

      1.    вториот dijo

        wa, каква чудна работа, ме натера да се сомневам, погледнав во „купената“ копија на Expert C Programming: Длабоки тајни и доаѓаат мултики, тоа е прв пат да ги слушнам тие мноштво. Колку е curубопитен, тоа малку потсетува на трик зајакот

        1.    Крис АДР dijo

          хахаха, секако curубопитно, ја проверив мојата англиска копија на длабоки тајни, таму исто така пишува и Мултирика (затоа што и вие ме натерав да се сомневам) ... можеби тоа беше израз на времето

          Со почит

  7.   ED774 dijo

    Голем придонес

  8.   Анонимен dijo

    Интересно, иако сигурно, Мултитрик се должи на погрешно печатење, бидејќи првичното име на тој оперативен систем беше Multics, и Unix, првично наречен Unics, прецизно се однесуваше на тој одличен оперативен систем, на крајот и според фонетиката, Unics se трансформиран во Уникс, сега требаше само да го споменете името на кој се смета за автор на Уникс; Кен Томпсон, легендата вели дека и Томпсон и Ричи биле во кафетеријата во Лаб лабораториите, коментирајќи ги нивните проекти, а Ричи му предложила на Томпосон да ги препише своите уника со програмата Ц, на јазикот што го напишал ... и останатите , е историја. 😉

    Патем, претходно сите програми беа напишани со упатства од машината, што ги правеше тотално зависни од хардверот, иновацијата на C, освен што го олеснуваше пишувањето програми, беше што јазикот беше независен од хардверот што го спроведуваше компајлери, филозофија што многу години подоцна би ја земала Java, во смисла дека програмите не зависеле од оперативниот систем, додавајќи ја познатата виртуелна машина java.

    1.    Крис АДР dijo

      Лошото кај легендите е дека тие ја искривуваат историјата, на повеќе начини од една ... и можат да ве натераат да помислите дека нешто се случува кога не е ... како фактот на постојниот разговор помеѓу Томпсон и Ричи (што јас го изоставив по своја волја) бидејќи води до историски и технички грешки (Ц не беше пред УНИКС) ...

      А што се однесува до втората ... друга легенда што ја искривува реалноста, бидејќи пред C имаше B, A, pascal, Ada, algol-60, PL / 1 и уште неколку кои беа правилно програмски јазици (многу поразлични од Собранието и неговите дијалекти според архитектурата кои зависат од хардверот на процесорот) така што Ц не „иновираше“ во оваа смисла, тој едноставно донесе решенија што веќе постоеја на други јазици и на крајот стана популарно побрзо и подобро од овие ... Единствениот дел Вистината е дека Java се засноваше на овој концепт на преносливост за подоцна да ја создаде својата виртуелна машина, но не само што се потпреше на C за ова, туку следеше и на други модели, во спротивно немаше да имаме предметно-ориентирана програма за програмирање во Java ...

      Почувствував дека треба да ја разјаснам ситуацијата затоа што секој што не е толку добро упатен може да ја сфати како вистинита и потоа верувам дека се случи вака ... поздрав 🙂

  9.   Игнасио Ескивел dijo

    Како и секогаш, статијата е многу интересна, благодарам за придонесот.