Sosem értettem, mit jelent a rendszer programozása. A szokásos definíció: “… valami, ami közel áll az Os-hoz, vagy kiterjeszti az Os jellemzőit …”.
A Windows API közvetlen használata, nem pedig egyes könyvtárak használata, ha azt akarom mondani, hogy a fájl i / o fájl teszi-e a rendszer programozását? Az Android OS rendszer programozását írta? Ha olyat írok, hogy az egy Android-on lévő konzolon keresztüli konzolon keresztül leleplezi a Linux kernelt, akkor programozom? Ha a mosógép vezérléséhez szoftvert írok, akkor a rendszer programozását írom?
Kezdő vagyok a programozásban, és ez a végéig megzavar. Kérjük, magyarázza el, hogy ezt szembeállítja az “alkalmazás programozásával”.
Megjegyzések
- Ez a meghatározás megváltozott, és maguk a rendszerprogramozók sem ‘ úgy tűnik, ma nem biztos abban, hogy egyedülálló. Ez a probléma általában akkor jelentkezik, amikor az emberek arról vitatkoznak, hogy az X nyelv alkalmas-e a rendszer programozására …
- @Denys S é guret – Ironikus, ha senki sem tud megegyezni ebben mit kell kezdeni ” rendszerprogramozással “.
- Idézet a Perl Cookbookból – 16. fejezet. Folyamatkezelés és Kommunikáció: ” Ez a fejezet a parancsok elindításáról és külön folyamatok összekapcsolásáról szól. Létrehozásuk, kommunikációjuk és végső pusztulásuk kezeléséről szól. A rendszerek programozásáról szól. ”
Válasz
Én személy szerint mint a Wikipedia definíciója :
A rendszer programozása (vagy a rendszer programozása) a programozási rendszer szoftver tevékenysége. A rendszerprogramozás elsődleges megkülönböztető jellemzője az alkalmazásprogramozáshoz képest az, hogy az alkalmazásprogramozás célja olyan szoftver előállítása, amely szolgáltatásokat nyújt a felhasználó számára (pl. Szövegszerkesztő), míg a rendszerprogramozás célja olyan szoftver előállítása, amely szolgáltatásokat nyújt a számítógépes hardver számára (pl. Lemeztöredezettség-mentesítő) ). Nagyobb fokú hardvertudatot igényel.
Válasz
Vannak számos kérdést tehet fel magának, hogy gyakoroljon a kérdés eldöntésében.
- Eredetileg a programot értékesítették e program nélkül? Az Angry Birds lehet egy “Killer App” egy okos telefon számára (az oka annak, hogy valaki megveszi), de ez még mindig egy különálló, harmadik féltől származó alkalmazás, amelyet jóval a telefon bevezetése után írtak. Ennek megírása alkalmazások programozása lett volna. De ugyanannak az okostelefonnak a megjelenítő illesztőprogramja elengedhetetlen egyáltalán a használatához, ezért a rendszerek programozása lett volna.
- El tudná képzelni, hogy a kódot egy másik platformra hordozza anélkül, hogy nagyrészt átírná? A TeX és a
troff
gyakorlatilag bármely rendszerbe portálva történt, kevés változtatással, tehát alkalmazások, bár azok az eszközlánc alja felé helyezkednek el, amelyet az emberek általában használnak. Az a fájlrendszer, amelybe a TeX írja a kimenetét, pl. Az UFS vagy a VFAT határeset. Lehet portozni egy fájlrendszert egy másik operációs rendszerbe, ha az teljesen fantasztikus volt, de általában az emberek csak félelmetes ötleteket vesznek át, és saját fájlrendszert írnak saját operációs rendszerükhöz. Ez a fájlrendszer-szoftvert teszi lehetővé. - A funkcionalitás a kernelben vagy külön bináris fájlokban valósul meg? (A fájlrendszerek itt is középutat foglalnak el. Sok fájlrendszer sok része valójában kernelkód, de soknak jelentős része van a felhasználói térben.) A grafikus megjelenítő illesztőprogramok elvileg dugaszolható külső komponensek lehetnek, de gyakran megvalósításra kerülnek a kernelben, vagy legalábbis kiváltságos közvetlen hozzáféréssel rendelkezik a kernelhez (vagy akár a hardverhez). Ez rendszerek programozása lenne. Másrészt a számítógépes játékok, amelyek a grafikus kijelzőt használják, alkalmazások.
Kérdéseire az Android operációs rendszer megírása mindenképpen rendszerprogramozás volt. A Windows API hívásokat használó program írása alkalmazásprogramozás. Nem olyan hordozható, mint ha olyan platformokon átívelő könyvtárakat használna, mint az SDL vagy az OpenGL, de elvileg hordozható, harmadik féltől származó kód, és a felhasználói térben fut. Egy érdekes gondolatkísérlet egy konzolalkalmazás, amely kiteszi a Linux kernel állapotát. Mindenképpen azt mondanám, hogy a rendszer programozásával jár, mivel sokat kell tudni a Linux felépítéséről (vegye figyelembe, hogy a “Linux” rendben csak a rendszermag, nem pedig a disztribúció) az íráshoz, és valószínűleg még a használatához is!
Válasz
Röviden: Olyan szoftver írása, amely kiterjeszti vagy javítja az operációs rendszer működését, mint például az illesztőprogramok, a rendszer segédprogramjai az operációs rendszerre ” vagy akár vadonatúj operációs rendszerek.
Leginkább a Memóriakezelést foglalja magában; I / O műveletek a szó legtágabb értelmében, például hálózatépítés, fájlhozzáférés és eszközkezelés; folyamatmenedzsment (többfeladatos kezelés, folyamatadminisztráció stb.); user < -> rendszer-interakciós módszerek (be és ki egyaránt) és a felhasználói adminisztráció. Alapvetően minden, ami az operációs rendszer része, amely nem egy alkalmazás, az a rendszer programozása.
Válasz
A Windows API közvetlen használata egy ponton egy általános módszer volt az alkalmazások írására a Windows számára. Tehát nem, ez nem rendszerprogramozás.
A rendszerprogramozás nem csak az operációs rendszerhez közel áll – ez valami alapvető a számítógépes rendszer alapvető működéséhez. Tehát az operációs rendszer írása a rendszer programozása. Videó-illesztőprogramok, fájlrendszer-illesztőprogramok, hálózati illesztőprogramok írása az operációs rendszer számára a rendszer programozása. A fordító írása a nyelv / chipset egy adott kombinációjához a rendszer programozása.
Válasz
Általában “alacsony szintű dolgokra utal, amelyekről nem technikai végfelhasználók nem tudnak, vagy nem tudnak nagyon egyértelműen, hogy használják vagy mit csinálnak. “
Néhány példa, amelyet gyakran rendszerprogramozásnak tekintenének:
- operációs rendszerek és illesztőprogramok
- fordítók
- emulátorok an d virtualizáció
-
disztribúció létrehozása, azaz userland képek létrehozása.
Ez általában magában foglalja a C szabványos könyvtár, az init rendszer és az alapvető userland komponensek, például egy shell kiválasztását.
A rendszerek programozása gyakran alacsonyabb fordított szintű nyelveken történik automatikus szemétszedés nélkül, mint például a C vagy az assembly, és a POSIX C interfészek .
Kezeléssel tartom az oktatóanyagot, amely több rendszerprogramozási témát is lefed itt .
Válasz
Ennek meghatározásakor a technikai részletekből teljesen eltekintek. Ezután egyszerűvé válik.
Az alkalmazás lehetővé teszi a felhasználó számára, hogy valami hasznosat csináljon valamilyen technológiával. Tehát az alkalmazás programozása arra irányul, hogy szolgáltatásokat biztosítson egy felhasználó számára, közvetlenül.
A rendszer programozása viszont megalapozná az alkalmazás programozását. A szolgáltatásokat az alkalmazás programozójának juttatja el, nem pedig a felhasználóhoz.
Ez a definíció megmarad, de perspektíva, kontextus és szerepek kérdése. Számítógépes programozó számára a programozási eszközök alkalmazások. A végfelhasználó számára értelmetlenek, csak nincsenek képekben.
Válasz
Röviden: A rendszer programozása a az alkalmazás programozása az, hogy az SP kezeli az operációs rendszer szoftvert a hardver erőforrásokkal való együttműködéshez, az AP pedig a végfelhasználók tevékenységét.
Megjegyzések
- ez nem ‘ nem kínál semmi lényegeset az előző 4 válaszban elhangzott és elmagyarázott pontok felett