Linux Programming Interface sɛ Suapɔn Adesua Nkyerɛwee
Wɔ kɔmputa ho adesua a ɛyɛ den mu no, adesua nhoma a ɛfata a wɔbɛpaw no yɛ ɔkyerɛkyerɛ ho gyinaesi a ɛho hia. Ɛsɛ sɛ nkyerɛwee bi yɛ nea wɔde gyina hɔ pintinn ne akwankyerɛ a ɛhyɛ nkuran, a etumi dan nhyehyɛe mu nsɛm a ɛyɛ den a wontumi nhu no ma ɛbɛyɛ ntease a wotumi hu. Wɔ adesua ahorow a ɛkɔ akyiri wɔ dwumadi nhyehyɛe, nhyehyɛe nhyehyɛe, anaa softwea mfiridwuma a ɛkɔ akyiri mu no, Michael Kerrisk The Linux Programming Interface (TLPI) gyina hɔ sɛ nea ɛyɛ hu na ɛrenya nkɔanim. Ɛnyɛ nhoma bi kɛkɛ, na mmom ɛyɛ adesua nhyehyɛe a ɛkɔ akyiri wɔ n’ankasa mu, na ɛma nsonsonoe a ɛda nsusuwii ahorow ne nokwasɛm a mfaso wɔ so a ɛwɔ nnɛyi dwumadi nhyehyɛe a ɛne POSIX hyia mu no ntam. Ne gye a wɔagye atom wɔ adesua mu no da nsakraeɛ a ɛkɔ nkyerɛkyerɛ nnyinasosɛm mu adi denam wiase ankasa, a wɔde di dwuma kɛseɛ te sɛ Linux, a ɛsiesie asuafoɔ ma mfiridwuma mu nsɛnnennen a wɔbɛhyia wɔ nnwuma mu.
Efi Nsusuwii so kosi Nneyɛe a Wotumi Hu so
| TLPI di eyi ho dwuma fɛfɛɛfɛ. Ɛde Linux kernel —a ɛyɛ production-grade, open-source system —di dwuma sɛ asɛm no ho nhwehwɛmu titiriw. Sɛ osuani bi kenkan virtual memory ho asɛm a, obetumi ahwehwɛ mmap() system call no mu kɔ akyiri ntɛm ara, akyerɛw nhyehyɛe ahorow a ɛde di dwuma, na wahwɛ ne nneyɛe. Saa kwan tẽẽ a efi adwene so kosi dwumadie so yi ma nteaseɛ yɛ den wɔ ɔkwan a abstract theory nko ara ntumi so. Ɛma asuafoɔ tumi ma wɔhunu dwumadie nhyehyɛeɛ no sɛ ɛnyɛ sɛ adaka tuntum a ɛyɛ monolithic, na mmom sɛ interface a ɛte aseɛ, a wɔtumi yɛ ho nhyehyɛeɛ, te sɛ sɛdeɛ modular adwumayɛ OS te sɛ Mewayz da API ahodoɔ a wɔakyerɛkyerɛ mu yie adi de si adwumayɛ nhyehyɛeɛ na ɛyɛ adwuma wɔ ɔkwan a ɛyɛ adwuma so.
Ɔkwan a Wɔahyehyɛ a Ɛfa Nhyehyɛeɛ a Ɛyɛ Nsɛnnennen So
Ebia nhoma no kɛse (bɛboro nkratafa 1500) bɛyɛ te sɛ nea ɛyɛ hu, nanso n’ahyehyɛde no yɛ ne nyansa sɛ nkyerɛkyerɛ adwinnade. Ɛdi nkɔsoɔ a nteaseɛ wom a ɛkyerɛ adesua nhyehyɛeɛ a wɔayɛ no yie akyi:
Fapem a ɛdi kan: Ɛfiri aseɛ de I/O titire, fael nhyehyɛeɛ, ne dwumadie ho adwene, hwɛ sɛ asuafoɔ nyinaa de mfitiaseɛ a wɔbom yɛ.
Incremental Complexity: Ɛde nkakrankakra si nsɛmti a ɛkɔ akyiri te sɛ nsɛnkyerɛnne, nhama, ne nkitahodi a ɛkɔ so wɔ nhyehyɛe ahorow ntam, na ɛma adesua ahorow no tumi fi nnianim asɛm so kosi nea ɛkɔ akyiri so.
Nimdeɛ a Wɔasiesie ama Dwumadie: Ti ahodoɔ a ɛdi akyire a ɛfa sockets, daemons, ne nwomakorabea a wɔkyɛ ho no ma adwinnadeɛ tẽẽ ma semester projects a ɛho hia, te sɛ server a ɛwɔ threaded pii anaa custom shell a wɔbɛkyekyere.
Nkyerɛkyerɛmu Su: Ne indexing ne cross-referencing a ɛyɛ ahwɛyiye no kyerɛkyerɛ asuafo sɛnea wɔbɛfa mfiridwuma ho nkrataa a ɛyɛ den mu —adwumayɛ ho nimdeɛ a ɛho hia.
Adwumayɛfoɔ-Grade Engineering Suban a wɔbɛhyɛ ho nkuran
Ɛyɛ API frɛ a wɔkyerɛkyerɛ akyi no, Linux Programming Interface de adwene a ɛfa nhyehyɛe a ɛyɛ den, ahobammɔ, na wotumi fa so dua mu. Kerrisk si so dua daa portability haw ahorow a ɛwɔ system versions ntam, ahobammɔ afiri (te sɛ bere-a-wɔ-hwɛ-kɔ-bere-de-di dwuma mmirikatu), ne hia a mfomso di ho dwuma ma dwumadie biara a wɔde aba. Saa si so dua yi ne nnɛyi softwea mfiridwuma ho adesua nhyehyɛe ahorow a esi ahobammɔ a edi kan ne nhyehyɛe a ɛyɛ den so dua no hyia pɛpɛɛpɛ. Ɛnyɛ sɛnea yɛ nhyehyɛe frɛ nko na asuafo sua, na mmom sɛnea wɔyɛ no yiye wɔ adeyɛ tebea mu. Eyi ne nyansapɛ a ɛwɔ platform ahorow te sɛ Mewayz akyi no di nsɛ, baabi a ahotoso, ahobammɔ, ne API nhyehyɛe a ɛho tew yɛ nea ɛho hia sen biara ma adwumayɛ application ahorow a ɛyɛ den a ɛma adwumayɛ a ɛho hia yɛ adwuma wɔ ɔkwan a ɛyɛ adwuma so.
a wɔde ahyɛ mu
| – Michael Kerrisk, Linux Dwumadie Nkitahodiɛ
na ɛkyerɛ sɛ woayɛ
Nneɛma Nnɛyi Nkyerɛkyerɛ Nnwinnade a Wɔde Bɛka abom
Mfaso a ɛwɔ TLPI so sɛ adesua nkyerɛwee no, abɔde a nkwa wom a atwa ho ahyia no ma ɛyɛ kɛse. Nhwɛsoɔ nyinaa source code a ɛdi mũ no wɔ intanɛt so, na ɛma wonya adeɛ a ɛsom boɔ ma labs ne ankasa adesua. Akyerɛkyerɛfoɔ bɛtumi ayɛ nsaanodwuma lab nhyiamu a ɛfiri mmirikatuo ne nsakraeɛ a wɔyɛ wɔ mmara a wɔde ama no so kɔ ma asuafoɔ de wɔn ankasa ano aduru a egyina nwoma no nkyerɛkyerɛmu so bedi dwuma. Bio nso, sɛ wɔde dwumadie nhyehyɛeɛ a wɔde di dwuma kwa (Linux) a ɛwɔ nsɛm a ɛyɛ pintinn, a ɛyɛ encyclopedic text di dwuma a, yi sikasɛm ne nhyehyɛeɛ ho akwansideɛ fi hɔ ma asuafoɔ. Wobetumi de nkɔso tebea bi ahyɛ wɔn ankasa hardware so, asɔ ahwɛ wɔ ahofadi mu, na wɔde saa nkyerɛkyerɛmu a tumi wom yi akɔ wɔn adwuma mu. Wɔ nkyerɛkyerɛ tebea a wɔde wɔn adwene si wiase ankasa mu ahoɔden a wɔbɛkyekye so no, TLPI dannan fi adesua nhoma a ɛwɔ shelf so kɔ nhoma a wɔabue wɔ pon so so a ɛnyɛ den, na ɛkyerɛ awo ntoatoaso a edi hɔ a wɔyɛ nhyehyɛe ho nhyehyɛe ne adansifo no nkɔso kwan.
Linux Programming Interface sɛ Suapɔn Adesua Nkyerɛwee
Wɔ kɔmputa ho adesua a ɛyɛ den mu no, adesua nhoma a ɛfata a wɔbɛpaw no yɛ ɔkyerɛkyerɛ ho gyinaesi a ɛho hia. Ɛsɛ sɛ nkyerɛwee bi yɛ nea wɔde gyina hɔ pintinn ne akwankyerɛ a ɛhyɛ nkuran, a etumi dan nhyehyɛe mu nsɛm a ɛyɛ den a wontumi nhu no ma ɛbɛyɛ ntease a wotumi hu. Wɔ adesua ahorow a ɛkɔ akyiri wɔ operating systems, systems programming, anaa advanced software engineering mu no, Michael Kerrisk The Linux Programming Interface (TLPI) gyina hɔ sɛ nea ɛyɛ hu na ɛrenya nkɔanim. Ɛnyɛ nhoma bi kɛkɛ, na mmom ɛyɛ adesua nhyehyɛe a ɛkɔ akyiri wɔ n’ankasa mu, na ɛma nsonsonoe a ɛda nsusuwii ahorow ne nokwasɛm a mfaso wɔ so a ɛwɔ nnɛyi dwumadi nhyehyɛe a ɛne POSIX hyia mu no ntam. Ne gye a wɔagye atom wɔ adesua mu no da nsakraeɛ a ɛkɔ nkyerɛkyerɛ nnyinasosɛm mu adi denam wiase ankasa, a wɔde di dwuma kɛseɛ te sɛ Linux, a ɛsiesie asuafoɔ ma mfiridwuma mu nsɛnnennen a wɔbɛhyia wɔ nnwuma mu.
Efi Nsusuwii so kosi Nneyɛe a Wotumi Hu so
| TLPI de fɛfɛɛfɛ di eyi ho dwuma. Ɛde Linux kernel —a ɛyɛ production-grade, open-source system —di dwuma sɛ asɛm no ho nhwehwɛmu titiriw. Sɛ osuani bi kenkan virtual memory ho asɛm a, obetumi ahwehwɛ mmap() system call no mu kɔ akyiri ntɛm ara, akyerɛw program ahorow a ɛde di dwuma, na wahwɛ ne nneyɛe. Saa kwan tẽẽ a efi adwene so kosi dwumadie so yi ma nteaseɛ yɛ den wɔ ɔkwan a abstract theory nko ara ntumi so. Ɛma asuafoɔ tumi ma wɔhunu dwumadie nhyehyɛeɛ no sɛ ɛnyɛ sɛ adaka tuntum a ɛyɛ monolithic, na mmom sɛ interface a ɛte aseɛ, a wɔtumi yɛ ho nhyehyɛeɛ, te sɛ sɛdeɛ modular adwumayɛ OS te sɛ Mewayz da API ahodoɔ a wɔakyerɛkyerɛ mu yie adi de si adwumayɛ nhyehyɛeɛ na ɛyɛ adwuma wɔ ɔkwan a ɛyɛ adwuma so.
Ɔkwan a Wɔahyehyɛ a Ɛfa Nhyehyɛeɛ a Ɛyɛ Nsɛnnennen So
Ebia nhoma no kɛse (bɛboro nkratafa 1500) bɛyɛ te sɛ nea ɛyɛ hu, nanso n’ahyehyɛde no yɛ ne nyansa sɛ nkyerɛkyerɛ adwinnade. Ɛdi nkɔsoɔ a nteaseɛ wom a ɛkyerɛ adesua nhyehyɛeɛ a wɔayɛ no yie akyi:
Adwumayɛfoɔ-Grade Engineering Suban a wɔbɛhyɛ ho nkuran
Ɛyɛ API frɛ a wɔkyerɛkyerɛ akyi no, Linux Programming Interface no de adwene a ɛfa nhyehyɛe a ɛyɛ den, ahobammɔ, na wotumi fa so dua mu. Kerrisk si so dua daa portability haw ahorow a ɛwɔ system versions ntam, ahobammɔ afiri (te sɛ bere-a-wɔ-hwɛ-kɔ-bere-de-di dwuma mmirikatu), ne hia a mfomso di ho dwuma ma dwumadie biara a wɔde aba. Saa si so dua yi ne nnɛyi softwea mfiridwuma ho adesua nhyehyɛe ahorow a esi ahobammɔ a edi kan ne nhyehyɛe a ɛyɛ den so dua no hyia pɛpɛɛpɛ. Ɛnyɛ sɛnea wɔyɛ nhyehyɛe frɛ nko na asuafo sua, na mmom sɛnea wɔyɛ no yiye wɔ tebea a wɔyɛ nneɛma mu. Eyi ne nyansapɛ a ɛwɔ platform ahorow te sɛ Mewayz akyi no di nsɛ, baabi a ahotoso, ahobammɔ, ne API nhyehyɛe a ɛho tew yɛ nea ɛho hia sen biara ma adwumayɛ application ahorow a ɛyɛ den a ɛma adwumayɛ a ɛho hia yɛ adwuma wɔ ɔkwan a ɛyɛ adwuma so.
Nneɛma Nnɛyi Nkyerɛkyerɛ Nnwinnade a Wɔde Bɛka abom
Mfasoɔ a ɛwɔ TLPI so sɛ adesua nkyerɛwee no, abɔdeɛ a nkwa wom a atwa ho ahyia no ma ɛyɛ kɛseɛ. Nhwɛsoɔ nyinaa source code a ɛdi mũ no wɔ intanɛt so, na ɛma wonya adeɛ a ɛsom boɔ ma labs ne ankasa adesua. Akyerɛkyerɛfoɔ bɛtumi ayɛ nsaanodwuma lab nhyiamu a ɛfiri mmirikatuo ne nsakraeɛ a wɔyɛ wɔ mmara a wɔde ama no so kɔ ma asuafoɔ de wɔn ankasa ano aduru a egyina nwoma no nkyerɛkyerɛmu so bedi dwuma. Bio nso, sɛ wɔde dwumadie nhyehyɛeɛ a wɔde di dwuma kwa (Linux) a ɛwɔ nsɛm a ɛyɛ pintinn, a ɛyɛ encyclopedic text di dwuma a, yi sikasɛm ne nhyehyɛeɛ ho akwansideɛ fi hɔ ma asuafoɔ. Wobetumi de nkɔso tebea bi ahyɛ wɔn ankasa hardware so, asɔ ahwɛ wɔ ahofadi mu, na wɔde saa nkyerɛkyerɛmu a tumi wom yi akɔ wɔn adwuma mu. Wɔ nwomasua tebea a wɔde wɔn adwene si wiase ankasa mu ahoɔden a wɔbɛkyekyere so no, TLPI dane a ɛnyɛ den fi adesua nhoma a ɛwɔ shelf so kɔ nhoma a wɔabue wɔ pon so, a ɛkyerɛ awo ntoatoaso a edi hɔ a wɔyɛ nhyehyɛe ho nhyehyɛe ne adansifo no nkɔso kwan.
Fa Mewayz Fa Wo Adwuma no Nsiesiei
Mewayz de adwumayɛ module 208 ba platform baako mu — CRM, invoicing, project management, ne nea ɛkeka ho. Kɔka 138,000+ a wɔde di dwuma a wɔmaa wɔn adwumayɛ yɛɛ mmerɛw no ho.