Одакле долази УНИКС?

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

Током свих ових година списак књига које сам прочитао и списак књига које могу препоручити прилично су се разилазили, али без сумње међу неким од мојих омиљених које имамо (без одређеног редоследа):

  • ЦЕХ сертификовани етички хакер, Матт Валкер.
  • Почетак Питхона: Од почетника до професионалца Магнус Лие Хетланд.
  • Хаковање: уметност експлоатације Јона Ерицксона.
  • Почетак рада са Ардуином, Массимо Банзи.
  • Учење басх шкољке, Цамерон Невбам и Билл Росенблатт.
  • Учили ви и вим уреднике Арнолд Роббинс, Елберт Ханнах и Линда Ламб.
  • Линук кернел у малом, Грег Кроах-Хартман (такође Гентоо програмер).
  • Модерн Ц Јенс Густедт
  • Тхе Схеллцодер'с Хандбоок Цхрис Анлеи, Јохн Хеасман, Фелик «ФКС» Линдер и Герардо Рицхарте.
  • Програмски језик Ц, Бриан В. Кернигхан и Деннис М. Ритцхие (творци Ц)
  • Отклањање грешака са ГДБ-ом, Рицхард Сталлман, Роланд Песцх, Стан Схебс, ет ал.
  • Хакирање Линук-а изложено: Линук сигурносне тајне и решења велике групе истраживача ИСЕЦОМ-а, укључујући Пете Херзог, Марга Барцело, Рицк Туцкер, Андреа Барисани (још један бивши програмер Гентоо-а), Тхомас Бадер, Симон Билес, Цолби Цларк, Раоул Цхиеса , Пабло Ендрес, Рицхард Феист, Андреа Гхирардини, Јулиан "ХаммерЈаммер" Хо, Марцо Ивалди, Дру Лавигне, Степхане Ло Прести, Цхристопхер Лов, Ти Миллер, Арманд Пуццетти & ет ал.
  • Оперативни системи: Приступ заснован на концепту, Дханањаи М. Дхамдхере
  • Про Гит, Сцотт Цхацон и Бен Страуб
  • Програмирање стручњака Ц: Дубоке тајне Петер Ван Дер Линден.

Могао бих да похвалим сваку од ових књига, али за данас ћемо узети неке одломке из последње на листи, с обзиром да су ме многе од ових анектода освојиле и помогле ми да боље разумем неке замршене тајне Ц-а и програмирања уопште. 🙂

Уник и Ц.

Када говоримо о УНИКС-у, историја се преплиће са пореклом овог система и развојем језика који је до данас један од најчешће коришћених у развоју његовог и његових деривата (укључујући Линук). И што је необично, ово двоје је рођено из „грешке“.

Мултрицс Био је то мега пројекат који је окупио Белл Лабораториес, Генерал Елецтриц и сам МИТ да би креирао оперативни систем, рекао је да систем представља многе грешке и један од најважнијих пропуста у перформансама који систем чине практично неупотребљивим. Говоримо о 1969. години, па тадашњи хардвер није могао да подржи количину софтвера која је била потребна за покретање самог система.

Тек 1970. године неколико Беллових инжењера започело је рад на једноставном, брзом и лаганом оперативном систему за ПДП-7. Читав систем је био написан у Ассемблер и био позван УНИКС као пародија на Мултрицс будући да је желео да уради само неколико ствари, али да их уради добро уместо огромног узалудног посла који је друга значила. Сада можете да схватите зашто Епоха почиње 1. јануара, 1970. 🙂 Прилично знатижељна чињеница за мене. Тада још увек није било говора о самом Ц, већ о а Нови Б. будући да су Ричијеве идеје произашле из већ коришћеног тадашњег језика Б.

Рани Ц.

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

Програмери знају да почињете да рачунате од 0 уместо од 1.

Па, ово није у потпуности тачно 🙂 прави разлог зашто се ово тако сматра до данас је тај што је приликом стварања, за писце компајлера било лакше израчунати низ користећи надокнаде, ови указују на удаљеност која постоји од тачке исходишта до жељеног циља, зато:

array[8]=2;

