diff options
Diffstat (limited to 'fc')
| -rw-r--r-- | fc/AND_ANSI_Labelled.pdf | bin | 0 -> 4791 bytes | |||
| -rw-r--r-- | fc/AND_ANSI_Labelled.svg | 32 | ||||
| -rw-r--r-- | fc/NAND_ANSI_Labelled.pdf | bin | 0 -> 4858 bytes | |||
| -rw-r--r-- | fc/NAND_ANSI_Labelled.svg | 33 | ||||
| -rw-r--r-- | fc/NOR_ANSI_Labelled.pdf | bin | 0 -> 4956 bytes | |||
| -rw-r--r-- | fc/NOR_ANSI_Labelled.svg | 36 | ||||
| -rw-r--r-- | fc/Not-gate-en.pdf | bin | 0 -> 4925 bytes | |||
| -rw-r--r-- | fc/Not-gate-en.svg | 20 | ||||
| -rw-r--r-- | fc/OR_ANSI_Labelled.pdf | bin | 0 -> 4896 bytes | |||
| -rw-r--r-- | fc/OR_ANSI_Labelled.svg | 35 | ||||
| -rw-r--r-- | fc/XOR_ANSI.pdf | bin | 0 -> 1353 bytes | |||
| -rw-r--r-- | fc/XOR_ANSI.svg | 33 | ||||
| -rw-r--r-- | fc/Xnor-gate-en.pdf | bin | 0 -> 5225 bytes | |||
| -rw-r--r-- | fc/Xnor-gate-en.svg | 23 | ||||
| -rw-r--r-- | fc/buses.png | bin | 0 -> 120907 bytes | |||
| -rw-r--r-- | fc/image.0PXO9Y.png | bin | 0 -> 33260 bytes | |||
| -rw-r--r-- | fc/image.RAWR9Y.png | bin | 0 -> 29844 bytes | |||
| -rw-r--r-- | fc/image.TZVI9Y.png | bin | 0 -> 831461 bytes | |||
| -rw-r--r-- | fc/image.V5MB9Y.png | bin | 0 -> 29352 bytes | |||
| -rw-r--r-- | fc/image.Y3EN9Y.png | bin | 0 -> 71809 bytes | |||
| -rw-r--r-- | fc/n.lyx | 228 | ||||
| -rw-r--r-- | fc/n1.lyx | 763 | ||||
| -rw-r--r-- | fc/n2.lyx | 979 | ||||
| -rw-r--r-- | fc/n3.lyx | 1257 | ||||
| -rw-r--r-- | fc/n4.lyx | 2821 | ||||
| -rw-r--r-- | fc/n5.lyx | 1515 | ||||
| -rw-r--r-- | fc/n6.lyx | 1436 |
27 files changed, 9211 insertions, 0 deletions
diff --git a/fc/AND_ANSI_Labelled.pdf b/fc/AND_ANSI_Labelled.pdf Binary files differnew file mode 100644 index 0000000..2cc4e43 --- /dev/null +++ b/fc/AND_ANSI_Labelled.pdf diff --git a/fc/AND_ANSI_Labelled.svg b/fc/AND_ANSI_Labelled.svg new file mode 100644 index 0000000..ee294dc --- /dev/null +++ b/fc/AND_ANSI_Labelled.svg @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="120" height="50" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="AND ANSI Labelled.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs id="defs4"> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 15 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="50 : 15 : 1" inkscape:persp3d-origin="25 : 10 : 1" id="perspective2714"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="1 : 0.5 : 1" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" id="perspective2806"/> + <inkscape:perspective id="perspective2819" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 526.18109 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective id="perspective2777" inkscape:persp3d-origin="75 : 40 : 1" inkscape:vp_z="150 : 60 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 60 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective id="perspective3275" inkscape:persp3d-origin="50 : 33.333333 : 1" inkscape:vp_z="100 : 50 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 50 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective id="perspective5533" inkscape:persp3d-origin="32 : 21.333333 : 1" inkscape:vp_z="64 : 32 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 32 : 1" sodipodi:type="inkscape:persp3d"/> + </defs> + <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="5.6568542" inkscape:cx="42.125093" inkscape:cy="21.114818" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:grid-bbox="true" inkscape:grid-points="true" gridtolerance="10000" inkscape:window-width="1399" inkscape:window-height="874" inkscape:window-x="33" inkscape:window-y="0" inkscape:snap-bbox="true"> + <inkscape:grid id="GridFromPre046Settings" type="xygrid" originx="0px" originy="0px" spacingx="1px" spacingy="1px" color="#0000ff" empcolor="#0000ff" opacity="0.2" empopacity="0.4" empspacing="5" visible="true" enabled="true"/> + </sodipodi:namedview> + <metadata id="metadata7"> + <rdf:RDF> + <cc:Work rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> + </cc:Work> + </rdf:RDF> + </metadata> + <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1"> + <path style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 80,25 C 100,25 105,25 105,25" id="path3059" sodipodi:nodetypes="cc"/> + <path style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 41,15 L 15,15" id="path3061"/> + <path style="fill:none;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 42,35 L 15,35" id="path3944"/> + <path style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans" d="M 40,5 L 40,6.4285714 L 40,43.571429 L 40,45 L 41.428571,45 L 60.47619,45 C 71.744098,45 80.47619,35.999955 80.47619,25 C 80.47619,14.000045 71.744099,5.0000002 60.47619,5 C 60.47619,5 60.47619,5 41.428571,5 L 40,5 z M 42.857143,7.8571429 C 50.834264,7.8571429 55.918368,7.8571429 58.095238,7.8571429 C 59.285714,7.8571429 59.880952,7.8571429 60.178571,7.8571429 C 60.327381,7.8571429 60.409227,7.8571429 60.446429,7.8571429 C 60.465029,7.8571429 60.471543,7.8571429 60.47619,7.8571429 C 70.236853,7.857143 77.142857,15.497098 77.142857,25 C 77.142857,34.502902 69.760662,42.142857 60,42.142857 L 42.857143,42.142857 L 42.857143,7.8571429 z" id="path2884" sodipodi:nodetypes="ccccccsccccsssssccc"/> + <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="11.460938" y="20" id="text6866" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6868" x="11.460938" y="20">A</tspan></text> + <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="11.48828" y="40" id="text6870" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6872" x="11.48828" y="40">B</tspan></text> + <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="118.41016" y="30" id="text6878" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6880" x="118.41016" y="30">Q</tspan></text> + </g> +</svg>
\ No newline at end of file diff --git a/fc/NAND_ANSI_Labelled.pdf b/fc/NAND_ANSI_Labelled.pdf Binary files differnew file mode 100644 index 0000000..91daf42 --- /dev/null +++ b/fc/NAND_ANSI_Labelled.pdf diff --git a/fc/NAND_ANSI_Labelled.svg b/fc/NAND_ANSI_Labelled.svg new file mode 100644 index 0000000..7f97027 --- /dev/null +++ b/fc/NAND_ANSI_Labelled.svg @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="120" height="50" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="NAND ANSI Labelled.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs id="defs4"> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 15 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="50 : 15 : 1" inkscape:persp3d-origin="25 : 10 : 1" id="perspective2714"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="1 : 0.5 : 1" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" id="perspective2806"/> + <inkscape:perspective id="perspective2819" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 526.18109 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective id="perspective2777" inkscape:persp3d-origin="75 : 40 : 1" inkscape:vp_z="150 : 60 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 60 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective id="perspective3275" inkscape:persp3d-origin="50 : 33.333333 : 1" inkscape:vp_z="100 : 50 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 50 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective id="perspective5533" inkscape:persp3d-origin="32 : 21.333333 : 1" inkscape:vp_z="64 : 32 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 32 : 1" sodipodi:type="inkscape:persp3d"/> + </defs> + <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="5.6568543" inkscape:cx="80.963696" inkscape:cy="11.63223" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:grid-bbox="true" inkscape:grid-points="true" gridtolerance="10000" inkscape:window-width="1399" inkscape:window-height="874" inkscape:window-x="33" inkscape:window-y="0" inkscape:snap-bbox="true"> + <inkscape:grid id="GridFromPre046Settings" type="xygrid" originx="0px" originy="0px" spacingx="1px" spacingy="1px" color="#0000ff" empcolor="#0000ff" opacity="0.2" empopacity="0.4" empspacing="5" visible="true" enabled="true"/> + </sodipodi:namedview> + <metadata id="metadata7"> + <rdf:RDF> + <cc:Work rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> + </cc:Work> + </rdf:RDF> + </metadata> + <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1"> + <path style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 88.11111,25 C 101.62222,25 105,25 105,25" id="path3059" sodipodi:nodetypes="cc"/> + <path style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 41,15 L 15,15" id="path3061"/> + <path style="fill:none;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 42,35 L 15,35" id="path3944"/> + <path style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans" d="M 40,5 L 40,6.4285714 L 40,43.571429 L 40,45 L 41.428571,45 L 60.47619,45 C 71.744098,45 80.47619,35.999955 80.47619,25 C 80.47619,14.000045 71.744099,5.0000002 60.47619,5 C 60.47619,5 60.47619,5 41.428571,5 L 40,5 z M 42.857143,7.8571429 C 50.834264,7.8571429 55.918368,7.8571429 58.095238,7.8571429 C 59.285714,7.8571429 59.880952,7.8571429 60.178571,7.8571429 C 60.327381,7.8571429 60.409227,7.8571429 60.446429,7.8571429 C 60.465029,7.8571429 60.471543,7.8571429 60.47619,7.8571429 C 70.236853,7.857143 77.142857,15.497098 77.142857,25 C 77.142857,34.502902 69.760662,42.142857 60,42.142857 L 42.857143,42.142857 L 42.857143,7.8571429 z" id="path2884" sodipodi:nodetypes="ccccccsccccsssssccc"/> + <path sodipodi:type="arc" style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linejoin:miter;marker:none;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="path4008" sodipodi:cx="75" sodipodi:cy="25" sodipodi:rx="4" sodipodi:ry="4" d="M 79,25 A 4,4 0 1 1 71,25 A 4,4 0 1 1 79,25 z" transform="translate(9,0)"/> + <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="11.460938" y="20" id="text6866" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6868" x="11.460938" y="20">A</tspan></text> + <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="11.48828" y="40" id="text6870" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6872" x="11.48828" y="40">B</tspan></text> + <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="118.41015" y="30" id="text6878" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6880" x="118.41015" y="30">Q</tspan></text> + </g> +</svg>
\ No newline at end of file diff --git a/fc/NOR_ANSI_Labelled.pdf b/fc/NOR_ANSI_Labelled.pdf Binary files differnew file mode 100644 index 0000000..a83d273 --- /dev/null +++ b/fc/NOR_ANSI_Labelled.pdf diff --git a/fc/NOR_ANSI_Labelled.svg b/fc/NOR_ANSI_Labelled.svg new file mode 100644 index 0000000..0fd18f9 --- /dev/null +++ b/fc/NOR_ANSI_Labelled.svg @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="120" height="50" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="NOR ANSI Labelled.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs id="defs4"> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 15 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="50 : 15 : 1" inkscape:persp3d-origin="25 : 10 : 1" id="perspective2714"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="1 : 0.5 : 1" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" id="perspective2806"/> + <inkscape:perspective id="perspective2819" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 526.18109 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective id="perspective2777" inkscape:persp3d-origin="75 : 40 : 1" inkscape:vp_z="150 : 60 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 60 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective id="perspective3275" inkscape:persp3d-origin="50 : 33.333333 : 1" inkscape:vp_z="100 : 50 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 50 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective id="perspective5533" inkscape:persp3d-origin="32 : 21.333333 : 1" inkscape:vp_z="64 : 32 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 32 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective id="perspective2557" inkscape:persp3d-origin="25 : 16.666667 : 1" inkscape:vp_z="50 : 25 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 25 : 1" sodipodi:type="inkscape:persp3d"/> + </defs> + <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="5.6568543" inkscape:cx="68.340917" inkscape:cy="10.321133" inkscape:document-units="px" inkscape:current-layer="g2560" showgrid="true" inkscape:grid-bbox="true" inkscape:grid-points="true" gridtolerance="10000" inkscape:window-width="1399" inkscape:window-height="874" inkscape:window-x="33" inkscape:window-y="0" inkscape:snap-bbox="true"> + <inkscape:grid id="GridFromPre046Settings" type="xygrid" originx="0px" originy="0px" spacingx="1px" spacingy="1px" color="#0000ff" empcolor="#0000ff" opacity="0.2" empopacity="0.4" empspacing="5" visible="true" enabled="true"/> + </sodipodi:namedview> + <metadata id="metadata7"> + <rdf:RDF> + <cc:Work rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> + </cc:Work> + </rdf:RDF> + </metadata> + <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1"> + <path style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 88.203221,25 C 109.29453,25 105.07627,25 105.07627,25" id="path3059" sodipodi:nodetypes="cc"/> + <path style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 41.076272,15 L 15.076272,15" id="path3061"/> + <path style="fill:none;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 42.076272,35 L 15.076272,35" id="path3944"/> + <g id="g2560" inkscape:label="Layer 1" transform="translate(26.5,-39.5)"> + <path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 7.6700216,44.5 L 9.6700216,46.9375 C 9.6700216,46.9375 15.326272,53.937549 15.326272,64.5 C 15.326272,75.062451 9.6700216,82.0625 9.6700216,82.0625 L 7.6700216,84.5 L 10.826272,84.5 L 24.826272,84.5 C 27.234348,84.500001 32.515971,84.524514 38.451272,82.09375 C 43.952029,79.840951 50.024779,75.456504 54.984922,67.238862 L 53.826272,64.5 L 54.987161,61.767184 C 44.664037,44.700133 29.409159,44.5 24.826272,44.5 L 10.826272,44.5 L 7.6700216,44.5 z M 13.545022,47.5 L 24.826272,47.5 C 29.510445,47.5 43.113122,47.369793 52.795022,64.5 C 48.028236,72.929075 42.273741,77.18391 37.076272,79.3125 C 31.715611,81.507924 27.234347,81.500001 24.826272,81.5 L 13.576272,81.5 C 15.44986,78.391566 18.326272,72.45065 18.326272,64.5 C 18.326272,56.526646 15.41774,50.599815 13.545022,47.5 z" id="path4973" sodipodi:nodetypes="ccsccccscccccccccsccsc"/> + <path sodipodi:type="arc" style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linejoin:miter;marker:none;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="path2604" sodipodi:cx="75" sodipodi:cy="25" sodipodi:rx="4" sodipodi:ry="4" d="M 79,25 A 4,4 0 1 1 71,25 A 4,4 0 1 1 79,25 z" transform="translate(-17.423728,39.5)"/> + <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="-15.039063" y="59.5" id="text6866" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6868" x="-15.039063" y="59.5">A</tspan></text> + <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="-15.01172" y="79.5" id="text6870" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6872" x="-15.01172" y="79.5">B</tspan></text> + <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="91.910164" y="69.5" id="text6878" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6880" x="91.910164" y="69.5">Q</tspan></text> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/fc/Not-gate-en.pdf b/fc/Not-gate-en.pdf Binary files differnew file mode 100644 index 0000000..5f6d108 --- /dev/null +++ b/fc/Not-gate-en.pdf diff --git a/fc/Not-gate-en.svg b/fc/Not-gate-en.svg new file mode 100644 index 0000000..daf957b --- /dev/null +++ b/fc/Not-gate-en.svg @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" id="svg2" sodipodi:version="0.32" inkscape:version="0.43" width="400pt" height="144pt" sodipodi:docbase="D:\wiki_svg" sodipodi:docname="Not-gate-en.png.svg" version="1.0"> + <metadata id="metadata7"> + <rdf:RDF> + <cc:Work rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> + </cc:Work> + </rdf:RDF> + </metadata> + <defs id="defs5"/> + <sodipodi:namedview inkscape:window-height="652" inkscape:window-width="756" inkscape:pageshadow="2" inkscape:pageopacity="0.0" borderopacity="1.0" bordercolor="#666666" pagecolor="#ffffff" id="base" inkscape:showpageshadow="false" borderlayer="top" inkscape:zoom="0.70710678" inkscape:cx="299.78322" inkscape:cy="81.877528" inkscape:window-x="66" inkscape:window-y="66" inkscape:current-layer="svg2"/> + <text xml:space="preserve" style="font-size:72px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Verdana" x="9" y="116.17383" id="text1308" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan1310" x="9" y="116.17383">A</tspan></text> + <path style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:7.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 72,90 L 185,90" id="path1316"/> + <use x="0" y="0" xlink:href="#path1316" id="use2208" transform="translate(196.5757,0)" width="500" height="180"/> + <path style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:7.49999857;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" d="M 148,10.750011 L 261.2807,89.999989 L 148,169.24995 L 148,10.750011 z " id="rect2193" sodipodi:nodetypes="cccc"/> + <text xml:space="preserve" style="font-size:56px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Verdana" x="395.41205" y="109.23633" id="text2210" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan2212" x="395.41205" y="109.23633">out</tspan></text> + <path sodipodi:type="arc" style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:7.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path2247" sodipodi:cx="285.3176" sodipodi:cy="89.843887" sodipodi:rx="20.152544" sodipodi:ry="20.152544" d="M 305.47014 89.843887 A 20.152544 20.152544 0 1 1 265.16505,89.843887 A 20.152544 20.152544 0 1 1 305.47014 89.843887 z" transform="translate(-2.828424,0.156093)"/> +</svg>
\ No newline at end of file diff --git a/fc/OR_ANSI_Labelled.pdf b/fc/OR_ANSI_Labelled.pdf Binary files differnew file mode 100644 index 0000000..77fe2df --- /dev/null +++ b/fc/OR_ANSI_Labelled.pdf diff --git a/fc/OR_ANSI_Labelled.svg b/fc/OR_ANSI_Labelled.svg new file mode 100644 index 0000000..6275ef9 --- /dev/null +++ b/fc/OR_ANSI_Labelled.svg @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="120" height="50" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="OR ANSI Labelled.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs id="defs4"> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 15 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="50 : 15 : 1" inkscape:persp3d-origin="25 : 10 : 1" id="perspective2714"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="1 : 0.5 : 1" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" id="perspective2806"/> + <inkscape:perspective id="perspective2819" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 526.18109 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective id="perspective2777" inkscape:persp3d-origin="75 : 40 : 1" inkscape:vp_z="150 : 60 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 60 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective id="perspective3275" inkscape:persp3d-origin="50 : 33.333333 : 1" inkscape:vp_z="100 : 50 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 50 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective id="perspective5533" inkscape:persp3d-origin="32 : 21.333333 : 1" inkscape:vp_z="64 : 32 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 32 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective id="perspective2557" inkscape:persp3d-origin="25 : 16.666667 : 1" inkscape:vp_z="50 : 25 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 25 : 1" sodipodi:type="inkscape:persp3d"/> + </defs> + <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="5.6568542" inkscape:cx="91.01458" inkscape:cy="-4.8292379" inkscape:document-units="px" inkscape:current-layer="g2560" showgrid="true" inkscape:grid-bbox="true" inkscape:grid-points="true" gridtolerance="10000" inkscape:window-width="1399" inkscape:window-height="874" inkscape:window-x="33" inkscape:window-y="0" inkscape:snap-bbox="true"> + <inkscape:grid id="GridFromPre046Settings" type="xygrid" originx="0px" originy="0px" spacingx="1px" spacingy="1px" color="#0000ff" empcolor="#0000ff" opacity="0.2" empopacity="0.4" empspacing="5" visible="true" enabled="true"/> + </sodipodi:namedview> + <metadata id="metadata7"> + <rdf:RDF> + <cc:Work rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> + </cc:Work> + </rdf:RDF> + </metadata> + <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1"> + <path style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 80.03125,25 C 100.03125,25 105.03125,25 105.03125,25" id="path3059" sodipodi:nodetypes="cc"/> + <path style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 41.03125,15 L 15.03125,15" id="path3061"/> + <path style="fill:none;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 42.03125,35 L 15.03125,35" id="path3944"/> + <g id="g2560" inkscape:label="Layer 1" transform="translate(26.5,-39.5)"> + <path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 7.625,44.5 L 9.625,46.9375 C 9.625,46.9375 15.28125,53.937549 15.28125,64.5 C 15.28125,75.062451 9.625,82.0625 9.625,82.0625 L 7.625,84.5 L 10.78125,84.5 L 24.78125,84.5 C 27.189326,84.500001 32.470949,84.524514 38.40625,82.09375 C 44.341551,79.662986 50.942786,74.750484 56.09375,65.21875 L 54.78125,64.5 L 56.09375,63.78125 C 45.790637,44.71559 29.537824,44.5 24.78125,44.5 L 10.78125,44.5 L 7.625,44.5 z M 13.5,47.5 L 24.78125,47.5 C 29.465423,47.5 43.0681,47.369793 52.75,64.5 C 47.983214,72.929075 42.228719,77.18391 37.03125,79.3125 C 31.670589,81.507924 27.189325,81.500001 24.78125,81.5 L 13.53125,81.5 C 15.404838,78.391566 18.28125,72.45065 18.28125,64.5 C 18.28125,56.526646 15.372719,50.599815 13.5,47.5 z" id="path4973" sodipodi:nodetypes="ccsccccscccccccccsccsc"/> + <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="-15.039063" y="59.706055" id="text6866" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6868" x="-15.039063" y="59.706055">A</tspan></text> + <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="-15.011719" y="79.706055" id="text6870" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6872" x="-15.011719" y="79.706055">B</tspan></text> + <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="91.910156" y="69.706055" id="text6878" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6880" x="91.910156" y="69.706055">Q</tspan></text> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/fc/XOR_ANSI.pdf b/fc/XOR_ANSI.pdf Binary files differnew file mode 100644 index 0000000..6670dba --- /dev/null +++ b/fc/XOR_ANSI.pdf diff --git a/fc/XOR_ANSI.svg b/fc/XOR_ANSI.svg new file mode 100644 index 0000000..6f14e5b --- /dev/null +++ b/fc/XOR_ANSI.svg @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="100" height="50" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="XOR ANSI.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs id="defs4"> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 15 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="50 : 15 : 1" inkscape:persp3d-origin="25 : 10 : 1" id="perspective2714"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="1 : 0.5 : 1" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" id="perspective2806"/> + <inkscape:perspective id="perspective2819" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 526.18109 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective id="perspective2777" inkscape:persp3d-origin="75 : 40 : 1" inkscape:vp_z="150 : 60 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 60 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective id="perspective3275" inkscape:persp3d-origin="50 : 33.333333 : 1" inkscape:vp_z="100 : 50 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 50 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective id="perspective5533" inkscape:persp3d-origin="32 : 21.333333 : 1" inkscape:vp_z="64 : 32 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 32 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective id="perspective2557" inkscape:persp3d-origin="25 : 16.666667 : 1" inkscape:vp_z="50 : 25 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 25 : 1" sodipodi:type="inkscape:persp3d"/> + </defs> + <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="5.6568542" inkscape:cx="25.938116" inkscape:cy="17.23005" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:grid-bbox="true" inkscape:grid-points="true" gridtolerance="10000" inkscape:window-width="1399" inkscape:window-height="874" inkscape:window-x="33" inkscape:window-y="0" inkscape:snap-bbox="true"> + <inkscape:grid id="GridFromPre046Settings" type="xygrid" originx="0px" originy="0px" spacingx="1px" spacingy="1px" color="#0000ff" empcolor="#0000ff" opacity="0.2" empopacity="0.4" empspacing="5" visible="true" enabled="true"/> + </sodipodi:namedview> + <metadata id="metadata7"> + <rdf:RDF> + <cc:Work rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> + </cc:Work> + </rdf:RDF> + </metadata> + <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1"> + <path style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 70,25 c 20,0 25,0 25,0" id="path3059" sodipodi:nodetypes="cc"/> + <path style="fill:none;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 30.385717,15 L 4.9999998,15" id="path3061"/> + <path style="fill:none;stroke:#000000;stroke-width:1.99999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 31.362091,35 L 4.9999998,35" id="path3944"/> + <g id="g2560" inkscape:label="Layer 1" transform="translate(26.5,-39.5)"> + <path id="path3516" style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M -2.25,81.500005 C -3.847374,84.144405 -4.5,84.500005 -4.5,84.500005 L -8.15625,84.500005 L -6.15625,82.062505 C -6.15625,82.062505 -0.5,75.062451 -0.5,64.5 C -0.5,53.937549 -6.15625,46.9375 -6.15625,46.9375 L -8.15625,44.5 L -4.5,44.5 C -3.71875,45.4375 -3.078125,46.15625 -2.28125,47.5 C -0.408531,50.599815 2.5,56.526646 2.5,64.5 C 2.5,72.45065 -0.396697,78.379425 -2.25,81.500005 z" sodipodi:nodetypes="ccccsccccsc"/> + <path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M -2.40625,44.5 L -0.40625,46.9375 C -0.40625,46.9375 5.25,53.937549 5.25,64.5 C 5.25,75.062451 -0.40625,82.0625 -0.40625,82.0625 L -2.40625,84.5 L 0.75,84.5 L 14.75,84.5 C 17.158076,84.500001 22.439699,84.524514 28.375,82.09375 C 34.310301,79.662986 40.911536,74.750484 46.0625,65.21875 L 44.75,64.5 L 46.0625,63.78125 C 35.759387,44.71559 19.506574,44.5 14.75,44.5 L 0.75,44.5 L -2.40625,44.5 z M 3.46875,47.5 L 14.75,47.5 C 19.434173,47.5 33.03685,47.369793 42.71875,64.5 C 37.951964,72.929075 32.197469,77.18391 27,79.3125 C 21.639339,81.507924 17.158075,81.500001 14.75,81.5 L 3.5,81.5 C 5.3735884,78.391566 8.25,72.45065 8.25,64.5 C 8.25,56.526646 5.3414686,50.599815 3.46875,47.5 z" id="path4973" sodipodi:nodetypes="ccsccccscccccccccsccsc"/> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/fc/Xnor-gate-en.pdf b/fc/Xnor-gate-en.pdf Binary files differnew file mode 100644 index 0000000..a925fa5 --- /dev/null +++ b/fc/Xnor-gate-en.pdf diff --git a/fc/Xnor-gate-en.svg b/fc/Xnor-gate-en.svg new file mode 100644 index 0000000..b205563 --- /dev/null +++ b/fc/Xnor-gate-en.svg @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" id="svg2" sodipodi:version="0.32" inkscape:version="0.43" width="400pt" height="144pt" sodipodi:docbase="D:\wiki_svg" sodipodi:docname="Xnor-gate-en.svg" version="1.0"> + <metadata id="metadata7"> + <rdf:RDF> + <cc:Work rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> + </cc:Work> + </rdf:RDF> + </metadata> + <defs id="defs5"/> + <sodipodi:namedview inkscape:window-height="652" inkscape:window-width="756" inkscape:pageshadow="2" inkscape:pageopacity="0.0" borderopacity="1.0" bordercolor="#666666" pagecolor="#ffffff" id="base" inkscape:showpageshadow="false" borderlayer="top" inkscape:zoom="0.5" inkscape:cx="60.099843" inkscape:cy="188.54262" inkscape:window-x="80" inkscape:window-y="81" inkscape:current-layer="svg2"/> + <text xml:space="preserve" style="font-size:72px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Verdana" x="9" y="77.173828" id="text1308" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan1310" x="9" y="77.173828">A</tspan></text> + <text sodipodi:linespacing="125%" id="text1312" y="155.17383" x="9" style="font-size:72px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Verdana" xml:space="preserve"><tspan y="155.17383" x="9" id="tspan1314" sodipodi:role="line">B</tspan></text> + <path style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:7.5;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" d="M 72,51 L 185,51" id="path1316"/> + <use x="0" y="0" xlink:href="#path1316" id="use1318" transform="translate(0,78)" width="500" height="180"/> + <use x="0" y="0" xlink:href="#path1316" id="use2208" transform="translate(196.5757,39)" width="500" height="180"/> + <path id="rect2193" style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:7.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" d="M 135.67366,169.24997 C 135.54865,169.25544 173.11664,161.81425 173.11664,89.999999 C 173.11664,17.478772 135.6709,10.749695 135.67366,10.750027 C 196.16084,18.014053 235.55464,7.7267425 277.18432,90.000005 C 246.14327,162.74602 205.43421,166.19896 135.67366,169.24997 z " sodipodi:nodetypes="czscs"/> + <text xml:space="preserve" style="font-size:56px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Verdana" x="395.41205" y="109.23633" id="text2210" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan2212" x="395.41205" y="109.23633">out</tspan></text> + <path sodipodi:type="arc" style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:7.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path2247" sodipodi:cx="285.3176" sodipodi:cy="89.843887" sodipodi:rx="20.152544" sodipodi:ry="20.152544" d="M 305.47014 89.843887 A 20.152544 20.152544 0 1 1 265.16505,89.843887 A 20.152544 20.152544 0 1 1 305.47014 89.843887 z" transform="translate(12.64507,0.156113)"/> + <path id="path1315" style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:7.50000143;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" d="M 98.49408,167.34036 C 98.35715,167.3457 139.50626,160.08381 139.50626,90.000002 C 139.50626,19.226244 98.49105,12.659314 98.49408,12.659634" sodipodi:nodetypes="czs"/> +</svg>
\ No newline at end of file diff --git a/fc/buses.png b/fc/buses.png Binary files differnew file mode 100644 index 0000000..1df9561 --- /dev/null +++ b/fc/buses.png diff --git a/fc/image.0PXO9Y.png b/fc/image.0PXO9Y.png Binary files differnew file mode 100644 index 0000000..c3fc469 --- /dev/null +++ b/fc/image.0PXO9Y.png diff --git a/fc/image.RAWR9Y.png b/fc/image.RAWR9Y.png Binary files differnew file mode 100644 index 0000000..d7b6220 --- /dev/null +++ b/fc/image.RAWR9Y.png diff --git a/fc/image.TZVI9Y.png b/fc/image.TZVI9Y.png Binary files differnew file mode 100644 index 0000000..dcb1e69 --- /dev/null +++ b/fc/image.TZVI9Y.png diff --git a/fc/image.V5MB9Y.png b/fc/image.V5MB9Y.png Binary files differnew file mode 100644 index 0000000..c823128 --- /dev/null +++ b/fc/image.V5MB9Y.png diff --git a/fc/image.Y3EN9Y.png b/fc/image.Y3EN9Y.png Binary files differnew file mode 100644 index 0000000..752434d --- /dev/null +++ b/fc/image.Y3EN9Y.png diff --git a/fc/n.lyx b/fc/n.lyx new file mode 100644 index 0000000..5852747 --- /dev/null +++ b/fc/n.lyx @@ -0,0 +1,228 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize a5paper +\use_geometry true +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\leftmargin 0.2cm +\topmargin 0.7cm +\rightmargin 0.2cm +\bottommargin 0.7cm +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle empty +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Title +Fundamentos de Computadores +\end_layout + +\begin_layout Date +\begin_inset Note Note +status open + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +def +\backslash +cryear{2017} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "../license.lyx" + +\end_inset + + +\end_layout + +\begin_layout Standard +Bibliografía: +\end_layout + +\begin_layout Itemize +Diapositivas de Fundamentos de Computadores (Curso 2017–18). +\end_layout + +\begin_layout Itemize +Boletines de prácticas de Fundamentos de Computadores, Título de Grado en + Ingeniería Informática, Facultad de Informática, Universidad de Murcia + (Curso 2017–18). +\end_layout + +\begin_layout Chapter +Introducción +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n1.lyx" + +\end_inset + + +\end_layout + +\begin_layout Chapter +Representación de la información +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n2.lyx" + +\end_inset + + +\end_layout + +\begin_layout Chapter +Sistemas digitales: Circuitos combinacionales +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n3.lyx" + +\end_inset + + +\end_layout + +\begin_layout Chapter +Introducción a los sistemas operativos +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n4.lyx" + +\end_inset + + +\end_layout + +\begin_layout Chapter +Lenguajes del computador: alto nivel, ensamblador y máquina +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n5.lyx" + +\end_inset + + +\end_layout + +\begin_layout Chapter +Introducción a las redes de ordenadores +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n6.lyx" + +\end_inset + + +\end_layout + +\end_body +\end_document diff --git a/fc/n1.lyx b/fc/n1.lyx new file mode 100644 index 0000000..d912189 --- /dev/null +++ b/fc/n1.lyx @@ -0,0 +1,763 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style swiss +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard +La +\series bold +informática +\series default + es la ciencia que estudia el procesamiento automático de la información. + Su consolidación como ciencia se produce a partir de los años 40 con el + desarrollo de los +\series bold +computadores +\series default +, con los cuales esta se ha podido desarrollar. +\end_layout + +\begin_layout Standard +Un computador es una máquina que procesa información siguiendo las instrucciones + de un programa, y se comunica a través de los dispositivos de entrada y + de salida. + También dispone de dispositivos para almacenar información y procesarla. + Esta está expresada en forma binaria (0's y 1's). + Distinguimos: +\end_layout + +\begin_layout Itemize + +\series bold +Hardware: +\series default + Conjunto de componentes que integran la parte material de un computador, + incluyendo componentes eléctricos, electrónicos y mecánicos. +\end_layout + +\begin_layout Itemize + +\series bold +Software: +\series default + Conjunto de programas e instrucciones para ejecutar ciertas tareas en un + computador. + Es intangible, aunque se encuentren almacenados en hardware. +\end_layout + +\begin_layout Section +Hardware +\end_layout + +\begin_layout Standard +Tradicionalmente, los computadores siguen el +\series bold +esquema de Von Neumann +\series default +, que consiste en una unidad central de proceso (CPU), constituida por una + unidad de control (UC) y un camino de datos (CD); la memoria principal, + y los dispositivos de entrada y salida, incluyendo almacenamiento. +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename buses.png + width 100text% + +\end_inset + + +\end_layout + +\begin_layout Standard +Los +\series bold +buses +\series default + son un conjunto de hilos paralelos que conectan unidades, como se muestra + en la figura. + Cada hilo transmite 1 bit a la vez, y el +\series bold +ancho de bus +\series default + es el nº de hilos que tiene un bus. + En concreto: +\end_layout + +\begin_layout Itemize +El +\series bold +bus de direcciones +\series default + transmite la dirección en memoria, por lo que su ancho define la máxima + memoria instalable como +\begin_inset Formula $2^{n}$ +\end_inset + + bytes. +\end_layout + +\begin_layout Itemize +El +\series bold +bus de datos +\series default + transmite información, por lo que a mayor ancho, mayor cantidad de información + se puede transmitir en una sola operación. +\end_layout + +\begin_layout Standard +La +\series bold +memoria +\series default + está formada por un conjunto de celdas, normalmente de 1 byte, en la que + se guardan datos e instrucciones. + Cada celda tiene una +\series bold +dirección +\series default + única y correlativa. + Para leerla, la CPU +\begin_inset Quotes cld +\end_inset + +pone +\begin_inset Quotes crd +\end_inset + + la dirección en el bus de direcciones, activa el hilo de lectura en el + bus de control y la memoria +\begin_inset Quotes cld +\end_inset + +deja +\begin_inset Quotes crd +\end_inset + + el contenido de la(s) celda(s) en el bus de datos. + Para escribir, la CPU +\begin_inset Quotes cld +\end_inset + +pone +\begin_inset Quotes crd +\end_inset + + la dirección en el bus de direcciones, el dato en el bus de datos y activa + el hilo de escritura en el bus de control. +\end_layout + +\begin_layout Section +Software +\end_layout + +\begin_layout Standard +El +\series bold +sistema operativo +\series default + un programa que gestiona los recursos del computador. + Es el primer programa en ejecutarse (*), gestiona a todos los demás y actúa + de intermediario con el hardware. + Es un +\series bold +programa de sistema +\series default +, al igual que el compilador y el ensamblador. + Por contra, las +\series bold +aplicaciones +\series default + son programas orientados al usuario, como procesadores de texto, hojas + de cálculo, navegadores web, reproductores multimedia, etc. +\end_layout + +\begin_layout Standard +El +\series bold +firmware +\series default + es software de bajo nivel, almacenado de forma semipermanente. + En general, puede cambiarse, pero no tan fácilmente como el resto de software. +\end_layout + +\begin_layout Section +Internet +\end_layout + +\begin_layout Standard + +\series bold +Internet +\series default + es un conjunto descentralizado de redes de comunicación interconectadas + mediante protocolos estandarizados, de forma que las redes físicas que + las componen funcionan como una única red lógica mundial. + Existen muchos +\series bold +servicios +\series default + proporcionados a través de la red, como la Web, correo electrónico, transmisión + de archivos, chats, acceso remoto, etc. +\end_layout + +\begin_layout Section +Conceptos +\end_layout + +\begin_layout Standard +La unidad mínima de información es el +\series bold +bit +\series default +, que puede valer 0 o 1. + Se pueden almacenar como tensión alta o baja en un circuito, superficie + magnetizada en uno u otro sentido, superficie perforada, señal de alta + o baja frecuencia en un cable, presencia o no de señal luminosa en un cable + de fibra óptica, etc. + Generalmente se usan secuencias de bits: 1 +\series bold +byte +\series default + = 8 bits, codifica +\begin_inset Formula $2^{8}=256$ +\end_inset + + estados distintos. +\end_layout + +\begin_layout Standard +Múltiplos del byte: +\begin_inset Formula $\unit[1]{KB}\text{(kilobyte)}=\unit[2^{10}]{B}$ +\end_inset + +, +\begin_inset Formula $\unit[1]{MB}\text{(megabyte)}=\unit[2^{20}]{B}$ +\end_inset + +, +\begin_inset Formula $\unit[1]{GB}\text{(gigabyte)}=\unit[2^{30}]{B}$ +\end_inset + +, +\begin_inset Formula $\unit[1]{TB}\text{(terabyte)}=\unit[2^{40}]{B}$ +\end_inset + +, +\begin_inset Formula $\unit[1]{PB}\text{(petabyte)}=\unit[2^{50}]{B}$ +\end_inset + +, +\begin_inset Formula $\unit[1]{EB}\text{(exabyte)}=\unit[2^{60}]{B}$ +\end_inset + +. + Los prefijos también se aplican a bits. +\end_layout + +\begin_layout Standard +Las variables numéricas que ocupan más de un byte se pueden guardar en memoria + como: +\end_layout + +\begin_layout Itemize + +\series bold +\emph on +Little endian +\series default +\emph default +: El byte menos significativo está en la posición de memoria más baja. +\end_layout + +\begin_layout Itemize + +\series bold +\emph on +Big endian +\series default +\emph default +: En la posición más alta. +\end_layout + +\begin_layout Standard +\begin_inset Note Comment +status open + +\begin_layout Plain Layout +La terminología procede de una escena de Los Viajes de Gulliver en la que + dos personas discuten sobre cuál es el extremo correcto para romper un + huevo, si el grande ( +\emph on +big endian +\emph default +) o el pequeño ( +\emph on +little endian +\emph default +). +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +El +\series bold +tiempo de ejecución +\series default + o +\series bold +de respuesta +\series default + es lo que tarda el computador en realizar una tarea, incluyendo E/S, mientras + que el +\series bold +tiempo de CPU +\series default + se refiere solo al tiempo que tarda el procesador en realizar un cálculo, + y se calcula como: +\begin_inset Formula +\[ +{Tiempo}_{CPU}=\frac{{Instrucciones}_{APLICACIÓN}\cdot\frac{Ciclos(Media)}{Instrucción}}{Frecuencia\ procesador} +\] + +\end_inset + + +\end_layout + +\begin_layout Section +Historia +\end_layout + +\begin_layout Standard +En 1791-1871, Babbage intentó diseñar una máquina mecánica capaz de resolver + problemas matemáticos, la cual nunca fue terminada. + Podemos dividir la historia de la informática en varias generaciones de + ordenadores: +\end_layout + +\begin_layout Itemize + +\series bold +Primera generación (1943-62): +\series default + A principios de siglo, Fleming inventó la válvula de vacío, permitiendo + el desarrollo de la electrónica y los primeros ordenadores, de los que + destacamos: +\end_layout + +\begin_deeper +\begin_layout Itemize + +\series bold +Proyecto ENIAC (Eckert y Mauchly, 1943-46): +\series default + +\emph on +Electronic Numerical Integrator and Calculator +\emph default +: +\begin_inset Formula $30$ +\end_inset + + toneladas, +\begin_inset Formula $\unit[180]{m^{2}}$ +\end_inset + +, +\begin_inset Formula $18000$ +\end_inset + + válvulas de vacío, frecuencia +\begin_inset Formula $\unit[0.1]{MHz}$ +\end_inset + +, 20 registros de 10 dígitos decimales, programación cableando directamente, + 1900 sumas por segundo. +\end_layout + +\begin_layout Itemize + +\series bold +UNIVAC: +\series default + +\emph on +Universal Automatic Computer +\emph default +. +\end_layout + +\begin_layout Itemize + +\series bold +Proyecto EDVAC (Von Neumann, 1952): +\series default + +\emph on +Electronic Discrete Variable Automatic Computer +\emph default +: El primero con programas almacenados; saltos condicionales, válvulas de + vacío. +\end_layout + +\end_deeper +\begin_layout Itemize + +\series bold +Segunda generación (1962-67): +\series default + Tras la invención del transistor en 1947; IBM System 360, PDP-8 (primer + minicomputador, +\emph on +Digital Equipment Corporation +\emph default +). +\end_layout + +\begin_layout Itemize + +\series bold +Tercera generación (1967-78): +\series default + En 1958 se inventa el circuito integrado, con el que se integran varios + elementos electrónicos en el mismo bloque. + Aparece la microprogramación (propuesta por Wilkes en los 50) y el primer + supercomputador (CDC 6000, +\emph on +Control Data Corporation +\emph default +, Seymour Cray, 1964), y en 1965 Wilkes propone el concepto de caché. +\end_layout + +\begin_layout Itemize + +\series bold +Cuarta generación (1971-): +\series default + En 1971 se diseña el primer microprocesador: Intel 4004, con 2300 transistores. + Desde el 1981 y con el desarrollo de CPUs de Intel como el 8088 se desarrolla + la informática de consumo. +\end_layout + +\begin_layout Standard +Desde la mitad de los 90 con la aparición de la web, hay 3 grupos de ordenadores +: +\end_layout + +\begin_layout Itemize + +\series bold +Ordenadores personales: +\series default + PCs, +\emph on +tablets +\emph default +, etc., para uso individual, con buen rendimiento a bajo coste. +\end_layout + +\begin_layout Itemize + +\series bold +Servidores: +\series default + Para muchos usuarios, buscan fiabilidad y escalabilidad. + Distinguimos de clase baja (servidores de archivos, de impresión, etc.), + media (centros de datos, +\begin_inset Newline newline +\end_inset + + +\begin_inset Quotes cld +\end_inset + +datacenters +\begin_inset Quotes crd +\end_inset + +) y alta (supercomputadores con aplicaciones científicas). +\end_layout + +\begin_layout Itemize + +\series bold +Ordenadores embebidos +\series default + o +\series bold +empotrados: +\series default + Ordenadores de coches, +\emph on +gadgets +\emph default +, etc. + Para una sola aplicación, con grandes limitaciones, consumo de energía + y fiabilidad. +\end_layout + +\begin_layout Standard +En 2005, para ahorrar energía, aumentar el rendimiento sin aumentar el ciclo + de reloj y mejorar la fiabilidad del diseño, surgen los procesadores +\series bold +multinúcleo, +\series default + aunque requieren +\series bold +programación paralela. +\end_layout + +\begin_layout Section +Organización de un PC +\end_layout + +\begin_layout Itemize + +\series bold +Factor de forma +\series default + o +\series bold +geometría: +\series default + Largo, ancho, ubicación de agujeros de montaje, tipo y ubicación de conectores + y componentes, etc. + Normalmente ATX, aunque los servidores suelen usar factores de forma como + WTX, que tienen mayores dimensiones y permiten alojar varias CPUs y más + memoria. +\end_layout + +\begin_layout Itemize + +\series bold +CPUs soportadas: +\series default + Depende del tipo de +\emph on +socket +\emph default + de CPU. +\end_layout + +\begin_layout Itemize + +\series bold +Módulos de memoria soportados: +\series default + Tipos (DDR [ +\lang american +Double Data Rate +\lang spanish +], DDR2, DDR3, DDR4...), frecuencia del reloj de la memoria, nº de ranuras, + capacidad máxima, etc. +\end_layout + +\begin_layout Itemize + +\series bold +Chipset: +\series default + Formado por: +\end_layout + +\begin_deeper +\begin_layout Itemize + +\series bold +\lang american +Memory Controller Hub +\series default +\lang spanish + o +\series bold +Northbridge: +\series default + Comunica la CPU, tarjeta gráfica, módulos de memoria y el Southbridge. + Últimamente su funcionalidad se integra en el procesador. +\end_layout + +\begin_layout Itemize + +\series bold +\lang american +I/O Controller Hub +\series default +\lang spanish + o +\series bold +Southbridge: +\series default + Comunica el resto de elementos del sistema. +\end_layout + +\end_deeper +\begin_layout Itemize + +\series bold +Ranuras de expansión: +\series default + PCI (más antiguo, siendo el más usado un bus de 32 bits a +\begin_inset Formula $\unit[33]{MHz}$ +\end_inset + +), PCI-X (servidores, +\begin_inset Formula $\unit[66]{MHz}$ +\end_inset + + o más) y PCI Express (más rápido, hasta +\begin_inset Formula $\unit[250]{MB/s}$ +\end_inset + + +\lang american +full duplex +\lang spanish + por canal, con ranuras de hasta 16 canales). +\end_layout + +\begin_layout Itemize + +\series bold +Interfaces de almacenamiento: +\series default + ATA (paralela, hasta +\begin_inset Formula $\unit[133]{MB/s}$ +\end_inset + +), actualmente sustituida por SATA (en serie, hasta +\begin_inset Formula $\unit[150]{MB/s}$ +\end_inset + + en la versión original), y SCSI (paralela), que será sustituida por SAS + (serie). +\end_layout + +\begin_layout Itemize + +\series bold +Interfaces de audio y red. +\end_layout + +\begin_layout Itemize + +\series bold +Puertos de conexión periféricos +\series default + como USB y Firewire. +\end_layout + +\begin_layout Itemize + +\series bold +Protección de la BIOS: +\series default + La BIOS ( +\lang american +Basic Input/Output System +\lang spanish +) se encarga de arrancar el PC y dar soporte para ciertos dispositivos de + entrada y salida. + También ofrece una interfaz gráfica para configurar parámetros del PC. + Actualmente la BIOS se almacena muchas veces en una Flash, por lo que se + puede actualizar, pero de hacerse incorrectamente podría dejar el equipo + inutilizable hasta cambiar el chip. + Actualmente está siendo sustituida por UEFI ( +\lang american +Unified Extensible Firmware Interface +\lang spanish +). +\end_layout + +\begin_layout Standard +\align center +\begin_inset Graphics + filename image.TZVI9Y.png + width 100text% + +\end_inset + + +\end_layout + +\end_body +\end_document diff --git a/fc/n2.lyx b/fc/n2.lyx new file mode 100644 index 0000000..7e41f7e --- /dev/null +++ b/fc/n2.lyx @@ -0,0 +1,979 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style swiss +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Section +Representación de enteros +\end_layout + +\begin_layout Standard +En un sistema de numeración posicional en base +\begin_inset Formula $b$ +\end_inset + +, +\begin_inset Formula $N=\dots+n_{2}b^{2}+n_{1}b^{1}+n_{0}b^{0}+n_{-1}b^{-1}+\dots$ +\end_inset + +. + Nos centraremos en las bases 2 (binario), 8 (octal), 10 (decimal) y 16 + (hexadecimal). + Decimos +\begin_inset Formula $011)_{2}=3)_{10}$ +\end_inset + +. + Para convertir de decimal a binario, dividimos sucesivamente entre 2 la + parte entera hasta obtener cociente binario, y tomamos los restos y el + último cociente. + Este es el bit más significativo, y el primer resto el menos significativo. + Para la parte fraccionaria, multiplicamos por 2 la parte fraccionaria del + número decimal, y el número binario se forma con lo que se va obteniendo. +\end_layout + +\begin_layout Standard +El desplazamiento a la izquierda (añadir un 0 a la izquierda) multiplica + por 2, y el desplazamiento a la derecha (eliminarlo) divide entre 2. + También encontramos las operaciones lógicas +\family typewriter +\lang american +OR +\family default +\lang spanish + ( +\begin_inset Formula $0+0=0$ +\end_inset + +, +\begin_inset Formula $0+1=1+0=1+1=1$ +\end_inset + +), +\family typewriter +\lang american +AND +\family default +\lang spanish + ( +\begin_inset Formula $0\cdot0=0\cdot1=1\cdot0=0$ +\end_inset + +; +\begin_inset Formula $1\cdot1=1$ +\end_inset + +) y +\family typewriter +\lang american +NOT +\family default +\lang spanish + ( +\begin_inset Formula $\overline{0}=1$ +\end_inset + +; +\begin_inset Formula $\overline{1}=0$ +\end_inset + +). +\end_layout + +\begin_layout Standard +Los valores sin signo se representan añadiendo +\begin_inset Formula $0$ +\end_inset + +s a la izquierda del número en binario hasta completar los +\begin_inset Formula $8$ +\end_inset + +, +\begin_inset Formula $16$ +\end_inset + +, +\begin_inset Formula $32$ +\end_inset + +, +\begin_inset Formula $64$ +\end_inset + +, etc. + bits. + Para los enteros con signo existen las siguientes representaciones: +\end_layout + +\begin_layout Itemize + +\series bold +Signo y magnitud: +\series default + El bit más significativo es de signo, y vale +\begin_inset Formula $1$ +\end_inset + + si el nº es negativo. + El problema es que el +\begin_inset Formula $0$ +\end_inset + + tiene dos representaciones. +\end_layout + +\begin_layout Itemize + +\series bold +Sesgada: +\series default + Se añade una constante +\begin_inset Formula $S$ +\end_inset + + (sesgo) al nº a representar para hacerlo positivo. + Normalmente +\begin_inset Formula $S=2^{\text{nº de bits}-1}$ +\end_inset + +. + Permite realizar restas como sumas. +\end_layout + +\begin_layout Itemize + +\series bold +Complemento a 2: +\series default + Si tenemos +\begin_inset Formula $n$ +\end_inset + + bits, permite representar desde +\begin_inset Formula $-2^{n-1}$ +\end_inset + + hasta +\begin_inset Formula $2^{n-1}-1$ +\end_inset + +. + Los positivos se representan normalmente. + Para los negativos, se niegan todos los bits ( +\family typewriter +\lang american +NOT +\family default +\lang spanish +) del opuesto y se suma 1 al resultado. + Así, además de poder realizar restas como sumas (despreciando los bits + restantes), los números positivos se representan igual a como se representarían + sin signo. + Si el resultado de una operación sale del rango, se denomina +\series bold +desbordamiento +\series default +, y la operación no funciona. + Para representar un número con mayor cantidad de bits, se replica el bit + de signo hacia la izquierda. +\end_layout + +\begin_layout Section +Códigos intermedios +\end_layout + +\begin_layout Standard +Para expresar secuencias de bits de forma más concisa usamos la base +\series bold +octal +\series default + ( +\begin_inset Formula $\unit[8=2^{3}]{dígitos}$ +\end_inset + +, +\begin_inset Formula $\{0,\dots,7\}$ +\end_inset + +) agrupando los bits de 3 en 3 empezando por la coma decimal, así como la + base +\series bold +hexadecimal +\series default + ( +\begin_inset Formula $\unit[16=2^{4}]{dígitos}$ +\end_inset + +, +\begin_inset Formula $\{0,\dots,9,A,\dots,F\}$ +\end_inset + +), agrupándolos de 4 en 4. + Las conversiones se realizan de forma similar a la conversión entre binario + y decimal, pero con distinta base. +\end_layout + +\begin_layout Section +Representación de reales +\end_layout + +\begin_layout Standard +Se usa la +\series bold +notación exponencial +\series default +, en +\series bold + coma flotante +\series default + o en +\series bold + punto flotante: +\series default + +\begin_inset Formula $N=M\cdot B^{E}$ +\end_inset + +, donde +\begin_inset Formula $M$ +\end_inset + + es la mantisa, +\begin_inset Formula $B=2$ +\end_inset + + es la base y +\begin_inset Formula $E$ +\end_inset + + es el exponente. + Se representa en tres campos: +\end_layout + +\begin_layout Itemize + +\series bold +Signo ( +\begin_inset Formula $S$ +\end_inset + +): +\series default + +\begin_inset Formula $0$ +\end_inset + +: positivo; +\begin_inset Formula $1$ +\end_inset + +: negativo. +\end_layout + +\begin_layout Itemize + +\series bold +Exponente ( +\begin_inset Formula $E$ +\end_inset + +): +\series default + Entero sesgado, con sesgo +\begin_inset Formula $S=2^{n_{E}-1}-1$ +\end_inset + +. +\end_layout + +\begin_layout Itemize + +\series bold +Mantisa ( +\begin_inset Formula $M$ +\end_inset + +): +\series default + Solo se representa la parte fraccionaria; la parte entera siempre es +\begin_inset Formula $1$ +\end_inset + +. +\end_layout + +\begin_layout Standard +La norma IEEE 754 especifica reales de +\series bold +simple precisión +\series default + (32 bits, +\begin_inset Formula $n_{E}=8$ +\end_inset + +), y de +\series bold +doble precisión +\series default + (64 bits, +\begin_inset Formula $n_{E}=11$ +\end_inset + +). + Situaciones especiales: +\end_layout + +\begin_layout Itemize +Si +\begin_inset Formula $E=0$ +\end_inset + +, el +\begin_inset Formula $1$ +\end_inset + + no está implícito. + Así, si +\begin_inset Formula $E=0$ +\end_inset + + y +\begin_inset Formula $M=0$ +\end_inset + +, el número es +\begin_inset Formula $0$ +\end_inset + +. +\end_layout + +\begin_layout Itemize +Si +\begin_inset Formula $E=2^{n_{E}}-1$ +\end_inset + +, entonces +\begin_inset Formula $n=+\infty\text{ o }-\infty$ +\end_inset + + si +\begin_inset Formula $M=0$ +\end_inset + + o +\begin_inset Formula $NaN$ +\end_inset + + ( +\emph on +\lang american +Not a Number +\emph default +\lang spanish +) si +\begin_inset Formula $M\neq0$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Cuando un número como el resultado de una operación no se puede representar + de forma exacta, se aplica el redondeo al par: Se toman los dos primeros + bits que +\begin_inset Quotes cld +\end_inset + +no caben +\begin_inset Quotes crd +\end_inset + + en la mantisa (en orden, +\series bold +bit de redondeo +\series default + y +\series bold +bit retenedor +\series default +). + Si el de redondeo es +\begin_inset Formula $0$ +\end_inset + +, se trunca. + Si ambos son +\begin_inset Formula $1$ +\end_inset + +, se redondea al alza. + En el caso restante, se redondea al par más cercano. +\end_layout + +\begin_layout Standard +Algunos números que en decimal son exactos no se pueden representar con + total exactitud porque en binario son periódicos, y algunas propiedades + como la asociatividad de la suma pueden no cumplirse debido a errores de + aproximación. +\end_layout + +\begin_layout Section +Representación de caracteres +\end_layout + +\begin_layout Standard +Para representar un carácter entre un conjunto de +\begin_inset Formula $n$ +\end_inset + + caracteres necesitamos +\begin_inset Formula $\left\lceil \log_{2}n\right\rceil $ +\end_inset + + bits, de forma que a cada carácter le corresponde una combinación. + El código es arbitrario, pero existen códigos normalizados: +\end_layout + +\begin_layout Itemize +El ASCII ( +\emph on +\lang american +American Standard Code for Information Interchange +\emph default +\lang spanish +) codifica desde los años 60 la mayoría de caracteres del idioma inglés. + Usa +\begin_inset Formula $7$ +\end_inset + + bits para +\begin_inset Formula $128$ +\end_inset + + caracteres. + Para rellenar 1 byte, el bit adicional se usaba para control de errores. + Un ejemplo es el +\series bold +bit de paridad +\series default +, que garantiza que el total de unos en el byte debe ser par. + Si no lo es, ha habido un error en la transmisión. +\end_layout + +\begin_layout Itemize +Más recientemente, este último bit se usa para extensiones de determinados + idiomas. + El ISO-8859-1 ( +\lang american +Latin +\lang spanish + 1) incluye extensiones como acentos y +\begin_inset Quotes cld +\end_inset + + +\begin_inset Formula $ñ$ +\end_inset + + +\begin_inset Quotes crd +\end_inset + +. + El ISO-8859-15 es similar pero añade el signo del euro. +\end_layout + +\begin_layout Itemize +El Unicode permite representar cualquier sistema de escritura del mundo. + Empezó siendo de 16 bits y actualmente define más de 1 millón de símbolos. + A cada uno se le asigna un +\emph on +\lang american +code point +\emph default +\lang spanish + en el rango de +\begin_inset Formula $0$ +\end_inset + + a +\begin_inset Formula $0x10FFFF$ +\end_inset + +, que se representa como U+número. + El conjunto de +\emph on +\lang american +code points +\emph default +\lang spanish + que caben en 16 bits se denomina +\emph on +\lang american +Basic Multilingual Plane +\emph default +\lang spanish + (BMP). +\end_layout + +\begin_deeper +\begin_layout Itemize +Los primeros 256 +\emph on +\lang american +code points +\emph default +\lang spanish + corresponden al ISO-8859-1. +\end_layout + +\begin_layout Itemize +Todos los +\emph on +\lang american +code points +\emph default +\lang spanish + se representan como secuencias de bits de varias formas, como el UTF-8 + y el UTF-16 ( +\emph on +\lang american +Unicode Transformation Format +\emph default +\lang spanish +). + En UTF-8, cada carácter ASCII ocupa 1 byte, por compatibilidad. + Para otros caracteres, se usan de 2 a 4 bytes. +\end_layout + +\begin_layout Itemize +En UTF-16, para distinguir entre +\emph on +Big-Endian +\emph default + y +\emph on +Little-Endian +\emph default +, se usa la llamada +\emph on +\lang american +Byte Order Mark +\emph default +\lang spanish + (BOM) al principio del texto, codificado como +\begin_inset Formula $0xFEFF$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Section +Representación de imágenes +\end_layout + +\begin_layout Standard +Las imágenes se pueden representar mediante mapas de bits o de forma vectorial. + Un +\series bold +mapa de bits +\series default + está formado por una matriz de píxeles +\begin_inset Formula $M_{m,n}(px.)$ +\end_inset + + con resolución +\begin_inset Formula $n\times m$ +\end_inset + +, de los cuales a cada uno se le asocia un color o un tono de gris. + Se almacenan los píxeles sucesivamente. + Algunos formatos de mapa de bits son BMP (Windows), PICT (Macintosh), PPM + ( +\emph on +\lang american +Portable Pix-Map +\emph default +\lang spanish +, de codificación sencilla) y JPEG (compresión normalmente con pérdida, + buena calidad para fotos). +\end_layout + +\begin_layout Standard +Mientras tanto, una +\series bold +imagen vectorial +\series default + se representa como una colección de objetos como líneas, polígonos o textos, + que se modelan mediante vectores y ecuaciones que se evalúan al visualizar + las ecuaciones en pantalla. + Son adecuados para gráficos geométricos e ideales para aplicaciones CAD, + se pueden escalar a cualquier tamaño y suelen ocupar mucho menos espacio + que los mapas de bits. + Sin embargo, no son adecuadas para imágenes reales y suelen tener menor + calidad de imagen. + Algunos formatos son DXF ( +\emph on +\lang american +Document eXchange Format +\emph default +\lang spanish +, para imágenes CAD), EPS ( +\emph on +\lang american +Encapsulated PostScript +\emph default +\lang spanish +, de Adobe) y ODG (LibreOffice). + A menudo estos pueden incluir mapas de bits embebidos. +\end_layout + +\begin_layout Standard +El color se representa mediante escalas. + En +\series bold +escala de grises +\series default +, cada píxel toma un valor de gris. + El modelo de color +\series bold +RGB +\series default + es aditivo (la suma de los colores genera el blanco), se usa sobre todo + en pantallas y representa la intensidad de rojo, verde y azul. + El modelo +\series bold +CMYK +\series default + es sustractivo (la suma de los colores genera el negro), se usa principalmente + en impresoras y representa el cían, magenta, amarillo y negro. +\end_layout + +\begin_layout Section +Algunos formatos de archivo +\end_layout + +\begin_layout Subsection +PPM +\end_layout + +\begin_layout Standard +El +\begin_inset Quotes cld +\end_inset + + +\lang american +Portable Pixel Map +\lang spanish + +\begin_inset Quotes crd +\end_inset + + está formado por un +\begin_inset Quotes cld +\end_inset + +número mágico +\begin_inset Quotes crd +\end_inset + + que identifica el tipo de archivo (caracteres +\series bold +P6 +\series default +), una cabecera y una ristra de bytes. + La cabecera indica, entre otras cosas, el ancho y alto de la imagen y el + valor máximo de un color, en decimal mediante caracteres ASCII (normalmente + estos son los tres últimos elementos de la cabecera, los cuales suelen + separarse por 0x0A). + La ristra de bytes contiene los píxeles uno por uno, de arriba a abajo + de izquierda a derecha, representados por los valores de intensidad del + rojo, verde y azul. + Normalmente el valor máximo es 255. + Si es más, se especifican en +\emph on +\lang american +big endian +\emph default +\lang spanish +. + Así, en general, +\begin_inset Formula $\text{Offset}=(y\cdot\text{ancho}+x)\cdot3+\text{fin\_cabecera}+1$ +\end_inset + +. +\end_layout + +\begin_layout Subsection +HTML +\end_layout + +\begin_layout Standard +El +\emph on +\lang american +HyperText Markup Language +\emph default +\lang spanish + se usa para crear páginas web. + Se usan etiquetas con forma +\family typewriter +< +\emph on +nombre +\emph default + +\emph on +attr +\emph default +=" +\emph on +val +\emph default +" ...>...</ +\emph on +nombre +\emph default +> +\family default +, como +\family typewriter +<b>Hola</b> +\family default +, que indica que el texto está en negrita. + Así: +\end_layout + +\begin_layout Itemize + +\family typewriter +<HTML> +\family default + envuelve a todo el documento. +\end_layout + +\begin_layout Itemize + +\family typewriter +< +\lang american +HEAD +\lang spanish +> +\family default + contiene la cabecera. +\end_layout + +\begin_deeper +\begin_layout Itemize + +\family typewriter +< +\lang american +TITLE +\lang spanish +> +\family default + indica el título. +\end_layout + +\begin_layout Itemize + +\family typewriter +< +\lang american +META NAME="AUTHOR" CONTENT= +\lang spanish +" +\family default +(autor) +\family typewriter +"> +\family default +. +\end_layout + +\end_deeper +\begin_layout Itemize + +\family typewriter +< +\lang american +BODY +\lang spanish +> +\family default + contiene al cuerpo del documento. +\end_layout + +\begin_deeper +\begin_layout Itemize + +\family typewriter +<P> +\family default + indica un párrafo. +\end_layout + +\begin_layout Itemize + +\family typewriter +< +\lang american +BR +\lang spanish +> +\family default + introduce una línea en blanco. +\end_layout + +\begin_layout Itemize + +\family typewriter +<A +\lang american +HREF +\lang spanish +=" +\family default +(URL) +\family typewriter +"> +\family default + muestra un enlace. +\end_layout + +\end_deeper +\begin_layout Subsection +ODF +\end_layout + +\begin_layout Standard +El formato +\emph on +\lang american +OpenDocument +\emph default +\lang spanish + es un formato estándar y libre para documentos, hojas de cálculo, gráficos, + presentaciones... + Es un archivo comprimido en ZIP que contiene varios ficheros y directorios, + siendo los más importantes: +\end_layout + +\begin_layout Itemize + +\family typewriter +content.xml +\family default +: Almacena el contenido real del documento, salvo datos binarios como imágenes, + y su formato es similar al HTML aunque bastante más complejo. +\end_layout + +\begin_layout Itemize + +\family typewriter +styles.xml +\family default +: Almacena los estilos para el formato y disposición del contenido, y existen + varios tipos como los de carácter, párrafo, etc. +\end_layout + +\begin_layout Itemize + +\family typewriter +meta.xml +\family default +: Contiene metadatos como el autor, la última persona que lo modificó, fecha + de la última modificación, etc. +\end_layout + +\begin_layout Itemize + +\family typewriter +settings.xml +\family default +: Incluye propiedades como el factor de zoom o la posición del cursor, pero + no afectan al contenido. +\end_layout + +\end_body +\end_document diff --git a/fc/n3.lyx b/fc/n3.lyx new file mode 100644 index 0000000..63254ed --- /dev/null +++ b/fc/n3.lyx @@ -0,0 +1,1257 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style swiss +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard +En electrónica digital distinguimos dos niveles de tensión (alta y baja), + que abstraemos con el sistema binario. + Tipos de circuitos: +\end_layout + +\begin_layout Itemize + +\series bold +Combinacionales (sin memoria): +\series default + Las salidas solo dependen de las entradas actuales. +\end_layout + +\begin_layout Itemize + +\series bold +Secuenciales (con memoria): +\series default + Las salidas dependen de las entradas y un valor almacenado ( +\series bold +estado +\series default +). +\end_layout + +\begin_layout Standard +El +\series bold +álgebra de Boole +\series default + sirve para expresar circuitos lógicos. + Tenemos las operaciones +\begin_inset Formula $\overline{A}$ +\end_inset + + (negación), +\begin_inset Formula $A+B$ +\end_inset + + (o) y +\begin_inset Formula $A\cdot B$ +\end_inset + + (y), y podemos expresar funciones de +\begin_inset Formula $n$ +\end_inset + + variables +\begin_inset Formula $f:\{0,1\}^{n}\rightarrow\{0,1\}$ +\end_inset + + como +\begin_inset Formula $F(A,B,C)=\dots$ +\end_inset + +, o bien como tabla de verdad. + Si a cada entrada +\begin_inset Formula $(A,B,C)$ +\end_inset + + le asignamos su valor +\begin_inset Formula $ABC_{b}$ +\end_inset + +, tenemos las +\series bold +formas normalizadas: +\end_layout + +\begin_layout Itemize + +\series bold +Suma de productos (minitérminos): +\series default + +\begin_inset Formula $F(A,B,C)=\overline{A}\cdot B\cdot\overline{C}+\overline{A}\cdot B\cdot C+\dots=m_{2}+m_{3}+\dots=\sum m(2,3,\dots)$ +\end_inset + +. + Tomamos las combinaciones en las que la salida es 1. +\end_layout + +\begin_layout Itemize + +\series bold +Producto de sumas (maxitérminos): +\series default + +\begin_inset Formula $F(A,B,C)=(A+B+C)\cdot(A+B+\overline{C})\cdot\dots=M_{0}\cdot M_{1}\cdot\dots=\prod M(0,1,\dots)$ +\end_inset + +. + Tomamos las combinaciones en las que la salida es 0 y negamos cada letra. +\end_layout + +\begin_layout Section +Mapas de Karnaugh +\end_layout + +\begin_layout Standard +Representación gráfica de una tabla de verdad. + Si la función tiene +\begin_inset Formula $m+n$ +\end_inset + + variables, realizamos una tabla +\begin_inset Formula $2^{m}\times2^{n}$ +\end_inset + + y en las cabeceras de fila y columna ponemos los nombres de estas variables + con sus posibles combinaciones, de forma que dos celdas adyacentes solo + se diferencien en 1 byte. + Ponemos +\begin_inset Formula $1$ +\end_inset + +, +\begin_inset Formula $0$ +\end_inset + + o +\begin_inset Formula $X$ +\end_inset + + (valor no determinado) en cada celda según el valor de salida para las + variables. + Un cuadrado tiene +\begin_inset Formula $n$ +\end_inset + + cuadrados adyacentes (que se diferencien en solo una entrada), y estos + se combinan en grupos de +\begin_inset Formula $2^{k}$ +\end_inset + + celdas con igual valor de salida eliminando +\begin_inset Formula $k$ +\end_inset + + variables. + Debemos intentar cubrir todos los unos (o ceros) en el menor número de + grupos posible. + Una celda puede estar en varios grupos. +\end_layout + +\begin_layout Standard +Terminología: +\end_layout + +\begin_layout Itemize + +\series bold +Implicante: +\series default + Producto de variables. +\end_layout + +\begin_layout Itemize + +\series bold +Implicante primo: +\series default + Implicante no contenido en otro. +\end_layout + +\begin_layout Itemize + +\series bold +Implicante primo esencial: +\series default + Implicante primo con al menos un 1 cubierto solo por él. +\end_layout + +\begin_layout Itemize + +\series bold +Cubierta: +\series default + Conjunto de implicantes primos que cubren todos los unos. +\end_layout + +\begin_layout Standard +Al simplificar, las +\begin_inset Formula $X$ +\end_inset + + pueden interpretarse a conveniencia como 1s o 0s. +\end_layout + +\begin_layout Section +Puertas lógicas +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular +<lyxtabular version="3" rows="3" columns="1"> +<features tabularvalignment="middle"> +<column alignment="center" valignment="top"> +<row> +<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular +<lyxtabular version="3" rows="3" columns="3"> +<features tabularvalignment="middle"> +<column alignment="center" valignment="top"> +<column alignment="center" valignment="top"> +<column alignment="center" valignment="top"> +<row> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $A\cdot B$ +\end_inset + + +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" bottomline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +</row> +</lyxtabular> + +\end_inset + + +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Graphics + filename AND_ANSI_Labelled.svg + height 14pt + +\end_inset + + +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +AND +\end_layout + +\end_inset +</cell> +</row> +</lyxtabular> + +\end_inset + + +\begin_inset Tabular +<lyxtabular version="3" rows="3" columns="1"> +<features tabularvalignment="middle"> +<column alignment="center" valignment="top"> +<row> +<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular +<lyxtabular version="3" rows="3" columns="3"> +<features tabularvalignment="middle"> +<column alignment="center" valignment="top"> +<column alignment="center" valignment="top"> +<column alignment="center" valignment="top"> +<row> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $A+B$ +\end_inset + + +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" bottomline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +</row> +</lyxtabular> + +\end_inset + + +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Graphics + filename OR_ANSI_Labelled.svg + height 14pt + +\end_inset + + +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +OR +\end_layout + +\end_inset +</cell> +</row> +</lyxtabular> + +\end_inset + + +\begin_inset Tabular +<lyxtabular version="3" rows="3" columns="1"> +<features tabularvalignment="middle"> +<column alignment="center" valignment="top"> +<row> +<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular +<lyxtabular version="3" rows="3" columns="3"> +<features tabularvalignment="middle"> +<column alignment="center" valignment="top"> +<column alignment="center" valignment="top"> +<column alignment="center" valignment="top"> +<row> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $A\oplus B$ +\end_inset + + +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" bottomline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +</row> +</lyxtabular> + +\end_inset + + +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Graphics + filename XOR_ANSI.svg + height 14pt + +\end_inset + + +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +XOR +\end_layout + +\end_inset +</cell> +</row> +</lyxtabular> + +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular +<lyxtabular version="3" rows="2" columns="1"> +<features tabularvalignment="middle"> +<column alignment="center" valignment="top"> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Graphics + filename NAND_ANSI_Labelled.svg + height 14pt + +\end_inset + + +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +NAND +\end_layout + +\end_inset +</cell> +</row> +</lyxtabular> + +\end_inset + + +\begin_inset Tabular +<lyxtabular version="3" rows="2" columns="1"> +<features tabularvalignment="middle"> +<column alignment="center" valignment="top"> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Graphics + filename NOR_ANSI_Labelled.svg + height 14pt + +\end_inset + + +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +NOR +\end_layout + +\end_inset +</cell> +</row> +</lyxtabular> + +\end_inset + + +\begin_inset Tabular +<lyxtabular version="3" rows="2" columns="1"> +<features tabularvalignment="middle"> +<column alignment="center" valignment="top"> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Graphics + filename Xnor-gate-en.svg + height 14pt + +\end_inset + + +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +XNOR +\end_layout + +\end_inset +</cell> +</row> +</lyxtabular> + +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular +<lyxtabular version="3" rows="3" columns="1"> +<features tabularvalignment="middle"> +<column alignment="center" valignment="top"> +<row> +<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $\overline{A}:$ +\end_inset + + +\begin_inset Tabular +<lyxtabular version="3" rows="2" columns="2"> +<features tabularvalignment="middle"> +<column alignment="center" valignment="top"> +<column alignment="center" valignment="top"> +<row> +<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0 +\end_layout + +\end_inset +</cell> +</row> +</lyxtabular> + +\end_inset + + +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Graphics + filename Not-gate-en.svg + height 14pt + +\end_inset + + +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +NOT +\end_layout + +\end_inset +</cell> +</row> +</lyxtabular> + +\end_inset + + +\end_layout + +\begin_layout Standard +\align left +A veces la puerta NOT se representa simplemente con el círculo pequeño, + pegado a otra puerta. + Las puertas NAND, NOR y XNOR equivalen a una puerta AND, OR o XOR, respectivame +nte, seguida de una puerta NOT. + La mayoría de circuitos actualmente se encuentran en chips (circuitos integrado +s) todo lo grandes o pequeños que queramos. + Según el número de puertas lógicas: +\end_layout + +\begin_layout Itemize + +\series bold +SSI: +\series default + 1-10 puertas. +\end_layout + +\begin_layout Itemize + +\series bold +MSI: +\series default + 10-100 puertas. +\end_layout + +\begin_layout Itemize + +\series bold +LSI: +\series default + 100-100000 puertas. +\end_layout + +\begin_layout Itemize + +\series bold +VLSI: +\series default + >100000 puertas. +\end_layout + +\begin_layout Section +Retardo +\end_layout + +\begin_layout Standard +Existe un +\series bold +retardo +\series default + de algunos nanosegundos desde que cambia la señal a la entrada hasta que + se estabiliza la señal de salida en el valor deseado. + Podemos considerar que este es el máximo que debe +\begin_inset Quotes cld +\end_inset + +recorrer +\begin_inset Quotes crd +\end_inset + + una señal dentro del circuito una vez sabemos el retardo de cada puerta + lógica. +\end_layout + +\begin_layout Section +Implementación con puertas NAND/NOR +\end_layout + +\begin_layout Standard +Para implementar una función en forma de suma de productos sólo con puertas + NAND, simplificamos, negamos dos veces y aplicamos De Morgan una vez, obteniend +o un resultado que se puede interpretar con puertas NAND. + El proceso es el mismo para implementar una función en forma de producto + de sumas sólo con puertas NOR. +\end_layout + +\begin_layout Section +Bloques lógicos +\end_layout + +\begin_layout Standard +Son bloques que contienen una parte del circuito y se usan para simplificar + la representación. + Se representan como un cuadrado con flechas entrantes a un lado y salientes + a otro con un indicador textual del bloque. +\end_layout + +\begin_layout Subsection +Codificador +\end_layout + +\begin_layout Standard +Circuito con +\begin_inset Formula $2^{n}$ +\end_inset + + líneas de entrada y +\begin_inset Formula $n$ +\end_inset + + de salida. + Solo una línea de entrada se activa en cada momento y su nº se representa + en binario en la salida. +\end_layout + +\begin_layout Standard +\align center +\begin_inset Graphics + filename image.RAWR9Y.png + width 60text% + +\end_inset + + +\end_layout + +\begin_layout Subsection +Decodificador +\end_layout + +\begin_layout Standard +Circuito con +\begin_inset Formula $n$ +\end_inset + + líneas de entrada y +\begin_inset Formula $2^{n}$ +\end_inset + + de salida que activa la línea de salida cuyo nº corresponde a la entrada + en binario. +\end_layout + +\begin_layout Standard +\align center +\begin_inset Graphics + filename image.V5MB9Y.png + width 60text% + +\end_inset + + +\end_layout + +\begin_layout Standard +Podemos implementar una función con un decodificador conectando las salidas + correspondientes a un +\begin_inset Formula $F(\dots)=1$ +\end_inset + + como entrada de una puerta OR. +\end_layout + +\begin_layout Subsection +Multiplexores +\end_layout + +\begin_layout Standard +Circuito con +\begin_inset Formula $2^{n}$ +\end_inset + + líneas de entrada de datos, +\begin_inset Formula $n$ +\end_inset + + de entrada de control y una de salida. + Las líneas de control seleccionan qué entrada de datos pasa a la salida. + +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename image.0PXO9Y.png + width 100text% + +\end_inset + + +\end_layout + +\begin_layout Standard +Podemos implementar funciones como multiplexores conectando a cada entrada + de datos el valor de la salida correspondiente y conectando las entradas + como entradas de control. + Si el multiplexor tiene una entrada de control menos que la función, elegimos + una variable que no se conecta como entrada de control, agrupamos en el + mapa de Karnaugh las celdas que tienen el resto de entradas iguales y como + entradas conectamos 0, 1 o la variable en cuestión, negada o no. +\end_layout + +\begin_layout Subsection +Memorias ROM +\end_layout + +\begin_layout Standard +Una +\series bold +ROM +\series default + ( +\emph on +Read Only Memory +\emph default +) es un circuito combinacional con +\begin_inset Formula $m$ +\end_inset + + entradas y +\begin_inset Formula $n$ +\end_inset + + salidas que almacena +\begin_inset Formula $2^{m}$ +\end_inset + + celdas ( +\series bold +altura +\series default + de la ROM) de +\begin_inset Formula $n$ +\end_inset + + bits ( +\series bold +anchura +\series default + de la ROM). + Se implementa con un plano AND con +\begin_inset Formula $2^{m}$ +\end_inset + + puertas de +\begin_inset Formula $m$ +\end_inset + + entradas cada una y un plano OR con +\begin_inset Formula $n$ +\end_inset + + puertas de salida: +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename image.Y3EN9Y.png + width 100text% + +\end_inset + + +\end_layout + +\begin_layout Standard +Variantes: +\end_layout + +\begin_layout Itemize + +\series bold +PROM: +\series default + +\emph on +Programmable ROM +\emph default +. +\end_layout + +\begin_layout Itemize + +\series bold +EPROM: +\series default + +\emph on +Erasable PROM +\emph default +. +\end_layout + +\begin_layout Itemize + +\series bold +EEPROM: +\series default + +\emph on +Electronically Erasable PROM +\emph default +. +\end_layout + +\begin_layout Itemize +Memorias flash (permiten borrado y reescritura por bloques, miles de veces). +\end_layout + +\begin_layout Itemize + +\series bold +PLA: +\series default + +\emph on +Programmable Logic Array +\emph default +. + Como una ROM, pero solo se implementan los productos (puertas AND) necesarios. + Útil cuando pocas combinaciones se usan realmente. +\end_layout + +\end_body +\end_document diff --git a/fc/n4.lyx b/fc/n4.lyx new file mode 100644 index 0000000..dbe8094 --- /dev/null +++ b/fc/n4.lyx @@ -0,0 +1,2821 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures false +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style swiss +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard +Un sistema operativo es una capa de software situada entre el hardware y + las aplicaciones, que se encarga de +\begin_inset Quotes cld +\end_inset + +enmascarar +\begin_inset Quotes crd +\end_inset + + la complejidad del software a usuarios y programadores, administrando: +\end_layout + +\begin_layout Itemize +La CPU, que se comparte entre los procesos y el núcleo del SO. +\end_layout + +\begin_layout Itemize +La memoria, que también se comparte, impidiendo que un proceso acceda a + la de otro indebidamente. +\end_layout + +\begin_layout Itemize +Los dispositivos, que también se comparten, protegiendo de accesos indebidos + y ofreciendo una interfaz uniforme a los distintos tipos de dispositivos. +\end_layout + +\begin_layout Standard +Ejemplos: Windows (2000, XP, Vista...), Linux (Ubuntu, Fedora...), Unix, FreeBSD, + MacOS, etc. + Una distribución de un sistema operativo incluye al núcleo del SO junto + con software adicional. + Tipos de SO: De propósito general, de servidores, de tiempo real, integrados, + de tarjeta inteligente, de supercomputadores, etc. + Conceptos: +\end_layout + +\begin_layout Description +Usuario Persona que trabaja en el sistema. +\end_layout + +\begin_layout Description +Sesión Periodo de tiempo en el que un usuario interactúa con el sistema. +\end_layout + +\begin_layout Description +Programa Código ejecutable almacenado en disco. + Concepto estático. +\end_layout + +\begin_layout Description +Proceso Programa en ejecución, que necesita recursos. + Concepto dinámico con estado cambiante. + Unidad de trabajo del SO. +\end_layout + +\begin_layout Description +Fichero Unidad lógica de almacenamiento de datos persistentes. + Secuencia de bytes con un formato determinado. +\end_layout + +\begin_layout Description +Programas +\begin_inset space ~ +\end_inset + +del +\begin_inset space ~ +\end_inset + +sistema Programas que suelen acompañar al SO, como administrador de archivos, + intérprete de comandos, programas para información de estado, aplicaciones + básicas o utilidades de programación. +\end_layout + +\begin_layout Description + +\series bold +Interfaz +\begin_inset space ~ +\end_inset + +de +\begin_inset space ~ +\end_inset + +usuario +\series default +Permite al usuario dar órdenes al sistema. +\end_layout + +\begin_deeper +\begin_layout Description + +\lang english +GUI +\begin_inset space ~ +\end_inset + +( +\emph on +Graphical +\begin_inset space ~ +\end_inset + +User +\begin_inset space ~ +\end_inset + +Interface +\emph default +) +\lang spanish + Presenta una visión intuitiva del sistema. + Se basa en un gestor de ventanas que permite arrancar y terminar aplicaciones + y trabajar con varias al mismo tiempo. +\end_layout + +\begin_layout Description +Línea +\begin_inset space ~ +\end_inset + +de +\begin_inset space ~ +\end_inset + +comandos Órdenes tecleadas. + Permite llamar a +\series bold +órdenes internas +\series default + reconocidas por el intérprete y +\series bold +programas externos +\series default +, en su propio ejecutable. +\end_layout + +\end_deeper +\begin_layout Section +Funcionamiento de un SO +\end_layout + +\begin_layout Subsection +El arranque +\end_layout + +\begin_layout Standard +Al encender, la CPU ejecuta un programa en ROM ( +\series bold +iniciador ROM +\series default + o +\series bold +ROM BIOS +\series default +) que realiza un autodiagnóstico rápido del hardware y lee el +\series bold +disco +\series default + el programa +\series bold +cargador +\series default +, que posiblemente permita seleccionar entre varios SO. + Este se encarga de cargar el kernel del SO en memoria, que toma el control, + establece sus estructuras internas básicas (tabla de procesos, memoria, + E/S, etc.) y ejecuta el +\series bold +proceso inicial +\series default +, que empieza a lanzar procesos auxiliares y +\series bold +demonios +\series default + (para impresión, red, etc.) según esté configurado y, finalmente, lanza + uno (o varios) procesos de login, que permiten al usuario autenticarse + y comenzar a trabajar. +\end_layout + +\begin_layout Subsection +Interrupciones +\end_layout + +\begin_layout Standard +Las +\series bold +interrupciones +\series default + son un mecanismo que permite pasar el control al núcleo del SO. + Tipos: +\end_layout + +\begin_layout Itemize + +\series bold +Interrupciones software +\series default +, +\series bold +llamadas al sistema +\series default + o +\series bold +traps: +\series default + Las inicia un proceso para llamar a un servicio del sistema. +\end_layout + +\begin_layout Itemize + +\series bold +Interrupciones hardware: +\end_layout + +\begin_deeper +\begin_layout Itemize + +\series bold +Excepciones +\series default + o +\series bold +desvíos: +\series default + Las produce un error en la ejecución, como una instrucción errónea, acceso + indebido, error numérico, etc. +\end_layout + +\begin_layout Itemize + +\series bold +Interrupciones +\series default + propiamente dichas: Las causa un evento externo como el reloj del sistema + o un dispositivo de E/S, y llegan a la CPU mediante el bus de control. +\end_layout + +\end_deeper +\begin_layout Standard +Algunos tipos de llamadas al sistema: +\end_layout + +\begin_layout Itemize + +\series bold +Procesos: +\series default + Creación y terminación de procesos e hilos... +\end_layout + +\begin_layout Itemize + +\series bold +Acceso a dispositivos: +\series default + Apertura, cierre, lectura y escritura de ficheros y dispositivos de E/S... +\end_layout + +\begin_layout Itemize + +\series bold +Gestión de la memoria: +\series default + Solicitud y liberación de espacio... +\end_layout + +\begin_layout Itemize + +\series bold +Manipulación del sistema de ficheros: +\series default + Creación y borrado de ficheros y directorios, movimiento por directorios, + manipulación de permisos, acceso a metadatos... +\end_layout + +\begin_layout Itemize + +\series bold +Otros: +\series default + Sincronización y comunicación entre procesos... +\end_layout + +\begin_layout Subsection +El subsistema de gestión de procesos +\end_layout + +\begin_layout Standard +Los SO permiten la +\series bold +multiprogramación +\series default +, el uso compartido de la CPU entre varios procesos, y de esta forma permite + múltiples usuarios. + Periódicamente, el reloj interrumpe al proceso en ejecución para ejecutar + código del kernel, que cambia el +\series bold +contexto +\series default + para ejecutar otro proceso. + Los procesos van avanzando con sensación de simultaneidad, y los que quedan + a la espera de E/S ceden la CPU a otro proceso. + La parte del kernel encargada de optimizar el uso de CPU es el +\series bold +planificador +\series default + o +\series bold +\emph on +scheduler +\series default +\emph default +. +\end_layout + +\begin_layout Standard +Todos los procesos son creados por otro, llamado +\series bold +proceso padre +\series default +, siendo la raíz de la jerarquía el proceso inicial (en Linux, +\family typewriter +init +\family default +), y terminan de forma voluntaria o externa. + Los procesos también pueden ser monitorizados, y se autorizan intentos + de comunicación entre procesos. +\end_layout + +\begin_layout Subsection +El subsistema de gestión de memoria +\end_layout + +\begin_layout Standard +La RAM es compartida por todos los procesos y el propio kernel, el cual + aísla a unos procesos de otros ubicándolos en +\series bold +espacios de direccionamiento +\series default + independientes. + Cada proceso tiene un +\series bold +espacio de direcciones virtual +\series default +, que es mapeado por el sistema (con ayuda del hardware) a distintas +\series bold +direcciones físicas +\series default +. + Si es necesario, parte del espacio virtual de un proceso se mantiene en + disco. + El SO se encarga de controlar las zonas de memoria libres y ocupadas, asignar + y recuperar espacio y mover datos y código entre la RAM y el disco según + sea necesario. +\end_layout + +\begin_layout Subsection +El subsistema de gestión de E/S +\end_layout + +\begin_layout Standard +El SO oculta las particularidades de distintos tipos de dispositivos. + Por ejemplo, mientras que el usuario ve un sistema de ficheros organizado + jerárquicamente, el disco en el que este está almacenado, con el que interactúa + el SO, se muestra como una inmensa tabla de sectores de 512 bytes cada + uno. +\end_layout + +\begin_layout Standard +Los dispositivos se manejan mediante una +\series bold +controladora +\series default +, un CI en el propio dispositivo que lo controla físicamente y acepta comandos + elementales, y un +\series bold +manejador de dispositivo +\series default + o +\series bold + +\begin_inset Quotes cld +\end_inset + +driver +\begin_inset Quotes crd +\end_inset + + +\series default +, un software ejecutado por el kernel del SO en +\series bold +modo privilegiado +\series default + (uso no restringido del procesador) que se comunica con la controladora. +\end_layout + +\begin_layout Standard +Las operaciones de E/S tardan un cierto tiempo en ejecutarse, por lo que + al enviar un comando a la controladora, el SO suspende el proceso en ejecución + y otorga la CPU a otro proceso, de forma que cuando termina la transferencia + de datos, se envía una +\series bold +interrupción +\series default + al procesador, causando que el SO vuelva a tomar el control y despierte + al proceso bloqueado. +\end_layout + +\begin_layout Section +Linux +\end_layout + +\begin_layout Standard +Es un clon de Unix creado por Linus Torvalds en 1991. + Su código fuente está disponible bajo GPL (puede usarse, modificarse y + distribuirse libremente). + Es multiplataforma, pues funciona en gran cantidad de procesadores por + estar escrito casi todo en C, multiusuario, multitarea y multinúcleo. + Usa memoria virtual con espacios de direccionamiento diferentes, y soporta + múltiples sistemas de archivos, protocolos de red e infinidad de dispositivos. + Existen múltiples distribuciones y miles de aplicaciones disponibles, libres + y comerciales. +\end_layout + +\begin_layout Standard +Se accede al sistema mediante nombre de usuario y contraseña, y solo el + usuario +\family typewriter +root +\family default + tiene el control total. + El +\emph on +prompt +\emph default + de la línea de comandos, configurable, proporciona información del usuario, + la máquina y el directorio actual: +\end_layout + +\begin_layout Standard +\align center + +\family typewriter +\emph on +usuario +\emph default +@ +\emph on +máquina +\emph default +: +\emph on +directorio_actual +\emph default +$ +\end_layout + +\begin_layout Standard +La interfaz gráfica más común es X-Window, que actúa como proceso +\begin_inset Quotes cld +\end_inset + +servidor +\begin_inset Quotes crd +\end_inset + + al que se conectan las aplicaciones gráficas +\begin_inset Quotes cld +\end_inset + +cliente +\begin_inset Quotes crd +\end_inset + +. + Su diseño en red permite ejecutar aplicaciones gráficas remotas siempre + que en nuestra máquina se ejecute el servidor X. + Este captura los eventos de teclado y ratón y los envía a la aplicación, + a la vez que muestra la salida gráfica de la misma en ventanas. + Se arranca con +\family typewriter +startx +\family default +, aunque la mayoría de distribuciones ya lo ejecutan al inicio. +\end_layout + +\begin_layout Standard +El principal cliente de X-Window es el gestor de ventanas, que determina + la apariencia del escritorio y ventanas. + En Linux son populares KDE y GNOME, que cuentan con aplicaciones de todo + tipo las cuales son compatibles entre sí por funcionar con X, aunque existen + muchos más, como otros más ligeros. +\end_layout + +\begin_layout Subsection +La línea de comandos +\end_layout + +\begin_layout Standard +La consola de texto, terminal, intérprete, línea de comandos o +\emph on +shell +\emph default + de Linux es un programa denominado +\family typewriter +bash +\family default +. + Permite usar, configurar, personalizar y monitorizar el sistema de forma + muy avanzada, y realizar tareas repetitivas mediante +\begin_inset Quotes cld +\end_inset + +guiones shell +\begin_inset Quotes crd +\end_inset + + o +\emph on +scripts +\emph default +, series de órdenes que se almacenan en un archivo para ser ejecutadas posterior +mente con una sola orden. +\end_layout + +\begin_layout Standard +Los caracteres +\family typewriter +/| +\backslash +!?*<>&~()[];# +\family default +, así como el espacio, tienen un significado especial en +\family typewriter +bash +\family default +, por lo que no es conveniente usarlos en nombres de archivos y directorios. +\end_layout + +\begin_layout Standard +Los comandos se especifican como +\begin_inset Quotes cld +\end_inset + + +\family typewriter +<comando> [parámetros...] +\family default + +\begin_inset Quotes crd +\end_inset + +. + Los comandos que aceptan varias opciones (con +\family typewriter +- +\begin_inset Formula $(letra)$ +\end_inset + + +\family default +) permiten ponerlos separados por espacios o juntos, en cuyo caso solo se + indica el guión en el primero. +\end_layout + +\begin_layout Standard +El tabulador completa una ruta o una orden cuando ya hemos escrito suficientes + caracteres para distinguirla. + Las teclas arriba y abajo permiten navegar por el historial de órdenes, + al que podemos acceder con +\family typewriter +CTRL-R +\family default + y tecleando una subcadena, con el comando +\family typewriter +history +\family default + o con +\family typewriter +! +\emph on +número_de_orden +\family default +\emph default +. +\end_layout + +\begin_layout Standard +Para evitar la interpretación de cualquier caracter reservado, se introduce + +\family typewriter + +\backslash + +\family default + delante o se encierra todo (el parámetro o parte de él) entre comillas + simples o dobles (la interpretación de estas, y del +\family typewriter + +\backslash + +\family default +, también pueden ser anuladas por +\family typewriter + +\backslash + +\family default +). +\end_layout + +\begin_layout Standard +Para salir de la línea de comandos se usa el comando interno +\family typewriter +exit +\family default +. + Linux tiene una serie de terminales virtuales. + Para acceder a una, se pulsa +\family typewriter +CTRL-ALT-F +\begin_inset Formula $n$ +\end_inset + + +\family default +, donde +\begin_inset Formula $n$ +\end_inset + + es el número de la terminal. + En una de ellas está la interfaz gráfica, en el caso de Ubuntu, en la 7. + Para copiar y pegar en dichas terminales virtuales, se marca el texto a + copiar de principio a fin pulsando el botón izquierdo del ratón y después, + con el cursor situado donde se quiere pegar el texto, se pulsa el botón + central. +\end_layout + +\begin_layout Subsection +Órdenes de ayuda +\end_layout + +\begin_layout Itemize + +\family typewriter +man +\emph on +page +\family default +\emph default +: Muestra un manual de la orden que se le indica como parámetro, del que + se sale pulsando +\family typewriter +q +\family default +. +\end_layout + +\begin_layout Itemize + +\family typewriter +info +\emph on +page +\family default +\emph default +: Misma función, aunque funciona de forma distinta. +\end_layout + +\begin_layout Itemize + +\family typewriter +help +\emph on +command +\family default +\emph default +: Muestra algo de información sobre un comando interno. +\end_layout + +\begin_layout Itemize +También se puede obtener información llamando al comando con +\family typewriter +-h +\family default +, +\family typewriter +-? +\family default + o +\family typewriter +--help +\family default +. +\end_layout + +\begin_layout Subsection +El sistema de ficheros +\end_layout + +\begin_layout Standard +Todo el almacenamiento se considera un sistema único de ficheros jerárquico + que parte del directorio raíz ( +\family typewriter +/ +\family default +) y cuyas entradas pueden ser ficheros (regulares, por caracteres, por bloques + o enlaces simbólicos) u otros directorios. +\end_layout + +\begin_layout Itemize +Los +\series bold +enlaces simbólicos +\series default + son +\begin_inset Quotes cld +\end_inset + +punteros +\begin_inset Quotes crd +\end_inset + + a otras entradas del sistema de ficheros, que almacenan la ruta de estas. + Si el archivo original cambia de lugar o es eliminado, el enlace queda + +\begin_inset Quotes cld +\end_inset + +colgando +\begin_inset Quotes crd +\end_inset + +, apuntado a nada. +\end_layout + +\begin_layout Itemize +Los +\series bold +enlaces físicos +\series default + o +\series bold +duros +\series default + se diferencian en que el fichero creado originalmente es indistinguible + del enlace, de forma que solo al borrar el último enlace se libera el espacio + en disco. + Sin embargo, no se puede crear un enlace físico a un fichero en otro disco. +\end_layout + +\begin_layout Standard +Al indicar una ruta, se usa el caracter +\family typewriter +/ +\family default + para separar directorios y ficheros. + El punto ( +\family typewriter +. +\family default +) en un nombre de archivo se usa opcionalmente para agrupar archivos que + serán abiertos con la misma aplicación, diferenciando por +\series bold +extensiones +\series default +, y si se pone al principio de un archivo o directorio, este cuenta como + +\series bold +oculto +\series default +. +\end_layout + +\begin_layout Standard +Una ruta que empiece por +\family typewriter +/ +\family default + es +\series bold +absoluta +\series default + y parte de la raíz. + Cualquier otra ruta es +\series bold +relativa +\series default + y parte del directorio actual. + El directorio actual se denota por +\family typewriter +. +\family default +, el directorio +\begin_inset Quotes cld +\end_inset + +padre +\begin_inset Quotes crd +\end_inset + + de otro por +\family typewriter +.. + +\family default + y el directorio +\begin_inset Quotes cld +\end_inset + +home +\begin_inset Quotes crd +\end_inset + + (del usuario que ha iniciado sesión) por +\family typewriter +~ +\family default +. + Los nombres de archivos diferencian mayúsculas de minúsculas. +\end_layout + +\begin_layout Standard +Los directorios importantes son los siguientes: +\end_layout + +\begin_layout Itemize + +\family typewriter +/bin +\family default +: Programas básicos del sistema. +\end_layout + +\begin_layout Itemize + +\family typewriter +/usr/bin +\family default +: Aplicaciones y otros programas. +\end_layout + +\begin_layout Itemize + +\family typewriter +/sbin +\family default +: Programas de administración (para superusuario). +\end_layout + +\begin_layout Itemize + +\family typewriter +/lib +\family default +: Bibliotecas del sistema. +\end_layout + +\begin_layout Itemize + +\family typewriter +/usr/lib +\family default + Bibliotecas de aplicaciones. +\end_layout + +\begin_layout Itemize + +\family typewriter +/etc +\family default +: Ficheros de configuración. +\end_layout + +\begin_layout Itemize + +\family typewriter +/home +\family default +: Directorios de usuarios. + En general, cada usuario tiene una carpeta +\family typewriter +/home/<user> +\family default +. +\end_layout + +\begin_layout Itemize + +\family typewriter +/tmp +\family default +: Ficheros temporales. +\end_layout + +\begin_layout Itemize + +\family typewriter +/dev +\family default +: Dispositivos. +\end_layout + +\begin_layout Itemize + +\family typewriter +/proc +\family default +: Visión dinámica del sistema. +\end_layout + +\begin_layout Standard +Los dos últimos directorios mencionados no existen en el disco, sino que + el SO proporciona esta percepción por comodidad. + A veces +\family typewriter +/tmp +\family default + tampoco está en disco, sino que solo existe en la RAM. +\end_layout + +\begin_layout Standard +Los discos +\begin_inset Quotes cld +\end_inset + +tal cual +\begin_inset Quotes crd +\end_inset + + se representan como archivos, que habitualmente se denominan +\family typewriter +/dev/sda +\family default +, +\family typewriter +/dev/sdb +\family default +, etc., y sus particiones +\family typewriter +/dev/sda1 +\family default +, +\family typewriter +/dev/sda2 +\family default +, etc., y +\family typewriter +/dev/null +\family default + indica un archivo virtual que descarta todo lo que se escribe en él. +\end_layout + +\begin_layout Standard +En +\family typewriter +bash, +\family default +si un parámetro es una ruta, podemos usar comodines, y el parámetro se sustituye + por la lista de rutas de archivo que cumplen la condición (si existen). +\end_layout + +\begin_layout Itemize + +\family typewriter +* +\family default +: Cero o más caracteres. +\end_layout + +\begin_layout Itemize + +\family typewriter +? +\family default +: Un caracter. +\end_layout + +\begin_layout Itemize + +\family typewriter +[ +\begin_inset Formula $a$ +\end_inset + +- +\begin_inset Formula $z$ +\end_inset + +] +\family default +: Un caracter en el rango. +\end_layout + +\begin_layout Itemize + +\family typewriter +[! +\begin_inset Formula $a$ +\end_inset + +- +\begin_inset Formula $z$ +\end_inset + +] +\family default +: Un caracter que no esté en el rango. +\end_layout + +\begin_layout Itemize + +\family typewriter +{ +\begin_inset Formula $n1$ +\end_inset + +, +\begin_inset Formula $n2$ +\end_inset + +, +\begin_inset Formula $\dots$ +\end_inset + + +\family default +}: Cualquier secuencia de caracteres de la lista. +\end_layout + +\begin_layout Standard +Comandos: +\end_layout + +\begin_layout Itemize + +\family typewriter +pwd +\family default +. + Indica el directorio en que nos encontramos (ruta completa). +\end_layout + +\begin_layout Itemize + +\family typewriter +cd [-|dir] +\family default +. + Cambia al directorio especificado (o a +\family typewriter +~ +\family default +). + Si se indica +\family typewriter +- +\family default +, vuelve al último directorio en que estuvimos. +\end_layout + +\begin_layout Itemize + +\family typewriter +ls [-dlrRaStu] [dir] +\family default +. + Lista las entradas del directorio +\family typewriter +dir +\family default + o del actual: +\end_layout + +\begin_deeper +\begin_layout Itemize + +\family typewriter +-l +\family default +: Formato largo. + En vez de mostrar solo el nombre, muestra el total y a con +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +ti +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +nua +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +ción, para cada archivo: +\end_layout + +\begin_deeper +\begin_layout Itemize +Tipo ( +\family typewriter +- +\family default +: Archivo; +\family typewriter +d +\family default +: Directorio; +\family typewriter +l +\family default +: Enlace simbólico; +\family typewriter +c +\family default +: Fichero por caracteres; +\family typewriter +b +\family default +: Fichero por bloques) y permisos. +\end_layout + +\begin_layout Itemize +Número de enlaces duros. +\end_layout + +\begin_layout Itemize +Usuario. +\end_layout + +\begin_layout Itemize +Grupo. +\end_layout + +\begin_layout Itemize +Tamaño (bytes). +\end_layout + +\begin_layout Itemize +Fecha y hora de modificación. +\end_layout + +\begin_layout Itemize +Nombre. +\end_layout + +\end_deeper +\begin_layout Itemize + +\family typewriter +-R +\family default +: Lista recursiva. + Muestra también el contenido de todos los subdirectorios. +\end_layout + +\begin_layout Itemize + +\family typewriter +-a +\family default +: Muestra también las entradas ocultas (cuyo nombre empieza por +\family typewriter +. +\family default +). +\end_layout + +\begin_layout Itemize + +\family typewriter +-S +\family default +: Ordena por tamaño. +\end_layout + +\begin_layout Itemize + +\family typewriter +-t +\family default +: Ordena por fecha y hora de última modificación. +\end_layout + +\begin_layout Itemize + +\family typewriter +-u +\family default +: Ordena por fecha y hora de último acceso. +\end_layout + +\begin_layout Itemize + +\family typewriter +-U +\family default +: Ordena por fecha y hora de creación. +\end_layout + +\begin_layout Itemize + +\family typewriter +-r +\family default +: Invierte el orden escogido por +\family typewriter +-S|t|u|U +\family default +. +\end_layout + +\begin_layout Itemize + +\family typewriter +-d +\family default +: Lista la entrada correspondiente al subdirectorio indicado en lugar de + las entradas que este contiene. +\end_layout + +\end_deeper +\begin_layout Itemize + +\family typewriter +cat [file] +\family default +. + Muestra el contenido del +\family typewriter +file +\family default +, o de la entrada estándar. +\end_layout + +\begin_layout Itemize + +\family typewriter +more [file] +\family default +. + Igual pero permite mostrarlo poco a poco. +\end_layout + +\begin_layout Itemize + +\family typewriter +less [file] +\family default +. + Igual pero permite desplazarse arriba y abajo y buscar palabras con +\family typewriter +/ +\begin_inset Formula $palabra$ +\end_inset + + +\family default +. +\end_layout + +\begin_layout Itemize + +\family typewriter +hexdump -C [file] +\family default +: Muestra el contenido de +\family typewriter +file +\family default +, o de la entrada estándar, en he +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +xa +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +de +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +ci +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +mal con formato. +\end_layout + +\begin_layout Itemize + +\family typewriter +find [path] [match] [expr] +\family default +. + Busca en +\family typewriter +path +\family default + (o en el directorio actual) y sus subdirectorios, archivos que cumplan + los criterios ( +\family typewriter +match +\family default +) (o todos) y hace lo que indique la expresión ( +\family typewriter +expr +\family default +) (o muestra el nombre por la salida). +\end_layout + +\begin_deeper +\begin_layout Itemize +Criterios: +\end_layout + +\begin_deeper +\begin_layout Itemize + +\family typewriter +-name +\begin_inset Formula $nombre$ +\end_inset + + +\family default +: Nombre de la entrada (se pueden usar comodines, pero de forma que no los + sustituya la +\emph on +shell +\emph default +). +\end_layout + +\begin_layout Itemize + +\family typewriter +-iname +\begin_inset Formula $nombre$ +\end_inset + + +\family default +: Similar pero sin distinguir mayúsculas y minúsculas. +\end_layout + +\begin_layout Itemize + +\family typewriter +-user +\begin_inset Formula $usuario$ +\end_inset + + +\family default +: Usuario al que pertenece. +\end_layout + +\begin_layout Itemize + +\family typewriter +-group +\begin_inset Formula $grupo$ +\end_inset + + +\family default +: Grupo al que pertenece. +\end_layout + +\begin_layout Itemize + +\family typewriter +-type [c|b|d|l|f] +\family default +: Tipo de fichero (igual que en +\family typewriter +ls -l +\family default +, salvo que +\family typewriter +f +\family default + para fichero regular). +\end_layout + +\begin_layout Itemize + +\family typewriter +-mtime [+|-] +\begin_inset Formula $n$ +\end_inset + + +\family default +: Modificado hace más ( +\family typewriter ++ +\family default +), menos ( +\family typewriter +- +\family default +) o exactamente +\begin_inset Formula $n$ +\end_inset + + días. +\end_layout + +\begin_layout Itemize + +\family typewriter +-atime [+|-] +\begin_inset Formula $n$ +\end_inset + + +\family default +: Igual pero con el último acceso. +\end_layout + +\begin_layout Itemize + +\family typewriter +-amin [+|-] +\begin_inset Formula $n$ +\end_inset + + +\family default +: Igual que +\family typewriter +-atime +\family default + pero en minutos. +\end_layout + +\begin_layout Itemize + +\family typewriter +-size [+|-] +\begin_inset Formula $n$ +\end_inset + + +\family default +: Tamaño de más ( +\family typewriter ++ +\family default +), menos ( +\family typewriter +- +\family default +) o exactamente +\begin_inset Formula $512n$ +\end_inset + + bytes. +\end_layout + +\begin_layout Itemize + +\family typewriter +! +\family default +: Negación de lo siguiente. +\end_layout + +\begin_layout Itemize + +\family typewriter +-o +\family default +: Disyunción lógica. +\end_layout + +\begin_layout Itemize + +\family typewriter +-a +\family default +: Conjunción lógica (por defecto cuando se usan varios criterios). +\end_layout + +\end_deeper +\begin_layout Itemize +Expresiones: +\end_layout + +\begin_deeper +\begin_layout Itemize + +\family typewriter +-printf +\begin_inset Formula $\dots$ +\end_inset + + +\family default +: Imprime la secuencia de caracteres que se indica. + Secuencias de escape: +\family typewriter +%s +\family default +: Tamaño; +\family typewriter +%u +\family default +: Usuario; +\family typewriter +%p +\family default +: Ruta completa; etc. +\end_layout + +\end_deeper +\end_deeper +\begin_layout Itemize + +\family typewriter +which +\emph on +command +\family default +\emph default +. + Muestra la ubicación en el sistema de ficheros de un comando externo. + La lista de directorios donde la +\emph on +shell +\emph default + busca comandos externos se denomina +\family typewriter +PATH +\family default + y se puede consultar con +\family typewriter +echo $PATH +\family default +. +\end_layout + +\begin_layout Itemize + +\family typewriter +touch <file> +\family default +. + Crea un fichero o, si ya existía, actualiza su fecha de modificación. +\end_layout + +\begin_layout Itemize + +\family typewriter +cp [-iprRu] srcfile ... + destfile|destdir +\family default +. + Copia un fichero a otro, o varios ficheros a un directorio. +\end_layout + +\begin_deeper +\begin_layout Itemize + +\family typewriter +-R +\family default +, +\family typewriter +-r +\family default +: Copia recursiva, para copiar directorios. +\end_layout + +\begin_layout Itemize + +\family typewriter +-i +\family default +: Pide confirmación si el fichero de destino ya existía, para evitar sobreescrib +irlo. +\end_layout + +\begin_layout Itemize + +\family typewriter +-p +\family default +: Conserva la fecha de modificación al copiar. +\end_layout + +\begin_layout Itemize + +\family typewriter +-u +\family default +: No se copia si el destino tiene una fecha de modificación igual o posterior + al origen. +\end_layout + +\end_deeper +\begin_layout Itemize + +\family typewriter +mv srcfile|dirfile ... + destfile|destdir +\family default +. + Como +\family typewriter +cp +\family default + pero cambia la posición del archivo en vez de copiarlo. + Se puede usar para cambiar el nombre de un fichero o directorio. +\end_layout + +\begin_layout Itemize + +\family typewriter +rm [-ifrv] file|dir ... +\family default +. + Elimina ficheros y directorios. +\end_layout + +\begin_deeper +\begin_layout Itemize + +\family typewriter +-v +\family default +: Muestra los nombres de las entradas conforme se eliminan. +\end_layout + +\begin_layout Itemize + +\family typewriter +-i +\family default +: Pide confirmación para cada entrada. +\end_layout + +\begin_layout Itemize + +\family typewriter +-r +\family default +: Borrado recursivo, para eliminar directorios. +\end_layout + +\begin_layout Itemize + +\family typewriter +-f +\family default +: Nunca pide confirmación. +\end_layout + +\end_deeper +\begin_layout Itemize + +\family typewriter +mkdir dir +\family default +. + Crea un directorio vacío en la ruta especificada. +\end_layout + +\begin_layout Itemize + +\family typewriter +rmdir dir +\family default +. + Elimina el directorio indiciado si está vacío. +\end_layout + +\begin_layout Itemize + +\family typewriter +tar ... +\family default +. + Para manipulación de archivos. + Estos suelen tener la extensión +\family typewriter +.tar +\family default + o +\family typewriter +.tar.gz +\family default + (comprimido, también +\family typewriter +.tgz +\family default +). +\end_layout + +\begin_deeper +\begin_layout Itemize + +\family typewriter +tar c[zv][f archive] [files|dirs ...] +\family default +. + Comprime los ficheros y directorios indicados. +\end_layout + +\begin_layout Itemize + +\family typewriter +tar t[zv][f archive] +\family default +. + Lista los contenidos del archivo. +\end_layout + +\begin_layout Itemize + +\family typewriter +tar x[zv][f archive] +\family default +. + Extrae el contenido del archivo, recuperando también los permisos, estructura + de directorios, etc. +\end_layout + +\begin_layout Itemize + +\family typewriter +z +\family default +: Indica compresión GZip ( +\family typewriter +\SpecialChar endofsentence +gz +\family default +). +\end_layout + +\begin_layout Itemize + +\family typewriter +v +\family default +: Muestra los archivos conforme se comprimen o descomprimen. +\end_layout + +\begin_layout Itemize + +\family typewriter +f archive +\family default +: Indica el nombre del archivo. +\end_layout + +\end_deeper +\begin_layout Itemize + +\family typewriter +ln [-s] target link +\family default +. + Crea un enlace llamado +\family typewriter +link +\family default + al fichero +\family typewriter +target +\family default +. + Si +\family typewriter +link +\family default + es un directorio existente, se crea dentro el enlace con el nombre de +\family typewriter +target +\family default +. +\end_layout + +\begin_deeper +\begin_layout Itemize + +\family typewriter +-s +\family default +: El enlace es simbólico (si no se especifica, se crea un enlace duro). + En tal caso, la ruta del fichero +\family typewriter +target +\family default + se indica de forma relativa al directorio en que está +\family typewriter +link +\family default +. +\end_layout + +\end_deeper +\begin_layout Itemize + +\family typewriter +df +\family default +. + Informa del espacio total y libre en todos los sistemas de archivos montados. +\end_layout + +\begin_layout Itemize + +\family typewriter +du [-hs] dir ... +\family default +. + Muestra lo que ocupan realmente en el disco los directorios indicados junto + con todos sus ficheros y subdirectorios de forma recursiva. +\end_layout + +\begin_deeper +\begin_layout Itemize + +\family typewriter +-h +\family default +: Muestra en unidades más legibles como KB, MB o GB, en vez de en bloques + de 1024 bytes. +\end_layout + +\begin_layout Itemize + +\family typewriter +-s +\family default +: Muestra sólo el tamaño total para cada argumento en lugar de mostrar lo + que ocuparía cada entrada dentro de estos. +\end_layout + +\end_deeper +\begin_layout Subsection +Usuarios, grupos y permisos +\end_layout + +\begin_layout Standard +Existen tres tipos de +\series bold +usuarios +\series default +: normales; del sistema, vinculados a ciertas tareas del SO, y +\family typewriter +root +\family default + o +\series bold +superusuario +\series default +, que tiene control total y en el prompt aparece con +\family typewriter +# +\family default + en vez de +\family typewriter +$ +\family default +. + La información sobre los usuarios se guarda en +\family typewriter +/etc/passwd +\family default + y las contraseñas cifradas en +\family typewriter +/etc/shadow +\family default +. + Los usuarios se pueden organizar en +\series bold +grupos +\series default +, con diferentes permisos. + Cada usuario tiene un grupo principal, pero puede pertenecer a varios. + La información se almacena en +\family typewriter +/etc/group +\family default +. +\end_layout + +\begin_layout Standard +Un usuario puede tener tres permisos sobre un fichero o directorio: +\end_layout + +\begin_layout Itemize +\begin_inset Formula $r$ +\end_inset + +: Lectura. +\end_layout + +\begin_layout Itemize +\begin_inset Formula $w$ +\end_inset + +: Escritura. +\end_layout + +\begin_layout Itemize +\begin_inset Formula $x$ +\end_inset + +: Ejecución de un fichero o acceso al contenido de un directorio. +\end_layout + +\begin_layout Standard +Cada entrada del sistema de ficheros lleva asociado un usuario y un grupo, + y existen permisos distintos para el usuario, el grupo y +\begin_inset Quotes cld +\end_inset + +el resto +\begin_inset Quotes crd +\end_inset + +. + Se suelen indicar con tres secuencias +\family typewriter +rwx +\family default + (para usuario, grupo y resto, en orden), de forma que para los permisos + que no se concedan se sustituye la letra por un +\family typewriter +- +\family default +. + Así es como se indica en +\family typewriter +ls -l +\family default +. + Comandos: +\end_layout + +\begin_layout Itemize + +\family typewriter +chmod perms file|dir +\family default +. + Cambia los permisos de un fichero o directorio. + El campo +\family typewriter +perms +\family default + indica los permisos en octal, asignando 1's a los permisos que se desea + conceder y 0's al resto, en el orden en que se muestran en +\family typewriter +ls -l +\family default +. +\end_layout + +\begin_layout Itemize + +\family typewriter +chown user file|dir +\family default +. + Cambia el propietario de un fichero o directorio. + Requiere permisos de superusuario. +\end_layout + +\begin_layout Itemize + +\family typewriter +chgrp group file|dir +\family default +. + Igual pero con el grupo. +\end_layout + +\begin_layout Itemize + +\family typewriter +whoami +\family default +. + Muestra nuestro nombre de usuario. +\end_layout + +\begin_layout Itemize + +\family typewriter +who +\family default +. + Muestra los usuarios actualmente conectados, con sus horas y lugares (terminale +s) de inicio de sesión. +\end_layout + +\begin_layout Itemize + +\family typewriter +w +\family default +. + Similar, pero además muestra qué está ejecutando cada usuario. +\end_layout + +\begin_layout Itemize + +\family typewriter +groups +\family default +. + Muestra a que grupos pertenecemos. +\end_layout + +\begin_layout Itemize + +\family typewriter +sudo command pars ... +\family default +. + Ejecuta el comando dado como superusuario (pide contraseña). +\end_layout + +\begin_deeper +\begin_layout Itemize + +\family typewriter +-s +\family default +: Si se indica esto (sin especificar un comando), simplemente cambia a su +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +per +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +u +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +sua +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +rio. +\end_layout + +\end_deeper +\begin_layout Itemize + +\family typewriter +login user +\family default +. + Cambia al usuario especificado (pide su contraseña). +\end_layout + +\begin_layout Subsection +Los procesos +\end_layout + +\begin_layout Standard +Los comandos separados por +\family typewriter +; +\family default + se ejecutan uno detrás de otro, y situar +\family typewriter +& +\family default + detrás de un comando (o entre dos comandos, en cuyo caso afecta al de la + izquierda) lanza un proceso en segundo plano, ejecutando lo que va delante + sin esperar o permitiendo usar la shell sin que termine de ejecutarse. + +\family typewriter +bash +\family default + muestra entonces el PID (identificador de proceso, entero único para cada + uno). + +\family typewriter +CTRL-C +\family default + +\begin_inset Quotes cld +\end_inset + +mata +\begin_inset Quotes crd +\end_inset + + a un proceso en primer plano, y +\family typewriter +CTRL-Z +\family default + lo pausa (lo +\begin_inset Quotes cld +\end_inset + +duerme +\begin_inset Quotes crd +\end_inset + +). +\end_layout + +\begin_layout Standard +El directorio virtual +\family typewriter +/proc +\family default + se consulta como un sistema de ficheros normal, pero realmente lo mantiene + el núcleo en tiempo real, y contiene un subdirectorio por cada PID de proceso + activo, con información sobre el mismo como ficheros abiertos, mapa de + memoria, etc. + También contiene: +\end_layout + +\begin_layout Itemize + +\family typewriter +/proc/cpuinfo +\family default +: Información sobre la CPU. +\end_layout + +\begin_layout Itemize + +\family typewriter +/proc/meminfo +\family default +: Información sobre la memoria. +\end_layout + +\begin_layout Itemize + +\family typewriter +/proc/version +\family default +: Versión del núcleo. +\end_layout + +\begin_layout Itemize + +\family typewriter +/proc/sys +\family default +: Directorio con los parámetros de distintos subsistemas del núcleo. + Si se tienen los permisos, se puede hasta cambiar el comportamento del + núcleo en tiempo de ejecución. +\end_layout + +\begin_layout Itemize + +\family typewriter +kill [-9] PID +\family default +: Lanza una señal para terminar el proceso con el PID indicado. + Este puede +\begin_inset Quotes cld +\end_inset + +capturar +\begin_inset Quotes crd +\end_inset + + dicha señal evitando su finalización (puede ser útil en ciertos casos). + Si aun así se desea terminar dicho proceso, la opción +\family typewriter +-9 +\family default + manda una señal +\begin_inset Quotes cld +\end_inset + +no capturable +\begin_inset Quotes crd +\end_inset + +. +\end_layout + +\begin_layout Standard +Cada proceso tiene una entrada estándar ( +\family typewriter +stdin +\family default +, por defecto el teclado), una salida estándar ( +\family typewriter +stdout +\family default +, por defecto la pantalla) y una salida estándar de error ( +\family typewriter +stderr +\family default +). + En +\family typewriter +bash +\family default +, detrás de un comando, +\family typewriter +> +\begin_inset Formula $archivo$ +\end_inset + + +\family default + redirige +\family typewriter +stdout +\family default + a un archivo, que sobreescribe en caso de existir, y +\family typewriter +>> +\begin_inset Formula $archivo$ +\end_inset + + +\family default + hace lo mismo pero, si el archivo ya existe, en vez de sobreescribirlo + añade la salida al final. + Igualmente, +\family typewriter +2> +\family default + y +\family typewriter +2>> +\family default + hacen lo mismo pero con +\family typewriter +stderr +\family default +, y < +\family typewriter + +\begin_inset Formula $archivo$ +\end_inset + + +\family default + toma +\family typewriter +stdin +\family default + de ese archivo. +\end_layout + +\begin_layout Standard +Otra forma de comunicación entre procesos son las +\series bold +tuberías +\series default + que permiten redireccionar el +\family typewriter +stdout +\family default + de un fichero con el +\family typewriter +stdin +\family default + del siguiente. + En +\family typewriter +bash +\family default + se indican con +\family typewriter +/ +\family default +. + Existe un repertorio de comandos útiles, llamados +\series bold +filtros +\series default +, especialmente diseñados para comunicarse mediante tuberías. +\end_layout + +\begin_layout Standard +Comandos: +\end_layout + +\begin_layout Itemize + +\family typewriter +ps [-Af] +\family default +. + Lista los procesos activos. +\end_layout + +\begin_deeper +\begin_layout Itemize + +\family typewriter +-A +\family default +: Muestra todos los procesos en lugar de solo los lanzados desde ese terminal. +\end_layout + +\begin_layout Itemize + +\family typewriter +-f +\family default +: Muestra información adicional de interes, como el PID, el consumo de CPU, + el PID del proceso padre (PPID), hora de lanzamiento, etc. +\end_layout + +\end_deeper +\begin_layout Itemize + +\family typewriter +top +\family default +. + Monitoriza en tiempo real los procesos activos, mostrando información de + ellos similar a +\family typewriter +ps -Af +\family default +. +\end_layout + +\begin_layout Itemize + +\family typewriter +fg +\family default +: Pasa el último proceso pausado (despertándolo) o el último en ser iniciado + en segundo plano al primer plano. +\end_layout + +\begin_layout Itemize + +\family typewriter +bg +\family default +: Despierta un proceso pausado pasándolo al segundo plano. +\end_layout + +\begin_layout Standard +\begin_inset Note Comment +status open + +\begin_layout Itemize + +\family typewriter +sort [-n] +\family default +. + Ordena alfabéticamente las líneas de la entrada. +\end_layout + +\begin_deeper +\begin_layout Itemize + +\family typewriter +-n +\family default +: Ordena numéricamente. +\end_layout + +\end_deeper +\begin_layout Itemize + +\family typewriter +grep <pattern> +\family default +. + Muestra solo las líneas de la entrada que contengan cierto patrón. +\end_layout + +\begin_layout Itemize + +\family typewriter +cut -c +\family default + +\begin_inset Formula $start$ +\end_inset + + +\family typewriter +- +\begin_inset Formula $end$ +\end_inset + + +\family default +. + Muestra solo las columnas +\begin_inset Formula $start$ +\end_inset + +– +\begin_inset Formula $end$ +\end_inset + + de cada fila. +\end_layout + +\begin_layout Itemize + +\family typewriter +head [- +\begin_inset Formula $n$ +\end_inset + +] +\family default +. + Muestra solo las primeras +\begin_inset Formula $n$ +\end_inset + + (10) líneas. +\end_layout + +\begin_layout Itemize + +\family typewriter +tail [- +\begin_inset Formula $n$ +\end_inset + +] +\family default +. + Muestra solo las últimas +\begin_inset Formula $n$ +\end_inset + + (10) líneas. +\end_layout + +\begin_layout Itemize + +\family typewriter +uniq +\family default +. + Elimina líneas repetidas. +\end_layout + +\begin_layout Itemize + +\family typewriter +wc [-lcw] +\family default +. + Cuenta las líneas ( +\family typewriter +-l +\family default +), caracteres ( +\family typewriter +-c +\family default +) y/o palabras ( +\family typewriter +-w +\family default +). +\end_layout + +\begin_layout Itemize + +\family typewriter +tr +\family default +. + Ejemplos: +\end_layout + +\begin_deeper +\begin_layout Itemize + +\family typewriter +tr "-z" "A-Z" +\family default +. + Convierte minúsculas a mayúsculas. +\end_layout + +\begin_layout Itemize + +\family typewriter +tr -d "0-9" +\family default +. + Elimina caracteres numéricos. +\end_layout + +\begin_layout Itemize + +\family typewriter +tr -d -c "0-9" +\family default +. + Elimina caracteres no numéricos o espacios. +\end_layout + +\end_deeper +\end_inset + + +\end_layout + +\begin_layout Subsection +Otros comandos +\end_layout + +\begin_layout Itemize + +\family typewriter +date +\family default +. + Devuelve la fecha y hora actuales. +\end_layout + +\begin_layout Itemize + +\family typewriter +cal +\family default +. + Calendario del mes/año actual. +\end_layout + +\begin_layout Itemize + +\family typewriter +clear +\family default +. + +\begin_inset Quotes cld +\end_inset + +Limpia +\begin_inset Quotes crd +\end_inset + + la pantalla del terminal. +\end_layout + +\begin_layout Itemize + +\family typewriter +reset +\family default +. + Resetea el terminal (para cuando se queda con caracteres extraños, como + tras hacer +\family typewriter +cat +\family default + de un fichero binario). +\end_layout + +\begin_layout Itemize + +\family typewriter +expr +\family default +. + Para cálculos aritméticos. + Ejemplo: +\family typewriter +expr 101 + 12 +\family default +. +\end_layout + +\begin_layout Itemize + +\family typewriter +xargs ... +\family default +. + Toma lo que se le pasa como parámetros (algún comando), le añade lo que + le llega por la entrada estándar, lo interpreta como comando + parámetros + y lo ejecuta. +\end_layout + +\begin_layout Itemize + +\family typewriter +split [-d] -b +\begin_inset Formula $n$ +\end_inset + + [file [prefix]] +\family default +. + Divide el archivo +\family typewriter +file +\family default + (o la entrada estándar) en trozos de tamaño +\begin_inset Formula $n$ +\end_inset + + (por defecto bytes salvo que le suceda una +\family typewriter +k +\family default + (KB), etc.) cuyo nombre empieza por +\family typewriter +prefix +\family default + (o +\family typewriter +x +\family default +). +\end_layout + +\begin_deeper +\begin_layout Itemize + +\family typewriter +-d +\family default +: Usa sufijos numéricos en vez de por letras. +\end_layout + +\end_deeper +\end_body +\end_document diff --git a/fc/n5.lyx b/fc/n5.lyx new file mode 100644 index 0000000..66b2ee2 --- /dev/null +++ b/fc/n5.lyx @@ -0,0 +1,1515 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures false +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style swiss +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard +Una +\series bold +instrucción +\series default + es un conjunto de símbolos que representan una operación a realizar por + la CPU, y un +\series bold +programa +\series default + es un conjunto ordenado de instrucciones que debe ejecutar el computador + sobre unos datos para procesarlos y obtener un resultado. + Las instrucciones se almacenan en memoria principal y se ejecutan en secuencia, + salvo por instrucciones de salto. + Tipos de instrucciones: +\end_layout + +\begin_layout Itemize + +\series bold +De movimiento de datos +\series default + entre registros de la CPU y direcciones de memoria. +\end_layout + +\begin_layout Itemize + +\series bold +Aritmético-lógicas: +\series default + Suma, resta, multiplicación, división, AND, OR, desplazamientos, ... + y operaciones de punto flotante. +\end_layout + +\begin_layout Itemize + +\series bold +Instrucciones de salto: +\series default + Condicionales, incondicionales y de manejo de subrutinas. +\end_layout + +\begin_layout Standard +Las instrucciones se organizan en campos de bits, que indican, en un determinado + formato, la operación a ejecutar, los operandos de entrada y el lugar donde + dejar el resultado. + Distintos tipos de instrucción utilizan distintos formatos, pues necesitan + codificar información distinta. +\end_layout + +\begin_layout Standard +La CPU está formada por un +\series bold +camino de datos +\series default + ( +\series bold +CD +\series default +), encargado del procesamiento, y una +\series bold +unidad de control +\series default + ( +\series bold +UC +\series default +), que decodifica las instrucciones y +\begin_inset Quotes cld +\end_inset + +controla +\begin_inset Quotes crd +\end_inset + + al camino de datos. + En todo momento, la UC mantiene un +\series bold +contador de programa +\series default + ( +\series bold +PC +\series default +, +\emph on +program counter +\emph default + o +\series bold +IP +\series default +, +\emph on +instruction pointer +\emph default +) que contiene la dirección de la siguiente instrucción a ejecutar, y un + +\series bold +registro de instrucción +\series default + ( +\series bold +RI +\series default +), que contiene la instrucción a ejecutar. + A mayor número de instrucciones mayor complejidad de la UC y más número + de bits necesarios en el campo de código. + Dos tendencias: +\end_layout + +\begin_layout Itemize + +\series bold +RISC +\series default + ( +\series bold +\emph on +Reduced Instruction Set Computers +\series default +\emph default +): pocas instrucciones, sencillas y que se ejecutan en pocos ciclos. +\end_layout + +\begin_layout Itemize + +\series bold +CISC +\series default + ( +\series bold +\emph on +Complex Instruction Set Computers +\series default +\emph default +): muchas instrucciones, complejas y que requieren muchos ciclos de reloj. +\end_layout + +\begin_layout Section +Jerarquía de traducción +\end_layout + +\begin_layout Standard +Las instrucciones de la CPU, llamadas +\series bold +instrucciones máquina +\series default +, se almacenan en binario. + Programarlas directamente en +\series bold +lenguaje +\series default + o +\series bold +código máquina +\series default + es muy difícil y propenso a errores, por lo que los +\series bold +lenguajes de programación +\series default + representan las instrucciones de forma simbólica. + Existen principalmente dos tipos: +\end_layout + +\begin_layout Itemize + +\series bold +Lenguaje ensamblador: +\series default + Instrucciones representadas simbólicamente, en ASCII, que se corresponden + directamente con instrucciones máquina y datos binarios. +\end_layout + +\begin_layout Itemize + +\series bold +Lenguajes de alto nivel: +\series default + Permiten expresar los programas de forma más cercana a la forma de pensar + del programador, con variables, tipos de datos, funciones/procedimientos, + condiciones, bucles, etc. + Existen multitud de paradigmas (imperativo, orientado a objetos, funcional...) + y de lenguajes (C, C++, Java, Haskell, ...). + El lenguaje C, aun siendo de alto nivel, es más cercano a la máquina, y + es el lenguaje nativo de UNIX/Linux. +\end_layout + +\begin_layout Standard +El programa +\series bold +compilador +\series default + traduce el código en un lenguaje de alto nivel a ensamblador, y el +\series bold +ensamblador +\series default + convierte este código a un +\series bold +fichero objeto +\series default +, que contiene: +\end_layout + +\begin_layout Itemize + +\series bold +Segmento de código ( +\family typewriter +.text +\family default +), +\series default + con instrucciones máquina. +\end_layout + +\begin_layout Itemize + +\series bold +Segmento de datos ( +\family typewriter +.data +\family default +), +\series default + con enteros, reales en punto flotante, cadenas de caracteres, etc. +\end_layout + +\begin_layout Itemize + +\series bold +Información de reubicación: +\series default + Para accesos a memoria, saltos, etc. + Necesaria a la hora de unir los distintos ficheros objeto. +\end_layout + +\begin_layout Standard +Una +\series bold +biblioteca +\series default + (en los apuntes pone +\series bold +librería +\series default + pero es una mala traducción) es un conjunto de módulos de código relacionados + que pueden ser usados en distintos programas. + Por ejemplo, en C existe una biblioteca estándar con funciones de E/S, + funciones matemáticas, etc., pero también existen bibliotecas para cálculo + matricial, gráficos en 3D, acceso a redes, etc. + Hay dos tipos: +\end_layout + +\begin_layout Itemize + +\series bold +Estáticas: +\series default + El código se incluye dentro del fichero ejecutable final. +\end_layout + +\begin_layout Itemize + +\series bold +Dinámicas: +\series default + El código no se incluye en el ejecutable, sino que este almacena la información + necesaria para cargar dicho código cuando va a ejecutarse. + Estas pueden ser usadas por varios ejecutables al mismo tiempo usando el + mismo espacio en memoria, y tampoco se desperdicia espacio en disco al + no tener que copiarse en cada ejecutable que las use, pero al cambiar el + ejecutable de máquina, este puede no funcionar por no tener una biblioteca + necesaria. +\end_layout + +\begin_layout Standard +El +\series bold +enlazador +\series default + o +\series bold +\emph on +linker +\series default +\emph default + une los distintos ficheros objeto generados junto con las funciones de + bibliotecas estáticas utilizadas, para generar un +\series bold +fichero ejecutable +\series default + final. + Entonces el +\series bold +cargador +\series default + o +\series bold +\emph on +loader +\series default +\emph default +, una parte del SO, lee este fichero del disco, lo ubica en memoria, realiza + las transformaciones necesarias y le pasa el control. +\end_layout + +\begin_layout Section +Ensamblador de x86-64 +\end_layout + +\begin_layout Standard +Los archivos de código ensamblador están formados por segmentos como el + segmento de datos, indicado por +\family typewriter +.data +\family default +, y el segmento de código, indicado por +\family typewriter +.text +\family default +. + En cualquier punto se puede usar una +\series bold +etiqueta +\series default + (identificador seguido de +\family typewriter +: +\family default +) para representar una dirección de memoria y referirnos a ella en otra + parte del código. +\end_layout + +\begin_layout Standard +El segmento de datos contiene directivas como +\family typewriter +.long +\begin_inset Formula $n$ +\end_inset + + +\family default +, que indica un número de 32 bits, o +\family typewriter +.string " +\begin_inset Formula $\dots$ +\end_inset + +" +\family default + que genera una secuencia de caracteres acabada en un byte 0. + El segmento de código contiene instrucciones en ensamblador. + Sus operandos pueden ser: +\end_layout + +\begin_layout Itemize + +\series bold +Registros: +\series default + Son de acceso muy rápido, al estar en la propia CPU, y contienen valores + intermedios de los cálculos. + En x86-64, son de 64 bits, y son los siguientes: +\end_layout + +\begin_deeper +\begin_layout Itemize +De uso general: +\family typewriter +RAX +\family default +, +\family typewriter +RBX +\family default +, +\family typewriter +RCX +\family default +, +\family typewriter +RDX +\family default +, +\family typewriter +R8 +\family default +– +\family typewriter +R15 +\family default +. +\end_layout + +\begin_layout Itemize +Índices: +\family typewriter +RSI +\family default +, +\family typewriter +RDI +\family default +, para acceder a posiciones de una tabla. +\end_layout + +\begin_layout Itemize +Para la pila: +\family typewriter +RSP +\family default + (puntero de pila), +\family typewriter +RBP +\family default + (puntero base de pila). +\end_layout + +\begin_layout Itemize +Puntero de instrucción: +\family typewriter +RIP +\family default +. +\end_layout + +\begin_layout Itemize +Registro de estado: +\family typewriter +RFLAGS +\family default +, contiene información sobre el estado del procesador y el resultado de + la ejecución de instrucciones, y afecta a los saltos condicionales. +\end_layout + +\begin_layout Itemize +También se puede trabajar con menos de 64 bits. + Así, +\family typewriter +EAX +\family default + son los 32 bits inferiores de +\family typewriter +RAX +\family default +, +\family typewriter +AX +\family default + los 16 bits inferiores de +\family typewriter +EAX +\family default +, +\family typewriter +AL +\family default + los 8 bits inferiores y +\family typewriter +AH +\family default + los 8 bits superiores de +\family typewriter +AX +\family default +. +\end_layout + +\begin_layout Itemize +En ensamblador, se representan con +\family typewriter +% +\emph on +nombre_en_minúsculas +\family default +\emph default +. +\end_layout + +\end_deeper +\begin_layout Itemize + +\series bold +Memoria: +\series default + Hay hasta +\begin_inset Formula $2^{64}$ +\end_inset + + celdas de memoria direccionables de 1 byte. + Realmente los programas se mueven en un espacio virtual de direcciones + que el hardware transforma a direcciones físicas. + En x86-64 se puede trabajar muchas veces directamente en memoria, sin pasar + por registros, aunque el acceso es más lento. + En ensamblador, para hacer re +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +fe +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +ren +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +cia a una dirección de memoria, se usa +\family typewriter +\emph on +dirección +\emph default +( +\emph on +%reg1 +\emph default +, +\emph on +%reg2 +\emph default +, +\emph on +potencia_de_2 +\emph default +) +\family default + para acceder a la celda +\begin_inset Formula $dirección+\%reg1+\%reg2\cdot potencia\_de\_2$ +\end_inset + +, donde la potencia de 2 debe ser pequeña y todos los campos son opcionales. + Abreviaturas: +\family typewriter +( +\emph on +%reg1 +\emph default +) +\family default +, +\family typewriter +\emph on +dirección +\family default +\emph default +\SpecialChar endofsentence + +\end_layout + +\begin_layout Itemize + +\series bold +Constantes: +\series default + Números enteros directamente en el código, que en ensamblador se escriben + +\family typewriter +$ +\begin_inset Formula $n$ +\end_inset + + +\family default +. + Se les suele llamar +\series bold +inmediatos +\series default +. +\end_layout + +\begin_layout Standard +A continuación vemos el +\series bold +repertorio de instrucciones +\series default + o ISA ( +\emph on +Instruction Set Architecture +\emph default +) de la arquitectura Intel x86-64, CISC, presente en los procesadores de + los PCs de 64 bits. + Los objetivos de un ISA son permitir que el diseño del procesador y del + compilador sean sencillos, maximizar el rendimiento y minimizar el coste. + En el caso de Intel, otro objetivo fue mantener la compatibilidad con procesado +res anteriores, lo que llevó a soluciones menos elegantes y eficientes pero + ayudó a mantener la cuota de mercado. +\end_layout + +\begin_layout Standard +Algunos tipos de instrucciones: +\end_layout + +\begin_layout Enumerate + +\series bold +Aritmético-lógicas: +\series default + +\family typewriter +add +\family default +, +\family typewriter +sub +\family default +, +\family typewriter +imul +\family default +, +\family typewriter +and +\family default +, +\family typewriter +or +\family default +, +\family typewriter +xor +\family default +, ... + +\family typewriter +\emph on +(instr.) +\emph default + +\emph on +src +\emph default +, +\emph on +dst +\family default +\emph default +. + +\begin_inset Formula $dst=dst\circ src$ +\end_inset + +. + +\end_layout + +\begin_deeper +\begin_layout Enumerate + +\series bold +Incrementos y decrementos: +\series default + +\family typewriter +inc +\family default +, +\family typewriter +dec +\family default +. + +\family typewriter +\emph on +(instr.) +\emph default + +\emph on +dst +\family default +\emph default +. + +\begin_inset Formula $dst=dst\pm1$ +\end_inset + +. +\end_layout + +\begin_layout Enumerate + +\series bold +Desplazamiento de bits: +\series default + +\family typewriter +shr +\family default + (despl. + lógico a la der.), +\family typewriter +shl +\family default + (despl. + lógico a la izq.), +\family typewriter +sar +\family default + (despl. + aritmético a la der.), +\family typewriter +sal +\family default + (despl. + aritmético a la izq.) ... + +\family typewriter +\emph on +(instr.) +\emph default + +\emph on +n +\emph default +, +\emph on +dst +\family default +\emph default +. +\end_layout + +\end_deeper +\begin_layout Enumerate + +\series bold +De movimiento de datos: +\series default + +\family typewriter +mov +\emph on +src +\emph default +, +\emph on +dst +\family default +\emph default +. + +\begin_inset Formula $dst\leftarrow src$ +\end_inset + +. + +\end_layout + +\begin_layout Enumerate + +\series bold +Saltos incondicionales: +\series default + +\family typewriter +jmp +\emph on +pos +\family default +\emph default +. + +\begin_inset Formula $\text{\texttt{RIP}}\leftarrow pos$ +\end_inset + +. +\end_layout + +\begin_layout Enumerate + +\series bold +Saltos condicionales: +\series default + +\family typewriter +je +\family default + ( +\begin_inset Formula $=$ +\end_inset + +), +\family typewriter +jne +\family default + ( +\begin_inset Formula $\neq$ +\end_inset + +), +\family typewriter +jg +\family default + ( +\begin_inset Formula $>$ +\end_inset + +), +\family typewriter +jge +\family default + ( +\begin_inset Formula $\geq$ +\end_inset + +), +\family typewriter +jl +\family default + ( +\begin_inset Formula $<$ +\end_inset + +), +\family typewriter +jle +\family default + ( +\begin_inset Formula $\leq$ +\end_inset + +), +\family typewriter +ja +\family default + ( +\begin_inset Formula $u>$ +\end_inset + +), +\family typewriter +jae +\family default + ( +\begin_inset Formula $u\geq$ +\end_inset + +), +\family typewriter +jb +\family default + ( +\begin_inset Formula $u<$ +\end_inset + +), +\family typewriter +jbe +\family default + ( +\begin_inset Formula $u\leq$ +\end_inset + +)... + donde +\begin_inset Formula $u$ +\end_inset + + en la notación signfica +\begin_inset Quotes cld +\end_inset + +sin signo +\begin_inset Quotes crd +\end_inset + +. + +\family typewriter +\emph on +(instr.) +\emph default + +\emph on +pos +\family default +\emph default +. + Si la instrucción anterior es +\family typewriter +cmp +\emph on +a +\emph default +, +\emph on +b +\family default +\emph default +, entonces esta hace +\begin_inset Formula $\text{\texttt{RIP}}\leftarrow pos$ +\end_inset + + si y sólo si +\begin_inset Formula $bRa$ +\end_inset + + (al revés de lo lógico). +\end_layout + +\begin_layout Standard +La +\series bold +pila +\series default + es una zona de memoria RAM gestionada como una estructura LIFO ( +\emph on +Last In First Out +\emph default +) con dos operaciones posibles: +\end_layout + +\begin_layout Itemize + +\series bold +Apilar: +\series default + +\family typewriter +push +\emph on +src +\family default +\emph default +, guarda el contenido de un registro sobre la cima de la pila. + Equivale a +\family typewriter +sub $8,%rsp +\family default + + +\family typewriter +mov +\emph on +src +\emph default +,(%rsp) +\family default +. +\end_layout + +\begin_layout Itemize + +\series bold +Desapilar: +\series default + +\family typewriter +pop +\emph on +dst +\family default +\emph default +, extrae lo que hay en la cima de la pila a un registro. + Equivale a +\family typewriter +mov (%rsp), +\emph on +dst +\family default +\emph default + + +\family typewriter +add $8,%rsp +\family default +. +\end_layout + +\begin_layout Standard +Una +\series bold +subrutina +\series default + es una secuencia de instrucciones que recibe (o no) unos parámetros, realiza + alguna acción y devuelve (o no) un resultado al código que +\begin_inset Quotes cld +\end_inset + +llamó +\begin_inset Quotes crd +\end_inset + + a la subrutina. + Para dar soporte a subrutinas se utiliza la pila, que se divide en +\series bold +marcos de pila +\series default + o +\series bold +\emph on +stack frames +\series default +\emph default +, formados por: +\end_layout + +\begin_layout Itemize + +\family typewriter +8(%rbp) +\family default +: Dirección de retorno. +\end_layout + +\begin_layout Itemize + +\family typewriter +(%rbp) +\family default +: +\family typewriter +%rbp +\family default + del marco de pila anterior. +\end_layout + +\begin_layout Itemize + +\family typewriter +- +\begin_inset Formula $\dots$ +\end_inset + +(%rbp) +\family default +: Variables locales, valores de registros guardados (usados por la subrutina + anterior). +\end_layout + +\begin_layout Itemize + +\family typewriter ++ +\begin_inset Formula $\dots$ +\end_inset + +(%rsp) +\family default +: Argumentos de salida para otras subrutinas (hasta 6 se pasan por registros). +\end_layout + +\begin_layout Standard +Manejo implícito: +\end_layout + +\begin_layout Itemize + +\family typewriter +call +\emph on +sub +\family default +\emph default +: Llama a una subrutina. + Equivale a +\family typewriter +push %rip +\family default + + +\family typewriter +jmp +\emph on +sub +\family default +\emph default +. +\end_layout + +\begin_layout Itemize + +\family typewriter +ret +\family default +: Vuelve de una subrutina. + Equivale a +\family typewriter +pop %rip +\family default +. +\end_layout + +\begin_layout Itemize + +\family typewriter +leave +\family default +: Desapila todo el marco de pila salvo la dirección de retorno y restablece + +\family typewriter +%rbp +\family default +. + Equivale a +\family typewriter +mov %rbp, %rsp +\family default + + +\family typewriter +pop %rbp +\family default +. +\end_layout + +\begin_layout Standard +Los mnemónicos vistos de instrucciones que admiten parámetros de distintos + tamaños (todos salvo saltos y manejo implícito de subrutinas) realmente + son versiones generales de otros que son iguales pero se le añade una letra + detrás al nombre de la instrucción: +\family typewriter +b +\family default + (byte) 8 bits, +\family typewriter +w +\family default + (word) 16 bits, +\family typewriter +l +\family default + (long) 32 bits y +\family typewriter +q +\family default + (quad) 64 bits. + Otros caso es el de, por ejemplo, +\family typewriter +movslq +\family default + ( +\emph on +Move Signed Long to Quad +\emph default +, mover entero con signo de 32 bits a 64). +\end_layout + +\begin_layout Section +Codificación de las instrucciones +\end_layout + +\begin_layout Standard +Las instrucciones de x86-64 (CISC) son de longitud variable, mientras que + las de MIPS 32 (RISC) son todas de 32 bits. + En x86-64, el código de operación es el primer byte, en el que a veces + se codifica el registro involucrado. +\end_layout + +\begin_layout Standard +En un fichero objeto, el código se encuentra sin reubicar, de forma que + los campos de las instrucciones correspondientes a las direcciones de memoria + están vacíos o contienen direcciones relativas. + Tras el enlazado y la carga, el programa se dice que se +\series bold +reubica +\series default +, es decir, los campos de direcciones de memoria son modificados de acuerdo + a la posición de la memoria (virtual) en la que se carga el programa. + La memoria virtual es administrada por la +\series bold +unidad de manejo de memoria +\series default + ( +\series bold +MMU +\series default +). +\end_layout + +\begin_layout Section +Herramientas de GNU +\end_layout + +\begin_layout Standard +El comando +\family typewriter +gcc +\family default + es el compilador GNU de C, el más utilizado en Linux. + El comando +\family typewriter +gcc main.c -o main +\family default + compila el archivo +\family typewriter +main.c +\family default + y genera el ejecutable +\family typewriter +main +\family default +. + Para generar sólo el código en ensamblador, usamos +\family typewriter +gcc main.c -fno-asynchronous-unwind-tables -S -o main.s +\family default +, que genera el archivo +\family typewriter +main.s +\family default + en ensamblador, donde +\family typewriter +-S +\family default + indica salida en ensamblador y +\family typewriter +-fno-asynchronous-unwind-tables +\family default + sirve para generar un código bastante más limpio que es más útil para su + estudio. +\end_layout + +\begin_layout Standard +La opción +\family typewriter +-c +\family default + indica salida como fichero objeto (sin enlazarlo). + Si hacemos +\family typewriter +gcc main.c -c -o main.o +\family default + y luego +\family typewriter +objdump -d main.o +\family default +, nos aparece una versión desensamblada del fichero objeto en el que podemos + ver cómo este se organiza. + A continuación podemos enlazar el fichero objeto con +\family typewriter +gcc main.o -o main +\family default +. + Entonces podemos usar +\family typewriter +ldd main +\family default + para ver la lista de bibliotecas dinámicas que necesita el programa y la + dirección virtual del programa a la que estas son mapeadas. + En particular, un programa sencillo necesita +\family typewriter +libc +\family default +, la biblioteca estándar de C, y +\family typewriter +linux-vdso +\family default + y +\family typewriter +linux-x86-64 +\family default +, que se corresponden con las llamadas al sistema de Linux. + La opción +\family typewriter +-static +\family default + de +\family typewriter +gcc +\family default + ( +\family typewriter +gcc -static main.o -o main +\family default +) enlaza solo con bibliotecas estáticas (lo que aumenta considerablemente + el tamaño). +\end_layout + +\begin_layout Standard +La opción +\family typewriter +-g +\family default + añade al ejecutable la información necesaria para depurar el programa (es + decir, cargarlo en memoria, reubicado, y ejecutarlo de manera controlada). + Entonces podemos usar +\family typewriter +gdb +\family default +, el depurador de GNU, llamándolo con +\family typewriter +gdb main +\family default +. + Este tiene su propio intérprete, en el cual: +\end_layout + +\begin_layout Itemize + +\family typewriter +l +\family default + lista el código original. +\end_layout + +\begin_layout Itemize + +\family typewriter +disassemble +\emph on + +\begin_inset Formula $sub$ +\end_inset + + +\family default +\emph default + lista el desensamblado de la subrutina +\begin_inset Formula $sub$ +\end_inset + +. +\end_layout + +\begin_layout Itemize + +\family typewriter +x/ +\begin_inset Formula $n$ +\end_inset + +bx +\begin_inset Formula $tag$ +\end_inset + + +\family default + muestra los +\begin_inset Formula $n$ +\end_inset + + primeros bytes a partir de la etiqueta +\begin_inset Formula $tag$ +\end_inset + +. +\end_layout + +\begin_layout Itemize + +\family typewriter +x/ +\begin_inset Formula $n$ +\end_inset + +w +\begin_inset Formula $tag$ +\end_inset + + +\family default + hace lo mismo pero con los +\begin_inset Formula $n$ +\end_inset + + primeros +\emph on +words +\emph default + (grupos de 4 bytes). +\end_layout + +\begin_layout Itemize + +\family typewriter +b +\begin_inset Formula $n$ +\end_inset + + +\family default + introduce un punto de interrupción ( +\emph on +breakpoint +\emph default +) en la línea +\begin_inset Formula $n$ +\end_inset + + del programa. +\end_layout + +\begin_layout Itemize + +\family typewriter +r +\family default + ejecuta el programa. +\end_layout + +\begin_layout Itemize + +\family typewriter +p +\begin_inset Formula $var$ +\end_inset + + +\family default + muestra el valor de una variable. +\end_layout + +\begin_layout Itemize + +\family typewriter +c +\family default + continúa la ejecución del programa por donde se dejó. +\end_layout + +\end_body +\end_document diff --git a/fc/n6.lyx b/fc/n6.lyx new file mode 100644 index 0000000..0d8903c --- /dev/null +++ b/fc/n6.lyx @@ -0,0 +1,1436 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures false +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style swiss +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard + +\series bold +Internet +\series default + es una red compuesta de millones de dispositivos, conocidos como +\series bold +hosts +\series default + o sistemas finales, que se conectan mediante distintos tipos de enlaces + con equipos de interconexión. + Un ejemplo de red es la RedIris, que conecta universidades y centros de + investigación y de +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +sa +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +rro +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +llo españoles. + Los +\series bold +hosts +\series default + están en el extremo de la red, y pueden ser ordenadores, PDAs, teléfonos + móviles, sensores, etc. +\end_layout + +\begin_layout Standard +La red se organiza por +\series bold +protocolos +\series default +, que definen el formato y orden de mensajes enviados y recibidos entre + entidades y las acciones realizadas al enviar o recibir dichos mensajes. + Estos se organizan en una arquitectura por +\series bold +capas +\series default +, en las que cada capa realiza un conjunto de tareas relacionadas, proporcionand +o servicios a la capa superior y usando los de la capa inferior. + Las entidades en la misma capa pero distintos hosts se llaman +\series bold +procesos pares +\series default +, y pueden comunicarse mediante unos protocolos. + Llamamos +\series bold +arquitectura de red +\series default + al conjunto de capas y de protocolos usados en cada una. + Las capas más importantes, de abajo a arriba, son: +\end_layout + +\begin_layout Enumerate + +\series bold +Física: +\series default + Transmisión de bits sobre el medio. +\end_layout + +\begin_layout Enumerate + +\series bold +Enlace: +\series default + Transferencia de datos entre elementos conectados directamente. + Protocolos como +\series bold +PPP +\series default + ( +\emph on +Point to Point Protocol +\emph default +), +\series bold +Ethernet +\series default + (IEEE 802.3), +\series bold +WiFi +\series default + (IEEE 802.11) o +\series bold +HLDC +\series default + ( +\emph on +High-Level Data link Control +\emph default +). +\end_layout + +\begin_layout Enumerate + +\series bold +Red: +\series default + Encaminamiento de paquetes del origen al destino. + Protocolo +\series bold +IP +\series default + ( +\emph on +Internet Protocol +\emph default +). +\end_layout + +\begin_layout Enumerate + +\series bold +Transporte: +\series default + Transferencia de información entre procesos. + Proporciona una forma de distinguir aplicaciones dentro de una misma máquina. + Protocolos +\series bold +TCP +\series default + ( +\emph on +Transmission Control Protocol +\emph default +) y +\series bold +UDP +\series default + ( +\emph on +User Datagram Protocol +\emph default +). +\end_layout + +\begin_layout Enumerate + +\series bold +Aplicación: +\series default + Transferencia de archivos, e-mail, web... + Protocolos como +\series bold +FTP +\series default + ( +\emph on +File Transfer Protocol +\emph default +), +\series bold +HTTP +\series default + ( +\emph on +HyperText Transfer Protocol +\emph default +), +\series bold +SMTP +\series default + ( +\emph on +Simple Mail Transfer Protocol +\emph default +), +\series bold +POP3 +\series default + ( +\emph on +Post Office Protocol +\emph default +), +\series bold +BitTorrent +\series default +... +\end_layout + +\begin_layout Section +Medios de transmisión +\end_layout + +\begin_layout Itemize + +\series bold +Par trenzado: +\series default + Dos hilos de cobre dispuestos de forma helicoidal y cubiertos por un aislante + de plástico. + Permite frecuencias de hasta +\begin_inset Formula $\unit[250]{MHz}$ +\end_inset + +. +\end_layout + +\begin_layout Itemize + +\series bold +Cable coaxial: +\series default + Núcleo de cobre recubierto por un aislante envuelto a su vez en un conductor + externo. + Permite mayor distancia de transmisión e inmunidad al ruido, con frecuencias + de hasta +\begin_inset Formula $\unit[900]{MHz}$ +\end_inset + +. +\end_layout + +\begin_layout Itemize + +\series bold +Fibra óptica: +\series default + Núcleo de fibra de vidrio (mayor densidad) recubierto de cristal o plástico + (menor densidad). + La presencia o ausencia de luz codifica un bit. + Permite una mayor velocidad de transmisión (varios GHz y por tanto varios + Gbps), distancia e inmunidad al ruido, además de tener menor coste. +\end_layout + +\begin_layout Section +Redes de acceso +\end_layout + +\begin_layout Standard +Para acceso residencial: +\end_layout + +\begin_layout Itemize + +\series bold +Acceso vía módem: +\series default + Hasta +\begin_inset Formula $\unit[56]{kbps}$ +\end_inset + + de ancho de banda, y no se puede hablar por teléfono mientras se usa. +\end_layout + +\begin_layout Itemize + +\series bold +DSL +\series default + ( +\emph on +Digital Suscriber Line +\emph default +): Se basa en una línea dedicada hasta la central telefónica, permitiendo + combinar datos y voz. +\end_layout + +\begin_layout Itemize + +\series bold +ADSL +\series default + ( +\emph on +Asymmetric DSL +\emph default +): Modalidad donde la velocidad de bajada y la de subida son distintas, + con hasta +\begin_inset Formula $\unit[3,5]{Mbps}$ +\end_inset + + en la línea ascendente (hacia Internet) y +\begin_inset Formula $\unit[24]{Mbps}$ +\end_inset + + en la descendente (hacia el host). +\end_layout + +\begin_layout Itemize + +\series bold +DOCSIS +\series default + ( +\emph on +Data Over Cable Service Interface Specification +\emph default +) sobre +\series bold +HFC +\series default + ( +\emph on +Hybrid Fibre Coaxial +\emph default +). + Une el hogar al router del ISP mediante cable y fibra, y al igual que ADSL, + es asimétrico. + El enlace hacia el router es compartido entre hogares, y estas redes son + desplegadas por compañías de cable y TV. +\end_layout + +\begin_layout Standard +Suele haber un módem ADSL o de cable, un router (normalmente con cortafuegos + y NAT), una red Ethernet y un punto de acceso WiFi, si bien varios de estos + elementos suelen agruparse. + Para acceso institucional, suele haber una red de área local conocida como + +\series bold +intranet +\series default +, conectada a un router que conecta a Internet. + En ella se usa: +\end_layout + +\begin_layout Itemize + +\series bold +Ethernet: +\series default + De 10 o +\begin_inset Formula $\unit[100]{Mbps}$ +\end_inset + + o 1 o +\begin_inset Formula $\unit[10]{Gbps}$ +\end_inset + +. + Suele usarse sobre par trenzado, y los hosts suelen conectarse con conmutadores. +\end_layout + +\begin_layout Itemize + +\series bold +WiFi: +\series default + 802.11g ( +\begin_inset Formula $\unit[54]{Mbps}$ +\end_inset + +), 802.11n ( +\begin_inset Formula $\unit[600]{Mbps}$ +\end_inset + +) u 802.11ac ( +\begin_inset Formula $\unit[1]{Gbps}$ +\end_inset + +). +\end_layout + +\begin_layout Standard +Un ejemplo de red es la RedIris (red académica española), que comunica las + universidades y centros de I+D españoles. +\end_layout + +\begin_layout Section +Direccionamiento IP +\end_layout + +\begin_layout Standard +En IPv4 (versión 4), cada interfaz de red tiene asignada una dirección IP + de 32 bits, que se expresa como 4 números entre 0 y 255 separados por puntos. +\end_layout + +\begin_layout Standard +Internet lo forma una serie de subredes interconectadas, y cuando un host + desea enviar información a otro, lo que hace mediante +\series bold +paquetes +\series default + IP, esta pasa normalmente a través de una serie de routers interconectados, + que deben decidir el siguiente router por el que enviarlo. + Hay dos formas de trabajar: +\end_layout + +\begin_layout Itemize + +\series bold +Conmutación de circuitos: +\series default + Se establece un circuito por cada conexión, permitiendo la entrega en orden + y con calidad e servicio. +\end_layout + +\begin_layout Itemize + +\series bold +Conmutación de paquetes: +\series default + Cada paquete se encamina por separado, por lo que la entrega puede ser + fuera de orden y no garantiza la calidad. +\end_layout + +\begin_layout Standard +Cualquier modalidad requiere +\series bold +algoritmos de encaminamiento +\series default +. +\end_layout + +\begin_layout Standard +En +\series bold +IPv4 +\series default + (versión 4), cada interfaz de red tiene asignada una dirección IP de 32 + bits, que suele expresarse como 4 números de 0–255 separados por puntos. + Así, los routers suelen tener varias interfaces de red, mientras que los + hosts solo suelen tener una. + Una dirección IP se compone de dos partes: +\end_layout + +\begin_layout Itemize + +\series bold +Dirección de red +\series default + ( +\begin_inset Quotes cld +\end_inset + +netid +\begin_inset Quotes crd +\end_inset + +): Los +\begin_inset Formula $n$ +\end_inset + + bits más significativos. + El tamaño es variable, y una dirección IP de la forma +\begin_inset Formula $xxx.xxx.xxx.xxx/nn$ +\end_inset + + indica que la dirección de red ocupa +\begin_inset Formula $nn$ +\end_inset + + bits. +\end_layout + +\begin_layout Itemize + +\series bold +Dirección de host +\series default + ( +\begin_inset Quotes cld +\end_inset + +hostid +\begin_inset Quotes crd +\end_inset + +): El resto de bits. +\end_layout + +\begin_layout Standard +Anteriormente existían 4 tipos de redes (A, B, C y D) dependiendo del tamaño + de la dirección de red, pero actualmente existe el +\series bold +CIDR +\series default + ( +\emph on +Classless InterDomain Routing +\emph default +) que permite que el tamaño de la dirección de red sea arbitrario. + La +\series bold +máscara de red +\series default + es un número (con forma de dirección IP) que se forma tomando un netid + formado solo por 1's y un hostid formado solo por 0's. +\end_layout + +\begin_layout Standard +El organismo encargado de asignar direcciones de red es el +\series bold +ICANN +\series default + ( +\emph on +Internet Corporation for Assigned Names and Numbers +\emph default +). + Cuando dos hosts están en la misma red, pueden comunicarse directamente. + En otro caso, el host origen envía el paquete al +\series bold +router +\series default + por defecto (cuya dirección IP debe saber), que actúa como nexo de unión, + y la dirección IP del paquete es la del host destino. + Direcciones especiales: +\end_layout + +\begin_layout Itemize + +\series bold +Dirección de red: +\series default + El hostid está formado solo por 0's. +\end_layout + +\begin_layout Itemize + +\series bold +Dirección de +\emph on +broadcast +\series default +\emph default + (difusión): El hostid está formado solo por 1's, y el paquete llega a todos + los miembros de la red. +\end_layout + +\begin_layout Standard + +\series bold +DHCP +\series default + ( +\emph on +Dynamic Host Configuration Protocol +\emph default +) permite configurar hosts de forma dinámica, de forma que el router asigna + al host una dirección IP, máscara de subred y dirección del router por + defecto. + Además, la mayoría de routers pueden reenviar las solicitudes de configuración + DHCP, por lo que no es necesario tener servidores DHCP en cada subred. + Esquema general: +\end_layout + +\begin_layout Enumerate + +\series bold +Descubrimiento: +\series default + El host envía una solicitud de descubrimiento DHCP por su interfaz. +\end_layout + +\begin_layout Enumerate + +\series bold +Oferta: +\series default + El router responde informando de su IP y ofreciendo otra, con fecha de + caducidad pero renovable. +\end_layout + +\begin_layout Enumerate + +\series bold +Solicitud: +\series default + El host solicita usar dicha IP. +\end_layout + +\begin_layout Enumerate + +\series bold +Confirmación: +\series default + El router confirma que el host pueda usarla. +\end_layout + +\begin_layout Standard +La limitación en el rango de direcciones IP ha llevado a la creación del + protocolo +\series bold +IPv6 +\series default + (IP versión 6), que permite asignar +\begin_inset Formula $2^{128}$ +\end_inset + + direcciones, reduce el tamaño de las tablas de enrutamiento, simplifica + el protocolo para permitir el procesamiento más rápido de paquetes, proporciona + seguridad al incluir cabeceras de autenticación y confidencialidad, presta + más atención al tipo de servicio (especialmente al tiempo real), posibilita + que un host sea móvil sin cambiar su dirección y elimina la sobrecarga + del NAT al haber direcciones suficientes. +\end_layout + +\begin_layout Section +TCP y UDP +\end_layout + +\begin_layout Standard +Las distintas capas de una arquitectura pueden ofrecer distintos tipos de + servicio: +\end_layout + +\begin_layout Itemize + +\series bold +Servicio orientado a conexión: +\series default + Hay un establecimiento de conexión, una fase de transmisión de datos y + una liberación de la conexión, de forma que los datos se entregan en orden. +\end_layout + +\begin_layout Itemize + +\series bold +Servicio no orientado a conexión: +\series default + Cada mensaje se procesa de forma independiente, incluyendo en cada uno + la información de direccionamiento, y no se garantiza la entrega en orden. +\end_layout + +\begin_layout Itemize + +\series bold +Servicio confirmado: +\series default + El emisor tiene constancia de la recepción correcta de los datos. +\end_layout + +\begin_layout Itemize + +\series bold +Servicio no confirmado: +\series default + No hay tal confirmación. +\end_layout + +\begin_layout Standard +El término +\series bold +QoS +\series default + ( +\emph on +Quality of Service +\emph default +) se refiere a las tecnologías que garantizan la transmisión de datos en + un tiempo dado, y es importante para vídeo y voz. + En la capa de transporte se tienen dos protocolos: +\end_layout + +\begin_layout Itemize + +\series bold +TCP: +\series default + Orientado a conexión. +\end_layout + +\begin_layout Itemize + +\series bold +UDP: +\series default + No orientado a conexión, para cuando prima el tiempo de llegada de los + datos sobre la posible existencia de fallos en la transmisión. +\end_layout + +\begin_layout Standard +Estos servicios permiten además definir un +\series bold +puerto +\series default + de origen y uno de destino, que identifican a los distintos procesos existentes + en los hosts que se comunican. +\end_layout + +\begin_layout Standard +Por otro lado, dada la limitación en el rango de direcciones IP, y que normalmen +te en entornos domésticos solo se asigna una IP pública, en estos se suele + usar +\series bold +NAT +\series default + (Network Address Translation). + Los hosts usan direcciones IP en una serie de +\series bold +rangos de direcciones privadas +\series default + definidos, que para el exterior se traducen en una única IP pública, pues + el router se encarga de la conversión. +\end_layout + +\begin_layout Standard +Cuando un host envía información (por TCP o UDP) a una dirección IP pública, + lo hace con un puerto de origen y uno de destino. + El router entonces hace corresponder un puerto de su IP pública al conjunto + de la IP privada y el puerto de origen, y envía entonces la información + a la IP y el puerto de destino desde su propia IP pública y el puerto que + ha asignado. + Cuando recibe la respuesta, le llega con el puerto asignado como puerto + de destino, de forma que puede redirigir la información a la IP privada + y puerto correspondientes. +\end_layout + +\begin_layout Section +Capa de aplicación +\end_layout + +\begin_layout Standard +Existen dos modelos mediante los cuales los hosts pueden conectarse en la + capa de aplicación: +\end_layout + +\begin_layout Itemize + +\series bold +Modelo cliente-servidor: +\series default + Un servidor, siempre conectado, posiblemente replicado y con dirección + IP fija, atiende solicitudes de los clientes, que no se comunican entre + sí directamente y que posiblemente tengan direcciones IP dinámicas. +\end_layout + +\begin_layout Itemize + +\series bold +\emph on +Peer to peer +\emph default + (P2P): +\series default + Los +\emph on +peers +\emph default + se comunican entre sí directamente. + Pueden estar conectados intermitentemente y tener direcciones IP dinámicas. + Este es un esquema muy escalable, pero difícil de gestionar. +\end_layout + +\begin_layout Standard + +\series bold +BitTorrent +\series default + es un sistema de distribución de ficheros P2P. + Está formado por una serie de +\series bold +\emph on +trackers +\series default +\emph default +, que registran a los +\emph on +peers +\emph default + que participan en un +\emph on +torrent +\emph default +, y +\series bold +\emph on +torrents +\series default +\emph default +, grupos de +\emph on +peers +\emph default + que intercambian partes de un fichero. +\end_layout + +\begin_layout Standard +El protocolo +\series bold +DNS +\series default + ( +\emph on +Domain Name System +\emph default +) es un servicio de traducción de nombres de host a direcciones IP, implementada + como una base de datos distribuida mediante una jerarquía de servidores + DNS y un protocolo de consulta a nivel de aplicación sobre UDP en el puerto + 53. + Los hosts tienen configurado un servidor DNS primario, al que realizan + las consultas, y si no obtienen respuesta consultan al servidor DNS secundario. + Este servicio también permite realizar traducciones inversas, gestionar + alias (distintos nombres para la misma máquina) y otras acciones relacionadas + con el correo electrónico o balanceo de carga. +\end_layout + +\begin_layout Standard + +\series bold +FTP +\series default + ( +\emph on +File Transfer Protocol +\emph default +) es un protocolo cliente-servidor utilizado para transferencia de archivos. +\end_layout + +\begin_layout Standard +La +\series bold +\emph on +World Wide Web +\series default +\emph default + es el conjunto de servidores web de todo el mundo. + Una página web está formada por objetos como páginas HTML, imágenes, +\emph on +applets +\emph default + Java, archivos de audio... + en la cual una página HTML base incluye referencias a otros objetos. + Cada objeto está identificado por una +\series bold +URL +\series default + ( +\emph on +Uniform Resource Locator +\emph default +), cuya sintaxis básica es: +\family typewriter +\emph on +protocolo +\emph default +:// +\emph on +nombre_de_host +\emph default +/ +\emph on +ruta_de_objeto +\family default +\emph default +. +\end_layout + +\begin_layout Standard +Se usa el protocolo +\series bold +HTTP +\series default + ( +\emph on +HyperText Transfer Protocol +\emph default +), en el que el cliente solicita al servidor objetos web, los recibe y los + muestra. + Se basa en TCP, y habitualmente el servidor escucha en el puerto 80. + Existen dos tipos de mensajes HTTP: +\emph on +request +\emph default + y +\emph on +response +\emph default +, basados principalmente en ASCII. + Ejemplo: +\end_layout + +\begin_layout Standard +\begin_inset Tabular +<lyxtabular version="3" rows="2" columns="2"> +<features tabularvalignment="middle"> +<column alignment="left" valignment="top" width="35col%"> +<column alignment="left" valignment="top" width="60col%"> +<row> +<cell alignment="left" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +HTTP +\emph on +request +\end_layout + +\end_inset +</cell> +<cell alignment="left" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +HTTP +\emph on +response +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="left" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +GET /somedir/page.html HTTP/1.1 +\family default + (línea de solicitud: GET, POST...) +\end_layout + +\begin_layout Plain Layout + +\family typewriter +Host: www.someschool.edu +\end_layout + +\begin_layout Plain Layout + +\family typewriter +User-agent: Mozilla/4.0 +\end_layout + +\begin_layout Plain Layout + +\family typewriter +Connection: close +\end_layout + +\begin_layout Plain Layout + +\family typewriter +Accept-language: fr +\end_layout + +\begin_layout Plain Layout +(cabecera) +\end_layout + +\end_inset +</cell> +<cell alignment="left" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +HTTP/1.1 200 OK +\family default + (línea de estado) +\end_layout + +\begin_layout Plain Layout + +\family typewriter +Connection close +\end_layout + +\begin_layout Plain Layout + +\family typewriter +Date: Thu, 06 Aug 2008 12:00:15 GMT +\end_layout + +\begin_layout Plain Layout + +\family typewriter +Server: Apache/1.3.0 (Unix) +\end_layout + +\begin_layout Plain Layout + +\family typewriter +Last-Modified: Mon, 22 Jun 2008 +\end_layout + +\begin_layout Plain Layout + +\family typewriter +ETag: "7ec0a8-141-4912c4c727280" +\end_layout + +\begin_layout Plain Layout + +\family typewriter +Accept-Ranges: bytes +\end_layout + +\begin_layout Plain Layout + +\family typewriter +Content-Length: 321 +\end_layout + +\begin_layout Plain Layout + +\family typewriter +Content-Type: text/html; charset=es_ES.UTF-8 +\end_layout + +\begin_layout Plain Layout +(cabecera) +\end_layout + +\begin_layout Plain Layout +\begin_inset Phantom VPhantom +status open + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + +\family typewriter +... + +\family default + (datos solicitados) +\end_layout + +\end_inset +</cell> +</row> +</lyxtabular> + +\end_inset + + +\end_layout + +\begin_layout Standard +El +\series bold +correo electrónico +\series default + funciona mediante los siguientes componentes: +\end_layout + +\begin_layout Itemize + +\series bold +Agentes de usuario: +\series default + Lectores de correo, usados por los clientes para editar, enviar y recibir + mensajes. + Eudora, Outlook, elm, Mozilla Thunderbird... +\end_layout + +\begin_layout Itemize + +\series bold +Servidores de correo: +\series default + Mantienen los mensajes que llegan a los usuarios (anteriormente solo los + que no se habían enviado ya a estos), y también se encargan del envío. +\end_layout + +\begin_layout Itemize +Protocolos: +\end_layout + +\begin_deeper +\begin_layout Itemize + +\series bold +SMTP +\series default + ( +\emph on +Simple Mail Transfer Protocol +\emph default +): Para el envío de mensajes, tanto desde los agentes como entre servidores. +\end_layout + +\begin_layout Itemize + +\series bold +POP +\series default + ( +\emph on +Post Office Protocol +\emph default +): El agente se conecta con el servidor, se autentica y descarga los mensajes. +\end_layout + +\begin_layout Itemize + +\series bold +IMAP +\series default + ( +\emph on +Internet Message Access Protocol +\emph default +): Más complejo que POP, permite manipular mensajes sobre el servidor. +\end_layout + +\begin_layout Itemize + +\series bold +HTTP: +\series default + La mayoría de servidores de correo tienen una interfaz web. +\end_layout + +\end_deeper +\begin_layout Standard +Así, si Alicia quiere mandar un mensaje a Bob, su agente envía un mensaje + a su servidor de correo con SMTP, y este queda a la cola para ser enviado. + Entonces el servidor de Alicia manda el mensaje por SMTP al de Bob, que + lo coloca en su buzón, de forma que Bob puede acceder mediante su agente + con POP o IMAP. +\end_layout + +\begin_layout Section +Comandos de Linux +\end_layout + +\begin_layout Itemize + +\family typewriter +ifconfig +\family default +: +\begin_inset Quotes cld +\end_inset + +Interface configure +\begin_inset Quotes crd +\end_inset + +. + Para configurar la interfaz +\family typewriter +eth0 +\family default + de un host con dirección +\family typewriter +192.168.0.21/24 +\family default +, +\family typewriter +sudo ifconfig eth0 192.168.0.21 netmask 255.255.255.0 up +\family default + o +\family typewriter +sudo ifconfig eth0 192.168.0.21/24 up +\family default + (realmente no hace falta el +\family typewriter +up +\family default + porque es la opción por defecto). + Para apagarla, +\family typewriter +sudo ifconfig eth0 down +\family default +. +\end_layout + +\begin_layout Itemize + +\family typewriter +route +\family default +: Para establecer el router por defecto, +\family typewriter +sudo route add default gw 192.168.0.1 eth0 +\family default +. + Para visualizar las tablas de enrutamiento de nuestro sistema, +\family typewriter +route -n +\family default +. +\end_layout + +\begin_layout Itemize + +\family typewriter +dhclient +\emph on +interfaz +\family default +\emph default +: Configura una interfaz de red con DHCP. +\end_layout + +\begin_layout Itemize + +\family typewriter +ping +\emph on +servidor +\family default +\emph default +: Envía paquetes a un servidor esperando a que responda, como herramienta + de diagnóstico. +\end_layout + +\begin_layout Itemize + +\family typewriter +host +\family default +: Para obtener la IP correspondiente a un nombre de host, junto con posible + información como alias, +\family typewriter +host +\emph on +nombre_host +\family default +\emph default +. + Para realizar una consulta inversa, +\family typewriter +host +\emph on +dir_IP +\family default +\emph default +. +\end_layout + +\begin_layout Itemize + +\family typewriter +nm-tool +\family default +: Muestra la lista de servidores DNS configurados. +\end_layout + +\begin_layout Itemize + +\family typewriter +telnet +\emph on +servidor +\emph default + [ +\emph on +puerto +\emph default +] +\family default +: Abre conexiones TCP. +\end_layout + +\begin_layout Itemize + +\family typewriter +netstat +\family default +: +\family typewriter +-net +\family default + muestra todas las conexiones TCP abiertas; +\family typewriter +-a +\family default + muestra todas las co +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +ne +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +xio +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +nes y puertos TCP y UDP incluyendo las que están +\begin_inset Quotes cld +\end_inset + +en escucha +\begin_inset Quotes crd +\end_inset + +, y +\family typewriter +-n +\family default + muestra los puertos con su identificación numérica y no de texto. +\end_layout + +\end_body +\end_document |
