Linux ve zkratce:
"Windows, Unix, and "classic" MacOS all use different conventions for indicating the end of a line of text. Windows does things correctly: it uses a pair of characters, the carriage return (CR), followed by the line feed (LF). Two characters are needed because they do different things: the CR moves the print head to the start of a line; the LF advances the paper by one line. Separating these is valuable, as it allows for effects such as underlining to be emulated: first print the text to be underlined, then issue a CR, and then print underscore characters.
Unix, however, uses a bare line feed to denote that a new line should be started. Classic MacOS (though not modern macOS) uses a bare carriage return for the same purpose. Given the meaning behind the CR and LF characters, these operating systems are both obviously wrong, but sometimes wrongness is allowed to prevail and persist."
ZDROJ: https://arstechnica.com/gadgets/2018/05/notepad-gets-a-major-upgrade-now-does-unix-line-endings/
Hmm... Super, ale to že něco vyžaduje tiskárna neznamená, že kvuli tomu musím doplňovat nějaké znaky do textu. To je skoro to samé, jako kdyby tiskárna vyžadovala za každým tisknutelným znakem napsáno PRINT, jen si představte implementaci poznámkového bloku ve WPRINTiPRINTnPRINTdPRINToPRINTwPRINTsPRINT... To má řešit driver tiskárny ;)
Mechanickej psaci stroj mel paku na posuv valce a jednim tahem se udelal jak CR tak LF.
Ano, ale stroj také umožňoval nastavit řádkování (1, 1,5 nebo 2). Mnohé stroje uměly i řádkování 0, tj. páka sloužila pouze jako CR, bez LF. Pokud jste chtěl CR jen mimořádně, tak se válec posunul ručně (bez užití páky). Pokud jste chtěl jen LF, užil se otočný ovladač (kolečko :)) na straně vozíku.
CR a LF byly tradičně oddělené příkazy. Maticové tiskárny uměly horizontální posun vpřed i zpět (CR), ale vertikální jen vpřed (LF).
Na tehdejší dobu byla volba CR LF od Microsoftu poměrně logická, ale docela brzy se přežila.
Mechanický stroj to naopak vyžadoval. Pokud jste jen stiskl páku, tak jste udělal "line feed" a jen se vám posunul papír nahoru. Pokud jste chtěl jen "carriage return" tak jste zatlačil na kolečko ručního posuvu papíru a celý vozík odtlačil zpět doleva. Pokud jste chtěl udělat oboje najednou, tak jste zatlačil na páku - ta nejprve posunula papír a když byla na doraz, tak jste začal tlačit vozík. Pro člověka sice jeden pohyb, ale pro psací stroj to byly pohyby dva, byť navazující.
Zde je třeba se lemplů z Microsoftu zastat - řešení Microsoftu považuju za správné, protože dělá přesně to, co ony 2 řídicí znaky popisují, přičemž dodržuje kontinuitu z minula. Zda je či není zaimplementováno použití pouze např. CR s přepisem řádku nebo LF, je nepodstatné. Klidně by bylo možno přidat řídicí znak „begin of new line“, ale nic by se tím nezískalo.
Takže z mého pohledu to má Microsoft čistě technicky v pořádku, Unix a Apple chybně.
Dejte prosím mínus, a to i v případě, že s názorem nesouhlasíte. Děkuji.
To sice jo, ale proč to má Unix špatně? Vždyť už ZX Spectrum to mělo správně a konec řádky byl znak 13!
A teď bez ironie: oni si to autoři OS i terminálů dělali dost po svém. CR/LF jsou ještě fajn, ale podívejte se, jak si třebas konec řádku vymysleli pánové ve VMS. To bylo teprve žůžo!
Navíc tohle není vynález Microsoftu. CR+LF je tam proto, že DOS vycházel z CP/M, které to takhle mělo odjakživa (tedy od roku 1974).