Једноставно програмирање Линука – Комплетан водич са ресурсима за почетнике

Откривање: Ваша подршка помаже одржавању сајта да ради! Зарађујемо накнаду за препоруку за неке услуге које препоручујемо на овој страници.


Линук је оперативни систем, платформа, екосистем и култура. Док стална доминација Виндовс-а и Мац ОС-а за рачунарским рачунаром узрокује да непознати потрошач претпоставља да је Линук својеврсна опција за екстремне штреберке и оне који не желе да плаћају оперативни систем, истина је у томе да Линук је најкоришћенији и најважнији оперативни систем на планети. Покреће мрежу, напаја нашу инфраструктуру, напаја највеће супер-рачунаре на свету.

Развијање за Линук може бити мало изазов, али може бити и изузетно корисно. Овај кратки водич ће вам пружити увод у информације и ресурсе који су вам потребни да бисте започели са програмирањем Линука. Обухвата четири области развоја Линука: допринос кернелу, изградња нових модула, развој апликација за Линук и скрипте за Схелл.

Линук развој кернела

Линук кернел је можда најамбициознији пројекат развоја софтвера на планети. Нова стабилна издања излазе отприлике свака три месеца, а свако издање укључује хиљаде програмера који раде у десетинама земаља.

Укључивање у развој кернела је, парадоксално, и лакше него што се чини како би требало да буде, а такође и смешно тешко. Лакше је него што се чини како би требало да буде, јер нема процеса запошљавања, нема интервјуа и нема бирократије. Свако ко зна шта раде је добродошао да се развије у језгру и пошаље закрпе. Са друге стране, такође је изузетно тешко јер је кернел изузетно компликован. Штавише, заједница за развој кернела, иако на неки начин дочекује, не подноси аматерске шененигане веома добро. Иако помаже да имате дебелу кожу, ништа заправо не замјењује то што заправо знате шта радите. Развој језгре је прилично озбиљан посао, који укључује прилично озбиљне рачунарске науке. Ако тек започињете с развојем оперативног система, ово заиста није место за започињање.

Оно што треба да знате

Развојне вештине

Програмирање Линук кернела врши се у Ц. Не Ц ++, не Објецтиве-Ц, не Ц #. Дакле, прва ствар коју треба да урадите је да изузетно добро научите програмски језик Ц.

Такође морате да дубоко разумете теорију оперативног система, посебно ако се односи на Линук систем. Више о томе у следећем одељку.

  • Програмски језик Ц: дефинитивни водич за језик. Доступан је и као бесплатни ПДФ.
  • Концепти оперативног система: темељни увод у теорију и праксу развоја оперативног система.

Разумевање Линука

Наравно, Линук морате разумети и као корисника и као програмера. То укључује прилично дубоко разумевање како је Линук кернел структуриран и како се различити подпројекти уклапају заједно.

  • Линук програмерски интерфејс
  • Линук Кернел Невбиес

Процес и култура

На крају, морате да разумете како процес развоја Линука заправо функционише. Ово укључује добијање осећаја за заједницу као целину, њену културу и како се различити чланови развојне заједнице односе једни са другима. Такође, то значи разумевање контроле дистрибуиране верзије и циклус издања развоја.

  • Како учествовати у Линук заједници: обавезно читање. Почните овде.
  • Три начина за почетнике да допринесу Линук кернелу: кратак, пријатељски водич за укључивање.
  • Службене ствари:
    • Линук Кернел Арцхивес
    • Линук Кернел листа за слање
    • Трагач о грешци у Кернел-у
  • Будући да је Морон на линук-кернел-у: водич за то како се не понашати на Линук Кернел (или било којој другој) листи за слање поште. (Наша препорука: вребајте најмање шест месеци пре него што објавите било шта.)

Развијање кернел модула

Пре него што скочите на развој језгре на Линук кернелу, добар начин да повећате своје знање и стручност за Линук програмирање је рад на кернел модулу. То су независно развијени делови софтвера који раде са кернелом како би функционисао као комплетан оперативни систем. Кернел модули укључују ствари попут управљачких програма за разне хардверске периферије, као и управљаче датотекама и друге функције оперативног система ниског нивоа.

Препреке за улазак у рад на кернел модулу су, генерално гледано, много ниже него што су оне за рад на Линук кернел-у. Постоји стотине модула које су развили многи различити тимови и појединци, тако да не постоји ниједан сет вратара који би постављали тон за развој. Штавише, улози су мало нижи код развоја модула.

