The ST datasheet for the 555 has this circuit for generating a linear ramp. The linearity comes from the use of a transistor to give a constant current source for the capacitor charging.
As shown, it's a monostable (it's designed to generate the ramp when it's triggered), but a trivial change will adapt it to an oscillator. Here's the same circuit, in a simulator, with the trigger input connected round to the threshold pin. I've also put some resistance between the discharge output and the capacitor to slow it slightly.
The result, then, is a sawtooth waveform on the capacitor. (Strictly, I should say almost a sawtooth, because it's only the upward ramp that's linear, but it's good enough for what I want from it.) If you wanted to use the sawtooth waveform to drive another circuit, you'd probably need to add a buffer of some sort to avoid affecting what's happening when the capacitor charges.
To see if that works in practice, I built one on a breadboard.
Here are the waveforms (yellow capacitor, blue output)
Other than the output of the real chip managing a noticeably higher 'high' level than the simulation model, it's all very similar.
If you want to experiment with it, there are three ways to change the slope of the ramp and thereby change the period of the oscillation. One is to change the value of the timing capacitor, the 47n in my circuit. Increasing the capacitance slows the ramp. A second way is to change the value of the emitter resistor. Increasing the value will lower the charging current and slow the ramp. The final way is to change the voltage at the base of the transistor, which alters the voltage across the emitter resistor. Increasing it (by adjusting R1 and R2) will lower the voltage across the emitter and thus the current and again slow the ramp. Be careful if you change the base voltage, though, as if you bring it much below the upper threshold of the 555 (2/3 of Vcc) the current source won't regulate all the way up to the threshold and the oscillation will probably stop.
Following blog: /technologies/555-timers/b/blog/posts/555-voltage-controlled-oscillator
If you found this interesting and would like to see more blogs I've written, a list can be found here: /members-area/b/blog/posts/jc2048-blog-index-new-version
References
[1] https://www.st.com/en/clocks-and-timers/ne555.html
[2] https://www.ti.com/lit/ds/symlink/ne555.pdf