chacrinha Posted October 13, 2020 at 07:43 AM Share Posted October 13, 2020 at 07:43 AM Gente, alguém sabe falar da forma mais leiga possível (sem aqueles linguagem técnicas) o que é offset ? Sempre que eu estou tentando estudar sistemas operacionais, memória e exploits fala-se no bendito offset: "Ah, temos a memória na posição zero do segmento 0x242469 e temos que pular para o offset 0x242424 e bla bla bla" Alguém sabe me explicar por metáfora o que raios é o offset do endereço de memória? Eu imagino a memoria de um PC , não sei se errado ou não, como uma planilha do Excel , nesse caso, como seria o offset? Grato! Link to comment Share on other sites More sharing options...
fredericopissarra Posted October 13, 2020 at 11:18 AM Share Posted October 13, 2020 at 11:18 AM "offset" é "deslocamento". Se você estiver parado onde está e se deslocar 1 metro pra frente, então está no offset +1 metro pra frente. Com relaçẽo a "endereço de memória", se você assumir como base um endereço qualquer, um "deslocamento" de N bytes para frente é o "offset" (deslocamento) com relação a essa base. No modo real o "segmento" é essa base e, junto como ele, compondo o endereço físico, tem o "offset" (deslocamento). Link to comment Share on other sites More sharing options...
chacrinha Posted October 14, 2020 at 01:55 AM Author Share Posted October 14, 2020 at 01:55 AM 14 horas atrás, fredericopissarra disse: "offset" é "deslocamento". Se você estiver parado onde está e se deslocar 1 metro pra frente, então está no offset +1 metro pra frente. Com relaçẽo a "endereço de memória", se você assumir como base um endereço qualquer, um "deslocamento" de N bytes para frente é o "offset" (deslocamento) com relação a essa base. No modo real o "segmento" é essa base e, junto como ele, compondo o endereço físico, tem o "offset" (deslocamento). Me parece muito boa a sua metáfora, deixa eu ver se eu entendi: se eu tenho uma estrada de 100KM que começa em São Paulo e vai até Santos, se eu estou no KM 50 dela e percorro mais 2 KM , o endereço de memória seria 0x50 e o offset seria 0x02 ? OU seja, um incremento relativo? Estou errado? Link to comment Share on other sites More sharing options...
gabrielteix Posted October 14, 2020 at 02:04 AM Share Posted October 14, 2020 at 02:04 AM Eu vejo o offset como uma posição ou uma referência para uma posição em um local. Link to comment Share on other sites More sharing options...
fredericopissarra Posted October 14, 2020 at 11:09 AM Share Posted October 14, 2020 at 11:09 AM 9 horas atrás, chacrinha disse: Me parece muito boa a sua metáfora, deixa eu ver se eu entendi: se eu tenho uma estrada de 100KM que começa em São Paulo e vai até Santos, se eu estou no KM 50 dela e percorro mais 2 KM , o endereço de memória seria 0x50 e o offset seria 0x02 ? OU seja, um incremento relativo? Estou errado? Na analogia da estrada, onde é o KM 0? São Paulo? Esse é o offset 0, se você está no km 50, está no offset 50, ao andar mais 2 km, vai pro offset 52. Note que não existe apenas ESSA estrada. O offset, no exemplo, é medido em relação a ESSA referência, mas existem outras referências pelo mundo afora. No caso do modo real, um "endereço de memória" é especificado com um par de valores: SEGMENTO e OFFSET. O segmento te dá o endereço base e o offset te dá o deslocamento dentro desse segmento... No modo real, bloco do segmento sempre tem 64 KiB de tamanho (e o offset também). Link to comment Share on other sites More sharing options...
chacrinha Posted October 19, 2020 at 03:34 AM Author Share Posted October 19, 2020 at 03:34 AM Em 14/10/2020 em 08:09, fredericopissarra disse: SEGMENTO e OFFSET. O segmento te dá o endereço base e o offset te dá o deslocamento dentro desse segmento... No modo real, bloco do segmento sempre tem 64 KiB de tamanho (e o offset também). Bom, voltei a não entender. Você conhece aqueles jogos de tabuleiro onde joga-se os dados para ver quantas casas o competidor avança? Tipo esse dessa imagem: https://br.pinterest.com/pin/330592428889640183/ O segmento seria o número da casa onde o competidor está e o offset é a diferença onde ele está e o número que o dado sorteia para ele avançar? Link to comment Share on other sites More sharing options...
fredericopissarra Posted October 19, 2020 at 12:14 PM Share Posted October 19, 2020 at 12:14 PM Analogias só te levarão até certo ponto. Nesse "curso", que escrevi no início dos anos 90, explica melhor: Link to comment Share on other sites More sharing options...
teuzero Posted January 3, 2021 at 07:08 PM Share Posted January 3, 2021 at 07:08 PM entendi. Link to comment Share on other sites More sharing options...
sklurm Posted March 8, 2021 at 04:26 PM Share Posted March 8, 2021 at 04:26 PM Em 13/10/2020 em 22:55, chacrinha disse: Me parece muito boa a sua metáfora, deixa eu ver se eu entendi: se eu tenho uma estrada de 100KM que começa em São Paulo e vai até Santos, se eu estou no KM 50 dela e percorro mais 2 KM , o endereço de memória seria 0x50 e o offset seria 0x02 ? OU seja, um incremento relativo? Estou errado? se vc considerar o endereço base como sendo a partir do KM 50, sim. mas se considerar o "início" do segmento/do pedaço de estrada q vc está avaliando como sendo a partir do KM 0 desta estrada de 100KM, seu offset, ao andar mais 2KM, JÁ TENDO ANDADO 50KM, seria de 52. melhor dizendo, dependerá de onde se inicia o segmento (a estrada que você está avaliando): se a partir da kilometragem 0 desta estrada de 100KM, ou se a partir da kilometragem 50 desta estrada de 100KM. se o início for a partir da kilometragem 50, seu segmento iniciará na kilometragem 50 e irá até o fim desta estrada, e seu offset neste segmento, ao se deslocar 2KM, será igual a 2. Link to comment Share on other sites More sharing options...
chacrinha Posted March 23, 2021 at 06:35 AM Author Share Posted March 23, 2021 at 06:35 AM Em 08/03/2021 em 13:26, sklurm disse: se vc considerar o endereço base como sendo a partir do KM 50, sim. mas se considerar o "início" do segmento/do pedaço de estrada q vc está avaliando como sendo a partir do KM 0 desta estrada de 100KM, seu offset, ao andar mais 2KM, JÁ TENDO ANDADO 50KM, seria de 52. melhor dizendo, dependerá de onde se inicia o segmento (a estrada que você está avaliando): se a partir da kilometragem 0 desta estrada de 100KM, ou se a partir da kilometragem 50 desta estrada de 100KM. se o início for a partir da kilometragem 50, seu segmento iniciará na kilometragem 50 e irá até o fim desta estrada, e seu offset neste segmento, ao se deslocar 2KM, será igual a 2. Se eu disser então que um carro está quebrado na estrada em algum ponto no offset 0x50:0x17 isso indicará que ele está poderá estar quebrado em quais KMs? Link to comment Share on other sites More sharing options...
fredericopissarra Posted March 23, 2021 at 08:32 PM Share Posted March 23, 2021 at 08:32 PM Não... mas você pode dizer que ele está quebrado à partir do quilometro 23 (0x17) começando no quilometro 1280 (0x50 * 16). Ou seja, no quilometro 1303. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.