Кіріспе

GNU кодтау стандарттары – GNU жүйесінде үйлесімді жұмыс істейтін бағдарламаларды жазу үшін жасалған ережелер мен ұсынымдар жиынтығы. GNU кодтау стандарттарын Ричард Столлман және басқа GNU жобасының еріктілері жасаған. Бұл стандарттар құжаты GNU жобасының бөлігі болып табылады және GNU веб-сайтынан алуға болады. Ол негізінен GNU үшін C тілінде еркін бағдарламалық құралдарды жазуға арналған, бірақ оның көп бөлігін кеңінен қолдануға болады. Атап айтқанда, GNU жобасы өз үлескерлерін бағдарламалары C тілінде жазылған болса да, әрқашан осы стандарттарды сақтауға шақырады.

Файлдар

Стандарттар барлық бағдарламалардың /usr және /etc тек оқу режимінде орнатылғанда жұмыс істей алуын талап етеді. Сондықтан, ішкі мақсаттар үшін өзгертілетін файлдар (лог файлдары, құлып файлдары, уақытша файлдар және т.б.) /usr немесе /etc каталогында сақталмауы керек. /etc каталогында жүйелік конфигурация файлдарын жаңартуға арналған бағдарламалар үшін ерекшелік жасалады. Сонымен қатар, егер пайдаланушы бір каталогтағы файлды өзгертуді тікелей сұраса, сол каталогта файлдарды сақтауға рұқсат етіледі.

Көшіруге қабілеттілік

GNU кодтау стандарттары портативтілік мәселесін былай анықтайды: Unix әлемінде портативтілік – «Unix жүйелері арасында» дегенді білдіреді; GNU бағдарламасында мұндай портативтілік қажет, бірақ аса маңызды емес. Стандартқа сәйкес, портативтілік мәселелері шектеулі, себебі GNU бағдарламалары бір компилятормен – GNU C компиляторымен құрастырылып, тек бір жүйеде, яғни GNU жүйесінде жұмыс істеу үшін жасалған. Дегенмен, портативтілік проблемасының бір түрі бар, ол – стандарттың бағдарламаның әртүрлі CPU түрлерінде жұмыс істеуін талап ететіні. Стандартта GNU 16 биттік жүйелерді қолдамайтыны және қолдамайтыны айтылған, бірақ 32 және 64 биттік жүйелердің барлығын қолдау – міндетті талап.

Сын

GNU кодтау стандарттары негізінен GNU жобаларында қолданылады, бірақ олардың қолданылуы тек GNU жобаларымен ғана шектелмейді. Linux ядросы ядролық код үшін осы стильді қатаң түрде ұсынбайды және стиль туралы теріс пікір білдіреді: "Алдымен, GNU кодтау стандарттарының көшірмесін басып шығарып, оқымауға кеңес беремін. Оларды өртеңіз, бұл үлкен символдық әрекет болады". Стив Макконнелл өзінің "Код толық" кітабында да осы стильді қолдануға қарсы кеңес береді; ол осы стильді қолданған код мысалын "Кодтау қорқынышы" белгісімен көрсетеді, бұл ерекше қауіпті кодты білдіреді және жақшалар үшін қосымша көшіру деңгейінің қажеттілігі оқуды қиындатады деп мәлімдейді.