Каже нам да елемент низа је дефинисан као 2, јер се у низ додаје 8 јединица да би се дошло до меморијског простора у којем ће бити ускладиштен елемент 2. Пре Ц, многи језици су почели да броје од 1, захваљујући Ц, сада готово сви почињу са 0 🙂 тако да нису криви програмери, већ писци компајлера што је то тако.

Борнова шкољка

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

#define IF if(

#define THEN ){

#define ELSE }else{

#define FI };

Ово су само неки примери онога што Алгол разуме, али ако то данас применимо на програмирање љуске, схватићете зашто у љусци ваши програми захтевају fi за сваког if 🙂 свакако занимљиво.

Почните читати

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


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

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

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

  1.   јохн дијо

    Ваш чланак ми је био веома занимљив. Хвала пуно.

  2.   ХО2Ги дијо

    Врло занимљиво као и увек.

  3.   Јосе Рафаел дијо

    Врло занимљива појашњења су добра.

  4.   алек дијо

    Одличан

  5.   Даниелга дијо

    Занимљиво !!! Хвала пуно.

  6.   други дијо

    мултрицс? то неће бити мултицс (https://en.wikipedia.org/wiki/Multics)

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

    1.    ЦхрисАДР дијо

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

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

      и очигледно иста књига која је написана средином 90-их.

      Хвала на појашњењу 🙂 поздрав

      1.    други дијо

        ва, каква чудна ствар, натерали сте ме да сумњам, погледао сам "купљену" копију програма Екперт Ц Программинг: Дубоке тајне и стижу мноштво, први пут чујем да су мултрицери. Колико је знатижељно, подсећа помало на трик зеца

        1.    ЦхрисАДР дијо

          хахаха сигурно знатижељан, проверио сам своју енглеску копију дубоких тајни, тамо такође стоји Мултрицс (јер сте и мене натерали да сумњам) ... можда је то био израз времена 😛

          поздрави

  7.   ЕДКСНУМКС дијо

    Велики допринос

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

    Занимљиво, иако сигурно, Мултрицс је настао због погрешног отиска, јер је првобитно име тог оперативног система било Мултицс, а Уник, првобитно назван Уницс, прецизно се позивајући на тај сјајни оперативни систем, временом и фонетиком, Уницс се трансформисан у Уник, сада сте морали само да поменете име онога ко се сматра аутором Уника; Кен Тхомпсон, легенда каже да су и Тхомпсон и Ритцхие били у кафетерији у Белл Лабс-у коментаришући своје пројекте и да је Ритцхие предложио Тхомпосон-у да препише свој Уницс са Ц програмом, језиком који је написао ... и остатком , је историја. 😉

    Иначе, претходно су сви програми били написани са упутствима машине, што их је учинило потпуно зависним од хардвера, иновација Ц-а, осим што је олакшавала писање програма, била је и то што је језик био неовисан од хардвера који имплементира компајлери, филозофија која ће много година касније узети Јаву, у смислу да програми нису зависили од оперативног система, додајући чувену јава виртуелну машину.

    1.    ЦхрисАДР дијо

      Лоша ствар код легенди је та што искривљују историју, на више начина ... и могу вас навести да мислите да се нешто догађа кад није ... попут чињенице о постојећем разговору између Тхомпсона и Ритцхиеја (који сам изоставио по својој вољи) јер води на историјске и техничке грешке (Ц није био пре УНИКС-а) ...

      А што се тиче друге ... још једне легенде која искривљује стварност, пошто су пре Ц били Б, А, пасцал, Ада, алгол-60, ПЛ / 1 и још неколико њих који су били правилно програмски језици (веома различити од скупштине и његови дијалекти по архитектури који зависе од хардвера процесора) па Ц у овом смислу није „иновирао“, он је једноставно усвојио решења која су већ постојала у другим језицима и на крају је постао бржи и бољи од ових ... Једини део Истина је да се Јава заснивала на овом концепту преносивости да би касније креирала своју виртуелну машину, али не само да се за то ослањала на Ц, већ је следила и друге моделе, иначе не бисмо имали парадигму објектно оријентисаног програмирања у јави ...

      Сматрао сам да бих требао разјаснити ситуацију јер би свако ко је слабије упућен то могао схватити као истину, а затим веровати да се то догодило овако ... поздрав

  9.   Игнацио Ескуивел дијо

    Као и увек, чланак је веома занимљив, хвала на доприносу.