Оно што треба да знате

Кернел модули, попут самог кернела, обично се пишу у Ц. (Постоји одређена расправа о развоју модула кернел-а у Ц ++, а постоје и неки ван-начини да се то постигне, али то сигурно није уобичајен начин нити Да ли се препоручује.)

Очигледно је да ако пишете управљачки програм уређаја за неки део хардвера, мораћете да знате доста о врсти хардвера и о уграђеном фирмверу. Такође вам је потребно пристојно разумевање кернела заснованог на Линуку и начина на који он делује са модулима кернел-а. Коначно, ако доприносите постојећем модулу кернел-а, морат ћете научити о њиховим процедурама и циклусу развоја.

  • Водич за програмирање модула Линук кернел: изузетно темељит водич.
  • Како написати властити Линук кернел модул са једноставним примјером: лијеп водич кроз приручник.
  • Писање датотечног система у Линук кернелу: још један релативно лаган корак за кораком према упутству.

Такође погледајте листу ресурса горе у одељку за развој кернела.

Развој апликација за Линук оперативни систем

Једном када се извучемо из корова развоја оперативног система и почнемо да говоримо о развоју стварних апликација за Линук оперативни систем, посао постаје мало лакши и имамо пуно више могућности како даље. Компајлери и тумачи за готово сваки програмски језик доступни су за Линук платформу, често више од једног за одређени језик.

Оно што треба да знате

Ако сте навикли да развијате за Виндовс или Мац ОС, највећи шок код развоја за Линук вероватно је велика разноликост Линук окружења. Постоје десетине Линук дистрибуција и сваки Линук корисник има могућност прилично промене у начину функционисања свог одређеног окружења. То између осталог значи да морате водити рачуна о управљању зависности много више него што би иначе могло да вам је потребно.

Још једна разлика, посебно у поређењу са Виндовс системом, је та што многи корисници Линука радије компилирају своје апликације из изворног кода. То се дешава и на Мац ОС-у, али с мањом учесталошћу. У свету Линука, велики број корисника ће увек радије да компајлира апликације из извора, него да користи инсталациони пакет. То би могло утицати на то како размишљате о развоју и дистрибуцији софтвера.

Већина развоја усмереног на Линук одвија се на Ц, Ц ++, Перл или Питхон-у. Добро учење тих језика и роњење у горе споменутим ресурсима (језгра и модули) и нижи (скриптирање) ће вам пуно помоћи.

  • Ц Програмирање у Линуку: темељни увод и водич о програмирању Линук апликација на Ц језику.
  • Обука за програмере за Линук: плаћени курсеви за развој Линука од Линук фондације.

Скриптирање у Линуку

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

Оно што треба да знате

Иако постоје и друге опције, Басх је најчешћи скриптни језик. Чак и ако планирате да пређете на напредније скриптне језике, добијање кваке на Басх-у покренуће вас на десној нози за све врсте скрипти оперативног система. Већина људи који се заиста упишу у сценарије као начин да повећају продуктивност, користе било Питхон или Перл за већину свог посла. Једном када ударите у зид оним што лако можете да постигнете на Басху, вероватно ћете желети да пређете на један од тих језика.

Ресурси Басх

  • Басх Водич за почетнике
  • Адванцед Басх-Сцриптинг Гуиде
  • Водич за скрипте за Линук Схелл

Ресурси Питхон

  • Научите Питхон на тежи начин: један од најпопуларнијих увода у Питхон развој.
  • Аутоматизирајте досадне ствари са Питхон-ом: Практично програмирање за почетнике: сјајан увод у сценарију (за разлику од „развоја“) у Питхон-у. Такође је доступан бесплатно на мрежи као видео курс.

Перл ресурси

  • Увод за почетнике у Перл
  • Како написати скрипте за љуске на Перлу
  • УНИКС, Схелл скрипта и Перл Увод

Општи ресурси за Линук

Линук фондација

Линук.орг: централни форум за све ствари Линук.

Пројект документације за Линук: огромна библиотека Линук-ова водича о свим горе наведеним темама, као и гомила других ствари. Ово је једно од најважнијих места за детаљне Линук информације.

Резиме

То је била дивља вожња! Од програмирања језгре Линука па све до скриптирања шкољки. Постоји безброј начина за програмирање Линук оперативног система. Уз овај водич, требали бисте бити на добром путу.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me